/* 普通队伍单机版 */
.standalone .app-main{position:relative;z-index:2}
.standalone .page-title{font-size:clamp(34px,4.3vw,62px)}
.standalone-hero{
  position:relative;margin:30px 0 22px;padding:28px 30px;border:1px solid var(--line);
  background:linear-gradient(130deg,rgba(8,19,33,.78),rgba(3,9,16,.55));overflow:hidden;
  clip-path:polygon(0 0,calc(100% - 24px) 0,100% 24px,100% 100%,24px 100%,0 calc(100% - 24px));
}
.standalone-hero::before{content:"";position:absolute;right:-60px;top:-80px;width:400px;height:400px;border:1px solid rgba(var(--accent-rgb),.1);border-radius:50%;pointer-events:none}
.standalone-hero::after{content:"";position:absolute;right:60px;top:20px;width:200px;height:200px;border:1px dashed rgba(var(--accent-rgb),.1);border-radius:50%;animation:spin 30s linear infinite;pointer-events:none}
.standalone-hero .sh-copy{position:relative;z-index:2;max-width:800px}
.standalone-hero h1{margin:9px 0 0;font-family:var(--font-display);font-size:clamp(34px,4.6vw,64px);line-height:.95;font-weight:900;letter-spacing:1px}
.standalone-hero h1 em{font-style:normal;color:var(--accent)}
.standalone-hero p{color:var(--muted);font-size:13px;line-height:1.8;margin:13px 0 0;max-width:640px}
.standalone-hero .sh-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:18px}
.standalone-hero .sh-mark{position:absolute;right:34px;bottom:23px;z-index:2;display:flex;align-items:center;gap:12px}
.standalone-hero .sh-mark img{height:54px;opacity:.75}
.standalone-hero .sh-mark span{font-family:var(--font-mono);font-size:7px;letter-spacing:1.6px;color:var(--dim);text-align:right;line-height:1.7}
.sa-layout{display:grid;grid-template-columns:minmax(0,1.32fr) minmax(330px,.68fr);gap:18px;align-items:start;padding-bottom:60px}
.sa-main,.sa-side{display:flex;flex-direction:column;gap:16px;min-width:0}
.sa-side{position:sticky;top:calc(var(--topbar-h) + 18px)}
.sa-team-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sa-team-card{position:relative;border:1px solid var(--line);background:linear-gradient(145deg,rgba(5,13,23,.7),rgba(3,8,14,.45));padding:13px}
.sa-team-card.side-b{background:linear-gradient(205deg,rgba(8,20,34,.7),rgba(3,8,14,.45))}
.sa-team-card .st-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:11px}
.sa-team-card .st-head .side-tag{font-family:var(--font-mono);font-size:7px;letter-spacing:2px;color:var(--accent)}
.sa-team-card.side-b .st-head .side-tag{color:#8da2ff}
.sa-team-card .st-head .side-tag::before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;background:currentColor;margin-right:5px;box-shadow:0 0 7px currentColor}
.sa-team-card .st-logo{width:84px;height:84px;margin:0 auto 10px;border:1px solid rgba(var(--accent-rgb),.28);background:rgba(2,7,12,.35);display:grid;place-items:center;position:relative;overflow:hidden;border-radius:50%;box-shadow:0 0 22px rgba(var(--accent-rgb),.08)}
.sa-team-card .st-logo img{width:84%;height:84%;object-fit:contain;padding:0;border-radius:50%}
.sa-team-card .st-logo .logo-fallback{width:84%;height:84%;border-radius:50%}
.sa-result-vs .st img,.team-side .team-logo-wrap img{border-radius:50%;background:rgba(255,255,255,.04);border:1px solid var(--line);padding:5px}
.team-side .team-logo-wrap .logo-fallback{border-radius:50%;box-shadow:0 0 30px rgba(var(--accent-rgb),.12)}
.sa-result-vs .st .logo-fallback{border-radius:50%}

