:root{--navy: #0b1220;--navy-2: #111a2e;--blue-dark: #1d4ed8;--blue-dark-2: #1e40af;--blue-light: #93c5fd;--blue-light-2: #bfdbfe;--ink: #0b1220;--chip: rgba(255, 255, 255, .9);--head-bg: #0e1a33;--head-ink: #dbeafe;font-family:ui-rounded,SF Pro Rounded,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:#e6eefc;background:radial-gradient(1200px 600px at 50% -10%,#16233f 0%,transparent 60%),linear-gradient(180deg,var(--navy) 0%,var(--navy-2) 100%)}.app{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:1.25rem clamp(.6rem,1.6vw,1.25rem)}.link-chip{position:fixed;right:1rem;bottom:1rem;z-index:20;display:inline-flex;align-items:center;gap:.45rem;padding:.4rem .85rem .4rem .4rem;border-radius:999px;text-decoration:none;font-size:.85rem;font-weight:600;color:#cfe0ff;background:#111a2eb8;border:1px solid rgba(147,197,253,.22);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:.72;transition:opacity .18s ease,background .18s ease,border-color .18s ease,transform .12s ease}.link-chip:hover,.link-chip:focus-visible{opacity:1;background:#111a2eeb;border-color:#93c5fd80;transform:translateY(-1px)}.link-chip:focus-visible{outline:2px solid var(--blue-light);outline-offset:2px}.link-chip-mark{width:1.7rem;height:1.7rem;flex:none;border-radius:8px}.link-chip-ext{color:#8fa6cc;font-size:.8rem}.title-card{text-align:center;margin:auto 0;animation:cardIn .6s ease both}@keyframes cardIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.title{margin:0;font-size:clamp(2.4rem,8vw,4.5rem);font-weight:800;letter-spacing:-.02em;background:linear-gradient(180deg,#eaf2ff,var(--blue-light));-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 2px 30px rgba(59,130,246,.25)}.subtitle{margin:.75rem 0 2rem;font-size:clamp(1rem,3vw,1.25rem);color:#9fb4d6}.title-actions{display:flex;flex-wrap:wrap;gap:.9rem;justify-content:center;align-items:center}.start{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-width:11rem;min-height:3.4rem;border:0;cursor:pointer;font:inherit;font-weight:700;font-size:1rem;color:#04122e;padding:.6rem 1.6rem;border-radius:999px;background:linear-gradient(180deg,#bfe0ff,var(--blue-light));box-shadow:0 0 0 1px #93c5fd99,0 10px 30px #3b82f666;animation:glow 2.4s ease-in-out infinite;transition:transform .12s ease}.start:hover{transform:translateY(-2px)}.start:active{transform:translateY(0)}.start--soon{gap:.1rem;cursor:not-allowed;color:#9fb4d6;background:#ffffff0a;box-shadow:inset 0 0 0 1px #93c5fd38;animation:none}.start--soon:hover{transform:none}.soon-main{font-size:1rem;font-weight:700;line-height:1.1}.soon-tag{font-size:.62rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#9cb6e6}@keyframes glow{0%,to{box-shadow:0 0 0 1px #93c5fd99,0 8px 24px #3b82f659}50%{box-shadow:0 0 0 1px #93c5fde6,0 14px 40px #3b82f699}}.stage{width:100%;max-width:720px;text-align:center}.board-title{margin:0 0 .5rem;font-size:clamp(1.5rem,5vw,2.25rem);font-weight:800;letter-spacing:-.02em;color:#eaf2ff}.board-stats{display:flex;align-items:baseline;justify-content:center;gap:.5rem;margin:0 0 1.25rem;font-size:clamp(.85rem,2.4vw,1.05rem);font-weight:600;color:var(--blue-light)}.board-stat-sep{color:#93c5fd80}.board-wrap{overflow-x:auto}.board{display:grid;gap:8px}.corner{border-radius:8px}.head{display:flex;align-items:center;justify-content:center;font-weight:700;letter-spacing:.01em}.head--x{align-items:flex-end;padding-bottom:.45rem;color:#7e93b8;font-size:clamp(.72rem,1vw,.88rem)}.head--y{justify-content:flex-end;padding-right:.6rem;color:#aebfdd;font-size:clamp(.8rem,1.1vw,.95rem)}.cell{position:relative;display:flex;align-items:center;justify-content:center;min-height:clamp(46px,calc((100vh - 220px) / 7),128px);padding:4px;border-radius:12px}.cell--dark{background:linear-gradient(180deg,var(--blue-dark),var(--blue-dark-2))}.cell--light{background:linear-gradient(180deg,var(--blue-light-2),var(--blue-light))}.name{display:inline-block;max-width:100%;padding:.2rem .4rem;border-radius:6px;background:var(--chip);color:var(--ink);font-weight:700;font-size:clamp(.56rem,1.7vw,.8rem);line-height:1.12;white-space:normal;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;box-shadow:0 1px 4px #0003}.name--open{background:transparent;box-shadow:none;color:#dbeafe80;font-weight:600;font-size:.62rem;letter-spacing:.08em}.replay{margin-top:1.5rem;cursor:pointer;font:inherit;font-weight:600;color:#cfe0ff;background:transparent;border:1px solid rgba(147,197,253,.4);padding:.5rem 1.2rem;border-radius:999px;transition:background .15s ease,transform .12s ease}.replay:hover{background:#93c5fd1f;transform:translateY(-1px)}.pop{opacity:0;animation:pop .62s cubic-bezier(.2,1.4,.35,1) both}@keyframes pop{0%{opacity:0;transform:scale(.3)}70%{opacity:1;transform:scale(1.12)}to{opacity:1;transform:scale(1)}}.desk-shell{display:flex;align-items:flex-start;gap:1rem;width:100%;text-align:left}.desk-shell .board-wrap{flex:1 1 auto;min-width:0}.desk-roster{flex:0 0 clamp(260px,23vw,340px);display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(147,197,253,.14);border-radius:16px;background:#ffffff08}.desk-roster.is-locked{pointer-events:none}.dr-head{margin:0;padding:.7rem .9rem;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#8fa6cc;border-bottom:1px solid rgba(147,197,253,.14)}.dr-scroll{flex:1;min-height:0;overflow-y:auto}.dr-row{display:flex;align-items:center;gap:.7rem;width:100%;padding:.72rem .95rem;background:none;border:0;border-bottom:1px solid rgba(147,197,253,.08);color:#e6eefc;font:inherit;font-size:1rem;text-align:left;cursor:pointer;transition:background .12s ease}.dr-row:hover,.dr-row.on{background:#93c5fd1a}.dr-row.locked{background:#93c5fd29;box-shadow:inset 3px 0 0 var(--sw)}.dr-row:focus-visible{outline:2px solid var(--blue-light);outline-offset:-2px}.dr-sw{width:11px;height:11px;flex:none;border-radius:50%;background:var(--sw);box-shadow:inset 0 0 0 1px #ffffff2e}.dr-name{flex:1;min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dr-n{flex:none;font-weight:800;font-size:.95rem;color:#9db0d6;font-variant-numeric:tabular-nums}.dr-hint{padding:.55rem .9rem;font-size:.75rem;color:#7f96bd;border-top:1px solid rgba(147,197,253,.1)}.cell{transition:opacity .16s ease,transform .16s ease,box-shadow .16s ease}.board.is-filtering .cell:not(.hot){opacity:.22}.cell.hot{z-index:1;transform:translateY(-1px);box-shadow:0 0 0 2px #ffffffeb,0 8px 22px #00000080}.cell--seat{overflow:hidden}.cell-fill{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;border-radius:12px;box-shadow:inset 0 0 0 1px #ffffff1a;transform-origin:center center;backface-visibility:hidden}.cell-fill.flip{opacity:0;animation-name:cardflip;animation-timing-function:cubic-bezier(.2,.7,.3,1);animation-fill-mode:both}@keyframes cardflip{0%{opacity:0;transform:perspective(700px) rotateY(-90deg)}50%{opacity:1}to{opacity:1;transform:perspective(700px) rotateY(0)}}.cell-initials{display:inline-block;color:#fff;font-weight:800;font-size:clamp(.85rem,1.1vw,1.05rem);letter-spacing:.03em}.cell-name{display:block;width:100%;padding:0 5px;color:#fff;font-weight:700;line-height:1.08;letter-spacing:.01em;text-align:center;overflow-wrap:normal;word-break:keep-all;-webkit-hyphens:none;hyphens:none}@media (min-width: 641px) and (max-width: 860px){.desk-shell{flex-direction:column}.desk-roster{flex:none;width:100%;height:auto!important}}.fade-open{opacity:0;animation:fadeOpen .5s ease both}@keyframes fadeOpen{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.stage.is-done .pop,.stage.is-done .fade-open,.stage.is-done .cell-fill{animation:none!important;opacity:1!important;transform:none!important}@media (prefers-reduced-motion: reduce){.pop,.fade-open,.cell-fill,.title-card,.start{animation:none!important;opacity:1!important;transform:none!important}}@media (max-width: 640px){.app{padding:.75rem 0 0}.link-chip{top:.6rem;left:.6rem;right:auto;bottom:auto;padding:.3rem;gap:0;opacity:.85}.link-chip-text,.link-chip-ext{display:none}.link-chip-mark{width:1.5rem;height:1.5rem}.title-card{padding:0 1rem}}.m-shell{width:100%;flex:1 1 auto;display:flex;flex-direction:column}.m-head{position:relative;text-align:center;padding:.5rem 3rem .4rem}.m-head .app-title{margin:0;font-size:clamp(1.4rem,6vw,1.8rem);font-weight:800;letter-spacing:-.02em;background:linear-gradient(180deg,#eaf2ff,var(--blue-light));-webkit-background-clip:text;background-clip:text;color:transparent}.m-head .board-stats{margin:.15rem 0 0}.m-replay{position:absolute;top:.4rem;right:.7rem;width:2rem;height:2rem;border-radius:999px;cursor:pointer;font:inherit;font-size:1rem;color:#cfe0ff;background:#93c5fd1a;border:1px solid rgba(147,197,253,.3);display:inline-flex;align-items:center;justify-content:center}.m-replay:active{transform:scale(.94)}.m-body{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:.6rem .9rem calc(4.75rem + env(safe-area-inset-bottom))}.m-tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(3,1fr);padding:.35rem .4rem calc(.5rem + env(safe-area-inset-bottom));background:#0a101ee6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid rgba(147,197,253,.14)}.m-tabbar button{font:inherit;cursor:pointer;border:0;background:transparent;display:flex;flex-direction:column;align-items:center;gap:2px;color:#6f83a6;padding:.3rem 0;border-radius:10px;transition:color .15s ease}.m-tabbar button.on{color:var(--blue-light)}.m-tabbar button:focus-visible{outline:2px solid var(--blue-light);outline-offset:2px}.m-tab-ic{font-size:1.15rem;line-height:1}.m-tab-lb{font-size:.62rem;font-weight:700;letter-spacing:.02em}.m-skip{margin:.4rem auto;display:block;cursor:pointer;font:inherit;font-weight:600;color:#cfe0ff;background:transparent;border:1px solid rgba(147,197,253,.4);padding:.5rem 1.2rem;border-radius:999px}.m-skip--board{margin:.9rem auto .2rem}.m-skip:focus-visible{outline:2px solid var(--blue-light);outline-offset:2px}.m-board{display:grid;gap:3px}.m-th{display:flex;align-items:center;justify-content:center;min-height:16px;padding:2px 0;border-radius:4px;background:#0e1a33;color:#cfe0ff;font-size:.56rem;font-weight:700;text-transform:uppercase}.m-cell{aspect-ratio:1 / 1;border:0;border-radius:5px;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;font:inherit;font-size:.46rem;font-weight:800;line-height:1;color:#fff;overflow:hidden}.m-cell--open{background:#93c5fd1a;color:#bfdbfe8c;font-weight:600}.m-cell.sel{outline:2px solid #fff;outline-offset:-1px}.m-cell:focus-visible{outline:2px solid var(--blue-light);outline-offset:1px}.m-board-hint{text-align:center;font-size:.66rem;color:#6f83a6;margin:.6rem 0 0}.m-board-detail{margin-top:.5rem;min-height:40px;padding:.55rem;border-radius:10px;background:#ffffff0a;border:1px solid rgba(147,197,253,.14);font-size:.78rem;color:#9fb4d6;text-align:center}.m-board-detail b{color:#fff}.m-board.is-done .pop,.m-board.is-done .fade-open{animation:none!important;opacity:1!important;transform:none!important}.m-swipe{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;scrollbar-width:none}.m-swipe::-webkit-scrollbar{display:none}.m-swipe:focus-visible{outline:2px solid var(--blue-light);outline-offset:2px;border-radius:8px}.m-day{flex:0 0 100%;scroll-snap-align:center}.m-day-h{margin:0 0 .5rem;font-size:1.05rem;font-weight:800;letter-spacing:-.01em;text-align:center;color:#eaf2ff}.m-slot{display:flex;align-items:center;gap:.5rem;padding:.5rem .6rem;margin-bottom:5px;border-radius:10px;background:#ffffff09;border:1px solid rgba(147,197,253,.14)}.m-slot-time{flex:none;width:84px;font-size:.68rem;font-weight:700;color:#9fb4d6;font-variant-numeric:tabular-nums}.m-slot-who{display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;font-weight:700;color:#fff}.m-slot.is-open .m-slot-who{color:#bfdbfe80;font-weight:600}.m-swatch{width:9px;height:9px;border-radius:3px;flex:none;display:inline-block}.m-dots{display:flex;justify-content:center;gap:5px;margin-top:.7rem}.m-dots i{width:6px;height:6px;border-radius:999px;background:#93c5fd4d;transition:width .15s ease}.m-dots i.on{width:16px;background:var(--blue-light)}.m-finder-h{margin:.2rem 0 .1rem;font-size:1.15rem;font-weight:800;text-align:center;color:#eaf2ff}.m-finder-sub{margin:0 0 .8rem;font-size:.74rem;text-align:center;color:#9fb4d6}.m-namepick{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-bottom:.9rem}.m-namepick button{font:inherit;font-size:.72rem;font-weight:700;padding:.32rem .6rem;border-radius:999px;cursor:pointer;color:#cfe0ff;background:#93c5fd1a;border:1px solid rgba(147,197,253,.25)}.m-namepick button.active{color:#04122e;background:linear-gradient(180deg,#bfe0ff,var(--blue-light));border-color:transparent}.m-namepick button:focus-visible{outline:2px solid var(--blue-light);outline-offset:2px}.m-result{padding:.9rem;border-radius:14px;background:#ffffff0a;border:1px solid rgba(147,197,253,.14)}.m-rc-name{display:flex;align-items:center;justify-content:center;gap:.45rem;margin:0 0 .1rem;font-size:1rem;font-weight:800;color:#fff}.m-rc-count{margin:0 0 .7rem;font-size:.74rem;text-align:center;color:var(--blue-light)}.m-rc-slot{display:flex;align-items:center;gap:.5rem;padding:.45rem .55rem;margin-bottom:5px;border-radius:9px;background:#93c5fd14;font-size:.78rem;font-weight:600;color:#dbe8ff}.m-rc-day{flex:none;width:36px;font-weight:800;color:#fff}
