@font-face{font-family:Archivo;src:url(../fonts/archivo-latin-400-normal.woff2);font-weight:400;font-display:swap}
@font-face{font-family:Archivo;src:url(../fonts/archivo-latin-700-normal.woff2);font-weight:700;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url(../fonts/instrument-serif-latin-400-normal.woff2);font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url(../fonts/jetbrains-mono-latin-400-normal.woff2);font-display:swap}
:root{--bg:#141a0d;--s1:#1d2514;--s2:#27321b;--line:#37452a;--lime:#c6f432;--text:#f1ede2;--mute:#a7ad96;--bad:#ff7a6b;
--sans:Archivo,system-ui,sans-serif;--serif:"Instrument Serif",Georgia,serif;--mono:"JetBrains Mono",ui-monospace,monospace}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 var(--sans);-webkit-text-size-adjust:100%}
body{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
.wrap{max-width:1000px;margin:0 auto;padding:20px 16px 48px}
.center{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.spin{width:34px;height:34px;border:3px solid var(--line);border-top-color:var(--lime);border-radius:50%;animation:s .8s linear infinite}@keyframes s{to{transform:rotate(360deg)}}
.brand{font-family:var(--serif);font-size:30px;line-height:1}.brand b{color:var(--lime);font-weight:400}
.tag{font:11px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.card{background:var(--s1);border:1px solid var(--line);border-radius:14px;padding:20px;margin:16px 0}
.auth{width:100%;max-width:400px}.auth .card{margin-top:24px}
h1,h2{font-family:var(--serif);font-weight:400;margin:0 0 12px}h1{font-size:34px}h2{font-size:24px}
label{display:block;font:12px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--mute);margin:14px 0 6px}
input,select{width:100%;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:12px;font:16px var(--sans)}
input:focus,select:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--lime);outline-offset:1px}
button,.btn{background:var(--lime);color:var(--bg);border:0;border-radius:10px;padding:12px 18px;font:700 15px var(--sans);cursor:pointer;min-height:44px}
button.ghost{background:transparent;color:var(--text);border:1px solid var(--line)}button.sm{padding:6px 12px;min-height:34px;font-size:13px}
button:disabled{opacity:.5}.full{width:100%;margin-top:18px}
.link{background:none;color:var(--lime);padding:6px 0;min-height:0;font-weight:400;text-decoration:underline}
.bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.badge{display:inline-block;font:12px var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:99px;background:var(--s2);color:var(--lime);border:1px solid var(--line)}
.badge.bad{color:var(--bad)}.big{font:34px var(--serif);margin:8px 0}.mute{color:var(--mute)}.mono{font-family:var(--mono)}
.msg{border-radius:10px;padding:10px 14px;margin:12px 0;background:var(--s2);border:1px solid var(--line)}.msg.err{color:var(--bad);border-color:var(--bad)}
.banner{position:sticky;top:0;background:var(--bad);color:var(--bg);text-align:center;padding:8px;font-weight:700;z-index:9}
.tabs{display:flex;gap:8px;margin:16px 0}.tabs button{background:transparent;color:var(--mute);border:1px solid var(--line)}.tabs button.on{background:var(--lime);color:var(--bg)}
.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}table{border-collapse:collapse;width:100%;font-size:14px}
th{font:11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mute);text-align:left}th,td{padding:10px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
td input{width:70px;padding:6px}td select{padding:6px;width:auto}
@media(min-width:700px){.wrap{padding:32px 24px 64px}}
.plist{display:grid;gap:12px;margin-top:12px}.pcard img{border-radius:50%}.caps{margin:8px 0;padding-left:18px;font-size:.85rem}
.chatlog{min-height:160px;max-height:50vh;overflow:auto;display:flex;flex-direction:column;gap:8px;margin:10px 0}.bub{padding:10px 12px;border-radius:10px;background:#1c2412;white-space:pre-wrap;word-break:break-word;max-width:92%}.bub.user{align-self:flex-end;background:#2b3a14}.bub.assistant{align-self:flex-start}
