:root{--brand:#b3261e;--brand-deep:#7e1a14;--brand-soft:#fbe9e6;--gold:#f5b42a;--bg:#f6f3ef;--card:#fff;--ink:#1d1a18;--muted:#736b65;--line:#ebe5df;--done:#2f7d4f;--done-soft:#e5f3ea;--live:#e0480f;--live-soft:#fff0e8;--me:#fff6dc;--m1:#e9b116;--m2:#9aa3ad;--m3:#c47a3a;--notice-bg:#fff3c9;--notice-ink:#5a4200;--demo-bg:#e9eefb;--demo-ink:#26407a;--shadow:0 1px 2px #3c1e140d, 0 4px 16px #3c1e140f;--radius:16px;--tabbar:62px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--brand:#e0564b;--brand-deep:#5e1410;--brand-soft:#3a1c19;--bg:#141110;--card:#1f1b19;--ink:#f3ede8;--muted:#a99f98;--line:#332c29;--done:#4fb87a;--done-soft:#1b3326;--live:#ff7a45;--live-soft:#3a2014;--me:#3d3115;--notice-bg:#3d3210;--notice-ink:#ffe7a3;--demo-bg:#1d2640;--demo-ink:#b9c9f5;--shadow:0 1px 2px #0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-variant-numeric:tabular-nums;margin:0;font-family:-apple-system,BlinkMacSystemFont,PingFang TC,PingFang HK,Microsoft JhengHei,Noto Sans TC,system-ui,sans-serif;font-size:15px;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}h1,h2,h3,h4{line-height:1.3}.grow{flex:1;min-width:0}.center{text-align:center}.sub{color:var(--muted);font-size:13px}.right{float:right;font-weight:400}.page{max-width:640px;min-height:100dvh;padding-bottom:calc(var(--tabbar) + env(safe-area-inset-bottom));flex-direction:column;margin:0 auto;display:flex}main{flex:1;padding:14px 16px 8px}.bar{z-index:10;padding:calc(8px + env(safe-area-inset-top)) 8px 8px;background:var(--brand);color:#fff;align-items:center;gap:8px;display:flex;position:sticky;top:0;box-shadow:0 2px 10px #500a052e}@media (prefers-color-scheme:dark){.bar{background:#2a1513}}.bar h1{text-align:center;letter-spacing:.5px;white-space:nowrap;text-overflow:ellipsis;flex:1;margin:0;font-size:17px;font-weight:700;overflow:hidden}.back{color:#fff;background:0 0;border:0;border-radius:12px;flex:none;place-items:center;width:40px;height:40px;display:grid}button.back:active{background:#ffffff26}.notice,.demo{margin:-14px -16px 12px}main.overlap{margin-top:-50px;position:relative}main.overlap .notice,main.overlap .demo{box-shadow:var(--shadow);border-radius:14px;margin:0 0 12px}.notice{background:var(--notice-bg);color:var(--notice-ink);align-items:flex-start;gap:10px;padding:10px 16px;font-weight:600;display:flex}.notice svg{flex:none;margin-top:2px}.demo{background:var(--demo-bg);color:var(--demo-ink);text-align:center;padding:6px 16px;font-size:13px}.foot{color:var(--muted);text-align:center;padding:8px 16px 20px;font-size:12px;line-height:1.8}.sync{color:inherit;background:0 0;border:0;border-radius:999px;align-items:center;gap:6px;padding:4px 8px;font-size:12px;display:inline-flex}.sync:active{background:var(--line)}.sync .dot{background:var(--done);border-radius:50%;width:7px;height:7px}.sync.off .dot{background:var(--muted)}.tabbar{z-index:20;width:100%;max-width:640px;height:calc(var(--tabbar) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb, var(--card) 92%, transparent);-webkit-backdrop-filter:saturate(1.6)blur(14px);border-top:1px solid var(--line);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tabbar a{color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:11px;display:flex}.tabbar a.on{color:var(--brand);font-weight:600}.hero{text-align:center;color:#fff;padding:calc(26px + env(safe-area-inset-top)) 20px 64px;background:radial-gradient(120% 80% at 50% 0,#e2513f 0%,#0000 70%),linear-gradient(170deg,#c4302a 0%,#8f1c16 100%);position:relative;overflow:hidden}@media (prefers-color-scheme:dark){.hero{background:radial-gradient(120% 80% at 50% 0,#7d2a22 0%,#0000 70%),linear-gradient(170deg,#5c1612 0%,#2a0f0d 100%)}}.hero .petals{pointer-events:none;position:absolute;top:-30px;right:-46px;transform:rotate(18deg)}.hero .mark{background:#fff;border-radius:22px;width:76px;height:76px;margin:0 auto 12px;padding:9px;display:block;box-shadow:0 8px 22px #2800004d}.hero .school{opacity:.88;letter-spacing:1px;font-size:13px}.hero h1{letter-spacing:6px;margin:4px 0 0;padding-left:6px;font-size:34px;font-weight:800}.hero .en{letter-spacing:5px;opacity:.75;font-size:12px;font-weight:600}.pill{background:#ffffff29;border:1px solid #ffffff38;border-radius:999px;margin-top:12px;padding:4px 14px;font-size:13px;display:inline-block}.phase{max-width:300px;margin:14px auto 0;font-size:14px}.phase b{color:#ffe08a;margin:0 2px;font-size:20px}.bar-track{background:#fff3;border-radius:999px;height:6px;margin-top:6px;overflow:hidden}.bar-track div{background:#ffd25e;border-radius:999px;height:100%;transition:width .6s}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:12px;padding:14px 16px;display:block}.card.lift{box-shadow:0 10px 30px #50140a24}.card h2{margin:2px 0 14px;font-size:17px}.card h3{margin:0 0 6px;font-size:15px;font-weight:700}.card h4{color:var(--muted);margin:12px 0 4px;font-size:13px;font-weight:600}.nm{font-weight:600}.empty{color:var(--muted);text-align:center;padding:20px 0 12px}.empty svg{opacity:.45}.empty p{margin:6px 0 0}.skeleton div{border-radius:var(--radius);background:linear-gradient(90deg, var(--line) 0%, var(--card) 50%, var(--line) 100%);background-size:200% 100%;height:84px;margin-bottom:12px;animation:1.2s linear infinite shimmer}.skeleton div:first-child{height:120px}@keyframes shimmer{to{background-position:-200% 0}}.primary,.ghost{border:1px solid var(--brand);border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:11px 20px;font-weight:600;display:inline-flex}.primary{background:var(--brand);color:#fff}.primary:active{filter:brightness(.92)}.primary:disabled,.ghost:disabled{opacity:.4}.primary.inline{margin-top:4px}.ghost{color:var(--brand);background:0 0}.link{color:var(--brand);background:0 0;border:0;padding:4px;font-weight:500}.chip{border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:999px;flex:none;padding:6px 12px;font-size:13px}.err{color:#d32f2f;font-size:14px}input,select,textarea{border:1px solid var(--line);background:var(--card);border-radius:12px;width:100%;padding:12px;font-size:16px}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none}input[type=file]{background:var(--bg);padding:10px}.row{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:12px;display:flex}.ids{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.ids button{border:1px solid var(--line);background:var(--bg);border-radius:14px;flex-direction:column;align-items:center;gap:2px;padding:16px 4px 12px;transition:transform .1s;display:flex}.ids button:active{transform:scale(.97)}.ids small{color:var(--muted);font-size:11px}.ids .ico,.tile .ico,.reccard .ico{background:var(--brand-soft);width:44px;height:44px;color:var(--brand);border-radius:14px;place-items:center;margin-bottom:6px;display:grid}.idform{flex-direction:column;gap:8px;display:flex}.idform input{text-align:center;letter-spacing:2px;font-size:20px}.idcard{align-items:center;gap:12px;display:flex}.avatar{background:var(--brand);color:#fff;border-radius:50%;flex:none;place-items:center;width:42px;height:42px;display:grid}.avatar.big{width:52px;height:52px}.cta{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--brand);align-items:center;gap:10px;margin-bottom:12px;padding:14px 16px;font-weight:700;display:flex}.cta .grow{color:var(--ink)}.cta.hot{color:var(--live)}.count{background:var(--live);color:#fff;text-align:center;border-radius:999px;min-width:22px;padding:0 7px;font-size:12px;line-height:22px}.tiles{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;display:grid}.tile .txt{flex-direction:column;display:flex}.tiles.one{grid-template-columns:1fr}.tiles.one .tile{flex-direction:row;align-items:center;gap:16px;padding:22px 20px}.tiles.one .tile .ico{border-radius:18px;flex:none;width:64px;height:64px;margin:0}.tiles.one .tile .txt{flex:1}.tiles.one .tile b{font-size:22px}.tiles.one .tile small{margin-top:2px;font-size:14px}.tiles.one .tile .go{color:var(--muted)}.tile{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;align-items:flex-start;padding:16px;transition:transform .1s;display:flex}.tile:active,.cta:active,.round:active{transform:scale(.985)}.tile b{font-size:16px}.tile small{color:var(--muted);font-size:12px}.round{border-bottom:1px solid var(--line);text-align:left;background:0 0;border-top:0;border-left:0;border-right:0;align-items:center;gap:10px;width:100%;padding:11px 0;display:flex}.round:last-child{border-bottom:0}.round .time{width:44px;color:var(--muted);flex-direction:column;flex:none;font-size:14px;font-weight:600;line-height:1.25;display:flex}.round .time small{font-size:11px;font-weight:400}.rtitle{flex:1;min-width:0;font-weight:600}.extra{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:400;display:block;overflow:hidden}.chev{color:var(--line);flex:none}.flame{color:var(--live);vertical-align:-2px;margin-left:4px}.badge{vertical-align:1px;border-radius:999px;flex:none;align-items:center;gap:5px;padding:2px 9px;font-size:12px;font-weight:600;display:inline-flex}.badge.done{background:var(--done-soft);color:var(--done)}.badge.running{background:var(--live-soft);color:var(--live)}.badge.running:before,.pulse{content:"";background:var(--live);border-radius:50%;width:7px;height:7px;animation:1.4s infinite pulse}.live-h{color:var(--live);align-items:center;gap:8px;display:flex}.pulse{width:9px;height:9px;display:inline-block}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--live) 60%, transparent)}70%{box-shadow:0 0 0 7px #0000}to{box-shadow:0 0 #0000}}.filters{top:calc(56px + env(safe-area-inset-top));z-index:5;background:var(--bg);margin:-14px -16px 8px;padding:12px 16px 4px;position:sticky}.tabs{gap:8px;margin-bottom:10px;display:flex}.tabs button{background:var(--card);box-shadow:var(--shadow);border:0;border-radius:14px;flex-direction:column;flex:1;align-items:center;padding:8px 4px;display:flex}.tabs button small{color:var(--muted);font-size:11px}.tabs button.on{background:var(--brand);color:#fff}.tabs button.on small{color:#ffffffd1}.chips{scrollbar-width:none;gap:6px;margin-bottom:4px;padding-bottom:8px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chips button{border:1px solid var(--line);background:var(--card);border-radius:999px;flex:none;padding:5px 13px;font-size:13px}.chips button.on{background:var(--ink);border-color:var(--ink);color:var(--bg)}.chips .sep{background:var(--line);flex:none;width:1px;margin:4px 2px}.timeline{border-left:2px solid var(--line);margin-left:6px;padding-left:16px;position:relative}.slot{background:var(--card);box-shadow:var(--shadow);border-radius:14px;margin:0 0 10px 8px;padding:0 12px;position:relative}.slot .dot{background:var(--bg);border:2px solid var(--muted);border-radius:50%;width:12px;height:12px;position:absolute;top:17px;left:-32px}.slot.past .dot{background:var(--done);border-color:var(--done)}.slot.past{opacity:.82}.now{color:var(--live);align-items:center;gap:8px;margin:2px 0 10px -25px;font-size:13px;font-weight:700;display:flex}.now:before{content:"";background:var(--live);width:14px;height:14px;box-shadow:0 0 0 4px var(--live-soft);border-radius:50%}.now:after{content:"";background:var(--live);opacity:.4;flex:1;height:2px}.roundhead .when{flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;display:flex}.roundhead .when b{font-size:16px}.facts{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.facts span{background:var(--bg);color:var(--muted);border-radius:8px;padding:2px 9px;font-size:13px}.recbox{background:var(--brand-soft);border-radius:12px;align-items:baseline;gap:10px;margin-top:12px;padding:10px 12px;display:flex}.recbox .lbl{color:var(--brand);font-size:12px;font-weight:700}.recbox b{font-size:18px}.banner-rec{border-radius:var(--radius);color:#fff;background:linear-gradient(120deg,#ff7a2f,#d7261e);align-items:center;gap:12px;margin-bottom:12px;padding:14px 16px;display:flex;box-shadow:0 8px 22px #d7261e4d}.banner-rec b{font-size:16px}.results,.startlist,.reclist{margin:0;padding:0;list-style:none}.results li,.startlist li{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:10px 6px;display:flex}.results li:last-child,.startlist li:last-child,.reclist li:last-child{border-bottom:0}.results li.me,.startlist li.me{background:var(--me);border-radius:10px}.results li.out{opacity:.65}.results .who{flex:1;min-width:0}.results .mk{text-align:right;font-size:17px;font-weight:700}.results .st{color:var(--muted);font-size:13px;font-weight:600}.rec{color:var(--live);justify-content:flex-end;align-items:center;gap:2px;font-size:12px;font-weight:700;display:flex}.rankno{width:30px;height:30px;color:var(--muted);background:var(--bg);border-radius:50%;flex:none;place-items:center;font-size:14px;font-weight:800;display:grid}.rankno.m1,.medal.m1{background:var(--m1);color:#fff}.rankno.m2,.medal.m2{background:var(--m2);color:#fff}.rankno.m3,.medal.m3{background:var(--m3);color:#fff}.lane{background:var(--bg);border-radius:10px;flex-direction:column;flex:none;justify-content:center;align-items:center;width:34px;height:34px;font-weight:800;line-height:1;display:flex}.lane small{color:var(--muted);margin-bottom:1px;font-size:9px;font-weight:500}.search{background:var(--card);color:var(--muted);box-shadow:var(--shadow);border-radius:14px;align-items:center;gap:8px;margin-bottom:12px;padding:0 14px;display:flex}.search input{box-shadow:none;background:0 0;border:0;padding:12px 0}.search input:focus{box-shadow:none}.athlete{border-bottom:1px solid var(--line);padding:10px 0}.athlete:last-child{border-bottom:0}.evlink{background:var(--bg);border-radius:10px;align-items:center;gap:10px;margin-top:6px;padding:8px 10px;font-size:14px;display:flex}.mehead{align-items:center;gap:12px;display:flex}.mehead .nm{font-size:17px}.medals{gap:4px;display:flex}.medal.zero{opacity:.3}.medal{border-radius:50%;place-items:center;width:26px;height:26px;font-size:13px;font-weight:800;display:grid}.mineCard .mhead{color:var(--muted);justify-content:space-between;align-items:center;font-size:13px;display:flex}.mineCard .rtitle{margin:2px 0 6px;font-size:16px}.mres{align-items:center;gap:10px;padding:4px 0;display:flex}.mres b{font-size:17px}.reccard{border-left:4px solid var(--live);align-items:center;gap:12px;display:flex}.reccard .ico{background:var(--live-soft);color:var(--live);margin:0}.reccard .mk{color:var(--live);font-size:20px}.reclist li{border-bottom:1px solid var(--line);align-items:baseline;gap:10px;padding:9px 0;display:flex}.grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.ph{display:block;position:relative}.ph img{aspect-ratio:1;object-fit:cover;background:var(--line);border-radius:10px;width:100%;display:block}.ph span{color:#fff;background:linear-gradient(#0000,#0009);border-radius:0 0 10px 10px;padding:12px 6px 4px;font-size:11px;position:absolute;bottom:0;left:0;right:0}.page.admin{max-width:920px;padding-bottom:24px}.adminLogin{flex-direction:column;gap:10px;max-width:380px;margin:8vh auto 0;padding:24px;display:flex}.adminLogin .mark{width:72px;height:72px;margin:0 auto 4px;display:block}.adminLogin h2{text-align:center;margin:0 0 6px}.adminTop{align-items:center;gap:10px;margin-bottom:12px;display:flex}.storage{background:var(--live-soft);color:var(--live);border-radius:999px;padding:2px 8px;font-size:12px}.storage.r2{background:var(--done-soft);color:var(--done)}.stats{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px;display:grid}.stats div{background:var(--card);box-shadow:var(--shadow);border-radius:14px;padding:10px 12px}.stats b{font-size:20px;display:block}.stats span{color:var(--muted);font-size:12px}.adminRound{border-radius:10px;padding-left:8px!important;padding-right:8px!important}.adminRound .sub{flex:none}.round.adminRound.done{background:var(--done-soft)}.round.adminRound.running{background:var(--live-soft)}.editor{overflow-x:auto}.tbl{border-collapse:collapse;width:100%}.tbl th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);padding:6px 2px;font-size:12px;font-weight:500}.tbl.edit td{border-bottom:1px solid var(--line);vertical-align:top;padding:6px 2px}.tbl.edit input,.tbl.edit select{background:var(--bg);border-radius:8px;padding:7px 6px;font-size:16px}.tbl.edit select{width:4.4em}.w2{width:2.3em}.w4{width:4.6em}.w5{width:5.2em}.page.admin main{padding-left:10px;padding-right:10px}.card.editor{padding:12px 10px}.w6{width:8em}.nameIn{margin-top:4px;display:block}.nowrap{white-space:nowrap}.warn{color:#9a4b00;background:#fff4e0;border-radius:10px;margin:10px 0;padding:8px 12px 8px 28px;font-size:14px}div.warn{padding-left:12px}@media (prefers-color-scheme:dark){.warn{color:#ffc27a;background:#3a2a12}}.msg{margin-top:10px;font-weight:600}.form{flex-direction:column;gap:8px;margin-bottom:10px;display:flex}.preview{margin-top:10px}.ph .link{font-size:13px}.demo+.filters,.notice+.filters{margin-top:-12px}.danger-h{border-top:1px solid var(--line);padding-top:16px;margin-top:24px!important}.ghost.danger{color:#d32f2f;border-color:#d32f2f}.rankno.sm{width:26px;height:26px;margin-top:5px;font-size:13px}.gate{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:24px 20px;display:flex}.gate h2{margin:0}.gate p{margin:0 0 4px}.gate input{text-align:center;letter-spacing:2px;font-size:20px}.gate .primary{width:100%}.gate .ico{background:var(--brand-soft);width:48px;height:48px;color:var(--brand);border-radius:16px;place-items:center;display:grid}.login h2{margin-bottom:12px}.login label{flex-direction:column;gap:4px;display:flex}.login .idform .primary{margin-top:4px}.login>.sub{margin:10px 0 0}.seg{background:var(--bg);border:1px solid var(--line);border-radius:12px;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:14px;padding:4px;display:grid}.seg button{color:var(--muted);background:0 0;border:0;border-radius:9px;justify-content:center;align-items:center;gap:6px;padding:9px 0;font-weight:600;display:flex}.seg button.on{background:var(--card);color:var(--brand);box-shadow:var(--shadow)}table.pins{border-collapse:collapse;width:100%;margin-top:12px;font-size:15px}table.pins th,table.pins td{text-align:left;border-bottom:1px solid var(--line);padding:8px 6px}table.pins th{color:var(--muted);font-size:13px;font-weight:500}table.pins .mono{letter-spacing:2px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:17px}
