:root{--bg-main:#0a0d14;--bg-surface:#0f1420;--bg-card:#131926;--bg-card-hover:#182235;--bg-input:#0c101a;--border-subtle:#ffffff14;--border-medium:#ffffff24;--border-focus:#3b82f6;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--accent-blue:#3b82f6;--accent-blue-hover:#2563eb;--accent-cyan:#06b6d4;--accent-cyan-hover:#0891b2;--accent-gradient:linear-gradient(135deg, #3b82f6 0%, #06b6d4 100%);--accent-glow:#3b82f640;--status-success:#10b981;--status-success-bg:#10b98124;--status-warning:#f59e0b;--status-warning-bg:#f59e0b24;--status-danger:#f43f5e;--status-danger-bg:#f43f5e24;--status-info:#38bdf8;--status-info-bg:#38bdf824;--font-sans:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "SFMono-Regular", Consolas, Menlo, monospace}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-main);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:radial-gradient(circle at top,#2563eb14 0%,#0000 70%);background-attachment:fixed;line-height:1.5;overflow-x:hidden}button,input,select,textarea{font-family:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#ffffff38}@keyframes toastSlideIn{0%{opacity:0;transform:translate(110%)scale(.96)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes toastSlideOut{0%{opacity:1;transform:translate(0)scale(1)}to{opacity:0;transform:translate(110%)scale(.96)}}@keyframes toastProgress{0%{width:100%}to{width:0%}}.app-layout{flex-direction:column;min-height:100vh;display:flex}.navbar{-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border-subtle);z-index:50;background:#0f1420d9;justify-content:space-between;align-items:center;padding:.85rem 2rem;display:flex;position:sticky;top:0}.nav-brand{align-items:center;gap:.9rem;display:flex}.brand-logo{background:var(--accent-gradient);color:#fff;width:40px;height:40px;box-shadow:0 4px 14px var(--accent-glow);border-radius:10px;justify-content:center;align-items:center;display:flex}.brand-title-wrap{align-items:center;gap:.5rem;display:flex}.brand-title{letter-spacing:-.03em;background:linear-gradient(135deg,#fff 0%,#cbd5e1 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.2rem;font-weight:800}.brand-tag{color:var(--accent-blue);text-transform:uppercase;background:#3b82f626;border:1px solid #3b82f64d;border-radius:4px;padding:.15rem .4rem;font-size:.65rem;font-weight:700}.brand-subtitle{color:var(--text-secondary);margin-top:.1rem;font-size:.76rem}.nav-actions{align-items:center;gap:1rem;display:flex}.system-status-indicator{color:var(--status-success);background:#10b98114;border:1px solid #10b98133;border-radius:9999px;align-items:center;gap:.45rem;padding:.35rem .75rem;font-size:.75rem;font-weight:500;display:flex}.status-pulse-dot{background-color:var(--status-success);width:7px;height:7px;box-shadow:0 0 8px var(--status-success);border-radius:50%;animation:2s infinite pulse}@keyframes pulse{0%{transform:scale(.95);box-shadow:0 0 #34d399b3}70%{transform:scale(1.1);box-shadow:0 0 0 8px #34d39900}to{transform:scale(.95);box-shadow:0 0 #34d39900}}.main-content{flex:1;width:100%;max-width:1700px;margin:0 auto;padding:1.5rem 2rem}.content-grid{grid-template-columns:380px minmax(0,1fr);align-items:start;gap:1.5rem;display:grid}@media (width<=1080px){.content-grid{grid-template-columns:1fr}}.left-panel{flex-direction:column;gap:1.25rem;display:flex}.right-panel{flex-direction:column;gap:1.25rem;min-width:0;display:flex}.card{background-color:var(--bg-card);border:1px solid var(--border-subtle);box-sizing:border-box;border-radius:14px;padding:1.25rem;transition:border-color .2s;overflow:hidden;box-shadow:0 8px 24px #0000004d}.card:hover{border-color:var(--border-medium)}.card-header-clean{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.card-title{color:var(--text-primary);letter-spacing:-.01em;font-size:.95rem;font-weight:700}.card-badge{background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border-subtle);border-radius:9999px;padding:.18rem .5rem;font-size:.7rem;font-weight:600}.subtitle{color:var(--text-secondary);margin-top:.2rem;font-size:.82rem}.mono{font-family:var(--font-mono);color:var(--accent-cyan)}.btn{cursor:pointer;box-sizing:border-box;border:none;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1.15rem;font-size:.85rem;font-weight:600;text-decoration:none;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex}.btn-sm{border-radius:7px;padding:.4rem .8rem;font-size:.775rem}.btn-xs{border-radius:6px;padding:.3rem .65rem;font-size:.72rem}.btn-block{width:100%}.btn-primary{background:var(--accent-gradient);color:#fff;box-shadow:0 4px 14px var(--accent-glow)}.btn-primary:hover:not(:disabled){filter:brightness(1.1);box-shadow:0 6px 18px var(--accent-glow);transform:translateY(-1px)}.btn-secondary{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-subtle)}.btn-secondary:hover:not(:disabled){background:var(--bg-card-hover);border-color:var(--border-medium)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none!important}.badge{text-transform:capitalize;letter-spacing:.02em;border-radius:9999px;align-items:center;gap:.3rem;padding:.22rem .65rem;font-size:.72rem;font-weight:600;display:inline-flex}.badge-sm{padding:.15rem .45rem;font-size:.68rem}.badge-outline{border:1px solid var(--border-subtle);color:var(--text-secondary);background:0 0}.badge-processing_complete,.badge-completed{background:var(--status-success-bg);color:var(--status-success);border:1px solid #10b9814d}.badge-processing_failed,.badge-failed{background:var(--status-danger-bg);color:var(--status-danger);border:1px solid #f43f5e4d}.badge-uploaded,.badge-validating,.badge-analysing,.badge-extracting_text,.badge-extracting_tables,.badge-extracting_images,.badge-ocr_processing,.badge-normalising,.badge-detecting_sections{background:var(--status-info-bg);color:var(--status-info);border:1px solid #38bdf84d}.upload-card{box-sizing:border-box}.drop-zone{text-align:center;cursor:pointer;background:#0f142099;border:1.5px dashed #ffffff29;border-radius:10px;padding:1.75rem 1rem;transition:all .2s}.drop-zone:hover,.drop-zone.dragging{border-color:var(--accent-blue);background:#3b82f60f}.drop-icon-wrapper{width:52px;height:52px;color:var(--accent-blue);background:#3b82f61f;border-radius:12px;justify-content:center;align-items:center;margin:0 auto .75rem;display:flex}.drop-title{color:var(--text-primary);font-size:.88rem;font-weight:600}.drop-subtitle{color:var(--text-secondary);margin-top:.2rem;font-size:.78rem}.drop-action-hint{justify-content:center;align-items:center;gap:.6rem;margin-top:1rem;display:flex}.drop-limits{color:var(--text-muted);font-size:.7rem}.selected-file-container{flex-direction:column;gap:.75rem;width:100%;display:flex}.file-preview-card{border:1px solid var(--border-subtle);background:var(--bg-surface);box-sizing:border-box;border-radius:10px;justify-content:space-between;align-items:center;width:100%;padding:.75rem .9rem;display:flex}.file-info-col{flex:1;align-items:center;gap:.75rem;min-width:0;display:flex}.file-icon-box{background:#ef44441f;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.pdf-icon{color:#ef4444}.file-details{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.file-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;font-weight:600;overflow:hidden}.file-meta{color:var(--text-muted);margin-top:.15rem;font-size:.72rem}.btn-icon-remove{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;transition:all .15s;display:flex}.btn-icon-remove:hover:not(:disabled){color:var(--status-danger);background:#f43f5e1f}.btn-upload{letter-spacing:-.01em;padding:.75rem 1rem;font-size:.88rem}.tracker-card{box-sizing:border-box}.tracker-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.tracker-title-row{align-items:center;gap:.6rem;display:flex}.tracker-title{color:var(--text-primary);letter-spacing:-.02em;font-size:1.05rem;font-weight:700}.stage-counter{color:var(--accent-blue);background:#3b82f61f;border:1px solid #3b82f640;border-radius:9999px;padding:.15rem .5rem;font-size:.72rem;font-weight:600}.doc-id-pill{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:6px;align-items:center;gap:.4rem;margin-top:.45rem;padding:.2rem .6rem;font-size:.74rem;display:inline-flex}.doc-id-label{color:var(--text-muted)}.doc-id-text{font-family:var(--font-mono);color:var(--accent-cyan)}.btn-icon-copy{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;padding:2px;display:flex}.btn-icon-copy:hover{color:var(--text-primary)}.status-badge-container{flex-shrink:0;align-items:center;gap:.6rem;display:flex}.badge-icon-left{margin-right:.1rem}.pipeline-progress-bar{background:var(--bg-surface);border-radius:9999px;width:100%;height:5px;margin:1.1rem 0;overflow:hidden}.pipeline-progress-fill{background:var(--accent-gradient);height:100%;box-shadow:0 0 10px var(--accent-glow);border-radius:9999px;transition:width .35s}.pipeline-progress-fill.complete{background:linear-gradient(135deg,#10b981 0%,#06b6d4 100%);box-shadow:0 0 10px #10b98159}.pipeline-progress-fill.failed{background:var(--status-danger)}.stepper{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:10px;grid-template-columns:repeat(auto-fit,minmax(95px,1fr));gap:.4rem;padding:.85rem .6rem;display:grid}.step-item{text-align:center;flex-direction:column;align-items:center;gap:.45rem;display:flex}.step-circle{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;transition:all .2s;display:flex}.step-number{color:var(--text-muted);font-size:.72rem;font-weight:600}.step-label{color:var(--text-muted);font-size:.7rem;font-weight:500}.step-item.active .step-circle{border-color:var(--accent-cyan);box-shadow:0 0 12px #06b6d459}.step-item.active .step-label{color:var(--accent-cyan);font-weight:600}.step-item.done .step-circle{background:#10b98114;border-color:#10b9814d}.step-item.done .step-label{color:var(--text-secondary)}.step-item.failed .step-circle{background:#f43f5e14;border-color:#f43f5e4d}.step-item.failed .step-label{color:var(--status-danger);font-weight:600}.doc-summary-card{box-sizing:border-box}.doc-header-info{margin-bottom:1.25rem}.doc-title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.doc-title-left{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.btn-danger-outline{color:#fb7185;background:#f43f5e14;border:1px solid #f43f5e4d;align-items:center;gap:.4rem;transition:all .15s;display:inline-flex}.btn-danger-outline:hover:not(:disabled){color:#fff;background:#f43f5e33;border-color:#f43f5e;transform:translateY(-1px);box-shadow:0 2px 10px #f43f5e40}.doc-title-row h2{color:var(--text-primary);letter-spacing:-.02em;font-size:1.15rem;font-weight:700}.doc-meta-row{color:var(--text-secondary);flex-wrap:wrap;gap:.75rem;margin-top:.35rem;font-size:.8rem;display:flex}.metrics-grid{border-top:1px solid var(--border-subtle);grid-template-columns:repeat(4,1fr);gap:.85rem;padding-top:1.1rem;display:grid}@media (width<=768px){.metrics-grid{grid-template-columns:repeat(2,1fr)}}.metric-box{background:var(--bg-surface);text-align:center;border:1px solid var(--border-subtle);border-radius:10px;padding:.85rem;transition:transform .15s}.metric-box:hover{border-color:var(--border-medium);transform:translateY(-2px)}.metric-val{color:var(--text-primary);letter-spacing:-.03em;background:linear-gradient(135deg,#fff 0%,#38bdf8 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.5rem;font-weight:800;display:block}.metric-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-top:.2rem;font-size:.7rem;font-weight:600}.tabs-header{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:10px;gap:.4rem;margin-bottom:1.1rem;padding:.3rem;display:flex;overflow-x:auto}.tab-btn{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:7px;align-items:center;gap:.45rem;padding:.55rem .95rem;font-size:.82rem;font-weight:600;transition:all .2s;display:inline-flex}.tab-btn:hover{color:var(--text-primary);background:#ffffff0a}.tab-btn.active{background:var(--bg-card);color:var(--accent-cyan);border:1px solid var(--border-subtle);box-shadow:0 2px 8px #00000040}.tab-btn.tab-ai{color:#818cf8}.tab-btn.tab-ai:hover{color:#a5b4fc;background:#6366f114}.tab-btn.tab-ai.active{color:#e0e7ff;background:linear-gradient(135deg,#6366f133,#4f46e540);border-color:#6366f173;box-shadow:0 2px 12px #6366f140}.tab-badge-pulse{color:#34d399;text-transform:uppercase;letter-spacing:.05em;background:#10b98133;border:1px solid #10b98166;border-radius:9999px;align-items:center;margin-left:.35rem;padding:.1rem .45rem;font-size:.65rem;font-weight:700;animation:2s ease-in-out infinite pulseBadge;display:inline-flex}@keyframes pulseBadge{0%,to{opacity:.9;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}.tab-content{box-sizing:border-box}.sections-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem;margin-top:1rem;display:grid}.section-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:10px;padding:1rem;transition:border-color .2s}.section-card:hover{border-color:var(--border-medium)}.section-card-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.section-card-header h4{color:var(--text-primary);font-size:.9rem;font-weight:700}.section-tags{flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem;display:flex}.tag{color:var(--text-secondary);background:#ffffff0d;border:1px solid #ffffff0a;border-radius:5px;padding:.2rem .5rem;font-size:.7rem}.section-preview{font-family:var(--font-mono);color:var(--text-secondary);background:var(--bg-main);white-space:pre-wrap;border:1px solid var(--border-subtle);border-radius:7px;max-height:120px;padding:.65rem;font-size:.75rem;overflow-y:auto}.tables-list{flex-direction:column;gap:1.25rem;margin-top:1rem;display:flex}.table-wrapper{background:var(--bg-surface);border-radius:10px}.table-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.table-header h4{font-size:.9rem;font-weight:700}.table-scroll{border:1px solid var(--border-subtle);border-radius:8px;max-height:400px;overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%;font-size:.8rem}th{color:#f1f5f9;border-bottom:1px solid var(--border-subtle);z-index:10;background:#151d2c;padding:.65rem .85rem;font-weight:600;position:sticky;top:0}td{color:#cbd5e1;border-bottom:1px solid #ffffff0a;padding:.55rem .85rem}tr:hover td{background:#ffffff08}.images-gallery{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1rem;margin-top:1rem;display:grid}.image-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:10px;transition:all .2s;overflow:hidden}.image-card:hover{border-color:var(--accent-cyan);transform:translateY(-2px);box-shadow:0 8px 20px #0006}.image-card.clickable{cursor:pointer}.image-thumb-container{background:#070a10;justify-content:center;align-items:center;height:160px;display:flex;position:relative;overflow:hidden}.image-hover-overlay{-webkit-backdrop-filter:blur(3px);opacity:0;pointer-events:none;background:#0f172aa6;flex-direction:column;justify-content:center;align-items:center;gap:.35rem;transition:opacity .2s,transform .2s;display:flex;position:absolute;inset:0;transform:scale(.96)}.image-card:hover .image-hover-overlay{opacity:1;transform:scale(1)}.overlay-zoom-icon{color:#38bdf8;filter:drop-shadow(0 2px 8px #38bdf880)}.overlay-zoom-text{color:#f8fafc;letter-spacing:.02em;font-size:.75rem;font-weight:600}.image-thumb-container img{object-fit:contain;max-width:100%;max-height:100%;transition:transform .25s}.image-card:hover .image-thumb-container img{transform:scale(1.05)}.image-info{padding:.65rem .8rem}.image-name{text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;font-weight:600;overflow:hidden}.image-tags{gap:.35rem;margin-top:.35rem;display:flex}.pages-control-bar{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:10px;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:.75rem 1rem;display:flex}.page-selector{align-items:center;gap:.65rem;font-size:.85rem;display:flex}select{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-subtle);cursor:pointer;border-radius:7px;outline:none;padding:.45rem .75rem}select:focus{border-color:var(--border-focus)}.toggle-group{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:7px;gap:.25rem;padding:.25rem;display:flex}.btn-toggle{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:5px;padding:.35rem .75rem;font-size:.78rem;transition:all .15s}.btn-toggle.active{background:var(--accent-blue);color:#fff;font-weight:600}.page-stats{color:var(--text-muted);flex-wrap:wrap;gap:1rem;margin-bottom:.75rem;font-size:.75rem;display:flex}.text-display{background:var(--bg-main);border:1px solid var(--border-subtle);font-family:var(--font-mono);white-space:pre-wrap;color:#cbd5e1;border-radius:10px;max-height:500px;padding:1rem;font-size:.8rem;line-height:1.6;overflow-y:auto}.tree-container{background:var(--bg-main);border:1px solid var(--border-subtle);border-radius:10px;margin-top:1rem;padding:1.1rem}.tree-node{border-radius:6px;align-items:center;gap:.5rem;padding:.4rem .6rem;font-size:.82rem;display:flex}.doc-node{background:var(--bg-surface);color:var(--accent-cyan);font-size:.88rem;font-weight:600}.page-tree-branch{border-left:2px dashed #ffffff1a;margin-top:.6rem;margin-left:1.5rem;padding-left:1rem}.page-node{color:#93c5fd;font-weight:600}.tree-sub-children{flex-direction:column;gap:.3rem;margin-top:.35rem;margin-left:1.5rem;display:flex}.section-node{color:#a7f3d0}.table-node{color:#fde047}.image-node{color:#f472b6}.report-list-card{box-sizing:border-box}.report-items{flex-direction:column;gap:.5rem;max-height:480px;display:flex;overflow-y:auto}.report-item{background:var(--bg-surface);border:1px solid var(--border-subtle);cursor:pointer;box-sizing:border-box;border-radius:10px;flex-direction:column;gap:.55rem;padding:.8rem .95rem;transition:all .15s;display:flex}.report-item:hover{border-color:var(--border-medium);background:var(--bg-card-hover)}.report-item.selected{border-color:var(--accent-blue);background:#3b82f61f;box-shadow:0 0 14px #3b82f633}.report-item-top{justify-content:space-between;align-items:center;gap:.6rem;width:100%;display:flex}.report-title-group{flex:1;align-items:center;gap:.55rem;min-width:0;display:flex}.report-icon-box{background:#3b82f61a;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;display:flex}.report-icon{color:var(--accent-blue)}.report-title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.84rem;font-weight:600;overflow:hidden}.arrow-icon{color:var(--text-muted);flex-shrink:0;transition:transform .15s}.report-item:hover .arrow-icon{color:var(--text-primary);transform:translate(2px)}.report-item-bottom{justify-content:space-between;align-items:center;gap:.5rem;width:100%;display:flex}.report-sub-meta{color:var(--text-muted);white-space:nowrap;align-items:center;gap:.35rem;font-size:.72rem;display:flex;overflow:hidden}.meta-pages{color:var(--text-secondary);font-weight:500}.meta-sep{opacity:.5}.meta-date{color:var(--text-muted)}.status-pill{letter-spacing:.02em;white-space:nowrap;border-radius:9999px;flex-shrink:0;align-items:center;gap:.35rem;padding:.15rem .5rem;font-size:.68rem;font-weight:600;display:inline-flex}.status-pill .status-dot{border-radius:50%;width:5px;height:5px;display:inline-block}.status-pill-processing_complete,.status-pill-complete{color:#34d399;background:#10b9811f;border:1px solid #10b98140}.status-pill-processing_complete .status-dot,.status-pill-complete .status-dot{background-color:#10b981;box-shadow:0 0 6px #10b98180}.status-pill-processing_failed,.status-pill-failed{color:#fb7185;background:#f43f5e1f;border:1px solid #f43f5e40}.status-pill-processing_failed .status-dot,.status-pill-failed .status-dot{background-color:#f43f5e}.status-pill-uploaded,.status-pill-queued{color:#94a3b8;background:#94a3b81a;border:1px solid #94a3b833}.status-pill-uploaded .status-dot,.status-pill-queued .status-dot{background-color:#94a3b8}.status-pill:not(.status-pill-complete):not(.status-pill-processing_complete):not(.status-pill-failed):not(.status-pill-processing_failed):not(.status-pill-queued):not(.status-pill-uploaded){color:#38bdf8;background:#38bdf81f;border:1px solid #38bdf840}.status-pill:not(.status-pill-complete):not(.status-pill-processing_complete):not(.status-pill-failed):not(.status-pill-processing_failed):not(.status-pill-queued):not(.status-pill-uploaded) .status-dot{background-color:#38bdf8;animation:1.5s infinite pulse;box-shadow:0 0 6px #38bdf899}.report-list-empty{text-align:center;padding:2rem 1rem}.alert{border-radius:8px;align-items:flex-start;gap:.65rem;margin-top:.75rem;padding:.75rem .9rem;font-size:.82rem;display:flex}.alert-error{background:var(--status-danger-bg);color:#fca5a5;border:1px solid #f43f5e40}.alert-icon{flex-shrink:0;margin-top:.1rem}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:4rem 2rem;display:flex}.spin{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.mt-4{margin-top:1rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.text-muted{color:var(--text-muted)}.text-primary{color:var(--accent-cyan)}.text-success{color:var(--status-success)}.text-danger{color:var(--status-danger)}.text-cyan{color:var(--accent-cyan)}.modal-backdrop{-webkit-backdrop-filter:blur(10px);z-index:1000;background:#05080ebf;justify-content:center;align-items:center;padding:1.5rem;animation:.2s ease-out modalFadeIn;display:flex;position:fixed;inset:0}.modal-card{box-sizing:border-box;background:#111726;border:1px solid #ffffff24;border-radius:16px;width:100%;max-width:480px;padding:1.75rem;animation:.22s cubic-bezier(.16,1,.3,1) modalScaleUp;box-shadow:0 24px 60px #000000a6,0 0 1px #ffffff1a}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalScaleUp{0%{opacity:0;transform:scale(.95)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-overlay{animation:.2s ease-out modalFadeIn;overflow-y:auto;-webkit-backdrop-filter:blur(12px)!important;z-index:99999!important;box-sizing:border-box!important;background:#030712d9!important;justify-content:center!important;align-items:center!important;width:100vw!important;height:100vh!important;padding:1.5rem!important;display:flex!important;position:fixed!important;inset:0!important}.modal-container{box-sizing:border-box;color:#f8fafc;width:100%;max-height:90vh;animation:.22s cubic-bezier(.16,1,.3,1) modalScaleUp;position:relative;overflow-y:auto;background:#0f172a!important;border:1px solid #ffffff29!important;border-radius:16px!important;padding:1.75rem!important;box-shadow:0 30px 80px #000000d9,0 0 1px #fff3!important}.form-group{text-align:left!important;box-sizing:border-box!important;flex-direction:column!important;gap:.45rem!important;width:100%!important;display:flex!important}.form-label{color:#94a3b8!important;letter-spacing:.02em!important;margin:0!important;font-size:.8rem!important;font-weight:600!important;display:block!important}.form-input{box-sizing:border-box!important;color:#f8fafc!important;background:#0f172ad9!important;border:1px solid #ffffff24!important;border-radius:9px!important;outline:none!important;width:100%!important;padding:.65rem .95rem!important;font-family:inherit!important;font-size:.86rem!important;transition:all .2s cubic-bezier(.16,1,.3,1)!important;display:block!important;box-shadow:inset 0 2px 4px #00000040!important}.form-input:focus{background:#0f172afa!important;border-color:#38bdf8!important;box-shadow:0 0 0 3px #38bdf833,inset 0 2px 4px #00000040!important}.form-input::placeholder{color:#64748b!important}textarea.form-input{resize:vertical!important;min-height:90px!important;line-height:1.5!important}select.form-input{appearance:none!important;cursor:pointer!important;background-color:#0f172ad9!important;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e")!important;background-position:right .85rem center!important;background-repeat:no-repeat!important;background-size:1rem!important;padding-right:2.2rem!important}select.form-input option{color:#f8fafc!important;background:#0f172a!important;padding:.5rem!important}.modal-header{align-items:flex-start;gap:1rem;margin-bottom:1.1rem;display:flex}.modal-icon-wrap{color:#f43f5e;background:#f43f5e1f;border:1px solid #f43f5e40;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;display:flex}.modal-header-text{min-width:0}.modal-title{color:var(--text-primary);letter-spacing:-.02em;font-size:1.15rem;font-weight:700}.modal-subtitle{color:#fb7185;margin-top:.15rem;font-size:.8rem;font-weight:500}.modal-desc{color:var(--text-secondary);font-size:.86rem;line-height:1.5}.modal-filename{color:#fff;font-weight:600;font-family:var(--font-mono);word-break:break-all;background:#ffffff14;border-radius:5px;padding:.15rem .45rem;font-size:.8rem}.modal-impact-box{color:var(--text-muted);background:#0a0e18cc;border:1px solid #ffffff0f;border-radius:10px;margin-top:1rem;padding:.85rem 1rem;font-size:.78rem}.modal-impact-box p{color:var(--text-secondary);font-weight:600}.modal-impact-box ul{color:#94a3b8;flex-direction:column;gap:.25rem;margin-top:.4rem;margin-left:1.25rem;display:flex}.modal-footer{border-top:1px solid var(--border-subtle);justify-content:flex-end;align-items:center;gap:.75rem;margin-top:1.5rem;padding-top:1.25rem;display:flex}.btn-danger{color:#fff;background:linear-gradient(135deg,#e11d48 0%,#be123c 100%);border:none;font-weight:600;box-shadow:0 4px 14px #e11d4859}.btn-danger:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 6px 18px #e11d4873}.lightbox-backdrop{-webkit-backdrop-filter:blur(14px);z-index:1200;background:#04070ed9;justify-content:center;align-items:center;padding:1.5rem;animation:.2s ease-out modalFadeIn;display:flex;position:fixed;inset:0}.lightbox-container{background:#0c111c;border:1px solid #ffffff24;border-radius:16px;flex-direction:column;width:95vw;max-width:1200px;height:90vh;animation:.22s cubic-bezier(.16,1,.3,1) modalScaleUp;display:flex;position:relative;overflow:hidden;box-shadow:0 30px 80px #000c,0 0 1px #fff3}.lightbox-toolbar{background:#111726;border-bottom:1px solid #ffffff14;flex-shrink:0;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.25rem;display:flex}.lightbox-meta{flex:1;align-items:center;gap:.65rem;min-width:0;display:flex}.lightbox-filename{font-family:var(--font-mono);color:#f8fafc;text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:600;overflow:hidden}.badge-muted{color:#94a3b8;background:#ffffff0f;border:1px solid #ffffff14}.lightbox-actions{flex-shrink:0;align-items:center;gap:.6rem;display:flex}.lightbox-zoom-controls{background:#ffffff0f;border:1px solid #ffffff1f;border-radius:8px;align-items:center;gap:.1rem;padding:.15rem;display:flex}.lightbox-btn{color:#cbd5e1;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;text-decoration:none;transition:all .15s;display:flex}.lightbox-btn:hover:not(:disabled){color:#fff;background:#ffffff1f}.lightbox-btn:disabled{opacity:.35;cursor:not-allowed}.lightbox-btn-zoomval{color:#38bdf8;font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;border-radius:4px;height:32px;padding:0 .55rem;font-size:.8rem;font-weight:700;transition:background .15s}.lightbox-btn-zoomval:hover{background:#38bdf826}.lightbox-close-btn{color:#cbd5e1;background:#ffffff0f;border:1px solid #ffffff1a}.lightbox-close-btn:hover{color:#fb7185;background:#f43f5e33;border-color:#f43f5e66}.lightbox-stage{-webkit-user-select:none;user-select:none;background:#050811;flex:1;justify-content:center;align-items:center;width:100%;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}.lightbox-viewport{box-sizing:border-box;justify-content:center;align-items:center;width:100%;height:100%;margin:0;padding:0;display:flex;overflow:hidden}.lightbox-img{object-fit:contain;image-rendering:-webkit-optimize-contrast;image-rendering:high-quality;transform-origin:50%;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;flex-shrink:0;display:block}.lightbox-img.dragging{-webkit-user-select:none;user-select:none;cursor:grabbing!important}.lightbox-nav-btn{-webkit-backdrop-filter:blur(8px);color:#f1f5f9;cursor:pointer;z-index:20;background:#111726d9;border:1px solid #ffffff24;border-radius:50%;justify-content:center;align-items:center;width:46px;height:46px;transition:all .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 8px 24px #00000080}.lightbox-nav-btn:hover{color:#fff;background:#38bdf847;border-color:#38bdf899;transform:translateY(-50%)scale(1.08);box-shadow:0 0 20px #38bdf859}.lightbox-nav-btn.prev{left:1rem}.lightbox-nav-btn.next{right:1rem}.lightbox-footer{color:var(--text-muted);background:#111726;border-top:1px solid #ffffff14;flex-shrink:0;justify-content:space-between;align-items:center;padding:.6rem 1.25rem;font-size:.78rem;display:flex}.lightbox-counter{color:#cbd5e1;font-weight:600}.lightbox-status-pill{color:#38bdf8;background:#38bdf81f;border:1px solid #38bdf840;border-radius:999px;align-items:center;gap:.4rem;padding:.2rem .7rem;font-size:.75rem;font-weight:500;display:inline-flex}.lightbox-hint{align-items:center;gap:.35rem;display:flex}.lightbox-hint kbd{font-family:var(--font-mono);color:#f1f5f9;background:#ffffff1a;border:1px solid #ffffff26;border-radius:4px;padding:.1rem .35rem;font-size:.72rem}.ai-container{flex-direction:column;gap:1.25rem;display:flex}.ai-header-card{background:linear-gradient(135deg,#131926f2 0%,#0f1420fa 100%);border:1px solid #6366f140;border-radius:14px;padding:1.4rem 1.6rem;position:relative;overflow:hidden;box-shadow:0 10px 30px #00000059,0 0 20px #6366f114}.ai-header-card:before{content:"";pointer-events:none;background:radial-gradient(circle,#6366f126 0%,#0000 70%);width:260px;height:260px;position:absolute;top:-80px;right:-80px}.ai-header-top{z-index:1;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.2rem;display:flex;position:relative}.ai-header-left{align-items:flex-start;gap:1rem;display:flex}.ai-header-icon{color:#a5b4fc;background:linear-gradient(135deg,#6366f133 0%,#4f46e54d 100%);border:1px solid #6366f159;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex;box-shadow:0 4px 14px #6366f133}.ai-header-title-row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.ai-header-title{color:#fff;letter-spacing:-.02em;font-size:1.25rem;font-weight:800}.ai-header-desc{color:var(--text-secondary);max-width:720px;margin-top:.35rem;font-size:.84rem;line-height:1.45}.ai-header-actions{align-items:center;gap:.65rem;display:flex}.ai-btn-process{color:#fff;cursor:pointer;background:linear-gradient(135deg,#4f46e5 0%,#6366f1 100%);border:1px solid #ffffff26;border-radius:9px;align-items:center;gap:.55rem;padding:.65rem 1.35rem;font-size:.85rem;font-weight:600;transition:all .2s;display:inline-flex;box-shadow:0 4px 14px #4f46e566}.ai-btn-process:hover:not(:disabled){background:linear-gradient(135deg,#4338ca 0%,#4f46e5 100%);transform:translateY(-1px);box-shadow:0 6px 18px #4f46e580}.ai-btn-process:disabled{opacity:.6;cursor:not-allowed;transform:none}.ai-btn-icon{background:var(--bg-surface);border:1px solid var(--border-medium);color:var(--text-secondary);cursor:pointer;border-radius:9px;justify-content:center;align-items:center;padding:.65rem;transition:all .2s;display:flex}.ai-btn-icon:hover:not(:disabled){color:#fff;background:var(--bg-card-hover);border-color:#fff3}.ai-btn-icon:disabled{opacity:.5;cursor:not-allowed}.ai-kpi-grid{border-top:1px solid #ffffff14;grid-template-columns:repeat(6,1fr);gap:.85rem;margin-top:1.25rem;padding-top:1.25rem;display:grid}@media (width<=1200px){.ai-kpi-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=640px){.ai-kpi-grid{grid-template-columns:repeat(2,1fr)}}.ai-kpi-card{border:1px solid var(--border-subtle);background:#0b0f19b3;border-radius:10px;flex-direction:column;padding:.85rem 1rem;transition:border-color .2s,transform .2s;display:flex}.ai-kpi-card:hover{border-color:var(--border-medium);transform:translateY(-2px)}.ai-kpi-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.73rem;font-weight:600}.ai-kpi-val{color:#fff;letter-spacing:-.02em;margin:.25rem 0 .1rem;font-size:1.55rem;font-weight:800}.ai-kpi-val.danger{color:#fb7185}.ai-kpi-val.warning{color:#fbbf24}.ai-kpi-val.info{color:#818cf8}.ai-kpi-val.conflict{color:#fb923c}.ai-kpi-sub{color:var(--text-secondary);font-size:.7rem}.ai-toolbar{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.ai-search-wrap{flex:1;min-width:260px;max-width:420px;position:relative}.ai-search-icon{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:.75rem;transform:translateY(-50%)}.ai-search-input{background:var(--bg-input);border:1px solid var(--border-subtle);color:#fff;border-radius:8px;outline:none;width:100%;padding:.5rem .85rem .5rem 2.2rem;font-size:.82rem;transition:all .2s}.ai-search-input:focus{border-color:var(--accent-blue);box-shadow:0 0 0 2px #3b82f633}.ai-search-input::placeholder{color:var(--text-muted)}.ai-filters-row{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.ai-filter-chip{background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border-subtle);cursor:pointer;border-radius:7px;align-items:center;gap:.35rem;padding:.4rem .75rem;font-size:.76rem;font-weight:600;transition:all .15s;display:inline-flex}.ai-filter-chip:hover{color:#fff;background:var(--bg-card-hover)}.ai-filter-chip.active{color:#c7d2fe;background:#6366f133;border-color:#6366f180;box-shadow:0 2px 8px #6366f133}.ai-filter-chip.active-danger{color:#fecdd3;background:#f43f5e33;border-color:#f43f5e80}.ai-filter-chip.active-warning{color:#fef3c7;background:#f59e0b33;border-color:#f59e0b80}.ai-filter-chip.active-success{color:#d1fae5;background:#10b98133;border-color:#10b98180}.ai-select{background:var(--bg-input);border:1px solid var(--border-subtle);color:var(--text-primary);cursor:pointer;border-radius:7px;outline:none;padding:.4rem .75rem;font-size:.76rem}.ai-select:focus{border-color:var(--accent-blue)}.ai-view-actions{align-items:center;gap:.4rem;display:flex}.ai-btn-text{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.35rem .6rem;font-size:.76rem;font-weight:500;transition:all .15s}.ai-btn-text:hover{color:var(--text-primary);background:#ffffff0d}.ai-doors-list{flex-direction:column;gap:.85rem;display:flex}.ai-door-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;transition:all .2s;overflow:hidden}.ai-door-card:hover{border-color:var(--border-medium);box-shadow:0 4px 18px #00000040}.ai-door-card.failed{border-left:4px solid var(--status-danger)}.ai-door-card.passed{border-left:4px solid var(--status-success)}.ai-door-card.needs-review{border-color:#f59e0b66;box-shadow:0 0 14px #f59e0b14}.ai-door-header{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:1rem;padding:.95rem 1.25rem;display:flex}.ai-door-header-left{flex:1;align-items:center;gap:.85rem;display:flex}.ai-pass-badge{letter-spacing:.04em;text-transform:uppercase;border-radius:6px;padding:.3rem .65rem;font-size:.72rem;font-weight:800}.ai-pass-badge.pass{color:#34d399;background:#10b98126;border:1px solid #10b98159}.ai-pass-badge.fail{color:#fb7185;background:#f43f5e26;border:1px solid #f43f5e59}.ai-door-id-title{color:#fff;font-size:1rem;font-weight:700}.ai-door-meta-pills{flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.25rem;display:flex}.ai-meta-pill{background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border-subtle);border-radius:5px;padding:.15rem .45rem;font-size:.7rem}.ai-meta-pill.barcode{font-family:var(--font-mono);color:#38bdf8;background:#38bdf814;border-color:#38bdf840}.ai-meta-pill.rating{color:#a5b4fc;background:#6366f11a;border-color:#6366f14d;font-weight:700}.ai-meta-pill.review{color:#fde047;background:#f59e0b1f;border-color:#f59e0b59;align-items:center;gap:.25rem;font-weight:600;display:inline-flex}.ai-meta-pill.conflict{color:#fdba74;background:#fb923c1f;border-color:#fb923c59;align-items:center;gap:.25rem;font-weight:600;display:inline-flex}.ai-meta-pill.single-door{color:#34d399;background:#34d3991f;border-color:#34d39959;font-weight:600}.ai-meta-pill.double-door{color:#c084fc;background:#c084fc1f;border-color:#c084fc59;font-weight:600}.ai-door-header-right{align-items:center;gap:.75rem;display:flex}.ai-conf-badge{color:#34d399;background:#10b9811a;border:1px solid #10b98140;border-radius:999px;align-items:center;gap:.3rem;padding:.2rem .55rem;font-size:.72rem;font-weight:600;display:inline-flex}.ai-conf-badge.low{color:#fbbf24;background:#f59e0b1a;border-color:#f59e0b40}.ai-chevron-btn{color:var(--text-muted);transition:transform .2s,color .2s}.ai-chevron-btn:hover{color:#fff}.ai-alert-box{border-radius:8px;align-items:flex-start;gap:.55rem;margin:0 1.25rem .75rem;padding:.65rem .9rem;font-size:.76rem;line-height:1.45;display:flex}.ai-alert-box.warning{color:#fde68a;background:#f59e0b14;border:1px solid #f59e0b40}.ai-alert-box.conflict{color:#fed7aa;background:#fb923c14;border:1px solid #fb923c40}.ai-conditions-bar{flex-wrap:wrap;align-items:center;gap:.35rem;padding:0 1.25rem .85rem;display:flex}.ai-condition-chip{border:1px solid #0000;border-radius:5px;align-items:center;gap:.25rem;padding:.15rem .45rem;font-size:.7rem;font-weight:600;display:inline-flex}.ai-condition-chip.p{color:#34d399;background:#10b9811f;border-color:#10b98140}.ai-condition-chip.f{color:#fb7185;background:#f43f5e1f;border-color:#f43f5e40}.ai-condition-chip.na{color:var(--text-muted);background:#ffffff0a;border-color:#ffffff14}.ai-door-details{border-top:1px solid var(--border-subtle);background:#0a0d1480;flex-direction:column;gap:1.2rem;padding:1.25rem;display:flex}.ai-section-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:.45rem;margin-bottom:.65rem;font-size:.76rem;font-weight:700;display:flex}.ai-fault-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:9px;flex-direction:column;gap:.45rem;padding:.75rem .95rem;display:flex}.ai-fault-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem;display:flex}.ai-cat-pill{text-transform:uppercase;letter-spacing:.04em;color:#fb7185;background:#f43f5e26;border:1px solid #f43f5e4d;border-radius:4px;padding:.15rem .45rem;font-size:.68rem;font-weight:700}.ai-qty-pill{font-size:.68rem;font-family:var(--font-mono);color:#a5b4fc;background:#6366f126;border:1px solid #6366f14d;border-radius:4px;padding:.15rem .45rem}.ai-fault-desc{color:#f1f5f9;font-size:.82rem;font-weight:500;line-height:1.45}.ai-evidence-citation{border-left:2px solid var(--accent-blue);color:var(--text-secondary);background:#00000059;border-radius:0 6px 6px 0;margin-top:.25rem;padding:.45rem .75rem;font-size:.74rem;line-height:1.4}.ai-evidence-citation strong{color:#cbd5e1}.ai-rec-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:9px;flex-direction:column;gap:.35rem;padding:.75rem .95rem;display:flex}.ai-action-pill{text-transform:uppercase;letter-spacing:.04em;border-radius:4px;align-self:flex-start;padding:.15rem .45rem;font-size:.68rem;font-weight:700;display:inline-block}.ai-action-pill.replace{color:#fca5a5;background:#ef444426;border:1px solid #ef44444d}.ai-action-pill.install{color:#93c5fd;background:#3b82f626;border:1px solid #3b82f64d}.ai-action-pill.adjust{color:#fde68a;background:#f59e0b26;border:1px solid #f59e0b4d}.ai-action-pill.repair{color:#fdba74;background:#f9731626;border:1px solid #f973164d}.ai-rec-desc{color:#e2e8f0;font-size:.82rem;line-height:1.45}.ai-photos-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.65rem;display:grid}.ai-photo-item{aspect-ratio:1;border:1px solid var(--border-subtle);cursor:pointer;background:#000;border-radius:8px;transition:all .2s;position:relative;overflow:hidden}.ai-photo-item:hover{border-color:var(--accent-blue);transform:scale(1.03);box-shadow:0 4px 14px #0006}.ai-photo-item img{object-fit:cover;width:100%;height:100%}.ai-photo-overlay{color:#fff;opacity:0;background:#00000073;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:absolute;inset:0}.ai-photo-item:hover .ai-photo-overlay{opacity:1}.ai-empty-box{text-align:center;background:var(--bg-card);border:1px dashed var(--border-subtle);color:var(--text-muted);border-radius:14px;padding:3.5rem 1.5rem}.ai-empty-title{color:var(--text-primary);margin-top:.85rem;font-size:1.05rem;font-weight:700}.ai-empty-desc{max-width:480px;margin:.4rem auto 1.4rem;font-size:.82rem;line-height:1.5}.ai-live-progress-box{background:linear-gradient(135deg,#1e3a8a59 0%,#111827bf 100%);border:1px solid #3b82f673;border-radius:14px;margin-bottom:1.5rem;padding:1.25rem 1.5rem;box-shadow:0 8px 30px #0000004d,inset 0 1px #ffffff14}.ai-live-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.ai-live-status-pill{color:#34d399;letter-spacing:.02em;background:#10b98126;border:1px solid #10b98159;border-radius:999px;align-items:center;gap:.5rem;padding:.3rem .75rem;font-size:.8rem;font-weight:700;display:inline-flex}.ai-live-pulse-dot{background:#34d399;border-radius:50%;width:8px;height:8px;animation:1.5s infinite pulse;box-shadow:0 0 10px #34d399}.ai-progress-track{background:#ffffff14;border-radius:999px;width:100%;height:10px;margin:.75rem 0;position:relative;overflow:hidden}.ai-progress-fill{background:linear-gradient(90deg,#3b82f6 0%,#06b6d4 50%,#10b981 100%);border-radius:999px;height:100%;transition:width .4s;box-shadow:0 0 12px #06b6d480}.ai-live-footer{color:#94a3b8;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;font-size:.8rem;display:flex}.ai-live-stats-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.ai-live-stat-badge{color:#cbd5e1;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:6px;padding:.2rem .55rem;font-size:.76rem}.ai-guide-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.85rem;margin-top:1rem;margin-bottom:.5rem;display:grid}.ai-guide-card{background:#0f172a80;border:1px solid #ffffff14;border-radius:10px;align-items:flex-start;gap:.75rem;padding:.85rem 1rem;display:flex}.ai-guide-icon{flex-shrink:0;margin-top:.1rem;font-size:1.3rem;line-height:1}.ai-guide-title{color:#f8fafc;margin-bottom:.2rem;font-size:.82rem;font-weight:700}.ai-guide-desc{color:#94a3b8;margin:0;font-size:.74rem;line-height:1.4}.ai-checklist-grid{background:#0003;border:1px solid #ffffff0a;border-radius:8px;flex-wrap:wrap;gap:.45rem;margin-top:.5rem;padding:.5rem .75rem;display:flex}.ai-comp-item{border-radius:6px;align-items:center;gap:.35rem;padding:.22rem .55rem;font-size:.73rem;font-weight:600;display:inline-flex}.ai-comp-item.pass{color:#6ee7b7;background:#10b9811f;border:1px solid #10b98140}.ai-comp-item.fail{color:#fca5a5;background:#ef444426;border:1px solid #ef444459}.ai-comp-item.na{color:#94a3b8;background:#94a3b814;border:1px solid #94a3b82e}.ai-expand-cue{color:#60a5fa;background:#3b82f61a;border:1px solid #3b82f640;border-radius:6px;align-items:center;gap:.25rem;padding:.25rem .6rem;font-size:.76rem;font-weight:600;transition:all .15s;display:inline-flex}.ai-expand-cue:hover{color:#93c5fd;background:#3b82f633}.ai-defects-summary-row{background:#00000040;border:1px solid #ffffff0d;border-radius:8px;flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.55rem;padding:.45rem .75rem;display:flex}.ai-defects-title{color:#f87171;text-transform:uppercase;letter-spacing:.04em;font-size:.73rem;font-weight:700}.ai-defects-chips-wrap{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.ai-defect-highlight-chip{color:#fca5a5;background:#ef444426;border:1px solid #ef444459;border-radius:6px;align-items:center;gap:.35rem;padding:.2rem .55rem;font-size:.74rem;font-weight:600;display:inline-flex}.ai-defect-highlight-chip .chip-badge{color:#fee2e2;text-transform:uppercase;background:#ef44444d;border-radius:4px;padding:.05rem .3rem;font-size:.62rem;font-weight:700}.ai-passed-summary-pill{color:#6ee7b7;background:#10b9811a;border:1px solid #10b98140;border-radius:6px;align-items:center;padding:.2rem .55rem;font-size:.74rem;font-weight:600;display:inline-flex}.ai-all-pass-badge{color:#34d399;align-items:center;gap:.4rem;font-size:.76rem;font-weight:600;display:inline-flex}.ai-alert-compact{color:#fbbf24;background:#f59e0b14;border:1px solid #f59e0b40;border-radius:6px;align-items:center;gap:.5rem;margin-top:.5rem;padding:.4rem .75rem;font-size:.76rem;display:flex}.nav-mode-switcher{background:#0f172aa6;border:1px solid #ffffff1a;border-radius:8px;align-items:center;gap:3px;margin-right:.5rem;padding:3px;display:flex}.nav-mode-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:.4rem;padding:.35rem .75rem;font-size:.8rem;font-weight:600;transition:all .2s;display:inline-flex}.nav-mode-btn.active{color:#fff;background:#2563eb;box-shadow:0 1px 3px #0000004d}.rules-fullscreen-container{width:100%;max-width:1400px;margin:0 auto;padding:.5rem 1rem 3rem}.validation-rules-container{flex-direction:column;gap:1.5rem;display:flex}.rules-hero-card{background:linear-gradient(135deg,#1e293be6 0%,#0f172af2 100%);border:1px solid #3b82f640;border-radius:12px;padding:1.75rem;box-shadow:0 4px 20px #00000040}.rules-hero-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.5rem;display:flex}.rules-hero-left{flex:1;align-items:flex-start;gap:1.2rem;min-width:320px;display:flex}.rules-hero-icon{color:#fff;background:linear-gradient(135deg,#10b981 0%,#3b82f6 100%);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:54px;height:54px;display:flex;box-shadow:0 4px 12px #10b98140}.rules-badge-row{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.4rem;display:flex}.rules-hero-title{color:#f8fafc;letter-spacing:-.02em;margin:0;font-size:1.4rem;font-weight:700}.rules-hero-desc{color:#94a3b8;max-width:820px;margin:.4rem 0 0;font-size:.92rem;line-height:1.55}.rules-hero-actions{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.re-evaluate-callout{background:#3b82f614;border:1px solid #3b82f640;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.2rem;padding:.9rem 1.2rem;display:flex}.re-eval-text strong{color:#93c5fd}.re-eval-text p{color:#cbd5e1;margin:.2rem 0 0;font-size:.85rem}.section-title-wrap{margin-bottom:.25rem}.section-heading{color:#f8fafc;align-items:center;gap:.5rem;margin:0;font-size:1.2rem;font-weight:700;display:flex}.section-subheading{color:#94a3b8;margin:.35rem 0 0;font-size:.88rem}.plain-rules-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-top:.75rem;display:grid}.plain-rule-card{background:#1e293bbf;border:1px solid #ffffff14;border-radius:10px;flex-direction:column;padding:1.25rem;transition:transform .2s,border-color .2s;display:flex;position:relative}.plain-rule-card:hover{border-color:#3b82f666;transform:translateY(-2px)}.rule-stage-pill{text-transform:uppercase;letter-spacing:.05em;color:#60a5fa;background:#2563eb26;border-radius:4px;width:fit-content;margin-bottom:.6rem;padding:.2rem .5rem;font-size:.72rem;font-weight:700}.plain-rule-title{color:#f8fafc;align-items:center;margin:0 0 .5rem;font-size:1.05rem;font-weight:700;display:flex}.plain-rule-summary{color:#cbd5e1;flex:1;margin-bottom:.9rem;font-size:.86rem;line-height:1.5}.rule-condition-box{border-radius:6px;margin-bottom:.5rem;padding:.6rem .75rem;font-size:.82rem;line-height:1.4}.rule-condition-box.pass{color:#a7f3d0;background:#10b98114;border:1px solid #10b98140}.rule-condition-box.fail{color:#fca5a5;background:#ef444414;border:1px solid #ef444440;margin-bottom:0}.cond-badge{letter-spacing:.04em;margin-bottom:.2rem;font-size:.7rem;font-weight:700}.cond-badge.green{color:#34d399}.cond-badge.red{color:#f87171}.cond-text{color:#e2e8f0}.rules-editor-grid{grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:1.25rem;margin-top:.75rem;display:grid}.editor-card{background:#1e293bbf;border:1px solid #ffffff14;border-radius:10px;padding:1.5rem}.editor-card-header h4{color:#f8fafc;margin:0;font-size:1.05rem;font-weight:700}.editor-card-header .subtitle{color:#94a3b8;margin:.3rem 0 1rem;font-size:.84rem;line-height:1.45}.keyword-input-row{gap:.5rem;margin-bottom:1rem;display:flex}.keyword-input{color:#f8fafc;background:#0f172ab3;border:1px solid #ffffff26;border-radius:6px;outline:none;flex:1;padding:.5rem .75rem;font-size:.88rem;transition:border-color .2s}.keyword-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.chips-cloud{background:#0f172a73;border:1px solid #ffffff0f;border-radius:8px;flex-wrap:wrap;gap:.45rem;min-height:110px;max-height:180px;padding:.75rem;display:flex;overflow-y:auto}.defect-chip{color:#fca5a5;background:#ef44441f;border:1px solid #ef44444d;border-radius:6px;align-items:center;gap:.35rem;padding:.25rem .55rem;font-size:.82rem;font-weight:500;transition:all .15s;display:inline-flex}.defect-chip:hover{background:#ef444438}.chip-remove{color:#f87171;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:1px;transition:background .15s;display:flex}.chip-remove:hover{color:#fff;background:#ef44444d}.chip-helper-note{color:#94a3b8;align-items:center;gap:.4rem;margin-top:.75rem;font-size:.78rem;display:flex}.tolerance-slider-group{background:#0f172a73;border:1px solid #ffffff0f;border-radius:8px;padding:1rem}.slider-label-row{justify-content:space-between;align-items:center;margin-bottom:.6rem;display:flex}.slider-label-row label{color:#f8fafc;font-size:.88rem;font-weight:600}.slider-val-badge{color:#93c5fd;background:#3b82f62e;border:1px solid #3b82f659;border-radius:5px;padding:.2rem .6rem;font-size:.84rem;font-weight:700}.range-slider{cursor:pointer;background:#ffffff26;border-radius:3px;outline:none;width:100%;height:6px}.slider-range-labels{color:#94a3b8;justify-content:space-between;margin-top:.35rem;font-size:.74rem;display:flex}.slider-hint{color:#94a3b8;margin:.6rem 0 0;font-size:.78rem;line-height:1.4}.strictness-options{flex-direction:column;gap:.65rem;display:flex}.strictness-card{cursor:pointer;background:#0f172a73;border:1px solid #ffffff14;border-radius:8px;padding:.85rem 1rem;transition:all .2s}.strictness-card:hover{background:#0f172abf;border-color:#3b82f64d}.strictness-card.selected{background:#2563eb1f;border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f6}.strictness-header{color:#f8fafc;align-items:center;gap:.5rem;margin-bottom:.25rem;font-size:.9rem;display:flex}.strictness-card p{color:#94a3b8;margin:0;padding-left:1.4rem;font-size:.8rem;line-height:1.4}.engine-hybrid-toggle{background:#10b98114;border:1px solid #10b98140;border-radius:8px;padding:.75rem 1rem}.toggle-switch-label{cursor:pointer;align-items:flex-start;gap:.65rem;display:flex}.toggle-text{color:#cbd5e1;font-size:.82rem;line-height:1.45}.toggle-text strong{color:#34d399}.components-checklist-grid{grid-template-columns:1fr;gap:.6rem;max-height:280px;padding-right:.3rem;display:grid;overflow-y:auto}.comp-rule-item{background:#0f172a73;border:1px solid #ffffff0f;border-radius:6px;padding:.65rem .85rem}.comp-checkbox-wrap{cursor:pointer;align-items:flex-start;gap:.65rem;display:flex}.comp-label{color:#f8fafc;font-size:.86rem;font-weight:600;display:block}.comp-desc{color:#94a3b8;margin-top:.15rem;font-size:.76rem;line-height:1.35;display:block}.test-sandbox-card{background:#1e293bd9;border:1px solid #ffffff1a;border-radius:12px;padding:1.5rem}.sandbox-grid{grid-template-columns:1.2fr 1fr;gap:1.75rem;display:grid}@media (width<=900px){.sandbox-grid{grid-template-columns:1fr}}.sandbox-presets-row{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.btn-preset{color:#f1f5f9;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1f;border-radius:6px;padding:.25rem .6rem;font-size:.76rem;font-weight:600;transition:all .15s}.btn-preset:hover{background:#ffffff1f;transform:translateY(-1px)}.btn-preset.clean:hover{color:#34d399;border-color:#10b98180}.btn-preset.fail:hover{color:#f87171;border-color:#ef444480}.sandbox-textarea{color:#f8fafc;resize:vertical;background:#0f172ab3;border:1px solid #ffffff26;border-radius:8px;outline:none;width:100%;padding:.75rem;font-family:inherit;font-size:.9rem;line-height:1.5}.sandbox-textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.sandbox-conditions-row{gap:1rem;margin-top:.75rem;display:flex}.sandbox-select{color:#f8fafc;background:#0f172ab3;border:1px solid #ffffff26;border-radius:6px;outline:none;width:100%;padding:.45rem .65rem;font-size:.85rem}.sandbox-result-side h4{color:#f8fafc;margin:0 0 .85rem;font-size:1.05rem;font-weight:700}.result-verdict-box{border:1px solid #0000;border-radius:10px;flex-direction:column;gap:.85rem;padding:1.25rem;display:flex}.result-verdict-box.pass{background:#10b98114;border-color:#10b98159}.result-verdict-box.fail{background:#ef444414;border-color:#ef444459}.verdict-banner{border-bottom:1px solid #ffffff14;align-items:center;gap:1rem;padding-bottom:.75rem;display:flex}.verdict-big-tag{letter-spacing:-.01em;font-size:1.4rem;font-weight:800}.result-verdict-box.pass .verdict-big-tag{color:#34d399}.result-verdict-box.fail .verdict-big-tag{color:#f87171}.verdict-summary-text{color:#cbd5e1;margin-top:.15rem;font-size:.88rem}.verdict-explanation strong{color:#94a3b8;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.35rem;font-size:.82rem;display:block}.reasons-list{color:#e2e8f0;margin:0;padding-left:1.25rem;font-size:.85rem;line-height:1.5}.verdict-meta-block{flex-direction:column;gap:.3rem;display:flex}.meta-label{color:#94a3b8;font-size:.78rem;font-weight:600}.chips-mini{flex-wrap:wrap;gap:.35rem;display:flex}.chip-badge-red{color:#fca5a5;background:#ef444433;border:1px solid #ef444466;border-radius:4px;padding:.15rem .45rem;font-size:.75rem;font-weight:600}.verdict-guidance{background:#0f172a80;border-radius:6px;padding:.65rem .85rem}.guidance-title{color:#60a5fa;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.25rem;font-size:.76rem;font-weight:700;display:block}.verdict-guidance p{color:#cbd5e1;margin:0;font-size:.83rem;line-height:1.45}.sandbox-empty-result{text-align:center;color:#94a3b8;border:1px dashed #ffffff1f;border-radius:8px;padding:2.5rem 1rem;font-size:.88rem;line-height:1.5}.tab-btn.tab-rules{color:#93c5fd}.tab-btn.tab-rules.active{color:#fff;background:#3b82f61f;border-bottom-color:#3b82f6}.nav-mode-switcher{background:#0f172abf;border:1px solid #ffffff14;border-radius:12px;align-items:center;gap:3px;padding:3px;display:flex;box-shadow:inset 0 2px 6px #00000059}.nav-mode-btn{color:#94a3b8;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:9px;align-items:center;gap:.5rem;padding:.45rem .95rem;font-size:.8rem;font-weight:600;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex}.nav-mode-btn:hover{color:#f1f5f9;background:#ffffff0d}.nav-mode-btn.active{color:#fff;background:linear-gradient(135deg,#3b82f64d 0%,#06b6d44d 100%);border:1px solid #3b82f68c;box-shadow:0 2px 12px #3b82f640}.tab-btn.tab-work{color:#67e8f9;font-weight:600}.tab-btn.tab-work.active{color:#fff;background:linear-gradient(#06b6d40f 0%,#06b6d42e 100%);border-bottom-color:#06b6d4}.work-review-container{flex-direction:column;gap:1.25rem;display:flex}.step3-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.85rem;display:grid}.step3-kpi-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0f172aa6;border:1px solid #ffffff14;border-radius:12px;align-items:center;gap:1rem;padding:1rem 1.2rem;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex}.step3-kpi-card:hover{border-color:#ffffff2e;transform:translateY(-2px);box-shadow:0 6px 20px #00000059}.step3-kpi-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.step3-kpi-val{letter-spacing:-.02em;font-size:1.5rem;font-weight:800;line-height:1.1}.step3-kpi-lbl{color:#94a3b8;text-transform:uppercase;letter-spacing:.04em;margin-top:.2rem;font-size:.74rem;font-weight:600}.step3-toolbar{background:#0f172a80;border:1px solid #ffffff12;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.step3-search-box{flex:1;align-items:center;min-width:280px;display:flex;position:relative}.step3-search-box input{color:#f8fafc;background:#02061799;border:1px solid #ffffff1a;border-radius:8px;outline:none;width:100%;padding:.5rem .85rem .5rem 2.2rem;font-size:.83rem;transition:border-color .2s,box-shadow .2s}.step3-search-box input:focus{border-color:#38bdf8;box-shadow:0 0 0 2px #38bdf833}.step3-search-icon{color:#64748b;pointer-events:none;position:absolute;left:.75rem}.step3-tabs{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.step3-tab-btn{color:#94a3b8;cursor:pointer;background:#ffffff08;border:1px solid #ffffff14;border-radius:8px;align-items:center;gap:.4rem;padding:.4rem .8rem;font-size:.76rem;font-weight:600;transition:all .2s;display:inline-flex}.step3-tab-btn:hover{color:#f1f5f9;background:#ffffff12}.step3-tab-btn.active{color:#38bdf8;background:#38bdf829;border-color:#38bdf873;box-shadow:0 2px 8px #38bdf826}.step3-view-switcher{background:#02061799;border:1px solid #ffffff14;border-radius:8px;align-items:center;gap:2px;padding:2px;display:flex}.step3-view-btn{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:.3rem;padding:.35rem .65rem;font-size:.74rem;font-weight:600;transition:all .2s;display:flex}.step3-view-btn:hover{color:#cbd5e1}.step3-view-btn.active{color:#fff;background:#ffffff1a}.step3-card{background:#0f172a99;border:1px solid #ffffff14;border-radius:12px;padding:1.15rem 1.35rem;transition:border-color .2s,transform .15s,box-shadow .2s;position:relative;overflow:hidden}.step3-card:hover{border-color:#ffffff2e;box-shadow:0 8px 24px #0006}.step3-card.status-approved{border-left:5px solid #10b981}.step3-card.status-proposed{border-left:5px solid #38bdf8}.step3-card.status-needs-review{border-left:5px solid #f59e0b}.step3-card.status-rejected{border-left:5px solid #ef4444}.step3-card.status-skipped{opacity:.75;border-left:5px solid #64748b}.step3-badge{text-transform:uppercase;letter-spacing:.03em;border-radius:6px;align-items:center;gap:.35rem;padding:.2rem .6rem;font-size:.72rem;font-weight:700;display:inline-flex}.step3-action-tag{text-transform:uppercase;letter-spacing:.03em;border-radius:6px;padding:.2rem .55rem;font-size:.72rem;font-weight:700}.step3-action-tag.replace{color:#fb7185;background:#f43f5e29;border:1px solid #f43f5e59}.step3-action-tag.repair{color:#fbbf24;background:#f59e0b29;border:1px solid #f59e0b59}.step3-action-tag.adjust{color:#38bdf8;background:#06b6d429;border:1px solid #06b6d459}.step3-action-tag.install{color:#34d399;background:#10b98129;border:1px solid #10b98159}.step3-action-tag.no_work,.step3-action-tag.skip{color:#94a3b8;background:#64748b29;border:1px solid #64748b59}.step3-table-wrapper{background:#0f172a99;border:1px solid #ffffff14;border-radius:12px;overflow:hidden;box-shadow:0 4px 16px #0000004d}.step3-table{border-collapse:collapse;text-align:left;width:100%;font-size:.82rem}.step3-table thead tr{background:#020617d9;border-bottom:1px solid #ffffff1a}.step3-table th{text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;padding:.75rem 1rem;font-size:.72rem;font-weight:700}.step3-table tbody tr{border-bottom:1px solid #ffffff0a;transition:background .15s}.step3-table tbody tr:hover{background:#ffffff08}.step3-table td{vertical-align:middle;padding:.85rem 1rem}.step3-group-card{background:#0f172ab3;border:1px solid #ffffff17;border-radius:14px;transition:border-color .2s,box-shadow .2s,transform .15s;position:relative;overflow:hidden}.step3-group-card:hover{border-color:#ffffff2e;box-shadow:0 8px 26px #00000073}.step3-group-card.group-status-approved{border-left:5px solid #10b981}.step3-group-card.group-status-proposed{border-left:5px solid #38bdf8}.step3-group-card.group-status-needs-review{border-left:5px solid #f59e0b}.step3-group-card.group-status-rejected{border-left:5px solid #ef4444}.step3-group-card.group-status-partially-reviewed{background:linear-gradient(#a855f70a 0%,#0f172ab3 100%);border-left:5px solid #a855f7}.step3-group-card.group-status-skipped{opacity:.8;border-left:5px solid #64748b}.step3-group-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.85rem;padding:1.15rem 1.4rem;display:flex}.step3-group-title-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.step3-group-title{color:#f8fafc;letter-spacing:-.01em;font-size:1.05rem;font-weight:700}.step3-group-door-count{color:#94a3b8;font-size:.92rem;font-weight:600}.step3-group-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.step3-group-details{background:#02061773;border-top:1px solid #ffffff14;flex-direction:column;gap:.75rem;padding:1rem 1.25rem;display:flex}.step3-door-row{background:#0f172acc;border:1px solid #ffffff0f;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.85rem;padding:.85rem 1.1rem;transition:all .15s;display:flex}.step3-door-row:hover{background:#1e293b99;border-color:#ffffff1f}.step3-door-info{flex-direction:column;flex:1;gap:.35rem;min-width:260px;display:flex}.step3-door-header{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.step3-door-name{color:#f1f5f9;font-size:.95rem;font-weight:700}.step3-door-excerpt{color:#cbd5e1;font-size:.82rem;font-style:italic;line-height:1.4}.step3-door-meta{color:#94a3b8;flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.73rem;display:flex}.step3-door-actions{align-items:center;gap:.45rem;display:flex}.step3-badge-partial{color:#c084fc;background:#a855f726;border:1px solid #a855f766}.rules-hero-card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:linear-gradient(135deg,#0f172ae6 0%,#1e293bd9 100%);border:1px solid #ffffff1a;border-radius:16px;padding:1.5rem 1.8rem;box-shadow:0 10px 30px #0006}.rule-card-modern{background:#0f172aa6;border:1px solid #ffffff14;border-radius:12px;padding:1.2rem 1.4rem;transition:all .2s}.rule-card-modern:hover{border-color:#ffffff2e;transform:translateY(-2px);box-shadow:0 8px 24px #00000059}.rule-card-modern.disabled{opacity:.55;border-left:4px solid #475569}.rule-card-modern.enabled{border-left:4px solid #10b981}.rule-sim-box{background:linear-gradient(145deg,#0f172acc 0%,#020617f2 100%);border:1px solid #06b6d44d;border-radius:14px;padding:1.35rem;box-shadow:0 8px 25px #06b6d41a}.invoice-builder-container{flex-direction:column;gap:1.5rem;width:100%;max-width:1400px;margin:0 auto;padding:.5rem 0 2.5rem;display:flex}.invoice-header-strip{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0f172aa6;border:1px solid #ffffff14;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.25rem;padding:1.25rem 1.5rem;display:flex;box-shadow:0 4px 20px #00000040}.invoice-header-left{align-items:center;gap:1rem;display:flex}.invoice-header-icon{color:#38bdf8;background:linear-gradient(135deg,#38bdf826 0%,#06b6d440 100%);border:1px solid #38bdf84d;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;display:flex;box-shadow:0 4px 12px #38bdf826}.invoice-title{color:#fff;letter-spacing:-.01em;margin:0 0 .25rem;font-size:1.25rem;font-weight:700}.invoice-subtitle{color:#94a3b8;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0;font-size:.82rem;display:flex}.invoice-action-buttons{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.invoice-view-toggle{background:#02061799;border:1px solid #ffffff1a;border-radius:8px;gap:2px;padding:3px;display:flex}.invoice-toggle-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:.45rem;padding:.35rem .75rem;font-size:.78rem;font-weight:600;transition:all .2s;display:flex}.invoice-toggle-btn:hover{color:#f1f5f9}.invoice-toggle-btn.active{color:#38bdf8;background:#38bdf82e;box-shadow:0 2px 8px #0003}.invoice-quick-tools{background:#02061766;border:1px solid #ffffff0f;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem;padding:.75rem 1.25rem;font-size:.82rem;display:flex}.invoice-document-paper{background:#0d1322;border:1px solid #ffffff1a;border-radius:16px;flex-direction:column;gap:1.75rem;padding:2.25rem;display:flex;position:relative;overflow:hidden;box-shadow:0 12px 40px #00000073}.invoice-document-paper:before{content:"";background:linear-gradient(90deg,#38bdf8 0%,#3b82f6 50%,#10b981 100%);height:4px;position:absolute;top:0;left:0;right:0}.invoice-preview-header-grid{border-bottom:1px solid #ffffff14;grid-template-columns:1.35fr 1fr;gap:1.75rem;padding-bottom:1.75rem;display:grid}.invoice-provider-block{flex-direction:column;gap:1.25rem;display:flex}.invoice-provider-header{border-bottom:1px solid #ffffff0f;padding-bottom:.9rem}.provider-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:#38bdf8;margin-bottom:.2rem;font-size:.7rem;font-weight:800}.provider-name{color:#f8fafc;letter-spacing:-.01em;font-size:1.15rem;font-weight:800}.provider-desc{color:#94a3b8;margin-top:.15rem;font-size:.8rem}.provider-bank-strip{font-size:.75rem;font-family:var(--font-mono,monospace);color:#94a3b8;background:#38bdf80f;border:1px solid #38bdf82e;border-radius:6px;align-items:center;gap:.8rem;margin-top:.5rem;padding:.3rem .75rem;display:inline-flex}.provider-bank-strip strong{color:#e2e8f0}.invoice-address-grid{grid-template-columns:1fr 1fr;gap:1.25rem;display:grid}.invoice-address-card{background:#02061773;border:1px solid #ffffff0f;border-radius:10px;flex-direction:column;gap:.5rem;padding:1.1rem;display:flex}.invoice-address-card.active-edit{background:#0f172a99;border-color:#38bdf840}.address-card-header{text-transform:uppercase;letter-spacing:.06em;color:#94a3b8;align-items:center;gap:.45rem;font-size:.72rem;font-weight:700;display:flex}.address-val-main{color:#f8fafc;font-size:.95rem;font-weight:700;line-height:1.35}.address-val-sub{color:#94a3b8;white-space:pre-line;font-size:.82rem;line-height:1.5}.invoice-details-meta-box{background:#0206178c;border:1px solid #ffffff14;border-radius:12px;flex-direction:column;justify-content:space-between;gap:.85rem;padding:1.35rem;display:flex}.meta-row{justify-content:space-between;align-items:center;gap:1rem;font-size:.84rem;display:flex}.meta-lbl{color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:700}.meta-val{font-family:var(--font-mono,monospace);color:#f8fafc;font-size:.9rem}.meta-val-highlight{color:#38bdf8;font-size:1.15rem;font-weight:800}.meta-total-due-banner{background:linear-gradient(135deg,#10b9811f 0%,#06b6d414 100%);border:1px solid #10b9814d;border-radius:8px;justify-content:space-between;align-items:center;margin-top:.5rem;padding:.85rem 1rem;display:flex}.meta-total-due-lbl{text-transform:uppercase;letter-spacing:.06em;color:#34d399;font-size:.78rem;font-weight:800}.meta-total-due-val{font-family:var(--font-mono,monospace);color:#34d399;font-size:1.35rem;font-weight:800}.invoice-clean-input{color:#f8fafc;box-sizing:border-box;background:#0f172ad9;border:1px solid #ffffff1f;border-radius:7px;outline:none;width:100%;padding:.5rem .75rem;font-size:.85rem;transition:all .2s}.invoice-clean-input:focus{background:#0f172afa;border-color:#38bdf8;box-shadow:0 0 0 2px #38bdf833}.invoice-clean-textarea{color:#cbd5e1;resize:vertical;box-sizing:border-box;background:#0f172ad9;border:1px solid #ffffff1f;border-radius:7px;outline:none;width:100%;padding:.5rem .75rem;font-size:.82rem;line-height:1.5;transition:all .2s}.invoice-clean-textarea:focus{border-color:#38bdf8;box-shadow:0 0 0 2px #38bdf833}.invoice-lines-section{flex-direction:column;gap:.85rem;display:flex}.invoice-lines-header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem;display:flex}.invoice-table-wrapper{background:#02061780;border:1px solid #ffffff14;border-radius:12px;overflow-x:auto;box-shadow:0 4px 24px #0003}.invoice-table{border-collapse:collapse;text-align:left;width:100%;min-width:1050px}.invoice-table th{color:#94a3b8;text-transform:uppercase;letter-spacing:.06em;background:#0f172af2;border-bottom:1px solid #ffffff1a;padding:.85rem 1.1rem;font-size:.74rem;font-weight:800}.invoice-table td{vertical-align:top;border-bottom:1px solid #ffffff0d;padding:1rem 1.1rem}.invoice-table tbody tr{transition:background .15s}.invoice-table tbody tr:hover td{background:#ffffff04}.invoice-service-badge{letter-spacing:.01em;white-space:nowrap;border-radius:7px;align-items:center;gap:.4rem;padding:.35rem .75rem;font-size:.8rem;font-weight:700;display:inline-flex}.invoice-service-badge.service-replace{color:#38bdf8;background:#38bdf81f;border:1px solid #38bdf847}.invoice-service-badge.service-remedial{color:#34d399;background:#10b9811f;border:1px solid #10b98147}.invoice-service-badge.service-general{color:#cbd5e1;background:#94a3b81f;border:1px solid #94a3b840}.invoice-desc-block{flex-direction:column;gap:.55rem;display:flex}.invoice-desc-text{color:#e2e8f0;word-break:break-word;margin:0;font-size:.86rem;line-height:1.55}.invoice-door-trace-bar{flex-wrap:wrap;align-items:center;gap:.6rem;padding-top:.35rem;display:flex}.door-count-chip{color:#38bdf8;letter-spacing:.02em;background:#38bdf81a;border:1px solid #38bdf838;border-radius:6px;align-items:center;gap:.35rem;padding:2px 8px;font-size:.74rem;font-weight:700;display:inline-flex}.door-names-preview{color:#94a3b8;white-space:nowrap;text-overflow:ellipsis;max-width:380px;font-size:.76rem;overflow:hidden}.trace-ghost-btn{color:#38bdf8;cursor:pointer;background:#38bdf814;border:1px solid #38bdf840;border-radius:6px;align-items:center;gap:.35rem;padding:2px 8px;font-size:.74rem;font-weight:600;transition:all .2s;display:inline-flex}.trace-ghost-btn:hover{color:#fff;background:#38bdf833;border-color:#38bdf8;transform:translateY(-1px)}.qty-stepper-wrap{background:#0f172ad9;border:1px solid #ffffff26;border-radius:8px;align-items:center;transition:all .2s;display:inline-flex;overflow:hidden;box-shadow:0 2px 6px #0003}.qty-stepper-wrap:focus-within{border-color:#38bdf8;box-shadow:0 0 0 2px #38bdf840}.qty-stepper-btn{color:#94a3b8;cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;justify-content:center;align-items:center;width:26px;height:34px;font-weight:700;transition:all .15s;display:flex}.qty-stepper-btn:hover{color:#38bdf8;background:#38bdf826}.qty-stepper-input{text-align:center;color:#fff;width:44px;height:34px;font-size:.95rem;font-weight:800;font-family:var(--font-mono,monospace);-moz-appearance:textfield;background:0 0;border:none;outline:none;padding:0}.qty-stepper-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.qty-stepper-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.rate-cell-wrap{box-sizing:border-box;background:#0f172ad9;border:1px solid #ffffff24;border-radius:8px;align-items:center;width:120px;height:34px;margin-left:auto;padding:0 .55rem;transition:all .2s;display:flex}.rate-cell-wrap:focus-within{border-color:#38bdf8;box-shadow:0 0 0 2px #38bdf833}.rate-cell-prefix{color:#94a3b8;-webkit-user-select:none;user-select:none;margin-right:.25rem;font-size:.88rem;font-weight:700}.rate-cell-input{color:#fff;width:100%;height:100%;font-size:.92rem;font-weight:700;font-family:var(--font-mono,monospace);text-align:right;-moz-appearance:textfield;background:0 0;border:none;outline:none;padding:0}.rate-cell-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.rate-cell-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.qty-display-badge{color:#fff;min-width:38px;height:32px;font-size:.95rem;font-weight:700;font-family:var(--font-mono,monospace);background:#0f172ab3;border:1px solid #ffffff1a;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.rate-display-text{font-family:var(--font-mono,monospace);color:#cbd5e1;text-align:right;font-size:.9rem;font-weight:600}.amount-display-val{font-family:var(--font-mono,monospace);color:#34d399;text-align:right;font-size:1rem;font-weight:700}.amount-display-val.unset{color:#64748b;font-weight:500}.invoice-bottom-grid{grid-template-columns:1.35fr 1fr;gap:1.75rem;margin-top:1.25rem;display:grid}.qb-sync-card{background:linear-gradient(135deg,#10b9811a 0%,#06b6d414 100%);border:1px solid #10b98159;border-radius:12px;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.25rem 1.5rem;display:flex;box-shadow:0 4px 18px #10b9811a}.invoice-totals-box{background:#020617b3;border:1px solid #ffffff1a;border-radius:12px;flex-direction:column;gap:.75rem;padding:1.35rem;display:flex}.totals-row{color:#cbd5e1;justify-content:space-between;align-items:center;font-size:.88rem;display:flex}.totals-lbl{color:#94a3b8;font-size:.82rem;font-weight:600}.totals-val{font-family:var(--font-mono,monospace);color:#f1f5f9;font-size:.98rem;font-weight:700}.totals-grand{border-top:1px solid #ffffff1f;margin-top:.35rem;padding-top:.85rem}.totals-val-grand{color:#34d399;font-size:1.35rem;font-weight:800}.invoice-empty-state{text-align:center;background:#0f172a80;border:1px dashed #ffffff26;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;padding:4rem 2rem;display:flex}@media (width<=960px){.invoice-preview-header-grid,.invoice-bottom-grid,.invoice-address-grid{grid-template-columns:1fr!important}}.step4-direct-header{background:linear-gradient(135deg,#0f172ad9 0%,#1e293bb3 100%);border:1px solid #38bdf840;border-radius:12px;justify-content:space-between;align-items:center;gap:1.25rem;margin-bottom:1.25rem;padding:1rem 1.4rem;display:flex;box-shadow:0 4px 16px #0003}.step4-direct-title{align-items:center;gap:1rem;display:flex}.step4-direct-icon{color:#38bdf8;background:linear-gradient(135deg,#38bdf833 0%,#06b6d440 100%);border:1px solid #38bdf859;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.step4-heading{color:#f8fafc;letter-spacing:-.01em;font-size:1.1rem;font-weight:800}.step4-subheading{color:#94a3b8;margin-top:.2rem;font-size:.84rem}.step4-auto-badge{color:#34d399;white-space:nowrap;background:#10b9811f;border:1px solid #10b98159;border-radius:20px;align-items:center;gap:.45rem;padding:.45rem .85rem;font-size:.82rem;font-weight:700;display:inline-flex}
