:root{--brand-primary:#173541;--brand-secondary:#557c86;--brand-tertiary:#7299a8;--brand-light:#85adbb;--brand-accent:#b49796;--brand-bg:#fafaf8;--brand-surface:#fff;--brand-border:color-mix(in srgb, var(--brand-secondary) 25%, white);--brand-divider:color-mix(in srgb, var(--brand-secondary) 15%, white);--brand-light-tint:color-mix(in srgb, var(--brand-light) 15%, white);--brand-accent-tint:color-mix(in srgb, var(--brand-accent) 20%, white);--brand-hover-bg:color-mix(in srgb, var(--brand-secondary) 10%, white);--color-type-risk:color-mix(in srgb, var(--brand-accent) 90%, black);--color-type-deadline:color-mix(in srgb, var(--brand-secondary) 80%, black);--color-type-obligation:color-mix(in srgb, var(--brand-primary) 70%, white);--color-type-clause:var(--brand-tertiary);--color-risk-high:color-mix(in srgb, var(--brand-accent) 80%, black);--color-risk-medium:var(--brand-accent);--color-risk-low:var(--brand-secondary);--color-risk-high-bg:color-mix(in srgb, var(--color-risk-high) 15%, white);--color-risk-medium-bg:color-mix(in srgb, var(--color-risk-medium) 15%, white);--color-risk-low-bg:color-mix(in srgb, var(--color-risk-low) 15%, white);--color-text-main:var(--brand-primary);--color-text-muted:var(--brand-secondary);--color-text-inverse:#fff;--color-error:color-mix(in srgb, var(--brand-accent) 70%, black);--color-error-bg:color-mix(in srgb, var(--brand-accent) 15%, white);--spacing-1:8px;--spacing-2:16px;--spacing-3:24px;--spacing-4:32px;--spacing-5:40px;--spacing-6:48px;--spacing-8:64px;--radius-none:0px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-pill:9999px;--shadow-sm:0 1px 2px 0 #1735410d;--shadow-md:0 4px 6px -1px #1735411a, 0 2px 4px -2px #1735411a;--shadow-focus:0 0 0 3px color-mix(in srgb, var(--brand-light) 40%, white);--transition-fast:.15s ease-out;--transition-normal:.2s ease-out}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--brand-bg);color:var(--color-text-main);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.5}a{color:var(--brand-primary);text-decoration:none}button{font-family:inherit}.navbar{padding:var(--spacing-2) var(--spacing-4);background-color:var(--brand-surface);border-bottom:1px solid var(--brand-border);z-index:100;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.nav-brand{color:var(--brand-primary);letter-spacing:-.02em;font-size:1.25rem;font-weight:700}.nav-links{gap:var(--spacing-3);display:flex}.nav-link{color:var(--color-text-muted);padding:var(--spacing-1) var(--spacing-2);transition:all var(--transition-fast);border-bottom:2px solid #0000;font-weight:500}.nav-link:hover{color:var(--color-text-main)}.nav-link.active{color:var(--brand-primary);border-bottom-color:var(--brand-primary)}.app-layout{flex-direction:column;min-height:100vh;display:flex}.content{padding:var(--spacing-4);flex:1;width:100%;max-width:1400px;margin:0 auto}.btn{padding:0 var(--spacing-3);border-radius:var(--radius-md);cursor:pointer;min-height:40px;transition:all var(--transition-fast);border:1px solid #0000;justify-content:center;align-items:center;font-size:.95rem;font-weight:500;display:inline-flex}.btn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--brand-primary);color:var(--color-text-inverse)}.btn-primary:hover:not(:disabled){background-color:color-mix(in srgb, var(--brand-primary) 85%, black)}.btn-secondary{color:var(--color-text-main);border-color:var(--brand-secondary);background-color:#0000}.btn-secondary:hover:not(:disabled){background-color:var(--brand-hover-bg)}.btn-ghost{color:var(--color-text-muted);background-color:#0000}.btn-ghost:hover:not(:disabled){background-color:var(--brand-hover-bg);color:var(--color-text-main)}.upload-container{max-width:640px;margin:var(--spacing-8) auto 0;text-align:center}.upload-hero h1{margin-bottom:var(--spacing-2);letter-spacing:-.02em;color:var(--brand-primary);font-size:2.5rem}.upload-hero p{color:var(--color-text-muted);margin-bottom:var(--spacing-6);font-size:1.1rem}.dropzone{background:var(--brand-surface);border:2px dashed var(--brand-secondary);border-radius:var(--radius-xl);padding:var(--spacing-6) var(--spacing-4);cursor:pointer;transition:all var(--transition-normal);justify-content:center;align-items:center;gap:var(--spacing-2);flex-direction:column;display:flex}.dropzone:hover,.dropzone.drag-over{border-color:var(--brand-primary);background-color:var(--brand-hover-bg)}.dropzone-text{color:var(--brand-primary);font-size:1.1rem;font-weight:500}.dropzone-hint{color:var(--color-text-muted);font-size:.9rem}.file-input{display:none}.file-preview{background:var(--brand-surface);border:1px solid var(--brand-border);border-radius:var(--radius-lg);padding:var(--spacing-4);margin-top:var(--spacing-4);text-align:left;box-shadow:var(--shadow-sm)}.file-info{align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-4);display:flex}.file-name{color:var(--brand-primary);font-size:1.1rem;font-weight:600}.file-meta{color:var(--color-text-muted);font-size:.9rem}.file-actions{gap:var(--spacing-2);display:flex}.progress-stepper{margin-top:var(--spacing-4);text-align:left}.step{align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-2);color:var(--color-text-muted);display:flex}.step.active{color:var(--brand-primary);font-weight:600}.step.completed{color:var(--brand-secondary)}.spinner{border:2px solid color-mix(in srgb, var(--brand-primary) 20%, transparent);border-top-color:var(--brand-primary);border-radius:var(--radius-pill);width:16px;height:16px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error-banner{background-color:var(--color-error-bg);border:1px solid color-mix(in srgb, var(--color-error) 40%, white);color:var(--color-error);padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-md);margin-top:var(--spacing-4);text-align:left;justify-content:space-between;align-items:center;display:flex}.dashboard-container{gap:var(--spacing-4);flex-direction:column;height:calc(100vh - 180px);display:flex}.summary-bar{gap:var(--spacing-3);background:var(--brand-surface);padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-xl);border:1px solid var(--brand-border);box-shadow:var(--shadow-sm);flex-wrap:wrap;align-items:center;display:flex}.summary-title{margin-right:auto;font-size:1.1rem;font-weight:600}.stat-chip{align-items:center;gap:var(--spacing-1);border-radius:var(--radius-sm);background-color:var(--brand-bg);color:var(--color-text-main);border:1px solid var(--brand-border);padding:4px 10px;font-size:.85rem;font-weight:500;display:flex}.pill{border-radius:var(--radius-pill);background-color:var(--brand-surface);justify-content:center;align-items:center;height:20px;padding:0 8px;font-size:.75rem;font-weight:600;display:inline-flex}.stat-chip.risk{background-color:color-mix(in srgb, var(--color-type-risk) 10%, white);border-color:color-mix(in srgb, var(--color-type-risk) 30%, white);color:var(--color-type-risk)}.stat-chip.deadline{background-color:color-mix(in srgb, var(--color-type-deadline) 10%, white);border-color:color-mix(in srgb, var(--color-type-deadline) 30%, white);color:var(--color-type-deadline)}.stat-chip.obligation{background-color:color-mix(in srgb, var(--color-type-obligation) 10%, white);border-color:color-mix(in srgb, var(--color-type-obligation) 30%, white);color:var(--color-type-obligation)}.stat-chip.clause{background-color:color-mix(in srgb, var(--color-type-clause) 10%, white);border-color:color-mix(in srgb, var(--color-type-clause) 30%, white);color:var(--color-type-clause)}.stat-chip.risk .pill{color:var(--color-type-risk)}.stat-chip.deadline .pill{color:var(--color-type-deadline)}.stat-chip.obligation .pill{color:var(--color-type-obligation)}.stat-chip.clause .pill{color:var(--color-type-clause)}.dashboard-columns{gap:var(--spacing-4);flex:1;display:flex;overflow:hidden}.sidebar{background:var(--brand-surface);border:1px solid var(--brand-border);border-radius:var(--radius-xl);width:40%;box-shadow:var(--shadow-sm);flex-direction:column;display:flex;overflow:hidden}.main-content{background:var(--brand-surface);border:1px solid var(--brand-border);border-radius:var(--radius-xl);width:60%;box-shadow:var(--shadow-sm);flex-direction:column;display:flex;overflow:hidden}@media (width<=900px){.dashboard-columns{flex-direction:column}.sidebar,.main-content{width:100%;height:50vh}.dashboard-container{height:auto}}.tabs{border-bottom:1px solid var(--brand-divider);background:var(--brand-surface);z-index:10;display:flex;position:sticky;top:0}.tab{padding:var(--spacing-2) var(--spacing-1);cursor:pointer;color:var(--color-text-muted);justify-content:center;align-items:center;gap:var(--spacing-1);transition:all var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;flex:1;font-weight:500;display:flex}.tab:hover{color:var(--color-text-main);background-color:var(--brand-hover-bg)}.tab:focus-visible{box-shadow:inset var(--shadow-focus);outline:none}.tab.active{color:var(--brand-primary);border-bottom-color:var(--brand-primary)}.tab-badge{background:var(--brand-bg);color:var(--color-text-muted);border-radius:var(--radius-pill);border:1px solid var(--brand-border);padding:2px 6px;font-size:.75rem}.tab.active .tab-badge{background:var(--brand-light-tint);color:var(--brand-primary);border-color:var(--brand-light)}.findings-list{padding:var(--spacing-3);gap:var(--spacing-2);flex-direction:column;flex:1;display:flex;overflow-y:auto}.finding-card{padding:var(--spacing-3);border:1px solid color-mix(in srgb, var(--brand-secondary) 15%, white);border-radius:var(--radius-lg);cursor:pointer;background:var(--brand-surface);transition:all var(--transition-fast);border-left-width:3px}.finding-card.type-risk{border-left-color:var(--color-type-risk)}.finding-card.type-deadline{border-left-color:var(--color-type-deadline)}.finding-card.type-obligation{border-left-color:var(--color-type-obligation)}.finding-card.type-key_clause{border-left-color:var(--color-type-clause)}.finding-card:hover{border-color:var(--brand-tertiary);box-shadow:var(--shadow-sm)}.finding-card:focus-visible{box-shadow:var(--shadow-focus);outline:none}.finding-card.selected{background:var(--brand-light-tint);border-color:var(--brand-light)}.finding-header{margin-bottom:var(--spacing-1);justify-content:space-between;align-items:flex-start;gap:var(--spacing-2);display:flex}.finding-title{color:var(--brand-primary);font-size:.95rem;font-weight:600;line-height:1.3}.finding-summary{color:var(--color-text-muted);margin-bottom:var(--spacing-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.85rem;display:-webkit-box;overflow:hidden}.finding-meta{color:var(--color-text-muted);align-items:center;gap:var(--spacing-2);font-size:.75rem;display:flex}.location-label{background:var(--brand-bg);border-radius:var(--radius-sm);border:1px solid var(--brand-border);padding:2px 6px;font-weight:500}.badge{border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;padding:2px 6px;font-size:.7rem;font-weight:600}.badge-high{background:var(--color-risk-high-bg);color:var(--color-risk-high)}.badge-medium{background:var(--color-risk-medium-bg);color:var(--color-risk-medium)}.badge-low{background:var(--color-risk-low-bg);color:var(--color-risk-low)}.empty-state{padding:var(--spacing-6) var(--spacing-4);text-align:center;color:var(--color-text-muted);flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex}.empty-icon{width:48px;height:48px;margin-bottom:var(--spacing-2);color:var(--brand-tertiary);opacity:.5}.viewer-header{padding:var(--spacing-2) var(--spacing-4);border-bottom:1px solid var(--brand-divider);background:var(--brand-surface);justify-content:space-between;align-items:center;display:flex}.viewer-title{font-size:1rem;font-weight:600}.viewer-hint{color:var(--color-text-muted);font-size:.85rem}.viewer-content{padding:var(--spacing-4);background:var(--brand-bg);flex:1;overflow-y:auto}.segment-block{background:var(--brand-surface);border:1px solid var(--brand-border);border-radius:var(--radius-lg);padding:var(--spacing-4);margin-bottom:var(--spacing-3);box-shadow:var(--shadow-sm);white-space:pre-wrap;max-width:70ch;color:var(--color-text-main);margin-left:auto;margin-right:auto;line-height:1.7;position:relative}.segment-label{background:var(--brand-bg);color:var(--color-text-muted);border-radius:var(--radius-pill);border:1px solid var(--brand-border);margin-bottom:var(--spacing-2);padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-block;position:sticky;top:0}.highlight-mark{background:var(--brand-accent-tint);border-radius:var(--radius-sm);color:inherit;padding:0 2px}.pulse-animation{animation:2s ease-out pulse-bg}@keyframes pulse-bg{0%{background-color:color-mix(in srgb, var(--brand-accent) 40%, white)}to{background-color:var(--brand-accent-tint)}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.history-container{max-width:800px;margin:0 auto}.history-container h2{margin-bottom:var(--spacing-4);color:var(--brand-primary);font-size:1.5rem}.history-list{gap:var(--spacing-2);flex-direction:column;display:flex}.history-card{padding:var(--spacing-3) var(--spacing-4);background:var(--brand-surface);border:1px solid var(--brand-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);transition:all var(--transition-normal);color:inherit;justify-content:space-between;align-items:center;text-decoration:none;display:flex}.history-card:hover{box-shadow:var(--shadow-md);border-color:var(--brand-tertiary)}.history-card:focus-visible{box-shadow:var(--shadow-focus);outline:none}.history-info{gap:var(--spacing-1);flex-direction:column;display:flex}.history-filename{color:var(--brand-primary);font-size:1.1rem;font-weight:600}.history-meta{color:var(--color-text-muted);align-items:center;gap:var(--spacing-2);font-size:.85rem;display:flex}.skeleton{background:linear-gradient(90deg, var(--brand-border) 25%, var(--brand-bg) 50%, var(--brand-border) 75%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.5s infinite loading}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{width:100%;height:1em;margin-bottom:.5em}.skeleton-title{width:50%;height:1.5em;margin-bottom:1em}
