:root{
  --bg:#f4f5f7;--card:#fff;--text:#1b1e24;--muted:#6b7280;--line:#e3e5ea;--accent:#3b6df0;--done:#9aa1ad;
  --c-Тело:#2fa36b;--c-Учёба:#3b6df0;--c-Марико:#d9534f;--c-Айцех:#e08a1e;--c-Личное:#8e5bd6;
}
@media (prefers-color-scheme:dark){
  :root{--bg:#14161a;--card:#1e2127;--text:#eceef2;--muted:#9099a8;--line:#2d3139;--accent:#6b93ff;--done:#6b7280}
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:var(--text);font:16px/1.4 -apple-system,BlinkMacSystemFont,"SF Pro Text",system-ui,sans-serif}
header{position:sticky;top:0;z-index:5;background:var(--bg);padding:env(safe-area-inset-top) 16px 0;border-bottom:1px solid var(--line)}
.top{display:flex;align-items:center;gap:8px;max-width:760px;margin:0 auto;padding:10px 0 4px}
.title{flex:1;text-align:center}
h1{margin:0;font-size:20px;font-weight:650}
#daySub{font-size:13px;color:var(--muted)}
.top button{width:40px;height:40px;border-radius:12px;border:0;background:var(--card);color:var(--text);font-size:24px}
#strip{display:flex;gap:6px;overflow-x:auto;max-width:760px;margin:0 auto;padding:6px 0 8px;scrollbar-width:none}
#strip::-webkit-scrollbar{display:none}
#strip button{flex:0 0 auto;min-width:48px;padding:6px 8px;border-radius:12px;border:1px solid transparent;background:var(--card);color:var(--text);text-align:center;font:inherit;font-size:12px;line-height:1.25}
#strip button b{display:block;font-size:16px}
#strip button.sel{background:var(--accent);color:#fff}
#strip button.today{border-color:var(--accent)}
#strip button.off:not(.sel){opacity:.6}
#strip button .dot{display:block;height:4px;margin-top:2px;border-radius:2px;background:var(--line)}
#strip button .dot i{display:block;height:100%;border-radius:2px;background:var(--c-Тело)}
.bar{height:3px;margin:0 -16px;background:var(--line)}
#progress{height:100%;width:0;background:var(--accent);transition:width .25s}
main{max-width:760px;margin:0 auto;padding:12px 16px calc(96px + env(safe-area-inset-bottom))}
.slot{display:flex;gap:12px;margin-bottom:10px}
.time{flex:0 0 52px;text-align:right;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums;padding-top:12px}
.time span{display:block;font-size:12px;opacity:.7}
.card{flex:1;min-width:0;background:var(--card);border-radius:14px;padding:10px 12px 10px 14px;border-left:4px solid var(--c,var(--accent));box-shadow:0 1px 2px rgba(0,0,0,.05)}
.slot.now .card{outline:2px solid var(--accent)}
.slot.past:not(.now) .card{opacity:.75}
.head{display:flex;align-items:flex-start;gap:8px}
.head .name{flex:1;font-weight:600;cursor:pointer}
.tags{font-size:12px;color:var(--muted);margin-top:2px}
.tags .hard{color:var(--c)}
.mini{border:0;background:none;color:var(--muted);font-size:18px;padding:0 4px;line-height:1;cursor:pointer}
.tasks{list-style:none;margin:8px 0 0;padding:0}
.task{display:flex;align-items:center;gap:10px;padding:6px 0;border-top:1px solid var(--line)}
.task input{width:22px;height:22px;flex:0 0 auto;accent-color:var(--accent)}
.task .tx{flex:1;min-width:0;overflow-wrap:anywhere}
.task.done .tx{color:var(--done);text-decoration:line-through}
.task .from{font-size:11px;color:var(--accent);margin-left:6px;white-space:nowrap}
.add{display:flex;gap:6px;margin-top:6px}
.add input{flex:1;min-width:0;border:1px dashed var(--line);border-radius:10px;background:transparent;color:var(--text);padding:7px 10px;font:inherit;font-size:15px}
.add input:focus{outline:none;border-color:var(--accent);border-style:solid}
.empty{text-align:center;color:var(--muted);padding:40px 0}
footer{position:fixed;left:0;right:0;bottom:0;display:flex;gap:8px;justify-content:center;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:linear-gradient(transparent,var(--bg) 30%)}
footer button{border:0;border-radius:12px;padding:11px 14px;background:var(--card);color:var(--text);font:inherit;font-size:14px;box-shadow:0 1px 3px rgba(0,0,0,.15);cursor:pointer}
footer .primary{background:var(--accent);color:#fff;flex:1;max-width:340px}
#toast{position:fixed;left:50%;bottom:calc(84px + env(safe-area-inset-bottom));transform:translate(-50%,20px);background:#222;color:#fff;padding:10px 16px;border-radius:12px;font-size:14px;opacity:0;pointer-events:none;transition:.2s;max-width:90%;text-align:center;z-index:20}
#toast.show{opacity:1;transform:translate(-50%,0)}
dialog{border:0;border-radius:16px;padding:18px;background:var(--card);color:var(--text);width:min(92vw,420px)}
dialog::backdrop{background:rgba(0,0,0,.45)}
dialog h2{margin:0 0 12px;font-size:18px}
dialog label{display:block;font-size:13px;color:var(--muted);margin-top:10px}
dialog input,dialog select{width:100%;margin-top:4px;padding:9px 10px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--text);font:inherit}
dialog .row{display:flex;gap:8px}
dialog .actions{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}
dialog .actions button{flex:1;padding:10px;border-radius:10px;border:0;background:var(--bg);color:var(--text);font:inherit;cursor:pointer}
dialog .actions .primary{background:var(--accent);color:#fff}
dialog .actions .danger{color:#d9534f}
dialog .menu button{display:block;width:100%;text-align:left;margin-top:8px;padding:12px;border-radius:10px;border:0;background:var(--bg);color:var(--text);font:inherit;cursor:pointer}
