:root{--background:#f7f8fa;--surface:#ffffff;--surface-subtle:#f1f5f7;--text:#172126;--muted:#62727c;--line:#dce4e8;--line-strong:#c7d3d9;--accent:#0f766e;--accent-dark:#115e59;--accent-soft:#e6f4f1;--warn:#9a5b13;--warn-soft:#fff6df;--danger:#a33a31;--shadow:0 18px 44px rgba(23,33,38,0.08);--radius:8px}*{box-sizing:border-box}body{margin:0;background:var(--background);color:var(--text);font-family:Arial,Helvetica Neue,sans-serif;letter-spacing:0}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;display:flex;align-items:stretch}.app-content{flex:1 1;min-width:0}.app-content,.side-nav{display:flex;flex-direction:column}.side-nav{position:-webkit-sticky;position:sticky;top:0;align-self:flex-start;height:100vh;width:248px;flex-shrink:0;gap:22px;padding:18px 16px;background:#fbfcfd;-webkit-border-end:1px solid var(--line);border-inline-end:1px solid var(--line)}.side-brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:17px;padding:4px 6px}.side-links{display:flex;flex-direction:column;gap:4px}.side-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius);border:1px solid transparent;color:var(--text);font-weight:600;font-size:14px}.side-link:hover{background:var(--surface);border-color:var(--line)}.side-link.active{background:var(--accent-soft);border-color:var(--accent-soft);color:var(--accent-dark)}.side-link.sub{font-weight:500;font-size:13.5px}.side-section{margin-top:14px;display:flex;flex-direction:column;gap:4px}.side-section-label{display:flex;align-items:center;gap:7px;padding:0 12px 4px;font-size:11.5px;font-weight:700;letter-spacing:.02em;color:var(--muted);text-transform:uppercase}.side-foot{margin-top:auto;gap:10px}.side-foot,.side-group{display:flex;flex-direction:column}.side-group-toggle{width:100%;background:none;border:1px solid transparent;cursor:pointer;text-align:start}.side-group-toggle:hover{background:var(--surface);border-color:var(--line)}.side-group-toggle.active{background:var(--accent-soft);border-color:var(--accent-soft);color:var(--accent-dark)}.side-group-label{flex:1 1}.side-chevron{flex-shrink:0;color:var(--muted);transition:transform .2s ease}.side-chevron.open{transform:rotate(180deg)}.side-submenu{display:flex;flex-direction:column;gap:2px;padding:4px 0 4px 10px;margin-top:2px;-webkit-border-start:2px solid var(--line);border-inline-start:2px solid var(--line);-webkit-margin-start:20px;margin-inline-start:20px}.side-submenu-empty{padding:6px 12px;font-size:12.5px;color:var(--muted)}.side-case-item{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:calc(var(--radius) - 2px);border:1px solid transparent;background:none;cursor:pointer;text-align:start;width:100%;color:var(--text);font-size:13px;font-weight:500;line-height:1.3}.side-case-item:hover{background:var(--surface);border-color:var(--line)}.side-case-item.active{background:var(--accent-soft);border-color:var(--accent-soft);color:var(--accent-dark)}.side-case-dot{flex-shrink:0;width:6px;height:6px;border-radius:50%;background:var(--line-strong)}.side-case-item.active .side-case-dot{background:var(--accent)}.side-case-title{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:18px}.brand-mark{width:34px;height:34px;border-radius:8px;background:var(--text);color:white;display:grid;place-items:center}.case-list{gap:8px}.case-link,.case-list{display:flex;flex-direction:column}.case-link{border:1px solid transparent;border-radius:var(--radius);padding:11px;gap:5px;width:100%;background:none;color:inherit;font:inherit;text-align:start;cursor:pointer}.case-link.active,.case-link:hover{background:var(--surface);border-color:var(--line)}.case-link strong{font-size:14px}.case-link span{color:var(--muted);font-size:12px}.main{min-width:0;padding:24px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.topbar h1{margin:0;font-size:27px;line-height:1.15}.topbar p{margin:6px 0 0;color:var(--muted);font-size:14px}.actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.button{min-height:38px;border:1px solid var(--line-strong);background:var(--surface);color:var(--text);border-radius:var(--radius);padding:0 13px;display:inline-flex;align-items:center;gap:7px;cursor:pointer;font-weight:700;font-size:13px}.button.disabled,.button:disabled{cursor:not-allowed;opacity:.65}.button.primary{background:var(--accent);border-color:var(--accent);color:white}.button.danger{background:var(--danger,#c0392b);border-color:var(--danger,#c0392b);color:white}.button.danger:hover{border-color:var(--danger,#c0392b);filter:brightness(.94)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.button:hover{border-color:var(--accent)}.workspace-grid{display:grid;grid-template-columns:minmax(260px,1fr) minmax(440px,2fr) minmax(260px,1fr);grid-gap:16px;gap:16px;align-items:start}.sources-col,.tools-col{display:flex;flex-direction:column;gap:16px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.panel-header{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px}.panel-header h2{margin:0;font-size:16px}.panel-header span{color:var(--muted);font-size:12px}.panel-body{padding:18px;overflow-x:auto}.panel-subnote{color:var(--muted);font-size:12px;margin-bottom:12px}.security-card{display:flex;flex-direction:column;gap:5px;border:1px solid var(--line);border-radius:var(--radius);padding:12px;background:var(--surface-subtle)}.security-card strong{font-size:13px}.security-card span{color:var(--muted);font-size:12px}.sources-col .data-table{font-size:12px}.sources-col .data-table td,.sources-col .data-table th{padding:8px 5px}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.metric{border:1px solid var(--line);border-radius:var(--radius);padding:13px;background:var(--surface-subtle)}.metric span{color:var(--muted);font-size:12px}.metric strong{display:block;margin-top:6px;font-size:20px}.panel-header-main{display:flex;align-items:center;gap:14px;min-width:0}.header-stats{display:flex;align-items:stretch;gap:8px}.header-stat{display:flex;flex-direction:column;justify-content:center;border:1px solid var(--line);border-radius:var(--radius);padding:5px 11px;background:var(--surface-subtle);line-height:1.2}.header-stat span{color:var(--muted);font-size:11px}.header-stat strong{font-size:16px}@media (max-width:720px){.header-stats{flex-wrap:wrap}}.tool-row{display:grid;grid-template-columns:1fr;grid-gap:9px;gap:9px;margin-top:14px}.tool-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius);padding:12px;background:var(--surface);text-align:right;cursor:pointer;min-height:74px}.tool-card strong{display:block;font-size:13px;margin-top:8px}.tool-card span{color:var(--muted);font-size:12px}.tool-card:disabled{opacity:.55;cursor:not-allowed}.tool-row-head{display:flex;justify-content:flex-start;margin-top:14px}.link-button{display:inline-flex;align-items:center;gap:5px;background:none;border:none;padding:4px 2px;cursor:pointer;color:var(--accent-dark);font:inherit;font-size:12px}.link-button:hover{text-decoration:underline}.tool-card-shell{position:relative;display:flex}.tool-card-shell .tool-card{flex:1 1}.tool-card-edit{position:absolute;top:8px;left:8px;display:inline-flex;padding:4px;border:none;border-radius:6px;background:none;color:var(--muted);cursor:pointer;opacity:.65}.tool-card-edit:hover{opacity:1;background:var(--accent-soft);color:var(--accent-dark)}.modal-card.wide{max-width:640px;max-height:85vh;overflow-y:auto}.prompt-field{display:flex;flex-direction:column;gap:6px}.prompt-field>span{font-size:13px;font-weight:600}.prompt-field textarea{width:100%;min-height:92px;resize:vertical;font:inherit;line-height:1.5;padding:9px 11px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:inherit}.prompt-field-reset{align-self:flex-start;display:inline-flex;align-items:center;gap:4px;background:none;border:none;padding:0;cursor:pointer;color:var(--accent-dark);font:inherit;font-size:12px}.prompt-field-reset:hover{text-decoration:underline}.modal-hint{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.modal-actions{display:flex;align-items:center;gap:9px;margin-top:4px}.data-table{width:100%;min-width:0;border-collapse:collapse;font-size:13px}.data-table td,.data-table th{padding:10px 7px;border-bottom:1px solid var(--line);text-align:right;vertical-align:top;word-break:break-word}.data-table th{color:var(--muted);font-size:12px;font-weight:800}.select-col{width:36px;text-align:center}.select-col input{cursor:pointer}.select-col input:disabled{cursor:not-allowed;opacity:.4}.sort-header{display:inline-flex;align-items:center;gap:4px;background:none;border:0;padding:0;margin:0;cursor:pointer;color:inherit;font:inherit;font-weight:800}.sort-header:hover{color:var(--accent-dark)}.sort-header .sort-idle{opacity:.45}.table-note{display:block;max-width:260px;margin-top:4px;color:var(--muted);font-size:11px;line-height:1.35}.upload-notice{border:1px solid #b9d9d3;background:var(--accent-soft);color:var(--accent-dark);border-radius:var(--radius);padding:10px 12px;margin-bottom:12px;font-size:13px;font-weight:700}.upload-notice.error{border-color:#e6b1b1;background:#fbeaea;color:#9a2a2a}.source-pill{display:inline-flex;align-items:center;gap:5px;background:var(--accent-soft);color:var(--accent-dark);border-radius:999px;padding:4px 8px;font-size:12px;font-weight:700}button.source-pill{border:1px solid transparent;cursor:pointer;font-family:inherit;transition:border-color .15s ease,background .15s ease}button.source-pill:focus-visible,button.source-pill:hover{border-color:var(--accent-dark);text-decoration:underline}.chat-panel{min-height:690px}.chat-messages,.chat-panel{display:flex;flex-direction:column}.chat-messages{padding:22px;gap:16px;flex:1 1;overflow-y:auto}.message{border:1px solid var(--line);border-radius:12px;padding:16px 18px;background:var(--surface);font-size:15px;line-height:1.65;width:100%;max-width:760px}.message.assistant{align-self:center;border-color:#b9d9d3;background:var(--surface)}.message.user{align-self:flex-start;max-width:600px;background:var(--surface-subtle);border-color:var(--line-strong)}.message-role{display:block;margin-bottom:8px;font-size:12px;font-weight:800;letter-spacing:.02em;color:var(--muted)}.message.assistant .message-role{color:var(--accent-dark)}.message-text{margin:0;white-space:pre-wrap}.message-text.typing{color:var(--muted);font-style:italic}.markdown{display:flex;flex-direction:column;gap:10px}.markdown>:first-child{margin-top:0}.markdown p{margin:0}.markdown h2,.markdown h3,.markdown h4,.markdown h5{margin:6px 0 0;line-height:1.3;font-weight:800}.markdown h2{font-size:18px}.markdown h3{font-size:16px}.markdown h4,.markdown h5{font-size:14px;color:var(--accent-dark)}.markdown ol,.markdown ul{margin:0;-webkit-padding-start:22px;padding-inline-start:22px;display:flex;flex-direction:column;gap:5px}.markdown li{line-height:1.6}.markdown strong{font-weight:800}.markdown code{background:var(--surface-subtle);border:1px solid var(--line);border-radius:5px;padding:1px 5px;font-size:.9em;font-family:SFMono-Regular,Menlo,Consolas,monospace}.citations{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.chat-form{border-top:1px solid var(--line);padding:14px;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:8px;gap:8px}.case-form input,.case-form textarea,.chat-form textarea,.upload-form input{width:100%;border:1px solid var(--line-strong);border-radius:var(--radius);background:white;padding:10px 11px;color:var(--text)}.chat-form textarea{min-height:48px;resize:vertical}.status-bar{display:flex;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:12px;padding:12px 18px;border-top:1px solid var(--line);background:#fbfcfd}.status-item{display:inline-flex;gap:7px;align-items:center}.status-list{display:flex;flex-direction:column;gap:10px;font-size:13px;color:var(--muted)}.case-form,.upload-form{display:grid;grid-gap:10px;gap:10px}.empty{padding:60px 20px;text-align:center}.empty h1{margin:0 0 10px}.empty p{color:var(--muted)}@media (min-width:720px){.tool-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:1300px){.workspace-grid{grid-template-columns:minmax(260px,1fr) minmax(440px,2fr)}.tools-col{grid-column:1/-1}}@media (max-width:1050px){.workspace-grid{grid-template-columns:1fr}.message.assistant,.message.user{max-width:100%}}@media (max-width:880px){.app-shell{flex-direction:column}.side-nav{position:static;height:auto;width:100%;gap:12px;padding:12px 16px;-webkit-border-end:none;border-inline-end:none;border-bottom:1px solid var(--line)}.side-links,.side-nav{flex-direction:row;align-items:center;flex-wrap:wrap}.side-links{gap:8px}.side-section{margin-top:0;flex-direction:row;align-items:center}.side-section-label{display:none}.side-foot{margin-top:0;-webkit-margin-start:auto;margin-inline-start:auto;flex-direction:row;align-items:center}}@media (max-width:680px){.main{padding:16px}.topbar{align-items:flex-start;flex-direction:column}.chat-form,.metrics{grid-template-columns:1fr}}.topbar-actions{gap:10px}.topbar-actions,.user-chip{display:flex;align-items:center}.user-chip{gap:8px}.user-email{color:var(--muted);font-size:12px;font-weight:600}.button.cta{background:var(--accent);border-color:var(--accent);color:white;min-height:44px;padding:0 20px;font-size:14px}.auth-screen{min-height:100vh;display:grid;place-items:center;background:var(--background);padding:24px}.auth-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px 26px;display:flex;flex-direction:column;gap:14px}.auth-card h1{font-size:20px;margin:4px 0 0}.auth-sub{color:var(--muted);font-size:13px;margin:0 0 4px}.auth-field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600}.auth-field span{color:var(--muted)}.auth-field input{min-height:40px;border:1px solid var(--line-strong);border-radius:var(--radius);padding:0 12px;background:var(--surface);color:var(--text);font-size:14px}.auth-field input:focus{outline:none;border-color:var(--accent)}.auth-error{background:#fbeae8;color:var(--danger)}.auth-error,.auth-notice{border-radius:var(--radius);padding:9px 12px;font-size:13px}.auth-notice{background:var(--accent-soft);color:var(--accent-dark)}.auth-toggle{background:none;border:none;color:var(--accent);cursor:pointer;font-size:13px;font-weight:700;padding:4px}.modal-overlay{position:fixed;inset:0;background:rgba(23,33,38,.42);display:grid;place-items:center;padding:24px;z-index:50}.modal-card{width:100%;max-width:420px;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;display:flex;flex-direction:column;gap:13px}.modal-head{display:flex;align-items:center;justify-content:space-between}.modal-head h2{font-size:17px;margin:0}.modal-card.viewer{max-width:min(960px,94vw);height:88vh;padding:14px 16px}.modal-card.viewer .modal-head h2{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-page{color:var(--muted);font-weight:400}.viewer-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.viewer-frame{flex:1 1;width:100%;border:1px solid var(--line);border-radius:var(--radius);background:#525659}.icon-button{background:none;border:none;padding:4px}.empty-state{max-width:460px;margin:80px auto;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}.empty-mark{width:64px;height:64px;border-radius:16px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-dark)}.empty-state h1{font-size:22px;margin:0}.empty-state p{color:var(--muted);margin:0 0 8px}.search-box{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--muted);padding:5px 9px;margin-bottom:10px}.search-box input{flex:1 1;min-width:0;border:none;background:none;font:inherit;font-size:13px;color:var(--text);outline:none}.search-box:focus-within{border-color:var(--accent)}.search-box .icon-button{width:22px;height:22px;border:none}.search-box.compact{margin-bottom:0;padding:3px 8px;max-width:170px}.search-box.compact input{font-size:12px}.case-list-empty{color:var(--muted);font-size:12px;margin:0}.folder-tree{display:flex;flex-direction:column;gap:1px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-subtle);padding:6px;margin-bottom:12px;max-height:220px;overflow-y:auto}.folder-tree-head{gap:6px;padding:4px 8px 6px;font-size:11px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--muted)}.folder-node,.folder-tree-head{display:flex;align-items:center}.folder-node{gap:8px;width:100%;border:1px solid transparent;background:none;color:var(--text);border-radius:6px;padding:6px 8px;font-size:13px;font-weight:600;text-align:start;cursor:pointer}.folder-node:hover{background:var(--surface);border-color:var(--line)}.folder-node.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-dark)}.folder-node-label{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-node.add{border-style:dashed;border-color:var(--line-strong);color:var(--muted)}.folder-count{min-width:20px;text-align:center;border-radius:999px;padding:0 6px;font-size:11px;font-weight:700;background:var(--surface);color:var(--muted);border:1px solid var(--line)}.folder-node.active .folder-count{background:var(--accent);border-color:var(--accent);color:white}.folder-add-form{display:flex;align-items:center;gap:4px;padding:2px}.folder-add-form input{flex:1 1;min-width:0;min-height:30px;border:1px solid var(--line-strong);border-radius:6px;padding:0 10px;font:inherit;font-size:13px;background:var(--surface);color:inherit}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);color:var(--muted);cursor:pointer}.icon-button:hover{border-color:var(--accent);color:var(--accent-dark)}.data-table .folder-col{width:1%;white-space:nowrap}.data-table .doc-action-col{width:1%;white-space:nowrap;text-align:center}.doc-delete:hover{color:var(--danger,#c0392b)}.doc-retry{-webkit-margin-end:4px;margin-inline-end:4px}.doc-title-link{background:none;border:none;padding:0;font:inherit;color:inherit;text-align:inherit;cursor:pointer}.doc-title-link:hover{text-decoration:underline}.doc-retry:hover,.doc-title-link:hover{color:var(--accent-dark)}.folder-select{max-width:140px;border:1px solid var(--line);border-radius:8px;padding:4px 6px;font:inherit;font-size:12px;background:var(--surface);color:inherit;cursor:pointer}.icon-button:disabled{opacity:.5;cursor:not-allowed}.chat-panel-header{align-items:flex-start}.chat-panel-title{display:flex;flex-direction:column;gap:4px}.chat-panel-controls{display:flex;align-items:center;gap:6px}.chat-empty{margin:auto;max-width:420px;text-align:center;color:var(--muted);font-size:14px;line-height:1.6}.chat-history{position:relative}.chat-history-toggle{display:inline-flex;align-items:center;gap:6px;max-width:220px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);color:var(--text);padding:6px 10px;font:inherit;font-size:12px;font-weight:700;cursor:pointer}.chat-history-toggle:hover{border-color:var(--accent)}.chat-history-current{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-history-menu{position:absolute;inset-inline-end:0;top:calc(100% + 6px);z-index:40;width:280px;max-height:360px;overflow-y:auto;background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;box-shadow:var(--shadow);padding:8px;display:flex;flex-direction:column;gap:6px}.chat-history-new{display:inline-flex;align-items:center;gap:6px;border:1px dashed var(--line-strong);border-radius:8px;background:none;padding:8px 10px;font:inherit;font-size:12px;font-weight:700;color:var(--accent-dark);cursor:pointer}.chat-history-new:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent)}.chat-history-new:disabled{opacity:.5;cursor:not-allowed}.chat-history-list{display:flex;flex-direction:column;gap:2px}.chat-history-empty{margin:0;padding:10px;color:var(--muted);font-size:12px;text-align:center}.chat-history-item{display:flex;align-items:center;gap:4px;border-radius:8px}.chat-history-item.active{background:var(--accent-soft)}.chat-history-select{flex:1 1;min-width:0;display:inline-flex;align-items:center;gap:7px;border:none;background:none;padding:8px 9px;font:inherit;font-size:13px;color:var(--text);cursor:pointer;text-align:start}.chat-history-select:hover:not(:disabled){color:var(--accent-dark)}.chat-history-select:disabled{cursor:default}.chat-history-item.active .chat-history-select{color:var(--accent-dark);font-weight:700}.chat-history-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-history-dot{width:13px;height:13px;flex-shrink:0}.chat-history-delete{width:26px;height:26px;flex-shrink:0;border:none;background:none}.chat-history-delete:hover{color:var(--danger,#c0392b);border-color:transparent}.citation-ref{position:relative;display:inline-flex;vertical-align:baseline}.citation-ref-marker{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;margin-inline:2px;padding:0 4px;border:none;border-radius:6px;background:var(--accent-soft);color:var(--accent-dark);font:inherit;font-size:11px;font-weight:800;line-height:1;cursor:pointer;vertical-align:super}.citation-ref-marker:hover,.citation-ref.pinned .citation-ref-marker{background:var(--accent);color:white}.citation-popover{position:absolute;inset-inline-end:0;top:calc(100% + 6px);z-index:45;width:320px;max-width:80vw;background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;box-shadow:var(--shadow);padding:11px 12px;display:none;flex-direction:column;gap:6px;text-align:start;white-space:normal;font-weight:400}.citation-ref.pinned .citation-popover,.citation-ref:focus-within .citation-popover,.citation-ref:hover .citation-popover{display:flex}.citation-popover-head{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:800;color:var(--accent-dark)}button.citation-open{border:none;background:none;padding:0;cursor:pointer;font-family:inherit;text-align:inherit}button.citation-open:focus-visible,button.citation-open:hover{text-decoration:underline}.citation-page{font-weight:600;color:var(--muted)}.citation-excerpt{font-size:12.5px;line-height:1.55;color:var(--text);max-height:220px;overflow-y:auto;white-space:pre-wrap}.admin-page{max-width:1180px;margin:0 auto}.admin-head{display:flex;align-items:center;gap:14px;margin-bottom:22px}.admin-head-mark{width:44px;height:44px;border-radius:10px;background:var(--accent-soft);color:var(--accent-dark);display:grid;place-items:center;flex-shrink:0}.admin-head h1{margin:0;font-size:24px}.admin-head p{margin:4px 0 0;color:var(--muted);font-size:14px}.admin-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:18px;gap:18px;align-items:start}.admin-panel{min-width:0}.button.sm{min-height:32px;padding:0 11px;font-size:12.5px}.icon-button.danger{color:var(--danger)}.icon-button.danger:hover{background:#fbecea}.admin-empty{color:var(--muted);font-size:14px;margin:6px 0}.admin-case-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.admin-case-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.admin-case-row.active{border-color:var(--accent);background:var(--accent-soft)}.admin-case-info{display:flex;flex-direction:column;gap:3px;min-width:0}.admin-case-info strong{font-size:14px}.admin-case-info span{color:var(--muted);font-size:12px}.admin-case-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.admin-model-body{display:flex;flex-direction:column;gap:22px}.admin-subsection{display:flex;flex-direction:column;gap:10px}.admin-subsection+.admin-subsection{padding-top:20px;border-top:1px solid var(--line)}.admin-subsection h3{margin:0;font-size:15px}.admin-hint{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.admin-textarea{width:100%;border:1px solid var(--line-strong);border-radius:var(--radius);padding:11px;resize:vertical;line-height:1.6;font-size:13.5px}.admin-textarea:focus{outline:none;border-color:var(--accent)}.admin-subsection-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-notice{font-size:13px;color:var(--accent-dark);background:var(--accent-soft);border-radius:var(--radius);padding:8px 11px}.admin-override-status{display:flex;gap:8px}.badge{display:inline-flex;align-items:center;font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px}.badge-override{background:var(--accent-soft);color:var(--accent-dark)}.badge-inherit{background:var(--surface-subtle);color:var(--muted)}@media (max-width:980px){.admin-grid{grid-template-columns:1fr}}.external-search{max-width:880px;margin:0 auto;padding:28px 22px 60px;display:flex;flex-direction:column;gap:18px}.search-header h1{margin:0 0 4px;font-size:24px}.search-subtitle{margin:0;color:var(--muted);font-size:14px}.search-form{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:14px}.search-input-row{display:flex;gap:10px}.search-input-row input[type=search]{flex:1 1;padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface)}.search-input-row button{display:inline-flex;align-items:center;gap:7px;padding:10px 20px;border:none;border-radius:var(--radius);background:var(--accent);color:#fff;cursor:pointer}.search-input-row button:hover:not(:disabled){background:var(--accent-dark)}.search-input-row button:disabled{opacity:.55;cursor:default}.search-filters{border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;display:flex;flex-direction:column;gap:10px}.search-filters legend{padding:0 6px;font-size:13px;color:var(--muted)}.search-source-toggles{display:flex;flex-wrap:wrap;gap:8px 18px}.search-source-toggle{display:inline-flex;align-items:center;gap:7px;font-size:14px;cursor:pointer}.search-filter-row{display:flex;flex-wrap:wrap;align-items:end;gap:14px;border-top:1px dashed var(--line);padding-top:10px}.search-filter-row label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}.search-filter-row input[type=date]{padding:7px 9px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);color:var(--text)}.date-preset-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.date-preset-label{font-size:13px;color:var(--muted);white-space:nowrap}.date-preset-pills{display:flex;flex-wrap:wrap;gap:6px}.date-preset-pill{padding:5px 12px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);color:var(--text);font-size:13px;cursor:pointer;transition:background .15s,border-color .15s,color .15s;white-space:nowrap}.date-preset-pill:hover{border-color:var(--accent);background:var(--accent-soft,color-mix(in srgb,var(--accent) 10%,transparent));color:var(--accent)}.date-preset-pill.active{border-color:var(--accent);background:var(--accent);color:#fff}.date-custom-range{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-top:4px}.date-custom-range label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}.date-custom-range input[type=date]{padding:7px 9px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);color:var(--text)}.search-error,.search-source-degraded{display:flex;align-items:center;gap:7px;margin:0;padding:10px 12px;border-radius:var(--radius);background:var(--warn-soft);color:var(--warn);font-size:14px}.search-results{display:flex;flex-direction:column;gap:18px}.search-results-count{margin:0;color:var(--muted);font-size:14px}.search-source-group{display:flex;flex-direction:column;gap:10px}.search-source-title{margin:0;font-size:16px;border-bottom:1px solid var(--line);padding-bottom:6px}.search-source-empty{margin:0;color:var(--muted);font-size:13px}.search-result{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:8px}.search-result-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.search-type-badge{padding:3px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent-dark)}.search-result-date,.search-type-badge{display:inline-flex;align-items:center;gap:5px;font-size:12px}.search-result-date{color:var(--muted)}.search-result-title{margin:0;font-size:16px;line-height:1.45}.search-result-title a{display:inline-flex;align-items:center;gap:6px;color:var(--accent-dark)}.search-result-title a:hover{text-decoration:underline}.search-result-snippet{margin:0;color:var(--muted);font-size:13.5px;line-height:1.6}.search-result-chips{display:flex;flex-wrap:wrap;gap:6px}.search-chip{padding:2px 9px;border-radius:999px;border:1px solid var(--line);background:var(--surface-subtle);font-size:12px;color:var(--muted)}.search-result-actions{display:flex}.summary-button{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);color:var(--accent-dark);font-size:13px;cursor:pointer}.summary-button:hover:not(:disabled){background:var(--accent-soft)}.summary-button:disabled{opacity:.6;cursor:default}.search-summary{margin:0;padding:10px 12px;border-right:3px solid var(--accent);border-radius:var(--radius);background:var(--accent-soft);font-size:13.5px;line-height:1.6}.search-summary-error{margin:0;color:var(--danger);font-size:13px}.spin{animation:search-spin .9s linear infinite}@keyframes search-spin{to{transform:rotate(1turn)}}@media (max-width:700px){.search-input-row{flex-direction:column}}.route-loading{display:flex;align-items:center;justify-content:center;gap:10px;min-height:60vh;color:var(--muted,#6b7280);font-size:14px}.side-nav-skeleton .skeleton-bar{display:block;height:18px;border-radius:6px;margin:10px 0;background:linear-gradient(90deg,#eef1f4 25%,#e3e8ee 37%,#eef1f4 63%);background-size:400% 100%;animation:skeleton-shimmer 1.4s ease infinite}.side-nav-skeleton .skeleton-bar-sm{width:70%}@keyframes skeleton-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}@media (prefers-reduced-motion:reduce){.side-nav-skeleton .skeleton-bar,.spin{animation:none}}.case-recs{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.case-recs-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.case-recs-title{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:.95rem;color:var(--text)}.case-recs-title svg{color:var(--accent)}.case-recs-sub{margin:4px 0 12px;font-size:.8rem;color:var(--muted)}.case-recs-status{gap:6px;color:var(--muted)}.case-recs-error,.case-recs-status{display:inline-flex;align-items:center;font-size:.85rem}.case-recs-error{gap:8px;color:var(--danger)}.case-recs-topics{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;font-size:.8rem;color:var(--muted)}.case-recs-topics svg{color:var(--warn)}.case-recs-topics-label{font-weight:600}.case-recs-topic{padding:2px 8px;border-radius:999px;background:var(--surface-subtle);border:1px solid var(--line);color:var(--text);font-size:.78rem}.case-recs-chips{display:flex;flex-wrap:wrap;gap:8px}.case-recs-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface);color:var(--text);font-size:.85rem;font-family:inherit;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.case-recs-chip:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-dark)}.case-recs-chip svg{color:var(--muted)}.case-recs-chip:hover svg{color:var(--accent-dark)}.case-recs-chip.type-legislation svg{color:var(--accent)}.case-recs-chip.type-ruling svg{color:var(--warn)}.case-recs-note{margin-top:10px;font-size:.75rem;color:var(--muted);font-style:italic}.landing{min-height:100vh;background:var(--background);color:var(--text)}.landing-shell{width:100%;max-width:1080px;margin:0 auto;padding:0 24px}.landing-nav{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:rgba(255,255,255,.88);-webkit-backdrop-filter:saturate(180%) blur(8px);backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid var(--line)}.landing-nav-inner{display:flex;align-items:center;gap:20px;height:64px}.landing-brand{display:inline-flex;align-items:center;gap:9px;font-weight:800;font-size:16px}.landing-nav-links{display:flex;gap:22px;-webkit-margin-start:auto;margin-inline-start:auto;font-size:14px;font-weight:600;color:var(--muted)}.landing-nav-links a:hover{color:var(--accent)}.landing-nav-cta{flex-shrink:0}.landing-hero{padding:84px 0 64px;text-align:center;background:radial-gradient(1100px 460px at 50% -10%,var(--accent-soft),transparent 70%)}.landing-eyebrow{display:inline-flex;align-items:center;gap:7px;padding:6px 14px;border-radius:999px;background:var(--surface);border:1px solid var(--line);color:var(--accent-dark);font-size:13px;font-weight:700;box-shadow:var(--shadow)}.landing-hero h1{margin:22px auto 0;max-width:820px;font-size:clamp(30px,5vw,50px);line-height:1.18;font-weight:800;letter-spacing:-.5px}.landing-grad{color:var(--accent)}.landing-lede{margin:20px auto 0;max-width:660px;font-size:clamp(16px,2.1vw,19px);line-height:1.7;color:var(--muted)}.landing-cta-row{margin-top:30px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.landing-cta-primary{min-height:50px;padding:0 26px;font-size:15px}.landing-cta-ghost{min-height:50px;padding:0 24px;font-size:15px;background:var(--surface)}.landing-trust{margin-top:22px;display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--muted)}.landing-section{padding:72px 0}.landing-section-alt{background:var(--surface);border-block:1px solid var(--line)}.landing-section-head{text-align:center;max-width:640px;margin:0 auto 44px}.landing-section-head h2{font-size:clamp(24px,3.4vw,34px);font-weight:800;letter-spacing:-.4px;margin:0}.landing-section-head p{margin:14px auto 0;color:var(--muted);font-size:16px;line-height:1.65}.landing-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:18px;gap:18px}.landing-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:28px;box-shadow:var(--shadow);transition:transform .15s ease,border-color .15s ease}.landing-card:hover{transform:translateY(-3px);border-color:var(--line-strong)}.landing-card-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:11px;background:var(--accent-soft);color:var(--accent-dark)}.landing-card h3{margin:16px 0 8px;font-size:19px;font-weight:800}.landing-card p{margin:0;color:var(--muted);font-size:15px;line-height:1.7}.landing-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:20px;gap:20px}.landing-steps li{display:flex;gap:14px;align-items:flex-start}.landing-step-num{flex-shrink:0;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--accent);color:#fff;font-size:15px}.landing-step-num,.landing-steps h3{display:inline-flex;align-items:center;font-weight:800}.landing-steps h3{margin:4px 0 6px;font-size:17px;gap:7px}.landing-steps p{margin:0;color:var(--muted);font-size:14px;line-height:1.65}.landing-sec-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:18px;gap:18px}.landing-sec-item{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:24px;text-align:center}.landing-sec-item svg{color:var(--accent)}.landing-sec-item h3{margin:12px 0 6px;font-size:16px;font-weight:800}.landing-sec-item p{margin:0;color:var(--muted);font-size:14px;line-height:1.6}.landing-final{padding:80px 0;text-align:center;background:radial-gradient(900px 380px at 50% 120%,var(--accent-soft),transparent 70%)}.landing-final-inner h2{font-size:clamp(24px,3.6vw,36px);font-weight:800;margin:0}.landing-final-inner p{margin:12px 0 26px;color:var(--muted);font-size:17px}.landing-footer{border-top:1px solid var(--line);background:var(--surface);padding:28px 0}.landing-footer-inner{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.landing-footer-inner p{margin:0;color:var(--muted);font-size:13px}.landing-footer-link{-webkit-margin-start:auto;margin-inline-start:auto;font-weight:700;font-size:14px;color:var(--accent)}.landing-footer-link:hover{color:var(--accent-dark)}@media (max-width:860px){.landing-grid,.landing-sec-grid,.landing-steps{grid-template-columns:1fr}.landing-nav-links{display:none}.landing-hero{padding:60px 0 48px}}.docgen{display:flex;flex-direction:column;gap:12px}.docgen-actions{display:flex;flex-wrap:wrap;gap:8px}.docgen-trigger{justify-content:center}.docgen-empty{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.docgen-history{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.docgen-history-item{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.docgen-history-open{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px;text-align:start;background:none;border:none;padding:8px 10px;cursor:pointer;font:inherit;color:inherit}.docgen-history-open:hover:not(:disabled){background:var(--surface-2,rgba(0,0,0,.03))}.docgen-history-open strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.docgen-history-open span{font-size:11px;color:var(--muted)}.docgen-fields{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px;margin:4px 0}.docgen-fields .span-2{grid-column:1/-1}.docgen-fields input,.docgen-fields select,.docgen-fields textarea{width:100%;font:inherit;padding:9px 11px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:inherit}.docgen-fields .field-help{color:var(--muted);font-size:11px;line-height:1.45}.docgen-preview{max-width:760px}.docgen-preview-body{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:20px 24px;max-height:56vh;overflow-y:auto;line-height:1.7}.docgen-sources{margin-top:18px;padding-top:12px;border-top:1px solid var(--line);font-size:13px}.docgen-sources h3{margin:0 0 6px;font-size:13px}@media (max-width:640px){.docgen-fields{grid-template-columns:1fr}}.notfound{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px;background:var(--background)}.notfound-card{width:100%;max-width:460px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:40px 32px;text-align:center}.notfound-mark{display:inline-flex;align-items:center;justify-content:center;margin-bottom:18px}.notfound-code{margin:0;font-size:13px;font-weight:600;letter-spacing:.18em;color:var(--accent)}.notfound-title{margin:6px 0 10px;font-size:24px;color:var(--text)}.notfound-text{margin:0 0 24px;font-size:15px;line-height:1.6;color:var(--muted)}.notfound-cta{display:inline-flex;align-items:center;gap:8px}.calendar-panel{margin-top:0}.calendar-header{flex-wrap:wrap;gap:12px}.calendar-nav{display:flex;align-items:center;gap:8px}.calendar-month{margin:0;font-size:16px;min-width:130px;text-align:center}.calendar-today{padding:6px 12px;font-size:13px}.cal-type-hearing{--cal-accent:#0f766e;--cal-soft:#e6f4f1}.cal-type-deadline{--cal-accent:#a33a31;--cal-soft:#fbe9e7}.cal-type-filing{--cal-accent:#9a5b13;--cal-soft:#fff6df}.cal-type-meeting{--cal-accent:#1d4ed8;--cal-soft:#e8effd}.cal-type-reminder{--cal-accent:#6d28d9;--cal-soft:#f1ebfb}.cal-type-other{--cal-accent:#62727c;--cal-soft:#eef2f4}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:4px;gap:4px;margin-bottom:22px}.calendar-weekday{text-align:center;font-size:12px;font-weight:600;color:var(--muted);padding:4px 0}.calendar-cell{display:flex;flex-direction:column;align-items:stretch;gap:4px;min-height:92px;padding:6px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);text-align:start;cursor:pointer;transition:border-color .12s ease,background .12s ease}.calendar-cell:hover{border-color:var(--accent);background:var(--surface-subtle)}.calendar-cell.muted{background:var(--surface-subtle);opacity:.6}.calendar-cell.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.calendar-day-num{font-size:13px;font-weight:600;color:var(--text)}.calendar-day-events{display:flex;flex-direction:column;gap:3px;min-width:0}.calendar-chip{display:block;font-size:11px;line-height:1.3;padding:2px 6px;border-radius:5px;background:var(--cal-soft,var(--surface-subtle));color:var(--cal-accent,var(--text));-webkit-border-start:3px solid var(--cal-accent,var(--line));border-inline-start:3px solid var(--cal-accent,var(--line));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.calendar-chip:hover{filter:brightness(.96)}.calendar-more{font-size:11px;color:var(--muted);-webkit-padding-start:4px;padding-inline-start:4px}.calendar-agenda h3{margin:0 0 10px;font-size:14px}.calendar-agenda-empty{color:var(--muted);font-size:13px;margin:6px 0}.calendar-agenda-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.calendar-agenda-item{display:flex;align-items:center;gap:10px;padding:8px 4px;border-bottom:1px solid var(--line)}.calendar-agenda-item:last-child{border-bottom:none}.calendar-dot{width:10px;height:10px;flex:0 0 auto;border-radius:50%;background:var(--cal-accent,var(--muted))}.calendar-agenda-main{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px;background:none;border:none;text-align:start;cursor:pointer;padding:0}.calendar-agenda-title{font-size:14px;font-weight:600;color:var(--text)}.calendar-agenda-meta{font-size:12px;color:var(--muted)}.calendar-notice{border:1px solid var(--line-strong);background:var(--surface-subtle);border-radius:var(--radius);padding:12px 14px;font-size:13px;line-height:1.6;color:var(--text);margin-bottom:16px}.calendar-notice.error{border-color:var(--danger);background:#fbe9e7;color:var(--danger)}.calendar-connect-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border:1px solid var(--line-strong);background:var(--surface-subtle);border-radius:var(--radius);padding:10px 14px;margin-bottom:16px}.calendar-connect-status{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text)}.global-agenda{display:flex;flex-direction:column;gap:18px}.global-agenda-date{margin:0 0 6px;font-size:13px;font-weight:600;color:var(--accent-dark)}.event-form{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px;margin-top:4px}.event-field{display:flex;flex-direction:column;gap:5px;font-size:13px}.event-field.span-2{grid-column:1/-1}.event-field>span:first-child{font-weight:600}.event-field input,.event-field select,.event-field textarea{width:100%;font:inherit;padding:9px 11px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:inherit}.event-field .field-help{color:var(--muted);font-size:11px}.event-form-error{color:var(--danger);font-size:13px;margin:0}.event-form-actions{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:14px;margin-top:2px}.event-form-confirm{display:flex;gap:8px}.upcoming-dates{border-top:1px solid var(--line);margin-top:16px;padding-top:14px}.upcoming-dates-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.upcoming-dates-title{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600}.upcoming-dates-link{display:inline-flex;align-items:center;gap:2px;font-size:12px;color:var(--accent)}.upcoming-dates-link:hover{text-decoration:underline}.upcoming-dates-empty{color:var(--muted);font-size:12px;margin:4px 0}.upcoming-dates-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.upcoming-dates-item{display:flex;align-items:center;gap:8px}.upcoming-dates-body{display:flex;flex-direction:column;gap:1px;min-width:0}.upcoming-dates-event{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upcoming-dates-meta{font-size:11px;color:var(--muted)}@media (max-width:640px){.event-form{grid-template-columns:1fr}.calendar-cell{min-height:70px}}