:root{color-scheme:light dark;--bg: light-dark(#f8f7f4, #16181d);--card: light-dark(#ffffff, #1e2128);--ink: light-dark(#22252a, #e8e6e1);--muted: light-dark(#68707c, #9aa2ad);--line: light-dark(#e3e1db, #2c3038);--accent: #0e8a8a;--accent-ink: #ffffff;--avail: light-dark(#12996b, #17b57f);--ifneed: light-dark(#e8b93c, #d9ad35);--danger: #c94f4f;--heat-lo: light-dark(#eef1f0, #232730);--heat-hi: #0e8a8a}html.light{color-scheme:light}html.dark{color-scheme:dark}*{box-sizing:border-box}body{margin:0;font:16px/1.5 system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--ink)}main{max-width:42rem;margin:0 auto;padding:1rem}.center{text-align:center;padding-top:3rem}.prose{max-width:640px}.topbar{display:flex;justify-content:space-between;align-items:center;padding:.6rem 1rem;border-bottom:1px solid var(--line)}.brand{font-weight:700;text-decoration:none;color:var(--ink);font-size:1.1rem;white-space:nowrap}.nav-right{display:flex;gap:1rem;align-items:center;margin-left:auto}.topbar{gap:.4rem .75rem;flex-wrap:wrap}.pill{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:.05rem .55rem;text-decoration:none;white-space:nowrap;align-self:center;margin-right:auto}.pill:hover{opacity:.85}.nav-right a{color:var(--muted);text-decoration:none}footer{text-align:center;color:var(--muted);padding:2rem 0 3rem;font-size:.85rem}footer a{color:var(--muted)}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1rem;margin:1rem 0}.card-inner{background:var(--bg);border-radius:8px;padding:.8rem;margin-top:.8rem}.hero h1{font-size:1.7rem;margin:1rem 0 .3rem}.hero p{color:var(--muted);margin-top:0}.field{display:flex;flex-direction:column;gap:.25rem;margin:.6rem 0}.field span{font-size:.85rem;color:var(--muted)}.field.inline{flex-direction:row;align-items:center;gap:.5rem;flex-wrap:wrap}input,select,button,textarea{font:inherit;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:.45rem .7rem}button{cursor:pointer}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}button.danger{color:var(--danger);border-color:var(--danger);background:transparent}button.link{border:none;background:none;color:var(--accent);padding:.2rem;text-decoration:underline}button.link.danger{color:var(--danger)}button:disabled{opacity:.5;cursor:default}.row{display:flex;gap:.8rem;flex-wrap:wrap;align-items:end}.mode-toggle,.tabs{display:flex;gap:0;margin:.8rem 0;border:1px solid var(--line);border-radius:8px;overflow:hidden;width:fit-content}.mode-toggle button,.tabs button{border:none;border-radius:0;background:var(--card);padding:.5rem 1rem}.mode-toggle button.on,.tabs button.on{background:var(--accent);color:var(--accent-ink)}.calendar{margin:.5rem 0}.cal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem}.cal-grid{display:grid;grid-template-columns:repeat(7,2.4rem);gap:4px}.cal-dow{font-size:.7rem;color:var(--muted);text-align:center}.cal-day{width:2.4rem;height:2.2rem;padding:0}.cal-day.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.cal-day.past{opacity:.45}.weekdays{display:flex;gap:6px;flex-wrap:wrap;margin:.5rem 0}.weekdays button.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.auth form{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.auth .hint{width:100%}.badge{color:var(--avail);font-weight:700;margin-left:.3rem}.unverified{color:var(--muted);margin-left:.3rem}.verified-row{display:flex;gap:.5rem;align-items:center}.hint{color:var(--muted);font-size:.85rem}.warn{color:#b07a1e;font-size:.9rem}.error{color:var(--danger);font-size:.9rem}.stats{text-align:center;color:var(--muted);font-size:.85rem}.event-head h1{margin-bottom:.3rem}.share-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.url{background:var(--card);border:1px solid var(--line);padding:.3rem .6rem;border-radius:6px;font-size:.85rem;overflow-wrap:anywhere}.meta{color:var(--muted);font-size:.85rem}.announce{border-color:var(--accent)}.announce ul{margin:.3rem 0;padding-left:1.2rem}.announce .note{font-style:italic}.announce .button{display:inline-block;background:var(--accent);color:var(--accent-ink);border-radius:8px;padding:.45rem .8rem;text-decoration:none}.legend .chip{padding:.05rem .5rem;border-radius:999px;font-size:.8rem}.chip.s1{background:var(--avail);color:#fff}.chip.s2{background:var(--ifneed);color:#302506}.grid-wrap{overflow:auto;max-height:70vh;width:fit-content;max-width:100%;border:1px solid var(--line);border-radius:10px;background:var(--card)}.grid{border-collapse:separate;border-spacing:0;touch-action:none;user-select:none;-webkit-user-select:none}.grid th{position:sticky;background:var(--card);z-index:2;font-weight:500}.grid thead th{top:0;padding:.35rem .5rem;text-align:center;box-shadow:0 1px 0 var(--line)}.grid thead th .day{display:block;font-size:.8rem}.grid thead th .date{display:block;font-size:.7rem;color:var(--muted)}.grid th.time{left:0;font-size:.7rem;color:var(--muted);padding:0 .4rem;text-align:right;vertical-align:top;min-width:4.2rem;box-shadow:1px 0 0 var(--line)}.grid th.corner{top:0;left:0;z-index:3}.cell{width:44px;min-width:44px;height:17px;padding:0;border-top:1px dotted var(--line);border-left:1px solid var(--line)}tr:nth-child(4n+1) .cell,tr:nth-child(odd) .cell.g30,tr .cell.g60{border-top-style:solid}.cell.gap{background:repeating-linear-gradient(45deg,transparent,transparent 3px,var(--line) 3px,var(--line) 4px)}.cell.paint{cursor:crosshair}.cell.heat{cursor:pointer}.cell.paint.s0{background:transparent}.cell.paint.s1{background:var(--avail)}.cell.paint.s2{background:var(--ifneed)}.cell.heat{background:color-mix(in oklab,var(--heat-hi) calc(var(--heat, 0) * 100%),var(--heat-lo))}.cell.heat.picked{outline:2px solid var(--ink);outline-offset:-2px}.cell:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.pick-list{list-style:none;padding:0}.pick-list li{margin:.25rem 0}.people ul{list-style:none;padding:0}.people li{display:flex;align-items:center;gap:.6rem;padding:.2rem 0}.person{display:flex;align-items:center;gap:.4rem}.settings{position:relative}.settings-pop{position:absolute;right:0;top:2.2rem;z-index:10;display:flex;flex-direction:column;gap:.5rem;width:max-content}@media (max-width: 600px){.cell{width:38px;min-width:38px}main{padding:.6rem}.grid-wrap{max-height:60vh}}:root{--sc-n2: light-dark(#bc4a3c, #cf5b4c);--sc-n1: light-dark(#dd8d3e, #d98a3a);--sc-z0: light-dark(#aab1ba, #5c6470);--sc-p1: light-dark(#57a06b, #4f9d63);--sc-p2: var(--avail)}.ballot{padding:.6rem .8rem}.ballot-key{display:flex;gap:.8rem;flex-wrap:wrap;margin:.2rem 0 .6rem}.bkey b{font-weight:700}.bkey.sc-n2 b{color:var(--sc-n2)}.bkey.sc-n1 b{color:var(--sc-n1)}.bkey.sc-z0 b{color:var(--sc-z0)}.bkey.sc-p1 b{color:var(--sc-p1)}.bkey.sc-p2 b{color:var(--sc-p2)}.ballot-row{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;padding:.35rem 0;border-top:1px solid var(--line)}.ballot-when{flex:1 1 11rem;min-width:11rem}.ballot-btns{display:flex;gap:4px}.bscore{width:2.2rem;height:2rem;padding:0;border-radius:8px;color:var(--muted);background:var(--card);line-height:1}.bscore.on{color:#fff;font-weight:700}.bscore.sc-n2.on{background:var(--sc-n2);border-color:var(--sc-n2)}.bscore.sc-n1.on{background:var(--sc-n1);border-color:var(--sc-n1)}.bscore.sc-z0.on{background:var(--sc-z0);border-color:var(--sc-z0)}.bscore.sc-p1.on{background:var(--sc-p1);border-color:var(--sc-p1)}.bscore.sc-p2.on{background:var(--sc-p2);border-color:var(--sc-p2)}button.ballot-row.result{width:100%;text-align:left;border:none;border-radius:0;background:none}button.ballot-row.result:hover,button.ballot-row.result.picked{background:var(--bg)}.ballot-rank{color:var(--muted);min-width:1.4rem;text-align:right}.ballot-bar{display:flex;flex:2 1 8rem;height:.9rem;border-radius:999px;overflow:hidden;background:var(--heat-lo)}.ballot-bar .seg{display:block}.seg.sc-n2{background:var(--sc-n2)}.seg.sc-n1{background:var(--sc-n1)}.seg.sc-z0{background:var(--sc-z0);opacity:.45}.seg.sc-p1{background:var(--sc-p1)}.seg.sc-p2{background:var(--sc-p2)}.ballot-sum{min-width:2.2rem;text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}.ballot-sum.pos{color:var(--avail);font-weight:600}.ballot-sum.neg{color:var(--danger);font-weight:600}.veto{color:var(--sc-n2);font-size:.8rem;font-weight:700}.ballot-detail{padding:.2rem 0 .5rem 2.1rem;font-size:.9rem}.ballot-detail p{margin:.2rem 0}.cand-picker{margin:.6rem 0}.cand-day{display:flex;gap:.6rem;align-items:baseline;margin:.3rem 0;flex-wrap:wrap}.cand-day-label{min-width:6.5rem;color:var(--muted);font-size:.85rem}.cand-chips{display:flex;gap:4px;flex-wrap:wrap}.cand{padding:.2rem .55rem;border-radius:999px;font-size:.85rem}.cand.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
