:root{color:#eee9e4;font-synthesis:none;background:#12100f;font-family:Inter,ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at top,#2a211d 0,#12100f 48%);min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}a{color:inherit}.portal-shell{grid-template-rows:auto auto 1fr;min-height:100vh;display:grid}.brand{align-items:center;gap:.75rem;padding:1rem 1.1rem .7rem;font-weight:650;display:flex}.brand-mark{letter-spacing:.08em;border:1px solid #8e7566;border-radius:.7rem;place-items:center;width:2.35rem;height:2.35rem;font-size:.78rem;display:grid}.portal-nav{scrollbar-width:none;gap:.35rem;padding:.35rem 1rem .85rem;display:flex;overflow-x:auto}.portal-nav a{white-space:nowrap;color:#bfb3aa;border-radius:999px;padding:.65rem .8rem;text-decoration:none}.portal-nav a.active{color:#211a17;background:#eee9e4}.portal-content{padding:1rem}.state-panel{background:#1d1815d1;border:1px solid #423732;border-radius:1.15rem;max-width:62rem;min-height:14rem;padding:1.5rem;box-shadow:0 1.5rem 4rem #0000002e}.state-panel h2{margin:.25rem 0 .6rem;font-size:clamp(1.55rem,5vw,2.4rem)}.eyebrow{color:#b99b88;text-transform:uppercase;letter-spacing:.12em;margin:0;font-size:.72rem;font-weight:700}.muted,.state-panel p{color:#bfb3aa;line-height:1.6}.center-page,.login-page{place-items:center;min-height:100vh;padding:1rem;display:grid}.login-card{background:#1d1815;border:1px solid #423732;border-radius:1.2rem;width:min(100%,28rem);padding:1.6rem}.login-card h1{margin:.35rem 0 .5rem}.login-card label{color:#d7cdc6;gap:.45rem;margin-top:1.2rem;display:grid}.login-card input{color:#fff;background:#100e0d;border:1px solid #5b4b42;border-radius:.7rem;width:100%;padding:.85rem}.login-card button{color:#1e1714;cursor:pointer;background:#e4d5ca;border:0;border-radius:.7rem;width:100%;margin-top:.8rem;padding:.85rem;font-weight:700}.login-card button:disabled{opacity:.6;cursor:wait}.form-error{color:#ffb4ac}@media (width>=760px){.portal-shell{grid-template-rows:auto 1fr;grid-template-columns:14rem 1fr}.brand{grid-column:1;padding:1.4rem 1.25rem}.portal-nav{flex-direction:column;grid-area:2/1;padding:.25rem .75rem 1.5rem;overflow:visible}.portal-nav a{border-radius:.65rem}.portal-content{grid-area:1/2/span 2;padding:2rem clamp(1.5rem,4vw,4rem)}}.page-stack{gap:1rem;max-width:62rem;display:grid}.page-heading h1,.hero-card h1{margin:.2rem 0 .5rem;font-size:clamp(1.8rem,6vw,3rem)}.hero-card,.content-card,.story-entry{background:#1d1815d1;border:1px solid #423732;border-radius:1.1rem;padding:1.25rem}.hero-card{padding:clamp(1.25rem,4vw,2rem)}.world-time{color:#b99b88;font-size:.9rem}.scene-prose,.story-entry p{color:#e2d9d2;font-size:1.05rem;line-height:1.75}.chip-list{flex-wrap:wrap;gap:.5rem;margin:.6rem 0 0;padding:0;list-style:none;display:flex}.chip-list li{color:#d7cdc6;border:1px solid #55463e;border-radius:999px;padding:.45rem .7rem}.story-list{gap:.8rem;display:grid}.story-list article{border-top:1px solid #392f2a;padding-top:.8rem}.story-list span,.story-entry header span{color:#9f8b7e;font-size:.82rem}.story-reader{gap:1rem;display:grid}.story-entry header{justify-content:space-between;align-items:center;display:flex}.story-entry header button{color:#e7c8a8;cursor:pointer;background:0 0;border:0;font-size:1.5rem}.pager{justify-content:space-between;gap:.7rem;display:flex}.pager button{color:#e5ddd7;background:#211b18;border:1px solid #55463e;border-radius:.7rem;padding:.7rem .9rem}.pager button:disabled{opacity:.4}.admin-page{min-height:100vh;padding:clamp(1rem,4vw,3rem)}.admin-dashboard{gap:1rem;max-width:72rem;margin:0 auto;display:grid}.admin-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.admin-heading h1{margin:.2rem 0;font-size:clamp(1.8rem,5vw,2.8rem)}.engine-badge{letter-spacing:.06em;border:1px solid #67564d;border-radius:999px;padding:.55rem .8rem;font:700 .78rem ui-monospace,monospace}.engine-healthy{color:#a8d8b3;border-color:#52725c}.engine-read_only{color:#e5c996;border-color:#8c724e}.engine-desync,.engine-recovery{color:#ffb4ac;border-color:#945a54}.admin-warning{background:#622b2638;border:1px solid #945a54;border-radius:1rem;padding:1rem 1.2rem}.admin-warning p{color:#d7c0ba;margin-bottom:0}.admin-grid{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1rem;display:grid}.admin-card{background:#1d1815e0;border:1px solid #423732;border-radius:1rem;padding:1.2rem}.admin-card h2{margin:0 0 .8rem}.metric-grid{grid-template-columns:1fr auto;gap:.55rem 1rem;margin:0;display:grid}.metric-grid dt{color:#a99a91}.metric-grid dd{text-align:right;margin:0}.metric-grid .mono{text-overflow:ellipsis;max-width:13rem;font:.78rem ui-monospace,monospace;overflow:hidden}.admin-actions button{color:#1e1714;background:#e4d5ca;border:1px solid #67564d;border-radius:.7rem;padding:.75rem 1rem;font-weight:700}.admin-actions button:disabled{opacity:.45;cursor:not-allowed}.admin-inline-error{color:#ffb4ac;max-width:72rem;margin:0 auto 1rem}.directory-grid{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.9rem;display:grid}.directory-card{background:#1d1815c7;border:1px solid #423732;border-radius:1rem;padding:1rem 1.1rem}.directory-card h2{margin:0;font-size:1.05rem}.directory-meta{color:#b9aaa0;text-transform:uppercase;letter-spacing:.04em;margin:.45rem 0 0;font:.78rem ui-monospace,monospace}.portal-search{gap:.6rem;display:flex}.portal-search input{color:#eee4dd;background:#181311;border:1px solid #55463e;border-radius:.75rem;flex:1;min-width:0;padding:.8rem .9rem}.portal-search button{color:#1e1714;background:#e4d5ca;border:1px solid #67564d;border-radius:.75rem;padding:.8rem 1rem;font-weight:700}.note-list{gap:.8rem;display:grid}.note-list article{border-left:2px solid #67564d;padding-left:.9rem}.note-list article p{margin:.35rem 0}.note-list article span{color:#a99a91;font-size:.8rem}@media (width<=640px){.portal-search{flex-direction:column}}.session-exit-control{justify-items:end;gap:.25rem;margin-left:auto;display:grid}.session-exit-button{color:#d9ccc4;cursor:pointer;background:0 0;border:1px solid #67564d;border-radius:.7rem;padding:.55rem .75rem}.session-exit-button:disabled{opacity:.45;cursor:not-allowed}.session-exit-hint{color:#a99a91;text-align:right;max-width:16rem;font-size:.7rem}
