:root{--bg: #f2f4f7;--surface: #ffffff;--ink: #111827;--ink-2: #4b5563;--mut: #8b94a3;--line: #e8ebf0;--soft: #e9edf2;--accent: #e8590c;--green: #3f6b57;--green-soft: #eaf3ee;--danger: #c2410c;--danger-soft: #fff4ef;--radius: 16px;--shadow: 0 1px 3px rgba(17, 24, 39, .07), 0 8px 22px -16px rgba(17, 24, 39, .3);--tile-today: #3b82f6;--tile-overdue: #ef7361;--tile-review: #a78bfa;--tile-progress: #f0a04b;--tile-active: #7d8694;--tile-done: #9aa3b2;--proj-1: #3b82f6;--proj-2: #f0a04b;--proj-3: #a78bfa;--proj-4: #3f6b57;--proj-5: #ef7361;--proj-6: #eab308}body.dark{--bg: #000000;--surface: #1c1c1e;--ink: #ffffff;--ink-2: #c7c7cc;--mut: #8e8e93;--line: #2c2c2e;--soft: #2c2c2e;--accent: #ff8a3d;--green: #30d158;--green-soft: #14261a;--danger: #ff6b5a;--danger-soft: #24120f;--shadow: none;--tile-today: #0a84ff;--tile-overdue: #ff6b5a;--tile-review: #bf5af2;--tile-progress: #ff9f0a;--tile-active: #7c7c87;--tile-done: #9a9aa2;--proj-1: #0a84ff;--proj-2: #ff9f0a;--proj-3: #bf5af2;--proj-4: #30d158;--proj-5: #ff6b5a;--proj-6: #ffd60a}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}body{background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}#root{max-width:560px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;padding-bottom:calc(92px + env(safe-area-inset-bottom))}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}input,textarea,select{font:inherit;color:inherit}.top{padding:18px 18px 6px}.eyebrow{font-size:12.5px;font-weight:700;letter-spacing:1.2px;color:var(--mut);text-transform:uppercase}.h1{font-size:29px;font-weight:700;letter-spacing:-1px;margin-top:4px;line-height:1.1}.sub{font-size:14px;color:var(--ink-2);margin-top:7px}.week{display:flex;gap:5px;margin-top:14px}.day{flex:1;text-align:center;padding:7px 0;border-radius:11px;background:var(--soft)}.day .w{font-size:10.5px;font-weight:700;color:var(--mut);letter-spacing:.5px}.day .n{font-size:16px;font-weight:650;margin-top:2px}.day.on{background:var(--ink);color:var(--bg)}.day.on .w{color:var(--mut)}.label{padding:16px 18px 8px;font-size:12.5px;font-weight:700;letter-spacing:1px;color:var(--mut);text-transform:uppercase;display:flex;justify-content:space-between;align-items:center}.card{margin:0 14px 9px;background:var(--surface);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow);position:relative;overflow:hidden;border-left:4px solid transparent}.card.overdue{background:var(--danger-soft);border-left-color:var(--accent)}.card.active{border-left-color:var(--ink)}.card.idle{border-left-color:var(--line)}.chips{display:flex;align-items:center;gap:7px;margin-bottom:8px;flex-wrap:wrap}.chip{font-size:11.5px;font-weight:700;letter-spacing:.4px;padding:3px 7px;border-radius:6px;text-transform:uppercase;background:var(--green-soft);color:var(--green)}.chip.warn{background:#ffe8dd;color:var(--danger)}body.dark .chip.warn{background:#3a241c}.chip.note{font-size:12px;font-weight:650;text-transform:none;background:none;padding:0}.title{font-size:16.5px;font-weight:600;letter-spacing:-.2px;line-height:1.3}.meta{display:flex;align-items:center;gap:10px;margin-top:9px;font-size:13px;color:var(--ink-2);flex-wrap:wrap}.actions{display:flex;gap:7px;margin-top:12px}.btn{flex:1;text-align:center;border-radius:10px;padding:10px;font-size:14px;font-weight:650;background:var(--ink);color:var(--bg)}.btn.ghost{background:var(--soft);color:var(--ink-2)}.btn.warn{background:var(--accent);color:#fff}.btn:disabled{opacity:.5}.tabbar{position:fixed;left:0;right:0;bottom:0;height:calc(60px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--line);display:flex;align-items:center;max-width:560px;margin:0 auto;z-index:20}.tabbar button{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px;color:var(--mut);font-weight:650;padding:6px 0}.tabbar button.on{color:var(--ink)}.tabbar .fab{flex:0 0 auto;width:46px}.fab-circle{width:44px;height:44px;border-radius:50%;background:var(--ink);color:var(--bg);display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:300;margin-top:-16px;box-shadow:0 8px 20px #1c1b194d}.field{margin:0 18px 14px}.flabel{font-size:12px;font-weight:700;letter-spacing:.8px;color:var(--mut);text-transform:uppercase;margin-bottom:7px}.input,.textarea,.select{width:100%;background:var(--surface);border:1.5px solid var(--line);border-radius:12px;padding:12px;font-size:16px;outline:none}.input:focus,.textarea:focus,.select:focus{border-color:var(--ink)}.textarea{min-height:76px;resize:vertical}.opts{display:flex;gap:6px;flex-wrap:wrap}.opt{font-size:13.5px;font-weight:650;padding:8px 12px;border-radius:10px;background:var(--soft);color:var(--ink-2)}.opt.on{background:var(--ink);color:var(--bg)}.switchrow{display:flex;align-items:center;gap:9px;font-size:14px;padding:10px 0}.switchrow+.switchrow{border-top:1px solid var(--line)}.switch{width:34px;height:20px;border-radius:12px;background:var(--line);position:relative;margin-left:auto;flex:0 0 auto;transition:background .15s}.switch.on{background:var(--ink)}.switch:after{content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:var(--surface);transition:left .15s}.switch.on:after{left:16px}.bottombar{position:sticky;bottom:0;padding:12px 18px calc(16px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--line)}.bottombar .btn{padding:15px;font-size:17px}.empty{text-align:center;padding:48px 24px;color:var(--mut);font-size:15.5px;line-height:1.6}.empty .big{font-size:36px;margin-bottom:12px}.skel{margin:0 14px 9px;height:92px;border-radius:var(--radius);background:var(--soft);animation:pulse 1.3s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.55}50%{opacity:.9}}.error{margin:14px 18px;background:var(--danger-soft);border:1px solid var(--accent);border-radius:12px;padding:12px 14px;font-size:15px;color:var(--danger);line-height:1.5}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:11px;padding:4px 14px 6px}.tile{border-radius:16px;padding:13px 14px 12px;color:#fff;text-align:left;display:flex;flex-direction:column;gap:12px;min-height:104px;position:relative;overflow:hidden}.tile:active{transform:scale(.98)}.tile .head{display:flex;align-items:center;justify-content:space-between}.tile .ic{width:30px;height:30px;border-radius:50%;background:#ffffff42;display:flex;align-items:center;justify-content:center;flex:0 0 auto;font-size:17px}.tile .num{font-size:35px;font-weight:700;letter-spacing:-1.2px;line-height:1}.tile .cap{font-size:19px;font-weight:650;letter-spacing:-.3px;line-height:1.15}.tile.zero{opacity:.45}.section-head{display:flex;align-items:center;justify-content:space-between;padding:20px 18px 9px}.section-head .t{font-size:23px;font-weight:700;letter-spacing:-.5px}.section-head .a{font-size:17px;font-weight:650;color:var(--accent);background:var(--soft);padding:8px 14px;border-radius:11px}.list-card{margin:0 14px;background:var(--surface);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.list-row{display:flex;align-items:center;gap:12px;padding:13px;width:100%;text-align:left}.list-row+.list-row{border-top:1px solid var(--line)}.list-row .dot{width:27px;height:27px;border-radius:50%;flex:0 0 auto;color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px}.list-row .nm{flex:1;min-width:0;font-size:18.5px;font-weight:550}.list-row .nm small{display:block;font-size:13.5px;color:var(--mut);font-weight:500;margin-top:3px}.list-row .cnt{font-size:18.5px;color:var(--mut);font-weight:550}.list-row .chev{color:var(--mut);opacity:.5;font-size:19px}.fab-round{position:fixed;right:20px;bottom:calc(22px + env(safe-area-inset-bottom));width:56px;height:56px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:300;box-shadow:0 8px 22px #e8590c6b;z-index:30}.toolbar{display:flex;gap:8px;align-items:center}.toolbar button{width:36px;height:36px;border-radius:50%;background:var(--soft);color:var(--ink-2);display:flex;align-items:center;justify-content:center}.dots{display:flex;gap:7px;justify-content:center;align-items:center}.dots i{width:8px;height:8px;border-radius:50%;background:var(--soft)}.dots i.on{background:var(--accent)}.bigq{font-size:28px;font-weight:700;letter-spacing:-.8px;text-align:center;margin:6px 22px 14px;line-height:1.2}.ctx{text-align:center;font-size:14px;color:var(--mut);margin:-6px 18px 16px}.ctx b{color:var(--ink);font-weight:650}.bigin{width:100%;background:var(--surface);border:1.5px solid var(--accent);border-radius:15px;padding:16px 14px;font-size:19px;font-weight:600;line-height:1.35;resize:none;outline:none;min-height:96px}.prow{display:flex;align-items:center;gap:12px;margin:0 14px 9px;width:calc(100% - 28px);background:var(--surface);border-radius:14px;padding:12px 13px;box-shadow:var(--shadow);text-align:left}.prow .pav,.prow .avatar{width:40px;height:40px;border-radius:50%;background:var(--soft);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;flex:0 0 auto}.prow .pnm{flex:1;min-width:0}.prow .pnm b{font-size:17.5px;font-weight:600;display:block}.prow .pnm small{font-size:13px;color:var(--mut);display:block;margin-top:2px}.prow .pch{color:var(--mut);opacity:.5;font-size:19px}.prow.all{border:1.5px solid var(--green);box-shadow:none}.bigopt{display:block;width:calc(100% - 30px);margin:0 15px 9px;background:var(--surface);border:1.5px solid var(--line);border-radius:13px;padding:15px;font-size:17px;font-weight:650;text-align:center;color:var(--ink)}.bigopt:active{border-color:var(--accent);color:var(--accent)}.bigopt:disabled{opacity:.4}.more{display:block;width:calc(100% - 30px);margin:12px 15px 0;border:1.5px dashed var(--line);border-radius:13px;padding:12px;font-size:14px;text-align:center;color:var(--mut)}.okwrap{text-align:center;padding-top:64px;flex:1}.ok{width:96px;height:96px;border-radius:50%;margin:0 auto 20px;background:var(--green-soft);color:var(--green);font-size:46px;display:flex;align-items:center;justify-content:center}.okt{font-size:24px;font-weight:700;letter-spacing:-.5px}.oks{font-size:15.5px;color:var(--mut);margin-top:10px;line-height:1.65;padding:0 30px}.ring{width:180px;height:180px;border-radius:50%;margin:20px auto 8px;border:7px solid var(--soft);border-top-color:var(--accent);border-right-color:var(--accent);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.ring.ring-late{border-color:var(--danger-soft);border-top-color:var(--danger);border-right-color:var(--danger)}.ring .n{font-size:38px;font-weight:700;letter-spacing:-1.5px}.ring .s{font-size:13.5px;color:var(--mut)}.hintline{text-align:center;font-size:13.5px;color:var(--mut);margin-bottom:8px}.kpis{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:4px 14px}.kpi{background:var(--surface);border-radius:13px;padding:12px;box-shadow:var(--shadow)}.kpi .k{font-size:12px;color:var(--mut);font-weight:650;letter-spacing:.2px}.kpi .v{font-size:26px;font-weight:700;letter-spacing:-.8px;margin-top:5px;line-height:1}.kpi .d{font-size:12px;font-weight:650;margin-top:5px;color:var(--mut)}.kpi .d.up{color:var(--green)}.kpi .d.down{color:var(--accent)}.row{display:flex;align-items:center;gap:11px;margin:0 14px 8px;background:var(--surface);border-radius:13px;padding:12px 13px;box-shadow:var(--shadow)}.row .grow{flex:1;min-width:0}.row .rt{font-size:15.5px;font-weight:600}.row .rs{font-size:12.5px;color:var(--mut);margin-top:3px}.row .rv{text-align:right;font-size:16px;font-weight:700}.avatar{width:34px;height:34px;border-radius:11px;background:var(--soft);color:var(--ink-2);display:flex;align-items:center;justify-content:center;font-size:13.5px;font-weight:700;flex:0 0 auto}.link{color:var(--accent);font-weight:650}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;word-break:break-all}.timeline{padding:0 18px}.ev{display:flex;gap:12px}.ev .ln{display:flex;flex-direction:column;align-items:center}.ev .pt{width:9px;height:9px;border-radius:50%;background:var(--line);margin-top:4px;flex:0 0 auto}.ev .pt.done{background:var(--ink)}.ev .st{width:1.5px;flex:1;background:var(--line);min-height:20px}.ev .ct{padding-bottom:14px}.ev .e1{font-size:14px;font-weight:600}.ev .e2{font-size:12.5px;color:var(--mut);margin-top:2px}
