:root{color:#25313b;background:#f7f5f0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.78}.app-shell{display:grid;grid-template-columns:320px minmax(0,1fr);min-height:100vh}.sidebar{display:flex;flex-direction:column;gap:20px;padding:24px;background:#fffdf8;color:#25313b;border-right:1px solid #eadfd7}.brand{display:flex;align-items:center;gap:12px}.school-logo{width:68px;height:auto;object-fit:contain}.brand h1,.brand p,.topbar h2,.topbar p,.section-title h3,.round-block h4{margin:0}.brand h1{font-size:22px}.brand p,.tournament-list span,.section-title span,.round-block header span,.player-row span,.match-players span{color:#687a80;font-size:13px}.sidebar .brand p,.sidebar .tournament-list span{color:#7b6f68}.create-panel,.login-panel,.form-grid{display:grid;gap:12px}label{display:grid;gap:6px;font-size:13px;font-weight:650}input,select{min-width:0;width:100%;border:1px solid #cad4d1;border-radius:6px;padding:10px 11px;background:#fffefa;color:#172126}input[type=date]{appearance:none;-webkit-appearance:none;display:block;max-width:100%}.sidebar input,.sidebar select{border-color:#ecd9ce;background:#fff;color:#25313b}.primary-button,.secondary-button,.danger-button,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;border:0;border-radius:6px;padding:9px 12px;font-weight:750;white-space:nowrap}.primary-button{background:#f47e59;color:#fff}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.secondary-button{border:1px solid #f2c7b5;background:#fff4ee;color:#7d321f}.danger-button{background:#b54747;color:#fff}.icon-button{position:relative;width:40px;padding:0;border:1px solid #cdd8d4;background:#fffefa;color:#1d2a2e}.icon-button[data-tooltip]:after{position:absolute;display:none;bottom:calc(100% + 8px);left:50%;z-index:20;max-width:min(220px,70vw);border-radius:6px;padding:6px 8px;background:#25313b;color:#fff;content:attr(data-tooltip);font-size:12px;font-weight:750;line-height:1.2;opacity:0;pointer-events:none;transform:translate(-50%) translateY(4px);transition:opacity .12s ease,transform .12s ease;white-space:nowrap}.icon-button[data-tooltip]:before{position:absolute;display:none;bottom:calc(100% + 3px);left:50%;z-index:20;width:8px;height:8px;background:#25313b;content:"";opacity:0;pointer-events:none;transform:translate(-50%) rotate(45deg);transition:opacity .12s ease}.icon-button[data-tooltip]:hover:after,.icon-button[data-tooltip]:focus-visible:after,.icon-button[data-tooltip]:hover:before,.icon-button[data-tooltip]:focus-visible:before{display:block;opacity:1;transform:translate(-50%) translateY(0)}.icon-button[data-tooltip]:hover:before,.icon-button[data-tooltip]:focus-visible:before{transform:translate(-50%) rotate(45deg)}.icon-button.filled,.secondary-button.filled{border-color:#168a9f;background:#168a9f;color:#fffefa}.danger-icon{border-color:#ecc0b9;color:#9b3129}.tournament-list{display:grid;gap:8px;overflow:auto}.instruction-nav{display:inline-flex;align-items:center;gap:8px;width:100%;border:1px solid #eadfd7;border-radius:8px;padding:11px 12px;background:#fff;color:#25313b;font-weight:800}.instruction-nav.active{border-color:#168a9f;background:#eef8fa;color:#126b7d}.management-menu{display:grid;gap:10px}.management-menu summary{display:inline-flex;align-items:center;gap:8px;width:100%;border:1px solid #eadfd7;border-radius:8px;padding:11px 12px;background:#fff;color:#25313b;cursor:pointer;font-weight:850;list-style:none}.management-menu summary::-webkit-details-marker{display:none}.management-menu[open] summary{border-color:#f2c7b5;background:#fff4ee;color:#7d321f}.management-menu-content{display:grid;gap:10px;padding-top:10px}.management-school-year{grid-template-columns:1fr}.tournament-list button{display:grid;gap:4px;border:1px solid #eadfd7;border-radius:8px;padding:12px;text-align:left;background:#fff;color:#25313b}.tournament-list button.active{border-color:#f47e59;background:#fff4ee}.version-panel{display:grid;gap:4px;margin-top:auto;border-top:1px solid #eadfd7;padding-top:12px;color:#7b6f68;font-size:12px}.workspace{min-width:0;padding:24px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.topbar h2{font-size:28px}.eyebrow{color:#168a9f;font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}.topbar-actions{display:flex;align-items:center;gap:8px}.topbar-select{display:flex;grid-template-columns:none;align-items:center;gap:8px;color:#52666b;font-size:12px;font-weight:850;white-space:nowrap}.topbar-select select{width:auto;min-width:130px;padding:8px 10px}.school-year-create{display:grid;grid-template-columns:minmax(120px,150px) auto;gap:8px;align-items:center}.school-year-create input{padding:8px 10px}.dashboard-page{display:grid;gap:16px}.dashboard-band{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid #eadfd7;border-radius:8px;padding:18px;background:#fffdf8}.dashboard-band h3{margin:2px 0 0;font-size:24px}.dashboard-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.lesson-board{display:grid;gap:12px}.lesson-title{align-items:flex-end}.scoreboard-tabs{display:none}.lesson-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);gap:16px;align-items:start}.dashboard-score-panel,.dashboard-leaderboard-panel{min-width:0}.crosstable-wrap{max-width:100%;overflow:auto;border:1px solid #e1e7e3;border-radius:8px;background:#fffefa}.crosstable{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-size:13px}.crosstable th,.crosstable td{min-width:44px;border-bottom:1px solid #edf0ed;border-left:1px solid #edf0ed;padding:8px 9px;text-align:center;white-space:nowrap}.crosstable thead th{position:sticky;top:0;z-index:2;background:#f7fbfb;color:#52666b;font-size:11px;font-weight:850;text-transform:uppercase}.crosstable th:first-child{position:sticky;left:0;z-index:3;min-width:150px;border-left:0;background:#fffefa;text-align:left}.crosstable thead th:first-child{z-index:4;background:#f7fbfb}.crosstable tbody th{display:flex;align-items:center;gap:8px}.crosstable tbody th span{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:999px;background:#eef8fa;color:#126b7d;font-size:11px;font-weight:850}.crosstable tbody th strong{overflow:hidden;text-overflow:ellipsis}.self-cell{background:#f5f2eb;color:#9a8f86}.points-cell{background:#fff4ee;color:#7d321f;font-weight:850}.open-tournament-button{justify-self:start}.compact-search{padding:9px 10px}.dashboard-leaderboard-list{display:grid;gap:8px}.dashboard-child-row{width:100%;border:1px solid #e1e7e3;border-radius:8px;background:#fbfaf5;text-align:left}.dashboard-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.dashboard-list{display:grid;gap:8px}.dashboard-list-row{display:grid;gap:4px;border:1px solid #e1e7e3;border-radius:8px;padding:10px;background:#fbfaf5;color:#25313b;text-align:left}.dashboard-list-row:hover,.dashboard-list-row:focus-visible{border-color:#168a9f;background:#eef8fa}.dashboard-list-row span{color:#52666b;font-size:13px}.workspace-grid{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(360px,1.3fr);gap:16px;align-items:start}.tournament-workspace{display:grid;gap:16px;align-items:start;width:100%}.workspace-tabs{display:flex;gap:6px;overflow-x:auto;border-bottom:1px solid #eadfd7;margin-top:4px}.workspace-tabs button{border:0;border-bottom:3px solid transparent;padding:12px 14px;background:transparent;color:#52666b;font-weight:850;white-space:nowrap}.workspace-tabs button.active{border-color:#f47e59;color:#7d321f}.tournament-workspace>.panel{grid-column:1;width:100%}.panel{display:grid;gap:14px;border:1px solid #eadfd7;border-radius:8px;padding:16px;background:#fff;box-shadow:0 14px 36px #4f362414}.standings-panel{grid-column:2}.rounds-panel{grid-column:1 / -1}.overview-panel{align-self:stretch}.summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.summary-tile{display:grid;gap:6px;min-height:86px;border:1px solid #e1e7e3;border-radius:8px;padding:12px;background:#fbfaf5}.summary-tile span{color:#687a80;font-size:12px;font-weight:800;text-transform:uppercase}.summary-tile strong{align-self:end;color:#25313b;font-size:22px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-title h3{font-size:18px}.compact-title h3{font-size:15px}.inline-form,.round-generate,.catch-up-form,.match-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.7fr) auto;gap:8px;align-items:center}.round-generate{grid-template-columns:minmax(120px,160px) auto}.inline-form{grid-template-columns:auto minmax(180px,1fr) minmax(120px,.55fr) 40px}.catch-up-form{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;border:1px solid #f1ded2;border-radius:8px;padding:12px;background:#fff8f3}.player-list{display:grid;gap:8px}.player-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #e2e6e2;border-radius:8px;padding:10px;background:#fbfaf5}.player-row.inactive{opacity:.66}.player-row div{display:grid;gap:2px}.pagination-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #edf0ed;padding-top:12px;color:#52666b;font-size:13px}.pagination-controls>div{display:flex;align-items:center;gap:8px}.pagination-controls strong{min-width:52px;text-align:center}.toggle{display:flex;grid-template-columns:none;align-items:center;gap:8px;white-space:nowrap}.toggle input{width:auto}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table th,.data-table td{border-bottom:1px solid #e3e8e4;padding:9px 6px;text-align:left}.data-table th{color:#52666b;font-size:12px;text-transform:uppercase}.standings-panel{overflow-x:auto}.makeup-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;border-left:4px solid #168a9f;padding:10px 12px;background:#eef8fa}.catch-up-overview{display:grid;gap:10px;border:1px solid #d6e4e6;border-radius:8px;padding:12px;background:#f7fbfb}.catch-up-list{display:grid;gap:8px}.catch-up-item{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1fr) auto;gap:10px;align-items:center;border:1px solid #dce9e9;border-radius:8px;padding:10px;background:#fff}.catch-up-item span:not(.status-pill){color:#52666b;font-size:13px}.rounds-workspace{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:14px;align-items:start}.round-index{display:grid;gap:8px;max-height:70vh;overflow:auto;padding-right:4px}.round-index button{display:grid;gap:4px;border:1px solid #eadfd7;border-radius:8px;padding:11px;background:#fff;color:#25313b;text-align:left}.round-index button.active{border-color:#f47e59;background:#fff4ee}.round-index span,.round-index small{color:#687a80;font-size:12px}.round-detail{min-width:0}.round-detail .match-row{grid-template-columns:1fr;align-items:stretch}.round-detail .match-actions{grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr))}.round-detail .match-actions input[type=date]{min-width:0}.round-detail .match-actions .secondary-button{width:100%}.makeup-strip span{color:#486267;font-size:13px}.stage-block,.round-block{display:grid;gap:10px}.stage-block{border-top:1px solid #dce4df;padding-top:14px}.stage-block>h4{margin:0;color:#7d321f}.round-block{border-top:1px solid #f0e5dc;padding-top:12px}.round-block header{display:flex;align-items:center;justify-content:space-between;gap:12px}.round-header-actions{display:flex;align-items:center;gap:8px}.match-list{display:grid;gap:8px}.pairing-log{border:1px solid #d6e4e6;border-radius:8px;background:#f7fbfb}.pairing-log summary{cursor:pointer;padding:10px 12px;color:#126b7d;font-weight:800}.pairing-log pre{overflow-x:auto;margin:0;border-top:1px solid #d6e4e6;padding:12px;color:#2d3e42;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:12px;line-height:1.55;white-space:pre-wrap}.match-row{display:grid;grid-template-columns:minmax(220px,1fr) auto auto minmax(320px,1.2fr);gap:10px;align-items:center;border:1px solid #e1e7e3;border-radius:8px;padding:10px;background:#fbfaf5}.match-row.status-postponed{border-color:#f7b24d;background:#fff7dd}.match-row.status-completed{border-color:#a4c7b4;background:#f0f7f1}.match-players{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.color-badge{display:inline-flex;align-items:center;min-height:22px;border-radius:999px;padding:3px 7px;font-size:11px;font-weight:850}.white-badge{border:1px solid #cfd8d4;background:#fff;color:#263238}.black-badge{background:#263238;color:#fff}.status-pill{display:inline-flex;justify-content:center;min-width:76px;border-radius:999px;padding:5px 9px;background:#e9eeeb;color:#2d3e42;font-size:12px;font-weight:800}.catch-up-pill{background:#e9f7fb;color:#126b7d}.match-actions{grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr))}.match-actions input[type=date]{min-width:0}.match-actions select,.match-actions button{min-width:0;width:100%}.login-screen{display:grid;min-height:100vh;place-items:center;padding:24px;background:linear-gradient(135deg,#f47e59e0,#168a9fc2),url(https://images.unsplash.com/photo-1529699211952-734e80c4d42b?auto=format&fit=crop&w=1600&q=80);background-position:center;background-size:cover}.login-panel{width:min(420px,100%);border-radius:8px;padding:24px;background:#fffefa;box-shadow:0 24px 80px #0000003d}.login-panel h1{margin:0 0 8px;font-size:30px}.login-logo{width:150px;height:auto;margin-bottom:12px}.login-button{position:relative;width:100%}.login-progress{position:relative;height:4px;overflow:hidden;border-radius:999px;background:#f6d7ca}.login-progress:after{position:absolute;width:42%;height:100%;border-radius:inherit;background:#168a9f;animation:login-progress 1.1s ease-in-out infinite;content:""}@keyframes login-progress{0%{transform:translate(-120%)}to{transform:translate(260%)}}.error{border:1px solid #e6b2a8;border-radius:8px;padding:10px 12px;background:#fff1ec;color:#8a2f24}.success{border:1px solid #9fc8aa;border-radius:8px;padding:10px 12px;background:#f0f7f1;color:#245b35}.compact-success{padding:8px 10px;font-size:13px}.empty-state{display:grid;min-height:360px;place-items:center;border:1px dashed #b9c8c4;border-radius:8px;color:#546a6f}.compact-empty{min-height:180px}.compact-error{padding:8px 10px;font-size:13px}.children-workspace{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(320px,.9fr);gap:16px;align-items:start}.child-create-form{display:grid;grid-template-columns:minmax(180px,1fr) minmax(120px,.7fr) minmax(100px,.45fr) auto;gap:10px;align-items:end}.search-field{max-width:520px}.import-children-panel{display:grid;gap:10px;border:1px solid #d6e4e6;border-radius:8px;padding:12px;background:#f7fbfb}.import-child-list{display:grid;gap:8px;max-height:260px;overflow:auto}.import-child-row{display:grid;grid-template-columns:minmax(220px,.9fr) minmax(180px,1fr);gap:8px;align-items:center;border:1px solid #dce9e9;border-radius:8px;padding:9px;background:#fff}.import-child-row .toggle span{display:grid;gap:2px;color:#52666b;font-size:12px}.import-child-row .toggle strong{color:#25313b;font-size:14px}.child-list,.leaderboard-list{display:grid;gap:8px}.child-row{display:grid;gap:9px;min-width:0;overflow:hidden;border:1px solid #e1e7e3;border-radius:8px;padding:10px;background:#fbfaf5}.child-row.inactive{opacity:.66}.child-row.selected{border-color:#168a9f;box-shadow:0 0 0 2px #168a9f1f}.child-main-fields{display:grid;grid-template-columns:minmax(150px,1fr) minmax(110px,.6fr) minmax(90px,.4fr) auto 40px;gap:8px;align-items:center}.child-progress{display:flex;gap:10px;justify-content:space-between;color:#52666b;font-size:13px}.child-profile-button{border:0;border-radius:6px;padding:6px 8px;background:transparent;text-align:left}.child-profile-button:hover,.child-profile-button:focus-visible{background:#eef8fa;color:#126b7d}.exam-form{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(135px,.5fr) minmax(180px,1fr) 40px;gap:8px;align-items:center;min-width:0}.child-side-panel{align-content:start}.child-profile-panel{display:grid;gap:12px;border-bottom:1px solid #edf0ed;padding-bottom:14px}.child-profile-panel .section-title>div{display:grid;gap:2px}.child-profile-panel .section-title span:not(.rating-delta){color:#52666b;font-size:13px}.profile-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.profile-section,.profile-list,.profile-game-list{display:grid;gap:8px}.profile-list-row,.profile-game-row{display:grid;gap:3px;border:1px solid #e1e7e3;border-radius:8px;padding:9px;background:#fbfaf5}.profile-game-row{grid-template-columns:minmax(0,1fr) auto;align-items:center}.profile-game-row>div{display:grid;gap:2px}.profile-list-row span,.profile-game-row span,.profile-list-row small,.profile-game-row small{color:#52666b;font-size:12px}.profile-note{grid-column:1 / -1}.profile-empty{min-height:76px;font-size:13px}.rating-delta{display:inline-flex;align-items:center;justify-content:center;min-width:46px;border-radius:999px;padding:5px 9px;font-weight:850}.rating-delta.positive{background:#e8f5eb;color:#245b35}.rating-delta.negative{background:#fff1ec;color:#8a2f24}.rating-delta.small{min-width:38px;padding:4px 7px;font-size:12px}.leaderboard-row{display:grid;grid-template-columns:34px minmax(120px,1fr);gap:4px 8px;align-items:center;border:1px solid #e1e7e3;border-radius:8px;padding:10px;background:#fbfaf5}.leaderboard-row strong{grid-row:span 2;display:grid;width:28px;height:28px;place-items:center;border-radius:999px;background:#fff4ee;color:#7d321f}.leaderboard-row small{color:#52666b}.casual-game-form{display:grid;gap:10px;border-top:1px solid #edf0ed;padding-top:14px}.child-selector{display:grid;gap:10px;border:1px solid #d6e4e6;border-radius:8px;padding:12px;background:#f7fbfb}.child-pick-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;max-height:220px;overflow:auto}.child-pick{display:flex;align-items:center;gap:8px;border:1px solid #dce9e9;border-radius:8px;padding:9px;background:#fff;font-weight:500}.child-pick input{width:auto}.child-pick span{display:grid;gap:2px;color:#52666b;font-size:12px}.child-pick strong{color:#25313b;font-size:14px}.inline-form-label{color:#52666b;font-size:13px;font-weight:850}.users-panel{max-width:1180px}.user-create-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:10px;align-items:end}.user-list{display:grid;gap:8px}.user-row{display:grid;grid-template-columns:minmax(130px,.9fr) minmax(160px,1fr) minmax(150px,1fr) auto auto 40px 40px;gap:8px;align-items:center;border:1px solid #e1e7e3;border-radius:8px;padding:10px;background:#fbfaf5}.user-row.inactive{opacity:.66}.compact-toggle{font-weight:700}.instruction-page{display:grid;gap:18px}.instruction-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;border-radius:8px;padding:24px;background:linear-gradient(135deg,#fff4ee,#eef8fa);border:1px solid #eadfd7}.instruction-hero h3{margin:4px 0 10px;font-size:26px}.instruction-hero p{max-width:780px;margin:0;color:#5c5550;line-height:1.55}.instruction-hero img{width:130px;height:auto}.instruction-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.instruction-block{border:1px solid #eadfd7;border-radius:8px;padding:16px;background:#fff}.instruction-block h4{margin:0 0 10px;color:#7d321f;font-size:17px}.instruction-block ul{display:grid;gap:7px;margin:0;padding-left:18px;color:#4d5960;line-height:1.45}@media(max-width:1100px){.workspace-grid,.rounds-panel,.standings-panel,.lesson-grid,.rounds-workspace{grid-column:auto;grid-template-columns:1fr}.workspace-grid{display:grid}.match-row,.catch-up-item,.user-row,.user-create-form,.children-workspace,.dashboard-columns,.dashboard-summary,.child-create-form,.child-main-fields,.exam-form,.summary-grid{grid-template-columns:1fr}}@media(max-width:780px){.app-shell{grid-template-columns:1fr}.sidebar{min-height:auto}.workspace{padding:16px}.topbar{align-items:flex-start;flex-direction:column}.inline-form,.school-year-create,.round-generate,.catch-up-form,.match-actions,.user-create-form,.user-row,.children-workspace,.import-child-row,.child-create-form,.child-main-fields,.exam-form{grid-template-columns:1fr}.section-title>.round-generate{width:100%}.round-detail .match-actions{grid-template-columns:1fr}.round-detail .match-actions input[type=date],.match-actions input[type=date],.match-actions select{min-width:0}.match-actions .secondary-button{width:100%}.exam-form>input,.exam-form>button{width:100%;max-width:100%}.child-main-fields .icon-button,.icon-button{width:100%}.section-title{align-items:flex-start;flex-direction:column}.topbar-actions,.topbar-select,.dashboard-band{align-items:stretch;flex-direction:column;width:100%}.topbar-select select{width:100%}.pagination-controls{align-items:flex-start;flex-direction:column}.lesson-title{align-items:flex-start}.scoreboard-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.scoreboard-tabs button{border:1px solid #eadfd7;border-radius:8px;padding:10px 12px;background:#fff;color:#25313b;font-weight:850}.scoreboard-tabs button.active{border-color:#168a9f;background:#eef8fa;color:#126b7d}.dashboard-score-panel,.dashboard-leaderboard-panel{display:none}.dashboard-score-panel.active,.dashboard-leaderboard-panel.active{display:grid}.crosstable th:first-child{min-width:132px}.instruction-hero,.instruction-grid{grid-template-columns:1fr}.instruction-hero{align-items:flex-start;flex-direction:column}}
