:root{--primary-color:#2563eb;--primary-hover:#1d4ed8;--bg-gradient:linear-gradient(135deg, #f0f4f8 0%, #d9e2ec 100%);--card-bg:#fffc;--card-shadow:0 8px 32px 0 #1f26871a;--text-main:#102a43;--text-secondary:#486581;--input-bg:#fff;--input-border:#bcccdc;--input-focus:#2563eb;--error-color:#ef4444;--success-color:#10b981}*{box-sizing:border-box;margin:0;padding:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}body{background:var(--bg-gradient);min-height:100vh;color:var(--text-main);justify-content:center;align-items:center;display:flex}.btn-primary{background:linear-gradient(135deg, var(--primary-color), #3b82f6);color:#fff;cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 4px 12px #2563eb33}.btn-primary:hover{filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 8px 20px #2563eb4d}.btn-primary:active{transform:translateY(0)}.btn-secondary{color:#475569;cursor:pointer;background:#f1f5f9;border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 1px 2px #0000000d}.btn-secondary:hover{color:#1e293b;background:#e2e8f0;transform:translateY(-1px);box-shadow:0 4px 6px -1px #0000000d}.btn-secondary:active{transform:translateY(0)}.btn-outline{color:#64748b;cursor:pointer;background:#fff;border:1px dashed #cbd5e1;border-radius:8px;justify-content:center;align-items:center;gap:4px;padding:4px 10px;font-size:.8rem;font-weight:600;transition:all .2s;display:flex}.btn-outline:hover{border-color:var(--primary-color);color:var(--primary-color);background:#f0f7ff;transform:translateY(-1px)}.btn-outline:active{transform:translateY(0)}#root{width:100%}.login-container{justify-content:center;align-items:center;width:100%;height:100vh;display:flex}.login-card{background:var(--card-bg);-webkit-backdrop-filter:blur(12px);width:100%;max-width:440px;box-shadow:var(--card-shadow);border:1px solid #ffffff4d;border-radius:24px;padding:48px;animation:.6s ease-out slideIn}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.login-header{text-align:center;margin-bottom:32px}.login-header h1{color:var(--text-main);letter-spacing:-.5px;margin-bottom:8px;font-size:2rem;font-weight:800}.login-header p{color:var(--text-secondary);font-size:.95rem}.login-form{flex-direction:column;gap:20px;display:flex}.form-group label{color:var(--text-secondary);margin-left:4px;font-size:.875rem;font-weight:600}.input-wrapper{align-items:center;display:flex;position:relative}.input-icon{color:var(--text-secondary);pointer-events:none;transition:color .3s;display:block;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.login-form .input-wrapper input{background:var(--input-bg);border:2px solid var(--input-border);width:100%;color:var(--text-main);border-radius:14px;outline:none;padding:14px 16px 14px 48px;font-size:1rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.login-form .input-wrapper input:focus{border-color:var(--input-focus);box-shadow:0 0 0 4px #2563eb1a}.input-wrapper:focus-within .input-icon{color:var(--input-focus)}.login-button{background:var(--primary-color);color:#fff;cursor:pointer;border:none;border-radius:14px;justify-content:center;align-items:center;gap:8px;margin-top:12px;padding:14px;font-size:1rem;font-weight:600;transition:all .3s;display:flex}.login-button:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px #2563eb33}.login-button:active{transform:translateY(0)}.login-button:disabled{opacity:.7;cursor:not-allowed}.error-message{color:var(--error-color);background:#fee2e2;border:1px solid #fecaca;border-radius:12px;align-items:center;gap:8px;margin-bottom:20px;padding:12px 16px;font-size:.875rem;display:flex}.loading-spinner{border:3px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (width<=480px){.login-card{border-radius:20px;margin:16px;padding:32px 24px}.login-header h1{font-size:1.75rem}}.scene-mgmt{max-width:1100px;margin:0 auto}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:32px;display:flex}.page-header-actions{align-items:center;gap:12px;display:flex}.btn-toggle-archived.active{color:var(--primary-color);background:#eff6ff}.page-header h1{color:#1e293b;font-size:1.75rem;font-weight:800}.page-header p{color:#64748b;margin-top:4px}.group-grid{flex-direction:column;gap:12px;display:flex}.group-card.simple{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:16px;flex-direction:row;justify-content:space-between;align-items:center;gap:20px;padding:16px 24px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.group-card.simple:hover{border-color:var(--primary-color);transform:translate(4px);box-shadow:0 8px 16px -8px #0000001a}.group-main{flex:1;align-items:center;gap:16px;min-width:0;display:flex}.group-main .text{min-width:0}.group-main .text h3,.group-main .text p{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.icon-wrapper{color:#64748b;background:#f1f5f9;border-radius:12px;padding:12px}.text h3{color:#1e293b;font-size:1.1rem;font-weight:700}.text p{color:#64748b;font-size:.9rem}.group-meta{flex-shrink:0;align-items:center;gap:16px;display:flex}.badge{color:#475569;background:#e2e8f0;border-radius:99px;padding:2px 8px;font-size:.75rem;font-weight:700}.arrow{color:#cbd5e1;transition:transform .3s}.group-card.simple:hover .arrow{color:var(--primary-color);transform:translate(4px)}.btn-icon{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px;transition:all .2s}.btn-icon.favorite:hover,.btn-icon.favorite.active{color:#f59e0b}.group-card.simple.archived{opacity:.6;background:#f8fafc}.form-item label{color:#475569;font-weight:600}.form-item input,.form-item textarea{border:1px solid #e2e8f0;border-radius:10px;padding:12px;font-size:1rem}.tianditu-search-results{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;max-height:220px;margin:8px 0;padding:6px;overflow-y:auto}.tianditu-search-result-item{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;width:100%;padding:8px 10px;transition:background .15s;display:block}.tianditu-search-result-item:hover{background:#e2e8f0}.tianditu-search-result-name{color:#1e293b;font-weight:600}.tianditu-search-result-address{color:#64748b;margin-top:2px;font-size:.8rem}.group-dashboard{max-width:1200px;margin:0 auto}.dashboard-header{justify-content:space-between;align-items:center;gap:24px;margin-bottom:32px;display:flex}.header-main{flex:1}.header-main h1{color:#1e293b;font-size:1.75rem;font-weight:800}.header-main p{color:#64748b;margin-top:4px}.header-actions{gap:12px;display:flex}.btn-secondary{cursor:pointer;color:#475569;background:#fff;border:1px solid #e2e8f0;border-radius:10px;align-items:center;gap:8px;padding:10px 20px;font-weight:600;display:flex}.dashboard-stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px;margin-bottom:40px;display:grid}.stat-card{background:#fff;border:1px solid #e2e8f0;border-radius:20px;align-items:center;gap:20px;padding:24px;display:flex}.stat-icon{color:var(--primary-color);background:#f1f5f9;border-radius:12px;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.stat-info .label{color:#64748b;font-size:.875rem;display:block}.stat-info .value{color:#1e293b;font-size:1.5rem;font-weight:800;display:block}.section-header{margin-bottom:24px}.section-header h2{color:#1e293b;font-size:1.25rem}.scenes-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;display:grid}.scene-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;justify-content:space-between;align-items:center;padding:20px;transition:all .2s;display:flex}.scene-card.clickable{cursor:pointer}.scene-card:hover{border-color:var(--primary-color);box-shadow:0 8px 16px -4px #0000000d}.scene-info{align-items:center;gap:16px;display:flex}.scene-icon{color:var(--primary-color);background:#eff6ff;border-radius:10px;justify-content:center;align-items:center;width:44px;height:44px;font-size:.9rem;font-weight:800;display:flex}.scene-info h3{color:#1e293b;font-size:1rem}.scene-info p{color:#94a3b8;font-size:.75rem}.section-header{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.section-header p{color:#64748b;margin-right:auto}.btn-toggle-archived{padding:8px 14px;font-size:.8rem}.btn-toggle-archived.active{border-color:var(--primary-color);color:var(--primary-color);background:#eff6ff}.scene-card.archived{opacity:.6;background:#f8fafc}.archived-badge{color:#94a3b8;vertical-align:middle;background:#f1f5f9;border-radius:999px;margin-left:8px;padding:1px 8px;font-size:.65rem;font-weight:700;display:inline-block}.scene-actions{align-items:center;gap:6px;display:flex}.btn-icon.favorite{color:#cbd5e1}.btn-icon.favorite:hover,.btn-icon.favorite.active{color:#f59e0b}.empty-state{color:#94a3b8;cursor:pointer;background:#f8fafc80;border:2px dashed #cbd5e1;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:60px 40px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex}.empty-state:hover{border-color:var(--primary-color);color:var(--primary-color);background:#fff;transform:scale(1.02);box-shadow:0 20px 25px -5px #0000000d}.empty-state .plus-icon{background:#f1f5f9;border-radius:50%;padding:16px;transition:all .3s}.empty-state:hover .plus-icon{background:#eff6ff;transform:rotate(90deg)}.btn-back{color:#475569;cursor:pointer;background:#f1f5f9;border:none;border-radius:12px;align-items:center;gap:8px;padding:10px 18px;font-size:.9rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 1px 2px #0000000d}.btn-back:hover{color:#1e293b;background:#e2e8f0;transform:translate(-4px);box-shadow:0 4px 6px -1px #0000000d}.btn-back svg{transition:transform .2s}.btn-back:hover svg{transform:scale(1.1)}.tts-var-row input{border:1px solid #e2e8f0;border-radius:8px;outline:none;flex:1;padding:7px 10px;font-size:.875rem}.tts-var-row input:focus{border-color:var(--primary-color,#2563eb);box-shadow:0 0 0 2px #2563eb1a}.tts-var-eq{color:#94a3b8;flex-shrink:0;font-weight:700}.tts-var-remove{color:#ef4444;cursor:pointer;background:#fff1f2;border:none;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.tts-var-remove:hover{background:#ffe4e6}.tts-var-add{border:1px dashed var(--primary-color,#2563eb);color:var(--primary-color,#2563eb);cursor:pointer;background:0 0;border-radius:7px;align-self:flex-start;align-items:center;gap:5px;margin-top:2px;padding:6px 12px;font-size:.825rem;font-weight:600;display:flex}.tts-var-add:hover{background:#eff6ff}.tts-count-badge{background:var(--primary-color,#2563eb);color:#fff;border-radius:10px;padding:1px 6px;font-size:.7rem;font-weight:700}.tts-vars-hint{color:#64748b;margin-top:2px;font-size:.78rem}.robots-section{margin-top:32px}.robots-section .section-header{justify-content:space-between;align-items:center;display:flex}.robots-empty{color:#94a3b8;background:#f8fafc80;border:2px dashed #cbd5e1;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:60px 40px;display:flex}.robot-state-card .card-top{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:16px;display:flex}.robot-state-card .card-body{flex-direction:column;flex-grow:1;gap:16px;padding:16px;display:flex}.live-state-block{flex-direction:column;gap:16px;display:flex}.live-state-block.is-stale{opacity:.55}.stale-banner{color:#94a3b8;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:6px;padding:6px 10px;font-size:12px}.robot-state-card .card-footer{background:#f8fafc;border-top:1px solid #e2e8f0;flex-wrap:wrap;gap:8px;padding:12px 16px;display:flex}.standby-summary-item{grid-column:1/-1}.standby-unset{color:#94a3b8}.standby-stale{color:#f59e0b}.modal-content.modal-standby{flex-direction:column;width:96vw;max-width:960px;max-height:90vh;padding:0;display:flex;overflow:hidden}.modal-standby .standby-modal-title{flex-shrink:0;margin:0;padding:28px 32px 0}.modal-standby .standby-modal-form{flex-direction:column;flex:1;min-height:0;display:flex}.modal-standby .standby-modal-body{flex:1;min-height:0;padding:20px 32px 0;overflow-y:auto}.modal-standby .modal-footer{background:#fff;border-top:1px solid #e2e8f0;flex-shrink:0;margin:0;padding:16px 32px}.standby-section{margin-bottom:24px}.standby-section-title{text-transform:uppercase;letter-spacing:.06em;color:#94a3b8;margin:0 0 14px;font-size:.8rem;font-weight:700}.toggle-label{cursor:pointer;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.standby-idle-row{margin-top:14px;transition:opacity .2s}.standby-idle-row.disabled{opacity:.4;pointer-events:none}.idle-input-group{align-items:center;gap:12px;display:flex}.idle-input-group input{flex:0 0 120px;width:120px;min-width:0}.idle-hint{color:#64748b;white-space:nowrap;flex-shrink:0;font-size:.85rem}.standby-map-tabs{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.standby-map-tab{cursor:pointer;color:#475569;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;align-items:center;gap:7px;padding:8px 14px;font-size:.875rem;transition:all .15s;display:flex;position:relative}.standby-map-tab:hover{border-color:var(--primary-color,#2563eb);color:var(--primary-color,#2563eb)}.standby-map-tab.active{border-color:var(--primary-color,#2563eb);color:var(--primary-color,#2563eb);background:#eff6ff;font-weight:600}.map-tab-floor{color:#475569;letter-spacing:.03em;background:#e2e8f0;border-radius:4px;padding:1px 5px;font-size:.7rem;font-weight:700}.standby-map-tab.active .map-tab-floor{color:#1d4ed8;background:#bfdbfe}.map-tab-name{white-space:nowrap}.map-tab-dot{background:var(--primary-color,#2563eb);border-radius:50%;flex-shrink:0;width:7px;height:7px}.standby-point-layout{align-items:flex-start;gap:16px;display:flex}.standby-map-view{background:#0f172a;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;flex:1;min-width:0;display:flex;position:relative;overflow:hidden}.standby-no-image{color:#475569;justify-content:center;align-items:center;height:260px;font-size:.875rem;display:flex}.standby-zoom-bar{z-index:10;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#1e293b;background:#ffffffe6;border-radius:8px;align-items:center;gap:4px;padding:4px 8px;font-size:.75rem;font-weight:600;display:flex;position:absolute;top:8px;right:8px;box-shadow:0 2px 8px #00000026}.standby-zoom-bar button{cursor:pointer;color:#475569;background:0 0;border:none;border-radius:4px;align-items:center;padding:2px 4px;display:flex}.standby-zoom-bar button:hover:not(:disabled){color:#1e293b;background:#f1f5f9}.standby-zoom-bar button:disabled{opacity:.35;cursor:default}.standby-map-drag{-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;height:340px;display:flex;overflow:hidden}.standby-map-drag img{object-fit:contain;max-width:100%;max-height:340px;display:block}.standby-point-pin{z-index:5;cursor:pointer;justify-content:center;align-items:center;width:0;height:0;display:flex;position:absolute}.standby-point-pin:hover{z-index:100}.standby-pin-dot{background-color:#f59e0b;border:2px solid #fff;border-radius:50%;width:12px;height:12px;transition:transform .2s cubic-bezier(.4,0,.2,1);position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 8px #f59e0bb3}.standby-point-pin:hover .standby-pin-dot{transform:translate(-50%,-50%)scale(1.35);box-shadow:0 0 12px #f59e0b}.standby-pin-dot:after{content:"";opacity:0;border:2px solid #f59e0b;border-radius:50%;animation:2s ease-out infinite standby-pin-pulse;position:absolute;inset:-2px}@keyframes standby-pin-pulse{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(1.8)}}.standby-point-pin.selected .standby-pin-dot{background-color:#2563eb;box-shadow:0 0 8px #2563ebb3}.standby-point-pin.selected:hover .standby-pin-dot{box-shadow:0 0 12px #2563eb}.standby-point-pin.selected .standby-pin-dot:after{border-color:#2563eb}.standby-pin-label{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;background:#0f172ad9;border:1px solid #ffffff26;border-radius:6px;max-width:130px;padding:2px 8px;font-size:.7rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);position:absolute;top:10px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 2px 6px #0000004d}.standby-point-pin:hover .standby-pin-label{background:#0f172af2;border-color:#f59e0b;transform:translate(-50%)scale(1.05);box-shadow:0 4px 12px #0006}.standby-point-pin.selected .standby-pin-label{border-color:#2563eb}.point-picker{border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;flex-shrink:0;gap:2px;width:200px;max-height:340px;padding:6px;display:flex;overflow-y:auto}.point-option{cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:9px 10px;transition:background .15s;display:flex}.point-option:hover{background:#f1f5f9}.point-option.selected{background:#eff6ff}.point-option input[type=radio]{accent-color:var(--primary-color,#2563eb);cursor:pointer;flex-shrink:0;width:16px;height:16px}.point-option-info{flex-direction:column;gap:2px;min-width:0;display:flex}.point-name{color:#1e293b;white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:500;overflow:hidden}.standby-loading{color:#94a3b8;text-align:center;padding:20px 0;font-size:.9rem}.standby-schedule-list{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.standby-schedule-row{align-items:center;gap:8px;display:flex}.schedule-time-input{flex:0 0 110px;width:110px;min-width:0}.schedule-time-sep{color:#94a3b8;flex-shrink:0;font-size:.85rem}.schedule-point-select{flex:1;min-width:0}.schedule-row-remove{flex-shrink:0}.btn-add-schedule{width:fit-content;padding:8px 14px;font-size:.85rem}.btn-add-schedule:disabled{opacity:.5;cursor:not-allowed}.spin{animation:1s linear infinite spin}.user-mgmt{max-width:1100px;margin:0 auto}.user-table-container{background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden}.user-table{border-collapse:collapse;text-align:left;width:100%}.user-table th{color:#64748b;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:16px 24px;font-size:.875rem;font-weight:600}.user-table td{color:#334155;border-bottom:1px solid #f1f5f9;padding:16px 24px;font-size:.95rem}.user-cell{align-items:center;gap:12px;display:flex}.avatar{color:var(--primary-color);background:#eff6ff;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.group-cell{color:#64748b;align-items:center;gap:6px;display:flex}.badge{border-radius:99px;padding:4px 10px;font-size:.75rem;font-weight:600}.badge.admin{color:#ef4444;background:#fee2e2}.badge.operator{color:#0284c7;background:#e0f2fe}.badge.member{color:#16a34a;background:#f0fdf4}.text-muted{color:#94a3b8}.modal-content select{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:12px;font-size:1rem}@media (width<=768px){.user-table th:nth-child(4),.user-table td:nth-child(4){display:none}}.device-mgmt-container{padding:24px}.page-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.title-section h1{color:#1e293b;margin:0 0 4px;font-size:1.5rem}.subtitle{color:#64748b;font-size:.9rem}.filter-bar{margin-bottom:24px}.search-box{max-width:400px;position:relative}.search-box svg{color:#94a3b8;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search-box input{background:#fff;border:1px solid #e2e8f0;border-radius:8px;width:100%;padding:10px 12px 10px 40px;font-size:.9rem;transition:all .2s}.search-box input:focus{border-color:var(--primary-color);outline:none;box-shadow:0 0 0 3px #2563eb1a}.device-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;display:grid}.device-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;padding:20px;transition:all .2s;display:flex}.device-card:hover{border-color:#cbd5e1;transform:translateY(-2px);box-shadow:0 10px 15px -3px #0000001a}.device-card-header{gap:16px;margin-bottom:16px;display:flex}.icon-box{width:48px;height:48px;color:var(--primary-color);background:#f1f5f9;border-radius:10px;justify-content:center;align-items:center;display:flex}.device-main-info h3{color:#1e293b;margin:0 0 4px;font-size:1.1rem}.feature-key{color:#64748b;background:#f1f5f9;border-radius:4px;padding:2px 6px;font-family:monospace;font-size:.75rem}.device-card-body{flex:1;margin-bottom:20px}.description{color:#64748b;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.9rem;line-height:1.5;display:-webkit-box;overflow:hidden}.device-card-footer{border-top:1px solid #f1f5f9;justify-content:flex-end;gap:8px;padding-top:16px;display:flex}.input-hint{color:#94a3b8;margin-top:4px;font-size:.75rem}.loading-state,.empty-state{text-align:center;color:#94a3b8;padding:60px}.empty-state svg{opacity:.5;margin-bottom:16px}.device-card.add-card{cursor:pointer;color:#64748b;background:#f8fafc;border:2px dashed #cbd5e1;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:180px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex}.device-card.add-card .add-text{font-size:.95rem;font-weight:600}.device-card.add-card:hover{border-color:var(--primary-color,#2563eb);color:var(--primary-color,#2563eb);background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);transform:translateY(-6px);box-shadow:0 20px 25px -5px #2563eb26,0 10px 10px -5px #2563eb0d}.model-mgmt{max-width:1400px;margin:0 auto;padding:24px}.page-header{border-bottom:1px solid #e2e8f0cc;justify-content:space-between;align-items:flex-end;margin-bottom:32px;padding-bottom:24px;display:flex}.model-grid{grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:24px;display:grid}.model-card{background:#fff;border:1px solid #e2e8f0;border-radius:20px;flex-direction:column;gap:20px;padding:24px;transition:all .3s;display:flex}.model-card:hover{border-color:var(--primary-color);transform:translateY(-4px);box-shadow:0 12px 24px -8px #0000001a}.model-title{align-items:center;gap:16px;display:flex}.model-title .icon{color:var(--primary-color);background:#eff6ff;border-radius:12px;width:44px;height:44px;padding:10px}.model-title h3{color:#1e293b;font-size:1.15rem;font-weight:700}.version-tag{color:#64748b;background:#f1f5f9;border-radius:4px;padding:2px 8px;font-size:.75rem;font-weight:600}.devices-section{background:#f8fafc;border-radius:14px;padding:16px}.device-header{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;display:flex}.section-title{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.section-title .left{color:#64748b;align-items:center;gap:8px;font-size:.85rem;font-weight:700;display:flex}.device-list{flex-direction:column;gap:8px;display:flex}.device-item{background:#fff;border:1px solid #f1f5f9;border-radius:8px;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.device-info{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.dev-icon{color:#94a3b8}.dev-name{color:#475569;font-size:.9rem;font-weight:600}.dev-hint{color:#cbd5e1;cursor:help;align-items:center;display:flex;position:relative}.dev-hint .tooltip{visibility:hidden;color:#fff;white-space:nowrap;z-index:10;opacity:0;background:#1e293b;border-radius:6px;padding:6px 10px;font-size:.75rem;transition:opacity .2s;position:absolute;bottom:120%;left:50%;transform:translate(-50%)}.dev-hint:hover .tooltip{visibility:visible;opacity:1}.btn-remove{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:6px;transition:all .2s;display:flex}.btn-remove:hover{color:#ef4444;background:#fee2e2}.card-footer{border-top:1px solid #f1f5f9;padding-top:12px}.card-footer .time{color:#cbd5e1;font-size:.7rem}.device-preview-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-top:16px;padding:12px}.preview-label{color:#64748b;text-transform:uppercase;margin-bottom:4px;font-size:.75rem;font-weight:600}.device-preview-box p{color:#334155;margin:0;font-size:.85rem;line-height:1.4}.input-hint.warn{color:#ef4444;margin-top:8px;font-size:.75rem}.hint-popup{display:none}.dev-hint:hover .hint-popup{color:#fff;white-space:nowrap;z-index:100;background:#1e293b;border-radius:6px;padding:8px 12px;font-size:.75rem;display:block;position:absolute;bottom:120%;left:50%;transform:translate(-50%);box-shadow:0 4px 6px -1px #0000001a}.model-card.add-card{cursor:pointer;color:#64748b;background:#f8fafc;border:2px dashed #cbd5e1;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:260px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex}.model-card.add-card .add-text{font-size:1rem;font-weight:600}.model-card.add-card:hover{border-color:var(--primary-color,#2563eb);color:var(--primary-color,#2563eb);background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);transform:translateY(-6px);box-shadow:0 20px 25px -5px #2563eb26,0 10px 10px -5px #2563eb0d}.robot-mgmt{max-width:1200px;margin:0 auto}.robot-card{background:#fff;border:1px solid #e2e8f0;border-radius:20px;flex-direction:column;gap:20px;padding:24px;transition:all .3s;display:flex}.robot-card:hover{border-color:var(--primary-color);transform:translateY(-4px);box-shadow:0 12px 24px -8px #0000001a}.card-header{justify-content:space-between;align-items:center;display:flex}.status-badge.online{color:#16a34a;background:#f0fdf4}.status-badge.offline{color:#94a3b8;background:#f8fafc}.robot-info{align-items:center;gap:20px;display:flex}.robot-icon{color:#475569;background:#f1f5f9;border-radius:16px;justify-content:center;align-items:center;width:72px;height:72px;display:flex}.robot-details h3{color:#1e293b;font-size:1.25rem;font-weight:700}.robot-details .sn{color:#64748b;margin-top:2px;font-family:monospace;font-size:.875rem}.robot-details .model{color:#94a3b8;margin-top:4px;font-size:.875rem}.robot-binding{background:#f8fafc;border-radius:14px;flex-direction:column;gap:12px;padding:16px;display:flex}.binding-item{color:#475569;align-items:center;gap:10px;font-size:.875rem;display:flex}.btn-bind{color:var(--primary-color);cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;justify-content:center;align-items:center;gap:8px;margin-top:4px;padding:8px;font-size:.875rem;font-weight:600;transition:all .2s;display:flex}.btn-bind:hover{border-color:var(--primary-color);background:#eff6ff}.capabilities{flex-wrap:wrap;gap:8px;display:flex}.cap-tag{color:#64748b;background:#f1f5f9;border-radius:6px;padding:4px 10px;font-size:.75rem;font-weight:600}.cap-tag.app-version-tag{color:#2563eb;background:#eff6ff}.capabilities-group{flex-direction:column;gap:12px;margin-top:8px;display:flex}.checkbox-item{cursor:pointer;align-items:center;gap:10px;font-size:.95rem;display:flex}.hint{color:#94a3b8;margin-bottom:16px;font-size:.85rem}.device-label-content{align-items:center;gap:8px;display:flex}.device-label-content .name{color:#1e293b;font-weight:600}.device-label-content .key{color:#64748b;background:#f1f5f9;border-radius:4px;padding:2px 4px;font-family:monospace;font-size:.7rem}.tts-vars-list{flex-direction:column;gap:8px;display:flex}.tts-var-row{align-items:center;gap:8px;display:flex}.tts-var-row input{flex:1}.tts-var-eq{color:#94a3b8;flex-shrink:0;font-size:1rem;font-weight:700}.map-mgmt{max-width:1400px;margin:0 auto;padding:24px}.map-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;margin-top:24px;display:grid}.map-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;flex-direction:column;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;overflow:hidden}.map-card:hover{border-color:var(--primary-color);transform:translateY(-6px);box-shadow:0 12px 24px -8px #0000001f}.map-preview{cursor:pointer;background:#f8fafc;height:200px;position:relative;overflow:hidden}.map-preview img{object-fit:contain;width:100%;height:100%;padding:12px}.map-preview .overlay{color:#fff;opacity:0;background:#1e293b99;flex-direction:column;justify-content:center;align-items:center;gap:8px;transition:opacity .2s;display:flex;position:absolute;inset:0}.map-preview:hover .overlay{opacity:1}.map-info{flex-direction:column;flex:1;gap:16px;padding:20px;display:flex}.info-main h3{color:#1e293b;margin:0 0 10px;font-size:1.1rem;font-weight:700}.tags{gap:8px;display:flex}.tag{border-radius:6px;align-items:center;gap:4px;padding:2px 8px;font-size:.75rem;font-weight:600;display:flex}.tag.floor{color:#64748b;background:#f1f5f9}.tag.bound{color:#16a34a;background:#dcfce7}.tag.unbound{color:#ef4444;background:#fee2e2}.info-meta{color:#94a3b8;justify-content:space-between;font-size:.8rem;display:flex}.info-meta span{align-items:center;gap:4px;display:flex}.card-actions{border-top:1px solid #f1f5f9;justify-content:flex-end;margin-top:auto;padding-top:12px;display:flex}.modal-content.map-detail-modal{flex-direction:column;width:95%;max-width:1300px;max-height:95vh;padding:0;display:flex;overflow:hidden}.modal-header{background:#f8fafc;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h2{color:#1e293b;margin:0;font-size:1.25rem}.close-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:4px;transition:all .2s;display:flex}.close-btn:hover{color:#ef4444;background:#e2e8f0}.detail-layout{flex:1;grid-template-columns:1fr 340px;gap:24px;padding:24px;display:grid;overflow-y:auto}.detail-preview{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;height:68vh;padding:0;display:block;position:relative;overflow:auto}.detail-preview img{object-fit:contain;max-width:100%;max-height:72vh}.detail-info{flex-direction:column;gap:16px;display:flex}.info-group label{color:#94a3b8;text-transform:uppercase;margin-bottom:4px;font-size:.75rem;font-weight:700;display:block}.info-group p{color:#1e293b;margin:0;font-size:1rem;font-weight:600}.md5-code{word-break:break-all;background:#f1f5f9;border-radius:4px;padding:2px 6px;font-family:monospace;font-size:.8rem}.link-text{color:var(--primary-color);font-size:.9rem;font-weight:600;text-decoration:none}.link-text:hover{text-decoration:underline}.search-box{background:#fff;border:1px solid #e2e8f0;border-radius:12px;align-items:center;gap:10px;width:260px;height:42px;padding:0 16px;transition:all .2s;display:flex}.search-box:focus-within{border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a}.search-box input{background:0 0;border:none;outline:none;width:100%;font-size:.9rem}.loading-state,.empty-state{text-align:center;color:#94a3b8;flex-direction:column;align-items:center;gap:16px;padding:80px;display:flex}.modal-content form{padding:24px}.form-item{flex-direction:column;gap:8px;margin-bottom:20px;display:flex}.form-item input,.form-item textarea{border:1px solid #e2e8f0;border-radius:10px;outline:none;padding:12px;font-size:.95rem;transition:border-color .2s}.form-item input:focus,.form-item textarea:focus{border-color:var(--primary-color)}.map-remark{color:#475569;word-break:break-all;background:#f8fafc;border-left:3px solid #cbd5e1;border-radius:4px;margin-top:8px;padding:8px 12px;font-size:.85rem;line-height:1.4}.modal-content.point-mgmt-modal{flex-direction:column;width:95%;max-width:1300px;max-height:90vh;display:flex}.point-mgmt-content{flex:1;padding:24px;overflow-y:auto}.inherit-panel{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;padding:16px;transition:all .2s;display:flex}.inherit-panel:hover{border-color:var(--primary-color);background:#f0f7ff}.inherit-panel .panel-title{color:#334155;align-items:center;gap:8px;font-size:.9rem;font-weight:700;display:flex}.inherit-panel .panel-actions{align-items:center;gap:10px;display:flex}.inherit-select{cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:8px;outline:none;min-width:200px;padding:8px 12px;font-size:.85rem}.inherit-select:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px #2563eb1a}.modal-filters{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.modal-search-box{background:#f1f5f9;border:1px solid #0000;border-radius:10px;flex:1;align-items:center;gap:8px;max-width:320px;padding:8px 14px;transition:all .2s;display:flex}.modal-search-box:focus-within{border-color:var(--primary-color);background:#fff;box-shadow:0 0 0 2px #2563eb1a}.modal-search-box input{color:#1e293b;background:0 0;border:none;outline:none;width:100%;font-size:.85rem}.modal-checkbox-filter{color:#64748b;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:.85rem;display:flex}.modal-checkbox-filter input[type=checkbox]{cursor:pointer;width:16px;height:16px;accent-color:var(--primary-color)}.table-wrapper{background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:16px;overflow-x:auto}.points-table{border-collapse:collapse;text-align:left;width:100%;font-size:.9rem}.points-table th{color:#64748b;text-transform:uppercase;letter-spacing:.05em;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:14px 16px;font-size:.75rem;font-weight:700}.points-table td{color:#334155;vertical-align:middle;border-bottom:1px solid #f1f5f9;padding:12px 16px}.points-table tr:last-child td{border-bottom:none}.points-table tr:hover{background:#f8fafc}.points-table tr.deleted-row{opacity:.6;background-color:#fef2f2}.inline-edit-input{color:#1e293b;background:0 0;border:1px solid #0000;border-radius:8px;width:100%;padding:6px 10px;font-size:.9rem;font-weight:500;transition:all .2s}.inline-edit-input:hover{background:#f8fafc;border-color:#e2e8f0}.inline-edit-input:focus{border-color:var(--primary-color);background:#fff;outline:none;box-shadow:0 0 0 2px #2563eb1a}.switch{width:38px;height:20px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.slider{cursor:pointer;background-color:#cbd5e1;border-radius:20px;transition:all .2s cubic-bezier(.4,0,.2,1);position:absolute;inset:0}.slider:before{content:"";background-color:#fff;border-radius:50%;width:14px;height:14px;transition:all .2s cubic-bezier(.4,0,.2,1);position:absolute;bottom:3px;left:3px;box-shadow:0 1px 3px #00000026}input:checked+.slider{background-color:#10b981}input:checked+.slider:before{transform:translate(18px)}.badge-key{color:#475569;background:#f1f5f9;border-radius:6px;padding:4px 8px;font-family:monospace;font-size:.8rem}.deleted-badge{color:#ef4444;background:#fee2e2;border-radius:99px;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-block}.points-table-empty{text-align:center;color:#94a3b8;padding:40px;font-size:.9rem}.map-visualizer-container{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;max-width:100%;display:inline-block;position:relative;overflow:hidden;box-shadow:0 10px 25px -5px #0000001a,0 8px 10px -6px #0000001a}.map-point-pin:hover .pin-dot{box-shadow:0 0 12px var(--primary-color);transform:translate(-50%,-50%)scale(1.35)}.pin-dot:after{content:"";border:2px solid var(--primary-color);opacity:0;border-radius:50%;animation:2s ease-out infinite pin-pulse;position:absolute;inset:-2px}@keyframes pin-pulse{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(1.8)}}.pin-label{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;background:#0f172ad9;border:1px solid #ffffff26;border-radius:6px;max-width:130px;padding:2px 8px;font-size:.7rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);position:absolute;top:10px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 2px 6px #0000004d}.map-point-pin:hover .pin-label{border-color:var(--primary-color);background:#0f172af2;transform:translate(-50%)scale(1.05);box-shadow:0 4px 12px #0006}.map-point-pin.hidden-pin .pin-dot:after{border-color:#94a3b8}.map-point-pin.hidden-pin .pin-label{opacity:.65;background:#475569d9}.map-point-pin.tour-pin .pin-dot:after{border-color:#10b981}.map-point-pin.tour-pin .pin-label{border-color:#10b9814d}.scene-binding-row{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;gap:8px;margin-top:4px;padding:10px 12px;display:flex}.scene-binding-value{color:#1e293b;word-break:break-all;align-items:center;gap:4px;font-size:.85rem;font-weight:600;display:flex}.scene-binding-value.unbound{color:#94a3b8;font-style:italic;font-weight:500}.scene-binding-actions{gap:8px;margin-top:4px;display:flex}.btn-bind-text{cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:.8rem;font-weight:600;transition:all .2s}.btn-bind-text.add{color:var(--primary-color);background:#2563eb14;align-self:flex-start}.btn-bind-text.add:hover{background:#2563eb26}.btn-bind-text.edit{color:var(--primary-color);background:#2563eb0d}.btn-bind-text.edit:hover{background:#2563eb1f}.btn-bind-text.delete{color:#ef4444;background:#ef44440d}.btn-bind-text.delete:hover{background:#ef44441f}.tag.bound{text-overflow:ellipsis;white-space:nowrap;max-width:170px;overflow:hidden}.scene-select:focus{outline:none;box-shadow:0 0 0 3px #2563eb26;border-color:var(--primary-color)!important}.qa-config{width:100%;max-width:1200px;margin:0}@keyframes qaToastIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.qa-table{border-collapse:collapse;text-align:left;width:100%}.qa-table th{color:#64748b;text-transform:uppercase;letter-spacing:.05em;background:#f8fafc;border-bottom:1px solid #edf2f7;padding:16px 20px;font-size:.82rem;font-weight:700}.qa-table td{vertical-align:middle;color:#102a43;border-bottom:1px solid #f1f5f9;padding:16px 20px;font-size:.9rem}.qa-table-row{cursor:pointer;transition:all .2s}.qa-table-row:hover,.qa-table-row.row-expanded{background-color:#f8fafc}.question-col{vertical-align:middle}.question-cell-content{align-items:center;gap:12px;display:flex}.row-toggle-icon{color:#94a3b8;flex-shrink:0;transition:transform .25s cubic-bezier(.25,.8,.25,1),color .2s;transform:rotate(-90deg)}.row-toggle-icon.rotated{color:var(--primary-color,#2563eb);transform:rotate(0)}.main-question-text{color:#1e293b;text-align:left;white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:600;overflow:hidden}.qa-table-row:hover .main-question-text{color:var(--primary-color,#2563eb)}.qa-table-row.row-expanded .main-question-text{white-space:normal;text-overflow:clip;overflow:visible}.qa-detail-row.hidden{display:none}.qa-detail-row.visible{display:table-row}.detail-row-wrapper{background:#fdfdfe;grid-template-rows:0fr;transition:grid-template-rows .3s cubic-bezier(.25,.8,.25,1);display:grid;overflow:hidden}.qa-detail-row.visible .detail-row-wrapper{grid-template-rows:1fr}.detail-row-content{border-bottom:1px solid #f1f5f9;flex-direction:column;gap:16px;min-height:0;padding:0 20px 20px 48px;transition:padding .3s cubic-bezier(.25,.8,.25,1);display:flex}.qa-detail-row.visible .detail-row-content{padding:20px 20px 24px 48px}.qa-section{flex-direction:column;gap:8px;display:flex}.section-label{color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:6px;font-size:.75rem;font-weight:700;display:flex}.question-tags{flex-wrap:wrap;gap:6px;display:flex}.q-tag{color:#475569;background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:4px 10px;font-size:.8rem;font-weight:500;transition:all .2s;box-shadow:0 1px 2px #00000005}.q-tag:hover{color:#1e293b;border-color:#cbd5e1;transform:translateY(-1px)}.answer-text{color:#334155;border:1px solid #f1f5f9;border-radius:12px;padding:16px;font-size:.925rem;line-height:1.6;box-shadow:inset 0 1px 2px #00000003}.qa-section.answer-section.global .answer-text{background:linear-gradient(90deg,#eff6ff 0%,#f8fafc 100%);border-left:4px solid #3b82f6}.qa-section.answer-section.group .answer-text{background:linear-gradient(90deg,#faf5ff 0%,#f8fafc 100%);border-left:4px solid #8b5cf6}.qa-section.answer-section.scene .answer-text{background:linear-gradient(90deg,#f0fdf4 0%,#f8fafc 100%);border-left:4px solid #10b981}.empty-row{text-align:center;color:#64748b;cursor:pointer;background:#f8fafc;transition:all .3s;padding:60px 20px!important}.empty-row:hover{background:#f1f5f9}.empty-row p{margin:0;font-size:1.05rem;font-weight:500}.plus-icon{width:80px;height:80px;color:var(--primary-color,#3b82f6);background:#fff;border:1px solid #e2e8f0;border-radius:50%;justify-content:center;align-items:center;margin:0 auto;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 8px 24px -6px #3b82f626}.empty-row:hover .plus-icon{border-color:var(--primary-color,#3b82f6);transform:scale(1.1)translateY(-4px);box-shadow:0 12px 28px -6px #3b82f640}.modal-content.qa-modal{flex-direction:column;max-width:680px;max-height:88vh;display:flex}.modal-content.qa-modal>h2{flex-shrink:0;padding:20px 24px 0}.modal-content.qa-modal>form{flex-direction:column;flex:1;min-height:0;padding:0;display:flex}.modal-content.qa-modal .qa-modal-scroll{flex:1;min-height:0;padding:16px 24px;overflow-y:auto}.modal-content.qa-modal .modal-footer{flex-shrink:0;padding:16px 24px}.actions-editor{flex-direction:column;gap:10px;display:flex}.action-row{background:#fafafa;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.action-row-header{background:#f1f5f9;border-bottom:1px solid #e2e8f0;align-items:center;gap:10px;padding:10px 12px;display:flex}.action-index{background:var(--primary-color,#2563eb);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:.75rem;font-weight:700;display:flex}.action-type-select{color:#1e293b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;outline:none;flex:1;padding:6px 10px;font-size:.875rem;font-weight:600}.action-type-select:focus{border-color:var(--primary-color,#2563eb);box-shadow:0 0 0 2px #2563eb1a}.action-row-params{flex-direction:column;gap:8px;padding:12px;display:flex}.action-row-params input,.action-row-params textarea,.action-row-params select{box-sizing:border-box;width:100%}.action-params-row{gap:10px;display:flex}.action-params-row input{flex:1}.tts-params{flex-direction:column;gap:8px;display:flex}.tts-params select{width:100%}.navigate-params{flex-direction:column;gap:8px;display:flex}.navigate-params select{width:100%}.volume-params{flex-direction:column;gap:8px;display:flex}.volume-params select{width:100%}.volume-slider-row{align-items:center;gap:10px;display:flex}.volume-slider-row input[type=range]{flex:1}.volume-value-label{text-align:right;min-width:40px;color:var(--text-primary,#1e293b);font-size:.85rem;font-weight:600}.play-music-params{flex-direction:column;gap:8px;display:flex}.play-music-params select{width:100%}.motion-params{flex-direction:column;gap:10px;display:flex}.motion-params>select{width:100%}.motion-sliders{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;gap:10px;padding:10px 12px;display:flex}.motion-slider-row{flex-direction:column;gap:4px;display:flex}.motion-slider-row label{color:#64748b;justify-content:space-between;font-size:.8rem;font-weight:600;display:flex}.motion-slider-row label span:last-child{color:var(--primary-color,#2563eb);font-weight:700}.motion-slider-row input[type=range]{width:100%;accent-color:var(--primary-color,#2563eb)}.action-no-params{color:#64748b;font-size:.85rem;font-style:italic}.action-chips{flex-wrap:wrap;gap:4px;display:flex}.action-chip{white-space:nowrap;text-overflow:ellipsis;border-radius:6px;align-items:center;max-width:160px;padding:3px 8px;font-size:.75rem;font-weight:600;display:inline-flex;overflow:hidden}.action-chip-tts{color:#2563eb;background:#eff6ff;border:1px solid #dbeafe}.action-chip-navigate{color:#16a34a;background:#f0fdf4;border:1px solid #dcfce7}.action-chip-motion{color:#ea580c;background:#fff7ed;border:1px solid #fed7aa}.action-chip-volume{color:#7c3aed;background:#faf5ff;border:1px solid #ede9fe}.action-chip-open_app{color:#0891b2;background:#ecfeff;border:1px solid #cffafe}.action-chip-charge{color:#ca8a04;background:#fefce8;border:1px solid #fef08a}.action-chip-door{color:#475569;background:#f8fafc;border:1px solid #e2e8f0}.action-chip-open_page{color:#be185d;background:#fff1f8;border:1px solid #fce7f3}.action-detail-list{flex-direction:column;gap:6px;display:flex}.action-detail-item{border-radius:8px;align-items:baseline;gap:10px;padding:8px 14px;font-size:.875rem;display:flex}.action-detail-type{flex-shrink:0;min-width:60px;font-weight:700}.action-detail-params{color:#475569;line-height:1.5}.questions-form-list{flex-direction:column;gap:12px;display:flex}.question-input-row{gap:10px;display:flex}.question-input-row input{flex:1}.btn-remove{color:#ef4444;cursor:pointer;background:#fff1f2;border:none;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;transition:all .2s;display:flex}.btn-remove:hover:not(:disabled){background:#ffe4e6;transform:scale(1.05)}.btn-remove:disabled{opacity:.3;cursor:not-allowed}.btn-add-q{border:1px dashed var(--primary-color);color:var(--primary-color);cursor:pointer;background:0 0;border-radius:8px;align-self:flex-start;align-items:center;gap:6px;padding:8px 16px;font-size:.875rem;font-weight:600;transition:all .2s;display:flex}.btn-add-q:hover{background:#eff6ff;transform:translate(4px)}.header-actions{align-items:center;gap:16px;display:flex}.search-bar{background:#fff;border:1px solid #e2e8f0;border-radius:12px;align-items:center;width:280px;height:42px;padding:0 12px;transition:all .3s;display:flex;position:relative}.search-bar:focus-within{border-color:var(--primary-color);width:320px;box-shadow:0 0 0 3px #2563eb1a}.search-bar .search-icon{color:#94a3b8;pointer-events:none;flex-shrink:0;margin-right:8px;position:static}.search-bar input{color:#1e293b;background:0 0;border:none;outline:none;flex:1;padding:0;font-size:.9rem}.btn-clear-search{color:#64748b;cursor:pointer;background:#f1f5f9;border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;transition:all .2s;display:flex}.btn-clear-search:hover{color:#1e293b;background:#e2e8f0}@media (width<=768px){.header-actions{flex-direction:column;align-items:stretch;width:100%}.search-bar{width:100%!important}}.test-modal{max-width:700px}.test-results{flex-direction:column;gap:12px;max-height:400px;margin-top:20px;display:flex;overflow-y:auto}.test-result-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;gap:8px;padding:16px;display:flex}.test-result-header{justify-content:space-between;align-items:center;display:flex}.test-result-score{color:#10b981;background:#d1fae5;border-radius:8px;padding:4px 8px;font-size:.85rem;font-weight:700}.test-result-match{color:#64748b;font-size:.9rem}.test-result-answer{color:#1e293b;font-size:.95rem;line-height:1.5}.scope-filters{background:#f1f5f9;border-radius:12px;align-self:flex-start;gap:8px;margin-bottom:24px;padding:4px;display:flex}.scope-filter-btn{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 16px;font-size:.9rem;font-weight:600;transition:all .2s}.scope-filter-btn:hover{color:#1e293b}.scope-filter-btn.active{color:var(--primary-color,#2563eb);background:#fff;box-shadow:0 1px 3px #0000001a}.scope-badge{border-radius:6px;align-items:center;gap:6px;padding:4px 8px;font-size:.8rem;font-weight:600;display:inline-flex}.scope-badge.global{color:#2563eb;background:#eff6ff;border:1px solid #dbeafe}.scope-badge.group{color:#7c3aed;background:#faf5ff;border:1px solid #f3e8ff}.scope-badge.scene{color:#16a34a;background:#f0fdf4;border:1px solid #dcfce7}.scope-badge.compact{border-radius:4px;padding:2px 6px;font-size:.75rem}.compact-owner-name{white-space:nowrap;text-overflow:ellipsis;pointer-events:none;border-radius:6px;max-width:140px;padding:4px 8px;font-size:.75rem;font-weight:600;overflow:hidden}.compact-owner-name.group{color:#7c3aed;background:#f5f3ff;border:1px solid #ede9fe}.compact-owner-name.scene{color:#16a34a;background:#f0fdf4;border:1px solid #dcfce7}.read-only-badge{color:#94a3b8;background:#f8fafc;border:1px dashed #e2e8f0;border-radius:6px;padding:4px 8px;font-size:.75rem}.scope-link.compact{color:#64748b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s cubic-bezier(.25,.8,.25,1);display:inline-flex;box-shadow:0 1px 2px #00000005}.scope-link.compact:hover{color:var(--primary-color,#2563eb);background:#eff6ff;border-color:#bfdbfe;transform:scale(1.05)}.btn-icon{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:8px;transition:all .2s;display:inline-flex}.btn-icon:hover{color:#1e293b;background:#f1f5f9}.banner-content h5{color:#1e293b;margin:0 0 4px;font-size:.95rem;font-weight:700}.banner-content p{color:#64748b;margin:0;font-size:.85rem;line-height:1.5}.hotword-search-box .search-icon{color:#94a3b8;pointer-events:none;margin:0;position:absolute;left:14px}.hotword-search-box input{color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:12px;outline:none;width:100%;padding:10px 14px 10px 42px;font-size:.9rem;transition:all .2s}.read-only-badge{color:#94a3b8;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;padding:4px 10px;font-size:.78rem;font-weight:600;transition:all .2s}.read-only-badge:hover{color:var(--primary-color,#2563eb);background:#eff6ff;border-color:#bfdbfe}.inline-edit-wrapper{border-bottom:1px solid #e0e7ff;border-left:3px solid var(--primary-color,#2563eb);background:#fafbff;flex-direction:column;gap:20px;padding:20px 20px 20px 48px;display:flex}.inline-edit-grid{grid-template-columns:1fr 1fr;gap:24px;display:grid}@media (width<=900px){.inline-edit-grid{grid-template-columns:1fr}}.inline-edit-section{flex-direction:column;gap:10px;display:flex}.inline-edit-label{color:#64748b;text-transform:uppercase;letter-spacing:.05em;font-size:.78rem;font-weight:700}.inline-edit-sublabel{color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;margin-top:6px;font-size:.78rem;font-weight:700}.inline-edit-footer{border-top:1px solid #e2e8f0;justify-content:flex-end;gap:10px;padding-top:12px;display:flex}.inline-edit-section>input,.inline-edit-section>textarea{box-sizing:border-box;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:10px;outline:none;width:100%;padding:10px 14px;font-size:.9rem;transition:border-color .2s,box-shadow .2s}.inline-edit-section>input:focus,.inline-edit-section>textarea:focus{border-color:var(--primary-color,#2563eb);box-shadow:0 0 0 3px #2563eb1a}.scene-dashboard{max-width:1200px;margin:0 auto;padding:24px}.dashboard-header{justify-content:space-between;align-items:flex-end;margin-bottom:24px;display:flex}.dashboard-header h1{color:#1e293b;margin:0 0 8px;font-size:24px;font-weight:600}.dashboard-header p{color:#64748b;margin:0;font-size:14px}.ws-status{color:#64748b;background-color:#f1f5f9;border-radius:20px;align-items:center;gap:8px;padding:6px 12px;font-size:14px;display:flex}.ws-status.connected{color:#059669;background-color:#ecfdf5}.ws-status.disconnected{color:#dc2626;background-color:#fef2f2}.robot-grid{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:24px;display:grid}.robot-state-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;flex-direction:column;transition:transform .2s,box-shadow .2s;display:flex;overflow:hidden;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -2px #0000000d}.robot-state-card:hover{transform:translateY(-2px);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.card-top{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:16px;display:flex}.robot-identity{align-items:center;gap:12px;display:flex}.robot-avatar{color:#3b82f6;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.robot-identity h3{color:#0f172a;margin:0;font-size:16px;font-weight:600}.robot-identity p{color:#64748b;margin:4px 0 0;font-size:12px}.status-badge{border-radius:12px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:500;display:flex}.status-badge.online{color:#059669;background-color:#ecfdf5}.status-badge.offline{color:#64748b;background-color:#f1f5f9}.card-body{flex-direction:column;flex-grow:1;gap:16px;padding:16px;display:flex}.state-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.state-item{background:#f8fafc;border-radius:8px;align-items:center;gap:8px;padding:10px 12px;font-size:14px;display:flex}.state-item svg{color:#64748b;flex-shrink:0}.state-info{flex-direction:column;display:flex;overflow:hidden}.state-label{color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;font-size:11px}.state-value{color:#334155;white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.battery-indicator{flex-direction:column;gap:6px;display:flex}.battery-header{color:#64748b;justify-content:space-between;align-items:center;font-size:12px;display:flex}.battery-bar-container{background:#e2e8f0;border-radius:3px;height:6px;overflow:hidden}.battery-bar{border-radius:3px;height:100%;transition:width .3s,background-color .3s}.battery-bar.high{background:#10b981}.battery-bar.medium{background:#f59e0b}.battery-bar.low{background:#ef4444}.card-footer{background:#f8fafc;border-top:1px solid #e2e8f0;flex-wrap:wrap;gap:8px;padding:12px 16px;display:flex}.action-btn{cursor:pointer;color:#475569;background:#fff;border:1px solid #cbd5e1;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.action-btn:hover:not(:disabled){background:#f1f5f9;border-color:#94a3b8}.action-btn.primary{color:#fff;background:#3b82f6;border-color:#0000}.action-btn.primary:hover:not(:disabled){background:#2563eb}.action-btn.danger{color:#ef4444;background:#fef2f2;border-color:#fca5a5}.action-btn.danger:hover:not(:disabled){background:#fee2e2;border-color:#f87171}.action-btn:disabled{opacity:.5;cursor:not-allowed}.modal-content{background:#fff;border-radius:16px;width:100%;max-width:400px;padding:24px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.modal-content h2{color:#1e293b;margin:0 0 16px;font-size:20px}.modal-content .hint{color:#64748b;margin-bottom:20px;font-size:14px}.form-item{margin-bottom:16px}.form-item label{color:#334155;margin-bottom:6px;font-size:14px;font-weight:500;display:block}.form-item input{box-sizing:border-box;border:1px solid #cbd5e1;border-radius:8px;outline:none;width:100%;padding:10px 12px;font-size:14px;transition:border-color .2s,box-shadow .2s}.form-item input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.btn-secondary:hover{color:#0f172a;background:#f8fafc}.robot-control-panel{flex-direction:column;max-width:1200px;height:calc(100vh - 100px);margin:0 auto;padding:24px;display:flex}.panel-header{align-items:center;gap:16px;margin-bottom:24px;display:flex}.btn-back{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:8px;padding:8px 16px;font-size:14px;transition:all .2s;display:flex}.btn-back:hover{color:#0f172a;background:#f8fafc}.header-info{align-items:center;gap:16px;display:flex}.header-info h1{color:#1e293b;margin:0;font-size:24px;font-weight:600}.sn-badge{color:#64748b;background:#f1f5f9;border-radius:12px;padding:4px 10px;font-family:monospace;font-size:13px}.elevator-support-badge{align-items:center;gap:5px;font-family:inherit;font-weight:600;transition:all .15s;display:inline-flex}.elevator-support-badge:disabled{opacity:.6;cursor:default}.elevator-support-badge.on{color:#15803d;background:#dcfce7}.panel-content{flex-grow:1;gap:24px;min-height:0;display:flex}.map-section{background:#fff;border:1px solid #e2e8f0;border-radius:16px;flex-direction:column;flex-grow:1;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 6px -1px #0000000d}.map-header{background:#f8fafc;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.map-title{color:#334155;align-items:center;gap:8px;font-weight:500;display:flex}.btn-back-to-floor{color:#2563eb;cursor:pointer;background:#eff6ff;border:1px solid #bfdbfe;border-radius:99px;align-items:center;gap:4px;margin-left:8px;padding:3px 10px;font-size:12px;font-weight:500;transition:all .2s;display:flex}.btn-back-to-floor:hover{background:#dbeafe}.floor-switcher{background:#fff;border-bottom:1px solid #e2e8f0;align-items:center;gap:8px;padding:10px 20px;display:flex;overflow-x:auto}.floor-switcher-label{color:#94a3b8;flex-shrink:0;align-items:center;gap:4px;font-size:12px;display:flex}.floor-btn{color:#475569;cursor:pointer;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:99px;flex-shrink:0;padding:5px 14px;font-size:13px;font-weight:500;transition:all .2s;position:relative}.floor-btn:hover{background:#e2e8f0}.floor-btn.active{color:#fff;background:#3b82f6;border-color:#3b82f6}.floor-btn.robot-here:after{content:"";background:#10b981;border:2px solid #fff;border-radius:50%;width:8px;height:8px;position:absolute;top:-2px;right:-2px}.map-container{background:#e2e8f0;flex-grow:1;display:block;position:relative;overflow:hidden}.zoom-controls{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172ad9;border:1px solid #ffffff26;border-radius:99px;align-items:center;gap:4px;padding:6px 12px;display:flex;position:absolute;top:16px;right:16px;box-shadow:0 10px 20px #00000026}.btn-zoom{color:#ffffffe6;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;transition:all .2s;display:flex}.btn-zoom:hover:not(:disabled){color:#fff;background:#fff3}.btn-zoom:disabled{color:#ffffff59;cursor:not-allowed}.zoom-indicator{color:#fff;text-align:center;-webkit-user-select:none;user-select:none;min-width:44px;font-family:monospace;font-size:.8rem;font-weight:700}.visualizer-scroll-wrapper{pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.map-visualizer-container{pointer-events:auto;background:#f8fafc;border-radius:12px;max-width:100%;display:inline-block;position:relative;overflow:hidden;box-shadow:0 10px 25px -5px #0000001a}.map-visualizer-container img{object-fit:contain;max-width:100%;max-height:72vh;display:block}.robot-marker{z-index:10;background:#3b82f6;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;transition:left .3s linear,top .3s linear,transform .3s;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 8px #0000004d}.robot-marker:after{content:"";border:4px solid #0000;border-top-width:0;border-bottom:8px solid #3b82f6;margin-left:-4px;position:absolute;top:-8px;left:50%}.map-point-pin{z-index:5;cursor:pointer;justify-content:center;align-items:center;width:0;height:0;display:flex;position:absolute}.map-point-pin:hover{z-index:15}.pin-dot{background-color:#64748b;border:2px solid #fff;border-radius:50%;width:10px;height:10px;transition:transform .2s;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 6px #64748bb3}.map-point-pin:hover .pin-dot{transform:translate(-50%,-50%)scale(1.3);box-shadow:0 0 10px #64748b}.pin-label{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;white-space:nowrap;pointer-events:none;background:#0f172ad9;border:1px solid #ffffff26;border-radius:4px;padding:2px 6px;font-size:.7rem;font-weight:600;transition:all .2s;position:absolute;top:8px;left:50%;transform:translate(-50%);box-shadow:0 2px 4px #0000004d}.map-point-pin:hover .pin-label{background:#0f172af2;transform:translate(-50%)scale(1.05)}.map-point-pin.hidden-pin .pin-dot{background-color:#cbd5e1;box-shadow:0 0 4px #cbd5e180}.map-point-pin.hidden-pin .pin-label{background:#475569b3}.map-point-pin.tour-pin .pin-dot{background-color:#10b981;box-shadow:0 0 8px #10b981b3}.control-section{flex-direction:column;gap:24px;width:320px;display:flex;overflow-y:auto}.control-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:20px;box-shadow:0 4px 6px -1px #0000000d}.control-card h3{color:#1e293b;align-items:center;gap:8px;margin:0 0 16px;font-size:16px;font-weight:600;display:flex}.d-pad-container{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);gap:8px;width:200px;height:200px;margin:0 auto;display:grid}.d-pad-btn{color:#475569;cursor:pointer;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:12px;justify-content:center;align-items:center;transition:all .1s;display:flex;box-shadow:0 2px #cbd5e1}.d-pad-btn:active{background:#e2e8f0;transform:translateY(2px);box-shadow:0 0 #cbd5e1}.d-pad-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:0 2px #cbd5e1}.d-pad-btn.up{grid-area:1/2}.d-pad-btn.left{grid-area:2/1}.d-pad-btn.right{grid-area:2/3}.d-pad-btn.down{grid-area:3/2}.d-pad-center{background:#e2e8f0;border-radius:50%;grid-area:2/2;justify-content:center;align-items:center;margin:8px;display:flex}.d-pad-center .dot{background:#94a3b8;border-radius:50%;width:8px;height:8px}.state-list{flex-direction:column;gap:12px;display:flex}.state-row{justify-content:space-between;align-items:center;font-size:14px;display:flex}.state-row .label{color:#64748b}.state-row .value{color:#1e293b;font-weight:500}.motion-parameters{border-top:1px solid #f1f5f9;flex-direction:column;gap:16px;margin-top:16px;padding-top:16px;display:flex}.param-group{flex-direction:column;gap:8px;display:flex}.param-group h4{color:#1e293b;margin:0 0 4px;font-size:13px;font-weight:600}.control-row{flex-direction:column;gap:6px;display:flex}.control-row label{color:#64748b;justify-content:space-between;font-size:12px;display:flex}.control-row input[type=range]{width:100%}.map-point-pin.clickable-pin{cursor:pointer}.map-point-pin.nav-target-pin .pin-dot{background-color:#f59e0b;transform:translate(-50%,-50%)scale(1.4);box-shadow:0 0 12px #f59e0be6}.map-point-pin.nav-target-pin .pin-label{color:#1c1c1c;background:#f59e0bf2}.nav-status-card{background:#fffbeb;border-color:#fcd34d!important}.nav-status-row{color:#92400e;align-items:center;gap:8px;font-size:14px;font-weight:500;display:flex}.nav-spin-icon{color:#f59e0b;flex-shrink:0;animation:2s linear infinite nav-spin}@keyframes nav-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn-nav-cancel{color:#92400e;cursor:pointer;background:#fef3c7;border:1px solid #fcd34d;border-radius:6px;align-items:center;gap:4px;margin-left:auto;padding:4px 10px;font-size:13px;transition:all .2s;display:flex}.btn-nav-cancel:hover{background:#fde68a}.tts-input-row{flex-direction:column;gap:8px;display:flex}.tts-textarea{color:#1e293b;resize:none;box-sizing:border-box;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;width:100%;padding:10px 12px;font-family:inherit;font-size:14px;transition:border-color .2s}.tts-textarea:focus{background:#fff;border-color:#6366f1;outline:none}.tts-textarea:disabled{opacity:.5;cursor:not-allowed}.tts-footer{justify-content:space-between;align-items:center;display:flex}.tts-char-count{color:#94a3b8;font-size:12px}.btn-tts-send{color:#fff;cursor:pointer;background:#6366f1;border:none;border-radius:8px;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.btn-tts-send:hover:not(:disabled){background:#4f46e5}.btn-tts-send:disabled{opacity:.5;cursor:not-allowed}.btn-charge{color:#fff;cursor:pointer;background:#10b981;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;width:100%;padding:12px;font-size:15px;font-weight:600;transition:all .2s;display:flex}.btn-charge:hover:not(:disabled){background:#059669}.btn-charge.charging{color:#065f46;background:#6ee7b7}.btn-charge:disabled{opacity:.55;cursor:not-allowed}.charge-btn-group{gap:8px;display:flex}.btn-stop-charge{background:#ef4444}.btn-stop-charge:hover:not(:disabled){background:#dc2626}.btn-stop-charge.charging{color:#7f1d1d;background:#fca5a5}.launch-app-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.launch-app-grid .btn-charge{padding:10px;font-size:13px}.cmd-input-group{flex-direction:column;gap:8px;display:flex}.cmd-input{color:#1e293b;box-sizing:border-box;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;width:100%;padding:9px 12px;font-family:monospace;font-size:14px;transition:border-color .2s}.cmd-input:focus{background:#fff;border-color:#6366f1;outline:none}.cmd-input:disabled{opacity:.5;cursor:not-allowed}.cmd-params-input{color:#475569;box-sizing:border-box;resize:none;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;width:100%;padding:9px 12px;font-family:monospace;font-size:12px;transition:border-color .2s}.cmd-params-input:focus{background:#fff;border-color:#6366f1;outline:none}.cmd-params-input:disabled{opacity:.5;cursor:not-allowed}.cmd-error{color:#ef4444;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;margin:0;padding:6px 8px;font-size:12px}.btn-cmd-send{color:#fff;cursor:pointer;background:#334155;border:none;border-radius:8px;justify-content:center;align-self:flex-end;align-items:center;gap:6px;min-width:80px;padding:9px 14px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.btn-cmd-send:hover:not(:disabled){background:#1e293b}.btn-cmd-send:disabled{opacity:.5;cursor:not-allowed}.nav-dialog-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:1000;background:#0f172a73;justify-content:center;align-items:center;animation:.15s fade-in;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.nav-dialog{text-align:center;background:#fff;border-radius:16px;width:320px;padding:32px 28px 24px;animation:.18s cubic-bezier(.4,0,.2,1) slide-up;box-shadow:0 20px 60px #0003}@keyframes slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.nav-dialog-icon{color:#3b82f6;background:#eff6ff;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 16px;display:flex}.nav-dialog h3{color:#1e293b;margin:0 0 10px;font-size:17px;font-weight:600}.nav-dialog p{color:#64748b;margin:0 0 24px;font-size:14px;line-height:1.6}.nav-dialog p strong{color:#1e293b;font-size:15px}.nav-dialog-warning{color:#92400e;text-align:left;background:#fffbeb;border:1px solid #fcd34d;border-radius:8px;margin:-12px 0 20px;padding:8px 12px;font-size:12px;line-height:1.5}.nav-dialog-actions{gap:10px;display:flex}.btn-dialog-cancel{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;flex:1;padding:10px;font-size:14px;transition:all .2s}.btn-dialog-cancel:hover{color:#1e293b;background:#f8fafc}.btn-dialog-confirm{color:#fff;cursor:pointer;background:#3b82f6;border:none;border-radius:8px;flex:2;justify-content:center;align-items:center;gap:6px;padding:10px;font-size:14px;font-weight:600;transition:all .2s;display:flex}.btn-dialog-confirm:hover{background:#2563eb}.modal-content{background:#fff;border-radius:20px;width:100%;max-width:480px;padding:24px 28px;overflow:hidden;box-shadow:0 20px 25px -5px #0000001a}.modal-content h2{color:#1e293b;margin:0 0 20px;font-size:18px;font-weight:700}.modal-content.modal-charge-settings{flex-direction:column;max-height:85vh;padding:0;display:flex}.modal-charge-settings .charge-settings-title{flex-shrink:0;margin:0;padding:24px 28px 0}.modal-charge-settings .charge-settings-form{flex-direction:column;flex:1;min-height:0;display:flex}.modal-charge-settings .charge-settings-body{flex:1;min-height:0;padding:20px 28px 0;overflow-y:auto}.modal-charge-settings .modal-footer{background:#fff;border-top:1px solid #e2e8f0;flex-shrink:0;margin:0;padding:16px 28px}.charge-settings-loading{text-align:center;color:#94a3b8;padding:40px 28px}.toggle-label{cursor:pointer;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;padding:14px 16px;display:flex}.toggle-info{flex-direction:column;gap:3px;display:flex}.toggle-name{color:#1e293b;font-size:.95rem;font-weight:600}.toggle-desc{color:#94a3b8;font-size:.8rem}.toggle-switch{cursor:pointer;background:#cbd5e1;border-radius:99px;flex-shrink:0;width:44px;height:24px;transition:background .2s;position:relative}.toggle-switch.on{background:var(--primary-color,#2563eb)}.toggle-knob{background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.toggle-switch.on .toggle-knob{transform:translate(20px)}.form-item{flex-direction:column;gap:8px;margin-bottom:20px;transition:opacity .2s;display:flex}.form-item.disabled{opacity:.5}.form-item label{color:#475569;font-size:.85rem;font-weight:700}.form-item input{border:1px solid #e2e8f0;border-radius:10px;outline:none;padding:12px;font-size:.95rem;transition:border-color .2s}.form-item input:focus{border-color:var(--primary-color)}.charge-schedule-row{align-items:center;gap:10px;margin-bottom:10px;display:flex}.charge-schedule-row input{border:1px solid #e2e8f0;border-radius:10px;flex:1;padding:12px;font-size:.95rem}.charge-schedule-empty-hint{color:#94a3b8;margin-bottom:10px;font-size:.85rem}.btn-icon{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:all .2s;display:flex}.btn-icon:hover:not(:disabled){background:#f8fafc}.btn-icon.delete{color:#ef4444;border-color:#fecaca}.btn-icon.delete:hover:not(:disabled){background:#fef2f2}.btn-add-charge-schedule{align-items:center;gap:6px;width:fit-content;display:flex}.modal-footer{justify-content:flex-end;gap:12px;margin-top:8px;display:flex}.asr-config-container{flex-direction:column;gap:24px;width:100%;max-width:1200px;margin:0;padding:10px 0 40px;display:flex}.asr-header{justify-content:space-between;align-items:center;display:flex}.asr-header .action-buttons{gap:12px;display:flex}.icon-badge{background:var(--primary-color,#2563eb);color:#fff;border-radius:14px;justify-content:center;align-items:center;width:48px;height:48px;display:flex;box-shadow:0 8px 16px -4px #2563eb4d}.model-intro-cards{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.intro-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;flex-direction:column;gap:12px;padding:20px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex}.intro-card:hover{border-color:#cbd5e1;transform:translateY(-4px);box-shadow:0 12px 20px -8px #00000014}.intro-header{justify-content:space-between;align-items:center;display:flex}.model-icon-resident{color:#0f172a}.model-icon-qwen{color:#eab308}.model-icon-fun{color:#8b5cf6}.cost-badge{border-radius:6px;padding:4px 8px;font-size:.75rem;font-weight:700}.cost-badge.resident{color:#475569;background:#f1f5f9}.cost-badge.qwen{color:#a16207;background:#fef9c3}.cost-badge.fun{color:#6b21a8;background:#f3e8ff}.intro-card h3{color:#1e293b;margin:0;font-size:1rem;font-weight:700}.intro-card p{color:#64748b;margin:0;font-size:.85rem;line-height:1.5}.group-config-layout{grid-template-columns:380px 1fr;align-items:start;gap:24px;display:grid}.config-card{background:#fff;border:1px solid #e2e8f0;border-radius:20px;overflow:hidden;box-shadow:0 1px 3px #00000005}.config-card .card-header{border-bottom:1px solid #f1f5f9;padding:24px 24px 20px}.config-card .card-header h2{color:#1e293b;margin:0 0 6px;font-size:1.15rem;font-weight:700}.config-card .card-header p{color:#64748b;margin:0;font-size:.85rem;line-height:1.4}.config-card .card-body{padding:24px}.active-model-display{background:#f8fafc;border:1px solid #f1f5f9;border-radius:14px;align-items:center;gap:16px;margin-bottom:20px;padding:20px;display:flex}.active-model-display h4{color:#1e293b;margin:0 0 4px;font-size:.95rem;font-weight:700}.active-model-display p{color:#64748b;margin:0;font-size:.75rem}.model-options-list{flex-direction:column;gap:10px;margin-bottom:20px;display:flex}.model-options-list.horizontal{flex-direction:row;grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.model-option-item{cursor:pointer;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;align-items:center;gap:12px;padding:16px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.model-options-list.horizontal .model-option-item{text-align:center;flex-direction:column;align-items:center;padding:24px 16px}.model-option-item:hover{background:#f1f5f9;border-color:#cbd5e1}.model-option-item.selected{border-color:var(--primary-color,#2563eb);background:#eff6ff}.option-check{background:#fff;border:1.5px solid #cbd5e1;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;transition:all .2s;display:flex;position:absolute;top:12px;right:12px}.model-option-item.selected .option-check{background:var(--primary-color,#2563eb);border-color:var(--primary-color,#2563eb)}.model-option-item h5{color:#1e293b;margin:0;font-size:.9rem;font-weight:600}.small-desc{color:#64748b;font-size:.75rem}.form-actions{justify-content:flex-end;gap:10px;display:flex}.scenes-table-container{overflow-x:auto}.scenes-table{border-collapse:collapse;width:100%}.scenes-table th{text-align:left;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid #f1f5f9;padding:12px 16px;font-size:.8rem;font-weight:700}.scenes-table td{border-bottom:1px solid #f1f5f9;padding:16px;font-size:.9rem}.scene-name-td{color:#1e293b;font-weight:600}.effective-model-cell{color:#334155;align-items:center;gap:8px;font-size:.85rem;display:flex}.badge{border-radius:9999px;padding:4px 10px;font-size:.75rem;font-weight:600;display:inline-block}.badge-custom{color:#0369a1;background:#e0f2fe}.badge-inherit{color:#64748b;background:#f1f5f9}.btn-row-action{color:#334155;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:6px 12px;font-size:.75rem;font-weight:600;transition:all .2s}.btn-row-action:hover{color:#0f172a;background:#f8fafc;border-color:#cbd5e1}.btn-row-action.btn-danger{color:#ef4444;background:#fff5f5;border-color:#fecaca}.btn-row-action.btn-danger:hover{color:#dc2626;background:#fee2e2;border-color:#fca5a5}.single-scene-config-card{max-width:800px;margin:0 auto}.inheritance-banner{background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;gap:12px;margin-bottom:24px;padding:16px;display:flex}.banner-alert-icon{color:#2563eb;flex-shrink:0}.inheritance-banner h5{color:#1e3a8a;margin:0 0 4px;font-size:.9rem;font-weight:700}.inheritance-banner p{color:#1e40af;margin:0;font-size:.8rem;line-height:1.4}.config-mode-selector{grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:24px;display:grid}.mode-option{cursor:pointer;background:#fff;border:2px solid #e2e8f0;border-radius:14px;align-items:flex-start;gap:12px;padding:20px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.mode-option input[type=radio]{accent-color:var(--primary-color,#2563eb);margin-top:4px}.mode-option:hover{border-color:#cbd5e1}.mode-option input[type=radio]:checked+.mode-option-content{border-color:var(--primary-color,#2563eb);background:#f8fafc}.mode-option:has(input[type=radio]:checked){border-color:var(--primary-color,#2563eb);background:#f8fafc}.mode-option-content{align-items:flex-start;gap:12px;display:flex}.mode-option-content svg{color:#64748b;flex-shrink:0;margin-top:2px}.mode-option:has(input[type=radio]:checked) svg{color:var(--primary-color,#2563eb)}.mode-option-content strong{color:#1e293b;margin-bottom:4px;font-size:.95rem;font-weight:700;display:block}.mode-option-content p{color:#64748b;margin:0;font-size:.75rem;line-height:1.4}.custom-model-selector-panel{background:#f8fafc;border:1px dashed #e2e8f0;border-radius:16px;margin-bottom:24px;padding:24px}.save-panel{justify-content:flex-end;display:flex}.btn-large{border-radius:10px;padding:12px 32px;font-size:.95rem}.btn-primary{background:var(--primary-color,#2563eb);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:10px 20px;font-size:.875rem;font-weight:600;transition:all .2s;box-shadow:0 4px 10px -2px #2563eb33}.btn-primary:hover{background:#1d4ed8;transform:translateY(-1px);box-shadow:0 6px 14px -2px #2563eb4d}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-secondary{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:10px 20px;font-size:.875rem;font-weight:600;transition:all .2s}.btn-secondary:hover:not(:disabled){color:#1e293b;background:#f8fafc;border-color:#cbd5e1}.modal-content.asr-modal{background:#fff;border-radius:20px;flex-direction:column;width:100%;max-width:500px;display:flex;overflow:hidden;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.asr-modal .modal-header{border-bottom:1px solid #f1f5f9;padding:24px 24px 16px}.asr-modal .modal-header h2{color:#1e293b;margin:0 0 6px;font-size:1.15rem;font-weight:700}.asr-modal .modal-header p{color:#64748b;margin:0;font-size:.85rem}.asr-modal .modal-body{padding:24px}.asr-modal .modal-footer{background:#f8fafc;border-top:1px solid #f1f5f9;justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}@media (width<=992px){.group-config-layout,.model-intro-cards{grid-template-columns:1fr}}.global-config-layout{flex-direction:column;gap:24px;display:flex}.badge-group{color:#7c3aed;background:#faf5ff}.badge-scene{color:#16a34a;background:#f0fdf4}.ai-usage-container{flex-direction:column;gap:24px;max-width:1200px;margin:0 auto;padding:10px 0 40px;display:flex}.stats-page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.custom-select-wrapper select,.date-quick-selector select{appearance:none;color:#334155;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:12px;outline:none;min-width:140px;padding:10px 36px 10px 16px;font-size:.875rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 2px #00000005}.custom-select-wrapper select:hover,.date-quick-selector select:hover{background:#f8fafc;border-color:#cbd5e1}.select-arrow,.select-arrow-date{color:#94a3b8;pointer-events:none;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.operator-group-badge{color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:12px;padding:10px 16px;font-size:.875rem;font-weight:600}.custom-date-inputs{background:#fff;border:1px solid #e2e8f0;border-radius:12px;align-items:center;gap:8px;padding:4px 12px;display:flex;box-shadow:0 1px 2px #00000005}.custom-date-inputs input[type=date]{color:#334155;cursor:pointer;background:0 0;border:none;outline:none;padding:6px 0;font-size:.85rem;font-weight:600}.btn-search-stats{padding:10px 24px;font-size:.875rem;font-weight:600}.metric-cards-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.metric-card{background:#fff;border:1px solid #e2e8f0;border-radius:20px;flex-direction:column;gap:20px;padding:24px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden;box-shadow:0 4px 6px -1px #00000005,0 2px 4px -1px #00000003,inset 0 1px #fff9}.metric-card:hover{border-color:#cbd5e1;transform:translateY(-4px);box-shadow:0 12px 20px -8px #00000014,0 4px 6px -2px #00000005}.metric-card:before{content:"";filter:blur(40px);opacity:.15;pointer-events:none;border-radius:50%;width:120px;height:120px;transition:all .3s;position:absolute;top:-50px;right:-50px}.asr-card:before{background:#2563eb}.emb-card:before{background:#8b5cf6}.llm-card:before{background:#06b6d4}.metric-card:hover:before{opacity:.25;transform:scale(1.3)}.metric-card-header{align-items:center;gap:12px;display:flex}.metric-badge{border-radius:12px;justify-content:center;align-items:center;width:42px;height:42px;display:flex;box-shadow:0 4px 10px -2px #0000000d}.metric-badge.asr{color:#2563eb;background:linear-gradient(135deg,#eff6ff,#dbeafe)}.metric-badge.emb{color:#8b5cf6;background:linear-gradient(135deg,#f5f3ff,#e9e3ff)}.metric-badge.llm{color:#0891b2;background:linear-gradient(135deg,#ecfeff,#cffafe)}.metric-title{color:#475569;font-size:.95rem;font-weight:700}.metric-card-body{flex-direction:column;gap:4px;display:flex}.metric-value{color:#0f172a;letter-spacing:-.03em;align-items:baseline;gap:6px;font-size:2rem;font-weight:800;display:flex}.metric-value .unit{color:#94a3b8;letter-spacing:0;font-size:.875rem;font-weight:600}.metric-sub{color:#64748b;font-size:.8rem}.metric-sub strong{color:#1e293b;font-weight:600}.stats-card-header{border-bottom:1px solid #f1f5f9;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:24px 24px 20px;display:flex}.stats-card-header .header-icon{color:var(--primary-color,#2563eb)}.metric-toggle-buttons{background:#f1f5f9;border-radius:10px;gap:2px;padding:4px;display:flex}.toggle-btn{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:8px;outline:none;padding:6px 14px;font-size:.8rem;font-weight:600;transition:all .2s}.toggle-btn:hover{color:#1e293b}.toggle-btn.active{color:#0f172a;background:#fff;box-shadow:0 2px 4px #0000000a,0 1px 2px #00000005}.chart-wrapper{width:100%;padding-bottom:8px;position:relative}.trend-svg{width:100%;height:auto;display:block;overflow:visible}.chart-grid-line line{stroke:#f1f5f9;transition:stroke .2s}.chart-grid-line text{font-family:inherit;font-weight:500}circle{transition:r .15s,stroke-width .15s}circle:hover{r:7px;stroke-width:4px;cursor:pointer}.chart-tooltip{pointer-events:none;z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff2;border:1px solid #e2e8f0;border-radius:14px;min-width:220px;margin-top:-12px;padding:12px 16px;transition:left .15s cubic-bezier(.25,.8,.25,1),top .15s cubic-bezier(.25,.8,.25,1);position:absolute;transform:translate(-50%,-100%);box-shadow:0 10px 15px -3px #0f172a14,0 4px 6px -4px #0f172a14}.chart-tooltip:after{content:"";background:#fffffff2;border-bottom:1px solid #e2e8f0;border-right:1px solid #e2e8f0;width:12px;height:12px;position:absolute;bottom:-6px;left:50%;transform:translate(-50%)rotate(45deg)}.tooltip-date{color:#94a3b8;border-bottom:1px solid #f1f5f9;margin-bottom:8px;padding-bottom:6px;font-size:.75rem;font-weight:700}.tooltip-body{flex-direction:column;gap:6px;display:flex}.tooltip-row{align-items:center;gap:8px;font-size:.8rem;display:flex}.tooltip-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.tooltip-dot.asr{background-color:#2563eb}.tooltip-dot.embedding{background-color:#8b5cf6}.tooltip-dot.llm{background-color:#06b6d4}.tooltip-label{color:#64748b;flex-grow:1;font-weight:500}.tooltip-value{color:#0f172a;font-weight:700}.chart-legend{border-top:1px solid #f8fafc;justify-content:center;gap:24px;margin-top:16px;padding-top:16px;display:flex}.legend-item{color:#64748b;align-items:center;gap:8px;font-size:.8rem;font-weight:600;display:flex}.legend-dot{border-radius:3px;width:10px;height:10px}.legend-dot.asr{background:#2563eb}.legend-dot.emb{background:#8b5cf6}.legend-dot.llm{background:#06b6d4}.empty-chart{color:#94a3b8;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:80px 20px;display:flex}.empty-chart p{font-size:.9rem;font-weight:500}.table-body{padding:8px 0 0}.stats-table-container{width:100%;overflow-x:auto}.stats-table{border-collapse:collapse;text-align:left;width:100%}.stats-table th{color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid #f1f5f9;padding:16px 24px;font-size:.8rem;font-weight:700}.stats-table th.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .2s}.stats-table th.sortable-th:hover{color:#475569}.stats-table th.sortable-th svg{vertical-align:middle;opacity:.7;margin-left:4px;display:inline-block}.stats-table td{color:#475569;border-bottom:1px solid #f1f5f9;padding:18px 24px;font-size:.875rem}.stats-table tr:last-child td{border-bottom:none}.stats-table tr:hover td{background:#f8fafc}.stats-table td.bold-cell{color:#1e293b;font-weight:700}.server-source{color:#64748b;background:#f1f5f9;border-radius:6px;padding:4px 8px;font-size:.75rem;font-weight:600}.cat-label{border-radius:8px;padding:4px 10px;font-size:.75rem;font-weight:700;display:inline-block}.cat-label.asr{color:#2563eb;background:#eff6ff}.cat-label.embedding{color:#8b5cf6;background:#f5f3ff}.cat-label.llm{color:#0891b2;background:#ecfeff}.stats-table code{color:#475569;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:3px 6px;font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:.8rem}@media (width<=992px){.metric-cards-grid{grid-template-columns:1fr;gap:16px}.stats-page-header{flex-direction:column;align-items:flex-start}.stats-filter-form,.filter-item,.custom-select-wrapper select,.date-quick-selector select{width:100%}.custom-date-inputs{justify-content:space-between;width:100%}.btn-search-stats{width:100%}}.hotword-container{max-width:1200px;margin:0 auto;padding:12px;animation:.4s ease-out fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.hotword-loading{color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:80px 0;display:flex}.hotword-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.title-section .icon-badge{color:var(--primary-color);background:linear-gradient(135deg,#eff6ff 0%,#dbeafe 100%);border-radius:14px;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.title-section h1{color:var(--text-main);margin-bottom:4px;font-size:1.6rem;font-weight:800}.title-section p{color:var(--text-secondary);align-items:center;gap:6px;font-size:.9rem;display:flex}.location-name.current-scene{color:var(--primary-color)}.action-buttons{gap:12px;display:flex}.info-banner{background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;align-items:flex-start;gap:14px;margin-bottom:24px;padding:16px 20px;display:flex;box-shadow:0 1px 3px #00000005}.banner-icon{color:var(--primary-color);flex-shrink:0;margin-top:2px}.banner-content h5{color:var(--text-main);margin-bottom:4px;font-size:.95rem;font-weight:700}.banner-content p{color:var(--text-secondary);font-size:.85rem;line-height:1.5}.control-bar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.hotword-search-box{align-items:center;width:320px;display:flex;position:relative}.search-icon{color:#94a3b8;pointer-events:none;position:absolute;left:14px}.hotword-search-box input{border:1px solid var(--input-border);width:100%;color:var(--text-main);background:#fff;border-radius:12px;outline:none;padding:10px 36px 10px 42px;font-size:.9rem;transition:all .2s}.hotword-search-box input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1f}.clear-search{cursor:pointer;color:#64748b;background:#f1f5f9;border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;transition:all .2s;display:flex;position:absolute;right:12px}.clear-search:hover{color:#1e293b;background:#e2e8f0}.filter-tabs{background:#f1f5f9;border-radius:12px;padding:4px;display:flex}.filter-tab{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:10px;padding:8px 18px;font-size:.88rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1)}.filter-tab:hover{color:#1e293b}.filter-tab.active{color:var(--primary-color);background:#fff;box-shadow:0 2px 8px #0000000d}.list-card{background:#fff;border:1px solid #e2e8f0;border-radius:20px;overflow:hidden;box-shadow:0 4px 20px -2px #00000008}.table-responsive{width:100%;overflow-x:auto}.hotwords-table{border-collapse:collapse;text-align:left;width:100%}.hotwords-table th{color:#64748b;text-transform:uppercase;letter-spacing:.05em;background:#f8fafc;border-bottom:1px solid #edf2f7;padding:16px 20px;font-size:.82rem;font-weight:700}.hotwords-table td{vertical-align:middle;color:var(--text-main);border-bottom:1px solid #f1f5f9;padding:16px 20px;font-size:.9rem;transition:background-color .2s}.hotwords-table tr:hover td{background-color:#f8fafc}.word-cell .word-text{color:#1e293b;font-size:.95rem;font-weight:600}.pinyin-code{color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;padding:4px 10px;font-family:JetBrains Mono,Fira Code,Courier New,monospace;font-size:.85rem}.time-cell{color:#94a3b8;font-size:.82rem}.empty-row{text-align:center;color:#94a3b8;padding:60px 0;font-style:italic}.overridden-row td{background-color:#fcfcfd}.overridden-row .word-text{color:#94a3b8;text-decoration:line-through}.overridden-row .pinyin-code{opacity:.6;text-decoration:line-through}.hotword-badge{border-radius:8px;align-items:center;gap:6px;padding:4px 10px;font-size:.78rem;font-weight:700;display:inline-flex}.hotword-badge.global{color:#2563eb;background:#eff6ff;border:1px solid #dbeafe}.hotword-badge.group{color:#7c3aed;background:#faf5ff;border:1px solid #f3e8ff}.hotword-badge.scene{color:#16a34a;white-space:nowrap;text-overflow:ellipsis;background:#f0fdf4;border:1px solid #dcfce7;max-width:140px;overflow:hidden}.status-tag{border-radius:8px;align-items:center;padding:4px 10px;font-size:.78rem;font-weight:600;display:inline-flex}.status-tag.effective{color:#065f46;background:#ecfdf5;border:1px solid #d1fae5}.status-tag.effective.partial{color:#92400e;background:#fffbeb;border:1px solid #fef3c7}.status-tag.overridden{color:#c53030;background:#fff5f5;border:1px solid #fed7d7;font-style:italic}.read-only-badge{color:#94a3b8;cursor:help;background:#f1f5f9;border-radius:8px;padding:4px 10px;font-size:.78rem;font-weight:600}.row-actions{justify-content:flex-end;gap:8px;display:flex}.btn-icon:hover{color:var(--primary-color);border-color:var(--primary-color);background:#f1f5f9;transform:translateY(-1px)}.btn-icon.btn-danger:hover{color:var(--error-color);border-color:var(--error-color);background:#fef2f2}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1050;background:#0f172a66;justify-content:center;align-items:center;width:100%;height:100%;animation:.2s ease-out fadeIn;display:flex;position:fixed;top:0;left:0}.modal-dialog{background:#fff;border:1px solid #e2e8f0;border-radius:20px;width:100%;max-width:480px;animation:.3s cubic-bezier(.34,1.56,.64,1) scaleUp;overflow:hidden;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}@keyframes scaleUp{0%{opacity:0;transform:scale(.9)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-header h2{color:var(--text-main);font-size:1.25rem;font-weight:800}.close-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:color .2s;display:flex}.modal-body{flex-direction:column;gap:20px;padding:24px;display:flex}.form-group{flex-direction:column;gap:8px;display:flex}.form-group label{color:var(--text-main);font-size:.88rem;font-weight:700}.field-hint{color:#94a3b8;font-size:.78rem;font-weight:400}.form-group input,.form-group textarea{border:1px solid var(--input-border);background:var(--input-bg);border-radius:10px;outline:none;padding:10px 14px;font-size:.9rem;transition:all .2s}.form-group textarea{resize:vertical;line-height:1.5}.form-group input:focus,.form-group textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a}.form-info-tip{color:#1e40af;background:#eff6ff;border-radius:10px;align-items:center;gap:8px;padding:10px 12px;font-size:.8rem;display:flex}.form-info-tip svg{flex-shrink:0}.modal-footer{background:#f8fafc;border-top:1px solid #f1f5f9;justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.music-container{max-width:1200px;margin:0 auto;padding:12px;animation:.4s ease-out fadeIn}.music-loading{color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:80px 0;display:flex}.music-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.music-header .action-buttons{gap:12px;display:flex}.music-tabs{border-bottom:2px solid #e2e8f0;gap:4px;margin-bottom:20px;padding-bottom:0;display:flex}.music-badge{border-radius:20px;align-items:center;gap:5px;padding:4px 10px;font-size:.8rem;font-weight:600;display:inline-flex}.music-badge.global{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.music-badge.group{color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe}.music-badge.scene{color:#6b21a8;background:#faf5ff;border:1px solid #e9d5ff}.empty-hint{text-align:center;color:#94a3b8;padding:16px 0;font-size:.9rem}.music-table{border-collapse:collapse;width:100%;font-size:.875rem}.music-table thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}.music-table th{text-align:left;color:#64748b;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;padding:12px 16px;font-size:.8rem;font-weight:600}.music-table td{color:#334155;vertical-align:middle;border-bottom:1px solid #f1f5f9;padding:13px 16px}.music-table tbody tr:last-child td{border-bottom:none}.music-table tbody tr:hover td{background:#fafbff}.track-name{color:#1e293b;font-weight:600}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a73;justify-content:center;align-items:center;animation:.2s ease-out overlayIn;display:flex;position:fixed;inset:0}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.modal-dialog{background:#fff;border-radius:20px;flex-direction:column;width:100%;max-width:520px;max-height:85vh;animation:.25s cubic-bezier(.16,1,.3,1) dialogIn;display:flex;overflow:hidden;box-shadow:0 25px 50px -12px #00000040}@keyframes dialogIn{0%{opacity:0;transform:scale(.95)translateY(12px)}to{opacity:1;transform:scale(1)translateY(0)}}.close-btn{color:#64748b;cursor:pointer;background:#f1f5f9;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.close-btn:hover{background:#e2e8f0}.modal-body{flex:1;padding:20px 24px;overflow-y:auto}.form-group{margin-bottom:16px}.form-group label{color:#374151;margin-bottom:6px;font-size:.875rem;font-weight:600;display:block}.field-hint{color:#94a3b8;margin-left:4px;font-size:.8rem;font-weight:400}.form-group input,.form-group textarea{color:#1e293b;box-sizing:border-box;border:1px solid #e2e8f0;border-radius:10px;width:100%;padding:10px 14px;font-size:.9rem;transition:border-color .15s}.form-group input:focus,.form-group textarea:focus{border-color:#6366f1;outline:none;box-shadow:0 0 0 3px #6366f11a}.form-group input:disabled,.form-group textarea:disabled{color:#94a3b8;background:#f8fafc}.track-picker{flex-direction:column;gap:8px;max-height:340px;display:flex;overflow-y:auto}.picker-item{cursor:pointer;border:1.5px solid #e2e8f0;border-radius:10px;align-items:center;gap:12px;padding:12px 14px;transition:all .15s;display:flex}.picker-item:hover{background:#fafbff;border-color:#a5b4fc}.picker-item.selected{background:#eef2ff;border-color:#6366f1}.picker-check{color:#6366f1;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.picker-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.picker-name{color:#1e293b;white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:600;overflow:hidden}.picker-meta{color:#94a3b8;font-size:.8rem}.input-mode-tabs{border:1px solid #e2e8f0;border-radius:10px;gap:0;margin-bottom:20px;display:flex;overflow:hidden}.mode-tab{color:#64748b;cursor:pointer;background:#f8fafc;border:none;flex:1;justify-content:center;align-items:center;gap:6px;padding:9px 0;font-size:.875rem;font-weight:500;transition:all .15s;display:flex}.mode-tab:first-child{border-right:1px solid #e2e8f0}.mode-tab:hover{color:#334155;background:#f1f5f9}.mode-tab.active{color:#6366f1;background:#eef2ff;font-weight:600}.hv-container{max-width:1200px;margin:0 auto;padding:12px;animation:.4s ease-out fadeIn}.hv-loading{color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:80px 0;display:flex}.hv-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.hv-header .action-buttons{gap:12px;display:flex}.title-section{align-items:center;gap:16px;display:flex}.icon-badge{color:#fff;background:linear-gradient(135deg,#0ea5e9,#14b8a6);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.title-section h1{color:#1e293b;margin:0 0 4px;font-size:1.5rem;font-weight:700}.title-section p{color:#64748b;align-items:center;gap:6px;margin:0;font-size:.875rem;display:flex}.location-name{color:#475569;font-weight:500}.current-scene{color:#0ea5e9}.breadcrumb-arrow{color:#94a3b8}.hv-tabs{border-bottom:2px solid #e2e8f0;gap:4px;margin-bottom:20px;padding-bottom:0;display:flex}.tab-btn{color:#64748b;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:8px;margin-bottom:-2px;padding:10px 20px;font-size:.9rem;font-weight:500;transition:all .2s;display:flex}.tab-btn:hover{color:#1e293b}.tab-btn.active{color:#0ea5e9;border-bottom-color:#0ea5e9}.tab-count{color:#475569;background:#f1f5f9;border-radius:20px;padding:1px 7px;font-size:.75rem;font-weight:600}.tab-btn.active .tab-count{color:#0ea5e9;background:#e0f2fe}.tab-panel{animation:.25s ease-out fadeIn}.panel-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;display:flex}.toolbar-left{align-items:center;gap:10px;display:flex}.toolbar-right{align-items:center;gap:8px;display:flex}.toolbar-hint{color:#64748b;font-size:.875rem}.info-banner{color:#0369a1;background:#f0f9ff;border:1px solid #bae6fd;border-radius:10px;align-items:center;gap:12px;margin-bottom:16px;padding:12px 16px;font-size:.875rem;display:flex}.banner-icon{color:#0ea5e9;flex-shrink:0}.hv-badge{border-radius:20px;align-items:center;gap:5px;padding:4px 10px;font-size:.8rem;font-weight:600;display:inline-flex}.hv-badge.global{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.hv-badge.group{color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe}.hv-badge.scene{color:#6b21a8;background:#faf5ff;border:1px solid #e9d5ff}.btn-primary svg,.btn-secondary svg,.btn-danger-outline svg,.btn-icon svg{flex-shrink:0;display:block}.btn-primary:hover:not(:disabled){background:#0284c7}.btn-secondary:hover:not(:disabled){background:#f1f5f9}.btn-danger-outline:hover:not(:disabled){background:#fef2f2}.btn-icon:hover:not(:disabled){background:#f1f5f9;border-color:#cbd5e1}.btn-icon.btn-danger{color:#dc2626}.btn-icon.btn-danger:hover:not(:disabled){background:#fef2f2;border-color:#fecaca}.empty-state{background:#fff;border:1px solid #e2e8f0;border-radius:16px;flex-direction:column;align-items:center;padding:64px 24px;display:flex}.empty-icon{color:#cbd5e1;margin-bottom:16px}.empty-state h3{color:#475569;margin:0 0 8px;font-size:1.1rem;font-weight:600}.empty-state p{color:#94a3b8;text-align:center;max-width:380px;margin:0 0 24px;font-size:.9rem}.list-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden}.hv-table{border-collapse:collapse;width:100%;font-size:.875rem}.hv-table thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}.hv-table th{text-align:left;color:#64748b;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;padding:12px 16px;font-size:.8rem;font-weight:600}.hv-table td{color:#334155;vertical-align:middle;border-bottom:1px solid #f1f5f9;padding:13px 16px}.hv-table tbody tr:last-child td{border-bottom:none}.hv-table tbody tr:hover td{background:#fafbff}.order-cell{color:#94a3b8;text-align:center;font-weight:700}.video-title{color:#1e293b;font-weight:600}.url-cell{max-width:360px}.url-link{color:#0ea5e9;word-break:break-all;align-items:center;gap:5px;font-size:.82rem;text-decoration:none;display:inline-flex}.url-link:hover{text-decoration:underline}.duration-cell{color:#64748b;white-space:nowrap;align-items:center;gap:5px;display:flex}.time-cell{color:#94a3b8;white-space:nowrap;font-size:.82rem}.order-btns{justify-content:center;align-items:center;gap:4px;display:flex}.row-actions{justify-content:flex-end;align-items:center;gap:6px;display:flex}.hv-schedule-card{padding:20px}.hv-schedule-row{align-items:center;gap:10px;margin-bottom:10px;display:flex}.hv-schedule-row input{border:1px solid #e2e8f0;border-radius:10px;padding:10px 12px;font-size:.9rem}.hv-schedule-row span{color:#94a3b8;font-size:.85rem}.hv-schedule-empty-hint{color:#94a3b8;margin:0 0 12px;font-size:.85rem}.hv-btn-add-schedule{align-items:center;gap:6px;width:fit-content;margin-top:4px;display:flex}.hv-modal.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a73;justify-content:center;align-items:center;animation:.2s ease-out overlayIn;display:flex;position:fixed;inset:0}.hv-modal .modal-dialog{background:#fff;border-radius:20px;flex-direction:column;width:100%;max-width:520px;max-height:85vh;animation:.25s cubic-bezier(.16,1,.3,1) dialogIn;display:flex;overflow:hidden;box-shadow:0 25px 50px -12px #00000040}.hv-modal .modal-dialog form{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.hv-modal .modal-header{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:20px 24px 16px;display:flex}.hv-modal .modal-header h2{color:#1e293b;margin:0;font-size:1.15rem;font-weight:700}.hv-modal .close-btn{color:#64748b;cursor:pointer;background:#f1f5f9;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.hv-modal .close-btn:hover{background:#e2e8f0}.hv-modal .modal-body{flex:1;min-height:0;padding:20px 24px;display:block;overflow-y:auto}.hv-modal .modal-footer{border-top:1px solid #f1f5f9;justify-content:flex-end;gap:10px;padding:16px 24px 20px;display:flex}.hv-modal .form-group{margin-bottom:16px}.hv-modal .form-group label{color:#374151;margin-bottom:6px;font-size:.875rem;font-weight:600;display:block}.hv-modal .required-label:after{content:" *";color:#ef4444}.hv-modal .field-hint{color:#94a3b8;margin-left:4px;font-size:.8rem;font-weight:400}.hv-modal .form-group input,.hv-modal .form-group textarea{color:#1e293b;box-sizing:border-box;border:1px solid #e2e8f0;border-radius:10px;width:100%;padding:10px 14px;font-size:.9rem;transition:border-color .15s}.hv-modal .form-group input:focus,.hv-modal .form-group textarea:focus{border-color:#0ea5e9;outline:none;box-shadow:0 0 0 3px #0ea5e91a}.hv-modal .form-group input:disabled,.hv-modal .form-group textarea:disabled{color:#94a3b8;background:#f8fafc}.hv-modal .empty-hint{text-align:center;color:#94a3b8;padding:16px 0;font-size:.9rem}.hv-modal .video-picker{flex-direction:column;gap:8px;max-height:340px;display:flex;overflow-y:auto}.hv-modal .picker-item{cursor:pointer;border:1.5px solid #e2e8f0;border-radius:10px;align-items:center;gap:12px;padding:12px 14px;transition:all .15s;display:flex}.hv-modal .picker-item:hover{background:#fafbff;border-color:#7dd3fc}.hv-modal .picker-item.selected{background:#f0f9ff;border-color:#0ea5e9}.hv-modal .picker-check{color:#0ea5e9;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.hv-modal .picker-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.hv-modal .picker-name{color:#1e293b;white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:600;overflow:hidden}.hv-modal .picker-meta{color:#94a3b8;font-size:.8rem}.hv-modal .input-mode-tabs{border:1px solid #e2e8f0;border-radius:10px;flex-shrink:0;gap:0;margin-bottom:20px;display:flex;overflow:hidden}.hv-modal .mode-tab{color:#64748b;cursor:pointer;background:#f8fafc;border:none;flex:1;justify-content:center;align-items:center;gap:6px;padding:9px 0;font-size:.875rem;font-weight:500;transition:all .15s;display:flex}.hv-modal .mode-tab:first-child{border-right:1px solid #e2e8f0}.hv-modal .mode-tab:hover{color:#334155;background:#f1f5f9}.hv-modal .mode-tab.active{color:#0ea5e9;background:#f0f9ff;font-weight:600}.hv-modal .file-drop-zone{cursor:pointer;background:#fafbff;border:2px dashed #e2e8f0;border-radius:10px;justify-content:center;align-items:center;min-height:90px;padding:20px;transition:all .2s;display:flex}.hv-modal .file-drop-zone:hover{background:#f0f9ff;border-color:#7dd3fc}.hv-modal .file-drop-zone.has-file{background:#f0f9ff;border-style:solid;border-color:#7dd3fc}.hv-modal .file-placeholder{color:#94a3b8;flex-direction:column;align-items:center;gap:6px;font-size:.875rem;display:flex}.hv-modal .upload-icon{color:#7dd3fc}.hv-modal .file-hint{color:#cbd5e1;font-size:.78rem}.hv-modal .file-selected{color:#0284c7;align-items:center;gap:10px;width:100%;display:flex}.hv-modal .file-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.875rem;font-weight:500;overflow:hidden}.hv-modal .file-size{color:#94a3b8;white-space:nowrap;font-size:.8rem}.hv-modal .file-clear{color:#94a3b8;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.hv-modal .file-clear:hover{color:#dc2626;background:#fef2f2;border-color:#fecaca}.hv-modal .upload-progress{align-items:center;gap:10px;margin-top:8px;display:flex}.hv-modal .progress-bar{background:#e2e8f0;border-radius:999px;flex:1;height:6px;overflow:hidden}.hv-modal .progress-fill{background:linear-gradient(90deg,#0ea5e9,#14b8a6);border-radius:999px;height:100%;transition:width .2s}.hv-modal .progress-text{color:#0ea5e9;text-align:right;min-width:36px;font-size:.78rem;font-weight:600}.fp-container{flex-direction:column;gap:24px;display:flex}.fp-header{background:#fff;border:1px solid #e2e8f0;border-radius:16px;justify-content:space-between;align-items:center;padding:24px 28px;display:flex}.fp-title{align-items:center;gap:16px;display:flex}.fp-icon-badge{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.fp-title h1{color:#1e293b;margin:0 0 4px;font-size:1.3rem;font-weight:700}.fp-title p{color:#64748b;margin:0;font-size:.85rem}.fp-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden}.fp-table{border-collapse:collapse;width:100%;font-size:.9rem}.fp-table thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}.fp-table th{text-align:left;color:#475569;text-transform:uppercase;letter-spacing:.04em;padding:12px 16px;font-size:.82rem;font-weight:600}.fp-table td{color:#334155;vertical-align:middle;border-bottom:1px solid #f1f5f9;padding:14px 16px}.fp-table tbody tr:last-child td{border-bottom:none}.fp-table tbody tr:hover{background:#f8fafc}.fp-key{color:#4f46e5;background:#f1f5f9;border-radius:6px;padding:2px 8px;font-family:monospace;font-size:.85rem}.fp-desc{color:#64748b;font-size:.87rem}.fp-empty{text-align:center;color:#94a3b8;padding:40px}.fp-loading{text-align:center;color:#64748b;padding:60px}.fp-row-actions{justify-content:flex-end;gap:8px;display:flex}.fp-modal{width:480px}.fp-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:.88rem}.field-input:disabled{color:#94a3b8;cursor:not-allowed;background:#f1f5f9}.modal-body{padding:24px}.mi-root{flex-direction:column;gap:8px;display:flex}.mi-text-input{border:1px solid var(--input-border);width:100%;color:var(--text-main);background:var(--input-bg);border-radius:10px;outline:none;padding:10px 14px;font-size:.9rem;transition:all .2s}.mi-text-input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a}.mi-mode-bar{background:#f1f5f9;border-radius:10px;gap:2px;width:fit-content;padding:3px;display:inline-flex}.mi-mode-btn{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:5px;padding:5px 12px;font-size:.8rem;font-weight:600;transition:all .18s;display:inline-flex}.mi-mode-btn:hover{color:#1e293b}.mi-mode-btn.active{color:var(--primary-color);background:#fff;box-shadow:0 1px 4px #00000014}.mi-upload-area{flex-direction:column;gap:8px;display:flex}.mi-upload-btn{color:#64748b;cursor:pointer;background:#f8fafc;border:2px dashed #cbd5e1;border-radius:10px;justify-content:center;align-items:center;gap:8px;width:100%;padding:10px 20px;font-size:.88rem;font-weight:600;transition:all .2s;display:inline-flex}.mi-upload-btn:hover{border-color:var(--primary-color);color:var(--primary-color);background:#eff6ff}.mi-progress-wrap{align-items:center;gap:10px;display:flex}.mi-progress-bar{background:#e2e8f0;border-radius:999px;flex:1;height:6px;overflow:hidden}.mi-progress-fill{background:linear-gradient(90deg, var(--primary-color), #60a5fa);border-radius:999px;height:100%;transition:width .2s}.mi-progress-label{color:var(--primary-color);text-align:right;min-width:34px;font-size:.8rem;font-weight:700}.mi-current-url{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;align-items:center;gap:7px;padding:7px 12px;font-size:.82rem;display:flex}.mi-ok-icon{color:var(--success-color);flex-shrink:0}.mi-url-text{color:#15803d;text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;overflow:hidden}.mi-clear-btn{cursor:pointer;color:#94a3b8;background:0 0;border:none;border-radius:4px;align-items:center;padding:2px;display:flex}.mi-clear-btn:hover{color:var(--error-color);background:#fef2f2}.mi-error{color:var(--error-color);margin:0;font-size:.82rem}.mi-video-preview{background:#000;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.mi-video-preview video{width:100%;max-height:260px;display:block}.mi-image-preview{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;justify-content:center;align-items:center;max-height:160px;display:flex;overflow:hidden}.mi-image-preview img{object-fit:contain;max-width:100%;max-height:160px;display:block}@keyframes hc-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes hc-slide-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}.hc-icon-badge{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.hc-thumb{object-fit:cover;border:1px solid #e2e8f0;border-radius:8px;width:56px;height:56px;display:block}.hc-thumb-empty{color:#cbd5e1;background:#f8fafc;justify-content:center;align-items:center;display:flex}.hc-loading{text-align:center;color:#64748b;padding:60px}.hc-icon-badge{color:#fff;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.dm-icon-badge{background:linear-gradient(135deg,#0ea5e9,#6366f1)}.hc-table{border-collapse:collapse;width:100%;font-size:.9rem}.hc-table thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}.hc-table th{text-align:left;color:#475569;text-transform:uppercase;letter-spacing:.04em;padding:12px 16px;font-size:.82rem;font-weight:600}.hc-table td{color:#334155;vertical-align:middle;border-bottom:1px solid #f1f5f9;padding:14px 16px}.hc-table tbody tr:last-child td{border-bottom:none}.hc-table tbody tr:hover{background:#f8fafc}.hc-page-badge{color:#4f46e5;background:#eef2ff;border-radius:999px;padding:3px 10px;font-size:.82rem}.hc-order-controls{gap:4px;display:flex}.dm-doc-cell{align-items:center;gap:12px;display:flex}.dm-doc-icon{color:#0369a1;background:#f0f9ff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.dm-doc-title{color:#1e293b;font-weight:600}.dm-doc-filename{color:#94a3b8;margin-top:2px;font-size:.78rem}.dm-doc-size{color:#94a3b8;margin-top:4px;font-size:.78rem}.dm-catalog-modal{width:680px}.dm-upload-hint{color:#94a3b8;margin:0 0 12px;font-size:.85rem}.dm-copy-catalog-row{gap:8px;margin-bottom:16px;display:flex}.dm-copy-select{flex:1}.dm-catalog-tree,.dm-catalog-node{flex-direction:column;gap:8px;display:flex}.dm-catalog-row{align-items:center;gap:8px;display:flex}.dm-catalog-depth-icon{color:#cbd5e1;flex-shrink:0}.dm-catalog-title{flex:1}.dm-catalog-page{flex-shrink:0;width:90px}.dm-catalog-actions{flex-shrink:0;gap:4px;display:flex}.dm-add-root-btn{margin-top:12px}.lc-container{flex-direction:column;gap:24px;display:flex}.lc-header{background:#fff;border:1px solid #e2e8f0;border-radius:16px;justify-content:space-between;align-items:center;padding:24px 28px;display:flex}.lc-title{align-items:center;gap:16px;display:flex}.lc-icon-badge{color:#fff;background:linear-gradient(135deg,#0ea5e9,#38bdf8);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.lc-title h1{color:#1e293b;margin:0 0 4px;font-size:1.3rem;font-weight:700}.lc-title p{color:#64748b;align-items:center;gap:4px;margin:0;font-size:.85rem;display:flex}.lc-loc{color:#0369a1;font-weight:600}.lc-scene{color:#0284c7}.lc-arrow{color:#94a3b8;flex-shrink:0}.lc-empty-hint{color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;border-radius:12px;padding:20px 24px;font-size:.9rem}.lc-loading{text-align:center;color:#64748b;padding:60px}.lc-group-layout{grid-template-columns:1fr 1fr;align-items:start;gap:24px;display:grid}@media (width<=1100px){.lc-group-layout{grid-template-columns:1fr}}.lc-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden}.lc-card-header{border-bottom:1px solid #f1f5f9;padding:20px 24px 16px}.lc-card-header h2{color:#1e293b;margin:0 0 4px;font-size:1rem;font-weight:700}.lc-card-header p{color:#64748b;margin:0;font-size:.83rem}.lc-card-body{flex-direction:column;gap:0;padding:16px 24px 20px;display:flex}.lc-fp-row{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.lc-fp-row:last-of-type{border-bottom:none}.lc-fp-row-indent{padding-left:8px}.lc-fp-info{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.lc-key{color:#4f46e5;white-space:nowrap;background:#f1f5f9;border-radius:5px;flex-shrink:0;padding:2px 7px;font-family:monospace;font-size:.8rem}.lc-fname{color:#334155;text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;overflow:hidden}.lc-inherit-badge{color:#64748b;white-space:nowrap;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:4px;flex-shrink:0;padding:1px 6px;font-size:.73rem}.lc-lang-toggle{flex-shrink:0;gap:4px;display:flex}.lc-lang-btn{cursor:pointer;color:#64748b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:5px 14px;font-size:.82rem;font-weight:500;transition:all .15s}.lc-lang-btn:hover{color:#0369a1;border-color:#0ea5e9}.lc-lang-btn.active{color:#fff;background:#0ea5e9;border-color:#0ea5e9;font-weight:600}.lc-clear-btn{cursor:pointer;color:#94a3b8;background:#fff;border:1px solid #e2e8f0;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;font-size:.75rem;transition:all .15s;display:flex}.lc-clear-btn:hover{color:#ef4444;background:#fef2f2;border-color:#ef4444}.lc-save-row{justify-content:flex-end;margin-top:4px;padding-top:16px;display:flex}.lc-save-row-scene{border-top:1px dashed #e2e8f0;margin-top:8px;padding-top:10px}.lc-scene-block{background:#fafbfc;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:16px;padding:14px 16px}.lc-scene-block:last-of-type{margin-bottom:0}.lc-scene-title{color:#1e293b;border-bottom:1px solid #e2e8f0;margin-bottom:10px;padding-bottom:8px;font-size:.9rem;font-weight:700}.lc-no-scenes{color:#94a3b8;text-align:center;padding:20px;font-size:.88rem}.btn-sm{padding:7px 14px!important;font-size:.83rem!important}.btn-primary:hover{opacity:.9}.btn-secondary{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:10px;align-items:center;gap:6px;padding:10px 20px;font-size:.9rem;font-weight:600;transition:all .15s;display:inline-flex}.btn-secondary:hover{background:#f8fafc;border-color:#9ca3af}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.ip-container{max-width:900px;margin:0 auto;padding:12px;animation:.35s ease-out fadeIn}.ip-loading{color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:80px 0;display:flex}.ip-loading .spinner{color:var(--primary-color);animation:1s linear infinite spin}.ip-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.ip-title-row{align-items:center;gap:16px;display:flex}.ip-icon-badge{color:var(--primary-color);background:linear-gradient(135deg,#eff6ff,#dbeafe);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.ip-title-row h1{color:var(--text-main);margin-bottom:4px;font-size:1.55rem;font-weight:800}.ip-subtitle{color:var(--text-secondary);align-items:center;gap:6px;font-size:.88rem;display:flex}.ip-scope-badge{border-radius:8px;align-items:center;gap:5px;padding:3px 10px;font-size:.8rem;font-weight:700;display:inline-flex}.ip-scope-badge.group{color:#7c3aed;background:#faf5ff;border:1px solid #f3e8ff}.ip-scope-badge.scene{color:#16a34a;background:#f0fdf4;border:1px solid #dcfce7}.ip-scope-parent{color:#94a3b8;font-weight:500}.ip-sep{color:#94a3b8;margin:0 2px}.ip-header-actions{gap:10px;display:flex}.ip-info-banner{color:var(--text-secondary);background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;align-items:flex-start;gap:10px;margin-bottom:24px;padding:14px 18px;font-size:.87rem;line-height:1.55;display:flex}.ip-banner-icon{color:var(--primary-color);flex-shrink:0;margin-top:2px}.ip-empty{color:#94a3b8;text-align:center;background:#fff;border:2px dashed #e2e8f0;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:80px 40px;display:flex}.ip-empty p{font-size:.95rem}.ip-preview-card{background:#fff;border:1px solid #e2e8f0;border-radius:20px;overflow:hidden;box-shadow:0 4px 20px -2px #0000000a}.ip-preview-header{background:#fafafa;border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.ip-preview-actions{gap:10px;display:flex}.ip-preview-body{padding:24px}.ip-preview-label{color:#64748b;text-transform:uppercase;letter-spacing:.05em;margin-bottom:16px;font-size:.82rem;font-weight:700}.ip-preview-row{align-items:flex-start;gap:12px;font-size:.9rem;display:flex}.ip-meta-key{color:#64748b;white-space:nowrap;min-width:60px;padding-top:2px;font-size:.8rem;font-weight:700}.ip-link{color:var(--primary-color);word-break:break-all;font-size:.88rem}.ip-updated-at{color:#94a3b8;background:#fafafa;border-top:1px solid #f1f5f9;padding:12px 24px;font-size:.78rem}.ip-type-badge{border-radius:10px;align-items:center;padding:5px 14px;font-size:.82rem;font-weight:700;display:inline-flex}.ip-type-badge.video{color:#c2410c;background:#fff7ed;border:1px solid #fed7aa}.ip-type-badge.ppt{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe}.ip-type-badge.carousel{color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0}.ip-type-badge.text{color:#6d28d9;background:#f5f3ff;border:1px solid #ddd6fe}.ip-slides-preview{flex-direction:column;gap:14px;display:flex}.ip-slide-preview-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;align-items:flex-start;gap:14px;padding:14px;display:flex}.ip-slide-preview-num{color:#94a3b8;min-width:24px;padding-top:2px;font-size:.75rem;font-weight:700}.ip-slide-thumb{object-fit:cover;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;flex-shrink:0;width:80px;height:56px}.ip-slide-preview-text{color:var(--text-main);flex:1;font-size:.88rem;line-height:1.55}.ip-empty-text{color:#94a3b8}.ip-carousel-thumbs{flex-wrap:wrap;gap:10px;margin-bottom:6px;display:flex}.ip-carousel-thumb{object-fit:cover;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:10px;width:100px;height:70px}.ip-carousel-text-preview{color:var(--text-main);flex:1;font-size:.9rem;line-height:1.65}.ip-form-card{background:#fff;border:1px solid #e2e8f0;border-radius:20px;overflow:hidden;box-shadow:0 4px 20px -2px #0000000a}.ip-type-selector{gap:8px;padding:20px 24px 0;display:flex}.ip-type-btn{color:#64748b;cursor:pointer;background:#f8fafc;border:2px solid #e2e8f0;border-radius:12px;align-items:center;gap:8px;padding:10px 20px;font-size:.88rem;font-weight:600;transition:all .2s;display:flex}.ip-type-btn:hover{border-color:var(--primary-color);color:var(--primary-color);background:#eff6ff}.ip-type-btn.active{border-color:var(--primary-color);color:var(--primary-color);background:linear-gradient(135deg,#eff6ff,#dbeafe);box-shadow:0 2px 8px #2563eb26}.ip-section{border-top:1px solid #f1f5f9;padding:24px}.ip-section-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.ip-label{color:var(--text-main);margin-bottom:8px;font-size:.88rem;font-weight:700;display:block}.ip-label.required:after{content:" *";color:var(--error-color)}.ip-textarea{border:1px solid var(--input-border);width:100%;color:var(--text-main);background:var(--input-bg);resize:vertical;border-radius:10px;outline:none;padding:10px 14px;font-size:.9rem;line-height:1.55;transition:all .2s}.ip-textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a}.ip-video-preview{background:#000;border:1px solid #e2e8f0;border-radius:12px;margin-top:14px;overflow:hidden}.ip-video-preview video{width:100%;max-height:300px;display:block}.ip-slides-list{flex-direction:column;gap:12px;display:flex}.ip-slide-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;align-items:flex-start;gap:14px;padding:16px;transition:box-shadow .2s;display:flex}.ip-slide-item:hover{box-shadow:0 2px 8px #0000000d}.ip-slide-num{color:#94a3b8;min-width:28px;padding-top:10px;font-size:.78rem;font-weight:700}.ip-slide-body{flex-direction:column;flex:1;gap:10px;display:flex}.ip-slide-actions{flex-direction:column;gap:6px;padding-top:6px;display:flex}.ip-carousel-images{flex-direction:column;gap:10px;display:flex}.ip-carousel-row{align-items:center;gap:10px;display:flex}.ip-carousel-idx{color:#94a3b8;text-align:right;min-width:20px;font-size:.78rem;font-weight:700}.ip-form-footer{background:#fafafa;border-top:1px solid #f1f5f9;justify-content:flex-end;gap:12px;padding:18px 24px;display:flex}.btn-icon{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex}.btn-icon:hover:not(:disabled){color:var(--primary-color);border-color:var(--primary-color);background:#f1f5f9}.btn-icon.btn-danger:hover:not(:disabled){color:var(--error-color);border-color:var(--error-color);background:#fef2f2}.btn-outline-sm{border:1px solid var(--primary-color);color:var(--primary-color);cursor:pointer;background:#fff;border-radius:10px;align-items:center;gap:6px;padding:7px 14px;font-size:.85rem;font-weight:600;transition:all .2s;display:inline-flex}.btn-danger-outline{color:var(--error-color);cursor:pointer;background:#fff;border:1px solid #fca5a5;border-radius:10px;align-items:center;gap:7px;padding:8px 16px;font-size:.88rem;font-weight:600;transition:all .2s;display:inline-flex}.btn-danger-outline:hover:not(:disabled){border-color:var(--error-color);background:#fef2f2}.btn-danger-outline:disabled{opacity:.4;cursor:not-allowed}.ip-history-panel{background:#fff;border:1px solid #e2e8f0;border-radius:16px;margin-top:16px;overflow:hidden}.ip-history-toggle{cursor:pointer;width:100%;color:var(--text-main);text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:16px 20px;font-size:.92rem;font-weight:700;transition:background .15s;display:flex}.ip-history-toggle:hover{background:#f8fafc}.ip-history-toggle svg:first-child{color:var(--primary-color)}.ip-history-toggle span{flex:1}.ip-history-chevron{color:#94a3b8;transition:transform .2s}.ip-history-chevron.open{transform:rotate(180deg)}.ip-history-list{border-top:1px solid #f1f5f9}.ip-version-row{border-bottom:1px solid #f8fafc;transition:background .15s}.ip-version-row:last-child{border-bottom:none}.ip-version-row.active{background:#fafffe}.ip-version-meta{justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.ip-version-left{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ip-version-actions{gap:6px;display:flex}.ip-ver-badge{color:#64748b;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;align-items:center;padding:3px 10px;font-size:.78rem;font-weight:700;display:inline-flex}.ip-ver-badge.active{color:#065f46;background:#ecfdf5;border-color:#d1fae5}.ip-ver-time{color:#94a3b8;font-size:.8rem}.ip-restore-btn:hover:not(:disabled){color:#d97706!important;background:#fffbeb!important;border-color:#fcd34d!important}.ip-version-preview{background:#fafafa;border-top:1px solid #f1f5f9;padding:0 20px 16px;animation:.2s ease-out fadeIn}.ip-pm-overlay{z-index:1000;background:#000000bf;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.ip-pm-dialog{background:#1a1a2e;border-radius:16px;flex-direction:column;width:min(680px,92vw);display:flex;overflow:hidden;box-shadow:0 24px 64px #0009}.ip-pm-topbar{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.ip-pm-title{color:#e2e8f0;align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.ip-pm-close{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;padding:4px;transition:color .15s,background .15s;display:flex}.ip-pm-close:hover{color:#f1f5f9;background:#ffffff1a}.ip-screen-frame{aspect-ratio:16/9;background:#000;border:3px solid #334155;border-radius:12px;margin:20px 24px 24px;position:relative;overflow:hidden;box-shadow:0 0 0 1px #ffffff0d,inset 0 0 60px #0006}.ip-screen-video{object-fit:cover;width:100%;height:100%;display:block}.ip-screen-canvas{background-color:#0f172a;background-position:50%;background-size:cover;flex-direction:column;justify-content:flex-end;display:flex;position:absolute;inset:0}.ip-screen-gradient{pointer-events:none;background:linear-gradient(#0000 40%,#0000008c 70%,#000000d1 100%);position:absolute;inset:0}.ip-screen-nav{color:#fff;cursor:pointer;z-index:10;background:#00000073;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:background .15s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.ip-screen-nav:hover:not(:disabled){background:#000000b3}.ip-screen-nav:disabled{opacity:.3;cursor:default}.ip-screen-nav-left{left:12px}.ip-screen-nav-right{right:12px}.ip-screen-bottom{z-index:5;flex-direction:column;gap:10px;padding:0 18px 16px;display:flex;position:relative}.ip-screen-dots{justify-content:center;gap:6px;display:flex}.ip-screen-dot{cursor:pointer;background:#ffffff59;border-radius:50%;width:7px;height:7px;transition:background .2s,transform .2s}.ip-screen-dot.active{background:#fff;transform:scale(1.3)}.ip-screen-bubble{-webkit-backdrop-filter:blur(12px);background:#000000a6;border:1px solid #ffffff1f;border-radius:12px;padding:12px 16px}.ip-screen-bubble p{color:#f1f5f9;white-space:pre-wrap;word-break:break-word;margin:0;font-size:13px;line-height:1.7}.gt-container{max-width:980px;margin:0 auto;padding:12px;animation:.35s ease-out gtFadeIn}@keyframes gtFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.gt-loading{color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:80px 0;display:flex}.gt-loading .spinner{color:var(--primary-color);animation:1s linear infinite gtSpin}@keyframes gtSpin{to{transform:rotate(360deg)}}.toast-alert.success{border-left:4px solid var(--success-color);color:#065f46}.toast-alert.error{border-left:4px solid var(--error-color);color:#991b1b}.btn-back{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;margin-bottom:8px;padding:6px 0;font-size:.88rem;font-weight:600;display:inline-flex}.btn-back:hover{color:var(--primary-color)}.gt-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.gt-title-row{align-items:center;gap:16px;display:flex}.gt-icon-badge{color:var(--primary-color);background:linear-gradient(135deg,#eff6ff,#dbeafe);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.gt-title-row h1{color:var(--text-main);margin:0;font-size:1.5rem;font-weight:800}.gt-subtitle{color:var(--text-secondary);margin-top:2px;font-size:.9rem}.gt-header-actions{gap:10px;display:flex}.gt-empty{color:var(--text-secondary);background:#fff;border:1px solid #e2e8f0;border-radius:16px;flex-direction:column;align-items:center;gap:12px;padding:80px 0;display:flex}.gt-tour-list{flex-direction:column;gap:12px;display:flex}.gt-tour-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;justify-content:space-between;align-items:center;padding:16px 18px;transition:box-shadow .2s;display:flex}.gt-tour-card:hover{box-shadow:0 4px 14px #0000000f}.gt-tour-card.disabled{opacity:.6}.gt-tour-cover{background:#f1f5f9;border-radius:10px;flex-shrink:0;width:64px;height:64px;margin-right:14px;overflow:hidden}.gt-tour-cover img{object-fit:cover;width:100%;height:100%;display:block}.gt-tour-desc{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:520px;margin:4px 0 0;font-size:.82rem;overflow:hidden}.gt-tour-title-row{align-items:center;gap:10px;display:flex}.gt-tour-title-row h3{color:var(--text-main);margin:0;font-size:1.05rem;font-weight:700}.gt-ver-badge{color:#475569;background:#f1f5f9;border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:700}.gt-ver-badge.active{color:#15803d;background:#dcfce7}.gt-disabled-badge{color:#b91c1c;background:#fef2f2;border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:700}.gt-tour-meta{color:var(--text-secondary);gap:16px;margin-top:6px;font-size:.82rem;display:flex}.gt-tour-meta span{align-items:center;gap:4px;display:inline-flex}.gt-tour-actions{flex-shrink:0;gap:6px;display:flex}.btn-primary,.btn-secondary,.btn-outline-sm,.btn-icon{cursor:pointer;border-radius:10px;align-items:center;gap:6px;font-weight:600;transition:all .15s;display:inline-flex}.btn-primary{background:var(--primary-color);color:#fff;border:none;padding:10px 18px;font-size:.9rem}.btn-secondary{color:var(--text-main);background:#fff;border:1px solid #e2e8f0;padding:10px 18px;font-size:.9rem}.btn-secondary:hover{background:#f8fafc}.btn-outline-sm{border:1px solid var(--primary-color);color:var(--primary-color);background:#fff;padding:6px 12px;font-size:.8rem}.btn-outline-sm:hover{background:#eff6ff}.btn-icon{color:#475569;background:#f1f5f9;border:none;justify-content:center;padding:7px}.btn-icon.delete:hover,.btn-icon.btn-danger:hover{color:var(--error-color);background:#fef2f2}.gt-restore-btn:hover{color:var(--primary-color);background:#eff6ff}.gt-delete-version-btn:hover{color:var(--error-color);background:#fef2f2}.gt-form-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:22px}.gt-section{margin-bottom:22px}.gt-section-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.gt-form-row{gap:16px;margin-bottom:14px;display:flex}.gt-form-col{flex:1;min-width:0}.gt-form-col.narrow{flex:0 0 120px}.gt-label{color:var(--text-secondary);margin-bottom:6px;font-size:.82rem;font-weight:700;display:block}.gt-label.required:after{content:" *";color:var(--error-color)}.gt-input,.gt-textarea{border:1px solid var(--input-border);width:100%;color:var(--text-main);background:var(--input-bg);border-radius:10px;outline:none;padding:9px 12px;font-family:inherit;font-size:.88rem;transition:all .2s}.gt-input:focus,.gt-textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a}.gt-textarea{resize:vertical}.gt-switch{width:42px;height:24px;display:inline-block;position:relative}.gt-switch input{opacity:0;width:0;height:0}.gt-slider{cursor:pointer;background-color:#cbd5e1;border-radius:999px;transition:all .2s;position:absolute;inset:0}.gt-slider:before{content:"";background-color:#fff;border-radius:50%;width:18px;height:18px;transition:all .2s;position:absolute;bottom:3px;left:3px}.gt-switch input:checked+.gt-slider{background-color:var(--primary-color)}.gt-switch input:checked+.gt-slider:before{transform:translate(18px)}.gt-switch-label{color:var(--text-main);align-items:center;gap:10px;font-size:.88rem;font-weight:600;display:inline-flex}.gt-stops-list{flex-direction:column;gap:10px;display:flex}.gt-stop-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.gt-stop-header{cursor:pointer;background:#fff;align-items:center;gap:10px;padding:10px 14px;display:flex}.gt-stop-chevron{color:#94a3b8;flex-shrink:0;transition:transform .2s}.gt-stop-chevron.open{transform:rotate(180deg)}.gt-stop-num{color:var(--primary-color);background:#eff6ff;border-radius:999px;flex-shrink:0;padding:2px 8px;font-size:.78rem;font-weight:800}.gt-stop-summary{color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.9rem;font-weight:600;overflow:hidden}.gt-stop-type-tag,.gt-stop-qa-tag{white-space:nowrap;border-radius:999px;align-items:center;gap:3px;padding:2px 8px;font-size:.72rem;font-weight:700;display:inline-flex}.gt-stop-type-tag{color:#6d28d9;background:#ede9fe}.gt-stop-qa-tag{color:#854d0e;background:#fef9c3}.gt-stop-actions{flex-shrink:0;gap:4px;display:flex}.gt-stop-body{border-top:1px solid #e2e8f0;padding:16px}.gt-subsection{border-top:1px dashed #e2e8f0;margin-top:16px;padding-top:16px}.gt-type-selector{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.gt-type-btn{color:var(--text-secondary);cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:10px;align-items:center;gap:6px;padding:7px 14px;font-size:.82rem;font-weight:600;transition:all .15s;display:inline-flex}.gt-type-btn.active{border-color:var(--primary-color);color:var(--primary-color);background:#eff6ff}.gt-slides-list{flex-direction:column;gap:10px;display:flex}.gt-slide-item{background:#fff;border:1px solid #e2e8f0;border-radius:10px;align-items:flex-start;gap:10px;padding:10px;display:flex}.gt-slide-num{color:#94a3b8;flex-shrink:0;padding-top:6px;font-size:.76rem;font-weight:700}.gt-slide-body{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.gt-carousel-editor{flex-direction:column;gap:10px;display:flex}.gt-carousel-row{align-items:flex-start;gap:10px;display:flex}.gt-carousel-idx{color:#94a3b8;flex-shrink:0;width:16px;padding-top:8px;font-size:.76rem;font-weight:700}.gt-qa-timeout{color:var(--text-secondary);align-items:center;gap:8px;font-size:.82rem;display:flex}.gt-qa-list{flex-direction:column;gap:8px;margin-top:8px;display:flex}.gt-qa-row{align-items:center;gap:8px;display:flex}.gt-qa-row .gt-input:first-child{flex:1}.gt-qa-row .gt-input:nth-child(2){flex:1.4}.gt-form-footer{border-top:1px solid #e2e8f0;justify-content:flex-end;gap:10px;padding-top:18px;display:flex}.gt-history-panel{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-top:20px;overflow:hidden}.gt-history-toggle{cursor:pointer;width:100%;color:var(--text-main);background:0 0;border:none;align-items:center;gap:8px;padding:12px 16px;font-size:.88rem;font-weight:700;display:flex}.gt-history-chevron{margin-left:auto;transition:transform .2s}.gt-history-chevron.open{transform:rotate(180deg)}.gt-history-list{flex-direction:column;gap:8px;padding:0 16px 16px;display:flex}.gt-version-row{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:10px 14px}.gt-version-row.active{border-color:#bbf7d0}.gt-version-meta{justify-content:space-between;align-items:center;display:flex}.gt-version-left{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.gt-ver-name{color:var(--text-main);font-size:.86rem;font-weight:600}.gt-ver-time{color:var(--text-secondary);font-size:.78rem}.gt-version-actions{gap:4px;display:flex}.gt-version-preview{border-top:1px dashed #e2e8f0;margin-top:10px;padding-top:10px;font-size:.84rem}.gt-version-preview-row{color:var(--text-main);margin-bottom:6px}.gt-version-preview-stops{flex-direction:column;gap:6px;margin-top:6px;display:flex}.gt-version-preview-stop{color:var(--text-main);align-items:center;gap:8px;font-size:.84rem;display:flex}.gt-version-preview-loading{color:var(--text-secondary);padding:6px 0;font-size:.84rem}.gt-route-preview{margin-bottom:4px}.gt-route-canvas{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:12px;width:100%;line-height:0;position:relative;overflow:hidden}.gt-route-canvas img{width:100%;display:block}.gt-route-svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.gt-route-line{stroke:var(--primary-color);stroke-width:.5px;stroke-dasharray:1.6 1.2;vector-effect:non-scaling-stroke}.gt-route-marker{background:var(--primary-color);color:#fff;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:.72rem;font-weight:800;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 6px #00000040}.gt-route-marker.start{background:var(--success-color)}.gt-route-marker.end{background:var(--error-color)}.gt-route-preview-hint{color:var(--text-secondary);text-align:center;margin-top:8px;font-size:.82rem}.gt-preview-modal .gt-route-preview{margin-bottom:0;padding:18px 22px 22px}.gt-point-select-row{gap:8px;display:flex}.gt-point-select-row .gt-input{flex:1}.gt-point-pick-btn{white-space:nowrap;flex-shrink:0}.gt-picker-modal{max-width:760px}.gt-picker-body{align-items:flex-start;gap:16px;padding:18px 22px 22px;display:flex}.gt-picker-map-view{background:#0f172a;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;flex:1;min-width:0;display:flex;position:relative;overflow:hidden}.gt-picker-no-image{color:#94a3b8;justify-content:center;align-items:center;height:320px;font-size:.875rem;display:flex}.gt-picker-zoom-bar{z-index:10;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#1e293b;background:#ffffffe6;border-radius:8px;align-items:center;gap:4px;padding:4px 8px;font-size:.75rem;font-weight:600;display:flex;position:absolute;top:8px;right:8px;box-shadow:0 2px 8px #00000026}.gt-picker-zoom-bar button{cursor:pointer;color:#475569;background:0 0;border:none;border-radius:4px;align-items:center;padding:2px 4px;display:flex}.gt-picker-zoom-bar button:hover:not(:disabled){color:#1e293b;background:#f1f5f9}.gt-picker-zoom-bar button:disabled{opacity:.35;cursor:default}.gt-picker-map-drag{-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;height:380px;display:flex;overflow:hidden}.gt-picker-pin{z-index:5;cursor:pointer;justify-content:center;align-items:center;width:0;height:0;display:flex;position:absolute}.gt-picker-pin:hover{z-index:100}.gt-picker-pin-dot{background-color:#f59e0b;border:2px solid #fff;border-radius:50%;width:12px;height:12px;transition:transform .2s cubic-bezier(.4,0,.2,1);position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 8px #f59e0bb3}.gt-picker-pin:hover .gt-picker-pin-dot{transform:translate(-50%,-50%)scale(1.35);box-shadow:0 0 12px #f59e0b}.gt-picker-pin-dot:after{content:"";opacity:0;border:2px solid #f59e0b;border-radius:50%;animation:2s ease-out infinite gt-picker-pin-pulse;position:absolute;inset:-2px}@keyframes gt-picker-pin-pulse{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(1.8)}}.gt-picker-pin.selected .gt-picker-pin-dot{background-color:var(--primary-color);box-shadow:0 0 8px #2563ebb3}.gt-picker-pin.selected:hover .gt-picker-pin-dot{box-shadow:0 0 12px var(--primary-color)}.gt-picker-pin.selected .gt-picker-pin-dot:after{border-color:var(--primary-color)}.gt-picker-pin-label{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;background:#0f172ad9;border:1px solid #ffffff26;border-radius:6px;max-width:130px;padding:2px 8px;font-size:.7rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);position:absolute;top:10px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 2px 6px #0000004d}.gt-picker-pin:hover .gt-picker-pin-label{background:#0f172af2;border-color:#f59e0b;transform:translate(-50%)scale(1.05);box-shadow:0 4px 12px #0006}.gt-picker-pin.selected .gt-picker-pin-label{border-color:var(--primary-color)}.gt-picker-list{border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;flex-shrink:0;gap:2px;width:220px;max-height:380px;padding:6px;display:flex;overflow-y:auto}.gt-picker-option{cursor:pointer;text-align:left;color:var(--text-main);background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:9px 10px;font-size:.88rem;transition:background .15s;display:flex}.gt-picker-option:hover{background:#f1f5f9}.gt-picker-option.selected{color:var(--primary-color);background:#eff6ff;font-weight:700}.gt-picker-option-tag{color:#15803d;background:#dcfce7;border-radius:999px;flex-shrink:0;padding:1px 6px;font-size:.68rem;font-weight:700}.gt-picker-empty{text-align:center;color:var(--text-secondary);padding:16px;font-size:.85rem}.remote-control{flex-direction:column;height:calc(100vh - 64px);display:flex;overflow:hidden}.rc-header{background:#fff;border-bottom:1px solid #e2e8f0;flex-shrink:0;align-items:center;gap:12px;padding:12px 20px;display:flex}.rc-back-btn{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:background .15s;display:flex}.rc-back-btn:hover{background:#f1f5f9}.rc-title{color:#1e293b;flex:1;align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}.rc-robot-name{color:#3b82f6}.rc-sn{color:#94a3b8;font-size:13px;font-weight:400}.rc-app-tabs{background:#f1f5f9;border-radius:8px;flex-shrink:0;gap:4px;padding:3px;display:flex}.rc-app-tab{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:5px;padding:5px 14px;font-size:13px;font-weight:500;transition:background .15s,color .15s;display:flex}.rc-app-tab:hover{color:#1e293b}.rc-app-tab.active{color:#3b82f6;background:#fff;box-shadow:0 1px 2px #00000014}.rc-source-toggle{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;flex-shrink:0;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.rc-source-toggle:hover{color:#1e293b;border-color:#cbd5e1}.rc-source-toggle.active{color:#3b82f6;background:#eff6ff;border-color:#3b82f6}.rc-stop-remote-btn{white-space:nowrap;flex-direction:row;flex-shrink:0;align-items:center;gap:6px;padding:6px 12px;font-size:13px;display:flex}.rc-stop-remote-btn:disabled{opacity:.6;cursor:not-allowed}.rc-toast{z-index:100;color:#059669;background:#ecfdf5;border-radius:8px;padding:10px 16px;font-size:13px;position:fixed;top:16px;right:20px;box-shadow:0 4px 12px #0000001f}.rc-toast-error{color:#dc2626;background:#fef2f2}.rc-body{background:#f8fafc;flex:1;gap:0;display:flex;overflow:hidden}.rc-panes{background:#0f172a;flex:1;display:flex;overflow:hidden}.rc-feed-pane{flex:1;justify-content:center;align-items:center;min-width:0;display:flex;position:relative;overflow:hidden}.rc-feed-pane+.rc-feed-pane{border-left:1px solid #1e293b}.rc-feed-label{z-index:5;color:#e2e8f0;background:#0f172ab3;border-radius:6px;align-items:center;gap:5px;padding:4px 8px;font-size:12px;display:flex;position:absolute;top:10px;left:10px}.rc-feed-online{color:#34d399}.rc-feed-offline{color:#f87171}.rc-empty-panes{color:#64748b;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.rc-empty-panes p{color:#cbd5e1;margin:0;font-size:15px;font-weight:600}.rc-empty-panes span{font-size:13px}.rc-screen-img{object-fit:contain;cursor:crosshair;-webkit-user-select:none;user-select:none;max-width:100%;max-height:100%;display:block}.rc-screen-img-readonly{cursor:default}.rc-no-frame{color:#475569;flex-direction:column;align-items:center;gap:12px;display:flex}.rc-no-frame p{margin:0;font-size:15px}.rc-offline-overlay{color:#e2e8f0;z-index:10;text-align:center;background:#0f172abf;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex;position:absolute;inset:0}.rc-offline-overlay p{margin:0;font-size:16px;font-weight:600}.rc-offline-overlay span{color:#94a3b8;max-width:240px;font-size:13px}.rc-controls{background:#fff;border-left:1px solid #e2e8f0;flex-direction:column;flex-shrink:0;gap:20px;width:240px;padding:16px;display:flex;overflow-y:auto}.rc-camera-readonly-note{text-align:center;color:#94a3b8;flex-direction:column;align-items:center;gap:10px;padding:32px 16px;display:flex}.rc-camera-readonly-note p{color:#475569;margin:0;font-size:14px;font-weight:600}.rc-camera-readonly-note span{color:#94a3b8;font-size:12px}.rc-group{flex-direction:column;gap:8px;display:flex}.rc-group-label{text-transform:uppercase;letter-spacing:.6px;color:#94a3b8;border-bottom:1px solid #f1f5f9;padding-bottom:4px;font-size:11px;font-weight:600}.rc-btn-row{grid-template-columns:1fr 1fr;gap:6px;display:grid}.rc-btn{color:#334155;cursor:pointer;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:10px 6px;font-size:12px;font-weight:500;line-height:1;transition:all .15s;display:flex}.rc-btn:hover{color:#0f172a;background:#f1f5f9;border-color:#cbd5e1}.rc-btn:active{background:#e2e8f0;transform:scale(.97)}.rc-btn.primary{color:#fff;background:#3b82f6;border-color:#0000}.rc-btn.primary:hover{background:#2563eb}.rc-btn.wide{flex-direction:row;grid-column:1/-1;gap:8px;padding:10px 12px}.rc-text-panel{flex-direction:column;gap:8px;display:flex}.rc-text-panel input{box-sizing:border-box;border:1px solid #cbd5e1;border-radius:8px;outline:none;width:100%;padding:8px 10px;font-size:13px;transition:border-color .15s,box-shadow .15s}.rc-text-panel input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.rc-text-actions{grid-template-columns:1fr 1fr;gap:6px;display:grid}.an-container{flex-direction:column;gap:24px;max-width:1200px;margin:0 auto;padding:10px 0 40px;display:flex}.an-scalar-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.an-scalar-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;align-items:center;gap:14px;padding:18px 20px;transition:box-shadow .2s;display:flex;box-shadow:0 1px 3px #0000000a}.an-scalar-card:hover{box-shadow:0 4px 12px #00000014}.an-scalar-icon{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.an-scalar-body{min-width:0}.an-scalar-value{color:#0f172a;letter-spacing:-.02em;font-size:1.6rem;font-weight:800;line-height:1.2}.an-scalar-label{color:#64748b;margin-top:3px;font-size:.8rem;font-weight:500}.an-blue .an-scalar-icon{color:#3b82f6;background:#eff6ff}.an-green .an-scalar-icon{color:#22c55e;background:#f0fdf4}.an-purple .an-scalar-icon{color:#a855f7;background:#faf5ff}.an-indigo .an-scalar-icon{color:#6366f1;background:#eef2ff}.an-sky .an-scalar-icon{color:#0ea5e9;background:#f0f9ff}.an-teal .an-scalar-icon{color:#14b8a6;background:#f0fdfa}.an-amber .an-scalar-icon{color:#f59e0b;background:#fffbeb}.an-orange .an-scalar-icon{color:#f97316;background:#fff7ed}.an-rose .an-scalar-icon{color:#f43f5e;background:#fff1f2}.an-violet .an-scalar-icon{color:#7c3aed;background:#f5f3ff}.an-two-col{grid-template-columns:2fr 1fr;gap:20px;display:grid}.an-two-col+.an-two-col{grid-template-columns:1fr 1fr}.stats-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden;box-shadow:0 1px 3px #0000000a}.stats-card-header{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:16px 20px 14px;display:flex}.stats-card-header h3{color:#1e293b;margin:0;font-size:.95rem;font-weight:700}.stats-card-body{padding:16px 20px 20px}.an-bar-svg{width:100%;height:auto;display:block}.an-top-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.an-top-item{align-items:center;gap:10px;display:flex}.an-rank{border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:.75rem;font-weight:700;display:inline-flex}.an-rank-1{color:#d97706;background:#fef3c7}.an-rank-2{color:#64748b;background:#f1f5f9}.an-rank-3{color:#f43f5e;background:#fff1f2}.an-rank-n{color:#94a3b8;background:#f8fafc}.an-top-label{color:#334155;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.82rem;overflow:hidden}.an-bar-wrap{background:#f1f5f9;border-radius:4px;flex-shrink:0;width:90px;height:6px;overflow:hidden}.an-bar-fill{background:#3b82f6;border-radius:4px;height:100%;transition:width .4s}.an-top-count{color:#1e293b;text-align:right;flex-shrink:0;min-width:28px;font-size:.82rem;font-weight:700}.an-rate-section{flex-direction:column;gap:28px;padding-top:8px;display:flex}.an-rate-item{flex-direction:column;gap:8px;display:flex}.an-rate-header{justify-content:space-between;align-items:baseline;display:flex}.an-rate-label{color:#334155;font-size:.85rem;font-weight:600}.an-rate-pct{color:#0f172a;letter-spacing:-.02em;font-size:1.4rem;font-weight:800}.an-rate-bg{background:#f1f5f9;border-radius:6px;height:10px;overflow:hidden}.an-rate-fill{background:linear-gradient(90deg,#3b82f6,#6366f1);border-radius:6px;height:100%;transition:width .5s}.an-rate-footer{color:#94a3b8;font-size:.78rem}.an-events-entry{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:12px;align-items:center;gap:10px;padding:14px 20px;font-size:.875rem;font-weight:600;transition:all .2s;display:flex}.an-events-entry:hover{color:#2563eb;background:#f8fafc;border-color:#3b82f6}.an-events-entry-arrow{color:#94a3b8;margin-left:auto;font-size:1rem}.an-events-entry:hover .an-events-entry-arrow{color:#2563eb}.an-empty{color:#94a3b8;justify-content:center;align-items:center;min-height:80px;font-size:.875rem;display:flex}.custom-select-wrapper select,.date-quick-selector select{appearance:none;color:#334155;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:12px;outline:none;min-width:140px;padding:10px 36px 10px 16px;font-size:.875rem;font-weight:600;transition:all .2s}.custom-select-wrapper select:focus,.date-quick-selector select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.select-arrow,.select-arrow-date{pointer-events:none;color:#94a3b8;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.ae-container{flex-direction:column;gap:24px;max-width:1200px;margin:0 auto;padding:10px 0 40px;display:flex}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.stats-page-header h1{color:#0f172a;letter-spacing:-.02em;margin:0 0 6px;font-size:1.5rem;font-weight:800}.stats-page-header p{color:#64748b;margin:0;font-size:.875rem}.stats-filter-form{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.filter-item{position:relative}.custom-select-wrapper select{appearance:none;color:#334155;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:12px;outline:none;min-width:140px;padding:10px 36px 10px 16px;font-size:.875rem;font-weight:600;transition:all .2s}.custom-select-wrapper select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.select-arrow{pointer-events:none;color:#94a3b8;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.custom-date-inputs{align-items:center;gap:8px;display:flex}.custom-date-inputs input[type=date]{color:#334155;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:12px;outline:none;padding:9px 12px;font-size:.875rem}.custom-date-inputs input[type=date]:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.date-split{color:#94a3b8;font-size:.875rem;font-weight:500}.btn-primary{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:12px;align-items:center;gap:6px;padding:10px 20px;font-size:.875rem;font-weight:600;transition:all .2s;display:inline-flex}.btn-primary:hover{background:#1d4ed8}.btn-search-stats{white-space:nowrap}.spinner-icon{animation:1s linear infinite spin}.ae-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden;box-shadow:0 1px 3px #0000000a}.ae-card-header{border-bottom:1px solid #f1f5f9;align-items:center;padding:14px 20px;display:flex}.ae-total{color:#64748b;font-size:.85rem;font-weight:500}.ae-table-wrap{overflow-x:auto}.ae-table{border-collapse:collapse;width:100%;font-size:.85rem}.ae-table th{text-align:left;color:#94a3b8;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:11px 16px;font-size:.78rem;font-weight:700}.ae-table td{vertical-align:middle;color:#334155;border-bottom:1px solid #f8fafc;padding:11px 16px}.ae-row:hover td{background:#f8fafc}.ae-id{color:#94a3b8;font-variant-numeric:tabular-nums;font-size:.8rem}.ae-sn{color:#334155;background:#f1f5f9;border-radius:6px;padding:2px 7px;font-family:Menlo,Monaco,monospace;font-size:.8rem}.ae-time{color:#475569;white-space:nowrap;font-family:Menlo,Monaco,monospace;font-size:.8rem}.ae-received{color:#94a3b8}.ae-event-badge{color:#475569;white-space:nowrap;background:#f1f5f9;border-radius:8px;padding:3px 9px;font-size:.78rem;font-weight:600;display:inline-block}.ae-event-chat{color:#3b82f6;background:#eff6ff}.ae-event-chat-robot-say{color:#0284c7;background:#f0f9ff}.ae-event-chat-turn{color:#0369a1;background:#e0f2fe}.ae-event-leading-start{color:#16a34a;background:#f0fdf4}.ae-event-leading-completed{color:#15803d;background:#dcfce7}.ae-event-guide-start{color:#9333ea;background:#faf5ff}.ae-event-guide-completed{color:#7c3aed;background:#f3e8ff}.ae-event-ui-page{color:#0284c7;background:#f0f9ff}.ae-event-ui-page-duration{color:#0369a1;background:#e0f2fe}.ae-event-ui-element-click{color:#c2410c;background:#fff7ed}.ae-event-system-charging{color:#a16207;background:#fefce8}.ae-event-box-control{color:#be123c;background:#fff1f2}.ae-event-voice-wake{color:#7c3aed;background:#f5f3ff}.ae-params-btn{color:#64748b;cursor:pointer;background:0 0;border:1px solid #e2e8f0;border-radius:8px;padding:4px 12px;font-size:.78rem;font-weight:600;transition:all .15s}.ae-params-btn:hover{color:#334155;background:#f8fafc;border-color:#cbd5e1}.ae-params-row td{background:#f8fafc;padding:0 16px 12px}.ae-params-pre{color:#1e293b;white-space:pre;background:#fff;border:1px solid #e2e8f0;border-radius:8px;margin:0;padding:12px 16px;font-family:Menlo,Monaco,monospace;font-size:.8rem;overflow-x:auto}.ae-empty-row{text-align:center;color:#94a3b8;font-size:.875rem;padding:48px!important}.ae-pagination{border-top:1px solid #f1f5f9;justify-content:center;align-items:center;gap:6px;padding:16px 20px;display:flex}.ae-page-btn{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;justify-content:center;align-items:center;min-width:34px;height:34px;padding:0 8px;font-size:.85rem;font-weight:600;transition:all .15s;display:inline-flex}.ae-page-btn:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.ae-page-btn.active{color:#fff;background:#2563eb;border-color:#2563eb}.ae-page-btn:disabled{opacity:.4;cursor:not-allowed}.ae-page-info{color:#94a3b8;margin-left:8px;font-size:.8rem}.asr-loading{color:#94a3b8;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 0;display:flex}.da-container{flex-direction:column;gap:24px;max-width:1300px;margin:0 auto;padding:10px 0 40px;display:flex}.da-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden;box-shadow:0 1px 3px #0000000a}.da-card-header{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.da-resolve-all-btn{padding:6px 14px}.da-total{color:#64748b;font-size:.85rem;font-weight:500}.da-table-wrap{overflow-x:auto}.da-table{border-collapse:collapse;width:100%;font-size:.85rem}.da-table th{text-align:left;color:#94a3b8;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:11px 16px;font-size:.78rem;font-weight:700}.da-table td{vertical-align:middle;color:#334155;border-bottom:1px solid #f8fafc;padding:11px 16px}.da-row:hover td{background:#f8fafc}.da-row-unread td:first-child{box-shadow:inset 3px 0 #ef4444}.da-id{color:#94a3b8;font-variant-numeric:tabular-nums;font-size:.8rem}.da-sn{color:#334155;background:#f1f5f9;border-radius:6px;padding:2px 7px;font-family:Menlo,Monaco,monospace;font-size:.8rem}.da-time{color:#475569;white-space:nowrap;font-family:Menlo,Monaco,monospace;font-size:.8rem}.da-message{color:#64748b;white-space:normal;word-break:break-word;max-width:320px;line-height:1.5}.da-resolved-by{color:#64748b;font-size:.8rem}.da-type-badge{color:#475569;white-space:nowrap;background:#f1f5f9;border-radius:8px;padding:3px 9px;font-size:.78rem;font-weight:600;display:inline-block}.da-type-relocation-needed{color:#c2410c;background:#fff7ed}.da-type-self-check-needed{color:#a16207;background:#fefce8}.da-type-emergency-stop{color:#dc2626;background:#fef2f2}.da-type-map-load-failed{color:#be185d;background:#fdf2f8}.da-type-avoid-stuck{color:#9333ea;background:#faf5ff}.da-type-charging-failed{color:#be123c;background:#fff1f2}.da-status-badge{white-space:nowrap;border-radius:8px;padding:3px 9px;font-size:.78rem;font-weight:600;display:inline-block}.da-status-unread{color:#dc2626;background:#fef2f2}.da-status-read{color:#2563eb;background:#eff6ff}.da-status-resolved{color:#16a34a;background:#f0fdf4}.da-actions{flex-wrap:nowrap;gap:8px;display:flex}.da-action-btn{color:#64748b;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:4px;padding:5px 10px;font-size:.78rem;font-weight:600;transition:all .15s;display:inline-flex}.da-action-btn:hover:not(:disabled){color:#334155;background:#f8fafc;border-color:#cbd5e1}.da-action-btn:disabled{opacity:.5;cursor:not-allowed}.da-action-primary{color:#fff;background:#2563eb;border-color:#2563eb}.da-action-primary:hover:not(:disabled){color:#fff;background:#1d4ed8;border-color:#1d4ed8}.da-empty-row{text-align:center;color:#94a3b8;font-size:.875rem;padding:48px!important}.da-pagination{border-top:1px solid #f1f5f9;justify-content:center;align-items:center;gap:6px;padding:16px 20px;display:flex}.da-page-btn{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;justify-content:center;align-items:center;min-width:34px;height:34px;padding:0 8px;font-size:.85rem;font-weight:600;transition:all .15s;display:inline-flex}.da-page-btn:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.da-page-btn.active{color:#fff;background:#2563eb;border-color:#2563eb}.da-page-btn:disabled{opacity:.4;cursor:not-allowed}.da-page-info{color:#94a3b8;margin-left:8px;font-size:.8rem}.dl-page{max-width:1400px;margin:0 auto;padding:10px 0 40px}.dl-header{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px;display:flex}.dl-header h1{color:#0f172a;margin:0 0 8px;font-size:1.75rem}.dl-header p{color:#64748b;margin:0}.dl-refresh-btn,.dl-download-btn{cursor:pointer;border:0;border-radius:9px;justify-content:center;align-items:center;gap:7px;font-weight:600;transition:background-color .15s,opacity .15s;display:inline-flex}.dl-refresh-btn{color:#fff;background:#2563eb;padding:10px 15px}.dl-refresh-btn:hover:not(:disabled){background:#1d4ed8}.dl-refresh-btn:disabled,.dl-download-btn:disabled{cursor:not-allowed;opacity:.55}.dl-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;margin-bottom:18px;padding:12px 15px;font-size:.88rem}.dl-content{background:#fff;border:1px solid #e2e8f0;border-radius:16px;grid-template-columns:minmax(270px,330px) minmax(0,1fr);min-height:620px;display:grid;overflow:hidden;box-shadow:0 1px 3px #0f172a0d}.dl-robots-panel{background:#f8fafc;border-right:1px solid #e2e8f0}.dl-panel-title{color:#334155;border-bottom:1px solid #e2e8f0;align-items:center;gap:8px;height:58px;padding:0 18px;font-weight:700;display:flex}.dl-panel-title small{color:#64748b;text-align:center;background:#e2e8f0;border-radius:10px;min-width:24px;margin-left:auto;padding:2px 7px}.dl-robot-list{flex-direction:column;gap:7px;padding:10px;display:flex}.dl-robot-item{color:#334155;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:11px;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;padding:11px 12px;display:grid}.dl-robot-item:hover:not(:disabled){background:#eff6ff;border-color:#bfdbfe}.dl-robot-item.active{background:#dbeafe;border-color:#93c5fd}.dl-robot-item:disabled{cursor:not-allowed;opacity:.65}.dl-robot-icon{color:#2563eb;background:#fff;border-radius:10px;justify-content:center;align-items:center;width:38px;height:38px;display:inline-flex;box-shadow:0 1px 2px #0f172a14}.dl-robot-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.dl-robot-copy strong{color:#1e293b;text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;overflow:hidden}.dl-robot-copy small{color:#94a3b8;text-overflow:ellipsis;white-space:nowrap;font-family:Menlo,Monaco,Consolas,monospace;font-size:.7rem;overflow:hidden}.dl-online,.dl-offline{align-items:center;gap:4px;font-size:.72rem;font-weight:600;display:inline-flex}.dl-online{color:#16a34a}.dl-offline{color:#94a3b8}.dl-tree-panel{background:#fff;min-width:0}.dl-tree{padding-bottom:24px}.dl-tree-heading{border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;gap:18px;min-height:58px;padding:0 20px;display:flex}.dl-tree-heading div{align-items:baseline;gap:10px;display:flex}.dl-tree-heading strong{color:#1e293b}.dl-tree-heading span,.dl-tree-heading small{color:#94a3b8;font-family:Menlo,Monaco,Consolas,monospace;font-size:.75rem}.dl-directory{margin:10px 14px 0}.dl-directory summary{color:#334155;cursor:pointer;border-radius:8px;align-items:center;gap:8px;min-height:40px;padding:6px 10px;font-size:.88rem;font-weight:600;list-style:none;display:flex}.dl-directory summary::-webkit-details-marker{display:none}.dl-directory summary:hover{background:#f8fafc}.dl-directory summary svg{color:#f59e0b;flex:none}.dl-directory summary small{color:#94a3b8;margin-left:auto;font-size:.72rem;font-weight:500}.dl-children{border-left:1px solid #e2e8f0;margin-left:18px;padding-left:8px}.dl-file{border-radius:9px;grid-template-columns:22px minmax(0,1fr) 80px 124px;align-items:center;gap:10px;margin:3px 10px;padding:9px 10px;display:grid}.dl-file:hover{background:#f8fafc}.dl-file>svg{color:#3b82f6}.dl-file-info{flex-direction:column;gap:2px;min-width:0;display:flex}.dl-file-info strong{color:#334155;overflow-wrap:anywhere;white-space:normal;font-size:.84rem;line-height:1.35}.dl-file-info span{color:#94a3b8;text-overflow:ellipsis;white-space:nowrap;font-family:Menlo,Monaco,Consolas,monospace;font-size:.68rem;overflow:hidden}.dl-file-size{color:#64748b;text-align:right;white-space:nowrap;font-size:.76rem}.dl-download-btn{color:#2563eb;background:#eff6ff;padding:7px 10px;font-size:.76rem}.dl-download-btn:hover:not(:disabled){background:#dbeafe}.dl-placeholder,.dl-loading{color:#94a3b8;text-align:center;justify-content:center;align-items:center;gap:8px;padding:40px 20px;font-size:.86rem;display:flex}.dl-tree-placeholder{flex-direction:column;min-height:560px}.dl-tree-placeholder strong{color:#475569;margin-top:6px;font-size:1rem}.dl-tree-placeholder span{max-width:360px}.dl-empty-directory{color:#cbd5e1;padding:8px 12px;font-size:.78rem}.dl-spin{animation:.8s linear infinite dl-spin}@keyframes dl-spin{to{transform:rotate(360deg)}}@media (width<=900px){.dl-content{grid-template-columns:1fr}.dl-robots-panel{border-bottom:1px solid #e2e8f0;border-right:0}.dl-tree-placeholder{min-height:320px}}@media (width<=640px){.dl-header{flex-direction:column;align-items:stretch}.dl-file{grid-template-columns:22px minmax(0,1fr)}.dl-file-size{text-align:left;grid-column:2}.dl-download-btn{grid-column:2;justify-self:start}.dl-tree-heading{flex-direction:column;align-items:flex-start;padding-top:12px;padding-bottom:12px}}.apikey-mgmt{max-width:1100px;margin:0 auto}.apikey-mgmt .page-header p code{background:#f1f5f9;border-radius:6px;padding:2px 6px;font-size:.85em}.apikey-table-container{background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden}.apikey-table{border-collapse:collapse;text-align:left;width:100%}.apikey-table th{color:#64748b;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:16px 24px;font-size:.875rem;font-weight:600}.apikey-table td{color:#334155;border-bottom:1px solid #f1f5f9;padding:16px 24px;font-size:.95rem}.key-cell{align-items:center;gap:12px;display:flex}.key-cell .avatar{color:var(--primary-color);background:#eff6ff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.key-value{align-items:center;gap:8px;display:flex}.key-value code{color:#475569;white-space:nowrap;background:#f8fafc;border-radius:6px;padding:4px 10px;font-size:.85rem}.badge.enabled{color:#16a34a;background:#f0fdf4}.badge.disabled{color:#94a3b8;background:#f1f5f9}.text-success{color:#16a34a}.actions{align-items:center;gap:4px;display:flex}.empty-row{text-align:center;color:#94a3b8;padding:40px 24px!important}@media (width<=768px){.apikey-table th:nth-child(4),.apikey-table td:nth-child(4){display:none}}.holiday-mgmt{max-width:1100px;margin:0 auto}.holiday-mgmt .page-header p{max-width:640px}.holiday-mgmt .header-actions{align-items:center;gap:10px;display:flex}.holiday-mgmt .year-select{color:#334155;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:9px 14px;font-size:.9rem}.holiday-mgmt .spinning{animation:1s linear infinite holiday-spin}@keyframes holiday-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.holiday-table-container{background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden}.holiday-table{border-collapse:collapse;text-align:left;width:100%}.holiday-table th{color:#64748b;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:16px 24px;font-size:.875rem;font-weight:600}.holiday-table td{color:#334155;border-bottom:1px solid #f1f5f9;padding:16px 24px;font-size:.95rem}.date-cell{align-items:center;gap:12px;display:flex}.date-cell .avatar{color:var(--primary-color);background:#eff6ff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.holiday-mgmt .badge.holiday{color:#dc2626;background:#fef2f2}.holiday-mgmt .badge.workday{color:#2563eb;background:#eff6ff}.holiday-mgmt .badge.manual{color:#475569;background:#f1f5f9}.holiday-mgmt .badge.sync{color:#16a34a;background:#f0fdf4}.mc-container{flex-direction:column;gap:24px;display:flex}.mc-loading-page{color:#64748b;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:80px 0;display:flex}@keyframes mc-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.mc-header{background:#fff;border:1px solid #e2e8f0;border-radius:16px;justify-content:space-between;align-items:center;padding:24px 28px;display:flex}.mc-title{align-items:center;gap:16px;display:flex}.mc-icon-badge{color:#fff;background:linear-gradient(135deg,#f59e0b,#f97316);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.mc-title h1{color:#1e293b;margin:0 0 4px;font-size:1.3rem;font-weight:700}.mc-title p{color:#64748b;margin:0;font-size:.85rem}.mc-hint{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:12px;padding:12px 18px;font-size:.85rem}.mc-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden}.mc-table{border-collapse:collapse;width:100%;font-size:.9rem}.mc-table thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}.mc-table th{text-align:left;color:#475569;text-transform:uppercase;letter-spacing:.04em;padding:12px 16px;font-size:.82rem;font-weight:600}.mc-table td{color:#334155;vertical-align:middle;border-bottom:1px solid #f1f5f9;padding:14px 16px}.mc-table tbody tr:last-child td{border-bottom:none}.mc-table tbody tr:hover{background:#f8fafc}.mc-table tbody tr.disabled{opacity:.55}.mc-type-badge{color:#92400e;background:#fef3c7;border-radius:999px;padding:3px 10px;font-size:.8rem;font-weight:600}.mc-side{flex-direction:column;gap:2px;display:flex}.mc-floor{color:#64748b;font-size:.78rem}.mc-point{color:#1e293b;font-weight:600}.mc-arrow{text-align:center;color:#94a3b8}.mc-enabled-badge{color:#16a34a;font-size:.82rem;font-weight:600}.mc-disabled-badge{color:#94a3b8;font-size:.82rem}.mc-none{color:#94a3b8;font-size:.85rem}.mc-empty{text-align:center;color:#94a3b8;padding:40px}.mc-row-actions{justify-content:flex-end;gap:8px;display:flex}.mc-modal{width:560px}.mc-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:.88rem}.mc-form-row{gap:16px;margin-bottom:14px;display:flex}.mc-form-col{flex:1;min-width:0}.mc-side-picker{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;align-items:flex-start;gap:12px;padding:16px;display:flex}.mc-side-block{flex:1;min-width:0}.mc-side-connector{color:#6366f1;flex-shrink:0;padding-top:34px}.mc-checkbox-label{color:#475569;cursor:pointer;align-items:center;gap:8px;font-size:.85rem;display:flex}.field-input{color:#1e293b;box-sizing:border-box;border:1px solid #d1d5db;border-radius:8px;outline:none;width:100%;padding:10px 12px;font-size:.9rem;transition:border-color .15s}.field-input:disabled{color:#94a3b8;background:#f1f5f9}.hc-container{flex-direction:column;gap:24px;display:flex}.hc-loading-page{color:#64748b;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:80px 0;display:flex}.toast-alert{z-index:2000;background:#fff;border:1px solid #e2e8f0;border-radius:16px;align-items:center;gap:10px;padding:14px 24px;font-size:.95rem;font-weight:500;animation:.3s cubic-bezier(.16,1,.3,1) hc-slide-in;display:flex;position:fixed;top:24px;right:24px;box-shadow:0 10px 25px -5px #0000001a,0 8px 16px -8px #00000014}.hc-header{background:#fff;border:1px solid #e2e8f0;border-radius:16px;justify-content:space-between;align-items:center;padding:24px 28px;display:flex}.hc-header-actions{align-items:center;gap:12px;display:flex}.hc-title{align-items:center;gap:16px;display:flex}.hc-icon-badge{color:#fff;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.kb-icon-badge{background:linear-gradient(135deg,#0ea5e9,#6366f1)}.hc-title h1{color:#1e293b;margin:0 0 4px;font-size:1.3rem;font-weight:700}.hc-title p{color:#64748b;margin:0;font-size:.85rem}.hc-scope-badge{vertical-align:middle;border-radius:20px;align-items:center;gap:5px;padding:2px 10px;font-size:.78rem;font-weight:600;display:inline-flex}.hc-scope-badge.group{color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe}.hc-scope-badge.scene{color:#6b21a8;background:#faf5ff;border:1px solid #e9d5ff}.hc-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden}.hc-page-none{color:#94a3b8;font-size:.85rem}.hc-empty{text-align:center;color:#94a3b8;padding:40px}.hc-row-actions{justify-content:flex-end;gap:8px;display:flex}.btn-row-icon{cursor:pointer;color:#64748b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;text-decoration:none;transition:all .15s;display:flex}.btn-row-icon:disabled{opacity:.4;cursor:not-allowed}.kb-empty-state{color:#64748b;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:72px 24px;display:flex}.kb-empty-icon{color:#6366f1;background:linear-gradient(135deg,#e0f2fe,#ede9fe);border-radius:16px;justify-content:center;align-items:center;width:64px;height:64px;display:flex}.kb-empty-state h2{color:#1e293b;margin:0;font-size:1.05rem}.kb-empty-state p{max-width:360px;margin:0;font-size:.85rem}.kb-empty-actions{align-items:center;gap:12px;margin-top:6px;display:flex}.kb-import-list{border:1px solid #e2e8f0;border-radius:8px;max-height:320px;overflow-y:auto}.kb-import-row{cursor:pointer;border-bottom:1px solid #f1f5f9;align-items:center;gap:12px;padding:12px 14px;display:flex}.kb-import-row:last-child{border-bottom:none}.kb-import-row:hover{background:#f8fafc}.kb-import-info{flex-direction:column;gap:2px;display:flex}.kb-import-name{color:#1e293b;font-size:.88rem;font-weight:500}.kb-import-desc{color:#94a3b8;font-size:.78rem}.status-badge{border-radius:999px;align-items:center;padding:3px 10px;font-size:.78rem;font-weight:600;display:inline-flex}.status-badge.active,.status-badge.processed{color:#047857;background:#ecfdf5}.status-badge.draft,.status-badge.processing{color:#b45309;background:#fffbeb}.status-badge.failed{color:#b91c1c;background:#fef2f2}.kb-section{border-bottom:1px solid #f1f5f9;padding:20px 24px}.kb-section:last-child{border-bottom:none}.kb-section-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.kb-section-header h3{color:#1e293b;align-items:center;margin:0;font-size:.95rem;display:flex}.kb-file-row{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:10px 0;display:flex}.kb-file-row:last-child{border-bottom:none}.kb-file-info{flex-direction:column;gap:2px;display:flex}.kb-file-name{color:#1e293b;font-size:.88rem;font-weight:500}.kb-file-meta{color:#94a3b8;font-size:.76rem}.retrieve-form{gap:8px;margin-bottom:16px;display:flex}.retrieve-form .field-input{flex:1}.retrieve-result-item{background:#fafbff;border:1px solid #e2e8f0;border-radius:10px;margin-bottom:10px;padding:12px 14px}.retrieve-result-score{color:#6366f1;margin-bottom:6px;font-size:.76rem;font-weight:600}.retrieve-result-text{color:#334155;white-space:pre-wrap;font-size:.86rem;line-height:1.5}.hc-modal{width:480px}.chunks-modal{width:640px}.chunk-item{border:1px solid #e2e8f0;border-radius:10px;margin-bottom:10px;padding:12px 14px}.chunk-item-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.chunk-item-index{color:#6366f1;font-size:.76rem;font-weight:600}.chunk-text{color:#334155;white-space:pre-wrap;font-size:.86rem;line-height:1.6}.chunk-edit-textarea{min-height:120px}.chunk-edit-actions{justify-content:flex-end;align-items:center;gap:8px;margin-top:8px;display:flex}.chunk-char-count{color:#94a3b8;margin-right:auto;font-size:.76rem}.hc-pagination{color:#64748b;justify-content:center;align-items:center;gap:16px;padding:12px 0 4px;font-size:.85rem;display:flex}.chunk-mode-toggle{flex-direction:column;gap:8px;display:flex}.chunk-mode-option{cursor:pointer;border:1px solid #e2e8f0;border-radius:8px;align-items:flex-start;gap:10px;padding:10px 12px;transition:all .15s;display:flex}.chunk-mode-option input{margin-top:3px}.chunk-mode-option.active{background:#f5f3ff;border-color:#6366f1}.chunk-mode-title{color:#1e293b;font-size:.88rem;font-weight:600}.chunk-mode-desc{color:#94a3b8;margin-top:2px;font-size:.78rem}.chunk-custom-panel{background:#fafbff;border:1px solid #f1f5f9;border-radius:8px;margin-top:12px;padding:14px}.chunk-custom-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.separator-checklist{flex-wrap:wrap;gap:6px 16px;display:flex}.separator-check-item{color:#334155;cursor:pointer;align-items:center;gap:6px;font-size:.85rem;display:flex}.hc-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:.88rem}.field-label .required{color:#ef4444;margin-left:3px}.field-input,.field-textarea{color:#1e293b;box-sizing:border-box;border:1px solid #d1d5db;border-radius:8px;outline:none;width:100%;padding:10px 12px;font-family:inherit;font-size:.9rem;transition:border-color .15s}.field-textarea{resize:vertical;min-height:72px}.field-input:focus,.field-textarea:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.file-placeholder{color:#94a3b8;text-align:center;flex-direction:column;align-items:center;gap:6px;font-size:.875rem;display:flex}.upload-icon{color:#a5b4fc}.file-selected-list{flex-direction:column;gap:6px;width:100%;display:flex}.file-selected{color:#4f46e5;align-items:center;gap:10px;width:100%;display:flex}.tr-container{flex-direction:column;gap:20px;padding-bottom:40px;display:flex}.tr-loading{color:var(--text-secondary,#486581);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:80px 0;display:flex}.tr-loading .spinner{color:var(--primary-color,#2563eb);animation:1s linear infinite trSpin}@keyframes trSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tr-header{background:#fff;border:1px solid #e2e8f0;border-radius:16px;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.tr-title-row{align-items:center;gap:14px;display:flex}.tr-icon-badge{color:#fff;background:linear-gradient(135deg,#0ea5e9,#2563eb);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.tr-title-row h1{color:#1e293b;margin:0 0 2px;font-size:1.2rem;font-weight:700}.tr-subtitle{color:#64748b;font-size:.85rem}.tr-header-actions{gap:10px;display:flex}.tr-hint{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:12px;padding:12px 18px;font-size:.85rem}.tr-empty{color:#94a3b8;background:#fff;border:1px dashed #e2e8f0;border-radius:16px;flex-direction:column;align-items:center;gap:14px;padding:60px 0;display:flex}.tr-route-list{flex-direction:column;gap:12px;display:flex}.tr-route-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;transition:box-shadow .2s;display:flex}.tr-route-card:hover{box-shadow:0 4px 14px #0000000f}.tr-route-card.disabled{opacity:.6}.tr-route-main{flex:1;min-width:0}.tr-route-title-row{align-items:center;gap:10px;display:flex}.tr-route-title-row h3{color:#1e293b;margin:0;font-size:1.02rem;font-weight:700}.tr-disabled-badge{color:#64748b;background:#f1f5f9;border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:700}.tr-cross-floor-badge{color:#6d28d9;background:#ede9fe;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:.72rem;font-weight:700;display:inline-flex}.tr-route-desc{color:#64748b;margin:6px 0 0;font-size:.85rem}.tr-route-meta{color:#94a3b8;gap:16px;margin-top:8px;font-size:.78rem;display:flex}.tr-route-meta span{align-items:center;gap:4px;display:inline-flex}.tr-route-actions{flex-shrink:0;gap:4px;display:flex}.btn-primary,.btn-secondary,.btn-outline-sm,.btn-icon{cursor:pointer;border:none;align-items:center;gap:6px;font-weight:600;transition:all .15s;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--primary-color,#2563eb), #3b82f6);color:#fff;border-radius:10px;padding:9px 18px;font-size:.9rem}.btn-secondary{color:#475569;background:#f1f5f9;border-radius:10px;padding:9px 18px;font-size:.9rem}.btn-outline-sm{color:#64748b;background:#fff;border:1px dashed #cbd5e1;border-radius:8px;padding:5px 12px;font-size:.82rem}.btn-outline-sm:hover{border-color:var(--primary-color,#2563eb);color:var(--primary-color,#2563eb);background:#eff6ff}.btn-icon{color:#64748b;background:#f1f5f9;border-radius:8px;justify-content:center;width:32px;height:32px;padding:0}.btn-icon:hover{background:#e2e8f0}.btn-icon:disabled{opacity:.35;cursor:not-allowed}.btn-icon.delete:hover,.btn-icon.btn-danger:hover{color:#ef4444;background:#fef2f2}.btn-icon .on{color:#10b981}.btn-icon .off{color:#94a3b8}.tr-form-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:22px 24px}.tr-section{margin-bottom:22px}.tr-section-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.tr-form-row{gap:16px;margin-bottom:14px;display:flex}.tr-form-col{flex:1;min-width:0}.tr-form-col.narrow{flex:0 0 200px}.tr-label{color:#475569;margin-bottom:6px;font-size:.82rem;font-weight:700;display:block}.tr-label.required:after{content:" *";color:#ef4444}.tr-input,.tr-textarea{color:#1e293b;box-sizing:border-box;background:#fff;border:1px solid #d1d5db;border-radius:8px;outline:none;width:100%;padding:9px 12px;font-family:inherit;font-size:.88rem}.tr-input:focus,.tr-textarea:focus{border-color:var(--primary-color,#2563eb);box-shadow:0 0 0 3px #2563eb1a}.tr-textarea{resize:vertical}.tr-switch{width:42px;height:24px;display:inline-block;position:relative}.tr-switch input{opacity:0;width:0;height:0}.tr-slider{cursor:pointer;background:#cbd5e1;border-radius:24px;transition:all .2s;position:absolute;inset:0}.tr-slider:before{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:all .2s;position:absolute;bottom:3px;left:3px}.tr-switch input:checked+.tr-slider{background:var(--primary-color,#2563eb)}.tr-switch input:checked+.tr-slider:before{transform:translate(18px)}.tr-switch-label{color:#1e293b;align-items:center;gap:10px;font-size:.88rem;font-weight:600;display:inline-flex}.tr-stops-list{flex-direction:column;gap:10px;display:flex}.tr-stop-item{border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.tr-stop-header{cursor:pointer;background:#f8fafc;align-items:center;gap:10px;padding:12px 14px;display:flex}.tr-stop-chevron{color:#94a3b8;flex-shrink:0;transition:transform .2s}.tr-stop-chevron.open{transform:rotate(180deg)}.tr-stop-num{color:#475569;background:#e2e8f0;border-radius:999px;flex-shrink:0;padding:2px 8px;font-size:.72rem;font-weight:800}.tr-stop-summary{color:#1e293b;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.9rem;font-weight:600;overflow:hidden}.tr-stop-type-tag,.tr-stop-lock-tag{border-radius:999px;flex-shrink:0;align-items:center;gap:3px;padding:2px 8px;font-size:.7rem;font-weight:700;display:inline-flex}.tr-stop-type-tag{color:#6d28d9;background:#ede9fe}.tr-stop-lock-tag{color:#92400e;background:#fef3c7}.tr-stop-actions{flex-shrink:0;gap:4px;display:flex}.tr-stop-body{border-top:1px solid #e2e8f0;padding:16px}.tr-subsection{border-top:1px dashed #e2e8f0;margin-top:12px;padding-top:12px}.tr-password-config{margin-top:12px}.tr-point-select-row{gap:8px;display:flex}.tr-point-select-row .tr-input{flex:1}.tr-point-pick-btn{white-space:nowrap;flex-shrink:0}.tr-form-footer{border-top:1px solid #e2e8f0;justify-content:flex-end;gap:10px;padding-top:18px;display:flex}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:20px;width:100%;max-width:640px;overflow:hidden;box-shadow:0 20px 25px -5px #0000001a}.close-btn{cursor:pointer;color:#94a3b8;background:0 0;border:none;display:flex}.close-btn:hover{color:#1e293b}.tr-picker-modal{max-width:760px}.tr-picker-floor-bar{color:#475569;align-items:center;gap:10px;padding:14px 22px 0;font-size:.85rem;font-weight:600;display:flex}.tr-picker-floor-bar select{max-width:260px}.tr-picker-body{align-items:flex-start;gap:16px;padding:12px 22px 22px;display:flex}.tr-picker-map-view{background:#0f172a;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;flex:1;min-width:0;display:flex;position:relative;overflow:hidden}.tr-picker-no-image{color:#94a3b8;justify-content:center;align-items:center;height:320px;font-size:.875rem;display:flex}.tr-picker-zoom-bar{z-index:10;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#1e293b;background:#ffffffe6;border-radius:8px;align-items:center;gap:4px;padding:4px 8px;font-size:.75rem;font-weight:600;display:flex;position:absolute;top:8px;right:8px;box-shadow:0 2px 8px #00000026}.tr-picker-zoom-bar button{cursor:pointer;color:#475569;background:0 0;border:none;border-radius:4px;align-items:center;padding:2px 4px;display:flex}.tr-picker-zoom-bar button:hover:not(:disabled){color:#1e293b;background:#f1f5f9}.tr-picker-zoom-bar button:disabled{opacity:.35;cursor:default}.tr-picker-map-drag{-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;height:380px;display:flex;overflow:hidden}.tr-picker-pin{z-index:5;cursor:pointer;justify-content:center;align-items:center;width:0;height:0;display:flex;position:absolute}.tr-picker-pin:hover{z-index:100}.tr-picker-pin-dot{background-color:#f59e0b;border:2px solid #fff;border-radius:50%;width:12px;height:12px;transition:transform .2s cubic-bezier(.4,0,.2,1);position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 8px #f59e0bb3}.tr-picker-pin:hover .tr-picker-pin-dot{transform:translate(-50%,-50%)scale(1.35);box-shadow:0 0 12px #f59e0b}.tr-picker-pin.selected .tr-picker-pin-dot{background-color:var(--primary-color,#2563eb);box-shadow:0 0 8px #2563ebb3}.tr-picker-pin.selected:hover .tr-picker-pin-dot{box-shadow:0 0 12px var(--primary-color,#2563eb)}.tr-picker-pin-label{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;background:#0f172ad9;border:1px solid #ffffff26;border-radius:6px;max-width:130px;padding:2px 8px;font-size:.7rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);position:absolute;top:10px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 2px 6px #0000004d}.tr-picker-pin:hover .tr-picker-pin-label{background:#0f172af2;border-color:#f59e0b;transform:translate(-50%)scale(1.05)}.tr-picker-pin.selected .tr-picker-pin-label{border-color:var(--primary-color,#2563eb)}.tr-picker-list{border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;flex-shrink:0;gap:2px;width:220px;max-height:380px;padding:6px;display:flex;overflow-y:auto}.tr-picker-option{cursor:pointer;text-align:left;color:#1e293b;background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:9px 10px;font-size:.88rem;transition:background .15s;display:flex}.tr-picker-option:hover{background:#f1f5f9}.tr-picker-option.selected{color:var(--primary-color,#2563eb);background:#eff6ff;font-weight:700}.tr-picker-empty{text-align:center;color:#94a3b8;padding:16px;font-size:.85rem}.tt-container{flex-direction:column;gap:24px;display:flex}.tt-loading-page{color:#64748b;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:80px 0;display:flex}.spinner{color:#6366f1;animation:1s linear infinite tt-spin}@keyframes tt-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.toast-alert{z-index:2000;background:#fff;border:1px solid #e2e8f0;border-radius:16px;align-items:center;gap:10px;padding:14px 24px;font-size:.95rem;font-weight:500;display:flex;position:fixed;top:24px;right:24px;box-shadow:0 10px 25px -5px #0000001a,0 8px 16px -8px #00000014}.toast-alert.success{color:#065f46;border-left:4px solid #10b981}.toast-alert.error{color:#991b1b;border-left:4px solid #ef4444}.tt-header{background:#fff;border:1px solid #e2e8f0;border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:24px 28px;display:flex}.tt-title{align-items:center;gap:16px;display:flex}.tt-icon-badge{color:#fff;background:linear-gradient(135deg,#0ea5e9,#06b6d4);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.tt-title h1{color:#1e293b;margin:0 0 4px;font-size:1.3rem;font-weight:700}.tt-title p{color:#64748b;margin:0;font-size:.85rem}.tt-header-actions{align-items:center;gap:10px;display:flex}.tt-status-filter{width:140px}.tt-hint{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:12px;padding:12px 18px;font-size:.85rem}.tt-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden}.tt-table{border-collapse:collapse;width:100%;font-size:.88rem}.tt-table thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}.tt-table th{text-align:left;color:#475569;text-transform:uppercase;letter-spacing:.04em;padding:12px 16px;font-size:.8rem;font-weight:600}.tt-table td{color:#334155;vertical-align:middle;border-bottom:1px solid #f1f5f9;padding:13px 16px}.tt-table tbody tr:last-child td{border-bottom:none}.tt-table tbody tr:hover{background:#f8fafc}.tt-empty{text-align:center;color:#94a3b8;padding:40px}.tt-status-badge{border-radius:999px;align-items:center;padding:3px 10px;font-size:.78rem;font-weight:700;display:inline-flex}.tt-status-badge.pending{color:#64748b;background:#f1f5f9}.tt-status-badge.progress{color:#1d4ed8;background:#dbeafe}.tt-status-badge.completed{color:#15803d;background:#dcfce7}.tt-status-badge.cancelled{color:#94a3b8;background:#f1f5f9}.tt-status-badge.failed{color:#b91c1c;background:#fee2e2}.tt-row-actions{justify-content:flex-end;gap:8px;display:flex}.btn-row-icon{cursor:pointer;color:#64748b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .15s;display:flex}.btn-row-icon:hover{color:#6366f1;background:#f5f3ff;border-color:#6366f1}.btn-row-icon.danger:hover{color:#ef4444;background:#fef2f2;border-color:#ef4444}.btn-primary,.btn-secondary{cursor:pointer;border:none;align-items:center;gap:8px;font-size:.9rem;font-weight:600;display:inline-flex}.btn-primary{color:#fff;background:linear-gradient(135deg,#2563eb,#3b82f6);border-radius:10px;padding:10px 18px}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{color:#475569;background:#f1f5f9;border-radius:10px;padding:10px 18px}.field-label{color:#374151;margin-bottom:6px;font-size:.85rem;font-weight:600;display:block}.field-label.required:after{content:" *";color:#ef4444}.field-input{color:#1e293b;box-sizing:border-box;border:1px solid #d1d5db;border-radius:8px;outline:none;width:100%;padding:10px 12px;font-size:.9rem}.field-input:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.modal-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:16px;max-width:90vw;overflow:hidden;box-shadow:0 20px 60px #00000026}.modal-header{border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h2{color:#1e293b;margin:0;font-size:1.1rem;font-weight:700}.modal-close{cursor:pointer;color:#94a3b8;background:0 0;border:none;border-radius:6px;align-items:center;padding:4px;display:flex}.modal-close:hover{color:#374151;background:#f1f5f9}.modal-body{max-height:70vh;padding:24px;overflow-y:auto}.modal-footer{border-top:1px solid #e2e8f0;justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.tt-modal{width:480px}.tt-cross-floor-tip{color:#92400e;margin:6px 0 0;font-size:.78rem}.tt-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:.88rem}.tt-detail-modal{width:620px}.tt-detail-loading{color:#64748b;justify-content:center;align-items:center;gap:8px;padding:30px 0;display:flex}.tt-detail-meta{background:#f8fafc;border-radius:10px;grid-template-columns:1fr 1fr;gap:10px 20px;margin-bottom:18px;padding:14px 16px;display:grid}.tt-detail-meta div{flex-direction:column;gap:2px;font-size:.82rem;display:flex}.tt-detail-meta span{color:#94a3b8}.tt-detail-meta strong{color:#1e293b;font-size:.9rem}.tt-stop-timeline{flex-direction:column;gap:10px;display:flex}.tt-stop-row{border:1px solid #e2e8f0;border-radius:10px;gap:12px;padding:12px;display:flex}.tt-stop-row.current{background:#eff6ff;border-color:#93c5fd}.tt-stop-row-num{color:#475569;background:#e2e8f0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:.75rem;font-weight:800;display:flex}.tt-stop-row-body{flex:1;min-width:0}.tt-stop-row-top{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tt-stop-row-point{color:#1e293b;font-size:.9rem;font-weight:700}.tt-stop-type-tag{color:#6d28d9;background:#ede9fe;border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:700}.tt-stop-status-tag{border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:700}.tt-stop-status-tag.pending{color:#94a3b8;background:#f1f5f9}.tt-stop-status-tag.waiting{color:#92400e;background:#fef3c7}.tt-stop-status-tag.confirmed{color:#15803d;background:#dcfce7}.tt-stop-status-tag.timeout{color:#b91c1c;background:#fee2e2}.tt-stop-status-tag.skipped{color:#94a3b8;background:#f1f5f9}.tt-lock-tag{color:#92400e;background:#fef3c7;border-radius:999px;align-items:center;gap:3px;padding:2px 8px;font-size:.7rem;font-weight:700;display:inline-flex}.tt-stop-row-detail{color:#94a3b8;flex-wrap:wrap;gap:14px;margin-top:6px;font-size:.78rem;display:flex}.tt-stop-row-detail span{align-items:center;gap:4px;display:inline-flex}.tt-password-value{font-weight:700;color:#b45309!important}.tt-fail-count{color:#dc2626!important}.tt-cancel-btn{margin-right:auto;color:#dc2626!important}.app-version-mgmt{max-width:1200px;margin:0 auto}.header-left{flex-direction:column;gap:12px;display:flex}.header-left h1{color:#1e293b;margin:0;font-size:1.8rem;font-weight:800}.header-left p{color:#64748b;margin:0;font-size:.9rem}.tab-switcher{background:#f1f5f9;border-radius:12px;width:fit-content;padding:4px;display:flex}.tab-item{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:10px;padding:8px 20px;font-size:.95rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1)}.tab-item:hover{color:#1e293b}.tab-item.active{color:var(--primary-color,#2563eb);background:#fff;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.version-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;display:grid}.version-card{background:#fff;border:1px solid #e2e8f0;border-radius:20px;flex-direction:column;gap:16px;padding:24px;transition:all .3s;display:flex}.version-card:hover{border-color:var(--primary-color,#2563eb);transform:translateY(-4px);box-shadow:0 12px 24px -8px #0000001a}.version-title{align-items:flex-start;gap:12px;display:flex}.version-title .icon{color:var(--primary-color,#2563eb);background:#eff6ff;border-radius:12px;flex-shrink:0;width:38px;height:38px;padding:8px}.version-title h3{color:#1e293b;margin:0 0 6px;font-size:1.05rem;font-weight:700}.version-code{color:#94a3b8;font-size:.85rem;font-weight:500}.status-tag{border-radius:4px;margin-right:6px;padding:2px 8px;font-size:.7rem;font-weight:700}.status-tag.draft{color:#64748b;background:#f1f5f9}.status-tag.published{color:#16a34a;background:#f0fdf4}.status-tag.offline{color:#ef4444;background:#fef2f2}.force-tag{color:#ea580c;background:#fff7ed;border-radius:4px;padding:2px 8px;font-size:.7rem;font-weight:700}.changelog{color:#475569;white-space:pre-wrap;margin:0;font-size:.85rem;line-height:1.5}.version-meta{color:#94a3b8;justify-content:space-between;font-size:.75rem;display:flex}.card-footer{border-top:1px solid #f1f5f9;gap:8px;padding-top:12px;display:flex}.btn-primary.small{flex:1;justify-content:center;padding:8px 12px;font-size:.85rem}.btn-outline{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:.85rem;font-weight:600;display:flex}.btn-outline:hover{border-color:var(--primary-color,#2563eb);color:var(--primary-color,#2563eb)}.task-list{flex-direction:column;gap:8px;max-height:320px;display:flex;overflow-y:auto}.task-row{background:#f8fafc;border-radius:8px;align-items:center;gap:12px;padding:8px 12px;font-size:.85rem;display:flex}.task-sn{color:#334155;flex:1;font-family:monospace}.task-status{border-radius:4px;padding:2px 8px;font-size:.75rem;font-weight:700}.task-status.pending{color:#64748b;background:#f1f5f9}.task-status.pushed{color:#2563eb;background:#eff6ff}.task-status.downloading,.task-status.installing{color:#ca8a04;background:#fefce8}.task-status.installed{color:#16a34a;background:#f0fdf4}.task-status.failed{color:#ef4444;background:#fef2f2}.task-error{color:#ef4444;font-size:.75rem}.required-label:after{content:" *";color:#ef4444}.field-hint{color:#94a3b8;margin:4px 0 0;font-size:.78rem}.form-item input[readonly]{color:#64748b;cursor:not-allowed;background:#f8fafc}.file-drop-zone{cursor:pointer;background:#fafbff;border:2px dashed #e2e8f0;border-radius:10px;justify-content:center;align-items:center;min-height:90px;padding:20px;transition:all .2s;display:flex}.file-drop-zone:hover{background:#eff6ff;border-color:#93c5fd}.file-drop-zone.has-file{background:#eff6ff;border-style:solid;border-color:#93c5fd}.file-placeholder{color:#94a3b8;flex-direction:column;align-items:center;gap:6px;font-size:.875rem;display:flex}.file-placeholder .upload-icon{color:#93c5fd}.file-hint{color:#cbd5e1;font-size:.78rem}.file-selected{width:100%;color:var(--primary-color,#2563eb);align-items:center;gap:10px;display:flex}.file-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.875rem;font-weight:500;overflow:hidden}.file-size{color:#94a3b8;white-space:nowrap;font-size:.8rem}.file-clear{color:#94a3b8;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.file-clear:hover{color:#dc2626;background:#fef2f2;border-color:#fecaca}.upload-progress{align-items:center;gap:10px;margin-top:8px;display:flex}.progress-bar{background:#e2e8f0;border-radius:999px;flex:1;height:6px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,#2563eb,#06b6d4);border-radius:999px;height:100%;transition:width .2s}.progress-text{color:var(--primary-color,#2563eb);text-align:right;min-width:36px;font-size:.78rem;font-weight:600}.empty-devices{color:#94a3b8;text-align:center;border:1px dashed #e2e8f0;border-radius:8px;padding:40px;font-size:.85rem}.admin-layout{background-color:#f8fafc;width:100vw;height:100vh;display:flex;overflow:hidden}.sidebar{background-color:#fff;border-right:1px solid #e2e8f0;flex-direction:column;flex-shrink:0;width:260px;height:100vh;padding:24px 16px;display:flex;overflow:hidden}.sidebar-header{align-items:center;gap:12px;margin-bottom:40px;padding:0 8px;display:flex}.logo-box{background:var(--primary-color);color:#fff;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-weight:700;display:flex}.sidebar-header h2{color:#1e293b;font-size:1.1rem;font-weight:700}.sidebar-nav{scrollbar-width:thin;flex-direction:column;flex:1;gap:8px;min-height:0;display:flex;overflow-y:auto}.sidebar-nav::-webkit-scrollbar{width:6px}.sidebar-nav::-webkit-scrollbar-thumb{background-color:#e2e8f0;border-radius:3px}.nav-item{color:#64748b;border-radius:12px;align-items:center;gap:12px;padding:12px 16px;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.nav-item:hover{color:#1e293b;background-color:#f1f5f9}.nav-item.active{color:var(--primary-color);background-color:#eff6ff}.nav-badge{color:#fff;background:#ef4444;border-radius:999px;margin-left:auto;padding:1px 7px;font-size:.7rem;font-weight:700;line-height:1.5}.menu-group-label{color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;margin-top:16px;padding:8px 16px;font-size:.75rem;font-weight:700}.sidebar-divider{background:#f1f5f9;height:1px;margin:16px 0}.back-btn{cursor:pointer;color:#64748b;background:0 0;border:none;width:100%;font-size:.9rem}.back-btn:hover{color:var(--primary-color);background-color:#f1f5f9}.sidebar-footer{border-top:1px solid #e2e8f0;flex-direction:column;flex-shrink:0;gap:16px;margin-top:auto;padding-top:24px;display:flex}.user-info{color:#64748b;align-items:center;gap:8px;padding:0 8px;font-size:.9rem;display:flex}.logout-btn{color:#ef4444;cursor:pointer;background:0 0;border:none;border-radius:12px;align-items:center;gap:12px;width:100%;padding:12px 16px;font-weight:500;transition:background .2s;display:flex}.logout-btn:hover{background-color:#fef2f2}.main-content{flex-direction:column;flex:1;display:flex;overflow:hidden}.content-header{background-color:#fff;border-bottom:1px solid #e2e8f0;align-items:center;height:64px;padding:0 32px;display:flex}.breadcrumb{color:#64748b;font-size:.875rem}.page-body{flex:1;padding:32px;overflow-y:auto}@media (width<=768px){.sidebar{width:80px}.sidebar span,.sidebar h2,.sidebar-header .logo-box+h2{display:none}.nav-item{justify-content:center;padding:12px}}
