:root{color-scheme:dark;--cyan:#96eaff;--text:#eaf8ff;--line:#80ccff30}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#071a32;color:var(--text);font-family:'PingFang SC','Microsoft YaHei',system-ui,sans-serif}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid #98e6ff;outline-offset:4px}[hidden]{display:none!important}#scene{position:fixed;inset:0;width:100%;height:100%;pointer-events:none}.shell{position:fixed;left:50%;top:50%;width:1440px;height:900px;transform:translate(-50%,-50%) scale(var(--ui-scale,1));transform-origin:center;pointer-events:none}header{height:110px;position:relative;display:flex;justify-content:space-between;align-items:flex-start;padding:25px 36px;pointer-events:auto}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:inherit;font-size:25px;font-weight:650;letter-spacing:1px}.brand img{width:48px;height:48px;border-radius:10px;object-fit:cover;box-shadow:0 0 28px #e4223b20}.brand small{display:block;font-size:8px;letter-spacing:3px;margin-top:8px;font-weight:400;color:#91bdd5}.match{position:absolute;left:50%;top:24px;transform:translateX(-50%);text-align:center;max-width:700px}.match>div{display:flex;align-items:center;justify-content:center;gap:30px;font-size:34px;font-weight:600;white-space:nowrap}.match span{max-width:260px;overflow:hidden;text-overflow:ellipsis}.match em{font:650 37px system-ui;color:#7de6ff;font-style:normal;text-shadow:0 0 22px #6ce9ff40}.match p{margin-top:14px;font-size:12px;letter-spacing:1px;color:#add2e7}.header-tools{display:flex;align-items:center;gap:18px;padding-top:9px;font-size:10px;color:#b1dcf0;letter-spacing:2px}#fullscreen{border:1px solid var(--line);background:#0b254440;width:34px;height:34px;border-radius:7px;font-size:22px}main{pointer-events:none}#setup{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);width:1200px;padding:22px 28px 16px;border:1px solid #92d6ff33;border-radius:17px;background:linear-gradient(130deg,#09213ced,#0b2039e8);backdrop-filter:blur(20px);box-shadow:0 24px 75px #020a1c50;pointer-events:auto;transition:opacity .6s,transform .6s}.running #setup,.finished #setup{opacity:0;transform:translate(-50%,25px);pointer-events:none}.setup-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.eyebrow{font:500 9px system-ui;letter-spacing:3px;color:#8bc7e1}h1{font-size:24px;margin:7px 0 0;font-weight:500;letter-spacing:1px}.quiet{border:0;background:transparent;color:#91cde7;padding:8px;font-size:11px}.fields{display:grid;grid-template-columns:1.25fr 1.15fr .64fr;gap:27px}.teams{display:flex;gap:12px;align-items:center}.teams label{flex:1;min-width:0}.teams>span{font:10px system-ui;color:#749abb;margin-top:21px}label{font-size:11px;color:#b4d0df;display:block}input,select{border:1px solid var(--line);background:#05182b;border-radius:7px;height:37px;padding:0 10px;min-width:0;font-size:12px}input::placeholder{color:#698fa9}label input,label select{display:block;width:100%;margin-top:8px}.details{display:grid;grid-template-columns:.8fr 1.2fr;gap:12px;margin-top:12px}.details input{font-size:11px}.result-label{display:flex;justify-content:space-between;align-items:center;font-size:11px;margin-bottom:10px}.segments{display:flex;gap:4px;padding:3px;background:#051526;border:1px solid var(--line);border-radius:7px}.segments button{border:0;background:none;color:#88acc5;padding:5px 10px;font-size:10px;border-radius:4px}.segments .selected{background:#23507570;color:#c3f6ff}.score-input{display:flex;align-items:center;gap:10px}.score-input input{width:51px;text-align:center;height:34px}.score-input>span{color:#9adfff}#score-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.chip{display:flex;gap:9px;align-items:center;padding:4px 8px;border:1px solid #83caef35;background:#1c45604d;border-radius:5px;font-size:11px;color:#c3eaff}.chip button{border:0;background:none;padding:0;color:#93c5de}.directions{display:flex;flex-wrap:wrap;gap:8px}.directions button{border:1px solid var(--line);background:#0a243e;border-radius:6px;padding:7px 9px;font-size:11px;color:#9bc2d9}.directions .selected{border-color:#93e5ff99;color:#cff8ff;background:#28648055}.launch label+label{margin-top:10px}.launch select{height:29px;font-size:10px}#generate{margin-top:12px;display:flex;justify-content:space-between;align-items:center;width:100%;height:40px;padding:0 15px;border:1px solid #acebff9c;background:linear-gradient(110deg,#b1efff,#6bcafa);color:#062139;border-radius:8px;font-size:13px;font-weight:650;box-shadow:0 0 25px #3edbff24}#generate:hover{filter:brightness(1.12)}.form-footer{display:flex;align-items:center;gap:14px;min-height:27px;padding-top:10px;font-size:10px;color:#86a8be}.form-footer p{margin:0}#error{color:#ffd0b3;flex:1}.form-footer>span{margin-left:auto;font-size:9px;color:#6d96b2}#caption{position:absolute;bottom:85px;left:50%;width:1000px;transform:translateX(-50%);text-align:center;transition:opacity .35s,filter .35s,transform .35s}#caption.changing{opacity:0;filter:blur(5px);transform:translate(-50%,8px)}#caption h2{font-size:33px;font-weight:500;letter-spacing:4px;margin:13px 0 10px;text-shadow:0 0 22px #8fe6ff30}#caption p{font-size:12px;letter-spacing:3px;color:#a3cbdf;margin:0}#caption:focus,#results:focus{outline:none}#results{position:absolute;left:50%;bottom:95px;transform:translateX(-50%);width:1000px;text-align:center;animation:result-in .7s both}#results h2{font-size:32px;letter-spacing:4px;font-weight:500;margin:12px 0}#results>p{font-size:11px;letter-spacing:2px;color:#94c3d9}#result-cards{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:20px}.result-card{min-width:122px;padding:13px 22px;border-radius:9px;border:1px solid #7ee6ff65;background:#103759b8;box-shadow:0 0 26px #4cb9ff12;backdrop-filter:blur(15px);animation:result-in .6s both}.result-card span{display:block;font-size:10px;color:#8cbfd8;margin-bottom:6px}.result-card strong{font-size:27px;font-weight:550;letter-spacing:3px}.completion{color:#8fc6d6;font-size:10px;letter-spacing:2px;margin-top:17px}#controls{position:absolute;bottom:21px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:14px;padding:9px 15px;border:1px solid #8fd4ff26;border-radius:10px;background:#061a30dc;pointer-events:auto;backdrop-filter:blur(14px)}#controls button{font-size:11px;border:0;background:none;color:#b4d8eb;padding:4px}#controls label{display:flex;align-items:center;gap:7px;font-size:10px}#controls select{margin:0;width:65px;height:24px;font-size:10px}#loading{position:fixed;inset:0;background:#071a32;display:flex;align-items:center;justify-content:center;gap:14px;font-size:12px;color:#a2d7ed;z-index:8}#loading span{width:15px;height:15px;border:1px solid #96eaff30;border-top-color:#96eaff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes result-in{from{opacity:0;filter:blur(3px)}to{opacity:1;filter:blur(0)}}@media(prefers-reduced-motion:reduce){#setup,#caption{transition:none}.result-card,#results{animation:none}}

#countdown{position:absolute;left:50%;bottom:205px;z-index:3;display:grid;justify-items:center;gap:5px;width:190px;transform:translate(-50%,16px) scale(.92);opacity:0;filter:blur(7px);pointer-events:none;transition:opacity .45s,filter .45s,transform .45s;color:#dffaff;text-shadow:0 0 18px #64dcff66}#countdown::before,#countdown::after{content:"";position:absolute;top:49px;width:82px;height:1px;background:linear-gradient(90deg,transparent,#79dfff80)}#countdown::before{right:calc(100% - 25px)}#countdown::after{left:calc(100% - 25px);transform:scaleX(-1)}#countdown.visible{opacity:1;filter:blur(0);transform:translate(-50%,0) scale(1)}.countdown-kicker{font:600 8px system-ui;letter-spacing:3px;color:#84cce9}.countdown-dial{position:relative;width:82px;height:82px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle,#123c5fcc 0 32%,#0a26428f 57%,transparent 59%);box-shadow:0 0 35px #39caf22e,inset 0 0 22px #5bdfff1d}.countdown-dial::before,.countdown-dial::after{content:"";position:absolute;inset:8px;border:1px solid #8ce9ff24;border-radius:50%}.countdown-dial::after{inset:-4px;border-style:dashed;animation:countdown-orbit 8s linear infinite}.countdown-dial svg{position:absolute;inset:3px;width:76px;height:76px;transform:rotate(-90deg);overflow:visible}.countdown-dial circle{fill:none;stroke-width:1.5}.countdown-track{stroke:#75dfff20;stroke-dasharray:3 6}#countdown-progress{stroke:#9aecff;stroke-width:2.5;stroke-linecap:round;stroke-dasharray:201.06;stroke-dashoffset:0;filter:drop-shadow(0 0 4px #69e9ff)}#countdown-number{font:520 33px/1 system-ui;letter-spacing:-1px;margin-top:-7px}.countdown-dial small{position:absolute;top:54px;font:600 7px system-ui;letter-spacing:2px;color:#75bdd8}.countdown-label{font-size:9px;letter-spacing:3px;color:#a9d7e8}#countdown.tick #countdown-number{animation:countdown-tick .55s cubic-bezier(.2,.8,.2,1)}#countdown.urgent{color:#fff2dd;text-shadow:0 0 20px #ffad6485}#countdown.urgent #countdown-progress{stroke:#ffc477;filter:drop-shadow(0 0 5px #ff9d55)}#countdown.urgent .countdown-dial{box-shadow:0 0 42px #ff9d5538,inset 0 0 24px #ffbd7624}
@keyframes countdown-orbit{to{transform:rotate(360deg)}}@keyframes countdown-tick{0%{opacity:.25;transform:scale(.55);filter:blur(5px)}55%{opacity:1;transform:scale(1.16);filter:blur(0)}100%{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){#countdown{transition:none}.countdown-dial::after,#countdown.tick #countdown-number{animation:none}}

@media (max-width: 760px) {
  html,body{width:100%;height:100%;overflow:hidden}
  .shell{inset:0;left:0;top:0;width:100%;height:100vh;height:100dvh;transform:none;transform-origin:top left}
  header{height:112px;padding:14px 16px;display:block}
  .brand{gap:9px;font-size:18px;max-width:220px}
  .brand img{width:36px;height:36px;border-radius:7px}
  .brand small{font-size:6px;letter-spacing:2px;margin-top:3px}
  .header-tools{position:absolute;right:16px;top:15px;padding:0}
  .match{left:12px;right:12px;top:67px;max-width:none;transform:none}
  .match>div{gap:12px;font-size:19px}
  .match span{max-width:39vw}
  .match em{font-size:22px}
  .match p{font-size:9px;margin-top:5px}
  #setup{position:absolute;left:0;top:112px;bottom:0;width:100%;height:auto;max-height:calc(100vh - 112px);max-height:calc(100dvh - 112px);padding:18px 16px calc(24px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;transform:none;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;backdrop-filter:none}
  .running #setup,.finished #setup{transform:translateY(18px)}
  .setup-heading{align-items:flex-start;gap:10px;margin-bottom:20px}
  .setup-heading h1{font-size:19px;line-height:1.4;margin:6px 0 0}
  .setup-heading .eyebrow{font-size:8px;letter-spacing:1.7px}
  #example{min-height:44px;flex:none;padding:8px 4px;font-size:12px}
  .fields{display:grid;grid-template-columns:minmax(0,1fr);gap:22px}
  .teams{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
  .teams>span{margin:0;justify-self:center;font-size:12px}
  .teams label,.launch label{display:block;min-width:0;font-size:13px}
  .teams input,.launch select{display:block;width:100%;margin-top:7px}
  #setup input,#setup select{height:48px;font-size:16px;border-radius:9px;padding:0 13px}
  #setup button{touch-action:manipulation}
  .result-label{display:grid;gap:11px;font-size:13px}
  .segments{width:100%;padding:4px}
  .segments button{flex:1;min-height:44px;font-size:14px}
  .score-input{gap:8px}
  .score-input input{flex:0 0 64px;width:64px;text-align:center;padding:0 4px}
  .score-input>span{font-size:18px}
  #add-score{flex:1;min-height:48px;padding:8px 4px;font-size:13px;border:1px solid var(--line);border-radius:8px}
  #score-chips{gap:8px;margin-top:12px}
  .chip{min-height:42px;padding:2px 5px 2px 11px;font-size:14px}
  .chip button{width:38px;height:38px;font-size:22px;line-height:1}
  .directions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .directions button{min-height:46px;padding:8px;font-size:13px}
  .directions button:last-child{grid-column:span 2}
  .launch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:end}
  .launch label+label{margin:0}
  .launch select{font-size:16px}
  #generate{grid-column:1/-1;height:52px;margin:4px 0 0;font-size:16px;padding:0 16px}
  .form-footer{display:flex;flex-wrap:wrap;gap:7px;padding:14px 0 0;font-size:12px;line-height:1.45}
  .form-footer #error{width:100%;min-height:16px}
  .form-footer>span{margin:0;font-size:10px}
  #caption,#results{left:16px;right:16px;width:auto;transform:none;bottom:calc(94px + env(safe-area-inset-bottom))}
  #caption h2,#results h2{font-size:22px;letter-spacing:1px}
  #caption p,#results p{font-size:11px;letter-spacing:1px}
  #countdown{bottom:calc(205px + env(safe-area-inset-bottom))}
  #controls{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));width:auto;transform:none;justify-content:space-around;gap:4px;padding:7px;flex-wrap:wrap}
  #controls button{min-height:44px;padding:6px 8px;font-size:12px}
  #controls label{font-size:11px}
  #controls select{height:40px;width:72px;font-size:12px}
  .result-card{min-width:100px;padding:11px 14px}
}
@media (max-width: 360px) {
  .launch{grid-template-columns:1fr}
  .launch label+label{margin:0}
  .score-input input{flex-basis:56px;width:56px}
  .setup-heading h1{font-size:17px}
}
.managed-fields{display:grid;grid-template-columns:2fr 1fr .8fr 1fr;gap:16px;align-items:end}
.managed-fields label{min-width:0}
.managed-fields select{width:100%;height:40px;margin-top:8px;font-size:13px}
.managed-fields #generate{height:40px;margin:0}
.fixture-readout{display:flex;align-items:center;gap:18px;margin-top:18px;padding:13px 15px;border:1px solid #7fdcff2c;border-radius:9px;background:#0a2c4566;font-size:12px;color:#b4d6e9}
.fixture-readout strong{margin-left:auto;font-size:15px;color:#effaff;font-weight:600}

.fixture-status{font-size:11px;color:#8bc7e1}
#generate:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:760px){.setup-heading{display:block}.fixture-status{display:block;margin-top:8px}.managed-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.managed-fields label:first-child,.managed-fields #generate{grid-column:1/-1}.managed-fields label{font-size:13px}.managed-fields select{height:48px;margin-top:7px;font-size:16px}.managed-fields #generate{height:52px;font-size:16px}.fixture-readout{display:grid;gap:7px;margin-top:18px;padding:14px;font-size:12px}.fixture-readout strong{margin:0}}
@media(max-width:360px){.managed-fields{grid-template-columns:1fr}.managed-fields label:first-child,.managed-fields #generate{grid-column:auto}}
