:root{--color-bg: #f5f5f3;--color-surface: #ffffff;--color-surface-low: #f0f0ee;--color-surface-container: #ebecec;--color-surface-container-high: #e3e5e6;--color-border: #d9dcde;--color-border-light: #e6e8e9;--color-input-bg: #ffffff;--color-text: #15171a;--color-text-muted: #4f5760;--color-outline: #7a828a;--color-primary: #2d5a86;--color-primary-rgb: 45, 90, 134;--color-primary-deep: #254b70;--color-primary-container: #254b70;--color-primary-fixed: #dfe8f1;--color-on-primary: #ffffff;--color-secondary: #15171a;--color-on-secondary: #ffffff;--color-success: #10b981;--color-success-bg: #d1fae5;--color-success-text: #065f46;--color-success-border: #a7f3d0;--color-warning-bg: #fef3c7;--color-warning-text: #92400e;--color-error: #b42318;--color-error-strong: #8f1c13;--color-on-error: #ffffff;--color-error-bg: #fbe4e1;--color-error-text: #8f1c13;--color-info-bg: #dfe8f1;--color-info-text: #254b70;--color-info-border: #bcd0e4;--nav-bg: rgba(255, 255, 255, .85);--nav-text: var(--color-text-muted);--nav-text-strong: var(--color-text);--nav-hover-bg: var(--color-surface-container);--nav-active-bg: var(--color-primary-fixed);--nav-active-text: var(--color-primary);--nav-control-bg: var(--color-surface);--nav-control-border: var(--color-border);--nav-menu-bg: var(--color-surface);--color-glow: oklch(.5 .16 260 / 14%);--font-display: Arial, Helvetica, sans-serif;--font-headline: Arial, Helvetica, sans-serif;--font-mono: "Geist Mono", ui-monospace, monospace;--radius-sm: 2px;--radius: 6px;--radius-md: 8px;--radius-lg: 14px;--radius-full: 9999px;--radius-button: 9999px;--shadow-1: 0 4px 6px -1px rgb(0 0 0 / .05)}:root[data-theme=dark]{--color-bg: #0a0a0a;--color-surface: #141414;--color-surface-low: #181818;--color-surface-container: #1c1c1c;--color-surface-container-high: #232323;--color-border: #2e2e2e;--color-border-light: #222222;--color-input-bg: #141414;--color-text: #ededed;--color-text-muted: #a3abb3;--color-outline: #5c636a;--color-primary: #7fa6cf;--color-primary-rgb: 127, 166, 207;--color-primary-deep: #93b5d8;--color-primary-container: #1d2a38;--color-primary-fixed: #1d2a38;--color-on-primary: #0a0a0a;--color-secondary: #ededed;--color-on-secondary: #0a0a0a;--color-success: #4cc38a;--color-success-bg: #173327;--color-success-text: #8fe0b5;--color-success-border: #24513b;--color-warning-bg: #352a14;--color-warning-text: #f0c674;--color-error: #f4877a;--color-error-strong: #f8a99f;--color-on-error: #0a0a0a;--color-error-bg: #3a1d1b;--color-error-text: #f8a99f;--color-info-bg: #16212d;--color-info-text: #a9c6e6;--color-info-border: #2a3d52;--nav-bg: rgba(10, 10, 10, .85);--color-glow: oklch(.75 .14 260 / 18%);color-scheme:dark}*{box-sizing:border-box}body{margin:0;font-family:var(--font-display);background-color:var(--color-bg);min-height:100vh;background-image:radial-gradient(circle closest-side,var(--color-glow),transparent),radial-gradient(circle closest-side,var(--color-glow),transparent);background-size:60% 60%,50% 50%;background-repeat:no-repeat;background-position:10% 10%,90% 90%;background-attachment:fixed;animation:mesh-drift 16s ease-in-out infinite alternate;color:var(--color-text);font-size:14px;line-height:20px}a{color:var(--color-primary)}@keyframes mesh-drift{0%{background-position:10% 10%,90% 90%}to{background-position:35% 30%,65% 75%}}@media (prefers-reduced-motion: reduce){body{animation:none}}h1,h2,h3{font-family:var(--font-headline);font-weight:700;letter-spacing:-.01em;color:var(--color-text);margin:0 0 4px}h1{font-size:28px;line-height:36px}h2{font-size:22px;line-height:30px}h3{font-size:18px;line-height:26px}.icon{font-variation-settings:"opsz" 20;font-size:18px;line-height:1;vertical-align:-3px}.page{max-width:960px;margin:0 auto;padding:32px 24px}.page-wide{max-width:1200px}.dashboard-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:24px}.dashboard-tile{display:flex;flex-direction:column;align-items:center;gap:8px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:32px 16px;text-decoration:none;color:inherit;transition:border-color .15s ease}.dashboard-tile:hover{border-color:var(--color-primary)}.dashboard-tile .icon{font-size:32px;color:var(--color-primary)}.dashboard-tile-count{font-size:36px;font-weight:600}.dashboard-tile-label{color:var(--color-text-muted)}.dashboard-tile-loading{min-height:140px}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-content{flex:1;min-width:0}.topnav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:4px;padding:0 24px;height:64px;background:var(--nav-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border);flex-shrink:0;position:sticky;top:0;z-index:50}.topnav-brand{display:flex;align-items:center;gap:8px;color:var(--nav-text-strong);font-family:var(--font-headline);font-weight:700;font-size:19px;letter-spacing:-.01em}.topnav-logo{width:40px;height:40px}.topnav-center{display:flex;gap:4px;justify-self:center}.topnav>a{justify-self:end;color:var(--nav-text);text-decoration:none;font-size:13px;font-weight:700;letter-spacing:.02em;padding:9px 16px;border-radius:var(--radius-full);display:inline-flex;align-items:center;gap:6px}.topnav>a:hover{background:var(--nav-hover-bg);color:var(--nav-text-strong)}.topnav-center>a,.topnav-dropdown>span{color:var(--nav-text);text-decoration:none;font-size:13px;font-weight:700;letter-spacing:.02em;padding:9px 16px;border-radius:var(--radius-full);cursor:pointer;display:inline-flex;align-items:center;gap:4px}.topnav-center>a:hover,.topnav-dropdown>span:hover{background:var(--nav-hover-bg);color:var(--nav-text-strong)}.topnav-center>a.active,.topnav-dropdown>span.active{background:var(--nav-active-bg);color:var(--nav-active-text)}.topnav-dropdown{position:relative}.topnav-dropdown .icon{font-size:16px;vertical-align:-2px}.tenant-switcher{background:var(--nav-hover-bg);color:var(--nav-text-strong);border:1px solid var(--nav-control-border);border-radius:var(--radius-full);font-size:13px;font-weight:700;letter-spacing:.02em;padding:8px 14px;margin-right:8px}.tenant-switcher option{color:var(--color-text)}.topnav-dropdown-menu{display:none;position:absolute;top:100%;left:0;flex-direction:column;min-width:190px;background:var(--nav-menu-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:6px;box-shadow:0 8px 16px #00000014;z-index:10}.topnav-dropdown:hover .topnav-dropdown-menu{display:flex}.topnav-dropdown-menu a{color:var(--nav-text);text-decoration:none;font-size:14px;padding:8px 12px;border-radius:var(--radius);white-space:nowrap}.topnav-dropdown-menu a:hover{background:var(--nav-hover-bg);color:var(--nav-text-strong)}.topnav-dropdown-menu a.active{background:var(--nav-active-bg);color:var(--nav-active-text);font-weight:600}.topnav-end{justify-self:end;display:flex;align-items:center}.nav-search{display:flex;align-items:center;gap:6px;margin-right:8px;padding:0 12px;border-radius:var(--radius-full);background:var(--nav-control-bg);border:1px solid var(--nav-control-border);color:var(--nav-text)}.nav-search:focus-within{background:var(--nav-control-bg);border-color:var(--color-primary)}.nav-search input{width:180px;padding:7px 0;border:none;background:transparent;color:var(--nav-text-strong);font-size:13px}.nav-search input::placeholder{color:var(--nav-text)}.nav-search input:focus-visible{outline:none}.search-form{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.search-form-input{flex:1 1 320px;min-width:0}.search-tip{margin:0 0 16px;font-size:13px;color:var(--color-text-muted)}.search-status{font-size:14px;color:var(--color-text-muted)}.search-results{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.search-result{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:14px 16px}.search-result-header{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:8px}.search-result-title{font-size:15px;font-weight:700}.search-result-meta{font-size:13px;color:var(--color-text-muted)}.search-hits{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.search-hit-source{margin-bottom:2px;font-size:12px;font-weight:600;color:var(--color-text-muted)}.search-snippet{margin:0;font-size:13px;line-height:1.5;overflow-wrap:anywhere}.search-snippet mark{background:var(--color-warning-bg);color:inherit;padding:0 1px;border-radius:2px}.search-more{margin-top:8px;font-size:12px;color:var(--color-text-muted)}.clause-block-targeted{outline:2px solid var(--color-primary);outline-offset:2px;scroll-margin-top:80px}.notif{position:relative}.notif-button{position:relative;background:transparent;color:var(--nav-text);padding:8px;border-radius:var(--radius-full)}.notif-button:hover:not(:disabled),.notif-button[aria-expanded=true]{background:var(--nav-hover-bg);color:var(--nav-text-strong)}.notif-button:focus-visible{outline-color:var(--color-primary)}.notif-badge{position:absolute;top:2px;right:0;min-width:18px;height:18px;padding:0 5px;box-sizing:border-box;border-radius:var(--radius-full);background:var(--color-error);color:var(--color-on-error);font-size:11px;font-weight:700;line-height:18px;text-align:center}.notif-panel{position:absolute;right:0;top:calc(100% + 8px);width:min(360px,calc(100vw - 32px));background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-md);box-shadow:0 8px 24px #0000002e;overflow:hidden;z-index:20}.notif-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--color-border-light);font-size:14px;font-weight:700}.notif-header .btn-ghost:disabled{background:transparent;color:var(--color-outline)}.notif-list{list-style:none;margin:0;padding:0;max-height:420px;overflow-y:auto}.notif-item{display:flex;align-items:flex-start;gap:12px;width:100%;text-align:left;background:transparent;color:var(--color-text);border-radius:0;padding:12px 16px;border-bottom:1px solid var(--color-border-light)}.notif-item:hover:not(:disabled){background:var(--color-surface-low)}.notif-item-unread{background:var(--color-surface-low)}.notif-item-unread .notif-title{font-weight:700}.notif-icon-ready{color:var(--color-success)}.notif-icon-error{color:var(--color-error)}.notif-text{display:flex;flex-direction:column;gap:2px;min-width:0}.notif-title{font-size:14px;overflow-wrap:anywhere}.notif-body{font-size:13px;color:var(--color-text-muted);overflow-wrap:anywhere}.notif-time{font-size:12px;color:var(--color-outline)}.notif-empty{padding:16px;font-size:14px;color:var(--color-text-muted)}.notif-error{color:var(--color-error-text)}button{cursor:pointer;border:none;border-radius:var(--radius-button);padding:9px 16px;background:var(--color-primary);color:var(--color-on-primary);font-family:var(--font-display);font-size:14px;font-weight:500;display:inline-flex;align-items:center;gap:6px;transition:background-color .12s ease}button:hover:not(:disabled){background:var(--color-primary-deep)}button:disabled{background:var(--color-outline);color:#fff;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn-link-block{display:block;width:100%;box-sizing:border-box;text-align:center;text-decoration:none;border-radius:var(--radius-button);padding:11px 16px;background:var(--color-primary);color:var(--color-on-primary);font-family:var(--font-display);font-size:14px;font-weight:500;transition:background-color .12s ease}.btn-link-block:hover{background:var(--color-primary-deep);color:var(--color-on-primary);text-decoration:none}.btn-secondary{background:var(--color-surface);color:var(--color-text-muted);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-container-high);color:var(--color-text)}.btn-ghost{background:transparent;color:var(--color-primary);padding:6px 10px}.btn-ghost:hover:not(:disabled){background:var(--color-surface-low);color:var(--color-primary)}.btn-danger{background:var(--color-error);color:var(--color-on-error)}.btn-danger:hover:not(:disabled){background:var(--color-error-strong)}.btn-sm{padding:5px 10px;font-size:12px}input,select{padding:9px 12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);font-family:var(--font-display);font-size:14px;color:var(--color-text)}input:focus,select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.15)}table{width:100%;border-collapse:separate;border-spacing:0;background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-md);overflow:hidden}th{text-align:left;padding:12px 16px;border-bottom:1px solid var(--color-border-light);font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-muted);background:var(--color-surface-low)}td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--color-border-light);font-size:14px}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--color-surface-low)}.entity-group-row{cursor:pointer;background:var(--color-border-light)}.entity-group-row:hover{background:var(--color-surface-container)}.caret{display:inline-flex;margin-right:4px;color:var(--color-text-muted);transition:transform .15s ease}.caret-open{transform:rotate(90deg)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--radius-full);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.badge-modified{background:var(--color-warning-bg);color:var(--color-warning-text)}.badge-removed{background:var(--color-error-bg);color:var(--color-error-text)}.badge-added{background:var(--color-info-bg);color:var(--color-info-text)}.badge-unchanged{background:var(--color-border-light);color:var(--color-text-muted)}.badge-ready{background:var(--color-success-bg);color:var(--color-success-text)}.badge-processing{background:var(--color-warning-bg);color:var(--color-warning-text)}.badge-error{background:var(--color-error-bg);color:var(--color-error-text)}.badge-uploaded{background:var(--color-border-light);color:var(--color-text-muted)}.customer-logo{width:32px;height:32px;border-radius:50%;object-fit:cover;display:block}.customer-logo-placeholder{display:flex;align-items:center;justify-content:center;background:var(--color-border-light);color:var(--color-text-muted);font-weight:600;font-size:13px}.group-row-logo{display:inline-block;vertical-align:middle;margin-right:8px}.group-row-logo .customer-logo,.group-row-logo .customer-logo-placeholder{width:22px;height:22px;font-size:11px}.logo-upload{display:inline-block;cursor:pointer;border-radius:50%;transition:opacity .15s}.logo-upload:hover{opacity:.7}.doc-headers{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.doc-header{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface)}.doc-header-master{background:var(--color-surface-low);border-color:var(--color-info-border)}.doc-header-customer{background:var(--color-success-bg);border-color:var(--color-success-border)}.doc-header-tag{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-muted);white-space:nowrap}.doc-header-name{font-family:var(--font-mono);font-size:13px;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.doc-download-btn{flex-shrink:0}.clause-column-headers{margin-bottom:8px}.clause-column-headers .doc-header-tag{padding:0 16px}.toolbar{display:flex;gap:20px;margin-bottom:16px;flex-wrap:wrap}.toggle-group{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px 16px;background:var(--color-surface)}.toggle-group legend{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-muted);padding:0 4px}.toggle-buttons{display:flex;gap:8px}.toggle-hint{margin:8px 0 0;font-size:12px;color:var(--color-text-muted);max-width:260px}.clause-section{display:inline-block;font-family:var(--font-mono);font-size:12px;font-weight:500;color:var(--color-text-muted);margin-right:6px}.risk-badge-low{background:var(--color-success-bg);color:var(--color-success-text)}.risk-badge-medium{background:var(--color-warning-bg);color:var(--color-warning-text)}.risk-badge-high{background:var(--color-error-bg);color:var(--color-error-text)}.clause-block{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:16px;overflow:hidden;background:var(--color-surface)}.clause-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--color-border-light);cursor:pointer}.clause-body{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--color-border)}.clause-side{background:var(--color-surface);padding:14px 16px;font-size:13px;white-space:pre-wrap}.clause-side.empty{color:var(--color-text-muted);font-style:italic}.source-item{border-radius:var(--radius)}.source-item-text{margin:6px 0 4px 4px;padding:10px 12px;background:var(--color-bg);border-left:2px solid var(--color-border);border-radius:var(--radius-sm);font-size:12px;color:var(--color-text);white-space:pre-wrap}.clause-side-section{font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--color-text-muted);margin-bottom:4px}.word-insert{background:var(--color-info-bg);color:var(--color-info-text)}.word-delete{background:var(--color-error-bg);color:var(--color-error-text);text-decoration:line-through}.word-punctuation{outline:1px dashed currentColor;outline-offset:1px}.summary-panel{background:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--color-primary);border-radius:var(--radius-md);padding:16px 20px;margin-bottom:20px;font-size:14px;line-height:1.5}.summary-panel-title{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-muted);display:inline-flex;align-items:center;gap:6px}.summary-markdown{margin-top:8px}.summary-markdown h1,.summary-markdown h2,.summary-markdown h3{font-size:14px;margin:14px 0 6px;color:var(--color-text)}.summary-markdown p{margin:0 0 10px}.summary-markdown ul,.summary-markdown ol{margin:0 0 10px;padding-left:20px}.summary-markdown li{margin-bottom:4px}.summary-markdown strong{font-weight:700}.summary-collapsed{max-height:90px;overflow:hidden;position:relative;-webkit-mask-image:linear-gradient(to bottom,black 50%,transparent 100%);mask-image:linear-gradient(to bottom,black 50%,transparent 100%)}.print-only{display:none}.print-header{margin-bottom:14px}.print-header-title{font-size:18px;font-weight:700;margin-bottom:8px}.print-meta{display:grid;grid-template-columns:max-content 1fr;gap:2px 16px;margin:0;font-size:11px}.print-meta dt{font-weight:600;color:var(--color-text-muted)}.print-meta dd{margin:0}@media print{@page{size:A4 landscape;margin:12mm}html,body{background:#fff}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}.no-print,.topnav{display:none!important}.print-only{display:block}.app-shell{display:block;min-height:0}.page,.page-wide{max-width:none;margin:0;padding:0}.clause-column-headers{break-after:avoid}.clause-block{break-inside:avoid;margin-bottom:8px}.clause-header{cursor:default;padding:6px 10px}.clause-side{padding:8px 10px;font-size:10.5px}.summary-collapsed{max-height:none;overflow:visible;-webkit-mask-image:none;mask-image:none}}.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.chat-page{max-width:1400px}.chat-layout{display:flex;gap:24px;align-items:flex-start}.chat-sidebar{width:220px;flex-shrink:0;display:flex;flex-direction:column;gap:12px;position:sticky;top:24px}.chat-sidebar-list{display:flex;flex-direction:column;gap:2px;max-height:calc(100vh - 160px);overflow-y:auto}.chat-sidebar-item{background:transparent;border-radius:var(--radius);display:flex;align-items:center;gap:2px;width:100%}.chat-sidebar-item:hover{background:var(--color-surface-low)}.chat-sidebar-item.active{background:var(--color-surface-container)}.chat-sidebar-item-main{background:transparent;color:var(--color-text);padding:8px 10px;display:flex;flex:1;min-width:0;flex-direction:column;align-items:flex-start;gap:2px;text-align:left}.chat-sidebar-item-main:hover:not(:disabled){background:transparent}.chat-sidebar-item-close{background:transparent;color:var(--color-text-muted);padding:6px;flex-shrink:0;margin-right:4px;opacity:0}.chat-sidebar-item:hover .chat-sidebar-item-close{opacity:1}.chat-sidebar-item-close:hover:not(:disabled){color:var(--color-error-text);background:var(--color-error-bg)}.chat-sidebar-item-title{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.chat-sidebar-item-date{font-size:11px;color:var(--color-text-muted)}.chat-main{flex:1;min-width:0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;display:flex;align-items:center;justify-content:center}.modal{background:var(--color-surface);border-radius:var(--radius-md);padding:24px;width:420px;display:flex;flex-direction:column;gap:12px;box-shadow:0 20px 40px #0003}
