:root{--ink:#10201a;--muted:#10201a9e;--team-a:#ff7a45;--team-b:#ffd23f;--warn:#ff9f0a;--danger:#ff3b30;--strip:52px;--radius:26px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{touch-action:manipulation}html,body{color:var(--ink);margin:0;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Noto Sans JP,sans-serif}body{overscroll-behavior:none;background:#5d6366;justify-content:center;min-height:100dvh;display:flex;overflow:hidden}button{font-family:inherit}.backdrop{z-index:-1;position:fixed;inset:0;overflow:hidden}.blob{filter:blur(60px);opacity:.55;border-radius:50%;position:absolute}.blob.ball{background:#73765a;width:60vmax;height:60vmax;top:-18vmax;left:-20vmax}.blob.hard{background:#545e6b;width:55vmax;height:55vmax;top:18vh;right:-22vmax}.blob.grass{background:#55625b;width:50vmax;height:50vmax;bottom:-22vmax;left:-12vmax}.blob.clay{opacity:.35;background:#75665f;width:28vmax;height:28vmax;bottom:4vh;right:0}.glass{-webkit-backdrop-filter:blur(24px)saturate(130%);backdrop-filter:blur(24px)saturate(130%);background:linear-gradient(150deg,#ffffff9e,#ffffff4d 55%,#fff6);border:1px solid #fff9;box-shadow:inset 0 1px 1px #fffffff2,inset 0 -1px 1px #ffffff59,inset 0 0 18px #ffffff40,0 12px 32px #1432462e}.app{width:100%;max-width:440px;height:100dvh;padding:max(12px, env(safe-area-inset-top)) 16px max(20px, env(safe-area-inset-bottom));flex-direction:column;gap:14px;display:flex}body[data-cols="2"] .app{max-width:820px}body[data-cols="3"] .app,body[data-cols="4"] .app{max-width:1240px}header{justify-content:space-between;align-items:center;display:flex}.help-btn{width:40px;height:40px;color:var(--ink);border-radius:50%;place-items:center;font-size:17px;font-weight:900;text-decoration:none;display:grid}.members-btn{color:var(--ink);cursor:pointer;border-radius:999px;padding:9px 16px;font-size:15px;font-weight:800}.stack{border-radius:var(--radius);--cols:1;--rows:1;flex:1;min-height:0;position:relative;overflow:hidden;container-type:size}.card{--pad:12px;--gap:10px;--bottom:14px;--ratio:.62;--edge:3px;--court-h:min(calc((100cqh - var(--strip) * 4 - var(--bottom) - (var(--rows) - 1) * var(--gap)) / var(--rows)), calc((100cqw - var(--pad) * 2 - var(--edge) - (var(--cols) - 1) * var(--gap)) / var(--cols) / var(--ratio)));--card-h:calc(var(--court-h) * var(--rows) + (var(--rows) - 1) * var(--gap) + var(--strip) + var(--bottom));left:0;right:0;top:calc(100cqh - var(--strip) * 3 - var(--card-h));height:var(--card-h);width:max(min(100cqw, 340px), calc(var(--court-h) * var(--ratio) * var(--cols) + var(--pad) * 2 + (var(--cols) - 1) * var(--gap) + var(--edge)));color:var(--ink);border-radius:var(--radius);transform-origin:50% 0;will-change:transform;-webkit-user-select:none;user-select:none;touch-action:none;flex-direction:column;margin-inline:auto;transition:transform .45s cubic-bezier(.2,.8,.2,1),opacity .45s;display:flex;position:absolute;overflow:hidden}.card:before{content:"";pointer-events:none;border-radius:inherit;background:radial-gradient(120% 50% at 15% 0,#ffffff8c,#0000 60%);position:absolute;inset:0}.card>*{position:relative}.card.dragging{transition:none}.card.top{cursor:grab}.card.top:active{cursor:grabbing}.card:not(.top){cursor:pointer}.card.swap .courts{animation:.35s ease-out swap}@keyframes swap{0%{opacity:.3;transform:scale(.94)}}.strip{height:var(--strip);flex:none;align-items:center;gap:10px;padding:0 16px;display:flex}.strip .no{white-space:nowrap;letter-spacing:.01em;flex:none;font-size:22px;font-weight:900}.strip .no small{color:var(--muted);margin-left:2px;font-size:12px;font-weight:700}.strip .rest{align-items:center;gap:6px;min-width:0;margin-left:auto;font-size:13px;font-weight:700;display:flex}.strip .rest-list{overscroll-behavior-x:contain;touch-action:pan-x;scrollbar-width:none;gap:6px;min-width:0;display:flex;overflow-x:auto}.strip .rest-list::-webkit-scrollbar{display:none}.strip .rest-list.more{-webkit-mask-image:linear-gradient(90deg,#000 80%,#0000);mask-image:linear-gradient(90deg,#000 80%,#0000)}.strip .rest-list span{white-space:nowrap;background:#ffffff8c;border:1px solid #ffffffb3;border-radius:999px;flex:none;padding:3px 9px}.strip .rest-list span.warn{background:var(--warn);color:#1c1c1e}.strip .cancel{background:var(--danger);color:#fff;cursor:pointer;border:1px solid #fffc;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;margin-left:auto;font-size:13px;font-weight:900;display:none;box-shadow:0 2px 8px #ff3b3059}.strip .rest~.cancel{margin-left:0}.card.cancellable .cancel{display:grid}.courts{gap:var(--gap);min-height:0;padding:0 var(--pad) var(--bottom);flex-wrap:wrap;flex:1;place-content:flex-start center;transition:opacity .3s;display:flex}.card:not(.top) .courts{opacity:0}.court{height:var(--court-h);width:calc(var(--court-h) * var(--ratio));padding:calc(var(--court-h) * .015) calc(var(--court-h) * .03);flex:none;position:relative}.court-in:after{content:"";pointer-events:none;z-index:2;border-radius:inherit;background:linear-gradient(118deg,#ffffff73 0%,#ffffff14 28%,#0000 45% 72%,#ffffff24 100%);position:absolute;inset:0}.court-in{background:linear-gradient(175deg,#78b4ff9e,#2864d27a 55%,#1e50be94);border:2px solid #ffffffeb;border-radius:6px;width:100%;height:100%;position:relative;box-shadow:0 0 10px #ffffff73,inset 0 0 8px #ffffff59,inset 0 -14px 30px #0a287833}.ln{background:#ffffffeb;position:absolute;box-shadow:0 0 6px #ffffffb3}.ln.single-l{width:2px;top:0;bottom:0;left:12.5%}.ln.single-r{width:2px;top:0;bottom:0;right:12.5%}.ln.svc-t{height:2px;top:23.1%;left:12.5%;right:12.5%}.ln.svc-b{height:2px;top:76.9%;left:12.5%;right:12.5%}.ln.center{width:2px;height:53.8%;top:23.1%;left:calc(50% - 1px)}.ln.mark-t{width:2px;height:2.5%;top:0;left:calc(50% - 1px)}.ln.mark-b{width:2px;height:2.5%;bottom:0;left:calc(50% - 1px)}.net{background:#fff;border-radius:2px;height:4px;position:absolute;top:calc(50% - 2px);left:0;right:0;box-shadow:0 2px 4px #001e3c4d}.player{z-index:3;color:var(--ink);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-weight:800;font-size:clamp(10px, calc(var(--court-h) * .036), 17px);white-space:nowrap;text-overflow:ellipsis;max-width:46%;box-shadow:inset 0 -3px 0 var(--c), 0 4px 12px #00000038;background:#ffffffd1;border:1px solid #ffffffe6;border-radius:.7em;padding:.4em .6em;position:absolute;overflow:hidden;transform:translate(-50%,-50%)}.player.a{--c:var(--team-a)}.player.b{--c:var(--team-b)}.player.again:after{content:"";background:var(--warn);border-radius:50%;width:6px;height:6px;position:absolute;top:4px;right:4px}.p-a1{top:36.5%;left:31%}.p-a2{top:36.5%;left:69%}.p-b1{top:63.5%;left:31%}.p-b2{top:63.5%;left:69%}.stack.narrow .player{max-width:94%;font-size:11px}.stack.narrow .p-a1{top:16%;left:50%}.stack.narrow .p-a2{top:36%;left:50%}.stack.narrow .p-b1{top:64%;left:50%}.stack.narrow .p-b2{top:84%;left:50%}.empty{height:calc(100% - var(--strip) * 3);z-index:1000;text-align:center;color:var(--muted);border-radius:var(--radius);cursor:pointer;place-items:center;width:100%;font-size:15px;font-weight:700;display:grid;position:absolute;bottom:0;left:0;right:0}.empty span{margin-bottom:6px;font-size:40px;display:block}.hint{z-index:900;pointer-events:none;white-space:nowrap;color:var(--ink);border-radius:999px;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:800;transition:opacity .4s;animation:.3s ease-out hint-in;display:flex;position:absolute;bottom:6%;left:50%;translate:-50%}.hint.center{bottom:auto;translate:-50% -50%}.hint.out{opacity:0}.hint-hand{font-size:18px;animation:1.2s ease-in-out infinite hint-swipe;display:inline-block}@keyframes hint-in{0%{opacity:0}}@keyframes hint-swipe{0%{opacity:0;transform:translateY(8px)}30%{opacity:1}to{opacity:0;transform:translateY(-12px)}}@media (prefers-reduced-motion:reduce){.hint-hand{animation:none}}.bar{justify-content:center;align-items:center;gap:10px;display:flex}.priority{border-radius:999px;gap:2px;padding:4px;display:flex}.priority button{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:999px;padding:10px 13px;font-size:13px;font-weight:800;transition:all .2s}.priority button[aria-checked=true]{color:#0b4d2a;background:linear-gradient(150deg,#78e69699,#28aa5a52);border-color:#c8ffd7d9;box-shadow:inset 0 1px 1px #fffc,0 2px 6px #003c1e26}.priority button:active,button.glass:active{scale:.96}.sheet-bg{opacity:0;pointer-events:none;z-index:2000;background:#0a1e1940;transition:all .25s;position:fixed;inset:0}.sheet-bg.open{opacity:1;pointer-events:auto}.sheet{width:calc(100% - 20px);max-width:420px;padding:10px 18px calc(20px + env(safe-area-inset-bottom));z-index:2001;background:linear-gradient(150deg,#ffffffbf,#ffffff80);border-radius:30px;max-height:80dvh;transition:transform .35s cubic-bezier(.2,.8,.2,1);position:fixed;bottom:10px;left:50%;overflow:auto;transform:translate(-50%,115%)}.sheet.open{transform:translate(-50%)}.grabber{background:#0000002e;border-radius:99px;width:40px;height:5px;margin:0 auto 16px}.chips{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.chips:empty{display:none}.chip{color:#0b4d2a;background:#50c8784d;border:1px solid #fffc;border-radius:999px;align-items:center;gap:6px;padding:8px 8px 8px 14px;font-size:15px;font-weight:800;display:flex;box-shadow:inset 0 1px 1px #ffffffe6}.chip .games{opacity:.55;font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}.chip .x{cursor:pointer;width:22px;height:22px;color:inherit;background:#00000012;border:none;border-radius:50%;font-size:11px}.sheet-foot{gap:8px;display:flex}.sheet-foot input{min-width:0;color:var(--ink);background:#ffffff80;border:1px solid #fffc;border-radius:14px;outline:none;flex:1;padding:12px;font-size:16px}.seg{background:#0000000f;border-radius:14px;gap:3px;padding:3px;display:flex}.seg button{cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:11px;padding:0 12px;font-size:14px;font-weight:800}.seg button.on{color:var(--ink);background:#ffffffd9;box-shadow:0 1px 4px #0000001f}.sheet-actions{justify-content:center;gap:8px;margin-top:14px;display:flex}.reset.danger{color:#c62a20}.reset{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:6px 10px;font-size:13px;font-weight:700;display:block}.reset[hidden]{display:none}
