:root{--ground: #eceae4;--panel: #f6f5f1;--panel-2: #e6e3db;--line: #cfcbc1;--text: #23262d;--muted: #6b7079;--gold: #b8892a;--on-gold: #1a1509;--silk: #f3f1ea;--bottom: #1d8f9c;--rats: #e0561b;--alarm: #c0392b;--sel: #111111;--ok: #3f8f47;--net-lit: #1f8fff;--board: #2a2d35;--board-edge: #7a7f8a;--grid: #3a3e48;--court-b-fill: #1d8f9c22;--court-f-fill: #f3f1ea14;--shadow: #00000033;--mono: "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;--sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--ground: #12141a;--panel: #1a1d24;--panel-2: #22262f;--line: #2e333d;--text: #e7e4dc;--muted: #8b909b;--gold: #d6ad4a;--silk: #ece9e1;--bottom: #55b8c4;--rats: #ff7a3d;--alarm: #d9534f;--sel: #ffffff;--ok: #7bc47f;--board: #1e2128;--board-edge: #5a5f6b;--grid: #2a2e37;--court-b-fill: #55b8c412;--court-f-fill: #ece9e10c;--shadow: #00000088}}:root[data-theme=dark]{--ground: #12141a;--panel: #1a1d24;--panel-2: #22262f;--line: #2e333d;--text: #e7e4dc;--muted: #8b909b;--gold: #d6ad4a;--silk: #ece9e1;--bottom: #55b8c4;--rats: #ff7a3d;--alarm: #d9534f;--sel: #ffffff;--ok: #7bc47f;--board: #1e2128;--board-edge: #5a5f6b;--grid: #2a2e37;--court-b-fill: #55b8c412;--court-f-fill: #ece9e10c;--shadow: #00000088}html,body{height:100%;margin:0}body{background:var(--ground);color:var(--text);font:14px/1.45 var(--sans);overflow:hidden}button,input,textarea,select{font-family:inherit}:focus-visible{outline:2px solid var(--gold);outline-offset:1px}.modal{background:var(--panel, #f6f5f1);color:var(--text, #23262d);border:1px solid var(--line, #cfcbc1);border-radius:10px;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;padding:20px;box-sizing:border-box;width:min(var(--modal-width, 30rem),100% - 48px);max-width:none;max-height:85vh;overflow-y:auto;font-family:var(--sans, sans-serif);animation:modal-in .18s ease-out}.modal::backdrop{background:#00000080;animation:backdrop-in .18s ease-out}.modal.closing{animation:modal-out .14s ease-in forwards}.modal.closing::backdrop{animation:backdrop-out .14s ease-in forwards}.modal .error{color:var(--alarm, #c0392b);font-size:13px}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.modal-head h2{margin:0;font:600 17px/1.3 var(--sans, sans-serif)}.modal-close{position:relative;flex:none;width:28px;height:28px;padding:0;border:1px solid var(--line, #cfcbc1);border-radius:50%;background:var(--ground, #eceae4);color:var(--muted, #6b7079);cursor:pointer;transition:color .12s ease,border-color .12s ease,transform .12s ease}.modal-close:before,.modal-close:after{content:"";position:absolute;top:50%;left:50%;width:12px;height:1.5px;border-radius:1px;background:currentcolor;transform:translate(-50%,-50%) rotate(45deg)}.modal-close:after{transform:translate(-50%,-50%) rotate(-45deg)}.modal-close:hover{color:var(--text, #23262d);border-color:var(--text, #23262d);transform:rotate(90deg)}.modal-close:focus-visible{outline:2px solid var(--text, #23262d);outline-offset:2px}@media(prefers-reduced-motion:reduce){.modal-close{transition:none}.modal-close:hover{transform:none}}@media(max-width:720px){.modal{margin-bottom:0;width:100%;max-height:85dvh;padding-bottom:calc(20px + env(safe-area-inset-bottom));border-radius:10px 10px 0 0;animation:sheet-up .2s ease-out}.modal.closing{animation:sheet-down .16s ease-in forwards}}@media(prefers-reduced-motion:reduce){.modal,.modal.closing,.modal::backdrop,.modal.closing::backdrop{animation:none}}@media(min-width:721px){.modal.drawer{margin:0 0 0 auto;width:min(var(--modal-width, 36rem),100%);height:100dvh;max-height:none;border-width:0 0 0 1px;border-radius:0;animation:drawer-in .22s cubic-bezier(.2,.7,.3,1)}.modal.drawer::backdrop{background:#0000004d}.modal.drawer.closing{animation:drawer-out .16s ease-in forwards}}@keyframes drawer-in{0%{transform:translate(100%)}}@keyframes drawer-out{to{transform:translate(100%)}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.97)}}@keyframes modal-out{to{opacity:0;transform:translateY(8px) scale(.97)}}@keyframes backdrop-in{0%{opacity:0}}@keyframes backdrop-out{to{opacity:0}}@keyframes sheet-up{0%{transform:translateY(100%)}}@keyframes sheet-down{to{transform:translateY(100%)}}
