/* Local UI trial: bright court operations, touch-first controls. */
:root{--trial-blue:#1554b7;--trial-ink:#172f49;--trial-muted:#4c627b;--trial-line:#d4dfec;--trial-bg:#f3f6fa;--trial-green:#14745e;--trial-radius:16px;color-scheme:light}
html{scroll-padding-top:140px}body{background:var(--trial-bg);color:var(--trial-ink);font-family:'PingFang TC','Microsoft JhengHei',system-ui,sans-serif;font-size:16px;line-height:1.6}
button,input,select,textarea{font:inherit}button,summary,a,input,select{touch-action:manipulation}button{min-height:44px;border-radius:10px;transition:background-color .15s,border-color .15s;color:var(--trial-ink);background:#edf2f8;border:1px solid var(--trial-line)}button:hover{background:#e0eafa;border-color:#90accf}button:active{background:#cfdef4}button.primary{background:var(--trial-blue);color:#fff;border-color:var(--trial-blue);box-shadow:none}button.primary:hover{background:#103e89}button:disabled{opacity:.52;cursor:not-allowed}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,[role=button]:focus-visible{outline:3px solid #1554b7;outline-offset:3px}button:disabled:hover{border-color:var(--trial-line)}
.skip-link{position:fixed;left:12px;top:-100px;z-index:100;background:#fff;padding:12px;color:var(--trial-blue)}.skip-link:focus{top:10px}.app-header{background:#fff;border-bottom:1px solid var(--trial-line);box-shadow:none}.brand{color:var(--trial-ink)}.brand small{color:var(--trial-muted)}.brand img{width:38px;height:38px}.header-actions button{background:#fff;min-height:44px;color:var(--trial-ink);border:1px solid var(--trial-line)}
.app-layout{max-width:1500px}.app-layout main{min-width:0}.activity{background:#fff;color:var(--trial-ink);border:1px solid var(--trial-line);border-top:4px solid var(--trial-blue);border-radius:var(--trial-radius);padding:18px 22px;box-shadow:none}.activity h1{font-size:26px;line-height:1.35;letter-spacing:0;margin:5px 0}.activity p,.activity .eyebrow{color:var(--trial-muted)}.activity .version{color:var(--trial-muted);font-size:11px}.activity .hero-link{background:#edf4ff;color:#174b96;border:1px solid #c6d8f2;min-height:44px}.activity-right>.tag{color:#11644e;background:#e3f5ed;border:1px solid #badfd0}
.metrics{gap:1px;background:var(--trial-line);border:1px solid var(--trial-line);border-radius:12px;overflow:hidden;margin:14px 0}.metric{background:#fff;border:0;border-radius:0;box-shadow:none;padding:12px 16px}.metric small{color:var(--trial-muted);font-size:12px}.metric strong{color:var(--trial-ink);font-size:28px;line-height:1.25;font-variant-numeric:tabular-nums}.page-title{margin:20px 0 12px}.page-title h2{font-size:22px}.page-title>span{font-size:12px;color:var(--trial-muted)}
.trial-note{display:flex;align-items:center;gap:10px;padding:6px 0 12px;color:var(--trial-muted);font-size:12px}.trial-note>span{font-size:11px;background:#e5ebf4;padding:3px 8px;border-radius:5px;font-weight:700}.trial-note small{font-size:12px}.fairness-strip{gap:8px;margin:0 0 12px}.fairness-strip>span{background:#e6eef8;color:#244768;border-radius:8px;font-size:13px;padding:8px 12px;min-height:40px}.overdue-shortcut{background:#fff0ce;color:#744908;border:1px solid #e6c47f;font-size:13px}
.live-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;position:sticky;top:78px;z-index:5;background:var(--trial-bg);padding:8px 0 12px;margin:0 0 8px;border:0}.live-tabs button{background:#fff;border:1px solid var(--trial-line);min-height:48px;border-radius:10px;font-size:15px;box-shadow:none}.live-tabs button.active{background:var(--trial-ink);color:#fff;border-color:var(--trial-ink);box-shadow:none}
.live-actions{margin:0 0 12px;display:block}.live-actions>.hint{display:none}.live-actions .actions{display:grid;grid-template-columns:1fr 1.3fr 1fr 1fr;gap:8px}.live-actions .actions button{min-height:48px;font-size:14px;padding:10px}.live-actions .secondary-action{background:white}.live-rules-fold{margin:0 0 12px;background:#fff;border:1px solid var(--trial-line);border-radius:10px;padding:0 12px}.live-rules-fold>summary{font-size:14px;min-height:44px;display:flex;align-items:center;color:var(--trial-muted);cursor:pointer}.live-rules-fold>summary:before{content:'＋';margin-right:9px;font-size:18px;color:var(--trial-blue)}.live-rules-fold[open]>summary:before{content:'−'}.live-rules-fold .strict-level-controls{border:0;padding:0 0 12px;margin:0}.broadcast-controls{margin:0 0 12px;font-size:12px}.wish-shortcut{background:#fff;border:1px solid var(--trial-line);color:var(--trial-muted);text-align:left;min-height:44px;padding:9px 14px;margin-bottom:16px}
.live-grid{gap:20px}.court-toolbar{margin-bottom:12px}.court-filters{gap:6px}.court-filters button{border-radius:8px;background:#fff;color:var(--trial-muted);border:1px solid var(--trial-line);min-height:44px}.court-filters button.active{background:#e5effe;color:#174b96;border-color:#739bce;box-shadow:none}#live-courts .court-jump select{background:#fff;color:var(--trial-ink);border:1px solid var(--trial-line);border-radius:9px}#live-courts .court-jump label{color:var(--trial-muted)}
.courts{gap:14px}.court{padding:18px;border:1px solid var(--trial-line);border-top:4px solid #90b1d8;background:#fff;border-radius:14px;box-shadow:none;min-width:0}.court.live{border-top-color:#22826b;background:#fff}.court.disabled{background:#edf1f5}.court.assigned{border-top-color:#bc790d;background:#fffaf0;box-shadow:none;animation:none}.court-top{margin-bottom:12px}.court-top h3{font-size:25px;line-height:1.2;font-variant-numeric:tabular-nums;color:var(--trial-ink)}.court .tag{font-size:12px}.court-empty{color:var(--trial-muted);font-size:14px;padding:20px 0}.court .primary.full{background:#e9f1ff;color:#164b97;border-color:#c5d8f5;min-height:48px;font-size:15px}.court-foot{gap:8px}.court-foot .elapsed{font-size:12px;color:var(--trial-muted);font-variant-numeric:tabular-nums}.court-foot button{font-size:13px;min-height:44px}.court .secondary-tools{margin-top:8px}.court .secondary-tools>summary{font-size:12px;color:var(--trial-muted);min-height:44px}.team-grid{gap:8px;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr);align-items:start}.team-name[data-level]{display:block;background:var(--level-pale);border-left:4px solid var(--level);border-radius:7px;padding:7px 8px;margin:5px 0;font-size:20px;font-weight:750;line-height:1.4;overflow-wrap:anywhere}.team-level{font-size:12px;display:inline-block;margin-left:4px}.doubles-label{font-size:12px;color:var(--trial-muted)}.versus{align-self:center;color:var(--trial-muted);font-size:11px}.team-grid>*{min-width:0}
#live-queue,#live-waiting{background:#fff;border:1px solid var(--trial-line);border-radius:14px;padding:18px;box-shadow:none;scroll-margin-top:142px}#live-queue>.section-head h3,#live-waiting>.section-head h3{font-size:20px}.queue-card{border:1px solid var(--trial-line);border-radius:12px;background:white;box-shadow:none;padding:16px;margin-top:14px}.queue-top{align-items:flex-start;gap:8px}.queue-top>strong{font-size:16px}.queue-top .tag{font-size:12px}.queue-card>.reason{font-size:13px;color:var(--trial-muted)}.queue-card>.hint{font-size:12px}.dispatch-bar{background:#eef4fd;border:1px solid #cadbf3;border-radius:10px;padding:12px;gap:10px;margin-top:14px}.dispatch-caption{font-size:13px;color:#244b7a}.court-dispatch-choices{display:flex;flex-wrap:wrap;gap:8px;width:100%}.court-choice{min-height:46px;min-width:64px;background:#fff;color:#244b7a;border:1px solid #b9cce6}.court-choice[aria-pressed=true]{background:#1554b7;color:#fff;border-color:#1554b7;box-shadow:inset 0 0 0 1px white}.dispatch-start{min-height:52px;font-size:16px;width:100%}.replace-action{background:#fff;border:1px dashed #9fb0c5;color:#405c7d;font-size:13px;margin-top:12px}.secondary-tools>summary{min-height:44px;color:var(--trial-muted)}
.person-row{padding:12px 0;gap:10px;border-color:#e0e7f0}.person-main{min-width:0}.person-main strong{font-size:17px;line-height:1.5;overflow-wrap:anywhere}.person-main small{font-size:12px;color:var(--trial-muted)}.avatar{width:40px;height:40px;min-width:40px;border-radius:12px;font-size:17px}.person-row.overdue{background:#fff8e9;border-radius:10px;padding:12px 8px}.tag{background:#e8eef6;color:#365371;border-radius:6px;font-size:12px}.tag.warn{background:#fff0cc;color:#744908}.waiting-alerts{background:#fff4dc;border:1px solid #e7c58b;border-left:4px solid #b97b0e;border-radius:12px;padding:14px;margin-bottom:14px;color:#60400c}.waiting-alerts>strong{font-size:16px}.waiting-alert-person{border-color:#ead4a9;padding:10px 0}.waiting-alert-person button{background:#fffaf0;color:#69430b;border:1px solid #dbc18d;width:100%;font-size:15px;font-weight:700}.waiting-alert-person .reason{color:#694c20;font-size:13px}.waiting-alerts>button{margin-top:10px;background:#fffaf0;color:#69430b}.reason,.hint{color:var(--trial-muted);line-height:1.7}.panel{box-shadow:none}.workflow-card{background:#eaf2fd;border-color:#c6d8ef;border-left-color:#1554b7;color:#244b7a}.workflow-card>p{color:var(--trial-muted)}.workflow-card .actions button:first-child{background:#1554b7;border-color:#1554b7}.directory-name[data-level]{border-radius:8px}.directory-row{border-color:var(--trial-line)}
#nav button{min-height:54px;color:var(--trial-muted);border-color:transparent;background:transparent}#nav button.active{background:#e5effe;color:#1554b7;border-radius:12px}#nav button .nav-icon{font-size:24px}.runtime-strip,footer{color:var(--trial-muted);font-size:12px}footer{border-color:var(--trial-line)}.form-grid input,.form-grid select,.form-grid textarea{font-size:16px;min-height:48px;color:var(--trial-ink);background:#fff;border-color:var(--trial-line)}.form-grid label{font-size:14px}dialog{border:1px solid var(--trial-line);border-radius:18px;overscroll-behavior:contain}dialog::backdrop{background:#10243b80}.dialog-head{border-bottom:1px solid var(--trial-line);padding-bottom:12px}.dialog-actions{background:#fff}.dialog-actions button{min-height:48px}#notice{background:#172f49;color:#fff;border-radius:10px}h1,h2,h3{text-wrap:balance}#content,#live-courts,.live-side{min-width:0}
@media(min-width:1000px){.live-grid{grid-template-columns:minmax(0,1fr) 330px}.courts{grid-template-columns:repeat(2,minmax(0,1fr))}.live-tabs{position:static;max-width:500px}.live-actions .actions{max-width:680px}.live-rules-fold{max-width:680px}.activity{display:flex;align-items:center;justify-content:space-between}.live-side #live-waiting{position:sticky;top:90px}}
@media(max-width:700px){html{scroll-padding-top:135px}.app-header{min-height:64px;padding:10px 14px}.brand{font-size:18px}.brand small{font-size:10px}.header-actions button{font-size:12px;padding:8px;min-height:44px}.app-layout main{padding:12px 12px calc(100px + env(safe-area-inset-bottom))}.activity{padding:12px 14px;border-radius:12px;gap:8px}.activity h1{font-size:22px;margin:4px 0}.activity p{font-size:12px;margin-bottom:0}.activity .eyebrow{font-size:11px;letter-spacing:0}.activity .version{font-size:10px;display:block;margin:0}.activity-right{display:flex;gap:6px;align-items:flex-end}.activity-right>.tag{display:none}.activity .hero-link{font-size:12px;padding:8px;white-space:nowrap}.metrics{margin:10px 0;border-radius:10px}.metric{padding:9px 7px}.metric small{font-size:11px}.metric strong{font-size:25px}.page-title{margin:14px 0 8px}.page-title h2{font-size:20px}.page-title>span{font-size:11px}.trial-note{padding:3px 0 10px;gap:6px}.trial-note small{font-size:11px}.fairness-strip{gap:5px;margin-bottom:10px}.fairness-strip>span,.overdue-shortcut{font-size:11px;min-height:40px;padding:8px 7px;flex:1;text-align:center}.live-tabs{top:64px;margin:0 -12px 10px;padding:8px 12px 10px;border-bottom:1px solid var(--trial-line);box-shadow:0 3px 7px #16375206}.live-tabs button{font-size:14px;min-height:46px}.live-actions .actions{grid-template-columns:1fr 1.25fr;gap:8px}.live-actions .actions button{font-size:14px;min-height:48px}.live-actions .secondary-action{font-size:13px!important;min-height:44px!important}.live-rules-fold{margin-bottom:10px}.broadcast-controls{margin-bottom:8px;min-height:32px}.broadcast-controls button{min-height:44px}.wish-shortcut{font-size:13px;min-height:44px;margin-bottom:12px}.courts{grid-template-columns:1fr;gap:12px}.court{padding:16px;border-radius:12px}.court-top h3{font-size:27px}.court .team-name[data-level]{font-size:20px;min-height:42px}.court-foot .elapsed{order:-1;text-align:left;flex-basis:100%;font-size:12px}.court-foot button{flex:1;min-height:46px}.team-grid{gap:6px}.team-level{font-size:11px}.court-empty{padding:16px 0;font-size:14px}.court-filters button{font-size:13px}.court-jump select{min-height:46px!important}#live-queue,#live-waiting{padding:14px;border-radius:12px}.queue-card{padding:12px}.queue-top{display:flex;flex-wrap:wrap}.queue-card .team-name[data-level]{font-size:20px}.dispatch-bar{padding:10px}.court-choice{font-size:14px;min-width:62px}.dispatch-start{font-size:16px}.person-main strong{font-size:17px}.person-main small{font-size:12px}.person-row>.tag{font-size:11px;padding:5px}.live-grid{gap:12px}#nav{background:#fff;border-top:1px solid var(--trial-line);padding:6px 8px calc(6px + env(safe-area-inset-bottom));box-shadow:0 -4px 18px #172f4908}#nav button{min-height:56px;font-size:12px;border-radius:10px}#nav button.active{background:#e5effe}.menu-grid{gap:8px}.menu-grid button{min-height:88px}.form-grid{gap:14px}.hint,.reason{font-size:13px}#notice{bottom:calc(90px + env(safe-area-inset-bottom))}.waiting-alerts{padding:12px}.waiting-alert-person .reason{font-size:13px}.workflow-card{padding:14px}.workflow-card>strong{font-size:17px}}
@media(max-width:360px){.metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.metric strong{font-size:22px}.metric small{font-size:10px}.activity-right{display:flex}.fairness-strip{flex-wrap:wrap}.fairness-strip>span{flex-basis:40%}.overdue-shortcut{flex-basis:100%}.team-name[data-level]{font-size:18px!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
[hidden]{display:none!important}.alert-details summary{font-size:15px;font-weight:700;min-height:44px;cursor:pointer;display:list-item;list-style:disclosure-closed inside}.alert-details[open] summary{list-style-type:disclosure-open}.alert-names{font-size:13px;margin:2px 0 4px;font-weight:600}.alert-primary-reason{font-size:12px;margin:0;line-height:1.7}.alert-details[open]~.alert-names,.alert-details[open]~.alert-primary-reason{display:none}.waiting-alerts{padding-top:4px}.live-rules-fold .strict-level-controls .level-toggle{background:var(--level-pale);color:var(--level-ink)}
.live-other-tools{background:white;border:1px solid var(--trial-line);border-radius:10px;padding:0 12px;margin-bottom:14px}.live-other-tools>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-size:14px}.live-other-tools>summary:before{content:'＋';color:#1554b7;margin-right:8px}.live-other-tools[open]>summary:before{content:'−'}.live-other-tools>.actions{display:flex;gap:8px;margin:10px 0}.live-other-tools>.actions button{flex:1}.live-actions .actions{grid-template-columns:1fr 1.3fr}.trial-note{display:none}body[data-page=live] .page-title{display:none}.waiting-alerts{margin-top:10px}.waiting-alerts .alert-names{margin:0 0 3px}.live-other-tools .live-rules-fold{margin-top:8px}.live-other-tools .broadcast-controls{margin-top:8px}
@media(max-width:700px){.activity{padding:10px 12px}.activity h1{font-size:20px}.activity .eyebrow{font-size:10px}.activity .version{font-size:9px}.metrics{margin-bottom:12px}.live-actions .actions{grid-template-columns:1fr 1.3fr}.live-tabs{margin-bottom:8px}.waiting-alerts{margin-top:8px;padding:0 10px 10px}.alert-primary-reason{font-size:12px}.live-other-tools{margin-bottom:12px}.fairness-strip{margin-bottom:6px}}
.team-level{color:var(--level-ink)}.alert-names{line-height:1.5}.queue-card .dispatch-bar{margin-top:8px}.queue-card>.secondary-tools{margin-top:8px}.queue-card>.queue-alert{font-size:12px}.queue-card>.hint{margin:8px 0}
body button[class]{min-height:44px}.live-actions .primary{min-height:48px}.dispatch-bar .dispatch-start{min-height:52px}#nav button{min-height:56px}.alert-details summary{padding:0}.team-grid .team-name{font-variant-numeric:tabular-nums}
.auto-dispatch-control{background:#fff;border:1px solid var(--trial-line);padding:10px 12px;border-radius:10px;margin-bottom:12px}.auto-dispatch-toggle{width:100%;min-height:46px;font-weight:700;background:#edf2f8}.auto-dispatch-toggle[aria-pressed=true]{background:#e3f5ed;color:#11644e;border-color:#78ae9d}.auto-dispatch-control p{font-size:12px;margin:7px 0 0;line-height:1.6;min-height:20px}
