:root{
  --bg:#0d0c0a;--bg2:#14120e;--panel:#17140f;--panel2:#211c14;--ink:#f4ead0;--muted:#aa9e83;
  --gold:#d4a843;--gold2:#f0cf78;--gold-dark:#7d5c1e;--red:#8d2c26;--green:#3f7450;--line:rgba(212,168,67,.22);
  --shadow:0 18px 50px rgba(0,0,0,.38);--radius:18px;--sidebar:270px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 70% -20%,#30271a 0,transparent 40%),linear-gradient(135deg,var(--bg),#080807 70%);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100vh}
body.light{--bg:#d8c9a9;--bg2:#cbb88e;--panel:#f1e4c7;--panel2:#e6d4ae;--ink:#241c12;--muted:#6f6049;--line:rgba(96,67,22,.22);--shadow:0 18px 42px rgba(67,44,10,.18)}
button,input,select{font:inherit}.noise{position:fixed;inset:0;pointer-events:none;opacity:.16;z-index:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E")}
.app-shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:100vh;position:relative;z-index:1}.sidebar{position:sticky;top:0;height:100vh;padding:24px 18px;background:linear-gradient(180deg,rgba(23,20,15,.98),rgba(10,9,8,.98));border-right:1px solid var(--line);display:flex;flex-direction:column;gap:28px;z-index:20;box-shadow:12px 0 40px rgba(0,0,0,.2)}
.brand-wrap{display:flex;align-items:center;gap:12px;padding:4px}.brand-crest{width:54px;height:64px;filter:drop-shadow(0 6px 12px rgba(0,0,0,.5))}.eyebrow,.section-kicker,.topbar-kicker{font-size:.68rem;letter-spacing:.18em;color:var(--gold2);font-weight:800}.brand-title{font-family:Georgia,"Times New Roman",serif;font-size:1.05rem;font-weight:900;letter-spacing:.04em}.brand-sub{color:var(--muted);font-size:.75rem;margin-top:2px}.nav-list{display:flex;flex-direction:column;gap:7px}.nav-item{border:1px solid transparent;background:transparent;color:var(--muted);padding:12px 13px;border-radius:12px;text-align:left;cursor:pointer;display:flex;align-items:center;gap:11px;font-weight:700;transition:.2s}.nav-item span{width:22px;text-align:center;color:var(--gold)}.nav-item:hover,.nav-item.active{color:var(--ink);background:linear-gradient(90deg,rgba(212,168,67,.14),rgba(212,168,67,.03));border-color:var(--line);transform:translateX(2px)}.sidebar-footer{margin-top:auto;padding:14px;border-top:1px solid var(--line);color:var(--muted);font-size:.72rem}.status-dot-row{display:flex;gap:8px;align-items:center;margin-bottom:7px}.status-dot{width:7px;height:7px;border-radius:50%;background:#65b97b;box-shadow:0 0 12px #65b97b}
.main{min-width:0}.topbar{height:76px;position:sticky;top:0;z-index:15;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,3vw,42px);background:rgba(13,12,10,.82);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}body.light .topbar{background:rgba(216,201,169,.86)}.topbar-title{display:flex;flex-direction:column;gap:2px}.topbar-title strong{font-family:Georgia,serif;font-size:1.2rem}.topbar-actions{display:flex;align-items:center;gap:10px}.world-pill{border:1px solid var(--line);color:var(--muted);padding:7px 10px;border-radius:999px;font-size:.75rem}.icon-btn{background:var(--panel2);border:1px solid var(--line);color:var(--gold2);width:38px;height:38px;border-radius:10px;cursor:pointer}.mobile-only{display:none}.view{display:none;padding:clamp(20px,3vw,42px);animation:fade .28s ease}.view.active{display:block}@keyframes fade{from{opacity:.45;transform:translateY(5px)}to{opacity:1;transform:none}}
.hero-panel{position:relative;overflow:hidden;min-height:360px;padding:clamp(28px,5vw,68px);border:1px solid var(--line);border-radius:26px;background:linear-gradient(100deg,rgba(12,10,8,.96) 15%,rgba(30,24,15,.91) 55%,rgba(90,62,21,.36)),radial-gradient(circle at 86% 50%,rgba(212,168,67,.28),transparent 27%),linear-gradient(135deg,#17130e,#0c0b09);box-shadow:var(--shadow);display:flex;align-items:center}.hero-panel:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 59px,rgba(212,168,67,.025) 60px),repeating-linear-gradient(0deg,transparent 0 59px,rgba(212,168,67,.022) 60px);mask-image:linear-gradient(90deg,transparent,#000)}.hero-copy{position:relative;z-index:2;max-width:760px}.hero-copy h1,.page-intro h1{font-family:Georgia,"Times New Roman",serif;font-weight:900;margin:.35rem 0 1rem;line-height:.98}.hero-copy h1{font-size:clamp(2.6rem,6vw,5.8rem);letter-spacing:-.045em}.hero-copy h1 span{color:var(--gold2);text-shadow:0 4px 25px rgba(212,168,67,.2)}.hero-copy p{max-width:620px;color:var(--muted);font-size:clamp(1rem,1.6vw,1.18rem);line-height:1.6}.hero-actions,.action-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.btn{border-radius:12px;padding:12px 18px;font-weight:800;cursor:pointer;border:1px solid var(--line);transition:.2s}.btn:hover{transform:translateY(-1px)}.btn.gold{background:linear-gradient(180deg,var(--gold2),var(--gold));color:#241b0d;border-color:#e6bd5a;box-shadow:0 8px 22px rgba(212,168,67,.15)}.btn.ghost{background:rgba(255,255,255,.02);color:var(--ink)}.btn.full{width:100%;margin-top:18px}.hero-emblem{position:absolute;right:7%;width:min(25vw,260px);opacity:.18;transform:rotate(4deg)}.hero-emblem img{width:100%;filter:drop-shadow(0 20px 30px #000)}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:18px}.stat-card,.panel{background:linear-gradient(145deg,rgba(31,27,20,.96),rgba(19,17,13,.96));border:1px solid var(--line);box-shadow:var(--shadow)}body.light .stat-card,body.light .panel{background:linear-gradient(145deg,rgba(244,232,203,.95),rgba(224,208,171,.96))}.stat-card{padding:20px;border-radius:16px;display:flex;flex-direction:column;gap:4px}.stat-card span{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.stat-card strong{font-family:Georgia,serif;font-size:clamp(1.6rem,3vw,2.4rem)}.stat-card small{color:var(--muted)}.stat-card.silver{background:linear-gradient(145deg,rgba(72,68,58,.7),rgba(24,22,18,.95))}.dashboard-grid,.two-col{display:grid;grid-template-columns:1.6fr 1fr;gap:16px;margin-top:16px}.panel{padding:clamp(20px,2.5vw,30px);border-radius:var(--radius)}.panel.compact{margin-top:16px}.panel-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:18px}.panel h2{font-family:Georgia,serif;margin:.3rem 0 0;font-size:1.45rem}.badge{display:inline-flex;align-items:center;padding:8px 10px;border:1px solid rgba(212,168,67,.38);border-radius:10px;background:rgba(212,168,67,.12);color:var(--gold2);font-weight:900}.promo-main{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.promo-main>div{padding:16px;border-radius:14px;background:rgba(255,255,255,.025);border:1px solid rgba(212,168,67,.12);display:flex;flex-direction:column;gap:6px}.promo-main span,.threshold-box span{color:var(--muted);font-size:.78rem}.promo-main strong{font-size:clamp(1.35rem,2.5vw,2.2rem);font-family:Georgia,serif}.promo-main small{color:var(--muted)}.promo-time{margin-top:14px;color:var(--gold2);font-size:.82rem}.threshold-box{padding:20px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(135deg,rgba(212,168,67,.09),transparent);display:flex;flex-direction:column;gap:6px}.threshold-box strong{font-size:clamp(1.8rem,4vw,3rem);font-family:Georgia,serif}.progress-track{height:9px;border-radius:999px;background:rgba(255,255,255,.07);margin-top:16px;overflow:hidden}.progress-fill{height:100%;width:0;background:linear-gradient(90deg,var(--gold-dark),var(--gold2));transition:width .35s}.muted{color:var(--muted);line-height:1.55}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.quick-card{background:rgba(255,255,255,.025);border:1px solid var(--line);border-radius:14px;padding:16px;color:var(--ink);text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:5px}.quick-card>span{font-size:1.4rem;color:var(--gold)}.quick-card strong{margin-top:3px}.quick-card small{color:var(--muted)}.quick-card:hover{background:rgba(212,168,67,.08)}
.page-intro{margin:6px 0 24px;max-width:850px}.page-intro h1{font-size:clamp(2.2rem,5vw,4.7rem)}.page-intro p{color:var(--muted);font-size:1.04rem;line-height:1.6}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.form-grid.four{grid-template-columns:repeat(4,1fr)}.form-stack{display:flex;flex-direction:column;gap:14px}label{display:flex;flex-direction:column;gap:7px;color:var(--muted);font-size:.78rem;font-weight:700;letter-spacing:.03em}input,select{width:100%;border:1px solid var(--line);border-radius:10px;padding:12px 13px;background:rgba(6,6,5,.52);color:var(--ink);outline:none;transition:.2s}body.light input,body.light select{background:rgba(255,250,235,.62)}input:focus,select:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(212,168,67,.10)}.span-2{grid-column:span 2}.parchment{background:linear-gradient(145deg,rgba(68,52,28,.8),rgba(30,25,17,.96))}.equiv-number{font-family:Georgia,serif;color:var(--gold2);font-size:clamp(3.5rem,8vw,7rem);line-height:1;margin-top:24px}.formula-box,.notice{margin-top:20px;padding:14px;border-radius:12px;border:1px dashed rgba(212,168,67,.32);color:var(--muted);line-height:1.5}.mini-stat{display:flex;justify-content:space-between;gap:16px;padding-top:18px;margin-top:18px;border-top:1px solid var(--line)}.mini-stat span{color:var(--muted)}.mini-stat strong{color:var(--gold2)}
.conquest-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0}.summary-card{padding:18px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(145deg,rgba(31,27,20,.94),rgba(19,17,13,.94));display:flex;flex-direction:column;gap:5px}.summary-card span{color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.07em}.summary-card strong{font-family:Georgia,serif;font-size:1.7rem}.table-panel{padding:0;overflow:hidden}.table-panel .panel-head{padding:24px 24px 0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:700px}th,td{padding:14px 16px;text-align:left;border-bottom:1px solid rgba(212,168,67,.12);white-space:nowrap}th{position:sticky;top:0;background:rgba(21,18,13,.98);color:var(--gold2);font-size:.73rem;text-transform:uppercase;letter-spacing:.08em}body.light th{background:#e0cfa8;color:#5b4016}td{color:var(--muted)}td strong{color:var(--ink)}.status-ok{color:#7fd495;font-weight:800}.status-no{color:#e78e86;font-weight:800}.result-panel,.result-strip{display:flex;flex-direction:column;justify-content:center}.result-big{font-family:Georgia,serif;color:var(--gold2);font-size:clamp(2rem,5vw,4rem);margin:.2rem 0}.result-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:14px}.result-grid div{padding:12px;border:1px solid var(--line);border-radius:10px}.result-grid span{display:block;color:var(--muted);font-size:.74rem;margin-bottom:5px}.result-strip{margin-top:16px;min-height:120px}.campaign-delete{background:transparent;border:1px solid rgba(180,60,50,.35);color:#e78e86;padding:7px 9px;border-radius:8px;cursor:pointer}.footer{padding:18px 42px 32px;color:var(--muted);font-size:.7rem;text-align:center}.toast{position:fixed;right:22px;bottom:22px;padding:12px 16px;background:#241d12;border:1px solid var(--gold-dark);color:var(--gold2);border-radius:10px;box-shadow:var(--shadow);opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s;z-index:50}.toast.show{opacity:1;transform:none}
@media(max-width:1100px){.stat-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.two-col{grid-template-columns:1fr}.form-grid.four{grid-template-columns:repeat(2,1fr)}.quick-grid{grid-template-columns:repeat(2,1fr)}.hero-emblem{right:3%;width:220px}.conquest-summary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){:root{--sidebar:0px}.app-shell{display:block}.sidebar{position:fixed;left:0;top:0;width:min(84vw,310px);transform:translateX(-105%);transition:.25s ease;box-shadow:22px 0 55px #000}.sidebar.open{transform:none}.mobile-only{display:inline-flex;align-items:center;justify-content:center}.topbar{height:68px;padding:0 14px}.world-pill{display:none}.topbar-title{margin-right:auto;margin-left:10px}.view{padding:18px 14px 26px}.hero-panel{min-height:430px;padding:28px 22px;align-items:flex-end}.hero-emblem{top:32px;right:50%;transform:translateX(50%);width:160px;opacity:.13}.hero-copy h1{font-size:clamp(2.5rem,13vw,4.2rem)}.promo-main{grid-template-columns:1fr}.footer{padding:18px 16px 30px}}
@media(max-width:560px){.stat-grid,.conquest-summary,.quick-grid,.form-grid,.form-grid.four,.result-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.hero-actions .btn{width:100%}.panel{padding:18px}.topbar-kicker{display:none}.topbar-title strong{font-size:1rem}.stat-card strong{font-size:2rem}.page-intro h1{font-size:2.55rem}.action-row .btn{width:100%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* v2 additions */
.stat-grid.five{grid-template-columns:repeat(5,minmax(0,1fr))}.account-switch{min-width:170px;max-width:260px;background:rgba(15,13,10,.82);border:1px solid rgba(196,158,78,.28);color:#eadcb9;border-radius:999px;padding:9px 34px 9px 13px;font:inherit}.badge.neutral{background:rgba(255,255,255,.06);color:#d7c9a7;border-color:rgba(255,255,255,.12)}.account-cards,.event-cards{display:grid;gap:10px}.account-card,.event-card{width:100%;display:flex;gap:12px;align-items:center;text-align:left;border:1px solid rgba(196,158,78,.18);background:rgba(255,255,255,.025);color:inherit;border-radius:14px;padding:14px;cursor:pointer;transition:.2s ease}.account-card:hover,.event-card:hover,.account-card.active,.event-card.active{border-color:rgba(214,177,91,.62);background:rgba(196,158,78,.08);transform:translateY(-1px)}.account-card span:nth-child(2),.event-card span:nth-child(2){display:grid;gap:4px}.account-card small,.event-card small,.event-card em{color:var(--muted);font-size:.78rem;font-style:normal}.account-sigil,.event-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:rgba(196,158,78,.13);color:var(--gold);font-size:1.25rem}.import-box{margin-top:18px;padding:16px;border:1px dashed rgba(196,158,78,.32);border-radius:14px;background:rgba(0,0,0,.08)}.danger-zone{margin-top:18px;padding-top:16px;border-top:1px solid rgba(190,74,60,.2)}.btn.danger{background:rgba(137,48,40,.14);border-color:rgba(206,83,68,.35);color:#e6a59d}.btn.small{padding:8px 12px;font-size:.78rem}.research-checks{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.research-chip{display:inline-flex!important;align-items:center;gap:8px!important;padding:9px 11px;border:1px solid rgba(196,158,78,.18);border-radius:999px;background:rgba(255,255,255,.025);font-size:.78rem;color:var(--muted)}.research-chip input{width:auto!important;margin:0}.cell-sub{display:block;color:var(--muted);font-size:.7rem;max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-card em{display:block;color:#bfa96e}.world-pill{white-space:nowrap}
@media(max-width:1180px){.stat-grid.five{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.stat-grid.five{grid-template-columns:repeat(2,minmax(0,1fr))}.account-switch{min-width:0;width:128px;max-width:128px}.topbar-actions{gap:6px}.world-pill{display:none}.research-checks{gap:6px}.research-chip{width:100%;border-radius:12px}.account-layout{grid-template-columns:1fr}}
@media(max-width:480px){.stat-grid.five{grid-template-columns:1fr 1fr}.stat-grid.five .stat-card.silver{grid-column:1/-1}.account-switch{width:112px;max-width:112px;font-size:.75rem}}

/* v2.2 — Imperial Database & Campaign Builder */
.quick-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.inline-actions,.row-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.table-tools{display:flex;gap:10px;align-items:center;padding:0 24px 16px}.table-tools input{min-width:240px}.table-tools select{max-width:190px}.tiny-btn{background:rgba(212,168,67,.08);border:1px solid rgba(212,168,67,.28);color:var(--gold2);padding:7px 9px;border-radius:8px;cursor:pointer;font-weight:800}.tiny-btn:hover{background:rgba(212,168,67,.16)}
.sync-meter{height:12px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden;margin:8px 0 18px;border:1px solid rgba(212,168,67,.12)}.sync-meter>div{height:100%;width:0;background:linear-gradient(90deg,var(--gold-dark),var(--gold2));transition:width .35s ease}.sync-checklist{display:grid;gap:9px}.sync-item{display:flex;gap:12px;align-items:center;padding:12px 13px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.025)}.sync-item>span{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;font-weight:900}.sync-item.ok>span{background:rgba(67,143,88,.16);color:#8ddb9f}.sync-item.warn>span{background:rgba(192,137,44,.13);color:var(--gold2)}.sync-item div{display:grid;gap:2px}.sync-item small{color:var(--muted)}.code-sample{white-space:pre-wrap;overflow:auto;padding:18px;border-radius:14px;border:1px solid rgba(212,168,67,.2);background:rgba(0,0,0,.28);color:#d8c9a4;font-size:.78rem;line-height:1.55}.status-ok{color:#8ddb9f!important}.status-no{color:#ed9b92!important}.notice strong{color:var(--gold2)}
#view-campaign table{min-width:1320px}#view-holdings table{min-width:980px}
@media(max-width:1180px){.quick-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.quick-grid{grid-template-columns:repeat(2,1fr)}.table-tools{padding:0 16px 14px;flex-direction:column;align-items:stretch}.table-tools input,.table-tools select{max-width:none;min-width:0;width:100%}.inline-actions{justify-content:flex-end}}
@media(max-width:480px){.quick-grid{grid-template-columns:1fr}.row-actions{min-width:126px}}

/* v2.2 — Unicode / emoji-safe player identity */
.player-name,#playerName,.account-switch{font-family:system-ui,-apple-system,"Segoe UI","Segoe UI Emoji","Apple Color Emoji","Noto Color Emoji",sans-serif!important;font-variant-ligatures:normal;letter-spacing:normal;text-transform:none;unicode-bidi:plaintext}.player-name{overflow-wrap:anywhere}.game-name-preview{margin:14px 0;padding:14px 16px;border:1px solid rgba(196,158,78,.22);border-radius:14px;background:rgba(0,0,0,.1);display:grid;gap:5px}.game-name-preview span{font-size:.68rem;letter-spacing:.1em;color:var(--gold)}.game-name-preview strong{font-size:1.15rem;color:var(--ink)}.game-name-preview small{color:var(--muted)}
