:root {
    color-scheme: dark;
    --bg: #0d1117;
    --bg-soft: #111821;
    --panel: #151d27;
    --panel-2: #1a2430;
    --panel-3: #202d3a;
    --line: #2b3947;
    --line-soft: #202b36;
    --text: #e7edf2;
    --muted: #98a7b5;
    --faint: #6f7d8a;
    --gold: #d8ae68;
    --gold-soft: #9f7a42;
    --cyan: #72c6c0;
    --red: #df7676;
    --green: #7fc58c;
    --blue: #759bd5;
    --purple: #a98bd5;
    --orange: #dc9862;
    --shadow: 0 18px 55px rgba(0,0,0,.28);
    --radius: 14px;
    --sidebar: 260px;
    --topbar: 70px;
    --font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
}
* { box-sizing: border-box; }
html { min-height: 100%; background: var(--bg); }
body { margin: 0; min-height: 100vh; font-family: var(--font); color: var(--text); background:
    radial-gradient(circle at 12% -10%, rgba(114,198,192,.08), transparent 28rem),
    radial-gradient(circle at 92% 15%, rgba(216,174,104,.06), transparent 30rem), var(--bg); line-height: 1.55; }
a { color: var(--cyan); text-decoration: none; }
a:hover { color: #a0e4df; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
img, svg { max-width: 100%; }
small { color: var(--muted); }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 9999; padding: .75rem 1rem; background: var(--gold); color: #111; border-radius: 6px; }
.skip-link:focus { top: 1rem; }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: var(--sidebar) minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; background: rgba(14,20,27,.97); border-right: 1px solid var(--line-soft); display: flex; flex-direction: column; z-index: 30; box-shadow: 12px 0 40px rgba(0,0,0,.12); }
.brand { min-height: var(--topbar); display: flex; align-items: center; gap: .8rem; padding: .9rem 1rem; border-bottom: 1px solid var(--line-soft); color: var(--text); }
.brand:hover { color: var(--text); background: rgba(255,255,255,.02); }
.brand strong { display:block; letter-spacing:.02em; }
.brand small { display:block; font-size:.72rem; }
.brand-mark { width: 40px; height: 40px; flex: 0 0 40px; border: 1px solid var(--gold-soft); border-radius: 11px; display:grid; place-items:center; color: var(--gold); font-family: var(--mono); font-weight: 800; background: linear-gradient(145deg, rgba(216,174,104,.15), rgba(114,198,192,.05)); box-shadow: inset 0 0 18px rgba(216,174,104,.07); }
.brand-mark.large { width: 72px; height:72px; font-size:1.35rem; border-radius:20px; margin-bottom:1.2rem; }
.identity-card { margin: .85rem; padding: .8rem; border: 1px solid var(--line-soft); border-radius: 10px; background: rgba(255,255,255,.018); }
.identity-line { display:flex; justify-content:space-between; align-items:center; gap:.5rem; }
.identity-line span { color: var(--gold); font-size:.82rem; }
.identity-meta { color:var(--muted); font-size:.76rem; margin:.2rem 0 .55rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.xp-track { height:4px; border-radius:99px; background:#0a0e12; overflow:hidden; }
.xp-track span { display:block; height:100%; background:linear-gradient(90deg,var(--gold-soft),var(--gold)); }
.nav-scroll { overflow-y:auto; padding: 0 .6rem .8rem; scrollbar-width: thin; }
.nav-group { margin: .7rem 0; }
.nav-group h2 { margin:.5rem .6rem .25rem; color:var(--faint); font-size:.65rem; letter-spacing:.15em; text-transform:uppercase; }
.nav-item { width:100%; display:flex; align-items:center; gap:.7rem; min-height:38px; padding:.48rem .65rem; border:0; border-radius:8px; color:var(--muted); background:transparent; cursor:pointer; font-size:.87rem; text-align:left; }
.nav-item:hover { color:var(--text); background:rgba(255,255,255,.035); }
.nav-item.active { color:var(--text); background:linear-gradient(90deg, rgba(216,174,104,.13), rgba(114,198,192,.035)); box-shadow:inset 2px 0 var(--gold); }
.nav-icon { width:1.2rem; text-align:center; color:var(--gold); font-family:var(--mono); }
.logout-form { margin-top:auto; padding:.6rem; border-top:1px solid var(--line-soft); }
.logout { color:#bb8686; }
.main-column { min-width:0; display:flex; flex-direction:column; min-height:100vh; }
.topbar { position:sticky; top:0; min-height:var(--topbar); z-index:20; display:flex; align-items:center; gap:1rem; padding:.7rem 1.2rem; background:rgba(13,17,23,.9); backdrop-filter:blur(16px); border-bottom:1px solid var(--line-soft); }
.mobile-menu { display:none; }
.icon-button { border:1px solid var(--line); background:var(--panel); border-radius:8px; padding:.45rem .65rem; cursor:pointer; }
.bars { min-width:0; display:flex; flex:1; gap:.55rem; }
.bar-chip { position:relative; min-width:88px; max-width:140px; flex:1; display:grid; grid-template-columns:auto 1fr; align-items:center; gap:.4rem; padding:.45rem .55rem .65rem; border:1px solid var(--line-soft); border-radius:9px; background:var(--panel); overflow:hidden; }
.bar-label { width:21px; height:21px; display:grid; place-items:center; border-radius:50%; font:700 .68rem var(--mono); background:rgba(255,255,255,.05); }
.bar-value { text-align:right; font:700 .78rem var(--mono); }
.bar-value small { font-size:.63rem; }
.bar-fill { position:absolute; left:0; right:0; bottom:0; height:3px; background:#080b0e; }
.bar-fill i { display:block; height:100%; background:var(--cyan); transition:width .3s ease; }
.bar-chip.nerve .bar-fill i { background:var(--purple); }.bar-chip.health .bar-fill i { background:var(--red); }.bar-chip.focus .bar-fill i { background:var(--blue); }.bar-chip.resolve .bar-fill i { background:var(--gold); }
.top-economy { display:flex; align-items:center; gap:.7rem; color:var(--muted); font-size:.78rem; white-space:nowrap; }
.top-economy b { color:var(--text); }
.notification-link { padding:.35rem .45rem; border:1px solid var(--line-soft); border-radius:7px; color:var(--muted); }
.state-banner { display:flex; justify-content:center; gap:1rem; padding:.5rem 1rem; font-size:.82rem; border-bottom:1px solid var(--line); background:rgba(216,174,104,.09); color:#ead09f; }
.state-banner.hospital { background:rgba(223,118,118,.1); color:#efaaaa; }.state-banner.jail { background:rgba(169,139,213,.1); color:#cab5ec; }.state-banner.travel { background:rgba(117,155,213,.1); color:#abc3e8; }
.content-wrap { width:100%; max-width:1500px; margin:0 auto; padding:1.5rem; flex:1; }
.footer { display:flex; justify-content:center; gap:1.2rem; flex-wrap:wrap; padding:1.2rem; color:var(--faint); font-size:.72rem; border-top:1px solid var(--line-soft); }
.page-header { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin-bottom:1.25rem; }
.page-header .heading-copy { max-width:780px; }
.page-header h1 { margin:.1rem 0 .25rem; font-size:clamp(1.65rem,3vw,2.4rem); letter-spacing:-.035em; }
.page-header p { margin:0; color:var(--muted); }
.eyebrow { margin:0!important; text-transform:uppercase; letter-spacing:.16em; color:var(--gold)!important; font-size:.68rem; font-weight:800; }
.grid { display:grid; gap:1rem; }
.grid.two { grid-template-columns:repeat(2,minmax(0,1fr)); }.grid.three { grid-template-columns:repeat(3,minmax(0,1fr)); }.grid.four { grid-template-columns:repeat(4,minmax(0,1fr)); }
.grid.sidebar-layout { grid-template-columns:minmax(0,1.7fr) minmax(280px,.75fr); align-items:start; }
.card { background:linear-gradient(160deg, rgba(25,35,47,.95), rgba(19,27,37,.97)); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden; }
.card-header { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding:1rem 1.1rem; border-bottom:1px solid var(--line-soft); }
.card-header h2,.card-header h3 { margin:0; font-size:1rem; }.card-header p { margin:.2rem 0 0; color:var(--muted); font-size:.8rem; }
.card-body { padding:1.1rem; }.card-body.flush { padding:0; }
.card-footer { padding:.8rem 1.1rem; border-top:1px solid var(--line-soft); color:var(--muted); font-size:.78rem; background:rgba(0,0,0,.08); }
.stat-card { padding:1rem; }.stat-card .value { display:block; font:800 clamp(1.25rem,3vw,2rem) var(--mono); margin:.25rem 0; }.stat-card .label { color:var(--muted); font-size:.75rem; text-transform:uppercase; letter-spacing:.1em; }
.kpi-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:.75rem; }
.progress { height:8px; background:#0b0f14; border-radius:99px; overflow:hidden; border:1px solid rgba(255,255,255,.025); }
.progress > span { display:block; height:100%; background:linear-gradient(90deg,var(--gold-soft),var(--gold)); }
.progress.cyan > span { background:linear-gradient(90deg,#3f8f8a,var(--cyan)); }.progress.red > span { background:linear-gradient(90deg,#9d4646,var(--red)); }
.table-wrap { overflow:auto; }
table { width:100%; border-collapse:collapse; font-size:.84rem; }
th,td { padding:.72rem .85rem; border-bottom:1px solid var(--line-soft); text-align:left; vertical-align:middle; }
th { color:var(--faint); font-size:.67rem; text-transform:uppercase; letter-spacing:.1em; background:rgba(0,0,0,.08); position:sticky; top:0; }
tr:last-child td { border-bottom:0; } tbody tr:hover { background:rgba(255,255,255,.018); }
.button { display:inline-flex; align-items:center; justify-content:center; gap:.4rem; min-height:36px; padding:.48rem .82rem; border:1px solid var(--line); border-radius:8px; background:var(--panel-3); color:var(--text); cursor:pointer; font-weight:700; font-size:.78rem; transition:transform .12s ease, background .12s ease, border-color .12s ease; }
.button:hover { color:var(--text); border-color:#506375; background:#293746; }.button:active { transform:translateY(1px); }.button:disabled { opacity:.5; cursor:not-allowed; }
.button.primary { color:#15110a; background:linear-gradient(135deg,#e5c17d,var(--gold)); border-color:#e6c98f; }.button.primary:hover { background:linear-gradient(135deg,#efd294,#deb36b); }
.button.danger { background:rgba(223,118,118,.12); border-color:rgba(223,118,118,.45); color:#f1adad; }.button.success { background:rgba(127,197,140,.12); border-color:rgba(127,197,140,.4); color:#a7e1b2; }.button.ghost { background:transparent; }.button.small { min-height:30px; padding:.32rem .58rem; font-size:.72rem; }.button.wide { width:100%; }
.button-row { display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; }
.inline-form { display:flex; align-items:center; gap:.45rem; flex-wrap:wrap; }.inline-form input,.inline-form select { width:auto; min-width:80px; }
.stack-form { display:grid; gap:.85rem; }.stack-form label { display:grid; gap:.35rem; color:var(--muted); font-size:.78rem; font-weight:700; }.stack-form label small { font-weight:400; }
input,select,textarea { width:100%; border:1px solid var(--line); border-radius:8px; background:#0f151c; color:var(--text); padding:.58rem .68rem; outline:none; }
input:focus,select:focus,textarea:focus { border-color:var(--cyan); box-shadow:0 0 0 3px rgba(114,198,192,.1); }
textarea { min-height:100px; resize:vertical; }
input[type=checkbox] { width:auto; accent-color:var(--gold); }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }.form-grid .full { grid-column:1/-1; }
.badge { display:inline-flex; align-items:center; gap:.25rem; padding:.2rem .45rem; border:1px solid var(--line); border-radius:99px; color:var(--muted); font-size:.68rem; white-space:nowrap; }
.badge.common { color:#bdc7cf; }.badge.uncommon { color:#80c9a2; }.badge.rare { color:#7eb8df; }.badge.epic { color:#bc9fe6; }.badge.legendary { color:#e2b76d; border-color:rgba(216,174,104,.5); }
.badge.success { color:#9bd9a7; border-color:rgba(127,197,140,.35); }.badge.warning { color:#e8c187; border-color:rgba(216,174,104,.35); }.badge.danger { color:#eda1a1; border-color:rgba(223,118,118,.35); }
.alert { margin-bottom:1rem; padding:.8rem 1rem; border:1px solid var(--line); border-radius:9px; background:var(--panel); }.alert.success { border-color:rgba(127,197,140,.4); background:rgba(127,197,140,.08); }.alert.danger { border-color:rgba(223,118,118,.4); background:rgba(223,118,118,.08); }.alert.warning { border-color:rgba(216,174,104,.4); background:rgba(216,174,104,.08); }.alert.info { border-color:rgba(114,198,192,.35); background:rgba(114,198,192,.07); }
.list { display:grid; gap:.65rem; }.list-item { padding:.8rem; border:1px solid var(--line-soft); border-radius:9px; background:rgba(255,255,255,.012); }.list-item h3,.list-item h4 { margin:0 0 .2rem; }.list-item p { margin:.2rem 0; color:var(--muted); font-size:.82rem; }.list-item .meta { display:flex; gap:.5rem; flex-wrap:wrap; color:var(--faint); font-size:.7rem; }
.split-line { display:flex; justify-content:space-between; align-items:center; gap:1rem; }.split-line + .split-line { margin-top:.55rem; padding-top:.55rem; border-top:1px solid var(--line-soft); }
.muted { color:var(--muted); }.faint { color:var(--faint); }.gold { color:var(--gold); }.positive { color:var(--green); }.negative { color:var(--red); }.mono { font-family:var(--mono); }.nowrap { white-space:nowrap; }
.empty-state { padding:2rem; text-align:center; color:var(--muted); }.empty-state strong { display:block; color:var(--text); margin-bottom:.25rem; }
.action-card { display:flex; flex-direction:column; }.action-card .card-body { flex:1; }.action-card .card-footer { display:flex; align-items:center; justify-content:space-between; gap:.7rem; }
.hero-panel { padding:clamp(1.2rem,4vw,2.2rem); background:
    linear-gradient(120deg, rgba(216,174,104,.1), transparent 45%),
    linear-gradient(300deg, rgba(114,198,192,.08), transparent 50%), var(--panel); }
.hero-panel h2 { font-size:clamp(1.4rem,3vw,2.2rem); margin:.2rem 0 .5rem; }.hero-panel p { max-width:780px; color:var(--muted); }
.timeline { position:relative; display:grid; gap:.8rem; }.timeline:before { content:""; position:absolute; top:.6rem; bottom:.6rem; left:7px; width:1px; background:var(--line); }.timeline-item { position:relative; padding-left:1.8rem; }.timeline-item:before { content:""; position:absolute; left:2px; top:.45rem; width:11px; height:11px; border-radius:50%; background:var(--panel); border:2px solid var(--gold-soft); }.timeline-item time { color:var(--faint); font-size:.68rem; }.timeline-item p { margin:.15rem 0; font-size:.82rem; }
.chat-window { height:min(62vh,650px); overflow:auto; padding:1rem; display:flex; flex-direction:column; gap:.65rem; background:#0c1117; }
.chat-message { max-width:85%; padding:.6rem .75rem; border:1px solid var(--line-soft); border-radius:10px; background:var(--panel); }.chat-message.self { align-self:flex-end; background:rgba(114,198,192,.08); }.chat-message header { display:flex; gap:.5rem; font-size:.68rem; color:var(--faint); }.chat-message p { margin:.2rem 0 0; font-size:.84rem; white-space:pre-wrap; }
.message-card.unread { border-left:3px solid var(--gold); }.message-body { white-space:pre-wrap; color:var(--muted); }
.tabs { display:flex; gap:.35rem; flex-wrap:wrap; margin-bottom:1rem; }.tab-button { border:1px solid var(--line); background:var(--panel); color:var(--muted); padding:.45rem .72rem; border-radius:8px; cursor:pointer; }.tab-button.active { color:var(--text); border-color:var(--gold-soft); background:rgba(216,174,104,.08); }.tab-panel[hidden] { display:none; }
.toast-region { position:fixed; right:1rem; bottom:1rem; z-index:100; display:grid; gap:.6rem; width:min(380px,calc(100vw - 2rem)); }.toast { padding:.85rem 1rem; border:1px solid var(--line); border-radius:10px; background:#18222d; box-shadow:var(--shadow); animation:toast-in .2s ease; }.toast.success { border-color:rgba(127,197,140,.5); }.toast.danger { border-color:rgba(223,118,118,.55); }
@keyframes toast-in { from { opacity:0; transform:translateY(10px); } }
.public-body { display:grid; place-items:center; padding:2rem; min-height:100vh; }
.public-shell { width:min(1120px,100%); }
.public-panel { display:grid; grid-template-columns:1.2fr .8fr; min-height:640px; border:1px solid var(--line); border-radius:22px; overflow:hidden; box-shadow:0 30px 100px rgba(0,0,0,.42); background:var(--panel); }
.public-hero { padding:clamp(2rem,6vw,5rem); display:flex; flex-direction:column; justify-content:center; background:
    radial-gradient(circle at 70% 30%, rgba(114,198,192,.12), transparent 18rem),
    linear-gradient(145deg, rgba(216,174,104,.1), transparent 45%), #101720; }
.public-hero h1 { margin:.15rem 0 .6rem; font-size:clamp(2.7rem,7vw,5.4rem); line-height:.9; letter-spacing:-.07em; }.hero-copy { color:var(--muted); max-width:620px; font-size:1.05rem; }
.feature-pills { display:flex; gap:.5rem; flex-wrap:wrap; margin-top:1.2rem; }.feature-pills span { padding:.35rem .6rem; border:1px solid var(--line); border-radius:99px; color:var(--muted); font-size:.73rem; }
.auth-card { padding:clamp(1.5rem,4vw,3rem); display:flex; flex-direction:column; justify-content:center; background:#151d27; }.auth-card h2 { margin:.2rem 0 1.2rem; font-size:2rem; }.auth-switch { text-align:center; color:var(--muted); font-size:.84rem; }.fine-print { color:var(--faint); font-size:.7rem; text-align:center; }
.compact .card-body { padding:.75rem; }.compact th,.compact td { padding:.5rem .65rem; }.compact .content-wrap { padding:1rem; }
.large-text { font-size:112.5%; }.high-contrast { --bg:#000; --bg-soft:#050505; --panel:#0c0c0c; --panel-2:#111; --panel-3:#191919; --line:#666; --line-soft:#444; --text:#fff; --muted:#ddd; --faint:#bbb; --gold:#ffcf72; --cyan:#88fff6; }
.reduced-motion *, .reduced-motion *:before, .reduced-motion *:after { animation-duration:.001ms!important; transition-duration:.001ms!important; scroll-behavior:auto!important; }
@media (max-width:1180px) { .top-economy span { display:none; }.grid.four { grid-template-columns:repeat(2,minmax(0,1fr)); }.bar-chip { min-width:65px; }.bar-label { display:none; } }
@media (max-width:900px) {
    .app-shell { grid-template-columns:1fr; }.sidebar { position:fixed; left:0; transform:translateX(-105%); width:min(290px,90vw); transition:transform .2s ease; }.sidebar.open { transform:translateX(0); }.mobile-menu { display:inline-flex; }.topbar { padding:.55rem .7rem; gap:.5rem; }.bars { gap:.3rem; }.bar-chip { padding:.35rem .4rem .55rem; min-width:48px; }.bar-value { font-size:.7rem; }.bar-value small { display:none; }.top-economy { gap:.3rem; }.notification-link { padding:.3rem; }.content-wrap { padding:1rem; }.grid.sidebar-layout,.grid.three { grid-template-columns:1fr; }.page-header { align-items:flex-start; flex-direction:column; }.public-panel { grid-template-columns:1fr; }.public-hero { min-height:330px; }.public-body { padding:1rem; }
}
@media (max-width:620px) { .grid.two,.grid.four,.form-grid { grid-template-columns:1fr; }.form-grid .full { grid-column:auto; }.bars .bar-chip:nth-child(n+4) { display:none; }.content-wrap { padding:.75rem; }.card { border-radius:11px; }.page-header h1 { font-size:1.7rem; }.top-economy .notification-link:first-of-type { display:none; }.public-body { padding:0; }.public-panel { border-radius:0; min-height:100vh; border:0; }.public-hero { padding:2rem 1.3rem; }.auth-card { padding:2rem 1.3rem; } }


.public-footer{display:flex;justify-content:center;align-items:center;gap:1rem;flex-wrap:wrap;padding:0 1.25rem 1.5rem;color:var(--muted);font-size:.82rem}.public-footer a{color:var(--muted)}.public-footer a:hover,.public-footer a:focus{color:var(--text)}.legal-copy{text-align:left}.legal-copy h2{margin-top:.25rem}.legal-copy p{line-height:1.65;color:var(--muted)}
