:root{--bg:#fafaf9;--surface:#fff;--fg:#1c1917;--muted:#78716c;--line:#e7e5e4;--accent:#2563eb;--danger:#dc2626;--warn:#c2410c;--personal-bg:#ecfdf5;--personal-fg:#047857;--work-bg:#eff6ff;--work-fg:#1d4ed8;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:system-ui,-apple-system,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#1c1917;--surface:#262220;--fg:#f5f5f4;--muted:#a8a29e;--line:#44403c;--accent:#60a5fa;--danger:#f87171;--warn:#fb923c;--personal-bg:#064e3b;--personal-fg:#a7f3d0;--work-bg:#1e3a8a;--work-fg:#bfdbfe;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);margin:0}main{max-width:680px;margin:0 auto;padding:16px 16px 96px}main.center{align-content:center;place-items:center;gap:16px;min-height:100vh;display:grid}a{color:inherit}h2{margin:0;font-size:1.4rem}.top{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.back{color:var(--muted);font-weight:600;text-decoration:none}.segmented{border:1px solid var(--line);border-radius:8px;gap:2px;padding:2px;display:inline-flex}.menu{position:relative}.icon-button{width:40px;height:40px;color:var(--muted);background:0 0;border-radius:999px;place-items:center;padding:0;display:grid}.icon-button:hover,.icon-button[aria-expanded=true]{background:var(--surface);color:var(--fg);box-shadow:0 0 0 1px var(--line)}.menu-pop{z-index:10;border:1px solid var(--line);background:var(--surface);border-radius:10px;min-width:200px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #0000001f}.menu-head{border-bottom:1px solid var(--line);text-overflow:ellipsis;margin-bottom:4px;padding:6px 10px 8px;overflow:hidden}.menu-pop button{color:var(--fg);text-align:left;background:0 0;border-radius:6px;padding:8px 10px}.menu-pop button:hover{background:var(--bg)}.segmented button{color:var(--muted);background:0 0;padding:6px 12px}.segmented button.on{background:var(--surface);color:var(--fg);box-shadow:0 0 0 1px var(--line)}input:not([type=checkbox]),select,textarea{border:1px solid var(--line);background:var(--surface);min-width:0;color:inherit;font:inherit;border-radius:8px;padding:10px 12px}button{background:var(--accent);color:#fff;font:inherit;cursor:pointer;border:0;border-radius:8px;padding:10px 16px}button.link{color:var(--muted);background:0 0;padding:4px 8px}button.link.danger{color:var(--danger)}button.as-text{color:inherit;text-align:left;background:0 0;padding:0}.check{width:20px;height:20px;accent-color:var(--accent);cursor:pointer;flex:none}.list{margin:0;padding:0;list-style:none}.row{border-bottom:1px solid var(--line);background:var(--bg);align-items:center;gap:10px;min-height:44px;padding:6px 0;display:flex}.card .row{background:var(--surface)}.row:last-child{border-bottom:0}.row.dragging{z-index:1;position:relative;box-shadow:0 4px 16px #00000026}.row .title{overflow-wrap:anywhere;flex:1;min-width:0}.row.done .title{color:var(--muted);text-decoration:line-through}.handle{color:var(--muted);cursor:grab;touch-action:none;letter-spacing:-2px;background:0 0;padding:4px 2px}.count{font-variant-numeric:tabular-nums}.chip{border:0;border-radius:999px;flex:none;padding:2px 8px;font-size:.75rem;font-weight:600}select.chip{padding:4px 8px}.chip-personal{background:var(--personal-bg);color:var(--personal-fg)}.chip-work{background:var(--work-bg);color:var(--work-fg)}.due{color:var(--muted);flex:none;font-size:.8rem}.due-overdue{color:var(--danger);font-weight:600}.due-today{color:var(--warn);font-weight:600}.cards{gap:12px;margin:0;padding:0;list-style:none;display:grid}.card{border:1px solid var(--line);background:var(--surface);border-radius:12px;align-items:flex-start;gap:6px;padding:12px 16px 12px 8px;display:flex}.card.dragging{z-index:1;position:relative;box-shadow:0 8px 24px #00000026}.card>.handle{margin-top:2px}.card-body{flex:1;min-width:0}.card-head{align-items:center;gap:8px;margin-bottom:4px;display:flex}.card-title{overflow-wrap:anywhere;margin-right:auto;font-weight:700}.open{border:1px solid var(--line);color:var(--accent);border-radius:999px;flex:none;padding:4px 10px;font-size:.85rem;font-weight:600;text-decoration:none}.new-project{border:1px dashed var(--line);width:100%;color:var(--muted);background:0 0;margin:12px 0}.new-project:hover{color:var(--fg);border-color:var(--muted)}.archived{margin-top:8px}.zone{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:20px 0 4px;font-size:.8rem}.row.fixed{border-bottom:0;min-height:0;padding:0}.row.fixed .zone{margin-top:16px}.row.next .title{font-weight:500}.more{color:var(--muted);margin-top:4px;font-size:.85rem;display:inline-block}.quick-add{gap:8px;padding:6px 0;display:flex}.quick-add input{flex:1}.add{flex-wrap:wrap;gap:8px;margin:16px 0;display:flex}.add input:not([type=date]){flex:200px}.project-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.grow{flex:200px;min-width:0}.project-head h2{cursor:text}.h-input{width:100%;font-size:1.2rem;font-weight:700}.editor{flex:1;gap:8px;padding:8px 0;display:grid}.editor-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.editor-row label{color:var(--muted);align-items:center;gap:8px;display:flex}.push{margin-left:auto}.archive-toggle{margin-top:16px;display:block}.hint{margin-top:0;font-size:.85rem}.undo{background:var(--fg);width:min(560px,100% - 32px);color:var(--bg);border-radius:10px;align-items:center;gap:12px;padding:10px 16px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.undo .title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.undo button.link{color:var(--bg);font-weight:700}.qr-login{text-align:center;justify-items:center;gap:12px;display:grid}.qr svg{background:#fff;border-radius:8px;width:240px;height:240px;display:block}.code-big{letter-spacing:.15em;font-variant-numeric:tabular-nums;font-size:1.4rem}.approve h2{margin-bottom:4px}h3{margin:24px 0 8px}code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.85em}.project-id{flex-wrap:wrap;flex-basis:100%;align-items:center;gap:6px;display:flex}.project-id code{overflow-wrap:anywhere}.small{font-size:.8rem}.callout{border:1px solid var(--warn);border-radius:10px;gap:8px;margin:16px 0;padding:12px 16px;display:grid}.callout p{margin:0}.token{background:var(--surface);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;border-radius:6px;padding:8px}.code{border:1px solid var(--line);background:var(--surface);border-radius:8px;margin:8px 0;padding:12px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.8rem;overflow-x:auto}.day-strip{scroll-snap-type:x proximity;scrollbar-width:thin;gap:6px;padding:2px 2px 8px;display:flex;overflow-x:auto}.day{border:1px solid var(--line);background:var(--surface);width:54px;color:var(--fg);scroll-snap-align:start;border-radius:10px;flex:none;justify-items:center;padding:6px 0 4px;display:grid}.day .dow{color:var(--muted);font-size:.7rem}.day .dnum{font-size:1.1rem;font-weight:700;line-height:1.3}.day .dmon{color:var(--muted);font-size:.65rem}.day .dots{min-height:.9em;color:var(--accent);font-size:.7rem;line-height:.9}.day.today .dow{color:var(--accent);font-weight:700}.day[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:#fff}.day[aria-pressed=true] .dow,.day[aria-pressed=true] .dmon,.day[aria-pressed=true] .dots{color:#fff}.timeline{border:1px solid var(--line);background:var(--surface);overscroll-behavior:contain;border-radius:10px;overflow-y:auto}.timeline-grid{--gutter:48px;-webkit-user-select:none;user-select:none;position:relative}.timeline-grid.picking{cursor:crosshair}.hour{border-top:1px solid var(--line);pointer-events:none;height:48px;position:absolute;left:0;right:0}.hour span{background:var(--surface);color:var(--muted);padding:0 2px;font-size:.7rem;position:absolute;top:-.6em;left:6px}.block{box-sizing:border-box;border-left:3px solid var(--accent);background:color-mix(in srgb, var(--accent) 14%, var(--surface));border-radius:6px;padding:2px 6px;font-size:.8rem;position:absolute;overflow:hidden}.block.tag-personal{border-left-color:var(--personal-fg);background:var(--personal-bg)}.block.tag-work{border-left-color:var(--work-fg);background:var(--work-bg)}.block.done{opacity:.55}.block.done .block-title{text-decoration:line-through}.block.other{border-left-color:var(--muted);background:color-mix(in srgb, var(--muted) 15%, var(--surface));color:var(--muted);pointer-events:none}.block-row{align-items:flex-start;gap:6px;display:flex}.block-row .check{width:16px;height:16px;margin-top:2px}.block-text{min-width:0;font-size:inherit;display:grid}.block-title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.block-meta{color:var(--muted);font-size:.72rem}.block.selection{left:var(--gutter);z-index:2;border:2px solid var(--accent);background:color-mix(in srgb, var(--accent) 25%, var(--surface));color:var(--fg);cursor:grab;touch-action:none;align-items:flex-start;font-weight:600;display:flex;right:4px}.block.selection .resize{cursor:ns-resize;touch-action:none;height:14px;position:absolute;bottom:0;left:0;right:0}.block.selection .resize:after{content:"";background:var(--accent);border-radius:2px;width:28px;height:4px;margin-left:-14px;position:absolute;bottom:4px;left:50%}.now{left:var(--gutter);z-index:3;background:var(--danger);pointer-events:none;height:2px;position:absolute;right:0}.home-schedule{margin-bottom:16px}.empty-day{margin:4px 0 0}.schedule-btn{color:var(--muted);background:0 0;flex:none;align-items:center;gap:4px;padding:4px 6px;font-size:.75rem;display:inline-flex}.schedule-btn.set{color:var(--accent)}.schedule-btn:hover{background:var(--bg)}.modal-backdrop{z-index:20;background:#0006;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--bg);border-radius:16px;gap:12px;width:min(560px,100%);max-height:calc(100vh - 32px);padding:16px;display:grid;overflow-y:auto;box-shadow:0 16px 48px #0000004d}.small-modal{width:min(400px,100%)}.modal h2{margin:0}.modal-head{display:grid}.modal-sub{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.slot-summary{margin:0}.field,.field-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.field{flex-direction:column;align-items:stretch}.num{width:72px}.weekdays{gap:6px;display:flex}.weekdays button{background:var(--surface);width:34px;height:34px;color:var(--fg);box-shadow:0 0 0 1px var(--line);border-radius:999px;padding:0;font-size:.8rem}.weekdays button.on{background:var(--accent);color:#fff;box-shadow:none}.radio{align-items:center;gap:8px;min-height:40px;display:flex}.editor-row.end{justify-content:flex-end}.push-right{margin-right:auto}.deadline{align-items:center;gap:6px;display:flex}.deadline input{padding:4px 8px}button:disabled{opacity:.5;cursor:default}@media (width<=600px){.modal-backdrop{place-items:end stretch;padding:0}.modal{border-radius:16px 16px 0 0;width:100%;max-height:94vh}}.muted{color:var(--muted)}.error{color:var(--danger)}
