*{box-sizing:border-box} :root{color-scheme:light;--bg:#f3f5f7;--surface:#fff;--text:#15222d;--muted:#52616d;--line:#d8e0e5;--key:#e9eef2;--accent:#155e63;--active:#e3f2ef;--error:#a52d36}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select{font:inherit}button,.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 16px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);font-weight:600;text-decoration:none;cursor:pointer}button:hover,.button:hover{filter:brightness(.96)}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #d9922e;outline-offset:3px}a{color:var(--accent)}.primary{background:var(--accent);border-color:var(--accent);color:#fff}.danger{color:var(--error)}input,select{display:block;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);min-height:46px}input[type=checkbox]{display:inline-block;width:20px;min-height:20px;margin-right:8px;vertical-align:middle;accent-color:var(--accent)}label{display:block;font-size:14px;font-weight:600;margin:4px 0 6px}h1,h2,p{margin-top:0}h1{font-size:clamp(25px,4vw,36px);line-height:1.2;letter-spacing:-.7px;margin-bottom:12px}h2{font-size:20px;letter-spacing:-.3px}small,.hint{font-size:13px;color:var(--muted)}.muted{color:var(--muted)}.top{height:66px;display:flex;justify-content:space-between;align-items:center;padding:0 max(20px,calc((100vw - 1100px)/2));border-bottom:1px solid var(--line);background:var(--surface)}.brand{font-size:21px;font-weight:800;text-decoration:none;color:var(--text);letter-spacing:-.7px}.brand span{font-weight:400;margin-left:4px;color:var(--accent)}nav{display:flex;align-items:center;gap:18px;font-size:13px}nav form{margin:0}.text-button{padding:0;border:0;min-height:40px;font-size:13px;background:none}.page{max-width:1140px;margin:auto;padding:32px 20px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px;margin-bottom:24px}.narrow{max-width:470px;margin:30px auto}.heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin:8px 0 30px}.eyebrow{text-transform:uppercase;font-size:11px;letter-spacing:1.6px;font-weight:700;color:var(--accent);margin-bottom:8px}.pill{white-space:nowrap;font-size:12px;background:var(--active);color:var(--accent);padding:6px 10px;border-radius:20px}.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px}.span-all{grid-column:1/-1}.people>div{display:flex;flex-wrap:wrap;gap:8px 20px}.people label{font-size:15px}.event-row{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);padding:16px 0;text-decoration:none}.event-row span{font-size:13px;color:var(--muted)}.player-row{border-top:1px solid var(--line);padding:10px 0}.player-row form{display:flex;gap:8px;flex-wrap:wrap}.inline{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.inline>label{flex:1;min-width:140px}.inline>input{flex:1;min-width:200px}.share{margin-bottom:28px}.share input{background:var(--surface)}details{margin:14px 0}summary{cursor:pointer;font-weight:600;margin-bottom:12px}.notice{padding:14px 18px;background:var(--active);border-radius:10px}.error{padding:14px;color:var(--error);border:1px solid currentColor;border-radius:10px;background:var(--surface)}.section-heading{display:flex;justify-content:space-between;gap:12px;align-items:center}.section-heading .muted{font-size:12px}.match-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:14px;margin:16px 0 28px}.match-tile{display:grid;grid-template-columns:1fr auto;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px;text-decoration:none;color:var(--text)}.match-status{grid-column:1/-1;color:var(--accent);font-size:12px;font-weight:600}.match-names{font-weight:600;overflow-wrap:anywhere}.versus{display:block;color:var(--muted);font-size:12px;font-weight:400}.match-result{align-self:center;font-variant-numeric:tabular-nums;font-size:24px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}td,th{text-align:right;padding:10px;border-bottom:1px solid var(--line);white-space:nowrap;font-variant-numeric:tabular-nums}td:first-child,th:first-child{text-align:left}thead{color:var(--muted)}.full{width:100%}[hidden]{display:none!important}
.scorer-page{max-width:640px;margin:0 auto;padding:14px 16px 32px}.scorer-heading{display:flex;justify-content:space-between;gap:12px;font-size:12px;margin-bottom:12px}.scorer-heading a{max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.statusline{display:flex;justify-content:space-between;gap:10px;font-size:12px;min-height:30px;color:var(--muted)}.scoreboard{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.score-card{background:var(--surface);padding:14px;border-radius:14px;border:2px solid transparent;min-width:0}.score-card.active{background:var(--active);border-color:var(--accent)}.player-title{display:flex;justify-content:space-between;gap:8px;font-size:14px}.player-name{overflow-wrap:anywhere;line-height:1.25;min-height:36px}.legs{white-space:nowrap}.rest{font-size:clamp(48px,10vw,72px);font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums;letter-spacing:-2px;margin:8px 0}.card-foot{display:flex;justify-content:space-between;gap:6px;flex-wrap:wrap;font-size:11px;color:var(--muted)}.turn-label{font-weight:700;color:var(--accent)}.entry-line{display:flex;justify-content:space-between;align-items:center;padding:10px 6px;color:var(--muted)}.entry-line output{font-size:34px;font-weight:600;line-height:1.2;font-variant-numeric:tabular-nums;color:var(--text)}.keypad{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.keypad button{min-height:60px;font-size:24px;border:0;background:var(--key);border-radius:10px;padding:8px}.keypad .primary{background:var(--accent);color:#fff;grid-column:span 2}.keypad #bust,.keypad #undo{font-size:14px}.claim-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px}.compact{padding:18px;margin:18px 0}.history{margin-top:24px}.history table{font-size:12px}.history summary{font-size:13px;color:var(--muted)}dialog{max-width:min(440px,calc(100% - 32px));border:1px solid var(--line);border-radius:16px;padding:24px;background:var(--surface);color:var(--text)}dialog::backdrop{background:#15222d88}dialog .inline{margin-bottom:16px}dialog .inline button{flex:1;min-height:56px;font-size:20px}
@media(max-width:700px){.two-col{grid-template-columns:1fr;gap:0}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.heading{flex-direction:column}.page{padding:24px 16px}.panel{padding:18px}.top{padding:0 16px;height:56px}.claim-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-height:720px) and (max-width:700px){.scorer-page{padding-top:8px}.scorer-heading{margin-bottom:6px}.statusline{min-height:24px}.score-card{padding:10px}.rest{font-size:48px;margin:4px 0}.player-name{min-height:28px;font-size:12px}.keypad{gap:6px}.keypad button{min-height:46px;font-size:22px}.entry-line{padding:6px}.entry-line output{font-size:28px}}
@media(prefers-color-scheme:dark){:root{color-scheme:dark;--bg:#141c22;--surface:#1d2932;--text:#edf2f4;--muted:#afbec8;--line:#3a4b57;--key:#2b3a45;--accent:#77c4b7;--active:#203c3b;--error:#ff9da5}.primary,.keypad .primary{color:#102925}.brand span{color:var(--accent)}}

/* 0.1.1: equal tracks, shrinkable selects and bottom-aligned control rows. */
/* 0.3: event states, profiles and rankings. Labels accompany every color. */
.match-tile[data-status=pending]{background:#fff7e4;border-color:#e6cd8d}
.match-tile[data-status=pending] .match-status{color:#835100}
.match-tile[data-status=running]{background:var(--active);border-color:var(--accent);border-left-width:5px}
.match-tile[data-status=completed]{background:#e9f5ed;border-color:#a2c7ae}
.match-tile[data-status=completed] .match-status{color:#24643a}
.match-suggestion{grid-column:1/-1;white-space:normal;overflow-wrap:anywhere}
.ranking-banner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:24px;padding:14px 0;border-bottom:1px solid var(--line)}
.schedule-action{margin:0 0 16px}.event-summary-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);gap:24px}.event-summary-grid>.panel{min-width:0}
.best-category+.best-category{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.best-category h3{display:flex;justify-content:space-between;gap:12px;font-size:16px;margin:0 0 10px}.best-person{display:flex;justify-content:space-between;gap:16px;font-size:14px;margin:6px 0}.best-person a{overflow-wrap:anywhere}.best-record{display:block;padding:6px 0;font-size:13px}.best-record small{display:block}
.profile-points{display:flex;flex-direction:column;max-width:100%;color:var(--accent)}.profile-points strong{font-size:32px;font-variant-numeric:tabular-nums}.profile-points span{font-size:13px;overflow-wrap:anywhere}
.profile-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:16px;margin-bottom:18px}.profile-stats>div{display:flex;flex-direction:column;gap:4px}.profile-stats span{font-size:13px;color:var(--muted)}.profile-stats strong{font-size:24px;font-variant-numeric:tabular-nums}
.profile-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0}.profile-counts>div{display:flex;flex-direction:column;gap:4px}.profile-counts span{font-size:13px;color:var(--muted)}.profile-counts strong{font-size:20px;font-variant-numeric:tabular-nums}.mobile-record,.scroll-hint{display:none}
@media(max-width:600px){.mobile-record{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:4px;white-space:normal}.scroll-hint{display:block}#evening-table th,#evening-table td{padding:8px 6px}#evening-table th:first-child{white-space:normal;overflow-wrap:anywhere;min-width:60px}#evening-table thead th:nth-child(n+3):nth-child(-n+6),#evening-table tbody td:nth-child(n+3):nth-child(-n+6){display:none}}
.cell-note{display:block;white-space:normal;overflow-wrap:anywhere;min-width:130px;max-width:320px;font-weight:400}.placement-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:12px;margin-bottom:18px}.placement-grid label,.heading h1{overflow-wrap:anywhere}
.result-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.result-form .span-all{grid-column:1/-1}.result-source{margin:12px 0;font-size:13px;color:var(--muted)}
@media(max-width:1000px){.event-summary-grid{grid-template-columns:minmax(0,1fr);gap:0}}
@media(prefers-color-scheme:dark){.match-tile[data-status=pending]{background:#392f1c;border-color:#796338}.match-tile[data-status=pending] .match-status{color:#f5d28a}.match-tile[data-status=completed]{background:#20382a;border-color:#4a7857}.match-tile[data-status=completed] .match-status{color:#9bd4ae}}
button,.button{touch-action:manipulation}
input,select,.form-grid>*,.claim-grid>*,.inline>label{min-width:0;max-width:100%}
.form-grid,.claim-grid{align-items:end}
.form-grid label,.claim-grid label{margin-top:0}
.claim-grid label{margin-bottom:0}
.keypad button{min-width:0;user-select:none;-webkit-user-select:none}
.player-title{display:grid;grid-template-columns:minmax(0,1fr) auto}
.page,.scorer-page{padding-bottom:max(32px,env(safe-area-inset-bottom))}
.people label{overflow-wrap:anywhere}
/* 0.2.0: optional doubles, explicit skip and deliberate confirmation. */
#double-dialog{width:min(390px,calc(100% - 24px));max-width:calc(100% - 24px);padding:18px;--double-red:#b3323a;--double-on-red:#fff;--double-green:#1d6b43;--double-on-green:#fff}
.double-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:22px}
.double-top>span{text-transform:uppercase;font-size:12px;letter-spacing:.06em;color:var(--muted)}
#double-skip{min-height:56px;padding:14px 16px;background:var(--double-red);color:var(--double-on-red);border:0}
#double-title{font-size:24px;font-weight:500;margin:0 0 10px}
#double-context{overflow-wrap:anywhere;margin-bottom:18px}
#double-confirmed,#double-question{margin-bottom:20px}
#double-dialog fieldset{border:0;padding:0;margin:0;min-width:0}
#double-dialog legend{font-size:14px;font-weight:600;margin-bottom:10px;padding:0}
#double-options{display:grid;gap:8px}
#double-options button{min-height:56px;min-width:0;background:var(--key);padding:10px}
#double-options button[aria-pressed=true]{background:var(--double-green);color:var(--double-on-green);border-color:var(--double-green)}
#double-selection{margin:10px 0 0;min-height:20px}
.double-note{margin:20px 0}
#double-confirm{width:100%;min-height:58px;background:var(--double-green);color:var(--double-on-green);border:0}
@media(prefers-color-scheme:dark){#double-dialog{--double-red:#e65d68;--double-on-red:#291116;--double-green:#77c4a0;--double-on-green:#10291c}}
@media(max-width:360px){#double-dialog{padding:16px}#double-skip{padding:14px 12px}}
@media(max-height:700px){.double-top{margin-bottom:14px}#double-context{margin-bottom:12px}#double-confirmed{margin-bottom:16px}.double-note{margin:14px 0}}
@media(max-width:480px){
 .form-grid{grid-template-columns:minmax(0,1fr)}
 .inline>label{flex-basis:100%;min-width:0}
 .inline>input{min-width:0;flex-basis:100%}
 .inline>button{width:100%}
 #finish-options button{width:auto}
 #complete-panel .button,#complete-panel button{width:100%;margin-bottom:8px}
}
/* 0.5: tournament organization, stable live lists and mobile controls. */
.turnier-tabs,.wizard-progress{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0 24px}.turnier-tabs a{padding:12px 16px;background:var(--surface);border:1px solid var(--line);border-radius:10px;text-decoration:none}.turnier-tabs a[aria-current=page]{border-color:var(--accent);background:var(--active)}
.board-grid,.group-grid,.scenario-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:16px;margin:16px 0 24px}.board-card,.group-card,.scenario{padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:12px;min-width:0;overflow-wrap:anywhere}.board-card h3,.group-card h3{margin-top:0}.board-state{font-weight:600;color:var(--accent)}.board-card p{margin:8px 0}.board-next{font-size:13px}.scenario small{color:var(--muted)}
.filters{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.filters>label{flex:1;min-width:120px;margin:0}.operation-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:14px 0;border-top:1px solid var(--line)}.operation-row>strong{flex:1;min-width:160px}.operation-row label{margin:0}.operation-row details{width:100%}.wizard-progress span{padding:8px;background:var(--active);border-radius:8px}.wizard-step{scroll-margin-top:16px}.board-card a,.group-card a{overflow-wrap:anywhere}
.match-tile[data-status=paused]{border-style:dashed;border-color:var(--accent)}.top nav{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.top nav a{font-size:14px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:3px}input[type=checkbox]{width:auto;min-height:24px;margin-right:8px;vertical-align:middle}
@media(max-width:650px){.top{height:auto;min-height:56px;gap:8px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px}.top nav{gap:10px}.top nav a{font-size:12px}.turnier-tabs{gap:6px}.turnier-tabs a{padding:10px;font-size:13px}.operation-row>button{flex:1}.filters>label{min-width:100px}.wizard-progress{font-size:12px}.group-card table{font-size:12px}.group-card th,.group-card td{padding:8px 5px}.group-card th:first-child{white-space:normal}}
