:root{--bg: #0b1013;--panel: #131b20;--panel-2: #182228;--line: #24313a;--text: #e6edf3;--muted: #8ba0ad;--accent: #7dd3a0;--accent-2: #5eb1ef;--warn: #f0a35e;--bad: #ef6b6b;--radius: 10px;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(1200px 600px at 70% -10%,#17262b 0%,var(--bg) 55%);color:var(--text);font:13px/1.45 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button{font:inherit;color:inherit;cursor:pointer}input{background:#0d1418;border:1px solid var(--line);border-radius:8px;padding:8px 10px;color:var(--text);width:100%;outline:none}input:focus{border-color:var(--accent-2)}.auth-shell{min-height:100%;display:grid;place-items:center;padding:24px}.auth-card{width:min(420px,100%);background:linear-gradient(180deg,#141e23,#0f171b);border:1px solid var(--line);border-radius:16px;padding:26px;box-shadow:0 30px 80px #00000073}.auth-brand{display:flex;gap:12px;align-items:center;margin-bottom:20px}.auth-brand h1{margin:0;font-size:20px;letter-spacing:.5px}.auth-brand p{margin:2px 0 0;color:var(--muted);font-size:12px}.mark{font-size:26px;color:var(--accent)}.stack{display:grid;gap:12px}.stack label{display:grid;gap:6px;color:var(--muted);font-size:12px}.primary{background:linear-gradient(180deg,#2c8f68,#1f6c4e);border:1px solid #2f9c72;border-radius:9px;padding:9px 14px;font-weight:600}.primary:disabled{opacity:.5;cursor:default}.ghost{background:transparent;border:1px solid var(--line);border-radius:8px;padding:5px 9px;color:var(--muted)}.ghost:hover{color:var(--text);border-color:#35505c}.tabs{display:flex;gap:6px;margin-bottom:14px}.tabs button{background:transparent;border:1px solid var(--line);border-radius:8px;padding:6px 12px;color:var(--muted);font-size:12px}.tabs button.active{color:var(--text);border-color:#35505c;background:#1b262c}.tabs.small button{padding:4px 9px}.notice{color:var(--warn);font-size:12px;margin-top:12px}.notice.bad{color:var(--bad)}.muted{color:var(--muted)}.auth-foot{margin-top:16px;text-align:right}.row{display:flex;gap:8px;align-items:center}.spinner{width:26px;height:26px;border-radius:50%;border:2px solid #22323a;border-top-color:var(--accent);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.app{height:100%;display:grid;grid-template-rows:50px 1fr}.hud{display:flex;align-items:center;gap:16px;padding:0 14px;border-bottom:1px solid var(--line);background:#0c1216eb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.hud-brand{display:flex;gap:8px;align-items:center}.hud-stats{display:flex;gap:14px;color:var(--muted);font-size:12px;flex:1;overflow:hidden}.hud-stats .good{color:var(--accent)}.hud-stats .bad{color:var(--bad)}.hud-actions{display:flex;gap:8px;align-items:center}.speed{display:flex;gap:3px;align-items:center}.chip{background:#152026;border:1px solid var(--line);border-radius:7px;padding:3px 8px;font-size:11px;color:var(--muted)}.chip.active{color:#06120d;background:var(--accent);border-color:var(--accent);font-weight:700}.chip.bad{color:var(--bad);border-color:#4a2a2a}.main{display:grid;grid-template-columns:290px 1fr 330px;min-height:0}.single{padding:20px;overflow:auto}.panel{background:var(--panel);border-right:1px solid var(--line);min-height:0;display:flex;flex-direction:column}.panel.agent-panel{border-right:none;border-left:1px solid var(--line)}.panel.empty{display:grid;place-items:center;color:var(--muted);padding:20px;text-align:center}.panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);gap:8px}.panel-head small{display:block;color:var(--muted);font-size:11px}.panel .tabs{margin:8px 10px 0}.scroll{overflow:auto;padding:10px 12px 20px}.panel h4{margin:16px 0 6px;font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted)}.kv{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px dashed #1e2a31;font-size:12px}.kv span{color:var(--muted)}.dot{width:8px;height:8px;border-radius:50%;background:#3b4a53}.dot.on{background:var(--accent);box-shadow:0 0 8px var(--accent)}.leaders,.knowledge,.feed,.memories,.skills{list-style:none;margin:0;padding:0}.leaders li{display:flex;justify-content:space-between;padding:4px 0;font-size:12px;cursor:pointer}.leaders li:hover{color:var(--accent)}.knowledge li{padding:3px 0;font-size:12px;color:var(--muted)}.knowledge li.unlocked{color:var(--text)}.knowledge .bar{height:3px;background:#1b262c;border-radius:3px;margin-top:3px;overflow:hidden}.knowledge .fill{background:var(--accent-2);height:100%}.feed{max-height:40vh;overflow:auto}.feed li{font-size:11.5px;padding:5px 0;border-bottom:1px dashed #1e2a31;color:#c6d4dc}.feed li small{color:#5f7683;margin-right:4px}.feed li.war,.feed li.nature{color:var(--warn)}.stage{position:relative;min-height:0;overflow:hidden}.canvas-host{position:absolute;top:0;right:0;bottom:0;left:0}.canvas-host canvas{display:block}.stage-hint{position:absolute;left:12px;bottom:58px;font-size:11px;color:#93a8b4;background:#090e11b8;padding:4px 8px;border-radius:6px;pointer-events:none}.agent-bar{position:absolute;left:8px;right:8px;bottom:8px;display:flex;gap:6px;overflow-x:auto;padding:6px;background:#090e11d1;border:1px solid var(--line);border-radius:10px}.avatar{display:flex;align-items:center;gap:5px;white-space:nowrap;background:#121c21;border:1px solid var(--line);border-radius:8px;padding:4px 8px;font-size:11px;color:var(--muted)}.avatar.active{border-color:var(--accent);color:var(--text)}.dotavatar{width:8px;height:8px;border-radius:50%;display:inline-block}.need{display:grid;grid-template-columns:70px 1fr;align-items:center;gap:8px;margin:4px 0;font-size:11.5px;color:var(--muted)}.bar{height:5px;background:#1b262c;border-radius:4px;overflow:hidden}.fill{height:100%;background:linear-gradient(90deg,#2c8f68,#7dd3a0)}.fill.warn{background:linear-gradient(90deg,#c97a3a,#f0a35e)}.skills li{display:flex;justify-content:space-between;font-size:12px;padding:2px 0;color:#b9cad3}.skills .value{color:var(--muted)}.belief{font-style:italic;color:#cfe0d7;font-size:12px;margin:6px 0}.belief small{color:var(--muted);font-style:normal}.memories li{font-size:11.5px;color:#c2d2da;padding:6px 0;border-bottom:1px dashed #1e2a31}.memories li small{display:block;color:#5f7683}.tag{font-size:10px;text-transform:uppercase;letter-spacing:.5px;padding:1px 5px;border-radius:4px;background:#1b262c;color:var(--muted);margin-right:4px}.tag.birth{color:var(--accent)}.tag.death{color:var(--bad)}.tag.discovery{color:var(--accent-2)}.tag.pending{color:var(--warn)}.tag.approved{color:var(--accent)}.tag.rejected{color:var(--bad)}.chat{display:flex;flex-direction:column;min-height:0;flex:1}.chat-log{flex:1;overflow:auto;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.bubble{max-width:88%;padding:7px 10px;border-radius:10px;font-size:12px;line-height:1.4}.bubble.them{background:#1a252b;border:1px solid #24313a;align-self:flex-start}.bubble.me{background:#1e3a2f;border:1px solid #2c5544;align-self:flex-end}.bubble.thinking{color:var(--muted);font-style:italic}.chat-input{display:flex;gap:6px;padding:8px;border-top:1px solid var(--line)}.admin table{width:100%;border-collapse:collapse;margin-top:12px}.admin th,.admin td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);font-size:12px}.admin th{color:var(--muted);font-weight:500}.admin td.actions{display:flex;gap:6px}.profile{max-width:520px;display:grid;gap:18px}.profile h2{margin:0}.profile section{border:1px solid var(--line);border-radius:var(--radius);padding:14px;background:var(--panel)}.profile h3{margin:0 0 10px;font-size:12px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted)}.totp{display:grid;gap:10px;justify-items:start}.totp img{background:#fff;border-radius:8px;padding:6px}.totp code{font-size:12px;background:#0d1418;padding:6px 8px;border-radius:6px;border:1px solid var(--line)}@media(max-width:1100px){.main{grid-template-columns:1fr;grid-template-rows:1fr auto}.panel.society{display:none}.panel.agent-panel{position:fixed;right:0;top:50px;bottom:0;width:min(360px,92vw);z-index:20;box-shadow:-20px 0 60px #00000080}.panel.empty,.hud-stats{display:none}}.factions li{display:flex;justify-content:space-between;align-items:center;font-size:11.5px;padding:4px 0}.factions small{color:var(--muted)}.policy{margin:4px 0;font-size:11.5px}.policy small{display:block;color:var(--muted)}.stage-vignette{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5;background:radial-gradient(ellipse at 50% 45%,#ffecbe12,#0000 45%),radial-gradient(ellipse at 50% 50%,#0000 55%,#040c108c)}.app{height:100dvh}.mobile-only{display:none}@media(max-width:820px),(pointer:coarse)and (max-width:1100px){.desktop-only{display:none!important}.mobile-only{display:inline-flex}.hud{gap:8px;padding:0 8px;height:52px;overflow-x:auto;scrollbar-width:none}.hud::-webkit-scrollbar{display:none}.hud-brand strong{font-size:12px}.hud-brand .mark{font-size:18px}.hud-stats{display:none}.hud-actions{gap:5px;margin-left:auto}.hud-actions .ghost{padding:4px 7px}.speed .chip{padding:2px 6px}.main{grid-template-columns:1fr;grid-template-rows:1fr;position:relative}.panel.society{position:fixed;inset:52px auto 0 0;width:min(320px,86vw);z-index:40;transform:translate(-102%);transition:transform .22s ease;box-shadow:24px 0 60px #0000008c;background:var(--panel);border-right:1px solid var(--line);display:flex}.panel.society.mobile-open{transform:translate(0)}.drawer-close{position:absolute;top:8px;right:8px;z-index:2}.stage{grid-column:1;grid-row:1}.stage-hint{bottom:66px;font-size:10px}.agent-bar{left:4px;right:4px;bottom:4px;padding:4px;gap:4px}.avatar{padding:3px 6px;font-size:10px}.dotavatar{width:6px;height:6px}.panel.agent-panel{position:fixed;left:0;right:0;bottom:0;top:auto;width:100%;height:min(62dvh,520px);z-index:45;border-left:none;border-top:1px solid var(--line);border-radius:14px 14px 0 0;box-shadow:0 -18px 50px #0000008c;background:var(--panel)}.panel.empty{display:none}.chat-input{padding-bottom:calc(8px + env(safe-area-inset-bottom))}.chat-input input{font-size:16px}.scroll{padding-bottom:calc(20px + env(safe-area-inset-bottom))}.tabs.small button{padding:5px 9px}.admin{padding:4px}.admin table,.admin thead,.admin tbody,.admin tr,.admin td,.admin th{display:block}.admin thead{display:none}.admin tr{border:1px solid var(--line);border-radius:10px;margin-bottom:8px;padding:8px 10px;background:var(--panel)}.admin td{border:none;padding:3px 0}.admin td.actions{flex-wrap:wrap}.profile{max-width:none;padding:4px}.auth-shell{padding:12px}.auth-card{padding:18px;width:100%}}@media(max-width:480px){.hud-brand strong,.stage-hint{display:none}.speed .chip:nth-child(n+4){display:none}}@media(max-width:820px),(pointer:coarse)and (max-width:1100px){.agent-bar{bottom:calc(4px + env(safe-area-inset-bottom))}.hud{padding-top:env(safe-area-inset-top)}.mobile-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#04080a99;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:60;display:flex;justify-content:flex-end;align-items:flex-start;padding-top:calc(58px + env(safe-area-inset-top));padding-right:10px}.mobile-menu{width:min(260px,82vw);background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:8px;display:grid;gap:4px;box-shadow:0 24px 60px #0009}.mobile-menu button{text-align:left;background:transparent;border:1px solid transparent;border-radius:9px;padding:11px 12px;font-size:14px;color:var(--text)}.mobile-menu button.active{background:#1b262c;border-color:#35505c}.mobile-menu button:hover{background:#1b262c}}body{font-size:15px;line-height:1.5}.auth-brand h1{font-size:23px}.auth-brand p,.stack label{font-size:13px}.primary{font-size:15px;padding:11px 16px}.ghost{font-size:13px;padding:7px 11px}.tabs button{font-size:13px;padding:8px 14px}.chip{font-size:12.5px;padding:5px 10px}.hud{height:56px}.hud-brand strong{font-size:15px}.hud-stats{font-size:13px;gap:16px}.panel-head{padding:12px 14px}.panel-head strong{font-size:15px}.panel-head small{font-size:12px}.kv{font-size:13px;padding:6px 0}.panel h4{font-size:12px;margin-top:18px}.feed li{font-size:12.5px;padding:6px 0}.leaders li,.factions li,.knowledge li{font-size:12.5px}.need{font-size:12.5px;grid-template-columns:82px 1fr}.skills li{font-size:13px}.memories li{font-size:12.5px}.belief{font-size:13px}.bubble{font-size:13.5px;padding:9px 12px}.avatar{font-size:12px;padding:5px 9px}.stage-hint{font-size:12px}.toast{font-size:12.5px}.map-controls{position:absolute;left:12px;top:12px;display:grid;gap:6px;z-index:6}.icon-btn{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;border:1px solid var(--line);background:#0c1418d1;color:var(--text);font-size:18px;line-height:1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.icon-btn:hover{border-color:#3c5a66}.icon-btn.active{border-color:var(--accent);color:var(--accent)}.minimap{position:absolute;right:12px;bottom:66px;width:168px;height:118px;border-radius:12px;border:1px solid var(--line);box-shadow:0 16px 40px #00000073;cursor:crosshair;z-index:6}.toasts{position:absolute;left:60px;top:12px;display:grid;gap:6px;max-width:min(420px,46vw);z-index:6;pointer-events:none}.toast{background:#0b1418e0;border:1px solid var(--line);border-left:3px solid var(--accent-2);border-radius:8px;padding:7px 10px;animation:toast-in .22s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.toast.war,.toast.nature,.toast.decay{border-left-color:var(--warn)}.toast.death{border-left-color:var(--bad)}.toast.birth,.toast.discovery{border-left-color:var(--accent)}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.llm-status{position:absolute;right:12px;top:12px;display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted);background:#0b1418cc;border:1px solid var(--line);border-radius:999px;padding:4px 10px;z-index:6}.llm-status .dotllm{width:7px;height:7px;border-radius:50%;background:#55636b}.llm-status.ok .dotllm{background:var(--accent);box-shadow:0 0 8px var(--accent)}.llm-status.warn .dotllm{background:var(--warn)}.llm-status.off .dotllm{background:var(--bad)}.quick-actions{display:flex;gap:5px;flex-wrap:wrap;padding:8px 10px 0;border-top:1px solid var(--line)}.quick-actions .chip{cursor:pointer}.admin-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.admin-events{margin:12px 0 18px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.admin-events h3{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted)}.row.wrap{flex-wrap:wrap}@media(max-width:820px),(pointer:coarse)and (max-width:1100px){.minimap{width:120px;height:84px;bottom:calc(60px + env(safe-area-inset-bottom));right:8px}.map-controls{left:8px;top:8px;gap:5px}.icon-btn{width:40px;height:40px;font-size:19px}.toasts{left:8px;top:8px;max-width:62vw}.llm-status{display:none}.quick-actions{padding:6px 8px 0}}
