:root{--bg:#0f172a;--bg-deep:#080d1a;--card:#1e293b;--card-2:#243244;--border:#334155;--text:#e2e8f0;--muted:#94a3b8;--faint:#64748b;--green:#22c55e;--green-dim:#22c55e24;--green-border:#22c55e73;--red:#ef4444;--red-dim:#ef44441f}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg-deep);color:var(--text);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}#root{flex-direction:column;height:100%;display:flex}.app{background:var(--bg);flex-direction:column;width:100%;max-width:640px;height:100dvh;margin:0 auto;display:flex;position:relative}.content{-webkit-overflow-scrolling:touch;min-height:0;padding:calc(10px + env(safe-area-inset-top)) 18px 24px;flex:1;overflow-y:auto}.app-title{letter-spacing:-.02em;padding:6px 2px 2px;font-size:24px;font-weight:800}.section-label{text-transform:uppercase;letter-spacing:.09em;color:var(--faint);margin:18px 2px 8px;font-size:11px;font-weight:700}.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:16px}.card+.card{margin-top:10px}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:12px}.tiny{font-size:11px}.note{color:var(--faint);padding:10px 4px 0;font-size:11px;line-height:1.5}.btn{cursor:pointer;border:none;border-radius:14px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:48px;font-family:inherit;font-size:15px;font-weight:700;display:flex}.btn+.btn{margin-top:10px}.btn-primary{background:var(--green);color:#052e16}.btn-ghost{color:var(--text);border:1px solid var(--border);background:0 0}.btn-danger{background:var(--red-dim);color:#fca5a5;border:1px solid #ef444459}.cta{background:linear-gradient(160deg, var(--card-2), var(--card));border:1px solid var(--green-border);text-align:center;padding:22px 18px}.cta h3{margin-bottom:6px;font-size:17px}.cta p{color:var(--muted);margin-bottom:16px;font-size:13px;line-height:1.5}.daybar{scrollbar-width:none;gap:8px;padding:10px 2px 12px;display:flex;overflow-x:auto}.daybar::-webkit-scrollbar{display:none}.daychip{background:var(--card);border:1px solid var(--border);text-align:center;min-width:64px;min-height:48px;color:var(--muted);cursor:pointer;border-radius:14px;flex:none;padding:9px 10px;font-family:inherit}.daychip b{color:var(--text);font-size:14px;font-weight:700;display:block}.daychip span{font-size:10px}.daychip.active{background:var(--green);border-color:var(--green);color:#052e16cc}.daychip.active b{color:#052e16}.daychip.done b,.daychip.done span{opacity:.55;text-decoration:line-through}.ex{background:var(--card);border:1px solid var(--border);cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;border-radius:14px;align-items:center;gap:12px;min-height:44px;padding:13px 14px;display:flex}.ex+.ex{margin-top:8px}.ex .check{border:2px solid var(--faint);color:#0000;border-radius:50%;flex:0 0 26px;justify-content:center;align-items:center;width:26px;height:26px;font-size:14px;font-weight:900;display:flex}.ex .info{flex:1;min-width:0}.ex .name{font-size:14px;font-weight:600;line-height:1.3}.ex .meta{color:var(--muted);margin-top:3px;font-size:12px}.ex.done{opacity:.62}.ex.done .name{text-decoration:line-through}.ex.done .check{background:var(--green);border-color:var(--green);color:#052e16}.superset{border-left:3px solid var(--green);background:var(--green-dim);border-radius:6px 14px 14px 6px;margin:10px 0;padding:8px 8px 8px 12px}.superset .tag{text-transform:uppercase;letter-spacing:.08em;color:var(--green);margin:2px 0 6px;font-size:10px;font-weight:800;display:inline-flex}.superset .ex{background:var(--bg);margin:0}.superset .ex+.ex{margin-top:6px}.tabbar{padding:10px 8px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:#0f172af5;flex:none;justify-content:space-around;align-items:flex-end;display:flex}.tab{color:var(--faint);cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:3px;min-width:52px;min-height:44px;padding-top:4px;font-family:inherit;font-size:10px;font-weight:600;text-decoration:none;display:flex}.tab svg{stroke:currentColor;fill:none;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.tab.active{color:var(--green)}.progressrow{align-items:center;gap:12px;min-height:44px;padding:12px 14px;display:flex}.progressrow .d{flex:1}.progressrow .d b{font-size:14px}.progressrow .d span{color:var(--muted);margin-top:2px;font-size:11px;display:block}.bar{background:var(--bg-deep);border-radius:3px;flex:0 0 92px;height:6px;overflow:hidden}.bar i{background:var(--green);border-radius:3px;height:100%;display:block}.weekline{border-bottom:1px solid var(--border);color:var(--text);-webkit-tap-highlight-color:transparent;align-items:center;gap:10px;padding:11px 4px;font-size:13px;text-decoration:none;display:flex}.weekline:last-child{border-bottom:none}.weekline .bar{flex:1}.weekline.muted{color:var(--muted)}.weekline .muted{font-size:12px}.ex .det{background:var(--bg-deep);border-radius:10px;margin-top:8px;padding:8px 12px;font-size:13px;line-height:1.9}.ex.expandable{cursor:pointer}.count{color:var(--muted);text-align:right;min-width:30px;font-size:12px}.listrow{background:var(--card);border:1px solid var(--border);min-height:44px;color:inherit;cursor:pointer;text-align:left;width:100%;font-family:inherit;font-size:inherit;border-radius:14px;align-items:center;gap:12px;padding:13px 14px;text-decoration:none;display:flex}.listrow+.listrow{margin-top:8px}.listrow .t{flex:1;min-width:0}.listrow .t b{font-size:14px;display:block}.listrow .t span{color:var(--muted);font-size:11px}.iconbtn{background:var(--bg-deep);border:1px solid var(--border);height:38px;color:var(--muted);border-radius:12px;flex:0 0 38px;justify-content:center;align-items:center;font-size:17px;display:flex}.sheetwrap{z-index:5;background:#02061199;flex-direction:column;justify-content:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--card);padding:14px 18px calc(22px + env(safe-area-inset-bottom));border-top:1px solid var(--border);border-radius:22px 22px 0 0;width:100%;max-width:640px;max-height:80dvh;margin:0 auto;overflow-y:auto}.sheet.fixed{flex-direction:column;height:70dvh;max-height:70dvh;padding-bottom:0;transition:transform .25s;display:flex;overflow:hidden}.sheet.fixed.dragging{transition:none}.sheethead{touch-action:none;flex:none}.sheetbody{-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow-y:auto}.sheetfoot{padding-top:12px;padding-bottom:calc(16px + env(safe-area-inset-bottom));flex:none}.daybar.equal .daychip{flex:1;min-width:0}.sheet .grab{background:var(--faint);border-radius:2px;width:40px;height:4px;margin:0 auto 14px}.sheet h3{overflow-wrap:anywhere;word-break:break-word;min-width:0;margin-bottom:2px;font-size:16px}.sheet p.sub{color:var(--muted);overflow-wrap:anywhere;word-break:break-word;min-width:0;margin-bottom:14px;font-size:12px}.sheethead{min-width:0}.opt{border-bottom:1px solid var(--border);width:100%;min-height:44px;color:inherit;font-family:inherit;font-size:inherit;text-align:left;cursor:pointer;background:0 0;border-top:none;border-left:none;border-right:none;align-items:center;gap:12px;padding:13px 6px;display:flex}.opt:last-of-type{border-bottom:none}.opt .o{flex:1}.opt .o b{font-size:14px;display:block}.opt .o span{color:var(--muted);font-size:11px}.opt .mark{border:2px solid var(--faint);color:#0000;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;font-weight:900;display:flex}.opt.current .mark{background:var(--green);border-color:var(--green);color:#052e16}.dialogwrap{z-index:7;background:#020611a6;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.dialog{background:var(--card);border:1px solid var(--border);border-radius:18px;width:100%;max-width:400px;padding:20px}.dialog h3{margin-bottom:8px;font-size:16px}.dialog p{color:var(--muted);margin-bottom:16px;font-size:13px;line-height:1.55}.rest{color:var(--muted);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;padding-bottom:60px;display:flex}.rest .ring{border:3px solid var(--border);width:74px;height:74px;color:var(--faint);border-radius:50%;justify-content:center;align-items:center;font-size:24px;font-weight:800;display:flex}.rest b{color:var(--text);font-size:17px}.rest p{max-width:220px;font-size:13px;line-height:1.5}input,select,button{font-family:inherit}input,select{color:var(--text);font-size:16px}.addbar{border:1.5px dashed var(--faint);width:100%;min-height:48px;color:var(--muted);cursor:pointer;background:0 0;border-radius:14px;justify-content:center;align-items:center;gap:8px;margin-top:12px;font-size:14px;font-weight:600;display:flex}.field{margin-top:10px}.field label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;font-size:11px;font-weight:700;display:block}.field input,.field select{background:var(--bg-deep);border:1px solid var(--border);width:100%;min-height:46px;color:var(--text);border-radius:12px;padding:0 12px;font-size:16px}.edititemname{overflow-wrap:anywhere;margin-bottom:10px;font-size:15px;font-weight:700;line-height:1.35}.frow{gap:10px;display:flex}.frow .field{flex:1}.editrow .iconbtn{flex:0 0 32px;min-width:32px;height:32px;font-size:13px}.editrow .t{text-align:left}.editrow .t button{color:inherit;cursor:pointer;font:inherit;background:0 0;border:none;padding:0}.iconbtn:disabled{opacity:.35;cursor:default}.sschip{background:var(--green-dim);border:1px solid var(--green-border);color:var(--green);text-transform:uppercase;letter-spacing:.06em;vertical-align:1px;border-radius:8px;margin-left:8px;padding:1px 7px;font-size:10px;font-weight:800;display:inline-block}.fielderror{color:#fca5a5;margin-top:10px;font-size:12px;line-height:1.5}.rowmenu{background:var(--card-2);border:1px solid var(--border);z-index:4;border-radius:12px;min-width:150px;padding:6px;position:absolute;top:calc(100% - 6px);right:14px;box-shadow:0 8px 24px #02061180}.listrow{position:relative}.rowmenu button{width:100%;min-height:44px;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:9px;padding:0 12px;font-size:14px;font-weight:600;display:block}.rowmenu button.danger{color:#fca5a5}.rowmenu button:active{background:var(--bg-deep)}.listrow .t{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}.picker{position:relative}.picker input{background:var(--bg-deep);border:1px solid var(--border);width:100%;min-height:46px;color:var(--text);border-radius:12px;padding:0 12px;font-size:16px}.pickerlist{background:var(--card-2);border:1px solid var(--border);z-index:4;border-radius:12px;max-height:240px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #02061180}.pickerlist li.empty{color:var(--muted);padding:12px;font-size:13px}.pickerlist button{border:none;border-bottom:1px solid var(--border);width:100%;min-height:44px;color:var(--text);text-align:left;cursor:pointer;background:0 0;padding:8px 12px;font-size:14px;display:block}.pickerlist li:last-child button{border-bottom:none}.pickerlist button:active{background:var(--bg-deep)}.ex .barsbtn{background:var(--bg-deep);border:1px solid var(--border);height:38px;color:var(--muted);cursor:pointer;border-radius:12px;flex:0 0 38px;justify-content:center;align-items:center;display:flex}.ex .barsbtn svg{stroke:currentColor;fill:none;stroke-width:1.8px;stroke-linecap:round;width:20px;height:20px}.ex .loggedtag{color:var(--green);vertical-align:1px;margin-left:6px;font-size:11px}.srow{align-items:center;gap:6px;margin-bottom:8px;display:flex}.srow .n{color:var(--faint);text-align:center;flex:0 0 20px;font-size:12px;font-weight:800}.srow input{background:var(--bg-deep);border:1px solid var(--border);width:0;min-width:0;min-height:44px;color:var(--text);text-align:center;border-radius:10px;flex:1 1 0;padding:0 4px;font-family:inherit;font-size:16px}.srow .u{color:var(--faint);flex:none;font-size:11px}.serieactions{justify-content:space-between;align-items:center;gap:18px;margin:4px 0 14px;display:flex}.rmserie{color:#fca5a5;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;min-height:32px;margin:0;font-family:inherit;font-size:13px;font-weight:700;display:flex}.rmserie:disabled{color:var(--faint);cursor:default}.addserie{color:var(--green);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;min-height:32px;margin:0;font-family:inherit;font-size:13px;font-weight:700;display:flex}.rp{border-bottom:1px solid var(--border);padding:12px 4px}.rp:last-child{border-bottom:none}.rp .hd{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:baseline;gap:10px;font-family:inherit;font-size:13px;display:flex}.rp .hd span{color:var(--muted);font-size:12px}.rp .sum{color:var(--faint);margin-top:3px;font-size:12px}.rp .det{background:var(--bg-deep);border-radius:10px;margin-top:8px;padding:8px 12px;font-size:13px;line-height:1.9}.rpempty{text-align:center;padding:18px 4px}.unitcard{justify-content:space-between;align-items:center;gap:12px;display:flex}.unitopts{gap:6px;display:flex}.unitopt{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:10px;min-height:44px;padding:8px 18px;font-size:14px;font-weight:700}.unitopt.active{background:var(--green);border-color:var(--green);color:#052e16}.chip7{grid-template-columns:repeat(7,1fr);gap:8px;display:grid}.chip7 .c{aspect-ratio:1;background:var(--card);border:1px solid var(--border);width:100%;color:var(--muted);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:13px;font-weight:700;display:flex}.chip7 .c.on{background:var(--green);border-color:var(--green);color:#052e16}.btn:disabled{opacity:.45;cursor:not-allowed}.toast{color:#fecaca;z-index:6;background:#7f1d1d;border-radius:12px;max-width:604px;margin:0 auto;padding:12px 14px;font-size:13px;line-height:1.4;position:fixed;bottom:96px;left:18px;right:18px}.toast.info{color:#bbf7d0;border:1px solid var(--green-border);background:#14532d}
