@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Space+Grotesk:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;700&display=swap");:root{--primary-50:#fef6f2;--primary-100:#fce9de;--primary-200:#f8cdb1;--primary-300:#f0a97c;--primary-400:#ea9060;--primary-500:#e57c52;--primary-600:#c56a42;--primary-700:#a35635;--primary-800:#7a3f25;--primary-900:#4e2815;--primary-950:#2e180d;--neutral-50:#faf8f7;--neutral-100:#f4f1ef;--neutral-200:#e7e3e0;--neutral-300:#d1cbc8;--neutral-400:#a9a29d;--neutral-500:#85807c;--neutral-600:#696462;--neutral-700:#514d4b;--neutral-800:#373432;--neutral-900:#272422;--neutral-950:#1a1715;--defense-50:#f0f6fa;--defense-100:#dfedf5;--defense-200:#b3d4ec;--defense-300:#7db8de;--defense-500:#1a83ad;--defense-700:#155d7e;--defense-900:#0e3a50;--success-50:#f0fdf4;--success-100:#dcfce7;--success-500:#16A34A;--success-700:#15803D;--success-900:#14532d;--warning-50:#fefce8;--warning-100:#fef9c3;--warning-500:#CA8A04;--warning-700:#A16207;--warning-900:#713f12;--error-50:#fef2f2;--error-100:#fee2e2;--error-200:#fecaca;--error-500:#DC2626;--error-700:#B91C1C;--error-900:#7f1d1d;--color-bg-base:var(--neutral-50);--color-bg-surface:#ffffff;--color-bg-surface-raised:#ffffff;--color-bg-surface-sunken:var(--neutral-100);--color-bg-sidebar:var(--neutral-100);--color-bg-overlay:rgba(26,24,22,0.45);--color-bg-subtle:var(--neutral-50);--color-text-primary:var(--neutral-950);--color-text-secondary:var(--neutral-600);--color-text-tertiary:var(--neutral-400);--color-text-inverse:#faf9f7;--color-text-link:var(--primary-500);--color-border-default:var(--neutral-200);--color-border-subtle:var(--neutral-100);--color-border-strong:var(--primary-500);--color-action-primary:var(--primary-500);--color-action-primary-hover:var(--primary-600);--color-action-primary-active:var(--primary-700);--color-action-primary-text:#faf9f7;--color-success:var(--success-500);--color-success-soft:var(--success-100);--color-success-text:var(--success-700);--color-warning:var(--warning-500);--color-warning-soft:var(--warning-100);--color-warning-text:var(--warning-700);--color-error:var(--error-500);--color-error-soft:var(--error-100);--color-error-text:var(--error-700);--color-offense:var(--primary-500);--color-offense-soft:var(--primary-100);--color-offense-border:var(--primary-200);--color-offense-text:var(--primary-700);--color-defense:var(--defense-500);--color-defense-soft:var(--defense-100);--color-defense-border:var(--defense-200);--color-defense-text:var(--defense-700);--color-shadow:rgba(40,37,35,0.08);--color-shadow-strong:rgba(40,37,35,0.14);--color-shadow-accent:rgba(229,124,82,0.18);--color-highlight:rgba(255,255,255,0.65);--shadow-sm:0 1px 2px var(--color-shadow);--shadow:0 1px 3px var(--color-shadow),0 1px 2px rgba(40,37,35,0.04);--shadow-md:0 4px 8px var(--color-shadow),0 2px 4px rgba(40,37,35,0.04);--shadow-lg:0 12px 24px var(--color-shadow-strong),0 4px 8px var(--color-shadow);--shadow-glow:0 4px 14px -2px var(--color-shadow-accent);--canvas:var(--color-bg-base);--surface:var(--color-bg-surface);--surface-2:var(--color-bg-surface-sunken);--sidebar:var(--color-bg-sidebar);--ink:var(--color-text-primary);--ink-muted:var(--color-text-secondary);--ink-disabled:var(--color-text-tertiary);--border:var(--color-border-default);--border-focus:var(--color-border-strong);--accent:var(--color-action-primary);--accent-dark:var(--color-action-primary-hover);--accent-soft:var(--primary-100);--accent-soft-border:var(--primary-200);--highlight:var(--primary-100);--success:var(--color-success);--success-soft:var(--color-success-soft);--warning:var(--color-warning);--warning-soft:var(--color-warning-soft);--error:var(--color-error);--error-soft:var(--color-error-soft);--dark:var(--neutral-950);--dark-2:var(--neutral-900);--court-lines:var(--neutral-700);--stone-dark:var(--neutral-300);--radius-sm:6px;--radius:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--sidebar-width:280px;--header-height:64px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background-color:var(--canvas);color:var(--ink);line-height:1.5;min-height:100dvh}body,html{max-width:100vw;overflow-x:hidden}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none}input,select,textarea{font-family:inherit;font-size:inherit}img,svg{display:block}.font-mono{font-family:JetBrains Mono,Courier New,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.text-display{font-size:clamp(2rem,4vw,3.5rem);font-weight:700;letter-spacing:-.025em;line-height:1.1}.text-headline{font-size:1.5rem;font-weight:700;letter-spacing:-.015em;line-height:1.2}.text-title{font-size:1.125rem;font-weight:600;letter-spacing:-.01em}.text-body{font-size:.9375rem;font-weight:400;line-height:1.6}.text-small{font-size:.875rem;font-weight:400;line-height:1.5}.text-micro{font-size:.75rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase}.text-muted{color:var(--ink-muted)}.text-accent{color:var(--accent)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-error{color:var(--error)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:var(--radius);font-size:.9375rem;font-weight:500;line-height:1;transition:background .1s ease,color .1s ease,transform 80ms ease,border-color .1s ease;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:linear-gradient(to bottom,var(--primary-400),var(--color-action-primary));color:var(--color-action-primary-text);box-shadow:inset 0 1px 0 0 rgba(255,255,255,.15),var(--shadow-sm),0 2px 8px -2px var(--color-shadow-accent)}.btn-primary:hover:not(:disabled){background:linear-gradient(to bottom,var(--primary-500),var(--color-action-primary-hover));box-shadow:inset 0 1px 0 0 rgba(255,255,255,.1),var(--shadow),0 4px 12px -2px var(--color-shadow-accent)}.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:var(--canvas)}.btn-ghost-accent{background:transparent;color:var(--accent);border:1px solid var(--accent-soft-border)}.btn-ghost-accent:hover:not(:disabled){background:var(--accent-soft)}.btn-danger{background:var(--color-error);color:var(--color-text-inverse)}.btn-danger:hover:not(:disabled){background:var(--error-700)}.btn-ghost-danger{background:transparent;color:var(--color-error);border:1px solid var(--error-200)}.btn-ghost-danger:hover:not(:disabled){background:var(--color-error-soft)}.btn-sm{padding:7px 14px;font-size:.875rem}.btn-lg{padding:14px 28px;font-size:1rem;font-weight:600}.btn-full{width:100%}.card{background:linear-gradient(to bottom,var(--color-bg-surface),var(--neutral-50));border:1px solid var(--color-border-default);border-radius:var(--radius-md);box-shadow:inset 0 1px 0 0 var(--color-highlight),var(--shadow-sm)}.card-body{padding:20px}.card-header{padding:16px 20px;border-bottom:1px solid var(--border)}.card-footer{padding:16px 20px;border-top:1px solid var(--border)}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:.875rem;font-weight:500;color:var(--ink)}.form-input{width:100%;padding:10px 14px;background:var(--color-bg-surface-sunken);border:1px solid var(--color-border-default);border-radius:var(--radius);font-size:.9375rem;color:var(--ink);outline:none;transition:border-color .1s ease,box-shadow .1s ease;box-shadow:inset 0 1px 2px 0 rgba(40,37,35,.06),inset 0 -1px 0 0 var(--color-highlight)}.form-input:focus{border-color:var(--color-border-strong);box-shadow:0 0 0 3px var(--color-shadow-accent),inset 0 1px 2px 0 rgba(40,37,35,.04)}.form-input::placeholder{color:var(--ink-disabled)}.form-textarea{resize:vertical;min-height:80px}.form-error{font-size:.8125rem;color:var(--error)}.form-helper{font-size:.8125rem;color:var(--ink-muted)}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:100px;font-size:.75rem;font-weight:500;letter-spacing:.03em}.badge-accent{background:var(--color-action-primary);color:var(--color-text-inverse)}.badge-accent-soft{background:var(--accent-soft);color:var(--accent-dark)}.badge-success{background:var(--color-success-soft);color:var(--color-success-text)}.badge-warning{background:var(--color-warning-soft);color:var(--color-warning-text)}.badge-error{background:var(--color-error-soft);color:var(--color-error-text)}.badge-neutral{background:var(--canvas);color:var(--ink-muted);border:1px solid var(--border)}.app-shell{width:100%;max-width:100vw;overflow-x:hidden;position:relative}.app-shell,.sidebar{display:flex;min-height:100dvh}.sidebar{width:var(--sidebar-width);background:var(--sidebar);border-right:1px solid var(--border);flex-direction:column;position:fixed;top:0;left:0;z-index:200;transition:width .2s cubic-bezier(.16,1,.3,1);overflow:hidden}.sidebar-collapsed{width:64px}.sidebar-collapsed .sidebar-brand{justify-content:center;padding:16px 0;height:auto;min-height:56px}.sidebar-collapsed .sidebar-nav{padding:8px}.sidebar-collapsed .nav-item{justify-content:center;padding:10px 0;gap:0}.sidebar-collapsed .nav-item span{display:none}.sidebar-collapsed .nav-item img{width:22px!important;height:22px!important}.sidebar-toggle{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--ink-disabled);cursor:pointer;background:none;border:1px solid transparent;transition:all .12s ease;flex-shrink:0}.sidebar-toggle:hover{color:var(--ink-muted);background:var(--canvas);border-color:var(--border)}.sidebar-brand{height:93px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid var(--border);box-sizing:border-box;flex-shrink:0}.sidebar-brand-name{font-size:1rem;font-weight:700;color:var(--ink);letter-spacing:-.01em}.sidebar-user-top{display:flex;align-items:center;gap:10px;padding:16px 28px;border-bottom:1px solid var(--border)}.sidebar-user-name{font-size:.875rem;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2;margin-bottom:0}.sidebar-user-label{font-size:.75rem;color:var(--ink-muted)}.sidebar-nav{flex:1 1;padding:12px 16px;overflow-y:auto}.sidebar-section{margin-bottom:16px}.sidebar-section-label{font-size:.65rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-disabled);padding:12px 12px 6px}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--radius);font-size:.875rem;font-weight:500;color:var(--ink-muted);transition:background .1s ease,color .1s ease;margin-bottom:1px;position:relative;cursor:pointer;border:none;background:none;width:100%;text-align:left;text-decoration:none}.nav-item:hover{background:var(--canvas);color:var(--ink)}.nav-item.active{background:var(--accent-soft);color:var(--accent);font-weight:600;border:1px solid var(--accent)}.nav-item.active:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:3px;background:var(--accent);border-radius:0 3px 3px 0}.nav-item-secondary.active{background:var(--surface-2);color:var(--ink);font-weight:600;border:1px solid var(--ink-muted)}.nav-item-secondary.active:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:3px;background:var(--ink-muted);border-radius:0 3px 3px 0}.sidebar-secondary{padding:8px 16px;border-top:1px solid var(--border);flex-shrink:0}.sidebar-collapsed .sidebar-secondary{padding:8px}.sidebar-footer{padding:32px 28px;border-top:1px solid var(--border)}.sidebar-version{font-size:.7rem;color:var(--ink-disabled);letter-spacing:.03em}.sidebar-user{display:flex;align-items:center;gap:10px}.sidebar-avatar-beta{width:44px;height:44px;border-radius:8px;background:var(--accent-soft);border:1.5px solid var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0;gap:1px}.sidebar-avatar-first{margin-top:-5px}.sidebar-avatar-first,.sidebar-avatar-second{font-size:1rem;font-weight:700;color:var(--accent);line-height:1;font-family:JetBrains Mono,monospace}.sidebar-avatar-second{margin-top:5px}.sidebar-badge-exclusive{display:inline-block;margin-top:2px;padding:1px 7px;font-size:.58rem;font-weight:600;letter-spacing:.08em;color:var(--accent);border:1px solid var(--accent);border-radius:4px;line-height:1.5;font-family:JetBrains Mono,monospace}.sidebar-logout-btn{padding:6px;border-radius:6px;color:var(--ink-muted);cursor:pointer;background:none;border:none;display:flex;align-items:center;justify-content:center;transition:background .12s ease;align-self:center}.main-content,.sidebar-logout-btn:hover{background:var(--canvas)}.main-content{margin-left:var(--sidebar-width);flex:1 1;min-height:100dvh;min-width:0;max-width:calc(100vw - var(--sidebar-width));overflow-x:hidden;position:relative;transition:margin-left .2s cubic-bezier(.16,1,.3,1),max-width .2s cubic-bezier(.16,1,.3,1)}.sidebar-collapsed~.main-content{margin-left:64px;max-width:calc(100vw - 64px)}.editor-fullscreen .sidebar{transform:translateX(-100%);opacity:0;pointer-events:none}.editor-fullscreen .sidebar-toggle{display:none}.editor-fullscreen .main-content{margin-left:0!important;max-width:100vw!important}.page-header{height:93px;padding:0 28px;border-bottom:1px solid var(--border);background:var(--surface);display:flex;align-items:center;justify-content:space-between;gap:16px;box-sizing:border-box}.page-title{font-size:1.375rem;font-weight:700;letter-spacing:-.015em;color:var(--ink)}.page-header-icon{width:22px;height:22px;object-fit:contain;flex-shrink:0}.page-body{padding:24px 28px;max-width:100%;box-sizing:border-box;overflow-x:hidden}.flex,.flex-col{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-5{gap:20px}.gap-6{gap:24px}.w-full{width:100%}.h-full{height:100%}.p-4{padding:16px}.p-5{padding:20px}.p-6{padding:24px}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mt-6{margin-top:24px}.mt-8{margin-top:32px}.mb-2{margin-bottom:8px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}.divider{height:1px;background:var(--border);margin:16px 0}.grid-2{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.grid-asymmetric{display:grid;grid-template-columns:2fr 1fr;grid-gap:20px;gap:20px}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-row{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;gap:12px;transition:background .1s ease;text-decoration:none;color:inherit}.list-row:hover{background:var(--canvas)}.efficiency-bar{height:6px;border-radius:100px;background:var(--border);overflow:hidden}.efficiency-fill{height:100%;border-radius:100px;transition:width .3s ease}.efficiency-fill.above-target{background:var(--success)}.efficiency-fill.near-target{background:var(--warning)}.efficiency-fill.below-target,.live-dot{background:var(--error)}.live-dot{width:8px;height:8px;border-radius:50%;animation:pulse-dot 1.5s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.skeleton{background:linear-gradient(90deg,var(--border) 25%,var(--canvas) 50%,var(--border) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:fadeInUp .2s ease forwards}.stagger-1{animation-delay:40ms}.stagger-2{animation-delay:80ms}.stagger-3{animation-delay:.12s}.stagger-4{animation-delay:.16s}.court-container{background:var(--dark);position:relative}.court-container,.rotation-timeline{border-radius:var(--radius-md);overflow:hidden}.rotation-timeline{background:var(--surface);border:1px solid var(--border)}.rotation-quarter{border-bottom:1px solid var(--border)}.rotation-quarter:last-child{border-bottom:none}.rotation-row{display:flex;align-items:center;border-bottom:1px solid var(--border);height:44px}.rotation-row:last-child{border-bottom:none}.rotation-label{width:120px;flex-shrink:0;padding:0 12px;font-size:.875rem;font-weight:500;color:var(--ink-muted);border-right:1px solid var(--border)}.rotation-track{flex:1 1;position:relative;height:44px}.rotation-bar{position:absolute;top:8px;height:28px;border-radius:4px;display:flex;align-items:center;padding:0 8px;font-size:.75rem;font-weight:600;color:white;overflow:hidden;white-space:nowrap}@media (max-width:768px){:root{--sidebar-width:0px}.sidebar{display:none}.main-content{margin-left:0}.page-body,.page-header{padding-left:16px;padding-right:16px}.grid-2,.grid-asymmetric{grid-template-columns:1fr}}@media print{.sidebar{display:none!important}.main-content{margin-left:0!important}.no-print{display:none!important}.card,body{background:white}.card{box-shadow:none;border:1px solid var(--neutral-200)}body{visibility:hidden!important;background:#fff!important}.app-shell,.main-content{display:block!important;visibility:visible!important;position:static!important;height:auto!important;min-height:0!important;margin:0!important;padding:0!important}.main-content>:not([class*=reportOverlay]),.sidebar,.topbar,aside{display:none!important}[class*=reportOverlay]{position:static!important;display:block!important;background:#fff!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;overflow:visible!important}[class*=reportOverlay],[class*=reportOverlay] *{visibility:visible!important}}@keyframes ripple-expand{animation:ripple-expand .7s ease-out forwards}@media print{@page{size:A4;margin:4mm}}@keyframes spell-fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.spell-fade-up{animation:spell-fade-up .35s cubic-bezier(.16,1,.3,1) both}.spell-fade-up-1{animation-delay:60ms}.spell-fade-up-2{animation-delay:.12s}.spell-fade-up-3{animation-delay:.18s}.spell-fade-up-4{animation-delay:.24s}@keyframes spell-slide-in{0%{opacity:0;transform:translateX(12px)}to{opacity:1;transform:translateX(0)}}.spell-slide-in{animation:spell-slide-in .25s cubic-bezier(.16,1,.3,1) both}.action-btn-spell{transition:transform 80ms ease,filter 80ms ease}.action-btn-spell:active:not(:disabled){transform:scale(.94);filter:brightness(.92)}.card-hover-lift{transition:box-shadow .15s ease,transform .15s ease}.card-hover-lift:hover{box-shadow:0 8px 24px var(--color-shadow-strong);transform:translateY(-1px)}.sidebar-avatar-initials{display:flex;align-items:center;gap:1px}