@import url('/type.css');
:root{--green:#185b40;--green-dark:#124732;--green-light:#edf5ef;--lime:#d9edb5;--bg:#f6f8fa;--ink:#202a2a;--muted:#89908e;--line:#e8eeea;--red:#d65a54;--shadow:0 3px 16px #193b2310;--radius:14px;font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:var(--ink);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible{outline:3px solid #93bc74;outline-offset:3px}button{border:0}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}svg{flex-shrink:0}.icon{vertical-align:middle}small{font-size:12px}.muted{color:var(--muted)}.mono{font-variant-numeric:tabular-nums}.hidden{display:none!important}.loading-screen{height:100vh;display:grid;place-items:center;color:var(--green);font-size:20px}.shell{display:flex;min-height:100vh}.sidebar{width:236px;background:#fff;border-right:1px solid var(--line);padding:31px 20px 20px;position:fixed;inset:0 auto 0 0;z-index:20;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;padding:0 14px}.brand img{width:43px;height:43px}.brand-title{font-size:27px;font-weight:750;letter-spacing:3px;line-height:1.1}.brand-sub{font-size:9px;letter-spacing:1.9px;color:#8c9690;margin-top:5px}.workspace{margin:34px 3px 25px;padding:13px 12px;background:#f6f8f6;border:1px solid #ecf0eb;border-radius:10px;display:flex;align-items:center;gap:10px}.workspace-badge{width:31px;height:31px;display:grid;place-items:center;background:#e6eee3;border-radius:8px;color:var(--green)}.workspace strong{display:block;font-size:12px;font-weight:600}.workspace small{font-size:10px;color:#98a095}.nav-label{font-size:10px;color:#9baba0;letter-spacing:1.5px;margin:0 16px 11px}.nav{display:grid;gap:7px}.nav-item{background:none;width:100%;display:flex;gap:13px;align-items:center;text-align:left;padding:12px 17px;color:#687570;border-radius:9px;font-size:13px}.nav-item.active{background:var(--green);color:white;font-weight:600;box-shadow:0 5px 12px #185b4020}.nav-item:not(.active):hover{background:#f2f6f1;color:var(--green)}.nav-item .nav-count{margin-left:auto;font-size:10px;background:#ffffff22;padding:1px 6px;border-radius:4px}.sidebar-bottom{margin-top:auto;padding-top:50px}.local-card{border:1px solid #e5ecdf;border-radius:12px;padding:14px;background:linear-gradient(130deg,#f6f8f1,#fff)}.local-card strong{font-size:12px;color:#4b654a;display:flex;align-items:center;gap:7px}.local-card p{font-size:11px;color:#8b9787;line-height:1.9;margin-top:7px}.side-footer{margin:18px 9px 0;color:#8e9892;display:flex;align-items:center;justify-content:space-between;font-size:11px}.side-footer button{background:none;color:#809083;padding:4px}.main{margin-left:236px;min-width:0;flex:1}.topbar{height:77px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px;background:#ffffffd9;gap:20px}.breadcrumb{display:flex;gap:12px;align-items:center;font-size:12px;color:#9ca49f;white-space:nowrap}.breadcrumb span:last-child{color:#344a3e}.top-actions{display:flex;align-items:center;gap:21px}.search-wrap{display:flex;align-items:center;gap:9px;color:#a0aaa2}.search-wrap input{border:0;background:none;outline:0;width:154px;font-size:12px;color:#456051}.search-wrap kbd{font-size:10px;border:1px solid #e8ede9;border-radius:4px;padding:1px 5px;white-space:nowrap}.divider{height:23px;width:1px;background:var(--line)}.connection{font-size:11px;color:#6f8576;white-space:nowrap;display:flex;align-items:center;gap:6px}.dot{width:6px;height:6px;background:#4d9b65;display:inline-block;border-radius:50%}.connection.offline{color:#d18a48}.connection.offline .dot{background:#d18a48}.profile{width:32px;height:32px;border-radius:50%;background:#e7eee5;display:grid;place-items:center;color:#577b59;font-size:12px}.content{padding:31px 38px 20px;max-width:1700px;margin:0 auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:25px}.eyebrow{font-size:10px;letter-spacing:2px;color:#91a18f;margin-bottom:6px}.page-heading h1{font-size:26px;font-weight:650;letter-spacing:.5px}.page-heading p{font-size:12px;color:#8a9690;margin-top:7px}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #dee6df;background:white;color:#596a5d;border-radius:7px;padding:10px 14px;font-size:12px;font-weight:500;min-height:37px;white-space:nowrap;transition:.15s}.btn:hover{border-color:#a5b9a6;background:#f8faf6}.btn.primary{background:var(--green);border-color:var(--green);color:#fff}.btn.primary:hover{background:var(--green-dark)}.btn.danger{color:#c6524b;border-color:#efd8d6}.btn.small{padding:6px 10px;font-size:11px;min-height:29px}.btn.ghost{border-color:transparent;background:none;color:#758a76}.btn .icon{width:16px;height:16px}.text-btn{background:none;color:var(--green);font-size:12px;display:inline-flex;align-items:center;gap:5px;padding:4px 0}.text-btn .icon{width:14px;height:14px}.tournament-banner{border:1px solid #dfe9dc;border-radius:14px;min-height:135px;background:linear-gradient(100deg,#f2f7ed 0%,#f4f8ef 62%,#eaf3df 100%);padding:23px 28px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;margin-bottom:23px}.banner-main{position:relative;z-index:1}.banner-label{font-size:9px;letter-spacing:1.8px;color:#8b9c7e;margin-bottom:8px}.banner-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.banner-title h2{font-size:20px;font-weight:650;letter-spacing:.6px}.demo-label{font-size:10px;background:#ffffffa3;border:1px solid #d7e3ce;padding:2px 7px;border-radius:4px;color:#7d9270}.banner-info{display:flex;align-items:center;gap:19px;color:#829176;font-size:11px;margin-top:13px;flex-wrap:wrap}.banner-info span{display:inline-flex;align-items:center;gap:5px}.banner-info .icon{width:13px;height:13px}.banner-art{position:absolute;right:10px;top:-11px;opacity:.42;transform:rotate(-12deg)}.banner-control{position:relative;z-index:2;max-width:180px}.banner-control select{border:1px solid #d7e1cc;border-radius:7px;background:#ffffffb0;padding:9px 25px 9px 10px;color:#617252;max-width:180px;font-size:11px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:25px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:11px;padding:18px 20px;display:flex;gap:15px;justify-content:space-between;min-height:117px}.stat-label{font-size:11px;color:#7f8c83}.stat-value{font-size:29px;font-weight:650;line-height:1.3;letter-spacing:-.5px;margin-top:5px}.stat-value small{font-size:12px;letter-spacing:0;font-weight:400;color:#a0a9a2;margin-left:5px}.stat-note{font-size:10px;color:#9ea89f;margin-top:6px}.stat-note.green{color:#729374}.stat-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:#edf4e9;color:#648456}.stat-card:nth-child(2) .stat-icon{background:#fdf2e4;color:#c99c5b}.stat-card:nth-child(3) .stat-icon{background:#edf1fa;color:#7c92be}.stat-card:nth-child(4) .stat-icon{background:#f2eff8;color:#a08cb5}.dashboard-columns{display:grid;grid-template-columns:minmax(0,1fr) 278px;gap:22px;align-items:start}.card{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 22px 17px}.section-title{display:flex;align-items:center;gap:9px}.section-title h2{font-size:15px;font-weight:600;letter-spacing:.2px}.section-title .icon{width:17px;height:17px;color:#77917b}.section-title .count{font-size:10px;color:#98a197;border:1px solid #e9eee6;padding:1px 5px;border-radius:4px}.subtle-label{font-size:10px;color:#9aa69a}.live-label{display:flex;align-items:center;gap:5px;font-size:9px;letter-spacing:1px;color:#7c967a}.live-label i{width:5px;height:5px;background:#86ae68;border-radius:50%}.court-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:0 22px 22px}.court-card{border:1px solid #e1e9df;border-radius:9px;overflow:hidden;background:#fff}.court-card.live{border-color:#d2e1cb}.court-card-head{display:flex;align-items:center;justify-content:space-between;padding:11px 13px;background:#f9fbf7;border-bottom:1px solid #edf0e9}.court-name{font-size:11px;font-weight:600;display:flex;align-items:center;gap:7px}.court-name .icon{width:14px;height:14px;color:#7a9272}.status{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;border-radius:4px;padding:3px 7px;background:#f2f4f4;color:#8c9691;font-size:10px;font-weight:400}.status i{height:4px;width:4px;border-radius:50%;background:currentColor}.status.live{background:#eaf3e7;color:#68925b}.status.called{background:#fff3e1;color:#bd9454}.status.pending{background:#fff1e7;color:#c78e50}.status.paused{background:#fcf1dd;color:#b58d42}.status.finished,.status.walkover,.status.bye{background:#eef1f5;color:#8799af}.court-meta{padding:10px 13px 0;display:flex;justify-content:space-between;font-size:9px;color:#a3ada1}.score-row{display:grid;grid-template-columns:1fr 65px 1fr;align-items:center;padding:14px 13px 16px;gap:6px}.competitor{text-align:center;min-width:0}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#eaf0e4;color:#7a8f64;font-size:10px;margin:0 auto 7px}.avatar.blue{background:#edf1f8;color:#8c9dba}.competitor-name{font-size:11px;color:#4d5f4d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.competitor-club{font-size:9px;color:#a0aa9b;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.court-score{display:flex;align-items:center;justify-content:center;gap:8px;font-size:24px;line-height:1;font-weight:600;color:var(--green);font-variant-numeric:tabular-nums;white-space:nowrap}.court-score span{color:#b6c3ad;font-size:15px;font-weight:400}.court-score .game-caption{font-size:9px;display:block}.court-bottom{border-top:1px solid #f0f3ed;padding:8px 12px;display:flex;justify-content:space-between;font-size:9px;color:#9aa494;align-items:center}.court-bottom button{font-size:10px;color:#74936b;background:none;display:flex;align-items:center;gap:3px;padding:0}.court-bottom .icon{width:11px;height:11px}.court-idle{padding:17px 13px 21px;text-align:center;min-height:118px;display:grid;place-content:center;gap:5px;color:#a0ac98}.court-idle .idle-icon{color:#c6d3bb;margin:0 auto 3px;width:24px;height:24px}.court-idle strong{font-size:12px;color:#89967f;font-weight:400}.court-idle p{font-size:10px}.right-column{display:grid;gap:19px}.progress-body{padding:0 23px 23px;text-align:center}.progress-ring{width:134px;height:134px;margin:5px auto 14px;position:relative;display:grid;place-items:center}.progress-ring svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}.progress-number{font-size:28px;font-weight:600;color:#33553b;line-height:1.2}.progress-number small{font-size:13px;font-weight:400}.progress-number span{display:block;color:#9aaa99;font-size:10px;line-height:2;font-weight:400}.progress-legend{display:flex;justify-content:center;gap:18px;font-size:10px;color:#8d9c89}.progress-legend i{height:5px;width:5px;display:inline-block;background:#548157;border-radius:2px;margin-right:5px}.progress-legend span:last-child i{background:#eaf0e5}.progress-bottom{display:flex;justify-content:space-between;border-top:1px solid #eff2eb;padding-top:14px;margin-top:17px;font-size:10px;color:#95a08e}.quick-list{padding:0 19px 11px}.quick-item{display:flex;align-items:center;gap:10px;border-bottom:1px solid #f0f3ed;padding:11px 0;background:none;text-align:left;width:100%;color:#5f7458}.quick-item:last-child{border:0}.quick-item .quick-icon{width:31px;height:31px;border-radius:7px;background:#f3f6ee;display:grid;place-items:center;color:#7c9271}.quick-item .quick-icon svg{width:16px;height:16px}.quick-item strong{display:block;font-size:11px;font-weight:500}.quick-item small{display:block;font-size:9px;color:#a0aa99;margin-top:3px}.quick-item>.icon{width:13px;height:13px;color:#b6c1af;margin-left:auto}.schedule-preview{margin-top:22px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;text-align:left}th{font-size:10px;font-weight:400;color:#95a08f;background:#fafbf8;padding:11px 18px;border-block:1px solid #eef2ea}td{padding:13px 18px;border-bottom:1px solid #f0f3ed;font-size:11px;color:#6a7963}tr:last-child td{border-bottom:0}td strong{font-weight:500;color:#485d43}.matchup{display:flex;align-items:center;gap:9px;color:#4c6048;min-width:170px}.matchup span.vs{font-size:9px;color:#b5beae;margin:0 2px}.match-number{font-size:10px;color:#9baa92}.table-actions{display:flex;align-items:center;gap:7px}.footer{display:flex;justify-content:space-between;font-size:9px;color:#b0b9ae;padding-top:23px;gap:20px}.empty-state{text-align:center;padding:57px 24px;color:#9da995}.empty-state>.icon{width:39px;height:39px;color:#b7c9af;margin-bottom:12px}.empty-state h3{color:#6f8665;font-size:15px;font-weight:500}.empty-state p{margin:8px auto 18px;font-size:12px;max-width:440px;line-height:1.8}.notice{border:1px solid #e2e9da;border-radius:9px;background:#f6f9f1;color:#839575;font-size:11px;padding:11px 14px;display:flex;gap:9px;align-items:flex-start;margin-bottom:17px}.notice .icon{width:16px;height:16px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line);flex-wrap:wrap}.filter-group{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.filter-chip{background:transparent;color:#91a18b;border-radius:6px;padding:6px 11px;font-size:11px}.filter-chip.active{background:#edf3e7;color:#537646;font-weight:500}.toolbar input,.toolbar select{font-size:11px;padding:7px 10px;border:1px solid var(--line);border-radius:6px;background:#fff;color:#7f9175}.participants-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:18px}.participant-card{background:white;border:1px solid var(--line);border-radius:11px;padding:18px;position:relative}.participant-card .avatar{margin:0 0 12px;width:39px;height:39px;font-size:12px}.participant-card h3{font-size:13px;font-weight:500;color:#526b49}.participant-card p{color:#a0ab97;font-size:10px;margin-top:4px}.participant-card .seed-badge{position:absolute;right:13px;top:15px;font-size:9px;color:#b9985f;background:#fbf4e6;padding:2px 6px;border-radius:4px}.participant-card .delete-entry{position:absolute;right:13px;bottom:15px;background:none;color:#b8c0b3;padding:3px}.delete-entry .icon{width:13px;height:13px}.bracket{display:flex;gap:35px;padding:25px;overflow:auto;min-height:380px}.bracket-round{display:flex;flex-direction:column;min-width:225px;gap:14px;flex:1}.bracket-round h3{font-size:11px;color:#8d9c83;font-weight:500;letter-spacing:.8px}.bracket-games{display:flex;flex-direction:column;justify-content:space-around;gap:18px;flex:1}.bracket-match{border:1px solid #e1e9db;border-radius:8px;overflow:hidden;position:relative}.bracket-match header{padding:6px 10px;background:#f8faf4;color:#98a58f;font-size:9px;display:flex;justify-content:space-between}.bracket-match .bracket-player{display:flex;justify-content:space-between;padding:9px 11px;font-size:11px;color:#8a9a7f}.bracket-player+ .bracket-player{border-top:1px solid #f0f3eb}.bracket-player.winner{color:#44713b;background:#f3f7ed}.round-section{margin-bottom:20px}.round-title{font-size:13px;font-weight:500;color:#6c805e;padding:16px 21px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.round-title span{font-size:10px;color:#a0ad95}.full-courts{grid-template-columns:repeat(3,minmax(0,1fr));padding:0}.live-detail{padding:0 21px 20px;display:grid;grid-template-columns:1fr 1fr;gap:13px}.live-detail button{padding:12px}.rank-medal{width:23px;height:23px;display:grid;place-items:center;border-radius:50%;background:#f1f4ed;color:#99a68e;font-size:11px}.rank-medal.first{background:#f6edcf;color:#b79448}.rank-medal.second{background:#edf0f2;color:#90a0ae}.rank-medal.third{background:#f6e9df;color:#b7977a}.modal-backdrop{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#16291e55;backdrop-filter:blur(3px);padding:22px}.modal{width:min(620px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:17px;box-shadow:0 20px 100px #0b201d35}.modal.wide{width:min(780px,100%)}.modal-header{padding:24px 27px 17px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #edf1e8}.modal-header h2{font-size:18px;font-weight:600;color:#3c5c36}.modal-header .close-modal{background:none;color:#99aa91;padding:3px}.modal-body{padding:22px 27px 26px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:flex;flex-direction:column;gap:7px;font-size:11px;color:#708663}.field.full{grid-column:1/-1}.field input,.field select,.field textarea{width:100%;border:1px solid #dfe7d8;border-radius:7px;padding:10px 11px;color:#3e5a35;background:#fff;outline:0;font-size:12px;min-width:0}.field textarea{resize:vertical;line-height:1.9}.field input:focus,.field select:focus,.field textarea:focus{border-color:#8da57a;box-shadow:0 0 0 3px #edf3e8}.field small{font-size:10px;color:#a0af96}.form-section{font-size:11px;color:#91a280;border-top:1px solid #edf2e7;padding-top:15px;grid-column:1/-1;margin-top:2px}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.form-error{font-size:11px;color:#c86155;background:#fef4f1;padding:10px 12px;margin-top:15px;border-radius:6px}.link-box{padding:13px 14px;border:1px solid #e2e9db;background:#f6f9f1;border-radius:8px;overflow-wrap:anywhere;font-size:12px;color:#597747;line-height:1.8;margin:12px 0}.token-box{font-family:Consolas,monospace;font-size:13px;letter-spacing:.5px;user-select:all}.help-text{font-size:11px;line-height:1.9;color:#91a17e}.score-editor{display:grid;grid-template-columns:1fr 55px 1fr;gap:12px;align-items:center;text-align:center;padding:20px 0}.score-editor .name{font-size:14px;color:#5c7650}.score-editor .big-score{font-size:64px;color:var(--green);line-height:1.4;font-weight:600;font-variant-numeric:tabular-nums}.score-editor .point-btn{border-radius:8px;background:var(--green);color:#fff;padding:14px;font-size:17px;width:100%}.score-editor .colon{font-size:30px;color:#bfccb4}.game-history{display:flex;justify-content:center;gap:10px;margin:9px 0 18px;font-size:11px;color:#99aa8a}.game-history span{padding:5px 12px;background:#f3f6ed;border-radius:5px}.score-tools{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:13px}.history-list{display:grid;gap:8px}.history-item{display:flex;justify-content:space-between;padding:10px 12px;background:#f8faf5;border-radius:6px;font-size:11px;color:#819373;gap:10px}.history-item.undone{opacity:.45;text-decoration:line-through}.toast{position:fixed;left:50%;bottom:32px;transform:translateX(-50%);background:#234b32;color:#fff;padding:13px 22px;border-radius:10px;box-shadow:var(--shadow);z-index:200;font-size:12px;max-width:90vw;animation:toast-in .2s}.toast.error{background:#a34d43}.copy-fallback{position:fixed;left:-9999px}.login-page{max-width:440px;margin:10vh auto;padding:32px;background:white;border:1px solid var(--line);border-radius:18px}.login-page .brand{padding:0;margin-bottom:25px}.login-page h1{font-size:22px;margin-bottom:8px}.login-page p{color:#9ba78f;font-size:12px;margin-bottom:24px}.login-page form{display:grid;gap:15px}.login-page .btn{width:100%}.mobile-nav-toggle{display:none}
@keyframes toast-in{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}
@media(min-width:1550px){.content{padding-top:36px}.court-grid{gap:18px}.court-card .score-row{padding-block:20px}.court-score{font-size:29px}.dashboard-columns{grid-template-columns:minmax(0,1fr) 310px}.stat-card{padding:20px 23px}.court-meta{font-size:10px}.court-bottom{font-size:10px}}
@media(max-width:1200px){.sidebar{width:205px;padding-inline:14px}.main{margin-left:205px}.topbar{padding-inline:25px}.content{padding:27px 25px}.dashboard-columns{grid-template-columns:minmax(0,1fr) 240px;gap:16px}.court-grid{padding-inline:15px;gap:10px}.section-head{padding-inline:17px}.stat-grid{gap:12px}.stat-card{padding:16px 14px}.stat-icon{width:29px;height:29px}.participants-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.full-courts{grid-template-columns:repeat(2,minmax(0,1fr))}.search-wrap{display:none}.banner-control{max-width:140px}.banner-control select{max-width:140px}.score-row{grid-template-columns:1fr 54px 1fr;padding-inline:7px}.court-score{font-size:21px;gap:5px}}
@media(max-width:1000px){.dashboard-columns{grid-template-columns:1fr}.right-column{grid-template-columns:1fr 1fr}.progress-body{padding-bottom:15px}.progress-ring{width:115px;height:115px}.progress-bottom{margin-top:12px}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.stat-icon{display:none}.court-score{font-size:27px}.court-grid{gap:16px;padding:0 20px 20px}.court-card .score-row{padding-block:20px}.banner-title h2{font-size:18px}.banner-control{display:none}.top-actions{gap:12px}}
@media(max-width:760px){.sidebar{width:70px;padding:22px 9px}.brand{padding:0;justify-content:center}.brand img{width:36px;height:36px}.sidebar .brand-text,.workspace,.nav-label,.sidebar-bottom,.nav-item span,.nav-count{display:none!important}.nav{margin-top:35px;gap:13px}.nav-item{padding:12px;justify-content:center}.main{margin-left:70px}.topbar{height:65px;padding:0 18px}.breadcrumb{font-size:11px;gap:7px}.top-actions .divider,.top-actions .connection{display:none}.content{padding:23px 18px}.page-heading{align-items:flex-start;margin-bottom:20px}.page-heading h1{font-size:23px}.page-heading p{font-size:10px;max-width:230px}.page-heading .actions{justify-content:flex-end;gap:6px}.page-heading .btn{padding:8px 10px;font-size:11px}.page-heading .secondary-action{display:none}.eyebrow{font-size:8px}.tournament-banner{padding:21px;min-height:140px}.banner-title h2{font-size:17px}.banner-info{gap:11px;font-size:10px}.banner-art{right:-60px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:20px}.stat-card{min-height:105px}.stat-value{font-size:26px}.stat-icon{display:grid}.court-grid{grid-template-columns:1fr 1fr;padding:0 13px 15px;gap:10px}.score-row{grid-template-columns:1fr 51px 1fr;gap:0}.court-score{font-size:22px}.court-card-head{padding:10px}.court-meta{padding-inline:9px}.competitor-name{font-size:10px}.competitor-club{font-size:8px}.court-bottom{padding-inline:9px}.right-column{gap:12px}.quick-list{padding-inline:13px}.quick-item{gap:7px}.quick-item strong{font-size:10px}.quick-item small{font-size:8px}.progress-body{padding-inline:13px}.progress-legend{gap:9px;font-size:9px}.section-title h2{font-size:13px}.participants-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer{font-size:8px}.footer span:last-child{display:none}.full-courts{grid-template-columns:repeat(2,minmax(0,1fr))}.modal-body{padding:20px}.modal-header{padding:20px}.form-grid{gap:13px}.toolbar{padding:12px}.subtle-label{display:none}.banner-label{font-size:8px}}
@media(max-width:480px){.content{padding:20px 13px}.page-heading h1{font-size:21px}.page-heading p{max-width:180px;font-size:9px}.page-heading .btn{padding:8px;font-size:10px}.page-heading .btn .icon{width:13px;height:13px}.banner-info{gap:7px}.banner-info span:nth-child(2){display:none}.banner-title{gap:7px}.banner-title h2{font-size:16px}.tournament-banner{padding:17px}.court-grid{grid-template-columns:1fr;gap:12px}.right-column{grid-template-columns:1fr}.court-score{font-size:30px}.competitor-name{font-size:12px}.competitor-club{font-size:10px}.court-meta{font-size:10px}.court-bottom{font-size:10px}.participants-grid{grid-template-columns:1fr}.full-courts{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.field.full,.form-section{grid-column:1}.modal-backdrop{padding:12px}.score-editor{grid-template-columns:1fr 27px 1fr;gap:7px}.score-editor .big-score{font-size:49px}.progress-ring{width:125px;height:125px}.page-heading .actions{max-width:130px}.stat-card{padding:14px 12px}.stat-label{font-size:10px}.stat-icon{width:25px;height:25px}.stat-icon svg{width:15px;height:15px}}
.court-access-list{display:grid;gap:8px;margin:16px 0}
.court-access-row{display:grid;grid-template-columns:90px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 13px;border:1px solid #e1e9df;border-radius:8px;background:#fafcf9}
.court-access-row strong{color:#365d42;font-size:12px}
.court-access-row .mono{font-family:Consolas,monospace;font-size:12px;overflow-wrap:anywhere;color:#546958}
@media(max-width:520px){.court-access-row{grid-template-columns:1fr auto}.court-access-row .mono{grid-column:1/-1;grid-row:2}}
.content-compact{padding-top:24px}
.topbar-tournament{min-width:0;margin-right:auto}
.topbar-tournament select{width:clamp(140px,20vw,260px);max-width:100%;border:1px solid #e0e9de;border-radius:8px;background:#f7faf6;color:#46644f;padding:8px 10px;font-size:12px;font-weight:600;text-overflow:ellipsis;cursor:pointer}
.topbar-tournament select:focus-visible{outline:2px solid #93bc74;outline-offset:2px}
@media(max-width:760px){.content-compact{padding-top:18px}.topbar-tournament select{width:150px}.topbar:has(.topbar-tournament) .top-actions .search-wrap{display:none}}
@media(min-width:761px){.sidebar{width:190px;padding:25px 13px 18px}.main{margin-left:190px}.sidebar .brand{padding:0 8px;gap:9px}.sidebar .brand img{width:39px;height:39px}.sidebar .brand-title{font-size:24px}.sidebar .brand-sub{font-size:8px;letter-spacing:1.55px}.sidebar .workspace{margin:27px 2px 21px;padding:11px 9px;gap:8px}.sidebar .workspace strong{font-size:11px}.sidebar .workspace small{font-size:8px}.sidebar .nav-item{padding:10px 12px;gap:10px;font-size:12px}.sidebar .nav-label{margin-inline:12px}.sidebar .local-card{padding:11px}.sidebar .local-card p{font-size:9px}.sidebar .side-footer{margin-inline:4px;font-size:9px}.content-compact{max-width:none;padding-inline:24px}.content-compact .planning-hero,.content-compact .control-hero{max-width:none}}
@media(max-width:480px){.topbar:has(.topbar-tournament){gap:8px}.topbar:has(.topbar-tournament) .breadcrumb span:first-child,.topbar:has(.topbar-tournament) .breadcrumb .icon{display:none}.topbar-tournament select{width:120px}}
.brand img{border-radius:10px}
.individual-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px;padding:7px;background:#edf4ef;border:1px solid #d8e7dd;border-radius:16px}
.individual-tabs button{display:flex;align-items:center;justify-content:center;gap:8px;min-width:100px;padding:10px 17px;border:0;border-radius:11px;background:transparent;color:#426252;font:inherit;font-weight:700;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}
.individual-tabs button:hover{background:#fff;color:#12543a}
.individual-tabs button.active{background:#176044;color:#fff;box-shadow:0 4px 12px #174f3926}
.individual-tabs small{font-size:12px;opacity:.72}
.sidebar{transition:transform .2s ease}.main{transition:margin-left .2s ease}.sidebar-toggle{position:absolute;right:-12px;top:50%;transform:translateY(-50%);z-index:30;width:24px;height:38px;display:grid;place-items:center;border:1px solid #d7e5dc;border-radius:12px;background:#fff;color:#356b50;box-shadow:0 2px 8px #183d2414;padding:0}.sidebar-toggle span{font-size:23px;font-weight:500;line-height:1}.sidebar-toggle:hover{background:#eaf5ee;border-color:#8db89d}.sidebar-toggle:focus-visible{outline:2px solid #74a989;outline-offset:2px}.sidebar-collapsed .sidebar{transform:translateX(-100%)}.sidebar-collapsed .sidebar>:not(.sidebar-toggle){visibility:hidden}.sidebar-collapsed .sidebar-toggle{right:-24px;border-radius:0 11px 11px 0}.sidebar-collapsed .main{margin-left:0}.sidebar-collapsed .sidebar-toggle span{transform:none}
@media(prefers-reduced-motion:reduce){.sidebar,.main{transition:none}}
/* Tournament date, scoring and daily sessions share a compact two-column rhythm. */
.calendar-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;min-width:0}
.calendar-pair.full,.calendar-settings.full,.score-settings.full{grid-column:1/-1}
.calendar-settings,.score-settings{padding:18px;border:1px solid #dce8df;border-radius:14px;background:#f8fbf8;min-width:0}
.calendar-settings h3,.score-settings h3{margin:0 0 14px;color:#205c45;font-size:15px;font-weight:700}
.calendar-pair input,.calendar-pair select{min-width:0;width:100%;box-sizing:border-box}
.calendar-time-table{margin-top:16px;width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;border:1px solid #dce8df;border-radius:10px;overflow:hidden;background:#fff}
.calendar-time-table th,.calendar-time-table td{padding:10px 8px;text-align:center;border-bottom:1px solid #e4ece6;border-right:1px solid #e4ece6;font-size:13px}
.calendar-time-table thead th{background:#eaf3ed;color:#205c45;font-weight:700}
.calendar-time-table tbody th{color:#5d7165;font-weight:500;width:24%}
.calendar-time-table tr:last-child>*{border-bottom:0}.calendar-time-table tr>*:last-child{border-right:0}
.calendar-time-table input{width:100%;min-width:0;padding:8px 4px;text-align:center;box-sizing:border-box;border:1px solid #dce8df;border-radius:7px;background:#fff;color:#205c45;font:inherit}
.calendar-help{margin:12px 0 0;font-size:12px;color:#7b8d80;line-height:1.7}
@media(max-width:480px){.calendar-settings,.score-settings{padding:12px}.calendar-pair{gap:10px}.calendar-time-table th,.calendar-time-table td{padding:8px 3px}.calendar-time-table input{font-size:12px;padding:8px 0}.calendar-pair .field{font-size:12px}}
