/*! 世界历史沙盘 · © 2026 保留所有权利 All rights reserved.
 * 本文件为专有软件，未经书面许可不得复制、分发、修改或用于衍生作品。
 * 内容（疆域/朝代/事件/导览/词条）同受著作权保护。
 * build 20260905-ded011
 */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;
border:1px solid var(--border);background:var(--panel2);color:var(--ink);
padding:8px 14px;border-radius:9px;font-size:var(--fs-body);font-weight:600;transition:.15s;font-family:inherit}
.btn:hover{border-color:#4a5c8c;background:#22305a}
.btn.primary{background:var(--accent);color:#241a02;border-color:var(--accent)}
.btn.primary:hover{filter:brightness(1.06)}
.btn.ghost{background:transparent}
.btn.big{width:100%;padding:12px;font-size:var(--fs-h2);margin:8px 0}
.btn:disabled{opacity:.45;cursor:default}
.mini{cursor:pointer;border:1px solid var(--line);background:var(--panel2);color:var(--ink);
padding:4px 9px;border-radius:7px;font-size:var(--fs-sm);font-weight:600;font-family:inherit;transition:.15s}
.mini:hover{border-color:#4a5c8c}
.mini.danger{color:#ff9b9b;border-color:#5a2c34}
.muted{color:var(--muted)}
.small{font-size:var(--fs-sm)}
.tag,.free-tag,.pro-tag{display:inline-block;font-size:var(--fs-xs);font-weight:700;padding:1px 7px;border-radius:20px;margin-left:6px;vertical-align:middle}
.tag{background:var(--accent);color:#241a02}
.free-tag{background:#1d3a2a;color:#7fe0a8}
.pro-tag{background:#3a2f14;color:var(--accent)}
.chip{cursor:pointer;border:1px solid var(--line);background:var(--panel2);color:var(--ink);
padding:6px 10px;border-radius:20px;font-size:var(--fs-sm);font-family:inherit}
.chip:hover{border-color:var(--accent)}
.fld{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-body);color:var(--muted);margin:8px 0}
.fld input{background:var(--panel);border:1px solid var(--line);border-radius:8px;color:var(--ink);padding:9px 11px;font-size:var(--fs-body);font-family:inherit}
.fld input:focus{outline:none;border-color:var(--accent)}
#featurebar{display:flex;flex-wrap:wrap;gap:5px;padding:2px 6px 6px;border-bottom:1px solid var(--line);margin-bottom:2px}
.feat-btn{display:inline-flex;align-items:center;gap:5px;cursor:pointer;border:1px solid var(--line);
background:var(--panel);color:var(--ink);padding:6px 9px;border-radius:8px;font-size:var(--fs-sm);font-weight:600;
position:relative;font-family:inherit;transition:.15s}
.feat-btn:hover{border-color:var(--accent);background:var(--panel2)}
.feat-btn .fi{font-size:var(--fs-body)}
.feat-btn .pro-dot{color:var(--accent);font-size:var(--fs-xs);position:absolute;top:2px;right:3px}
#acctbar{display:flex;justify-content:center;padding:8px 6px 4px;border-bottom:1px solid var(--line);margin-bottom:4px}
.feat-btn.acct{background:var(--panel2);padding:8px 22px}
#tabbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:55;
background:rgba(11,16,32,.96);backdrop-filter:blur(8px);border-top:1px solid var(--line);
justify-content:space-around;padding:4px 2px calc(4px + env(safe-area-inset-bottom))}
.tab-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:none;
color:var(--muted);font-size:var(--fs-xs);padding:5px 0;font-family:inherit;cursor:pointer}
.tab-btn .ti{font-size:var(--fs-h1)}
.tab-btn:active{color:var(--accent)}
#panel-root{position:fixed;inset:0;z-index:70;pointer-events:none}
#panel-root.open{pointer-events:auto}
.panel-backdrop{position:absolute;inset:0;background:rgba(3,6,15,.55);opacity:0;transition:.25s}
#panel-root.open .panel-backdrop{opacity:1}
.panel{position:absolute;top:0;right:0;bottom:0;width:420px;max-width:92vw;background:var(--bg);
border-left:1px solid var(--line);box-shadow:-16px 0 48px rgba(0,0,0,.5);
transform:translateX(100%);transition:transform .28s cubic-bezier(.3,.8,.3,1);display:flex;flex-direction:column}
.panel.wide{width:640px}
#panel-root.open .panel{transform:none}
.panel header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line);flex:0 0 auto}
.panel header h2{margin:0;font-size:var(--fs-h2)}
.panel-close{background:none;border:none;color:var(--muted);font-size:var(--fs-h1);cursor:pointer;padding:2px 6px}
.panel-close:hover{color:var(--ink)}
.panel-body{padding:14px 16px;overflow-y:auto;flex:1 1 auto}
.panel-body::-webkit-scrollbar{width:8px}
.panel-body::-webkit-scrollbar-thumb{background:#2c3a60;border-radius:4px}
#toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%,20px);z-index:90;
background:#182240;border:1px solid var(--border);color:var(--ink);padding:10px 18px;border-radius:24px;
font-size:var(--fs-body);font-weight:600;opacity:0;pointer-events:none;transition:.25s;box-shadow:0 8px 30px rgba(0,0,0,.4)}
#toast.show{opacity:1;transform:translate(-50%,0)}
#onb{position:fixed;inset:0;z-index:95}
.onb-mask{position:absolute;inset:0;background:rgba(3,6,15,.55)}
.onb-hole{position:absolute;border:2px solid var(--accent);border-radius:10px;
box-shadow:0 0 0 9999px rgba(3,6,15,.68);transition:.25s;pointer-events:none}
.onb-tip{position:absolute;width:300px;background:var(--panel);border:1px solid var(--border);
border-radius:12px;padding:14px;box-shadow:0 12px 40px rgba(0,0,0,.5)}
.onb-tip .onb-t{font-weight:800;font-size:var(--fs-h2);margin-bottom:5px}
.onb-tip .onb-d{color:var(--muted);font-size:var(--fs-body);line-height:1.5}
.onb-bar{display:flex;align-items:center;justify-content:space-between;margin-top:12px}
.onb-idx{color:var(--muted);font-size:var(--fs-sm)}
.onb-btns{display:flex;gap:6px}
.acct-card{text-align:center;padding:10px 0 4px}
.acct-ava{font-size:46px}
.acct-name{font-weight:800;font-size:var(--fs-h1);margin-top:4px}
.acct-sub{color:var(--muted);font-size:var(--fs-body)}
.acct-badge{display:inline-block;margin-top:8px;padding:3px 12px;border-radius:20px;background:var(--panel2);border:1px solid var(--line);font-size:var(--fs-sm)}
.acct-badge.pro{background:#3a2f14;color:var(--accent);border-color:var(--accent)}
.oauth{display:flex;gap:8px;margin-top:8px}
.oauth .btn{flex:1}
.pw-hook{background:#3a2f14;color:var(--accent);border-radius:9px;padding:9px 12px;font-weight:700;margin-bottom:10px}
.pw-feats{list-style:none;padding:0;margin:0 0 14px;display:grid;grid-template-columns:1fr 1fr;gap:6px}
.pw-feats li{font-size:var(--fs-sm);color:#cfe}
.plans{display:flex;gap:8px;margin-bottom:8px}
.plan{flex:1;position:relative;border:1px solid var(--line);border-radius:11px;padding:12px 10px;cursor:pointer;text-align:center;transition:.15s}
.plan:hover{border-color:#4a5c8c}
.plan.best{border-color:var(--accent)}
.plan input{position:absolute;top:8px;left:8px}
.plan-h b{font-size:var(--fs-body)}
.plan-h .tag{position:absolute;top:-9px;right:8px}
.plan-p{margin:6px 0 2px}
.plan-p .pp{font-size:22px;font-weight:800}
.plan-p .pu{font-size:var(--fs-sm);color:var(--muted)}
.pw-alt{display:flex;gap:8px;margin-top:8px}
.pw-alt .btn{flex:1}
.share-card{background:radial-gradient(120% 120% at 50% -10%,#1a2a55 0%,#0b1020 100%);border:1px solid var(--border);
border-radius:14px;padding:22px;text-align:center;margin-bottom:12px}
.share-yr{font-size:40px;font-weight:800}
.share-yr small{font-size:var(--fs-h2);color:var(--muted);margin-left:6px}
.share-era{color:var(--accent);font-weight:600;margin-top:4px}
.share-url{display:flex;gap:6px;margin:10px 0}
.share-url input{flex:1;background:var(--panel);border:1px solid var(--line);border-radius:8px;color:var(--ink);padding:9px 11px;font-size:var(--fs-sm)}
.share-more{display:flex;gap:8px}.share-more .btn{flex:1}
.bm-list{margin-top:10px;display:flex;flex-direction:column;gap:8px}
.bm{display:flex;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px}
.bm-yr{font-weight:800;color:var(--accent);min-width:56px}
.bm-main{flex:1}
.bm-era{font-size:var(--fs-body);margin-bottom:4px}
.bm-note{width:100%;min-height:34px;resize:vertical;background:var(--panel2);border:1px solid var(--line);border-radius:7px;color:var(--ink);padding:6px 8px;font-size:var(--fs-sm);font-family:inherit}
.bm-act{display:flex;flex-direction:column;gap:4px}
.cmp-head{position:sticky;top:-14px;background:var(--bg);padding:6px 0 10px;z-index:2;border-bottom:1px solid var(--line);margin-bottom:10px}
.cmp-yrbox{font-size:var(--fs-h1);font-weight:800;margin-bottom:6px}
.cmp-yrbox em{color:var(--accent);font-size:var(--fs-body);font-style:normal;font-weight:600;margin-left:6px}
#cmp-slider{width:100%}
.cmp-jump{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.cmp-group{margin-bottom:14px}
.cmp-group h3{font-size:var(--fs-body);color:var(--muted);margin:0 0 7px;border-left:3px solid var(--accent);padding-left:8px}
.cmp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.cmp-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px;cursor:pointer;transition:.15s}
.cmp-card:hover{border-color:var(--accent)}
.cmp-reg{font-weight:800;font-size:var(--fs-body)}
.cmp-pol{font-size:var(--fs-sm);color:#bcd;margin-top:2px}
.cmp-ruler{font-size:var(--fs-sm);color:var(--accent);margin-top:3px}
.cmp-ev{list-style:none;padding:0;margin:6px 0 0;font-size:var(--fs-xs);color:var(--muted)}
.cmp-ev li{margin-top:2px}
.cmp-ev b{color:#cdd}
.tour-list{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.tour-card{display:flex;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px;cursor:pointer;transition:.15s}
.tour-card:hover{border-color:var(--accent);transform:translateY(-1px)}
.tour-emoji{font-size:30px}
.tour-title{font-weight:800;font-size:var(--fs-h2)}
.tour-desc{font-size:var(--fs-sm);margin:3px 0;line-height:1.5}
#tourplayer{position:fixed;left:50%;bottom:96px;transform:translateX(-50%);z-index:65;width:min(680px,94vw);
background:rgba(15,22,44,.97);backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:14px;
box-shadow:0 16px 50px rgba(0,0,0,.55);overflow:hidden}
.tp-top{display:flex;justify-content:space-between;align-items:center;padding:9px 14px;border-bottom:1px solid var(--line);font-weight:700}
.tp-top button{background:none;border:none;color:var(--muted);font-size:var(--fs-h2);cursor:pointer}
.tp-body{padding:12px 16px}
#tp-step{font-size:var(--fs-body);margin-bottom:5px}
#tp-step .tp-yr{color:var(--accent);font-weight:800;margin-right:6px}
#tp-text{font-size:var(--fs-body);color:#cfd6ea;line-height:1.6}
.tp-ctrl{display:flex;align-items:center;gap:8px;padding:10px 14px;border-top:1px solid var(--line)}
.tp-ctrl #tp-dots{flex:1;display:flex;gap:4px;justify-content:center}
#tp-dots i{width:7px;height:7px;border-radius:50%;background:var(--line)}
#tp-dots i.on{background:var(--accent)}
.quiz-stat{display:flex;gap:8px;margin-bottom:12px}
.quiz-stat>div{flex:1;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px;text-align:center}
.quiz-stat b{display:block;font-size:22px;color:var(--accent)}
.quiz-stat span{font-size:var(--fs-xs);color:var(--muted)}
.q-progress{height:5px;background:var(--panel2);border-radius:3px;overflow:hidden;margin-bottom:12px}
.q-progress i{display:block;height:100%;background:var(--accent);transition:.3s}
.q-q{font-size:var(--fs-h2);font-weight:700;line-height:1.5;margin-bottom:14px}
.q-opts{display:flex;flex-direction:column;gap:8px}
.q-opt{text-align:left;padding:12px 14px;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:10px;cursor:pointer;font-size:var(--fs-body);font-family:inherit;transition:.12s}
.q-opt:hover:not(:disabled){border-color:var(--accent)}
.q-opt.right{border-color:#3ea36a;background:#173626}
.q-opt.wrong{border-color:#a3434a;background:#331a1e}
.q-exp{margin:12px 0;padding:12px;border-radius:10px;font-weight:700}
.q-exp.ok{background:#153020}.q-exp.no{background:#301a1e}
.q-exp p{font-weight:400;color:#cdd;font-size:var(--fs-body);margin:6px 0 8px;line-height:1.5}
.quiz-result{text-align:center;padding:16px 0}
.qr-score{font-size:44px;font-weight:800;color:var(--accent)}
.qr-pct{color:var(--muted);margin:4px 0}
.qr-msg{font-size:var(--fs-h2);margin-top:8px}
.wiki-regions{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;margin-top:8px}
.wiki-r{display:flex;flex-direction:column;gap:2px;align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px;cursor:pointer;color:var(--ink);font-weight:700;font-family:inherit}
.wiki-r:hover{border-color:var(--accent)}
.wiki-periods{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.wiki-p{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:10px 12px;cursor:pointer;color:var(--ink);font-family:inherit}
.wiki-p:hover{border-color:var(--accent)}
.wiki-yr{color:var(--accent);font-weight:700;font-size:var(--fs-sm);min-width:96px}
.wiki-page h2{margin:10px 0 2px}
.wiki-sub{font-size:var(--fs-sm);margin-bottom:10px}
.wiki-lead{font-size:var(--fs-body);line-height:1.6;color:#cfd6ea}
.wiki-key{background:var(--panel2);border-radius:8px;padding:8px 12px;margin:8px 0}
.wiki-page h3{font-size:var(--fs-body);color:var(--muted);border-left:3px solid var(--accent);padding-left:8px;margin:16px 0 8px}
.wiki-rulers{margin:0;padding-left:18px;font-size:var(--fs-body);line-height:1.7}
.wiki-ev{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.wiki-ev li{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:var(--fs-body);cursor:pointer}
.wiki-ev li:hover{border-color:var(--accent)}
.wiki-ev li b{color:var(--accent);margin-right:6px}
.wiki-ev li span{display:block;color:var(--muted);font-size:var(--fs-xs);margin-top:2px}
.wiki-fade{margin-top:8px;padding:10px;text-align:center;color:var(--muted);font-size:var(--fs-sm);background:linear-gradient(transparent,var(--panel2));border-radius:8px}
.les-list{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.les{display:flex;justify-content:space-between;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px;flex-wrap:wrap}
.les-act{display:flex;gap:5px;flex-wrap:wrap}
.les-steps{display:flex;flex-direction:column;gap:6px;margin:10px 0}
.les-step{display:flex;gap:6px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:7px 9px}
.les-yr{color:var(--accent);font-weight:700;font-size:var(--fs-sm);min-width:50px}
.les-note{flex:1;background:var(--panel2);border:1px solid var(--line);border-radius:6px;color:var(--ink);padding:5px 8px;font-size:var(--fs-sm);font-family:inherit}
.les-foot{display:flex;gap:8px}.les-foot .btn{flex:1}
#classbar{position:fixed;left:50%;bottom:96px;transform:translateX(-50%);z-index:65;width:min(640px,94vw);display:flex;align-items:center;gap:10px;
background:rgba(15,22,44,.97);backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:14px;padding:10px 14px;box-shadow:0 16px 50px rgba(0,0,0,.5)}
.cb-mid{flex:1}
#cb-title{font-size:var(--fs-body);font-weight:700}#cb-title b{color:var(--accent)}
#cb-note{font-size:var(--fs-sm);color:var(--muted);margin-top:2px}
#classbar #cb-close{background:none;border:none;color:var(--muted);font-size:var(--fs-h2);cursor:pointer}
.ai-out{height:min(46vh,340px);overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:4px 2px;margin-bottom:8px}
.ai-msg{max-width:88%;padding:9px 12px;border-radius:12px;font-size:var(--fs-body);line-height:1.6}
.ai-msg.you{align-self:flex-end;background:var(--accent);color:#241a02;font-weight:600}
.ai-msg.bot{align-self:flex-start;background:var(--panel);border:1px solid var(--line)}
.ai-msg.loading{color:var(--muted)}
.ai-sug{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.ai-in{display:flex;gap:6px}
.ai-in input{flex:1;background:var(--panel);border:1px solid var(--line);border-radius:9px;color:var(--ink);padding:10px 12px;font-size:var(--fs-body);font-family:inherit}
.ai-in input:focus{outline:none;border-color:var(--accent)}
#sidetoggle{display:none;position:fixed;left:12px;top:12px;z-index:50;width:42px;height:42px;border-radius:11px;
background:rgba(20,27,48,.9);backdrop-filter:blur(6px);border:1px solid var(--border);color:var(--ink);font-size:var(--fs-h1);cursor:pointer}
#mobilebrief{ display:none; }
@media (max-width:1023px){
html, body{
overflow:auto;
height:auto; min-height:100%;
overscroll-behavior-x:none;
}
#app{
display:flex !important; flex-direction:column;
height:auto !important; min-height:100vh; min-height:100dvh;
gap:0 !important; padding:0 !important;
padding-bottom:var(--dock-h, 190px) !important;
}
#map-wrap  { order:1; }
#mobilebrief{ order:2; }
#side      { order:3; }
#controls  { order:4; }
#map-wrap{
border-radius:0 !important; border-left:none; border-right:none;
display:flex; flex-direction:column; flex:0 0 auto;
}
#mobilebrief{ flex:0 0 auto; }
#side{ flex:0 0 auto; }
#map-wrap svg#map{ flex:0 0 auto !important; height:52vw; max-height:44vh; min-height:150px; }
#side{
position:static !important; transform:none !important;
width:auto !important; max-width:none !important;
box-shadow:none !important; border-right:none !important;
border-top:1px solid var(--line);
padding:8px 10px 14px !important;
overflow:visible !important;
height:auto !important; min-height:0;
display:flex; flex-direction:column; gap:0;
}
#side > h1{ display:none; }
#sidetoggle{ display:none !important; }
#tabbar{ display:none !important; }
#segbar{ display:flex !important; }
#slicehost{ display:flex; overflow:visible; flex:0 0 auto; }
#regions{ overflow:visible; flex:0 0 auto; }
#featurebar{ flex-wrap:wrap; }
#moregrid{ grid-template-columns:repeat(4,1fr); }
#yearbadge{ position:static; padding:8px 12px 0; display:flex;
align-items:baseline; gap:10px; flex-wrap:wrap; }
#yearbadge .yr{ font-size:34px; }
#yearbadge .era{ margin-top:0; }
#focusbar{ position:static; margin:6px 0 4px; padding:0 10px 4px;
max-width:none !important; flex-wrap:nowrap; overflow-x:auto;
justify-content:flex-start; -webkit-overflow-scrolling:touch; scrollbar-width:none;
overscroll-behavior-x:contain;
-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);
mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent); }
#focusbar::-webkit-scrollbar{ height:0; }
.panel{ width:100%; max-width:100%; border-left:none; border-top:1px solid var(--line);
top:auto; height:88vh; height:88dvh; border-radius:16px 16px 0 0; transform:translateY(100%); }
.panel.wide{ width:100%; }
#panel-root.open .panel{ transform:none; }
#tourplayer,#classbar{ bottom:calc(var(--dock-h, 190px) + 10px); width:96vw; }
.pw-feats{ grid-template-columns:1fr; }
.plans{ flex-direction:column; }
.cmp-grid{ grid-template-columns:1fr 1fr; }
.kw-grid{ grid-template-columns:1fr; }
.cmdk-box{ margin-top:5vh; }
#mobilebrief{
display:block; padding:6px 10px; border-top:1px solid var(--line);
background:rgba(9,13,28,.6);
}
#mobilebrief #event{
position:static !important; transform:none !important; opacity:1 !important;
right:auto; bottom:auto; max-width:none !important;
margin:0; border-radius:12px; display:block;
max-height:none; overflow:visible;
}
#mobilebrief #event.stale{ opacity:.6 !important; filter:saturate(.7); }
#mobilebrief #event .ed{ max-height:none; }
#mobilebrief .mb-empty{
display:none; padding:10px 12px; border-radius:12px;
background:var(--panel); border:1px dashed var(--line);
color:var(--muted); font-size:var(--fs-sm);
}
#mobilebrief.empty #event{ display:none; }
#mobilebrief.empty .mb-empty{ display:block; }
#controls{
position:fixed !important; left:0; right:0; bottom:0; z-index:55;
background:rgba(11,16,32,.97); backdrop-filter:blur(8px);
border:none; border-top:1px solid var(--line); border-radius:0;
padding:5px 10px calc(4px + env(safe-area-inset-bottom)); gap:2px;
}
#controls .ctrow{ gap:6px; row-gap:4px; }
#controls .speed{ gap:3px; }
.hint{ display:none; }
#controls #legal-line{ display:none; }
#side #legal-line{ display:flex; padding-top:10px; font-size:var(--fs-micro); }
button.play{ min-width:84px; padding:0 14px; min-height:44px; }
#controls .ctrow > button{ min-height:44px; }
.speed button{ padding:0 12px; min-height:44px; }
#track input{ height:44px; top:0; }
#track input::-webkit-slider-thumb{ width:26px; height:26px; border-radius:50%; }
#track{ height:44px; margin-top:2px; }
#track .axis,#track .fill{ top:18px; }
#track .zero{ top:12px; }
.ticks{ top:30px; }
}
@media (max-width: 420px){ .cmp-grid{grid-template-columns:1fr} }
.quiz-modes{margin-bottom:10px}
.qm-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:6px 0}
.qm-label{color:var(--muted);font-size:var(--fs-sm);min-width:32px}
.chip.on{background:var(--accent);color:#241a02;border-color:var(--accent)}
.q-tags{display:flex;gap:6px;margin-bottom:8px}
.tag2{font-size:var(--fs-xs);background:var(--panel2);border:1px solid var(--line);border-radius:20px;padding:2px 9px;color:var(--muted)}
.switch-row{display:flex;align-items:center;justify-content:space-between;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:11px 13px;margin:6px 0;font-size:var(--fs-body)}
.switch-row input{width:40px;height:22px}
.cat-chips{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}
.catchip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:20px;padding:6px 12px;font-size:var(--fs-body);cursor:pointer;font-family:inherit}
.catchip i{width:10px;height:10px;border-radius:50%;background:var(--cc)}
.catchip.on{color:var(--ink);border-color:var(--cc);background:color-mix(in srgb, var(--cc) 16%, transparent)}
.fl-list{margin-top:6px;display:flex;flex-direction:column;gap:4px}
.fl-count{margin:4px 0}
.fl-row{display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:var(--fs-body);cursor:pointer}
.fl-row:hover{border-color:var(--accent)}
.fl-row b{color:var(--accent)}
.fl-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}
.fl-cat{margin-left:auto;font-size:var(--fs-xs);color:var(--muted)}
#evlayer{position:absolute;left:0;right:0;top:-6px;height:12px;pointer-events:none;z-index:3}
#evlayer .evdot{position:absolute;width:8px;height:8px;border-radius:50%;transform:translateX(-50%);
box-shadow:0 0 6px rgba(0,0,0,.6);pointer-events:auto;cursor:pointer;border:1px solid rgba(0,0,0,.4)}
#evlayer .evdot:hover{width:12px;height:12px}
.prog-top{margin-bottom:12px}
.prog-streak{background:linear-gradient(160deg,#3a2f14,#1b2440);border:1px solid var(--border);border-radius:14px;padding:18px;text-align:center}
.ps-num{font-size:34px;font-weight:800;color:var(--accent)}
.prog-bars{display:flex;flex-direction:column;gap:10px;margin:12px 0}
.pbar-l{display:flex;justify-content:space-between;font-size:var(--fs-body);margin-bottom:4px}
.pbar-t{height:8px;background:var(--panel2);border-radius:5px;overflow:hidden}
.pbar-t i{display:block;height:100%;background:var(--accent)}
.prog-h{font-size:var(--fs-body);margin:14px 0 8px}
.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
.badge{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 8px;text-align:center;opacity:.42;filter:grayscale(1)}
.badge.got{opacity:1;filter:none;border-color:var(--accent)}
.badge-ic{font-size:28px}
.badge-n{font-size:var(--fs-sm);font-weight:700;margin-top:4px}
.badge-d{margin-top:2px;line-height:1.3}
.sc-preview{width:100%;border-radius:12px;border:1px solid var(--line)}
.sc-act{display:flex;gap:8px;margin:10px 0}
.sc-act .btn{flex:1}
.set-group{margin:10px 0}
.set-label{font-size:var(--fs-body);color:var(--muted);margin-bottom:6px}
.segwrap{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.segwrap button{background:var(--panel);color:var(--ink);border:none;border-right:1px solid var(--line);padding:9px 14px;font-size:var(--fs-body);cursor:pointer;font-family:inherit}
.segwrap button:last-child{border-right:none}
.segwrap button.on{background:var(--accent);color:#241a02}
html[data-fs="s"] .panel-body{font-size:var(--fs-body)}
html[data-fs="l"] .panel-body{font-size:var(--fs-h2)}
html[data-fs="xl"] .panel-body{font-size:var(--fs-h1)}
html[data-fs="l"] .q-q,html[data-fs="xl"] .q-q{font-size:var(--fs-h1)}
html[data-fs="l"] .feat-btn,html[data-fs="xl"] .feat-btn{font-size:var(--fs-body)}
html.high-contrast{--muted:#c4cee6;--line:#5a6a92}
html.high-contrast .btn,html.high-contrast .feat-btn,html.high-contrast .card{border-width:2px}
html[data-theme="light"]{
--muted:#5b678a; --line:#d6ddec; --accent:#b5790a; --ocean:#ccdcf2; --land:#b9c8e2;
--border:#9fb0d0; --split:#e6e0f2;
}
html[data-theme="light"] body{background:var(--bg);color:var(--ink)}
html[data-theme="light"] #map-wrap{background:radial-gradient(130% 120% at 50% -10%,#dbe6f7 0%,#eef2fa 100%)}
html[data-theme="light"] .node .pow,html[data-theme="light"] .frag .sn{fill:#10203f;stroke:#fff}
html[data-theme="light"] .node .king,html[data-theme="light"] .node .reg{stroke:#fff}
html[data-theme="light"] #toast{background:#fff;color:var(--ink)}
html[data-theme="light"] .btn.primary,html[data-theme="light"] .segwrap button.on,html[data-theme="light"] .chip.on{color:#fff}
html[data-theme="light"] .plan.best,html[data-theme="light"] .badge.got{box-shadow:none}
.wiki-intro{font-size:var(--fs-h2);line-height:1.7;color:#dbe3f4;background:var(--panel);border-left:3px solid var(--accent);border-radius:0 8px 8px 0;padding:10px 14px;margin:6px 0 4px}
.wiki-body p{font-size:var(--fs-body);line-height:1.75;color:#cfd6ea;margin:8px 0}
.wiki-body.clip{max-height:120px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 55%,transparent);mask-image:linear-gradient(#000 55%,transparent)}
.wiki-sig{background:#22305a;border-radius:8px;padding:10px 13px;font-size:var(--fs-body);line-height:1.6;margin:10px 0}
.wiki-figs{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.wiki-figs li{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:var(--fs-body)}
.wiki-figs li b{color:var(--accent)}
.wiki-p .wiki-badge{margin-left:6px;font-size:var(--fs-xs);color:var(--accent)}
#event{max-width:380px !important;max-height:48vh}
#event .ed{max-height:40vh;overflow-y:auto}
#event .ed b{color:#2a1e02}
#tourpath .tour-route{ animation:routeFlow 1s linear infinite; }
@keyframes routeFlow{ to{ stroke-dashoffset:-18; } }
#tourpath .tour-pulse{ transform-box:fill-box; transform-origin:center; animation:routePulse 1.6s ease-out infinite; }
@keyframes routePulse{ 0%{ r:1; opacity:.9; } 100%{ r:4.5; opacity:0; } }
#warlist{display:flex;flex-direction:column;gap:6px}
.war-search input{width:100%;box-sizing:border-box;background:var(--panel2);border:1px solid var(--line);border-radius:8px;color:var(--ink);padding:8px 10px;font-size:var(--fs-sm);font-family:inherit}
.wchips{display:flex;flex-wrap:wrap;gap:4px;padding:0 2px}
.wchip{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:20px;padding:4px 10px;font-size:var(--fs-xs);cursor:pointer;font-family:inherit}
.wchip.on{background:var(--accent);color:#241a02;border-color:var(--accent)}
.war-count{padding:0 6px}
.warcards{display:flex;flex-direction:column;gap:6px;padding:2px 0 8px}
.warcard{display:flex;gap:9px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:9px 10px;cursor:pointer;transition:.15s;
width:100%;text-align:left;font-family:inherit;font-size:inherit;color:inherit;appearance:none;-webkit-appearance:none}
.warcard:hover{border-color:var(--accent);transform:translateY(-1px)}
.wc-emoji{font-size:22px}
.wc-name{font-weight:800;font-size:var(--fs-body)}
.wc-year{color:var(--accent);font-weight:700;font-size:var(--fs-sm);margin-left:4px}
.wc-vs{font-size:var(--fs-xs);margin:2px 0}
.wc-vs em{color:var(--muted);font-style:normal;font-size:var(--fs-xs);margin:0 2px}
.wc-place{font-size:var(--fs-xs)}
#warlayer .war-pulse{transform-box:fill-box;transform-origin:center;animation:warPulse 1.6s ease-out infinite}
@keyframes warPulse{0%{r:1;opacity:.9}100%{r:5;opacity:0}}
#warlayer .war-arrow-active{animation:warFlow 1s linear infinite}
@keyframes warFlow{to{stroke-dashoffset:-16}}
#wardossier{display:flex;flex-direction:column;gap:8px}
.wd-back{align-self:flex-start}
.wd-body{display:flex;flex-direction:column}
.wd-meta{font-size:var(--fs-sm);color:var(--muted);margin-bottom:10px}
.wd-meta .wd-year{color:var(--accent);font-weight:700}
.wd-group{background:var(--panel2);border-radius:20px;padding:1px 8px;margin-left:4px;font-size:var(--fs-xs)}
.wd-sides{display:flex;align-items:stretch;gap:6px;margin-bottom:10px}
.wd-side{flex:1;background:var(--panel);border:1px solid var(--line);border-left-width:3px;border-radius:9px;padding:9px}
.wd-sname{font-weight:800;font-size:var(--fs-body);margin-bottom:4px}
.wd-cmd{font-size:var(--fs-sm);margin-bottom:2px}
.wd-force{font-size:var(--fs-xs);line-height:1.4}
.wd-vs{align-self:center;font-weight:800;color:var(--muted);font-size:var(--fs-sm)}
.wd-result{background:var(--panel);border-radius:9px;padding:10px;margin-bottom:8px}
.wd-victor{font-size:var(--fs-body);margin-bottom:4px}.wd-victor b{color:var(--accent)}
.wd-line{font-size:var(--fs-sm);line-height:1.5;margin-top:3px}
.wd-terr{background:#22305a;border-radius:8px;padding:8px 11px;font-size:var(--fs-sm);line-height:1.5;margin-bottom:8px}
.wd-body h4{font-size:var(--fs-body);margin:12px 0 6px;border-left:3px solid var(--accent);padding-left:8px}
.wd-p{font-size:var(--fs-sm);line-height:1.6;color:#cfd6ea}
.wd-phases{display:flex;flex-direction:column;gap:5px}
.wd-phase{display:flex;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:7px 9px;cursor:pointer;transition:.12s}
.wd-phase:hover{border-color:#4a5c8c}
.wd-phase.on{border-color:var(--accent);background:#1c2540}
.wd-pt{color:var(--accent);font-weight:700;font-size:var(--fs-sm);min-width:48px;flex:0 0 auto}
.wd-pd{font-size:var(--fs-sm);line-height:1.4}
.wd-ctrl{display:flex;gap:8px;margin:10px 0}.wd-ctrl .btn{flex:1}
.wd-sig{background:#3a2f14;color:#ffe0a0;border-radius:8px;padding:9px 12px;font-size:var(--fs-sm);line-height:1.5}
#warlayer .war-horse{filter:drop-shadow(0 .35px .7px rgba(0,0,0,.85))}
#warlayer .war-halo{animation:warHalo 1.9s ease-out infinite}
@keyframes warHalo{0%{r:1.2;opacity:.55}70%{opacity:.12}100%{r:4.8;opacity:0}}
#featurebar{display:flex;gap:6px;margin:2px 2px 0;flex-shrink:0}
#featurebar .primary-tool{flex:1 1 0;min-width:0;flex-direction:column;align-items:center;justify-content:center;
gap:4px;padding:9px 4px;position:relative;
background:linear-gradient(180deg,#22305a,#1a2444);border-color:#39497a;font-size:var(--fs-body)}
#featurebar .primary-tool:hover{background:#2a3a68;border-color:var(--accent)}
#featurebar .primary-tool .fi{font-size:18px;line-height:1}
#featurebar .primary-tool .fl{font-weight:800;font-size:var(--fs-sm);white-space:nowrap}
#featurebar .primary-tool .tool-badge{position:absolute;top:4px;right:5px;margin:0}
.tool-badge{background:var(--accent);color:#241a02;font-size:var(--fs-micro);font-weight:800;
border-radius:20px;padding:1px 6px;margin-left:6px;line-height:1.4}
#iconbar{display:flex;gap:6px;margin:6px 2px 0;flex-shrink:0}
#iconbar .icon-tool{flex:1;justify-content:center;padding:8px 0;font-size:var(--fs-h2);
background:var(--panel);border-color:var(--line)}
#iconbar .icon-tool:hover{background:#22305a;border-color:var(--accent)}
#iconbar .icon-tool .fi{font-size:17px;line-height:1}
#morewrap{margin:6px 2px 0;flex-shrink:0}
#morebtn{width:100%;justify-content:center;padding:6px;font-size:var(--fs-sm);
color:var(--muted);background:transparent;border-style:dashed}
#morebtn:hover{color:var(--ink);border-color:#3a4a78}
#moregrid{display:none;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:6px}
#morewrap.open #moregrid{display:grid}
#moregrid .more-tool{flex-direction:column;gap:3px;padding:8px 4px;font-size:var(--fs-xs);
background:var(--panel);border-color:var(--line);text-align:center;line-height:1.2}
#moregrid .more-tool .fi{font-size:16px}
#moregrid .more-tool .fl{font-size:var(--fs-xs);white-space:nowrap}
#acctbar{display:flex;justify-content:center;margin:8px 2px 2px;flex-shrink:0}
#segbar{display:flex;gap:0;margin:10px 2px 6px;flex-shrink:0;
background:var(--panel2);border:1px solid var(--line);border-radius:9px;padding:3px}
#segbar button{flex:1;background:transparent;border:none;padding:6px 4px;border-radius:7px;
font-size:var(--fs-sm);font-weight:800;color:var(--muted)}
#segbar button.on{background:var(--accent);color:#241a02}
#segbar button:hover:not(.on){color:var(--ink);background:rgba(255,255,255,.05)}
#slicehost{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding-right:4px}
#slicehost::-webkit-scrollbar{width:7px}
#slicehost::-webkit-scrollbar-thumb{background:#2c3a60;border-radius:4px}
.sl-head{display:flex;align-items:center;justify-content:space-between;gap:8px;
position:sticky;top:0;background:var(--bg);padding:2px 0 6px;z-index:2}
.sl-yr b{font-size:var(--fs-h2);color:var(--accent);font-weight:800}
.sl-yr em{font-size:var(--fs-xs);color:var(--muted);font-style:normal;margin-left:6px}
.sl-cmp{font-size:var(--fs-xs);padding:4px 8px;white-space:nowrap}
.sl-cmp.on{background:var(--accent);color:#241a02;border-color:var(--accent)}
.sl-cmpbar{display:flex;align-items:center;gap:7px;font-size:var(--fs-xs);color:var(--muted);
background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:5px 8px}
.sl-cmpbar input{flex:1;min-width:0}
.sl-cmpbar b{color:var(--accent);font-size:var(--fs-sm)}
.sl-note{font-size:var(--fs-xs);color:var(--muted);margin:2px 0 0}
.sl-cols{display:flex;gap:8px}
.sl-cols .sl-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:7px}
.sl-colh{font-size:var(--fs-sm);font-weight:800;color:var(--accent);text-align:center;
border-bottom:1px solid var(--line);padding-bottom:3px}
.sl-grp h4{margin:0 0 4px;font-size:var(--fs-xs);color:var(--muted);font-weight:800;
letter-spacing:.5px;border-left:3px solid var(--line);padding-left:6px}
.sl-row{display:flex;align-items:baseline;gap:6px;background:var(--panel);
border:1px solid var(--line);border-radius:7px;padding:5px 8px;cursor:pointer;
margin-bottom:4px;transition:border-color .15s}
.sl-row:hover{border-color:var(--accent)}
.sl-row.changed{border-color:#ff9a6b;background:rgba(255,154,107,.09)}
.sl-reg{font-size:var(--fs-xs);color:var(--muted);font-weight:700;flex:0 0 auto;min-width:38px}
.sl-pol{font-size:var(--fs-sm);color:#fff;font-weight:800;white-space:nowrap;
overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.sl-king{font-size:var(--fs-xs);color:#ffd980;white-space:nowrap;flex:0 0 auto;
overflow:hidden;text-overflow:ellipsis;max-width:42%}
.ls{display:flex;flex-direction:column;gap:4px;margin-top:8px}
.ls-row{display:grid;grid-template-columns:26px minmax(96px,1.3fr) 1fr 62px 96px;
align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);
border-radius:8px;padding:6px 9px;cursor:pointer;transition:border-color .15s}
.ls-row:hover{border-color:var(--accent)}
.ls-rank{font-size:var(--fs-sm);color:var(--muted);font-weight:800;text-align:right}
.ls-name{font-size:var(--fs-sm);font-weight:800;color:#fff;display:flex;flex-direction:column;line-height:1.25}
.ls-name em{font-size:var(--fs-xs);color:var(--muted);font-style:normal;font-weight:600}
.ls-bar{background:var(--panel2);border-radius:5px;height:9px;overflow:hidden}
.ls-bar i{display:block;height:100%;border-radius:5px;
background:linear-gradient(90deg,#5b7cff,#ffcc5c)}
.ls-yrs{font-size:var(--fs-sm);color:var(--accent);font-weight:800;text-align:right}
.ls-span{font-size:var(--fs-xs);color:var(--muted);text-align:right;white-space:nowrap}
#cmdk{position:fixed;inset:0;z-index:120;display:none}
#cmdk.open{display:block}
.cmdk-mask{position:absolute;inset:0;background:rgba(4,7,14,.62);backdrop-filter:blur(2px)}
.cmdk-box{position:relative;margin:9vh auto 0;width:min(640px,92vw);background:var(--panel);
border:1px solid #3a4a78;border-radius:14px;box-shadow:0 26px 70px rgba(0,0,0,.7);overflow:hidden}
.cmdk-box input{width:100%;box-sizing:border-box;background:transparent;border:none;
border-bottom:1px solid var(--line);color:var(--ink);padding:14px 16px;
font-size:var(--fs-h2);outline:none;font-family:inherit}
.cmdk-box input::placeholder{color:#5b6a92;font-size:var(--fs-body)}
.cmdk-list{max-height:52vh;overflow-y:auto}
.cmdk-list::-webkit-scrollbar{width:8px}
.cmdk-list::-webkit-scrollbar-thumb{background:#2c3a60;border-radius:4px}
.cmdk-i{display:flex;align-items:baseline;gap:10px;padding:9px 16px;cursor:pointer;
border-bottom:1px solid rgba(38,50,79,.4)}
.cmdk-i.sel,.cmdk-i:hover{background:#22305a}
.cmdk-k{font-size:var(--fs-micro);color:#241a02;background:var(--accent);border-radius:5px;
padding:1px 6px;font-weight:800;flex:0 0 auto}
.cmdk-t{font-size:var(--fs-body);font-weight:700;color:#fff;flex:0 0 auto}
.cmdk-s{font-size:var(--fs-xs);color:var(--muted);overflow:hidden;
text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.cmdk-empty{padding:20px 16px;color:var(--muted);font-size:var(--fs-sm);text-align:center}
.cmdk-foot{padding:8px 16px;font-size:var(--fs-xs);color:var(--muted);
border-top:1px solid var(--line);background:var(--panel2)}
.kw{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}
.kw-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:5px}
.kw-c{background:var(--panel2);border:1px solid var(--line);border-radius:7px;
padding:5px 8px;display:flex;flex-direction:column;line-height:1.3}
.kw-c b{font-size:var(--fs-xs);color:var(--muted);font-weight:700}
.kw-c span{font-size:var(--fs-sm);color:#fff;font-weight:800;
white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kw-c em{font-size:var(--fs-xs);color:#ffd980;font-style:normal;
white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.mgrid-i{display:flex;flex-direction:column;align-items:center;gap:5px;padding:14px 6px;
background:var(--panel2);border:1px solid var(--line);border-radius:11px;
color:var(--ink);cursor:pointer;font-family:inherit}
.mgrid-i:hover{background:#22305a;border-color:var(--accent)}
.mgrid-i span{font-size:22px;line-height:1}
.mgrid-i em{font-size:var(--fs-xs);font-style:normal;font-weight:700}
@media (max-width:1100px){
#iconbar .icon-tool{padding:6px 0}
.ls-row{grid-template-columns:22px minmax(80px,1.2fr) 1fr 54px}
.ls-span{display:none}
}
@media (max-width:1023px){
.sl-cols.dual{flex-direction:column}
}
.sl-cols.dual .sl-row{flex-direction:column;align-items:stretch;gap:1px;padding:5px 7px}
.sl-cols.dual .sl-reg{min-width:0;font-size:var(--fs-micro)}
.sl-cols.dual .sl-pol{white-space:normal;line-height:1.25}
.sl-cols.dual .sl-king{max-width:none;font-size:var(--fs-micro)}
.sl-yr{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;min-width:0}
.sl-yr em{margin-left:0}
.tour-search{width:100%;box-sizing:border-box;background:var(--panel2);border:1px solid var(--line);
border-radius:9px;color:var(--ink);padding:9px 12px;font-size:var(--fs-body);
outline:none;font-family:inherit;margin:8px 0 4px}
.tour-search:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(255,204,92,.15)}
.tour-cat{margin:14px 0 4px}
.tour-cat h3{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:var(--fs-h2);
color:#fff;font-weight:800;border-left:4px solid var(--accent);padding-left:9px}
.tour-cat h3 em{font-style:normal;font-size:var(--fs-xs);color:#241a02;background:var(--accent);
border-radius:20px;padding:1px 8px;font-weight:800}
#legal-line{
display:flex; align-items:center; gap:6px; flex-wrap:wrap;
padding:2px 0 0; color:var(--muted); font-size:var(--fs-xs); opacity:.75;
}
#legal-line button{
background:none; border:none; padding:0; cursor:pointer;
color:var(--muted); font-size:inherit; font-family:inherit;
text-decoration:underline; text-underline-offset:2px;
}
#legal-line button:hover{ color:var(--ink); }
.legal section{ padding:12px 0; border-top:1px solid var(--line); }
.legal section:first-child{ border-top:none; }
.legal h3{ margin:0 0 6px; font-size:var(--fs-body); font-weight:800; }
.legal p{ margin:6px 0; font-size:var(--fs-sm); line-height:1.65; color:var(--ink); }
.legal ol,.legal ul{ margin:6px 0; padding-left:20px; font-size:var(--fs-sm); line-height:1.6; }
.legal li{ margin:3px 0; }
.legal code{
background:var(--panel2); border:1px solid var(--line); border-radius:4px;
padding:0 4px; font-size:.92em;
}
.legal-hero{
background:var(--panel2); border:1px solid var(--line); border-radius:10px;
padding:12px 14px !important; margin-bottom:4px;
}
.legal-warn{
background:rgba(255,180,60,.08); border-left:3px solid #ffb43c;
border-radius:0 8px 8px 0; padding:9px 12px !important;
}
.legal-credits{ max-height:220px; overflow:auto; }
.legal-credits a{ color:#8fb4ff; word-break:break-all; }
.legal-credits em{ color:var(--muted); font-style:normal; }
.ls-note{ margin-top:10px; border-top:1px solid var(--line); padding-top:8px; }
.ls-note summary{ cursor:pointer; }
.ls-note p{ margin:6px 0; line-height:1.6; }
.sl-king.figure{ opacity:.66; }
.sl-king.multi{ color:#8fb4ff; opacity:.85; font-weight:700; }
.rcard .power .frag.multi{ color:#8fb4ff; }
.kportwrap{ display:flex; flex-direction:column; align-items:center; gap:5px; }
.kportnote{
font-size:var(--fs-xs); color:var(--muted); opacity:.85; text-align:center;
max-width:200px; line-height:1.35;
}
#legal-line .cr{opacity:.8}
#brandline{margin:0;padding:0;flex-shrink:0;font-size:var(--fs-sm);font-weight:700;letter-spacing:.5px}
#brand{display:flex;align-items:center;gap:6px;width:100%;padding:3px 6px;border:1px solid transparent;
background:none;border-radius:8px;cursor:pointer;text-align:left;font-family:inherit;
font-size:inherit;font-weight:inherit;letter-spacing:inherit;color:var(--muted);
white-space:nowrap;overflow:hidden;transition:.16s}
#brand:hover{background:var(--panel);border-color:var(--border)}
#brand:active{transform:scale(.99)}
#brandmark{width:18px;height:18px;flex:0 0 auto;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}
#brand:hover #brandmark{filter:drop-shadow(0 0 6px rgba(255,204,92,.45))}
#brand b{font-size:var(--fs-body);font-weight:900;letter-spacing:.12em;color:#ffe6a6;flex:0 0 auto}
#brand span{color:var(--accent);overflow:hidden;text-overflow:ellipsis;min-width:0}
.fb-home{display:none}
@media (max-width:1023px){
.fb-home{display:inline-flex !important;align-items:center;gap:4px;flex:0 0 auto;
background:linear-gradient(140deg,#2a3a68,#1a2444);border:1px solid var(--accent);color:#ffe6a6;
border-radius:20px;padding:6px 12px;font-weight:800;font-size:var(--fs-sm);font-family:inherit;
min-height:34px;cursor:pointer}
.fb-home .fbh-i{font-size:14px}
}
#dock-root{
position:fixed;z-index:52;display:none;flex-direction:column;min-width:0;min-height:0;
left:10px;top:10px;width:clamp(258px,21vw,336px);
bottom:calc(var(--ctrlh, 118px) + 20px);
background:linear-gradient(180deg,#141b30,#0d1326);
border:1px solid var(--border);border-radius:14px;
box-shadow:0 18px 60px rgba(0,0,0,.5);
}
#dock-root.open{display:flex;animation:dockInX .24s cubic-bezier(.3,.8,.3,1)}
@keyframes dockInX{from{opacity:0;transform:translateX(-16px)}to{opacity:1;transform:none}}
.dock-tabs{display:flex;gap:4px;padding:0 10px 9px;border-bottom:1px solid var(--line);flex:0 0 auto}
.dock-tabs button{flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:center;gap:4px;
padding:7px 4px;border:1px solid var(--line);background:var(--panel);color:var(--muted);
border-radius:8px;font-size:var(--fs-xs);font-weight:700;font-family:inherit;cursor:pointer;
white-space:nowrap;transition:.14s}
.dock-tabs button span{font-size:13px;line-height:1}
.dock-tabs button:hover{border-color:var(--accent);color:var(--ink)}
.dock-tabs button.on{background:var(--accent);color:#241a02;border-color:var(--accent)}
.dock-head{display:flex;align-items:center;gap:8px;padding:11px 12px 9px;border-bottom:1px solid var(--line);flex:0 0 auto}
.dock-grab{display:none}
.dock-title{margin:0;font-size:var(--fs-h2);font-weight:800;flex:1;min-width:0;
white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dock-close{background:var(--panel2);border:1px solid var(--line);color:var(--muted);
width:32px;height:32px;min-height:32px;border-radius:9px;font-size:15px;cursor:pointer;flex:0 0 auto;font-family:inherit}
.dock-close:hover{color:var(--ink);border-color:var(--accent)}
.dock-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:10px 12px 14px}
.dock-body::-webkit-scrollbar{width:8px}
.dock-body::-webkit-scrollbar-thumb{background:#2c3a60;border-radius:4px}
@media (max-width:1023px){
#dock-root{
left:0;right:0;width:auto;border-radius:16px 16px 0 0;
box-shadow:0 -14px 44px rgba(0,0,0,.6);
top:calc(var(--mapbot, 260px) + 6px);
bottom:var(--dock-h, 190px);
}
#dock-root.open{animation:dockInY .26s cubic-bezier(.3,.8,.3,1)}
@keyframes dockInY{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.dock-head{padding:8px 12px 8px;position:relative}
.dock-tabs{padding:0 12px 9px;gap:5px}
.dock-tabs button{padding:9px 4px;min-height:38px;font-size:var(--fs-sm)}
.dock-grab{display:block;position:absolute;top:4px;left:50%;transform:translateX(-50%);
width:40px;height:4px;border-radius:3px;background:#39466e}
.dock-close{width:36px;height:36px;min-height:36px}
.dock-body{padding:8px 12px 16px}
}
@media (max-width:1023px) and (orientation:landscape) and (max-height:560px){
#dock-root{
top:6px;bottom:calc(var(--dock-h, 150px) + 6px);
left:auto;right:6px;width:min(52vw,430px);border-radius:14px;
box-shadow:-10px 0 40px rgba(0,0,0,.55);
}
body.dock-open #map-wrap{width:calc(100% - min(52vw,430px) - 14px);align-self:flex-start}
body.dock-open #mobilebrief,
body.dock-open #side{width:calc(100% - min(52vw,430px) - 14px)}
}
.fg-head{display:flex;flex-direction:column;gap:7px;margin:0 0 8px;padding:0 0 8px;
border-bottom:1px solid var(--line)}
.fg-chips{align-items:center}
.fg-count{margin-left:auto;white-space:nowrap}
.fg-kw{width:100%;box-sizing:border-box;background:var(--panel2);border:1px solid var(--line);
border-radius:9px;color:var(--ink);padding:9px 11px;font-size:var(--fs-sm);font-family:inherit}
.fg-chips{display:flex;flex-wrap:wrap;gap:4px}
.fg-chip{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:20px;
padding:4px 11px;font-size:var(--fs-xs);cursor:pointer;font-family:inherit;min-height:28px}
.fg-chip.on{background:var(--accent);color:#241a02;border-color:var(--accent);font-weight:700}
.fg-count{padding:0 2px}
.fg-era{margin-bottom:12px}
.fg-era h3{display:flex;align-items:baseline;gap:8px;margin:6px 0 6px;font-size:var(--fs-sm);
font-weight:800;color:#ffd980;border-left:3px solid var(--accent);padding-left:8px}
.fg-era h3 em{font-style:normal;font-size:var(--fs-xs);color:var(--muted);font-weight:500}
.fg-items{display:flex;flex-direction:column;gap:5px}
.fg-item{display:grid;grid-template-columns:1fr auto;grid-template-areas:"nm life" "role role";
gap:2px 8px;width:100%;text-align:left;background:var(--panel);border:1px solid var(--line);
border-radius:10px;padding:9px 11px;cursor:pointer;font-family:inherit;transition:.14s;min-height:44px}
.fg-item:hover{border-color:var(--accent);transform:translateY(-1px);background:#1b2440}
.fg-nm{grid-area:nm;font-weight:800;font-size:var(--fs-body);color:var(--ink)}
.fg-life{grid-area:life;font-size:var(--fs-xs);color:var(--accent);white-space:nowrap}
.fg-role{grid-area:role;font-size:var(--fs-xs);color:var(--muted)}
.fg-more{width:100%;margin-top:4px}
#figcard{position:fixed;inset:0;z-index:70;display:none}
#figcard.open{display:block}
.fc-backdrop{position:absolute;inset:0;background:rgba(4,7,16,.72);backdrop-filter:blur(3px)}
.fc-box{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
width:min(80vw,1120px);height:80vh;max-height:88dvh;display:flex;flex-direction:column;
background:linear-gradient(180deg,#161e36,#0e1528);border:1px solid var(--border);
border-radius:18px;box-shadow:0 28px 90px rgba(0,0,0,.7);overflow:hidden;
animation:fcIn .22s cubic-bezier(.2,.9,.3,1)}
@keyframes fcIn{from{opacity:0;transform:translate(-50%,-46%) scale(.97)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.fc-head{display:flex;align-items:flex-start;gap:10px;padding:16px 20px 12px;border-bottom:1px solid var(--line);flex:0 0 auto}
.fc-head h2{margin:0;font-size:var(--fs-display);font-size:clamp(20px,2.4vw,30px);font-weight:900;letter-spacing:.04em}
.fc-sub{color:var(--accent);font-size:var(--fs-sm);margin-top:3px}
.fc-close{margin-left:auto;background:var(--panel2);border:1px solid var(--line);color:var(--muted);
width:38px;height:38px;min-height:38px;border-radius:11px;font-size:16px;cursor:pointer;flex:0 0 auto;font-family:inherit}
.fc-close:hover{color:var(--ink);border-color:var(--accent)}
.fc-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(220px,30%) 1fr;gap:0}
.fc-left{padding:16px 18px;border-right:1px solid var(--line);overflow-y:auto;display:flex;flex-direction:column;gap:12px}
.fc-right{padding:16px 22px 24px;overflow-y:auto}
.fc-left::-webkit-scrollbar,.fc-right::-webkit-scrollbar{width:8px}
.fc-left::-webkit-scrollbar-thumb,.fc-right::-webkit-scrollbar-thumb{background:#2c3a60;border-radius:4px}
.fc-port{width:100%;aspect-ratio:1/1;border-radius:14px;overflow:hidden;background:#0a1120;border:1px solid var(--line)}
.fc-port svg,.fc-port img{width:100%;height:100%;display:block;object-fit:cover}
.fc-noport{position:relative;width:100%;height:100%}
.fc-noport svg{width:100%;height:100%}
.fc-noport-tip{position:absolute;left:0;right:0;bottom:0;padding:6px 8px;text-align:center;
font-size:var(--fs-xs);color:#e7c66a;background:rgba(4,10,14,.72)}
.fc-role{font-weight:800;font-size:var(--fs-body)}
.fc-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.fc-tag{background:var(--panel2);border:1px solid var(--line);border-radius:20px;padding:3px 10px;
font-size:var(--fs-xs);color:var(--muted)}
.fc-acts{display:flex;flex-direction:column;gap:7px;margin-top:auto}
.fc-acts .btn{width:100%;justify-content:center}
.fc-lead{margin:0 0 14px;font-size:var(--fs-h2);line-height:1.55;color:#ffe6a6}
.fc-right h3{font-size:var(--fs-body);font-weight:800;margin:16px 0 8px;
border-left:3px solid var(--accent);padding-left:9px;color:#ffd980}
.fc-p{font-size:var(--fs-body);line-height:1.85;color:#cfd6ea;margin:0 0 10px}
.fc-chron{list-style:none;margin:0;padding:0 0 0 4px;border-left:2px solid var(--line)}
.fc-chron li{position:relative;display:flex;gap:10px;padding:7px 0 7px 16px;cursor:pointer;border-radius:8px}
.fc-chron li::before{content:"";position:absolute;left:-5px;top:15px;width:8px;height:8px;border-radius:50%;
background:var(--accent);box-shadow:0 0 0 3px rgba(255,204,92,.15)}
.fc-chron li:hover{background:#1b2440}
.fc-cy{flex:0 0 auto;min-width:62px;color:var(--accent);font-weight:700;font-size:var(--fs-sm)}
.fc-ct{font-size:var(--fs-sm);line-height:1.5}
@media (max-width:1023px){
.fc-box{width:92vw;height:80dvh;max-height:80dvh}
.fc-body{grid-template-columns:1fr;grid-template-rows:auto 1fr;overflow-y:auto}
.fc-left{border-right:none;border-bottom:1px solid var(--line);overflow:visible;
display:grid;grid-template-columns:38% 1fr;gap:12px;align-items:start}
.fc-port{grid-row:span 2}
.fc-acts{margin-top:8px;grid-column:2}
.fc-right{overflow:visible;padding:14px 16px 22px}
.fc-head{padding:12px 14px 10px}
}
#dock-root .cmp-head{display:flex;flex-direction:column;gap:7px;margin:0 0 8px;padding:0 0 9px;
border-bottom:1px solid var(--line)}
#dock-root .cmp-yrbox{font-size:var(--fs-h1);font-weight:900;color:var(--accent)}
#dock-root .cmp-yrbox em{font-style:normal;font-size:var(--fs-sm);color:var(--muted);margin-left:6px}
#dock-root #cmp-slider{width:100%;height:32px}
#dock-root .cmp-jump{display:flex;flex-wrap:wrap;gap:4px}
#dock-root .cmp-jump .mini{padding:4px 9px;font-size:var(--fs-xs);border-radius:16px;min-height:28px}
.cmp-sync{display:flex;align-items:center;gap:6px;font-size:var(--fs-xs);color:var(--muted);cursor:pointer}
#dock-root .cmp-group h3{font-size:var(--fs-sm);font-weight:800;color:#ffd980;margin:10px 0 6px;
border-left:3px solid var(--accent);padding-left:8px}
#dock-root .cmp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:6px}
#dock-root .cmp-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;
padding:8px 9px;cursor:pointer;transition:.14s}
#dock-root .cmp-card:hover{border-color:var(--accent);transform:translateY(-1px)}
#dock-root .cmp-reg{font-weight:800;font-size:var(--fs-sm)}
#dock-root .cmp-pol{font-size:var(--fs-xs);color:#cfd6ea;margin-top:2px}
#dock-root .cmp-ruler{font-size:var(--fs-xs);color:var(--accent);margin-top:2px}
#dock-root .cmp-ev{list-style:none;margin:5px 0 0;padding:0;font-size:var(--fs-xs);color:var(--muted);line-height:1.5}
#dock-root .cmp-ev b{color:#9fb0d8;font-weight:700;margin-right:3px}
#dock-root #cmp-slider{-webkit-appearance:none;appearance:none;background:transparent}
#dock-root #cmp-slider::-webkit-slider-runnable-track{height:6px;border-radius:4px;
background:linear-gradient(90deg,#3a4a72,#5b6ea8)}
#dock-root #cmp-slider::-moz-range-track{height:6px;border-radius:4px;background:#3a4a72}
#dock-root #cmp-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;
width:20px;height:20px;border-radius:50%;background:var(--accent);border:2px solid #241a02;
margin-top:-7px;box-shadow:0 2px 8px rgba(0,0,0,.5);cursor:pointer}
#dock-root #cmp-slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;
background:var(--accent);border:2px solid #241a02;cursor:pointer}
.st-head{border-bottom:1px solid var(--line);padding-bottom:9px;margin-bottom:10px}
.st-name{font-size:var(--fs-h1);font-weight:900;color:#ffe6a6}
.st-span{font-size:var(--fs-sm);color:var(--accent);margin-top:3px}
.st-meta{display:flex;flex-direction:column;gap:5px;background:var(--panel);border:1px solid var(--line);
border-radius:10px;padding:10px 12px;margin-bottom:10px}
.st-m{font-size:var(--fs-sm);line-height:1.55}
.st-m b{display:inline-block;min-width:62px;color:var(--muted);font-weight:700;margin-right:6px}
.st-tags{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:12px}
.st-tag{background:#22305a;border:1px solid var(--border);border-radius:20px;padding:3px 11px;
font-size:var(--fs-xs);color:#ffd980}
.st-p{font-size:var(--fs-body);line-height:1.85;color:#cfd6ea;margin:0 0 10px}
.st .st-ev{list-style:none;margin:0;padding:0 0 0 4px;border-left:2px solid var(--line)}
.st-ev li{position:relative;display:flex;gap:10px;padding:7px 0 7px 16px;cursor:pointer;border-radius:8px}
.st-ev li::before{content:"";position:absolute;left:-5px;top:15px;width:8px;height:8px;border-radius:50%;
background:var(--accent);box-shadow:0 0 0 3px rgba(255,204,92,.15)}
.st-ev li:hover{background:#1b2440}
.st-ey{flex:0 0 auto;min-width:66px;color:var(--accent);font-weight:700;font-size:var(--fs-sm)}
.st-et{font-size:var(--fs-sm);line-height:1.5}
.st h4{font-size:var(--fs-body);margin:16px 0 8px;border-left:3px solid var(--accent);padding-left:9px;color:#ffd980}
.st-others{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}
.st-oh{font-size:var(--fs-sm);font-weight:800;color:#ffd980;margin-bottom:7px}
.st-chips{display:flex;flex-wrap:wrap;gap:5px}
.st-chip{background:var(--panel);border:1px solid var(--line);color:var(--ink);border-radius:20px;
padding:5px 13px;font-size:var(--fs-sm);cursor:pointer;font-family:inherit;min-height:32px;transition:.14s}
.st-chip:hover{border-color:var(--accent);background:#1b2440}
#frags .frag{cursor:pointer}
#frags .frag:hover .sn{fill:#ffe6a6}
.fl-kw{width:100%;box-sizing:border-box;background:var(--panel2);border:1px solid var(--line);
border-radius:9px;color:var(--ink);padding:10px 12px;font-size:var(--fs-body);font-family:inherit}
.fl-segs{display:flex;flex-wrap:wrap;gap:5px;margin:9px 0 7px}
.fl-seg{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:20px;
padding:6px 14px;font-size:var(--fs-sm);cursor:pointer;font-family:inherit;min-height:34px}
.fl-seg.on{background:var(--accent);color:#241a02;border-color:var(--accent);font-weight:700}
.fl-count{margin-bottom:8px}
.fl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(184px,1fr));gap:6px}
.fl-item{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"img n" "img cap";
gap:1px 10px;align-items:center;text-align:left;background:var(--panel);border:1px solid var(--line);
border-radius:10px;padding:8px 11px;cursor:pointer;font-family:inherit;transition:.14s;min-height:46px}
.fl-item:hover{border-color:var(--accent);background:#1b2440;transform:translateY(-1px)}
.fl-thumb{grid-area:img;width:30px;height:20px;object-fit:cover;border-radius:2px;
box-shadow:0 0 0 1px rgba(255,255,255,.18)}
.fl-n{grid-area:n;font-weight:800;font-size:var(--fs-body);color:var(--ink)}
.fl-cap{grid-area:cap;font-size:var(--fs-xs)}
.fl-note{margin-top:14px;line-height:1.6}
#flagcard{position:fixed;inset:0;z-index:80;display:none}
#flagcard.open{display:block}
.fmc-backdrop{position:absolute;inset:0;background:rgba(4,7,16,.7);backdrop-filter:blur(3px)}
.fmc-box{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
width:min(340px,88vw);padding:20px 22px 22px;text-align:center;
background:linear-gradient(180deg,#161e36,#0e1528);border:1px solid var(--border);
border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.7);
animation:fmcIn .18s cubic-bezier(.2,.9,.3,1)}
@keyframes fmcIn{from{opacity:0;transform:translate(-50%,-46%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.fmc-close{position:absolute;top:10px;right:10px;background:var(--panel2);border:1px solid var(--line);
color:var(--muted);width:32px;height:32px;min-height:32px;border-radius:9px;cursor:pointer;font-family:inherit}
.fmc-close:hover{color:var(--ink);border-color:var(--accent)}
.fmc-flag{width:180px;height:120px;margin:6px auto 14px;border-radius:6px;overflow:hidden;
box-shadow:0 6px 20px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.16)}
.fmc-flag img{width:100%;height:100%;object-fit:cover;display:block}
.fmc-n{font-size:var(--fs-h1);font-weight:900;color:#ffe6a6}
.fmc-full{font-size:var(--fs-sm);color:var(--muted);margin:3px 0 14px}
.fmc-rows{display:flex;flex-direction:column;gap:6px;text-align:left}
.fmc-row{display:flex;gap:10px;background:var(--panel);border:1px solid var(--line);
border-radius:9px;padding:8px 11px;font-size:var(--fs-sm)}
.fmc-row b{flex:0 0 auto;min-width:66px;color:var(--muted);font-weight:700}
.fmc-row span{line-height:1.5}
@media (max-width:1023px){
.fl-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.fmc-flag{width:150px;height:100px}
}
.feat-btn .fi,.tab-btn .ti,.mgrid-i > span,.dock-tabs button > span,#segbar button > .ic{
display:inline-flex;align-items:center;justify-content:center;line-height:0}
.feat-btn .ic,.tab-btn .ic,.mgrid-i .ic,.dock-tabs .ic,#segbar .ic{color:currentColor}
#featurebar .primary-tool .fi{line-height:0}
#iconbar .icon-tool .fi{line-height:0}
#moregrid .more-tool .fi{line-height:0}
:focus-visible{outline:none;box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--accent);border-radius:8px}
.tour-card:focus-visible,.fig-card:focus-visible,.war-card:focus-visible,.rcard:focus-visible{
box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--accent)}
.skip-link{position:absolute;left:-9999px;top:0;z-index:200;background:var(--accent);color:#241a02;
padding:8px 14px;border-radius:0 0 10px 0;font-weight:800}
.skip-link:focus{left:0}
.tour-card{width:100%;text-align:left;font-family:inherit;font-size:inherit;color:inherit;
appearance:none;-webkit-appearance:none}
#segbar button[data-m]{display:inline-flex;align-items:center;justify-content:center;gap:5px}
#segbar .segfold{flex:0 0 30px;width:30px;padding:6px 0;color:var(--muted);
display:inline-flex;align-items:center;justify-content:center}
#segbar .segfold:hover{color:var(--ink);background:rgba(255,255,255,.05)}
#onb.onb-one .onb-tip{width:320px}
#onb.onb-one .onb-bar{justify-content:flex-end}
.war-more{width:100%;justify-content:center;margin:6px 0 10px}
#segbar .seghead{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;
padding:6px 4px;font-size:var(--fs-sm);font-weight:800;color:var(--accent)}
#gate-root{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;
padding:20px;overflow-y:auto;background:radial-gradient(120% 120% at 50% 0%,#16224a,#070b18)}
body.gated{overflow:hidden}
.gate-card{width:100%;max-width:460px;background:var(--panel);border:1px solid var(--border);
border-radius:18px;padding:26px 24px;box-shadow:0 30px 90px rgba(0,0,0,.6);margin:auto}
.gate-brand{display:flex;align-items:center;gap:8px;color:var(--accent);font-size:var(--fs-h2);margin-bottom:14px}
.gate-brand b{font-weight:800}
.gate-brand span{color:var(--muted);font-size:var(--fs-sm);font-weight:600}
.gate-card h1{font-size:22px;font-weight:800;margin:0 0 8px}
.gate-sub{color:var(--muted);font-size:var(--fs-body);line-height:1.6;margin-bottom:14px}
.gate-sub b{color:var(--accent)}
.gate-warn{background:#2a2412;border:1px solid #5a4a1c;color:#ffe0a0;border-radius:10px;
padding:10px 12px;font-size:var(--fs-sm);line-height:1.55;margin-bottom:14px}
.gate-fld{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.gate-fld > span{font-size:var(--fs-sm);color:var(--muted);font-weight:700}
.gate-fld i{font-style:normal;color:var(--accent);font-weight:600;margin-left:4px}
.gate-fld input{background:var(--bg);border:1px solid var(--line);border-radius:10px;color:var(--ink);
padding:11px 12px;font-size:var(--fs-body);font-family:inherit;width:100%}
.gate-fld input:focus{outline:none;border-color:var(--accent)}
.gate-err{display:none;color:#ff9b9b;font-size:var(--fs-sm);margin:2px 0 10px}
.gate-err.on{display:block}
.gate-go{width:100%;padding:13px;border-radius:11px;border:1px solid var(--accent);
background:var(--accent);color:#241a02;font-weight:800;font-size:var(--fs-h2);
font-family:inherit;cursor:pointer;transition:.15s}
.gate-go:hover:not(:disabled){filter:brightness(1.07)}
.gate-go:disabled{opacity:.6;cursor:default}
.gate-alt{text-align:center;color:var(--muted);font-size:var(--fs-sm);margin-top:14px}
.gate-alt button{background:none;border:none;color:var(--accent);font-weight:700;
font-family:inherit;font-size:inherit;cursor:pointer;text-decoration:underline}
.gate-tier{list-style:none;margin:18px 0 0;padding:14px 0 0;border-top:1px solid var(--line)}
.gate-tier li{color:var(--muted);font-size:var(--fs-sm);line-height:1.6;padding:4px 0}
.gate-tier b{color:var(--ink)}
.gate-fine{color:#7f8bab;font-size:var(--fs-xs);line-height:1.55;margin-top:12px}
@media(max-width:520px){.gate-card{padding:22px 18px}.gate-card h1{font-size:20px}}
body.lv-pro .feat-btn .pro-dot,
body.lv-pro .tab-btn .pro-dot{display:none}
body.lv-normal .feat-btn[data-gated] .pro-dot{display:inline}
@media (max-width:1023px){
#tourplayer .tp-top #tp-close{min-width:44px;min-height:44px;display:inline-flex;
align-items:center;justify-content:center;font-size:var(--fs-h2)}
.tp-ctrl .btn{min-height:44px;padding-top:0;padding-bottom:0}
.tp-ctrl{padding:8px 12px;gap:6px}
}
.tour-more{width:100%;justify-content:center;margin:10px 0 4px}