@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Noto+Sans+SC:wght@400;600;800;900&display=swap');
*{margin:0;padding:0;box-sizing:border-box;}

:root{
  --bg-primary:#12141c;--bg-elevated:#181a24;--bg-container:#1e2030;--border:#2a2d3a;
  --card-bg:#f5f5f7;--card-bg-dim:#d8d8dd;--card-secondary:#e8e8ed;--card-shadow:0 2px 12px rgba(0,0,0,0.25);
  --text-on-dark:#f0f0f5;--text-on-dark-secondary:#7a7a8e;
  --text-on-light:#1a1a2e;--text-on-light-secondary:#4a4a5a;--text-on-light-dim:#8a8a9a;
  --color-p1:#e8364e;--color-p2:#2d8cf0;
  --color-work:#e8364e;--color-rest:#00c48c;--color-swap:#f0a020;--color-water:#2d8cf0;--color-complete:#00c48c;
  --tag-equip-bg:rgba(240,160,32,0.12);--tag-equip-text:#c08000;
  --tag-bw-bg:rgba(0,196,140,0.12);--tag-bw-text:#009968;
  --tag-mg-bg:rgba(255,255,255,0.05);--tag-mg-text:#7a7a8e;
  --radius-card:16px;--radius-button:14px;--radius-tag:6px;--radius-chip:20px;
}
body{font-family:'Noto Sans SC',sans-serif;background:var(--bg-primary);color:var(--text-on-dark);min-height:100vh;overflow-x:hidden;-webkit-tap-highlight-color:transparent;}

/* ═══ BG FX ═══ */
.bg-fx{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.orb{position:absolute;border-radius:50%;filter:blur(90px);transition:opacity 1.5s,transform 1.5s;}
.o1{width:500px;height:500px;background:radial-gradient(var(--color-work),transparent 70%);top:-150px;left:-100px;opacity:.04;}
.o3{width:350px;height:350px;background:radial-gradient(var(--color-swap),transparent 70%);top:25%;left:40%;opacity:0;}
#particles{position:fixed;inset:0;z-index:1;pointer-events:none;}
.flash{position:fixed;inset:0;z-index:300;pointer-events:none;opacity:0;transition:opacity .1s;}
.flash.go,.flash.sw,.flash.ice,.flash.wt{background:rgba(255,255,255,.06);opacity:1;}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
.shaking{animation:shake .3s ease;}
.app{width:100%;min-height:100vh;position:relative;z-index:2;}

/* ═══ PAGE ROUTING ═══ */
.page{display:none;padding:0 20px 40px;max-width:800px;margin:0 auto;}
.page.active{display:block;}
#pageTraining.active{display:block;max-width:100%;padding:0;}

/* ═══ TOPBARS ═══ */
.home-topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 0 8px;}
.brand{font-family:'Bebas Neue',sans-serif;font-size:42px;letter-spacing:8px;color:var(--color-work);line-height:1;}
.topbar-actions{display:flex;gap:8px;}
.icon-btn{width:38px;height:38px;border-radius:10px;background:var(--bg-container);border:1px solid var(--border);color:var(--text-on-dark-secondary);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.page-topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 0;position:sticky;top:0;z-index:10;background:var(--bg-primary);}
.back-btn{background:none;border:none;color:var(--text-on-dark-secondary);font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;padding:6px 0;}
.refresh-btn{background:none;border:none;color:var(--color-swap);font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;}

/* ═══ HOME: 人数切换 + 玩家 ═══ */
.home-players{display:flex;align-items:center;gap:12px;padding:8px 0 12px;}
.seg-ctrl{display:flex;background:var(--bg-container);border-radius:10px;overflow:hidden;border:1px solid var(--border);}
.seg-item{padding:8px 20px;border:none;background:transparent;color:var(--text-on-dark-secondary);font-family:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:all .2s;}
.seg-item.active{background:var(--border);color:var(--text-on-dark);}
.player-tags{display:flex;gap:10px;}
.ptag{font-size:13px;font-weight:700;}
.ptag-p1{color:var(--color-p1);}.ptag-p2{color:var(--color-p2);}

