:root{color-scheme:dark;font-family:'Noto Sans TC',system-ui,sans-serif;color:#e5eced;background:#101a24;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a{touch-action:manipulation}button{border:1px solid #3a4a59;background:#202f3e;color:#e9eff0;border-radius:6px;padding:10px 14px;cursor:pointer}button:hover{background:#33485a}button:disabled{opacity:.35;cursor:default}a{color:#a7c4cf;text-decoration:none}input,select{width:100%;padding:9px;background:#142330;color:#e9eff0;border:1px solid #425467;border-radius:5px}input[type=color]{height:40px;padding:3px}header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 30px;border-bottom:1px solid #32404c;background:#121f2c}h1{font-size:23px;letter-spacing:3px;margin:0}h1 small{display:block;font-size:10px;letter-spacing:3px;color:#8ba1af;font-weight:500;margin-top:5px}.logo{display:flex;align-items:center;gap:14px}.mark{color:#e4ba71;font-size:38px}nav{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.eyebrow{font-size:10px;letter-spacing:2px;color:#91a7b3;text-transform:uppercase}.intro{padding:22px 30px;display:flex;align-items:center;justify-content:space-between;gap:18px}.intro h2{margin:5px 0;font-size:25px}.badge{border:1px solid #556c7b;border-radius:30px;padding:7px 14px;color:#dfc18d}.layout{display:grid;grid-template-columns:238px minmax(350px,1fr) 285px;gap:18px;padding:0 30px 24px;max-width:1700px;margin:auto}.panel{background:#152330;border:1px solid #30414f;border-radius:10px;overflow:hidden}.section{padding:18px;border-bottom:1px solid #2a3c49}.section:last-child{border-bottom:0}h3{font-size:14px;margin:0 0 14px}p{line-height:1.8;color:#a9bcc7}.player{padding:15px 17px;border-left:3px solid var(--p);border-bottom:1px solid #293b49}.player.active{background:#233646}.player strong{display:flex;align-items:center;justify-content:space-between}.player small{display:block;color:#9db1bd;font-size:11px;margin-top:8px}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--p);margin-right:7px}.region{padding:10px 0;border-bottom:1px solid #293b49;display:flex;justify-content:space-between;font-size:12px}.region span{color:#a9bac5}.region b{color:#e0ba77}.board{position:relative;background:radial-gradient(ellipse at 55% 50%,#20394a,#142431 75%);min-height:640px}.board-top{position:absolute;left:20px;right:20px;top:18px;display:flex;justify-content:space-between;z-index:1}.map{width:100%;height:650px;display:block}.territory{stroke-width:1.8;cursor:pointer;transition:fill .15s;fill-opacity:.7;stroke-linejoin:round}.territory:hover,.territory:focus{fill-opacity:1;outline:none;stroke:#fff;stroke-width:3}.territory.selected{fill-opacity:1;stroke:#fff;stroke-width:3}.counter{cursor:pointer}.counter text{fill:#fff;font-size:11px;font-weight:900;text-anchor:middle;dominant-baseline:central;pointer-events:none}.counter circle{stroke:#d3dce2;stroke-width:1.2}.map-label{font-size:10px;fill:#d1dce3;pointer-events:none;paint-order:stroke;stroke:#142431;stroke-width:3px}.sea{stroke:#92a9b7;stroke-width:1.3;stroke-dasharray:5 6;opacity:.65}.ocean{fill:#668495;font-size:12px;letter-spacing:7px}.inset{fill:#172c3a;stroke:#3d5668;stroke-dasharray:3 4}.legend{position:absolute;bottom:68px;left:20px;font-size:10px;color:#91aab9;max-width:80%}.phasebar{display:flex;border-top:1px solid #344956;background:#192c3b}.phasebar span{padding:15px 8px;flex:1;text-align:center;color:#7c96a7;font-size:12px}.phasebar .on{color:#ebc788;background:#30404a;border-top:2px solid #ebc788}.number{font-size:36px;font-weight:700;color:#edc686}.primary{background:#d3ac68;color:#14212a;border-color:#d3ac68;font-weight:700}.primary:hover{background:#efd09b}.danger{background:#81483c;border-color:#a96652}.wide{width:100%;margin-top:9px}label{display:block;font-size:12px;color:#a6bac7;margin:12px 0}label input,label select{margin-top:7px}.tip{font-size:12px;color:#8ba3b2;line-height:1.8}.dice{display:flex;gap:5px;margin:7px 0}.die{display:inline-flex;align-items:center;justify-content:center;width:29px;height:29px;background:#d8b779;color:#152432;border-radius:5px;font-weight:900;animation:roll .25s}.die.def{background:#8ba5b7}.log{max-height:210px;overflow:auto;font-size:11px;line-height:1.9;color:#9bb0bd}.log div{padding:6px 0;border-bottom:1px solid #293b49}.status{padding:12px 18px;background:#233645;color:#d8c6a5;font-size:12px}footer{padding:0 30px 25px;color:#698494;font-size:11px;display:flex;justify-content:space-between}dialog{background:#172735;color:#e3ecf0;border:1px solid #526678;border-radius:12px;max-width:760px;width:calc(100% - 30px);padding:28px;max-height:90vh;overflow:auto}dialog::backdrop{background:#07111cdd}dialog h2{font-size:27px;margin:10px 0}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.player-row{display:grid;grid-template-columns:1.4fr 1fr 1fr 55px;gap:9px;padding:8px 0;border-top:1px solid #334957}.actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.hero{font-size:45px;color:#e6c17f;letter-spacing:6px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#e0bc79;color:#13222e;padding:14px 24px;border-radius:8px;display:none;z-index:10;max-width:90%;box-shadow:0 5px 40px #0008}.empty{padding:90px 30px;text-align:center}.empty p{max-width:600px;margin:20px auto}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stats div{background:#213746;padding:15px;border-radius:6px}.stats b{display:block;font-size:26px;color:#e2bf7f}@keyframes roll{from{transform:rotate(-12deg) scale(.7)}to{transform:none}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(max-width:1100px){.layout{grid-template-columns:190px minmax(320px,1fr);padding:0 15px 20px}.right{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr 1fr}.right .section{border-right:1px solid #30414f}header,.intro{padding:18px}.map{height:610px}.board{min-height:610px}}@media(max-width:650px){header{display:block}nav{margin-top:15px}h1{font-size:20px}.intro{display:block}.badge{display:inline-block;margin-top:8px}.layout{display:flex;flex-direction:column;gap:12px}.left{order:2}.right{display:block;order:1}.board{min-height:560px}.map{height:560px}.left .players{display:grid;grid-template-columns:1fr 1fr}.formgrid{grid-template-columns:1fr}.player-row{grid-template-columns:1fr 1fr}.stats{grid-template-columns:1fr 1fr}footer{display:block}.hero{font-size:28px}}

.faction-emblem{width:28px;height:28px;display:inline-block;vertical-align:middle;flex-shrink:0;margin-right:7px}.faction-name{display:inline-flex;align-items:center;gap:3px}.intro h2 .faction-emblem{width:34px;height:34px}.player-row label .faction-emblem{width:23px;height:23px}

.play-brief{max-width:1000px;margin:36px auto 0;text-align:left;background:#152330;border:1px solid #30414f;border-radius:12px;padding:26px}.play-brief h2{font-size:23px;margin:9px 0 16px}.play-brief h3{color:#e5c38a;margin:22px 0 9px}.empty .play-brief p{max-width:none;margin:9px 0 15px}.brief-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.brief-bonuses{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.brief-bonuses span{background:#233746;padding:8px 13px;border-radius:6px}.brief-bonuses b{color:#e5c38a;margin-left:8px}.play-brief summary{cursor:pointer;color:#b7cbd5;padding:10px 0}dialog .play-brief{margin:0 0 20px;padding:0;border:0;background:none}dialog .brief-grid{grid-template-columns:1fr;gap:0}@media(max-width:760px){.brief-grid{grid-template-columns:1fr;gap:0}.play-brief{padding:20px}}
