@tailwind base;@tailwind components;@tailwind utilities;:root{--linen-mist:#f8f1e7;--alabaster-sand:#ebe0d8;--court-blue:#5da5d2;--dark-slate:#414142;--cream-sand:#fae8b7;--terracotta:#c3805c;--muted-stone:#c7bbb1;--brand-50:#eef6fb;--brand-100:#d6e8f4;--brand-200:#b4d4ea;--brand-300:#87bbe0;--brand-400:#6eafd9;--brand-500:#5da5d2;--brand-600:#498cb7;--brand-700:#3a7295;--brand-800:#2c5872;--brand-900:#1e3d52;--brand-pressed:rgba(93,165,210,.44);--brand-tint-10:rgba(93,165,210,.1);--linen-bright:#fcf8f1;--linen-edge:#e8ddc9;--terra-soft:#f1daca;--stone-soft:#ebe5df;--slate-900:#1f1f20;--slate-700:#414142;--slate-500:#6b6b6c;--slate-400:#8b8b8d;--slate-300:#a6a6a8;--live:#ef4444;--positive:#349611;--cta-warm-from:#de496e;--cta-warm-to:#ff6e91;--cta-warm:linear-gradient(99.63deg,var(--cta-warm-from) 19.75%,var(--cta-warm-to) 86.07%);--accent-deep:#489fcd;--gray-900:#1e1e1e;--gray-700:#484c52;--gray-500:#6f6f6f;--gray-400:#8b8b8d;--gray-300:#b9c0c9;--success:var(--positive);--success-soft:#dfefe5;--warning:#d49e4a;--warning-soft:#faebcf;--danger:var(--live);--danger-soft:#f4dad7;--bg-splash:var(--court-blue);--bg-marketing:var(--linen-mist);--bg-app:#f1f6fa;--bg:var(--bg-app);--surface:#fff;--surface-2:var(--brand-50);--surface-3:var(--linen-bright);--surface-warm:var(--alabaster-sand);--border:var(--linen-edge);--border-soft:rgba(31,31,32,.06);--border-inset:hsla(0,0%,48%,.15);--text-strong:var(--gray-900);--text:var(--dark-slate);--text-dim:var(--gray-500);--text-muted:var(--gray-400);--accent:var(--court-blue);--accent-hover:var(--brand-600);--accent-pressed:var(--brand-pressed);--accent-soft:var(--brand-tint-10);--on-accent:#fff;--on-accent-label:var(--cream-sand);--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:18px;--radius-hero:35px;--radius-pill:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--shadow-sm:0 1px 2px hsla(0,0%,6%,.06);--shadow-md:0 4px 14px hsla(0,0%,6%,.1);--shadow-lg:0 16px 40px hsla(0,0%,6%,.14);--font-display:var(--font-public-sans,system-ui),sans-serif;--font-heading:var(--font-inter,system-ui),sans-serif;--font-button:var(--font-roboto,system-ui),sans-serif}.page-marketing{--bg:var(--bg-marketing)}.page-splash{--bg:var(--bg-splash);color:#fff}*{box-sizing:border-box}body,html{background:var(--bg);color:var(--text);font-family:var(--font-display);overflow-x:clip;overscroll-behavior-x:none;max-width:100vw}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}@keyframes score-bump{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1)}}.score-bump{animation:score-bump .25s ease-out}@keyframes flash-cyan{0%{opacity:.15;background:var(--brand-400)}to{opacity:0}}@keyframes flash-red{0%{opacity:.15;background:var(--danger)}to{opacity:0}}.flash-a{animation:flash-cyan .4s ease-out forwards}.flash-b{animation:flash-red .4s ease-out forwards}@keyframes live-blink{0%,to{opacity:1}50%{opacity:.2}}.live-blink{animation:live-blink 1.4s ease-in-out infinite}.btn-v5[data-variant=primary]:active:not(:disabled){background:var(--accent-pressed)!important;filter:none!important}.btn-v5[data-variant=danger]:active:not(:disabled),.btn-v5[data-variant=warm]:active:not(:disabled){filter:brightness(.92)!important}.tf-v5[data-variant=default] input::placeholder{color:var(--text-muted);font-style:normal}.tf-v5[data-variant=pill] input::placeholder,.tf-v5[data-variant=search] input::placeholder{color:var(--accent);font-style:italic;opacity:.85}.tf-v5:focus-within{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}@keyframes skeleton-shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.skeleton{background:linear-gradient(90deg,var(--surface-2) 0,var(--surface) 50%,var(--surface-2) 100%);background-size:200px 100%;background-repeat:no-repeat;animation:skeleton-shimmer 1.4s ease-in-out infinite;border-radius:var(--radius-sm)}.modal-backdrop{position:fixed!important;inset:0!important;background:rgba(0,0,0,.75)!important;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9999!important;display:flex!important;align-items:center!important;justify-content:center!important}.modal{background:var(--surface);border:1px solid var(--border);border-radius:18px;width:480px;max-width:90vw;box-shadow:0 32px 80px rgba(0,0,0,.6);position:relative;z-index:10000}.modal-header{padding:18px 22px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.modal-title{font-size:15px;font-weight:600}.modal-close{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:22px;line-height:1}.modal-close:hover{color:var(--text)}.modal-body{padding:20px 22px;display:flex;flex-direction:column;gap:12px}.modal-footer{padding:14px 22px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:10px}.form-full label,.form-group label{display:block;font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--text-dim);margin-bottom:6px}.form-full input,.form-full select,.form-group input,.form-group select{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:9px 12px;font-size:13px;color:var(--text);font-family:inherit;outline:none;transition:border-color .2s}.form-full input:focus,.form-group input:focus,.form-group select:focus{border-color:var(--accent)}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.btn-ghost{background:transparent;color:var(--text-dim);border:1px solid var(--border);border-radius:8px}.btn-ghost,.btn-primary{padding:8px 16px;font-size:13px;cursor:pointer;font-family:inherit}.btn-primary{background:var(--accent);color:#fff;border:none;border-radius:8px;font-weight:500}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.op-root{display:flex;width:100vw;height:100vh;background:var(--bg);font-family:var(--font-display);overflow:hidden}.op-sidebar{width:236px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column}.op-logo{padding:18px 18px 14px;border-bottom:1px solid var(--border);gap:10px}.op-logo,.op-logo-icon{display:flex;align-items:center}.op-logo-icon{width:32px;height:32px;background:var(--accent);border-radius:8px;justify-content:center;font-size:16px;flex-shrink:0}.op-logo-label{font-size:15px;font-weight:700}.op-logo-sub{font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:2px}.op-nav{flex:1 1;padding:10px 8px;display:flex;flex-direction:column;gap:2px;overflow-y:auto}.op-nav-section{font-size:9px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--text-muted);padding:12px 10px 4px}.op-nav-item{display:flex;align-items:center;gap:9px;padding:9px 12px;border-radius:8px;background:none;border:none;color:var(--text-dim);font-size:13px;font-weight:500;cursor:pointer;text-align:left;width:100%;font-family:inherit;transition:all .15s;text-decoration:none}.op-nav-item:hover{background:var(--surface-2);color:var(--text)}.op-nav-item.active{background:var(--accent-soft);color:var(--accent)}.op-badge{margin-left:auto;background:var(--accent);color:#fff;font-size:10px;font-weight:700;padding:1px 7px;border-radius:10px}.op-sidebar-footer{padding:12px;border-top:1px solid var(--border)}.op-operator-chip{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 12px}.op-op-avatar{width:28px;height:28px;border-radius:7px;background:linear-gradient(135deg,var(--accent),var(--brand-700));display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff}.op-main{flex:1 1;display:flex;flex-direction:column;overflow:hidden}.op-topbar{padding:14px 24px;border-bottom:1px solid var(--border);background:var(--surface);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;gap:12px}.op-page-title{font-size:15px;font-weight:600}.op-page-sub{font-size:12px;color:var(--text-dim);margin-top:2px;display:flex;align-items:center;gap:8px}.op-body{flex:1 1;overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:18px}.fin-tx-cards{display:none;flex-direction:column;gap:10px}.op-btn-primary{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;transition:background .15s}.op-btn-primary:hover{background:var(--accent-hover)}.op-btn-ghost{padding:8px 14px;background:transparent;color:var(--text-dim);border:1px solid var(--border);border-radius:8px;font-size:13px;cursor:pointer;font-family:inherit;transition:all .15s;display:inline-flex;align-items:center}.op-btn-ghost:hover{color:var(--text);border-color:var(--accent)}.op-btn-success{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:var(--success-soft);color:var(--success);border:1px solid color-mix(in srgb,var(--success) 35%,transparent);border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .15s}.op-btn-success:hover:not(.disabled){background:color-mix(in srgb,var(--success) 22%,transparent)}.op-btn-success.disabled{opacity:.4;cursor:not-allowed}.op-btn-sm{padding:6px 12px!important;font-size:12px!important}.save-btn{padding:7px 14px;background:var(--accent);color:var(--on-accent);border:none;border-radius:7px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap}.save-btn:hover{background:var(--accent-hover)}.start-btn{padding:7px 16px;background:var(--success-soft);color:var(--success);border:1px solid color-mix(in srgb,var(--success) 40%,transparent);border-radius:7px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap;transition:all .15s}.start-btn:hover{background:color-mix(in srgb,var(--success) 22%,transparent);border-color:color-mix(in srgb,var(--success) 55%,transparent)}.finish-tournament-btn{width:100%;padding:9px 16px;background:var(--terra-soft);color:var(--terracotta);border:1px solid color-mix(in srgb,var(--terracotta) 35%,transparent);border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s;text-align:center}.finish-tournament-btn:hover{background:color-mix(in srgb,var(--terracotta) 18%,transparent);border-color:color-mix(in srgb,var(--terracotta) 55%,transparent)}.done-btn{padding:7px 16px;background:var(--accent);color:var(--on-accent);border:1px solid var(--accent-hover);border-radius:7px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap;transition:all .15s}.done-btn:hover{background:var(--accent-hover)}.op-stats-row{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px}.op-stat-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px 18px}.op-stat-label{font-size:11px;color:var(--text-dim);letter-spacing:1px;text-transform:uppercase;margin-bottom:6px}.op-stat-value{font-size:28px;font-weight:700;line-height:1}.op-stat-sub{font-size:11px;color:var(--text-dim);margin-top:4px}.round-panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px 20px;display:flex;align-items:center;gap:20px}.round-panel-label{font-size:16px;font-weight:700}.round-panel-sub{font-size:12px;color:var(--text-dim);margin-top:2px}.round-progress-wrap{flex:2 1}.round-progress-bg{height:6px;background:var(--border);border-radius:3px;overflow:hidden}.round-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--success));border-radius:3px;transition:width .4s ease}.matches-list{display:flex;flex-direction:column;gap:8px}.match-row{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:12px;transition:border-color .2s}.match-row-active{border-color:color-mix(in srgb,var(--accent) 30%,transparent)}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dot-live{background:var(--success);box-shadow:0 0 6px var(--success);animation:live-blink 1.4s ease-in-out infinite}.dot-idle{background:var(--text-muted)}.dot-done{background:var(--accent)}.match-court-tag{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim);background:var(--surface);border:1px solid var(--border);padding:4px 10px;border-radius:6px;white-space:nowrap;flex-shrink:0}.match-teams-info{flex:1 1;display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;min-width:0}.vs-sep{font-size:10px;letter-spacing:2px;color:var(--text-muted);flex-shrink:0}.score-result{font-family:monospace;font-size:14px;font-weight:600;color:var(--text-dim);white-space:nowrap}.score-controls{gap:8px;flex-shrink:0}.score-box,.score-controls{display:flex;align-items:center}.score-box{gap:5px}.adj-btn{width:28px;height:28px;border-radius:7px;border:none;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:600;cursor:pointer;transition:all .1s;font-family:inherit}.adj-btn.plus{background:var(--accent-soft);color:var(--accent)}.adj-btn.plus:hover{background:color-mix(in srgb,var(--accent) 25%,transparent)}.adj-btn.minus{background:var(--surface-2);color:var(--text-dim);border:1px solid var(--border)}.adj-btn.minus:hover{background:var(--surface-3)}.score-display{width:40px;padding:5px 0}.score-display,.score-input{font-family:Geist Mono,monospace;font-size:20px;font-weight:600;text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:7px}.score-input{width:48px;padding:4px 0;color:var(--text);outline:none;-moz-appearance:textfield}.score-input::-webkit-inner-spin-button,.score-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.score-input:focus{border-color:var(--accent)}.score-sep{color:var(--text-muted);font-size:12px}.tennis-controls{flex-wrap:wrap}.tennis-side{display:flex;align-items:center;gap:6px}.tennis-score{text-align:center;min-width:34px}.tennis-score-games{font-weight:800;font-size:17px;line-height:1.1}.tennis-score-pts{font-size:11px;font-weight:700;color:var(--text-dim)}.tennis-pt-btn{width:auto;padding:0 10px;font-size:13px}.tennis-actions{display:flex;align-items:center;gap:8px}.tennis-pill{font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--text-dim);border:1px solid var(--border);border-radius:6px;padding:2px 6px}.lb-list{display:flex;flex-direction:column;gap:6px}.lb-row{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:10px;transition:background .15s}.lb-row:hover{background:var(--surface-2)}.lb-rank{font-family:monospace;font-size:13px;width:24px;text-align:center;color:var(--text-muted);flex-shrink:0}.lb-rank-medal{font-size:16px}.lb-avatar{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;flex-shrink:0}.lb-name{flex:1 1;font-size:13px;font-weight:500}.lb-bar-wrap{width:64px;height:4px;background:var(--border);border-radius:2px;flex-shrink:0}.lb-bar{height:100%;background:linear-gradient(90deg,var(--accent),var(--brand-300));border-radius:2px}.lb-meta{font-size:11px;color:var(--text-dim);white-space:nowrap}.lb-pts{font-family:Geist Mono,monospace;font-size:14px;font-weight:600;color:var(--accent)}.checkin-feed{display:flex;flex-direction:column;gap:6px}.checkin-row{gap:12px;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:10px}.checkin-row,.ci-avatar{display:flex;align-items:center}.ci-avatar{width:28px;height:28px;border-radius:7px;background:linear-gradient(135deg,var(--accent),var(--brand-700));justify-content:center;font-size:11px;font-weight:700;color:#fff;flex-shrink:0}.two-col{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px;align-items:start}.tournament-row{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:all .15s;margin-bottom:8px}.tournament-row:hover{border-color:var(--accent);background:var(--surface-2)}.tournament-row.selected{border-color:var(--accent);background:var(--accent-soft)}.t-icon{width:34px;height:34px;border-radius:9px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}.op-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden}.op-card-header{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:600;background:var(--surface-2)}.op-card-body{padding:16px 18px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.section-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.section-title{font-size:13px;font-weight:600}.empty-state{font-size:13px;color:var(--text-dim);padding:20px;text-align:center}.op-toast{position:fixed;bottom:20px;right:20px;z-index:200;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 18px;font-size:13px;box-shadow:0 8px 30px rgba(0,0,0,.4);animation:toastIn .25s ease-out}.op-toast-success{border-left:3px solid var(--success)}.op-toast-error{border-left:3px solid var(--danger)}.op-toast-info{border-left:3px solid var(--accent)}@keyframes toastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.op-hamburger{display:none;align-items:center;justify-content:center;width:36px;height:36px;background:none;border:1px solid var(--border);border-radius:8px;color:var(--text);cursor:pointer;font-size:17px;flex-shrink:0;font-family:inherit}.op-sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:149;cursor:pointer}.op-root{height:100dvh}.profile-stats-grid,.resp-grid-4{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px}.resp-grid-4-lg{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px}.resp-grid-3{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px}.resp-podium{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px}.resp-form-2col{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.player-nav-label{font-size:10px;font-weight:500}@media (max-width:1024px){.two-col{grid-template-columns:1fr!important}.op-stats-row{grid-template-columns:repeat(2,1fr)!important}.op-body{padding:16px 18px;gap:14px}}@media (max-width:767px){.op-sidebar{position:fixed!important;top:0;bottom:0;left:0;z-index:150;width:240px!important;transform:translateX(-100%);transition:transform .25s cubic-bezier(.4,0,.2,1);box-shadow:none}.op-sidebar.open{transform:translateX(0);box-shadow:8px 0 40px rgba(0,0,0,.6)}.op-sidebar-overlay{display:block;opacity:0;pointer-events:none;transition:opacity .25s}.op-sidebar-overlay.open{opacity:1;pointer-events:auto}.op-hamburger{display:flex}.op-refresh-btn{display:none!important}.op-topbar{padding:10px 12px;gap:8px}.op-page-title{font-size:14px}.op-body{padding:12px;gap:12px}.fin-tx-table{display:none}.fin-tx-cards{display:flex}.op-stats-row{grid-template-columns:repeat(2,1fr)!important;gap:8px}.op-stat-card{padding:12px 14px}.op-stat-value{font-size:22px}.match-row{flex-wrap:wrap;gap:8px 10px;padding:10px 12px}.match-teams-info{order:2;flex:1 1 100%;min-width:0}.score-controls{order:3;width:100%;justify-content:flex-end;flex-wrap:wrap;gap:6px 8px}.score-box{gap:4px}.adj-btn{width:32px;height:32px;font-size:18px}.score-input{width:44px;font-size:18px}.tennis-controls{justify-content:space-between}.tennis-controls .score-sep,.tennis-pill{display:none}.tennis-controls .adj-btn{width:36px;height:36px}.tennis-pt-btn{height:36px;padding:0 14px;font-size:14px}.tennis-score-games{font-size:20px}.tennis-actions{width:100%;justify-content:flex-end}.round-panel{flex-direction:column;align-items:stretch;gap:10px;padding:14px 16px}.round-progress-wrap{flex:none}.lb-bar-wrap{display:none}.lb-meta{font-size:10px}.form-row,.resp-form-2col{grid-template-columns:1fr!important}.result-section{padding-left:14px!important;padding-right:14px!important}.resp-grid-3{grid-template-columns:1fr!important}.op-toast{right:12px;left:12px;bottom:12px;text-align:center}}@media (max-width:480px){.profile-stats-grid,.resp-grid-4,.resp-grid-4-lg{grid-template-columns:repeat(2,1fr)}.player-nav-label{display:none}.player-main{padding:14px 14px 90px!important}}