:root{--canvas:#040506;--card:#07080a;--recessed:#111214;--graphite:#1b1c1e;--border:#363739;--text-muted:#6a6b6c;--text-secondary:#9c9c9d;--mist:#e6e6e6;--iron:#454647;--white:#fff;--coral:#ff6363;--ember:#452324;--radius-card:16px;--radius-control:8px;--radius-badge:6px;--font-body:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", "Noto Sans", "Helvetica Neue", sans-serif;--font-mono:"GeistMono", "JetBrains Mono", ui-monospace, "SF Mono", Consolas, Menlo, monospace;--key-shadow:#ffffff0d 0 1px 0 0 inset, #ffffff40 0 0 0 1px, #0003 0 -1px 0 0 inset}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--canvas);color:var(--white);font-family:var(--font-body);font-size:16px;font-weight:400;line-height:1.5}#app{flex-direction:column;min-height:100vh;display:flex}.page,.login-page{width:min(760px,100% - 32px);margin:0 auto;padding-bottom:48px}.page{flex-direction:column;gap:16px;padding-top:24px;display:flex}.app-header{z-index:10;border:1px solid var(--border);border-radius:var(--radius-control);-webkit-backdrop-filter:blur(48px);backdrop-filter:blur(48px);background:#04050699;align-items:center;gap:16px;width:fit-content;margin:12px auto 0;padding:8px 16px;display:flex;position:sticky;top:12px}.app-brand{font-family:var(--font-mono);color:var(--coral);font-size:13px;font-weight:500}.app-nav{gap:4px;display:flex}.nav-link{border-radius:var(--radius-badge);color:var(--text-secondary);padding:4px 10px;font-size:13px;font-weight:500;text-decoration:none}.nav-link:hover{color:var(--white)}.nav-link.router-link-active{color:var(--white);background:var(--graphite)}.app-user{color:var(--text-secondary);align-items:center;gap:8px;font-size:13px;display:flex}.btn{border-radius:var(--radius-control);background:var(--mist);color:var(--iron);font:inherit;cursor:pointer;border:none;padding:8px 12px;font-size:14px;font-weight:500;box-shadow:0 7px 3px #00000008,0 4px 4px #00000040}.btn:disabled{opacity:.4;cursor:default}.btn:not(:disabled):hover{background:var(--white)}.btn-quiet{border-radius:var(--radius-badge);color:var(--text-secondary);box-shadow:none;background:0 0}.btn-quiet:not(:disabled):hover{background:var(--graphite);color:var(--white)}:focus-visible{outline-offset:2px;outline:2px solid #e6e6e6b3}.field{flex-direction:column;gap:6px;display:flex}.field span{color:var(--text-secondary);font-size:13px;font-weight:500}.field input,.field select,.chat-input textarea,.upload-form input{border-radius:var(--radius-control);color:var(--white);font:inherit;background:#ffffff0d;border:none;padding:8px 12px}.field input::placeholder,.chat-input textarea::placeholder,.upload-form input::placeholder{color:var(--text-secondary)}.error{border-radius:var(--radius-control);color:#ff9d9d;background:#45232480;border:1px solid #ff636366;margin:0;padding:8px 12px}.empty{color:var(--text-muted);margin:24px 0}.login-page{flex:1;justify-content:center;align-items:center;padding:32px 16px;display:flex;position:relative}.login-page:before{content:"";pointer-events:none;background:radial-gradient(#043f968c 0%,#06122540 45%,#0000 70%);position:fixed;inset:0}.login-page:after{content:"";background:var(--coral);opacity:.18;filter:blur(48px);pointer-events:none;width:120%;height:120px;position:fixed;top:30%;left:-10%;transform:rotate(-12deg)}.login-card{background:var(--card);width:min(360px,100%);box-shadow:var(--key-shadow);border-radius:20px;padding:32px 28px;position:relative}.login-mark{font-family:var(--font-mono);color:var(--coral);margin:0 0 20px;font-size:24px;font-weight:500}.login-form{flex-direction:column;gap:14px;display:flex}.login-form .btn{margin-top:6px}.chat{flex-direction:column;gap:12px;display:flex}.chat-log{background:var(--card);border-radius:var(--radius-card);box-shadow:var(--key-shadow);flex-direction:column;gap:10px;min-height:320px;margin:0;padding:16px;list-style:none;display:flex}.chat-bubble{border-radius:var(--radius-control);border:1px solid var(--border);background:var(--recessed);align-self:flex-start;max-width:75%;padding:8px 12px}.chat-bubble[data-own=true]{background:var(--graphite);border-color:#ffffff40;align-self:flex-end}.chat-body{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.chat-time{font-family:var(--font-mono);color:var(--text-muted);margin-top:4px;font-size:11px;display:block}.chat-input{align-items:flex-end;gap:8px;display:flex}.chat-input textarea{resize:vertical;flex:1}.user-select select{min-width:220px}.upload-form{background:var(--card);border-radius:var(--radius-card);box-shadow:var(--key-shadow);flex-wrap:wrap;align-items:center;gap:8px;padding:12px;display:flex}.upload-form input[type=text]{flex:1;min-width:160px}.upload-form .error{flex-basis:100%}.file-table{border-collapse:collapse;background:var(--card);border-radius:var(--radius-card);width:100%;box-shadow:var(--key-shadow)}.file-table th,.file-table td{text-align:left;border-bottom:1px solid var(--graphite);padding:10px 12px}.file-table th{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);font-size:11px;font-weight:400}.file-table tbody tr:last-child td{border-bottom:none}.file-table a{color:var(--mist);font-weight:500;text-decoration:none}.file-table a:hover{color:var(--white);text-decoration:underline}.file-table time{font-family:var(--font-mono);color:var(--text-secondary);font-size:12px}.file-table td{color:var(--text-secondary)}.file-table td:first-child{color:var(--white)}@media (width<=560px){.chat-bubble{max-width:90%}.app-header{max-width:calc(100% - 32px)}.file-table th,.file-table td{padding:8px}}
