:root{--bg:#faf9f5;--side:#f0eee6;--tx:#1f1e1d;--mu:#73726c;--bd:#e5e2d8;--ac:#c96442;--in:#fff;--ub:#ece9de;--code:#f3f1e9}
[data-t=dark]{--bg:#262624;--side:#1f1e1d;--tx:#faf9f5;--mu:#9c9a92;--bd:#3a3936;--in:#30302e;--ub:#3a3936;--code:#1f1e1d}
*{box-sizing:border-box}html,body{height:100%;margin:0}
body{background:var(--bg);color:var(--tx);font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;transition:background .3s}
.serif{font-family:Georgia,"Times New Roman",serif;font-weight:400}
button{font:inherit;color:inherit;cursor:pointer}
#splash{position:fixed;inset:0;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;z-index:99;transition:opacity .6s,visibility .6s}
#splash.hide{opacity:0;visibility:hidden}
.spark{color:var(--ac);display:block}.spark.big{width:64px;height:64px;animation:spin 6s linear infinite}
.spark path{stroke-dasharray:8;animation:dash 1.8s ease-in-out infinite}
@keyframes dash{0%{stroke-dashoffset:8}50%{stroke-dashoffset:0}100%{stroke-dashoffset:-8}}
@keyframes spin{to{transform:rotate(360deg)}}
.bar{width:180px;height:3px;background:var(--bd);border-radius:9px;overflow:hidden}
.bar i{display:block;height:100%;width:40%;background:var(--ac);border-radius:9px;animation:slide 1.2s ease-in-out infinite}
@keyframes slide{0%{transform:translateX(-100%)}100%{transform:translateX(350%)}}
.shimmer{background:linear-gradient(90deg,var(--mu) 30%,var(--tx) 50%,var(--mu) 70%);background-size:200%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:sh 1.8s linear infinite}
@keyframes sh{to{background-position:-200% 0}}
.login{min-height:100%;display:flex;align-items:center;justify-content:center;padding:20px}
.card{width:100%;max-width:400px;text-align:center}
.card h1{font-size:34px;margin:14px 0 6px}.card p{color:var(--mu);margin:0 0 26px}
.card input{width:100%;padding:14px 16px;margin-bottom:12px;border:1px solid var(--bd);border-radius:12px;background:var(--in);color:var(--tx);font:inherit;outline:0}
.card input:focus,.box:focus-within{border-color:var(--ac);box-shadow:0 0 0 3px rgba(201,100,66,.15)}
.btn{background:var(--ac);color:#fff;border:0;border-radius:12px;padding:13px 18px;width:100%;font-weight:600;transition:.2s}.btn:hover{filter:brightness(1.08)}
.err{background:#fbeae5;color:#a3341b;border-radius:10px;padding:10px;margin-bottom:12px;font-size:14px}
.app{display:flex;height:100%}
.side{width:268px;background:var(--side);border-right:1px solid var(--bd);display:flex;flex-direction:column;padding:12px;transition:transform .3s;z-index:20}
.brand{display:flex;align-items:center;gap:8px;font-size:22px;padding:6px 8px 14px}.brand .spark{width:24px;height:24px}
.nb{display:flex;align-items:center;gap:8px;background:transparent;border:1px solid var(--bd);border-radius:10px;padding:9px 12px;margin-bottom:12px;width:100%;text-align:left;color:var(--ac);font-weight:600}
.nb:hover,.it:hover,.it.on{background:var(--bd)}
.hist{flex:1;overflow:auto}.lbl{font-size:12px;color:var(--mu);padding:4px 8px}
.it{display:flex;align-items:center;justify-content:space-between;border-radius:8px;padding:7px 10px;cursor:pointer;font-size:14px}
.it span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.it b{opacity:0;font-weight:400;color:var(--mu)}.it:hover b{opacity:1}
.foot{border-top:1px solid var(--bd);padding-top:10px;display:flex;align-items:center;gap:8px;font-size:14px}
.foot .av{width:30px;height:30px;border-radius:50%;background:var(--ac);color:#fff;display:grid;place-items:center;font-weight:600}
.foot .g{flex:1;overflow:hidden}.ib{background:none;border:0;padding:6px;border-radius:8px;color:var(--mu);text-decoration:none;font-size:14px}.ib:hover{background:var(--bd);color:var(--tx)}
.main{flex:1;display:flex;flex-direction:column;min-width:0;position:relative}
.top{display:flex;align-items:center;gap:8px;padding:10px 16px;color:var(--mu);font-size:14px}.top .menu{display:none}
.msgs{flex:1;overflow:auto;padding:10px 16px 20px}.w{max-width:760px;margin:0 auto}
.empty{text-align:center;padding-top:14vh}.empty .spark{width:44px;height:44px;margin:0 auto 16px}.empty h2{font-size:38px;margin:0 0 26px}
.chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:18px}
.chip{border:1px solid var(--bd);background:transparent;border-radius:20px;padding:8px 14px;font-size:14px;color:var(--mu)}.chip:hover{background:var(--side);color:var(--tx)}
.m{margin:18px 0;animation:up .35s ease}@keyframes up{from{opacity:0;transform:translateY(8px)}}
.m.u{display:flex;justify-content:flex-end}.m.u div{background:var(--ub);padding:10px 16px;border-radius:18px;max-width:85%;white-space:pre-wrap;word-break:break-word}
.m.a{display:flex;gap:12px}.m.a .spark{width:22px;height:22px;flex:none;margin-top:4px}.m.a .c{min-width:0;flex:1;word-break:break-word}
.c p{margin:0 0 12px}.c h2,.c h3,.c h4,.c h5{font-family:Georgia,serif;margin:16px 0 8px}.c ul,.c ol{padding-left:22px;margin:0 0 12px}
.c code{background:var(--code);padding:2px 6px;border-radius:6px;font-size:.88em}.c a{color:var(--ac)}.c blockquote{border-left:3px solid var(--bd);margin:0 0 12px;padding-left:12px;color:var(--mu)}
.code{border:1px solid var(--bd);border-radius:12px;margin:0 0 12px;overflow:hidden;background:var(--code)}
.ch{display:flex;justify-content:space-between;padding:6px 12px;font-size:12px;color:var(--mu);border-bottom:1px solid var(--bd)}.ch button{background:none;border:0;color:var(--mu)}
.code pre{margin:0;padding:12px;overflow:auto}.code code{background:none;padding:0;font:13px/1.5 ui-monospace,Consolas,monospace}
.act{display:flex;gap:4px;margin-top:4px}.act button{background:none;border:0;color:var(--mu);font-size:13px;padding:4px 8px;border-radius:6px}.act button:hover{background:var(--bd)}
.dock{padding:0 16px 14px}.box{max-width:760px;margin:0 auto;background:var(--in);border:1px solid var(--bd);border-radius:22px;padding:10px 10px 10px 18px;display:flex;align-items:flex-end;gap:8px;box-shadow:0 2px 14px rgba(0,0,0,.05)}
.box textarea{flex:1;border:0;outline:0;resize:none;background:transparent;color:var(--tx);font:inherit;max-height:200px;padding:6px 0}
.send{width:36px;height:36px;border-radius:10px;border:0;background:var(--ac);color:#fff;font-size:18px;flex:none}.send:disabled{opacity:.4}
.note{text-align:center;color:var(--mu);font-size:12px;margin-top:8px}
@media(max-width:800px){.side{position:fixed;inset:0 auto 0 0;transform:translateX(-100%)}.side.open{transform:none;box-shadow:0 0 40px rgba(0,0,0,.3)}.top .menu{display:block}.empty h2{font-size:30px}}
.adm{max-width:1100px;margin:0 auto;padding:24px 16px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:16px 0}
.st{background:var(--in);border:1px solid var(--bd);border-radius:14px;padding:16px}.st small{color:var(--mu)}.st div{font-size:26px;font-family:Georgia,serif}
table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--bd)}th{color:var(--mu);font-weight:500}
.tw{overflow:auto;background:var(--in);border:1px solid var(--bd);border-radius:14px;padding:6px 10px;margin-bottom:16px}
.bars{display:flex;align-items:flex-end;gap:10px;height:140px;padding:10px}.bars div{flex:1;text-align:center;font-size:11px;color:var(--mu)}.bars i{display:block;background:var(--ac);border-radius:6px 6px 0 0;min-height:2px;margin-bottom:4px}
.pill{display:inline-block;padding:1px 8px;border-radius:9px;font-size:12px;background:var(--bd)}
