:root{
  --bg:#060912;
  --panel:rgba(12,18,31,.94);
  --panel2:rgba(18,27,45,.92);
  --line:rgba(231,198,116,.28);
  --gold:#e7c674;
  --text:#f2f5fb;
  --muted:#9ca9bd;
  --danger:#db5b70;
  --ok:#61c78b;
  --accent:#b7435b;
  font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",system-ui,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);overscroll-behavior:none}
body{min-height:100vh;overflow-x:hidden;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
button,input,select{font:inherit}
button{cursor:pointer}
img{max-width:100%;display:block}
.hidden{display:none!important}
.screen{min-height:100vh;padding:22px}
.glass{background:linear-gradient(180deg,rgba(20,29,49,.94),rgba(8,13,24,.96));border:1px solid var(--line);box-shadow:0 24px 70px rgba(0,0,0,.42);backdrop-filter:blur(12px)}

/* Title */
.title-screen{position:relative;display:grid;place-items:center;overflow:hidden;background:#05070d}
.title-map{position:absolute;inset:-8%;background:url('assets/ui/world_map_scc2.png') center/cover no-repeat;filter:brightness(.42) saturate(.94) contrast(1.05);animation:titleMap 42s ease-in-out infinite alternate}
.title-vignette{position:absolute;inset:0;background:radial-gradient(circle at 50% 42%,transparent 0 24%,rgba(2,4,9,.30) 62%,rgba(2,4,9,.82) 100%),linear-gradient(180deg,rgba(2,4,8,.12),rgba(3,5,11,.66))}
.title-card{position:relative;z-index:2;width:min(760px,94vw);padding:38px 38px 30px;border-radius:28px;text-align:center}
.crest{width:92px;height:92px;margin:0 auto 10px;filter:drop-shadow(0 0 18px rgba(231,198,116,.72));animation:crestPulse 3.4s ease-in-out infinite}
.eyebrow{font-size:12px;letter-spacing:.28em;color:var(--gold);font-weight:900;text-transform:uppercase}
.title-card h1{margin:8px 0 2px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(31px,6vw,68px);line-height:.98;letter-spacing:.02em;text-shadow:0 5px 22px #000}
.title-card h1 small{display:block;margin-top:12px;font-family:inherit;font-size:.42em;color:#d6deec;letter-spacing:.08em}
.title-jp{margin:15px 0 5px;font-size:clamp(16px,2.5vw,26px);font-weight:900;color:#f0d78f;letter-spacing:.14em}
.title-copy{margin:8px auto 24px;max-width:570px;color:#b8c2d3;line-height:1.9}
.title-buttons{display:grid;gap:10px;max-width:390px;margin:0 auto}
.primary,.secondary,.danger-btn,.ghost{border-radius:12px;padding:12px 18px;border:1px solid rgba(255,255,255,.16);font-weight:900;color:#fff;background:linear-gradient(135deg,#922c48,#c8495d);box-shadow:0 10px 24px rgba(0,0,0,.27)}
.primary:hover,.secondary:hover,.ghost:hover{transform:translateY(-1px);filter:brightness(1.08)}
.secondary{background:linear-gradient(135deg,#1b5e73,#2d8298)}
.ghost{background:rgba(255,255,255,.06);color:#dce6f7}
.danger-btn{background:linear-gradient(135deg,#6f2034,#a73548)}
.version{margin-top:18px;font-size:11px;color:#728096;letter-spacing:.12em}
@keyframes titleMap{from{transform:scale(1.04) translate(-1.5%,0)}to{transform:scale(1.16) translate(2.5%,-2%)}}
@keyframes crestPulse{0%,100%{transform:scale(.97);opacity:.84}50%{transform:scale(1.04);opacity:1;filter:drop-shadow(0 0 28px rgba(231,198,116,.95))}}

/* Setup */
.setup-screen{background:radial-gradient(circle at 70% 10%,rgba(116,43,69,.24),transparent 32%),linear-gradient(135deg,#070b14,#111828)}
.setup-wrap{width:min(1050px,100%);margin:0 auto}
.setup-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px}
.setup-head h2{margin:0;font-family:Georgia,serif;font-size:clamp(26px,4vw,46px)}
.stepper{display:flex;gap:7px;flex-wrap:wrap}
.step-dot{width:34px;height:8px;border-radius:99px;background:rgba(255,255,255,.12)}
.step-dot.active{background:var(--gold);box-shadow:0 0 15px rgba(231,198,116,.55)}
.setup-panel{border-radius:24px;padding:24px;min-height:550px}
.setup-panel h3{font-size:24px;margin:0 0 8px}
.setup-panel .lead{margin:0 0 24px;color:var(--muted);line-height:1.8}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.field label{display:block;margin-bottom:7px;font-weight:900;color:#e7d39a}
.field input{width:100%;padding:13px 14px;border-radius:11px;border:1px solid rgba(255,255,255,.18);background:#080d18;color:#fff;outline:none}
.field input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(231,198,116,.12)}
.choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.choice-card{position:relative;min-height:130px;padding:15px;border-radius:16px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.035);text-align:left;color:#fff}
.choice-card.selected{border-color:var(--gold);box-shadow:0 0 0 2px rgba(231,198,116,.2),0 15px 28px rgba(0,0,0,.24);background:rgba(231,198,116,.08)}
.choice-card b{display:block;font-size:17px;margin-bottom:6px}
.choice-card small{color:#aeb9ca;line-height:1.55}
.color-dot{width:34px;height:34px;border-radius:50%;margin-bottom:10px;border:3px solid rgba(255,255,255,.4)}
.emblem{font-size:38px;line-height:1;margin-bottom:10px}
.policy-card{min-height:185px}
.policy-card .policy-badge{display:inline-block;margin-bottom:10px;padding:4px 8px;border-radius:99px;background:rgba(255,255,255,.1);font-size:10px;color:#f2dda0}
.start-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.start-card{display:grid;grid-template-columns:74px 1fr;gap:13px;align-items:center;min-height:125px}
.start-card img{width:68px;height:68px;object-fit:contain;filter:drop-shadow(0 8px 8px rgba(0,0,0,.45))}
.setup-footer{display:flex;justify-content:space-between;gap:12px;margin-top:20px}
.setup-footer button{min-width:130px}
.summary-box{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.summary-banner{border-radius:20px;padding:20px;min-height:270px;position:relative;overflow:hidden}
.summary-banner::before{content:"";position:absolute;inset:0;background:url('assets/ui/world_map_full.webp') center/cover;filter:brightness(.22)}
.summary-banner>*{position:relative}
.summary-emblem{font-size:72px;filter:drop-shadow(0 8px 14px #000)}
.summary-banner h3{font-size:30px;margin:8px 0}
.summary-list{display:grid;gap:10px}
.summary-list div{display:flex;justify-content:space-between;gap:20px;padding:11px 12px;border-bottom:1px solid rgba(255,255,255,.08)}
.summary-list span{color:var(--muted)}

/* Main game */
.game-screen{padding:12px;background:linear-gradient(135deg,#070a11,#101827)}
.hud{height:82px;border-radius:18px;padding:11px 14px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px}
.hud-brand{display:flex;align-items:center;gap:10px;min-width:260px}
.hud-emblem{width:50px;height:50px;display:grid;place-items:center;border-radius:14px;background:rgba(255,255,255,.07);font-size:28px;border:1px solid var(--line)}
.hud-brand h2{margin:0;font-size:17px}
.hud-brand small{color:#9da9ba}
.hud-stats{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
.stat{min-width:82px;padding:7px 9px;border-radius:10px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.08);text-align:center}
.stat span{display:block;font-size:9px;color:#9cabc0;letter-spacing:.08em}
.stat b{font-size:15px;color:#fff}
.hud-actions{display:flex;gap:7px}
.icon-btn{width:42px;height:42px;border-radius:11px;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.06);color:#fff;font-size:17px}
.game-grid{height:calc(100vh - 106px);display:grid;grid-template-columns:minmax(0,1.65fr) minmax(290px,.62fr);gap:12px;margin-top:12px}
.map-panel{position:relative;border-radius:20px;padding:12px;overflow:hidden}
.map-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;gap:10px}
.map-head h3{margin:0;font-size:16px}
.map-tools{display:flex;gap:6px}
.map-tools button{height:32px;min-width:38px;padding:0 9px;border-radius:8px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:#fff;font-weight:900}
.map-viewport{position:relative;height:calc(100% - 42px);min-height:500px;overflow:hidden;border-radius:16px;border:1px solid rgba(255,255,255,.1);background:#04070d;touch-action:none;user-select:none}
.map-stage{position:absolute;inset:0;transform-origin:0 0;will-change:transform;background:url('assets/ui/world_map_scc2.png') center/100% 100% no-repeat;filter:saturate(1.08) brightness(1.08) contrast(1.03)}
.map-stage::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 45%,transparent 38%,rgba(0,0,0,.16) 100%),linear-gradient(180deg,rgba(255,244,207,.035),rgba(3,6,12,.20))}
.map-lines{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
.map-lines line{stroke:rgba(215,225,240,.26);stroke-width:.45;stroke-dasharray:1.2 1.2}
.territory-node{position:absolute;z-index:3;transform:translate(-50%,-50%);width:66px;border:0;background:none;color:#fff;text-align:center;padding:0;filter:none}
.territory-node img{width:42px;height:42px;object-fit:contain;margin:auto;filter:drop-shadow(0 7px 5px rgba(0,0,0,.75))}
.territory-node .node-label{display:block;margin-top:-4px;padding:4px 6px;border-radius:7px;background:rgba(5,9,17,.88);border:1px solid rgba(255,255,255,.15);font-size:7px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 5px 12px rgba(0,0,0,.35)}
.territory-node .owner-dot{position:absolute;top:1px;right:11px;width:14px;height:14px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 9px currentColor}
.territory-node .crown-badge{position:absolute;top:-5px;left:7px;font-size:17px;filter:drop-shadow(0 2px 4px #000)}
.territory-node.selected img{filter:drop-shadow(0 0 12px var(--gold)) drop-shadow(0 8px 5px rgba(0,0,0,.75));transform:scale(1.08)}
.territory-node.selected .node-label{border-color:var(--gold);color:#ffe6a2}
.territory-node.attackable{animation:attackPulse 1.2s ease-in-out infinite}
@keyframes attackPulse{50%{filter:drop-shadow(0 0 12px rgba(235,78,92,.95))}}

.side-panel{display:flex;flex-direction:column;gap:10px;min-height:0}
.side-card{border-radius:17px;padding:13px}
.side-card h3{margin:0 0 9px;font-size:15px;color:#f0d78f}
.territory-info{position:relative;min-height:220px}
.close-x{position:absolute;right:9px;top:8px;width:28px;height:28px;border-radius:50%;border:1px solid rgba(255,255,255,.15);background:#09101c;color:#fff;font-size:17px}
.territory-title{padding-right:30px}
.territory-title b{display:block;font-size:19px}
.territory-title small{color:#9da9ba}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:11px}
.info-item{padding:8px;border-radius:9px;background:rgba(255,255,255,.045);font-size:11px}
.info-item span{display:block;color:#8f9db2;font-size:9px}
.info-item b{font-size:13px}
.support-bar{height:9px;border-radius:99px;background:#070b12;overflow:hidden;margin-top:5px}
.support-bar i{display:block;height:100%;background:linear-gradient(90deg,#b74a5e,#e8c66d,#67c98c)}
.action-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:10px}
.action-row button,.command-grid button,.officer-actions button{padding:9px 7px;border-radius:9px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.055);color:#fff;font-weight:800;font-size:11px}
.action-row button.primary-mini{background:linear-gradient(135deg,#8d2c43,#c4495a)}
.command-card{flex:0 0 auto}
.command-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.command-grid button{min-height:48px}
.command-grid button b{display:block;color:#f3d991;font-size:12px}
.command-grid button small{display:block;color:#a7b2c3;font-size:8px;margin-top:2px}
.log-card{flex:1;min-height:120px;overflow:hidden;display:flex;flex-direction:column}
.log-list{overflow:auto;display:grid;gap:6px;padding-right:3px}
.log-item{padding:7px 8px;border-left:2px solid rgba(231,198,116,.45);background:rgba(255,255,255,.035);font-size:10px;line-height:1.5;color:#c8d1df}
.placeholder-info{display:grid;place-items:center;text-align:center;min-height:190px;color:#8e9bad}
.placeholder-info b{color:#e6d59f}

/* Modals */
#modalRoot:empty{display:none}
.modal-back{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;padding:18px;background:rgba(2,4,9,.76);backdrop-filter:blur(7px)}
.modal{width:min(780px,96vw);max-height:90vh;overflow:auto;border-radius:22px;padding:20px;animation:modalIn .18s ease-out}
.modal.wide{width:min(1000px,96vw)}
.modal h2{margin:0 0 6px;font-size:24px}
.modal-lead{margin:0 0 17px;color:#9eabbd;line-height:1.65}
.modal-close{float:right;width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.14);background:#0a111e;color:#fff}
@keyframes modalIn{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
.command-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.command-option{padding:15px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.11)}
.command-option h3{margin:0 0 6px;color:#f0d589}
.command-option p{min-height:42px;margin:0 0 10px;color:#aab5c6;font-size:12px;line-height:1.55}
.command-option button{width:100%}
.officer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.officer-card{display:grid;grid-template-columns:78px 1fr;gap:12px;padding:12px;border-radius:15px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1)}
.officer-card.commander{border-color:var(--gold);box-shadow:0 0 0 2px rgba(231,198,116,.12)}
.officer-card img{width:78px;height:78px;object-fit:cover;border-radius:13px;border:1px solid rgba(255,255,255,.15)}
.officer-card h3{margin:0;font-size:16px}
.officer-card small{color:#9ba8ba}
.stats-line{display:flex;gap:7px;flex-wrap:wrap;margin:6px 0;font-size:10px;color:#d5dfed}
.trust{font-size:10px;color:#efda98}
.officer-actions{display:flex;gap:6px;margin-top:7px}
.officer-actions button{padding:7px 9px}
.battle-layout{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center;margin:16px 0}
.battle-side{text-align:center;padding:15px;border-radius:15px;background:rgba(255,255,255,.04)}
.battle-side img{width:105px;height:105px;object-fit:cover;border-radius:18px;margin:0 auto 9px}
.vs{font-family:Georgia,serif;font-size:30px;color:var(--gold)}
.range-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;margin:14px 0}
.range-row input{width:100%}
.battle-result{text-align:center}
.result-big{font-family:Georgia,serif;font-size:44px;color:var(--gold);margin:10px 0}
.save-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.save-slot{padding:14px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1)}
.save-slot h3{margin:0 0 7px}
.save-slot p{min-height:60px;color:#aab5c5;font-size:11px;line-height:1.55}
.save-slot .slot-actions{display:grid;gap:6px}
.guide-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.guide-box{padding:14px;border-radius:13px;background:rgba(255,255,255,.04)}
.guide-box h3{margin:0 0 7px;color:#f1d78e}
.guide-box p{margin:0;color:#aeb8c7;font-size:12px;line-height:1.7}
.toast{position:fixed;z-index:2000;left:50%;bottom:28px;transform:translateX(-50%);padding:11px 16px;border-radius:99px;background:#10192a;border:1px solid var(--line);box-shadow:0 12px 35px #000;color:#fff;font-weight:800;font-size:12px;animation:toastIn .2s ease-out}
@keyframes toastIn{from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}

@media(max-width:900px){
  .screen{padding:10px}
  .title-card{padding:28px 18px}
  .form-grid,.summary-box{grid-template-columns:1fr}
  .choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .game-screen{padding:6px}
  .hud{height:auto;min-height:70px;grid-template-columns:1fr auto;padding:8px}
  .hud-brand{min-width:0}
  .hud-stats{grid-column:1/-1;order:3;justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px}
  .stat{min-width:70px;padding:5px 6px}
  .game-grid{height:auto;min-height:calc(100vh - 120px);grid-template-columns:1fr;margin-top:7px}
  .map-panel{height:62vh;min-height:430px;padding:8px}
  .map-viewport{min-height:370px;height:calc(100% - 38px)}
  .side-panel{display:grid;grid-template-columns:1fr 1fr;gap:7px}
  .side-card{padding:10px}
  .log-card{grid-column:1/-1;max-height:170px}
  .territory-node{width:67px}
  .territory-node img{width:43px;height:43px}
  .territory-node .node-label{font-size:7px;max-width:68px}
  .command-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .command-grid button{min-height:44px;padding:6px 3px}
  .officer-grid{grid-template-columns:1fr}
}
@media(max-width:560px){
  .setup-panel{padding:15px}
  .choice-grid,.start-grid{grid-template-columns:1fr}
  .setup-footer{position:sticky;bottom:0;padding:10px 0;background:linear-gradient(180deg,transparent,#09101c 26%)}
  .setup-footer button{min-width:0;flex:1}
  .hud-brand h2{font-size:13px}
  .hud-brand small{font-size:9px}
  .hud-emblem{width:42px;height:42px}
  .icon-btn{width:36px;height:36px}
  .map-panel{height:58vh;min-height:390px}
  .side-panel{grid-template-columns:1fr}
  .log-card{grid-column:auto}
  .command-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .command-grid button b{font-size:10px}
  .command-grid button small{display:none}
  .battle-layout{grid-template-columns:1fr;gap:8px}
  .vs{font-size:18px}
  .save-grid,.guide-sections,.command-options{grid-template-columns:1fr}
}
@media(orientation:landscape) and (max-height:520px){
  .game-screen{padding:4px}
  .hud{min-height:56px;height:56px;grid-template-columns:auto 1fr auto}
  .hud-stats{grid-column:auto;order:initial;justify-content:center;overflow:hidden}
  .stat{min-width:60px;padding:3px 5px}
  .stat span{font-size:7px}.stat b{font-size:11px}
  .game-grid{height:calc(100vh - 64px);grid-template-columns:minmax(0,1.72fr) minmax(260px,.64fr);gap:5px;margin-top:4px}
  .map-panel{height:auto;min-height:0}
  .map-viewport{min-height:0}
  .side-panel{display:flex;gap:5px}
  .side-card{padding:7px}
  .territory-info{min-height:170px}
  .info-grid{gap:4px}.info-item{padding:5px}
  .command-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
  .command-grid button{min-height:35px;padding:4px 2px}
  .log-card{max-height:none}
}


/* Prototype ver0.1 — three reunification routes and formal war protocol */
.title-route-preview{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:15px 0 4px}
.title-route-preview span{padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.055);border:1px solid rgba(231,198,116,.2);color:#e9d69d;font-size:10px;font-weight:800}
.route-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.route-choice{min-height:190px}
.route-choice .emblem{font-size:38px}
.route-status-card{flex:0 0 auto;padding:10px 13px}
.route-status-card h3{margin-bottom:6px}
.route-status-line{display:flex;justify-content:space-between;gap:8px;padding:5px 0;border-bottom:1px solid rgba(255,255,255,.06);font-size:9px}
.route-status-line:last-child{border:0}
.route-status-line span{color:#8fa0b6}.route-status-line b{text-align:right}
.route-mini{margin-top:8px;padding:6px 8px;border-radius:8px;background:rgba(231,198,116,.08);border:1px solid rgba(231,198,116,.16);color:#f0d68d;font-size:10px;font-weight:800}
.territory-node.prewar .node-label{border-color:rgba(220,166,70,.62);color:#f3d48b}
.territory-node.prewar::after{content:'⚖';position:absolute;z-index:5;right:1px;bottom:17px;width:19px;height:19px;display:grid;place-items:center;border-radius:50%;background:#6b4b18;border:1px solid #f0c970;font-size:10px;box-shadow:0 0 9px rgba(224,173,68,.55)}
.action-row button.war-step{color:#fff}
.action-row button.cause{background:linear-gradient(135deg,#765416,#aa7922)}
.action-row button.declare{background:linear-gradient(135deg,#8d4722,#c7672f)}
.action-row button.commence{background:linear-gradient(135deg,#7f2635,#c03d51)}
.war-protocol{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin:10px 0 18px;padding:12px;border-radius:13px;background:rgba(255,255,255,.035);border:1px solid rgba(231,198,116,.15)}
.war-protocol span{padding:8px 12px;border-radius:999px;background:rgba(133,52,63,.35);border:1px solid rgba(231,198,116,.24);font-size:11px;font-weight:900;color:#f1da98}.war-protocol i{color:#718099;font-style:normal}
.diplomacy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.diplomacy-card{padding:13px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1)}
.diplomacy-card.war{border-color:rgba(224,70,86,.55);box-shadow:inset 0 0 24px rgba(180,38,53,.08)}
.diplomacy-card.allied{border-color:rgba(84,198,137,.42)}
.diplomacy-card header{display:flex;align-items:center;gap:8px}.diplomacy-card header>i{width:12px;height:12px;border-radius:50%;box-shadow:0 0 10px currentColor}.diplomacy-card header div{flex:1}.diplomacy-card header b{display:block}.diplomacy-card header small{display:block;color:#8f9db0;font-size:9px}.diplomacy-card p{min-height:44px;color:#aab5c5;font-size:10px;line-height:1.55}.diplomacy-card button{width:100%;margin-top:8px;padding:8px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);color:#fff;font-weight:800}.diplomacy-card button:disabled{opacity:.45}
.stage-badge{padding:4px 6px;border:1px solid;border-radius:999px;font-size:8px;font-weight:900;white-space:nowrap}
.diplomacy-meta{display:flex;justify-content:space-between;gap:6px;color:#c8d1df;font-size:9px}
@media(max-width:900px){.route-grid{grid-template-columns:1fr}.route-status-card{grid-column:1/-1}.diplomacy-grid{grid-template-columns:1fr}.route-choice{min-height:0}}
@media(orientation:landscape) and (max-height:520px){.route-status-card{display:none}.title-route-preview{display:none}}


/* =========================================================
   Prototype ver0.2 — Tactical Field & Officer Level System
   ========================================================= */
.officer-portrait-wrap{position:relative}
.officer-level-badge{position:absolute;left:4px;bottom:4px;padding:3px 6px;border-radius:999px;background:linear-gradient(135deg,#caa64f,#7c5d1c);border:1px solid #f5d98b;color:#09101c;font-size:9px;font-weight:1000;box-shadow:0 3px 10px #000}
.officer-exp-row{display:flex;justify-content:space-between;gap:8px;margin-top:6px;color:#b9c5d5;font-size:9px}
.officer-exp-bar{height:5px;margin:3px 0 6px;border-radius:999px;overflow:hidden;background:#080e18;border:1px solid rgba(255,255,255,.1)}
.officer-exp-bar i{display:block;height:100%;background:linear-gradient(90deg,#4baee8,#d6bc62);box-shadow:0 0 9px #4baee8}
.tactical-deploy-layout select{width:100%;margin:8px 0;padding:9px;border-radius:9px;border:1px solid rgba(255,255,255,.14);background:#091321;color:#fff;font:inherit;font-size:11px}
.enemy-deploy-icon{width:105px;height:105px;display:grid;place-items:center;margin:0 auto 9px;border-radius:18px;background:radial-gradient(circle,#7d3144,#170812 70%);border:1px solid #b96070;font-size:54px}
.tactical-rules-mini{display:grid;grid-template-columns:auto 1fr auto 1fr auto 1fr;gap:7px;align-items:center;margin:12px 0;padding:10px;border-radius:12px;background:rgba(255,255,255,.035);font-size:10px}
.tactical-rules-mini span{color:#e8c969;font-weight:900}.tactical-rules-mini b{color:#b8c4d5;font-size:9px}

.tactical-modal-back{padding:8px;background:rgba(1,3,8,.92);backdrop-filter:blur(9px)}
.modal.tactical-modal{width:min(1180px,98vw);height:min(92vh,760px);max-height:96vh;overflow:hidden;padding:12px;border-radius:18px;background:radial-gradient(circle at 22% 18%,rgba(51,105,145,.14),transparent 34%),linear-gradient(145deg,rgba(11,20,35,.98),rgba(4,8,16,.99))}
.tactical-header{height:57px;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:0 5px}
.tactical-header h2{font-size:18px;margin:1px 0 0}
.tactical-score{display:flex;align-items:center;gap:12px;padding:8px 13px;border-radius:12px;background:rgba(255,255,255,.045);font-size:11px}
.tactical-score span:first-child{color:#76c6ff}.tactical-score span:last-child{color:#ff8493}.tactical-score b{font-size:16px}.tactical-score i{font-style:normal;color:#d6bd75;font-weight:900}
.tactical-phase{height:26px;display:grid;place-items:center;margin-bottom:7px;border-radius:7px;font-size:10px;font-weight:1000;letter-spacing:.12em}
.tactical-phase.player{background:linear-gradient(90deg,transparent,rgba(37,120,180,.42),transparent);color:#87d6ff}
.tactical-phase.enemy{background:linear-gradient(90deg,transparent,rgba(182,45,67,.45),transparent);color:#ff9cab}
.tactical-layout{height:calc(100% - 90px);display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:10px}
.tactical-board-wrap{min-width:0;display:flex;flex-direction:column}
.tactical-board{flex:1;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr));gap:3px;padding:7px;border-radius:15px;border:1px solid rgba(222,199,123,.25);background:linear-gradient(rgba(255,255,255,.025),rgba(255,255,255,.025)),radial-gradient(circle at 30% 25%,rgba(67,105,76,.37),transparent 28%),radial-gradient(circle at 74% 70%,rgba(83,63,50,.42),transparent 30%),#11191b;box-shadow:inset 0 0 45px rgba(0,0,0,.62)}
.tactical-cell{position:relative;min-width:0;min-height:0;border-radius:7px;border:1px solid rgba(214,225,232,.11);background:linear-gradient(145deg,rgba(75,96,77,.21),rgba(27,39,36,.24));overflow:visible;transition:.15s ease;cursor:pointer}
.tactical-cell:nth-child(even){background:linear-gradient(145deg,rgba(65,84,70,.25),rgba(23,35,34,.28))}
.tactical-cell.moveable{background:rgba(31,137,199,.25);border-color:#53bdeb;box-shadow:inset 0 0 16px rgba(45,172,232,.22)}
.tactical-cell.moveable:hover{background:rgba(35,157,225,.42)}
.tactical-cell.attackable{background:rgba(185,43,61,.28);border-color:#e96172;box-shadow:inset 0 0 18px rgba(224,57,75,.27);animation:tacticalAttackCell 1s ease-in-out infinite}
@keyframes tacticalAttackCell{50%{box-shadow:inset 0 0 25px rgba(255,71,91,.5),0 0 8px rgba(255,71,91,.35)}}
.tactical-cell.obstacle{background:rgba(15,22,25,.78);border-color:rgba(179,196,176,.2);cursor:default}
.tactical-terrain-icon{position:absolute;inset:0;display:grid;place-items:center;font-size:clamp(18px,3vw,40px);opacity:.62;filter:drop-shadow(0 5px 5px #000)}
.tactical-unit{position:absolute;z-index:4;inset:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3px;border-radius:10px;border:2px solid transparent;background:rgba(4,10,18,.89);color:#fff;box-shadow:0 7px 15px rgba(0,0,0,.48);overflow:hidden}
.tactical-unit.player{border-color:#3e9acb}.tactical-unit.enemy{border-color:#bb4558}
.tactical-unit.selected{outline:3px solid #f1d278;transform:translateY(-2px);box-shadow:0 0 20px rgba(240,204,103,.56)}
.tactical-unit.acted{filter:grayscale(.68) brightness(.65)}
.tactical-unit img{width:clamp(28px,4.1vw,55px);height:clamp(28px,4.1vw,55px);object-fit:cover;border-radius:50%;border:1px solid rgba(255,255,255,.26)}
.tactical-enemy-icon{font-size:clamp(25px,4vw,52px);line-height:1}
.tactical-unit-level{position:absolute;left:3px;top:3px;padding:2px 4px;border-radius:5px;background:#080d16;color:#f1d27e;font-size:7px;font-weight:900}
.tactical-unit-name{display:block;width:92%;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:7px;font-weight:900;text-align:center}
.tactical-hp{position:absolute;left:5px;right:5px;bottom:12px;height:5px;border-radius:99px;overflow:hidden;background:#240911;border:1px solid rgba(255,255,255,.18)}
.tactical-hp i{display:block;height:100%;background:linear-gradient(90deg,#34bd70,#bee05e)}
.tactical-unit.enemy .tactical-hp i{background:linear-gradient(90deg,#d64a5d,#ef9b55)}
.tactical-hp-text{position:absolute;bottom:2px;font-size:6px;color:#e3eaf2}
.tactical-legend{height:25px;display:flex;align-items:center;gap:15px;padding:5px 2px;color:#9eabbc;font-size:8px}
.tactical-legend i{display:inline-block;width:9px;height:9px;margin-right:4px;border-radius:2px}.legend-blue{background:#349fda}.legend-red{background:#d64c60}
.tactical-side-panel{min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:8px}
.tactical-selected-card,.tactical-selected-empty{min-height:103px;padding:11px;border-radius:13px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.1)}
.tactical-selected-card{display:flex;flex-direction:column;gap:5px}.tactical-selected-card b{color:#f0d487}.tactical-selected-card b em{font-style:normal;font-size:10px;color:#72cafa}
.tactical-selected-card span,.tactical-selected-empty span{color:#a9b5c5;font-size:9px}.tactical-selected-empty{display:flex;flex-direction:column;justify-content:center;gap:6px;text-align:center}
.tactical-selected-card div{display:flex;gap:5px;margin-top:auto}.tactical-selected-card button{flex:1;padding:6px;font-size:9px}
.tactical-log{min-height:0;overflow:auto;padding:8px;border-radius:13px;background:#050b13;border:1px solid rgba(255,255,255,.08)}
.tactical-log p{margin:0;padding:6px 4px;border-bottom:1px solid rgba(255,255,255,.055);color:#b9c6d5;font-size:9px;line-height:1.45}
.tactical-actions{display:grid;grid-template-columns:1fr .7fr;gap:6px}.tactical-actions button{padding:9px 6px;font-size:10px}
.level-up-result{margin:13px auto;padding:11px;max-width:590px;border-radius:13px;background:linear-gradient(135deg,rgba(203,160,57,.17),rgba(62,114,164,.14));border:1px solid rgba(235,201,111,.35)}
.level-up-result h3{margin:0 0 5px;color:#f2d57d;letter-spacing:.16em}.level-up-result p{margin:3px 0;color:#dbe5f1;font-size:10px}

@media(max-width:760px){
  .tactical-rules-mini{grid-template-columns:auto 1fr}
  .modal.tactical-modal{width:99vw;height:96vh;padding:7px}
  .tactical-header{height:49px}.tactical-header h2{font-size:13px}
  .tactical-score{padding:5px 7px;gap:6px;font-size:8px}.tactical-score b{font-size:11px}
  .tactical-layout{height:calc(100% - 80px);grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) 135px}
  .tactical-side-panel{grid-template-columns:1fr 1fr;grid-template-rows:1fr auto}
  .tactical-selected-card,.tactical-selected-empty{min-height:0;padding:7px}
  .tactical-log{grid-row:1/3;grid-column:2}.tactical-actions{grid-column:1}
  .tactical-board{gap:2px;padding:4px}.tactical-unit{inset:2px}.tactical-unit-name{font-size:6px}.tactical-legend{height:20px;font-size:7px}
}
@media(orientation:landscape) and (max-height:560px){
  .modal.tactical-modal{height:98vh;padding:5px}
  .tactical-header{height:38px}.tactical-header h2{font-size:12px}.tactical-header .eyebrow{font-size:7px}
  .tactical-phase{height:20px;margin-bottom:4px;font-size:7px}
  .tactical-layout{height:calc(100% - 62px);grid-template-columns:minmax(0,1fr) 205px;grid-template-rows:1fr}
  .tactical-side-panel{display:grid;grid-template-columns:1fr;grid-template-rows:92px minmax(0,1fr) 32px}
  .tactical-log{grid-column:auto;grid-row:auto}.tactical-actions{grid-column:auto}
  .tactical-legend{height:17px;padding:2px;font-size:6px}.tactical-unit img{width:32px;height:32px}.tactical-enemy-icon{font-size:31px}
}


/* ver0.3 expanded map / siege / equipment */
.map-head h3 small{font-size:9px;color:#97a6b9;font-weight:500;margin-left:5px}
.territory-node .kind-badge{position:absolute;left:5px;bottom:16px;z-index:6;width:16px;height:16px;display:grid;place-items:center;border-radius:50%;background:rgba(8,13,21,.93);border:1px solid #e2c875;color:#f0d890;font-size:8px;box-shadow:0 2px 7px #000}
.territory-node .node-durability{display:block;height:4px;margin:2px 8px 0;border-radius:99px;overflow:hidden;background:#240b13;border:1px solid rgba(255,255,255,.16)}
.territory-node .node-durability i{display:block;height:100%;background:linear-gradient(90deg,#c04a58,#e8b65d,#66c58b)}
.territory-node.occupied{filter:grayscale(.35) brightness(.78)}
.territory-node.occupied::before{content:'⌛';position:absolute;z-index:7;right:2px;bottom:15px;font-size:12px;filter:drop-shadow(0 2px 3px #000)}
.fortress-durability{margin-top:10px;padding:9px;border-radius:10px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08)}
.fortress-durability>div:first-child,.siege-preview>div>div:first-child{display:flex;justify-content:space-between;gap:8px;font-size:10px}.fortress-durability span,.siege-preview span{color:#9eabbd}.fortress-durability small{display:block;margin-top:5px;color:#91a0b3;font-size:8px}
.durability-bar{height:9px;margin-top:5px;border-radius:99px;overflow:hidden;background:#280b14;border:1px solid rgba(255,255,255,.12)}
.durability-bar i{display:block;height:100%;background:linear-gradient(90deg,#bf4254,#d99e4f,#61bf80);box-shadow:0 0 9px rgba(220,160,77,.4)}
.siege-preview{display:grid;grid-template-columns:1.5fr 1fr;gap:10px;margin:12px 0;padding:12px;border-radius:14px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.09)}
.siege-preview>div{padding:8px;border-radius:10px;background:rgba(0,0,0,.2)}.siege-preview b{display:block;margin-top:3px;color:#f0d58a}.siege-preview small{display:block;color:#9aa8ba;font-size:8px;margin-top:4px}
.equipment-mini{display:grid;gap:2px;margin:6px 0;padding:6px;border-radius:8px;background:rgba(255,255,255,.035);color:#aeb9c8;font-size:8px}
.equipment-slots{display:grid;gap:13px}.equipment-slot{padding:12px;border-radius:14px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.09)}
.equipment-slot header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px}.equipment-slot h3{margin:0;color:#efd58a}.equipment-slot header span{font-size:9px;color:#b8c4d2}.equipment-slot header button{padding:4px 7px;margin-left:5px;font-size:8px}
.equipment-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.equipment-item{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px;border-radius:11px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.equipment-item.equipped{border-color:#e7c66d;box-shadow:0 0 0 2px rgba(231,198,109,.1)}.equipment-item.busy{opacity:.55}.equipment-icon{font-size:26px;text-align:center}.equipment-item b{display:block;font-size:11px}.equipment-item small{display:block;color:#9daabc;font-size:8px;line-height:1.4}.equipment-item em{display:block;margin-top:3px;color:#e8cf88;font-size:8px;font-style:normal}.equipment-item .holder{display:block;color:#ec8a99;font-size:8px;margin-top:2px}.equipment-item button{padding:7px 9px;font-size:9px}
@media(max-width:900px){.territory-node{width:55px}.territory-node img{width:34px;height:34px}.territory-node .node-label{font-size:6px;max-width:56px;padding:3px}.territory-node .kind-badge{width:14px;height:14px;font-size:7px;bottom:14px}.equipment-list{grid-template-columns:1fr}.siege-preview{grid-template-columns:1fr}}

/* =========================================================
   Prototype ver0.4 — Player Character Selection & Motions
   ========================================================= */
.player-character-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0 18px}
.player-character-card{position:relative;display:flex;min-width:0;min-height:190px;flex-direction:column;align-items:center;gap:6px;padding:9px;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:rgba(7,14,25,.72);color:#fff;text-align:center;cursor:pointer;transition:.18s ease}
.player-character-card:hover{transform:translateY(-2px);border-color:rgba(231,198,116,.46);background:rgba(18,29,46,.9)}
.player-character-card.selected{border-color:#e7c674;box-shadow:inset 0 0 0 1px rgba(231,198,116,.25),0 0 18px rgba(218,179,78,.2);background:linear-gradient(145deg,rgba(77,63,29,.54),rgba(10,19,31,.92))}
.player-character-image{display:grid;width:100%;height:118px;place-items:center;overflow:hidden;border-radius:11px;background:radial-gradient(circle,rgba(69,99,132,.24),rgba(2,7,13,.15) 65%,transparent)}
.player-character-image img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 7px rgba(0,0,0,.55))}
.player-character-card b{font-size:12px;color:#f3dda0}.player-character-card small{font-size:9px;line-height:1.45;color:#aebdce}
.player-name-fields{margin-top:8px}
.player-summary-banner{display:flex!important;align-items:center;justify-content:center;gap:18px;text-align:left!important}
.player-summary-banner>img{width:130px;height:130px;object-fit:contain;filter:drop-shadow(0 8px 8px rgba(0,0,0,.55))}
.player-summary-banner .summary-emblem{margin:0 0 6px}
.hud-character{width:50px;height:50px;display:grid;place-items:center;padding:0;border-radius:12px;border:1px solid rgba(231,198,116,.42);background:radial-gradient(circle,rgba(54,92,133,.38),rgba(5,10,18,.9));overflow:hidden;cursor:pointer}
.hud-character img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 5px 4px rgba(0,0,0,.55));transition:.18s ease}.hud-character:hover img{transform:scale(1.08)}
.tactical-unit.hero-sprite{overflow:visible;padding:0 2px 3px;background:radial-gradient(circle at 50% 43%,rgba(45,112,169,.34),rgba(3,9,16,.92) 72%)}
.tactical-unit.hero-sprite .tactical-player-sprite{width:92%;height:74%;object-fit:contain;border:0;border-radius:0;filter:drop-shadow(0 5px 4px rgba(0,0,0,.7));transition:transform .08s ease,filter .08s ease}
.tactical-unit.hero-sprite .tactical-player-sprite.impact-frame{transform:scale(1.12) translateX(4px);filter:drop-shadow(0 0 9px rgba(125,193,255,.75)) drop-shadow(0 5px 4px rgba(0,0,0,.7))}
.tactical-unit.hero-sprite .tactical-unit-level{top:1px;left:1px}.tactical-unit.hero-sprite .tactical-unit-name{max-width:96%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.player-character-preview{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(230px,1.3fr);align-items:center;gap:18px;margin:12px 0 20px;padding:15px;border-radius:15px;border:1px solid rgba(231,198,116,.22);background:radial-gradient(circle at 20% 50%,rgba(60,103,149,.22),transparent 44%),rgba(255,255,255,.03)}
.player-character-preview>img{width:100%;height:230px;object-fit:contain;filter:drop-shadow(0 12px 10px rgba(0,0,0,.58))}
.player-character-preview p{color:#aebaca;font-size:11px;line-height:1.65}.player-character-preview button{margin-top:8px}
.player-character-grid.compact-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}
.player-character-card.compact{min-height:128px;padding:6px}.player-character-card.compact .player-character-image{height:78px}.player-character-card.compact b{font-size:9px}.player-character-card.compact small{font-size:7px}
@media(max-width:900px){.player-character-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.player-character-grid.compact-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.player-character-preview{grid-template-columns:1fr}.player-character-preview>img{height:180px}.hud-character{width:42px;height:42px}}
@media(max-width:560px){.player-character-grid{grid-template-columns:1fr}.player-character-card{min-height:150px;display:grid;grid-template-columns:110px 1fr;grid-template-rows:auto auto;text-align:left}.player-character-image{grid-row:1/3;height:120px}.player-character-grid.compact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.player-character-card.compact{display:flex;text-align:center}.player-summary-banner{flex-direction:column;text-align:center!important}.player-summary-banner>img{width:105px;height:105px}}
@media(orientation:landscape) and (max-height:520px){.player-character-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;margin:7px 0}.player-character-card{min-height:112px;padding:5px}.player-character-image{height:68px}.player-character-card small{display:none}.player-name-fields{margin-top:4px}.hud-character{width:42px;height:42px}.tactical-unit.hero-sprite .tactical-player-sprite{height:70%}}

/* =========================================================
   Prototype ver0.5 — Lilia Aldia & Administrator Hero Status
   ========================================================= */
.player-character-grid.compact-grid{grid-template-columns:repeat(auto-fit,minmax(92px,1fr))}
.hero-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.special-hero-badge{display:inline-flex;align-items:center;min-height:22px;padding:3px 8px;border-radius:999px;border:1px solid rgba(247,126,149,.5);background:rgba(170,42,65,.22);color:#ffacbb;font-size:8px;font-weight:900;letter-spacing:.08em}
.hero-status-panel{margin:0 0 20px;padding:14px;border-radius:15px;border:1px solid rgba(231,198,116,.2);background:rgba(255,255,255,.035)}
.hero-status-panel>header{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:7px}
.hero-status-panel>header>div{display:flex;gap:8px;align-items:baseline}.hero-status-panel>header span{color:#9eabbd;font-size:9px}.hero-status-panel>header b{color:#f1d78d;font-size:13px}
.hero-exp-bar{height:8px;overflow:hidden;margin-bottom:12px;border-radius:99px;background:#121b29;border:1px solid rgba(255,255,255,.1)}
.hero-exp-bar i{display:block;height:100%;background:linear-gradient(90deg,#3c83bd,#e4c66d)}
.hero-stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}
.hero-stat-grid>div{min-width:0;padding:8px;border-radius:9px;background:rgba(0,0,0,.18);text-align:center}
.hero-stat-grid span{display:block;color:#93a2b4;font-size:8px}.hero-stat-grid b{display:block;margin-top:3px;overflow:hidden;text-overflow:ellipsis;color:#edf2f8;font-size:11px;white-space:nowrap}
.admin-hero-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px;align-items:start}
.admin-hero-portrait{position:sticky;top:0;display:flex;flex-direction:column;align-items:center;gap:7px;padding:13px;border-radius:15px;border:1px solid rgba(231,198,116,.2);background:radial-gradient(circle at 50% 30%,rgba(135,48,72,.2),transparent 57%),rgba(255,255,255,.035);text-align:center}
.admin-hero-portrait img{width:100%;height:280px;object-fit:contain;border-radius:11px;filter:drop-shadow(0 12px 10px rgba(0,0,0,.55))}
.admin-hero-portrait b{color:#f0d28a}.admin-hero-portrait small{color:#abb7c6}
.admin-fields h3{margin:4px 0 8px;color:#ecd28b;font-size:13px}.admin-fields h3:not(:first-child){margin-top:17px}
.admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.admin-form-grid.numeric{grid-template-columns:repeat(3,minmax(0,1fr))}
.admin-form-grid label{display:grid;gap:5px;color:#9facbc;font-size:9px}
.admin-form-grid input,.admin-form-grid select{width:100%;min-width:0;padding:9px;border-radius:9px;border:1px solid rgba(255,255,255,.14);background:#091321;color:#fff;font:inherit;font-size:11px}
.admin-form-grid input:focus,.admin-form-grid select:focus{outline:2px solid rgba(231,198,116,.55);outline-offset:1px}
.admin-form-grid .admin-wide{grid-column:1/-1}
.admin-action-row{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:17px;padding-top:13px;border-top:1px solid rgba(255,255,255,.09)}
@media(max-width:760px){.hero-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-hero-layout{grid-template-columns:1fr}.admin-hero-portrait{position:static;display:grid;grid-template-columns:120px 1fr;text-align:left}.admin-hero-portrait img{grid-row:1/3;width:120px;height:150px}.admin-form-grid.numeric{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.admin-form-grid,.admin-form-grid.numeric{grid-template-columns:1fr}.hero-status-panel>header{align-items:flex-start;flex-direction:column}.admin-action-row>*{flex:1}.admin-hero-portrait{grid-template-columns:90px 1fr}.admin-hero-portrait img{width:90px;height:120px}}


/* =========================================================
   Prototype ver0.6 — SCC1-like bottom command interface
   ========================================================= */
.scc1-ui{
  height:100vh;
  height:100dvh;
  min-height:0;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  gap:8px;
  padding:8px;
  overflow:hidden;
}
.scc1-ui .hud{height:76px;min-height:76px;padding:8px 12px;gap:10px}
.scc1-ui .hud-brand{min-width:240px}
.scc1-ui .hud-stats{gap:5px;flex-wrap:nowrap}
.scc1-ui .stat{min-width:67px;padding:5px 7px}
.scc1-ui .stat span{font-size:8px}
.scc1-ui .stat b{font-size:13px}
.scc1-ui .action-stat{border-color:rgba(231,198,116,.56);background:rgba(231,198,116,.09)}
.scc1-hud-actions{align-items:center}
.hud-turn-button{height:48px;min-width:108px;padding:5px 10px;border-radius:11px;border:1px solid rgba(242,204,111,.62);background:linear-gradient(135deg,#672232,#b74055);color:#fff;font-weight:900;box-shadow:0 8px 18px rgba(0,0,0,.28)}
.hud-turn-button span,.hud-turn-button b{display:block}
.hud-turn-button span{font-size:8px;letter-spacing:.12em;color:#ffe4a2}
.hud-turn-button b{font-size:11px;margin-top:2px}
.scc1-ui .game-grid{height:auto;min-height:0;margin:0;grid-template-columns:minmax(0,1fr) minmax(310px,350px);gap:8px;overflow:hidden}
.scc1-ui .map-panel{height:auto;min-height:0;padding:8px;border-radius:16px}
.scc1-ui .map-viewport{height:calc(100% - 38px);min-height:0;border-radius:12px}
.scc1-side-panel{min-height:0;overflow:hidden;gap:7px}
.scc1-side-panel .territory-info{flex:0 0 auto;min-height:0;max-height:335px;overflow:auto}
.scc1-side-panel .route-status-card{flex:0 0 auto}
.scc1-side-panel .log-card{min-height:80px;overflow:hidden}
.scc1-side-panel .log-list{min-height:0}
.scc1-command-dock{position:relative;z-index:50;min-height:76px;display:grid;grid-template-columns:minmax(190px,245px) minmax(0,1fr);gap:8px;padding:7px;border-radius:15px;box-shadow:0 -8px 30px rgba(0,0,0,.38)}
.dock-territory-summary{min-width:0;display:flex;flex-direction:column;justify-content:center;padding:6px 10px;border-right:1px solid rgba(231,198,116,.23)}
.dock-territory-summary span{font-size:8px;color:#a8b4c5;letter-spacing:.08em}
.dock-territory-summary b{margin:2px 0;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#f1d687}
.dock-territory-summary small{font-size:8px;color:#8f9db0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dock-actions{display:grid;grid-template-columns:repeat(6,minmax(72px,1fr)) minmax(116px,1.25fr);gap:6px;min-width:0}
.dock-command{min-width:0;min-height:60px;padding:4px 5px;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:linear-gradient(180deg,rgba(31,43,66,.96),rgba(11,18,31,.97));color:#fff;font-weight:900;transition:.15s ease}
.dock-command:hover{transform:translateY(-1px);border-color:rgba(231,198,116,.52);filter:brightness(1.08)}
.dock-command span,.dock-command b,.dock-command small{display:block}
.dock-command span{font-size:17px;line-height:1}
.dock-command b{margin-top:3px;font-size:11px;color:#f1d58b}
.dock-command small{margin-top:1px;font-size:7px;color:#91a0b5}
.dock-command.domestic{border-color:rgba(88,171,129,.32)}
.dock-command.military{border-color:rgba(205,88,104,.38)}
.dock-command.end-turn{background:linear-gradient(135deg,#79263b,#c14759);border-color:#f0cd79;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.dock-command.end-turn span{font-size:19px;color:#ffe7a3}
.dock-command.end-turn b{font-size:12px;color:#fff}
.dock-command.end-turn small{color:#ffd9a2}
.turn-confirm-icon{width:58px;height:58px;margin:0 auto 10px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,#842b42,#c64b5e);border:1px solid #f0ce7a;color:#fff0bb;font-size:25px;box-shadow:0 10px 30px rgba(0,0,0,.32)}
.turn-confirm-actions{display:grid;grid-template-columns:1fr 1.2fr;gap:10px;margin-top:18px}
.turn-confirm-button{border-color:#f0d384}

@media(max-width:1250px){
  .scc1-ui .hud-brand{min-width:210px}
  .scc1-ui .stat{min-width:57px;padding:4px 5px}
  .scc1-ui .hud-stats .stat:nth-last-child(2){display:none}
  .dock-territory-summary{display:none}
  .scc1-command-dock{grid-template-columns:1fr}
}
@media(max-width:900px){
  body{overflow:auto}
  .scc1-ui{height:auto;min-height:100dvh;display:block;overflow:visible;padding:6px;padding-bottom:0}
  .scc1-ui .hud{height:auto;min-height:68px;margin-bottom:6px}
  .scc1-ui .hud-stats{grid-column:1/-1;overflow-x:auto}
  .scc1-ui .game-grid{height:auto;display:grid;grid-template-columns:1fr;overflow:visible}
  .scc1-ui .map-panel{height:58vh;min-height:390px}
  .scc1-ui .map-viewport{height:calc(100% - 38px)}
  .scc1-side-panel{display:grid;grid-template-columns:1fr 1fr;overflow:visible}
  .scc1-side-panel .territory-info{max-height:none}
  .scc1-side-panel .log-card{grid-column:1/-1;max-height:160px}
  .scc1-command-dock{position:sticky;bottom:0;margin-top:6px;border-radius:13px 13px 0 0;padding-bottom:calc(7px + env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(16,24,40,.99),rgba(6,10,18,.99))}
  .dock-actions{grid-template-columns:repeat(4,minmax(62px,1fr));gap:4px}
  .dock-command{min-height:52px}
  .dock-command.end-turn{grid-column:span 2}
  .hud-turn-button{display:none}
}
@media(max-width:560px){
  .scc1-hud-actions .icon-btn:nth-child(2){display:none}
  .scc1-ui .map-panel{height:54vh;min-height:350px}
  .scc1-side-panel{grid-template-columns:1fr}
  .scc1-side-panel .log-card{grid-column:auto}
  .dock-actions{grid-template-columns:repeat(4,minmax(0,1fr))}
  .dock-command span{font-size:15px}.dock-command b{font-size:10px}.dock-command small{display:none}
  .turn-confirm-actions{grid-template-columns:1fr}
}
@media(orientation:landscape) and (max-height:620px) and (min-width:901px){
  .scc1-ui{gap:4px;padding:4px}
  .scc1-ui .hud{height:58px;min-height:58px;padding:4px 7px}
  .scc1-ui .hud-character,.scc1-ui .hud-emblem{width:42px;height:42px}
  .scc1-ui .hud-brand h2{font-size:13px}.scc1-ui .hud-brand small{font-size:8px}
  .scc1-ui .stat{min-width:54px;padding:3px 4px}.scc1-ui .stat span{font-size:6px}.scc1-ui .stat b{font-size:10px}
  .scc1-ui .game-grid{gap:4px}
  .scc1-command-dock{min-height:62px;padding:4px;gap:4px}
  .dock-actions{gap:3px}.dock-command{min-height:52px;padding:3px}.dock-command span{font-size:14px}.dock-command b{font-size:9px}.dock-command small{font-size:6px}
  .hud-turn-button{height:42px;min-width:96px}
}


/* Prototype ver0.7 — protagonist equipment */
.hero-equipment-entry{display:grid;grid-template-columns:108px minmax(0,1fr);gap:14px;margin:0 0 14px;padding:14px;border:1px solid rgba(237,199,104,.58);border-radius:16px;background:linear-gradient(135deg,rgba(82,51,72,.38),rgba(22,31,49,.92))}
.hero-equipment-entry-portrait{position:relative;display:grid;place-items:center;min-height:104px;border-radius:13px;background:rgba(6,11,20,.58);overflow:hidden}
.hero-equipment-entry-portrait img{width:100%;height:104px;object-fit:contain}
.hero-equipment-entry-portrait span{position:absolute;left:7px;bottom:7px;padding:3px 7px;border-radius:999px;background:#b94158;color:#fff4cc;font-size:9px;font-weight:900}
.hero-equipment-entry-main{min-width:0}
.hero-equipment-entry-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.hero-equipment-entry-title h3{margin:0 0 3px}
.hero-equipment-entry-title small{color:#aeb8c8}
.hero-equipment-mini{margin-top:9px}
.hero-equipment-modal-head{display:grid;grid-template-columns:118px minmax(0,1fr);align-items:center;gap:14px;margin:4px 0 12px;padding:12px;border:1px solid rgba(237,199,104,.34);border-radius:14px;background:rgba(12,20,34,.72)}
.hero-equipment-modal-head img{width:118px;height:118px;object-fit:contain;border-radius:12px;background:rgba(5,9,16,.5)}
.hero-equipment-modal-head b,.hero-equipment-modal-head small{display:block}
.hero-equipment-modal-head small{margin-top:4px;color:#aab5c5}
.hero-equipment-modal-head p{margin:9px 0 0;color:#ead28b}
.hero-current-equipment{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;margin:14px 0;padding:12px;border:1px solid rgba(237,199,104,.3);border-radius:14px;background:rgba(10,17,29,.7)}
.hero-current-equipment h3{grid-column:1/-1;margin:0}
.hero-current-equipment .equipment-mini{margin:0}
.equipment-item.busy{opacity:1}
.equipment-item.busy .holder{color:#f1c879}
@media(max-width:680px){
  .hero-equipment-entry{grid-template-columns:82px minmax(0,1fr);padding:10px;gap:10px}
  .hero-equipment-entry-portrait img{height:88px}.hero-equipment-entry-portrait{min-height:88px}
  .hero-equipment-entry-title{display:block}.hero-equipment-entry-title button{width:100%;margin-top:8px}
  .hero-equipment-modal-head{grid-template-columns:84px minmax(0,1fr)}.hero-equipment-modal-head img{width:84px;height:84px}
  .hero-current-equipment{grid-template-columns:1fr}.hero-current-equipment h3{grid-column:auto}.hero-current-equipment button{width:100%}
}

/* Prototype ver0.8 — equipment shop */
.dock-actions{grid-template-columns:repeat(7,minmax(66px,1fr)) minmax(116px,1.25fr)}
.dock-command.shop{border-color:rgba(223,180,82,.48);background:linear-gradient(180deg,rgba(58,45,24,.96),rgba(22,17,12,.97))}
.officer-modal-heading,.equipment-modal-heading,.shop-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-right:42px}
.officer-modal-heading h2,.equipment-modal-heading h2,.shop-heading h2{margin-bottom:4px}
.shop-open-button{flex:0 0 auto;padding:10px 14px;border-color:#d7b45e;background:linear-gradient(135deg,#72551f,#b18331);color:#fff;font-weight:900}
.inventory-summary{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 10px}
.inventory-summary span{padding:7px 11px;border:1px solid rgba(231,198,109,.22);border-radius:999px;background:rgba(198,151,50,.08);font-size:10px;color:#aab5c6}
.inventory-summary b{color:#f1d58b;font-size:12px}
.shop-wallet{min-width:150px;padding:10px 13px;border:1px solid rgba(231,198,109,.35);border-radius:12px;background:rgba(201,153,55,.09);text-align:right}
.shop-wallet span,.shop-wallet small{display:block;color:#9eabbc;font-size:9px}
.shop-wallet b{display:block;color:#f4d77d;font-size:23px;line-height:1.15}
.shop-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}
.shop-tab{padding:8px 13px;border-radius:999px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.1);color:#b8c2d1;font-weight:800}
.shop-tab.active{background:linear-gradient(135deg,#8a682a,#c0963e);border-color:#efd27a;color:#fff}
.shop-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.shop-item{display:grid;grid-template-columns:46px minmax(0,1fr) 82px;gap:9px;align-items:center;padding:10px;border:1px solid rgba(255,255,255,.09);border-radius:12px;background:rgba(255,255,255,.035)}
.shop-item:hover{border-color:rgba(231,198,109,.35)}
.shop-item.owned{background:rgba(75,141,103,.08);border-color:rgba(91,190,132,.25)}
.shop-item.locked{opacity:.58}
.shop-item-icon{font-size:29px;text-align:center}
.shop-item-title{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.shop-item-title b{font-size:11px;color:#f2f4f7}
.shop-item-body small{display:block;margin-top:3px;color:#9daabc;font-size:8px;line-height:1.45}
.shop-item-body em{display:block;margin-top:4px;color:#e8cf88;font-size:8px;font-style:normal}
.shop-item-status{display:block;margin-top:3px;color:#72d79d;font-size:8px}
.shop-item.locked .shop-item-status{color:#c79a56}
.shop-item-buy{text-align:right}
.shop-item-buy strong{display:block;margin-bottom:7px;color:#f1d27a;font-size:12px}
.shop-item-buy button{width:100%;padding:7px 6px;font-size:9px}
.item-rarity{display:inline-block;padding:2px 6px;border-radius:999px;font-size:7px;font-weight:900}
.item-rarity.common{background:rgba(145,159,177,.14);color:#b6c0ce}
.item-rarity.rare{background:rgba(75,130,205,.17);color:#85b7ef}
.item-rarity.royal{background:rgba(201,153,55,.2);color:#f0cf75}
.shop-footer-note{margin-top:10px;padding:8px 10px;border-left:3px solid #c99a38;background:rgba(201,153,55,.07);color:#aeb8c7;font-size:9px;line-height:1.55}
.shop-empty,.equipment-empty{grid-column:1/-1;padding:18px;border:1px dashed rgba(255,255,255,.12);border-radius:12px;text-align:center;color:#a9b4c4}
.equipment-empty p{margin:0 0 8px}

@media(max-width:1180px){
  .dock-actions{grid-template-columns:repeat(4,minmax(62px,1fr))}
  .dock-command.end-turn{grid-column:span 1}
  .shop-list{grid-template-columns:1fr}
}
@media(max-width:720px){
  .officer-modal-heading,.equipment-modal-heading,.shop-heading{display:block;margin-right:34px}
  .shop-open-button{width:100%;margin:7px 0 3px}
  .shop-wallet{margin-top:8px;text-align:left}
  .shop-list{grid-template-columns:1fr}
  .shop-item{grid-template-columns:38px minmax(0,1fr) 72px;padding:8px}
  .shop-item-icon{font-size:24px}
}

/* =========================================================
   Prototype ver0.9 — Brigandine-style corps UI
   ========================================================= */
.brig-ui .hud{grid-template-columns:minmax(300px,auto) minmax(0,1fr) auto}
.brig-ui .hud-stats{gap:5px}.brig-ui .hud-stats .stat{min-width:68px}.brig-ui .food-stat b{color:#e9c66f}
.brig-node-armies{position:absolute;left:50%;bottom:-18px;transform:translateX(-50%);z-index:6;white-space:nowrap;border:1px solid rgba(224,195,112,.72);border-radius:5px;padding:2px 5px;background:rgba(5,10,17,.94);color:#f2d982;font-size:7px;font-weight:800;box-shadow:0 2px 7px rgba(0,0,0,.6)}
.brig-territory-panel{overflow:visible}.brig-station-title{margin:11px 0 7px;color:#d9bd73;font-size:11px}.brig-station-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}.brig-station-strip button{position:relative;min-width:0;padding:4px 2px;border:1px solid rgba(220,196,126,.26);border-radius:9px;background:rgba(255,255,255,.035);color:#e8edf7}.brig-station-strip button:hover{border-color:#d7b75b;background:rgba(215,183,91,.1)}.brig-station-strip button>span{display:block;margin-top:2px;font-size:7px;white-space:nowrap}.brig-empty-station{padding:13px;border:1px dashed rgba(255,255,255,.16);border-radius:11px;color:#98a4b7;text-align:center;font-size:10px}.brig-action-row{grid-template-columns:repeat(2,minmax(0,1fr))}
.brig-command-dock{grid-template-columns:minmax(210px,250px) minmax(0,1fr)}.brig-dock-actions{grid-template-columns:repeat(7,minmax(67px,1fr)) minmax(118px,1.25fr)}.brig-dock-actions .dock-command{min-height:59px}.brig-dock-actions .organize{border-color:rgba(218,185,90,.56)}.brig-dock-actions .move{border-color:rgba(96,162,210,.52)}.brig-dock-actions .battle{border-color:rgba(204,76,91,.68);background:linear-gradient(180deg,rgba(141,38,54,.48),rgba(65,21,31,.68))}.brig-dock-actions .battle:disabled{opacity:.36}
.brig-modal-heading,.brig-war-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.brig-resource-box{min-width:125px;padding:10px 13px;border:1px solid rgba(224,194,103,.25);border-radius:12px;background:rgba(255,255,255,.035);text-align:right}.brig-resource-box span,.brig-resource-box small{display:block;color:#99a6b8;font-size:9px}.brig-resource-box b{font-size:19px;color:#ebd083}
.brig-army-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:13px}.brig-army-card{display:grid;grid-template-columns:70px minmax(0,1fr);gap:10px;align-items:center;padding:10px;border:1px solid rgba(255,255,255,.11);border-radius:14px;background:linear-gradient(135deg,rgba(35,48,70,.92),rgba(18,26,41,.94))}.brig-army-card.player{border-color:rgba(70,143,207,.42)}.brig-army-card.ally{border-color:rgba(71,184,121,.38)}.brig-army-card.moved{opacity:.68}.brig-portrait,.brig-ai-portrait{display:block;width:68px;height:68px;border:1px solid rgba(231,202,122,.45);border-radius:12px;object-fit:cover;background:rgba(8,13,23,.8)}.brig-ai-portrait{display:grid;place-items:center;font-size:34px}.brig-portrait.small,.brig-ai-portrait.small{display:inline-grid;width:31px;height:31px;border-radius:7px;font-size:17px;vertical-align:middle}.brig-army-main{min-width:0}.brig-army-title,.brig-army-type{display:flex;align-items:center;justify-content:space-between;gap:7px}.brig-army-title b{font-size:12px}.brig-army-title span,.brig-army-type span{font-size:9px;color:#aab4c4}.brig-army-type{margin:5px 0}.brig-army-type strong{color:#ead084;font-size:10px}.brig-troop-bar{height:7px;border-radius:8px;overflow:hidden;background:#070c14}.brig-troop-bar i{display:block;height:100%;background:linear-gradient(90deg,#315b9c,#69b4dd,#d4b958)}.brig-army-main>small{display:block;margin-top:5px;color:#9aa6b8;font-size:8px}.brig-organize-controls{display:grid;grid-template-columns:1fr 92px auto;gap:6px;align-items:end;margin-top:8px}.brig-organize-controls label{display:grid;gap:3px;color:#9faabc;font-size:8px}.brig-organize-controls select,.brig-organize-controls input{width:100%;min-width:0;padding:6px;border:1px solid rgba(255,255,255,.14);border-radius:7px;background:#101827;color:#eef2f8;font-size:9px}.brig-organize-controls button{padding:7px 9px}
.brig-move-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(220px,.6fr);gap:13px;margin-top:13px}.brig-move-list{display:grid;gap:7px}.brig-move-row,.brig-war-row{display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:rgba(255,255,255,.035)}.brig-move-row .form-check-label,.brig-war-row .form-check-label{display:flex;align-items:center;gap:7px;min-width:0;font-size:10px}.brig-move-destination{padding:12px;border:1px solid rgba(255,255,255,.1);border-radius:13px;background:rgba(255,255,255,.035)}.brig-move-destination label{display:grid;gap:5px;color:#9eabba;font-size:9px}.brig-move-destination select,.brig-war-controls select{width:100%;padding:9px;border:1px solid rgba(255,255,255,.15);border-radius:9px;background:#111a29;color:#f1f4f9}.brig-move-destination button{width:100%;margin-top:12px}
.brig-versus{min-width:115px;padding:11px;border:1px solid rgba(205,75,90,.45);border-radius:13px;background:linear-gradient(145deg,rgba(131,33,48,.52),rgba(37,17,26,.85));color:#f18a97;text-align:center;font-weight:900;letter-spacing:.12em}.brig-versus small{color:#d9c4c7;letter-spacing:0}.brig-war-controls{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:12px 0}.brig-war-controls label{display:grid;gap:4px;color:#a9b4c4;font-size:9px}.brig-war-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(230px,.5fr);gap:12px}.brig-war-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.brig-war-row.allied-support{border-color:rgba(70,190,127,.42)}.brig-war-row em{margin-left:auto;color:#66d99a;font-size:8px}.brig-war-summary{padding:13px;border:1px solid rgba(224,192,99,.25);border-radius:13px;background:rgba(6,12,21,.72)}.brig-war-summary h3{margin:0 0 10px;color:#dfc574}.brig-war-summary>div{display:flex;justify-content:space-between;gap:8px;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.07);font-size:10px}.brig-war-summary small{display:block;margin-top:10px;color:#9facbd}.brig-war-summary .warn{color:#ee6d7d}.brig-launch-button{width:100%;margin-top:12px;padding:12px}
.brig-result{text-align:center}.brig-result .result-big.win{color:#e5cb74}.brig-result .result-big.lose{color:#e16173}.brig-power-comparison{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin:14px 0}.brig-power-comparison>div{padding:12px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:rgba(255,255,255,.035)}.brig-power-comparison span,.brig-power-comparison small{display:block;color:#9fabbc;font-size:9px}.brig-power-comparison b{font-size:20px}.brig-power-comparison i{font-style:normal;color:#c84b60;font-weight:900}.brig-result-columns{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0;text-align:left}.brig-result-columns section{padding:10px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:rgba(255,255,255,.025)}.brig-result-columns h3{text-align:center;color:#dfc474}.brig-result-unit{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:7px;align-items:center;padding:5px 0;border-bottom:1px solid rgba(255,255,255,.055)}.brig-result-unit span b,.brig-result-unit span small{display:block}.brig-result-unit span b{font-size:9px}.brig-result-unit span small{color:#929fb1;font-size:8px}.brig-result-unit em{font-size:9px;font-style:normal}.brig-result-unit strong{display:block;color:#e56d7c;text-align:right}
@media(max-width:1180px){.brig-ui .hud-stats .stat:nth-child(6),.brig-ui .hud-stats .stat:nth-child(7){display:none}.brig-dock-actions{grid-template-columns:repeat(4,minmax(67px,1fr))}.brig-command-dock{grid-template-columns:190px 1fr}.brig-war-list{grid-template-columns:1fr}}
@media(max-width:900px){.brig-ui .hud{grid-template-columns:1fr auto}.brig-ui .hud-stats{grid-column:1/-1}.brig-node-armies{bottom:-15px;font-size:6px}.brig-army-grid{grid-template-columns:1fr}.brig-move-layout,.brig-war-layout{grid-template-columns:1fr}.brig-command-dock{grid-template-columns:1fr}.brig-station-strip{grid-template-columns:repeat(4,minmax(0,1fr))}.brig-result-columns{grid-template-columns:1fr}}
@media(max-width:560px){.brig-war-controls{grid-template-columns:1fr}.brig-army-card{grid-template-columns:52px 1fr}.brig-portrait,.brig-ai-portrait{width:50px;height:50px}.brig-organize-controls{grid-template-columns:1fr 1fr}.brig-organize-controls button{grid-column:1/-1}.brig-power-comparison{grid-template-columns:1fr}.brig-power-comparison i{transform:rotate(90deg)}.brig-dock-actions{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* =========================================================
   Prototype ver0.10 — corps MAX recruitment
   ========================================================= */
.brig-recruit-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 2px;padding:10px 12px;border:1px solid rgba(226,194,98,.3);border-radius:12px;background:rgba(199,151,48,.08)}
.brig-recruit-toolbar div{min-width:0}.brig-recruit-toolbar b,.brig-recruit-toolbar small{display:block}.brig-recruit-toolbar b{color:#ebd084;font-size:11px}.brig-recruit-toolbar small{margin-top:3px;color:#a8b3c3;font-size:9px}.brig-recruit-toolbar button{flex:0 0 auto;padding:9px 14px}
.brig-organize-controls{grid-template-columns:minmax(125px,1fr) 88px auto auto auto}
.brig-organize-controls .brig-set-max{border-color:rgba(91,158,211,.48);color:#b8ddff;background:rgba(57,111,157,.18)}
.brig-organize-controls .brig-max-recruit{border-color:rgba(225,190,82,.55);color:#ffe39a;background:linear-gradient(180deg,rgba(135,96,27,.72),rgba(70,48,17,.78));font-weight:900}
.brig-organize-controls .brig-recruit-preview{grid-column:1/-1;margin:0;padding:2px 1px;color:#d9c37d;font-size:8px}
.brig-organize-controls button:disabled{opacity:.42;cursor:not-allowed}
@media(max-width:760px){.brig-recruit-toolbar{align-items:stretch;flex-direction:column}.brig-recruit-toolbar button{width:100%}.brig-organize-controls{grid-template-columns:1fr 88px}.brig-organize-controls .brig-set-max,.brig-organize-controls .brig-max-recruit,.brig-organize-controls>button:last-of-type{grid-column:auto}.brig-organize-controls .brig-recruit-preview{grid-column:1/-1}}
@media(max-width:480px){.brig-organize-controls{grid-template-columns:1fr 1fr}.brig-organize-controls label:first-child{grid-column:1/-1}.brig-organize-controls .brig-recruit-preview{grid-column:1/-1}}

/* ver0.11: MAX recruitment controls */
.brig-organize-controls .brig-max-recruit{min-width:110px;font-weight:800;border-color:#efc85d;background:linear-gradient(180deg,#d5ad3c,#8f6812);color:#111827;box-shadow:0 0 0 2px rgba(239,200,93,.15) inset}
.brig-organize-controls .brig-max-recruit:not(:disabled):hover{filter:brightness(1.12)}
.brig-organize-controls .brig-recruit-preview{grid-column:1/-1;display:block;padding:.38rem .55rem;border-radius:.45rem;background:rgba(8,14,27,.5);color:#f3d77d}
.brig-recruit-toolbar .primary{min-width:170px;font-weight:800}


/* =========================================================
   Prototype ver0.12 — 18x12 Wide Tactical Field
   ========================================================= */
.modal.tactical-modal.wide-field{width:min(1540px,99vw);height:min(96vh,920px);max-height:98vh;padding:10px}
.tactical-modal.wide-field .tactical-layout{grid-template-columns:minmax(0,1fr) 270px;gap:10px}
.tactical-board-wrap{min-height:0;overflow:hidden}
.tactical-camera-bar{height:42px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 8px;border:1px solid rgba(222,199,123,.20);border-bottom:0;border-radius:12px 12px 0 0;background:rgba(6,12,21,.94)}
.tactical-camera-bar>div:first-child{display:flex;align-items:baseline;gap:8px;min-width:0}.tactical-camera-bar b{color:#f0d487;font-size:11px}.tactical-camera-bar small{color:#94a4b7;font-size:8px;white-space:nowrap}
.tactical-camera-buttons{display:flex;align-items:center;gap:4px;flex-shrink:0}.tactical-camera-buttons button{min-width:38px;padding:5px 8px;border-radius:7px;font-size:9px}.tactical-camera-buttons span{min-width:38px;text-align:center;color:#f0d487;font-size:9px;font-weight:900}
.tactical-board-viewport{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-color:#6c7f98 #07101a;scrollbar-width:thin;border:1px solid rgba(222,199,123,.25);border-radius:0 0 13px 13px;background:#071016;cursor:grab}
.tactical-board-viewport:active{cursor:grabbing}
.tactical-board{flex:none!important;display:grid!important;gap:3px!important;padding:7px!important;border:0!important;border-radius:0!important;background:linear-gradient(rgba(255,255,255,.018),rgba(255,255,255,.018)),radial-gradient(circle at 20% 24%,rgba(67,105,76,.34),transparent 22%),radial-gradient(circle at 78% 66%,rgba(83,63,50,.38),transparent 25%),linear-gradient(135deg,#15231e,#17201d 46%,#1b1a17)!important;box-shadow:inset 0 0 60px rgba(0,0,0,.62)!important}
.tactical-cell{border-radius:5px}.tactical-cell:nth-child(3n){background:linear-gradient(145deg,rgba(79,94,69,.24),rgba(25,36,32,.29))}
.tactical-cell:nth-child(5n){box-shadow:inset 0 0 12px rgba(160,134,76,.05)}
.tactical-modal.wide-field .tactical-unit{inset:3px;border-radius:8px}.tactical-modal.wide-field .tactical-unit img{width:56%;height:56%;min-width:26px;min-height:26px;max-width:52px;max-height:52px}
.tactical-modal.wide-field .tactical-unit-name{font-size:7px}.tactical-modal.wide-field .tactical-hp-text{font-size:6px}
.tactical-modal.wide-field .tactical-terrain-icon{font-size:clamp(18px,2.5vw,34px)}
.tactical-modal.wide-field .tactical-legend{height:25px;flex-wrap:wrap;overflow:hidden}
@media(max-width:900px){
  .modal.tactical-modal.wide-field{width:100vw;height:100vh;max-height:100vh;border-radius:0;padding:5px}
  .tactical-modal.wide-field .tactical-layout{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) 138px}
  .tactical-camera-bar{height:38px;padding:4px}.tactical-camera-bar small{display:none}.tactical-camera-buttons button{min-width:32px;padding:4px 5px}
  .tactical-modal.wide-field .tactical-side-panel{grid-template-columns:1fr 1fr;grid-template-rows:1fr auto}.tactical-modal.wide-field .tactical-log{grid-row:1/3;grid-column:2}.tactical-modal.wide-field .tactical-actions{grid-column:1}
}
@media(orientation:landscape) and (max-height:560px){
  .tactical-modal.wide-field .tactical-header{height:35px}.tactical-modal.wide-field .tactical-phase{height:18px;margin-bottom:3px}.tactical-modal.wide-field .tactical-layout{height:calc(100% - 56px);grid-template-columns:minmax(0,1fr) 210px;grid-template-rows:1fr}
  .tactical-camera-bar{height:32px}.tactical-modal.wide-field .tactical-side-panel{display:grid;grid-template-columns:1fr;grid-template-rows:88px minmax(0,1fr) 30px}.tactical-modal.wide-field .tactical-log{grid-column:auto;grid-row:auto}
}

/* =========================================================
   Prototype ver0.14 — personnel / schemes / diplomacy / item stacks
   ========================================================= */
.v014-dock .brig-dock-actions{grid-template-columns:repeat(10,minmax(82px,1fr));gap:6px}
.v014-dock .dock-command{min-width:0;padding:8px 5px}
.v014-dock .dock-command span{font-size:1.05rem}
.v014-dock .dock-command b{font-size:.78rem}
.v014-dock .dock-command small{font-size:.62rem}
.personnel-heading,.shop-heading{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}
.personnel-metrics{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.personnel-metrics span{border:1px solid rgba(210,177,92,.35);background:rgba(255,255,255,.035);padding:9px 12px;border-radius:10px;color:#aeb8ca;white-space:nowrap}
.personnel-metrics b{color:#efd171;font-size:1.05rem}
.personnel-search{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:16px 0;padding:14px 16px;border:1px solid rgba(210,177,92,.35);background:rgba(210,177,92,.07);border-radius:12px}
.personnel-search div{display:grid;gap:4px}.personnel-search small{color:#aeb8ca}
.ronin-list{display:grid;gap:12px}.ronin-card{display:grid;grid-template-columns:76px minmax(0,1fr) 150px;gap:14px;align-items:center;padding:13px;border:1px solid rgba(122,151,195,.3);border-radius:13px;background:rgba(255,255,255,.035)}
.ronin-card>img{width:76px;height:76px;object-fit:cover;border-radius:12px;border:1px solid rgba(223,193,101,.5)}
.ronin-main{min-width:0}.ronin-title{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}.ronin-title h3{margin:0}.ronin-title span{color:#d9bd68;font-size:.78rem}.ronin-main p{margin:6px 0;color:#b5bfd0;font-size:.82rem}.ronin-main small{color:#9faabe}.ronin-recruit{display:grid;gap:8px;text-align:center}.ronin-recruit b{color:#efd171;font-size:.82rem}.personnel-empty{padding:24px;text-align:center;border:1px dashed rgba(147,164,191,.3);border-radius:12px;color:#aab4c5}
.scheme-selectors{display:grid;grid-template-columns:1fr 1.35fr;gap:12px;margin:16px 0}.scheme-selectors label{display:grid;gap:6px;color:#d9bd68;font-size:.8rem}.scheme-selectors select{width:100%;background:#111a2b;color:#eef2fa;border:1px solid #334361;border-radius:9px;padding:10px}
.scheme-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.scheme-card{display:grid;grid-template-columns:44px minmax(0,1fr) 74px;align-items:center;gap:11px;padding:13px;border:1px solid rgba(119,145,187,.3);border-radius:12px;background:rgba(255,255,255,.035)}.scheme-card>span{font-size:1.65rem;text-align:center}.scheme-card h3{margin:0 0 4px}.scheme-card p{margin:0 0 5px;color:#b4bfd1;font-size:.8rem}.scheme-card small{color:#d9bd68}.scheme-card button{align-self:stretch}
.diplomacy-grid.expanded{grid-template-columns:repeat(2,minmax(0,1fr))}.relation-row{display:grid;gap:5px;margin:9px 0}.relation-row span{font-size:.78rem;color:#d8bd69}.relation-row>div{height:7px;border-radius:6px;background:#0a101d;overflow:hidden}.relation-row i{display:block;height:100%;background:linear-gradient(90deg,#b94c5e,#d7b85e,#58bd83)}.diplomacy-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.diplomacy-actions button{flex:1 1 105px;font-size:.72rem;padding:8px 6px}.ally-territory-banner{margin:10px 0;padding:10px;border:1px solid rgba(80,196,135,.45);background:rgba(80,196,135,.09);border-radius:9px;color:#64d99a;font-weight:700}.item-count{color:#efd171;font-size:.78em}.equipment-item .holder{display:block;color:#9eadc2;font-size:.7rem;margin-top:4px}
@media(max-width:1250px){.v014-dock .brig-dock-actions{grid-template-columns:repeat(5,minmax(82px,1fr))}.diplomacy-grid.expanded{grid-template-columns:1fr}}
@media(max-width:760px){.personnel-heading,.personnel-search{flex-direction:column;align-items:stretch}.ronin-card{grid-template-columns:64px minmax(0,1fr)}.ronin-card>img{width:64px;height:64px}.ronin-recruit{grid-column:1/-1;grid-template-columns:1fr 1fr;align-items:center}.scheme-selectors,.scheme-grid{grid-template-columns:1fr}.v014-dock .brig-dock-actions{grid-template-columns:repeat(3,minmax(78px,1fr))}}

/* Prototype ver0.15 — battle method selector */
.v015-method-modal{width:100%}.v015-locked-back{cursor:default}.v015-battle-preview{display:grid;grid-template-columns:minmax(0,1fr) 42px minmax(0,1fr);gap:10px;align-items:start;margin:14px 0}.v015-battle-preview>i{display:grid;place-items:center;align-self:center;width:42px;height:42px;border-radius:50%;background:rgba(214,180,88,.12);border:1px solid rgba(214,180,88,.32);color:#e7c766;font-style:normal;font-weight:1000}.v015-battle-preview section{min-height:170px;padding:12px;border-radius:14px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.1)}.v015-battle-preview h3{display:flex;justify-content:space-between;margin:0 0 8px;color:#ecd47e}.v015-battle-preview h3 small{color:#9aabbd}.v015-battle-unit-row{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid rgba(255,255,255,.06)}.v015-battle-unit-row:last-child{border-bottom:0}.v015-battle-unit-row .brig-portrait,.v015-battle-unit-row img{width:34px;height:34px;border-radius:9px;object-fit:cover}.v015-battle-unit-row span{display:flex;min-width:0;flex-direction:column}.v015-battle-unit-row b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.v015-battle-unit-row small{color:#9eadbf;font-size:8px}.v015-method-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.v015-method-card{min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;padding:18px;border-radius:16px;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.04);color:#fff;text-align:center}.v015-method-card:hover{transform:translateY(-2px);border-color:#e2c464;background:rgba(226,196,100,.08)}.v015-method-card>span{font-size:38px}.v015-method-card b{font-size:18px;color:#f1d57d}.v015-method-card small{color:#aebccd;line-height:1.6}.v015-method-card.auto{box-shadow:inset 0 0 25px rgba(81,146,206,.05)}.v015-method-card.tactical{box-shadow:inset 0 0 25px rgba(207,168,69,.06)}.v015-choice-note,.v015-wall-result{margin-top:10px;padding:9px 12px;border-radius:10px;background:rgba(218,186,91,.08);border:1px solid rgba(218,186,91,.2);color:#d9c27b;text-align:center;font-size:10px}
@media(max-width:720px){.v015-battle-preview{grid-template-columns:1fr}.v015-battle-preview>i{width:auto;height:26px;border-radius:8px}.v015-battle-preview section{min-height:0;max-height:155px;overflow:auto}.v015-method-grid{grid-template-columns:1fr}.v015-method-card{min-height:110px;padding:12px}.v015-method-card>span{font-size:28px}.v015-method-card b{font-size:15px}}

/* Prototype ver0.16 — Ceasefire negotiation */
.diplomacy-card.ceasefire{border-color:rgba(110,196,174,.55)}
.v016-ceasefire-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0}
.v016-ceasefire-summary>div{padding:12px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.035);display:flex;flex-direction:column;gap:4px}
.v016-ceasefire-summary span{font-size:12px;color:var(--muted)}
.v016-ceasefire-summary b{color:var(--gold)}
.v016-ceasefire-options{display:grid;gap:12px}
.v016-ceasefire-option{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.035)}
.v016-ceasefire-option h3{margin:0 0 5px;color:var(--gold)}
.v016-ceasefire-option p{margin:0 0 6px;color:var(--muted)}
.v016-ceasefire-option small{color:#c6d0df}
.v016-ceasefire-option button{min-width:132px}
.v016-peace-payment{margin:14px auto;padding:12px 18px;border:1px solid rgba(197,155,63,.5);border-radius:12px;max-width:360px}
@media(max-width:720px){.v016-ceasefire-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.v016-ceasefire-option{align-items:stretch;flex-direction:column}.v016-ceasefire-option button{width:100%}}


/* Prototype ver0.17 — Six Crowns calendar / brighter map */
.calendar-stat{min-width:104px!important;padding-left:10px!important;padding-right:10px!important}
.calendar-stat b{display:flex!important;align-items:baseline;justify-content:center;gap:5px;white-space:nowrap}
.calendar-stat b strong{font-size:12px;color:#f2d47c}
.calendar-stat b em{font-size:16px;font-style:normal;color:#fff}
.calendar-map-date{display:inline-flex;align-items:center;margin-left:8px;padding:3px 8px;border:1px solid rgba(237,205,113,.42);border-radius:999px;background:rgba(237,205,113,.10);color:#f0d47f;font-size:9px;font-weight:800;vertical-align:middle}
.calendar-transition{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin:15px 0;padding:13px;border:1px solid rgba(231,198,116,.30);border-radius:13px;background:rgba(231,198,116,.07);text-align:center}
.calendar-transition span{color:#aeb9c9}.calendar-transition i{color:#e7c674;font-style:normal;font-size:20px}.calendar-transition b{color:#f3d77f;font-size:17px}
.admin-calendar-preview{display:block;margin-top:5px;color:#e8c96d;font-size:9px}
.map-stage{box-shadow:inset 0 0 34px rgba(246,225,163,.06)}
.map-lines line{stroke:rgba(249,227,159,.40)!important;stroke-width:.16!important}
.map-viewport{background:#17293a}
@media(max-width:760px){.calendar-stat{min-width:88px!important}.calendar-stat b strong{font-size:9px}.calendar-stat b em{font-size:13px}.calendar-map-date{display:none}}


/* =========================================================
   Prototype ver0.18 — Character Detail UI & Tactical Unit Design
   ========================================================= */
.character-detail-shell{display:flex;flex-direction:column;gap:14px}
.character-detail-head{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:14px;align-items:stretch}
.character-face-card{display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;align-items:center;padding:14px;border-radius:18px;border:1px solid rgba(229,196,119,.34);background:linear-gradient(180deg,rgba(11,24,42,.88),rgba(5,12,24,.95))}
.character-face-card img{width:96px;height:96px;object-fit:cover;border-radius:16px;border:1px solid rgba(255,255,255,.18);background:rgba(11,16,24,.86)}
.character-face-card h2{margin:0 0 4px;font-size:28px;line-height:1.1}
.character-face-card small{display:block;color:#cfba7b;font-size:14px}
.character-mini-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.character-mini-meta span{padding:4px 10px;border-radius:999px;background:rgba(171,131,43,.12);border:1px solid rgba(231,196,114,.18);font-size:12px;color:#eef4ff}
.character-head-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:14px;border-radius:18px;border:1px solid rgba(229,196,119,.28);background:rgba(7,15,29,.82)}
.character-head-summary div{padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.03)}
.character-head-summary span{display:block;color:#aeb6c6;font-size:12px}.character-head-summary b{display:block;margin-top:4px;font-size:18px;color:#f6e2a7}
.character-tab-row{display:flex;flex-wrap:wrap;gap:8px}
.character-tab{padding:10px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:rgba(11,18,31,.75);color:#dfe8f4;font-weight:700}
.character-tab.active{background:linear-gradient(180deg,#324f83,#172847);border-color:rgba(242,210,129,.45);color:#f8e5ab;box-shadow:0 0 0 1px rgba(242,210,129,.12) inset}
.character-detail-layout{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(320px,.82fr);gap:14px;align-items:start}
.character-detail-main,.character-detail-side{display:flex;flex-direction:column;gap:14px}
.character-info-panel,.character-art-card,.character-quote-card{padding:14px;border-radius:18px;border:1px solid rgba(229,196,119,.22);background:linear-gradient(180deg,rgba(8,20,37,.9),rgba(6,12,24,.94))}
.character-panel-title{font-size:13px;font-weight:900;letter-spacing:.08em;color:#f2d28c;margin-bottom:12px}
.character-summary-title h3{margin:0;font-size:28px}.character-summary-title p{margin:4px 0 0;color:#c7d0de}
.character-stat-grid,.character-battle-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.character-stat-grid div,.character-battle-grid div{padding:11px 10px;border-radius:14px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05)}
.character-stat-grid span,.character-battle-grid span{display:block;color:#a7b3c5;font-size:12px}.character-stat-grid b,.character-battle-grid b{display:block;margin-top:4px;font-size:21px;color:#fff}
.character-equip-list,.character-skill-list,.character-support-list{display:grid;gap:10px}
.character-equip-item,.character-skill-item,.character-support-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-radius:14px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05)}
.character-equip-item small,.character-support-item small{display:block;color:#97a7bf}.character-equip-item strong{font-size:16px;color:#f4df9e;text-align:right}
.character-skill-item{display:block}.character-skill-head{display:flex;justify-content:space-between;gap:8px;align-items:center}.character-skill-head span{padding:4px 10px;border-radius:999px;background:rgba(244,213,129,.1);color:#f4d584;font-size:12px}.character-skill-item p{margin:10px 0 0;color:#dde6f3;line-height:1.7}
.character-support-item{align-items:center}.support-rank{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;font-weight:900;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.06)}.support-rank.rank-S{color:#ffe7a4;border-color:rgba(255,223,135,.38)}.support-rank.rank-A{color:#a9e6ff}.support-rank.rank-B{color:#c9d8ff}.support-rank.rank-C{color:#d9d9d9}.support-rank.rank-D{color:#c89a9a}
.character-profile-box h3{margin:0 0 10px;font-size:22px;color:#f6dfa0}.character-profile-box p{margin:0;color:#e7edf7;line-height:1.8}
.character-panel-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.character-art-card{min-height:420px;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 22%,rgba(78,117,194,.22),rgba(4,10,20,.96) 72%)}
.character-art{max-width:100%;max-height:510px;object-fit:contain;filter:drop-shadow(0 14px 20px rgba(0,0,0,.45))}.character-art.pixel-art{image-rendering:auto;background:radial-gradient(circle at 50% 50%,rgba(126,170,245,.08),transparent 62%);padding:16px}
.character-quote-card span{display:block;color:#cfba7b;font-size:12px;letter-spacing:.08em}.character-quote-card b{display:block;margin-top:5px;font-size:26px}.character-quote-card p{margin:10px 0 0;line-height:1.8;color:#e4edf9}
.v018-sprite-unit{background:linear-gradient(180deg,rgba(7,16,31,.9),rgba(4,9,18,.97));border-color:rgba(65,137,194,.6);overflow:hidden}
.v018-sprite-unit .v018-unit-ground{position:absolute;left:14%;right:14%;bottom:18px;height:14px;border-radius:50%;background:radial-gradient(circle at 50% 50%,rgba(191,152,84,.45),rgba(17,12,7,.08) 68%);filter:blur(.2px)}
.v018-sprite-unit .v018-unit-emblem{position:absolute;right:4px;top:4px;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:rgba(4,12,22,.88);border:1px solid rgba(236,206,128,.32);font-size:10px;z-index:3}
.v018-unit-sprite{width:100%;height:74%;object-fit:contain;border:0 !important;border-radius:0 !important;filter:drop-shadow(0 7px 5px rgba(0,0,0,.52));image-rendering:auto}
.tactical-modal.wide-field .v018-sprite-unit .tactical-unit-name{font-size:7px;font-weight:900;letter-spacing:.02em}
.tactical-modal.wide-field .v018-sprite-unit .tactical-unit-level{background:rgba(8,14,24,.92);border:1px solid rgba(242,210,129,.2)}
@media (max-width: 980px){
  .character-detail-head,.character-detail-layout{grid-template-columns:1fr}
  .character-head-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
  .character-art-card{min-height:320px}
}
@media (max-width: 720px){
  .character-face-card{grid-template-columns:76px minmax(0,1fr);padding:12px}
  .character-face-card img{width:76px;height:76px}
  .character-face-card h2{font-size:22px}
  .character-head-summary{grid-template-columns:1fr 1fr 1fr}
  .character-stat-grid,.character-battle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .character-tab{padding:9px 12px;font-size:13px}
  .character-art{max-height:360px}
}

/* =========================================================
   Prototype ver0.19 — Named Seven Cast / Portrait Expansion / UI polish
   ========================================================= */
.character-ornament-line{height:10px;border-radius:999px;background:linear-gradient(90deg,rgba(0,0,0,0),rgba(236,204,124,.85),rgba(0,0,0,0));margin:-2px 0 2px;opacity:.9}
.character-detail-shell{position:relative;padding:6px;border-radius:24px;background:linear-gradient(180deg,rgba(231,195,111,.08),rgba(34,48,73,.03));box-shadow:0 0 0 1px rgba(236,204,124,.08) inset}
.character-detail-shell::before,.character-detail-shell::after{content:"";position:absolute;width:44px;height:44px;border:1px solid rgba(236,204,124,.22);pointer-events:none}
.character-detail-shell::before{left:6px;top:6px;border-right:none;border-bottom:none;border-radius:18px 0 0 0}
.character-detail-shell::after{right:6px;bottom:6px;border-left:none;border-top:none;border-radius:0 0 18px 0}
.character-face-card,.character-head-summary,.character-info-panel,.character-art-card,.character-quote-card{position:relative;box-shadow:0 14px 28px rgba(0,0,0,.24),0 0 0 1px rgba(255,255,255,.02) inset}
.character-face-card::before,.character-head-summary::before,.character-info-panel::before,.character-art-card::before,.character-quote-card::before{content:"";position:absolute;inset:7px;border:1px solid rgba(236,204,124,.09);border-radius:inherit;pointer-events:none}
.character-head-summary{background:linear-gradient(180deg,rgba(16,29,49,.92),rgba(7,15,29,.92))}
.character-head-summary div{background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.05)}
.character-tab-row{padding:6px 2px 2px}
.character-tab{position:relative;padding:12px 18px;border-radius:14px;background:linear-gradient(180deg,rgba(18,28,47,.95),rgba(8,14,25,.92));border:1px solid rgba(190,161,92,.14)}
.character-tab::after{content:"";position:absolute;left:10px;right:10px;bottom:6px;height:1px;background:linear-gradient(90deg,rgba(0,0,0,0),rgba(233,206,132,.16),rgba(0,0,0,0))}
.character-tab.active{background:linear-gradient(180deg,#3a5d94,#172847);box-shadow:0 0 0 1px rgba(242,210,129,.12) inset,0 10px 18px rgba(0,0,0,.18)}
.character-summary-title h3{font-size:30px;letter-spacing:.02em}
.character-summary-title p{font-size:14px;line-height:1.7}
.character-panel-title{display:flex;align-items:center;gap:10px}
.character-panel-title::before,.character-panel-title::after{content:"";height:1px;flex:1;background:linear-gradient(90deg,rgba(242,210,129,.55),rgba(242,210,129,0))}
.character-panel-title::before{max-width:28px;flex:0 0 28px}
.character-panel-title::after{max-width:90px}
.character-art-card{background:radial-gradient(circle at 50% 18%,rgba(112,148,225,.24),rgba(5,12,22,.98) 72%),linear-gradient(180deg,rgba(17,25,40,.96),rgba(4,10,18,.98))}
.character-art{max-height:560px}
.character-quote-card{background:linear-gradient(180deg,rgba(14,24,41,.95),rgba(6,11,21,.96))}
.character-quote-card b{font-size:24px;line-height:1.3}
.character-equip-item,.character-skill-item,.character-support-item{background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.06)}
.character-skill-item p,.character-profile-box p{color:#edf4ff}
.character-support-card{display:grid;grid-template-columns:52px minmax(0,1fr);gap:12px;align-items:center}
.character-support-card img{width:52px;height:52px;border-radius:14px;object-fit:cover;border:1px solid rgba(236,204,124,.28);background:rgba(9,14,24,.8)}
.support-score-bar{margin-top:8px;height:6px;border-radius:999px;background:rgba(255,255,255,.05);overflow:hidden;border:1px solid rgba(255,255,255,.05)}
.support-score-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#5da0ff,#f0d287)}
.character-profile-box{position:relative;padding:4px 2px 2px}
.character-profile-box h3{margin-bottom:14px}
.character-profile-box::after{content:"";display:block;margin-top:16px;height:1px;background:linear-gradient(90deg,rgba(242,210,129,.26),rgba(255,255,255,0))}
@media (max-width: 720px){
  .character-tab{padding:10px 14px;border-radius:12px}
  .character-summary-title h3{font-size:24px}
  .character-support-card{grid-template-columns:44px minmax(0,1fr)}
  .character-support-card img{width:44px;height:44px;border-radius:12px}
}

/* =========================================================
   Prototype ver0.20 — Tactical field readability update
   ========================================================= */
.tactical-unit-level{display:none !important}
.tactical-unit{background:transparent;box-shadow:none;border:none;padding:0;overflow:visible}
.tactical-unit.selected{outline:none;transform:translateY(-3px) scale(1.03);box-shadow:none}
.tactical-unit.acted{filter:grayscale(.42) brightness(.84)}
.v020-sprite-unit{inset:0 !important;background:transparent !important;border:0 !important;box-shadow:none !important;overflow:visible !important}
.v020-sprite-unit .v018-unit-ground{left:10%;right:10%;bottom:18px;height:16px;background:radial-gradient(circle at 50% 50%,rgba(230,186,96,.52),rgba(18,12,8,.08) 72%);filter:blur(.4px)}
.v020-sprite-unit .v018-unit-emblem{top:2px;right:2px;width:17px;height:17px;font-size:10px;background:rgba(7,13,23,.9);border-color:rgba(237,204,120,.45);box-shadow:0 3px 7px rgba(0,0,0,.34)}
.v020-unit-sprite{width:110% !important;height:92% !important;max-width:none !important;max-height:none !important;min-width:40px;min-height:40px;object-fit:contain !important;border:0 !important;border-radius:0 !important;filter:drop-shadow(0 9px 7px rgba(0,0,0,.58)) drop-shadow(0 0 8px rgba(0,0,0,.2));image-rendering:auto;pointer-events:none}
.v020-sprite-unit.enemy .v020-unit-sprite,.v020-sprite-unit.mirrored .v020-unit-sprite{transform:scaleX(-1)}
.v020-sprite-unit.selected .v020-unit-sprite{filter:drop-shadow(0 11px 8px rgba(0,0,0,.64)) drop-shadow(0 0 10px rgba(243,209,115,.72))}
.v020-sprite-unit .tactical-unit-name{position:absolute;left:6px;right:6px;bottom:15px;display:block;width:auto;margin:0;padding:2px 5px;border-radius:999px;background:linear-gradient(180deg,rgba(5,11,19,.9),rgba(9,16,28,.82));border:1px solid rgba(255,255,255,.09);font-size:7px;font-weight:900;line-height:1.15;text-shadow:0 1px 2px rgba(0,0,0,.75);letter-spacing:.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;z-index:3}
.v020-sprite-unit.player .tactical-unit-name{color:#d8f0ff;border-color:rgba(82,179,232,.26)}
.v020-sprite-unit.enemy .tactical-unit-name{color:#ffdce1;border-color:rgba(230,92,112,.26)}
.v020-sprite-unit .tactical-hp{left:8px;right:8px;bottom:5px;height:7px;background:rgba(31,10,16,.88);border:1px solid rgba(255,255,255,.18);z-index:3}
.v020-sprite-unit .tactical-hp-text{display:none}

.v021-generic-unit{inset:0 !important}
.v021-generic-unit .v021-generic-ground{left:12%;right:12%;bottom:19px;height:15px;background:radial-gradient(circle at 50% 50%,rgba(255,203,110,.42),rgba(19,12,8,.02) 72%);filter:blur(.2px)}
.v021-generic-unit .v021-generic-badge{position:absolute;top:2px;left:50%;transform:translateX(-50%);min-width:20px;padding:1px 5px;border-radius:999px;background:rgba(7,13,23,.92);border:1px solid rgba(255,255,255,.15);font-size:7px;font-weight:900;line-height:1.2;color:#f6deb0;z-index:4;letter-spacing:.04em}
.v021-generic-unit .v021-generic-figure{position:absolute;left:50%;top:8px;transform:translateX(-50%);width:44px;height:46px;display:block;z-index:2;filter:drop-shadow(0 6px 6px rgba(0,0,0,.5))}
.v021-generic-unit .v021-generic-head{position:absolute;left:50%;top:0;transform:translateX(-50%);width:15px;height:15px;border-radius:50%;background:linear-gradient(180deg,#f3e4cf,#bf9a73);box-shadow:0 0 0 2px rgba(17,20,30,.82)}
.v021-generic-unit .v021-generic-body{position:absolute;left:50%;top:11px;transform:translateX(-50%);width:29px;height:26px;border-radius:11px 11px 9px 9px;display:grid;place-items:center;font-size:16px;font-weight:900;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6);background:linear-gradient(180deg,#44689e,#18243d);box-shadow:0 0 0 2px rgba(12,16,25,.84), inset 0 -5px 10px rgba(0,0,0,.22)}
.v021-generic-unit .v021-generic-weapon{position:absolute;right:-2px;bottom:3px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:rgba(10,14,24,.88);border:1px solid rgba(255,255,255,.16);font-size:10px;color:#ffe6aa}
.v021-generic-unit.player .v021-generic-body{background:linear-gradient(180deg,#4d86c6,#1c365d)}
.v021-generic-unit.enemy .v021-generic-body{background:linear-gradient(180deg,#b34b57,#4b1722)}
.v021-generic-unit.type-lancer .v021-generic-body{background:linear-gradient(180deg,#b99642,#4f3812)}
.v021-generic-unit.type-archer .v021-generic-body{background:linear-gradient(180deg,#4d9365,#173b26)}
.v021-generic-unit.type-mage .v021-generic-body{background:linear-gradient(180deg,#6da7d8,#20345d)}
.v021-generic-unit.type-cavalry .v021-generic-body{background:linear-gradient(180deg,#8d5fb3,#34204f)}
.v021-generic-unit.type-dragon .v021-generic-body{background:linear-gradient(180deg,#ca6a52,#5d211c)}
.v021-generic-unit.selected .v021-generic-body,.v021-generic-unit.selected .v021-generic-head,.v021-generic-unit.selected .v021-generic-weapon{box-shadow:0 0 0 2px rgba(12,16,25,.84),0 0 12px rgba(243,209,115,.65)}
.v021-generic-unit.acted .v021-generic-figure{opacity:.72}
.tactical-modal.wide-field .v020-sprite-unit{inset:-2px !important}
.tactical-modal.wide-field .v020-unit-sprite{height:94% !important;min-width:46px;min-height:46px}
.tactical-modal.wide-field .v020-sprite-unit .tactical-unit-name{bottom:15px;font-size:7px}
.tactical-modal.wide-field .v020-sprite-unit .tactical-hp{height:7px;bottom:4px}
@media(max-width:760px){
  .v020-unit-sprite{min-width:34px;min-height:34px}
  .v020-sprite-unit .tactical-unit-name{left:3px;right:3px;bottom:12px;font-size:6px;padding:2px 4px}
  .v020-sprite-unit .tactical-hp{left:5px;right:5px;bottom:3px;height:6px}
}
@media(orientation:landscape) and (max-height:560px){
  .v020-unit-sprite{min-width:32px;min-height:32px}
  .v020-sprite-unit .tactical-unit-name{display:none}
  .v020-sprite-unit .tactical-hp{left:5px;right:5px;bottom:2px;height:5px}
}

/* =========================================================
   Prototype ver0.22 — Character detail UI redesign
   ========================================================= */
.modal.character-modal{width:min(1540px,98vw);max-height:97vh;padding:14px 16px 16px;border-radius:26px;background:radial-gradient(circle at 78% 14%,rgba(72,121,201,.18),transparent 28%),radial-gradient(circle at 22% 10%,rgba(252,219,123,.08),transparent 22%),linear-gradient(180deg,rgba(6,13,25,.99),rgba(3,8,18,.995));overflow:auto}
.v022-character-ui{position:relative;color:#f2f5fb}
.v022-character-ui::before{content:"";position:absolute;inset:0;border-radius:22px;border:1px solid rgba(232,198,111,.2);pointer-events:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.03)}
.v022-topline{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:12px;padding:2px 6px 6px;border-bottom:1px solid rgba(235,201,117,.18)}
.v022-titleblock h2{margin:0;font-size:28px;letter-spacing:.04em;color:#fff7dd}
.v022-titleblock p{margin:6px 0 0;color:#d5c38e;font-size:14px}
.v022-return-btn{padding:10px 18px;border-radius:999px;border:1px solid rgba(230,198,111,.42);background:linear-gradient(180deg,rgba(24,35,58,.92),rgba(8,14,26,.96));color:#f6e7b3;font-weight:800;box-shadow:0 10px 18px rgba(0,0,0,.22),inset 0 0 0 1px rgba(255,255,255,.04)}
.v022-tab-shell{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin-bottom:14px}
.v022-tab-shoulder{display:grid;place-items:center;width:42px;height:34px;border-radius:10px;border:1px solid rgba(233,203,120,.26);background:linear-gradient(180deg,rgba(18,27,46,.96),rgba(8,14,24,.98));color:#f0d282;font-weight:900;font-size:15px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.03)}
.v022-tab-row{display:flex;flex-wrap:wrap;gap:8px}
.v022-tab-row .character-tab{padding:12px 18px;border-radius:14px;background:linear-gradient(180deg,rgba(18,30,50,.98),rgba(10,16,28,.98));border:1px solid rgba(232,198,111,.22);color:#ebdec0;min-width:118px;font-size:15px;box-shadow:0 10px 16px rgba(0,0,0,.18),inset 0 0 0 1px rgba(255,255,255,.03)}
.v022-tab-row .character-tab.active{background:linear-gradient(180deg,#305891,#16284b);border-color:rgba(255,223,143,.52);color:#fff2c7}
.v022-layout{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(420px,.88fr);gap:16px;align-items:start}
.v022-left-column,.v022-right-column{display:flex;flex-direction:column;gap:14px}
.v022-upper-grid{display:grid;grid-template-columns:minmax(360px,.95fr) minmax(0,1.05fr);gap:14px}
.v022-panel,.v022-identity-panel,.v022-art-panel{position:relative;padding:14px;border-radius:18px;border:1px solid rgba(232,198,111,.24);background:linear-gradient(180deg,rgba(8,17,31,.96),rgba(5,10,18,.98));box-shadow:0 16px 26px rgba(0,0,0,.22),inset 0 0 0 1px rgba(255,255,255,.03)}
.v022-panel::before,.v022-identity-panel::before,.v022-art-panel::before{content:"";position:absolute;inset:7px;border-radius:inherit;border:1px solid rgba(232,198,111,.1);pointer-events:none}
.v022-panel-title{display:flex;align-items:center;gap:10px;margin-bottom:12px;color:#f0d287;font-size:13px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.v022-panel-title::before,.v022-panel-title::after{content:"";height:1px;background:linear-gradient(90deg,rgba(240,210,135,.55),rgba(240,210,135,0));flex:1}
.v022-panel-title::before{max-width:24px;flex:0 0 24px}.v022-panel-title::after{max-width:96px}
.v022-identity-panel{display:grid;grid-template-columns:170px minmax(0,1fr);gap:16px;min-height:246px}
.v022-face-frame{position:relative;padding:8px;border-radius:16px;background:linear-gradient(180deg,rgba(26,43,73,.82),rgba(10,16,29,.98));border:1px solid rgba(235,201,118,.28)}
.v022-face-frame::before{content:"";position:absolute;inset:6px;border-radius:12px;border:1px solid rgba(235,201,118,.18);pointer-events:none}
.v022-face-frame img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:#0b1220}
.v022-identity-copy{display:flex;flex-direction:column;justify-content:flex-start}
.v022-identity-copy h3{margin:0;font-size:34px;line-height:1.12;color:#fff}
.v022-identity-subtitle{margin-top:8px;font-size:20px;color:#f0d38e;font-weight:800}
.v022-identity-role{margin-top:10px;color:#d7e5f5;font-size:16px}
.v022-level-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px;color:#f2ead2;font-size:14px;font-weight:700}
.v022-hp-row{margin-top:10px}
.v022-hp-row label{display:block;color:#c1cde0;font-size:13px;letter-spacing:.08em}
.v022-hp-row b{display:block;margin-top:4px;font-size:22px;color:#fff}
.v022-hp-bar{margin-top:8px;height:13px;border-radius:999px;border:1px solid rgba(236,204,125,.25);background:rgba(255,255,255,.05);overflow:hidden}
.v022-hp-bar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#3f84ff,#54cbff 54%,#9ff3ff)}
.v022-star-row{display:flex;flex-wrap:wrap;gap:2px;margin-top:14px;color:#6e7f98;font-size:22px;text-shadow:0 0 10px rgba(255,215,120,.1)}
.v022-star-row .filled{color:#f3d382;text-shadow:0 0 10px rgba(255,214,126,.3)}
.v022-top-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.v022-stat-panel{padding:2px}
.v022-stat-list,.v022-battle-list{display:grid;gap:8px}
.v022-stat-row,.v022-battle-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border-radius:12px;background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.05)}
.v022-stat-row span,.v022-battle-row span{color:#d7bf7e;font-size:14px}.v022-stat-row b,.v022-battle-row b{color:#fff;font-size:22px;font-weight:800;letter-spacing:.02em}
.v022-dual-panels{display:grid;grid-template-columns:1fr 1fr;gap:14px}.v022-subpanel{padding:2px}
.v022-equip-list,.v022-skill-list,.v022-support-list.large{display:grid;gap:10px}
.v022-equip-row,.v022-skill-row,.v022-support-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-radius:14px;background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.018));border:1px solid rgba(255,255,255,.06)}
.v022-equip-row.prominent,.v022-skill-row.prominent,.v022-support-row{padding:14px 16px}
.v022-equip-slot{display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;align-items:center}.v022-slot-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:rgba(242,210,129,.12);border:1px solid rgba(242,210,129,.22);color:#f3d484;font-size:14px;font-weight:900}
.v022-equip-slot b{display:block;color:#fff;font-size:16px}.v022-equip-slot small{display:block;margin-top:2px;color:#a7bbd3;font-size:12px}.v022-equip-row strong{color:#f6e1a5;font-size:17px;text-align:right}
.v022-inline-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.v022-skill-row{align-items:flex-start;justify-content:flex-start}
.v022-skill-icon{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:12px;background:linear-gradient(180deg,rgba(66,110,201,.85),rgba(20,41,84,.95));border:1px solid rgba(255,255,255,.1);color:#fff4c2;font-weight:900}
.v022-skill-meta{min-width:0;flex:1}.v022-skill-head{display:flex;justify-content:space-between;gap:8px;align-items:center}.v022-skill-head b{font-size:17px;color:#fff}.v022-skill-head span{padding:4px 10px;border-radius:999px;background:rgba(240,210,129,.1);border:1px solid rgba(240,210,129,.18);color:#f3d487;font-size:12px;font-weight:700}.v022-skill-meta p{margin:8px 0 0;color:#e3edf8;line-height:1.75}
.v022-support-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.v022-support-card{padding:10px 10px 12px;border-radius:14px;background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.018));border:1px solid rgba(255,255,255,.06);text-align:center}.v022-support-card img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:12px;border:1px solid rgba(232,198,111,.24);background:#0a121f}.v022-support-card b{display:block;margin-top:9px;color:#fff;font-size:15px}.v022-support-card small{display:block;margin-top:4px;color:#d7be7c;font-size:12px}
.v022-support-list.large .v022-support-row{display:grid;grid-template-columns:64px minmax(0,1fr) 44px;align-items:center}.v022-support-row img{width:64px;height:64px;border-radius:16px;object-fit:cover;border:1px solid rgba(232,198,111,.26);background:#0b1320}.v022-support-meta b{display:block;color:#fff;font-size:17px}.v022-support-meta small{display:block;margin:4px 0 0;color:#a9bad0}
.v022-empty-note{padding:14px;border-radius:12px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05);color:#afbdd0}
.v022-profile-box h3{margin:0;color:#fff1c4;font-size:34px;line-height:1.25}.v022-profile-box p{margin:14px 0 0;color:#edf4ff;line-height:1.85;font-size:15px}
.v022-profile-box.prominent h3{font-size:38px}
.v022-panel-scroll{max-height:340px;overflow:auto}
.v022-art-panel{padding:14px;min-height:820px;background:linear-gradient(180deg,rgba(7,16,30,.98),rgba(4,10,18,.99))}
.v022-art-stage{position:relative;height:100%;min-height:792px;border-radius:18px;overflow:hidden;background:radial-gradient(circle at 50% 12%,rgba(105,160,246,.26),rgba(7,15,28,.94) 42%,rgba(3,8,16,.99) 100%)}
.v022-art-stage::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 20%,rgba(188,225,255,.08),transparent 18%),linear-gradient(180deg,rgba(255,255,255,.02),rgba(255,255,255,0));pointer-events:none}
.v022-art-backdrop{position:absolute;inset:0;background:radial-gradient(circle at 50% 85%,rgba(120,178,255,.18),transparent 34%),radial-gradient(circle at 18% 18%,rgba(143,203,255,.08),transparent 20%),radial-gradient(circle at 82% 14%,rgba(152,210,255,.08),transparent 22%)}
.v022-art-backdrop::before,.v022-art-backdrop::after{content:"";position:absolute;inset:auto 6% 4% 6%;height:32%;border-radius:50%;background:radial-gradient(circle at 50% 100%,rgba(122,187,255,.22),rgba(122,187,255,0) 68%);filter:blur(16px)}
.v022-art-image{position:absolute;right:1.5%;bottom:0;max-width:98%;max-height:96%;object-fit:contain;filter:drop-shadow(0 18px 28px rgba(0,0,0,.45))}
.v022-art-image.pixel-art{image-rendering:auto;padding:18px;max-width:88%;max-height:88%}
.v022-title-panel .v022-profile-box{min-height:160px}
.v022-footer-bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:14px;padding:12px 14px;border-top:1px solid rgba(232,198,111,.18);color:#d9e4f3;font-size:13px}
.v022-footer-bar span{display:flex;align-items:center;gap:6px;white-space:nowrap}.v022-footer-bar strong{display:inline-grid;place-items:center;min-width:26px;padding:2px 6px;border-radius:7px;background:rgba(255,255,255,.05);border:1px solid rgba(232,198,111,.22);color:#f1d183;font-size:11px}
@media (max-width: 1320px){
  .modal.character-modal{width:min(1280px,99vw)}
  .v022-layout{grid-template-columns:1fr}
  .v022-art-panel{min-height:560px}
  .v022-art-stage{min-height:520px}
}
@media (max-width: 980px){
  .v022-upper-grid,.v022-top-stats-grid,.v022-dual-panels{grid-template-columns:1fr}
  .v022-identity-panel{grid-template-columns:140px 1fr}
  .v022-support-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width: 720px){
  .modal.character-modal{width:100vw;max-height:100vh;height:100vh;border-radius:0;padding:10px}
  .v022-topline{align-items:flex-start;flex-direction:column}
  .v022-tab-shell{grid-template-columns:1fr}
  .v022-tab-shoulder{display:none}
  .v022-tab-row .character-tab{min-width:0;flex:1 1 calc(50% - 8px);padding:11px 10px;font-size:14px}
  .v022-identity-panel{grid-template-columns:1fr}
  .v022-face-frame{max-width:200px}
  .v022-support-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v022-footer-bar{justify-content:flex-start}
  .v022-art-panel{min-height:420px}.v022-art-stage{min-height:380px}
  .v022-identity-copy h3{font-size:28px}
  .v022-profile-box h3{font-size:28px}
}

/* =========================================================
   Prototype ver0.23 — Commercial-grade UI redesign
   Character detail UI + overall game UI refinement
   ========================================================= */
:root{
  --bg:#050811;
  --panel:rgba(8,14,25,.95);
  --panel2:rgba(16,26,43,.94);
  --line:rgba(236,204,125,.30);
  --gold:#f0cf86;
  --text:#f6f8fd;
  --muted:#9fb0c6;
  --accent:#c34f67;
  --ok:#67c98f;
}
html{background:radial-gradient(circle at 50% -15%,rgba(58,96,168,.10),transparent 34%),linear-gradient(180deg,#08111f 0%,#050811 100%)}
body{
  position:relative;
  background:
    radial-gradient(circle at 20% 8%,rgba(70,110,186,.10),transparent 24%),
    radial-gradient(circle at 82% 14%,rgba(238,204,121,.06),transparent 20%),
    linear-gradient(180deg,#08111f 0%,#050811 100%);
  color:var(--text);
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.30;
  background:
    linear-gradient(transparent 97%,rgba(255,255,255,.02) 100%),
    linear-gradient(90deg,transparent 97%,rgba(255,255,255,.02) 100%);
  background-size:32px 32px;
  mix-blend-mode:soft-light;
}
.glass,
.side-card,
.modal,
.map-panel,
.hud,
.setup-panel,
.summary-banner,
.choice-card,
.start-card,
.command-option,
.officer-card,
.battle-side,
.save-slot,
.guide-box,
.v022-panel,
.v022-identity-panel,
.v022-art-panel{
  position:relative;
  background:
    linear-gradient(180deg,rgba(25,38,61,.08),rgba(255,255,255,0) 20%),
    linear-gradient(180deg,rgba(12,20,35,.97),rgba(6,10,18,.99));
  border:1px solid rgba(240,207,134,.24);
  box-shadow:
    0 20px 48px rgba(0,0,0,.42),
    inset 0 1px 0 rgba(255,255,255,.04),
    inset 0 0 0 1px rgba(255,255,255,.02);
}
.glass::before,
.side-card::before,
.modal::before,
.map-panel::before,
.hud::before,
.setup-panel::before,
.v022-panel::before,
.v022-identity-panel::before,
.v022-art-panel::before{
  content:"";
  position:absolute;
  inset:7px;
  border-radius:inherit;
  border:1px solid rgba(240,207,134,.08);
  pointer-events:none;
}
.glass::after,
.side-card::after,
.modal::after,
.map-panel::after,
.hud::after,
.setup-panel::after,
.v022-panel::after,
.v022-identity-panel::after,
.v022-art-panel::after{
  content:"";
  position:absolute;
  left:16px; right:16px; top:0;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(244,220,159,.45),transparent);
  pointer-events:none;
}
.primary,.secondary,.danger-btn,.ghost,
.action-row button,.command-grid button,.officer-actions button,
.map-tools button,.icon-btn,.v022-return-btn{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(245,215,140,.22);
  box-shadow:0 10px 20px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.10);
}
.primary::before,.secondary::before,.danger-btn::before,.ghost::before,
.action-row button::before,.command-grid button::before,.officer-actions button::before,
.map-tools button::before,.icon-btn::before,.v022-return-btn::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,.13),rgba(255,255,255,0) 36%);
  pointer-events:none;
}
.primary{background:linear-gradient(180deg,#c8576e,#8d2e45)}
.secondary{background:linear-gradient(180deg,#5087bf,#26527e)}
.ghost{background:linear-gradient(180deg,rgba(28,42,65,.95),rgba(11,18,31,.98));color:#ebf2fe}
.danger-btn{background:linear-gradient(180deg,#9c334b,#6f2134)}
.primary:hover,.secondary:hover,.ghost:hover,.danger-btn:hover,
.action-row button:hover,.command-grid button:hover,.officer-actions button:hover,
.map-tools button:hover,.icon-btn:hover{transform:translateY(-1px);filter:brightness(1.05)}
.eyebrow,.v022-panel-title,.hud-brand small,.stat span{letter-spacing:.18em}
.title-card{
  border-radius:34px;
  padding:44px 42px 34px;
  background:
    radial-gradient(circle at 50% -5%,rgba(242,211,136,.12),transparent 28%),
    linear-gradient(180deg,rgba(10,18,32,.82),rgba(4,8,16,.95));
}
.title-card h1{letter-spacing:.03em;text-shadow:0 8px 30px rgba(0,0,0,.65)}
.title-copy{color:#d7e0ed}
.title-route-preview span{
  background:linear-gradient(180deg,rgba(24,37,58,.96),rgba(10,16,27,.98));
  border-color:rgba(240,207,134,.24);
  box-shadow:0 10px 16px rgba(0,0,0,.18)
}
.setup-head h2,.setup-panel h3,.summary-banner h3{color:#fff5da;text-shadow:0 4px 14px rgba(0,0,0,.28)}
.choice-card,.start-card,.policy-card,.save-slot,.guide-box,.command-option,.officer-card,.battle-side{
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.015));
}
.choice-card.selected{
  background:linear-gradient(180deg,rgba(240,207,134,.14),rgba(240,207,134,.05));
  border-color:rgba(240,207,134,.55);
  box-shadow:0 0 0 1px rgba(240,207,134,.22),0 18px 30px rgba(0,0,0,.26),inset 0 1px 0 rgba(255,255,255,.08);
}
.field input, .map-tools button, .icon-btn, .close-x, .modal-close, .tactical-camera-buttons button, .tactical-actions button, .save-slot button{
  background:linear-gradient(180deg,rgba(20,31,51,.96),rgba(8,13,23,.98));
}
.hud{
  min-height:86px;
  border-radius:24px;
  background:
    radial-gradient(circle at 14% 0%,rgba(86,128,208,.14),transparent 30%),
    radial-gradient(circle at 90% 0%,rgba(242,207,126,.09),transparent 25%),
    linear-gradient(180deg,rgba(8,15,27,.97),rgba(4,9,17,.99));
}
.hud-brand h2{font-size:18px;color:#fff6dc}
.hud-emblem{
  background:linear-gradient(180deg,rgba(28,42,66,.95),rgba(10,16,27,.98));
  border-color:rgba(240,207,134,.24);
  box-shadow:0 12px 18px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.08)
}
.stat{
  position:relative;
  min-width:88px;
  border-radius:14px;
  background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.02));
  border-color:rgba(255,255,255,.08);
}
.stat b{font-size:17px;color:#fff6db}
.map-panel{
  border-radius:24px;
  background:
    radial-gradient(circle at 20% 0%,rgba(84,122,198,.08),transparent 26%),
    linear-gradient(180deg,rgba(10,18,32,.96),rgba(4,8,16,.99));
}
.map-head{padding:2px 4px 8px;border-bottom:1px solid rgba(240,207,134,.10)}
.map-head h3{font-size:18px;color:#fff5da}
.map-viewport{
  border-radius:20px;
  border-color:rgba(240,207,134,.18);
  box-shadow:inset 0 0 40px rgba(0,0,0,.45),0 12px 24px rgba(0,0,0,.18);
}
.map-stage{filter:saturate(1.14) brightness(1.13) contrast(1.04)}
.territory-node{width:78px}
.territory-node img{width:48px;height:48px;filter:drop-shadow(0 10px 7px rgba(0,0,0,.78))}
.territory-node .node-label{
  margin-top:-2px;
  padding:5px 7px;
  border-radius:10px;
  background:linear-gradient(180deg,rgba(7,12,21,.94),rgba(12,19,34,.92));
  border:1px solid rgba(240,207,134,.18);
  font-size:8px;
  box-shadow:0 8px 16px rgba(0,0,0,.32);
}
.territory-node.selected .node-label{box-shadow:0 0 0 1px rgba(240,207,134,.24),0 10px 20px rgba(0,0,0,.34)}
.side-panel{gap:12px}
.side-card{border-radius:20px;padding:15px}
.side-card h3{font-size:16px;color:#f3d68f}
.territory-title b{font-size:21px;color:#fff7df}
.info-grid{gap:9px}
.info-item{
  border-radius:12px;
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.025));
  border:1px solid rgba(255,255,255,.04);
}
.info-item b{font-size:14px;color:#fff}
.action-row button,.command-grid button,.officer-actions button{
  background:linear-gradient(180deg,rgba(26,39,61,.96),rgba(8,14,24,.98));
  border-radius:12px;
}
.action-row button.primary-mini{background:linear-gradient(180deg,#c65870,#8b2e46)}
.command-grid{gap:9px}
.command-grid button{min-height:54px}
.command-grid button b{font-size:13px;color:#f6dd98}
.log-card{background:linear-gradient(180deg,rgba(9,16,27,.98),rgba(4,8,14,.99))}
.log-list{gap:8px}
.log-item{
  padding:9px 10px;
  border-left:2px solid rgba(240,207,134,.45);
  border-radius:0 10px 10px 0;
  background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.015));
  color:#dbe5f1;
}
.modal-back,.tactical-modal-back{background:rgba(2,4,10,.78);backdrop-filter:blur(10px)}
.modal{
  border-radius:28px;
  padding:24px;
  background:
    radial-gradient(circle at 15% 0%,rgba(94,132,212,.09),transparent 25%),
    radial-gradient(circle at 82% 0%,rgba(242,207,126,.06),transparent 20%),
    linear-gradient(180deg,rgba(11,19,32,.98),rgba(5,10,18,.995));
}
.modal h2{font-size:28px;color:#fff3cd}
.modal-lead{color:#c8d4e4}
.modal-close,.close-x{
  box-shadow:0 8px 16px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.08);
  border-color:rgba(240,207,134,.22);
}
.officer-card.commander,.save-slot:hover,.command-option:hover,.guide-box:hover,.battle-side:hover{
  border-color:rgba(240,207,134,.42);
  box-shadow:0 18px 30px rgba(0,0,0,.24),0 0 0 1px rgba(240,207,134,.12),inset 0 1px 0 rgba(255,255,255,.06);
}
.tactical-header,.tactical-camera-bar{
  background:linear-gradient(180deg,rgba(10,18,31,.94),rgba(5,10,18,.98));
  border-color:rgba(240,207,134,.16);
}
.tactical-score{background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.07)}
.tactical-board-viewport{border-color:rgba(240,207,134,.18);background:#08111a}
.tactical-board{
  background:
    linear-gradient(rgba(255,255,255,.018),rgba(255,255,255,.018)),
    radial-gradient(circle at 22% 20%,rgba(72,110,86,.28),transparent 22%),
    radial-gradient(circle at 78% 68%,rgba(110,83,64,.30),transparent 23%),
    linear-gradient(135deg,#14231d,#18231f 48%,#1c1b16) !important;
}
.tactical-cell{border-color:rgba(255,255,255,.08)}
.tactical-selected-card,.tactical-selected-empty,.tactical-log{
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.015));
  border-color:rgba(255,255,255,.08)
}
.tactical-log p{color:#d2dceb}
.v020-sprite-unit .tactical-unit-name{
  background:linear-gradient(180deg,rgba(6,11,20,.94),rgba(9,16,28,.88));
  border-color:rgba(240,207,134,.14);
}
.v020-sprite-unit .tactical-hp{background:rgba(22,10,12,.86);border-color:rgba(255,255,255,.14)}

/* Character detail — further premium pass */
.modal.character-modal{
  background:
    radial-gradient(circle at 78% 12%,rgba(92,150,235,.18),transparent 26%),
    radial-gradient(circle at 18% 8%,rgba(243,210,127,.09),transparent 20%),
    linear-gradient(180deg,rgba(8,15,28,.995),rgba(3,8,16,.998));
}
.v022-character-ui::after{
  content:"";
  position:absolute;inset:18px;pointer-events:none;border:1px solid rgba(240,207,134,.06);border-radius:18px;
}
.v022-topline{padding:4px 8px 10px;border-bottom:1px solid rgba(240,207,134,.14)}
.v022-titleblock h2{font-size:30px;text-shadow:0 6px 18px rgba(0,0,0,.28)}
.v022-tab-row .character-tab{
  background:linear-gradient(180deg,rgba(20,33,54,.98),rgba(9,15,25,.98));
  border-color:rgba(240,207,134,.18);
  box-shadow:0 12px 20px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.05);
}
.v022-tab-row .character-tab.active{
  background:linear-gradient(180deg,#375f98,#193055);
  box-shadow:0 0 0 1px rgba(240,207,134,.28),0 16px 22px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.10);
}
.v022-panel-title{color:#f3d68f}
.v022-identity-panel,.v022-panel,.v022-art-panel{
  background:
    radial-gradient(circle at 50% 0%,rgba(255,255,255,.03),transparent 22%),
    linear-gradient(180deg,rgba(12,21,37,.98),rgba(5,10,18,.99));
}
.v022-face-frame{background:linear-gradient(180deg,rgba(28,44,71,.92),rgba(10,17,30,.98));box-shadow:0 14px 18px rgba(0,0,0,.22)}
.v022-identity-copy h3{font-size:36px;color:#fff8e8;text-shadow:0 4px 14px rgba(0,0,0,.22)}
.v022-identity-subtitle{color:#f2d388}
.v022-level-row{color:#dde6f5}
.v022-hp-bar{box-shadow:inset 0 0 10px rgba(0,0,0,.26)}
.v022-star-row{font-size:23px}
.v022-stat-row,.v022-battle-row,.v022-equip-row,.v022-skill-row,.v022-support-card,.v022-support-row{
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));
  border-color:rgba(255,255,255,.06);
}
.v022-stat-row b,.v022-battle-row b{color:#fff9ea}
.v022-equip-row strong{color:#f7e7be}
.v022-skill-head span{background:rgba(240,207,134,.10);border-color:rgba(240,207,134,.16)}
.v022-profile-box{
  background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.015));
  padding:8px 2px 2px;
}
.v022-profile-box h3{font-size:38px;color:#fff3d1;text-shadow:0 5px 18px rgba(0,0,0,.28)}
.v022-profile-box p{font-size:16px;color:#edf5ff}
.v022-art-stage{
  background:
    radial-gradient(circle at 50% 16%,rgba(124,178,255,.28),rgba(10,18,33,.96) 38%,rgba(4,9,18,.995) 100%);
}
.v022-art-stage::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 50% 14%,rgba(255,255,255,.10),transparent 18%),
    linear-gradient(180deg,rgba(255,255,255,.02),rgba(255,255,255,0));
  pointer-events:none;
}
.v022-art-backdrop::after{
  content:"";
  position:absolute;
  inset:12% 8% auto 8%;
  height:42%;
  background:radial-gradient(circle at 50% 0%,rgba(186,220,255,.11),rgba(186,220,255,0) 58%);
  filter:blur(8px);
}
.v022-art-image{filter:drop-shadow(0 24px 30px rgba(0,0,0,.48))}
.v022-footer-bar{border-top:1px solid rgba(240,207,134,.14);padding-top:14px;color:#d6e0ef}
.v022-footer-bar strong{border-color:rgba(240,207,134,.22);color:#f2d488}

@media(max-width:900px){
  .hud{border-radius:18px}
  .map-panel,.side-card,.modal{border-radius:20px}
  .territory-node{width:70px}
  .territory-node img{width:44px;height:44px}
  .command-grid button{min-height:48px}
}
@media(max-width:560px){
  .title-card{padding:30px 18px 26px}
  .title-route-preview{gap:6px}
  .stat{min-width:74px}
  .territory-node .node-label{font-size:7px}
}


/* =========================================================
   Prototype ver0.23b — FE-like UI tuning
   ========================================================= */
:root{
  --fe-navy:#0d1f3e;
  --fe-deep:#081227;
  --fe-blue:#254f93;
  --fe-blue2:#3d6ab3;
  --fe-gold:#e3c06e;
  --fe-gold2:#f3df9b;
  --fe-ink:#eef4ff;
  --fe-muted:#bfcce0;
}
body{
  background:
    radial-gradient(circle at 50% -10%, rgba(91,130,205,.18), transparent 30%),
    radial-gradient(circle at 85% 8%, rgba(245,219,143,.07), transparent 20%),
    linear-gradient(180deg,#10264b 0%, #0a1630 42%, #071124 100%);
}
body::before{
  opacity:.18;
  background:
    linear-gradient(transparent 95%,rgba(255,255,255,.018) 100%),
    linear-gradient(90deg,transparent 95%,rgba(255,255,255,.018) 100%);
  background-size:40px 40px;
}
.glass,
.side-card,
.modal,
.map-panel,
.hud,
.setup-panel,
.summary-banner,
.choice-card,
.start-card,
.command-option,
.officer-card,
.battle-side,
.save-slot,
.guide-box,
.v022-panel,
.v022-identity-panel,
.v022-art-panel{
  background:
    linear-gradient(180deg, rgba(66,108,178,.12), rgba(255,255,255,0) 20%),
    linear-gradient(180deg, rgba(18,40,79,.97), rgba(7,17,39,.99));
  border:1px solid rgba(227,192,110,.42);
  box-shadow:
    0 18px 40px rgba(0,0,0,.40),
    inset 0 1px 0 rgba(255,255,255,.08),
    inset 0 0 0 1px rgba(255,255,255,.03);
}
.glass::before,
.side-card::before,
.modal::before,
.map-panel::before,
.hud::before,
.setup-panel::before,
.v022-panel::before,
.v022-identity-panel::before,
.v022-art-panel::before{
  inset:6px;
  border:1px solid rgba(243,223,155,.12);
}
.glass::after,
.side-card::after,
.modal::after,
.map-panel::after,
.hud::after,
.setup-panel::after,
.v022-panel::after,
.v022-identity-panel::after,
.v022-art-panel::after{
  background:linear-gradient(90deg,transparent,rgba(243,223,155,.55),transparent);
}
.hud{
  background:
    radial-gradient(circle at 15% 0%, rgba(112,153,223,.16), transparent 34%),
    linear-gradient(180deg, rgba(16,36,73,.98), rgba(7,18,40,.995));
  border-radius:18px;
}
.hud-brand h2,
.map-head h3,
.side-card h3,
.modal h2,
.setup-head h2,
.summary-banner h3,
.v022-titleblock h2{
  color:#fff5d6;
  letter-spacing:.03em;
  text-shadow:0 2px 0 rgba(0,0,0,.45), 0 8px 16px rgba(0,0,0,.22);
}
.stat{
  border-radius:10px;
  background:linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.03));
  border:1px solid rgba(243,223,155,.18);
}
.stat span{color:#d8c489;font-weight:800}
.stat b{color:#fff8e2}
.primary,.secondary,.ghost,.danger-btn,
.action-row button,.command-grid button,.officer-actions button,
.map-tools button,.icon-btn,.v022-return-btn{
  border-radius:8px;
  border:1px solid rgba(243,223,155,.26);
}
.primary,
.action-row button.primary-mini{
  background:linear-gradient(180deg,#446fb6,#27467d);
  color:#fff8e3;
}
.secondary{background:linear-gradient(180deg,#6288c4,#305891);color:#fff8e5}
.ghost,
.action-row button,.command-grid button,.officer-actions button,
.map-tools button,.icon-btn,.v022-return-btn{
  background:linear-gradient(180deg, rgba(35,62,110,.98), rgba(14,28,58,.99));
  color:#f2f6ff;
}
.ghost:hover,.primary:hover,.secondary:hover,.danger-btn:hover,
.action-row button:hover,.command-grid button:hover,.officer-actions button:hover,
.map-tools button:hover,.icon-btn:hover,.v022-return-btn:hover{filter:brightness(1.08)}
.territory-title b{color:#fff6d9}
.info-item,
.choice-card,
.start-card,
.policy-card,
.save-slot,
.guide-box,
.command-option,
.officer-card,
.battle-side,
.log-item,
.v022-stat-row,.v022-battle-row,.v022-equip-row,.v022-skill-row,.v022-support-card,.v022-support-row{
  background:linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.025));
  border:1px solid rgba(243,223,155,.12);
}
.command-grid button b,.v022-panel-title,.eyebrow{color:var(--fe-gold2)}
.map-stage{filter:saturate(1.08) brightness(1.18) contrast(1.03)}
.territory-node img{filter:drop-shadow(0 8px 5px rgba(0,0,0,.72))}
.territory-node .node-label{
  background:linear-gradient(180deg, rgba(19,39,76,.97), rgba(10,21,44,.98));
  border:1px solid rgba(243,223,155,.22);
  color:#f4f7ff;
  border-radius:8px;
}
.modal.character-modal{
  background:
    radial-gradient(circle at 78% 12%, rgba(118,168,255,.18), transparent 28%),
    radial-gradient(circle at 14% 8%, rgba(243,223,155,.09), transparent 20%),
    linear-gradient(180deg, rgba(12,28,58,.995), rgba(7,16,36,.998));
}
.v022-topline{border-bottom:1px solid rgba(243,223,155,.18)}
.v022-tab-row .character-tab{
  min-width:124px;
  border-radius:8px;
  background:linear-gradient(180deg, rgba(31,58,103,.98), rgba(15,29,58,.98));
  border:1px solid rgba(243,223,155,.20);
  color:#eef4ff;
}
.v022-tab-row .character-tab.active{
  background:linear-gradient(180deg,#4d77bf,#28497f);
  border-color:rgba(243,223,155,.48);
  color:#fff7df;
  box-shadow:0 0 0 1px rgba(243,223,155,.18),0 12px 20px rgba(0,0,0,.20), inset 0 1px 0 rgba(255,255,255,.10);
}
.v022-identity-panel,.v022-panel,.v022-art-panel{
  border-radius:14px;
}
.v022-face-frame{border-radius:12px}
.v022-face-frame img{border-radius:10px}
.v022-identity-copy h3{font-size:34px;color:#fff8df}
.v022-identity-subtitle,.v022-panel-title{color:#f1d898}
.v022-level-row,.v022-identity-role,.v022-profile-box p,.v022-skill-meta p{color:#e7eef9}
.v022-hp-bar{
  border:1px solid rgba(243,223,155,.24);
  background:rgba(3,10,23,.62);
}
.v022-hp-bar i{background:linear-gradient(90deg,#3e78dc,#5ea6ff 54%,#9dd0ff)}
.v022-star-row .filled{color:#f2d889}
.v022-top-stats-grid{gap:12px}
.v022-stat-row span,.v022-battle-row span{color:#dec988}
.v022-stat-row b,.v022-battle-row b,
.v022-equip-slot b,.v022-skill-head b,.v022-support-meta b,
.v022-support-card b,.v022-profile-box h3{color:#fff8e3}
.v022-equip-row strong{color:#f6e6b5}
.v022-slot-icon,.v022-skill-icon{
  border-radius:8px;
  background:linear-gradient(180deg,#5d88cc,#2b4b84);
  border:1px solid rgba(243,223,155,.24);
}
.v022-skill-head span{
  background:rgba(243,223,155,.10);
  border:1px solid rgba(243,223,155,.18);
  color:#f6df9c;
}
.v022-support-card img,.v022-support-row img,.v022-face-frame img{border:1px solid rgba(243,223,155,.24)}
.v022-art-panel{min-height:780px}
.v022-art-stage{
  min-height:752px;
  border-radius:14px;
  background:radial-gradient(circle at 50% 14%, rgba(132,182,255,.28), rgba(18,36,71,.95) 34%, rgba(8,18,38,.99) 100%);
}
.v022-art-image{right:0;max-width:100%;max-height:97%}
.v022-profile-box h3{font-size:36px}
.v022-footer-bar{display:none !important}
.tactical-header,.tactical-camera-bar{
  background:linear-gradient(180deg, rgba(22,41,78,.96), rgba(9,20,42,.99));
  border:1px solid rgba(243,223,155,.18);
}
.tactical-board{
  background:
    linear-gradient(rgba(255,255,255,.02),rgba(255,255,255,.02)),
    radial-gradient(circle at 24% 20%,rgba(94,132,108,.24),transparent 24%),
    radial-gradient(circle at 78% 72%,rgba(88,74,60,.20),transparent 25%),
    linear-gradient(135deg,#1a2d24,#24372b 48%,#2a281f) !important;
}
.tactical-cell{border-color:rgba(255,255,255,.07)}

/* =========================================================
   Prototype ver0.23c — Tactical detail return / Lilia art integration
   ========================================================= */
.v022-art-image.compact-character-art{
  right:12%;
  bottom:4%;
  max-width:76%;
  max-height:80%;
  filter:drop-shadow(0 22px 30px rgba(0,0,0,.52));
}
.v022-art-stage:has(.compact-character-art)::before{
  content:"";
  position:absolute;
  left:18%;right:18%;bottom:5%;height:18%;
  border-radius:50%;
  background:radial-gradient(circle at 50% 50%,rgba(113,169,255,.22),rgba(113,169,255,0) 70%);
  filter:blur(8px);
  pointer-events:none;
}
@media(max-width:720px){
  .v022-art-image.compact-character-art{right:8%;max-width:84%;max-height:84%}
}

/* =========================================================
   Prototype ver0.23f — True Dragon tactical visuals and effects
   ========================================================= */
.v023f-true-dragon-unit{overflow:visible!important;isolation:isolate}
.v023f-true-dragon-unit .v018-unit-ground{left:-5%;right:-5%;bottom:11px;height:19px;background:radial-gradient(circle at 50% 50%,rgba(255,64,95,.72),rgba(136,8,36,.12) 64%,transparent 75%);filter:blur(1px);animation:v023fDragonGroundPulse 1.35s ease-in-out infinite}
.v023f-true-dragon-sprite{position:absolute;left:50%;bottom:9px;transform:translateX(-50%);width:142%!important;height:122%!important;max-width:none!important;max-height:none!important;object-fit:contain!important;object-position:center bottom;filter:drop-shadow(0 8px 7px rgba(0,0,0,.68)) drop-shadow(0 0 8px rgba(255,45,80,.64));z-index:3;pointer-events:none;animation:v023fDragonHover 1.8s ease-in-out infinite}
.v023f-dragon-aura{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;z-index:1}
.v023f-dragon-aura.aura-a{width:76px;height:76px;border:2px solid rgba(255,63,93,.54);box-shadow:0 0 18px rgba(255,30,70,.55),inset 0 0 18px rgba(255,50,90,.25);animation:v023fAuraSpin 3.2s linear infinite}
.v023f-dragon-aura.aura-b{width:58px;height:58px;border:1px dashed rgba(255,215,222,.64);box-shadow:0 0 14px rgba(255,80,105,.38);animation:v023fAuraSpinReverse 2.4s linear infinite}
.v023f-dragon-rune{position:absolute;right:-4px;top:-5px;z-index:6;padding:2px 5px;border-radius:999px;background:linear-gradient(180deg,#c72e4e,#6e1027);border:1px solid rgba(255,222,174,.58);box-shadow:0 0 10px rgba(255,48,82,.54);color:#fff2c9;font-size:7px;font-weight:900;letter-spacing:.08em}
.v023f-true-dragon-unit .tactical-unit-name{border-color:rgba(255,80,110,.38)!important;color:#ffe1e7!important;background:linear-gradient(180deg,rgba(75,7,25,.94),rgba(23,5,14,.92))!important}
.v023f-true-dragon-unit .tactical-hp i{background:linear-gradient(90deg,#cc2045,#ff5e7a,#ffd0d8)!important}
.v023f-true-dragon-unit.selected{filter:none!important}
.v023f-true-dragon-unit.selected .v023f-true-dragon-sprite{filter:drop-shadow(0 10px 8px rgba(0,0,0,.68)) drop-shadow(0 0 13px rgba(255,218,147,.85)) drop-shadow(0 0 18px rgba(255,40,82,.72))}
.v023f-true-dragon-unit.moving .v023f-true-dragon-sprite{animation:v023fDragonFlight .52s cubic-bezier(.25,.7,.25,1) both}
.v023f-true-dragon-unit.moving .v023f-dragon-aura{animation-duration:.55s}
.v023f-selected-true-dragon{border-color:rgba(255,73,105,.45)!important;background:radial-gradient(circle at 20% 0%,rgba(255,53,87,.14),transparent 42%),linear-gradient(180deg,rgba(48,11,27,.96),rgba(13,8,17,.98))!important}
.v023f-selected-true-dragon em{color:#ff9bac!important}
.v023f-selected-true-dragon small{display:block;margin-top:5px;color:#ffd0d9;line-height:1.45}
.v023f-true-dragon-casting{z-index:30!important}
.v023f-true-dragon-casting .v023f-true-dragon-sprite{animation:v023fDragonCast .95s ease-in-out both;filter:drop-shadow(0 0 12px #ff345f) drop-shadow(0 0 28px rgba(255,25,67,.85))}
.v023f-true-dragon-target{animation:v023fTargetShake .42s ease-in-out .36s 2}
.v023f-true-dragon-skill-fx{position:absolute;inset:0;z-index:999;pointer-events:none;overflow:hidden;border-radius:inherit;background:radial-gradient(circle at 50% 50%,rgba(255,39,74,.16),transparent 32%);animation:v023fFxFade .98s ease both}
.v023f-fx-core{position:absolute;left:50%;top:50%;width:20px;height:20px;transform:translate(-50%,-50%);border-radius:50%;background:#fff5e4;box-shadow:0 0 25px 12px #ff4065,0 0 90px 35px rgba(255,22,64,.75);animation:v023fCoreBurst .98s ease-out both}
.v023f-fx-wings{position:absolute;left:50%;top:50%;width:52%;height:58%;transform:translate(-50%,-50%) scale(.25);opacity:0;background:radial-gradient(ellipse at 50% 70%,rgba(255,220,210,.46),transparent 34%),conic-gradient(from 35deg at 50% 65%,transparent 0 8%,rgba(255,34,70,.72) 9% 23%,transparent 24% 50%,rgba(255,34,70,.72) 51% 65%,transparent 66%);filter:drop-shadow(0 0 20px rgba(255,31,72,.72));clip-path:polygon(50% 52%,0 0,14% 47%,3% 80%,39% 66%,50% 100%,61% 66%,97% 80%,86% 47%,100% 0);animation:v023fWingOpen .75s ease-out .08s both}
.v023f-fx-title{position:absolute;left:50%;top:17%;transform:translateX(-50%);text-align:center;opacity:0;animation:v023fTitleReveal .8s ease-out .08s both;text-shadow:0 3px 12px rgba(0,0,0,.75),0 0 18px rgba(255,38,75,.65)}
.v023f-fx-title small{display:block;color:#ff9eae;font-size:11px;letter-spacing:.32em;font-weight:900}
.v023f-fx-title b{display:block;margin-top:6px;color:#fff4d4;font-size:clamp(20px,3vw,42px);letter-spacing:.08em}
.v023f-true-dragon-skill-fx.impact{background:radial-gradient(circle at 50% 50%,rgba(255,231,211,.45),rgba(255,32,69,.22) 18%,transparent 48%)}
@keyframes v023fDragonHover{0%,100%{transform:translateX(-50%) translateY(1px)}50%{transform:translateX(-50%) translateY(-4px)}}
@keyframes v023fDragonGroundPulse{0%,100%{opacity:.55;transform:scale(.88)}50%{opacity:1;transform:scale(1.08)}}
@keyframes v023fAuraSpin{to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes v023fAuraSpinReverse{to{transform:translate(-50%,-50%) rotate(-360deg)}}
@keyframes v023fDragonFlight{0%{transform:translateX(-50%) translateY(4px) scale(.92)}35%{transform:translateX(-50%) translateY(-15px) scale(1.08)}100%{transform:translateX(-50%) translateY(0) scale(1)}}
@keyframes v023fDragonCast{0%,100%{transform:translateX(-50%) translateY(0) scale(1)}35%{transform:translateX(-50%) translateY(-10px) scale(1.12)}65%{transform:translateX(-50%) translateY(-4px) scale(1.22)}}
@keyframes v023fTargetShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
@keyframes v023fFxFade{0%{opacity:0}12%,72%{opacity:1}100%{opacity:0}}
@keyframes v023fCoreBurst{0%{transform:translate(-50%,-50%) scale(.1);opacity:0}36%{opacity:1}100%{transform:translate(-50%,-50%) scale(18);opacity:0}}
@keyframes v023fWingOpen{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}45%{opacity:1}100%{opacity:.85;transform:translate(-50%,-50%) scale(1)}}
@keyframes v023fTitleReveal{0%{opacity:0;transform:translateX(-50%) translateY(-14px)}25%,78%{opacity:1;transform:translateX(-50%) translateY(0)}100%{opacity:0;transform:translateX(-50%) translateY(5px)}}
@media(max-width:720px){.v023f-true-dragon-sprite{width:128%!important;height:112%!important}.v023f-dragon-aura.aura-a{width:62px;height:62px}.v023f-dragon-aura.aura-b{width:48px;height:48px}.v023f-fx-title{top:12%}.v023f-fx-title b{font-size:22px}}
@media(prefers-reduced-motion:reduce){.v023f-true-dragon-sprite,.v023f-dragon-aura,.v023f-true-dragon-unit .v018-unit-ground{animation:none!important}}

/* =========================================================
   Prototype ver0.23g — Compact Unit Detail Tabs
   ========================================================= */
.modal.character-modal.compact-character-modal{
  width:min(1260px,96vw);
  max-height:92vh;
  padding:14px 16px 16px;
  border-radius:22px;
  overflow:auto;
}
.v023g-character-ui{position:relative}
.v023g-topline{margin-bottom:8px;padding:0 4px 8px}
.v023g-topline .v022-titleblock h2{font-size:25px}
.v023g-topline .v022-titleblock p{margin-top:4px;font-size:12px}
.v023g-tab-shell{margin-bottom:10px}
.v023g-tab-shell .v022-tab-row{gap:6px}
.v023g-tab-shell .character-tab{
  min-width:104px;
  padding:10px 16px;
  font-size:14px;
}
.v023g-character-body{min-height:0}
.v023g-status-layout,.v023g-two-column{
  display:grid;
  grid-template-columns:minmax(0,1.28fr) minmax(330px,.72fr);
  gap:12px;
  align-items:stretch;
}
.v023g-main-stack{display:flex;flex-direction:column;gap:10px;min-width:0}
.v023g-identity-panel{
  grid-template-columns:126px minmax(0,1fr);
  gap:14px;
  min-height:0;
  padding:12px;
}
.v023g-identity-panel .v022-face-frame{padding:6px}
.v023g-identity-panel .v022-identity-copy h3{font-size:28px;line-height:1.12}
.v023g-identity-panel .v022-identity-subtitle{margin-top:5px;font-size:17px}
.v023g-identity-panel .v022-identity-role{margin-top:6px;font-size:13px}
.v023g-identity-panel .v022-level-row{margin-top:8px;font-size:12px}
.v023g-identity-panel .v022-hp-row{margin-top:7px}
.v023g-identity-panel .v022-hp-row b{font-size:18px}
.v023g-identity-panel .v022-hp-bar{height:10px;margin-top:5px}
.v023g-identity-panel .v022-star-row{margin-top:8px;font-size:18px}
.v023g-stats-panel{padding:10px 12px}
.v023g-stat-sections{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.v023g-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.v023g-stat-grid .v022-stat-row,.v023g-stat-grid .v022-battle-row{
  display:block;
  min-height:58px;
  padding:8px 9px;
  border-radius:10px;
}
.v023g-stat-grid .v022-stat-row span,.v023g-stat-grid .v022-battle-row span{
  display:block;
  font-size:11px;
  white-space:nowrap;
}
.v023g-stat-grid .v022-stat-row b,.v023g-stat-grid .v022-battle-row b{
  display:block;
  margin-top:4px;
  font-size:17px;
  text-align:right;
}
.v023g-equipment-panel{padding:10px 12px}
.v023g-equipment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.v023g-equip-card{
  display:grid;
  grid-template-columns:30px minmax(0,1fr);
  gap:9px;
  align-items:start;
  min-height:78px;
  padding:10px;
  border-radius:11px;
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.018));
  border:1px solid rgba(243,223,155,.12);
}
.v023g-equip-card>span{
  display:grid;
  place-items:center;
  width:30px;height:30px;
  border-radius:8px;
  background:linear-gradient(180deg,#5d88cc,#2b4b84);
  border:1px solid rgba(243,223,155,.22);
}
.v023g-equip-card b,.v023g-equip-card small,.v023g-equip-card strong{display:block}
.v023g-equip-card b{font-size:12px;color:#f1d898}
.v023g-equip-card small{margin-top:2px;font-size:10px;color:#9eafc5}
.v023g-equip-card strong{margin-top:7px;font-size:13px;color:#fff6db;line-height:1.35}
.v023g-inline-action{display:flex;justify-content:flex-end;margin-top:8px}
.v023g-inline-action button{padding:8px 14px;font-size:12px}
.v023g-art-panel{min-height:0;padding:10px}
.v023g-art-stage{min-height:532px;height:100%;border-radius:12px}
.v023g-art-stage .v022-art-image{max-height:96%;max-width:98%}
.v023g-tab-panel{padding:12px;max-height:532px;overflow:auto}
.v023g-tab-panel .v022-equip-list,.v023g-tab-panel .v022-skill-list{gap:7px}
.v023g-tab-panel .v022-equip-row,.v023g-tab-panel .v022-skill-row{padding:10px 12px}
.v023g-tab-panel .v022-skill-meta p{font-size:13px;line-height:1.55}
.v023g-support-only{max-width:1040px;margin:0 auto}
.v023g-support-panel{padding:12px}
.v023g-support-panel .v022-support-list.large{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.v023g-support-panel .v022-support-row{
  grid-template-columns:54px minmax(0,1fr) 40px;
  min-height:74px;
  padding:9px 11px;
}
.v023g-support-panel .v022-support-row img{width:54px;height:54px;border-radius:12px}
.v023g-support-panel .v022-support-meta b{font-size:14px}
.v023g-support-panel .v022-support-meta small{font-size:11px}
.v023g-support-panel .support-rank{width:36px;height:36px;font-size:14px}
.v023g-character-ui.tab-support .v022-titleblock p{content:"支援関係を確認します"}
@media(max-width:1100px){
  .v023g-status-layout,.v023g-two-column{grid-template-columns:1fr}
  .v023g-art-stage{min-height:410px}
  .v023g-art-panel{order:-1}
  .v023g-art-panel .v022-art-image{max-height:390px}
}
@media(max-width:820px){
  .modal.character-modal.compact-character-modal{width:100vw;max-height:100vh;height:100vh;border-radius:0;padding:10px}
  .v023g-stat-sections{grid-template-columns:1fr}
  .v023g-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v023g-equipment-grid{grid-template-columns:1fr}
  .v023g-support-panel .v022-support-list.large{grid-template-columns:1fr}
}
@media(max-width:560px){
  .v023g-identity-panel{grid-template-columns:96px minmax(0,1fr)}
  .v023g-identity-panel .v022-identity-copy h3{font-size:22px}
  .v023g-tab-shell .character-tab{min-width:0;flex:1 1 calc(50% - 6px);padding:9px 8px}
}

/* =========================================================
   Prototype ver0.23h — True Dragon Chibi Unit
   ========================================================= */
.v023f-true-dragon-sprite{
  width:152%!important;
  height:132%!important;
  object-fit:contain!important;
  object-position:center bottom;
  image-rendering:auto;
  filter:drop-shadow(0 8px 7px rgba(0,0,0,.72)) drop-shadow(0 0 10px rgba(255,45,80,.72));
}
.v023h-fx-chibi{
  position:absolute;
  left:50%;
  top:53%;
  width:min(280px,34%);
  max-height:70%;
  transform:translate(-50%,-50%) scale(.38);
  object-fit:contain;
  opacity:0;
  z-index:4;
  filter:drop-shadow(0 18px 20px rgba(0,0,0,.55)) drop-shadow(0 0 24px rgba(255,46,83,.88));
  animation:v023hChibiCutin .94s cubic-bezier(.2,.72,.2,1) both;
}
@keyframes v023hChibiCutin{
  0%{opacity:0;transform:translate(-50%,-44%) scale(.2)}
  22%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}
  68%{opacity:1;transform:translate(-50%,-52%) scale(1)}
  100%{opacity:0;transform:translate(-50%,-58%) scale(1.16)}
}
@media(max-width:720px){
  .v023f-true-dragon-sprite{width:138%!important;height:120%!important}
  .v023h-fx-chibi{width:min(220px,52%)}
}
@media(prefers-reduced-motion:reduce){.v023h-fx-chibi{animation:none;opacity:.92;transform:translate(-50%,-50%) scale(1)}}

/* =========================================================
   Prototype ver0.23j — Commercial Strategy Map UI
   Reference: dark navy + antique gold command interface
   ========================================================= */
:root{
  --v23j-gold:#d6ad55;
  --v23j-gold-light:#f0d58d;
  --v23j-gold-deep:#7b571d;
  --v23j-navy:#061321;
  --v23j-panel:#071625;
  --v23j-panel2:#0b2034;
  --v23j-line:rgba(216,174,84,.72);
  --v23j-text:#f9f2dc;
}
.commercial-strategy-ui{
  background:
    radial-gradient(circle at 18% -20%,rgba(75,119,172,.16),transparent 34%),
    radial-gradient(circle at 90% 0%,rgba(211,163,70,.08),transparent 23%),
    linear-gradient(180deg,#06111d,#030a12 72%,#02070d);
  gap:8px;
  padding:7px;
}
.commercial-strategy-ui .glass{
  border:1px solid rgba(218,177,90,.54);
  background:
    linear-gradient(180deg,rgba(255,255,255,.025),transparent 16%),
    linear-gradient(180deg,rgba(8,26,43,.98),rgba(3,12,22,.99));
  box-shadow:
    inset 0 0 0 1px rgba(255,225,160,.045),
    0 12px 30px rgba(0,0,0,.38);
}
.commercial-strategy-ui .glass::before{
  inset:4px;
  border-color:rgba(239,210,142,.11);
}
.commercial-strategy-ui .glass::after{
  left:12px;right:12px;
  background:linear-gradient(90deg,transparent,rgba(246,219,151,.48),transparent);
}
.commercial-hud{
  min-height:82px!important;
  height:82px!important;
  border-radius:4px 4px 15px 15px!important;
  grid-template-columns:minmax(340px,auto) minmax(0,1fr) auto!important;
  gap:12px!important;
  padding:8px 13px!important;
  border-width:1px!important;
  background:
    radial-gradient(circle at 8% 0%,rgba(61,107,158,.17),transparent 31%),
    linear-gradient(180deg,#0a2035 0%,#051421 70%,#03101b 100%)!important;
}
.commercial-hud::before{
  content:"";
  position:absolute;
  inset:4px;
  border-radius:2px 2px 11px 11px;
  border:1px solid rgba(227,191,113,.12);
  pointer-events:none;
}
.commercial-hud-brand{gap:8px!important;min-width:340px!important}
.commercial-hud-brand .hud-character{
  width:58px;height:58px;
  padding:3px;
  border-radius:50%;
  background:linear-gradient(135deg,#f2d589,#7f581d 45%,#f2d589 75%,#503713);
  border:0;
  box-shadow:0 0 0 2px rgba(4,13,23,.95),0 0 0 3px rgba(225,184,95,.45),0 8px 16px rgba(0,0,0,.42);
}
.commercial-hud-brand .hud-character img{width:100%;height:100%;border-radius:50%;object-fit:cover;background:#0b1727}
.commercial-hud-brand .hud-emblem{
  width:52px;height:52px;border-radius:6px!important;
  background:linear-gradient(180deg,#102a45,#061321)!important;
  border:1px solid rgba(229,190,103,.62)!important;
  box-shadow:inset 0 0 0 2px rgba(255,226,151,.06),0 7px 15px rgba(0,0,0,.32);
}
.commercial-kingdom-copy{min-width:0}
.commercial-kingdom-copy h2{
  margin:0 0 3px!important;
  color:#f3d48d!important;
  font-family:Georgia,"Yu Mincho",serif;
  font-size:21px!important;
  letter-spacing:.05em!important;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.commercial-kingdom-copy small{display:block;color:#dbd1b5!important;font-size:9px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.commercial-kingdom-copy p{margin:4px 0 0;color:#ae9b71;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.commercial-hud-stats{gap:5px!important;flex-wrap:nowrap!important;min-width:0}
.commercial-stat{
  position:relative;
  min-width:72px!important;
  height:57px;
  padding:7px 9px 6px!important;
  border-radius:2px!important;
  border:1px solid rgba(220,179,91,.44)!important;
  background:linear-gradient(180deg,#0c2943,#061522)!important;
  clip-path:polygon(8px 0,calc(100% - 8px) 0,100% 8px,100% calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,0 calc(100% - 8px),0 8px);
  box-shadow:inset 0 0 0 2px rgba(255,228,159,.035)!important;
}
.commercial-stat::after{content:"";position:absolute;left:10px;right:10px;bottom:4px;height:1px;background:linear-gradient(90deg,transparent,rgba(222,181,93,.5),transparent)}
.commercial-stat span{font-size:7px!important;color:#d0af6c!important;font-weight:800;letter-spacing:.08em!important;white-space:nowrap}
.commercial-stat b{font-size:13px!important;color:#fff0c5!important;white-space:nowrap}
.commercial-stat.calendar-stat{min-width:94px!important}
.commercial-stat.action-stat{border-color:rgba(238,202,120,.7)!important;background:linear-gradient(180deg,#123652,#071a29)!important}
.commercial-stat.food-stat b{color:#f0d685!important}
.commercial-hud-actions{gap:6px!important}
.commercial-hud-actions .icon-btn{
  width:46px!important;height:46px!important;
  border-radius:4px!important;
  border:1px solid rgba(228,188,100,.58)!important;
  background:linear-gradient(180deg,#15334f,#071724)!important;
  color:#f3d890!important;
  box-shadow:inset 0 0 0 2px rgba(255,229,161,.05),0 8px 15px rgba(0,0,0,.35)!important;
}
.commercial-hud-actions .icon-btn span{display:block;font-size:20px;filter:drop-shadow(0 2px 2px #000)}
.commercial-hud-actions .icon-btn:hover{transform:translateY(-1px);border-color:#f1d386!important;filter:brightness(1.08)}
.commercial-game-grid{
  grid-template-columns:minmax(0,1fr) minmax(292px,320px)!important;
  gap:8px!important;
}
.commercial-map-panel{
  border-radius:14px!important;
  padding:7px!important;
  overflow:hidden;
  background:linear-gradient(180deg,#071b2d,#030b13)!important;
}
.commercial-map-panel::before{inset:3px!important;border-radius:11px!important;border-color:rgba(227,191,113,.13)!important}
.commercial-map-head{height:43px;margin:0!important;padding:3px 7px 6px;border-bottom:1px solid rgba(222,181,93,.19);position:relative;z-index:3}
.commercial-map-title{display:flex;align-items:center;gap:8px;min-width:0}
.commercial-map-crest{display:grid;place-items:center;width:30px;height:30px;color:#e2ba66;font-size:18px}
.commercial-map-title>div{min-width:0}
.commercial-map-title h3{margin:0!important;font-family:Georgia,"Yu Mincho",serif;font-size:18px!important;color:#f1d48e!important;letter-spacing:.04em;white-space:nowrap}
.commercial-map-title small{display:block;color:#7f98ae;font-size:7px;letter-spacing:.08em}
.commercial-map-title em{margin-left:8px;padding:4px 9px;border-radius:999px;border:1px solid rgba(216,174,84,.34);background:rgba(182,132,42,.09);color:#d3b66f;font-size:8px;font-style:normal;white-space:nowrap}
.commercial-map-tools{gap:5px!important}
.commercial-map-tools button{
  min-width:36px!important;height:30px!important;padding:0 9px!important;
  border-radius:4px!important;
  border:1px solid rgba(218,177,90,.48)!important;
  background:linear-gradient(180deg,#12324d,#071624)!important;
  color:#efd48f!important;
  box-shadow:inset 0 0 0 1px rgba(255,233,170,.04)!important;
}
.commercial-map-panel .map-viewport{
  height:calc(100% - 43px)!important;
  border-radius:9px!important;
  border:1px solid rgba(218,177,90,.34)!important;
  box-shadow:inset 0 0 22px rgba(0,0,0,.42)!important;
}
.commercial-map-panel .map-stage{filter:saturate(1.13) brightness(1.11) contrast(1.05)!important}
.commercial-map-panel .map-stage::after{background:radial-gradient(circle at 50% 45%,transparent 45%,rgba(0,0,0,.15) 100%),linear-gradient(180deg,rgba(255,225,152,.025),rgba(2,6,11,.13))!important}
.commercial-strategy-ui .territory-node{width:62px}
.commercial-strategy-ui .territory-node img{width:39px;height:39px;filter:drop-shadow(0 5px 4px rgba(0,0,0,.74))}
.commercial-strategy-ui .territory-node .node-label{
  margin-top:-4px;padding:3px 6px;border-radius:5px;
  background:linear-gradient(180deg,rgba(7,22,35,.96),rgba(3,10,17,.98));
  border:1px solid rgba(221,180,91,.35);
  color:#eee6d1;font-size:6px;
  box-shadow:0 4px 9px rgba(0,0,0,.43);
}
.commercial-strategy-ui .territory-node.selected .node-label{border-color:#f0d080;color:#ffe6a0;box-shadow:0 0 10px rgba(229,189,91,.32)}
.commercial-strategy-ui .brig-node-armies{bottom:-15px;border-color:rgba(224,187,99,.7);background:#030b12;color:#f3d77c;border-radius:4px;font-size:6px}
.commercial-side-panel{gap:7px!important}
.commercial-side-panel .side-card,.commercial-side-panel .territory-info{
  border-radius:12px!important;
  padding:11px!important;
  background:linear-gradient(180deg,#091e31,#04111d)!important;
  border:1px solid rgba(218,177,90,.48)!important;
  box-shadow:inset 0 0 0 2px rgba(255,227,157,.035),0 8px 18px rgba(0,0,0,.28)!important;
}
.commercial-side-panel .territory-info{max-height:310px!important}
.commercial-side-panel .territory-title{padding-left:39px;padding-right:28px;position:relative}
.commercial-side-panel .territory-title::before{content:"⚜";position:absolute;left:0;top:0;display:grid;place-items:center;width:31px;height:36px;border:1px solid rgba(222,181,93,.46);background:linear-gradient(180deg,#12304a,#071622);color:#e0b964;font-size:17px;clip-path:polygon(50% 0,100% 15%,100% 78%,50% 100%,0 78%,0 15%)}
.commercial-side-panel .territory-title b{font-family:Georgia,"Yu Mincho",serif;font-size:17px!important;color:#f2d58d!important}
.commercial-side-panel .territory-title small{font-size:8px!important;color:#b19ac4!important}
.commercial-side-panel .fortress-durability{margin-top:9px;padding:7px;border:1px solid rgba(216,174,84,.22);border-radius:6px;background:rgba(1,8,14,.32)}
.commercial-side-panel .fortress-durability>div:first-child{display:flex;justify-content:space-between;font-size:8px;color:#bba77a}
.commercial-side-panel .durability-bar{height:7px;margin:4px 0;background:#02070c;border-radius:0;border:1px solid rgba(255,255,255,.05)}
.commercial-side-panel .durability-bar i{background:linear-gradient(90deg,#c34348,#e7b95c,#79c37c)}
.commercial-side-panel .fortress-durability small{font-size:7px;color:#71859a}
.commercial-side-panel .info-grid{gap:5px;margin-top:8px}
.commercial-side-panel .info-item{padding:7px 8px;border-radius:5px;background:linear-gradient(180deg,rgba(19,48,75,.72),rgba(5,18,31,.78));border:1px solid rgba(216,174,84,.17)}
.commercial-side-panel .info-item span{font-size:7px;color:#9b875e}
.commercial-side-panel .info-item b{font-size:12px;color:#f4ead1}
.commercial-side-panel .brig-station-title{margin:8px 0 5px;font-size:9px;color:#d8b767}
.commercial-side-panel .brig-station-strip{grid-template-columns:repeat(6,minmax(0,1fr));gap:3px}
.commercial-side-panel .brig-station-strip button{padding:2px;border-radius:5px;background:#06131f;border-color:rgba(216,174,84,.22)}
.commercial-side-panel .action-row{gap:4px;margin-top:7px}
.commercial-side-panel .action-row button{padding:7px 5px;border-radius:5px;font-size:8px;background:linear-gradient(180deg,#12304a,#061420);border-color:rgba(216,174,84,.23)}
.commercial-card-heading{display:flex;align-items:center;gap:8px;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid rgba(216,174,84,.22)}
.commercial-card-heading h3{margin:0!important;font-family:Georgia,"Yu Mincho",serif;font-size:15px!important;color:#f1d38a!important}
.commercial-card-icon{display:grid;place-items:center;width:26px;height:26px;color:#e5bd66;font-size:16px}
.commercial-card-icon.crossed{font-size:17px}
.commercial-side-card .route-status-line{padding:7px 2px;border-bottom:1px solid rgba(255,255,255,.055)}
.commercial-side-card .route-status-line span{color:#8ea0b1;font-size:8px}
.commercial-side-card .route-status-line b{font-size:9px;color:#e9dfc7}
.commercial-log-card{flex:1!important;min-height:120px!important}
.commercial-log-card .log-list{gap:5px}
.commercial-log-item{display:grid!important;grid-template-columns:19px minmax(0,1fr);gap:6px;align-items:start;padding:7px!important;border:1px solid rgba(216,174,84,.14)!important;border-left:0!important;border-radius:5px!important;background:rgba(3,12,20,.55)!important}
.commercial-log-item p{margin:0;color:#c5cfda;font-size:8px;line-height:1.45}
.commercial-log-icon{display:grid;place-items:center;width:18px;height:18px;color:#d9b461;font-size:9px}
.commercial-log-icon.tone-1{color:#bc9fd8}.commercial-log-icon.tone-2{color:#e0c36e}.commercial-log-icon.tone-3{color:#c45d67}
.commercial-command-dock{
  min-height:96px!important;
  grid-template-columns:minmax(208px,230px) minmax(0,1fr)!important;
  gap:7px!important;
  padding:6px!important;
  border-radius:13px 13px 4px 4px!important;
  background:linear-gradient(180deg,#091d30,#03101b)!important;
  border:1px solid rgba(218,177,90,.58)!important;
  box-shadow:0 -8px 24px rgba(0,0,0,.44),inset 0 0 0 2px rgba(255,226,154,.035)!important;
}
.commercial-dock-summary{
  display:grid!important;
  grid-template-columns:48px minmax(0,1fr);
  align-items:center;
  gap:8px;
  padding:7px 10px!important;
  border-right:1px solid rgba(216,174,84,.28)!important;
}
.dock-summary-crest{display:grid!important;place-items:center;width:46px;height:60px;border:1px solid rgba(218,177,90,.5);background:linear-gradient(180deg,#12314b,#061521);color:#e0ba65;font-size:27px!important;clip-path:polygon(50% 0,100% 13%,100% 78%,50% 100%,0 78%,0 13%)}
.commercial-dock-summary>div{min-width:0}
.commercial-dock-summary small{display:block!important;color:#7d8ea0!important;font-size:7px!important;letter-spacing:.1em}
.commercial-dock-summary b{display:block!important;margin:2px 0!important;color:#f1d48b!important;font-size:12px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.commercial-dock-summary em{display:block;color:#d3b36b;font-size:8px;font-style:normal}
.commercial-dock-summary>div>span{display:block;margin-top:4px;color:#8da0b2;font-size:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.commercial-dock-actions{grid-template-columns:repeat(10,minmax(68px,1fr))!important;gap:5px!important}
.commercial-dock-actions .dock-command{
  position:relative;
  min-height:82px!important;
  padding:7px 4px 5px!important;
  border-radius:7px!important;
  border:1px solid rgba(218,177,90,.35)!important;
  background:linear-gradient(180deg,#102b44,#061521)!important;
  box-shadow:inset 0 0 0 2px rgba(255,227,157,.035),0 7px 14px rgba(0,0,0,.28)!important;
  overflow:hidden;
}
.commercial-dock-actions .dock-command::before{content:"";position:absolute;left:8px;right:8px;top:3px;height:1px;background:linear-gradient(90deg,transparent,rgba(244,217,145,.45),transparent)}
.commercial-dock-actions .dock-command span{font-size:27px!important;line-height:1.05;color:#e5bd68;filter:drop-shadow(0 3px 3px #000)}
.commercial-dock-actions .dock-command b{margin-top:4px!important;color:#f3dfad!important;font-family:Georgia,"Yu Mincho",serif;font-size:11px!important}
.commercial-dock-actions .dock-command small{margin-top:2px!important;color:#8395a7!important;font-size:6px!important}
.commercial-dock-actions .dock-command:hover{transform:translateY(-2px);border-color:#edcf83!important;filter:brightness(1.08)}
.commercial-dock-actions .dock-command.organize{background:linear-gradient(180deg,#413117,#171006)!important}
.commercial-dock-actions .dock-command.move{background:linear-gradient(180deg,#16314a,#071521)!important}
.commercial-dock-actions .dock-command.battle{background:linear-gradient(180deg,#52171d,#21090d)!important;border-color:rgba(213,80,84,.66)!important}
.commercial-dock-actions .dock-command.domestic{background:linear-gradient(180deg,#184333,#071b13)!important;border-color:rgba(82,165,119,.55)!important}
.commercial-dock-actions .dock-command.personnel{background:linear-gradient(180deg,#12406a,#081d30)!important}
.commercial-dock-actions .dock-command.scheme{background:linear-gradient(180deg,#392151,#160c23)!important}
.commercial-dock-actions .dock-command.shop{background:linear-gradient(180deg,#594313,#241a06)!important}
.commercial-dock-actions .dock-command.diplomacy{background:linear-gradient(180deg,#45371e,#1d160a)!important}
.commercial-dock-actions .dock-command.officer{background:linear-gradient(180deg,#26313c,#0d151d)!important}
.commercial-dock-actions .dock-command.season-end{
  background:linear-gradient(180deg,#9c2f42,#541221)!important;
  border-color:#efc66f!important;
  box-shadow:inset 0 0 0 2px rgba(255,230,164,.08),0 0 16px rgba(145,37,54,.22)!important;
}
.commercial-dock-actions .dock-command.season-end span{color:#ffe19a}
.commercial-dock-actions .dock-command:disabled{opacity:.38!important;filter:grayscale(.35)}
@media(max-width:1480px){
  .commercial-hud{grid-template-columns:minmax(290px,auto) minmax(0,1fr) auto!important}
  .commercial-hud-brand{min-width:290px!important}
  .commercial-stat{min-width:63px!important;padding-left:6px!important;padding-right:6px!important}
  .commercial-stat.calendar-stat{min-width:84px!important}
  .commercial-dock-actions{grid-template-columns:repeat(10,minmax(58px,1fr))!important}
  .commercial-dock-actions .dock-command b{font-size:10px!important}
}
@media(max-width:1250px){
  .commercial-hud-brand{min-width:235px!important}
  .commercial-hud-brand .hud-emblem{display:none}
  .commercial-stat:nth-child(6),.commercial-stat:nth-child(7){display:none}
  .commercial-command-dock{grid-template-columns:1fr!important;min-height:88px!important}
  .commercial-dock-summary{display:none!important}
  .commercial-dock-actions{grid-template-columns:repeat(5,minmax(74px,1fr))!important}
  .commercial-dock-actions .dock-command{min-height:62px!important}
  .commercial-dock-actions .dock-command span{font-size:21px!important}
}
@media(max-width:900px){
  .commercial-hud{height:auto!important;min-height:72px!important;grid-template-columns:1fr auto!important}
  .commercial-hud-stats{grid-column:1/-1;overflow-x:auto;padding-bottom:2px}
  .commercial-game-grid{grid-template-columns:1fr!important}
  .commercial-map-panel{height:58vh!important}
  .commercial-side-panel{display:grid!important;grid-template-columns:1fr 1fr!important}
  .commercial-side-panel .commercial-log-card{grid-column:1/-1}
  .commercial-command-dock{position:sticky!important;bottom:0;border-radius:10px 10px 0 0!important}
}
@media(max-width:620px){
  .commercial-hud-brand .hud-character{width:48px;height:48px}
  .commercial-kingdom-copy h2{font-size:16px!important}
  .commercial-hud-actions .icon-btn:nth-child(2),.commercial-hud-actions .icon-btn:nth-child(3){display:none}
  .commercial-map-title h3{font-size:14px!important}
  .commercial-map-title small,.commercial-map-title em{display:none}
  .commercial-map-tools button:nth-child(1){display:none}
  .commercial-side-panel{grid-template-columns:1fr!important}
  .commercial-side-panel .commercial-log-card{grid-column:auto}
  .commercial-dock-actions{grid-template-columns:repeat(3,minmax(72px,1fr))!important}
  .commercial-dock-actions .dock-command small{display:none!important}
}

/* =========================================================
   Prototype ver0.23k — Admin password gate
   ========================================================= */
.v023k-admin-login{max-width:560px;margin:0 auto;text-align:center;padding:8px 8px 4px}
.v023k-admin-lock-mark{width:74px;height:74px;display:grid;place-items:center;margin:2px auto 14px;border-radius:50%;font-size:34px;color:#f1d188;background:radial-gradient(circle at 50% 35%,rgba(86,131,210,.46),rgba(13,27,55,.98) 65%);border:1px solid rgba(241,209,136,.45);box-shadow:0 14px 28px rgba(0,0,0,.32),inset 0 0 0 5px rgba(255,255,255,.025)}
.v023k-admin-password-label{display:block;margin:18px 0 10px;text-align:left;color:#ead9a8;font-size:13px;font-weight:800;letter-spacing:.05em}
.v023k-admin-password-label input{width:100%;margin-top:8px;padding:14px 15px;border-radius:10px;border:1px solid rgba(241,209,136,.28);background:linear-gradient(180deg,rgba(8,18,38,.96),rgba(4,10,24,.99));color:#fff;font:inherit;outline:none;box-sizing:border-box}
.v023k-admin-password-label input:focus{border-color:rgba(108,166,255,.76);box-shadow:0 0 0 3px rgba(72,127,220,.18)}
.v023k-admin-login-status{min-height:24px;margin:8px 0 12px;color:#bfcce0;font-size:12px}
.v023k-admin-login-status.error{color:#ff9aa9}.v023k-admin-login-status.success{color:#79dfaa}.v023k-admin-login-status.checking{color:#8ec9ff}
.v023k-admin-login-button{width:100%;padding:13px}
.v023k-admin-logout{margin-right:auto}
.admin-edit-entry{white-space:nowrap}


/* =========================================================
   Prototype ver0.23l — World Archive & Elisia Divine Forms
   ========================================================= */
.v023l-world-archive-modal{width:min(1440px,98vw)!important;max-height:96vh!important;padding:16px 18px 20px!important;background:radial-gradient(circle at 70% 12%,rgba(160,85,202,.14),transparent 32%),radial-gradient(circle at 12% 10%,rgba(229,193,101,.12),transparent 28%),linear-gradient(180deg,rgba(7,13,25,.995),rgba(3,7,16,.998))!important}
.v023l-archive-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:2px 42px 13px 4px;border-bottom:1px solid rgba(224,191,104,.32)}
.v023l-archive-head h2{margin:2px 0 0!important}.v023l-archive-nav{display:flex;gap:7px;flex-wrap:wrap}.v023l-archive-nav button{padding:9px 15px;border:1px solid rgba(203,174,98,.35);border-radius:8px;background:linear-gradient(180deg,#14284a,#0b1930);color:#dfe8f7;font-weight:700}.v023l-archive-nav button.active{color:#fff2c3;border-color:#dfb95b;background:linear-gradient(180deg,#7b5420,#35230d);box-shadow:inset 0 0 0 1px rgba(255,232,161,.24)}
.v023l-divine-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:14px;margin-top:14px;--form-accent:#dfbd69;--form-soft:rgba(223,189,105,.14)}
.v023l-divine-layout.tone-salvation{--form-accent:#8dd8ff;--form-soft:rgba(104,190,236,.16)}.v023l-divine-layout.tone-ragnarok{--form-accent:#e15f4e;--form-soft:rgba(209,66,48,.17)}.v023l-divine-layout.tone-end-creation{--form-accent:#d16df0;--form-soft:rgba(170,69,211,.2)}
.v023l-divine-tabs{display:flex;flex-direction:column;gap:9px}.v023l-form-tab{display:grid;grid-template-columns:66px 1fr;align-items:center;gap:10px;min-height:76px;padding:7px;text-align:left;border:1px solid rgba(201,173,100,.25);border-radius:12px;background:linear-gradient(140deg,rgba(17,34,62,.96),rgba(7,15,29,.98));color:#e8edf5}.v023l-form-tab img{width:66px;height:66px;object-fit:cover;object-position:center 22%;border-radius:9px;border:1px solid rgba(255,255,255,.18)}.v023l-form-tab small{display:block;color:#9cabc1;font-size:11px}.v023l-form-tab b{display:block;margin-top:3px;color:#f5e8ba;line-height:1.3}.v023l-form-tab.active{border-color:var(--form-accent);box-shadow:0 0 22px var(--form-soft),inset 0 0 0 1px rgba(255,255,255,.08)}.v023l-form-tab.locked{filter:saturate(.2);opacity:.58}.v023l-truth-button{padding:12px;border:1px solid rgba(224,91,96,.45);border-radius:10px;background:rgba(87,24,32,.45);color:#ffbec1;font-weight:800}
.v023l-divine-stage{display:grid;grid-template-columns:minmax(330px,46%) minmax(0,1fr);min-height:680px;border:1px solid rgba(209,179,99,.35);border-radius:16px;overflow:hidden;background:linear-gradient(140deg,rgba(16,29,51,.96),rgba(6,12,23,.99));box-shadow:inset 0 0 45px rgba(0,0,0,.35)}
.v023l-art-frame{position:relative;display:grid;place-items:center;min-height:680px;padding:12px;background:radial-gradient(circle at 50% 35%,var(--form-soft),transparent 50%),linear-gradient(180deg,#f7f3ee,#e8e0d7)}.v023l-art-frame:after{content:'';position:absolute;inset:9px;border:1px solid color-mix(in srgb,var(--form-accent) 54%,transparent);pointer-events:none}.v023l-art-frame img{width:100%;height:655px;object-fit:contain;object-position:center;filter:drop-shadow(0 15px 18px rgba(0,0,0,.26))}
.v023l-divine-copy{padding:26px 25px 22px;overflow:auto}.v023l-divine-copy h2{font-size:30px!important;color:#fff1c2!important;margin:5px 0 7px!important}.v023l-role{margin:0 0 15px;color:#ced8e8;font-size:16px;line-height:1.55}.v023l-unit-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.v023l-unit-meta span{padding:10px 12px;border:1px solid rgba(255,255,255,.1);border-radius:9px;background:rgba(255,255,255,.035);color:#9eabc0}.v023l-unit-meta b{display:block;color:#f1e3b7;margin-top:3px}.v023l-divine-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-bottom:15px}.v023l-divine-stats div{padding:9px 7px;text-align:center;border:1px solid color-mix(in srgb,var(--form-accent) 33%,transparent);border-radius:9px;background:var(--form-soft)}.v023l-divine-stats span{display:block;color:#9da9bc;font-size:11px}.v023l-divine-stats b{display:block;margin-top:4px;color:#fff;font-size:15px}.v023l-lore-block{margin-top:10px;padding:13px 14px;border-left:3px solid var(--form-accent);background:rgba(255,255,255,.035)}.v023l-lore-block h3{margin:0 0 5px;color:#f0dca2;font-size:15px}.v023l-lore-block p{margin:0;color:#c7d2e3;line-height:1.7}.v023l-lore-block.secret{border-left-color:#cf5e78;background:rgba(115,31,56,.14)}.v023l-skill-strip{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;margin-top:14px;padding:13px 15px;border:1px solid color-mix(in srgb,var(--form-accent) 48%,transparent);border-radius:10px;background:linear-gradient(90deg,var(--form-soft),rgba(0,0,0,.08))}.v023l-skill-strip span{color:#9da9bc}.v023l-skill-strip b{color:#fff0bd}.v023l-skill-strip small{grid-column:1/-1;color:#c4cede}
.v023l-history-grid{position:relative;margin:18px 5px 8px;padding-left:22px}.v023l-history-grid:before{content:'';position:absolute;left:35px;top:14px;bottom:14px;width:2px;background:linear-gradient(#d8b965,#9a4e82)}.v023l-history-grid article{position:relative;display:grid;grid-template-columns:112px 30px 1fr;gap:12px;align-items:start;padding:10px 0}.v023l-history-grid article>span{color:#d9ba6b;font-weight:800;text-align:right}.v023l-history-grid i{position:relative;z-index:1;display:grid;place-items:center;width:28px;height:28px;border:1px solid #d7b65d;border-radius:50%;background:#10213d;color:#fff1bd;font-style:normal}.v023l-history-grid h3{margin:0;color:#fff0c3}.v023l-history-grid p{margin:5px 0 0;color:#c5d0df;line-height:1.65}.v023l-canon-callout{margin:12px 8px;padding:16px 18px;border:1px solid rgba(204,83,119,.5);border-radius:12px;background:linear-gradient(90deg,rgba(118,25,52,.25),rgba(71,31,99,.2))}.v023l-canon-callout b{color:#ffc5d3}.v023l-canon-callout p{margin:5px 0 0;color:#e0d5e2;line-height:1.65}
.v023l-politics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.v023l-politics-grid article{padding:16px;border:1px solid rgba(201,174,98,.3);border-radius:12px;background:linear-gradient(145deg,rgba(20,38,67,.9),rgba(7,15,29,.95))}.v023l-politics-grid small{color:#d7b85f}.v023l-politics-grid h3{margin:4px 0 7px;color:#fff0c1}.v023l-politics-grid p{margin:0;color:#c8d2df;line-height:1.65}.v023l-houses{margin-top:12px;padding:15px;border:1px solid rgba(201,174,98,.28);border-radius:12px;background:rgba(255,255,255,.025)}.v023l-houses h3{margin:0 0 10px;color:#f3d98b}.v023l-houses div{display:flex;gap:9px;flex-wrap:wrap}.v023l-houses span{padding:9px 12px;border-radius:8px;background:#132544;color:#e8edf5;border:1px solid rgba(255,255,255,.1)}
.v023l-archive-icon{border-color:rgba(211,116,238,.62)!important;box-shadow:inset 0 0 14px rgba(163,62,201,.22)}
@media(max-width:980px){.v023l-divine-layout{grid-template-columns:1fr}.v023l-divine-tabs{display:grid;grid-template-columns:repeat(3,1fr)}.v023l-truth-button{grid-column:1/-1}.v023l-divine-stage{grid-template-columns:1fr;min-height:0}.v023l-art-frame{min-height:500px}.v023l-art-frame img{height:490px}.v023l-divine-copy{overflow:visible}.v023l-archive-head{align-items:flex-start;flex-direction:column}.v023l-divine-stats{grid-template-columns:repeat(5,1fr)}}
@media(max-width:620px){.v023l-world-archive-modal{width:100vw!important;height:100vh!important;max-height:100vh!important;border-radius:0!important;padding:10px!important}.v023l-archive-head{padding-right:38px}.v023l-archive-nav{display:grid;grid-template-columns:repeat(3,1fr);width:100%}.v023l-archive-nav button{padding:8px 5px}.v023l-divine-tabs{grid-template-columns:1fr}.v023l-form-tab{min-height:66px;grid-template-columns:56px 1fr}.v023l-form-tab img{width:56px;height:56px}.v023l-art-frame{min-height:410px;padding:6px}.v023l-art-frame img{height:400px}.v023l-divine-copy{padding:18px 13px}.v023l-divine-copy h2{font-size:24px!important}.v023l-unit-meta{grid-template-columns:1fr}.v023l-divine-stats{grid-template-columns:repeat(3,1fr)}.v023l-history-grid{padding-left:0}.v023l-history-grid:before{left:13px}.v023l-history-grid article{grid-template-columns:30px 1fr;gap:9px}.v023l-history-grid article>span{grid-column:2;text-align:left}.v023l-history-grid i{grid-column:1;grid-row:1/3}.v023l-politics-grid{grid-template-columns:1fr}}


/* =========================================================
   Prototype ver0.23m — Lilia Ragnarok Final Form
   ========================================================= */
.v023m-ragnarok-unit{overflow:visible!important;isolation:isolate}
.v023m-ragnarok-unit .v018-unit-ground{
  left:-16%;right:-16%;bottom:8px;height:24px;
  background:radial-gradient(circle,rgba(255,239,255,.95),rgba(226,72,255,.55) 28%,rgba(156,32,196,.18) 62%,transparent 76%);
  box-shadow:0 0 18px rgba(244,112,255,.9),0 0 36px rgba(255,55,130,.48);
  animation:v023mGroundPulse 1.3s ease-in-out infinite;
}
.v023m-ragnarok-sprite{
  position:absolute;left:50%;bottom:7px;transform:translateX(-50%);
  width:164%!important;height:142%!important;max-width:none!important;max-height:none!important;
  object-fit:contain!important;object-position:center bottom;z-index:4;pointer-events:none;
  filter:drop-shadow(0 10px 9px rgba(0,0,0,.76)) drop-shadow(0 0 11px rgba(255,100,220,.9)) drop-shadow(0 0 24px rgba(242,44,95,.65));
  animation:v023mRagnarokHover 1.65s ease-in-out infinite;
}
.v023m-ragnarok-halo{
  position:absolute;left:50%;top:46%;border-radius:50%;pointer-events:none;z-index:1;
  transform:translate(-50%,-50%);border:2px solid rgba(255,185,255,.74);
  box-shadow:0 0 10px rgba(255,124,238,.85),inset 0 0 12px rgba(255,213,255,.45);
}
.v023m-ragnarok-halo.halo-a{width:78px;height:78px;animation:v023mHaloSpin 4.4s linear infinite}
.v023m-ragnarok-halo.halo-b{width:58px;height:58px;border-style:dashed;animation:v023mHaloSpin 3.1s linear infinite reverse}
.v023m-ragnarok-rune{
  position:absolute;left:50%;top:-15px;transform:translateX(-50%);z-index:8;
  padding:2px 7px;border:1px solid rgba(255,210,132,.8);border-radius:999px;
  color:#fff0ba;background:linear-gradient(180deg,rgba(107,18,92,.96),rgba(31,7,38,.96));
  font-size:8px;font-weight:900;white-space:nowrap;letter-spacing:.08em;
  box-shadow:0 0 12px rgba(255,74,204,.65);
}
.v023m-ragnarok-unit .tactical-unit-name{
  border-color:rgba(242,170,255,.62)!important;color:#fff1ff!important;
  background:linear-gradient(180deg,rgba(85,13,91,.96),rgba(19,5,31,.95))!important;
}
.v023m-ragnarok-unit .tactical-hp i{background:linear-gradient(90deg,#7724b9,#ed4fc7,#ffe39d)!important}
.v023m-ragnarok-unit.selected .v023m-ragnarok-sprite{
  filter:drop-shadow(0 12px 10px rgba(0,0,0,.78)) drop-shadow(0 0 17px #ffe5a3) drop-shadow(0 0 30px rgba(242,78,255,.9));
}
.v023m-ragnarok-unit.moving .v023m-ragnarok-sprite{animation:v023mRagnarokFlight .56s cubic-bezier(.2,.72,.2,1) both}
.v023m-ragnarok-casting{z-index:35!important}
.v023m-ragnarok-casting .v023m-ragnarok-sprite{animation:v023mRagnarokCast 1.08s ease-in-out both}
.v023m-ragnarok-target{animation:v023fTargetShake .42s ease-in-out .42s 2}
.v023m-selected-ragnarok{border-color:rgba(234,125,255,.55)!important;background:linear-gradient(180deg,rgba(67,13,82,.92),rgba(12,8,28,.96))!important}
.v023m-selected-ragnarok em{color:#ffe39c;font-style:normal}
.v023m-ragnarok-skill-fx{
  position:absolute;inset:0;z-index:1002;pointer-events:none;overflow:hidden;border-radius:inherit;
  background:radial-gradient(circle at 50% 50%,rgba(255,225,255,.22),rgba(181,44,225,.16) 30%,transparent 58%);
  animation:v023mFxFade 1.12s ease both;
}
.v023m-fx-halo{
  position:absolute;left:50%;top:50%;width:min(680px,78vmin);aspect-ratio:1;transform:translate(-50%,-50%);
  border-radius:50%;border:5px double rgba(255,218,255,.92);
  box-shadow:0 0 38px rgba(235,76,255,.9),inset 0 0 58px rgba(255,65,170,.42);
  animation:v023mHaloSpin 2.2s linear infinite;
}
.v023m-fx-crowns{
  position:absolute;left:50%;top:9%;transform:translateX(-50%);z-index:5;
  color:#ffe3a2;font-size:24px;letter-spacing:.34em;text-shadow:0 0 12px #f450ff,0 3px 8px #000;
}
.v023m-fx-lilia{
  position:absolute;left:50%;top:53%;width:min(340px,39%);max-height:78%;
  transform:translate(-50%,-50%) scale(.35);object-fit:contain;opacity:0;z-index:6;
  filter:drop-shadow(0 20px 20px rgba(0,0,0,.65)) drop-shadow(0 0 34px rgba(249,76,255,.95));
  animation:v023mCutin 1.08s cubic-bezier(.2,.72,.2,1) both;
}
.v023m-fx-title{
  position:absolute;left:50%;bottom:10%;transform:translateX(-50%);z-index:8;text-align:center;
  padding:8px 22px;border-top:1px solid rgba(255,222,154,.8);border-bottom:1px solid rgba(255,222,154,.8);
  background:linear-gradient(90deg,transparent,rgba(55,8,73,.84),transparent);white-space:nowrap;
}
.v023m-fx-title small{display:block;color:#e8b8ff;letter-spacing:.24em;font-size:9px}
.v023m-fx-title b{display:block;color:#fff3c6;font-family:Georgia,"Yu Mincho",serif;font-size:25px;text-shadow:0 0 14px #e845ff}
.v023m-ragnarok-skill-fx.impact{background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.68),rgba(234,88,255,.36) 18%,rgba(146,21,155,.18) 40%,transparent 62%)}
.tone-lilia-ragnarok .v023l-art-frame{background:radial-gradient(circle at 50% 22%,rgba(255,126,245,.22),transparent 45%),linear-gradient(180deg,rgba(64,13,76,.75),rgba(5,8,18,.95))}
.tone-lilia-ragnarok .v023l-divine-copy h2{color:#ffd8ff!important}
.tone-lilia-ragnarok .v023l-skill-strip{border-color:rgba(241,128,255,.45);background:linear-gradient(135deg,rgba(113,20,132,.35),rgba(25,9,39,.72))}
@keyframes v023mGroundPulse{0%,100%{transform:scale(.9);opacity:.72}50%{transform:scale(1.12);opacity:1}}
@keyframes v023mHaloSpin{to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes v023mRagnarokHover{0%,100%{transform:translateX(-50%) translateY(1px)}50%{transform:translateX(-50%) translateY(-5px)}}
@keyframes v023mRagnarokFlight{0%{transform:translateX(-50%) scale(.88);opacity:.72}48%{transform:translateX(-50%) translateY(-12px) scale(1.12)}100%{transform:translateX(-50%) scale(1);opacity:1}}
@keyframes v023mRagnarokCast{0%{transform:translateX(-50%) scale(1)}38%{transform:translateX(-50%) translateY(-11px) scale(1.13)}100%{transform:translateX(-50%) scale(1.03)}}
@keyframes v023mCutin{0%{opacity:0;transform:translate(-50%,-43%) scale(.25)}24%{opacity:1;transform:translate(-50%,-50%) scale(1.07)}72%{opacity:1;transform:translate(-50%,-52%) scale(1)}100%{opacity:0;transform:translate(-50%,-59%) scale(1.16)}}
@keyframes v023mFxFade{0%{opacity:0}15%,75%{opacity:1}100%{opacity:0}}
@media(max-width:720px){
  .v023m-ragnarok-sprite{width:150%!important;height:132%!important}
  .v023m-fx-lilia{width:min(250px,54%)}
  .v023m-fx-title b{font-size:19px}
  .v023m-fx-crowns{font-size:17px}
}
@media(prefers-reduced-motion:reduce){
  .v023m-ragnarok-sprite,.v023m-ragnarok-halo,.v023m-ragnarok-unit .v018-unit-ground,.v023m-fx-halo,.v023m-fx-lilia{animation:none!important}
}

.v023n-politics-relations{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:12px}
.v023n-politics-relations article{padding:12px 14px;border:1px solid rgba(255,255,255,.14);border-radius:14px;background:rgba(255,255,255,.04)}
.v023n-politics-relations article span{display:inline-block;margin:0 8px;color:#c9b67a}
.v023n-politics-relations article p{margin:8px 0 0;color:#d9dfeb;line-height:1.65}

.v023o-fixed-note{display:inline-block;padding:8px 12px;border-radius:999px;background:rgba(145,215,255,.12);border:1px solid rgba(145,215,255,.25);color:#dcecff;font-size:12px}
.v023o-ai-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-top:12px}
.v023o-ai-card{padding:12px 14px;border:1px solid rgba(255,255,255,.14);border-radius:14px;background:rgba(255,255,255,.04)}
.v023o-ai-card div{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px}
.v023o-ai-card small{color:#8ea8d9;display:block}
.v023o-ai-card span{display:inline-flex;align-items:center;justify-content:center;min-width:40px;padding:4px 8px;border-radius:999px;background:rgba(255,255,255,.06)}
.v023o-ai-card p{margin:8px 0 0;color:#d9dfeb;line-height:1.65}
.v023o-ai-pair-inline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
.v023o-ai-pair-inline article{padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04)}
.v023o-ai-pair-inline small{display:block;color:#97a6c7}
.v023o-ai-pair-inline b{display:block;margin:4px 0}
.v023o-ai-pair-inline span{font-size:12px;color:#d7e7ff}

/* =========================================================
   Prototype ver0.23p — Royal Houses / Leia Event / Civil War
   ========================================================= */
.v023p-dynasty-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:18px}
.v023p-royal-block,.v023p-gram-block{border:1px solid rgba(203,173,101,.26);border-radius:18px;background:linear-gradient(180deg,rgba(18,25,43,.94),rgba(8,13,25,.96));padding:18px}
.v023p-dynasty-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}
.v023p-dynasty-char{display:flex;align-items:center;gap:10px;padding:10px;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.035);text-align:left;color:inherit;cursor:pointer}
.v023p-dynasty-char:hover{border-color:rgba(218,184,105,.56);background:rgba(218,184,105,.08)}
.v023p-dynasty-char img{width:58px;height:58px;border-radius:12px;object-fit:cover;border:1px solid rgba(218,184,105,.42)}
.v023p-dynasty-char span{display:grid;gap:2px;min-width:0}.v023p-dynasty-char small{color:#a9b6cf}.v023p-dynasty-char b{color:#f3dfad}.v023p-dynasty-char em{font-style:normal;color:#d9e2f2;font-size:12px}
.v023p-family-tree{margin-top:18px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;text-align:center}
.v023p-family-tree div{padding:12px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(255,255,255,.035)}
.v023p-family-tree b,.v023p-family-tree small{display:block}.v023p-family-tree small{margin-top:3px;color:#a9b6cf}.v023p-family-tree i{font-style:normal;color:#d2b66e;font-size:20px}.v023p-family-tree>span{grid-column:1/4;color:#d2b66e;font-size:20px}
.v023p-family-tree>div:last-child{grid-column:1/4;justify-self:center;min-width:240px}
.v023p-gram-block{display:grid;grid-template-columns:150px 1fr;gap:16px;align-items:start}.v023p-gram-block>img{width:100%;border-radius:14px;border:1px solid rgba(218,184,105,.32)}
.v023p-vassal-row{display:grid;grid-template-columns:130px 1fr;gap:16px;align-items:center;margin-top:12px}.v023p-vassal-row img{width:130px;border-radius:14px}.v023p-vassal-row p{color:#cfd7e7;line-height:1.7}
.v023p-vassal-card{border-color:rgba(126,86,171,.44)!important}.v023p-vassal-card .stage-badge{color:#d7b8ff!important;border-color:#9a6bc9!important}
.v023p-leia-unit{overflow:visible!important;isolation:isolate}.v023p-leia-unit>img{position:relative;z-index:3;width:50px!important;height:50px!important;object-fit:cover!important;border-radius:50%;border:2px solid rgba(133,204,255,.82);box-shadow:0 0 12px rgba(91,171,255,.72)}
.v023p-leia-aura{position:absolute;left:50%;top:46%;width:70px;height:70px;transform:translate(-50%,-50%);border-radius:50%;border:2px solid rgba(111,202,255,.52);box-shadow:0 0 18px rgba(87,171,255,.58),inset 0 0 16px rgba(126,216,255,.24);animation:v023pLeiaAura 2s ease-in-out infinite;z-index:1}
.v023p-leia-skill-fx{position:absolute;inset:0;z-index:1100;pointer-events:none;overflow:hidden;border-radius:inherit;background:radial-gradient(circle at 50% 50%,rgba(190,232,255,.38),rgba(52,105,206,.24) 35%,transparent 68%);animation:v023pLeiaFade 1.18s ease both}
.v023p-leia-skill-fx>img{position:absolute;right:8%;bottom:-4%;height:92%;max-width:58%;object-fit:contain;filter:drop-shadow(0 18px 18px rgba(0,0,0,.58)) drop-shadow(0 0 24px rgba(92,177,255,.76));animation:v023pLeiaCutin 1.12s cubic-bezier(.2,.75,.2,1) both;z-index:4}
.v023p-leia-rings{position:absolute;left:37%;top:48%;width:min(520px,58vmin);aspect-ratio:1;border-radius:50%;border:4px double rgba(181,226,255,.9);box-shadow:0 0 40px rgba(86,171,255,.82),inset 0 0 44px rgba(67,126,232,.4);transform:translate(-50%,-50%);animation:v023pLeiaSpin 2.4s linear infinite}
.v023p-leia-shards{position:absolute;left:8%;top:16%;z-index:5;color:#dff5ff;font-size:28px;letter-spacing:.5em;text-shadow:0 0 12px #66b6ff}
.v023p-leia-skill-title{position:absolute;left:6%;bottom:10%;z-index:6;padding:12px 24px;border-left:3px solid rgba(156,217,255,.86);background:linear-gradient(90deg,rgba(10,37,85,.9),rgba(10,37,85,.28),transparent)}
.v023p-leia-skill-title small,.v023p-leia-skill-title span{display:block;color:#a9d9ff}.v023p-leia-skill-title b{display:block;color:#f2fbff;font-family:Georgia,"Yu Mincho",serif;font-size:30px;margin:3px 0;text-shadow:0 0 12px rgba(108,185,255,.82)}
.v023p-event-cg{position:relative;min-height:560px;background:#08101e;overflow:hidden;border-radius:18px}.v023p-event-cg>img{display:block;width:100%;height:min(68vh,680px);object-fit:cover}.v023p-event-caption{position:absolute;left:3%;right:3%;bottom:3%;padding:18px 20px;border:1px solid rgba(189,220,255,.3);border-radius:16px;background:linear-gradient(180deg,rgba(6,15,33,.88),rgba(3,9,22,.96));backdrop-filter:blur(8px)}
.v023p-event-caption small{display:block;color:#8fc9ff;letter-spacing:.14em}.v023p-event-caption b{display:block;margin-top:5px;color:#f4dfae;font-size:18px}.v023p-event-caption p{margin:8px 0 14px;color:#f1f5fb;font-size:16px;line-height:1.8}.v023p-event-caption button{min-width:120px}
@keyframes v023pLeiaAura{0%,100%{transform:translate(-50%,-50%) scale(.92);opacity:.7}50%{transform:translate(-50%,-50%) scale(1.08);opacity:1}}
@keyframes v023pLeiaSpin{to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes v023pLeiaFade{0%{opacity:0}16%,78%{opacity:1}100%{opacity:0}}
@keyframes v023pLeiaCutin{0%{opacity:0;transform:translateX(80px) scale(.82)}28%{opacity:1;transform:translateX(0) scale(1.04)}78%{opacity:1;transform:translateX(0) scale(1)}100%{opacity:0;transform:translateX(-20px) scale(1.05)}}
@media(max-width:760px){.v023p-dynasty-layout{grid-template-columns:1fr}.v023p-dynasty-grid{grid-template-columns:1fr}.v023p-gram-block,.v023p-vassal-row{grid-template-columns:100px 1fr}.v023p-event-cg{min-height:480px}.v023p-event-caption p{font-size:14px}.v023p-leia-skill-fx>img{right:-10%;max-width:72%}.v023p-leia-rings{left:38%;width:72vmin}.v023p-leia-skill-title b{font-size:22px}}
@media(prefers-reduced-motion:reduce){.v023p-leia-aura,.v023p-leia-rings,.v023p-leia-skill-fx>img{animation:none!important}}

/* ver0.23q named NPC commanders */
.v023q-station-strip .v023q-named-station{border-color:rgba(239,207,122,.55);box-shadow:inset 0 0 0 1px rgba(239,207,122,.12)}
.v023q-station-strip .v023q-named-station b{color:#ffe7a6;margin-right:2px}
.v023q-npc-unit{overflow:visible!important;isolation:isolate;border-color:rgba(230,195,105,.75)!important}
.v023q-npc-unit>img{position:absolute;left:50%;top:49%;transform:translate(-50%,-50%);width:74%;height:74%;object-fit:cover;border-radius:50%;border:2px solid rgba(255,224,137,.92);z-index:4;box-shadow:0 0 12px rgba(214,169,63,.55)}
.v023q-npc-unit.enemy>img{border-color:rgba(255,161,150,.92);box-shadow:0 0 12px rgba(219,72,68,.48)}
.v023q-npc-crown{position:absolute;left:50%;top:-15px;transform:translateX(-50%);z-index:8;color:#ffe4a0;text-shadow:0 2px 7px #000;font-size:15px}
.v023q-npc-unit .tactical-unit-name{z-index:7;background:rgba(17,20,38,.94)!important;border-color:rgba(230,195,105,.45)!important}
.v023q-npc-unit.enemy .tactical-unit-name{background:rgba(72,17,24,.94)!important}
.v023q-npc-roster{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-top:14px}
.v023q-npc-roster-card{display:grid;grid-template-columns:88px 1fr auto;gap:12px;align-items:center;padding:12px;border:1px solid rgba(255,255,255,.13);border-radius:14px;background:rgba(255,255,255,.04)}
.v023q-npc-roster-card>img{width:88px;height:88px;object-fit:cover;border-radius:14px;border:1px solid rgba(232,203,128,.55)}
.v023q-npc-roster-card h3{margin:2px 0 4px}.v023q-npc-roster-card p{margin:0 0 5px;color:#cbd4e8;font-size:12px}.v023q-npc-roster-card span{display:block;font-size:11px;color:#9eabc5}
@media(max-width:640px){.v023q-npc-roster-card{grid-template-columns:70px 1fr}.v023q-npc-roster-card>img{width:70px;height:70px}.v023q-npc-roster-card>button{grid-column:1/-1}}


/* =========================================================
   ver0.23s — strategic-map NPC commander portraits
   ========================================================= */
.v023s-node-commanders{position:absolute;z-index:10;left:50%;top:-23px;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:2px;pointer-events:none;filter:drop-shadow(0 3px 4px rgba(0,0,0,.8))}
.v023s-node-commander{position:relative;display:block;width:28px;height:28px;border-radius:50%;background:#071522;border:2px solid #f0cf7a;box-shadow:0 0 0 1px rgba(0,0,0,.75),0 0 9px rgba(224,183,87,.4);overflow:visible}
.v023s-node-commander img{width:100%!important;height:100%!important;margin:0!important;border-radius:50%;object-fit:cover;filter:none!important;display:block}
.v023s-node-commander i{position:absolute;right:-5px;bottom:-5px;width:14px;height:14px;display:grid;place-items:center;border-radius:50%;background:#071522;border:1px solid #e6c76f;color:#f5dc94;font-style:normal;font-size:8px;line-height:1}
.territory-node.selected .v023s-node-commander{box-shadow:0 0 0 1px #fff3bd,0 0 13px rgba(242,203,101,.75)}
.v023s-station-strip .v023s-named-station{min-height:67px;padding:4px 2px!important}
.v023s-station-face{position:relative;display:block;width:36px;height:36px;margin:0 auto 2px;border-radius:50%;border:1px solid #e5c873;background:#071522;overflow:visible;box-shadow:0 0 8px rgba(224,183,87,.28)}
.v023s-station-face img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
.v023s-station-face i{position:absolute;right:-5px;bottom:-4px;width:14px;height:14px;display:grid;place-items:center;border-radius:50%;background:#071522;border:1px solid #d8b864;color:#f4da8a;font-size:8px;font-style:normal}
.v023s-station-strip .v023s-named-station>span:last-child{display:flex;gap:2px;align-items:center;justify-content:center;flex-wrap:wrap;line-height:1.05}
.v023s-station-strip .v023s-named-station>span:last-child b{width:100%;font-size:6px;color:#f3d993;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:900px){.v023s-node-commanders{top:-19px}.v023s-node-commander{width:23px;height:23px}.v023s-node-commander i{width:12px;height:12px;font-size:7px}.v023s-station-face{width:31px;height:31px}}

/* =========================================================
   ver0.23u — Alexis Raguna Name Fix
   ========================================================= */
.v023t-diplo-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}
.v023t-diplo-heading>div{min-width:0}.v023t-diplo-heading>button{flex:0 0 auto}
.v023t-conversation-card{position:relative;overflow:hidden}
.v023t-cast-strip{display:flex;align-items:center;gap:8px;padding:9px 10px;margin:8px 0;border:1px solid rgba(224,190,102,.28);background:rgba(7,20,34,.55);border-radius:8px}
.v023t-cast-strip img{width:38px;height:38px;object-fit:cover;border-radius:50%;border:1px solid rgba(230,196,105,.75);background:#0c1a29}
.v023t-cast-strip span{font-size:12px;color:#f3e4b4;line-height:1.35}.v023t-cast-strip small{color:#9fb0c5}
.v023t-talk-button{border-color:#c89b43!important;color:#ffe9a8!important;background:linear-gradient(180deg,rgba(105,76,24,.78),rgba(53,36,11,.8))!important}

.v023t-diplomacy-modal{width:min(1180px,94vw)!important;max-width:1180px!important;padding:0!important;overflow:hidden}
.v023t-conversation{display:grid;grid-template-columns:minmax(270px,34%) 1fr;min-height:650px;background:linear-gradient(135deg,#091725 0%,#0b1c2d 58%,#101524 100%);color:#eaf0f6}
.v023t-speaker{position:relative;min-height:650px;overflow:hidden;border-right:1px solid rgba(222,184,88,.28);background:radial-gradient(circle at 50% 23%,rgba(82,111,151,.28),transparent 36%),linear-gradient(180deg,#0a1725,#07111b)}
.v023t-speaker-art{position:absolute;inset:0 0 96px;display:flex;align-items:flex-end;justify-content:center;overflow:hidden}
.v023t-speaker-art:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 54%,rgba(7,17,27,.9) 92%);pointer-events:none}
.v023t-speaker-art img{width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:saturate(.95) contrast(1.03)}
.v023t-speaker-id{position:absolute;left:0;right:0;bottom:0;padding:18px 20px 20px;background:linear-gradient(180deg,transparent,rgba(5,12,20,.97) 20%);z-index:2}
.v023t-speaker-id small{display:block;color:#d6b85e;letter-spacing:.08em}.v023t-speaker-id h2{margin:4px 0 4px;color:#fff4cb}.v023t-speaker-id span{font-size:12px;color:#aebdce}
.v023t-talk{padding:24px 26px 22px;min-width:0;overflow:auto;max-height:82vh}
.v023t-talk-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.v023t-talk-head h2{margin:2px 0 12px;color:#f6e8bd}
.v023t-stage{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border:1px solid rgba(217,184,94,.4);border-radius:999px;color:#e8ca78;font-size:12px;white-space:nowrap;background:rgba(5,13,23,.6)}
.v023t-metrics{display:grid;grid-template-columns:repeat(5,minmax(70px,1fr));gap:7px;margin:4px 0 14px}
.v023t-metrics>div{border:1px solid rgba(139,160,183,.24);background:rgba(6,18,30,.58);padding:8px 9px;border-radius:7px;min-width:0}
.v023t-metrics span,.v023t-metrics small{display:block;font-size:10px;color:#91a4ba}.v023t-metrics b{display:block;color:#dce6f0;font-size:17px;margin-top:2px}
.v023t-metrics .high b{color:#91d9b1}.v023t-metrics .mid b{color:#e8d184}.v023t-metrics .low b{color:#e77c85}
.v023t-speech{display:grid;grid-template-columns:60px 1fr;gap:13px;align-items:center;padding:15px 16px;margin:10px 0 12px;border:1px solid rgba(211,181,100,.32);border-radius:9px;background:linear-gradient(90deg,rgba(40,50,69,.72),rgba(11,25,39,.74))}
.v023t-speech img{width:60px;height:60px;object-fit:cover;border-radius:6px;border:1px solid rgba(232,200,112,.62)}
.v023t-speech p{margin:0;color:#f4f0e3;font-size:15px;line-height:1.8;font-family:"Yu Mincho","Hiragino Mincho ProN",serif}
.v023t-outcome{display:flex;flex-direction:column;gap:3px;border-left:3px solid #d0a84c;background:rgba(90,69,21,.25);padding:10px 12px;margin:0 0 12px}.v023t-outcome small{color:#d5bd76}.v023t-outcome b{color:#ffe8a3}.v023t-outcome span{font-size:12px;color:#b9c7d5}
.v023t-outcome.danger{border-color:#c95a65;background:rgba(96,25,32,.28)}.v023t-outcome.danger b{color:#ffabb2}
.v023t-outcome.peace{border-color:#59b98b;background:rgba(20,78,58,.27)}.v023t-outcome.peace b{color:#9ce1bd}
.v023t-outcome.special{border-color:#8a6ad5;background:rgba(71,47,112,.28)}.v023t-outcome.special b{color:#ccb9ff}
.v023t-memory-block{margin:12px 0}.v023t-section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}.v023t-section-title b{font-size:12px;color:#b9c7d5}.v023t-section-title button{padding:5px 9px;font-size:11px}
.v023t-memory-chips{display:flex;flex-wrap:wrap;gap:6px}.v023t-memory-chips span{padding:5px 8px;border:1px solid rgba(124,153,187,.3);border-radius:999px;background:rgba(9,24,39,.7);color:#c1cfdd;font-size:11px}
.v023t-choice-list{display:grid;gap:8px;margin-top:13px}
.v023t-choice{display:flex!important;flex-direction:column;align-items:flex-start!important;text-align:left!important;gap:4px;width:100%;padding:11px 13px!important;border-color:rgba(132,157,185,.34)!important;background:linear-gradient(90deg,rgba(21,43,66,.82),rgba(13,27,43,.78))!important}
.v023t-choice:hover{border-color:#d2b15b!important;transform:translateY(-1px)}.v023t-choice b{font-size:13px;color:#f0e6c8}.v023t-choice span{font-size:11px;color:#9fb0c3;line-height:1.45}
.v023t-choice.danger{border-color:rgba(190,74,84,.55)!important;background:linear-gradient(90deg,rgba(91,27,34,.72),rgba(37,20,28,.76))!important}.v023t-choice.danger b{color:#ffb1b8}
.v023t-choice.peace{border-color:rgba(70,155,116,.55)!important;background:linear-gradient(90deg,rgba(25,82,61,.72),rgba(15,39,34,.76))!important}.v023t-choice.peace b{color:#a8e3c4}
.v023t-choice.special{border-color:rgba(126,95,198,.62)!important;background:linear-gradient(90deg,rgba(63,44,105,.8),rgba(28,24,51,.78))!important}.v023t-choice.special b{color:#d8c8ff}
.v023t-turn-ended{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid rgba(140,160,181,.25);background:rgba(6,16,27,.6);border-radius:8px}.v023t-turn-ended b{color:#c9d5df}.v023t-turn-ended span{font-size:11px;color:#8fa1b4}
.v023t-talk-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px;flex-wrap:wrap}
.v023t-audience-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}
.v023t-audience-card{display:grid!important;grid-template-columns:78px 1fr;gap:12px;align-items:center!important;text-align:left!important;padding:10px!important;min-height:100px;background:linear-gradient(135deg,rgba(24,44,66,.9),rgba(10,22,35,.9))!important;border-color:rgba(212,178,84,.36)!important}.v023t-audience-card img{width:78px;height:78px;object-fit:cover;border-radius:7px;border:1px solid rgba(226,193,103,.65)}.v023t-audience-card span{display:flex;flex-direction:column;gap:3px}.v023t-audience-card small{color:#a7b7c8}.v023t-audience-card b{color:#f2e6c4;font-size:15px}.v023t-audience-card em{font-style:normal;color:#d3b963;font-size:11px}
.v023t-memory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.v023t-memory-card{border:1px solid rgba(135,159,184,.26);background:rgba(7,20,33,.72);padding:12px;border-radius:9px}.v023t-memory-card.focus{border-color:#d0a94e}.v023t-memory-card header{display:flex;gap:9px;align-items:center;margin-bottom:8px}.v023t-memory-card header img{width:56px;height:56px;object-fit:cover;border-radius:6px;border:1px solid rgba(224,191,100,.5)}.v023t-memory-card header div{display:flex;flex-direction:column}.v023t-memory-card header small,.v023t-memory-card header span{color:#91a5b9;font-size:10px}.v023t-memory-card header b{color:#f0dfad}.v023t-memory-card .v023t-metrics{grid-template-columns:repeat(5,1fr);gap:4px}.v023t-memory-card .v023t-metrics>div{padding:6px}.v023t-memory-card .v023t-metrics b{font-size:13px}.v023t-memory-card>button{width:100%;margin-top:9px}
.v023t-history{display:grid;gap:5px;margin-top:10px}.v023t-history-row{display:grid;grid-template-columns:70px 1fr;gap:2px 7px;padding:6px 0;border-top:1px solid rgba(130,151,174,.14)}.v023t-history-row small{grid-row:1/3;color:#8294a8}.v023t-history-row b{font-size:11px;color:#d8c78f}.v023t-history-row span{font-size:10px;color:#94a7ba}.v023t-empty-memory{font-size:11px;color:#8294a8;margin:8px 0}

@media (max-width:780px){
  .v023t-diplomacy-modal{width:96vw!important}.v023t-conversation{grid-template-columns:1fr;min-height:0}.v023t-speaker{min-height:250px;border-right:0;border-bottom:1px solid rgba(222,184,88,.28)}.v023t-speaker-art{inset:0 0 68px}.v023t-speaker-id{padding:14px 16px}.v023t-speaker-id h2{font-size:18px}.v023t-talk{padding:16px;max-height:none}.v023t-metrics{grid-template-columns:repeat(3,1fr)}.v023t-speech{grid-template-columns:46px 1fr}.v023t-speech img{width:46px;height:46px}.v023t-speech p{font-size:13px}.v023t-audience-grid,.v023t-memory-grid{grid-template-columns:1fr}.v023t-diplo-heading{flex-direction:column}.v023t-memory-card .v023t-metrics{grid-template-columns:repeat(5,1fr)}
}


/* ver0.23v — hard-visible stationed commander portraits */
.v023v-node-commanders{position:absolute;z-index:25;left:50%;top:-32px;transform:translateX(-50%);display:flex;justify-content:center;align-items:center;gap:3px;pointer-events:none;white-space:nowrap}
.v023v-node-commander{position:relative;display:block;width:34px;height:34px;border-radius:50%;background:#071522;border:2px solid #f4d47f;box-shadow:0 0 0 2px rgba(2,7,12,.88),0 5px 10px rgba(0,0,0,.78);overflow:visible}
.v023v-node-commander img{display:block!important;width:100%!important;height:100%!important;margin:0!important;border-radius:50%;object-fit:cover!important;filter:none!important}
.v023v-node-commander i{position:absolute;right:-5px;bottom:-5px;display:grid;place-items:center;width:15px;height:15px;border-radius:50%;background:#071522;border:1px solid #f4d47f;color:#ffe7a2;font-size:9px;font-style:normal}
.territory-node.selected .v023v-node-commander{box-shadow:0 0 0 2px #fff1b4,0 0 16px rgba(245,207,105,.85)}
.v023v-station-strip{display:flex!important;flex-direction:column;align-items:stretch;gap:6px}
.v023v-station-strip>button{width:100%!important;min-height:48px!important;display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:8px!important;padding:5px 7px!important}
.v023v-station-face{position:relative;flex:0 0 38px;width:38px;height:38px;border-radius:50%;border:2px solid #e9ca72;overflow:visible;background:#071522}
.v023v-station-face img{width:100%!important;height:100%!important;object-fit:cover!important;border-radius:50%!important;margin:0!important;filter:none!important}
.v023v-station-face i{position:absolute;right:-4px;bottom:-4px;width:14px;height:14px;display:grid;place-items:center;border-radius:50%;font-size:8px;font-style:normal;background:#071522;border:1px solid #e9ca72;color:#ffe5a0}
.v023v-station-copy{display:flex!important;flex-direction:column!important;align-items:flex-start!important;min-width:0;text-align:left}
.v023v-station-copy b{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f8e4ad;font-size:10px}
.v023v-station-copy small{color:#b8c4d1;font-size:9px}
@media(max-width:900px){.v023v-node-commanders{top:-25px}.v023v-node-commander{width:28px;height:28px}.v023v-node-commander i{width:13px;height:13px;font-size:7px}}

/* ver0.23z legacy overlay disabled by v0.24a */
.v023z-garrison-overlay-layer{position:absolute;inset:0;z-index:80;pointer-events:none}
.v023z-garrison-overlay{position:absolute;transform:translate(-50%,-58px);display:flex;align-items:center;justify-content:center;gap:3px;pointer-events:none;white-space:nowrap}
.v023z-garrison-commander{position:relative!important;display:grid!important;place-items:center!important;flex:0 0 34px!important;width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;padding:0!important;margin:0!important;border-radius:50%!important;border:2px solid #f2d37c!important;background:#071522!important;box-shadow:0 0 0 2px rgba(3,8,14,.9),0 4px 10px rgba(0,0,0,.86)!important;overflow:visible!important;pointer-events:auto!important;cursor:pointer!important}
.v023z-garrison-commander img{display:block!important;width:30px!important;height:30px!important;max-width:none!important;margin:0!important;border-radius:50%!important;object-fit:cover!important;filter:none!important}
.v023z-garrison-commander strong{font-size:17px;color:#f5dda0;line-height:1}
.v023z-garrison-commander span{position:absolute;right:-5px;bottom:-5px;width:15px;height:15px;border-radius:50%;display:grid;place-items:center;background:#071522;border:1px solid #f2d37c;color:#ffe9aa;font-size:8px;font-weight:800}
.v023z-garrison-commander:hover{transform:translateY(-2px) scale(1.12);z-index:3;box-shadow:0 0 0 2px #fff0b7,0 0 18px rgba(242,211,124,.82)!important}
.v023z-garrison-more{display:grid;place-items:center;min-width:22px;height:22px;padding:0 4px;border-radius:11px;background:#071522;border:1px solid #f2d37c;color:#ffe9aa;font-size:8px;font-style:normal;box-shadow:0 3px 7px rgba(0,0,0,.8)}
.v023z-station-strip{display:grid!important;gap:6px!important}
.v023z-station-row{width:100%!important;display:grid!important;grid-template-columns:42px minmax(0,1fr) auto!important;align-items:center!important;gap:8px!important;min-height:50px!important;padding:5px 7px!important;text-align:left!important}
.v023z-station-portrait{position:relative;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#071522;border:2px solid #e7c66b;overflow:visible}
.v023z-station-portrait img{display:block!important;width:34px!important;height:34px!important;max-width:none!important;margin:0!important;border-radius:50%!important;object-fit:cover!important;filter:none!important}
.v023z-station-portrait>b{font-size:17px;color:#f5dda0}
.v023z-station-portrait i{position:absolute;right:-4px;bottom:-4px;width:14px;height:14px;display:grid;place-items:center;border-radius:50%;background:#071522;border:1px solid #e7c66b;color:#ffe9aa;font-size:7px;font-style:normal}
.v023z-station-text{display:flex;flex-direction:column;min-width:0}.v023z-station-text strong{font-size:10px;color:#f8e5af;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v023z-station-text small{font-size:8px;color:#9fb0c0}.v023z-station-row>em{font-size:8px;color:#e2c875;font-style:normal}
.v023z-generic-profile{display:grid;grid-template-columns:minmax(180px,32%) 1fr;gap:18px;align-items:start}.v023z-generic-portrait{min-height:260px;display:grid;place-items:center;border:1px solid rgba(226,200,117,.35);background:rgba(5,12,20,.8);border-radius:12px;overflow:hidden}.v023z-generic-portrait img{width:100%;height:100%;max-height:420px;object-fit:cover}.v023z-generic-portrait span{font-size:68px;color:#e2c875}
@media(max-width:900px){.v023z-garrison-overlay{transform:translate(-50%,-49px);gap:2px}.v023z-garrison-commander{width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important}.v023z-garrison-commander img{width:24px!important;height:24px!important}.v023z-generic-profile{grid-template-columns:1fr}.v023z-generic-portrait{min-height:200px}}


/* =========================================================
   ver0.24a — synchronous commander portraits inside map nodes
   ========================================================= */
.v024a-territory-node{overflow:visible!important;pointer-events:none!important}
.v024a-territory-hit{position:relative;display:block;width:100%;height:auto;margin:0;padding:0;border:0;background:none;color:inherit;pointer-events:auto;cursor:pointer;text-align:center;overflow:visible}
.v024a-territory-hit>.v024a-territory-icon{width:39px!important;height:39px!important;object-fit:contain!important;margin:auto!important;filter:drop-shadow(0 5px 4px rgba(0,0,0,.74))!important}
.v024a-map-commanders{position:absolute;z-index:120;left:50%;top:-34px;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:2px;pointer-events:auto!important;white-space:nowrap}
.v024a-map-commander{position:relative!important;display:grid!important;place-items:center!important;flex:0 0 28px!important;width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;margin:0!important;padding:0!important;border-radius:50%!important;border:2px solid #e9cb78!important;background:#061522!important;box-shadow:0 0 0 2px rgba(3,9,15,.92),0 4px 9px rgba(0,0,0,.82)!important;cursor:pointer!important;overflow:visible!important;pointer-events:auto!important}
.v024a-map-commander.named{border-color:#ffe09a!important;box-shadow:0 0 0 2px rgba(3,9,15,.96),0 0 10px rgba(239,200,101,.58),0 4px 9px rgba(0,0,0,.86)!important}
.v024a-map-commander img{display:block!important;width:24px!important;height:24px!important;max-width:24px!important;margin:0!important;border-radius:50%!important;object-fit:cover!important;filter:none!important;transform:none!important}
.v024a-map-commander>b{font-size:14px;line-height:1;color:#f4daa0}
.v024a-map-commander>i{position:absolute;right:-4px;bottom:-5px;display:grid;place-items:center;width:13px;height:13px;border-radius:50%;background:#081523;border:1px solid #efd27f;color:#ffe5a0;font-size:7px;font-style:normal;font-weight:900}
.v024a-map-commander:hover{z-index:130;transform:translateY(-2px) scale(1.16);box-shadow:0 0 0 2px #fff0bc,0 0 16px rgba(242,208,112,.82)!important}
.v024a-map-more{display:grid;place-items:center;height:20px;min-width:20px;padding:0 3px;border-radius:10px;background:#071521;border:1px solid #d9b65c;color:#f4dda5;font-size:7px;box-shadow:0 3px 7px rgba(0,0,0,.8)}
/* Keep the legacy async overlay hidden even if an older render queued one. */
.v023z-garrison-overlay-layer{display:none!important}

.v024a-station-list{display:grid;gap:6px;margin-top:5px}
.v024a-station-card{display:grid!important;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;min-height:50px;padding:5px 7px!important;border:1px solid rgba(214,178,94,.3)!important;border-radius:6px!important;background:linear-gradient(180deg,#0a1f30,#06131f)!important;color:#ece4cf!important;text-align:left!important;cursor:pointer!important;box-shadow:none!important}
.v024a-station-card.named{border-color:rgba(241,204,111,.58)!important;background:linear-gradient(180deg,#10283a,#071723)!important}
.v024a-station-card:hover{border-color:#f0d07e!important;background:#102b41!important}
.v024a-station-face{position:relative;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:2px solid #d8b75f;background:#07131e;overflow:visible}
.v024a-station-face img{display:block!important;width:36px!important;height:36px!important;max-width:36px!important;margin:0!important;border-radius:50%!important;object-fit:cover!important;filter:none!important}
.v024a-station-face>b{font-size:18px;color:#efd18a}
.v024a-station-face>i{position:absolute;right:-4px;bottom:-4px;display:grid;place-items:center;width:14px;height:14px;border-radius:50%;background:#07131e;border:1px solid #e2c36f;color:#ffe6a6;font-size:7px;font-style:normal}
.v024a-station-copy{display:flex;min-width:0;flex-direction:column;gap:1px}
.v024a-station-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff0c0;font-size:11px}
.v024a-station-copy small{color:#cabf9f;font-size:8px}
.v024a-station-copy em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8fb4c8;font-size:7px;font-style:normal}
.v024a-station-open{color:#d8bb72;font-size:7px;white-space:nowrap}

.v024a-diagnostics{display:grid;gap:8px;margin:14px 0}
.v024a-diagnostic-row{display:grid!important;grid-template-columns:54px 1fr auto;gap:10px;align-items:center;width:100%;padding:8px!important;border:1px solid rgba(224,190,105,.3)!important;border-radius:8px!important;background:#071823!important;color:#eee4cb!important;text-align:left!important}
.v024a-diagnostic-row img{width:50px!important;height:50px!important;object-fit:cover!important;border-radius:50%!important;border:2px solid #dfc06d!important}
.v024a-diagnostic-row span{display:flex;flex-direction:column}.v024a-diagnostic-row span b{color:#ffe5a0}.v024a-diagnostic-row span small{color:#aebaca}.v024a-diagnostic-row em{font-style:normal;font-size:10px}.v024a-diagnostic-row em.ok{color:#79d59b}.v024a-diagnostic-row em.bad{color:#ee7180}

@media(max-width:900px){.v024a-map-commanders{top:-28px;gap:1px}.v024a-map-commander{width:24px!important;height:24px!important;min-width:24px!important;min-height:24px!important}.v024a-map-commander img{width:20px!important;height:20px!important;max-width:20px!important}.v024a-station-card{grid-template-columns:38px minmax(0,1fr)}.v024a-station-open{display:none}}

/* =========================================================
   ver0.24b — authoritative stationed commander markers
   ========================================================= */
.v024b-territory-node{overflow:visible!important;pointer-events:none!important;z-index:5}
.v024b-territory-hit{position:relative!important;display:block!important;width:100%!important;margin:0!important;padding:0!important;border:0!important;background:none!important;color:inherit!important;text-align:center!important;overflow:visible!important;pointer-events:auto!important;cursor:pointer!important}
.v024b-territory-hit>.v024b-territory-icon{display:block!important;width:39px!important;height:39px!important;max-width:none!important;margin:auto!important;object-fit:contain!important;filter:drop-shadow(0 5px 4px rgba(0,0,0,.74))!important}
.v024b-map-commanders{position:absolute!important;z-index:500!important;left:calc(100% + 4px)!important;top:5px!important;display:flex!important;align-items:center!important;gap:3px!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important;white-space:nowrap!important}
.v024b-map-commanders.left-side{left:auto!important;right:calc(100% + 4px)!important;flex-direction:row-reverse!important}
.v024b-map-commander{position:relative!important;display:grid!important;place-items:center!important;flex:0 0 34px!important;width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;margin:0!important;padding:0!important;border-radius:50%!important;border:2px solid #e8c86c!important;background:#071522!important;box-shadow:0 0 0 2px rgba(2,7,12,.94),0 5px 11px rgba(0,0,0,.9)!important;overflow:visible!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important;cursor:pointer!important}
.v024b-map-commander.named{border-color:#ffe195!important;box-shadow:0 0 0 2px rgba(2,7,12,.97),0 0 13px rgba(244,202,91,.72),0 5px 11px rgba(0,0,0,.92)!important}
.v024b-map-commander img{display:block!important;width:30px!important;height:30px!important;max-width:30px!important;margin:0!important;border:0!important;border-radius:50%!important;object-fit:cover!important;filter:none!important;transform:none!important;opacity:1!important;visibility:visible!important}
.v024b-face-fallback{place-items:center;width:29px;height:29px;border-radius:50%;background:#14283b;color:#f5dfa3;font-size:13px;line-height:1}
.v024b-map-commander>i{position:absolute!important;right:-5px!important;bottom:-5px!important;display:grid!important;place-items:center!important;width:15px!important;height:15px!important;border-radius:50%!important;background:#071522!important;border:1px solid #efd17b!important;color:#ffe8a5!important;font-size:8px!important;font-style:normal!important;font-weight:900!important}
.v024b-map-commander:hover{z-index:520!important;transform:translateY(-2px) scale(1.14)!important;box-shadow:0 0 0 2px #fff0b8,0 0 18px rgba(243,207,108,.88)!important}
.v024b-map-more{display:grid!important;place-items:center!important;min-width:22px!important;height:22px!important;padding:0 4px!important;border-radius:11px!important;background:#071522!important;border:1px solid #e4c36d!important;color:#ffe7a0!important;font-size:8px!important;box-shadow:0 4px 8px rgba(0,0,0,.84)!important}

.v024b-station-list{display:grid;gap:6px;margin-top:6px}
.v024b-station-card{display:grid!important;grid-template-columns:46px minmax(0,1fr) auto!important;align-items:center!important;gap:8px!important;width:100%!important;min-height:56px!important;padding:6px 7px!important;border:1px solid rgba(214,178,94,.34)!important;border-radius:7px!important;background:linear-gradient(180deg,#0b2132,#06131f)!important;color:#ece4cf!important;text-align:left!important;cursor:pointer!important;box-shadow:none!important}
.v024b-station-card.named{border-color:rgba(242,204,105,.72)!important;background:linear-gradient(180deg,#102b3e,#071723)!important}
.v024b-station-card:hover{border-color:#f1d079!important;background:#113047!important}
.v024b-station-face{position:relative;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:2px solid #d9b75d;background:#07131e;overflow:visible}
.v024b-station-face img{display:block!important;width:40px!important;height:40px!important;max-width:40px!important;margin:0!important;border-radius:50%!important;object-fit:cover!important;filter:none!important}
.v024b-station-face>b{font-size:18px;color:#efd18a}
.v024b-station-face>i{position:absolute;right:-4px;bottom:-4px;display:grid;place-items:center;width:15px;height:15px;border-radius:50%;background:#07131e;border:1px solid #e2c36f;color:#ffe6a6;font-size:8px;font-style:normal}
.v024b-station-copy{display:flex;min-width:0;flex-direction:column;gap:2px}
.v024b-station-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff0be;font-size:11px}
.v024b-station-copy small{color:#d2c7a8;font-size:8px}
.v024b-station-copy em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8fb8ce;font-size:7px;font-style:normal}
.v024b-station-open{color:#ddc078;font-size:7px;white-space:nowrap}
.v024b-diagnostics{display:grid;gap:7px;margin-top:12px}
.v024b-diagnostic-row{display:grid!important;grid-template-columns:48px minmax(0,1fr) auto!important;align-items:center!important;gap:9px!important;width:100%!important;padding:7px!important;text-align:left!important;background:#081a29!important;border:1px solid rgba(219,183,96,.34)!important;border-radius:7px!important;color:#eee4c9!important}
.v024b-diagnostic-row img{width:44px!important;height:44px!important;border-radius:50%!important;object-fit:cover!important;border:2px solid #d4b45f!important}
.v024b-diagnostic-row span{display:flex;min-width:0;flex-direction:column;gap:2px}.v024b-diagnostic-row b{color:#fff0bb}.v024b-diagnostic-row small{color:#bfc8cb;font-size:9px}.v024b-diagnostic-row em{font-style:normal;font-size:8px;padding:4px 6px;border-radius:10px}.v024b-diagnostic-row em.ok{color:#c8ffd7;background:rgba(66,160,98,.18)}.v024b-diagnostic-row em.bad{color:#ffd3c5;background:rgba(184,74,55,.2)}
/* Older experimental commander overlays are definitively disabled in v0.24b. */
.v023s-node-commanders,.v023v-node-commanders,.v023z-garrison-overlay-layer,.v024a-map-commanders{display:none!important}
@media(max-width:900px){.v024b-map-commanders{left:calc(100% + 2px)!important;top:4px!important;gap:1px!important}.v024b-map-commanders.left-side{left:auto!important;right:calc(100% + 2px)!important}.v024b-map-commander{width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important}.v024b-map-commander img{width:24px!important;height:24px!important;max-width:24px!important}.v024b-station-card{grid-template-columns:42px minmax(0,1fr)!important}.v024b-station-open{display:none}}


/* ver0.24c: commander portrait hardening — visible without hover */
.v024c-map-commander{isolation:isolate!important;background:#071522!important;background-image:none!important}
.v024c-map-commander>.v024c-bg-face{position:absolute!important;inset:2px!important;z-index:0!important;display:grid!important;place-items:center!important;border-radius:50%!important;overflow:hidden!important;background-color:#162335!important;background-image:var(--v024c-portrait)!important;background-size:cover!important;background-position:center top!important;background-repeat:no-repeat!important;color:#f4d982!important;font-size:13px!important;font-weight:900!important;line-height:1!important}
.v024c-map-commander>img{position:absolute!important;inset:2px!important;z-index:1!important;width:calc(100% - 4px)!important;height:calc(100% - 4px)!important;max-width:none!important;border-radius:50%!important;object-fit:cover!important;object-position:center top!important;display:block!important;opacity:1!important;visibility:visible!important}
.v024c-map-commander>i{z-index:3!important}
.v024c-station-face{isolation:isolate!important;position:relative!important;background-image:none!important}
.v024c-station-face>.v024c-bg-face{position:absolute!important;inset:2px!important;z-index:0!important;display:grid!important;place-items:center!important;border-radius:50%!important;background-color:#162335!important;background-image:var(--v024c-portrait)!important;background-size:cover!important;background-position:center top!important;background-repeat:no-repeat!important;color:#f4d982!important;font-weight:900!important}
.v024c-station-face>img{position:relative!important;z-index:1!important;display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center top!important;border-radius:50%!important;opacity:1!important;visibility:visible!important}
.v024c-station-face>i{z-index:3!important}

/* =========================================================
   ver0.24e — Prisoners / faction collapse UI
   ========================================================= */
.v024e-prisoner-section,.v024e-ronin-section{margin-top:18px;border:1px solid rgba(211,177,83,.32);border-radius:16px;background:rgba(7,18,34,.58);overflow:hidden}
.v024e-section-head{display:flex;justify-content:space-between;gap:16px;align-items:end;padding:14px 16px;border-bottom:1px solid rgba(211,177,83,.22);background:linear-gradient(90deg,rgba(94,54,24,.24),rgba(22,40,65,.14))}
.v024e-section-head span{display:block;font-size:10px;letter-spacing:.16em;color:#d7b760}.v024e-section-head h3{margin:2px 0 0;font-size:18px;color:#f2e2ad}.v024e-section-head small{color:#95a8bb}
.v024e-prisoner-list{display:grid;gap:10px;padding:12px}
.v024e-prisoner-card{display:grid;grid-template-columns:78px minmax(0,1fr) 130px;gap:12px;align-items:center;padding:10px;border:1px solid rgba(170,185,207,.22);border-radius:14px;background:rgba(7,15,29,.72)}
.v024e-prisoner-face{position:relative;width:72px;height:72px;padding:0;border:2px solid #b88d3c;border-radius:50%;overflow:hidden;background:#111927;cursor:pointer}.v024e-prisoner-face img{width:100%;height:100%;object-fit:cover}.v024e-prisoner-face span{position:absolute;left:50%;bottom:0;transform:translateX(-50%);padding:2px 8px;border-radius:10px 10px 0 0;background:#6c1f2d;color:#fff2d0;font-size:10px;white-space:nowrap}
.v024e-prisoner-title{display:flex;justify-content:space-between;gap:10px;align-items:start}.v024e-prisoner-title h3{margin:0;color:#f7e7b4;font-size:17px}.v024e-prisoner-title small{color:#9fb2c8}.v024e-prisoner-title em{font-style:normal;color:#d8bb72;border:1px solid rgba(216,187,114,.35);padding:2px 7px;border-radius:999px;font-size:11px}
.v024e-persuasion{margin-top:7px}.v024e-persuasion>span{font-size:12px;color:#c9d6e5}.v024e-persuasion>i{display:block;height:8px;margin:5px 0;border-radius:999px;background:#15253a;overflow:hidden}.v024e-persuasion>i>b{display:block;height:100%;background:linear-gradient(90deg,#916728,#e1bf62)}.v024e-persuasion small{color:#8fa5bc}
.v024e-prisoner-actions{display:flex;flex-direction:column;gap:6px}.v024e-prisoner-actions button{width:100%}.v024e-prisoner-actions small{text-align:center;color:#8195a9;font-size:10px}
.v024e-empty{margin:0;padding:18px}
.v024e-prisoner-profile{display:grid;grid-template-columns:150px minmax(0,1fr);gap:18px;align-items:center}.v024e-prisoner-profile>img{width:150px;height:150px;border-radius:18px;border:2px solid #a98745;object-fit:cover;background:#111927}.v024e-prisoner-profile h2{margin:0 0 4px;color:#f1deaa}.v024e-prisoner-profile p{margin:0 0 12px;color:#a9bad0}
.v024e-collapse-event{max-width:760px;margin:auto}.v024e-collapse-title{display:flex;gap:12px;align-items:center;padding:10px 0 14px;border-bottom:1px solid rgba(202,169,76,.28)}.v024e-collapse-title>span{font-size:38px;color:#d5ae50}.v024e-collapse-title h2{margin:0;color:#f4dda2}.v024e-collapse-title small{color:#9aaabe}.v024e-collapse-event>p{line-height:1.8;color:#c7d2df}
.v024e-collapse-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0}.v024e-collapse-prisoner{display:flex;gap:10px;align-items:center;text-align:left;padding:8px;border:1px solid rgba(184,141,60,.28);border-radius:12px;background:#0b1728}.v024e-collapse-prisoner img{width:54px;height:54px;border-radius:50%;object-fit:cover;border:1px solid #b88d3c}.v024e-collapse-prisoner span{flex:1}.v024e-collapse-prisoner b{display:block;color:#f0ddb0}.v024e-collapse-prisoner small{color:#91a5bb}.v024e-collapse-prisoner em{font-style:normal;color:#e49aa6;font-size:11px}
@media(max-width:760px){.v024e-prisoner-card{grid-template-columns:64px minmax(0,1fr)}.v024e-prisoner-face{width:60px;height:60px}.v024e-prisoner-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.v024e-prisoner-actions small{grid-column:1/-1}.v024e-collapse-list{grid-template-columns:1fr}.v024e-prisoner-profile{grid-template-columns:90px minmax(0,1fr)}.v024e-prisoner-profile>img{width:90px;height:90px}}

/* ver0.24f — prisoner fate / permanent extinction */
.v024f-fate-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;align-content:center}
.v024f-fate-actions>button:first-child{grid-column:1/-1}
.v024f-fate-actions small{grid-column:1/-1;line-height:1.45}
.v024f-collapse-fate{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;margin-bottom:8px}
.v024f-collapse-fate .v024e-collapse-prisoner{margin:0}
.v024f-collapse-actions{display:flex;gap:6px;flex-wrap:wrap}
.v024f-collapse-actions button{min-width:86px}
@media (max-width:760px){
  .v024f-collapse-fate{grid-template-columns:1fr}
  .v024f-collapse-actions{justify-content:flex-end}
}

/* ===== ver0.24g Aldia peaceful unification ===== */
.v024g-integration-route{margin:10px 0;padding:10px 12px;border:1px solid rgba(92,194,255,.3);border-radius:10px;background:rgba(34,105,150,.12)}
.v024g-integration-route>b{display:block;color:#bfe9ff;margin-bottom:3px}.v024g-integration-route>small{display:block;color:#9fb3c8;margin-bottom:8px}
.v024g-condition-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.v024g-condition-grid span{display:flex;align-items:center;gap:6px;padding:5px 7px;border-radius:6px;font-size:11px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08)}
.v024g-condition-grid .ok{color:#9de6bd;border-color:rgba(100,220,150,.28)}.v024g-condition-grid .ng{color:#d6a8ad}.v024g-condition-grid b{width:16px;text-align:center}
.v024g-integrated-card{border-color:rgba(92,194,255,.45)!important;box-shadow:inset 0 0 24px rgba(46,146,205,.08)}
.v024g-unification-event{display:grid;grid-template-columns:minmax(240px,.82fr) minmax(320px,1.18fr);gap:20px;min-height:560px}.v024g-unification-art{position:relative;overflow:hidden;border-radius:14px;border:1px solid rgba(122,198,255,.35);background:radial-gradient(circle at 50% 25%,rgba(68,166,222,.18),rgba(6,18,32,.94) 68%)}
.v024g-unification-art img{width:100%;height:100%;object-fit:contain;object-position:center bottom}.v024g-unification-copy{display:flex;flex-direction:column;justify-content:center;padding:18px}.v024g-unification-copy h2{font-size:30px;color:#e9dba5;margin:4px 0 14px}.v024g-leia-line{padding:16px 18px;border-left:3px solid #8bd7ff;background:rgba(72,151,201,.1);font-size:16px;line-height:1.9;color:#e8f4ff;margin:0 0 18px}
@media(max-width:760px){.v024g-condition-grid{grid-template-columns:1fr}.v024g-unification-event{grid-template-columns:1fr}.v024g-unification-art{min-height:360px}.v024g-unification-copy{padding:8px}}

/* =========================================================
   ver0.24i — The Last Divine War
   ========================================================= */
.v024i-final-prelude{display:grid;grid-template-columns:minmax(280px,.82fr) minmax(360px,1.18fr);gap:22px;align-items:stretch;min-height:520px}
.v024i-final-prelude-art{position:relative;overflow:hidden;border:1px solid rgba(222,171,74,.48);border-radius:18px;background:radial-gradient(circle at 50% 35%,rgba(220,73,212,.22),rgba(12,7,20,.92) 72%)}
.v024i-final-prelude-art img{width:100%;height:100%;object-fit:cover;object-position:50% 22%;display:block;filter:saturate(1.08) contrast(1.04)}
.v024i-final-prelude-art:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(5,3,12,.92));pointer-events:none}
.v024i-final-prelude-copy{padding:10px 8px 10px 0;display:flex;flex-direction:column;justify-content:center;gap:14px}
.v024i-final-prelude-copy h2{margin:0;font-size:28px;color:#f3d78a}
.v024i-final-prelude-copy p{margin:0;line-height:1.85}
.v024i-god-line{padding:15px 18px;border-left:3px solid #c553d8;background:rgba(110,37,118,.18);font-family:serif;font-size:17px;color:#f3d9f8}
.v024i-final-rules{display:flex;flex-wrap:wrap;gap:8px}.v024i-final-rules span{padding:7px 10px;border:1px solid rgba(206,113,226,.35);border-radius:999px;background:rgba(72,27,84,.3);font-size:12px}
.v024i-final-conditions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.v024i-final-conditions>div{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;align-items:center;padding:10px;border:1px solid rgba(220,178,84,.28);border-radius:10px;background:rgba(9,20,36,.62)}.v024i-final-conditions span{grid-row:1/3;font-size:20px;color:#e8c164}.v024i-final-conditions b{font-size:13px}.v024i-final-conditions small{font-size:11px;opacity:.75}
.v024i-final-back{background:radial-gradient(circle at 70% 38%,rgba(149,26,115,.28),rgba(2,6,16,.91) 60%,#02040a 100%)}
.v024i-final-tactical{border-color:rgba(226,80,192,.42)!important;box-shadow:0 0 0 1px rgba(255,211,110,.18) inset,0 0 42px rgba(119,15,113,.28)!important}
.v024i-final-header h2{color:#f2d99b}.v024i-final-header .eyebrow{color:#ec87df}
.v024i-boss-status{display:flex;align-items:center;gap:12px;margin:8px 0 10px;padding:9px 12px;border:1px solid rgba(231,88,197,.35);border-radius:12px;background:linear-gradient(90deg,rgba(68,16,71,.64),rgba(15,16,35,.72))}.v024i-boss-status>img{width:54px;height:54px;object-fit:cover;border-radius:50%;border:2px solid #d68fe6}.v024i-boss-status>div{flex:1;min-width:0}.v024i-boss-status b,.v024i-boss-status small{display:block}.v024i-boss-status b{color:#f1d8f7}.v024i-boss-status small{margin-top:3px;color:#c8b6cd;font-size:11px}.v024i-boss-hp{height:9px;margin-top:6px;border-radius:99px;background:#271527;overflow:hidden;border:1px solid rgba(255,255,255,.08)}.v024i-boss-hp i{display:block;height:100%;background:linear-gradient(90deg,#9f244c,#d741b2,#f09cea);box-shadow:0 0 12px #d741b2}
.v024i-final-board{background:radial-gradient(circle at 80% 48%,rgba(137,34,131,.25),transparent 30%),radial-gradient(circle at 45% 48%,rgba(54,83,121,.18),transparent 36%),linear-gradient(rgba(8,12,23,.92),rgba(5,7,14,.96))!important}
.v024i-final-boss-unit{overflow:visible!important;border-color:#d468d4!important;background:radial-gradient(circle,rgba(127,27,119,.72),rgba(36,9,39,.94))!important;box-shadow:0 0 18px rgba(229,75,209,.65),0 0 0 2px rgba(250,196,104,.35) inset!important;z-index:8!important}
.v024i-final-boss-unit>img{position:absolute;width:116px!important;height:116px!important;max-width:none!important;object-fit:contain!important;left:50%;top:50%;transform:translate(-50%,-62%);filter:drop-shadow(0 0 9px rgba(238,88,218,.8));z-index:3;pointer-events:none}
.v024i-final-boss-unit .tactical-unit-name{z-index:7!important;background:rgba(15,5,20,.9)!important;color:#f3cce9!important}.v024i-final-boss-unit .tactical-hp,.v024i-final-boss-unit .tactical-hp-text{z-index:7!important}
.v024i-boss-phase{position:absolute;right:-14px;top:-13px;z-index:9;padding:2px 6px;border-radius:6px;background:#6e145d;color:#ffe7fb;border:1px solid #ee9ddf;font-size:8px;font-weight:800;white-space:nowrap}
.v024i-boss-aura{position:absolute;left:50%;top:50%;border:1px solid rgba(238,107,227,.58);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}.v024i-boss-aura.a{width:102px;height:102px;animation:v024iBossPulse 2.2s ease-in-out infinite}.v024i-boss-aura.b{width:132px;height:132px;border-style:dashed;animation:v024iBossSpin 8s linear infinite}
@keyframes v024iBossPulse{50%{transform:translate(-50%,-50%) scale(1.1);opacity:.35}}@keyframes v024iBossSpin{to{transform:translate(-50%,-50%) rotate(360deg)}}
.v024i-final-core{overflow:visible!important;border-color:#9e57bc!important;background:radial-gradient(circle,rgba(124,60,157,.68),rgba(31,14,49,.94))!important;box-shadow:0 0 14px rgba(180,87,215,.5)!important}.v024i-core-orb{font-size:30px;color:#efb5ff;text-shadow:0 0 10px #ce5be8;animation:v024iCore 1.3s ease-in-out infinite alternate}@keyframes v024iCore{to{transform:scale(1.16);filter:brightness(1.35)}}
.v024i-lilia-guest{box-shadow:0 0 18px rgba(125,203,255,.75),0 0 0 2px rgba(242,221,143,.35) inset!important}
.v024i-boss-selected img{width:56px;height:56px;object-fit:cover;border-radius:10px;float:left;margin:0 10px 7px 0}.v024i-boss-selected small,.v024i-core-selected small{display:block;clear:both;margin-top:8px;color:#e6b8df}
.v024i-final-impact,.v024i-ragnarok-cast{position:absolute;inset:0;z-index:999;pointer-events:none;display:flex;align-items:center;justify-content:center;opacity:0;transition:.16s ease;background:radial-gradient(circle,rgba(213,63,194,.22),rgba(5,3,12,.12) 40%,transparent 70%)}.v024i-final-impact.active,.v024i-ragnarok-cast.active{opacity:1}.v024i-impact-ring{position:absolute;width:230px;height:230px;border-radius:50%;border:3px solid #df85e6;box-shadow:0 0 45px #cf42cb,0 0 100px rgba(84,165,255,.28);animation:v024iImpact .55s ease-out forwards}@keyframes v024iImpact{from{transform:scale(.25) rotate(-25deg);opacity:.2}to{transform:scale(1.8) rotate(25deg);opacity:0}}
.v024i-impact-copy{position:relative;text-align:center;padding:16px 26px;border:1px solid rgba(255,226,157,.55);background:rgba(8,9,23,.82);border-radius:12px}.v024i-impact-copy small,.v024i-impact-copy b,.v024i-impact-copy span{display:block}.v024i-impact-copy b{font-size:20px;color:#f0d88a;margin:4px 0}.v024i-impact-copy span{color:#f2b6eb;font-weight:800}.v024i-ragnarok-cast{flex-direction:column;color:#f5dc92;text-shadow:0 0 18px #5cb9ff}.v024i-ragnarok-cast div{font-size:26px;letter-spacing:8px}.v024i-ragnarok-cast b{font-size:30px;margin-top:8px}
.v024i-final-result{text-align:center;max-width:720px;margin:auto}.v024i-final-result>img{width:150px;height:150px;object-fit:cover;border-radius:50%;border:2px solid rgba(241,198,106,.6);margin:8px auto 14px;display:block}.v024i-final-result.victory .result-big{color:#f0d676}.v024i-final-result.defeat .result-big{color:#dc728a}.v024i-finisher{margin:18px 0;padding:14px;border:1px solid rgba(240,212,118,.38);background:rgba(51,31,77,.32)}.v024i-finisher small,.v024i-finisher b{display:block}.v024i-finisher b{font-size:21px;color:#f1d479;margin-top:4px}
.v024i-true-ending{max-width:880px;text-align:center;margin:auto}.v024i-ending-duo{display:grid;grid-template-columns:1fr 1fr;height:280px;overflow:hidden;border:1px solid rgba(230,194,111,.38);border-radius:16px;margin:14px 0;background:#0b0d18}.v024i-ending-duo img{width:100%;height:100%;object-fit:cover;object-position:50% 25%}.v024i-ending-duo img:first-child{object-position:50% 18%}.v024i-true-ending>p{line-height:1.9}
.v024i-final-entry{margin-left:auto!important;border:1px solid rgba(223,83,203,.55)!important;background:linear-gradient(180deg,rgba(121,27,111,.95),rgba(53,15,62,.98))!important;box-shadow:0 0 16px rgba(203,62,194,.32)!important;color:#ffe0f7!important;min-width:104px!important}.v024i-final-entry b,.v024i-final-entry small{display:block}.v024i-final-entry small{font-size:9px;opacity:.8}
@media(max-width:760px){.v024i-final-prelude{grid-template-columns:1fr}.v024i-final-prelude-art{min-height:300px}.v024i-final-prelude-copy{padding:0}.v024i-final-conditions{grid-template-columns:1fr}.v024i-final-boss-unit>img{width:94px!important;height:94px!important}.v024i-ending-duo{height:220px}}

/* =========================================================
   ver0.24j base — World-map End Gate + Final Battle UI repair
   ========================================================= */
/* The final battle adds two extra header bands, so make the modal a real flex column.
   This prevents the side-panel action row from falling below the viewport. */
.v024i-final-tactical{
  display:flex!important;
  flex-direction:column!important;
  height:min(96vh,920px)!important;
  max-height:96vh!important;
  overflow:hidden!important;
}
.v024i-final-tactical>.tactical-header,
.v024i-final-tactical>.v024i-boss-status,
.v024i-final-tactical>.tactical-phase{flex:0 0 auto!important}
.v024i-final-tactical>.tactical-layout{
  flex:1 1 auto!important;
  height:auto!important;
  min-height:0!important;
  overflow:hidden!important;
}
.v024i-final-tactical .tactical-board-wrap,
.v024i-final-tactical .tactical-side-panel{min-height:0!important}
.v024i-final-tactical .tactical-side-panel{
  grid-template-rows:auto minmax(0,1fr) auto!important;
  overflow:hidden!important;
}
.v024i-final-tactical .tactical-log{min-height:0!important;overflow:auto!important}
.v024i-final-tactical .tactical-actions{
  position:relative!important;
  z-index:30!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) .72fr!important;
  gap:7px!important;
  padding-top:7px!important;
  background:linear-gradient(180deg,rgba(4,9,17,.15),rgba(4,9,17,.96) 38%)!important;
}
.v024i-final-tactical .tactical-actions button{min-height:38px!important;font-size:11px!important;font-weight:900!important}
.v024j-final-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex:0 0 auto}
.v024j-turn-end-top{
  min-width:132px;height:44px;padding:4px 13px!important;
  display:grid;grid-template-columns:22px 1fr;grid-template-rows:1fr 1fr;align-items:center;
  border:1px solid #e6bf65!important;border-radius:8px!important;
  background:linear-gradient(180deg,#7d5920,#3f2b0e)!important;color:#fff0b0!important;
  box-shadow:0 0 12px rgba(221,177,77,.22),inset 0 0 0 1px rgba(255,244,190,.08)!important;
}
.v024j-turn-end-top>span{grid-row:1/3;font-size:18px}.v024j-turn-end-top>b{font-size:12px;line-height:1}.v024j-turn-end-top>small{font-size:8px;color:#cfbb82;line-height:1}
.v024j-turn-end-top:disabled{opacity:.46;filter:grayscale(.7);cursor:not-allowed}

/* World-map gate. It is an overlay on mapStage, so it never changes dock width or page flow. */
.v024j-end-gate-marker{
  position:absolute;z-index:210;left:88.5%;top:12.5%;transform:translate(-50%,-50%);
  width:86px;height:86px;padding:0;border:0!important;background:transparent!important;
  color:#ffe2f8;cursor:pointer;overflow:visible!important;filter:none!important;
}
.v024j-end-gate-marker .v024j-gate-core{
  position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);z-index:4;
  width:44px;height:44px;display:grid;place-items:center;border-radius:50%;
  border:2px solid #ef9be8;background:radial-gradient(circle,#b941aa 0 22%,#57155d 45%,#160a28 78%);
  color:#fff1ff;font-size:25px;text-shadow:0 0 10px #fff,0 0 20px #ee5ee4;
  box-shadow:0 0 11px #e451d7,0 0 28px rgba(212,59,202,.72),inset 0 0 14px rgba(255,218,252,.22);
}
.v024j-gate-aura{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none}
.v024j-gate-aura.aura-a{width:64px;height:64px;border:2px solid rgba(239,124,226,.65);box-shadow:0 0 18px rgba(231,78,216,.5);animation:v024jGatePulse 1.8s ease-in-out infinite}
.v024j-gate-aura.aura-b{width:82px;height:82px;border:1px dashed rgba(255,211,112,.72);animation:v024jGateSpin 9s linear infinite}
.v024j-gate-copy{position:absolute;left:50%;top:68px;transform:translateX(-50%);display:block;min-width:92px;padding:4px 7px;border-radius:7px;border:1px solid rgba(238,154,224,.65);background:rgba(10,7,20,.92);box-shadow:0 5px 12px rgba(0,0,0,.66);white-space:nowrap;text-align:center}
.v024j-gate-copy b,.v024j-gate-copy small{display:block}.v024j-gate-copy b{font-size:9px;color:#ffe2f7}.v024j-gate-copy small{margin-top:1px;font-size:6px;letter-spacing:.08em;color:#db9ad4}
.v024j-end-gate-marker:hover .v024j-gate-core{transform:translate(-50%,-50%) scale(1.12);box-shadow:0 0 14px #ff8ff2,0 0 38px rgba(230,67,217,.92)}
.v024j-end-gate-marker.sealed{opacity:.62;filter:grayscale(.45)!important}.v024j-end-gate-marker.sealed .v024j-gate-aura{animation:none}
@keyframes v024jGatePulse{50%{transform:translate(-50%,-50%) scale(1.16);opacity:.42}}
@keyframes v024jGateSpin{to{transform:translate(-50%,-50%) rotate(360deg)}}

/* The old dock injection caused the bottom command bar to overflow. Never show the old dock injection. */
.v024i-final-entry{display:none!important}

@media(max-width:900px){
  .v024j-final-header-actions{gap:5px}.v024j-turn-end-top{min-width:108px;height:38px;padding:3px 8px!important}.v024j-turn-end-top small{display:none}
  .v024j-end-gate-marker{width:68px;height:68px}.v024j-gate-aura.aura-a{width:52px;height:52px}.v024j-gate-aura.aura-b{width:64px;height:64px}.v024j-end-gate-marker .v024j-gate-core{width:36px;height:36px;font-size:20px}.v024j-gate-copy{top:55px;min-width:74px}.v024j-gate-copy b{font-size:8px}
}
@media(max-width:650px){
  .v024i-final-tactical .v024i-boss-status{margin:3px 0 4px!important;padding:5px 7px!important}.v024i-final-tactical .v024i-boss-status>img{width:38px;height:38px}
  .v024j-turn-end-top{min-width:94px}.v024j-turn-end-top>span{font-size:14px}.v024j-turn-end-top>b{font-size:10px}
  .v024j-end-gate-marker{left:86%;top:13%}
}


/* =========================================================
   ver0.24k — End Gate world-map layout hard fix
   - Gate is always visible on the world map (locked/open/sealed).
   - Uses a normal stronghold-sized footprint instead of an 86px floating orb.
   - Located in the north-west ocean to avoid overlap with t29/t30.
   - It never participates in bottom-dock/grid layout.
   ========================================================= */
.v024j-end-gate-marker{
  left:12%!important;
  top:10.5%!important;
  width:62px!important;
  height:66px!important;
  z-index:205!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  transform:translate(-50%,-50%)!important;
  overflow:visible!important;
  isolation:isolate;
}
.v024j-end-gate-marker::before,
.v024j-end-gate-marker::after{content:none!important}
.v024j-end-gate-marker .v024j-gate-core,
.v024j-end-gate-marker .v024j-gate-aura{display:none!important}
.v024k-gate-rift{
  position:absolute;
  left:50%;top:24px;
  width:52px;height:34px;
  transform:translate(-50%,-50%);
  border-radius:50%;
  border:1px solid rgba(213,140,229,.7);
  background:radial-gradient(ellipse at center,rgba(238,111,230,.22),rgba(84,24,108,.12) 48%,transparent 72%);
  box-shadow:0 0 11px rgba(221,94,222,.55),inset 0 0 9px rgba(255,217,251,.12);
  pointer-events:none;
  z-index:0;
}
.v024k-gate-icon{
  position:absolute;
  left:50%;top:22px;
  width:48px;height:39px;
  transform:translate(-50%,-50%);
  display:grid;
  place-items:center;
  z-index:2;
  pointer-events:none;
}
.v024k-gate-icon img{
  display:block!important;
  width:48px!important;
  height:39px!important;
  margin:0!important;
  object-fit:contain!important;
  filter:hue-rotate(238deg) saturate(1.25) brightness(.95) drop-shadow(0 4px 4px rgba(0,0,0,.78)) drop-shadow(0 0 7px rgba(218,92,219,.55))!important;
}
.v024k-gate-icon i{
  position:absolute;
  right:-2px;top:-3px;
  width:16px;height:16px;
  display:grid;place-items:center;
  border-radius:50%;
  border:1px solid #e7c57d;
  background:#26122f;
  color:#ffe9a9;
  font-size:8px;
  font-style:normal;
  line-height:1;
  box-shadow:0 2px 6px rgba(0,0,0,.7),0 0 7px rgba(220,115,221,.5);
}
.v024j-gate-copy{
  position:absolute!important;
  left:50%!important;
  top:43px!important;
  transform:translateX(-50%)!important;
  min-width:82px!important;
  max-width:92px!important;
  padding:3px 5px!important;
  border-radius:5px!important;
  border:1px solid rgba(213,177,100,.55)!important;
  background:linear-gradient(180deg,rgba(22,15,37,.97),rgba(7,10,19,.98))!important;
  box-shadow:0 4px 8px rgba(0,0,0,.48)!important;
  text-align:center!important;
  white-space:nowrap!important;
  pointer-events:none!important;
  z-index:4!important;
}
.v024j-gate-copy b{
  display:block!important;
  font-size:7px!important;
  line-height:1.25!important;
  color:#f6e1f7!important;
  letter-spacing:.02em!important;
}
.v024j-gate-copy small{
  display:block!important;
  margin-top:1px!important;
  font-size:5px!important;
  line-height:1.2!important;
  color:#bca5c6!important;
  letter-spacing:.03em!important;
}
.v024j-end-gate-marker.locked{opacity:.76!important;filter:grayscale(.28) brightness(.82)!important}
.v024j-end-gate-marker.locked .v024k-gate-rift{animation:none!important;box-shadow:0 0 6px rgba(165,132,180,.28)!important}
.v024j-end-gate-marker.open{opacity:1!important;filter:none!important}
.v024j-end-gate-marker.open .v024k-gate-rift{animation:v024kGateRiftPulse 1.7s ease-in-out infinite}
.v024j-end-gate-marker.open .v024j-gate-copy{border-color:rgba(239,153,229,.82)!important;box-shadow:0 0 8px rgba(217,86,211,.28),0 4px 8px rgba(0,0,0,.5)!important}
.v024j-end-gate-marker.sealed{opacity:.66!important;filter:grayscale(.55) brightness(.72)!important}
.v024j-end-gate-marker:hover .v024k-gate-icon{transform:translate(-50%,-50%) scale(1.07)!important}
.v024j-end-gate-marker:focus-visible{outline:2px solid #f2d37c!important;outline-offset:4px!important}
@keyframes v024kGateRiftPulse{50%{transform:translate(-50%,-50%) scale(1.12);opacity:.56}}

/* Old dock entry must not affect width/height even when an older save path tries to create it. */
.v024i-final-entry{display:none!important;position:absolute!important;width:0!important;height:0!important;overflow:hidden!important;pointer-events:none!important}

@media(max-width:900px){
  .v024j-end-gate-marker{left:12%!important;top:10.5%!important;width:56px!important;height:60px!important}
  .v024k-gate-icon{top:20px!important;width:42px!important;height:34px!important}
  .v024k-gate-icon img{width:42px!important;height:34px!important}
  .v024k-gate-rift{top:21px!important;width:46px!important;height:30px!important}
  .v024j-gate-copy{top:39px!important;min-width:72px!important;max-width:78px!important;padding:2px 4px!important}
  .v024j-gate-copy b{font-size:6px!important}
  .v024j-gate-copy small{font-size:4.5px!important}
}
@media(max-width:650px){
  .v024j-end-gate-marker{left:13%!important;top:11%!important;width:52px!important;height:56px!important}
  .v024k-gate-icon{top:19px!important;width:38px!important;height:31px!important}
  .v024k-gate-icon img{width:38px!important;height:31px!important}
  .v024k-gate-rift{top:20px!important;width:42px!important;height:27px!important}
  .v024j-gate-copy{top:36px!important;min-width:67px!important;max-width:72px!important}
  .v024j-gate-copy small{display:none!important}
}


/* ver0.24m — Mythic / Divine equipment */
.item-rarity.mythic{background:linear-gradient(135deg,rgba(139,88,212,.26),rgba(57,113,205,.18));color:#d7b8ff;border:1px solid rgba(190,145,255,.25)}
.item-rarity.divine{background:linear-gradient(135deg,rgba(213,166,57,.28),rgba(164,61,72,.22));color:#ffe39a;border:1px solid rgba(255,216,112,.36);box-shadow:0 0 10px rgba(241,191,76,.12)}
.item-tier-badge{font-size:7px;font-weight:900;letter-spacing:.08em;color:#8593a7;border:1px solid rgba(255,255,255,.08);border-radius:999px;padding:2px 5px}
.shop-item.tier-4:not(.locked){border-color:rgba(177,125,236,.32);background:linear-gradient(135deg,rgba(94,53,132,.10),rgba(255,255,255,.025))}
.shop-item.tier-5:not(.locked){border-color:rgba(231,190,83,.42);background:linear-gradient(135deg,rgba(139,78,28,.13),rgba(99,36,55,.09));box-shadow:inset 0 0 18px rgba(225,180,67,.035)}
.v024m-shop-progress{margin:8px 0 10px;padding:8px 10px;border:1px solid rgba(231,198,109,.18);border-radius:10px;background:rgba(231,198,109,.045);color:#c9b77f;font-size:9px;line-height:1.5}

/* =========================================================
   ver0.24w — Canon Ending / Ragnarok Reconciliation
   ========================================================= */
.v024w-ending-shell{max-width:1040px;margin:auto;text-align:center;color:#eef1f7}
.v024w-ending-header{margin-bottom:14px}.v024w-ending-header h2{font-size:clamp(23px,3.5vw,38px);margin:6px 0;color:#f4e4ad}.v024w-ending-header p{margin:0 auto;max-width:760px;color:#c9c8d5;line-height:1.75}
.v024w-story{max-width:820px;margin:18px auto 0;text-align:left;line-height:1.9;font-size:14px}.v024w-story p{margin:10px 0}.v024w-story blockquote{margin:16px 0;padding:12px 16px;border-left:3px solid rgba(235,190,101,.8);background:rgba(255,255,255,.045);color:#f6e8bd;font-size:16px}
.v024w-ending-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.v024w-ending-nav>span{font-size:11px;color:#9fa6ba;letter-spacing:.12em}.v024w-ending-nav>div{display:flex;gap:8px}
.v024w-sisters-art{display:grid;grid-template-columns:minmax(0,1fr) 120px minmax(0,1fr);align-items:center;gap:12px;min-height:380px;margin:14px 0;border:1px solid rgba(222,170,242,.26);border-radius:18px;overflow:hidden;background:radial-gradient(circle at 50% 30%,rgba(206,78,232,.18),rgba(8,8,17,.88) 58%)}
.v024w-sisters-art figure{height:380px;margin:0;position:relative;overflow:hidden}.v024w-sisters-art img{width:100%;height:100%;object-fit:contain}.v024w-sisters-art figcaption{position:absolute;left:8px;right:8px;bottom:8px;padding:7px;border-radius:10px;background:rgba(7,7,15,.72);font-size:11px;color:#f4e4ad}
.v024w-reconcile-mark{display:grid;place-items:center;gap:3px;color:#d275df;font-weight:900}.v024w-reconcile-mark>small{font-size:8px;color:#8f8a9d}.v024w-reconcile-mark>b{font-size:25px;color:#f0d57c}.v024w-reconcile-mark>span{font-size:38px;color:#f0d57c;text-shadow:0 0 18px rgba(224,114,232,.55)}
.v024w-covenant{display:grid;grid-template-columns:190px 1fr 190px;gap:18px;align-items:center;margin:18px 0;padding:16px;border:1px solid rgba(227,193,112,.25);border-radius:18px;background:linear-gradient(135deg,rgba(56,26,72,.42),rgba(17,25,44,.62))}.v024w-covenant>img{width:100%;height:300px;object-fit:contain}.v024w-covenant>div{line-height:1.85;text-align:left}.v024w-covenant blockquote{color:#f4dfab;text-align:center;font-size:16px}.v024w-covenant-seal{text-align:center;border:1px solid rgba(233,198,111,.42);padding:12px;margin-bottom:14px;color:#cdbf99}.v024w-covenant-seal b{display:block;margin-top:3px;color:#f4db91;letter-spacing:.12em}
.v024w-pope-scene{display:grid;grid-template-columns:minmax(260px,.9fr) 1.25fr;gap:22px;align-items:center}.v024w-pope-art{height:430px;overflow:hidden;border-radius:18px;background:radial-gradient(circle,rgba(194,74,220,.18),transparent 62%)}.v024w-pope-art img{width:100%;height:100%;object-fit:contain}.v024w-church-merge{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px}.v024w-church-merge span,.v024w-church-merge strong{padding:8px 10px;border:1px solid rgba(231,196,112,.25);border-radius:999px}.v024w-church-merge strong{color:#f2d77e;background:rgba(215,172,73,.09)}.v024w-title-card{margin:16px 0;padding:14px;border:1px solid rgba(229,193,105,.35);text-align:center;background:rgba(118,66,140,.12)}.v024w-title-card>*{display:block}.v024w-title-card small{font-size:9px;letter-spacing:.15em;color:#a9a0b9}.v024w-title-card b{margin:5px 0;color:#f4df9e;font-size:22px}.v024w-title-card span{color:#d9d5e1}
.v024w-continent-scene{position:relative;height:420px;overflow:hidden;border-radius:20px;background:radial-gradient(circle at 70% 48%,rgba(101,193,226,.2),transparent 24%),radial-gradient(circle at 60% 35%,rgba(202,80,225,.18),transparent 52%),#090d18}.v024w-continent-scene>img{position:absolute;left:4%;bottom:0;height:96%;width:48%;object-fit:contain;z-index:2}.v024w-continent-orb{position:absolute;right:7%;top:15%;width:42%;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#8acb9a 0 18%,#4d8db2 19% 36%,#16243f 37% 61%,transparent 62%);box-shadow:0 0 60px rgba(108,181,226,.25),inset 0 0 35px rgba(255,255,255,.16)}.v024w-continent-orb span{font-size:22px;letter-spacing:.28em;color:#f4e4ad;text-shadow:0 2px 10px #000}.v024w-continent-orb i{position:absolute;inset:8%;border:1px solid rgba(217,157,237,.35);border-radius:48% 52% 46% 54%/58% 44% 56% 42%;transform:rotate(24deg)}.v024w-continent-orb i:nth-of-type(2){inset:17%;transform:rotate(82deg)}.v024w-continent-orb i:nth-of-type(3){inset:26%;transform:rotate(141deg)}.v024w-big-name{margin:18px auto;text-align:center}.v024w-big-name small,.v024w-big-name b{display:block}.v024w-big-name small{font-size:9px;letter-spacing:.18em;color:#93a4be}.v024w-big-name b{font-size:32px;color:#f1d888}
.v024w-migration-scene{display:grid;grid-template-columns:220px 1fr 220px;align-items:end;gap:14px;min-height:410px;margin:14px 0;padding:12px;border-radius:18px;background:linear-gradient(180deg,rgba(85,118,157,.12),rgba(24,37,53,.52)),linear-gradient(0deg,rgba(47,84,110,.18),transparent)}.v024w-migration-scene figure{height:390px;margin:0;position:relative;overflow:hidden}.v024w-migration-scene img{width:100%;height:100%;object-fit:contain}.v024w-migration-scene figcaption{position:absolute;left:4px;right:4px;bottom:4px;padding:7px;background:rgba(8,12,20,.76);border-radius:9px;color:#f1dfad;font-size:10px}.v024w-route-line{align-self:center;display:grid;gap:9px;text-align:center}.v024w-route-line span{color:#a7afc1}.v024w-route-line b{font-size:26px;letter-spacing:.16em}.v024w-route-line i{font-size:28px;color:#e1c36e}.v024w-route-line strong{font-size:18px;color:#f0db9a}
.v024w-final-tableau{display:grid;grid-template-columns:1fr minmax(220px,.8fr) 1fr;gap:12px;align-items:center;min-height:410px}.v024w-final-tableau>div:first-child,.v024w-final-tableau>div:last-child{height:380px;position:relative}.v024w-final-tableau img{width:100%;height:100%;object-fit:contain}.v024w-final-tableau span{position:absolute;left:6px;right:6px;bottom:5px;padding:8px;border-radius:10px;background:rgba(7,8,14,.78);font-size:10px}.v024w-final-tableau span b{color:#f4dfa2}.v024w-fin-copy{display:flex;flex-direction:column;gap:8px;align-items:center}.v024w-fin-copy small{letter-spacing:.13em;color:#a9a2b4}.v024w-fin-copy b{font-size:20px;color:#f0d98f}.v024w-fin-copy strong{margin-top:18px;font-size:34px;letter-spacing:.12em;color:#fff}.v024w-era-line{text-align:center!important;font-size:17px!important}.v024w-era-line b{color:#f1dc96}.v024w-clear-summary{max-width:760px;margin:18px auto}
.v024w-scc3-teaser{max-width:880px;margin:auto;text-align:center}.v024w-horizon{height:300px;position:relative;overflow:hidden;border-radius:18px;margin-bottom:18px;background:linear-gradient(180deg,#1e2640 0%,#8f607d 45%,#d59a79 57%,#243a56 58%,#0d1d32 100%)}.v024w-sun{position:absolute;width:86px;height:86px;border-radius:50%;background:#f4d28e;left:50%;top:36%;transform:translate(-50%,-50%);box-shadow:0 0 45px rgba(244,210,142,.48)}.v024w-sea{position:absolute;left:0;right:0;bottom:0;height:43%;background:repeating-linear-gradient(178deg,rgba(255,255,255,.08) 0 2px,transparent 2px 15px),linear-gradient(#294861,#0c1c31)}.v024w-ship{position:absolute;left:48%;bottom:20%;font-size:56px;filter:drop-shadow(0 5px 6px rgba(0,0,0,.45))}.v024w-scc3-teaser>small{display:block;letter-spacing:.2em;color:#a8a7b4}.v024w-scc3-teaser h2{font-size:clamp(36px,7vw,64px);margin:5px 0;color:#f1d78b}.v024w-scc3-teaser p{line-height:1.9}.v024w-scc3-date{margin:18px 0;color:#988fa2;letter-spacing:.12em;font-size:10px}
@media(max-width:760px){.v024w-sisters-art{grid-template-columns:1fr 62px 1fr;min-height:280px}.v024w-sisters-art figure{height:280px}.v024w-covenant{grid-template-columns:90px 1fr 90px;gap:8px;padding:8px}.v024w-covenant>img{height:220px}.v024w-pope-scene{grid-template-columns:1fr}.v024w-pope-art{height:300px}.v024w-continent-scene{height:330px}.v024w-continent-scene>img{width:56%;left:-3%}.v024w-continent-orb{width:48%;right:2%;top:20%}.v024w-migration-scene{grid-template-columns:95px 1fr 95px;min-height:290px}.v024w-migration-scene figure{height:280px}.v024w-route-line b{font-size:18px}.v024w-route-line strong{font-size:13px}.v024w-final-tableau{grid-template-columns:1fr 150px 1fr;min-height:300px}.v024w-final-tableau>div:first-child,.v024w-final-tableau>div:last-child{height:290px}.v024w-fin-copy b{font-size:13px}.v024w-fin-copy strong{font-size:24px}.v024w-story{font-size:13px}.v024w-ending-nav{align-items:flex-end}.v024w-ending-nav>div{flex-wrap:wrap;justify-content:flex-end}}
@media(max-width:480px){.v024w-covenant{grid-template-columns:1fr}.v024w-covenant>img{display:none}.v024w-sisters-art{grid-template-columns:1fr 44px 1fr}.v024w-sisters-art figure{height:240px}.v024w-migration-scene{grid-template-columns:76px 1fr 76px}.v024w-migration-scene figure{height:230px}.v024w-final-tableau{grid-template-columns:1fr 105px 1fr}.v024w-final-tableau>div:first-child,.v024w-final-tableau>div:last-child{height:245px}.v024w-final-tableau span{font-size:8px}}


/* ========================================================================== */
/* v0.25a — Orchestral BGM controls                                           */
/* ========================================================================== */
.scc2-music-dock{
  position:fixed;z-index:2200;right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));
  width:min(360px,calc(100vw - 24px));color:#f7f2e4;font-size:12px;filter:drop-shadow(0 14px 30px rgba(0,0,0,.55));
}
.scc2-music-summary{
  width:100%;display:grid;grid-template-columns:34px minmax(0,1fr) 20px;align-items:center;gap:8px;
  padding:8px 10px;border:1px solid rgba(231,198,116,.38);border-radius:14px;
  background:linear-gradient(180deg,rgba(20,31,50,.96),rgba(7,13,24,.97));color:inherit;text-align:left;
}
.scc2-music-summary:hover{border-color:rgba(247,219,145,.66);filter:brightness(1.06)}
.scc2-music-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:rgba(231,198,116,.13);border:1px solid rgba(231,198,116,.36);color:#f2d78a;font-size:17px}
.scc2-music-dock.is-playing .scc2-music-icon{animation:scc2MusicPulse 1.8s ease-in-out infinite}
.scc2-music-dock.is-muted .scc2-music-icon{opacity:.48;animation:none}
.scc2-music-copy{min-width:0;display:block}
.scc2-music-copy b,.scc2-music-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.scc2-music-copy b{font-size:11px;color:#fff0bd}
.scc2-music-copy small{margin-top:2px;color:#aebcd0;font-size:9px}
.scc2-music-chevron{color:#d9c78f;text-align:center;transition:transform .18s ease}
.scc2-music-summary[aria-expanded="true"] .scc2-music-chevron{transform:rotate(180deg)}
.scc2-music-panel{
  margin-bottom:7px;padding:12px;border:1px solid rgba(231,198,116,.30);border-radius:16px;
  background:linear-gradient(180deg,rgba(11,21,37,.985),rgba(4,10,20,.99));box-shadow:0 16px 50px rgba(0,0,0,.48);
}
.scc2-music-field{display:block;margin-bottom:11px;color:#d7e1ef}
.scc2-music-field>span{display:flex;justify-content:space-between;margin-bottom:6px;font-weight:800;color:#f1dfaa}
.scc2-music-field select{width:100%;padding:9px 10px;border-radius:10px;border:1px solid rgba(255,255,255,.15);background:#111b2b;color:#fff}
.scc2-music-field input[type="range"]{width:100%;accent-color:#d9bb67}
.scc2-music-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.scc2-music-actions button{padding:8px 10px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:#fff;font-weight:800}
.scc2-music-actions button:first-child{border-color:rgba(231,198,116,.34);color:#f4dc99}
.scc2-music-panel p{margin:10px 0 0;color:#90a1b8;font-size:9px;line-height:1.55}
@keyframes scc2MusicPulse{0%,100%{box-shadow:0 0 0 0 rgba(231,198,116,.10)}50%{box-shadow:0 0 0 6px rgba(231,198,116,.025)}}
@media(max-width:680px){
  .scc2-music-dock{right:max(7px,env(safe-area-inset-right));bottom:max(7px,env(safe-area-inset-bottom));width:min(290px,calc(100vw - 14px))}
  .scc2-music-summary{grid-template-columns:30px minmax(0,1fr) 18px;padding:6px 8px}
  .scc2-music-icon{width:27px;height:27px;font-size:15px}
  .scc2-music-copy b{font-size:10px}.scc2-music-copy small{font-size:8px}
}

/* ========================================================================== */
/* v0.25b — Turn-end accessibility / compact BGM control                     */
/* ========================================================================== */
/* Keep the music control clear of the primary phase-end command. */
.scc2-music-dock{
  z-index:45;
  right:max(12px,env(safe-area-inset-right));
  bottom:calc(94px + env(safe-area-inset-bottom));
  width:48px;
  transition:width .18s ease,bottom .18s ease,filter .18s ease;
}
.scc2-music-dock.is-open{
  z-index:2200;
  width:min(360px,calc(100vw - 24px));
}
.scc2-music-summary{
  width:48px;
  min-width:48px;
  height:48px;
  grid-template-columns:1fr;
  justify-items:center;
  padding:6px;
  border-radius:50%;
}
.scc2-music-copy,.scc2-music-chevron{display:none}
.scc2-music-dock.is-open .scc2-music-summary{
  width:100%;
  height:auto;
  min-width:0;
  grid-template-columns:34px minmax(0,1fr) 20px;
  justify-items:stretch;
  padding:8px 10px;
  border-radius:14px;
}
.scc2-music-dock.is-open .scc2-music-copy{display:block}
.scc2-music-dock.is-open .scc2-music-chevron{display:block}

/* Give the most important command a larger, unobstructed hit target. */
.v014-dock .brig-dock-actions{
  grid-template-columns:repeat(9,minmax(76px,1fr)) minmax(154px,1.55fr);
}
.v014-dock .dock-command.end-turn{
  position:relative;
  z-index:70;
  min-width:154px;
  min-height:68px;
  border-width:2px;
  cursor:pointer;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.11),0 0 0 2px rgba(240,205,121,.10),0 8px 22px rgba(0,0,0,.34);
}
.v014-dock .dock-command.end-turn:hover,
.v014-dock .dock-command.end-turn:focus-visible{
  transform:translateY(-2px);
  filter:brightness(1.14);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.14),0 0 0 3px rgba(240,205,121,.22),0 10px 26px rgba(0,0,0,.42);
}
.v014-dock .dock-command.end-turn span{font-size:1.35rem}
.v014-dock .dock-command.end-turn b{font-size:.9rem;letter-spacing:.04em}
.v014-dock .dock-command.end-turn small{font-size:.68rem}

@media(max-width:1250px){
  .v014-dock .brig-dock-actions{grid-template-columns:repeat(5,minmax(82px,1fr))}
  .v014-dock .dock-command.end-turn{grid-column:span 2;min-width:0}
  .scc2-music-dock{bottom:calc(142px + env(safe-area-inset-bottom))}
}
@media(max-width:900px){
  .scc2-music-dock{
    top:calc(78px + env(safe-area-inset-top));
    right:max(8px,env(safe-area-inset-right));
    bottom:auto;
  }
  .scc2-music-dock.is-open{width:min(330px,calc(100vw - 16px))}
}
@media(max-width:760px){
  .v014-dock .brig-dock-actions{grid-template-columns:repeat(3,minmax(78px,1fr))}
  .v014-dock .dock-command.end-turn{grid-column:1/-1;min-height:62px}
}


/* ========================================================================== */
/* v0.25c — MAX recruit interaction and organization layout fix               */
/* ========================================================================== */
.modal.organization-modal{
  width:min(1280px,calc(100vw - 32px));
  max-height:92vh;
  overflow-x:hidden;
  overflow-y:auto;
}
.organization-modal .brig-army-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.organization-modal .brig-army-card{
  min-width:0;
  overflow:hidden;
  align-items:start;
  padding:12px;
}
.organization-modal .brig-army-main{min-width:0;width:100%}
.organization-modal .brig-organize-controls{
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(112px,.7fr);
  gap:8px;
  align-items:end;
  margin-top:10px;
}
.organization-modal .brig-organize-controls label{
  min-width:0;
  display:grid;
  gap:5px;
  color:#b8c5d7;
  font-size:10px;
}
.organization-modal .brig-organize-controls label>span{
  display:block;
  white-space:nowrap;
}
.organization-modal .brig-organize-controls select,
.organization-modal .brig-organize-controls input{
  min-width:0;
  width:100%;
  height:38px;
  padding:7px 9px;
  font-size:11px;
}
.organization-modal .brig-organize-actions{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:minmax(170px,1.15fr) minmax(145px,.85fr);
  gap:8px;
  min-width:0;
}
.organization-modal .brig-organize-actions button{
  position:relative;
  z-index:4;
  pointer-events:auto;
  writing-mode:horizontal-tb!important;
  white-space:normal;
  min-width:0;
  min-height:48px;
  padding:8px 12px;
  display:grid;
  place-items:center;
  gap:2px;
  line-height:1.2;
  cursor:pointer;
}
.organization-modal .brig-organize-actions button b{
  display:block;
  font-size:12px;
  color:inherit;
}
.organization-modal .brig-organize-actions button small{
  display:block;
  font-size:9px;
  opacity:.82;
  color:inherit;
}
.organization-modal .brig-max-recruit{
  width:100%;
  min-width:0;
  border-color:#efc85d;
  background:linear-gradient(180deg,#e3bd4d,#956b12);
  color:#111827;
  box-shadow:0 0 0 2px rgba(239,200,93,.15) inset,0 6px 16px rgba(0,0,0,.24);
}
.organization-modal .brig-max-recruit:not(:disabled):hover,
.organization-modal .brig-max-recruit:not(:disabled):focus-visible{
  filter:brightness(1.14);
  transform:translateY(-1px);
}
.organization-modal .brig-apply-recruit{
  border-color:rgba(103,170,225,.48);
  background:linear-gradient(180deg,rgba(49,104,159,.84),rgba(25,57,93,.92));
  color:#e5f2ff;
}
.organization-modal .brig-recruit-preview{
  grid-column:1/-1;
  display:block;
  margin:0;
  padding:.42rem .58rem;
  border-radius:.48rem;
  background:rgba(8,14,27,.58);
  color:#f3d77d;
  font-size:9px;
  line-height:1.4;
}
.organization-modal .brig-recruit-toolbar{
  position:sticky;
  top:-24px;
  z-index:8;
  backdrop-filter:blur(10px);
}
.organization-modal .brig-bulk-max{
  min-width:178px;
  min-height:44px;
  pointer-events:auto;
  position:relative;
  z-index:4;
}
@media(max-width:1080px){
  .modal.organization-modal{width:min(920px,calc(100vw - 24px))}
  .organization-modal .brig-army-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  .modal.organization-modal{width:100vw;height:100vh;max-height:100vh;border-radius:0;padding:14px}
  .organization-modal .brig-army-card{grid-template-columns:58px minmax(0,1fr)}
  .organization-modal .brig-portrait,.organization-modal .brig-ai-portrait{width:56px;height:56px}
  .organization-modal .brig-organize-controls{grid-template-columns:1fr 96px}
  .organization-modal .brig-organize-actions{grid-template-columns:1fr}
  .organization-modal .brig-recruit-toolbar{top:-14px;align-items:stretch;flex-direction:column}
  .organization-modal .brig-bulk-max{width:100%;min-width:0}
}
