:root{--bg:#0f1115;--card:#181b22;--line:#262a34;--text:#eceef3;--muted:#8b92a3;--accent:#4f7cff;--danger:#e5484d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}.app{max-width:720px;min-height:100dvh;padding:0 16px calc(84px + env(safe-area-inset-bottom));margin:0 auto}h1{margin:20px 0 12px;font-size:1.35rem}h1:first-letter{text-transform:uppercase}h2{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:22px 0 8px;font-size:.8rem}.muted{color:var(--muted)}.small{font-size:.8rem}.center{text-align:center;margin-top:40vh}.banner{color:#e8d28a;text-align:center;background:#2a2410;margin:0 -16px;padding:6px 10px;font-size:.8rem}.banner.err{color:#ffb4b6;background:#3a1517}.err-text{color:#ff8b8e;font-size:.85rem}button{font:inherit;color:inherit;background:var(--card);border:1px solid var(--line);cursor:pointer;border-radius:10px;padding:10px 14px}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.danger{border-color:var(--danger);color:#ff8b8e;background:0 0}button.ghost{color:var(--muted);background:0 0;border:none;padding:4px 10px;font-size:1.3rem}button.link{color:var(--accent);background:0 0;border:none;padding:0}input{font:inherit;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:10px;width:100%;padding:11px 12px}input:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.quick{gap:8px;margin:8px 0;display:flex}.quick button{min-width:48px;padding:6px 12px;font-size:1.3rem}.list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.row{background:var(--card);border:1px solid var(--line);border-radius:12px;align-items:center;gap:10px;min-height:48px;padding:8px 10px;display:flex}.row.done .grow{color:var(--muted);text-decoration:line-through}.grow{overflow-wrap:anywhere;flex:1;min-width:0}.habit-wrap{align-items:center;display:flex}.habit-wrap .row{flex:1}.check{border-radius:50%;flex:none;width:30px;height:30px;padding:0;line-height:1}.check.on{background:var(--accent);border-color:var(--accent)}.prio{min-width:34px;color:var(--muted);padding:4px 8px;font-weight:700}.prio.p2{color:#e0a800}.prio.p3{color:var(--danger)}.chip{color:#fff;border-radius:99px;margin-left:8px;padding:2px 7px;font-size:.7rem;font-style:normal}.chips{flex-wrap:wrap;gap:6px;margin:10px 0;display:flex}.chips button{border-radius:99px;padding:6px 12px;font-size:.85rem}.chips button.on{background:var(--accent);border-color:var(--accent)}.dot{border-radius:50%;width:14px;height:14px}details{color:var(--muted);margin-top:12px}details .list{margin-top:8px}.danger-zone{border:1px solid #4a2326;border-radius:12px;margin:14px 0;padding:12px}nav{border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);background:#0f1115f5;justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}nav button{max-width:180px;color:var(--muted);background:0 0;border:none;border-radius:0;flex:1;justify-items:center;gap:2px;padding:10px 4px;font-size:.72rem;display:grid}nav button.on{color:var(--accent)}.login{gap:10px;max-width:340px;margin:22vh auto 0;padding:0 16px;display:grid}.login h1{text-align:center}.week{grid-template-columns:26px repeat(7,1fr);gap:2px;font-size:.72rem;display:grid;position:relative}.hours{color:var(--muted);position:relative}.hours div{position:absolute;transform:translateY(-50%)}.col{background:var(--card);border:1px solid #0000;border-radius:8px;position:relative}.col.today{border-color:var(--accent)}.dayhead{text-align:center;height:24px;color:var(--muted);font-weight:600;line-height:24px}.block{color:#fff;text-align:left;border:none;border-radius:6px;flex-direction:column;padding:2px 3px;font-size:.68rem;line-height:1.15;display:flex;position:absolute;left:1px;right:1px;overflow:hidden}.block small{opacity:.85}.fab{right:max(16px,50% - 344px);bottom:calc(76px + env(safe-area-inset-bottom));border-radius:50%;width:54px;height:54px;padding:0;font-size:1.8rem;position:fixed;box-shadow:0 4px 14px #00000080}.modal{z-index:10;background:#0009;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);border:1px solid var(--line);border-radius:18px 18px 0 0;gap:10px;width:100%;max-width:560px;padding:8px 18px 22px;display:grid}.two{grid-template-columns:1fr 1fr;align-items:end;gap:10px;display:grid}label{color:var(--muted);gap:4px;font-size:.8rem;display:grid}.swatches{gap:10px;display:flex}.swatches button{border-radius:50%;width:32px;height:32px;padding:0}.swatches button.on{outline:3px solid #fff}@media (width>=720px){.modal{align-items:center}.sheet{border-radius:18px}}select{font:inherit;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:10px;width:100%;min-width:0;padding:11px 10px}.addd{gap:6px;margin:8px 0;display:grid}.addd .quick{align-items:stretch;margin:0}.addd .quick input[type=date]{flex:0 0 150px;width:auto}.addd .quick select{flex:1}.block-line{margin-top:2px;display:block}.row a{color:var(--accent)}.dlabel{color:var(--muted);white-space:nowrap;font-size:.75rem}.dlabel.urgent{color:#ff8b8e;font-weight:700}.check.s-in_progress{color:#e0a800;border-color:#e0a800}.check.s-delivered{color:#fff;background:#2fb67c;border-color:#2fb67c}.filebtn{background:var(--card);border:1px solid var(--line);cursor:pointer;border-radius:10px;padding:10px 14px;display:inline-block}nav button{padding:10px 2px;font-size:.68rem}.chip{white-space:nowrap;display:inline-block}.cards{grid-template-columns:1fr 1fr;gap:8px;margin:8px 0;display:grid}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;gap:2px;padding:10px 12px;display:grid}.card small{color:var(--muted)}.card b{font-size:1.05rem}.pos{color:#4fd49a}.neg{color:#ff8b8e}.monthnav{justify-content:space-between;align-items:center;margin:4px 0;display:flex}.monthnav b:first-letter{text-transform:uppercase}.row.col{flex-direction:column;align-items:stretch;gap:6px}.between{justify-content:space-between;align-items:center;gap:8px;display:flex}.bar{background:var(--line);border-radius:99px;height:8px;position:relative}.bar i{border-radius:99px;height:100%;display:block}.bar u{background:var(--text);width:2px;height:14px;position:absolute;top:-3px}nav button{font-size:.62rem}nav button span{font-size:1.1rem}
