:root{--bg-primary: #0a0a0a;--bg-secondary: #131313;--bg-tertiary: #1a1a1a;--bg-elevated: #222222;--bg-hover: #262626;--bg-inset: #0d0d0d;--text-primary: #ededed;--text-secondary: #a8a8a8;--text-muted: #6e6e6e;--text-faint: #484848;--border: #262626;--border-light: #333333;--border-strong: #4a4a4a;--accent: #ededed;--accent-hover: #ffffff;--accent-bg: #1a1a1a;--accent-border: #3a3a3a;--ok-text: #ededed;--ok-bg: #1e1e1e;--ok-border: #555555;--warn-text: #b0b0b0;--warn-bg: #181818;--warn-border: #3a3a3a;--err-text: #d0d0d0;--err-bg: #141414;--err-border: #5a5a5a;--info-text: #999999;--info-bg: #161616;--info-border: #2e2e2e;--r-sm: 4px;--r-md: 6px;--r-lg: 8px;--r-xl: 12px;--r-pill: 999px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4);--shadow-md: 0 2px 8px rgba(0, 0, 0, .5);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .6);--font: "Figtree", sans-serif;--font-heading: "Outfit", sans-serif;--font-mono: "SF Mono", "JetBrains Mono", Monaco, Menlo, Consolas, "Courier New", monospace;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--app-header-h: 54px;--drawer-w: 420px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}html{-webkit-text-size-adjust:100%}body{font-family:var(--font);background:var(--bg-primary);color:var(--text-primary);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}a{color:var(--text-primary);text-decoration:none;transition:opacity .15s}a:hover{opacity:.75;text-decoration:underline}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:600}::selection{background:var(--border-strong);color:var(--accent-hover)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:var(--r-sm)}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.app-root{display:flex;flex-direction:column;min-height:100vh}.app-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-6);background:var(--bg-secondary);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;min-height:52px}.app-header-left{display:flex;align-items:center;gap:var(--sp-5)}.app-logo{display:inline-flex;align-items:center;gap:var(--sp-2);font-family:var(--font-heading);font-size:15px;font-weight:700;letter-spacing:.02em;color:var(--text-primary);white-space:nowrap}.app-logo-mark{width:22px;height:22px;display:block}.app-nav{display:flex;gap:var(--sp-1)}.nav-link{padding:var(--sp-1) var(--sp-3);font-family:var(--font-heading);font-size:13px;font-weight:500;color:var(--text-muted);border-radius:var(--r-sm);transition:color .15s,background .15s;text-decoration:none}.nav-link:hover{color:var(--text-secondary);background:var(--bg-tertiary);text-decoration:none}.nav-link.active{color:var(--text-primary);background:var(--bg-elevated)}.app-header-right{display:flex;align-items:center;gap:var(--sp-4)}.app-user{font-size:12px;color:var(--text-muted);font-family:var(--font-mono)}.app-header-route{font-size:11px;color:var(--text-faint);font-family:var(--font-mono);margin-left:var(--sp-4)}.app-main{flex:1;display:flex;flex-direction:column}.error-boundary{padding:var(--sp-8);max-width:600px;margin:var(--sp-8) auto;text-align:center}.error-boundary h2{font-size:18px;margin-bottom:var(--sp-3);color:var(--err-text)}.error-boundary pre{background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3);font-size:12px;font-family:var(--font-mono);text-align:left;overflow:auto;margin-bottom:var(--sp-4);color:var(--text-secondary)}.error-boundary button{margin-top:var(--sp-2)}.not-found{padding:var(--sp-10);text-align:center}.desktop-only{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;display:flex;align-items:center;justify-content:center;padding:var(--sp-5);background:var(--bg-primary);text-align:center}.desktop-only-card{max-width:420px;display:flex;flex-direction:column;align-items:center;gap:var(--sp-3)}.desktop-only-mark{width:40px;height:40px;display:block;opacity:.8}.desktop-only-card h1{font-size:18px;line-height:1.4;font-weight:600;color:var(--text-primary)}.desktop-only-card p{font-size:13px;line-height:1.6;color:var(--text-secondary)}.desktop-only-hint{font-family:var(--font-mono);font-size:11px;color:var(--text-faint)}.not-found h2{font-size:28px;font-weight:700;margin-bottom:var(--sp-2);color:var(--text-primary)}.not-found p{color:var(--text-muted)}button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border-light);border-radius:var(--r-sm);padding:7px 14px;font-size:13px;font-weight:500;font-family:var(--font-heading);cursor:pointer;transition:background .15s,border-color .15s,opacity .15s;text-decoration:none;white-space:nowrap;line-height:1.4}.btn-icon{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 8px;background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--r-sm);font-size:14px;font-family:var(--font-mono);cursor:pointer;text-decoration:none;transition:background .15s,opacity .15s}.btn-icon:hover:not(:disabled){background:var(--bg-hover)}.btn-icon:disabled{opacity:.4;cursor:not-allowed}button:hover,.btn:hover{background:var(--bg-hover);border-color:var(--border-strong);text-decoration:none}button:active,.btn:active{background:var(--bg-tertiary)}button:focus-visible,.btn:focus-visible{outline:2px solid var(--text-secondary);outline-offset:1px}button:disabled,.btn:disabled{background:var(--bg-tertiary);color:var(--text-faint);border-color:var(--border);cursor:not-allowed;opacity:.6}.btn-primary,button.btn-primary{background:var(--text-primary);color:var(--bg-primary);border-color:var(--text-primary);font-weight:600}.btn-primary:hover,button.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-success,button.btn-success{background:var(--ok-bg);color:var(--ok-text);border-color:var(--ok-border);font-weight:600}.btn-success:hover,button.btn-success:hover{background:var(--bg-elevated);border-color:var(--text-muted)}.btn-success:disabled,button.btn-success:disabled{background:var(--bg-tertiary);color:var(--text-faint);border-color:var(--border)}.dropdown-wrapper{position:relative;display:inline-flex;align-items:center;cursor:pointer}.dropdown-wrapper:after{content:"▾";margin-left:.4em;font-size:.75em;opacity:.7;pointer-events:none}.btn-dropdown-native{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;border:none;background:transparent;font-size:inherit}.btn-danger,button.btn-danger{background:var(--err-bg);color:var(--err-text);border-color:var(--err-border);font-weight:600}.btn-danger:hover,button.btn-danger:hover{background:var(--bg-elevated);border-color:var(--border-strong)}.btn-sm,button.btn-sm{padding:3px 10px;font-size:12px}.btn-danger-outline,button.btn-danger-outline{background:transparent;color:var(--text-secondary);border-color:var(--border-light)}.btn-danger-outline:hover,button.btn-danger-outline:hover{background:var(--err-bg);color:var(--err-text);border-color:var(--err-border)}button.secondary,.btn.secondary{background:var(--bg-tertiary);color:var(--text-secondary);border-color:var(--border)}button.secondary:hover,.btn.secondary:hover{background:var(--bg-elevated);color:var(--text-primary)}input,select,textarea{background:var(--bg-inset);color:var(--text-primary);border:1px solid var(--border-light);border-radius:var(--r-sm);padding:7px 10px;font-size:13px;font-family:inherit;width:100%;transition:border-color .15s,background .15s}input::placeholder,textarea::placeholder{color:var(--text-faint)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--border-strong);background:var(--bg-secondary)}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--text-muted);outline-offset:0}input.error,select.error,textarea.error{border-color:var(--err-border)}input[type=checkbox]{width:16px;height:16px;accent-color:var(--text-primary);cursor:pointer;vertical-align:middle}input[type=date]{color-scheme:dark}textarea{resize:vertical;min-height:60px}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--border)}th{color:var(--text-muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;-webkit-user-select:none;user-select:none}tbody tr{transition:background .1s}tbody tr:hover td{background:var(--bg-hover)}.mono{font-family:var(--font-mono);font-size:12px}.muted{color:var(--text-muted)}.num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.container{max-width:1440px;margin:0 auto;padding:var(--sp-6);width:100%}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.gap-2{gap:var(--sp-2)}.gap-3{gap:var(--sp-3)}.gap-4{gap:var(--sp-4)}.grid{display:grid;gap:var(--sp-4)}.grid-2{grid-template-columns:1fr 1fr}.alert{padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);border:1px solid var(--border-light);font-size:13px;margin-bottom:var(--sp-3)}.alert-error{background:var(--err-bg);border-color:var(--err-border);color:var(--err-text)}.alert-warning{background:var(--warn-bg);border-color:var(--warn-border);color:var(--warn-text)}.alert-success{background:var(--ok-bg);border-color:var(--ok-border);color:var(--ok-text)}.alert a{font-weight:600;text-decoration:underline}.model-selector{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.model-selector-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;font-weight:600}.model-selector select,.model-selector-inline select{background:var(--bg-inset);color:var(--text-primary);border:1px solid var(--border-light);border-radius:var(--r-sm);padding:6px 10px;font-size:12px;font-family:var(--font);cursor:pointer;outline:none;transition:border-color .15s;width:auto}.model-selector select:hover,.model-selector-inline select:hover{border-color:var(--border-strong)}.model-selector select:focus,.model-selector-inline select:focus{border-color:var(--text-muted)}.model-selector-inline select:disabled{opacity:.5;cursor:not-allowed}.model-selector-inline{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.model-vision-warning{font-size:11px;color:var(--warn-text);white-space:nowrap;max-width:240px;overflow:hidden;text-overflow:ellipsis;background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:var(--r-sm);padding:2px 6px}.model-vision-warning-blocker{color:var(--err-text);font-weight:600;background:var(--err-bg);border-color:var(--err-border)}.status-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--r-pill);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;border:1px solid transparent;line-height:1.5}.badge-gray{background:var(--bg-tertiary);color:var(--text-muted);border-color:var(--border)}.badge-blue{background:var(--bg-elevated);color:var(--text-secondary);border-color:var(--border-light)}.badge-green{background:var(--bg-elevated);color:var(--text-primary);border-color:var(--border-strong);font-weight:600}.badge-yellow{background:var(--bg-tertiary);color:var(--text-secondary);border-color:var(--border-light);animation:badge-pulse 2s ease-in-out infinite}.badge-green-bright{background:var(--text-primary);color:var(--bg-primary);border-color:var(--text-primary);font-weight:700}.badge-red{background:var(--err-bg);color:var(--err-text);border-color:var(--err-border);font-weight:600}@keyframes badge-pulse{0%,to{opacity:1}50%{opacity:.6}}@media (prefers-reduced-motion: reduce){.badge-yellow{animation:none}}.confidence-indicator{display:inline-block;width:8px;height:8px;border-radius:50%;font-size:0;line-height:0;vertical-align:middle;flex-shrink:0}.conf-none{background:transparent;border:1px solid var(--text-faint)}.conf-green{background:var(--text-primary);border:1px solid var(--text-primary)}.conf-light-green{background:var(--text-secondary);border:1px solid var(--text-secondary)}.conf-yellow{background:var(--text-muted);border:1px solid var(--text-muted)}.conf-red{background:transparent;border:1.5px solid var(--border-strong)}.confidence{display:inline-flex;align-items:center;gap:4px;font-size:12px}.confidence .dot{width:8px;height:8px;border-radius:50%}.confidence.high .dot{background:var(--text-primary)}.confidence.medium-high .dot{background:var(--text-secondary)}.confidence.medium .dot{background:var(--text-muted)}.confidence.low .dot{background:transparent;border:1.5px solid var(--border-strong)}.confidence .value{color:var(--text-faint);font-family:var(--font-mono);font-size:11px}.dashboard{padding:var(--sp-6);max-width:1440px;margin:0 auto}.dashboard-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-5);gap:var(--sp-4);flex-wrap:wrap}.dashboard-header h1{font-size:22px;font-weight:700;letter-spacing:-.01em}.dashboard-actions{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.dashboard-filters{display:flex;gap:var(--sp-3);margin-bottom:var(--sp-4);flex-wrap:wrap;padding:var(--sp-3);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--r-lg)}.filter-field{display:flex;flex-direction:column;gap:var(--sp-1);min-width:140px}.filter-field span{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.filter-field input,.filter-field select{width:100%;min-width:0}.dashboard-table-wrap{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}.dashboard-table{width:100%}.dashboard-table th{background:var(--bg-tertiary);border-bottom:1px solid var(--border-light);position:relative}.col-actions{width:100px;white-space:nowrap}.status-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;width:auto;font-family:var(--font-heading);cursor:pointer;outline:none}.status-select:hover{opacity:.85}.status-select:disabled{opacity:.5;cursor:not-allowed}.status-select:focus-visible{outline:2px solid var(--text-secondary);outline-offset:1px}.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .1s}.sortable:hover{color:var(--text-secondary)}.table-loading,.table-empty{text-align:center;color:var(--text-muted);padding:var(--sp-8);font-size:14px}.dashboard-row{cursor:pointer;transition:background .1s}.dashboard-row:hover td{background:var(--bg-hover)}.local-badge{margin-left:var(--sp-2);padding:1px 6px;font-size:9px}.dashboard-pagination{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-3) 0;margin-top:var(--sp-1)}.pagination-info{color:var(--text-muted);font-size:12px}.pagination-controls{display:flex;align-items:center;gap:var(--sp-1)}.pagination-controls .btn{min-width:32px;padding:5px 10px;font-size:13px}.pagination-current{font-family:var(--font-mono);font-size:13px;font-weight:600;padding:5px 10px;color:var(--text-primary);background:var(--bg-tertiary);border-radius:var(--r-sm);min-width:36px;text-align:center}.dashboard h2{font-size:20px;margin-bottom:var(--sp-4)}.dashboard-toolbar{display:flex;gap:var(--sp-3);margin-bottom:var(--sp-4);flex-wrap:wrap;align-items:center}.dashboard-toolbar input,.dashboard-toolbar select{width:auto;min-width:160px}.dashboard-toolbar .spacer{flex:1}.dashboard-table .empty{padding:48px;text-align:center;color:var(--text-muted)}.pagination{display:flex;justify-content:space-between;align-items:center;padding:var(--sp-3) 0;color:var(--text-secondary);font-size:13px}.pagination .page-btns{display:flex;gap:var(--sp-2)}.budget{font-family:var(--font-mono)}.review-pane{padding:var(--sp-5);max-width:1440px;margin:0 auto}.review-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-4);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--r-lg);margin-bottom:var(--sp-4);flex-wrap:wrap}.review-header-left{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.review-header-left h2{font-size:18px;font-weight:700;font-family:var(--font-mono)}.review-header-budget{font-family:var(--font-mono);font-size:15px;font-weight:600;color:var(--text-primary)}.review-header-actions{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.reject-panel{padding:var(--sp-4);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--r-md);margin-bottom:var(--sp-4)}.reject-panel label{display:flex;flex-direction:column;gap:var(--sp-2)}.reject-panel label span{font-size:12px;font-weight:600;color:var(--text-secondary)}.reject-panel textarea{width:100%;min-height:80px}.reject-panel-actions{display:flex;gap:var(--sp-2);margin-top:var(--sp-3)}.review-split{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4);margin-bottom:var(--sp-4)}.review-pane-left,.review-pane-right{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4);overflow:auto;max-height:calc(100vh - 280px)}.pane-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:var(--sp-3);padding-bottom:var(--sp-2);border-bottom:1px solid var(--border)}.source-doc{display:flex;flex-direction:column;height:100%;min-height:400px}.source-doc-bar{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-2) var(--sp-3);background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--r-sm);margin-bottom:var(--sp-2);font-size:12px}.source-doc-name{font-family:var(--font-mono);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.source-doc-pdf{flex:1;width:100%;min-height:500px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-inset)}.source-doc-iframe{flex:1;width:100%;min-height:500px;border:1px solid var(--border);border-radius:var(--r-sm);background:#fff}.source-doc-image-wrap{flex:1;display:flex;align-items:center;justify-content:center;min-height:400px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-inset);overflow:auto;padding:var(--sp-3)}.source-doc-image{max-width:100%;height:auto;border-radius:var(--r-sm)}.source-doc-fallback{padding:var(--sp-6);text-align:center;color:var(--text-muted)}.source-doc-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:var(--sp-3);padding:var(--sp-8);color:var(--text-muted);min-height:300px}.source-doc-empty p{font-size:13px}.source-doc-empty .muted{font-size:12px;color:var(--text-faint)}.pdf-viewer{display:flex;flex-direction:column;flex:1;min-height:500px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-inset);overflow:hidden}.pdf-toolbar{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--bg-tertiary);border-bottom:1px solid var(--border);font-size:12px;flex-shrink:0}.pdf-page-label,.pdf-zoom-label{min-width:80px;text-align:center;font-family:var(--font-mono);color:var(--text-secondary)}.pdf-toolbar-sep{width:1px;height:18px;background:var(--border);margin:0 var(--sp-1)}.pdf-canvas-wrap{flex:1;overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:var(--sp-3)}.pdf-canvas{display:block;box-shadow:0 2px 8px #0006;background:#fff}.pdf-loading{color:var(--text-muted);padding:var(--sp-3)}.csv-viewer{display:flex;flex-direction:column;flex:1;min-height:500px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-inset);overflow:hidden}.csv-toolbar{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--bg-tertiary);border-bottom:1px solid var(--border);flex-shrink:0}.csv-search{flex:1;padding:4px 8px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-primary);font-family:var(--font-mono);font-size:12px}.csv-search:focus{outline:none;border-color:var(--text-secondary)}.csv-count{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);min-width:90px;text-align:right}.csv-table-wrap{flex:1;overflow:auto}.csv-table{width:100%;border-collapse:collapse;font-size:12px;font-family:var(--font-mono)}.csv-table th,.csv-table td{padding:6px 10px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;max-width:320px;overflow:hidden;text-overflow:ellipsis}.csv-table th{background:var(--bg-tertiary);color:var(--text-secondary);font-weight:600;position:sticky;top:0;z-index:1}.csv-table tbody tr:hover{background:var(--bg-hover)}.image-viewer{display:flex;flex-direction:column;flex:1;min-height:400px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-inset);overflow:hidden}.image-toolbar{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--bg-tertiary);border-bottom:1px solid var(--border);flex-shrink:0}.image-zoom-label{min-width:60px;text-align:center;font-family:var(--font-mono);font-size:12px;color:var(--text-secondary)}.image-canvas-wrap{flex:1;overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:var(--sp-3)}.image-canvas{max-width:100%;height:auto;transition:transform .15s ease-out}.extracted-sections{width:100%;max-width:700px;text-align:left;margin-top:var(--sp-4)}.extracted-section{margin-bottom:var(--sp-3);padding:var(--sp-2);background:var(--bg-tertiary);border-radius:var(--r-sm);font-size:12px;color:var(--text-secondary)}.source-doc-office{display:flex;flex-direction:column;height:100%;overflow-y:auto}.source-doc-office .muted{font-size:12px;color:var(--text-muted)}.office-text-section{font-family:var(--font-mono, monospace);font-size:12px;white-space:pre-wrap;word-break:break-word;margin:0;padding:var(--sp-2);line-height:1.5}.office-table{width:100%;border-collapse:collapse;font-size:11px;table-layout:auto}.office-table th{text-align:left;font-weight:600;padding:6px 8px;border-bottom:2px solid var(--border);color:var(--text-primary);white-space:nowrap}.office-table td{padding:5px 8px;border-bottom:1px solid var(--border);color:var(--text-secondary);vertical-align:top}.office-table .totals-row{font-weight:700;border-top:2px solid var(--border);background:var(--bg-secondary)}.office-table .totals-row td{border-bottom:none}.field-group{margin-bottom:var(--sp-5)}.field-group h5{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:var(--sp-3);padding-bottom:var(--sp-1);border-bottom:1px solid var(--border)}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}.line-item-card{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--r-md);margin-bottom:var(--sp-2);overflow:hidden}.line-item-header{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .1s}.line-item-header:hover{background:var(--bg-hover)}.line-item-toggle{font-size:10px;color:var(--text-muted);width:14px;flex-shrink:0;text-align:center}.line-item-id{color:var(--text-muted);font-size:12px;flex-shrink:0}.line-item-name{font-weight:600;font-size:13px;color:var(--text-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-item-meta{font-size:11px;color:var(--text-muted);white-space:nowrap;font-family:var(--font-mono)}.line-item-body{padding:var(--sp-3);border-top:1px solid var(--border)}.field-editor{display:flex;flex-direction:column;gap:var(--sp-1)}.field-editor-row{display:flex;align-items:center;gap:var(--sp-2)}.field-editor-control{flex:1;background:var(--bg-inset);color:var(--text-primary);border:1px solid var(--border-light);border-radius:var(--r-sm);padding:6px 10px;font-size:13px;font-family:inherit;width:100%;transition:border-color .15s,background .15s}.field-editor-control:focus{outline:none;border-color:var(--border-strong);background:var(--bg-secondary)}.field-editor-control:disabled{opacity:.5;cursor:not-allowed}.field-editor-control.has-error{border-color:var(--err-border);background:var(--err-bg)}.field-editor-control.has-warning{border-color:var(--warn-border)}.field-editor-label{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.field-editor-issues{list-style:none;margin-top:var(--sp-1);display:flex;flex-direction:column;gap:var(--sp-1)}.field-editor-issues li{font-size:11px;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);display:flex;flex-direction:column;gap:2px}.issue-error{background:var(--err-bg);border:1px solid var(--err-border);color:var(--err-text)}.issue-warning{background:var(--warn-bg);border:1px solid var(--warn-border);color:var(--warn-text)}.issue-info{background:var(--info-bg);border:1px solid var(--info-border);color:var(--info-text)}.issue-code{font-family:var(--font-mono);font-size:10px;font-weight:700;opacity:.8}.issue-message{font-size:11px}.issue-suggestion{font-size:11px;opacity:.7;font-style:italic}.field-error .field-editor-control{border-color:var(--err-border)}.field-warning .field-editor-control{border-color:var(--warn-border)}.field{margin-bottom:var(--sp-2)}.field-label{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--text-secondary);margin-bottom:var(--sp-1)}.field-label .path{font-family:var(--font-mono);font-size:10px;color:var(--text-faint)}.review-validation{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4)}.conflict-resolver{display:flex;flex-direction:column;gap:var(--sp-2)}.conflict-empty{padding:var(--sp-4);text-align:center;color:var(--text-muted);font-size:13px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--r-md)}.conflict-group{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-tertiary);overflow:hidden}.conflict-group-summary{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-2) var(--sp-3);cursor:pointer;font-size:13px;font-weight:600;list-style:none;transition:background .1s}.conflict-group-summary::-webkit-details-marker{display:none}.conflict-group-summary:hover{background:var(--bg-hover)}.conflict-group-summary.error{border-left:3px solid var(--err-border);color:var(--err-text)}.conflict-group-summary.warning{border-left:3px solid var(--warn-border);color:var(--warn-text)}.conflict-group-summary.info{border-left:3px solid var(--info-border);color:var(--info-text)}.conflict-group-title{font-size:13px}.conflict-group-count{font-size:11px;font-weight:700;padding:1px 8px;border-radius:var(--r-pill);background:var(--bg-elevated);color:var(--text-secondary);min-width:24px;text-align:center}.conflict-list{list-style:none;padding:0 var(--sp-2) var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-1)}.conflict-row{display:flex;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);font-size:12px}.severity-error{background:var(--err-bg);border:1px solid var(--err-border)}.severity-warning{background:var(--warn-bg);border:1px solid var(--warn-border)}.severity-info{background:var(--info-bg);border:1px solid var(--info-border)}.conflict-icon{font-size:13px;font-weight:700;flex-shrink:0;width:16px;text-align:center}.severity-error .conflict-icon{color:var(--err-text)}.severity-warning .conflict-icon{color:var(--warn-text)}.severity-info .conflict-icon{color:var(--info-text)}.conflict-body{flex:1;display:flex;flex-direction:column;gap:2px}.conflict-head{display:flex;align-items:center;gap:var(--sp-2)}.conflict-code{font-family:var(--font-mono);font-size:10px;font-weight:700;opacity:.8}.conflict-path{font-family:var(--font-mono);font-size:10px;opacity:.5}.conflict-message{font-size:12px}.conflict-suggestion{font-size:11px;opacity:.7;font-style:italic}.conflict-row.resolved{opacity:.75}.conflict-row.resolved .conflict-message{text-decoration:line-through;text-decoration-color:var(--text-faint);text-decoration-thickness:1px}.conflict-resolved-badge{display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 6px;border-radius:var(--r-pill);background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border);margin-left:auto}.conflict-resolved-badge.accept{color:#6ee7b7;border-color:#6ee7b7}.conflict-resolved-badge.override{color:#93c5fd;border-color:#93c5fd}.conflict-resolved-badge.escalate{color:#fcd34d;border-color:#fcd34d}.conflict-resolved-badge.request_clarification{color:#c4b5fd;border-color:#c4b5fd}.conflict-resolved-meta{margin-top:var(--sp-1);font-size:11px;color:var(--text-muted);display:flex;flex-direction:column;gap:2px}.conflict-resolved-note{font-style:italic;opacity:.85}.conflict-actions{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin-top:var(--sp-2)}.btn-tiny{padding:3px 8px!important;font-size:11px!important;font-weight:500!important;border-radius:var(--r-sm)!important;min-height:22px!important;line-height:1.2!important}.btn-accept{background:#6ee7b71f;border-color:#6ee7b7;color:#6ee7b7}.btn-accept:hover:not(:disabled){background:#6ee7b733}.btn-override{background:#93c5fd1f;border-color:#93c5fd;color:#93c5fd}.btn-override:hover:not(:disabled){background:#93c5fd33}.btn-escalate{background:#fcd34d1f;border-color:#fcd34d;color:#fcd34d}.btn-escalate:hover:not(:disabled){background:#fcd34d33}.btn-clarify{background:#c4b5fd1f;border-color:#c4b5fd;color:#c4b5fd}.btn-clarify:hover:not(:disabled){background:#c4b5fd33}.btn-undo{background:var(--bg-tertiary);border-color:var(--border);color:var(--text-muted)}.conflict-action-form{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin-top:var(--sp-2);align-items:flex-start}.conflict-input,.conflict-textarea{flex:1;min-width:200px;padding:6px 10px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-primary);font-family:var(--font-mono);font-size:12px;resize:vertical}.conflict-input:focus,.conflict-textarea:focus{outline:none;border-color:var(--text-secondary)}.conflict-error{margin-top:var(--sp-1);padding:4px 8px;font-size:11px;color:var(--err-text);background:var(--err-bg);border:1px solid var(--err-border);border-radius:var(--r-sm)}.conflict-progress{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--r-sm);font-size:12px}.conflict-progress-bar{flex:1;height:6px;background:var(--bg-inset);border-radius:var(--r-pill);overflow:hidden}.conflict-progress-fill{height:100%;background:linear-gradient(90deg,#6ee7b7,#93c5fd);transition:width .3s ease-out}.conflict{border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-2);font-size:13px}.conflict.error{background:var(--err-bg);color:var(--err-text);border:1px solid var(--err-border)}.conflict.warning{background:var(--warn-bg);color:var(--warn-text);border:1px solid var(--warn-border)}.conflict.info{background:var(--info-bg);color:var(--info-text);border:1px solid var(--info-border)}.conflict .code{font-family:var(--font-mono);font-size:11px;margin-right:var(--sp-2);opacity:.8}.conflict .path{font-family:var(--font-mono);font-size:11px;opacity:.5}.conflict .suggestion{margin-top:var(--sp-1);font-size:12px;font-style:italic;opacity:.7}.conflict-section{margin-bottom:var(--sp-4)}.conflict-section h3{font-size:14px;margin-bottom:var(--sp-2);display:flex;gap:var(--sp-2);align-items:center}.conflict-section .count{font-size:11px;padding:1px 8px;border-radius:var(--r-pill);background:var(--bg-tertiary);color:var(--text-secondary)}.amendment-diff{display:flex;flex-direction:column;gap:var(--sp-3)}.amendment-header{display:flex;align-items:flex-start;gap:var(--sp-3);flex-wrap:wrap}.amendment-scope{display:inline-block;padding:3px 10px;border-radius:var(--r-pill);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.scope-additive{background:var(--ok-bg);color:var(--ok-text);border:1px solid var(--ok-border)}.scope-reductive{background:var(--err-bg);color:var(--err-text);border:1px solid var(--err-border)}.scope-modifying{background:var(--warn-bg);color:var(--warn-text);border:1px solid var(--warn-border)}.scope-mixed{background:var(--info-bg);color:var(--info-text);border:1px solid var(--info-border)}.scope-none{background:var(--bg-tertiary);color:var(--text-muted);border:1px solid var(--border)}.amendment-summary{font-size:13px;color:var(--text-secondary);flex:1}.diff-empty{padding:var(--sp-3);text-align:center;color:var(--text-muted);font-size:12px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--r-sm)}.diff-group{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-tertiary);overflow:hidden}.diff-group-summary{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-2) var(--sp-3);cursor:pointer;font-size:13px;font-weight:600;list-style:none;transition:background .1s}.diff-group-summary::-webkit-details-marker{display:none}.diff-group-summary:hover{background:var(--bg-hover)}.diff-group-summary.diff-add{border-left:3px solid var(--ok-border)}.diff-group-summary.diff-remove{border-left:3px solid var(--err-border)}.diff-group-summary.diff-modify{border-left:3px solid var(--warn-border)}.diff-group-count{font-size:11px;font-weight:700;padding:1px 8px;border-radius:var(--r-pill);background:var(--bg-elevated);color:var(--text-secondary)}.diff-table{width:100%;font-size:12px;border-top:1px solid var(--border)}.diff-table th{font-size:10px;padding:var(--sp-2) var(--sp-3);background:var(--bg-secondary)}.diff-row{transition:background .1s}.diff-row:hover td{background:var(--bg-hover)}.diff-row.diff-add td{border-left:2px solid var(--ok-border)}.diff-row.diff-remove td{border-left:2px solid var(--err-border)}.diff-row.diff-modify td{border-left:2px solid var(--warn-border)}.diff-path{font-family:var(--font-mono);font-size:11px;color:var(--text-muted)}.diff-field{font-size:12px;color:var(--text-secondary)}.diff-old{font-family:var(--font-mono);font-size:11px;color:var(--text-faint);text-decoration:line-through}.diff-arrow{color:var(--text-faint);text-align:center;width:30px}.diff-new{font-family:var(--font-mono);font-size:11px;color:var(--text-primary);font-weight:600}.diff-delta{font-family:var(--font-mono);font-size:11px;color:var(--text-secondary);text-align:right}.amendment-diff h2{margin-bottom:var(--sp-3)}.amendment-diff .summary{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3);margin-bottom:var(--sp-4)}.amendment-diff .scope-badge{display:inline-block;padding:2px 10px;border-radius:var(--r-pill);font-size:11px;font-weight:600;text-transform:uppercase;margin-left:var(--sp-2)}.amendment-diff .scope-badge.additive{background:var(--ok-bg);color:var(--ok-text);border:1px solid var(--ok-border)}.amendment-diff .scope-badge.reductive{background:var(--err-bg);color:var(--err-text);border:1px solid var(--err-border)}.amendment-diff .scope-badge.modifying{background:var(--warn-bg);color:var(--warn-text);border:1px solid var(--warn-border)}.amendment-diff .scope-badge.mixed{background:var(--info-bg);color:var(--info-text);border:1px solid var(--info-border)}.amendment-diff .change-group{margin-bottom:var(--sp-4)}.amendment-diff .change-group h3{font-size:14px;margin-bottom:var(--sp-2)}.amendment-diff .change{display:grid;grid-template-columns:200px 1fr 1fr 80px;gap:var(--sp-3);padding:var(--sp-1) var(--sp-3);border-bottom:1px solid var(--border);font-size:13px}.amendment-diff .change .path{font-family:var(--font-mono);color:var(--text-secondary)}.amendment-diff .change .old{color:var(--text-faint);font-family:var(--font-mono);text-decoration:line-through}.amendment-diff .change .new{color:var(--text-primary);font-family:var(--font-mono);font-weight:600}.amendment-diff .change .delta{color:var(--text-muted);font-size:12px}.campaign-preview{padding:var(--sp-6);max-width:1440px;margin:0 auto}.preview-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-4);flex-wrap:wrap}.preview-header-left{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.preview-header-left h2{font-size:18px;font-weight:700}.preview-header-actions{display:flex;gap:var(--sp-2)}.preview-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4)}.preview-tree{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4)}.preview-tree h4{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:var(--sp-2)}.preview-tree .muted{font-size:12px;margin-bottom:var(--sp-4)}.preview-actions{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-4)}.preview-actions h4{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.preview-buttons{display:flex;gap:var(--sp-2);flex-wrap:wrap}.preview-result{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3)}.preview-result h5{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:var(--sp-2);text-transform:uppercase;letter-spacing:.04em}.result-box{display:flex;flex-direction:column;gap:var(--sp-1);font-size:13px}.result-box strong{color:var(--text-muted);font-weight:600;font-size:12px}.result-json{background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--r-sm);padding:var(--sp-3);overflow:auto;max-height:300px;max-width:600px;width:600px;font-size:11px;font-family:var(--font-mono);color:var(--text-secondary);margin-top:var(--sp-2);word-break:break-all;white-space:pre-wrap}.result-success{border-color:var(--ok-border);background:var(--ok-bg)}.generated-ids{list-style:none;display:flex;flex-direction:column;gap:var(--sp-1);font-size:12px}.generated-ids li{display:flex;gap:var(--sp-2)}.generated-ids strong{color:var(--text-muted);min-width:100px}.preview-amendment{margin-top:var(--sp-2)}.preview-amendment h5{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:var(--sp-2);text-transform:uppercase;letter-spacing:.04em}.tree-root{list-style:none;padding:0}.tree-children{list-style:none;padding-left:0}.tree-node{margin:var(--sp-1) 0}.tree-row{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);flex-wrap:wrap;transition:background .1s}.tree-row:hover{background:var(--bg-hover)}.tree-type-badge{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:var(--r-sm);flex-shrink:0}.tree-type-campaign .tree-type-badge{background:var(--text-primary);color:var(--bg-primary);font-weight:700}.tree-type-ad .tree-type-badge{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border-strong)}.tree-type-creative .tree-type-badge{background:var(--bg-tertiary);color:var(--text-muted);border:1px solid var(--border-light)}.tree-name{font-size:13px;font-weight:500;color:var(--text-primary)}.tree-tag{font-size:10px;padding:1px 6px;border-radius:var(--r-sm);background:var(--bg-tertiary);color:var(--text-muted);border:1px solid var(--border);font-family:var(--font-mono);white-space:nowrap}.tree-budget{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--text-secondary)}.campaign-preview h2{margin-bottom:var(--sp-4)}.campaign-preview .hierarchy{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);font-family:var(--font-mono);font-size:13px}.campaign-preview .hierarchy ul{list-style:none;padding-left:var(--sp-5)}.campaign-preview .hierarchy>ul{padding-left:0}.campaign-preview .hierarchy li{margin:var(--sp-1) 0}.campaign-preview .hierarchy .level{color:var(--text-faint);margin-right:var(--sp-2)}.campaign-preview .dry-run{margin-top:var(--sp-4)}.campaign-preview .dry-run pre{background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3);overflow:auto;max-height:400px;font-size:12px}.campaign-preview .job-status{margin-top:var(--sp-4);padding:var(--sp-3);background:var(--ok-bg);color:var(--ok-text);border:1px solid var(--ok-border);border-radius:var(--r-md)}.review-pane .source-pane,.review-pane .fields-pane{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);overflow:auto}.review-pane .source-pane iframe,.review-pane .source-pane object{width:100%;height:100%;min-height:600px;border:none;background:#fff}.review-pane .source-pane .no-source{padding:48px;text-align:center;color:var(--text-muted)}.review-pane .fields-pane h3{font-size:16px;margin-bottom:var(--sp-3)}.review-pane .io-header{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);margin-bottom:var(--sp-4);display:flex;justify-content:space-between;align-items:center}.review-pane .io-header .meta{display:flex;gap:var(--sp-4);align-items:center}.review-pane .io-header .io-number{font-family:var(--font-mono);font-size:18px;font-weight:600}.review-pane .io-header .actions{display:flex;gap:var(--sp-2)}.line-items{display:flex;flex-direction:column;gap:var(--sp-2)}.line-item{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3)}.line-item-header{display:flex;justify-content:space-between;cursor:pointer;-webkit-user-select:none;user-select:none}.line-item-header .name{font-weight:500}.line-item-header .meta{color:var(--text-muted);font-size:12px}.line-item-fields{margin-top:var(--sp-3);display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}.status-badge.extracting{background:var(--bg-tertiary);color:var(--text-secondary)}.status-badge.pending{background:var(--bg-elevated);color:var(--text-secondary);border-color:var(--border-light)}.status-badge.approved{background:var(--bg-elevated);color:var(--text-primary);border-color:var(--border-strong)}.status-badge.generating{background:var(--bg-tertiary);color:var(--text-secondary)}.status-badge.live{background:var(--text-primary);color:var(--bg-primary)}.status-badge.error{background:var(--err-bg);color:var(--err-text);border-color:var(--err-border)}.upload-page{padding:var(--sp-6);max-width:1440px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4);width:100%}.upload-left,.upload-right{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4)}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-2);text-align:center;padding:var(--sp-10) var(--sp-6);min-height:280px;border:1.5px dashed var(--border-light);border-radius:var(--r-lg);background:var(--bg-inset);cursor:pointer;transition:border-color .15s,background .15s}.dropzone:hover{border-color:var(--border-strong)}.dropzone-active{border-color:var(--text-secondary);background:var(--bg-tertiary)}.dropzone-icon{font-size:40px;opacity:.7}.dropzone p{font-size:13px;color:var(--text-secondary)}.dropzone-hint{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.dropzone-filename{font-family:var(--font-mono);color:var(--text-primary);font-size:12px;margin-top:var(--sp-2)}.upload-error{margin-top:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);border:1px solid var(--err-border);background:var(--err-bg);color:var(--err-text);font-size:13px}.upload-duplicate-notice{margin-top:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);border:1px solid var(--warn-border);background:var(--warn-bg);color:var(--warn-text);font-size:13px}.upload-duplicate-notice p{margin:4px 0 0}.upload-duplicate-ios{font-size:12px;opacity:.85}.btn-link{background:none;border:none;padding:0;color:var(--text);text-decoration:underline;cursor:pointer;font-size:inherit;font-family:inherit}.btn-link:hover{opacity:.8}.dashboard-clear-filters{align-self:flex-end}.progress-steps{list-style:none;margin-top:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2)}.progress-step{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:var(--bg-tertiary);border:1px solid var(--border);font-size:13px;color:var(--text-muted)}.progress-step-icon{font-size:14px;line-height:1}.progress-step-done{color:var(--text-primary);border-color:var(--border-strong)}.progress-step-processing{color:var(--text-secondary);border-color:var(--border-light)}.progress-step-mock{margin-left:auto;font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--warn-text)}.upload-right-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-3);padding-bottom:var(--sp-2);border-bottom:1px solid var(--border)}.upload-right-header h3{display:flex;align-items:center;gap:var(--sp-2);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.order-count-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--r-pill);background:var(--bg-tertiary);border:1px solid var(--border-light);font-size:10px;font-weight:600;text-transform:none;letter-spacing:normal;color:var(--text-secondary)}.mock-badge{padding:2px 8px;border-radius:var(--r-sm);background:var(--warn-bg);border:1px solid var(--warn-border);color:var(--warn-text);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.json-viewer{font-family:var(--font-mono);font-size:12px;color:var(--text-secondary);background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);max-height:calc(100vh - 320px);overflow:auto;white-space:pre-wrap;word-break:break-word}.confidence-report{grid-column:1 / -1;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4)}.confidence-report-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-3);flex-wrap:wrap}.confidence-report-header h3{display:flex;align-items:center;gap:var(--sp-2);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.confidence-report-controls{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.confidence-report-controls input[type=text]{width:auto;min-width:220px}.confidence-table-wrap{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--r-md);overflow:auto;max-height:420px}.confidence-table{width:100%}.confidence-table th{background:var(--bg-elevated);position:sticky;top:0;z-index:1}.confidence-report-value{font-family:var(--font-mono);font-size:12px;color:var(--text-secondary);max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.confidence-cell{display:inline-flex;align-items:center;gap:var(--sp-2)}@media (max-width: 900px){.review-split,.preview-grid,.upload-page,.field-grid{grid-template-columns:1fr}.dashboard-filters{flex-direction:column}.filter-field{width:100%}.dashboard-header{flex-direction:column;align-items:flex-start}.app-header{flex-wrap:wrap;gap:var(--sp-2)}.app-header-route{display:none}}@media (max-width: 600px){.container,.dashboard,.review-pane,.campaign-preview,.upload-page{padding:var(--sp-3)}.dashboard-table{font-size:12px}th,td{padding:8px 10px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.dedup-log{padding:var(--sp-4);max-width:1400px;margin:0 auto}.dedup-header h2{font-size:1.4rem;margin:0 0 var(--sp-1) 0}.dedup-subtitle{color:var(--c-text-dim);font-size:.85rem;margin:0 0 var(--sp-4) 0}.dedup-stats-row{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-4);flex-wrap:wrap}.dedup-stat-card{display:flex;flex-direction:column;align-items:center;padding:var(--sp-2) var(--sp-3);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-sm);min-width:80px}.dedup-stat-value{font-size:1.4rem;font-weight:700;color:var(--c-text)}.dedup-stat-label{font-size:.7rem;color:var(--c-text-dim);text-transform:uppercase;letter-spacing:.04em;margin-top:2px}.dedup-filters{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-3);align-items:center}.dedup-filter-select{padding:var(--sp-1) var(--sp-2);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-sm);color:var(--c-text);font-size:.85rem;cursor:pointer}.dedup-filter-select:focus{border-color:var(--c-text-dim);outline:none}.dedup-table{width:100%;border-collapse:collapse;font-size:.82rem}.dedup-table thead th{text-align:left;padding:var(--sp-2);border-bottom:2px solid var(--c-border);color:var(--c-text-dim);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.dedup-table tbody td{padding:var(--sp-2);border-bottom:1px solid var(--c-border);vertical-align:middle}.dedup-row-duplicate_file,.dedup-row-duplicate_io{background:color-mix(in srgb,var(--c-warning-bg, rgba(255,200,0,.05)) 50%,transparent)}.dedup-row-overridden{opacity:.7}.dedup-badge{display:inline-block;padding:2px 8px;border-radius:var(--r-sm);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.dedup-badge-accepted{background:color-mix(in srgb,var(--c-success, #2d5a2d) 15%,transparent);color:color-mix(in srgb,var(--c-success, #2d5a2d) 85%,var(--c-text))}.dedup-badge-duplicate_file,.dedup-badge-duplicate_io{background:color-mix(in srgb,var(--c-warning, #8a6d00) 15%,transparent);color:color-mix(in srgb,var(--c-warning, #8a6d00) 85%,var(--c-text))}.dedup-badge-overridden{background:color-mix(in srgb,var(--c-info, #3b5b7a) 15%,transparent);color:color-mix(in srgb,var(--c-info, #3b5b7a) 85%,var(--c-text))}.dedup-override-btn{font-size:.72rem;padding:2px 8px}.dedup-override-reason{font-size:.72rem;color:var(--c-text-dim)}.dedup-pagination{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);justify-content:center}.dedup-page-info{font-size:.82rem;color:var(--c-text-dim)}.dedup-empty{text-align:center;padding:var(--sp-6) var(--sp-4);color:var(--c-text-dim)}.dedup-empty-hint{font-size:.82rem;margin-top:var(--sp-1)}.dedup-loading{text-align:center;padding:var(--sp-4);color:var(--c-text-dim)}.dedup-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.dedup-override-dialog{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);padding:var(--sp-4);max-width:500px;width:90%}.dedup-override-dialog h3{margin:0 0 var(--sp-2) 0}.dedup-override-detail{background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--r-sm);padding:var(--sp-2);margin:var(--sp-2) 0;font-size:.82rem}.dedup-override-detail code{font-size:.8rem}.dedup-override-label{display:block;margin-bottom:var(--sp-3);font-size:.85rem}.dedup-override-label textarea{display:block;width:100%;margin-top:var(--sp-1);padding:var(--sp-2);background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--r-sm);color:var(--c-text);font-family:inherit;font-size:.85rem;resize:vertical}.dedup-override-label textarea:focus{border-color:var(--c-text-dim);outline:none}.dedup-override-actions{display:flex;gap:var(--sp-2);justify-content:flex-end}.lawspeaker-panel{display:flex;flex-direction:column;gap:var(--sp-3)}.compliance-banner{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--r-md);font-size:14px}.compliance-banner strong{font-weight:600}.compliance-pass{background:var(--ok-bg);border-color:var(--ok-border);color:var(--ok-text)}.compliance-warn{background:var(--warn-bg);border-color:var(--warn-border);color:var(--warn-text)}.compliance-block{background:var(--err-bg);border-color:var(--err-border);color:var(--err-text)}.compliance-score{margin-left:auto;font-family:var(--font-mono);font-size:13px;color:var(--text-muted)}.compliance-recommendations{list-style:disc;padding-left:24px;margin-top:var(--sp-2);width:100%;font-size:13px;color:var(--text-secondary)}.compliance-meta{display:flex;flex-wrap:wrap;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);font-size:12px;color:var(--text-muted);background:var(--bg-inset);border-radius:var(--r-sm)}.compliance-policy-version,.compliance-policy-sync,.compliance-audit-id{font-family:var(--font-mono)}.compliance-loading,.compliance-empty{padding:var(--sp-4);text-align:center;color:var(--text-muted);background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--r-md);font-size:13px}.compliance-error{padding:var(--sp-3) var(--sp-4);background:var(--err-bg);border:1px solid var(--err-border);border-radius:var(--r-md);color:var(--err-text)}.compliance-error p{margin-top:var(--sp-1);font-size:13px}.compliance-hint{color:var(--text-muted);font-size:12px;font-style:italic}.compliance-platforms,.compliance-jurisdictions{display:flex;flex-direction:column;gap:var(--sp-2)}.compliance-platforms h5,.compliance-jurisdictions h5{font-size:13px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:var(--sp-1)}.compliance-platform{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-tertiary);overflow:hidden}.compliance-platform-pass{border-left:3px solid var(--ok-border)}.compliance-platform-warn{border-left:3px solid var(--warn-border)}.compliance-platform-block{border-left:3px solid var(--err-border)}.compliance-platform-header{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);cursor:pointer;font-size:14px;transition:background .1s}.compliance-platform-header:hover{background:var(--bg-hover)}.platform-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--r-sm);background:var(--bg-elevated);color:var(--text-secondary);font-size:11px;font-weight:600;font-family:var(--font-mono)}.platform-name{font-weight:500}.verdict-label{text-transform:uppercase;font-size:11px;letter-spacing:.5px;padding:2px 6px;border-radius:var(--r-sm);font-weight:600}.verdict-label-pass{background:var(--ok-bg);color:var(--ok-text);border:1px solid var(--ok-border)}.verdict-label-warn{background:var(--warn-bg);color:var(--warn-text);border:1px solid var(--warn-border)}.verdict-label-block{background:var(--err-bg);color:var(--err-text);border:1px solid var(--err-border)}.issue-count{color:var(--text-muted);font-size:12px}.compliance-platform-issues{padding:var(--sp-2) var(--sp-3) var(--sp-3) var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-1)}.compliance-no-issues{padding:var(--sp-2);color:var(--text-muted);font-size:13px;font-style:italic}.compliance-issue{border:1px solid var(--border-light);border-radius:var(--r-sm);background:var(--bg-secondary);overflow:hidden}.compliance-issue-block{border-left:3px solid var(--err-border)}.compliance-issue-warn{border-left:3px solid var(--warn-border)}.compliance-issue-info{border-left:3px solid var(--info-border)}.compliance-issue-header{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2);cursor:pointer;font-size:13px;transition:background .1s}.compliance-issue-header:hover{background:var(--bg-hover)}.issue-badge{text-transform:uppercase;font-size:10px;letter-spacing:.5px;padding:2px 5px;border-radius:var(--r-sm);font-weight:600;flex-shrink:0}.issue-block{background:var(--err-bg);color:var(--err-text);border:1px solid var(--err-border)}.issue-warning{background:var(--warn-bg);color:var(--warn-text);border:1px solid var(--warn-border)}.issue-info{background:var(--info-bg);color:var(--info-text);border:1px solid var(--info-border)}.issue-code{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);flex-shrink:0}.issue-message{flex:1;color:var(--text-secondary)}.compliance-issue-body{padding:var(--sp-2) var(--sp-3) var(--sp-3) var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2);font-size:12px;color:var(--text-muted);border-top:1px solid var(--border)}.issue-policy a{color:var(--accent);text-decoration:underline}.issue-verified,.issue-confidence{font-family:var(--font-mono)}.override-form{margin-top:var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-2)}.override-form textarea{width:100%;padding:var(--sp-2);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-inset);color:var(--text-primary);font-family:inherit;font-size:13px;resize:vertical}.override-form-actions{display:flex;gap:var(--sp-2)}.btn-warn{align-self:flex-start}.override-confirmed{display:flex;align-items:center;gap:var(--sp-1);padding:var(--sp-2);background:var(--ok-bg);border:1px solid var(--ok-border);border-radius:var(--r-sm);color:var(--ok-text);font-size:12px}.override-blocked-notice{padding:var(--sp-2);background:var(--err-bg);border:1px solid var(--err-border);border-radius:var(--r-sm);color:var(--err-text);font-size:12px;font-style:italic}.compliance-jurisdiction{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-tertiary)}.compliance-jurisdiction-block{border-left:3px solid var(--err-border)}.compliance-jurisdiction-warn{border-left:3px solid var(--warn-border)}.jurisdiction-name{font-weight:500;text-transform:capitalize}.compliance-jurisdiction-reason{margin-top:var(--sp-2);width:100%;font-size:12px;color:var(--text-muted)}.compliance-last-checked{text-align:right;font-size:12px;color:var(--text-muted);font-style:italic;padding:var(--sp-2)}.review-bottom-grid{display:grid;grid-template-columns:1fr;gap:var(--sp-3)}@media (max-width: 900px){.review-bottom-grid{grid-template-columns:1fr}}.compliance-resync{margin-top:var(--sp-2)}.overview-page{padding:var(--sp-6);max-width:1400px;margin:0 auto;width:100%}.overview-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-6)}.overview-header h1{font-size:22px}.overview-header-actions{display:flex;gap:var(--sp-2)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--sp-3);margin-bottom:var(--sp-6)}.kpi-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-5);cursor:pointer;transition:border-color .15s,background .15s}.kpi-card:hover{border-color:var(--border-strong);background:var(--bg-tertiary)}.kpi-pending{border-color:var(--warn-border)}.kpi-value{font-family:var(--font-heading);font-size:32px;font-weight:700;color:var(--text-primary);line-height:1.1}.kpi-label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-top:var(--sp-1)}.kpi-sub{font-size:11px;color:var(--text-faint);margin-top:var(--sp-1)}.overview-section{margin-bottom:var(--sp-6)}.section-title{font-size:14px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--sp-3)}.status-bar{display:flex;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--border);min-height:40px}.status-bar-segment{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--sp-2) var(--sp-3);min-width:0}.status-bar-label{font-size:11px;text-transform:uppercase;letter-spacing:.04em}.status-bar-count{font-family:var(--font-mono);font-size:16px;font-weight:600}.bar-approved{background:var(--ok-bg);color:var(--ok-text);border-right:1px solid var(--border)}.bar-pending{background:var(--warn-bg);color:var(--warn-text);border-right:1px solid var(--border)}.bar-draft{background:var(--bg-elevated);color:var(--text-secondary);border-right:1px solid var(--border)}.bar-rejected{background:var(--err-bg);color:var(--err-text)}.status-bar-empty{width:100%;text-align:center;color:var(--text-faint);padding:var(--sp-3);font-size:13px}.overview-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--sp-4);margin-bottom:var(--sp-6)}@media (max-width: 900px){.overview-grid{grid-template-columns:1fr}}.overview-panel{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4)}.overview-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-3)}.overview-panel-link{font-size:12px;color:var(--text-muted);text-decoration:none}.overview-panel-link:hover{color:var(--text-secondary)}.overview-empty{color:var(--text-faint);padding:var(--sp-4);text-align:center;font-size:13px}.overview-table{font-size:12px}.overview-table th{font-size:10px}.overview-table td{padding:8px 10px}.overview-row{cursor:pointer;transition:background .12s}.overview-row:hover{background:var(--bg-tertiary)}.activity-list{list-style:none;display:flex;flex-direction:column;gap:0}.activity-item{display:grid;grid-template-columns:auto 1fr auto;gap:var(--sp-3);align-items:center;padding:var(--sp-2) 0;border-bottom:1px solid var(--border);font-size:12px}.activity-item:last-child{border-bottom:none}.activity-action{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);white-space:nowrap}.activity-summary{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-time{font-size:11px;white-space:nowrap}.campaign-mini-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-3)}.mini-stat{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);text-align:center}.mini-stat-value{display:block;font-family:var(--font-mono);font-size:24px;font-weight:600;color:var(--text-primary)}.mini-stat-label{display:block;font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-top:var(--sp-1)}@media (max-width: 600px){.campaign-mini-grid{grid-template-columns:repeat(2,1fr)}}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-5);padding:var(--sp-6) var(--sp-6) 0;max-width:1400px;margin-left:auto;margin-right:auto}.page-header h1{font-size:22px}.page-header-actions{display:flex;gap:var(--sp-2);align-items:center}.campaigns-page{padding:0 var(--sp-6) var(--sp-6);max-width:1400px;margin:0 auto;width:100%}.cell-link{color:var(--text-secondary);text-decoration:none}.cell-link:hover{color:var(--text-primary);text-decoration:underline}.audit-log-page{padding:0 var(--sp-6) var(--sp-6);max-width:1400px;margin:0 auto;width:100%}.settings-page{padding:0 var(--sp-6) var(--sp-6);max-width:1200px;margin:0 auto;width:100%}.settings-section{margin-bottom:var(--sp-8)}.section-description{color:var(--text-muted);font-size:13px;margin-bottom:var(--sp-4);max-width:600px}.settings-empty{color:var(--text-faint);padding:var(--sp-4);background:var(--bg-secondary);border:1px dashed var(--border-light);border-radius:var(--r-md);font-size:13px}.settings-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--sp-3)}.settings-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4)}.settings-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-3)}.settings-card-title{font-family:var(--font-heading);font-size:15px;font-weight:600}.settings-card-body{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-3)}.settings-card-row{display:flex;justify-content:space-between;align-items:center;font-size:13px}.settings-card-row .mono{font-size:12px}.settings-card-actions{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.settings-status-badge{font-size:11px;font-weight:600;padding:3px 8px;border-radius:var(--r-pill);text-transform:uppercase;letter-spacing:.04em}.status-ok{background:var(--ok-bg);color:var(--ok-text);border:1px solid var(--ok-border)}.status-warn{background:var(--warn-bg);color:var(--warn-text);border:1px solid var(--warn-border)}.status-off{background:var(--bg-inset);color:var(--text-faint);border:1px solid var(--border)}.test-result{font-size:12px}.test-ok{color:var(--ok-text)}.test-fail{color:var(--err-text)}.badge-gray{background:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--border-light)}.badge-blue{background:var(--info-bg);color:var(--info-text);border:1px solid var(--info-border)}.badge-green{background:var(--ok-bg);color:var(--ok-text);border:1px solid var(--ok-border)}.badge-red{background:var(--err-bg);color:var(--err-text);border:1px solid var(--err-border)}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg, #0a0a0a);padding:2rem}.login-card{background:var(--surface, #1a1a1a);border:1px solid var(--border, #333);border-radius:12px;padding:2.5rem;width:100%;max-width:400px;box-shadow:0 8px 32px #0006}.login-logo{display:flex;align-items:center;gap:.5rem;font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;color:var(--text, #fff)}.login-logo-mark{width:28px;height:28px}.login-title{font-size:1.5rem;font-weight:600;margin-bottom:.25rem;color:var(--text, #fff)}.login-subtitle{font-size:.875rem;color:var(--muted, #999);margin-bottom:2rem}.login-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444;padding:.75rem 1rem;border-radius:6px;margin-bottom:1.5rem;font-size:.875rem}.login-form{display:flex;flex-direction:column;gap:1.25rem}.login-field{display:flex;flex-direction:column;gap:.375rem}.login-field span{font-size:.8125rem;font-weight:500;color:var(--muted, #999);text-transform:uppercase;letter-spacing:.05em}.login-field input{background:var(--input-bg, #111);border:1px solid var(--border, #333);border-radius:6px;padding:.625rem .75rem;color:var(--text, #fff);font-size:.9375rem;outline:none;transition:border-color .15s}.login-field input:focus{border-color:var(--accent, #6366f1)}.login-submit{width:100%;padding:.75rem;font-size:.9375rem;font-weight:600;margin-top:.5rem}.app-header-right{display:flex;align-items:center;gap:.75rem}.policies-page{display:flex;flex-direction:column;gap:var(--sp-4, 1rem)}.policies-actions{display:flex;align-items:center;gap:var(--sp-3, .75rem)}.policies-run-msg{color:var(--text-muted, #999);font-size:13px}.policies-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--sp-3, .75rem)}.policies-kpi{border:1px solid var(--border, #333);border-radius:var(--r-md, 8px);padding:var(--sp-3, .75rem) var(--sp-4, 1rem);background:var(--bg-card, #141414)}.policies-kpi-value{font-size:1.5rem;font-weight:600;display:flex;align-items:center;font-variant-numeric:tabular-nums}.policies-kpi-label{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #999);margin-top:4px}.policies-kpi-sub{font-size:12px;color:var(--text-muted, #777);margin-top:2px}.policies-filters{display:flex;gap:var(--sp-2, .5rem);flex-wrap:wrap}.policies-list{display:flex;flex-direction:column;gap:var(--sp-2, .5rem)}.policies-row{border:1px solid var(--border, #333);border-radius:var(--r-md, 8px);background:var(--bg-card, #141414)}.policies-row-block{border-left:3px solid var(--err-text, #f87171)}.policies-row-warn{border-left:3px solid var(--warn-text, #fbbf24)}.policies-row-check_error{border-left:3px solid var(--text-muted, #999)}.policies-row-pass{border-left:3px solid var(--ok-text, #34d399)}.policies-row-main{display:flex;align-items:center;gap:var(--sp-3, .75rem);padding:var(--sp-3, .75rem) var(--sp-4, 1rem);cursor:pointer}.policies-row-main:hover{background:var(--bg-hover, #1a1a1a)}.policies-io{font-family:var(--font-mono, monospace);font-size:13px;min-width:140px}.policies-title{flex:1;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.policies-flags{font-size:12px;color:var(--text-muted, #999);white-space:nowrap}.policies-checked{font-size:12px;color:var(--text-muted, #777);white-space:nowrap}.policies-row-tags{display:flex;flex-wrap:wrap;gap:6px;padding:0 var(--sp-4, 1rem) var(--sp-3, .75rem) var(--sp-4, 1rem)}.policies-tag{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--border, #333);color:var(--text-muted, #bbb);text-transform:capitalize}.policies-tag-muted{opacity:.75}.policies-row-detail{padding:var(--sp-3, .75rem) var(--sp-4, 1rem);border-top:1px solid var(--border, #2a2a2a)}.policies-row-actions{margin-top:var(--sp-3, .75rem)}.policies-loading,.policies-empty,.policies-more{color:var(--text-muted, #999);font-size:14px;padding:var(--sp-4, 1rem);text-align:center}.compliance-drawer-toggle{position:fixed;right:0;top:calc(50% + (var(--app-header-h) / 2));transform:translateY(-50%);width:30px;min-height:44px;padding:var(--sp-3) 0;display:flex;align-items:center;justify-content:center;line-height:1;color:var(--text-muted);background:var(--bg-elevated);border:1px solid var(--border);border-right:none;border-radius:var(--r-md) 0 0 var(--r-md);cursor:pointer;z-index:45;transition:right .2s ease,background .15s ease,color .15s ease}.compliance-drawer-toggle-label{writing-mode:vertical-rl;font-family:var(--font-heading);font-size:16px;font-weight:600;white-space:nowrap}.compliance-drawer-toggle:hover:not(:disabled){background:var(--bg-hover);color:var(--accent)}.compliance-drawer-toggle:disabled{opacity:.4;cursor:not-allowed}.compliance-drawer-toggle-open{right:420px}.compliance-drawer{position:fixed;top:var(--app-header-h);right:0;height:calc(100vh - var(--app-header-h));width:420px;max-width:92vw;background:var(--bg-secondary);border-left:1px solid var(--border);box-shadow:-8px 0 24px #00000073;transform:translate(100%);transition:transform .22s ease;z-index:50;display:flex;flex-direction:column;visibility:hidden}.compliance-drawer-open{transform:translate(0);visibility:visible}.compliance-drawer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-5) var(--sp-5) var(--sp-4);border-bottom:1px solid var(--border);flex-shrink:0}.compliance-drawer-title{font-size:16px;margin:var(--sp-2) 0 0}.compliance-drawer-sub{margin:var(--sp-1) 0 0;font-size:13px;color:var(--text-muted)}.compliance-drawer-close{flex-shrink:0}.compliance-drawer-body{padding:var(--sp-5);overflow-y:auto;flex:1}.compliance-drawer .compliance-issue-header{flex-wrap:wrap}.compliance-drawer .compliance-issue-header .issue-message{flex:1 0 100%;min-width:0;overflow-wrap:anywhere}.compliance-drawer-actions{margin-top:var(--sp-5);padding-top:var(--sp-4);border-top:1px solid var(--border)}@media (min-width: 1100px){.review-pane:has(.compliance-drawer-open){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) var(--drawer-w);gap:0 var(--sp-8);grid-template-rows:auto auto;align-content:start;max-width:none;margin:0;padding:var(--sp-5) 0 var(--sp-5) var(--sp-5)}.review-pane:has(.compliance-drawer-open)>.review-header{grid-column:1 / 3}.review-pane:has(.compliance-drawer-open)>.alert,.review-pane:has(.compliance-drawer-open)>.reject-panel{grid-column:1 / 3}.review-pane:has(.compliance-drawer-open)>.review-split,.review-pane:has(.compliance-drawer-open)>.review-bottom-grid{grid-column:1 / 3;align-self:start}.review-pane:has(.compliance-drawer-open) .compliance-drawer{border-left:none;border-radius:0;box-shadow:none}.review-pane:has(.compliance-drawer-open) .compliance-drawer-toggle{display:none}}.policies-row-selected{border-color:var(--accent)}
