.nav{color:#fff;background-color:#1a1a2e;justify-content:space-between;align-items:center;gap:8px;padding:10px 16px;display:flex}.brand{color:#fff;flex-shrink:0;align-items:center;gap:8px;font-size:1.1rem;font-weight:700;text-decoration:none;display:flex}.logo{object-fit:contain;filter:invert();mix-blend-mode:screen;width:32px;height:32px}.nav-links{flex-shrink:0;align-items:center;gap:12px;display:flex}.nav-link,.nav-name,.nav-button,.admin-toggle{white-space:nowrap;font-family:inherit;font-size:.9rem}.nav-link{color:#ccc;text-decoration:none}.nav-button{color:#ccc;cursor:pointer;background:0 0;border:1px solid #ccc;border-radius:4px;padding:4px 10px}.admin-dropdown{align-items:center;display:flex;position:relative}.admin-toggle{color:#ccc;cursor:pointer;background:0 0;border:none;padding:0}.admin-menu{z-index:100;background-color:#1a1a2e;border:1px solid #444;border-radius:6px;min-width:140px;margin-top:8px;position:absolute;top:100%;right:0;overflow:hidden}.admin-item{color:#ccc;white-space:nowrap;padding:10px 16px;font-size:.9rem;text-decoration:none;display:block}.admin-item:hover{color:#fff;background-color:#2a2a4e}.admin-divider{border-top:1px solid #444;margin:4px 0}.admin-label{color:#888;text-transform:uppercase;letter-spacing:.5px;padding:6px 16px 2px;font-size:.75rem;display:block}.admin-mode-btn{text-align:left;cursor:pointer;background:0 0;border:none;width:100%;font-family:inherit}@media (width<=480px){.nav{padding:8px 10px}.brand{font-size:.95rem}.brand-text{display:none}.logo{width:28px;height:28px}.nav-links{gap:8px}.nav-link,.nav-name,.nav-button,.admin-toggle{font-size:.8rem}.nav-button{padding:3px 8px}}.schedule-container{max-width:520px;margin:0 auto;padding:12px}.schedule-topbar{justify-content:space-between;align-items:center;padding:4px 0 10px;display:flex}.schedule-topbar-label{color:#999;text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:700}.schedule-hero{color:#fff;text-align:center;background:#1a1a2e;border-radius:12px;margin-bottom:14px;padding:16px 20px}.schedule-hero-logo{object-fit:contain;width:52px;height:52px;margin:0 auto 6px;display:block}.schedule-hero-title{letter-spacing:-.01em;margin:0 0 4px;font-size:1.4rem;font-weight:700;line-height:1.2}.schedule-hero-date{color:#f59e0b;margin:0;font-size:.9rem}.schedule-hero-location{color:#c0c0d8;margin:2px 0 0;font-size:.85rem}.schedule-round-label{letter-spacing:.16em;text-transform:uppercase;color:#666;text-align:center;margin:6px 0 10px;font-size:.8rem;font-weight:800}.schedule-courts{flex-direction:column;gap:6px;display:flex}.schedule-court{background:#fff;border:1px solid #e5e5e5;border-radius:10px;padding:8px 14px 10px}.schedule-court-label{letter-spacing:.14em;color:#f59e0b;text-transform:uppercase;text-align:center;margin:0 0 3px;font-size:.65rem;font-weight:800}.schedule-court-row{justify-content:space-between;align-items:stretch;gap:8px;display:flex}.schedule-team{text-align:center;background:#f5f5f9;border-radius:8px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:0;min-width:0;padding:6px 8px;display:flex}.schedule-team-player{color:#1a1a2e;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:.95rem;font-weight:600;line-height:1.3;overflow:hidden}.schedule-vs{color:#999;letter-spacing:.1em;text-transform:uppercase;flex-shrink:0;align-self:center;padding:0 2px;font-size:.72rem;font-weight:800}.schedule-reserves{text-align:center;background:#fffbeb;border:1px dashed #fbbf24;border-radius:10px;margin-top:12px;padding:10px 12px}.schedule-reserves-title{color:#92400e;text-transform:uppercase;letter-spacing:.14em;margin:0 0 6px;font-size:.68rem;font-weight:800}.schedule-reserves-names{flex-wrap:wrap;justify-content:center;gap:5px;margin:0;padding:0;list-style:none;display:flex}.schedule-reserves-names li{color:#78350f;background:#fef3c7;border-radius:100px;padding:3px 10px;font-size:.85rem;font-weight:600}.schedule-admin{border-top:1px dashed #e5e5e5;margin-top:20px;padding-top:16px}.schedule-admin-label{text-transform:uppercase;letter-spacing:.14em;color:#999;text-align:center;margin:0 0 8px;font-size:.68rem;font-weight:700}.schedule-start-btn{background:var(--c-success);color:#fff;border-radius:var(--r-md);cursor:pointer;border:none;width:100%;margin-bottom:8px;padding:14px;font-size:1rem;font-weight:700;display:block}.schedule-start-btn:disabled{opacity:.5;cursor:not-allowed}.schedule-empty{text-align:center;margin-top:60px}.schedule-empty p{color:#666;margin-bottom:16px}.schedule-empty-btn{background:var(--c-success);color:#fff;border-radius:var(--r-md);cursor:pointer;border:none;padding:16px 40px;font-size:1.1rem;font-weight:700}.schedule-error{color:#dc2626;text-align:center;margin-bottom:12px;font-size:.9rem}.schedule-loading{text-align:center;color:#666;padding:40px}@media (width<=480px){.schedule-container{padding:10px}.schedule-hero{padding:16px 16px 14px}.schedule-hero-title{font-size:1.25rem}.schedule-hero-date{font-size:.82rem}.schedule-court{padding:7px 12px 9px}.schedule-team-player{font-size:.9rem}}.live-container{max-width:520px;margin:0 auto;padding:12px}.live-header{justify-content:space-between;align-items:center;padding:8px 0 16px;display:flex}.live-header h2{margin:0}.live-header-title{text-align:center;flex:1;min-width:0;padding:0 8px}.live-header-date{color:#666;margin:2px 0 0;font-size:.75rem;line-height:1.2}.live-error{z-index:50;color:#991b1b;text-align:center;cursor:pointer;background:#fee2e2;border:1px solid #dc2626;border-radius:8px;margin:0 0 12px;padding:10px 14px;font-size:.9rem;font-weight:600;position:sticky;top:8px;box-shadow:0 2px 8px #0000001f}.live-loading{text-align:center;color:#666;padding:40px}.live-empty{text-align:center;color:#666;margin-top:40px}.live-start{text-align:center;margin-top:60px}.live-start p{color:#666;margin-bottom:16px}.live-start-btn{color:#fff;cursor:pointer;background:#16a34a;border:none;border-radius:8px;padding:16px 40px;font-size:1.2rem;font-weight:700}.round-tabs{gap:6px;margin-bottom:16px;display:flex;overflow-x:auto}.round-tab{cursor:pointer;white-space:nowrap;background:#fff;border:2px solid #ddd;border-radius:20px;padding:6px 16px;font-size:.85rem;font-weight:700}.round-tab-active{color:#fff;background:#1a1a2e;border-color:#1a1a2e}.courts-list{flex-direction:column;gap:12px;display:flex}.court-card{background:#fff;border:1px solid #e0e0e0;border-radius:12px;padding:12px 16px;box-shadow:0 1px 3px #0000000f}.court-badge{text-align:center;color:#fff;background:#f59e0b;border-radius:12px;width:fit-content;margin:0 auto 4px;padding:2px 12px;font-size:.8rem;font-weight:700;display:block}.court-team{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:10px 0;display:flex}.court-team:last-of-type{border-bottom:none}.team-won .team-players .player-name{font-weight:700}.team-lost .team-players .player-name{color:#999}.team-info{flex:1;align-items:center;gap:8px;display:flex}.team-players{flex-direction:column;gap:2px;display:flex}.player-name{font-size:.9rem;line-height:1.3}.team-points{white-space:nowrap;font-size:.85rem;font-weight:700}.score-cell{text-align:center;flex-shrink:0;width:52px}.score-input{text-align:center;-moz-appearance:textfield;border:2px solid #ddd;border-radius:8px;outline:none;width:48px;height:48px;font-size:1.3rem;font-weight:700}.score-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.score-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.score-input:focus{border-color:#f59e0b}.score-display{color:#333;font-size:1.3rem;font-weight:700}.golden-point{justify-content:center;align-items:center;gap:8px;padding:8px 0 4px;display:flex}.golden-label{color:#f59e0b;font-size:.8rem;font-weight:700}.golden-btn{cursor:pointer;color:#f59e0b;background:#fff;border:2px solid #f59e0b;border-radius:4px;padding:4px 14px;font-size:.8rem;font-weight:700}.golden-active{color:#fff;background:#f59e0b}.golden-result{text-align:center;color:#f59e0b;padding-top:4px;font-size:.8rem;font-weight:700}.next-round-btn{color:#fff;cursor:pointer;background:#16a34a;border:none;border-radius:8px;width:100%;margin-top:16px;padding:16px;font-size:1.1rem;font-weight:700;display:block}.event-actions{margin-top:24px}.event-actions-summary{cursor:pointer;text-align:center;color:#666;-webkit-user-select:none;user-select:none;padding:8px;font-size:.85rem;list-style:none}.event-actions-summary::-webkit-details-marker{display:none}.event-actions[open] .event-actions-summary{color:#333}.event-actions-list{flex-direction:column;gap:8px;margin-top:8px;display:flex}.end-event-btn{color:#dc2626;border-color:#fca5a5}.reserves-box{background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;margin-top:16px;padding:12px 16px}.reserves-label{color:#9a3412;text-transform:uppercase;letter-spacing:.03em;margin-bottom:6px;font-size:.8rem;font-weight:700}.reserves-list{margin:0 0 6px;padding:0;list-style:none}.reserves-list li{color:#7c2d12;padding:2px 0;font-size:.9rem}.reserves-hint{color:#9a3412;margin:0;font-size:.75rem;font-style:italic}.reset-btn{color:#999;cursor:pointer;background:0 0;border:1px solid #ddd;border-radius:8px;width:100%;padding:10px;font-size:.85rem;display:block}.reset-all{color:#dc2626;border-color:#fca5a5}@media (width<=480px){.live-container{padding:8px}.court-card{padding:10px 12px}.player-name{font-size:.85rem}.score-input{width:44px;height:44px;font-size:1.2rem}}.next-round-btn:disabled{opacity:.5;cursor:not-allowed}.summary-container{max-width:520px;margin:0 auto;padding:16px}.summary-title{text-align:center;margin-bottom:20px}.summary-empty{text-align:center;color:#666}.summary-list{flex-direction:column;gap:4px;display:flex}.summary-row{background:#fff;border:1px solid #eee;border-radius:8px;align-items:center;padding:12px;display:flex}.summary-winner{background:linear-gradient(135deg,#fef9c3,#fef08a);border:2px solid #f59e0b}.summary-rank{color:#666;text-align:center;flex-shrink:0;width:40px;font-size:1.1rem;font-weight:700}.summary-winner .summary-rank{font-size:1.4rem}.summary-info{flex:1;min-width:0}.summary-name{flex-wrap:wrap;align-items:center;gap:8px;font-size:.95rem;font-weight:700;display:flex}.winner-tag{margin-left:8px}.summary-stats{color:#666;margin-top:2px;font-size:.8rem}.summary-points{text-align:right;flex-shrink:0;width:60px;font-size:1.2rem;font-weight:700}.pts-plus{color:#16a34a}.pts-minus{color:#dc2626}.my-matches{margin-top:32px}.my-matches-title{margin-bottom:12px}.my-matches-list{flex-direction:column;gap:4px;display:flex}.my-match-row{background:#fff;border:1px solid #eee;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;display:flex}.match-won{border-left:4px solid #16a34a}.match-lost{border-left:4px solid #dc2626}.match-draw{border-left:4px solid #9ca3af}.match-arrow{margin-left:2px;font-size:.8rem}.match-arrow.up{color:#16a34a}.match-arrow.down{color:#dc2626}.match-round{color:#999;text-align:center;flex-shrink:0;width:28px;font-size:.75rem;font-weight:700}.match-detail{flex:1;min-width:0}.match-teams{flex-direction:column;gap:1px;font-size:.85rem;display:flex}.match-you{font-weight:600}.match-vs{color:#999;font-size:.7rem}.match-opp{color:#666}.match-score{text-align:center;flex-shrink:0;min-width:42px;font-size:1rem;font-weight:700}.match-pts{text-align:right;flex-shrink:0;width:40px;font-size:.85rem;font-weight:700}.summary-admin{flex-direction:column;gap:8px;margin-top:24px;display:flex}.summary-admin-btn{color:#666;cursor:pointer;background:0 0;border:1px solid #ddd;border-radius:8px;width:100%;padding:10px;font-size:.85rem;display:block}.summary-reopen{color:#f59e0b;border-color:#f59e0b}.admin-round{margin-top:24px}.admin-round-title{margin-bottom:10px;font-size:1rem}.admin-match-list{flex-direction:column;gap:6px;display:flex}.admin-match{background:#fff;border:1px solid #eee;border-radius:8px;align-items:stretch;gap:10px;padding:8px 12px;display:flex}.admin-match-court{color:#999;text-align:center;flex-shrink:0;align-self:center;width:28px;font-size:.75rem;font-weight:700}.admin-match-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.admin-team-row{align-items:center;gap:8px;padding:4px 0;font-size:.9rem;display:flex}.admin-team-row+.admin-team-row{border-top:1px dashed #f0f0f0}.admin-team-names{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.admin-team-arrow{text-align:center;flex-shrink:0;width:16px;font-size:.85rem}.admin-team-score{text-align:center;flex-shrink:0;width:24px;font-weight:700}.admin-team-pts{text-align:right;flex-shrink:0;width:44px;font-size:.9rem;font-weight:700}.admin-team-winner .admin-team-names{font-weight:600}.admin-team-loser .admin-team-names{color:#666}.admin-match-skipped{opacity:.6}.admin-match-skip-note{color:#999;margin-top:2px;font-size:.75rem;font-style:italic}:root{--c-primary:#1a1a2e;--c-success:#16a34a;--c-warning:#f59e0b;--c-error:#dc2626;--c-text:#1a1a1a;--c-muted:#666;--c-muted-soft:#999;--c-border:#ddd;--c-border-soft:#eee;--c-bg:#f5f5f5;--c-bg-card:#fff;--r-sm:4px;--r-md:8px;--r-lg:12px;--r-pill:100px;--space-4:4px;--space-8:8px;--space-12:12px;--space-16:16px;--space-24:24px;--space-32:32px;--space-40:40px;--page-max:520px}*{box-sizing:border-box}body{background:var(--c-bg);color:var(--c-text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}h2{margin:0 0 16px;font-size:1.3rem;font-weight:700;line-height:1.25}h3{margin:0 0 10px;font-size:1rem;font-weight:700;line-height:1.3}a:hover{opacity:.8}button:disabled{opacity:.5;cursor:not-allowed}input:focus,textarea:focus,select:focus{border-color:var(--c-warning);outline:none;box-shadow:0 0 0 2px #f59e0b33}.badge{border-radius:var(--r-lg);color:#fff;white-space:nowrap;padding:2px 10px;font-size:.8rem;font-weight:700;display:inline-block}.badge-success{background-color:var(--c-success)}.badge-warning{background-color:var(--c-warning)}.badge-error{background-color:var(--c-error)}.back-btn{border:1px solid var(--c-border);width:36px;height:36px;color:var(--c-primary);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-bottom:12px;padding:0;font-size:1.2rem;line-height:1;display:inline-flex}.live-header .back-btn,.schedule-topbar .back-btn{margin-bottom:0}.back-btn:hover{background:var(--c-bg)}.responsive-scroll{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.responsive-scroll>*{min-width:720px}@media (width<=640px){.page-narrow-mobile{max-width:100%!important;padding:16px!important}}
