/* Base styles for the proxy panel */ .yak-proxy-root * { all: initial; box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; line-height: normal; margin: 0; padding: 0; border: none; outline: none; } .floating-panel { position: fixed; top: 30%; right: 0; transform: translateY(-30%); background: white; z-index: 2147483647; width: 50px; height: 40px; overflow: hidden; transition: width 0.2s cubic-bezier(0.4, 0, 0.2, 1), height 0.2s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.2s ease; box-sizing: border-box; } /* Non-expanded state */ .floating-panel:not(.expanded):not(.dragging) { border-radius: 50px 0 0 50px; box-shadow: -4px 0 20px rgba(0,0,0,0.15); border: 1px solid #eee; border-right: none; } /* Dragging state */ .floating-panel.dragging { cursor: grabbing; user-select: none; opacity: 0.95; transition: none; } /* Hover state */ .floating-panel:not(.expanded):hover { width: 120px; background: #fff7e6; border-color: #ffd591; } /* Expanded state */ .floating-panel.expanded { width: 180px; height: auto; max-height: 400px; border-radius: 8px 0 0 8px; box-shadow: -2px 0 10px rgba(0,0,0,0.1); border: 1px solid #eee; border-right: none; } /* Panel header */ .panel-header { height: 40px; min-height: 40px; display: flex; align-items: center; padding: 0 8px; cursor: pointer; user-select: none; } /* Header in expanded state */ .floating-panel.expanded .panel-header { background: #f8f9fa; border-bottom: 1px solid #eee; } .header-content { display: flex; align-items: center; flex: 1; overflow: hidden; } /* Yak icon */ .yak-icon { width: 36px; height: 36px; min-width: 36px; object-fit: contain; filter: drop-shadow(0 2px 4px rgba(0,0,0,0.1)); transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); } .floating-panel.expanded .yak-icon { width: 24px; height: 24px; min-width: 24px; } /* Active proxy info */ .active-proxy-info { display: flex; align-items: center; margin-left: 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #ff6b00; font-size: 13px; font-weight: 500; } .active-proxy-info span:first-child { margin-right: 6px; } .active-proxy-info span:nth-child(2) { color: #333; } /* Panel content */ .panel-content { display: none; background: white; overflow-y: auto; max-height: 360px; opacity: 0; transition: opacity 0.2s ease; } .floating-panel.expanded .panel-content { display: block; opacity: 1; } /* Scrollbar styles */ .panel-content::-webkit-scrollbar { width: 4px; } .panel-content::-webkit-scrollbar-track { background: #f5f5f5; } .panel-content::-webkit-scrollbar-thumb { background: #ddd; border-radius: 4px; } .panel-content::-webkit-scrollbar-thumb:hover { background: #ccc; } /* Proxy item */ .proxy-item { display: flex; align-items: center; padding: 8px 12px; cursor: pointer; transition: all 0.2s; white-space: nowrap; position: relative; } .proxy-item:hover { background: #fff7e6; } .proxy-item.active { background: #fff7e6; color: #ff6b00; } .proxy-item.active span { color: #ff6b00; } .proxy-item span:first-child { margin-right: 8px; font-size: 16px; } .proxy-item span { color: #333; } .proxy-status { position: absolute; right: 12px; width: 6px; height: 6px; border-radius: 50%; background: #52c41a; box-shadow: 0 0 4px rgba(82,196,26,0.3); } .proxy-item.active .proxy-status { background: #ff6b00; box-shadow: 0 0 4px rgba(255,107,0,0.3); } /* Divider */ .divider { height: 1px; background: #f0f0f0; margin: 4px 0; } /* Action buttons */ .action-button { display: flex; align-items: center; padding: 8px 12px; cursor: pointer; transition: all 0.2s; white-space: nowrap; color: #666; } .action-button:hover { background: #fff7e6; color: #ff6b00; } .action-button:hover span { color: #ff6b00; } .action-button span:first-child { margin-right: 8px; } .action-button span { color: #666; } /* Tab container */ .tabs-container { display: flex; height: 100%; min-height: 200px; } .tab-list { width: 40px; background: #f8f9fa; border-right: 1px solid #eee; display: flex; flex-direction: column; align-items: center; padding-top: 8px; position: sticky; top: 0; align-self: flex-start; height: 100%; flex-shrink: 0; } .tab-button { width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; margin-bottom: 4px; border-radius: 4px; cursor: pointer; transition: all 0.2s; background: transparent; border: none; padding: 0; } .tab-button:hover { background: #fff7e6; } .tab-button.active { background: #fff7e6; color: #ff6b00; } .tab-content { flex: 1; display: flex; flex-direction: column; min-width: 0; height: 100%; } .tab-panel { display: none; height: 100%; overflow: hidden; flex-direction: column; } .tab-panel.active { display: flex; }