:root{--bg: #f7f7f9;--surface: #ffffff;--ink: #1f2330;--muted: #71757f;--line: #e9e9ee;--accent: #6366f1;--accent-ink: #4f46e5;--accent-soft: #eef0fe;--shadow: 0 1px 2px rgba(20, 20, 40, .04), 0 8px 24px rgba(20, 20, 40, .06);--radius: 14px;--time-col: 66px;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink)}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);-webkit-font-smoothing:antialiased}button,input,select{font:inherit;color:inherit}a{color:var(--accent-ink);text-decoration:none}a:hover{text-decoration:underline}.app{max-width:920px;margin:0 auto;padding:0 20px 80px}.topbar{display:flex;align-items:baseline;gap:12px;padding:22px 2px 28px}.brand{font-weight:700;font-size:20px;letter-spacing:-.02em;color:var(--ink)}.brand:hover{text-decoration:none;color:var(--accent-ink)}.tag{color:var(--muted);font-size:13px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.field span{font-size:13px;color:var(--muted)}.field input,.field select{padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;outline:none;transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.row3{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}button.primary{width:100%;padding:12px 16px;background:var(--accent);color:#fff;border:none;border-radius:10px;font-weight:600;cursor:pointer;transition:background .15s,transform .05s}button.primary:hover{background:var(--accent-ink)}button.primary:active{transform:translateY(1px)}button.primary:disabled{background:#c7c8d4;cursor:not-allowed}button.ghost{padding:8px 14px;background:#fff;border:1px solid var(--line);border-radius:9px;cursor:pointer;transition:border-color .15s,background .15s}button.ghost:hover{border-color:#d4d4dd;background:#fcfcfd}button.ghost:disabled{color:#b8bac4;cursor:not-allowed}.hero{padding:8px 2px 26px}.hero h1{font-size:34px;letter-spacing:-.03em;margin:0 0 10px}.hero .sub{color:var(--muted);font-size:16px;line-height:1.55;max-width:60ch;margin:0}.create{max-width:560px}.recent{margin-top:30px}.recent h3{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.recent ul{list-style:none;padding:0;margin:8px 0 0}.recent li{padding:6px 0;border-bottom:1px solid var(--line)}.muted{color:var(--muted)}.ehead{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.ehead h1{font-size:26px;letter-spacing:-.02em;margin:0 0 4px}.people{color:var(--muted);margin:0;font-size:14px}.ehead-actions{display:flex;gap:8px;flex-shrink:0}.toolbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:16px}.toggle{display:inline-flex;background:#eeeef2;border-radius:10px;padding:3px}.toggle button{border:none;background:transparent;padding:7px 18px;border-radius:8px;cursor:pointer;color:var(--muted);font-weight:500}.toggle button.on{background:#fff;color:var(--ink);box-shadow:0 1px 2px #0000000f}.people-chips{display:flex;gap:8px;flex-wrap:wrap}.chip{padding:6px 12px;border:1px solid var(--line);background:#fff;border-radius:999px;cursor:pointer;font-size:13px;transition:all .12s}.chip.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.chip.add{color:var(--muted);border-style:dashed}.grid{display:grid;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;overflow-x:auto;-webkit-user-select:none;user-select:none;touch-action:none}.corner{position:sticky;left:0}.dayhead{display:flex;flex-direction:column;align-items:center;padding-bottom:6px;line-height:1.1}.dayhead .dow{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.dayhead .num{font-size:16px;font-weight:600}.timelabel{font-size:11px;color:var(--muted);text-align:right;padding-right:10px;align-self:center;white-space:nowrap}.cell{position:relative;height:30px;border-radius:6px;background:#f1f1f5;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .08s,box-shadow .12s}.cell:hover{box-shadow:inset 0 0 0 2px #6366f159}.cell.on{background:var(--accent)}.cell .count{font-size:12px;font-weight:600}.cell.best{box-shadow:inset 0 0 0 2px var(--accent-ink),0 0 0 2px #6366f140}.cell.best:after{content:"★";position:absolute;top:1px;right:3px;font-size:10px;line-height:1;color:var(--accent-ink)}.cell-tip{position:fixed;z-index:50;max-width:240px;background:var(--ink);color:#fff;padding:7px 11px;border-radius:9px;font-size:12px;line-height:1.4;box-shadow:0 6px 20px #14142838;pointer-events:none;display:flex;flex-direction:column;gap:1px}.cell-tip strong{color:#c7d2fe}.cell-tip .names{opacity:.92}.cell-tip .muted{color:#b9bcc6}.summary{margin-top:22px}.summary h3{font-size:15px;margin:0 0 10px;color:var(--accent-ink)}.bestlist{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}.bestlist li{background:var(--accent-soft);color:var(--accent-ink);padding:6px 12px;border-radius:999px;font-size:13px;font-weight:500}.join{max-width:420px}.modepick{display:flex;width:100%}.modepick button{flex:1}.cal,.wdpick{margin-bottom:16px}.wdpick{display:flex;gap:8px;flex-wrap:wrap}.cal-head{display:flex;align-items:center;justify-content:space-between;font-weight:600;margin-bottom:10px}.cal-nav{width:32px;height:32px;border:1px solid var(--line);background:#fff;border-radius:8px;cursor:pointer;font-size:18px;line-height:1;color:var(--muted)}.cal-nav:hover{border-color:#d4d4dd;color:var(--ink)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.cal-dow{text-align:center;font-size:11px;color:var(--muted);padding-bottom:2px}.cal-day{aspect-ratio:1;border:none;background:#f1f1f5;border-radius:8px;cursor:pointer;font-size:13px;color:var(--ink);transition:background .1s,color .1s}.cal-day:hover:not(:disabled):not(.sel){background:var(--accent-soft)}.cal-day.sel{background:var(--accent);color:#fff;font-weight:600}.cal-day.sel:hover{background:var(--accent-ink)}.cal-day:disabled{background:transparent;color:#c7c8d0;cursor:default}.cal-empty{aspect-ratio:1}@media(max-width:560px){.row3{grid-template-columns:repeat(2,1fr)}.hero h1{font-size:28px}.cell{height:26px}}
