:root{--bg:#101311;--panel:#191d1a;--panel2:#212721;--border:#343b34;--fg:#e8e9e2;--muted:#9da79c;--gold:#e2bb75;--gold-dim:#b18b51;--green:#9ec3a3;--red:#e2a3a3;--radius:10px;color-scheme:dark}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--fg);font-size:14px}button,textarea,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit}h1,h2,h3,p{margin-top:0}h1{font-size:19px;font-weight:600;margin-bottom:0;letter-spacing:.015em}h2{font-size:31px;letter-spacing:-.04em;font-weight:650;margin:5px 0 5px}p{line-height:1.58}.muted{color:var(--muted)}.small{font-size:12px}.gold{color:var(--gold)}.overline{font-size:10px;font-weight:750;letter-spacing:.2em;text-transform:uppercase}.app-shell{display:flex;min-height:100vh}.sidebar{width:248px;flex:0 0 248px;background:#171b18;border-right:1px solid var(--border);display:flex;flex-direction:column;padding:27px 15px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;padding:1px 10px 35px}.brand-symbol{border:1px solid var(--gold-dim);color:var(--gold);width:37px;height:43px;display:grid;place-items:center;border-radius:4px;font-family:Georgia,serif;font-size:30px}.brand-word{font-size:16px;letter-spacing:.18em;font-family:Georgia,serif}.brand-sub{font-size:9px;color:var(--muted);letter-spacing:.14em;margin-top:5px}.sidebar nav{display:flex;flex-direction:column;gap:5px}.nav{display:flex;align-items:center;gap:13px;background:none;border:1px solid transparent;color:#b5beb4;text-align:left;border-radius:7px;padding:13px 15px;font-size:13px}.nav:hover,.nav.active{color:var(--gold);background:#2a2b21;border-color:#403e30}.nav-icon{font-size:18px;width:19px;text-align:center}.side-bottom{margin-top:auto;padding:15px 10px 0}.side-bottom .small{margin-top:14px;line-height:1.6}.status-tag{display:inline-block;border:1px solid #436049;background:#233028;color:#a9d1b3;padding:7px 10px;border-radius:20px;font-size:11px}.status-tag.paused{background:#3a2d22;border-color:#574331;color:#e3bd86}.main{flex:1;min-width:0}.topbar{height:98px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:20px clamp(24px,4vw,58px)}.topbar .overline{color:var(--muted)}.topbar-actions{display:flex;align-items:center;gap:18px}.turn-stamp{color:var(--gold);font-size:11px;letter-spacing:.11em;font-weight:750}.tab{display:none;padding:38px clamp(20px,4vw,58px) 100px;max-width:1400px;margin:auto}.tab.active{display:block}.page-intro{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.page-intro p{margin:0}.columns{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(290px,.9fr);gap:22px;align-items:start}.column-wide,.column-side,.character-list{display:flex;flex-direction:column;gap:16px}.column-side{gap:19px}.card{border:1px solid var(--border);background:var(--panel);border-radius:var(--radius);padding:22px}.card-light{background:#1c221d}.section-title{font-weight:650;font-size:13px;display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.chronicle-list{display:flex;flex-direction:column;gap:15px}.chronicle-entry{padding:29px 32px;border:1px solid var(--border);background:#191d1a;border-radius:var(--radius)}.entry-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:20px;font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--gold)}.entry-meta time{color:var(--muted);text-transform:none;letter-spacing:0}.story{font-size:15px;line-height:1.9;font-family:Georgia,Charter,serif;white-space:pre-line;color:#e5e2d7}.story p{margin:0 0 12px}.story p:last-child{margin-bottom:0}.btn{border:1px solid var(--border);background:var(--panel2);color:var(--fg);padding:10px 15px;line-height:1.2;border-radius:7px;font-weight:600;font-size:12px;text-decoration:none;white-space:nowrap;display:inline-block}.btn:hover{filter:brightness(1.14)}.btn.primary{color:#21190f;background:var(--gold);border-color:var(--gold)}.btn.subtle{background:#232822}.btn.danger{border-color:#754c4c;background:#302223;color:#f3b9b9}.btn.large{font-size:14px;padding:15px 24px}.btn.block{display:block;width:100%;margin-top:12px}.btn.center{text-align:center}.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:2px}input,select,textarea{background:#121713;border:1px solid #3c493e;color:var(--fg);border-radius:6px;padding:11px 12px;width:100%;min-width:0}textarea{resize:vertical;line-height:1.55}.compose-row{display:grid;grid-template-columns:1fr auto;gap:10px;margin-bottom:10px}.form-foot{display:flex;justify-content:space-between;gap:15px;margin-top:10px}.counter{color:var(--gold);font-size:11px;border:1px solid #635539;border-radius:5px;padding:2px 7px}.pending-card{padding:11px 0;border-bottom:1px solid var(--border)}.pending-card:last-child{border-bottom:0;padding-bottom:0}.pending-name{font-weight:650;margin-bottom:5px;font-size:12px}.pending-text{font-size:12px;line-height:1.6;color:var(--muted);overflow-wrap:anywhere}.mini-link{border:0;background:transparent;color:var(--gold);padding:4px 0;font-size:11px}.mini-person{border-bottom:1px solid var(--border);padding:10px 0}.mini-person:last-child{border-bottom:0}.mini-name{font-weight:650}.mini-goal{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.5}.char-card{padding:24px}.char-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.char-name{font-size:21px;font-family:Georgia,serif}.avatar{display:grid;place-items:center;width:42px;height:42px;background:#354137;border:1px solid #60705d;border-radius:50%;color:#e5dbbe;font-family:Georgia,serif;font-size:19px;margin-right:12px;flex-shrink:0}.char-heading{display:flex;align-items:center}.pill{color:var(--green);border:1px solid #3d5f46;border-radius:20px;padding:5px 10px;font-size:11px}.pill.off{color:var(--muted);border-color:var(--border)}.char-bio{margin:16px 0;color:var(--muted);line-height:1.6}.char-goal-form{display:flex;gap:10px;margin:8px 0 17px}.char-goal-form input{flex:1}.field-caption{font-size:10px;letter-spacing:.16em;color:var(--muted);text-transform:uppercase;font-weight:750;margin:15px 0 9px}.inv-tags{display:flex;flex-wrap:wrap;gap:7px}.inv-tag{font-size:12px;color:#d6dacf;background:#2b332c;border:1px solid #3b483c;border-radius:5px;padding:5px 9px}.empty{font-size:12px;color:var(--muted);padding:9px 0}.char-bottom{display:flex;align-items:center;gap:15px;border-top:1px solid var(--border);padding-top:16px;margin-top:20px}.toggle{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:12px;cursor:pointer}.toggle input{width:auto;accent-color:var(--gold)}form label:not(.toggle){display:block;font-weight:600;font-size:12px;margin:14px 0 7px}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px}.admin-grid .card{min-width:0}.button-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.control-stat{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border);font-size:12px}.control-stat strong{color:var(--gold)}.divider{height:1px;background:var(--border);margin:22px 0}.fileline{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:11px 0;border-bottom:1px solid var(--border);font-size:11px}.fileline span{color:var(--muted);text-align:right}.debug-log{background:#101410;white-space:pre-wrap;overflow-wrap:anywhere;border:1px solid var(--border);border-radius:6px;max-height:330px;overflow:auto;font-size:10px;color:#bcc8b9;padding:12px}.world-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px}.world-grid .card{min-width:0}.world-title{font-family:Georgia,serif;font-size:19px;color:var(--gold)}.ledger-table{width:100%;border-collapse:collapse;font-size:12px}.ledger-table td,.ledger-table th{border-bottom:1px solid var(--border);padding:10px 3px;text-align:left;vertical-align:top}.ledger-table th{font-size:10px;text-transform:uppercase;color:var(--muted);letter-spacing:.1em}.ledger-table td:last-child,.ledger-table th:last-child{text-align:right}.event-fail{color:var(--red)}.event-ok{color:var(--green)}.item-row{padding:9px 0;border-bottom:1px solid var(--border);line-height:1.5}.item-row:last-child{border:0}.item-row strong{color:var(--gold)}.usage{padding:9px 0;border-bottom:1px solid var(--border);font-size:11px;line-height:1.5}.usage span{color:var(--muted)}#notice:empty{display:none}#notice{max-width:1300px;margin:14px clamp(20px,4vw,58px) -14px;padding:12px 16px;border-radius:7px;background:#244031;color:#d5edd6;border:1px solid #4b7755}#notice.error{background:#442929;border-color:#7f4a4a;color:#ffcece}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(max-width:1050px){.columns{grid-template-columns:minmax(0,1fr)}.column-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.column-side .card:last-child{grid-column:1 / -1}.admin-grid{grid-template-columns:1fr}}
@media(max-width:700px){.app-shell{display:block}.sidebar{position:static;width:100%;height:auto;padding:12px 12px 0}.brand{padding:4px 5px 10px}.sidebar nav{display:flex;flex-direction:row;overflow:auto;gap:5px;padding-bottom:10px}.nav{font-size:11px;padding:10px;flex-shrink:0;gap:5px}.nav-icon{font-size:14px;width:auto}.side-bottom{display:none}.topbar{height:76px;padding:10px 20px}.topbar .btn{display:none}.tab{padding:25px 16px 50px}.page-intro{align-items:start;flex-direction:column}.page-intro .btn{width:100%}.column-side{grid-template-columns:1fr}.chronicle-entry{padding:21px}.story{font-size:15px}.world-grid{grid-template-columns:1fr}.form-foot{flex-direction:column}.compose-row{grid-template-columns:1fr}.char-top{align-items:start}.card{padding:17px}}

/* V1.5 Chronicle reader: independently scrolling record and character/location inspector. */
@media(min-width:1101px){
  body.chronicle-mode .main{height:100vh;overflow:hidden;display:flex;flex-direction:column}
  body.chronicle-mode .topbar{flex-shrink:0}
  body.chronicle-mode #notice:not(:empty){flex-shrink:0}
  #tab-chronicle{width:100%;max-width:none;margin:0;padding:23px 28px 0;flex:1;min-height:0;overflow:hidden;display:none;flex-direction:column}
  #tab-chronicle.active{display:flex}
  #tab-chronicle .page-intro{flex-shrink:0;margin-bottom:17px}
  .chronicle-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(310px,370px);min-height:0;flex:1;gap:18px}
  .chronicle-feed,.chronicle-inspector{overflow-y:auto;overscroll-behavior:contain;min-height:0;scrollbar-width:thin;scrollbar-color:#4c5a4d transparent}
  .chronicle-feed{padding:0 8px 24px 0}
  .chronicle-inspector{padding:0 8px 22px 0;display:flex;flex-direction:column;gap:14px;border-left:1px solid var(--border);padding-left:17px}
}
.chronicle-inspector .card{padding:19px 19px 20px}
.chronicle-inspector .field-caption{margin:15px 0 7px}
.chronicle-inspector .form-foot{align-items:start;font-size:11px;margin:8px 0 9px}
.chronicle-inspector .form-foot span:first-child{flex:1}
.chronicle-inspector #action-text{margin-top:3px;min-height:100px}
.chronicle-inspector .btn.block{margin-top:12px}
.inspector-person-heading{display:flex;gap:11px;align-items:center}
.avatar-large{width:56px;height:56px;font-size:25px;margin-right:0}
.inspector-person-name{font-family:Georgia,serif;font-size:23px;line-height:1.25}
.inspector-bio{margin:13px 0 17px;font-size:12px;color:var(--muted);line-height:1.65}
.health-line{display:flex;gap:9px;align-items:center;font-size:13px;font-weight:500}
.health-dot{display:block;width:8px;height:8px;background:#b1bdad;border-radius:50%;flex:none}
.detail-note{margin:7px 0 0}
.inspector-value{font-size:13px;line-height:1.6;margin:0;overflow-wrap:anywhere}
.inspector-hint{font-size:11px;margin:9px 0 0}
.inspector-location-name{font-family:Georgia,serif;color:var(--gold);font-size:20px;margin:8px 0}
.inspector-description{line-height:1.6;margin-bottom:13px}
.inspector-row{display:flex;flex-direction:column;gap:3px;padding:9px 0;border-bottom:1px solid var(--border);font-size:12px}
.inspector-row:last-child{border-bottom:0}
.inspector-row strong{font-weight:650}
.inspector-row span{overflow-wrap:anywhere;line-height:1.45}
.chronicle-inspector .mini-person{padding:9px 0}
#load-history{max-width:340px;margin:20px auto}
#load-history[hidden]{display:none}
@media(max-width:1100px){
  .chronicle-workspace{display:flex;flex-direction:column-reverse;gap:20px}
  .chronicle-feed,.chronicle-inspector{min-width:0}
  .chronicle-inspector{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
  .inspector-compose{grid-row:span 2}
  .chronicle-inspector .card{min-width:0}
}
@media(max-width:700px){
  .chronicle-inspector{grid-template-columns:1fr}
  .inspector-compose{grid-row:auto}
  #tab-chronicle .page-intro{margin-bottom:17px}
  .chronicle-inspector .card{padding:17px}
}

/* V1.8 account gateway and six-turn Chronicle reader */
.auth-screen{position:fixed;z-index:100;inset:0;background:#101311;display:grid;place-items:center;padding:22px;overflow:auto}
.auth-screen[hidden]{display:none}
.auth-card{width:min(100%,440px);padding:30px}
.auth-brand{padding:0 0 18px}
.auth-error{font-size:12px;color:#f0b7b7;min-height:1.5em;margin-top:12px}
#admin-nav[hidden],#run-turn[hidden]{display:none!important}
.calendar-stamp{color:#d3bb89;font-size:11px;white-space:normal;max-width:295px;text-align:right;line-height:1.55}
.topbar-actions{flex-wrap:wrap;justify-content:flex-end;gap:11px}
.chronicle-instruction{background:#24291f;border-left:3px solid var(--gold-dim);padding:9px 15px 12px;margin-bottom:19px;font-size:12px;line-height:1.7;overflow-wrap:anywhere}
.chronicle-instruction .field-caption{margin:2px 0 5px;color:var(--gold)}
#load-history{margin:0 auto 18px}
@media(max-width:700px){.calendar-stamp{font-size:10px;max-width:185px}.turn-stamp{font-size:10px}.topbar{height:auto;min-height:90px}}

#logout{display:block;margin:8px 0 13px}


/* V1.8.3 account workspace */
.account-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:1100px}
.account-grid .card{display:flex;flex-direction:column;gap:12px;align-items:flex-start;padding:25px}
.account-grid .btn{max-width:100%;white-space:normal}
.account-grid h3{margin:4px 0;font-size:1.35rem}
@media(max-width:780px){.account-grid{grid-template-columns:1fr}}
