:root{--bg-1: #0b1120;--bg-2: #131c31;--panel: rgba(30, 41, 59, .72);--panel-solid: #1e293b;--panel-2: rgba(51, 65, 85, .55);--text: #f1f5f9;--muted: #94a3b8;--primary: #22d3aa;--primary-2: #14b8a6;--accent: #6366f1;--danger: #f43f5e;--gold: #fbbf24;--border: rgba(148, 163, 184, .18);--border-strong: rgba(148, 163, 184, .32);--radius: 18px;--radius-sm: 12px;--touch: 56px;--shadow: 0 10px 30px rgba(0, 0, 0, .35);--shadow-sm: 0 4px 14px rgba(0, 0, 0, .25)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:18px;line-height:1.45;-webkit-text-size-adjust:100%;touch-action:manipulation;background:radial-gradient(1200px 600px at 20% -10%,#1e293b 0%,transparent 60%),radial-gradient(1000px 500px at 100% 0%,#172554 0%,transparent 55%),linear-gradient(160deg,var(--bg-1),var(--bg-2));background-attachment:fixed;min-height:100vh}#app{display:flex;flex-direction:column;min-height:100vh}.app-main{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:20px 18px 32px}.screen{animation:fade-in .25s ease}@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.app-title{font-size:2rem;font-weight:800;letter-spacing:-.02em;margin:6px 0 22px;text-align:center;background:linear-gradient(90deg,#fff,#cbd5e1);-webkit-background-clip:text;background-clip:text;color:transparent}.app-title.small{font-size:1.35rem;margin:0}.center{text-align:center}.muted{color:var(--muted);font-size:.9rem}.panel{background:var(--panel);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:var(--radius);padding:20px;margin-bottom:18px;border:1px solid var(--border);box-shadow:var(--shadow)}.panel h2{margin:0 0 14px;font-size:1.2rem;font-weight:700}.panel-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:14px}.panel-head h2{margin:0}.btn{min-height:var(--touch);padding:0 20px;font-size:1rem;font-weight:650;color:var(--text);background:var(--panel-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:transform .06s ease,background .15s ease,box-shadow .15s ease,filter .15s ease}.btn:hover{background:#475569b3}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.35;cursor:not-allowed}.btn.primary{background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#052018;border:none;box-shadow:0 6px 18px #22d3aa4d}.btn.primary:hover{filter:brightness(1.06)}.btn.danger{background:linear-gradient(135deg,#fb7185,var(--danger));color:#fff;border:none;box-shadow:0 6px 18px #f43f5e47}.btn.large{min-height:66px;font-size:1.15rem;flex:1}.btn.small{min-height:44px;font-size:.9rem;padding:0 16px;border-radius:10px}.text-input,.select{min-height:var(--touch);padding:0 16px;font-size:1rem;color:var(--text);background:#0f172a99;border:1px solid var(--border-strong);border-radius:var(--radius-sm);transition:border-color .15s ease,box-shadow .15s ease}.text-input:focus,.select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #22d3aa33}.text-input{flex:1;min-width:0}.color-input{min-height:var(--touch);width:58px;padding:4px;background:#0f172a99;border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer}.add-row,.start-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.player-list{display:flex;flex-wrap:wrap;gap:12px}.player-chip{display:flex;align-items:stretch;gap:4px;border:2px solid transparent;border-radius:14px;padding:5px;background:#0f172a80;opacity:.5;transition:opacity .15s ease,border-color .15s ease,transform .06s ease}.player-chip.present{opacity:1;border-color:var(--primary);box-shadow:0 4px 16px #22d3aa2e}.chip-toggle{min-height:48px;border:none;border-radius:10px;padding:0 18px;font-size:1rem;font-weight:750;cursor:pointer;transition:transform .06s ease}.chip-toggle:active{transform:scale(.96)}.chip-color{min-height:48px;width:44px;border:none;border-radius:10px;background:transparent;padding:2px;cursor:pointer}.chip-edit,.chip-remove{min-height:48px;width:42px;border:none;border-radius:10px;background:transparent;color:var(--text);font-size:1.1rem;cursor:pointer;transition:background .15s ease}.chip-edit:hover{background:#94a3b826}.chip-remove{color:var(--danger)}.chip-remove:hover{background:#f43f5e26}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.toolbar-actions{display:flex;gap:10px}.courts{display:flex;gap:14px;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x mandatory}.court{flex:1 0 250px;min-width:250px;scroll-snap-align:start;background:linear-gradient(180deg,#33415580,#1e293b80);border:1px solid var(--border-strong);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow-sm)}.court.active{border-color:#22d3aa73}.court.free{opacity:.55;border-style:dashed}.court-label{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.court-empty{font-size:1.4rem;text-align:center;padding:28px 0;color:var(--muted)}.court-players{display:flex;flex-direction:column;gap:8px}.court-player-row{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#0f172a73;border-radius:var(--radius-sm);padding:8px 10px}.win-btn{min-height:44px;padding:0 14px;font-size:.9rem;font-weight:700;color:#1f1400;background:linear-gradient(135deg,#fde68a,var(--gold));border:none;box-shadow:0 4px 12px #fbbf244d}.win-btn:hover{filter:brightness(1.05)}.court-players .vs{align-self:center;color:var(--muted);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em}.court-actions{display:flex;flex-direction:column;gap:8px;margin-top:auto}.court-controls{display:flex;align-items:center;gap:10px}.court-count{color:var(--muted);font-size:.9rem;min-width:74px;text-align:center}.name-tag{display:inline-block;padding:8px 15px;border-radius:10px;font-weight:750;font-size:1.05rem;box-shadow:inset 0 0 0 1px #ffffff1f}.vs{color:var(--muted);font-size:.9rem}.upcoming-list{display:flex;flex-direction:column;gap:10px}.upcoming-item{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#0f172a73;border:1px solid var(--border);border-radius:14px;padding:12px 14px;transition:transform .06s ease,border-color .15s ease}.upcoming-item:hover{border-color:var(--border-strong)}.upcoming-item.repeat{border-style:dashed;opacity:.8}.upcoming-pair{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tag-repeat{font-size:.72rem;color:var(--muted);border:1px solid var(--border-strong);border-radius:8px;padding:3px 8px;text-transform:uppercase;letter-spacing:.05em}.badge{background:#6366f12e;border:1px solid rgba(99,102,241,.4);color:#c7d2fe;border-radius:999px;padding:6px 14px;font-size:.82rem;font-weight:600}.notice{background:linear-gradient(135deg,#22d3aa1f,#6366f11f);border:1px solid rgba(34,211,170,.4);border-radius:14px;padding:20px;text-align:center}.notice p{font-size:1.1rem;margin:0 0 4px}.notice-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:14px}.history-list{display:flex;flex-direction:column;gap:10px}.history-item{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#0f172a73;border:1px solid var(--border);border-radius:14px;padding:12px 14px}.history-result{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.score{font-variant-numeric:tabular-nums;font-weight:800;font-size:1.15rem;color:#fff}.ranking-table{display:flex;flex-direction:column;gap:8px}.ranking-row{display:grid;grid-template-columns:52px 1fr 70px 70px 70px;align-items:center;gap:8px;background:#0f172a80;border:1px solid var(--border);border-radius:14px;padding:14px}.ranking-row:first-of-type:not(.header){background:linear-gradient(135deg,#fbbf242e,#0f172a80);border-color:#fbbf2480}.ranking-row.header{background:transparent;border:none;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;padding:4px 14px}.col.rank{font-size:1.4rem;text-align:center}.col.wins,.col.played,.col.diff{text-align:center;font-variant-numeric:tabular-nums}.col.strong{font-weight:800;font-size:1.15rem;color:var(--primary)}.ranking-actions{display:flex;margin-top:22px}.app-footer{position:sticky;bottom:0;display:flex;justify-content:center;gap:12px;padding:14px;border-top:1px solid var(--border);background:#0b1120cc;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}@media (max-width: 600px){body{font-size:16px}.app-title{font-size:1.6rem}.court{flex-basis:85%;min-width:85%}.ranking-row{grid-template-columns:44px 1fr 54px 54px 54px}}