/* ═══ HOME: 随机生成大按钮 ═══ */
.big-random-btn{width:100%;padding:18px 20px;border-radius:var(--radius-card);border:none;background:var(--color-work);color:white;cursor:pointer;text-align:left;position:relative;margin-bottom:20px;box-shadow:0 4px 16px rgba(232,54,78,.3);}
.big-random-btn:active{transform:scale(.98);}
.big-random-main{font-size:18px;font-weight:800;}
.big-random-sub{font-size:12px;opacity:.7;margin-top:2px;}
.station-count-sel{position:absolute;right:16px;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3);color:white;font-family:inherit;font-size:14px;font-weight:700;padding:6px 10px;border-radius:8px;cursor:pointer;}
.station-count-sel option{color:#1a1a2e;background:white;}

/* ═══ HOME: 意图网格 ═══ */
.section-label{font-size:12px;font-weight:700;color:var(--text-on-dark-secondary);letter-spacing:1px;padding:8px 0 6px;text-transform:uppercase;}
.intent-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:20px;}
.intent-card{background:var(--bg-container);border:1px solid var(--border);border-radius:var(--radius-card);padding:16px 8px;text-align:center;cursor:pointer;transition:all .2s;}
.intent-card:active{transform:scale(.96);}
.intent-card .ic-emoji{font-size:28px;margin-bottom:4px;}
.intent-card .ic-name{font-size:14px;font-weight:800;color:var(--text-on-dark);}
.intent-card .ic-sub{font-size:9px;color:var(--text-on-dark-secondary);margin-top:2px;}

/* ═══ HOME: 模板列表 ═══ */
.template-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding-bottom:20px;}
.template-item{background:var(--bg-container);border:1px solid var(--border);border-radius:10px;padding:10px 14px;cursor:pointer;transition:all .2s;display:flex;justify-content:space-between;align-items:center;}
.template-item:active{transform:scale(.97);}
.template-item .tpl-name{font-size:13px;font-weight:700;color:var(--text-on-dark);}
.template-item .tpl-info{font-size:10px;color:var(--text-on-dark-secondary);}

