@import "https://fonts.googleapis.com/css2?family=Creepster&family=Nunito:wght@400;600;800;900&display=swap";:root{--bg:#fbf5ea;--card:#fff;--ink:#1f1629;--muted:#6b5f75;--line:#e7dccb;--pumpkin:#d9480f;--pumpkin-soft:#fff0e3;--purple:#5b2a86;--purple-soft:#f1e8fa;--green:#237a3b;--green-soft:#e6f4ea;--red:#b42318;--red-soft:#fdecea;--amber:#a15c00;--amber-soft:#fff4d6;--on-accent:#fff;--shadow:0 1px 2px #28143c14, 0 4px 14px #28143c0f;--radius:16px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#130d1b;--card:#1e1628;--ink:#f6efe6;--muted:#b3a6c0;--line:#34283f;--pumpkin:#ff7a1a;--pumpkin-soft:#3a2012;--purple:#c29bff;--purple-soft:#2c1d40;--green:#5fd07d;--green-soft:#15301e;--red:#ff7b6e;--red-soft:#3b1714;--amber:#ffc24d;--amber-soft:#3a2b0c;--on-accent:#1a0d05;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);-webkit-tap-highlight-color:transparent;font-family:Nunito,system-ui,-apple-system,Segoe UI,sans-serif;font-size:18px;line-height:1.35}a{color:var(--purple)}h1,h2,h3{margin:0;line-height:1.15}button,input,select,textarea{font:inherit;color:inherit}.page{flex-direction:column;gap:14px;max-width:560px;margin:0 auto;padding:16px 16px 48px;display:flex}.page.wide{max-width:1200px}.brand{align-items:center;gap:10px;display:flex}.brand .mark{font-size:28px}.mark-crest{object-fit:contain;flex:none;width:34px;height:52px}.brand-title{color:var(--pumpkin);font-size:17px;font-weight:900;line-height:1.15}.brand .sub{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:13px;font-weight:800}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card>h2,.card-h{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 8px;font-size:14px;font-weight:800}.card.center{text-align:center}.name{font-size:30px;font-weight:900}.muted{color:var(--muted)}.small{font-size:14px}.row{align-items:center;gap:10px;display:flex}.row.between{justify-content:space-between}.stack{flex-direction:column;gap:10px;display:flex}.grow{flex:1;min-width:0}.wrap{flex-wrap:wrap}.big-number{color:var(--pumpkin);font-size:72px;font-weight:900;line-height:1}.btn{appearance:none;border:2px solid var(--line);background:var(--card);cursor:pointer;min-height:56px;color:var(--ink);border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:12px 18px;font-size:18px;font-weight:800;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--pumpkin);border-color:var(--pumpkin);color:var(--on-accent)}.btn.purple{background:var(--purple);border-color:var(--purple);color:var(--on-accent)}.btn.block{width:100%}.btn.huge{min-height:76px;font-size:24px}.btn.sm{border-radius:10px;min-height:40px;padding:6px 12px;font-size:15px}.btn.ghost{background:0 0;border-color:#0000}.btn.danger{color:var(--red);border-color:var(--red-soft)}.choice-grid{grid-template-columns:1fr;gap:10px;display:grid}.choice-grid.two{grid-template-columns:1fr 1fr}.choice{appearance:none;text-align:left;border:2px solid var(--line);background:var(--card);cursor:pointer;border-radius:14px;align-items:center;gap:12px;min-height:60px;padding:14px 16px;font-weight:700;display:flex}.choice.selected{border-color:var(--pumpkin);background:var(--pumpkin-soft)}.choice:disabled{opacity:.5;cursor:not-allowed}.choice .tix{color:var(--pumpkin);white-space:nowrap;margin-left:auto;font-weight:900}input.field,select.field,textarea.field{border:2px solid var(--line);background:var(--card);border-radius:12px;width:100%;padding:12px 14px;font-size:18px}input.code{text-transform:uppercase;letter-spacing:.3em;text-align:center;font-size:28px;font-weight:900}label.lbl{color:var(--muted);margin:0 0 4px;font-size:14px;font-weight:800;display:block}.pill{background:var(--purple-soft);color:var(--purple);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:14px;font-weight:800;display:inline-flex}.pill.green{background:var(--green-soft);color:var(--green)}.pill.orange{background:var(--pumpkin-soft);color:var(--pumpkin)}.pill.amber{background:var(--amber-soft);color:var(--amber)}.pill.red{background:var(--red-soft);color:var(--red)}.pill.gray{background:var(--line);color:var(--muted)}.status{border-radius:var(--radius);text-align:center;border:2px solid var(--line);background:var(--card);padding:18px}.status .label{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:14px;font-weight:800}.status .headline{margin-top:4px;font-size:34px;font-weight:900}.status .detail{margin-top:2px;font-size:22px;font-weight:800}.status.up{background:var(--pumpkin);border-color:var(--pumpkin);color:var(--on-accent);animation:1.6s ease-in-out infinite pulse}.status.up .label{color:inherit;opacity:.85}.status.golf{background:var(--green-soft);border-color:var(--green-soft)}.status.golf .headline{color:var(--green)}.status.hub{background:var(--purple-soft);border-color:var(--purple-soft)}.status.hub .headline{color:var(--purple)}@keyframes pulse{50%{transform:scale(1.02)}}@media (prefers-reduced-motion:reduce){.status.up{animation:none}}.list{flex-direction:column;display:flex}.list .item{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px 2px;display:flex}.list .item:last-child{border-bottom:0}.check{border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-size:15px;font-weight:900;display:grid}.check.done{background:var(--green);color:var(--card)}.check.todo{border:2px dashed var(--line)}.banner{border-radius:12px;padding:12px 14px;font-weight:700}.banner.error{background:var(--red-soft);color:var(--red)}.banner.ok{background:var(--green-soft);color:var(--green)}.banner.warn{background:var(--amber-soft);color:var(--amber)}.banner.info{background:var(--purple-soft);color:var(--purple)}details.card>summary{cursor:pointer;justify-content:space-between;gap:8px;font-weight:800;list-style:none;display:flex}details.card>summary::-webkit-details-marker{display:none}details.card>summary:after{content:"▾";color:var(--muted)}details.card[open]>summary:after{content:"▴"}details.card[open]>summary{margin-bottom:10px}.sheet-backdrop{z-index:50;background:#0a050f8c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);border-radius:20px 20px 0 0;flex-direction:column;width:100%;max-width:640px;max-height:90dvh;display:flex;overflow:hidden}.sheet-head{border-bottom:1px solid var(--line);background:var(--bg);flex:none;justify-content:space-between;align-items:center;gap:10px;padding:12px 12px 10px 16px;display:flex}.sheet-head h3{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-size:20px;overflow:hidden}.sheet-close{background:var(--line);width:44px;height:44px;color:var(--ink);cursor:pointer;border:0;border-radius:50%;flex:none;font-size:20px;font-weight:900}.sheet-body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:14px 16px calc(24px + env(safe-area-inset-bottom));flex-direction:column;gap:12px;display:flex;overflow-y:auto}@media (width>=700px){.sheet-backdrop{align-items:center}.sheet{border-radius:20px}}.scanner-video{aspect-ratio:1;object-fit:cover;border-radius:var(--radius);background:#000;width:100%}.holes{grid-template-columns:repeat(9,1fr);gap:6px;display:grid}.hole{text-align:center;border:2px solid var(--line);background:var(--card);border-radius:10px;padding:6px 2px;font-weight:900}.hole .n{color:var(--muted);font-size:12px}.hole .c{font-size:16px}.hole .hole-ico{font-size:14px;line-height:1}.hole.free{background:var(--green-soft);border-color:var(--green)}.hole.full{background:var(--amber-soft);border-color:var(--amber)}.hole.over{background:var(--red-soft);border-color:var(--red)}.hole.closed{opacity:.4}button.hole{cursor:pointer;min-height:64px}button.hole.selected{outline:3px solid var(--pumpkin);outline-offset:1px}.fs-num{text-align:center;min-width:48px;font-size:26px;font-weight:900}.tabs{gap:6px;padding-bottom:4px;display:flex;overflow-x:auto}.tabs button{appearance:none;cursor:pointer;white-space:nowrap;color:var(--muted);background:0 0;border:0;border-radius:10px;padding:10px 14px;font-weight:800}.tabs button.on{background:var(--purple);color:var(--on-accent)}table.grid{border-collapse:collapse;width:100%;font-size:15px}table.grid th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:2px solid var(--line);background:var(--card);padding:8px 6px;font-size:12px}table.grid td{border-bottom:1px solid var(--line);vertical-align:middle;padding:8px 6px}table.grid tr.click{cursor:pointer}table.grid tr.click:hover td{background:var(--purple-soft)}table.grid input.field,table.grid select.field{border-radius:8px;padding:6px 8px;font-size:15px}.scroll-x{overflow-x:auto}.stats{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;display:grid}.stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px}.stat .v{font-size:30px;font-weight:900}.stat .k{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:800}.form-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.form-grid .full{grid-column:1/-1}@media (width<=520px){.form-grid{grid-template-columns:1fr}}.toggle{cursor:pointer;align-items:center;gap:10px;font-weight:700;display:flex}.toggle input{width:22px;height:22px;accent-color:var(--pumpkin);flex:none}.seg{border:2px solid var(--line);border-radius:12px;flex-wrap:wrap;display:inline-flex;overflow:hidden}.seg button{appearance:none;background:var(--card);cursor:pointer;border:0;padding:10px 14px;font-weight:800}.seg button.on{background:var(--pumpkin);color:var(--on-accent)}.msg-list{flex-direction:column;gap:8px;max-height:45vh;display:flex;overflow-y:auto}.msg{background:var(--card);border:1px solid var(--line);border-radius:14px 14px 14px 4px;align-self:flex-start;max-width:85%;padding:8px 12px}.msg.mine{background:var(--purple-soft);border-color:var(--purple-soft);border-radius:14px 14px 4px;align-self:flex-end}.msg-time{color:var(--muted);text-align:right;font-size:11px}.msg-popup{z-index:60;background:var(--purple);max-width:540px;color:var(--on-accent);cursor:pointer;border-radius:14px;margin:0 auto;padding:12px 14px;animation:.3s ease-out drop;position:fixed;top:12px;left:12px;right:12px;box-shadow:0 8px 30px #00000059}@keyframes drop{0%{transform:translateY(-120%)}to{transform:none}}.hero{border-radius:var(--radius);color:#fff;text-align:center;background:linear-gradient(#140a1e8c,#140a1ed1),url(/brand/course.jpg) 50%/cover;padding:22px 16px 18px;position:relative;overflow:hidden}.hero img.crest{filter:drop-shadow(0 4px 10px #00000080);height:150px}.hero .h-title{color:#ffb347;margin-top:8px;font-size:24px;font-weight:900;line-height:1.15}.hero .h-mem{opacity:.95;font-style:italic;font-weight:700}.hero .h-venue{opacity:.9;margin-top:4px;font-size:14px}.hero .h-charity{color:#1f1629;background:#fff;border-radius:999px;align-items:center;gap:8px;margin-top:12px;padding:4px 12px 4px 4px;font-size:14px;font-weight:900;display:inline-flex}.hero .h-charity img{width:34px;height:34px}.page.home{justify-content:space-between;gap:10px;min-height:100svh;padding-top:10px;padding-bottom:10px}.hero.compact{padding:12px}.hero.compact img.crest{height:96px}.hero.compact .h-title{margin-top:4px;font-size:19px}.hero.compact .h-mem{font-size:15px}.hero.compact .h-venue{margin-top:2px;font-size:12.5px}.home-card{flex-direction:column;gap:8px;padding:14px;display:flex}.home-card h1{font-size:22px}.home-card p{margin:0}.home-card input.code{padding:10px;font-size:26px}.support.compact{flex-direction:row;align-items:center;gap:8px;padding:0}.support.compact img.dha{background:#fff;border-radius:6px;width:170px;height:auto;padding:3px}.support{text-align:center;flex-direction:column;gap:12px;padding:8px 0;display:flex}.support-sponsor img{background:#fff;border-radius:8px;width:min(320px,90%);height:auto;padding:6px}.ret-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.ret-card{border:2px solid var(--purple-soft);background:var(--card);border-radius:12px;flex-direction:column;gap:3px;padding:10px;display:flex}.ret-line{justify-content:space-between;gap:8px;font-size:14px;display:flex}.ret-line span{color:var(--muted)}.ci-cards{background:var(--purple-soft);border-radius:12px;padding:8px 10px}.ci-cardgrid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;margin-top:6px;display:grid}.ci-card{background:var(--card);border:2px solid var(--purple);border-radius:8px;flex-direction:column;padding:4px 8px;font-size:14px;display:flex}.ci-hole{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:900}.as-pool{flex-wrap:wrap;gap:6px;min-height:48px;padding:8px;display:flex}.as-hubs{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;display:grid}.as-holes{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}@media (width<=900px){.as-holes{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=480px){.as-holes{grid-template-columns:minmax(0,1fr)}}.as-slot .as-chip{flex:1;min-width:0}.as-slot .as-name{flex:1;min-width:0;max-width:none}.as-hole,.as-hub{border:1px solid var(--line);background:var(--bg);border-radius:12px;padding:6px}.as-h{white-space:nowrap;text-overflow:ellipsis;margin-bottom:4px;font-size:14px;font-weight:900;overflow:hidden}.as-drop{border:2px dashed #0000;border-radius:10px;transition:background .1s}.as-drop.armed{border-color:var(--line);cursor:pointer}.as-drop.armed:hover{background:var(--pumpkin-soft);border-color:var(--pumpkin)}.as-slot{background:var(--card);align-items:center;gap:6px;min-height:40px;margin-top:3px;padding:3px 4px;display:flex}.as-letter{color:var(--muted);min-width:30px;font-size:12px;font-weight:900}.as-stack{flex-direction:column;gap:4px;min-height:40px;display:flex}.as-hub{min-height:90px}.as-chip{background:var(--card);border:2px solid var(--purple-soft);cursor:grab;-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:4px;max-width:100%;padding:3px 7px;font-size:13px;display:inline-flex}.as-chip.sel{border-color:var(--pumpkin);background:var(--pumpkin-soft)}.as-chip.nostation{border-color:var(--amber);border-style:dashed}.as-chip.clash{border-color:var(--red);background:var(--red-soft)}.as-chip{position:relative}.as-pop{z-index:20;background:var(--ink);min-width:190px;color:var(--bg);pointer-events:none;border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px;font-size:13px;display:none;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 6px 20px #0000004d}@media (hover:hover){.as-chip:hover .as-pop{display:flex}}.as-chip.sel .as-pop{display:none}.as-detail{z-index:30;border-color:var(--pumpkin);border-width:2px;position:sticky;top:8px}.as-name{white-space:nowrap;text-overflow:ellipsis;max-width:130px;overflow:hidden}.as-ref{color:var(--muted);font-size:11px}.as-team{white-space:nowrap;text-overflow:ellipsis;max-width:120px;color:var(--muted);overflow:hidden}.center-screen{flex-direction:column;justify-content:center;gap:16px;min-height:70vh;display:flex}.hide{display:none!important}.vd-grid{grid-template-columns:1.1fr 1fr;align-items:start;gap:16px;display:grid}@media (width<=900px){.vd-grid{grid-template-columns:1fr}}.fl-holes{grid-template-columns:repeat(9,1fr);gap:6px;display:grid}@media (width<=900px){.fl-holes{grid-template-columns:repeat(6,1fr)}}.fl-holes .hole{min-height:64px;padding:4px}.fl-holes .hole .n{font-size:12px}.fl-hubs{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;display:grid}.fl-hub{border:2px solid var(--line);background:var(--card);border-radius:10px;min-height:64px;padding:6px 8px}.fl-hub.busy{border-color:var(--purple);background:var(--purple-soft)}.fl-hub-n{margin-bottom:4px;font-size:14px;font-weight:900}.fl-chips{flex-wrap:wrap;justify-content:center;gap:4px;display:flex}.fl-hub .fl-chips{justify-content:flex-start}.fl-chip{appearance:none;border:2px solid var(--ink);background:var(--card);color:var(--ink);cursor:pointer;border-radius:8px;padding:2px 7px;font-size:14px;font-weight:900}.fl-chip:hover,.fl-chip:focus-visible{background:var(--pumpkin-soft);border-color:var(--pumpkin)}.fl-chip.released{border-style:dashed;border-color:var(--pumpkin)}.fl-chip.hub.green{border-color:var(--green)}.fl-chip.hub.amber{border-color:var(--amber);background:var(--amber-soft)}.fl-chip.hub.red{border-color:var(--red);background:var(--red-soft)}.fl-chip small{color:var(--muted);font-weight:700}.fl-pop{z-index:45;overscroll-behavior:contain;border-radius:12px;width:280px;max-height:calc(100dvh - 16px);position:fixed;overflow-y:auto;box-shadow:0 10px 30px #0000004d}.pp-split{grid-template-columns:1fr 1fr;align-items:stretch;gap:10px;display:grid}.pp-split>*{flex-direction:column;justify-content:center;min-width:0;margin:0;display:flex}.pp-split .status{padding:12px 8px}.pp-split .status .headline{font-size:24px}.pp-split .status .detail{font-size:16px}.pp-split .status .label{font-size:11px}.pp-tix{padding:12px 8px}.pp-tix h2{margin:0;font-size:12px}.pp-tix .big-number{font-size:48px;line-height:1.1}.pp-qr img{width:min(220px,60vw);height:auto;image-rendering:pixelated;background:#fff;border-radius:12px;padding:8px}.pp-costume{color:var(--purple);margin-top:6px;font-size:18px;font-weight:900}.pp-wait{border:2px solid var(--pumpkin);background:var(--pumpkin-soft)}.ret-stats{text-align:center;grid-template-columns:repeat(3,1fr);gap:4px;margin:4px 0;display:grid}.ret-stats>div{background:var(--bg);border-radius:8px;flex-direction:column;padding:4px 2px;display:flex}.ret-stats b{font-size:18px;line-height:1.1}.ret-stats span{color:var(--muted);font-size:11px}.map-station{background:var(--purple);color:#fff;pointer-events:none;border:2px solid #fff;border-radius:4px;place-items:center;width:22px;height:22px;font-size:12px;font-weight:900;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 1px 3px #00000073}.map-key{flex-direction:column;gap:6px;display:flex}.map-key-row{align-items:flex-start;gap:8px;display:flex}.map-key-row .map-station{flex:none;position:static;transform:none}.theme-switch{border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:50%;flex:none;align-self:flex-start;width:36px;height:36px;padding:0;font-size:17px;line-height:1}body.vol-mode{--bg:#eaf1fb;--line:#cfdcef;--pumpkin:#1d4ed8;--pumpkin-soft:#e0eafc}:root[data-theme=dark] body.vol-mode{--bg:#0c1424;--card:#142036;--line:#24365a;--pumpkin:#6ea0ff;--pumpkin-soft:#16284a}body.vol-mode:before{content:"VOLUNTEER SCREEN";z-index:40;background:var(--pumpkin);color:var(--on-accent);text-align:center;letter-spacing:.18em;padding:5px 0;font-size:12px;font-weight:900;display:block;position:sticky;top:0}.ci-member{border-radius:10px;align-items:flex-start;gap:10px;padding:8px}.ci-name{cursor:pointer;overflow-wrap:anywhere;font-size:18px;font-weight:800}.ci-edit{flex-wrap:wrap;gap:6px;display:flex}.ci-edit .field{flex:110px;min-width:0;padding:8px}.ci-title{overflow-wrap:anywhere;font-size:22px;font-weight:900}.ci-search{padding:14px;font-size:22px;font-weight:800}.show-sm{display:none}@media (width<=600px){.hide-sm{display:none}.show-sm{display:block}.ci-title{font-size:19px}.ci-search{padding:12px;font-size:18px}.ci-cardgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.stat{padding:8px}.stat .v{font-size:22px}.stat .k{letter-spacing:.03em;font-size:10px}}
