:root{
  --bg:#0b0f16;--bg2:#0f141d;--panel:#141b26;--panel2:#192231;--line:#273349;--text:#f4f7fb;--muted:#8d9aaf;
  --accent:#78d8ff;--accent2:#8b8dff;--gold:#f0bd61;--green:#66d6a4;--red:#ff7884;--shadow:0 20px 70px rgba(0,0,0,.28);
  --radius:20px;--sidebar:248px;
}
:root[data-theme="light"]{
  --bg:#f3f6fb;--bg2:#edf2f8;--panel:#ffffff;--panel2:#f7f9fc;--line:#dce4ee;--text:#18202c;--muted:#718096;
  --accent:#168dbb;--accent2:#5968da;--gold:#b37716;--green:#18885e;--red:#c84d59;--shadow:0 18px 55px rgba(40,55,75,.10);
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Pretendard,"Noto Sans KR","Malgun Gothic",system-ui,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer}a{text-decoration:none;color:inherit}.hidden{display:none!important}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 84% 5%,rgba(120,216,255,.09),transparent 32%),radial-gradient(circle at 4% 88%,rgba(139,141,255,.08),transparent 28%)}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:28px}.login-card{width:min(100%,440px);background:var(--panel);border:1px solid var(--line);border-radius:28px;padding:30px;box-shadow:var(--shadow);position:relative}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,var(--accent),var(--accent2));display:grid;place-items:center;color:white;font-weight:900}.brand strong{font-size:18px}.brand span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.login-card h1{font-size:30px;line-height:1.2;margin:34px 0 10px}.login-card p{color:var(--muted);font-size:14px;line-height:1.7}.primary,.discord-btn,.ghost-btn{border:0;border-radius:14px;padding:13px 16px;font-weight:800}.discord-btn{width:100%;margin-top:24px;background:#5865f2;color:#fff}.ghost-btn{background:var(--panel2);color:var(--text);border:1px solid var(--line)}.login-actions{display:flex;justify-content:space-between;align-items:center;margin-top:16px}.alpha-chip,.chip{display:inline-flex;align-items:center;border:1px solid var(--line);background:var(--panel2);color:var(--muted);border-radius:999px;padding:6px 9px;font-size:11px}.alpha-chip{color:var(--green)}
.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar) 1fr}.sidebar{position:sticky;top:0;height:100vh;background:color-mix(in srgb,var(--panel) 94%,transparent);border-right:1px solid var(--line);padding:22px 16px;display:flex;flex-direction:column;z-index:10}.side-brand{padding:0 8px 22px}.side-nav{display:grid;gap:6px}.nav-btn{border:0;background:transparent;color:var(--muted);padding:11px 12px;border-radius:13px;text-align:left;font-weight:750;display:flex;gap:10px;align-items:center}.nav-btn:hover,.nav-btn.active{background:var(--panel2);color:var(--text)}.nav-group{font-size:10px;color:var(--muted);letter-spacing:.12em;padding:18px 12px 7px}.side-footer{margin-top:auto;display:grid;gap:8px}.main{min-width:0}.topbar{height:72px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(15px);z-index:8}.topbar-title{font-weight:900}.user-mini{display:flex;align-items:center;gap:10px}.avatar{width:36px;height:36px;border-radius:12px;object-fit:cover;background:var(--panel2);display:grid;place-items:center;font-weight:900}.content{max-width:1220px;margin:0 auto;padding:28px}.hero{display:grid;grid-template-columns:1.5fr .9fr;gap:18px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.pad{padding:22px}.kicker{font-size:11px;color:var(--accent);font-weight:900;letter-spacing:.12em}.title{font-size:27px;margin:7px 0 6px;line-height:1.2}.sub{font-size:13px;color:var(--muted);line-height:1.7}.class-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.chip.gold{color:var(--gold)}.chip.green{color:var(--green)}.section-title{font-size:12px;font-weight:900;margin:28px 2px 12px;color:var(--muted);letter-spacing:.06em}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.stat{background:var(--panel2);border:1px solid var(--line);border-radius:15px;padding:15px}.stat label{display:block;color:var(--muted);font-size:10px}.stat strong{display:block;font-size:17px;margin-top:6px}.bars{display:grid;gap:13px;margin-top:18px}.bar-head{display:flex;justify-content:space-between;color:var(--muted);font-size:11px}.bar{height:9px;background:var(--bg2);border-radius:999px;overflow:hidden;margin-top:6px}.bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--accent2))}.bar.hp i{background:linear-gradient(90deg,#ff6979,#ff9b6b)}.bar.mp i{background:linear-gradient(90deg,#5da9ff,#8b8dff)}.quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.quick{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:17px;text-align:left;color:var(--text)}.quick:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}.quick b{display:block;margin-top:8px}.quick span{display:block;color:var(--muted);font-size:11px;margin-top:5px;line-height:1.5}.list{display:grid;gap:10px}.row{background:var(--panel2);border:1px solid var(--line);border-radius:15px;padding:15px;display:flex;align-items:center;justify-content:space-between;gap:16px}.row-main{min-width:0}.row-main b{display:block}.row-main span{display:block;color:var(--muted);font-size:11px;margin-top:4px}.right{text-align:right}.big-number{font-size:24px;font-weight:950}.muted{color:var(--muted)}.split{display:grid;grid-template-columns:1.4fr .8fr;gap:18px}.nation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.nation{padding:18px}.nation h3{margin:0 0 6px}.rep{font-size:26px;font-weight:950}.timeline{display:grid;gap:10px}.tl{border-left:2px solid var(--line);padding:4px 0 4px 14px}.tl.done{border-color:var(--green)}.tl.active{border-color:var(--gold)}.tl p{margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.55}.empty{padding:32px;text-align:center;color:var(--muted)}.readonly{border:1px solid color-mix(in srgb,var(--green) 45%,var(--line));background:color-mix(in srgb,var(--green) 8%,var(--panel));border-radius:14px;padding:13px 15px;color:var(--green);font-size:12px;margin-bottom:18px}.toast{position:fixed;right:20px;bottom:20px;z-index:50;background:var(--text);color:var(--bg);padding:12px 15px;border-radius:12px;font-weight:800;opacity:0;transform:translateY(8px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}.mobile-nav{display:none}
@media(max-width:900px){.app-shell{display:block}.sidebar{display:none}.topbar{height:62px;padding:0 16px}.content{padding:18px 14px 90px}.hero,.split{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,1fr)}.quick-grid{grid-template-columns:repeat(2,1fr)}.nation-grid{grid-template-columns:1fr}.mobile-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;background:color-mix(in srgb,var(--panel) 94%,transparent);backdrop-filter:blur(16px);border-top:1px solid var(--line);z-index:20;padding-bottom:env(safe-area-inset-bottom)}.mobile-nav button{border:0;background:transparent;color:var(--muted);padding:10px 4px;font-size:10px}.mobile-nav button.active{color:var(--accent)}.user-mini .username{display:none}}