/* ═══ PREVIEW ═══ */
.preview-header{padding:8px 0 16px;}
.ph-title-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;gap:12px;flex-wrap:wrap;}
.ph-name{font-size:22px;font-weight:900;color:var(--text-on-dark);}
.ph-time{font-size:12px;color:var(--text-on-dark-secondary);letter-spacing:.5px;}
/* Docklands 风格 briefing 横幅：大数字 + 侧栏小数据 */
.briefing{display:flex;gap:16px;background:linear-gradient(135deg,rgba(232,54,78,.08),rgba(232,54,78,.02));border:1px solid rgba(232,54,78,.18);border-radius:14px;padding:18px 20px;align-items:stretch;}
.bf-main{flex:1;display:flex;flex-direction:column;justify-content:center;min-width:0;}
.bf-num{font-family:'Bebas Neue',sans-serif;font-size:72px;line-height:.9;letter-spacing:2px;color:var(--color-work);}
.bf-label{font-size:11px;font-weight:800;letter-spacing:3px;color:var(--text-on-dark-secondary);margin-top:4px;}
.bf-side{display:flex;flex-direction:column;justify-content:center;gap:10px;border-left:1px solid rgba(255,255,255,.08);padding-left:16px;}
.bf-row{display:flex;align-items:center;gap:8px;font-size:13px;}
.bf-icon{font-size:14px;width:14px;text-align:center;}
.bf-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.bf-dot.work{background:#4caf50;box-shadow:0 0 6px rgba(76,175,80,.6);}
.bf-dot.rest{background:#e8364e;box-shadow:0 0 6px rgba(232,54,78,.6);}
.bf-val{font-family:'Bebas Neue',sans-serif;font-size:20px;color:var(--text-on-dark);min-width:28px;}
.bf-unit{font-size:11px;color:var(--text-on-dark-secondary);margin-left:1px;}
.bf-cap{font-size:10px;font-weight:800;letter-spacing:2px;color:var(--text-on-dark-secondary);}
.preview-stations{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:16px;}
.preview-stn{background:var(--card-bg);border-radius:10px;padding:10px 12px;display:flex;align-items:center;gap:8px;box-shadow:var(--card-shadow);color:var(--text-on-light);}
.preview-stn .ps-ord{font-family:'Bebas Neue',sans-serif;font-size:18px;color:var(--color-work);min-width:20px;}
.preview-stn .ps-emoji{font-size:20px;}
.preview-stn .ps-name{font-size:13px;font-weight:700;flex:1;}
.preview-stn .ps-tag{font-size:9px;padding:2px 6px;border-radius:4px;font-weight:700;}
.preview-stn .ps-tag-eq{background:var(--tag-equip-bg);color:var(--tag-equip-text);}
.preview-stn .ps-tag-bw{background:var(--tag-bw-bg);color:var(--tag-bw-text);}
.preview-stn.conflict{border:1px solid rgba(232,54,78,.4);}
.preview-conflict{padding:8px 12px;border-radius:8px;background:rgba(232,54,78,.08);color:var(--color-work);font-size:11px;margin-bottom:12px;}

.fold-section{margin-bottom:12px;}
.fold-section summary{font-size:13px;font-weight:700;color:var(--text-on-dark-secondary);cursor:pointer;padding:8px 0;list-style:none;}
.fold-section summary::-webkit-details-marker{display:none;}
.fold-section[open] summary{color:var(--text-on-dark);}
.params-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:4px 0;}
.param-row{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg-container);border-radius:10px;border:1px solid var(--border);}
.param-label{font-size:12px;color:var(--text-on-dark-secondary);}
.stp{display:flex;align-items:center;gap:6px;}
.stp button{width:32px;height:32px;border-radius:8px;border:1px solid var(--border);background:var(--bg-primary);color:var(--text-on-dark);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.stp span{font-family:'Bebas Neue',sans-serif;font-size:18px;min-width:30px;text-align:center;color:var(--text-on-dark);}
.warmup-toggle{padding:6px 16px;border-radius:8px;border:1px solid var(--border);background:rgba(232,54,78,.15);color:var(--color-work);font-family:inherit;font-size:12px;font-weight:700;cursor:pointer;}

.edit-stations{display:flex;flex-direction:column;gap:4px;padding:4px 0;}
.edit-stn{display:flex;align-items:center;gap:8px;padding:8px;background:var(--bg-container);border-radius:8px;border:1px solid var(--border);}
.edit-stn .es-handle{color:var(--text-on-dark-secondary);cursor:grab;font-size:12px;}
.edit-stn .es-ord{font-family:'Bebas Neue',sans-serif;font-size:16px;color:var(--color-work);width:20px;text-align:center;}
.edit-stn .es-emoji{font-size:18px;}
.edit-stn .es-name{font-size:12px;font-weight:700;flex:1;color:var(--text-on-dark);}
.edit-stn .es-del{background:none;border:none;color:var(--text-on-dark-secondary);font-size:14px;cursor:pointer;padding:4px;}

.btn-start{width:100%;padding:18px;border-radius:var(--radius-button);border:none;font-family:'Bebas Neue',sans-serif;font-size:28px;letter-spacing:4px;cursor:pointer;background:var(--color-work);color:white;box-shadow:0 4px 16px rgba(232,54,78,.3);margin-top:8px;}
.btn-start:active{transform:scale(.97);}

/* ═══ TRAINING ═══ */
.training-topbar{display:flex;align-items:center;justify-content:space-between;padding:8px 30px;background:var(--bg-elevated);border-bottom:1px solid var(--border);}
.training-info{font-size:13px;color:var(--text-on-dark-secondary);display:flex;gap:12px;justify-content:center;flex:1;}
.training-info span{font-weight:700;}
.training-info .phase-lg{font-family:'Bebas Neue',sans-serif;font-size:22px;letter-spacing:6px;color:var(--text-on-dark);}
.bpm-hb{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-on-dark-secondary);}
.hb-dot{width:10px;height:10px;border-radius:50%;background:var(--color-work);opacity:.3;transition:all .08s;}
.hb-dot.beat{opacity:1;box-shadow:0 0 10px var(--color-work);transform:scale(1.4);}

