:root{--bg-base: #FFF9F2;--bg-surface: #FFFFFF;--bg-surface-hover: #FFF5EB;--bg-elevated: #FFFFFF;--bg-inset: #FEF3E2;--bg-warm-subtle: #FFF7ED;--text-primary: #1A1412;--text-secondary: #5C4F44;--text-muted: #9C8E82;--text-inverse: #FFFFFF;--color-success: #0D9488;--color-success-light: #CCFBF1;--color-success-dark: #0F766E;--color-success-rgb: 13, 148, 136;--color-accent: #F97316;--color-accent-light: #FFF0E1;--color-accent-dark: #EA580C;--color-accent-rgb: 249, 115, 22;--color-danger: #EF4444;--color-danger-light: #FEE2E2;--color-danger-dark: #DC2626;--color-danger-rgb: 239, 68, 68;--color-warning: #F59E0B;--color-warning-light: #FEF3C7;--color-info: #3B82F6;--color-info-light: #DBEAFE;--neutral-50: #FAFAF9;--neutral-100: #F5F5F4;--neutral-200: #E7E5E4;--neutral-300: #D6D3D1;--neutral-400: #A8A29E;--neutral-500: #78716C;--neutral-600: #57534E;--neutral-700: #44403C;--neutral-800: #292524;--neutral-900: #1C1917;--card-shadow: 0 1px 3px rgba(0, 0, 0, .04), 0 4px 16px rgba(166, 130, 90, .06);--card-shadow-hover: 0 4px 12px rgba(0, 0, 0, .06), 0 8px 32px rgba(166, 130, 90, .1);--card-shadow-elevated: 0 8px 24px rgba(0, 0, 0, .08), 0 16px 48px rgba(166, 130, 90, .12);--border-color: #EDE8E0;--border-color-light: #F3EEE6;--gradient-warm: linear-gradient(135deg, #FFF9F2 0%, #FFF0E1 100%);--gradient-success: linear-gradient(135deg, #0D9488 0%, #14B8A6 100%);--gradient-accent: linear-gradient(135deg, #F97316 0%, #FB923C 100%);--gradient-header: linear-gradient(135deg, #0F766E 0%, #0D9488 50%, #14B8A6 100%);--gradient-danger: linear-gradient(135deg, #EF4444 0%, #F87171 100%);--font-display: "Outfit", sans-serif;--font-body: "Inter", sans-serif;--font-mono: "SF Mono", "Fira Code", "Cascadia Code", monospace;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 9999px;--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .4s ease;--transition-spring: .5s cubic-bezier(.34, 1.56, .64, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;font-family:var(--font-body);background-color:var(--bg-base);color:var(--text-primary);overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--neutral-300);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--color-success)}.app-shell{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden}.app-header{display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-lg);height:64px;min-height:64px;background:var(--gradient-header);color:var(--text-inverse);position:relative;z-index:100;box-shadow:0 2px 12px #0d948826}.header-brand{display:flex;align-items:center;gap:var(--space-md)}.brand-logo{width:38px;height:38px;background:#fff3;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.15)}.brand-logo svg{width:22px;height:22px;fill:#fff}.brand-text h1{font-family:var(--font-display);font-size:20px;font-weight:700;letter-spacing:-.3px;line-height:1;color:#fff}.brand-text h1 span{font-weight:400;opacity:.85}.brand-text p{font-size:11px;opacity:.75;font-weight:400;letter-spacing:.5px;text-transform:uppercase;margin-top:2px}.header-actions{display:flex;align-items:center;gap:var(--space-sm)}.header-btn{display:flex;align-items:center;gap:6px;background:#ffffff26;border:1px solid rgba(255,255,255,.2);color:#fff;padding:8px 14px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;font-family:var(--font-body);cursor:pointer;transition:all var(--transition-fast);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.header-btn:hover{background:#ffffff40;transform:translateY(-1px)}.header-btn svg{width:16px;height:16px;fill:currentColor}.header-status{display:flex;align-items:center;gap:8px;padding:6px 14px;background:#ffffff1f;border-radius:var(--radius-full);font-size:12px;font-weight:600;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.1)}.status-dot{width:8px;height:8px;border-radius:50%;background:#fcd34d;animation:pulse-dot 2s ease-in-out infinite}.status-dot.ready{background:#34d399;animation:pulse-dot-green 2s ease-in-out infinite}.status-dot.analyzing{background:#fb923c;animation:pulse-dot-orange 1s ease-in-out infinite}.status-dot.error{background:#f87171;animation:none}@keyframes pulse-dot{0%,to{opacity:1;box-shadow:0 0 #fcd34d99}50%{opacity:.8;box-shadow:0 0 0 6px #fcd34d00}}@keyframes pulse-dot-green{0%,to{opacity:1;box-shadow:0 0 #34d39999}50%{opacity:.8;box-shadow:0 0 0 6px #34d39900}}@keyframes pulse-dot-orange{0%,to{opacity:1;box-shadow:0 0 #fb923c99}50%{opacity:.8;box-shadow:0 0 0 6px #fb923c00}}.app-main{display:grid;grid-template-columns:300px 1fr 340px;flex:1;overflow:hidden;gap:0}.panel{display:flex;flex-direction:column;overflow-y:auto;background:var(--bg-surface);border-right:1px solid var(--border-color)}.panel.panel-right{border-right:none;border-left:1px solid var(--border-color)}.panel-section{padding:var(--space-lg);border-bottom:1px solid var(--border-color-light)}.panel-section:last-child{border-bottom:none}.panel-section-title{font-family:var(--font-display);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:var(--space-md);display:flex;align-items:center;gap:8px}.panel-section-title svg{width:14px;height:14px;fill:var(--color-success)}.upload-zone{border:2px dashed var(--neutral-300);border-radius:var(--radius-lg);padding:var(--space-xl) var(--space-lg);text-align:center;cursor:pointer;transition:all var(--transition-base);background:var(--bg-warm-subtle);position:relative;overflow:hidden}.upload-zone:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--gradient-success);opacity:0;transition:opacity var(--transition-base);border-radius:var(--radius-lg)}.upload-zone:hover{border-color:var(--color-success);background:var(--color-success-light);transform:translateY(-2px);box-shadow:var(--card-shadow-hover)}.upload-zone.dragover{border-color:var(--color-success);background:var(--color-success-light);border-style:solid;transform:scale(1.02)}.upload-zone-icon{width:48px;height:48px;margin:0 auto var(--space-md);background:var(--color-success-light);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;transition:all var(--transition-base)}.upload-zone:hover .upload-zone-icon{background:var(--color-success);transform:scale(1.1)}.upload-zone:hover .upload-zone-icon svg{fill:#fff}.upload-zone-icon svg{width:24px;height:24px;fill:var(--color-success);transition:fill var(--transition-base)}.upload-zone-title{font-family:var(--font-display);font-weight:600;font-size:15px;color:var(--text-primary);margin-bottom:4px}.upload-zone-subtitle{font-size:12px;color:var(--text-muted);margin-bottom:var(--space-md)}.upload-zone-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 20px;background:var(--gradient-success);color:#fff;border:none;border-radius:var(--radius-full);font-size:13px;font-weight:600;font-family:var(--font-body);cursor:pointer;transition:all var(--transition-base);position:relative;z-index:1}.upload-zone-btn:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(var(--color-success-rgb),.35)}.upload-zone input[type=file]{display:none}.file-loaded-info{display:none;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-success-light);border:1px solid rgba(var(--color-success-rgb),.2);border-radius:var(--radius-sm);margin-top:var(--space-md);font-size:12px;color:var(--color-success-dark);font-weight:500}.file-loaded-info.visible{display:flex}.file-loaded-info svg{width:16px;height:16px;fill:var(--color-success);flex-shrink:0}.file-loaded-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-remove-btn{background:none;border:none;cursor:pointer;padding:2px;display:flex;align-items:center;color:var(--text-muted);transition:color var(--transition-fast)}.file-remove-btn:hover{color:var(--color-danger)}.file-remove-btn svg{width:14px;height:14px;fill:currentColor}.record-section{display:flex;flex-direction:column;gap:var(--space-md)}.record-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;background:var(--bg-warm-subtle);border:1.5px solid var(--border-color);border-radius:var(--radius-md);font-size:14px;font-weight:600;font-family:var(--font-body);color:var(--text-primary);cursor:pointer;transition:all var(--transition-base)}.record-btn svg{width:18px;height:18px;fill:var(--color-danger)}.record-btn:hover{border-color:var(--color-danger);background:var(--color-danger-light);transform:translateY(-1px);box-shadow:var(--card-shadow-hover)}.record-btn.recording{background:var(--color-danger);border-color:var(--color-danger);color:#fff;animation:recording-pulse 1.5s ease-in-out infinite}.record-btn.recording svg{fill:#fff}@keyframes recording-pulse{0%,to{box-shadow:0 0 rgba(var(--color-danger-rgb),.4)}50%{box-shadow:0 0 0 8px rgba(var(--color-danger-rgb),0)}}.record-timer{text-align:center;font-family:var(--font-mono);font-size:28px;font-weight:700;color:var(--color-danger);display:none;padding:var(--space-sm) 0;letter-spacing:2px}.record-timer.visible{display:block}.location-card{display:flex;flex-direction:column;gap:6px;padding:var(--space-md);background:var(--bg-inset);border-radius:var(--radius-md);border:1px solid var(--border-color-light)}.location-card-header{display:flex;align-items:center;justify-content:space-between}.location-card-title{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--text-secondary)}.location-card-title svg{width:14px;height:14px;fill:var(--color-accent)}.location-refresh-btn{background:none;border:none;cursor:pointer;padding:4px;border-radius:var(--radius-sm);color:var(--text-muted);transition:all var(--transition-fast);display:flex}.location-refresh-btn:hover{color:var(--color-accent);background:var(--color-accent-light)}.location-refresh-btn svg{width:14px;height:14px;fill:currentColor}.location-coords{font-family:var(--font-mono);font-size:11px;color:var(--text-muted)}.location-address{font-size:13px;color:var(--text-primary);font-weight:500;line-height:1.4}.location-status{font-size:12px;color:var(--text-muted);font-style:italic}.api-key-section{display:flex;flex-direction:column;gap:var(--space-sm)}.api-key-input-group{display:flex;gap:var(--space-sm)}.api-key-input{flex:1;padding:10px 14px;border:1.5px solid var(--border-color);border-radius:var(--radius-sm);font-size:13px;font-family:var(--font-mono);background:var(--bg-inset);color:var(--text-primary);transition:border-color var(--transition-fast);outline:none}.api-key-input::placeholder{color:var(--neutral-400)}.api-key-input:focus{border-color:var(--color-success);box-shadow:0 0 0 3px rgba(var(--color-success-rgb),.1)}.api-key-save-btn{padding:10px 16px;background:var(--gradient-success);color:#fff;border:none;border-radius:var(--radius-sm);font-size:13px;font-weight:600;font-family:var(--font-body);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.api-key-save-btn:hover{transform:translateY(-1px);box-shadow:0 2px 8px rgba(var(--color-success-rgb),.3)}.api-key-status{font-size:11px;display:flex;align-items:center;gap:4px}.api-key-status.connected{color:var(--color-success)}.api-key-status.disconnected{color:var(--text-muted)}.api-key-status svg{width:12px;height:12px;fill:currentColor}.viewport{display:flex;flex-direction:column;overflow:hidden;background:var(--bg-base);position:relative}.viewport-stage{flex:1;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:var(--space-lg)}.viewport-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:var(--space-lg);padding:var(--space-2xl)}.placeholder-visual{width:120px;height:120px;background:var(--bg-inset);border:2px dashed var(--neutral-300);border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;animation:float 4s ease-in-out infinite}.placeholder-visual svg{width:48px;height:48px;fill:var(--neutral-400)}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.placeholder-text h2{font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--text-primary);margin-bottom:6px}.placeholder-text p{font-size:14px;color:var(--text-muted);max-width:360px;line-height:1.5}.video-container{width:100%;height:100%;display:none;align-items:center;justify-content:center;position:relative;border-radius:var(--radius-lg);overflow:hidden;background:#000;box-shadow:var(--card-shadow-elevated)}.video-container.active{display:flex}.video-container video{max-width:100%;max-height:100%;border-radius:var(--radius-lg);object-fit:contain}.camera-preview{width:100%;height:100%;display:none;align-items:center;justify-content:center;position:relative;border-radius:var(--radius-lg);overflow:hidden;background:#000;box-shadow:var(--card-shadow-elevated)}.camera-preview.active{display:flex}.camera-preview video{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-lg)}.frame-extraction-overlay{position:absolute;bottom:var(--space-md);left:var(--space-md);right:var(--space-md);display:none;gap:6px;padding:var(--space-sm);background:#000000b3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:var(--radius-md);overflow-x:auto}.frame-extraction-overlay.active{display:flex}.extracted-frame{width:64px;height:48px;border-radius:6px;overflow:hidden;flex-shrink:0;border:2px solid transparent;transition:all var(--transition-fast);position:relative}.extracted-frame.analyzing{border-color:var(--color-accent);animation:frame-analyze 1s ease-in-out infinite}.extracted-frame.done{border-color:var(--color-success)}.extracted-frame.failed{border-color:var(--color-danger)}.extracted-frame img{width:100%;height:100%;object-fit:cover}.extracted-frame-index{position:absolute;bottom:2px;right:2px;background:#000000b3;color:#fff;font-size:9px;font-weight:700;padding:1px 4px;border-radius:3px}@keyframes frame-analyze{0%,to{box-shadow:0 0 rgba(var(--color-accent-rgb),.4)}50%{box-shadow:0 0 0 4px rgba(var(--color-accent-rgb),0)}}.viewport-footer{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-lg);border-top:1px solid var(--border-color-light);background:var(--bg-surface);min-height:44px}.viewport-footer-left{display:flex;align-items:center;gap:var(--space-sm)}.analyze-btn{display:flex;align-items:center;gap:8px;padding:8px 24px;background:var(--gradient-accent);color:#fff;border:none;border-radius:var(--radius-full);font-size:14px;font-weight:700;font-family:var(--font-body);cursor:pointer;transition:all var(--transition-base);letter-spacing:.3px}.analyze-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 20px rgba(var(--color-accent-rgb),.4)}.analyze-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.analyze-btn.analyzing{background:var(--gradient-accent);animation:btn-glow-orange 2s ease-in-out infinite}@keyframes btn-glow-orange{0%,to{box-shadow:0 0 rgba(var(--color-accent-rgb),.3)}50%{box-shadow:0 0 20px 4px rgba(var(--color-accent-rgb),.15)}}.analyze-btn svg{width:16px;height:16px;fill:currentColor}.progress-info{font-size:12px;color:var(--text-muted);font-weight:500}.analysis-progress{width:100%;display:none;padding:0 var(--space-lg) var(--space-sm);background:var(--bg-surface)}.analysis-progress.active{display:block}.progress-bar-track{width:100%;height:4px;background:var(--neutral-200);border-radius:2px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--gradient-success);border-radius:2px;width:0%;transition:width .5s ease}.compliance-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-md)}.compliance-badge{padding:4px 10px;border-radius:var(--radius-full);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.compliance-badge.pending{background:var(--neutral-100);color:var(--text-muted)}.compliance-badge.passed{background:var(--color-success-light);color:var(--color-success-dark)}.compliance-badge.failed{background:var(--color-danger-light);color:var(--color-danger-dark)}.compliance-badge.mixed{background:var(--color-warning-light);color:var(--color-warning)}.checklist{display:flex;flex-direction:column;gap:8px}.checklist-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--bg-inset);border-radius:var(--radius-md);border:1.5px solid var(--border-color-light);transition:all var(--transition-base);position:relative;overflow:hidden}.checklist-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--neutral-300);transition:background var(--transition-base)}.checklist-item.pass{background:var(--color-success-light);border-color:rgba(var(--color-success-rgb),.2)}.checklist-item.pass:before{background:var(--color-success)}.checklist-item.fail{background:var(--color-danger-light);border-color:rgba(var(--color-danger-rgb),.2)}.checklist-item.fail:before{background:var(--color-danger)}.checklist-item.checking{border-color:rgba(var(--color-accent-rgb),.3)}.checklist-item.checking:before{background:var(--color-accent);animation:shimmer-bar 1.5s ease-in-out infinite}@keyframes shimmer-bar{0%,to{opacity:1}50%{opacity:.4}}.check-icon{width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--neutral-200);transition:all var(--transition-spring)}.checklist-item.pass .check-icon{background:var(--color-success);transform:scale(1);animation:check-pop .5s cubic-bezier(.34,1.56,.64,1)}.checklist-item.fail .check-icon{background:var(--color-danger);animation:check-pop .5s cubic-bezier(.34,1.56,.64,1)}.checklist-item.checking .check-icon{background:var(--color-accent-light)}@keyframes check-pop{0%{transform:scale(.5)}50%{transform:scale(1.2)}to{transform:scale(1)}}.check-icon svg{width:18px;height:18px;fill:var(--neutral-500);transition:fill var(--transition-base)}.checklist-item.pass .check-icon svg,.checklist-item.fail .check-icon svg{fill:#fff}.check-details{flex:1;min-width:0}.check-name{font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:2px}.check-description{font-size:11px;color:var(--text-muted);line-height:1.3}.check-confidence{font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--text-muted);flex-shrink:0;transition:color var(--transition-base)}.checklist-item.pass .check-confidence{color:var(--color-success-dark)}.checklist-item.fail .check-confidence{color:var(--color-danger-dark)}.score-section{text-align:center;padding:var(--space-lg) 0}.score-ring-container{position:relative;width:140px;height:140px;margin:0 auto var(--space-md)}.score-ring-bg{fill:none;stroke:var(--neutral-200);stroke-width:8}.score-ring-fill{fill:none;stroke:var(--color-success);stroke-width:8;stroke-linecap:round;stroke-dasharray:395;stroke-dashoffset:395;transform:rotate(-90deg);transform-origin:center;transition:stroke-dashoffset 1.5s cubic-bezier(.34,1.56,.64,1),stroke .5s ease}.score-ring-fill.low{stroke:var(--color-danger)}.score-ring-fill.medium{stroke:var(--color-warning)}.score-ring-fill.high{stroke:var(--color-success)}.score-ring-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.score-value{font-family:var(--font-display);font-size:36px;font-weight:800;color:var(--text-primary);line-height:1}.score-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;font-weight:600;margin-top:2px}.score-verdict{font-family:var(--font-display);font-size:16px;font-weight:700;margin-top:var(--space-sm)}.score-verdict.pass{color:var(--color-success)}.score-verdict.fail{color:var(--color-danger)}.score-verdict.pending{color:var(--text-muted)}.report-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px;background:var(--gradient-header);color:#fff;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:700;font-family:var(--font-body);cursor:pointer;transition:all var(--transition-base);letter-spacing:.3px}.report-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 24px rgba(var(--color-success-rgb),.35)}.report-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.report-btn svg{width:18px;height:18px;fill:currentColor}.activity-log{max-height:200px;overflow-y:auto;display:flex;flex-direction:column;gap:2px;padding:var(--space-sm);background:var(--neutral-900);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:11px}.log-entry{padding:3px 6px;border-radius:4px;color:#a1a1aa;line-height:1.5;word-break:break-word}.log-entry.system{color:#94a3b8}.log-entry.success{color:#34d399}.log-entry.error{color:#f87171}.log-entry.warning{color:#fbbf24}.log-entry .log-timestamp{color:#64748b;margin-right:6px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;z-index:1000;animation:fade-in .2s ease}.modal-overlay.active{display:flex}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-surface);border-radius:var(--radius-xl);box-shadow:var(--card-shadow-elevated);padding:var(--space-xl);width:90%;max-width:480px;animation:modal-slide-up .3s cubic-bezier(.34,1.56,.64,1)}@keyframes modal-slide-up{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg)}.modal-title{font-family:var(--font-display);font-size:20px;font-weight:700}.modal-close-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--neutral-100);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);color:var(--text-secondary)}.modal-close-btn:hover{background:var(--color-danger-light);color:var(--color-danger)}.modal-close-btn svg{width:16px;height:16px;fill:currentColor}.modal-body{display:flex;flex-direction:column;gap:var(--space-lg)}.modal-field{display:flex;flex-direction:column;gap:var(--space-sm)}.modal-field label{font-size:13px;font-weight:600;color:var(--text-secondary)}.modal-field input{padding:12px 16px;border:1.5px solid var(--border-color);border-radius:var(--radius-md);font-size:14px;font-family:var(--font-mono);background:var(--bg-inset);color:var(--text-primary);outline:none;transition:border-color var(--transition-fast)}.modal-field input:focus{border-color:var(--color-success);box-shadow:0 0 0 3px rgba(var(--color-success-rgb),.1)}.modal-field .field-hint{font-size:11px;color:var(--text-muted);line-height:1.4}.modal-field .field-hint a{color:var(--color-success);text-decoration:none;font-weight:600}.modal-field .field-hint a:hover{text-decoration:underline}.provider-select{padding:12px 16px;border:1.5px solid var(--border-color);border-radius:var(--radius-md);font-size:14px;font-family:var(--font-body);background:var(--bg-inset);color:var(--text-primary);outline:none;cursor:pointer;transition:border-color var(--transition-fast)}.provider-select:focus{border-color:var(--color-success);box-shadow:0 0 0 3px rgba(var(--color-success-rgb),.1)}.provider-status-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:4px}.provider-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 4px;background:var(--bg-inset);border:1.5px solid var(--border-color-light);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.provider-card:hover{border-color:var(--color-success);background:var(--bg-surface)}.provider-card.active{border-color:var(--color-success);background:rgba(var(--color-success-rgb),.08);box-shadow:0 0 0 1px var(--color-success)}.provider-card-name{font-size:11px;font-weight:600;color:var(--text-primary)}.provider-card-status{font-size:10px;color:var(--text-muted);margin-top:2px}.provider-card-status.ready{color:var(--color-success);font-weight:700}.modal-save-btn{width:100%;padding:12px;background:var(--gradient-success);color:#fff;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:700;font-family:var(--font-body);cursor:pointer;transition:all var(--transition-base)}.modal-save-btn:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(var(--color-success-rgb),.35)}.toast-container{position:fixed;top:80px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:8px}.toast{display:flex;align-items:center;gap:10px;padding:12px 18px;background:var(--bg-surface);border-radius:var(--radius-md);box-shadow:var(--card-shadow-elevated);font-size:13px;font-weight:500;color:var(--text-primary);animation:toast-in .4s cubic-bezier(.34,1.56,.64,1);border-left:4px solid var(--color-success);max-width:380px}.toast.error{border-left-color:var(--color-danger)}.toast.warning{border-left-color:var(--color-warning)}.toast-exit{animation:toast-out .3s ease forwards}@keyframes toast-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes toast-out{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.toast svg{width:18px;height:18px;fill:var(--color-success);flex-shrink:0}.toast.error svg{fill:var(--color-danger)}@media (max-width: 1200px){.app-main{grid-template-columns:260px 1fr 300px}}@media (max-width: 900px){.app-main{grid-template-columns:1fr;grid-template-rows:auto 1fr auto}.panel{border-right:none;border-bottom:1px solid var(--border-color);max-height:300px}.panel.panel-right{border-left:none;border-top:1px solid var(--border-color)}}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.spinner{width:20px;height:20px;border:2.5px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.spinner.dark{border-color:var(--neutral-200);border-top-color:var(--color-success)}@keyframes spin{to{transform:rotate(360deg)}}.ai-notes{padding:var(--space-md);background:var(--bg-inset);border-radius:var(--radius-md);border:1px solid var(--border-color-light)}.ai-notes-title{font-size:12px;font-weight:700;color:var(--text-secondary);margin-bottom:var(--space-sm);display:flex;align-items:center;gap:6px}.ai-notes-title svg{width:14px;height:14px;fill:var(--color-info)}.ai-notes-content{font-size:12px;color:var(--text-secondary);line-height:1.6}.ai-notes-content em{color:var(--text-muted);font-style:italic}