.sa-team-card .st-logo .logo-fallback{width:100%;height:100%;border:0;font-size:24px;background:rgba(var(--accent-rgb),.06)}
.sa-team-card .st-logo .st-upload{position:absolute;inset:0;display:grid;place-items:center;background:rgba(2,7,12,.7);opacity:0;transition:.2s;cursor:pointer;font-family:var(--font-mono);font-size:7px;letter-spacing:1px;color:var(--accent);text-align:center;line-height:1.5}
.sa-team-card .st-logo:hover .st-upload{opacity:1}
.sa-team-card .st-logo input{display:none}
.sa-team-card .input{text-align:center;font-family:var(--font-display);font-size:14px;letter-spacing:.5px}
.sa-team-card .st-sub{text-align:center;font-family:var(--font-mono);font-size:7px;letter-spacing:1.4px;color:var(--dim);margin-top:6px}
.sa-rules{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sa-rules .field{margin:0}
.sa-map-checks{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.sa-map-check{position:relative;aspect-ratio:16/10;border:1px solid var(--line);overflow:hidden;background:#050b13;cursor:pointer;transition:.2s}
.sa-map-check img{width:100%;height:100%;object-fit:cover;filter:saturate(.45) brightness(.38);transition:.3s}
.sa-map-check span{position:absolute;left:5px;right:5px;bottom:4px;font-size:9px;color:var(--dim);text-shadow:0 1px 3px #000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sa-map-check::after{content:"";position:absolute;inset:0;border:1px solid transparent;transition:.2s}
.sa-map-check.on{border-color:var(--line-strong)}
.sa-map-check.on img{filter:saturate(.85) brightness(.62)}
.sa-map-check.on span{color:#fff}
.sa-map-check.on::after{border-color:rgba(var(--accent-rgb),.5);box-shadow:inset 0 0 18px rgba(var(--accent-rgb),.12)}
.sa-map-check .check{position:absolute;right:4px;top:4px;width:15px;height:15px;display:none;place-items:center;background:var(--accent);color:#02070b;font-size:10px;font-weight:900}
.sa-map-check.on .check{display:grid}
.sa-launch{padding:20px;border:1px solid var(--line-strong);background:linear-gradient(150deg,rgba(var(--accent-rgb),.1),rgba(4,10,18,.6));position:relative;overflow:hidden}
.sa-launch h3{font-family:var(--font-display);font-size:20px;letter-spacing:1.4px;margin:0 0 4px}
.sa-launch p{font-size:10px;color:var(--muted);line-height:1.7;margin:0 0 14px}
.sa-launch .sa-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:12px}
.sa-launch .sa-stats div{border:1px solid var(--line);padding:8px;text-align:center;background:rgba(2,7,12,.3)}
.sa-launch .sa-stats b{display:block;font-family:var(--font-display);font-size:16px;color:var(--accent)}
.sa-launch .sa-stats span{display:block;font-family:var(--font-mono);font-size:6px;color:var(--dim);letter-spacing:.8px;margin-top:3px}
.sa-validation{font-size:10px;line-height:1.6;padding:9px 10px;border-left:2px solid var(--line-strong);background:rgba(255,255,255,.02);margin-bottom:12px;color:var(--muted)}
.sa-validation.bad{border-color:var(--hot);color:#ffb4c0;background:rgba(var(--hot-rgb),.05)}
.sa-validation.ok{border-color:var(--ok);color:#a5f5d3;background:rgba(61,255,168,.04)}
.sa-actions{display:flex;gap:8px;flex-wrap:wrap}
.sa-last{display:flex;flex-direction:column;gap:6px}
.sa-last .sl-row{display:grid;grid-template-columns:42px 1fr auto;gap:8px;align-items:center;padding:6px 8px;border:1px solid var(--line);background:rgba(3,8,14,.32);font-size:10px}
.sa-last .sl-row .r{font-family:var(--font-mono);font-size:7px;color:var(--accent)}
.sa-last .sl-row .n{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sa-last .sl-row .s{font-family:var(--font-mono);font-size:7px;color:var(--dim);white-space:nowrap}

/* pairing local */
.sa-pair-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;align-items:start;padding-bottom:60px}
.sa-roster-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.sa-roster-row{display:grid;grid-template-columns:28px 1fr 28px;gap:6px;align-items:center}
.sa-roster-row .idx{font-family:var(--font-mono);font-size:8px;color:var(--dim);text-align:center;border:1px solid var(--line);padding:4px 0}
.sa-roster-row .input{min-height:34px;font-size:11px}
.sa-roster-row .del{width:28px;height:34px;border:1px solid var(--line);color:var(--dim);display:grid;place-items:center;transition:.2s}
.sa-roster-row .del:hover{color:var(--hot);border-color:rgba(var(--hot-rgb),.4)}
.sa-roster-row .del svg{width:11px;height:11px;stroke:currentColor;fill:none;stroke-width:1.6}
.sa-board{display:flex;flex-direction:column;gap:7px}
.sa-board-row{display:grid;grid-template-columns:40px 1fr auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);background:rgba(4,10,18,.42);animation:revealUp .45s var(--ease) both}
@keyframes revealUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.sa-board-row .bg{font-family:var(--font-display);font-size:16px;font-weight:800;color:var(--accent);text-align:center;border:1px solid var(--line);padding:4px}
.sa-board-row .vsline{display:flex;gap:7px;align-items:center;flex-wrap:wrap;font-size:12px}
.sa-board-row .vsline b{font-weight:600}
.sa-board-row .vsline span{font-family:var(--font-mono);font-size:7px;color:var(--dim);border:1px solid var(--line);padding:1px 4px}
.sa-board-row .vsline i{font-style:normal;color:var(--dim);font-family:var(--font-display);font-size:9px}
.sa-board-row .tm{font-family:var(--font-mono);font-size:9px;color:var(--accent);white-space:nowrap}
.sa-board-note{font-family:var(--font-mono);font-size:7px;color:var(--dim);letter-spacing:1.2px;text-align:right;margin-top:4px}

/* results */
.sa-results{display:flex;flex-direction:column;gap:22px;padding-bottom:60px}
.sa-result-card{position:relative;border:1px solid var(--line);background:linear-gradient(145deg,rgba(7,16,28,.9),rgba(3,8,14,.8));backdrop-filter:blur(10px);overflow:hidden}
.sa-result-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(180deg,var(--accent),transparent)}
.sa-result-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid var(--line);background:rgba(var(--accent-rgb),.025);font-family:var(--font-mono);font-size:8px;color:var(--dim);letter-spacing:1px}
.sa-result-head b{color:var(--accent);font-family:var(--font-display);font-size:10px;letter-spacing:1.4px}
.sa-result-body{padding:14px}
.sa-result-vs{display:grid;grid-template-columns:1fr 36px 1fr;align-items:center;gap:8px;padding-bottom:12px;border-bottom:1px solid rgba(var(--accent-rgb),.1)}
.sa-result-vs .st{display:flex;align-items:center;gap:9px;min-width:0}
.sa-result-vs .st.right{flex-direction:row-reverse;text-align:right}
.sa-result-vs .st img{width:40px;height:40px;object-fit:contain;flex:none}
.sa-result-vs .st b{font-family:var(--font-display);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sa-result-vs .st span{display:block;font-family:var(--font-mono);font-size:6px;color:var(--dim);letter-spacing:1px;margin-top:2px}
.sa-result-vs .v{font-family:var(--font-display);font-size:11px;color:var(--dim);text-align:center;font-weight:800}
.sa-result-maps{display:flex;flex-direction:column;gap:4px;margin-top:9px}
.sa-result-map{display:grid;grid-template-columns:35px 1fr auto;gap:8px;align-items:center;padding:5px 7px;border:1px solid rgba(var(--accent-rgb),.09);background:rgba(3,8,14,.32);font-size:10px}
.sa-result-map .r{font-family:var(--font-mono);font-size:7px;color:var(--accent)}
.sa-result-map .n{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sa-result-map .s{font-family:var(--font-mono);font-size:6px;color:var(--dim);text-align:right;white-space:nowrap}
.sa-result-map .s b{color:#ff9cae;font-weight:500}
.sa-result-map.decider{border-color:rgba(255,209,102,.24)}
.sa-result-map.decider .r{color:var(--gold)}
.sa-result-bans{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px;align-items:center}
.sa-result-bans span{font-size:8px;border:1px solid rgba(var(--hot-rgb),.22);background:rgba(var(--hot-rgb),.03);color:#ffa7b5;text-decoration:line-through;padding:2px 5px}
.sa-result-bans em{font-style:normal;font-family:var(--font-mono);font-size:6px;color:var(--dim);letter-spacing:1px;text-decoration:none;margin-right:4px}
.sa-results-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.sa-empty{padding:40px 20px;text-align:center;border:1px dashed var(--line);background:rgba(4,10,18,.3)}
.sa-empty b{display:block;font-family:var(--font-display);font-size:18px;letter-spacing:1px;margin-bottom:5px}
.sa-empty p{color:var(--dim);font-size:11px;line-height:1.7;margin:0}
.sa-data-note{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding:14px 0;margin-top:8px;font-family:var(--font-mono);font-size:8px;color:var(--dim);letter-spacing:1px}
.sa-stage .arena-body{padding-top:14px}
@media (max-width:1100px){
  .sa-layout,.sa-pair-layout{grid-template-columns:1fr}
  .sa-side{position:static;display:grid;grid-template-columns:1fr 1fr;align-items:start}
  .sa-results-grid{grid-template-columns:1fr}
  .standalone-hero .sh-mark{display:none}
}
@media (max-width:760px){
  .sa-team-grid,.sa-rules,.sa-roster-grid{grid-template-columns:1fr}
  .sa-map-checks{grid-template-columns:repeat(3,1fr)}
  .sa-side{grid-template-columns:1fr}
  .standalone-hero{padding:20px}
  .sa-board-row{grid-template-columns:32px 1fr}
  .sa-board-row .tm{grid-column:2}
}
.sa-games{display:flex;flex-direction:column;gap:4px;margin:8px 0}
.sa-games>div{display:grid;grid-template-columns:30px 1fr auto 1fr auto;gap:6px;align-items:center;border:1px solid var(--line);padding:5px 7px;background:rgba(3,8,14,.34)}
.sa-games span{font-family:var(--font-mono);font-size:7px;color:var(--accent)}
.sa-games b{font-size:10px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sa-games i{font-family:var(--font-mono);font-style:normal;font-size:6px;color:#ff9cac}
.sa-games i.def{color:#9ae8ff}
.st-logo-url{margin-top:6px;min-height:34px;font-size:9px}
.local-only-badge{border-color:rgba(var(--accent-rgb),.35);color:var(--accent);letter-spacing:1.4px}
