:root{--garnet:#782f40;--garnet-dark:#5c2332;--garnet-light:#9a4d60;--garnet-subtle:#f5e8eb;--gold:#ceb888;--gold-dark:#b8a06e;--gold-light:#ded0aa;--gold-subtle:#faf6ee;--white:#fff;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--success:#16a34a;--success-subtle:#f0fdf4;--warning:#d97706;--warning-subtle:#fffbeb;--danger:#dc2626;--danger-subtle:#fef2f2;--info:#2563eb;--info-subtle:#eff6ff;--live:#dc2626;--font-display:"Anybody", sans-serif;--font-body:"DM Sans", sans-serif;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 24px #0000001f;--shadow-score:0 2px 8px #782f4026;--ease-out:cubic-bezier(.16, 1, .3, 1);--duration-fast:.12s;--duration-normal:.2s}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);color:var(--gray-800);background:var(--gray-50);-webkit-font-smoothing:antialiased;line-height:1.5}a{color:inherit;text-decoration:none}button{font-family:inherit}.page-container,.page-container-wide{max-width:420px;margin:0 auto;padding:0 16px}@media (width>=768px){.page-container{max-width:720px}.page-container-wide{max-width:960px}}@media (width>=1024px){.page-container{max-width:800px}.page-container-wide{max-width:1080px}}.responsive-grid{flex-direction:column;gap:12px;display:flex}@media (width>=768px){.responsive-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}}.page-title{font-family:var(--font-display);color:var(--garnet);margin-bottom:12px;font-size:20px;font-weight:700}.btn{font-family:var(--font-body);cursor:pointer;border-radius:var(--radius-md);min-height:44px;transition:all var(--duration-fast) var(--ease-out);border:none;justify-content:center;align-items:center;gap:6px;padding:12px 20px;font-size:14px;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.btn-primary{background:var(--garnet);color:var(--white)}.btn-primary:hover{background:var(--garnet-dark)}.btn-primary:active{transform:scale(.97)}.btn-secondary{background:var(--gold);color:var(--garnet-dark)}.btn-secondary:hover{background:var(--gold-dark)}.btn-outline{color:var(--garnet);border:1.5px solid var(--gray-200);background:0 0}.btn-outline:hover{border-color:var(--garnet);background:var(--garnet-subtle)}.btn-ghost{color:var(--garnet);background:0 0;padding:12px}.btn-ghost:hover{background:var(--garnet-subtle)}.btn-danger{background:var(--danger);color:var(--white)}.btn-danger:hover{background:#b91c1c}.btn-sm{border-radius:var(--radius-sm);min-height:32px;padding:8px 14px;font-size:12px}.btn-lg{border-radius:var(--radius-lg);min-height:52px;padding:16px 28px;font-size:16px}.btn-full{width:100%}.btn:disabled{opacity:.4;cursor:not-allowed}.input-group{margin-bottom:16px}.input-label{color:var(--gray-700);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.input{width:100%;font-family:var(--font-body);border:1.5px solid var(--gray-200);border-radius:var(--radius-md);background:var(--white);color:var(--gray-800);transition:border-color var(--duration-fast) var(--ease-out);outline:none;padding:12px 14px;font-size:15px}.input:focus{border-color:var(--garnet);box-shadow:0 0 0 3px var(--garnet-subtle)}.input::placeholder{color:var(--gray-400)}.input-error{border-color:var(--danger)}.input-error:focus{box-shadow:0 0 0 3px var(--danger-subtle)}.input-hint{color:var(--gray-400);margin-top:4px;font-size:12px}.input-error-msg{color:var(--danger);margin-top:4px;font-size:12px;font-weight:500}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%236B7280' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:40px}.card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:16px;position:relative}.card-elevated{box-shadow:var(--shadow-md);border-color:#0000}.card-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.card-title{font-family:var(--font-display);color:var(--gray-900);font-size:16px;font-weight:700}.badge{border-radius:var(--radius-full);letter-spacing:.02em;align-items:center;gap:4px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.badge-live{background:var(--danger-subtle);color:var(--danger)}.badge-live:before{content:"";background:var(--danger);border-radius:50%;width:6px;height:6px;animation:1.5s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}.badge-scheduled{background:var(--info-subtle);color:var(--info)}.badge-completed{background:var(--success-subtle);color:var(--success)}.badge-pool{background:var(--gold-subtle);color:var(--gold-dark);font-family:var(--font-display);font-weight:700}.badge-division{background:var(--garnet-subtle);color:var(--garnet);font-family:var(--font-display);font-weight:700}.pill-group{-webkit-overflow-scrolling:touch;gap:6px;padding:2px;display:flex;overflow-x:auto}.pill{border-radius:var(--radius-full);border:1.5px solid var(--gray-200);background:var(--white);color:var(--gray-600);cursor:pointer;transition:all var(--duration-fast);white-space:nowrap;font-size:13px;font-weight:600;font-family:var(--font-body);flex-shrink:0;padding:8px 16px}.pill:hover{border-color:var(--garnet-light)}.pill.active{background:var(--garnet);color:var(--white);border-color:var(--garnet)}.match-card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:14px 16px}.match-card+.match-card{margin-top:8px}.match-card-live{border-color:var(--danger);box-shadow:var(--shadow-score);border-width:1.5px}.match-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.match-meta{color:var(--gray-400);align-items:center;gap:6px;font-size:11px;font-weight:500;display:flex}.match-teams{flex-direction:column;gap:8px;display:flex}.match-team-row{border-radius:var(--radius-sm);background:var(--gray-50);justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.match-team-row.winner{background:var(--garnet-subtle)}.match-team-name{color:var(--gray-800);font-size:14px;font-weight:600}.match-team-row.winner .match-team-name{color:var(--garnet)}.match-score{font-family:var(--font-display);color:var(--gray-500);font-size:18px;font-weight:800}.match-team-row.winner .match-score{color:var(--garnet)}.match-sets{align-items:center;gap:6px;display:flex}.match-set-score{font-family:var(--font-display);color:var(--gray-400);background:var(--gray-100);border-radius:var(--radius-sm);padding:2px 8px;font-size:13px;font-weight:700}.match-set-score.won{color:var(--garnet);background:var(--garnet-subtle)}.match-footer{border-top:1px solid var(--gray-100);color:var(--gray-400);justify-content:space-between;align-items:center;margin-top:10px;padding-top:10px;font-size:11px;display:flex}.score-panel{border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);border:1px solid var(--gray-200);overflow:hidden}.score-panel-header{background:var(--garnet);color:var(--white);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.score-panel-header-title{font-family:var(--font-display);letter-spacing:.03em;font-size:13px;font-weight:700}.score-panel-set{color:var(--gold);font-size:12px;font-weight:600}.score-tap-zones{grid-template-columns:1fr 1fr;min-height:200px;display:grid}.score-tap-zone{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:background var(--duration-fast);border:none;flex-direction:column;justify-content:center;align-items:center;padding:24px 16px;font-family:inherit;display:flex;position:relative}.score-tap-zone:first-child{background:var(--white);border-right:1px solid var(--gray-200)}.score-tap-zone:last-child{background:var(--gray-50)}.score-tap-zone:active:first-child{background:var(--garnet-subtle)}.score-tap-zone:active:last-child{background:var(--gold-subtle)}.score-tap-team{color:var(--gray-500);letter-spacing:.02em;margin-bottom:8px;font-size:12px;font-weight:600}.score-tap-number{font-family:var(--font-display);color:var(--gray-900);font-size:56px;font-weight:900;line-height:1}.score-tap-zone:first-child .score-tap-number{color:var(--garnet)}.score-tap-hint{color:var(--gray-300);margin-top:10px;font-size:11px}.score-panel-footer{background:var(--white);border-top:1px solid var(--gray-200);justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.score-panel-footer .btn{min-height:32px;padding:8px 14px;font-size:12px}.score-sets-display{color:var(--gray-500);align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.score-set-indicator{background:var(--gray-200);border-radius:50%;width:8px;height:8px}.score-set-indicator.won-left{background:var(--garnet)}.score-set-indicator.won-right{background:var(--gold-dark)}.side-switch-alert{background:var(--warning-subtle);border:1.5px solid var(--warning);border-radius:var(--radius-md);color:var(--warning);align-items:center;gap:10px;padding:12px 16px;font-size:14px;font-weight:600;display:flex}.side-switch-icon{flex-shrink:0;font-size:20px}.standings-table-wrap{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.standings-table-header{background:var(--garnet);color:var(--white);align-items:center;gap:8px;padding:12px 16px;display:flex}.standings-table-header h3{font-family:var(--font-display);font-size:14px;font-weight:700}.standings-table{border-collapse:collapse;width:100%;font-size:13px}.standings-table th{text-align:left;color:var(--gray-400);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--gray-100);padding:10px 8px;font-size:10px;font-weight:700}.standings-table th:first-child{padding-left:16px}.standings-table th:last-child{padding-right:16px}.standings-table td{border-bottom:1px solid var(--gray-50);color:var(--gray-700);padding:10px 8px}.standings-table td:first-child{padding-left:16px}.standings-table td:last-child{padding-right:16px}.standings-table tr:last-child td{border-bottom:none}.standings-table .team-name{color:var(--gray-800);font-weight:600}.standings-table .rank{font-family:var(--font-display);color:var(--garnet);font-size:14px;font-weight:700}.standings-table .advancing td{background:var(--garnet-subtle)}.standings-table .record{font-weight:600}.standings-table .diff-pos{color:var(--success);font-weight:600}.standings-table .diff-neg{color:var(--danger);font-weight:600}.standings-table th.center,.standings-table td.center{text-align:center}.stepper{align-items:center;gap:0;padding:16px 0;display:flex}.stepper-step{flex-direction:column;flex:1;align-items:center;gap:4px;display:flex;position:relative}.stepper-dot{border:2px solid var(--gray-200);background:var(--white);width:28px;height:28px;color:var(--gray-400);z-index:1;border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex;position:relative}.stepper-step.completed .stepper-dot{background:var(--garnet);border-color:var(--garnet);color:var(--white)}.stepper-step.current .stepper-dot{border-color:var(--garnet);color:var(--garnet);box-shadow:0 0 0 3px var(--garnet-subtle)}.stepper-label{color:var(--gray-400);text-transform:uppercase;letter-spacing:.04em;text-align:center;font-size:10px;font-weight:600}.stepper-step.completed .stepper-label,.stepper-step.current .stepper-label{color:var(--garnet)}.stepper-line{background:var(--gray-200);flex:1;height:2px;margin-bottom:18px}.stepper-line.completed{background:var(--garnet)}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;background:#11182766;justify-content:center;align-items:flex-end;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--white);border-radius:var(--radius-xl) var(--radius-xl) var(--radius-lg) var(--radius-lg);width:100%;max-width:400px;max-height:85vh;box-shadow:var(--shadow-lg);overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;padding:20px 20px 0;display:flex}.modal-title{font-family:var(--font-display);color:var(--gray-900);font-size:18px;font-weight:700}.modal-close{border-radius:var(--radius-full);background:var(--gray-100);width:32px;height:32px;color:var(--gray-500);cursor:pointer;transition:background var(--duration-fast);border:none;justify-content:center;align-items:center;font-size:18px;display:flex}.modal-close:hover{background:var(--gray-200)}.modal-body{padding:16px 20px}.modal-footer{gap:8px;padding:12px 20px 20px;display:flex}.modal-footer .btn{flex:1}.toast-container{z-index:300;flex-direction:column;gap:8px;width:calc(100% - 32px);max-width:400px;display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%)}.toast{border-radius:var(--radius-md);box-shadow:var(--shadow-lg);animation:toast-in .3s var(--ease-out);align-items:center;gap:10px;padding:14px 16px;font-size:14px;font-weight:500;display:flex}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.toast-success{background:var(--success);color:var(--white)}.toast-error{background:var(--danger);color:var(--white)}.toast-warning{background:var(--warning);color:var(--white)}.toast-info{background:var(--gray-800);color:var(--white)}.toast-icon{flex-shrink:0;font-size:18px}@media (width>=768px){.modal-backdrop{align-items:center}}.app-shell{background:var(--gray-50);max-width:420px;min-height:100vh;margin:0 auto;position:relative}.page-content{padding:0 16px 100px}.top-bar{background:var(--garnet);z-index:50;justify-content:space-between;align-items:center;padding:14px 16px;display:flex;position:sticky;top:0}.top-bar-left{align-items:center;gap:10px;display:flex}.top-bar-logo{font-family:var(--font-display);color:var(--white);letter-spacing:-.01em;font-size:16px;font-weight:900}.top-bar-badge{background:var(--gold);color:var(--garnet-dark);border-radius:var(--radius-full);letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;font-size:10px;font-weight:700}.top-bar-right{align-items:center;gap:8px;display:flex}.top-bar-user{color:var(--gold-light);font-size:13px;font-weight:500}.top-bar-btn{color:var(--white);border-radius:var(--radius-md);cursor:pointer;width:34px;height:34px;transition:background var(--duration-fast);background:#ffffff1f;border:none;justify-content:center;align-items:center;display:flex}.top-bar-btn:hover{background:#fff3}.top-bar-btn svg{width:18px;height:18px}.tournament-header{background:var(--garnet);color:var(--white);padding:20px 16px 16px}.tournament-name{font-family:var(--font-display);margin-bottom:4px;font-size:22px;font-weight:800;line-height:1.15}.tournament-meta{color:var(--gold-light);opacity:.85;align-items:center;gap:8px;font-size:13px;display:flex}.tournament-meta-dot{background:var(--gold-light);opacity:.5;border-radius:50%;width:3px;height:3px}.stepper-wrap{background:var(--white);border-bottom:1px solid var(--gray-200);padding:4px 16px}.section-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.section-title{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--garnet);font-size:11px;font-weight:800}.empty-state{text-align:center;color:var(--gray-400);padding:40px 20px}.empty-state-icon{opacity:.5;margin-bottom:12px;font-size:40px}.empty-state-title{font-family:var(--font-display);color:var(--gray-600);margin-bottom:4px;font-size:16px;font-weight:700}.empty-state-desc{color:var(--gray-400);font-size:13px}.admin-tabs{background:var(--white);border-bottom:1px solid var(--gray-200);-webkit-overflow-scrolling:touch;z-index:40;gap:0;display:flex;position:sticky;top:62px;overflow-x:auto}.admin-tab{color:var(--gray-400);cursor:pointer;transition:all var(--duration-fast);white-space:nowrap;font-size:13px;font-weight:600;font-family:var(--font-body);background:0 0;border:none;border-bottom:2px solid #0000;flex-shrink:0;padding:12px 16px}.admin-tab:hover{color:var(--gray-600)}.admin-tab.active{color:var(--garnet);border-bottom-color:var(--garnet)}.stats-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px;display:grid}.stat-card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:14px 16px}.stat-value{font-family:var(--font-display);color:var(--garnet);margin-bottom:2px;font-size:28px;font-weight:900;line-height:1}.stat-label{color:var(--gray-400);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:600}.stat-detail{color:var(--gray-500);margin-top:4px;font-size:12px}.court-grid{flex-direction:column;gap:10px;display:flex}.court-card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.court-card-header{background:var(--gray-50);border-bottom:1px solid var(--gray-100);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.court-card-name{font-family:var(--font-display);color:var(--gray-900);font-size:14px;font-weight:700}.court-card-body{padding:12px 14px}.court-card-body.live{border-left:3px solid var(--danger)}.court-card-body.idle{border-left:3px solid var(--gray-200)}.court-match-info{justify-content:space-between;align-items:center;display:flex}.court-match-teams{color:var(--gray-800);font-size:13px;font-weight:600;line-height:1.5}.court-match-vs{color:var(--gray-400);font-size:11px;font-weight:500}.court-match-score{text-align:right}.court-score-big{font-family:var(--font-display);color:var(--garnet);font-size:22px;font-weight:900;line-height:1}.court-score-label{color:var(--gray-400);text-transform:uppercase;font-size:10px;font-weight:600}.court-idle-text{color:var(--gray-400);font-size:13px;font-style:italic}.team-list{flex-direction:column;gap:0;display:flex}.team-item{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-md);justify-content:space-between;align-items:center;margin-bottom:6px;padding:12px 16px;display:flex}.team-item-left{align-items:center;gap:12px;display:flex}.team-seed{background:var(--garnet-subtle);width:28px;height:28px;color:var(--garnet);font-family:var(--font-display);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.team-info{flex-direction:column;display:flex}.team-name-main{color:var(--gray-800);font-size:14px;font-weight:600}.team-players{color:var(--gray-400);font-size:12px}.team-item-right{align-items:center;gap:6px;display:flex}.pool-card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:10px;overflow:hidden}.pool-card-header{background:var(--garnet);color:var(--white);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.pool-card-title{font-family:var(--font-display);align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.pool-court-tag{border-radius:var(--radius-full);color:var(--gold-light);background:#ffffff26;padding:2px 8px;font-size:10px;font-weight:600}.pool-card-body{padding:0}.pool-team-row{border-bottom:1px solid var(--gray-50);justify-content:space-between;align-items:center;padding:10px 14px;font-size:13px;display:flex}.pool-team-row:last-child{border-bottom:none}.pool-team-left{align-items:center;gap:10px;display:flex}.pool-team-seed{background:var(--garnet-subtle);width:22px;height:22px;color:var(--garnet);font-family:var(--font-display);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:flex}.pool-team-name{color:var(--gray-800);font-weight:600}.pool-status-badge{font-size:10px;font-weight:600}.progress-bar-wrap{margin-top:8px}.progress-bar-label{color:var(--gray-500);justify-content:space-between;margin-bottom:4px;font-size:11px;font-weight:600;display:flex}.progress-bar{background:var(--gray-100);border-radius:var(--radius-full);height:6px;overflow:hidden}.progress-bar-fill{border-radius:var(--radius-full);background:var(--garnet);height:100%;transition:width .4s var(--ease-out)}.progress-bar-fill.complete{background:var(--success)}.activity-feed{flex-direction:column;gap:0;display:flex}.activity-item{border-bottom:1px solid var(--gray-50);gap:10px;padding:10px 0;display:flex}.activity-item:last-child{border-bottom:none}.activity-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:6px}.activity-dot.live{background:var(--danger)}.activity-dot.completed{background:var(--success)}.activity-dot.info{background:var(--info)}.activity-content{flex:1}.activity-text{color:var(--gray-700);font-size:13px;line-height:1.4}.activity-text strong{color:var(--gray-800);font-weight:600}.activity-time{color:var(--gray-400);margin-top:1px;font-size:11px}.quick-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:16px;display:grid}.quick-action-btn{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--duration-fast);text-align:center;font-family:var(--font-body);flex-direction:column;align-items:center;gap:6px;padding:16px 12px;display:flex}.quick-action-btn:hover{border-color:var(--garnet-light);background:var(--garnet-subtle)}.quick-action-icon{border-radius:var(--radius-md);background:var(--garnet-subtle);width:36px;height:36px;color:var(--garnet);justify-content:center;align-items:center;font-size:18px;display:flex}.quick-action-label{color:var(--gray-700);font-size:12px;font-weight:600}.alert-banner{border-radius:var(--radius-md);align-items:flex-start;gap:10px;margin-bottom:16px;padding:12px 14px;font-size:13px;line-height:1.4;display:flex}.alert-banner-info{background:var(--info-subtle);color:var(--info);border:1px solid #2563eb26}.alert-banner-success{background:var(--success-subtle);color:var(--success);border:1px solid #16a34a26}.alert-banner-warning{background:var(--warning-subtle);color:var(--warning);border:1px solid #d9770626}.alert-banner-icon{flex-shrink:0;margin-top:1px;font-size:16px}.alert-banner-text{flex:1}.alert-banner-text strong{font-weight:600}.schedule-round-label{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.08em;color:var(--gray-400);padding:12px 0 6px;font-size:11px;font-weight:700}.bracket-team-seed{color:var(--gray-400);margin-right:6px;font-size:11px;font-weight:600}.pools-grid,.standings-grid,.schedule-matches-grid,.bracket-assignments,.desktop-two-col,.desktop-three-col{display:contents}.text-center{text-align:center}.mt-sm{margin-top:8px}.mt-md{margin-top:12px}.mt-lg{margin-top:16px}.mb-sm{margin-bottom:8px}.mb-md{margin-bottom:12px}.mb-lg{margin-bottom:20px}.spacer-sm{height:8px}.spacer{height:16px}.spacer-lg{height:24px}.text-muted{color:var(--gray-400)}.text-sm{font-size:12px}.flex-between{justify-content:space-between;align-items:center;display:flex}@media (width>=768px){.app-shell{max-width:100%}.top-bar{padding:14px 32px}.tournament-header{padding:24px 32px 20px}.stepper-wrap{padding:4px 32px}.admin-tabs{gap:4px;padding:0 24px}.admin-tab{padding:14px 20px;font-size:14px}.page-content{padding:0 32px 60px}.stats-grid{grid-template-columns:repeat(4,1fr)}.court-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.quick-actions{grid-template-columns:repeat(4,1fr)}.match-card+.match-card{margin-top:12px}}@media (width>=1024px){.app-shell{max-width:100%;margin:0}.top-bar{padding:12px 40px}.tournament-header{justify-content:space-between;align-items:flex-end;padding:28px 40px 24px;display:flex}.stepper-wrap{padding:4px 40px}.stepper{width:clamp(480px,60%,720px);margin:0 auto}.admin-tabs{padding:0 32px;top:58px}.admin-tab{padding:14px 24px}.page-content{max-width:1200px;margin:0 auto;padding:0 40px 60px}.page-container,.page-container-wide{max-width:1200px}.desktop-two-col{grid-template-columns:1fr 1fr;align-items:start;gap:24px;display:grid}.desktop-two-col>*{min-width:0}.desktop-three-col{grid-template-columns:1fr 1fr 1fr;align-items:start;gap:16px;display:grid}.desktop-three-col>*{min-width:0}.court-grid{grid-template-columns:repeat(3,1fr)}.pools-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.pools-grid>.pool-card{margin-bottom:0}.standings-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.standings-grid>.standings-table-wrap{margin-top:0}.schedule-matches-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.schedule-matches-grid>.match-card{margin-top:0}.team-list{grid-template-columns:1fr 1fr;gap:8px;display:grid}.team-item{margin-bottom:0}.bracket-round{min-width:220px}.bracket-container{gap:40px}.bracket-assignments{grid-template-columns:1fr 1fr 1fr;align-items:stretch;gap:12px;display:grid}.bracket-assignments>.card{margin-top:0!important;margin-bottom:0!important}}@media (width>=1440px){.page-content,.page-container,.page-container-wide{max-width:1400px}.stats-grid{gap:16px}.stat-value{font-size:32px}}