/* 横屏优先 */
.training-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:12px 30px;align-items:center;min-height:calc(100vh - 60px);}
.train-left{display:flex;flex-direction:column;align-items:center;gap:16px;justify-content:center;}
.train-right{display:flex;flex-direction:column;gap:10px;}

.ring-wrap{width:min(42vh,380px);height:min(42vh,380px);margin:0 auto;position:relative;}
.ring-wrap svg{position:absolute;inset:0;}
.bg-c{fill:none;stroke:var(--border);stroke-width:6;}
.fg-c{fill:none;stroke-width:6;stroke-linecap:round;transform:rotate(-90deg);transform-origin:center;transition:stroke-dashoffset .3s linear,stroke .5s;filter:drop-shadow(0 0 8px rgba(232,54,78,.3));}
.pul-r{position:absolute;inset:-10px;border-radius:50%;border:2px solid var(--color-work);opacity:0;pointer-events:none;}
@keyframes pO{0%{transform:scale(1);opacity:.6}100%{transform:scale(1.15);opacity:0}}.pul-r.on{animation:pO 1s ease-out infinite;}.pul-r.rest{border-color:var(--color-rest);}.pul-r.wt{border-color:var(--color-water);}
.ring-burst{position:absolute;inset:-16px;border-radius:50%;border:3px solid var(--color-work);opacity:0;pointer-events:none;}
@keyframes burst{0%{transform:scale(.8);opacity:.8}100%{transform:scale(1.5);opacity:0}}.ring-burst.pop{animation:burst .6s ease-out;}
.ig{position:absolute;inset:14px;border-radius:50%;opacity:0;transition:opacity .5s;}.ig.on{opacity:1;animation:iP 1.5s ease-in-out infinite;}
@keyframes iP{0%,100%{opacity:.4}50%{opacity:1}}.ig.fire{background:radial-gradient(circle,rgba(232,54,78,.08),transparent 70%);}.ig.ice{background:radial-gradient(circle,rgba(0,196,140,.07),transparent 70%);}.ig.wt{background:radial-gradient(circle,rgba(45,140,240,.08),transparent 70%);}
.t-info{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.ph-tag{font-size:min(2.6vh,18px);font-weight:800;letter-spacing:2px;text-transform:uppercase;margin-bottom:2px;white-space:nowrap;}
.ph-tag.w{color:var(--color-work);}.ph-tag.r{color:var(--color-rest);}.ph-tag.rdy{color:var(--color-swap);}.ph-tag.sw{color:var(--color-swap);}.ph-tag.wt{color:var(--color-water);}
.t-num{font-family:'Bebas Neue',sans-serif;font-size:min(12vh,110px);line-height:1;letter-spacing:4px;color:var(--text-on-dark);transition:all .3s;}
.t-num.low{color:var(--color-work);animation:tP .4s ease-in-out infinite;}
@keyframes tP{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
.rnd-tag{font-size:min(2.2vh,18px);color:var(--text-on-dark-secondary);margin-top:2px;}

.energy-wrap{width:100%;max-width:380px;height:6px;background:var(--border);border-radius:3px;overflow:hidden;}
.energy-fill{height:100%;border-radius:2px;transition:width .5s,background .5s;width:100%;}.energy-fill.hot{background:var(--color-work);}.energy-fill.cool{background:var(--color-rest);}.energy-fill.aqua{background:var(--color-water);}
.ring-overview{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;max-width:420px;padding:12px 16px;background:rgba(255,255,255,.02);border-radius:12px;border:1px solid rgba(255,255,255,.04);}
.ro-dot{width:36px;height:36px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:16px;border:1.5px solid var(--border);background:var(--bg-container);transition:all .4s;position:relative;}
.ro-dot.cur-p1{border-color:var(--color-p1);background:rgba(232,54,78,.15);}.ro-dot.cur-p2{border-color:var(--color-p2);background:rgba(45,140,240,.12);}
.ro-marker{position:absolute;bottom:-7px;font-size:7px;font-weight:900;}.ro-marker.m1{color:var(--color-p1);}.ro-marker.m2{color:var(--color-p2);}

/* Station cards (浅底+左色条) */
.station-cards{display:flex;gap:12px;}
.station-cards.pc-1{flex-direction:column;}
.station-cards.pc-1 .stn{max-width:100%;}

.stn{flex:1;background:var(--card-bg);border-radius:var(--radius-card);border:none;border-left:4px solid var(--border);padding:16px;text-align:center;overflow:hidden;transition:all .5s cubic-bezier(.16,1,.3,1);box-shadow:var(--card-shadow);color:var(--text-on-light);}
@keyframes cardIn{0%{transform:translateY(16px) scale(.96);opacity:0}100%{transform:translateY(0) scale(1);opacity:1}}.stn.enter{animation:cardIn .35s cubic-bezier(.16,1,.3,1);}
.stn.gl-p1{border-left-color:var(--color-p1);box-shadow:var(--card-shadow),0 0 20px rgba(232,54,78,.12);}
.stn.gl-p2{border-left-color:var(--color-p2);box-shadow:var(--card-shadow),0 0 20px rgba(45,140,240,.12);}
.stn.gl-preview{border-left-color:var(--color-swap);}
.stn.gl-dim{background:var(--card-bg-dim);color:var(--text-on-light-dim);border-left-color:var(--border);box-shadow:none;}
.stn-badge{font-family:'Bebas Neue',sans-serif;font-size:14px;letter-spacing:3px;margin-bottom:4px;display:flex;align-items:center;justify-content:center;gap:6px;color:var(--text-on-light-secondary);}
.who{padding:3px 10px;border-radius:8px;font-size:13px;font-weight:800;letter-spacing:1px;}
.who-p1{background:rgba(232,54,78,.1);color:var(--color-p1);}.who-p2{background:rgba(45,140,240,.1);color:var(--color-p2);}
.stn-emoji{font-size:min(6vh,48px);margin-bottom:4px;}.stn.gl-p1 .stn-emoji,.stn.gl-p2 .stn-emoji{animation:ePop .4s ease-out;}
@keyframes ePop{0%{transform:scale(0) rotate(-20deg)}60%{transform:scale(1.15) rotate(3deg)}100%{transform:scale(1) rotate(0)}}
.stn-name{font-size:min(4vh,32px);font-weight:900;line-height:1.2;margin-bottom:4px;color:var(--text-on-light);}
.stn-eq{display:inline-block;padding:3px 10px;border-radius:var(--radius-tag);font-size:13px;font-weight:700;background:var(--tag-equip-bg);color:var(--tag-equip-text);margin-bottom:4px;}.stn-eq.bw{background:var(--tag-bw-bg);color:var(--tag-bw-text);}
.stn-hint{font-size:14px;color:var(--text-on-light-secondary);line-height:1.5;white-space:pre-line;}

.next-pair{padding:10px 16px;background:var(--card-secondary);border-radius:12px;display:flex;align-items:center;gap:8px;box-shadow:var(--card-shadow);color:var(--text-on-light-secondary);}
.np-l{font-size:12px;letter-spacing:1px;white-space:nowrap;color:var(--text-on-light-dim);}.np-v{font-weight:800;color:var(--text-on-light);font-size:16px;}

.vol-bar{display:flex;gap:8px;}
.vg{flex:1;display:flex;align-items:center;gap:6px;background:var(--bg-container);padding:7px 10px;border-radius:10px;}
.vg label{font-size:13px;color:var(--text-on-dark-secondary);white-space:nowrap;}
.vg input[type=range]{flex:1;-webkit-appearance:none;height:3px;background:var(--border);border-radius:2px;outline:none;}
.vg input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--color-work);cursor:pointer;}
.vg .vv{font-family:'Bebas Neue',sans-serif;font-size:16px;color:var(--text-on-dark-secondary);min-width:24px;text-align:right;}
.vt-btn{background:var(--color-work);border:none;color:white;width:24px;height:24px;border-radius:6px;font-size:11px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;}
.vt-btn:active{transform:scale(.9);}

