:root{--lavender:#e9e3ff;--lavender-strong:#c9bcff;--pink:#ffe3ec;--pink-strong:#ffc2d6;--mint:#dcf5ec;--peach:#ffeede;--sky:#e0f0ff;--text:#5b5670;--text-h:#2d2640;--muted:#8a849c;--card:#fff;--border:#ece8f5;--accent:#7c6bd6;--danger-bg:#ffe8ea;--danger-text:#b4234a;--shadow:0 20px 50px -20px #7c6bd659, 0 4px 12px #2d26400d;--sans:"Plus Jakarta Sans", system-ui, "Segoe UI", Roboto, sans-serif;font:16px/1.5 var(--sans);color:var(--text);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{background:radial-gradient(circle at 10% 15%, var(--pink) 0, transparent 40%), radial-gradient(circle at 90% 10%, var(--sky) 0, transparent 40%), radial-gradient(circle at 85% 90%, var(--mint) 0, transparent 45%), radial-gradient(circle at 15% 90%, var(--peach) 0, transparent 40%), #faf8ff;min-height:100svh;margin:0}#root{justify-content:center;align-items:center;min-height:100svh;padding:24px 16px;display:flex}h1,h2{color:var(--text-h);letter-spacing:-.02em;margin:0;font-weight:700}p{margin:0}.card{background:var(--card);border:1px solid var(--border);width:100%;max-width:420px;box-shadow:var(--shadow);border-radius:24px;padding:40px 36px}@media (width<=480px){.card{padding:32px 22px}}.brand{color:var(--text-h);align-items:center;gap:10px;margin-bottom:28px;font-weight:700;display:flex}.brand-icon{background:linear-gradient(135deg, var(--lavender-strong), var(--pink-strong));width:40px;height:40px;color:var(--text-h);border-radius:12px;place-items:center;display:grid}.card h1{margin-bottom:6px;font-size:26px}.subtitle{color:var(--muted);margin-bottom:28px}.login-form{flex-direction:column;display:flex}.field{flex-direction:column;gap:6px;margin-bottom:18px;display:flex}.field label{color:var(--text-h);font-size:14px;font-weight:600}.field input{font:inherit;border:1.5px solid var(--border);color:var(--text-h);background:#fcfbff;border-radius:12px;padding:12px 14px;transition:border-color .2s,box-shadow .2s,background .2s}.field input::placeholder{color:#b8b3c7}.field input:focus{border-color:var(--lavender-strong);box-shadow:0 0 0 4px var(--lavender);background:#fff;outline:none}.login-error{background:var(--danger-bg);color:var(--danger-text);border-radius:12px;margin-bottom:18px;padding:10px 14px;font-size:14px}.btn{font:inherit;cursor:pointer;border:none;border-radius:12px;padding:12px 18px;font-weight:600;transition:transform .15s,box-shadow .2s,opacity .2s}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:focus-visible{outline:3px solid var(--lavender-strong);outline-offset:2px}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:linear-gradient(135deg, var(--lavender-strong), var(--pink-strong));color:var(--text-h);box-shadow:0 8px 20px -8px #7c6bd699}.btn-soft{background:var(--lavender);color:var(--accent)}.dashboard{max-width:760px}@media (height>=640px){.dashboard{flex-direction:column;height:calc(100svh - 48px);padding-top:28px;padding-bottom:28px;display:flex}.dashboard>.documents{flex-direction:column;flex:1;min-height:0;display:flex}.dashboard .dropzone{text-align:left;grid-template-columns:auto 1fr auto;grid-template-areas:"icon title button""icon hint button";align-items:center;gap:2px 14px;padding:16px 18px;display:grid}.dashboard .dropzone .dropzone-icon{grid-area:icon;margin:0}.dashboard .dropzone .dropzone-title{grid-area:title}.dashboard .dropzone .dropzone-hint{grid-area:hint}.dashboard .dropzone .btn{grid-area:button;margin:0}@media (width<=560px){.dashboard .dropzone{grid-template-columns:auto 1fr;grid-template-areas:"icon title""icon hint""button button"}.dashboard .dropzone .btn{margin-top:10px}}.documents>.doc-list{scrollbar-width:thin;scrollbar-color:var(--lavender-strong) transparent;flex:1;min-height:0;padding-right:4px;overflow-y:auto}}.dash-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:28px;display:flex}.dash-header .brand{margin-bottom:0}.dash-user{flex-shrink:0;align-items:center;gap:12px;display:flex}.avatar{background:linear-gradient(135deg, var(--pink-strong), var(--peach));width:48px;height:48px;color:var(--text-h);border-radius:50%;flex-shrink:0;place-items:center;font-size:20px;font-weight:700;display:grid}.avatar-sm{width:34px;height:34px;font-size:14px}.empty-state{border:2px dashed var(--mint);text-align:center;color:var(--muted);background:#f6fcf9;border-radius:16px;padding:24px 16px;font-size:14px}.empty-state strong{color:var(--text-h);margin-bottom:4px;font-size:16px;display:block}.dropzone{border:2px dashed var(--lavender-strong);text-align:center;background:#fbfaff;border-radius:18px;flex-direction:column;align-items:center;gap:6px;margin-bottom:20px;padding:28px 16px;transition:background .2s,border-color .2s;display:flex}.dropzone .btn{margin-top:10px}.dropzone-active{border-color:var(--accent);background:var(--lavender)}.dropzone-icon{background:var(--lavender);width:48px;height:48px;color:var(--accent);border-radius:14px;place-items:center;margin-bottom:4px;display:grid}.dropzone-title{color:var(--text-h);font-weight:600}.dropzone-hint{color:var(--muted);font-size:13px}.section-title{align-items:center;gap:8px;margin:8px 0 12px;font-size:16px;display:flex}.count-badge{background:var(--mint);color:#2f7a5c;border-radius:999px;padding:1px 9px;font-size:13px}.doc-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.doc-item{border:1px solid var(--border);background:#fcfbff;border-radius:14px;align-items:center;gap:12px;padding:12px;display:flex}@media (width<=560px){.doc-item{flex-wrap:wrap}}.doc-icon{letter-spacing:.04em;border-radius:12px;flex-shrink:0;place-items:center;width:42px;height:42px;font-size:11px;font-weight:700;display:grid}.doc-icon-pdf{background:var(--pink);color:#b4234a}.doc-icon-doc{background:var(--sky);color:#2563a8}.doc-icon-img{background:var(--peach);color:#a3591c}.doc-info{flex:1;min-width:0}.doc-name{white-space:nowrap;text-overflow:ellipsis;color:var(--text-h);font-weight:600;overflow:hidden}.doc-meta{color:var(--muted);font-size:13px}.status-pill{background:var(--lavender);color:var(--accent);border-radius:999px;padding:1px 8px;font-size:12px}.status-processing{color:#9a6b00;background:#fff4d6}.status-ready{background:var(--mint);color:#2f7a5c}.status-failed{background:var(--danger-bg);color:var(--danger-text)}.doc-actions{flex-shrink:0;gap:6px;display:flex}.doc-actions .btn-icon{white-space:nowrap}@media (width<=560px){.doc-actions{flex-wrap:wrap;width:100%}.doc-actions .btn-icon{flex:auto}}.btn-icon{font:inherit;background:var(--lavender);color:var(--accent);cursor:pointer;border:none;border-radius:10px;padding:6px 12px;font-size:13px;font-weight:600}.btn-icon:hover{background:var(--lavender-strong)}.btn-icon-danger{background:var(--danger-bg);color:var(--danger-text)}.btn-icon-danger:hover{background:var(--pink-strong)}.login-notice{background:var(--mint);color:#2f7a5c;border-radius:12px;margin-bottom:18px;padding:10px 14px;font-size:14px}.switch-auth{text-align:center;color:var(--muted);margin-top:22px;font-size:14px}.link-btn{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.link-btn:hover{text-decoration:underline}.modal-backdrop{z-index:10;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#2d264059;justify-content:center;align-items:center;padding:24px 16px;display:flex;position:fixed;inset:0}.modal{background:var(--card);width:100%;max-width:720px;max-height:85svh;box-shadow:var(--shadow);border-radius:20px;flex-direction:column;display:flex;overflow:hidden}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 24px;display:flex}.modal-header h2{font-size:18px}.modal-body{padding:20px 24px;overflow-y:auto}.page-text{margin-bottom:20px}.page-text pre{border:1px solid var(--border);color:var(--text-h);white-space:pre-wrap;word-break:break-word;background:#fbfaff;border-radius:12px;margin:0;padding:14px;font-family:ui-monospace,Consolas,monospace;font-size:13px;line-height:1.6}.page-label{color:var(--text-h);align-items:center;gap:8px;margin-bottom:8px;font-size:13px;font-weight:700;display:flex}.method-pill{border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600}.method-text{background:var(--sky);color:#2563a8}.method-ocr{background:var(--peach);color:#a3591c}.search-form{gap:8px;margin-bottom:20px;display:flex}.search-form input{min-width:0;font:inherit;border:1.5px solid var(--border);color:var(--text-h);background:#fcfbff;border-radius:12px;flex:1;padding:12px 14px}.search-form input:focus{border-color:var(--lavender-strong);box-shadow:0 0 0 4px var(--lavender);outline:none}@media (width<=480px){.search-form{flex-direction:column}}.search-result{border:1px solid var(--border);background:#fcfbff;border-radius:14px;margin-bottom:14px;padding:14px}.search-result:first-of-type{border-color:var(--lavender-strong);background:#f8f5ff}.search-text{color:var(--muted);white-space:pre-line;font-size:13px;line-height:1.6}.best-line{color:var(--text-h);background:#fff4d6;border-radius:4px;padding:1px 4px;font-weight:600}.best-answer{border-left:3px solid var(--accent);background:var(--lavender);color:var(--text-h);border-radius:8px;margin-bottom:10px;padding:10px 12px;font-weight:600}.score-pill{background:var(--mint);color:#2f7a5c;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600}.btn-icon-ai{background:linear-gradient(135deg, var(--lavender-strong), var(--pink-strong));color:var(--text-h)}.ai-note{color:var(--muted);margin:8px 0 18px;font-size:12px}.cite-chip{background:var(--accent);color:#fff;min-width:20px;height:20px;font:inherit;vertical-align:text-top;border:none;border-radius:6px;place-items:center;margin:0 2px;padding:0 5px;font-size:11px;font-weight:700;display:inline-grid}.find-note{margin:-8px 0 16px}.usage-bar{border:1px solid var(--mint);color:var(--muted);background:#f6fcf9;border-radius:12px;margin:0 0 16px;padding:10px 12px;font-size:12px}.usage-row{flex-wrap:wrap;justify-content:space-between;gap:4px 12px;margin-bottom:8px;display:flex}.usage-row strong{color:var(--text-h)}.usage-track{background:var(--mint);border-radius:999px;height:6px;overflow:hidden}.usage-fill{background:#5cc49a;border-radius:999px;height:100%;transition:width .3s}.usage-low{background:#e5484d}.modal-chat{max-width:760px;height:88svh}.chat-toolbar{border-bottom:1px solid var(--border);gap:8px;padding:12px 24px;display:flex}.chat-toolbar select{min-width:0;font:inherit;border:1.5px solid var(--border);color:var(--text-h);background:#fcfbff;border-radius:10px;flex:1;padding:6px 10px;font-size:13px}.chat-messages{flex-direction:column;flex:1;gap:12px;padding:16px 24px;display:flex;overflow-y:auto}.chat-empty{text-align:center;color:var(--muted);margin:auto 0;padding:24px;font-size:14px}.chat-empty strong{color:var(--text-h);margin-bottom:4px;font-size:16px;display:block}.chat-message{display:flex}.chat-user{justify-content:flex-end}.chat-user .chat-bubble{background:linear-gradient(135deg, var(--lavender-strong), var(--pink-strong));color:var(--text-h);border-bottom-right-radius:4px}.chat-assistant .chat-bubble{background:var(--lavender);color:var(--text-h);border-bottom-left-radius:4px}.chat-bubble{white-space:pre-line;word-break:break-word;border-radius:16px;max-width:85%;padding:10px 14px;font-size:14px;line-height:1.6}.chat-bubble .login-error{margin:6px 0 0}.chat-thinking{color:var(--muted);font-style:italic}.typing-cursor{vertical-align:text-bottom;background:var(--accent);border-radius:2px;width:7px;height:15px;margin-left:2px;animation:1s steps(2,start) infinite blink;display:inline-block}@keyframes blink{to{visibility:hidden}}.chat-meta{color:var(--muted);margin-top:4px;font-size:11px}.chat-input{border-top:1px solid var(--border);gap:8px;padding:12px 24px 4px;display:flex}.chat-input input{min-width:0;font:inherit;border:1.5px solid var(--border);color:var(--text-h);background:#fcfbff;border-radius:12px;flex:1;padding:12px 14px}.chat-input input:focus{border-color:var(--lavender-strong);box-shadow:0 0 0 4px var(--lavender);outline:none}.chat-disclaimer{color:var(--muted);text-align:center;padding:4px 24px 12px;font-size:11px}@media (width<=480px){.chat-toolbar,.chat-messages,.chat-input,.chat-disclaimer{padding-left:14px;padding-right:14px}}
