/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--radius-md:.375rem;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer components;.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.my-2\.5{margin-block:calc(var(--spacing) * 2.5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.h-full{height:100%}.max-h-\[240px\]{max-height:240px}.max-h-\[300px\]{max-height:300px}.max-h-\[400px\]{max-height:400px}.max-h-\[500px\]{max-height:500px}.min-h-\[70px\]{min-height:70px}.min-h-screen{min-height:100vh}.w-24{width:calc(var(--spacing) * 24)}.w-\[80px\]{width:80px}.w-\[100px\]{width:100px}.w-\[160px\]{width:160px}.w-\[180px\]{width:180px}.w-full{width:100%}.max-w-\[200px\]{max-width:200px}.min-w-\[120px\]{min-width:120px}.min-w-\[140px\]{min-width:140px}.min-w-\[180px\]{min-width:180px}.min-w-\[200px\]{min-width:200px}.flex-1{flex:1}.flex-none{flex:none}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0{gap:calc(var(--spacing) * 0)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-y-scroll{overflow-y:scroll}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-l-md{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.rounded-r-md{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[\#58a6ff\]{border-color:#58a6ff}.border-\[\#21262d\]{border-color:#21262d}.border-\[\#30363d\]{border-color:#30363d}.border-\[\#238636\]{border-color:#238636}.border-\[\#da3633\]{border-color:#da3633}.bg-\[\#0d1117\]{background-color:#0d1117}.bg-\[\#1f6feb22\]{background-color:#1f6feb22}.bg-\[\#1f6feb33\]{background-color:#1f6feb33}.bg-\[\#1f6feb\]{background-color:#1f6feb}.bg-\[\#58a6ff\]{background-color:#58a6ff}.bg-\[\#161b22\]{background-color:#161b22}.bg-\[\#010409\]{background-color:#010409}.bg-\[\#21262d\]{background-color:#21262d}.bg-\[\#30363d\]{background-color:#30363d}.bg-\[\#238636\]{background-color:#238636}.bg-\[\#d29922\]{background-color:#d29922}.bg-\[\#da3633\]{background-color:#da3633}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.leading-7{--tw-leading:calc(var(--spacing) * 7);line-height:calc(var(--spacing) * 7)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#0d1117\]{color:#0d1117}.text-\[\#3fb950\]{color:#3fb950}.text-\[\#8b949e\]{color:#8b949e}.text-\[\#58a6ff\]{color:#58a6ff}.text-\[\#c9d1d9\]{color:#c9d1d9}.text-\[\#d29922\]{color:#d29922}.text-\[\#da3633\]{color:#da3633}.text-\[\#f85149\]{color:#f85149}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.accent-\[\#58a6ff\]{accent-color:#58a6ff}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.file\:mr-2::file-selector-button{margin-right:calc(var(--spacing) * 2)}.file\:cursor-pointer::file-selector-button{cursor:pointer}.file\:rounded-md::file-selector-button{border-radius:var(--radius-md)}.file\:border::file-selector-button{border-style:var(--tw-border-style);border-width:1px}.file\:border-\[\#30363d\]::file-selector-button{border-color:#30363d}.file\:bg-\[\#21262d\]::file-selector-button{background-color:#21262d}.file\:px-3::file-selector-button{padding-inline:calc(var(--spacing) * 3)}.file\:py-1::file-selector-button{padding-block:calc(var(--spacing) * 1)}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:text-\[\#c9d1d9\]::file-selector-button{color:#c9d1d9}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media(hover:hover){.hover\:border-\[\#58a6ff\]:hover{border-color:#58a6ff}.hover\:bg-\[\#2ea043\]:hover{background-color:#2ea043}.hover\:bg-\[\#484f58\]:hover{background-color:#484f58}.hover\:bg-\[\#21262d\]:hover{background-color:#21262d}.hover\:bg-\[\#f85149\]:hover{background-color:#f85149}.hover\:text-\[\#c9d1d9\]:hover{color:#c9d1d9}.hover\:opacity-85:hover{opacity:.85}}.focus\:border-\[\#58a6ff\]:focus{border-color:#58a6ff}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--font-mono:"SF Mono", "Fira Code", "Cascadia Code", monospace;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-heading:"JetBrains Mono", var(--font-mono);--font-body:"IBM Plex Sans", var(--font-sans);--font-data:"JetBrains Mono", var(--font-mono)}:root,[data-theme=dark]{--bg-primary:#0f1117;--bg-secondary:#161922;--bg-tertiary:#1c1f2e;--bg-surface:#232738;--text-primary:#e8eaf0;--text-secondary:#8b8fa3;--text-muted:#565b6e;--accent-primary:#4f8cff;--accent-success:#34d399;--accent-warning:#fbbf24;--accent-error:#f87171;--accent-info:#818cf8;--border-subtle:#1e2235;--border-active:#2d3352;--shadow-color:#0000004d;--bg:var(--bg-primary);--surface:var(--bg-secondary);--surface2:var(--bg-tertiary);--border:var(--border-subtle);--text:var(--text-primary);--text-dim:var(--text-secondary);--accent:var(--accent-primary);--green:var(--accent-success);--yellow:var(--accent-warning);--red:var(--accent-error);--purple:var(--accent-info)}[data-theme=light]{--bg-primary:#f5f6fa;--bg-secondary:#fff;--bg-tertiary:#edf0f5;--bg-surface:#e8ecf2;--text-primary:#1a1d2e;--text-secondary:#5a5f73;--text-muted:#9ca0b0;--accent-primary:#2563eb;--accent-success:#059669;--accent-warning:#d97706;--accent-error:#dc2626;--accent-info:#6366f1;--border-subtle:#d8dce6;--border-active:#b0b6c8;--shadow-color:#00000014;--bg:var(--bg-primary);--surface:var(--bg-secondary);--surface2:var(--bg-tertiary);--border:var(--border-subtle);--text:var(--text-primary);--text-dim:var(--text-secondary);--accent:var(--accent-primary);--green:var(--accent-success);--yellow:var(--accent-warning);--red:var(--accent-error);--purple:var(--accent-info)}body{font-family:var(--font-body);background:var(--bg);color:var(--text);flex-direction:column;height:100vh;font-size:13px;line-height:1.5;display:flex;overflow:hidden}#root{flex-direction:column;height:100vh;display:flex;overflow:hidden}h1,h2,h3{font-family:var(--font-heading);letter-spacing:-.01em}h1{font-size:24px;font-weight:700}h2{font-size:18px;font-weight:600}h3{font-size:13px;font-weight:600}.data-table,.mono,code,pre,.event-body,.skill-card-body,.skill-card-elapsed,.event-time,.prompt-section-content{font-family:var(--font-data)}header{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:6px 16px;display:grid}.header-left{align-items:center;gap:10px;display:flex}.header-right{align-items:center;gap:8px;display:flex}.user-badge{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:6px;align-items:center;gap:6px;padding:3px 8px;font-size:12px;display:flex}.user-badge-name{color:var(--text-primary);font-weight:500}.user-badge-role{text-transform:uppercase;letter-spacing:.04em;border-radius:3px;padding:1px 5px;font-size:10px}.user-badge-role.role-owner{color:var(--accent-primary);background:#4f8cff26}.user-badge-role.role-annotator{color:var(--accent-success);background:#34d39926}.btn-logout{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;padding:2px;transition:color .15s;display:flex}.btn-logout:hover{color:var(--accent-error)}.btn-theme-toggle{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;padding:4px;transition:color .15s,border-color .15s;display:flex}.btn-theme-toggle:hover{color:var(--text);border-color:var(--border-active)}header h1{color:var(--accent);letter-spacing:.05em;font-size:14px;font-weight:700}header h1.clickable{cursor:pointer;transition:opacity .15s}header h1.clickable:hover{opacity:.7}.btn-dashboard-icon{border:1px solid var(--border-subtle);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:flex}.btn-dashboard-icon:hover{color:var(--accent-primary);border-color:var(--accent-primary);background:#4f8cff14}.project-name{color:var(--text-dim);font-size:11px;font-family:var(--font-data)}.pipeline-status-badge{text-transform:uppercase;font-size:10px;font-weight:600;font-family:var(--font-data);letter-spacing:.03em;border-radius:4px;padding:2px 8px}.pipeline-status-badge.phase-research{color:var(--accent);background:#4f8cff26}.pipeline-status-badge.phase-waiting{color:var(--yellow);background:#fbbf2426}.pipeline-status-badge.phase-extraction{color:var(--purple);background:#818cf826}.pipeline-status-badge.phase-complete{color:var(--green);background:#34d39926}.btn-publish-header{border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:4px;padding:4px 12px;font-size:11px;font-weight:600;transition:all .15s}.btn-publish-header:hover{background:var(--accent);color:#000}.btn-publish-header:disabled{opacity:.5;cursor:default}.tabs{gap:2px;display:flex}.tab{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 14px;font-size:13px;transition:all .15s;position:relative}.tab:hover{color:var(--text);background:var(--surface2)}.tab.active{color:var(--accent);background:var(--surface2);font-weight:600}.tab.attention:after{content:"";background:var(--yellow);border-radius:50%;width:8px;height:8px;animation:1.5s ease-in-out infinite tabPulse;position:absolute;top:6px;right:6px}@keyframes tabPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.app-body{flex:1;display:flex;overflow:hidden}.app-sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:220px;transition:width .2s ease-out;display:flex;overflow-y:auto}.app-sidebar.collapsed{width:36px;overflow:hidden}.sidebar-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.sidebar-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-size:11px;font-weight:700}.sidebar-toggle{background:var(--bg);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:4px;padding:4px 8px;font-size:16px;line-height:1}.sidebar-toggle:hover{color:var(--text);background:var(--surface2);border-color:var(--text-dim)}.sidebar-section{border-bottom:1px solid var(--border);padding:10px 12px}.sidebar-section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted,var(--text-dim));align-items:center;margin-bottom:8px;font-size:10px;font-weight:700;display:flex}.sidebar-health-cards{grid-template-columns:1fr 1fr 1fr;gap:6px;display:grid}.health-card{background:var(--bg);border:1px solid var(--border);border-radius:4px;flex-direction:column;align-items:center;padding:6px 4px;display:flex}.health-value{font-family:var(--font-data);color:var(--text);font-size:15px;font-weight:700}.health-label{text-transform:uppercase;color:var(--text-dim);letter-spacing:.03em;font-size:9px}.sidebar-skill-progress{font-family:var(--font-data);color:var(--text-dim);text-transform:none;letter-spacing:0;margin-left:auto;font-size:10px}.sidebar-skill-progress .progress-running{color:var(--yellow)}.sidebar-skill-progress .progress-failed{color:var(--red)}.sidebar-skill-phase{margin-bottom:8px}.sidebar-skill-phase:last-child{margin-bottom:0}.sidebar-phase-label{font-size:10px;font-family:var(--font-data);color:var(--text-dim);align-items:center;gap:4px;margin-bottom:1px;padding:3px 6px;display:flex}.sidebar-skill-phase.phase-done .sidebar-phase-label{color:var(--green)}.phase-check{color:var(--green);font-size:9px}.phase-count{opacity:.7;margin-left:auto}.sidebar-skills{flex-direction:column;gap:1px;display:flex}.sidebar-skill-item{border-radius:3px;align-items:center;gap:6px;padding:4px 6px 4px 14px;font-size:11px;display:flex}.sidebar-skill-item:hover{background:var(--bg)}.skill-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.skill-dot.pending{border:1px solid var(--text-dim);background:0 0}.skill-dot.running{background:var(--yellow);animation:1s infinite pulse}.skill-dot.success{background:var(--green)}.skill-dot.failed{background:var(--red)}.skill-dot.skipped{background:var(--text-dim)}.sidebar-skill-label{color:var(--text-dim);flex:1}.sidebar-skill-item.status-running .sidebar-skill-label,.sidebar-skill-item.status-success .sidebar-skill-label{color:var(--text)}.sidebar-skill-item.status-failed .sidebar-skill-label{color:var(--red);opacity:.8}.sidebar-skill-elapsed{font-family:var(--font-data);color:var(--text-muted,var(--text-dim));font-size:10px}.sidebar-files{flex-direction:column;gap:2px;display:flex}.sidebar-file-item{border-radius:3px;justify-content:space-between;align-items:center;padding:2px 4px;font-size:11px;display:flex}.sidebar-file-item:hover{background:var(--bg)}.sidebar-file-name{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-data);flex:1;overflow:hidden}.sidebar-file-pages{font-family:var(--font-data);color:var(--text-muted,var(--text-dim));flex-shrink:0;font-size:10px}.tab-panels{flex-direction:column;flex:1;display:flex;overflow:hidden}.tab-content{flex:1;overflow:hidden}.tab-content.active{display:flex}.agent-container{width:100%;height:100%;display:flex}.agent-sidebar{border-right:1px solid var(--border);background:var(--surface);flex-shrink:0;width:220px;padding:12px;overflow-y:auto}.agent-sidebar h3{text-transform:uppercase;color:var(--text-dim);letter-spacing:.5px;margin-bottom:10px;font-size:12px}.skill-item{border-radius:4px;align-items:center;gap:8px;margin-bottom:2px;padding:6px 8px;font-size:13px;display:flex}.skill-item .dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.skill-item .dot.pending{background:var(--border)}.skill-item .dot.running{background:var(--yellow);animation:1s infinite pulse}.skill-item .dot.success{background:var(--green)}.skill-item .dot.failed{background:var(--red)}.skill-item .dot.skipped{background:var(--text-dim)}.skill-item .skill-summary{color:var(--text-dim);margin-top:1px;margin-left:16px;font-size:11px}@keyframes pulse{50%{opacity:.5}}.agent-main{flex-direction:column;flex:1;display:flex;overflow:hidden}.agent-phase-banner{background:var(--surface2);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;min-height:42px;padding:10px 16px;display:flex}.phase-icon{flex-shrink:0;font-size:16px}.phase-text{color:var(--text);flex:1;font-size:13px;font-weight:500}.agent-feed{flex-direction:column;flex:1;gap:8px;padding:12px;display:flex;overflow-y:auto}.feed-placeholder{color:var(--text-dim);text-align:center;margin-top:40px;font-size:14px}.event-card{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:10px 12px;font-size:13px}.event-card .event-header{align-items:center;gap:8px;margin-bottom:4px;display:flex}.event-card .event-type{text-transform:uppercase;border-radius:3px;padding:2px 6px;font-size:11px;font-weight:600}.event-type.turn_start{color:var(--accent);background:#58a6ff26}.event-type.thinking{color:var(--purple);background:#bc8cff26}.event-type.tool_call{color:var(--yellow);background:#d2992226}.event-type.tool_result,.event-type.finalize{color:var(--green);background:#3fb95026}.event-type.fallback{color:var(--red);background:#f8514926}.event-type.warning{color:var(--yellow);background:#d2992226}.event-card .event-time{color:var(--text-dim);font-size:11px;font-family:var(--font-mono)}.event-card .event-body{color:var(--text-dim);white-space:pre-wrap;line-height:1.5;font-family:var(--font-mono);font-size:12px}.skill-card{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:10px 12px;font-size:13px}.skill-card-running{border-left:3px solid var(--yellow)}.skill-card-success{border-left:3px solid var(--green)}.skill-card-failed{border-left:3px solid var(--red)}.skill-card-header{align-items:center;gap:8px;display:flex}.skill-card-icon{flex-shrink:0;font-size:14px}.skill-card-success .skill-card-icon{color:var(--green)}.skill-card-failed .skill-card-icon{color:var(--red)}.skill-card-name{font-size:13px;font-weight:600}.skill-card-status{text-transform:uppercase;border-radius:3px;padding:1px 6px;font-size:11px;font-weight:600}.skill-card-status.running{color:var(--yellow);background:#d2992226}.skill-card-status.success{color:var(--green);background:#3fb95026}.skill-card-status.failed{color:var(--red);background:#f8514926}.skill-card-progress{font-family:var(--font-data);color:var(--yellow);font-size:11px;font-weight:600}.skill-card-progress .skill-card-detail{color:var(--text-dim);font-weight:400}.skill-card-elapsed{font-family:var(--font-mono);color:var(--text-dim);margin-left:auto;font-size:12px}.skill-card-body{color:var(--text-dim);font-size:12px;font-family:var(--font-mono);margin-top:4px}.reasoning-block{font-size:12px}.reasoning-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text-dim);padding:4px 0;font-size:12px;list-style:none}.reasoning-toggle:hover{color:var(--purple)}.split-divider{background:var(--border);cursor:col-resize;flex-shrink:0;width:4px}.split-divider:hover{background:var(--accent)}.page-nav{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:8px 12px;display:flex}.nav-btn{background:var(--surface2);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:4px;padding:4px 10px;font-size:12px}.nav-btn:hover:not(:disabled){border-color:var(--accent)}.nav-btn:disabled{opacity:.4;cursor:default}.page-nav select{background:var(--surface2);border:1px solid var(--border);color:var(--text);border-radius:4px;max-width:300px;padding:4px 8px;font-size:12px}.page-info{color:var(--text-dim);margin-left:auto;font-size:12px}.pdf-container{background:var(--bg-primary);flex:1;justify-content:center;padding:8px;display:flex;position:relative;overflow:auto}.pdf-container canvas{max-width:100%;height:auto}.zoom-controls{z-index:10;gap:4px;display:flex;position:absolute;bottom:12px;right:12px}.zoom-controls button{border:1px solid var(--border);background:var(--surface);width:32px;height:32px;color:var(--text);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;font-size:16px;display:flex}.zoom-controls button:hover{background:var(--border)}.zoom-controls .zoom-level{height:32px;color:var(--text-dim);background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:0 8px;font-size:12px;line-height:32px}.data-header{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.data-header h3{font-size:13px;font-weight:600}.data-header select{background:var(--surface2);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:3px 6px;font-size:12px}.data-panel{flex:1;padding:8px;overflow-y:auto}.data-table{border-collapse:collapse;width:100%;font-size:12px;font-family:var(--font-mono)}.data-table thead{z-index:1;position:sticky;top:0}.data-table th{background:var(--surface);color:var(--text-dim);text-align:left;border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;padding:6px 8px;font-size:11px;font-weight:600}.data-table td{border-bottom:1px solid var(--border);vertical-align:top;padding:5px 8px}.data-table tr:hover td{background:var(--surface2)}.data-table .qty{text-align:right;font-weight:600}.data-table .dim,.text-dim{color:var(--text-dim)}.text-center{text-align:center}.mono{font-family:var(--font-mono)}.data-table tfoot td{background:var(--surface);border-top:2px solid var(--border);font-weight:600}.section-header{background:var(--surface2);border:1px solid var(--border);color:var(--accent);border-radius:4px;justify-content:space-between;align-items:center;margin:8px 0 4px;padding:8px 10px;font-size:13px;font-weight:600;display:flex}.research-container{width:100%;height:100%;display:flex}.research-sidebar{border-right:1px solid var(--border);background:var(--surface);flex-shrink:0;width:320px;padding:12px;overflow-y:auto}.research-sidebar h3,.research-section h3{text-transform:uppercase;color:var(--text-dim);letter-spacing:.5px;margin:12px 0 8px;font-size:12px}.research-main{flex:1;padding:12px;overflow-y:auto}.research-section{margin-bottom:16px}.overview-field{gap:8px;padding:4px 0;font-size:12px;display:flex}.field-label{color:var(--text-dim);text-transform:uppercase;flex-shrink:0;min-width:100px;font-size:11px}.field-value{color:var(--text)}.field-text{white-space:pre-wrap;line-height:1.4}.board-item{padding:2px 0;font-size:12px}.page-type-chart{margin-top:4px}.page-type-row{align-items:center;gap:8px;padding:3px 0;font-size:12px;display:flex}.page-type-label{text-transform:capitalize;width:120px;color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.page-type-bar-bg{background:var(--border);border-radius:3px;flex:1;height:6px;overflow:hidden}.page-type-bar{background:var(--accent);border-radius:3px;height:100%}.page-type-count{font-family:var(--font-mono);color:var(--text);text-align:right;min-width:24px;font-size:11px}.file-suggested{color:var(--accent)}.zone-cards-grid{flex-direction:column;gap:8px;display:flex}.brief-project-summary{background:var(--surface);color:var(--text);border-left:3px solid var(--accent);border-radius:6px;margin-bottom:10px;padding:10px 14px;font-size:13px;line-height:1.5}.brief-general-watch{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.brief-general-item{color:#f38ba8;background:#f38ba81a;border-left:3px solid #f38ba8;border-radius:4px;padding:6px 12px;font-size:12px}.surveyor-brief{flex-direction:column;gap:6px;display:flex}.brief-card{background:var(--surface);border:1px solid var(--border);border-left:4px solid #6c7086;border-radius:8px;overflow:hidden}.brief-header{align-items:center;gap:8px;padding:10px 14px;display:flex}.brief-header:hover{background:var(--surface2)}.brief-priority-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.brief-zone{font-size:13px;font-weight:600}.brief-doctype{color:var(--text-secondary);font-size:12px}.brief-estimate{color:var(--text-secondary);background:var(--surface2);border-radius:4px;margin-left:auto;padding:2px 8px;font-size:11px}.brief-expand{color:var(--text-secondary);font-size:10px}.brief-body{padding:0 14px 12px}.brief-section{margin-bottom:8px}.brief-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px;font-size:11px;font-weight:600;display:block}.brief-tags{flex-wrap:wrap;gap:4px;display:flex}.brief-tag{background:var(--surface2);color:var(--text);border-radius:4px;padding:2px 8px;font-size:12px}.brief-tag.count{color:#89b4fa;background:#89b4fa26}.brief-tag.equip{color:#cba6f7;background:#cba6f726}.brief-tag.boq{color:#a6e3a1;background:#a6e3a126}.brief-watch{color:var(--text);margin:0;padding-left:18px;font-size:12px;list-style:outside}.brief-watch li{margin-bottom:2px}.brief-notes{color:var(--text-secondary);background:var(--surface2);border-radius:4px;margin-top:8px;padding:8px 10px;font-size:12px;font-style:italic}.brief-page-notes{flex-direction:column;gap:4px;display:flex}.brief-page-note{background:var(--surface2);border-radius:4px;align-items:baseline;gap:8px;padding:4px 8px;font-size:12px;display:flex}.brief-page-range{color:var(--accent);white-space:nowrap;min-width:50px;font-weight:600}.brief-page-content{color:var(--text)}.brief-page-hint{color:var(--text-secondary);font-style:italic}.brief-thumbs{flex-wrap:wrap;gap:6px;display:flex}.brief-thumb{background:var(--surface2);cursor:pointer;border:1px solid #0000;border-radius:4px;min-width:60px;padding:4px 10px;font-size:11px;transition:all .15s}.brief-thumb:hover{border-color:var(--accent)}.brief-thumb.active{border-color:var(--accent);background:#cba6f726}.brief-thumb-num{color:var(--text);font-weight:600}.brief-thumb-type{color:var(--text-secondary);font-size:10px}.brief-thumb-title{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-size:10px;overflow:hidden}.brief-preview{border:1px solid var(--border);background:var(--surface2);border-radius:6px;margin-top:8px;overflow:hidden}.brief-preview img{width:100%;display:block}.brief-divider{border-bottom:2px solid #89b4fa;align-items:center;gap:10px;margin-bottom:2px;padding:12px 0 6px;display:flex}.brief-divider.extraction{border-bottom-color:#6c7086;margin-top:16px}.brief-divider-label{color:#89b4fa;text-transform:uppercase;letter-spacing:.5px;font-size:13px;font-weight:700}.brief-divider.extraction .brief-divider-label{color:#6c7086}.brief-divider-count{color:var(--text-secondary);background:var(--surface2);border-radius:4px;padding:2px 8px;font-size:12px}.zone-card{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:10px 12px}.zone-card-header{align-items:center;gap:8px;margin-bottom:4px;display:flex}.zone-id{color:var(--text-dim);font-size:11px;font-family:var(--font-mono)}.zone-name{font-size:13px;font-weight:600}.zone-desc{color:var(--text-dim);margin-bottom:4px;font-size:12px}.zone-meta{color:var(--text-dim);gap:12px;font-size:11px;display:flex}.badge{background:var(--surface2);border:1px solid var(--border);border-radius:3px;padding:1px 6px;font-size:10px}.zone-scope{border-radius:3px;padding:1px 6px;font-size:10px}.zone-scope.shared{color:var(--purple);background:#bc8cff26}.zone-scope.area{color:var(--accent);background:#58a6ff26}.surveyor-alerts{flex-direction:column;gap:6px;display:flex}.surveyor-alert{border-left:3px solid var(--border);background:var(--surface);border-radius:6px;align-items:flex-start;gap:8px;padding:8px 10px;font-size:12px;line-height:1.4;display:flex}.surveyor-alert.alert-critical{border-left-color:var(--red);background:#f851490f}.surveyor-alert.alert-warning{border-left-color:var(--yellow);background:#d299220f}.surveyor-alert.alert-info{border-left-color:var(--accent);background:#58a6ff0f}.alert-severity-badge{text-transform:uppercase;border-radius:3px;flex-shrink:0;margin-top:1px;padding:1px 5px;font-size:9px;font-weight:600}.severity-critical{color:var(--red);background:#f8514926}.severity-warning{color:var(--yellow);background:#d2992226}.severity-info{color:var(--accent);background:#58a6ff26}.alert-message{flex:1}.alert-refs{flex-shrink:0;gap:4px;display:flex}.section-count-badge{color:var(--text-dim);margin-left:8px;font-size:11px;font-weight:400}.boq-section-cards{flex-direction:column;gap:6px;display:flex}.boq-section-card{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:6px;padding:8px 12px}.boq-section-card.importance-border-high{border-left-color:var(--red)}.boq-section-card.importance-border-medium{border-left-color:var(--yellow)}.boq-section-card.importance-border-low{border-left-color:var(--green)}.boq-section-header{cursor:pointer}.boq-section-title-row{align-items:center;gap:8px;margin-bottom:2px;display:flex}.boq-section-number{color:var(--text-dim);font-size:11px;font-family:var(--font-mono)}.boq-section-title{font-size:13px;font-weight:600}.importance-badge{text-transform:uppercase;border-radius:3px;margin-left:auto;padding:1px 5px;font-size:9px;font-weight:600}.importance-high{color:var(--red);background:#f8514926}.importance-medium{color:var(--yellow);background:#d2992226}.importance-low{color:var(--green);background:#3fb95026}.boq-section-meta{color:var(--text-dim);gap:12px;font-size:11px;display:flex}.expand-indicator{color:var(--text-dim);margin-left:auto;font-size:10px}.boq-section-reason{color:var(--text-dim);margin-top:4px;font-size:12px;line-height:1.4}.boq-section-details{border-top:1px solid var(--border);margin-top:8px;padding-top:8px}.boq-key-items{font-size:12px}.key-items-label{text-transform:uppercase;color:var(--text-dim);letter-spacing:.5px;margin-bottom:4px;font-size:10px}.key-item-row{align-items:center;gap:8px;padding:2px 0;display:flex}.key-item-pos{color:var(--text-dim);flex-shrink:0;min-width:60px;font-size:11px}.key-item-desc{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.key-item-qty{font-family:var(--font-mono);color:var(--text-dim);flex-shrink:0;font-size:11px}.boq-section-warnings{margin-top:6px}.boq-section-warning{color:var(--yellow);padding:2px 0;font-size:11px}.boq-section-warning:before{content:"⚠ "}.page-ref-link{font-size:10px;font-family:var(--font-mono);color:var(--accent);cursor:pointer;background:#58a6ff1a;border:1px solid #58a6ff33;border-radius:3px;align-items:center;gap:2px;padding:0 4px;line-height:1.6;text-decoration:none;display:inline-flex}.page-ref-link:hover{border-color:var(--accent);background:#58a6ff33}.scope-summary-card{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:12px 14px}.scope-summary-field{margin-bottom:10px}.scope-summary-field:last-child{margin-bottom:0}.scope-summary-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);margin-bottom:2px;font-size:10px;font-weight:600}.scope-summary-value{font-size:13px;line-height:1.5}.scope-summary-list{margin:0;padding-left:16px;font-size:13px;line-height:1.5}.scope-summary-list li{margin-bottom:2px}.scope-surveyor-notes{border-top:1px solid var(--border);margin-top:10px;padding-top:10px}.scope-surveyor-note{color:var(--yellow);padding:3px 0;font-size:12px;line-height:1.4}.scope-surveyor-note:before{content:"! ";font-weight:600}.scope-source-pages{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:4px;margin-top:8px;padding-top:8px;display:flex}.scope-groups{flex-direction:column;gap:8px;display:flex}.scope-group{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:8px 12px}.scope-group-header{align-items:center;gap:8px;margin-bottom:2px;display:flex}.scope-group-label{font-size:13px;font-weight:600}.scope-group-count{color:var(--text-dim);background:var(--surface2);border-radius:3px;margin-left:auto;padding:1px 5px;font-size:10px}.scope-group-hint{color:var(--yellow);margin-bottom:6px;font-size:12px;line-height:1.4}.scope-page-refs{flex-wrap:wrap;gap:4px;display:flex}.research-pdf-viewer{background:var(--bg);flex-direction:column;height:100%;display:flex}.research-pdf-viewer .page-nav{background:var(--surface);border-bottom:1px solid var(--border);padding:6px 10px}.research-pdf-viewer .page-info{font-size:11px}.close-btn{margin-left:auto;padding:2px 6px;font-size:16px;line-height:1}.research-scroll-content{flex:1;overflow-y:auto}.publish-section{align-items:center;gap:12px;margin-bottom:16px;display:flex}.btn-publish{background:var(--accent);color:#000;cursor:pointer;border:none;border-radius:4px;padding:8px 20px;font-size:13px;font-weight:600}.btn-publish:hover{opacity:.85}.btn-publish:disabled{opacity:.5;cursor:default}.publish-result{color:var(--green);font-size:12px}.publish-progress-banner{background:#4f8cff14;border:1px solid #4f8cff40;border-radius:6px;margin-bottom:16px;padding:12px 16px}.publish-progress-header{align-items:center;gap:12px;margin-bottom:6px;display:flex}.publish-progress-label{color:var(--accent);font-size:13px;font-weight:600}.publish-progress-count{color:var(--text);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.publish-progress-pct{color:var(--text-secondary);font-variant-numeric:tabular-nums;margin-left:auto;font-size:12px}.publish-progress-detail{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-bottom:8px;font-size:11px;overflow:hidden}.publish-progress-bar-bg{background:var(--border);border-radius:2px;height:4px;overflow:hidden}.publish-progress-bar-fill{background:var(--accent);border-radius:2px;height:100%;transition:width .3s}.publish-button-wrapper{flex-direction:column;gap:2px;display:flex}.publish-eta{opacity:.7;font-size:10px;font-weight:400}.publish-header-bar-bg{background:var(--border);border-radius:1px;height:2px;overflow:hidden}.publish-header-bar-fill{background:var(--accent);border-radius:1px;height:100%;transition:width .3s}.extraction-container{width:100%;height:100%;display:flex}.extraction-sidebar{border-right:1px solid var(--border);background:var(--surface);flex-direction:column;flex-shrink:0;gap:6px;width:240px;padding:8px;transition:width .15s ease-out;display:flex;overflow-y:auto}.extraction-sidebar.collapsed{align-items:center;gap:8px;width:32px;padding:8px 4px;overflow:hidden}.extraction-sidebar-header{align-items:center;gap:4px;display:flex}.ext-type-select{background:var(--bg);min-width:0;color:var(--text);border:1px solid var(--border);border-radius:3px;flex:1;padding:3px 4px;font-size:11px}.ext-sidebar-toggle{background:var(--bg);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:4px;flex-shrink:0;padding:4px 8px;font-size:16px;line-height:1}.ext-sidebar-toggle:hover{color:var(--text);background:var(--surface2);border-color:var(--text-dim)}.ext-sidebar-mini-stats{writing-mode:vertical-rl;font-size:10px;font-family:var(--font-data);color:var(--text-dim);white-space:nowrap}.extraction-filter{margin-bottom:8px}.extraction-filter label{color:var(--text-dim);align-items:center;gap:4px;font-size:12px;display:flex}.extraction-filter select{background:var(--surface2);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:3px 6px;font-size:12px}.extraction-progress{margin-bottom:8px}.progress-bar{background:var(--border);border-radius:4px;height:8px;margin-bottom:4px;overflow:hidden}.progress-fill{background:var(--green);border-radius:3px;height:100%;transition:width .3s}.progress-label{color:var(--text-dim);text-align:center;font-size:11px}.extraction-zones{flex:1;overflow-y:auto}.diagram-file-group{margin-bottom:2px}.diagram-file-group.has-selection{background:var(--surface);border-radius:4px}.diagram-file-header{cursor:pointer;border-radius:4px;align-items:center;gap:6px;padding:5px 8px;font-size:12px;font-weight:600;display:flex}.diagram-file-header:hover{background:var(--surface2)}.diagram-file-header.extracting{background:#4f8cff14}.diagram-file-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.diagram-file-meta{flex-shrink:0;align-items:center;gap:4px;display:flex}.diagram-doc-badge{color:var(--accent);text-transform:uppercase;letter-spacing:.03em;background:#4f8cff1f;border-radius:3px;padding:1px 5px;font-size:9px;font-weight:500}.diagram-page-count{color:var(--text-dim);background:var(--surface2);font-size:10px;font-family:var(--font-data);border-radius:3px;padding:1px 5px}.diagram-page-list{margin-left:16px;padding-bottom:2px}.diagram-zone-label{color:var(--text-dim);font-size:10px;font-family:var(--font-data);opacity:.7;margin-bottom:1px;padding:2px 4px}.diagram-file-actions{justify-content:flex-end;padding:4px 4px 2px;display:flex}.btn-file-publish{font-size:10px;font-family:var(--font-data);border:1px solid var(--border);background:var(--surface2);color:var(--text-dim);cursor:pointer;border-radius:3px;padding:2px 8px;transition:all .15s}.btn-file-publish:hover:not(:disabled){background:var(--bg);color:var(--text);border-color:var(--accent)}.btn-file-publish.ready{border-color:var(--green);color:var(--green)}.btn-file-publish.ready:hover{background:var(--green);color:var(--bg)}.btn-file-publish.publishing{opacity:.6;cursor:wait}.btn-file-publish.published{border-color:var(--green);color:var(--green);background:#34d3991a}.btn-file-publish.published:hover{background:#34d39926}.btn-file-publish.stale{border-color:var(--yellow,#fbbf24);color:var(--yellow,#fbbf24);background:#fbbf2414}.btn-file-publish.stale:hover{background:var(--yellow,#fbbf24);color:var(--bg)}.zone-arrow{color:var(--text-dim);font-size:10px;transition:transform .15s}.zone-arrow.open{transform:rotate(90deg)}.queue-badge{background:var(--yellow);border-radius:50%;width:6px;height:6px;animation:1s infinite pulse}.extraction-section{margin-bottom:8px}.extraction-section-header{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim,#888);border-bottom:1px solid var(--border,#333);margin-bottom:2px;padding:8px 6px 4px;font-size:11px;font-weight:700}.zone-page-item{cursor:pointer;border-radius:3px;align-items:center;gap:6px;padding:3px 8px;font-size:12px;display:flex}.zone-page-item:hover{background:var(--surface2)}.zone-page-item.selected{background:var(--surface2);color:var(--accent)}.page-status-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.page-status-dot.pending{border:1px solid var(--text-dim);background:0 0}.page-status-dot.reviewing{background:var(--yellow);animation:1s infinite pulse}.page-status-dot.extracting{background:var(--accent);animation:1s infinite pulse}.page-status-dot.done{background:var(--green)}.page-status-dot.skipped{background:var(--text-dim)}.page-label{font-size:12px}.page-title{color:var(--text-dim);font-size:11px}.extraction-status-summary{font-size:10px;font-family:var(--font-data);color:var(--text-dim);border-top:1px solid var(--border);flex-wrap:wrap;gap:6px;margin-top:auto;padding:4px 6px;display:flex}.extraction-main-wrapper{flex-direction:column;flex:1;display:flex;overflow:hidden}.extraction-main{flex:1;display:flex;overflow:hidden}.extraction-left,.extraction-right{flex-direction:column;height:100%;display:flex;overflow:hidden}.extraction-page-info{border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;padding:8px 12px}.page-info-row{align-items:center;gap:8px;font-size:13px;display:flex}.page-info-file{font-family:var(--font-mono);font-weight:500}.page-info-page{color:var(--text-dim)}.page-status-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:8px;padding:1px 6px;font-size:10px;font-weight:600}.page-status-badge.pending{background:var(--surface2);color:var(--text-dim)}.page-status-badge.reviewing{color:var(--yellow);background:#d2992226}.page-status-badge.extracting{color:var(--accent);background:#58a6ff26}.page-status-badge.done{color:var(--green);background:#3fb95026}.page-status-badge.skipped{background:var(--surface2);color:var(--text-dim)}.page-info-title{color:var(--text-dim);margin-top:2px;font-size:12px}.page-info-meta{color:var(--text-dim);gap:12px;margin-top:2px;font-size:11px;display:flex}.review-navigate-hint{border-bottom:1px solid var(--border);color:var(--yellow);background:#d299221a;align-items:center;gap:8px;padding:6px 12px;font-size:12px;display:flex}.btn-publish-all-diagrams{font-size:11px;font-weight:600;font-family:var(--font-data);background:var(--surface2);color:var(--text);border:1px solid var(--accent);cursor:pointer;text-align:center;border-radius:4px;margin:4px 8px;padding:5px 8px;transition:all .15s}.btn-publish-all-diagrams:hover:not(:disabled){background:var(--accent);color:var(--bg)}.btn-publish-all-diagrams.publishing{opacity:.6;cursor:wait}.btn-publish-all-diagrams.published{border-color:var(--green);color:var(--green);background:#34d3991a}.btn-publish-all-diagrams.published:hover:not(:disabled){background:var(--green);color:var(--bg)}.btn-next-review{color:var(--yellow);cursor:pointer;text-align:center;background:#d2992226;border:1px solid #d299224d;border-radius:4px;margin:4px 8px;padding:4px 8px;font-size:11px;font-weight:600}.btn-next-review:hover{background:#d2992240}.review-actions-row{gap:4px;margin:4px 8px;display:flex}.review-actions-row .btn-next-review{flex:1;margin:0}.btn-process-all{color:var(--accent);cursor:pointer;white-space:nowrap;background:#4f8cff26;border:1px solid #4f8cff4d;border-radius:4px;padding:4px 8px;font-size:11px;font-weight:600}.btn-process-all:hover:not(:disabled){background:#4f8cff40}.btn-process-all:disabled{opacity:.6;cursor:default}.file-action-bar{gap:4px;padding:2px 8px 4px 24px;display:flex}.btn-file-process{color:var(--accent);cursor:pointer;background:#4f8cff26;border:1px solid #4f8cff4d;border-radius:3px;padding:2px 8px;font-size:10px;font-weight:600}.btn-file-process:hover:not(:disabled){background:#4f8cff4d}.btn-file-process:disabled{opacity:.6;cursor:default}.btn-file-skip{color:var(--text-secondary);cursor:pointer;background:#8b8fa31a;border:1px solid #8b8fa333;border-radius:3px;padding:2px 8px;font-size:10px;font-weight:600}.btn-file-skip:hover:not(:disabled){background:#8b8fa333}.btn-file-skip:disabled{opacity:.6;cursor:default}.extracting-badge{background:var(--accent);border-radius:50%;width:6px;height:6px;animation:1s infinite pulse}.assignee-badges{gap:2px;margin-left:4px;display:inline-flex}.assignee-badge{letter-spacing:.3px;background:var(--accent);color:#fff;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;min-width:18px;height:16px;padding:0 3px;font-size:9px;font-weight:700;display:inline-flex}.assignee-badge.page-assignee{flex-shrink:0;min-width:16px;height:14px;font-size:8px}.page-status-dot.pulsing{animation:1s infinite pulse}.zone-page-item.has-review{background:#d299220f}.extraction-viewer-area{flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.page-review-viewer{background:var(--bg-primary);touch-action:none;flex:1;width:100%;min-height:0;overflow:hidden}.extraction-viewport{transform-origin:0 0;will-change:transform;position:relative}.bbox-overlay{cursor:move;z-index:5;border:2px solid;position:absolute}.bbox-content,.bbox-overlay.bbox-content{border-color:var(--green);background:#3fb95014}.bbox-legend,.bbox-overlay.bbox-legend{border-color:var(--purple);background:#bc8cff14}.bbox-title_block,.bbox-overlay.bbox-title_block{border-color:var(--yellow);background:#d2992214}.bbox-notes,.bbox-overlay.bbox-notes{border-color:var(--accent);background:#58a6ff14}.bbox-label{text-transform:uppercase;color:#000;border-radius:0 0 4px;padding:2px 6px;font-size:11px;font-weight:600;position:absolute;top:-1px;left:-1px}.bbox-content .bbox-label{background:var(--green)}.bbox-legend .bbox-label{background:var(--purple)}.bbox-title_block .bbox-label{background:var(--yellow)}.bbox-notes .bbox-label{background:var(--accent)}.bbox-delete{background:var(--red);color:#fff;cursor:pointer;opacity:0;border:none;border-radius:0 0 0 6px;justify-content:center;align-items:center;width:28px;height:28px;font-size:18px;line-height:1;transition:opacity .15s;display:flex;position:absolute;top:-1px;right:-1px}.bbox-delete:hover{background:#d32f2f;transform:scale(1.1)}.bbox-overlay:hover .bbox-delete{opacity:1}.bbox-handle{background:#fff;border:2px solid #555;border-radius:2px;width:14px;height:14px;position:absolute}.bbox-handle:hover{background:var(--accent);border-color:var(--accent)}.bbox-handle-nw{cursor:nw-resize;top:-7px;left:-7px}.bbox-handle-ne{cursor:ne-resize;top:-7px;right:-7px}.bbox-handle-sw{cursor:sw-resize;bottom:-7px;left:-7px}.bbox-handle-se{cursor:se-resize;bottom:-7px;right:-7px}.extraction-bottom-bar{background:var(--surface);border-top:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:4px 12px;display:flex}.page-review-legend{color:var(--text-dim);gap:12px;font-size:11px;display:flex}.swatch{vertical-align:middle;border-radius:2px;width:10px;height:10px;margin-right:4px;display:inline-block}.swatch.content{background:var(--green)}.swatch.legend{background:var(--purple)}.swatch.title_block{background:var(--yellow)}.swatch.notes{background:var(--accent)}.extraction-crop-toolbar{background:var(--surface);border-top:1px solid var(--border);gap:4px;padding:4px 12px;display:flex}.btn-add-crop{border:1px solid var(--border);background:var(--surface2);color:var(--text);cursor:pointer;border-radius:3px;padding:3px 8px;font-size:11px}.btn-add-crop:hover{border-color:var(--accent)}.btn-crop-content{border-color:var(--green);color:var(--green)}.btn-crop-legend{border-color:var(--purple);color:var(--purple)}.btn-crop-title{border-color:var(--yellow);color:var(--yellow)}.btn-crop-notes{border-color:var(--accent);color:var(--accent)}.btn-auto-approve{border:1px solid var(--yellow);color:var(--yellow);cursor:pointer;background:0 0;border-radius:3px;margin-left:auto;padding:3px 10px;font-size:11px}.btn-auto-approve.active{background:var(--yellow);color:#000}.extraction-bottom-bar .zoom-controls{position:static}.extraction-bottom-bar .zoom-controls button{width:24px;height:24px;font-size:14px}.extraction-bottom-bar .zoom-controls .zoom-level{height:24px;font-size:11px;line-height:24px}.section-actions{gap:4px;margin-left:auto;display:flex}.btn-add-component:hover{background:#3fb9501a}.btn-reextract{border:1px solid var(--yellow);color:var(--yellow);cursor:pointer;background:0 0;border-radius:3px;padding:2px 8px;font-size:11px}.btn-reextract:hover{background:#d299221a}.btn-reextract:disabled{opacity:.5;cursor:wait}.extraction-review-panel{border-bottom:1px solid var(--border);background:var(--surface)}.extraction-review-content{padding:12px}.extraction-review-header{align-items:center;gap:10px;margin-bottom:10px;display:flex}.review-existing-notice{color:var(--green);background:#34d39914;border:1px solid #34d39933;border-radius:4px;margin-bottom:8px;padding:6px 10px;font-size:11px}.page-review-badge{text-transform:uppercase;color:#000;background:var(--yellow);border-radius:4px;padding:3px 8px;font-size:11px;font-weight:700;animation:2s infinite badgePulse}@keyframes badgePulse{0%,to{opacity:1}50%{opacity:.7}}.approval-skill{font-size:14px;font-weight:600}.approval-context{flex-wrap:wrap;gap:8px;margin-bottom:10px;font-size:12px;display:flex}.context-chip{background:var(--surface2);border:1px solid var(--border);color:var(--text-dim);border-radius:4px;padding:2px 8px;font-size:11px}.approval-instructions-section{margin-bottom:10px}.tile-suggestion-hint{color:var(--yellow);background:#d299221a;border:1px solid #d299224d;border-radius:4px;margin-bottom:10px;padding:6px 10px;font-size:12px}.doc-review-hint{color:var(--text-secondary,#aaa);margin-bottom:6px;padding:6px 0;font-size:12px}.approval-label{text-transform:uppercase;color:var(--text-dim);letter-spacing:.3px;margin-bottom:4px;font-size:11px;display:block}.approval-instructions{background:var(--surface2);border:1px solid var(--yellow);width:100%;color:var(--text);font-family:var(--font-mono);resize:vertical;border-radius:4px;padding:8px 10px;font-size:12px;line-height:1.5}.approval-instructions:focus{border-color:var(--accent);outline:none}.approval-card{background:var(--surface2);border:2px solid var(--yellow);border-radius:8px;flex-shrink:0;margin:0 12px;padding:12px 16px;animation:.2s fadeIn}.approval-card-header{align-items:center;gap:10px;margin-bottom:8px;display:flex}.approval-actions{gap:8px;margin-top:4px;display:flex}.btn-approve{background:var(--green);color:#000;cursor:pointer;border:none;border-radius:4px;padding:6px 16px;font-size:13px;font-weight:600}.btn-approve:hover{opacity:.85}.btn-approve-all{color:var(--green);border:1px solid var(--green);cursor:pointer;background:0 0;border-radius:4px;padding:6px 16px;font-size:13px;font-weight:600}.btn-approve-all:hover{background:var(--green);color:#000}.btn-reject{color:var(--text-dim);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;padding:6px 16px;font-size:13px}.btn-reject:hover{border-color:var(--text-dim);color:var(--text)}.extraction-gate-banner{padding:0 12px}.gate-bar{border-bottom:1px solid var(--border);background:var(--surface);align-items:center;gap:8px;padding:6px 10px;font-size:12px;display:flex}.gate-bar-running{color:var(--green)}.gate-bar-review{color:var(--text)}.gate-bar-dot{background:var(--green);border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:1s infinite pulse}.gate-bar-badge{text-transform:uppercase;background:var(--green);color:var(--bg);border-radius:3px;flex-shrink:0;padding:1px 6px;font-size:10px;font-weight:700}.gate-bar-text{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.gate-bar-spacer{flex:1}.gate-bar-btn{border:1px solid var(--border);background:var(--bg);color:var(--text-dim);cursor:pointer;white-space:nowrap;border-radius:3px;padding:3px 10px;font-size:11px}.gate-bar-btn:hover{color:var(--text);border-color:var(--text-dim)}.gate-bar-btn-primary{background:var(--accent,var(--blue));color:#fff;border-color:#0000}.gate-bar-btn-primary:hover{opacity:.9}.research-gate-banner{background:var(--surface);border:2px solid var(--yellow);border-radius:8px;flex-direction:column;gap:8px;margin:0 0 12px;padding:14px 16px;animation:.3s ease-out slideIn;display:flex}.extraction-gate-card{background:var(--surface);border:2px solid var(--yellow);border-radius:8px;margin:8px 0;padding:14px 16px;animation:.3s ease-out slideIn}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.enhanced-gate{border-color:var(--green)}.gate-header{align-items:center;gap:10px;margin-bottom:8px;display:flex}.research-gate-badge{text-transform:uppercase;color:#000;background:var(--yellow);border-radius:4px;padding:3px 8px;font-size:11px;font-weight:700}.gate-summary{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.gate-zone-chip{background:var(--surface2);border:1px solid var(--border);border-radius:3px;padding:2px 8px;font-size:11px}.gate-hint{color:var(--text-dim);margin-bottom:10px;font-size:12px;line-height:1.4}.gate-actions{gap:8px;display:flex}.btn-continue{background:var(--green);color:#000;cursor:pointer;border:none;border-radius:4px;padding:6px 16px;font-size:13px;font-weight:600}.btn-continue:hover{opacity:.85}.btn-stop{color:var(--text-dim);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;padding:6px 16px;font-size:13px}.btn-stop:hover{border-color:var(--text-dim);color:var(--text)}.gate-banner-top{align-items:center;gap:10px;display:flex}.gate-step-indicator{font-size:11px;font-family:var(--font-mono);color:var(--text-dim);margin-left:auto}.gate-stats-row{font-size:12px;font-family:var(--font-mono);color:var(--text-dim);gap:16px;display:flex}.gate-stat:before{content:"";background:var(--green);vertical-align:middle;border-radius:50%;width:4px;height:4px;margin-right:6px;display:inline-block}.gate-banner-body{color:var(--text-dim);font-size:13px;line-height:1.4}.btn-continue-primary{padding:8px 24px;font-size:14px;box-shadow:0 0 12px #3fb9504d}.btn-continue-primary:hover{box-shadow:0 0 18px #3fb95073}.auto-extract-banner{border-bottom:1px solid var(--border);background:#58a6ff0f;flex-shrink:0;align-items:center;gap:8px;padding:6px 16px;display:flex}.auto-extract-dot{background:var(--accent);border-radius:50%;width:6px;height:6px;animation:1s infinite pulse}.auto-extract-label{color:var(--accent);font-size:12px}.auto-extract-bar{background:var(--border);border-radius:2px;width:120px;height:4px;overflow:hidden}.auto-extract-bar-fill{background:var(--accent);border-radius:2px;height:100%;transition:width .4s ease-out}.auto-extract-count{font-size:11px;font-family:var(--font-mono);color:var(--text-dim)}.inline-input{background:var(--surface2);border:1px solid var(--accent);color:var(--text);font-family:var(--font-mono);border-radius:3px;width:100%;padding:2px 4px;font-size:12px}.btn-sm{border:1px solid var(--border);background:var(--surface2);color:var(--text);cursor:pointer;border-radius:3px;margin-right:2px;padding:2px 6px;font-size:11px}.btn-sm:hover{border-color:var(--accent)}.btn-sm.btn-save{border-color:var(--green);color:var(--green)}.btn-sm.btn-cancel{border-color:var(--text-dim)}.btn-sm.btn-danger{border-color:var(--red);color:var(--red)}.btn-sm.btn-danger:hover{background:var(--red);color:#fff}.btn-add-component{border:1px solid var(--green);color:var(--green);cursor:pointer;background:0 0;border-radius:3px;padding:2px 8px;font-size:11px}.btn-add-component:hover{background:var(--green);color:#000}.action-cell{white-space:nowrap}.editing-row td{background:var(--surface2)}.hq-render-preview{margin-bottom:8px}.hq-render-preview img{border:1px solid var(--border);border-radius:4px;width:100%}.boq-left,.boq-right{flex-direction:column;height:100%;display:flex}.boq-data-header{border-bottom:1px solid var(--border);flex-shrink:0;padding:8px 12px}.boq-data-tabs{gap:2px;margin-bottom:6px;display:flex}.boq-data-tab{background:var(--surface);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:4px;align-items:center;gap:6px;padding:5px 12px;font-size:12px;transition:background .1s;display:flex}.boq-data-tab:hover{background:var(--surface2)}.boq-data-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}.tab-count{font-size:10px;font-family:var(--font-mono);background:var(--bg-surface);border-radius:8px;padding:1px 5px}.boq-data-tab:not(.active) .tab-count{background:var(--surface2)}.boq-stats-row{color:var(--text-dim);gap:12px;font-size:11px;display:flex}.boq-stat{font-family:var(--font-mono)}.boq-data-content{flex:1;padding:8px;overflow-y:auto}.boq-page-positions{flex-direction:column;gap:6px;display:flex}.boq-section-context{color:var(--accent);background:#6366f114;border-radius:4px;margin-bottom:4px;padding:4px 8px;font-size:11px;font-weight:600}.boq-position-card{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:10px 12px}.boq-position-card:hover{border-color:var(--accent)}.boq-pos-header{justify-content:space-between;align-items:baseline;margin-bottom:4px;display:flex}.boq-pos-number{font-family:var(--font-mono);color:var(--accent);font-size:13px;font-weight:700}.boq-pos-qty{font-family:var(--font-mono);color:var(--text);background:var(--surface2);border-radius:4px;padding:1px 8px;font-size:13px;font-weight:600}.boq-pos-desc{color:var(--text);margin-bottom:4px;font-size:12px;line-height:1.4}.boq-pos-details{color:var(--text-dim);border-left:2px solid var(--border);margin-bottom:4px;padding-left:8px;font-size:11px;line-height:1.4}.boq-pos-meta{flex-wrap:wrap;gap:4px;display:flex}.boq-pos-tag{background:var(--surface2);color:var(--text-dim);border-radius:3px;padding:1px 6px;font-size:10px}.boq-page-empty{color:var(--text-dim);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:40px 20px;font-size:12px;display:flex}.boq-page-empty .empty-icon{opacity:.3;font-size:24px}.boq-page-error{text-align:center;color:var(--status-error);padding:20px;font-size:12px}.boq-all-positions{overflow-y:auto}.boq-table-desc{text-overflow:ellipsis;white-space:nowrap;max-width:300px;overflow:hidden}.reconciliation-summary-bar{background:var(--surface);border:1px solid var(--border);border-radius:6px;gap:16px;margin-bottom:8px;padding:10px 12px;display:flex}.recon-summary-item{align-items:center;gap:6px;font-size:12px;display:flex}.recon-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.recon-label{color:var(--text-dim)}.recon-count{font-family:var(--font-data);color:var(--text);font-weight:700}.recon-pct{font-family:var(--font-data);color:var(--text-dim);font-size:11px}.recon-status-badge{white-space:nowrap;border-radius:3px;padding:2px 6px;font-size:10px;font-weight:600}.recon-row.recon-matched td{border-left:2px solid var(--green)}.recon-row.recon-mismatch td{border-left:2px solid var(--yellow)}.recon-row.recon-takeoff_only td{border-left:2px solid var(--accent)}.recon-row.recon-boq_only td{border-left:2px solid var(--red)}.row-highlight{background:#6366f114!important}.page-select{background:var(--surface2);border:1px solid var(--border);min-width:0;color:var(--text);font-size:12px;font-family:var(--font-mono);border-radius:4px;flex:1;padding:4px 8px}.review-container{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.review-stats-bar{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;display:flex}.review-stats-left{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.review-stats-right{flex-shrink:0;align-items:center;gap:6px;display:flex}.review-stat-badge{background:var(--surface2);color:var(--text);border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.review-confidence-high{color:#4caf50;background:#4caf5033}.review-confidence-medium{color:#ffc107;background:#ffc10733}.review-confidence-low{color:#f44336;background:#f4433633}.review-confidence-manual{color:#2196f3;background:#2196f333}.review-qty-flag{color:#ff9800;background:#ff980033}.btn-review-action{border:1px solid var(--border);background:var(--surface2);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:4px;padding:4px 12px;font-size:12px}.btn-review-action:hover:not(:disabled){background:var(--surface)}.btn-review-action.btn-publish{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-review-action.btn-publish:hover:not(:disabled){opacity:.9}.review-progress-bar{background:var(--border);border-radius:2px;width:80px;height:3px;overflow:hidden}.review-progress-fill{background:var(--accent);height:100%;transition:width .3s}.review-progress-detail{color:var(--text-dim);border-bottom:1px solid var(--border);padding:2px 12px 4px;font-size:11px}.review-stale-banner{color:var(--accent-warning);background:#fbbf241a;border-bottom:1px solid #fbbf2440;padding:6px 12px;font-size:12px}.review-stale-link{color:var(--accent-warning);cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.review-stale-link:hover{color:var(--text)}.review-stale-link:disabled{opacity:.5;cursor:default}.review-row-stale td{color:var(--accent-warning)}.review-empty{height:100%;color:var(--text-dim);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:40px;display:flex}.review-table-wrap{flex:1;overflow:auto}.review-table th,.review-table td{white-space:nowrap}.review-spec-cell{text-overflow:ellipsis;max-width:200px;overflow:hidden}.review-expand-cell{cursor:pointer;text-align:center;-webkit-user-select:none;user-select:none}.review-match-cell{cursor:pointer;position:relative}.review-match-cell:hover{background:var(--surface2)}.review-source-badge{border-radius:3px;padding:1px 5px;font-size:10px;font-weight:700}.source-sld{color:#2196f3;background:#2196f326}.source-fp{color:#9c27b0;background:#9c27b026}.source-route{color:#ff9800;background:#ff980026}.review-section-header{color:var(--text);opacity:.7;text-transform:uppercase;letter-spacing:.5px;padding:8px 12px 4px;font-size:13px;font-weight:600}.review-confidence-badge{border-radius:3px;padding:1px 6px;font-size:10px;font-weight:700}.review-qty-warning{color:#ff9800!important}.review-qty-critical{font-weight:700;color:#f44336!important}.review-row-expanded>td{border-bottom:none}.review-detail-row>td{background:var(--surface);border-bottom:1px solid var(--border);padding:0 8px 8px 36px!important}.review-row-detail{flex-direction:column;gap:3px;font-size:11px;display:flex}.review-diagram-detail{gap:12px;display:flex}.review-diagram-name{min-width:100px;font-weight:600}.review-diagram-pages{color:var(--text-dim)}.review-match-reasoning{margin-top:2px;font-style:italic}.review-qty-detail{margin-top:2px}.review-qty-detail.warning{color:#ff9800}.review-qty-detail.critical{color:#f44336;font-weight:600}.match-dropdown{z-index:100;background:var(--bg);border:1px solid var(--border);border-radius:6px;flex-direction:column;min-width:360px;max-height:320px;display:flex;position:absolute;top:100%;left:0;box-shadow:0 8px 24px #0006}.match-dropdown-search{border:none;border-bottom:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px 6px 0 0;outline:none;padding:6px 10px;font-size:12px}.match-dropdown-list{max-height:260px;overflow-y:auto}.match-dropdown-item{cursor:pointer;align-items:center;gap:8px;padding:5px 10px;font-size:11px;display:flex}.match-dropdown-item:hover{background:var(--surface2)}.match-dropdown-clear{color:var(--text-dim);border-bottom:1px solid var(--border);font-style:italic}.match-dd-id{min-width:80px;font-weight:600;font-family:var(--font-mono)}.match-dd-desc{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.match-dd-qty{color:var(--text-dim);white-space:nowrap}.match-dropdown-empty{color:var(--text-dim);text-align:center;padding:12px;font-size:12px}.match-dropdown-busy{opacity:.6;pointer-events:none}.match-dropdown-item.disabled{opacity:.4;cursor:wait}tr.row-busy{opacity:.5;pointer-events:none}.review-unmatched{border-top:1px solid var(--border);flex-shrink:0}.review-unmatched-header{cursor:pointer;color:var(--text-dim);align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:600;display:flex}.review-unmatched-header:hover{background:var(--surface2)}.review-unmatched .data-table{max-height:200px;display:block;overflow-y:auto}.prompt-container{width:100%;height:100%;display:flex}.prompt-sidebar{border-right:1px solid var(--border);background:var(--surface);flex-shrink:0;width:240px;padding:12px;overflow-y:auto}.prompt-sidebar h3{text-transform:uppercase;color:var(--text-dim);letter-spacing:.5px;margin:12px 0 8px;font-size:12px}.prompt-sidebar h3:first-child{margin-top:0}.prompt-sidebar select{background:var(--surface2);border:1px solid var(--border);width:100%;color:var(--text);border-radius:4px;margin-bottom:6px;padding:4px 8px;font-size:12px}.prompt-stats{margin-bottom:8px}.stat-row{justify-content:space-between;padding:3px 0;font-size:12px;display:flex}.stat-label{color:var(--text-dim)}.stat-value{color:var(--text);font-weight:600;font-family:var(--font-mono)}.prompt-skill-stats{margin-bottom:8px}.prompt-skill-row{align-items:center;gap:8px;padding:3px 0;font-size:11px;display:flex}.prompt-skill-label{width:80px;color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.prompt-skill-bar-bg{background:var(--border);border-radius:2px;flex:1;height:4px;overflow:hidden}.prompt-skill-bar{background:var(--accent);border-radius:2px;height:100%}.prompt-skill-count{font-family:var(--font-mono);text-align:right;min-width:20px;font-size:10px}.prompt-feed{flex-direction:column;flex:1;gap:8px;padding:12px;display:flex;overflow-y:auto}.prompt-card{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:10px 12px;font-size:13px}.prompt-card-header{align-items:center;gap:8px;margin-bottom:6px;display:flex}.prompt-skill-badge{font-size:12px;font-weight:600}.prompt-type-badge{text-transform:uppercase;border-radius:3px;padding:1px 5px;font-size:10px;font-weight:600}.prompt-type-badge.text{color:var(--accent);background:#58a6ff26}.prompt-type-badge.vision,.prompt-type-badge.multi_image{color:var(--purple);background:#bc8cff26}.prompt-type-badge.pdf{color:var(--yellow);background:#d2992226}.prompt-page{color:var(--text-dim);font-size:11px;font-family:var(--font-mono)}.prompt-elapsed{color:var(--text-dim);font-size:11px;font-family:var(--font-mono);margin-left:auto}.prompt-time{color:var(--text-dim);font-size:11px;font-family:var(--font-mono)}.prompt-section{margin-top:4px}.prompt-section-toggle{color:var(--text-dim);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;padding:2px 0;font-size:11px;display:flex}.prompt-section-toggle:hover{color:var(--accent)}.toggle-arrow{font-size:10px}.char-count{color:var(--text-dim);opacity:.6;margin-left:auto;font-size:10px}.prompt-section-content{background:var(--surface2);border:1px solid var(--border);font-family:var(--font-mono);color:var(--text-dim);white-space:pre-wrap;word-break:break-word;border-radius:4px;max-height:300px;margin-top:2px;padding:6px 8px;font-size:11px;line-height:1.4;overflow-y:auto}.prompt-image-indicator{color:var(--purple);margin-top:4px;font-size:11px}.modal-overlay{z-index:1000;background:#000000b3;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-card{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:12px;max-width:420px;padding:24px 32px}.modal-card h2{margin-bottom:8px;font-size:16px}.modal-info{color:var(--text-dim);margin-bottom:16px;font-size:13px}.modal-actions{justify-content:center;gap:10px;display:flex}.extraction-data-content{padding:0 8px}.running-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}[data-panel-group-direction=horizontal]{height:100%;display:flex}[data-panel]{overflow:hidden}.project-chat{border-top:1px solid var(--border);background:var(--surface);flex-direction:column;flex-shrink:0;display:flex}.project-chat.expanded{flex:none;min-height:200px;max-height:50%}.chat-header{cursor:pointer;background:var(--surface2);border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:6px 12px;display:flex}.chat-header-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim,#888);font-size:12px;font-weight:600}.chat-toggle{color:var(--text-dim,#888);font-size:10px}.chat-messages{flex-direction:column;flex:1;gap:8px;min-height:100px;max-height:300px;padding:8px 12px;display:flex;overflow-y:auto}.chat-placeholder{color:var(--text-dim,#888);text-align:center;padding:20px 0;font-size:12px}.chat-bubble{word-wrap:break-word;border-radius:12px;max-width:85%;padding:8px 12px;font-size:13px;line-height:1.5}.chat-bubble-user{background:var(--accent);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.chat-bubble-assistant{background:var(--surface2);color:var(--text);border:1px solid var(--border);border-bottom-left-radius:4px;align-self:flex-start}.chat-bubble-assistant p{margin:0 0 6px}.chat-bubble-assistant p:last-child{margin-bottom:0}.chat-bubble-assistant ul,.chat-bubble-assistant ol{margin:4px 0;padding-left:18px}.chat-bubble-assistant li{margin-bottom:2px}.chat-bubble-assistant code{font-family:var(--font-mono);background:var(--bg-surface);border-radius:3px;padding:1px 4px;font-size:12px}.chat-bubble-assistant pre{background:var(--bg);border:1px solid var(--border);border-radius:4px;margin:4px 0;padding:8px;overflow-x:auto}.chat-bubble-assistant pre code{background:0 0;padding:0}.chat-bubble-assistant table{border-collapse:collapse;margin:6px 0;font-size:12px}.chat-bubble-assistant th,.chat-bubble-assistant td{border:1px solid var(--border);padding:3px 8px}.chat-bubble-assistant th{background:var(--surface);font-weight:600}.chat-bubble-assistant strong{font-weight:600}.chat-bubble-assistant h1,.chat-bubble-assistant h2,.chat-bubble-assistant h3{margin:8px 0 4px;font-size:14px;font-weight:700}.chat-bubble-assistant h1:first-child,.chat-bubble-assistant h2:first-child,.chat-bubble-assistant h3:first-child{margin-top:0}.chat-attached-images{flex-wrap:wrap;gap:4px;margin-bottom:6px;display:flex}.chat-attached-thumb{border:1px solid var(--border-active);object-fit:cover;border-radius:4px;max-width:120px;max-height:80px}.chat-typing{opacity:.5;animation:1s infinite pulse}.chat-badge{background:var(--accent);color:#fff;border-radius:8px;margin-left:8px;padding:1px 6px;font-size:10px;font-weight:600}.chat-attachments{border-top:1px solid var(--border);flex-wrap:wrap;gap:4px;padding:4px 12px;display:flex}.chat-attachment-chip{background:var(--surface2);border:1px solid var(--border);color:var(--text-dim);border-radius:16px;align-items:center;gap:4px;padding:2px 8px 2px 4px;font-size:11px;display:flex}.chip-thumb{object-fit:cover;border-radius:4px;width:24px;height:24px}.chip-label{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.chip-remove{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:14px;line-height:1}.chip-remove:hover{color:var(--red)}.chat-input-row{border-top:1px solid var(--border);align-items:flex-end;gap:6px;padding:8px 12px;display:flex}.chat-toolbar{flex-shrink:0;gap:2px;display:flex}.chat-tool-btn{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:4px;justify-content:center;align-items:center;width:30px;height:30px;font-size:14px;display:flex}.chat-tool-btn:hover{border-color:var(--accent);color:var(--accent)}.chat-input{background:var(--surface2);border:1px solid var(--border);color:var(--text);resize:none;border-radius:4px;outline:none;flex:1;padding:6px 10px;font-family:inherit;font-size:13px}.chat-input:focus{border-color:var(--accent)}.chat-send-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;flex-shrink:0;padding:6px 14px;font-size:12px;font-weight:600}.chat-send-btn:disabled{opacity:.4;cursor:default}.file-picker-backdrop{z-index:900;position:fixed;top:0;right:0;bottom:0;left:0}.file-picker{background:var(--surface);border:1px solid var(--border);z-index:901;border-radius:8px;flex-direction:column;max-width:400px;max-height:300px;display:flex;position:absolute;bottom:80px;left:12px;right:12px;box-shadow:0 8px 24px #0006}.file-picker-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:8px 12px;font-size:12px;font-weight:600;display:flex}.file-picker-close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;font-size:16px}.file-picker-list{flex:1;overflow-y:auto}.file-picker-item{border-bottom:1px solid var(--border)}.file-picker-item:last-child{border-bottom:none}.file-picker-name{cursor:pointer;justify-content:space-between;align-items:center;padding:8px 12px;font-size:12px;display:flex}.file-picker-name:hover{background:var(--surface2)}.file-picker-pages{color:var(--text-dim);flex-shrink:0;font-size:10px}.file-picker-page-select{background:var(--surface2);padding:6px 12px 8px}.file-picker-page-input{background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text);font-size:12px;font-family:var(--font-mono);border-radius:4px;margin-bottom:6px;padding:4px 8px}.file-picker-page-input:focus{border-color:var(--accent);outline:none}.file-picker-actions{gap:6px;display:flex}.fp-btn{border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:4px;padding:3px 10px;font-size:11px}.fp-btn:hover{background:#58a6ff1a}.fp-btn-crop{border-color:var(--purple);color:var(--purple)}.fp-btn-crop:hover{background:#bc8cff1a}.crop-modal-backdrop{z-index:1000;background:#000c;justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}.crop-modal{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;width:90vw;max-width:1200px;height:85vh;display:flex;overflow:hidden}.crop-modal-header{border-bottom:1px solid var(--border);background:var(--surface2);flex-shrink:0;align-items:center;gap:12px;padding:10px 16px;display:flex}.crop-modal-title{flex:1;font-size:13px;font-weight:600}.crop-modal-nav{align-items:center;gap:8px;font-size:12px;display:flex}.crop-nav-btn{background:var(--surface);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:flex}.crop-nav-btn:hover{border-color:var(--accent)}.crop-nav-btn:disabled{opacity:.3;cursor:default}.crop-modal-actions{gap:8px;display:flex}.crop-capture-btn{background:var(--green);color:#000;cursor:pointer;border:none;border-radius:4px;padding:5px 16px;font-size:12px;font-weight:600}.crop-capture-btn:disabled{opacity:.4;cursor:default}.crop-close-btn{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:4px;padding:5px 14px;font-size:12px}.crop-close-btn:hover{border-color:var(--text-dim)}.crop-modal-body{background:var(--bg-primary);flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:auto}.crop-loading{color:var(--text-dim);justify-content:center;align-items:center;font-size:13px;display:flex;position:absolute;top:0;right:0;bottom:0;left:0}.crop-canvas-container{display:inline-block;position:relative}.crop-canvas-container canvas{max-width:100%;max-height:100%;display:block}.crop-overlay{cursor:crosshair;position:absolute;top:0;right:0;bottom:0;left:0}.crop-selection{border:2px dashed var(--accent);pointer-events:none;background:#58a6ff26;position:absolute}.extraction-page-header{border-bottom:2px solid var(--border);background:var(--surface);flex-shrink:0;padding:10px 14px}.extraction-page-header.status-reviewing{border-bottom-color:var(--yellow);background:linear-gradient(180deg,#d299220f 0%,var(--surface) 100%)}.extraction-page-header.status-extracting{border-bottom-color:var(--accent);background:linear-gradient(180deg,#58a6ff0f 0%,var(--surface) 100%)}.extraction-page-header.status-done{border-bottom-color:var(--green)}.page-header-top{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.page-header-label{font-size:15px;font-weight:700;font-family:var(--font-mono)}.page-status-pill{text-transform:uppercase;letter-spacing:.5px;border-radius:10px;padding:2px 10px;font-size:10px;font-weight:700}.page-status-pill.pending{background:var(--surface2);color:var(--text-dim)}.page-status-pill.reviewing{color:var(--yellow);background:#d2992233;animation:2s infinite badgePulse}.page-status-pill.reviewing-has-data{color:var(--green);background:#34d39926}.page-status-pill.extracting{color:var(--accent);background:#58a6ff33;animation:1s infinite pulse}.page-status-pill.done{color:var(--green);background:#3fb95033}.page-status-pill.skipped{background:var(--surface2);color:var(--text-dim)}.page-header-meta{color:var(--text-dim);align-items:center;gap:6px;font-size:11px;display:flex}.page-header-sep{background:var(--text-dim);opacity:.5;border-radius:50%;flex-shrink:0;width:3px;height:3px}.page-header-title{color:var(--text-dim);margin-top:4px;font-size:12px;font-style:italic}.page-state-message{color:var(--text-dim);border-bottom:1px solid var(--border);background:var(--surface);align-items:center;gap:8px;padding:10px 14px;font-size:12px;display:flex}.page-state-message.extracting{color:var(--accent);background:#58a6ff0a}.state-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.state-dot.pending{border:1px solid var(--text-dim);background:0 0}.state-dot.extracting{background:var(--accent);animation:1s infinite pulse}.pipeline-strip{background:var(--border);flex-shrink:0;height:3px;position:relative;overflow:hidden}.pipeline-strip-fill{border-radius:0 2px 2px 0;height:100%;transition:width .6s ease-out}.pipeline-strip.phase-research .pipeline-strip-fill{background:var(--accent)}.pipeline-strip.phase-waiting .pipeline-strip-fill{background:var(--yellow)}.pipeline-strip.phase-extraction .pipeline-strip-fill{background:var(--purple)}.pipeline-strip.phase-complete .pipeline-strip-fill{background:var(--green)}.pipeline-strip.phase-research .pipeline-strip-fill,.pipeline-strip.phase-extraction .pipeline-strip-fill{background-size:200% 100%;animation:2s linear infinite stripShimmer}.pipeline-strip.phase-research .pipeline-strip-fill{background-image:linear-gradient(90deg,var(--accent) 0%,#58a6ff80 50%,var(--accent) 100%)}.pipeline-strip.phase-extraction .pipeline-strip-fill{background-image:linear-gradient(90deg,var(--purple) 0%,#bc8cff80 50%,var(--purple) 100%)}@keyframes stripShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.tab.tab-running:after{content:"";background:var(--accent);border-radius:1px;height:2px;animation:1.5s ease-in-out infinite tabRunning;position:absolute;bottom:0;left:20%;right:20%}@keyframes tabRunning{0%,to{opacity:.6;left:30%;right:30%}50%{opacity:1;left:10%;right:10%}}.tab-check{background:var(--green);vertical-align:middle;border-radius:50%;width:6px;height:6px;margin-left:4px;display:inline-block}.transition-toast{background:var(--surface2);border:1px solid var(--border);color:var(--text);z-index:100;pointer-events:none;border-radius:6px;padding:6px 16px;font-size:12px;position:fixed;top:52px;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0000004d}.transition-toast.toast-error{border-color:var(--red);color:var(--red)}.transition-toast.toast-success{border-color:var(--green);color:var(--green)}.transition-toast.toast-in{animation:.2s ease-out forwards toastIn}.transition-toast.toast-out{animation:.3s ease-in forwards toastOut}@keyframes toastIn{0%{opacity:0;transform:translate(-50%)translateY(-8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes toastOut{0%{opacity:1}to{opacity:0}}.annotation-container{flex-direction:column;width:100%;height:100%;display:flex}.annotation-sidebar-panel{border-right:1px solid var(--border);background:var(--surface);flex-direction:column;flex-shrink:0;width:240px;transition:width .15s ease-out;display:flex;overflow-y:auto}.annotation-sidebar-panel.collapsed{align-items:center;gap:8px;width:36px;padding:8px 4px;overflow:hidden}.annotation-sidebar-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.annotation-sidebar-header .sidebar-section-label{border-bottom:none;margin:0;padding:0;font-size:11px}.ann-sidebar-mini-progress{flex-direction:column;align-items:center;gap:6px;margin-top:4px;display:flex}.ann-mini-stat{writing-mode:vertical-rl;font-size:10px;font-family:var(--font-data);color:var(--text-dim);white-space:nowrap}.ann-mini-progress-ring{border:3px solid var(--border);border-top-color:var(--green);width:28px;height:28px;font-size:9px;font-family:var(--font-data);color:var(--text-dim);border-radius:50%;justify-content:center;align-items:center;font-weight:600;display:flex}.annotation-main{flex-direction:column;flex:1;padding:16px;display:flex;overflow:auto}.annotation-page-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.annotation-page-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:6px;padding:14px;transition:border-color .15s;display:flex}.annotation-page-card:hover{border-color:var(--accent)}.annotation-page-card.annotated{border-color:var(--success,#10b981)}.annotation-card-header{justify-content:space-between;align-items:center;display:flex}.annotation-card-type{text-transform:uppercase;letter-spacing:.5px;color:var(--accent);font-size:10px;font-weight:600}.annotation-card-file{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:500;overflow:hidden}.annotation-card-page{color:var(--text-dim);font-size:11px}.annotation-card-title{color:var(--text-dim);font-size:11px;font-style:italic}.annotation-card-stats{color:var(--success,#10b981);gap:12px;font-size:11px;font-weight:500;display:flex}.annotation-card-actions{gap:8px;margin-top:4px;display:flex}.btn-annotate{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;flex:1;padding:6px 12px;font-size:12px;font-weight:600;transition:opacity .15s}.btn-annotate:hover{opacity:.85}.annotation-empty{height:100%;color:var(--text-dim);flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:13px;display:flex}.annotation-empty .empty-icon{opacity:.3;font-size:32px}.annotation-progress-stats{gap:16px;display:flex}.annotation-stat{align-items:baseline;gap:4px;display:flex}.annotation-stat-value{font-family:var(--font-data);color:var(--text);font-size:18px;font-weight:700}.annotation-stat-label{color:var(--text-dim);font-size:11px}.annotation-page-list{flex-direction:column;gap:1px;display:flex}.annotation-page-item{cursor:pointer;border-radius:3px;justify-content:space-between;align-items:center;gap:6px;padding:5px 8px;font-size:11px;display:flex}.annotation-page-item:hover{background:var(--surface2)}.annotation-page-item.active{background:var(--surface2);color:var(--accent)}.annotation-page-info{align-items:center;gap:6px;min-width:0;display:flex;overflow:hidden}.btn-fp-publish{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;text-transform:uppercase;letter-spacing:.3px;background:0 0;border-radius:3px;flex-shrink:0;padding:2px 6px;font-size:9px;font-weight:600}.btn-fp-publish:hover{background:var(--surface2);color:var(--text)}.btn-fp-publish.publishing{color:var(--accent);border-color:var(--accent);opacity:.7;cursor:wait}.btn-fp-publish.published{color:var(--green);border-color:var(--green)}.btn-fp-publish.stale{color:var(--warning);border-color:var(--warning)}.annotation-page-type{text-transform:uppercase;background:var(--surface2);color:var(--text-dim);border-radius:2px;padding:1px 4px;font-size:9px;font-weight:600}.annotation-page-ref{font-family:var(--font-data);font-size:11px}.annotation-shortcuts{color:var(--text-dim);font-size:11px}.shortcut-row{align-items:center;gap:8px;padding:2px 0;display:flex}.shortcut-row kbd{font-family:var(--font-data);background:var(--bg);border:1px solid var(--border);text-align:center;border-radius:3px;min-width:40px;padding:1px 4px;font-size:10px}.ann-stats-bar{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.ann-stats-left{align-items:center;gap:10px;font-size:12px;display:flex}.ann-stats-right{align-items:center;gap:8px;display:flex}.btn-select-all{opacity:.7}.ann-batch-progress{color:var(--accent);border-bottom:1px solid var(--border);background:#3b82f60f;padding:6px 16px;font-size:12px}.ann-stat-badge{background:var(--surface2);color:var(--text-dim);border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.ann-stat-completed{color:#10b981;background:#10b98126}.ann-stat-inprogress{color:#3b82f6;background:#3b82f626}.ann-cards-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));align-content:start;gap:12px;padding:16px;display:grid;overflow:auto}.ann-card{background:var(--bg-card);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:8px;flex-direction:column;gap:8px;padding:14px;transition:border-color .15s;display:flex}.ann-card:hover{border-color:var(--accent)}.ann-card-selected{border-color:var(--accent);background:#3b82f60d}.ann-card-checkbox{cursor:pointer;width:16px;height:16px;accent-color:var(--accent);flex-shrink:0}.ann-card-completed{border-left-color:#10b981}.ann-card-in_progress{border-left-color:#3b82f6}.ann-card-assigned{border-left-color:var(--text-dim)}.ann-card-skipped{opacity:.6;border-left-color:#9ca3af}.ann-card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.ann-status-badge{text-transform:uppercase;letter-spacing:.3px;border-radius:10px;padding:2px 8px;font-size:10px;font-weight:600}.ann-status-badge.status-completed{color:#10b981;background:#10b98126}.ann-status-badge.status-in_progress{color:#3b82f6;background:#3b82f626}.ann-status-badge.status-assigned{background:var(--surface2);color:var(--text-dim)}.ann-status-badge.status-skipped{background:var(--surface2);color:#9ca3af}.ann-badge-published{color:#8b5cf6;background:#8b5cf626}.ann-card-doctype{text-transform:capitalize;color:var(--text-dim);font-size:10px;font-weight:500}.ann-card-name{color:var(--text);word-break:break-word;overflow-wrap:anywhere;min-height:24px;font-size:14px;font-weight:600}.ann-card-file{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.ann-card-name-editable{cursor:pointer}.ann-card-name-editable:hover{color:var(--accent)}.ann-card-name-input{border:1px solid var(--accent);background:var(--bg);width:100%;color:var(--text);border-radius:4px;outline:none;padding:2px 6px;font-size:14px;font-weight:600}.ann-card-assignee{align-items:center;gap:6px;font-size:12px;display:flex}.ann-card-actions{gap:8px;margin-top:auto;display:flex}.btn-review-detail{background:#10b981}.ann-detail-modal{background:var(--bg);border:1px solid var(--border);border-radius:12px;flex-direction:column;width:min(92vw,900px);max-height:90vh;display:flex;box-shadow:0 20px 60px #0000004d}.ann-detail-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.ann-detail-header h3{margin:0;font-size:16px}.ann-detail-file{color:var(--text-dim);margin-top:2px;font-size:11px}.ann-detail-close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:22px;line-height:1}.ann-detail-close:hover{color:var(--text)}.ann-detail-summary{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:8px;padding:12px 20px;display:flex}.ann-detail-actions{border-bottom:1px solid var(--border);gap:8px;padding:12px 20px;display:flex}.ann-detail-publish-result{color:#10b981;background:#10b98114;padding:8px 20px;font-size:12px}.ann-detail-content{flex:1;padding:0 20px 16px;overflow:auto}.ann-detail-section{margin-top:16px}.ann-detail-section-title{text-transform:uppercase;letter-spacing:.3px;color:var(--text-dim);margin-bottom:8px;font-size:12px;font-weight:600}.ann-detail-section .review-table{table-layout:fixed;border-collapse:separate;border-spacing:0;width:100%}.ann-detail-section .review-table th{text-align:center;vertical-align:middle;text-transform:uppercase;letter-spacing:.4px;color:var(--text-dim);background:var(--surface);border-bottom:2px solid var(--border);z-index:1;padding:8px 10px;font-size:11px;font-weight:600;position:sticky;top:0}.ann-detail-section .review-table td{text-align:center;vertical-align:middle;border-bottom:1px solid var(--border);padding:10px;font-size:13px;transition:background .1s}.ann-detail-section .review-table tbody tr:hover td{background:var(--surface)}.ann-detail-section .review-table tbody tr:last-child td{border-bottom:none}.ann-detail-section .review-table .review-match-cell{cursor:pointer;color:var(--accent);font-weight:500}.ann-detail-section .review-table .review-match-assign{opacity:.5;font-style:italic;font-weight:400}.ann-detail-loader{flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:48px 16px;display:flex}.ann-loader-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.7s linear infinite ann-spin}@keyframes ann-spin{to{transform:rotate(360deg)}}.ann-loader-text{color:var(--text-dim);font-size:13px}.ann-btn-spinner{vertical-align:middle;border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:14px;height:14px;margin-right:6px;animation:.6s linear infinite ann-spin;display:inline-block}.btn-review-action:disabled{opacity:.6;cursor:not-allowed}.ann-confirm-overlay{z-index:200;background:#00000080;border-radius:12px;justify-content:center;align-items:center;display:flex;position:absolute;top:0;right:0;bottom:0;left:0}.ann-confirm-modal{background:var(--bg);border:1px solid var(--border);text-align:center;border-radius:10px;max-width:380px;padding:24px;box-shadow:0 8px 32px #0000004d}.ann-confirm-modal h4{margin:12px 0 8px;font-size:15px}.ann-confirm-modal p{margin:4px 0;font-size:13px;line-height:1.5}.ann-confirm-icon{color:#f59e0b;background:#f59e0b26;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:22px;font-weight:700;display:inline-flex}.ann-confirm-actions{justify-content:center;gap:10px;margin-top:18px;display:flex}.ann-modal-dropdown{z-index:1000;background:var(--bg);border:1px solid var(--border);border-radius:6px;flex-direction:column;width:420px;max-width:calc(100vw - 16px);max-height:300px;display:flex;position:fixed;overflow:hidden;box-shadow:0 8px 24px #0006}.ann-modal-dropdown .match-dropdown-item{min-width:0}.ann-modal-dropdown .match-dd-id{flex-shrink:0}.ann-modal-dropdown .match-dd-desc{min-width:0}.pipeline-stepper{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:0;padding:12px 16px;display:flex;overflow-x:auto}.stepper-step{white-space:nowrap;border-radius:4px;flex-shrink:0;align-items:center;gap:6px;padding:4px 8px;font-size:11px;display:flex}.stepper-step .step-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.stepper-step .step-dot.pending{border:1.5px solid var(--text-dim);background:0 0}.stepper-step .step-dot.running{background:var(--yellow);animation:1s infinite pulse}.stepper-step .step-dot.success{background:var(--green)}.stepper-step .step-dot.failed{background:var(--red)}.stepper-step .step-dot.skipped{background:var(--text-dim)}.stepper-step .step-label{color:var(--text-dim);font-weight:500}.stepper-step.step-running .step-label,.stepper-step.step-success .step-label{color:var(--text)}.stepper-step .step-progress{font-family:var(--font-data);color:var(--yellow);font-size:10px;font-weight:600}.stepper-step .step-elapsed{font-family:var(--font-data);color:var(--text-muted,var(--text-dim));font-size:10px}.stepper-connector{background:var(--border);flex-shrink:0;width:16px;height:1px}.stepper-connector.done{background:var(--green)}.summary-cards{border-bottom:1px solid var(--border);flex-shrink:0;gap:8px;padding:12px 16px;display:flex;overflow-x:auto}.summary-card{background:var(--surface);border:1px solid var(--border);border-radius:6px;flex-direction:column;align-items:center;min-width:80px;padding:8px 16px;display:flex}.summary-card-value{font-family:var(--font-data);color:var(--text);font-size:18px;font-weight:700}.summary-card-label{text-transform:uppercase;color:var(--text-dim);letter-spacing:.03em;font-size:10px}.plan-checklist{margin:4px 0 0;padding:0;font-size:12px;list-style:none}.plan-checklist li{color:var(--text-dim);align-items:flex-start;gap:6px;padding:2px 0;display:flex}.plan-step-number{font-family:var(--font-data);color:var(--text-muted,var(--text-dim));text-align:right;flex-shrink:0;min-width:16px;font-size:10px;font-weight:600}.fp-annotator{flex-direction:column;flex:1;height:100%;min-height:0;display:flex}.fp-toolbar{border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:12px;padding:8px 12px;font-size:13px;display:flex}.fp-toolbar-file{color:var(--text-secondary)}.fp-toolbar-doctype{background:var(--bg-surface);border-radius:4px;padding:2px 8px;font-size:11px}.fp-toolbar-zone{color:var(--text-muted);font-size:11px}.fp-toolbar-spacer{flex:1}.fp-toolbar-stats{color:var(--text-secondary)}.fp-btn-skip{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:4px;padding:4px 12px;font-size:12px;transition:border-color .15s}.fp-btn-skip:hover{border-color:var(--text-secondary)}.fp-btn-save{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:4px 12px;font-size:12px;font-weight:600;transition:opacity .15s}.fp-btn-save:hover{opacity:.85}.fp-btn-save:disabled,.fp-btn-skip:disabled{opacity:.5;cursor:wait}.fp-save-status{border-radius:3px;padding:2px 6px;font-size:10px;font-weight:500}.fp-save-status.saving{color:var(--text-dim)}.fp-save-status.saved{color:var(--green)}.fp-save-status.error{color:var(--red)}.fp-btn-legend{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:4px;padding:4px 8px;font-size:11px;font-weight:600}.fp-btn-legend:hover{background:var(--surface2);color:var(--text)}.fp-btn-legend.active{background:var(--surface2);color:var(--accent);border-color:var(--accent)}.fp-legend-panel{z-index:20;background:var(--bg);border:1px solid var(--border);border-radius:6px;position:absolute;top:8px;right:8px;overflow:hidden;box-shadow:0 4px 16px #0006}.fp-legend-header{color:var(--text-dim);background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:4px 8px;font-size:11px;font-weight:600;display:flex}.fp-legend-close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:14px;line-height:1}.fp-legend-close:hover{color:var(--text)}.fp-legend-crop{background:#fff}.legend-editor-overlay{z-index:30;background:#000000d9;justify-content:center;align-items:center;display:flex;position:absolute;top:0;right:0;bottom:0;left:0}.legend-editor-panel{background:var(--bg);border:1px solid var(--border);border-radius:8px;flex-direction:column;max-width:95%;max-height:95%;display:flex;overflow:hidden}.legend-editor-header{color:var(--text-dim);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;font-size:12px;display:flex}.legend-editor-actions{flex-shrink:0;gap:6px;display:flex}.legend-editor-canvas{cursor:crosshair;-webkit-user-select:none;user-select:none;background:#111;justify-content:center;align-items:center;min-height:200px;max-height:70vh;display:flex;position:relative;overflow:auto}.legend-editor-img{pointer-events:none;display:block}.legend-editor-rect{border:2px solid var(--accent);pointer-events:none;background:#6366f126;position:absolute}.fp-content{flex:1;min-height:0;position:relative;overflow:hidden}.fp-overlay{background:var(--surface);z-index:10;color:var(--text-secondary);justify-content:center;align-items:center;display:flex;position:absolute;top:0;right:0;bottom:0;left:0}.fp-overlay-error{color:var(--accent-error)}.fp-iframe{border:2px solid #0000;width:100%;height:100%;transition:border-color .2s}.fp-content.iframe-focused .fp-iframe{border-color:var(--accent,#2563eb)}.fp-content.iframe-blurred .fp-iframe{border-color:#0000}.fp-focus-hint{color:#ccc;pointer-events:auto;cursor:pointer;z-index:5;-webkit-user-select:none;user-select:none;opacity:.8;background:#0009;border-radius:4px;padding:4px 12px;font-size:11px;transition:opacity .2s;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.fp-focus-hint:hover{opacity:1;color:#fff}.fp-annotator.fp-fullscreen{z-index:9999;background:var(--surface,#1a1a2e);position:fixed;top:0;right:0;bottom:0;left:0}.fp-btn-workspace{border:1px solid var(--accent,#2563eb);color:var(--accent,#2563eb);cursor:pointer;background:0 0;border-radius:4px;padding:4px 10px;font-size:12px;transition:background .15s}.fp-btn-workspace:hover{background:var(--accent,#2563eb);color:#fff}.fp-btn-fullscreen{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:4px;padding:4px 10px;font-size:12px;transition:border-color .15s,background .15s}.fp-btn-fullscreen:hover{border-color:var(--text-secondary)}.fp-btn-fullscreen.active{background:var(--accent,#2563eb);color:#fff;border-color:var(--accent,#2563eb)}.fp-prepare-overlay{z-index:8;cursor:pointer;justify-content:center;align-items:center;display:flex;position:absolute;top:0;right:0;bottom:0;left:0}.fp-prepare-box{text-align:center;background:var(--surface,#2a2a3c);border:1px solid var(--border,#444);border-radius:12px;padding:32px 48px}.fp-prepare-title{color:var(--text-secondary,#999);margin-bottom:16px;font-size:14px}.fp-btn-prepare{background:var(--accent,#2563eb);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:10px 24px;font-size:14px;font-weight:500;transition:opacity .15s}.fp-btn-prepare:hover{opacity:.9}.fp-prepare-hint{color:var(--text-muted,#666);margin-top:10px;font-size:11px}.fp-placeholder{height:100%;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.missing-documents{flex-direction:column;gap:4px;display:flex}.missing-doc-item{border-left:2px solid var(--accent-error);background:#f871710f;border-radius:0 4px 4px 0;align-items:center;gap:6px;padding:4px 8px;font-size:12px;display:flex}.missing-doc-item:before{content:"";background:var(--accent-error);border-radius:50%;flex-shrink:0;width:6px;height:6px}.quality-notes{flex-direction:column;gap:4px;display:flex}.quality-note-item{border-left:2px solid var(--accent-warning);background:#fbbf240f;border-radius:0 4px 4px 0;align-items:flex-start;gap:6px;padding:4px 8px;font-size:12px;line-height:1.4;display:flex}.quality-note-item:before{content:"!";color:var(--accent-warning);flex-shrink:0;font-size:11px;font-weight:700}button,.tab,.nav-btn,.btn-sm,.btn-add-crop,.btn-auto-approve,.zone-page-item,.sidebar-skill-item,.zone-group-header{transition:all .15s ease-out}input:focus,textarea:focus,select:focus{border-color:var(--accent-primary);outline:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-active)}.btn-move-to-review{border:1px solid var(--accent);width:100%;color:var(--accent);cursor:pointer;background:0 0;border-radius:4px;margin-top:8px;padding:8px 12px;font-size:12px;font-weight:500;transition:background .15s,color .15s}.btn-move-to-review:hover{background:var(--accent);color:var(--bg)}.move-to-review-hint{color:var(--text-dim);margin-top:4px;font-size:10px;line-height:1.3}.sidebar-move-to-review{padding:8px}.btn-rerun-phase{width:20px;height:20px;color:var(--text-dim);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:50%;justify-content:center;align-items:center;margin-left:6px;padding:0;font-size:14px;line-height:1;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.btn-rerun-phase:hover:not(:disabled){background:var(--surface2);color:var(--accent);border-color:var(--border)}.btn-rerun-phase:disabled{opacity:.4;cursor:default}.file-collect-bar{padding:2px 8px 4px 28px}.btn-collect{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:4px;padding:2px 10px;font-size:11px;transition:background .15s,color .15s,border-color .15s}.btn-collect:hover{background:var(--surface2);color:var(--text);border-color:var(--text-dim)}.btn-collect.collected{color:var(--accent-success);background:#34d3991f;border-color:#34d3994d}.btn-collect.collected:hover{background:#34d39933}.btn-collect-small{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:3px;flex-shrink:0;margin-left:auto;padding:1px 6px;font-size:10px;transition:background .15s,color .15s}.btn-collect-small:hover{background:var(--surface2);color:var(--text)}.btn-collect-small.collected{color:var(--accent-success);background:#34d3991f;border-color:#34d3994d}.btn-collect.stale{color:var(--accent-warning);background:#fbbf241f;border-color:#fbbf244d}.btn-collect.stale:hover{background:#fbbf2433}.btn-collect-small.stale{color:var(--accent-warning);background:#fbbf241f;border-color:#fbbf244d}.btn-collect-small.stale:hover{background:#fbbf2433}.modal-form{text-align:left;flex-direction:column;gap:12px;margin:16px 0;display:flex}.modal-field label{color:var(--text-dim);margin-bottom:4px;font-size:12px;display:block}.modal-field input,.modal-field select{background:var(--surface2);border:1px solid var(--border);width:100%;color:var(--text);box-sizing:border-box;border-radius:4px;padding:6px 8px;font-family:inherit;font-size:13px}.modal-field input:focus,.modal-field select:focus{border-color:var(--accent);outline:none}.publish-result-modal{max-width:520px}.publish-result-details{text-align:left;flex-direction:column;gap:10px;margin:16px 0;display:flex}.publish-result-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.publish-result-path{color:var(--accent);background:var(--surface2);word-break:break-all;text-align:right;border-radius:4px;max-width:360px;padding:4px 8px;font-size:12px}.review-source-tabs{border-bottom:1px solid var(--border);flex-shrink:0;gap:0;display:flex}.review-source-tab{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:8px 16px;font-size:13px;font-weight:600;transition:color .15s,border-color .15s}.review-source-tab:hover{color:var(--text);background:var(--surface)}.review-source-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.review-stage-pipeline{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:4px;padding:8px 12px;font-size:12px;display:flex}.review-stage-step{color:var(--text-muted);align-items:center;gap:4px;display:flex}.review-stage-step.active{color:var(--text-dim)}.review-stage-step.current{color:var(--accent);font-weight:600}.review-stage-dot{font-size:10px}.review-stage-label{font-size:12px}.review-stage-step.clickable{cursor:pointer;opacity:.7}.review-stage-step.clickable:hover{opacity:1;text-decoration:underline}.review-stage-arrow{color:var(--text-muted);margin:0 4px}.review-collected-view{flex:1;padding:16px;overflow-y:auto}.review-collected-header{color:var(--text-dim);margin-bottom:12px;font-size:13px;font-weight:600}.review-collected-list{flex-direction:column;gap:6px;display:flex}.review-collected-card{background:var(--surface);border:1px solid var(--border);border-radius:6px;align-items:center;gap:8px;padding:8px 12px;display:flex}.review-collected-remove{color:var(--text-dim);cursor:pointer;opacity:.5;background:0 0;border:none;margin-left:auto;padding:0 4px;font-size:18px;line-height:1}.review-collected-remove:hover{color:var(--error);opacity:1}.review-collected-file{font-size:12px;font-weight:500}.review-collected-time{font-size:11px}.review-plans-container{flex-direction:column;flex:1;gap:12px;padding:16px;display:flex;overflow-y:auto}.btn-review-stale{color:var(--accent-warning)!important;border-color:#fbbf244d!important}.review-plans-collected{flex-wrap:wrap;gap:8px;padding:12px 0;display:flex}.plan-collected-item{background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);border-top:1px solid var(--border);border-radius:4px;flex-wrap:wrap;padding:6px 12px;font-size:12px}.review-plans-assignments{flex-direction:column;gap:4px;margin-bottom:16px;display:flex}.plan-assignment-card{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:6px;justify-content:space-between;align-items:center;padding:8px 12px;font-size:12px;display:flex}.plan-assignment-card.status-completed{border-left-color:#4caf50}.plan-assignment-card.status-in-progress{border-left-color:#f0c040}.plan-assignment-card.status-assigned{border-left-color:#6c8cff}.plan-assignment-card.status-skipped{border-left-color:var(--text-secondary);opacity:.6}.plan-assignment-info{align-items:center;gap:8px;display:flex}.plan-assignment-name{color:var(--text);font-weight:500}.plan-assignment-doctype,.plan-assignment-zone{color:var(--text-secondary);text-transform:capitalize;font-size:11px}.plan-assignment-meta{align-items:center;gap:8px;display:flex}.plan-assignment-user{color:var(--text-secondary);font-size:11px}.plan-assignment-status{text-transform:capitalize;border-radius:10px;padding:1px 8px;font-size:11px;font-weight:500}.plan-assignment-status.status-completed{color:#4caf50;background:#1f3d2a}.plan-assignment-status.status-in-progress{color:#f0c040;background:#4a3f20}.plan-assignment-status.status-assigned{color:#6c8cff;background:#2a3f5f}.plan-assignment-status.status-skipped{background:var(--surface-alt,#333);color:var(--text-secondary)}.plan-assignment-badge{border-radius:8px;padding:1px 6px;font-size:10px;font-weight:500}.badge-matched{color:#42a5f5;background:#1a2a3a}.annotation-page-item{align-items:center;display:flex}.dashboard{background:var(--bg);height:100%;padding:40px 20px;overflow-y:auto}.dashboard-inner{max-width:1200px;margin:0 auto}.dashboard-header{text-align:center;margin-bottom:32px}.dashboard-header h1{color:var(--text-primary);font-size:28px;font-weight:600}.dashboard-header p{color:var(--text-secondary);margin-top:8px;font-size:14px}.dashboard-start-bar{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:8px;margin-bottom:24px;padding:20px 24px}.dashboard-start-row{gap:8px;display:flex}.dashboard-input{background:var(--bg);border:1px solid var(--border-subtle);color:var(--text-primary);font-size:14px;font-family:var(--font-data);border-radius:6px;outline:none;flex:1;padding:8px 12px;transition:border-color .15s}.dashboard-input:focus{border-color:var(--accent-primary)}.dashboard-input::placeholder{color:var(--text-muted)}.dashboard-start-btn{color:var(--text-primary);cursor:pointer;white-space:nowrap;background:#238636;border:1px solid #2ea043;border-radius:6px;padding:8px 16px;font-size:14px;transition:background .15s}.dashboard-start-btn:hover{background:#2ea043}.dashboard-start-btn:disabled{background:var(--bg-tertiary);border-color:var(--border-subtle);cursor:not-allowed;opacity:.6}.dashboard-flags{flex-wrap:wrap;gap:12px;margin-top:10px;display:flex}.dashboard-flag-label{cursor:pointer;color:var(--text-secondary);font-size:13px;font-family:var(--font-data);align-items:center;gap:6px;display:flex}.dashboard-error{color:var(--accent-error);margin-top:10px;font-size:13px}.dashboard-section{margin-bottom:24px}.dashboard-section-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.dashboard-section-header h2{color:var(--text-primary);align-items:baseline;gap:8px;font-size:18px;font-weight:600;display:flex}.dashboard-section-header.clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.dashboard-count{color:var(--text-secondary);font-size:14px;font-weight:400}.dashboard-stats{color:var(--text-muted);margin-left:4px;font-size:12px;font-weight:400}.dashboard-refresh-btn{border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:6px;padding:6px 14px;font-size:12px;transition:all .15s}.dashboard-refresh-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.dashboard-refresh-btn:disabled{opacity:.5;cursor:default}.dashboard-empty{color:var(--text-muted);text-align:center;padding:32px;font-size:13px}.project-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;display:grid}.project-table-wrap{flex-direction:column;gap:24px;display:flex}.project-table-loading{text-align:center;color:var(--text-secondary);padding:32px}.project-table-date{color:var(--text-secondary);border-bottom:1px solid var(--border);margin-bottom:0;padding:4px 0 8px;font-size:13px;font-weight:600}.project-table{border-collapse:collapse;background:var(--surface);border-radius:6px;width:100%;overflow:hidden}.project-table th{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.4px;background:var(--surface2);border-bottom:1px solid var(--border);padding:8px 12px;font-size:11px;font-weight:600}.project-table td{border-bottom:1px solid var(--border);padding:10px 12px;font-size:13px}.project-table th.num,.project-table td.num{text-align:right}.project-table-row{cursor:pointer;transition:background .1s}.project-table-row:hover td{background:var(--surface2)}.project-table-row.disabled{opacity:.5;pointer-events:none}.project-table-status{white-space:nowrap;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.project-table-status.completed{color:#1e1e2e;background:#a6e3a1}.project-table-status.in-progress{color:#1e1e2e;background:#f9e2af}.project-table-status.research{color:#1e1e2e;background:#cba6f7}.project-table-status.triaged{color:#1e1e2e;background:#94e2d5}.project-table-status.new{color:#1e1e2e;background:#89b4fa}.project-table-folder{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-family:monospace;font-size:12px;overflow:hidden}.project-table-name span:first-child{font-weight:500}.project-table-desc{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:300px;font-size:11px;display:block;overflow:hidden}.project-table-type{color:var(--text-secondary);font-size:12px}.project-table-time{color:var(--text-secondary);white-space:nowrap;font-size:12px}.project-table-actions{white-space:nowrap}.project-table-btn{border:1px solid var(--border);color:var(--accent);cursor:pointer;background:0 0;border-radius:4px;padding:4px 10px;font-size:11px}.project-table-btn:hover{background:var(--accent);color:var(--bg)}.project-table-btn:disabled{opacity:.5;cursor:default}.project-table-link{color:var(--accent);margin-left:8px;font-size:11px}.project-card{background:var(--bg-secondary);border:1px solid var(--border-subtle);cursor:pointer;border-radius:8px;flex-direction:column;gap:8px;min-height:140px;padding:16px 20px;transition:all .15s;display:flex}.project-card:hover{border-color:var(--accent-primary);background:var(--bg-tertiary)}.project-card.disabled{cursor:not-allowed;opacity:.6}.project-card-top{align-items:center;gap:8px;display:flex}.project-card-id{color:var(--text-dim);font-size:11px;font-family:var(--font-mono,monospace);margin-left:auto}.project-card-status{text-transform:uppercase;font-size:11px;font-weight:600;font-family:var(--font-data);letter-spacing:.03em;border-radius:4px;padding:2px 8px}.project-card-status.completed{color:var(--accent-success);background:#34d3991f}.project-card-status.in-progress{color:var(--accent-warning);background:#fbbf241f}.project-card-status.new{color:var(--text-muted);background:#565b6e26}.project-card-local-badge{color:var(--accent-primary);background:#4f8cff1f;border-radius:3px;padding:1px 6px;font-size:10px;font-weight:500}.project-card-name{color:var(--text-primary);font-size:15px;font-weight:600;line-height:1.3}.project-card-type{color:var(--accent-info);font-size:12px;font-family:var(--font-data)}.project-card-desc{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden}.project-card-desc.loading-text{color:var(--text-muted);font-style:italic}.project-card-footer{color:var(--text-muted);font-size:12px;font-family:var(--font-data);justify-content:space-between;align-items:center;margin-top:auto;display:flex}.project-card-link{color:var(--accent-primary);font-weight:500}.project-card-start-btn{color:var(--text-primary);cursor:pointer;font-size:11px;font-weight:600;font-family:var(--font-data);background:#238636;border:1px solid #2ea043;border-radius:4px;padding:3px 10px;transition:background .15s}.project-card-start-btn:hover{background:#2ea043}.project-card-start-btn:disabled{opacity:.5;cursor:default}.project-card-skeleton{cursor:default;pointer-events:none}.skeleton-line{background:linear-gradient(90deg,var(--bg-tertiary) 25%,var(--bg-surface) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;border-radius:4px;animation:1.5s ease-in-out infinite skeletonPulse}.skeleton-title{width:60%;height:18px}.skeleton-badge{width:80px;height:14px;margin-top:4px}.skeleton-desc{width:90%;height:12px}.skeleton-desc.short{width:50%}@keyframes skeletonPulse{0%{background-position:200% 0}to{background-position:-200% 0}}.dashboard-local{border-top:1px solid var(--border-subtle);padding-top:16px}.dashboard-local-list{flex-direction:column;gap:6px;display:flex}.dashboard-local-item{background:var(--bg-secondary);border:1px solid var(--border-subtle);cursor:pointer;border-radius:6px;justify-content:space-between;align-items:center;padding:8px 12px;transition:border-color .15s;display:flex}.dashboard-local-item:hover{border-color:var(--accent-primary)}.dashboard-local-item.active{border-color:var(--accent-success);background:#34d3990d}.dashboard-local-info{flex-direction:column;gap:2px;min-width:0;display:flex}.dashboard-local-name{color:var(--text-primary);font-size:13px;font-weight:500}.dashboard-local-path{color:var(--text-muted);font-size:11px;font-family:var(--font-data);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dashboard-local-meta{color:var(--text-secondary);flex-shrink:0;align-items:center;gap:8px;font-size:12px;display:flex}.dashboard-local-running{color:var(--accent-success);font-weight:600}.dashboard-local-running:before{content:"●"}.dashboard-local-delete{color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;padding:0 4px;font-size:16px;line-height:1;transition:all .15s}.dashboard-local-delete:hover{color:var(--accent-error);border-color:#f8717140}.btn-team{border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:6px;align-items:center;padding:5px 8px;transition:all .15s;display:flex}.btn-team:hover{color:var(--text-primary);border-color:var(--accent-primary);background:#6366f114}.team-panel-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}.team-panel{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:12px;flex-direction:column;width:min(720px,90vw);max-height:80vh;display:flex;box-shadow:0 20px 60px #0006}.team-panel-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.team-panel-tabs{gap:4px;display:flex}.team-panel-tabs button{color:var(--text-secondary);cursor:pointer;font-size:13px;font-family:var(--font-body);background:0 0;border:1px solid #0000;border-radius:6px;padding:6px 14px;transition:all .15s}.team-panel-tabs button.active{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-subtle)}.team-panel-tabs button:hover:not(.active){color:var(--text-primary)}.team-panel-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:20px;line-height:1}.team-panel-close:hover{color:var(--text-primary);background:var(--bg-tertiary)}.team-panel-loading{text-align:center;color:var(--text-secondary);padding:32px}.team-tab-content,.assignments-tab-content{flex:1;padding:16px;overflow-y:auto}.team-section{margin-bottom:20px}.team-section-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:12px;font-weight:600}.team-user-list{flex-direction:column;gap:4px;display:flex}.team-user-row{background:var(--bg-tertiary);border-radius:6px;align-items:center;gap:8px;padding:6px 10px;display:flex}.team-user-name{color:var(--text-primary);flex:1;font-weight:500}.team-user-role{border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.team-user-role.role-owner{color:#60a5fa;background:#3b82f626}.team-user-role.role-annotator{color:#4ade80;background:#22c55e26}.team-user-remove{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:16px}.team-user-remove:hover{color:var(--accent-error)}.team-add-row{align-items:center;gap:8px;display:flex}.team-add-row select,.team-add-row input{background:var(--bg-tertiary);border:1px solid var(--border-subtle);color:var(--text-primary);font-size:13px;font-family:var(--font-body);border-radius:6px;flex:1;padding:6px 10px}.team-add-row button{background:var(--accent-primary);color:#fff;cursor:pointer;font-size:13px;font-family:var(--font-body);white-space:nowrap;border:none;border-radius:6px;padding:6px 14px}.team-add-row button:disabled{opacity:.5;cursor:default}.team-error{color:var(--accent-error);margin-top:6px;font-size:12px}.assign-controls{border-bottom:1px solid var(--border-subtle);align-items:center;gap:8px;margin-bottom:12px;padding:8px 0 12px;display:flex}.assign-controls select{background:var(--bg-tertiary);border:1px solid var(--border-subtle);color:var(--text-primary);font-size:13px;font-family:var(--font-body);border-radius:6px;padding:6px 10px}.assign-controls button{background:var(--accent-primary);color:#fff;cursor:pointer;font-size:13px;font-family:var(--font-body);white-space:nowrap;border:none;border-radius:6px;padding:6px 14px}.assign-controls button:disabled{opacity:.5;cursor:default}.assign-type-filter{border-bottom:1px solid var(--border);padding:8px 12px}.assign-type-toggle{color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;margin-bottom:6px;font-size:12px;display:flex}.assign-type-toggle input{cursor:pointer}.assign-type-chips{flex-wrap:wrap;gap:4px;display:flex}.assign-type-chip{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:4px;padding:2px 8px;font-size:11px;transition:all .15s}.assign-type-chip:hover{border-color:var(--accent)}.assign-type-chip.active{background:var(--accent);color:var(--bg);border-color:var(--accent)}.assign-file-list{flex-direction:column;gap:8px;display:flex}.assign-file-group{border:1px solid var(--border-subtle);border-radius:8px;overflow:hidden}.assign-file-header{background:var(--bg-tertiary);cursor:pointer;color:var(--text-primary);align-items:center;gap:8px;padding:8px 10px;font-weight:500;display:flex}.assign-file-name{font-family:var(--font-data);font-size:13px}.assign-page-rows{flex-direction:column;display:flex}.assign-page-row{border-top:1px solid var(--border-subtle);align-items:center;gap:8px;padding:4px 10px 4px 28px;font-size:13px;display:flex}.assign-page-row.assigned{background:#6366f10a}.assign-page-num{font-family:var(--font-data);color:var(--text-secondary);min-width:36px}.assign-doc-type{background:var(--bg-surface);color:var(--text-secondary);font-size:11px;font-family:var(--font-data);border-radius:4px;padding:1px 6px}.assign-page-name-input{border:1px solid var(--border);background:var(--bg);min-width:80px;max-width:180px;color:var(--text);border-radius:3px;outline:none;flex:1;padding:2px 6px;font-size:11px}.assign-page-name-input:focus{border-color:var(--accent)}.assign-page-title{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}.assign-badge{border-radius:10px;margin-left:auto;padding:2px 8px;font-size:11px;font-weight:500}.assign-badge.status-assigned{color:#60a5fa;background:#3b82f626}.assign-badge.status-in_progress{color:#facc15;background:#eab30826}.assign-badge.status-completed{color:#4ade80;background:#22c55e26}.assign-badge.status-skipped{color:#9ca3af;background:#9ca3af26}.assign-badge.assign-suggested{color:var(--accent);border:1px dashed var(--accent);background:#89b4fa33}.assign-page-row.suggested{background:#89b4fa0d}.assign-preview-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:3px;min-width:18px;padding:2px 4px;font-size:10px}.assign-preview-btn:hover{background:var(--surface2);color:var(--accent)}.assign-preview-pane{border-top:1px solid var(--border);background:#11111b80;padding:8px 12px 8px 32px}.assign-preview-img{border:1px solid var(--border);border-radius:4px;max-width:100%;max-height:300px}.assign-apply-btn{background:var(--accent)!important;color:var(--bg)!important}.review-description{background:var(--surface);border-bottom:1px solid var(--border);color:var(--text-dim);flex-shrink:0;align-items:center;gap:12px;padding:10px 16px;font-size:12px;display:flex}.review-description strong{color:var(--text)}.review-description-text{flex:1;line-height:1.5}.review-description-close{color:var(--text-muted);cursor:pointer;opacity:.5;background:0 0;border:none;padding:0 4px;font-size:16px}.review-description-close:hover{opacity:1;color:var(--text)}.review-split-layout{flex:1;overflow:hidden}.review-right-panel{flex-direction:column;height:100%;display:flex;overflow-y:auto}.review-image-panel{background:var(--bg-primary);flex-direction:column;height:100%;display:flex}.review-image-toolbar{border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;justify-content:space-between;align-items:center;padding:6px 10px;display:flex}.review-image-label{color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:200px;font-size:11px;font-weight:600;overflow:hidden}.review-image-zoom-controls{align-items:center;gap:4px;display:flex}.review-image-zoom-level{color:var(--text-dim);text-align:center;min-width:36px;font-size:10px}.review-image-viewport{flex:1;justify-content:flex-start;align-items:flex-start;padding:8px;display:flex;overflow:auto}.review-image-viewport img{max-width:none;display:block}.review-image-placeholder{background:var(--bg-primary);justify-content:center;align-items:center;height:100%;display:flex}.review-image-placeholder-text{color:var(--text-muted);flex-direction:column;align-items:center;gap:8px;font-size:13px;display:flex}.review-image-placeholder-icon{opacity:.4;font-size:32px}.review-wizard-bar{border-bottom:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:8px;padding:10px 12px;display:flex}.review-wizard-steps,.review-wizard-step-wrap{align-items:center;gap:4px;display:flex}.review-wizard-step{color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:4px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;transition:all .15s;display:flex}.review-wizard-step.completed{color:var(--green);background:#34d3990d;border-color:#34d3994d}.review-wizard-step.active{color:var(--accent);border-color:var(--accent);background:#4f8cff14;font-weight:600}.review-wizard-step.clickable{cursor:pointer}.review-wizard-step.clickable:hover{background:var(--surface2)}.review-wizard-number{background:var(--surface2);width:20px;height:20px;color:inherit;border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.review-wizard-step.completed .review-wizard-number{background:#34d39926}.review-wizard-step.active .review-wizard-number{background:#4f8cff26}.review-wizard-label{white-space:nowrap}.review-wizard-arrow{color:var(--text-muted);margin:0 4px;font-size:12px}.review-wizard-redo{cursor:pointer;color:var(--text-dim);opacity:.6;background:0 0;border:none;padding:0 2px;font-size:14px;transition:opacity .15s}.review-wizard-redo:hover{opacity:1;color:var(--accent)}.review-wizard-action{background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:4px;margin-left:8px;padding:5px 14px;font-size:12px;font-weight:600;transition:opacity .15s}.review-wizard-action:hover{opacity:.9}.review-wizard-action:disabled{opacity:.5;cursor:default}.review-wizard-publish{background:var(--green);color:#fff;cursor:pointer;border:none;border-radius:4px;align-self:flex-start;padding:6px 20px;font-size:12px;font-weight:700;transition:opacity .15s}.review-wizard-publish:hover{opacity:.9}.review-wizard-publish:disabled{opacity:.5;cursor:default}.review-category-group{border-left:3px solid var(--border);margin-bottom:2px}.review-category-group.category-accent-high{border-left-color:#4caf50}.review-category-group.category-accent-medium{border-left-color:#ffc107}.review-category-group.category-accent-low{border-left-color:#f44336}.review-category-header{cursor:pointer;background:var(--surface);color:var(--text);z-index:2;align-items:center;gap:8px;padding:6px 10px;font-size:12px;font-weight:600;transition:background .15s;display:flex;position:sticky;top:0}.review-category-header:hover{background:var(--surface2)}.review-category-name{flex:1}.review-category-count{color:var(--text-dim);font-size:11px;font-weight:400}.review-category-conf{gap:4px;font-size:10px;font-weight:600;display:flex}.review-row-conf-high>td{background:#4caf5008}.review-row-conf-medium>td{background:#ffc1070a}.review-row-conf-low>td{background:#f443360a}.review-row-conf-none>td{background:#f4433605}.review-row-selected>td{background:#4f8cff14!important}.review-match-assign{color:var(--accent);opacity:.6;cursor:pointer;font-size:11px;text-decoration:underline}.review-match-assign:hover{opacity:1}.review-match-stats-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.review-plan-card{border:1px solid var(--border);background:var(--surface);border-left:3px solid var(--border);border-radius:6px;margin:0 8px 6px;overflow:hidden}.review-plan-card.plan-card-ok{border-left-color:#4caf50}.review-plan-card.plan-card-warn{border-left-color:#ffc107}.review-plan-card-header{cursor:pointer;color:var(--text);align-items:center;gap:8px;padding:8px 12px;font-size:13px;font-weight:600;transition:background .15s;display:flex}.review-plan-card-header:hover{background:var(--surface2)}.review-plan-card-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.review-plan-card-stats{color:var(--text-dim);font-size:11px;font-weight:400}.review-plan-card-view{opacity:.5;font-size:14px;transition:opacity .15s}.review-plan-card-view:hover{opacity:1}.review-plan-card-body{border-top:1px solid var(--border)}.publish-preview-modal{max-width:480px}.publish-preview-stats{flex-wrap:wrap;justify-content:center;gap:12px;padding:16px 0;display:flex}.publish-preview-stat{flex-direction:column;align-items:center;gap:2px;min-width:60px;display:flex}.publish-preview-stat-value{font-size:20px;font-weight:700;font-family:var(--font-mono)}.publish-preview-warnings{background:#fbbf240f;border:1px solid #fbbf2433;border-radius:6px;flex-direction:column;gap:6px;margin:0 0 12px;padding:10px 14px;display:flex}.publish-preview-warning{color:var(--text);align-items:center;gap:8px;font-size:12px;display:flex}.publish-preview-warning-icon{color:#fbbf24;font-size:14px}.review-loading{color:var(--text-dim);justify-content:center;align-items:center;padding:32px 16px;font-size:13px;display:flex}.review-assignments-panel{border:1px solid var(--border);background:var(--surface);border-radius:6px;margin:8px}.review-assignments-header{cursor:pointer;color:var(--text);align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:600;display:flex}.review-assignments-header:hover{background:var(--surface2)}.review-assignments-list{flex-direction:column;gap:2px;padding:0 8px 8px;display:flex}.review-assignment-card{border-left:3px solid var(--border);background:var(--bg-primary);border-radius:4px;justify-content:space-between;align-items:center;padding:6px 10px;font-size:12px;display:flex}.review-assignment-card.assign-status-completed{border-left-color:#4caf50}.review-assignment-card.assign-status-in_progress{border-left-color:#f0c040}.review-assignment-card.assign-status-assigned{border-left-color:#6c8cff}.review-assignment-card.assign-status-skipped{border-left-color:var(--text-muted);opacity:.6}.review-assignment-info{align-items:center;gap:8px;display:flex}.review-assignment-name{font-weight:500}.review-assignment-user{font-size:11px}.review-assignment-meta{align-items:center;gap:4px;display:flex}.review-assignment-badge{text-transform:uppercase;border-radius:3px;padding:1px 4px;font-size:9px;font-weight:700}.badge-annotation{color:#ce93d8;background:#9c27b026}.badge-match{color:#64b5f6;background:#2196f326}.badge-collected{color:#81c784;background:#4caf5026}.review-assignment-status{text-transform:capitalize;font-size:10px}.ann-plan-preview{padding:0 16px 8px}.ann-preview-toggle{background:var(--surface2);border:1px solid var(--border);color:var(--text);cursor:pointer;text-align:left;border-radius:4px;width:100%;padding:6px 12px;font-size:12px}.ann-preview-toggle:hover{background:var(--border)}.ann-preview-container{border:1px solid var(--border);background:#111;border-radius:6px;max-height:50vh;margin-top:8px;overflow:auto}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
