:root{--bg: #0d1117;--bg2: #161b22;--bg3: #21262d;--border: #30363d;--text: #e6edf3;--text2: #8b949e;--accent: #58a6ff;--green: #3fb950;--amber: #d29922;--red: #f85149;--radius: 6px;--font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.4 var(--font);color-scheme:dark}main{max-width:860px;margin:0 auto;padding:12px}header{padding:4px 0 12px}.brand{color:var(--accent);font-weight:700;font-size:18px;text-decoration:none}h1{font-size:20px;margin:0 0 8px}.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:12px}label{display:flex;flex-direction:column;gap:4px;color:var(--text2)}fieldset{border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:8px}legend{color:var(--text2);padding:0 4px}input,textarea,button{font:inherit;color:var(--text);background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius);padding:6px 10px}input:focus,textarea:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);color:var(--bg);border-color:var(--accent);font-weight:600}button.danger,.danger{color:var(--red)}button.link{background:none;border:none;color:var(--accent);padding:0 6px;font-size:12px}button.link.danger{color:var(--red)}button.x{background:none;border:none;padding:0 0 0 6px;color:var(--text2)}.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.row input[placeholder]{flex:1 1 160px}.meta{border-top:1px solid var(--border);padding-top:12px}.hint{color:var(--text2);font-size:13px;margin:0}.error{color:var(--red);margin:0}.desc{margin:0;white-space:pre-wrap}.final{margin:0;color:var(--green);font-weight:600}.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.chips li{background:var(--bg3);border:1px solid var(--border);border-radius:999px;padding:2px 10px}section{display:flex;flex-direction:column;gap:8px}h2{font-size:15px;margin:0}select{font:inherit;color:var(--text);background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius);padding:6px 10px}.row label{flex-direction:column}.brush{border-width:2px}.brush.yes{border-color:var(--green)}.brush.maybe{border-color:var(--amber)}.brush.no{border-color:var(--text2)}.brush.active.yes{background:var(--green);color:var(--bg)}.brush.active.maybe{background:var(--amber);color:var(--bg)}.brush.active.no{background:var(--text2);color:var(--bg)}.scroll{overflow-x:auto}.slots{border-collapse:separate;border-spacing:2px;user-select:none;-webkit-user-select:none}.slots th{color:var(--text2);font-weight:500;font-size:12px;padding:2px 4px;text-align:center;white-space:nowrap}.slots th.time{position:sticky;left:0;background:var(--bg2);text-align:right;padding-right:8px}.slots th.head{cursor:pointer}.slots th.head:hover{color:var(--accent)}.slots .date{color:var(--text)}.slot{min-width:46px;height:30px;text-align:center;background:var(--bg3);border-radius:4px;font-weight:700}.slot.none{background:transparent}.paintable .slot{cursor:crosshair;touch-action:none}.slot.on,.slot.yes{background:#3fb9508c;color:var(--text)}.slot.maybe{background:#d299228c;color:var(--text)}.slot.preview{outline:2px solid var(--accent);outline-offset:-2px}.slot.best{outline:2px solid var(--green);outline-offset:-2px}.slot.focus{outline:2px solid var(--accent);outline-offset:-2px}.slot[data-key]{cursor:pointer}.slot .maybe{color:var(--amber);font-size:11px;margin-left:2px}.detail{display:flex;flex-direction:column;gap:4px;align-items:flex-start;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px}.polls{border-collapse:collapse;width:100%}.polls th,.polls td{text-align:left;padding:6px 10px;border-bottom:1px solid var(--border);white-space:nowrap}.polls th{color:var(--text2);font-weight:500;font-size:13px}.polls td.title{white-space:normal;min-width:160px}.polls a{color:var(--accent)}.polls .actions{display:flex;gap:8px;align-items:center}