.train-controls{display:flex;gap:10px;width:100%;max-width:420px;margin-top:4px;}
.btn-go{flex:2;padding:16px;border-radius:var(--radius-button);border:none;font-family:'Bebas Neue',sans-serif;font-size:26px;letter-spacing:4px;cursor:pointer;background:var(--color-work);color:white;box-shadow:0 4px 16px rgba(232,54,78,.3);}.btn-go:active{transform:scale(.97);}
.btn-pause{background:transparent!important;border:2px solid var(--color-swap);color:var(--color-swap);box-shadow:none;}
.btn-end{padding:14px 20px;border-radius:var(--radius-button);border:1px solid var(--border);background:var(--bg-container);color:var(--text-on-dark-secondary);font-family:inherit;font-size:13px;font-weight:700;cursor:pointer;}

/* Finish screen */
.finish-screen{position:fixed;inset:0;z-index:200;background:rgba(18,20,28,.96);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;}
.finish-emoji{font-size:80px;}.finish-title{font-family:'Bebas Neue',sans-serif;font-size:48px;letter-spacing:4px;color:var(--color-complete);}
.finish-sub{font-size:16px;color:var(--text-on-dark-secondary);}
.finish-actions{display:flex;gap:12px;margin-top:20px;width:100%;max-width:400px;padding:0 20px;}

