:root{--ink:#1b1b1f;--muted:#5c5c66;--border:#e2e2e8;--accent:#2f4f8f;--accent-tint:#eef2fb;--bg:#fafafb;--surface:#fff;font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0}a{color:var(--accent);text-decoration:none}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;align-items:center;gap:12px;padding:10px 16px;display:flex;position:sticky;top:0}.nav-toggle{cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:22px;display:none}.brand{color:var(--ink);font-size:20px;font-weight:700}.search-form{flex:1;gap:8px;max-width:480px;display:flex}.search-form input{border:1px solid var(--border);border-radius:6px;flex:1;padding:8px 10px}.search-form button{border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:6px;padding:8px 14px}.layout{flex:1;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-shrink:0;width:240px;padding:16px}.sidebar-title{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 8px;font-size:12px}.sidebar ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.sidebar a{color:var(--ink);border-radius:6px;padding:8px 10px;display:block}.sidebar a.active,.sidebar a:hover{background:var(--accent-tint);color:var(--accent)}.content{flex:1;max-width:920px;padding:24px}.page h1{margin-top:0}.lead{color:var(--muted)}.card-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-bottom:24px;display:grid}.card{background:var(--surface);border:1px solid var(--border);color:var(--ink);border-radius:10px;padding:16px;display:block}.card:hover{border-color:var(--accent)}.card h3{margin:0 0 6px}.card p{color:var(--muted);margin:0;font-size:14px}.doc-list{flex-direction:column;gap:10px;padding:0;list-style:none;display:flex}.doc-list li{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px 14px}.meta{color:var(--muted);font-size:14px}.badge{background:var(--accent-tint);color:var(--accent);border-radius:999px;margin-left:8px;padding:2px 8px;font-size:12px;display:inline-block}.back-link{margin-bottom:12px;display:inline-block}.document-text{white-space:pre-wrap;background:var(--surface);border:1px solid var(--border);border-radius:8px;margin:16px 0;padding:16px;line-height:1.6}.annotation-box textarea{border:1px solid var(--border);width:100%;font:inherit;border-radius:8px;padding:10px}.hint{color:var(--muted);font-size:13px}.form-actions{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.form-actions button{border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:6px;padding:8px 14px}.form-actions button:last-child{background:var(--surface);color:var(--accent)}.link-button{color:var(--accent);cursor:pointer;background:0 0;border:none;margin-left:8px;padding:0;font-size:13px;text-decoration:underline}.edit-form{flex-direction:column;gap:14px;max-width:720px;display:flex}.edit-form label{flex-direction:column;gap:4px;font-size:14px;font-weight:600;display:flex}.edit-form input,.edit-form select,.edit-form textarea{font:inherit;border:1px solid var(--border);border-radius:8px;padding:10px;font-weight:400}.annotation-list{flex-direction:column;gap:10px;margin:12px 0;padding:0;list-style:none;display:flex}.annotation-list li{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px 14px}.annotation-passage{color:var(--muted);font-style:italic}.annotation-form{flex-direction:column;gap:8px;display:flex}.annotation-form input,.annotation-form textarea{border:1px solid var(--border);width:100%;font:inherit;border-radius:8px;padding:10px}.annotation-form button{border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:6px;align-self:flex-start;padding:8px 14px}.ref-search{gap:8px;margin:10px 0;display:flex}.ref-search input{border:1px solid var(--border);border-radius:6px;flex:1;padding:8px 10px}.mode-toggle{gap:8px;margin:12px 0 16px;display:flex}.mode-toggle button{border:1px solid var(--border);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:999px;padding:8px 14px}.mode-toggle button.active{border-color:var(--accent);background:var(--accent-tint);color:var(--accent)}.error{color:#b42318}.rag-list{flex-direction:column;gap:14px;padding:0;list-style:none;display:flex}.rag-list li{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:14px 16px}.rag-source{font-weight:600}.rag-extrait{color:var(--muted);white-space:pre-wrap;margin:8px 0 0;line-height:1.5}.logout-button{border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;white-space:nowrap;border-radius:6px;padding:8px 14px}@media (width<=768px){.nav-toggle{display:inline-block}.topbar{flex-wrap:wrap}.search-form{order:3;width:100%;max-width:none}.layout{position:relative}.sidebar{z-index:9;width:80vw;max-width:300px;transition:transform .2s;position:fixed;top:56px;bottom:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0);box-shadow:2px 0 12px #00000026}.content{padding:16px}}
