:root{--surface:#fff;--surface-high:#ebe9ee;--surface-highest:#e3e1e6;--on-surface:#1b1b1f;--on-surface-variant:#46464f;--outline:#777680;--outline-variant:#c7c5d0;--error:#ba1a1a;--error-container:#ffdad6;--on-error-container:#410002;--scrim:#00000052;--rail-bg:#1a1d21;--badge:#e01e5a;--due:#ffb300;--armed:#4caf50;--accent:#4caf50;--rail-width:70px;color:var(--on-surface);background:var(--surface);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--surface:#131316;--surface-high:#2a2a2e;--surface-highest:#35353a;--on-surface:#e4e2e6;--on-surface-variant:#c7c5d0;--outline:#918f9a;--outline-variant:#46464f;--error:#ffb4ab;--error-container:#93000a;--on-error-container:#ffdad6;--scrim:#0000008c}}*{box-sizing:border-box}html,body{overscroll-behavior:none;height:100%;margin:0}body{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}input{font:inherit;color:inherit}#app{left:0;right:0;top:var(--vv-top,0px);height:var(--vv-height,100dvh);position:fixed;overflow:hidden}.shell{height:100%;padding:calc(env(safe-area-inset-top) + 40px) 24px calc(env(safe-area-inset-bottom) + 24px);text-align:center;flex-direction:column;align-items:center;gap:16px;display:flex;overflow-y:auto}.shell h1{margin:0;font-size:28px}.logo{border-radius:20px}.card{background:var(--surface-high);text-align:left;border-radius:16px;width:100%;max-width:360px;padding:16px 20px}.card h2{margin:0 0 8px;font-size:17px}.card ol{margin:0;padding-left:20px;line-height:1.7}.signin form{flex-direction:column;gap:12px;display:flex}.signin label{color:var(--on-surface-variant);flex-direction:column;gap:6px;font-size:14px;display:flex}.field{border:1px solid var(--outline-variant);background:0 0;border-radius:10px;width:100%;padding:10px 12px;font-size:17px}.field:focus{outline:2px solid var(--accent);outline-offset:-1px}.btn{background:var(--accent);color:#fff;border-radius:12px;padding:11px 16px;font-size:16px;font-weight:600}.btn:disabled{opacity:.45}.btn.text{color:var(--accent);background:0 0;padding:10px 12px}.btn.text.danger{color:var(--error)}.link{color:var(--on-surface-variant);padding:4px;font-size:14px}.muted{color:var(--on-surface-variant)}.error{color:var(--error);margin:8px 0 0}.shell footer{color:var(--on-surface-variant);margin-top:auto;font-size:12px}.app{height:100%;display:flex}.main{min-width:0;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);flex-direction:column;flex:1;display:flex}.rail{width:var(--rail-width);background:var(--rail-bg);padding:calc(env(safe-area-inset-top) + 8px) 0 calc(env(safe-area-inset-bottom) + 8px) env(safe-area-inset-left);scrollbar-width:none;flex:none;transition:width .22s;overflow:hidden auto}.rail.collapsed{width:0;padding-left:0}.rail-entry{width:var(--rail-width);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:pan-y;flex-direction:column;align-items:center;padding:4px 0;display:flex;position:relative}.rail-entry.dragging{opacity:.85;z-index:2}.rail-indicator{background:#fff;border-radius:0 3px 3px 0;width:3px;height:30px;position:absolute;top:6px;left:0}.tile{border-radius:13px;place-items:center;width:42px;height:42px;font-size:22px;line-height:1;transition:border-radius .15s;display:grid;position:relative}.tile.letter{color:#fff;font-size:16px;font-weight:800}.tile.active{border-radius:15px;box-shadow:0 0 0 1.5px #ffffffe6}.rail-name{width:calc(var(--rail-width) - 8px);text-align:center;color:#ffffff80;white-space:nowrap;text-overflow:ellipsis;margin-top:3px;font-size:9px;font-weight:700;overflow:hidden}.rail-name.active{color:#fff}.badge{background:var(--rail-bg);border-radius:9px;min-width:18px;height:18px;padding:2px;position:absolute;top:-4px;right:-4px}.badge span{text-align:center;background:var(--badge);color:#fff;border-radius:7px;min-width:14px;height:14px;padding:0 4px;font-size:9px;font-weight:800;line-height:14px;display:block}.badge.due span{background:var(--due);color:#000}.rail-add{width:var(--rail-width);justify-content:center;padding:6px 0;display:flex}.rail-add .tile{color:#ffffffb3;background:#ffffff1a;font-size:26px;font-weight:300}.header{border-bottom:1px solid var(--outline-variant);align-items:center;gap:4px;padding:6px 8px 8px 6px;display:flex}.rail-toggle{border-radius:13px;flex:none;place-items:center;width:42px;height:42px;display:grid}.rail-toggle .tile{border-radius:10px;width:32px;height:32px;font-size:18px}.rail-toggle .tile.letter{font-size:14px}.header-text{flex:1;min-width:0}.header-name{letter-spacing:-.5px;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:24px;font-weight:700;overflow:hidden}.header-counts{color:var(--on-surface-variant);align-items:center;gap:6px;margin-top:3px;font-size:12px;display:flex}.dot{background:var(--accent);border-radius:3px;width:6px;height:6px}.due-count{color:var(--due);font-weight:700}.icon-btn{width:40px;height:40px;color:var(--on-surface-variant);border-radius:20px;flex:none;place-items:center;display:grid}.icon-btn:active{background:var(--surface-high)}.list{overscroll-behavior:contain;flex:1;min-height:0;padding-bottom:8px;overflow-y:auto}.row-wrap{position:relative}.swipe-bg{background:var(--error-container);color:var(--on-error-container);justify-content:flex-end;align-items:center;padding:0 24px;font-size:14px;font-weight:500;display:flex;position:absolute;inset:0}.swipe-bg.left{justify-content:flex-start}.row{background:var(--surface);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:pan-y;align-items:center;gap:10px;padding:0 16px;display:flex;position:relative}.row.due{background:color-mix(in srgb, var(--due) 7%, var(--surface))}.row.due:before{content:"";background:var(--due);width:3px;position:absolute;top:0;bottom:0;left:0}.row.dragging{background:var(--surface-high);z-index:3;box-shadow:0 6px 18px #0000002e}.check{flex:none;place-items:center;width:32px;height:32px;display:grid}.check svg{width:22px;height:22px}.row-text{letter-spacing:.5px;overflow-wrap:anywhere;text-align:left;flex:1;min-width:0;min-height:32px;padding:6px 0;font-size:16px;line-height:24px}.row.checked .row-text{color:var(--on-surface-variant);text-decoration:line-through}.row.waiting .row-text{color:var(--outline)}.row.due:not(.checked) .row-text{font-weight:600}.row-edit{letter-spacing:.5px;min-width:0;caret-color:var(--accent);-webkit-user-select:text;user-select:text;background:0 0;border:0;outline:0;flex:1;padding:6px 0;font-size:16px;line-height:24px}.link-row{color:inherit;text-align:left;flex:1;align-items:center;gap:10px;min-width:0;min-height:44px;padding:4px 0;text-decoration:none;display:flex}.thumb{background:var(--surface-high);width:44px;height:44px;color:var(--on-surface-variant);border-radius:8px;flex:none;place-items:center;display:grid;position:relative;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.row.checked .thumb img{opacity:.45}.link-text{min-width:0}.link-title{letter-spacing:.5px;white-space:nowrap;text-overflow:ellipsis;font-size:16px;line-height:24px;overflow:hidden}.row.checked .link-title{color:var(--on-surface-variant);text-decoration:line-through}.link-domain{color:var(--on-surface-variant);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.glyph-btn{border-radius:50%;flex:none;padding:5px;font-size:12px;line-height:1;position:relative}.row.due .glyph-btn{background:color-mix(in srgb, var(--due) 20%, transparent)}.more{width:30px;height:30px;color:var(--outline);border-radius:15px;flex:none;place-items:center;display:grid}.not-due{letter-spacing:.07em;color:var(--outline);align-items:center;gap:10px;padding:14px 16px;font-size:11px;font-weight:800;display:flex}.not-due:before,.not-due:after{content:"";background:var(--outline-variant);flex:1;height:1px}.tooltip{z-index:10;background:var(--surface-highest);width:max-content;max-width:240px;color:var(--on-surface);text-align:left;cursor:default;border-radius:12px;padding:12px 14px 6px;position:absolute;bottom:calc(100% + 6px);right:0;box-shadow:0 4px 16px #0003}.tooltip.below{top:calc(100% + 6px);bottom:auto}.tooltip-title{font-size:14px;font-weight:600}.tooltip-body{color:var(--on-surface-variant);margin-top:4px;font-size:13px}.tooltip .btn.text{margin:4px -12px 0;font-size:14px}.composer{margin:8px 10px calc(env(safe-area-inset-bottom) + 8px);background:var(--surface);border:1.5px solid var(--outline-variant);border-radius:14px}.composer.has-text{border-color:var(--accent)}.composer-input{letter-spacing:.5px;width:100%;caret-color:var(--accent);background:0 0;border:0;outline:0;padding:11px 14px 3px;font-size:16px;line-height:24px;display:block}.composer-input::placeholder{color:var(--on-surface-variant)}.composer-tools{align-items:center;gap:2px;padding:2px 6px 6px;display:flex}.tool{width:34px;height:34px;color:var(--on-surface-variant);border-radius:9px;place-items:center;display:grid}.tool.armed{background:color-mix(in srgb, var(--armed) 18%, transparent);color:var(--armed)}.spacer{flex:1}.send{background:var(--accent);color:#fff;border-radius:17px;place-items:center;width:34px;height:34px;display:grid}.send:disabled{background:var(--surface-highest);color:var(--outline)}.empty{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.empty h2{margin:0;font-size:22px;font-weight:400}.empty p{color:var(--on-surface-variant);margin:0 0 8px;font-size:14px}.scrim{z-index:50;background:var(--scrim);justify-content:center;align-items:flex-end;animation:.15s fade;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:520px;max-height:88%;padding:8px 20px calc(env(safe-area-inset-bottom) + 16px);border-radius:20px 20px 0 0;animation:.2s rise;overflow-y:auto}.sheet-grip{background:var(--outline-variant);border-radius:3px;width:36px;height:5px;margin:0 auto 12px}.sheet h2{margin:0 0 4px;font-size:20px;font-weight:600}.sheet .sub{color:var(--on-surface-variant);margin:0 0 12px;font-size:14px}.sheet-actions{justify-content:flex-end;gap:4px;margin-top:18px;display:flex}.sheet-actions .grow{flex:1}.menu-item{text-align:left;border-bottom:1px solid var(--surface-high);align-items:center;gap:12px;width:100%;padding:14px 4px;font-size:16px;display:flex}.menu-item:last-child{border-bottom:0}.menu-item.danger{color:var(--error)}.choice{border-radius:10px;justify-content:space-between;width:100%;padding:14px 12px;font-size:16px;display:flex}.choice:active{background:var(--surface-high)}.choice.danger{color:var(--error)}.choice:disabled{color:var(--outline)}.label{letter-spacing:.07em;color:var(--outline);text-transform:uppercase;margin:18px 0 6px;font-size:11px;font-weight:800}.chips{flex-wrap:wrap;gap:7px;display:flex}.chip{border:1px solid var(--outline-variant);border-radius:8px;padding:7px 14px;font-size:14px;font-weight:500}.chip.on{background:color-mix(in srgb, var(--accent) 18%, transparent);border-color:#0000}.chip input[type=date]{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.repeat{justify-content:space-between;align-items:center;margin-top:18px;font-size:16px;display:flex}.stepper{align-items:center;gap:12px;margin-top:10px;font-size:14px;display:flex}.stepper button{background:var(--surface-high);border-radius:17px;width:34px;height:34px;font-size:18px}.switch{background:var(--surface-highest);border-radius:16px;width:52px;height:32px;transition:background .15s;position:relative}.switch:after{content:"";background:var(--outline);border-radius:12px;width:24px;height:24px;transition:transform .15s,background .15s;position:absolute;top:4px;left:4px}.switch.on{background:var(--accent)}.switch.on:after{background:#fff;transform:translate(20px)}.icon-field{align-items:center;gap:14px;display:flex}.icon-field .field{text-align:center;width:96px;font-size:22px}.hint{color:var(--on-surface-variant);margin:6px 0 0;font-size:12px}.swatches{grid-template-columns:repeat(5,36px);gap:12px;display:grid}.swatch{border-radius:18px;width:36px;height:36px}.swatch.on{box-shadow:0 0 0 3px var(--surface), 0 0 0 5px var(--on-surface)}.move-row{border-radius:10px;align-items:center;gap:12px;width:100%;padding:8px 6px;font-size:16px;display:flex}.move-row .tile{border-radius:11px;width:34px;height:34px;font-size:18px}.move-row .tile.letter{font-size:16px;font-weight:700}.snackbar{left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom) + 84px);z-index:40;color:#f4eff4;background:#313033;border-radius:10px;align-items:center;gap:12px;max-width:480px;margin:0 auto;padding:6px 8px 6px 16px;font-size:14px;animation:.2s rise;display:flex;position:fixed;box-shadow:0 4px 12px #00000040}.snackbar span{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.snackbar button{color:#d0bcff;padding:8px;font-weight:600}.sync-dot{border-radius:4px;width:8px;height:8px;margin:0 6px}.sync-dot.syncing{background:var(--outline)}.sync-dot.offline{background:var(--due)}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(24px)}}
