/* Copyright (c) 2026 JTIAPBN.Ai. All rights reserved. Swimming Club. Unauthorised copying, modification or redistribution is prohibited. */
@font-face{font-family:Sarabun;src:url(./sarabun-regular-226d4f368fbc0457.ttf) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Sarabun;src:url(./sarabun-semibold-c0bb057d86e4a120.ttf) format("truetype");font-weight:600 900;font-display:swap}:root{--paper:#ece9e3;--ink:#27392f;--muted:#626b5d;--line:#d6d8cb;--accent:#be603e;--card:#f6f4ee;--water:#2f7f95}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:Sarabun,Thonburi,Leelawadee UI,Tahoma,sans-serif;font-size:13px;-webkit-text-size-adjust:100%}button,a,input{touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer;border:0}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button:disabled{cursor:default;opacity:.45}header{height:80px;display:flex;align-items:center;justify-content:space-between;padding:0 38px;border-bottom:1px solid var(--line);gap:20px;position:relative;z-index:20;background:var(--paper)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;font-size:10px;line-height:1.6}.brand-copy{display:flex;flex-direction:column;gap:1px;line-height:1.45}.brand small{font-size:8px;color:var(--muted);display:block}.brand .brand-credit{font-size:8px;white-space:nowrap;margin-top:2px}.mark{font-family:Georgia,serif;font-style:italic;font-size:42px;letter-spacing:-5px;width:45px;height:49px;border-right:1px solid var(--line);line-height:1}nav{display:flex;gap:4px;padding:5px;border:1px solid var(--line);border-radius:24px}nav button{white-space:nowrap;padding:10px 16px;border-radius:20px;background:transparent;font-size:12px}nav button.active{background:var(--ink);color:var(--card)}nav button:not(.active):hover{background:#dde2d4}.header-right{display:flex;gap:18px;align-items:center}#status{font-size:10px}#status:before{content:"";display:inline-block;width:6px;height:6px;background:#718b63;border-radius:100%;margin-right:7px}#hide.menu-toggle{font-family:Arial,sans-serif;font-size:20px;width:38px;height:38px;display:grid;place-items:center;border-radius:5px;background:var(--card);border:1px solid var(--line)}#hide.menu-toggle:hover{background:#dce1d2}main{display:grid;grid-template-columns:minmax(0,1fr) 340px;height:calc(100dvh - 122px);min-height:560px}.stage{position:relative;overflow:hidden}.masthead{position:absolute;left:45px;top:31px;z-index:2;pointer-events:none;max-width:min(520px,60%)}.eyebrow{font-size:10px;font-weight:600;margin:0 0 14px;color:var(--muted)}h1{font-size:clamp(32px,3.6vw,54px);line-height:1.2;font-weight:600;letter-spacing:-1.4px;margin:0 0 14px;display:flex;flex-direction:column;gap:4px}h1 em{font-style:normal;font-weight:400;color:#6d7c5d;font-size:.6em;letter-spacing:-.5px}p{line-height:1.7}.deck{color:var(--muted);font-size:12px;line-height:1.9;margin:0}.mini-meta{display:flex;gap:22px;align-items:center;color:var(--muted);font-size:10px;margin-top:13px;flex-wrap:wrap}#viewport{position:absolute;inset:0}canvas{display:block;width:100%;height:100%;position:absolute;inset:0;touch-action:none;outline:none}#labels{position:absolute;inset:0;pointer-events:none;z-index:4;overflow:hidden}.bubble{position:absolute;left:0;top:0;transform:translate(-50%,-100%);background:var(--card);border:1px solid #c4cbb7;color:var(--ink);padding:5px 9px;border-radius:12px;font-size:12px;white-space:nowrap;box-shadow:0 4px 14px #27392f30}.bubble:after{content:"";position:absolute;left:50%;bottom:-6px;width:10px;height:10px;background:inherit;border-right:1px solid #c4cbb7;border-bottom:1px solid #c4cbb7;transform:translate(-50%) rotate(45deg)}.bubble.whistle{background:#fff6d8;font-weight:600}.jcard{position:absolute;left:0;top:0;transform:translate(-50%,-100%);background:#fff;color:#27392f;border:1px solid #9aa58c;border-radius:4px;padding:2px 7px;font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;box-shadow:0 3px 10px #27392f30}.jcard.drop{opacity:.55;text-decoration:line-through}.name-tag{position:absolute;left:0;top:0;transform:translate(-50%,-100%);font-size:11px;color:#fff;background:#27392fcc;padding:2px 7px;border-radius:10px;white-space:nowrap}#loading{position:absolute;z-index:6;left:50%;top:62%;transform:translate(-50%);padding:18px 25px;background:#f6f4eeed;border:1px solid var(--line);border-radius:10px;min-width:270px;text-align:center;font-size:12px}#loading>div{height:3px;background:var(--line);margin:12px 0;overflow:hidden}#progress{display:block;height:3px;width:0;background:var(--accent);transition:width .3s}#loading small{font-size:10px;color:var(--muted)}.stage-caption{position:absolute;bottom:127px;left:43px;font-size:10px;line-height:1.8;pointer-events:none}.stage-caption small{font-size:9px;color:var(--muted)}.viewbar{position:absolute;bottom:57px;left:50%;transform:translate(-50%);width:max-content;max-width:calc(100% - 24px);border:1px solid var(--line);padding:5px;border-radius:26px;background:#f6f4eee6;box-shadow:0 6px 25px #27392f09;display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;z-index:5}.viewbar::-webkit-scrollbar{display:none}.viewbar button{flex:0 0 auto;background:transparent;border-radius:20px;font-size:11px;padding:9px 12px;white-space:nowrap}.viewbar button.active,.viewbar button[aria-pressed=true]{background:#dce1d2}.viewbar button:hover{background:#dde2d4}.help{position:absolute;bottom:24px;width:100%;text-align:center;color:var(--muted);font-size:9px;pointer-events:none;padding:0 10px}.help b{padding:0 7px;color:#abb09f}aside{background:#f6f4eea6;border-left:1px solid var(--line);padding:29px 27px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--line) transparent;overscroll-behavior:contain}h2{font-size:27px;line-height:1.4;font-weight:400;letter-spacing:-.5px;margin:1px 0 12px}h2 em{font-style:normal;color:#6d7c5d}aside p{font-size:13px;color:var(--muted);line-height:1.85}.panel-intro{font-size:12px!important;margin:0 0 18px}.control-views{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:18px 0 23px}.control-views button{padding:10px;background:transparent;border:1px solid var(--line);border-radius:5px;font-size:12px}.control-views button.active{background:#dce1d2}.controls{border-top:1px solid var(--line);padding-top:20px}.toggle-row{display:flex;justify-content:space-between;align-items:center;margin:14px 0;font-size:12px}input[type=checkbox]{appearance:none;-webkit-appearance:none;width:29px;height:16px;background:#cacdbf;border-radius:20px;position:relative;cursor:pointer;margin:0;flex-shrink:0}input[type=checkbox]:before{content:"";position:absolute;width:12px;height:12px;background:var(--card);border-radius:50%;top:2px;left:2px;transition:transform .2s}input[type=checkbox]:checked{background:#6d7c5d}input[type=checkbox]:checked:before{transform:translate(13px)}.range-label{display:flex;justify-content:space-between;font-size:12px;margin:20px 0 10px}.range-label output{font-size:10px;color:var(--muted)}input[type=range]{width:100%;accent-color:#6d7c5d;height:4px;cursor:pointer}.control-note{font-size:10px!important;line-height:1.6!important;color:var(--muted);margin:4px 0 0}.swatches{display:flex;gap:6px;margin:14px 0 6px}.swatches button{flex:1;background:transparent;border:1px solid var(--line);border-radius:4px;padding:8px 2px;font-size:10px}.swatches button.active{background:#e5e8dc;border-color:#a7b297}.wide-btn{display:block;width:100%;padding:10px 12px;margin-top:14px;background:transparent;border:1px solid var(--line);border-radius:5px;text-align:left;font-size:12px}.wide-btn:hover{background:#dce1d2}.primary-btn{display:block;width:100%;padding:12px;margin:12px 0;background:var(--ink);color:var(--card);border-radius:5px;font-size:13px}.primary-btn:hover{background:#34503f}.seg{display:flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:6px;margin:14px 0 4px}.seg button{flex:1;background:transparent;border-radius:4px;padding:9px 4px;font-size:12px}.seg button.active{background:#dce1d2}.seg.small button{padding:6px 4px;font-size:11px}.meet-actions{display:flex;gap:6px;margin:10px 0}.meet-actions button{flex:1;padding:9px 6px;background:#dfe5d4;border-radius:5px;font-size:11px}.meet-status{font-size:12px;line-height:1.7;color:var(--muted);background:#e5e8dc;border-radius:5px;padding:12px 13px;margin:12px 0}.standings{width:100%;border-collapse:collapse;font-size:12px;margin-top:8px;font-variant-numeric:tabular-nums}.standings th{font-weight:400;font-size:10px;color:var(--muted);text-align:left;border-bottom:1px solid var(--line);padding:6px 4px}.standings td{padding:8px 4px;border-bottom:1px solid var(--line)}.standings td:last-child,.standings th:last-child{text-align:right}.standings tr.current td{background:#f1e5d8}.standings .club{display:block;font-size:10px;color:var(--muted)}.medal{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:-1px}.history{margin-top:14px;font-size:11px;color:var(--muted);line-height:1.7}.history div{border-bottom:1px dashed var(--line);padding:5px 0}.note{padding:14px 0;border-bottom:1px solid var(--line)}.note h3{font-size:15px;line-height:1.5;margin:4px 0 8px;font-weight:600}.note p{font-size:12px!important}.source-card{padding:16px 0 5px}.source-card>span{font-size:10px;color:var(--muted)}.source-card a{font-size:11px;color:var(--ink);text-underline-offset:3px}.bottom-note{font-size:10px;color:var(--muted);line-height:1.8;margin-top:22px}.bottom-note a{color:var(--ink)}footer{height:42px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 38px;font-size:9px;color:var(--muted);background:var(--paper)}footer b{color:var(--accent);margin:0 14px}.scorecard{position:absolute;z-index:7;right:20px;top:18px;width:min(360px,calc(100% - 40px));background:#f8f6efef;border:1px solid #c4cbb7;border-radius:8px;box-shadow:0 15px 40px #27392f22;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:14px 17px;color:var(--ink)}.scorecard .sc-top{display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}.scorecard h3{font-size:20px;font-weight:600;margin:4px 0 2px;line-height:1.3}.scorecard .sc-club{font-size:11px;color:var(--muted)}.scorecard .sc-dive{display:flex;justify-content:space-between;gap:10px;align-items:baseline;border-top:1px solid var(--line);margin-top:9px;padding-top:9px;font-size:12px}.scorecard .sc-dive b{font-size:16px;font-variant-numeric:tabular-nums}.scorecard .sc-dd{white-space:nowrap;font-size:11px;color:var(--muted)}.scorecard .cards{display:flex;gap:5px;margin-top:10px}.scorecard .cards span{flex:1;text-align:center;background:#fff;border:1px solid #c9cfbd;border-radius:4px;padding:6px 0;font-size:16px;font-weight:600;font-variant-numeric:tabular-nums;transition:opacity .3s}.scorecard .cards span.drop{opacity:.45;text-decoration:line-through}.scorecard .cards span.wait{color:transparent;background:#eef0e6}.scorecard .sc-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:10px;font-size:11px;color:var(--muted)}.scorecard .sc-total b{font-size:26px;color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}.scorecard .sc-entry{font-size:11px;margin-top:6px;color:#556150}.scorecard.free{width:min(300px,calc(100% - 40px))}.physics{position:absolute;z-index:6;left:20px;bottom:110px;background:#27392fe6;color:#eef1e8;border-radius:8px;padding:10px 13px;font-size:11px;line-height:1.6;font-variant-numeric:tabular-nums;min-width:220px;pointer-events:none}.physics b{font-size:13px;font-weight:600;color:#fff}.physics .bar{height:4px;background:#ffffff30;border-radius:3px;margin-top:4px;overflow:hidden}.physics .bar i{display:block;height:4px;background:#e7b98e}.masthead{transition:opacity .5s}.closeup .masthead{opacity:0}.night .masthead,.night .stage-caption{color:#e4e8dc}.night .masthead em,.night .masthead p,.night .masthead .mini-meta,.night .help,.night .stage-caption small{color:#c6d0c1}[hidden]{display:none!important}.panel-collapsed main{grid-template-columns:minmax(0,1fr)}.panel-collapsed aside{display:none}@media(min-width:1550px){main{grid-template-columns:minmax(0,1fr) 385px}aside{padding:35px}.masthead{left:55px;top:45px}}@media(max-width:900px){header{padding:0 14px;height:64px}.brand small,.header-right #status{display:none}.brand .brand-credit{display:block;font-size:7px}.mark{font-size:33px;width:35px;height:40px}nav button{padding:7px 9px;font-size:11px}main{height:calc(100dvh - 64px);min-height:0;grid-template-columns:1fr}footer{display:none}.masthead{left:18px;top:14px;max-width:calc(100% - 36px)}h1{font-size:30px;margin-bottom:6px}.deck{font-size:11px;line-height:1.7}.mini-meta{display:none}body:not(.panel-collapsed) aside{position:fixed;z-index:15;top:64px;right:0;bottom:0;width:min(340px,calc(100vw - 28px));overflow-y:auto;background:var(--card);box-shadow:-15px 0 40px #27392f20;padding:22px 20px calc(22px + env(safe-area-inset-bottom))}.stage-caption{display:none}.viewbar{bottom:calc(30px + env(safe-area-inset-bottom));border-radius:22px}.viewbar button{padding:8px 9px;font-size:10px}.help{bottom:calc(8px + env(safe-area-inset-bottom));font-size:8px}.help b{padding:0 3px}.scorecard{top:auto;bottom:calc(80px + env(safe-area-inset-bottom));right:10px;left:10px;width:auto;padding:10px 13px}.scorecard h3{font-size:16px}.scorecard .cards span{font-size:14px;padding:4px 0}.scorecard .sc-total b{font-size:21px}.physics{inset:96px auto auto 10px;min-width:0;font-size:10px;padding:7px 10px}.control-views{grid-template-columns:1fr 1fr 1fr}}@media(max-width:480px){nav{gap:0;padding:3px}.num{display:none}nav button{font-size:10px;padding:7px}.brand-copy>span{font-size:9px}h1{font-size:26px}.masthead .deck{max-width:270px}.control-views{grid-template-columns:1fr 1fr}}@media(max-height:520px)and (max-width:950px){.masthead .deck,.masthead .eyebrow{display:none}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}.race-events{flex-wrap:wrap}.race-events button{flex:1 1 45%}.scorecard .race-clock{font-size:30px;font-weight:600;font-variant-numeric:tabular-nums;margin:2px 0 6px}.scorecard .rrow{display:flex;gap:8px;font-size:12px;padding:3px 0;border-top:1px solid var(--line);font-variant-numeric:tabular-nums}.scorecard .rrow b{width:16px}.scorecard .rrow .ln{width:34px;color:var(--muted)}.scorecard .rrow .nm{flex:1}@media(max-width:900px){.scorecard .rrow{font-size:11px;padding:1px 0}.scorecard .race-clock{font-size:22px}.scorecard.race .rrow:nth-child(n+8){display:none}}