/* ═══ LIBRARY ═══ */
.ctb{display:flex;flex-wrap:wrap;gap:5px;padding:4px 0 8px;}
.cc{padding:5px 12px;border-radius:var(--radius-button);border:1px solid var(--border);background:var(--bg-container);color:var(--text-on-dark-secondary);font-size:11px;font-family:inherit;cursor:pointer;white-space:nowrap;transition:all .3s;font-weight:600;}
.cc.a{background:rgba(232,54,78,.1);border-color:rgba(232,54,78,.3);color:var(--text-on-dark);}
.el{padding:4px 0 100px;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px;}
.ei{display:flex;align-items:flex-start;gap:10px;padding:12px;background:var(--bg-container);border-radius:var(--radius-button);border:1px solid var(--border);cursor:pointer;transition:all .25s;user-select:none;}.ei:active{transform:scale(.98);}.ei.s{border-color:var(--color-work);background:rgba(232,54,78,.06);}
.ei .em{font-size:26px;width:34px;text-align:center;}.ei .inf{flex:1;}.ei .nm{font-size:13px;font-weight:800;color:var(--text-on-dark);}.ei .ds{font-size:10px;color:var(--text-on-dark-secondary);margin-top:2px;line-height:1.3;}
.ei .tg{display:flex;gap:4px;margin-top:4px;flex-wrap:wrap;}.ei .tg span{padding:2px 6px;border-radius:5px;font-size:9px;font-weight:700;}
.tge{background:var(--tag-equip-bg);color:var(--tag-equip-text);}.tgb{background:var(--tag-bw-bg);color:var(--tag-bw-text);}.tgw{background:var(--tag-mg-bg);color:var(--tag-mg-text);}
.ei .ck{width:20px;height:20px;border-radius:6px;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:12px;transition:all .3s;flex-shrink:0;}.ei.s .ck{border-color:var(--color-work);background:var(--color-work);color:white;}
.ei-unavail{opacity:.35;}
.rb-del{background:none;border:none;color:var(--text-on-dark-secondary);font-size:12px;cursor:pointer;padding:2px 4px;opacity:.4;}.rb-del:hover{opacity:1;color:var(--color-work);}
.vb-lnk{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:transparent;border:1px dashed var(--border);border-radius:6px;color:var(--text-on-dark-secondary);font-size:10px;font-weight:600;cursor:pointer;transition:all .2s;}
.vb-lnk:hover{color:var(--text-on-dark);border-color:var(--text-on-dark-secondary);}
.vb-lnk.vb-has{border-style:solid;border-color:rgba(45,140,240,.5);color:#6bb4ff;background:rgba(45,140,240,.08);}
.vb-lnk.vb-has:hover{background:rgba(45,140,240,.18);border-color:#2d8cf0;}
.fab{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:600px;padding:10px 20px 14px;background:linear-gradient(transparent,rgba(18,20,28,.95) 40%);display:none;z-index:60;}.fab.sh{display:block;}
.fab-in{background:var(--color-work);color:white;border-radius:var(--radius-button);padding:14px;text-align:center;font-weight:800;font-size:15px;cursor:pointer;box-shadow:0 4px 16px rgba(232,54,78,.3);}
.add-form{display:none;padding:10px 0;}.add-form.sh{display:block;}
.add-form .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px;}
.add-form input,.add-form select,.add-form textarea{background:var(--bg-container);border:1px solid var(--border);color:var(--text-on-dark);font-family:inherit;font-size:13px;padding:8px 12px;border-radius:10px;outline:none;width:100%;}
.add-form textarea{grid-column:1/-1;resize:vertical;min-height:50px;}
.add-form .form-actions{display:flex;gap:8px;}
.restore-hint{padding:4px 0;font-size:11px;color:var(--color-swap);cursor:pointer;display:none;}

/* ═══ SETTINGS ═══ */
.settings-section{margin-bottom:16px;}
.player-inputs{padding:4px 20px 12px;display:flex;gap:10px;flex-wrap:wrap;}
.player-input{flex:1;min-width:120px;display:flex;align-items:center;gap:8px;background:var(--bg-container);padding:10px 14px;border-radius:12px;}
.player-input span{font-size:13px;font-weight:800;white-space:nowrap;}
.player-input input{flex:1;background:none;border:none;color:var(--text-on-dark);font-family:inherit;font-size:16px;font-weight:700;outline:none;width:60px;}
.pi-p1{border:1px solid rgba(232,54,78,.2);}.pi-p1 span{color:var(--color-p1);}
.pi-p2{border:1px solid rgba(45,140,240,.2);}.pi-p2 span{color:var(--color-p2);}
.lvl-row{display:flex;align-items:center;gap:10px;background:var(--bg-container);padding:10px 14px;border-radius:12px;border:1px solid var(--border);}
.lvl-label{font-size:13px;font-weight:800;min-width:24px;}.lvl-dots{display:flex;gap:6px;flex:1;}
.lvl-dot{width:28px;height:28px;border-radius:8px;border:2px solid var(--border);background:var(--bg-primary);cursor:pointer;transition:all .2s;}
.lvl-dot:hover{border-color:var(--color-swap);}.lvl-dot.active{border-color:var(--color-work);background:rgba(232,54,78,.15);}
.lvl-val{font-size:12px;color:var(--text-on-dark-secondary);min-width:70px;text-align:right;font-weight:600;}
.eq-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px;padding:10px 20px;}
.eq-item{background:var(--bg-container);border-radius:var(--radius-card);padding:16px 8px;text-align:center;border:1px solid var(--border);cursor:pointer;transition:all .3s;user-select:none;}.eq-item:active{transform:scale(.95);}
.eq-item.eq-on{border-color:rgba(232,54,78,.4);background:rgba(232,54,78,.06);}
.eq-item .eq-em{font-size:34px;margin-bottom:6px;}.eq-item .eq-nm{font-size:11px;font-weight:700;color:var(--text-on-dark);}.eq-item .eq-detail{font-size:9px;color:var(--text-on-dark-secondary);margin-top:3px;}
.eq-item .eq-ck{margin-top:4px;font-size:14px;opacity:.3;transition:all .3s;}.eq-item.eq-on .eq-ck{opacity:1;color:var(--color-work);}
.hist-list{padding:4px 20px;}
.hist-item{display:flex;gap:12px;padding:12px;background:var(--bg-container);border-radius:var(--radius-button);border:1px solid var(--border);margin-bottom:8px;}
.hist-date{display:flex;flex-direction:column;align-items:center;min-width:44px;}.hist-day{font-family:'Bebas Neue',sans-serif;font-size:18px;color:var(--text-on-dark);}.hist-time{font-size:10px;color:var(--text-on-dark-secondary);}
.hist-body{flex:1;min-width:0;}.hist-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:4px;}
.hist-tag{font-size:11px;font-weight:700;padding:2px 8px;border-radius:var(--radius-tag);background:var(--tag-equip-bg);color:var(--tag-equip-text);}
.hist-dur{font-size:11px;color:var(--text-on-dark-secondary);}.hist-pc{font-size:10px;color:var(--text-on-dark-secondary);padding:1px 6px;border-radius:4px;background:var(--bg-primary);}
.hist-stations{font-size:18px;letter-spacing:2px;margin:2px 0;}.hist-names{font-size:10px;color:var(--text-on-dark-secondary);}
.bsh{padding:12px;border-radius:12px;border:1px solid var(--border);background:var(--bg-container);color:var(--text-on-dark);font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;}
.bap{padding:12px;border-radius:12px;border:none;background:var(--color-work);color:white;font-family:inherit;font-size:13px;font-weight:800;cursor:pointer;box-shadow:0 2px 12px rgba(232,54,78,.25);}