/* Alpha 3 · large-number overflow fix */
.account-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.stat{min-width:0;overflow:hidden}.stat strong{min-width:0;max-width:100%}.numeric{font-size:clamp(14px,1.55vw,20px)!important;line-height:1.12;white-space:nowrap;letter-spacing:-.035em;font-variant-numeric:tabular-nums}.location-value{font-size:14px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.write-live{border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line));background:color-mix(in srgb,var(--accent) 8%,var(--panel));border-radius:14px;padding:13px 15px;color:var(--accent);font-size:12px;margin-bottom:18px}
.dungeon-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.dungeon-card{min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:17px;padding:17px;color:var(--text);text-align:left}.dungeon-card:not(.locked):hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}.dungeon-card.locked{opacity:.48;cursor:not-allowed}.dungeon-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.dungeon-top b{font-size:16px;min-width:0;overflow:hidden;text-overflow:ellipsis}.reward-line{margin-top:12px;color:var(--gold);font-size:11px;line-height:1.55}
.combat-card{overflow:hidden}.combat-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.combat-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.primary{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#07111a}.enemy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.enemy{background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:14px;min-width:0}.enemy-title{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:10px}.enemy-title b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.enemy-title span{color:var(--muted);font-size:10px;white-space:nowrap}.enemy-hp i{background:linear-gradient(90deg,#d95767,#ff8c66)}.combat-log{max-height:290px;overflow:auto;background:var(--bg2);border:1px solid var(--line);border-radius:14px;padding:13px;display:grid;gap:7px;font-size:12px;line-height:1.55}.combat-log div{padding-bottom:7px;border-bottom:1px dashed color-mix(in srgb,var(--line) 70%,transparent)}.combat-log div:last-child{border-bottom:0;padding-bottom:0}
@media(max-width:1100px){.dungeon-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.account-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.numeric{font-size:clamp(14px,4.4vw,20px)!important}.dungeon-grid{grid-template-columns:1fr}.combat-head{display:block}.combat-actions{justify-content:flex-start;margin-top:15px}.enemy-grid{grid-template-columns:1fr}}

/* Alpha 4 · skill combat */
.resource-stack{display:grid;gap:13px;margin-top:20px}.bar.gauge i{background:linear-gradient(90deg,#f0b34d,#ff718c)}
.pet-pill{display:inline-flex;align-items:center;gap:6px;margin-top:12px;padding:7px 10px;border-radius:999px;border:1px solid color-mix(in srgb,var(--green) 40%,var(--line));background:color-mix(in srgb,var(--green) 8%,var(--panel2));color:var(--green);font-size:11px;font-weight:800}
.skill-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.skill-btn{min-width:0;background:var(--panel2);border:1px solid var(--line);border-radius:15px;padding:14px;text-align:left;color:var(--text);transition:.16s}.skill-btn:not(:disabled):hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 48%,var(--line));box-shadow:0 8px 24px rgba(0,0,0,.08)}.skill-btn.locked,.skill-btn:disabled{opacity:.53;cursor:not-allowed}.skill-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.skill-top b{font-size:14px;line-height:1.35;min-width:0}.skill-resource{flex:0 0 auto;color:var(--gold);font-size:10px;font-weight:850}.skill-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px;min-height:19px}.skill-tag{font-size:9px;padding:3px 6px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}.skill-tag.awakening{color:#e7a74c;border-color:color-mix(in srgb,#e7a74c 45%,var(--line));background:color-mix(in srgb,#e7a74c 7%,transparent)}.skill-tag.second{color:#e66f9d;border-color:color-mix(in srgb,#e66f9d 45%,var(--line));background:color-mix(in srgb,#e66f9d 7%,transparent)}.skill-btn p{margin:9px 0 10px;color:var(--muted);font-size:10px;line-height:1.55;min-height:31px}.skill-status{font-size:10px;color:var(--red);font-weight:800}.skill-status.ready{color:var(--green)}.empty-inline{grid-column:1/-1;padding:18px;border:1px dashed var(--line);border-radius:14px;color:var(--muted);font-size:12px;text-align:center}
.enemy.mini-boss{border-color:color-mix(in srgb,var(--gold) 55%,var(--line));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--gold) 14%,transparent)}.enemy.mini-boss .enemy-title span{color:var(--gold);font-weight:800}
.alpha-note{margin-top:16px;padding:12px 13px;border-radius:13px;background:var(--bg2);border:1px dashed var(--line);color:var(--muted);font-size:10px;line-height:1.65}
.combat-actions button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:1100px){.skill-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.skill-grid{grid-template-columns:1fr}.skill-btn p{min-height:0}}
