:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#f5f4ef;--paper-deep:#ebece6;--paper-light:#fffdf7;--ink:#12323b;--ink-panel:#173944;--ink-cream:#f8f3e8;--muted:#587077;--ink-faint:#91a09f;--line:#d2d8d4;--line-strong:#a4b0ac;--mint:#93e4bf;--mint-deep:#137d64;--mint-soft:#dcf7eb;--orange:#ff7a32;--orange-deep:#bc4d18;--orange-pale:#ffe6d6;--blue-pale:#dcecf4;--danger:#c84e4e;--danger-pale:#f9dede;--note-yellow:#fff3b8;--shadow-ink:0 8px 24px #12323b13;--shadow-press:3px 3px 0 var(--ink);--radius-sm:10px;--radius-md:16px;--radius-lg:24px;--radius-wobble:13px 9px 14px 10px;--display:"Noto Serif TC","Songti TC",serif;--body:"Noto Sans TC","PingFang TC","Heiti TC",sans-serif;--mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{color:var(--ink);background-color:var(--paper);font:400 16px/1.65 var(--body);background-image:radial-gradient(circle at 18% 8%,#12323b09 0 1px,#0000 1.4px);background-size:28px 28px}::selection{background:var(--mint);color:var(--ink)}:focus-visible{outline:3px solid var(--mint-deep);outline-offset:3px}a{color:var(--mint-deep)}.shell{grid-template-columns:252px 1fr;min-height:100vh;display:grid}.side{background:var(--ink-panel);color:var(--ink-cream);background-image:radial-gradient(circle,#ffffff10 0 1.2px,#0000 1.6px);background-size:26px 26px;border-right:1px solid #ffffff1a;flex-direction:column;gap:22px;padding:20px 16px;display:flex;box-shadow:8px 0 30px #12323b17}.side .logo{align-items:center;gap:11px;display:flex}.stamp{background:var(--mint);width:42px;height:42px;color:var(--ink);border-radius:var(--radius-wobble);font:800 17px var(--display);border:2px solid #0b242c;place-items:center;display:grid;rotate:-2deg;box-shadow:2px 2px #0b242c}.side h1{font:800 19px/1.2 var(--display);color:var(--ink-cream);margin:0}.side h1 small{font:700 9px/1 var(--mono);letter-spacing:.16em;color:#88aaa9;margin-top:4px;display:block}.nav-label{color:#88aaa9;font:700 11px var(--mono);letter-spacing:.16em;margin:0 0 8px}.nav{flex-direction:column;gap:3px;display:flex}.nav a{color:#c8dcda;border-radius:10px;align-items:center;gap:9px;padding:10px 12px;font-size:15px;font-weight:650;text-decoration:none;display:flex}.nav a:hover{background:#ffffff14}.nav a.on{color:var(--ink);background:var(--mint);border:1px solid #0b242c;box-shadow:0 4px 14px #061f2738}.side-foot{color:#88aaa9;border-top:1px dashed #ffffff2e;margin-top:auto;padding-top:14px;font-size:13px}.side-foot form{margin-top:8px}.side-foot button{color:#c8dcda;font:700 13px var(--body);cursor:pointer;background:0 0;border:0;padding:0}.main{min-width:0}.topbar{z-index:20;border-bottom:1.5px solid var(--ink);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f6f0e4f0;flex-wrap:wrap;align-items:center;gap:14px;min-height:68px;padding:12px 26px;display:flex;position:sticky;top:0}.spacer{flex:1}.wrap{flex-direction:column;gap:24px;max-width:1340px;padding:26px;display:flex}.card{border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-ink);background:#fffdf7f0;padding:22px}.card-hero{border:1.5px solid var(--ink)}.card-big{border:2px solid var(--ink);border-radius:var(--radius-lg);box-shadow:6px 6px 0 var(--ink)}.eyebrow{font:700 11px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0 0 6px}h2{font:800 25px/1.18 var(--display);letter-spacing:-.02em;margin:0 0 4px}h3{font:800 18px/1.25 var(--display);margin:0}.hl{width:fit-content;position:relative}.hl:after{content:"";z-index:-1;background:var(--mint);opacity:.72;border-radius:50%;height:9px;position:absolute;bottom:2px;left:5px;right:-5px;rotate:-1deg}.sub{color:var(--muted);max-width:68ch;margin:0;font-size:15px}.button,button.button,a.button{border:1.5px solid var(--ink);border-radius:var(--radius-sm);background:var(--paper-light);min-height:46px;font:800 15px/1.25 var(--body);color:var(--ink);cursor:pointer;align-items:center;gap:9px;padding:12px 17px;text-decoration:none;transition:transform .12s,box-shadow .12s,background .12s;display:inline-flex}.button:hover{box-shadow:var(--shadow-press);transform:translate(-1px,-2px)}.button:active{box-shadow:1px 1px 0 var(--ink);transform:none}.button-orange{color:#fff;background:var(--orange);box-shadow:0 5px 14px #bc4d1833}.button-mint{background:var(--mint)}.button-sm{min-height:38px;padding:8px 12px;font-size:13.5px}input,select,textarea{background:var(--paper-light);border:1.5px solid var(--line-strong);border-radius:var(--radius-sm);width:100%;min-height:46px;font:400 16px var(--body);color:var(--ink);padding:11px 13px}textarea{resize:vertical;min-height:88px}:is(input,select,textarea):focus{border-color:var(--ink);box-shadow:2px 2px 0 var(--ink);outline:0}label{font:700 13px var(--body);color:var(--muted);flex-direction:column;gap:6px;display:flex}.grid2{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.row{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.badge,.pill{white-space:nowrap;border:1px solid;border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:12px;font-weight:700;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.mint{background:var(--mint-soft);color:#176e59}.blue{background:var(--blue-pale);color:#27657d}.gray{color:#6f716d;background:#ece9e0}.orangeb{background:var(--orange-pale);color:#a64618}.pill{font-family:var(--mono);font-size:11px}.pill.wait{color:#6f716d;background:#ece9e0}.pill.mine{background:var(--mint-soft);color:#176e59}.pill.late{background:var(--orange-pale);color:#a64618}.pill.done{background:var(--mint-soft);color:#176e59}table{border-collapse:collapse;width:100%;min-width:820px}.tablewrap{overflow-x:auto}th{text-align:left;font:700 10px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border-bottom:1.5px solid var(--ink);padding:0 12px 10px}td{border-bottom:1px solid var(--line);vertical-align:middle;padding:12px;font-size:15px}tr.grp td{background:var(--paper-deep);font:700 11px var(--mono);letter-spacing:.12em;color:var(--muted);border-bottom:1.5px solid var(--ink);padding:9px 12px}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.hot{color:var(--orange-deep);font-weight:800}.mapbox{padding:10px 2px 2px;overflow-x:auto}.line{align-items:start;min-width:860px;padding-top:16px;display:grid;position:relative}.track{background:var(--ink);border-radius:4px;height:7px;position:absolute;top:47px}.stn{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:0 6px;display:flex}.dot{background:var(--paper-light);border:4px solid var(--ink);width:34px;height:34px;font:800 13px var(--mono);z-index:2;border-radius:50%;place-items:center;display:grid;position:relative}.stn.warn .dot{border-color:var(--orange);background:var(--orange-pale)}.stn.last .dot{background:var(--mint);border-color:var(--mint-deep)}.stn .cnt{font:800 30px/1 var(--display);font-variant-numeric:tabular-nums}.stn .unit{font:600 10px var(--mono);letter-spacing:.1em;color:var(--muted)}.stn .desc{color:var(--ink-faint);max-width:168px;font-size:11.5px;line-height:1.4}.ballbar{flex-wrap:wrap;gap:12px;display:flex}.ballcard{background:var(--paper-light);border:1.5px solid var(--ink);border-radius:var(--radius-sm);flex:180px;align-items:center;gap:12px;padding:14px 16px;display:flex}.ballcard .n{font:800 30px/1 var(--display);font-variant-numeric:tabular-nums}.ballcard small{font:700 10px var(--mono);letter-spacing:.12em;color:var(--muted);display:block}.ballcard.mine{background:var(--mint-soft)}.ballcard.late{background:var(--orange-pale);border-color:var(--orange-deep)}.note{background:var(--note-yellow);border:1.5px solid #e5d7b5;border-radius:3px 12px 5px 10px;margin-top:14px;padding:14px 16px;rotate:-.5deg;box-shadow:3px 3px #0c2730}.err{background:var(--danger-pale);border:1.5px solid var(--danger);border-radius:var(--radius-sm);color:#8c2d2d;padding:11px 14px;font-weight:700}.ok{background:var(--mint-soft);border:1.5px solid var(--mint-deep);border-radius:var(--radius-sm);color:#176e59;padding:11px 14px;font-weight:700}.empty{color:var(--muted);padding:26px 12px}@media (prefers-reduced-motion:reduce){*{transition:none!important}}@media (max-width:860px){.shell{grid-template-columns:1fr}.side{flex-direction:row;align-items:center;gap:14px;overflow-x:auto}.side-foot{display:none}.nav{flex-direction:row}.nav-label{display:none}}