/* ═══ OVERLAYS ═══ */
.cdov{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;background:rgba(18,20,28,.94);}.cdov.sh{display:flex;flex-direction:column;gap:8px;}
.cdn{font-family:'Bebas Neue',sans-serif;font-size:min(35vh,300px);letter-spacing:10px;line-height:1;color:var(--color-swap);}
@keyframes cP{0%{transform:scale(2.5);opacity:0}60%{transform:scale(.95);opacity:1}100%{transform:scale(1);opacity:1}}.cdn.anim{animation:cP .5s cubic-bezier(.16,1,.3,1);}.cdn.go-t{color:var(--color-work);}
.cds{font-size:min(3vh,22px);color:var(--text-on-dark-secondary);letter-spacing:4px;}
.swov{position:fixed;inset:0;z-index:180;display:none;align-items:center;justify-content:center;background:rgba(18,20,28,.88);flex-direction:column;gap:10px;}.swov.sh{display:flex;}
.swov-t{font-family:'Bebas Neue',sans-serif;font-size:min(10vh,72px);letter-spacing:8px;color:var(--color-swap);}
@keyframes swIn{0%{transform:scale(0) rotate(-180deg);opacity:0}100%{transform:scale(1) rotate(0);opacity:1}}.swov-t.anim{animation:swIn .5s cubic-bezier(.16,1,.3,1);}.swov-s{font-size:min(2.5vh,20px);color:var(--text-on-dark-secondary);}
.waterov{position:fixed;inset:0;z-index:190;display:none;align-items:center;justify-content:center;flex-direction:column;background:rgba(18,20,28,.95);}.waterov.sh{display:flex;}
.water-content{text-align:center;}.water-emoji{font-size:min(10vh,80px);animation:wBob 2s ease-in-out infinite;}
@keyframes wBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-15px)}}
.water-title{font-family:'Bebas Neue',sans-serif;font-size:min(6vh,52px);letter-spacing:6px;color:var(--color-water);margin-top:10px;}
.water-time{font-family:'Bebas Neue',sans-serif;font-size:min(12vh,100px);color:var(--text-on-dark);margin-top:6px;}.water-sub{font-size:min(2.2vh,18px);color:var(--text-on-dark-secondary);margin-top:6px;}
.water-round{font-size:min(2vh,16px);color:var(--color-swap);margin-top:10px;font-weight:700;}
.water-skip{margin-top:20px;padding:14px 40px;border-radius:var(--radius-button);border:1px solid rgba(45,140,240,.3);background:rgba(45,140,240,.1);color:var(--color-water);font-family:inherit;font-size:min(2vh,15px);font-weight:700;cursor:pointer;}

/* ═══ RESPONSIVE ═══ */
@media (orientation:portrait){
  .training-grid{grid-template-columns:1fr;gap:8px;padding:8px 16px;}
  .ring-wrap{width:min(28vw,200px);height:min(28vw,200px);}
  .station-cards{flex-direction:column;}
  .stn-name{font-size:min(5vw,24px);}.stn-emoji{font-size:32px;}
}
@media (orientation:landscape) and (min-width:1200px){
  .t-num{font-size:110px;}.stn-name{font-size:38px;}.stn-emoji{font-size:64px;}
}
