:root{--bg:#f6f5f3;--surface:#fff;--text:#1c1917;--muted:#78716c;--border:#e7e5e4;--accent:#ea580c;--accent-strong:#c2410c;--accent-soft:#ffedd5;--good:#15803d;--good-soft:#dcfce7;--bad:#b91c1c;--bad-soft:#fee2e2;--neutral-soft:#f5f5f4;--radius:10px;--cell:38px;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.45}*{box-sizing:border-box}body{min-height:100vh;margin:0}h1,h2,h3{margin:0 0 .75rem;line-height:1.2}h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1.05rem}a{color:var(--accent-strong);text-decoration:none}a:hover{text-decoration:underline}input,select,textarea,button{font:inherit;color:inherit}input:not([type=checkbox]),select,textarea{border:1px solid var(--border);background:var(--surface);border-radius:8px;width:100%;min-height:40px;padding:.5rem .65rem}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:1px}textarea{resize:vertical}textarea:disabled,input:disabled{background:var(--neutral-soft)}label{color:var(--muted);flex-direction:column;gap:.3rem;font-size:.9rem;display:flex}label>input,label>select,label>textarea{color:var(--text)}label.checkbox{color:var(--text);flex-direction:row;align-items:center;gap:.5rem}.muted{color:var(--muted);font-weight:400}.small{font-size:.85rem}.button{border:1px solid var(--border);background:var(--surface);cursor:pointer;white-space:nowrap;min-height:40px;color:var(--text);border-radius:8px;justify-content:center;align-items:center;gap:.5rem;padding:.45rem 1rem;font-weight:500;display:inline-flex;text-decoration:none!important}.button:hover{background:#fafaf9;border-color:#d6d3d1}.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.button.primary:hover{background:var(--accent-strong)}.button.danger{color:var(--bad);border-color:#fecaca}.button.danger:hover{background:var(--bad-soft)}.link{color:var(--accent-strong);cursor:pointer;background:0 0;border:0;padding:.25rem .35rem}.link:hover{text-decoration:underline}.link.danger{color:var(--bad)}.icon-button{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:8px;width:34px;height:34px}.icon-button:disabled{opacity:.35;cursor:default}.env-warning{padding:.75rem 1rem;padding-top:max(.75rem, env(safe-area-inset-top));color:#1c1917;text-align:center;text-transform:uppercase;letter-spacing:.02em;background:repeating-linear-gradient(-45deg,#facc15 0 16px,#fde047 16px 32px);border-bottom:3px solid #1c1917;font-size:1.05rem;font-weight:800}.topbar{z-index:20;padding:.5rem 1rem;padding-top:max(.5rem, env(safe-area-inset-top));background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;display:flex;position:sticky;top:0}.brand{color:var(--text);align-items:center;gap:.5rem;font-weight:700;display:flex}.topbar-nav{align-items:center;gap:.75rem;min-width:0;font-size:.9rem;display:flex}.topbar-user{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:12rem;overflow:hidden}.page{max-width:760px;margin:0 auto;padding:1rem 1rem 5rem}.page-wide{max-width:1280px}.page-head,.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.page-head h1{margin:0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:inherit;margin-bottom:1rem;padding:1rem;display:block}a.card:hover{border-color:#d6d3d1;text-decoration:none}.form-grid{grid-template-columns:1fr;gap:.75rem;display:grid}.form-grid .span{grid-column:1/-1}.form-grid h3{margin:0}@media (width>=600px){.form-grid{grid-template-columns:1fr 1fr}}.actions{flex-wrap:wrap;gap:.5rem;display:flex}.inline-form{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.inline-form input{flex:12rem;width:auto}.inline-form select{width:auto}.empty{text-align:center;color:var(--muted);padding:1.5rem 1rem}.alert{border-radius:8px;padding:.75rem 1rem}.alert.error{background:var(--bad-soft);color:var(--bad)}.section-title{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:1.5rem 0 .75rem;font-size:.95rem}.badge{background:var(--neutral-soft);color:var(--muted);white-space:nowrap;border-radius:999px;margin:.1rem .25rem .1rem 0;padding:.1rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.status-ok{background:var(--good-soft);color:var(--good)}.status-review{background:var(--bad-soft);color:var(--bad)}.status-pending{background:var(--neutral-soft);color:var(--muted)}.back{margin-bottom:.75rem;font-size:.9rem;display:inline-block}.danger-zone{border-top:1px dashed var(--border);margin-top:2rem;padding-top:1rem}.plain-list{margin:0 0 1rem;padding:0;list-style:none}.list-row{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.5rem 0;display:flex}.list-row select{width:auto}.grow{flex:10rem;min-width:0}.only-narrow{display:none}@media (width<=720px){.only-wide{display:none!important}.only-narrow{display:inline}}.login{place-items:center;min-height:100vh;padding:1rem;display:grid}.login-card{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:16px;width:100%;max-width:360px;padding:2rem 1.5rem}.login-card h1{margin:.5rem 0 .25rem}.google{width:100%;margin:1rem 0}.team-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem;display:grid}.team-card{justify-content:space-between;align-items:center;gap:.5rem;margin:0;display:flex}.team-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.5rem 1rem;margin-bottom:1rem;display:flex}.team-head h1{margin:0}.tabs{scrollbar-width:none;gap:.25rem;display:flex;overflow-x:auto}.tabs a{color:var(--muted);white-space:nowrap;border-radius:8px;padding:.45rem .8rem;font-weight:500}.tabs a:hover{background:var(--surface);text-decoration:none}.tabs a.active{background:var(--text);color:#fff}.table-scroll{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);-webkit-overflow-scrolling:touch;overflow-x:auto}.table{border-collapse:separate;border-spacing:0;background:var(--surface);font-variant-numeric:tabular-nums;width:100%}.table th,.table td{border-bottom:1px solid var(--border);text-align:center;white-space:nowrap;padding:.45rem .6rem}.table th{color:var(--muted);background:#fafaf9;font-size:.8rem;font-weight:600}.table tbody tr:last-child td{border-bottom:0}.table .col-name{text-align:left}.table.compact{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1rem}.table.compact td:first-child,.table.compact th:first-child{text-align:left}.sticky-col{z-index:1;background:var(--surface);position:sticky}th.sticky-col{background:#fafaf9}.summary-table .col-number{width:2.75rem;min-width:2.75rem;left:0}.summary-table .col-name{box-shadow:1px 0 0 var(--border);left:2.75rem}.summary-table .group-row th{color:var(--text);border-bottom:0;padding-bottom:0}.group-start{border-left:1px solid var(--border)}.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable:hover{color:var(--text)}.sorted{color:var(--accent-strong)}.sorted:after{content:" ▲";font-size:.7em}.sorted.desc:after{content:" ▼"}.team-row td{background:var(--accent-soft);font-weight:600}tr.inactive td{color:var(--muted)}td.warn{background:var(--bad-soft);color:var(--bad);font-weight:600}.below-table{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin:.75rem 0;display:flex}.help{grid-template-columns:max-content 1fr;gap:.4rem 1rem;font-size:.9rem;display:grid}.help dt{font-weight:600}.help dd{color:var(--muted);margin:0}.chips{scrollbar-width:none;gap:.4rem;display:flex;overflow-x:auto}.chip{border:1px solid var(--border);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:999px;padding:.35rem .8rem}.chip.active{background:var(--text);border-color:var(--text);color:#fff}.match-list{margin:0;padding:0;list-style:none}.match-row{border-left:6px solid var(--competition-color,var(--border));background:color-mix(in srgb, var(--competition-color,#fff) 7%, var(--surface));grid-template-columns:6.5rem 1fr auto;align-items:center;gap:.75rem;margin-bottom:.5rem;padding:.75rem 1rem;display:grid}.competition-tag{background:color-mix(in srgb, var(--competition-color) 18%, var(--surface));color:color-mix(in srgb, var(--competition-color) 75%, #000);border-radius:999px;align-self:flex-start;padding:.05rem .5rem;font-size:.75rem;font-weight:600}.competition-chip{border-color:color-mix(in srgb, var(--competition-color) 45%, var(--surface));color:color-mix(in srgb, var(--competition-color) 75%, #000)}.chip.competition-chip.active{background:var(--competition-color);border-color:var(--competition-color);color:#fff}.color-input{cursor:pointer;height:34px;width:34px!important;min-height:34px!important;padding:2px!important}.match-date{color:var(--muted);font-size:.9rem}.match-title{flex-direction:column;min-width:0;display:flex}.match-title strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.match-meta{flex-direction:column;align-items:flex-end;gap:.2rem;display:flex}@media (width<=480px){.match-row{grid-template-columns:1fr auto}.match-date{grid-column:1/-1;margin-bottom:-.5rem;font-size:.8rem}}.match-head{flex-wrap:wrap-reverse;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:1rem;display:flex}.match-head h2{margin-bottom:.25rem}.match-fields{flex:18rem;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.5rem;max-width:520px;display:grid}.title-input{grid-column:1/-1;font-weight:600;font-size:1.2rem!important}.grid-table .col-name{white-space:normal;min-width:7.5rem;max-width:14rem;box-shadow:1px 0 0 var(--border);left:0}.grid-table th.col-period,.grid-table td.col-period{width:calc(var(--cell) + 6px);padding:3px}.grid-table .col-total{font-weight:700}.grid-table .limit-end{border-left:2px dashed #d6d3d1}.grid-table .col-warning{text-align:left;min-width:11rem}.player-number{min-width:1.6rem;color:var(--muted);font-variant-numeric:tabular-nums;font-size:.85rem;display:inline-block}.cell{width:var(--cell);height:var(--cell);border:1px solid var(--border);background:var(--surface);-webkit-tap-highlight-color:transparent;touch-action:manipulation;border-radius:8px;justify-content:center;align-items:center;padding:0;font-size:1rem;font-weight:700;display:inline-flex}button.cell{cursor:pointer}button.cell:active{transform:scale(.94)}.cell.whole{background:var(--accent);border-color:var(--accent);color:#fff}.cell.half,.mini-cell.half{background:var(--accent-soft);border:2px solid var(--accent);color:var(--accent-strong)}tr.benched td{color:var(--muted)}.warning-inline{font-size:.75rem;line-height:1.2}@media (width<=720px){.warning-inline.only-narrow{display:block}}.warning-low,.warning-high{color:var(--bad);font-weight:600}.warning-bench{color:var(--muted)}.on-court-row th,.on-court-row td{border-top:2px solid var(--border);background:#fafaf9;border-bottom:0;font-weight:700}.on-court-row td.good{background:var(--good-soft);color:var(--good)}.on-court-row td.bad{background:var(--bad-soft);color:var(--bad)}.hint{margin:.5rem 0 1rem}.goals{gap:.5rem;display:grid}.goals label{grid-template-columns:6rem 1fr;align-items:start;gap:.5rem;display:grid}.goals label>span{color:var(--text);padding-top:.55rem;font-weight:600}@media (width<=480px){.goals label{grid-template-columns:1fr;gap:.2rem}.goals label>span{padding-top:0}}.autotextarea{min-height:40px;overflow:hidden}.note-row{color:var(--text);grid-template-columns:8rem 1fr;align-items:start;gap:.5rem;margin:0 0 .5rem;font-size:.95rem;display:grid}.note-row>span:first-child{padding-top:.55rem}.note-text{white-space:pre-wrap;margin:.25rem 0 0}@media (width<=480px){:root{--cell:34px}.page{padding-left:.6rem;padding-right:.6rem}.grid-table .col-name{min-width:0;max-width:6.5rem;padding-left:.4rem;padding-right:.3rem;font-size:.85rem}.grid-table th.col-period,.grid-table td.col-period{padding:2px 1px}.grid-table .col-total{padding-left:.3rem;padding-right:.4rem}.grid-table .player-number{min-width:1.3rem;font-size:.75rem}.note-row{grid-template-columns:1fr;gap:.2rem}.note-row>span:first-child{padding-top:0}}.player-form{grid-template-columns:4.5rem 1fr 1fr auto;align-items:center;gap:.5rem;display:grid}.player-form .button+.button{margin-left:0}@media (width<=600px){.player-form{grid-template-columns:4.5rem 1fr}.player-form input:nth-of-type(3),.player-form .button{grid-column:1/-1}}.players-table{border:1px solid var(--border);border-radius:var(--radius)}.players-table td,.players-table th{text-align:left}.players-table .col-number{text-align:center;width:3rem}.players-table .col-actions{text-align:right}.tiles{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.5rem;margin-bottom:1rem;display:grid}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;padding:.75rem;display:flex}.tile-value{font-variant-numeric:tabular-nums;font-size:1.4rem;font-weight:700}.tile-label{color:var(--muted);font-size:.8rem}.tile.negative .tile-value{color:var(--bad)}.tile.positive .tile-value{color:var(--good)}.player-matches{margin:0;padding:0;list-style:none}.player-matches .card{margin-bottom:.5rem;padding:.75rem 1rem}.player-match-head{color:inherit;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.mini-periods{align-items:center;gap:3px;display:flex}.mini-cell{border:1px solid var(--border);border-radius:5px;justify-content:center;align-items:center;width:22px;height:22px;font-size:.7rem;font-weight:700;display:inline-flex}.mini-cell.whole{background:var(--accent);border-color:var(--accent);color:#fff}.mini-total{text-align:right;min-width:1.5rem;margin-left:.4rem}.toasts{left:50%;bottom:max(1rem, env(safe-area-inset-bottom));z-index:50;flex-direction:column;gap:.5rem;width:min(92vw,420px);display:flex;position:fixed;transform:translate(-50%)}.toast{background:var(--text);color:#fff;border-radius:8px;padding:.7rem 1rem;box-shadow:0 6px 20px #00000026}.toast.error{background:var(--bad)}.save-state{right:1rem;bottom:max(1rem, env(safe-area-inset-bottom));z-index:40;background:var(--text);color:#fff;border-radius:999px;padding:.35rem .8rem;font-size:.8rem;position:fixed}.save-state.offline{background:var(--bad)}
