:root{--bg-page:#fff;--bg-subt:#f8fafc;--grid-brdr:#e5e7eb;--txt-main:#111827;--txt-mutd:#6b7280;--txt-lite:#9ca3af;--hdr-grn:#2e7d32;--hdr-blu:#2563eb;--hdr-pur:#7c3aed;--hdr-amb:#d97706;--font-fam:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background-color:var(--bg-page);color:var(--txt-main);font-family:var(--font-fam);-webkit-font-smoothing:antialiased;min-height:100vh}body{padding-top:36px}button,input,select,textarea{outline:none;font-family:inherit}.plan-wrap{border-left:1px solid var(--grid-brdr);border-right:1px solid var(--grid-brdr);background:#fff;flex-direction:column;max-width:32rem;min-height:100vh;margin:0 auto;display:flex;position:relative;box-shadow:0 4px 20px #0000000d}.top-nav{border-bottom:2px solid var(--grid-brdr);z-index:10;background:#fff;justify-content:space-between;align-items:center;padding:1.1rem 1.25rem;display:flex;position:sticky;top:0}.date-box{align-items:center;gap:.5rem;display:flex}.day-txt{color:#64748b;letter-spacing:.02em;font-size:1.35rem;font-weight:500}.num-txt{color:#0f172a;letter-spacing:-.03em;font-size:1.6rem;font-weight:800}.arw-btn{color:#fff;cursor:pointer;background:#94a3b8;border:none;border-radius:.35rem;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;transition:opacity .15s;display:inline-flex}.arw-btn:hover{opacity:.85}.tgl-all-btn{color:#475569;cursor:pointer;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:.35rem;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;margin-left:.2rem;padding:0;transition:all .15s cubic-bezier(.16,1,.3,1);display:inline-flex}.tgl-all-btn:hover{color:#0f172a;background:#e2e8f0;border-color:#94a3b8;transform:scale(1.06)}.tgl-all-btn:active{transform:scale(.94)}.top-rgt{align-items:center;gap:1.15rem;display:flex}.gear-btn{color:#64748b;cursor:pointer;background:0 0;border:none;align-items:center;transition:color .15s;display:flex}.gear-btn:hover{color:#0f172a}.edit-lnk{color:#16a34a;cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:1.1rem;font-weight:600;text-decoration:none;transition:all .15s}.edit-lnk:hover{color:#15803d}.edit-lnk.edit-act{color:#2563eb;font-weight:700}.grid-tbl{flex-direction:column;flex:1;width:100%;display:flex}.sec-hdr{color:#fff;-webkit-user-select:none;user-select:none;border-top:1px solid #0000001f;border-bottom:1px solid #0000001f;justify-content:space-between;align-items:center;width:100%;min-height:2.85rem;transition:filter .15s;display:flex;position:relative}.sec-hdr:hover{filter:brightness(.96)}.sec-grn{background-color:var(--hdr-grn)}.sec-blu{background-color:var(--hdr-blu)}.sec-pur{background-color:var(--hdr-pur)}.sec-amb{background-color:var(--hdr-amb)}.hdr-icn-lft,.hdr-icn-rgt{flex-shrink:0;justify-content:center;align-items:center;width:3.5rem;display:flex}.hdr-badge{color:#fff;background:#ffffff47;border-radius:.35rem;justify-content:center;align-items:center;width:1.7rem;height:1.7rem;display:inline-flex}.hdr-arw-btn{color:#fff;cursor:pointer;background:#ffffff47;border:none;border-radius:.35rem;justify-content:center;align-items:center;width:1.7rem;height:1.7rem;padding:0;transition:all .15s cubic-bezier(.16,1,.3,1);display:inline-flex}.hdr-arw-btn:hover{background:#ffffff73;transform:scale(1.08)}.hdr-arw-btn:active{transform:scale(.95)}.hdr-arw-btn svg{transition:transform .2s cubic-bezier(.16,1,.3,1)}.hdr-arw-btn.arw-collapsed svg{transform:rotate(-90deg)}.hdr-chk{color:#0f172a;cursor:pointer;background:#fff3;border:2px solid #ffffffe6;border-radius:.35rem;justify-content:center;align-items:center;width:1.55rem;height:1.55rem;padding:0;transition:all .15s cubic-bezier(.16,1,.3,1);display:inline-flex}.hdr-chk:hover{background:#ffffff59;border-color:#fff;transform:scale(1.08)}.hdr-chk.hdr-chk-done{background:#fff;border-color:#fff;box-shadow:0 2px 6px #00000026}.hdr-ttl{letter-spacing:-.01em;color:#fff;white-space:nowrap;text-overflow:ellipsis;flex:1;padding:0 .5rem;font-size:1.15rem;font-weight:700;text-decoration:none;overflow:hidden}.row-hidden{display:none!important}.task-row{border-bottom:1px solid var(--grid-brdr);background:#fff;align-items:stretch;min-height:2.85rem;transition:background-color .15s;display:flex;position:relative}.task-row:hover{background-color:#fafafa}.row-add-btn{color:#fff;cursor:pointer;z-index:25;opacity:0;background:#15803d;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:1.45rem;height:1.45rem;padding:0;transition:opacity .15s,transform .15s cubic-bezier(.16,1,.3,1),background-color .15s;display:flex;position:absolute;bottom:-.725rem;right:2.775rem;transform:scale(.8);box-shadow:0 1px 4px #00000040}.task-row:hover .row-add-btn,.sec-hdr:hover .row-add-btn,.row-add-btn:focus-visible{opacity:1;transform:scale(1)}.row-add-btn:hover{background:#166534;box-shadow:0 2px 8px #00000059;transform:scale(1.2)!important}.row-add-btn:active{transform:scale(.95)!important}@media (hover:none){.row-add-btn{opacity:.95;transform:scale(1)}}.col-tim{color:#475569;border-right:1px solid var(--grid-brdr);flex-shrink:0;justify-content:flex-start;align-items:center;width:4.4rem;padding:0 .75rem;font-size:.88rem;font-weight:600;display:flex}.col-cnt{border-right:1px solid var(--grid-brdr);flex:1;align-items:center;min-width:0;padding:.5rem .85rem;display:flex}.task-link{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;font-size:.98rem;font-weight:600;text-decoration:none;transition:color .15s;display:inline-block;overflow:hidden}.task-link:hover{color:#2563eb}.task-done{color:#94a3b8;text-decoration:line-through}.hl-yel{background-color:#fef08a;border-radius:.2rem;padding:.1rem .35rem}.hl-grn{background-color:#bbf7d0;border-radius:.2rem;padding:.1rem .35rem}.hl-blu{background-color:#bfdbfe;border-radius:.2rem;padding:.1rem .35rem}.col-act{flex-shrink:0;justify-content:center;align-items:center;width:3.5rem;display:flex}.del-btn-icon{cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:1.85rem;height:1.85rem;padding:0;transition:transform .15s cubic-bezier(.16,1,.3,1),opacity .15s;display:flex}.del-btn-icon:hover{transform:scale(1.18)}.del-btn-icon:active{transform:scale(.92)}.hdr-del-btn{cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:1.85rem;height:1.85rem;padding:0;transition:transform .15s cubic-bezier(.16,1,.3,1),opacity .15s;display:flex}.hdr-del-btn:hover{transform:scale(1.18)}.hdr-del-btn:active{transform:scale(.92)}.col-tim.col-tim-edit{justify-content:center;padding:0}.drag-hdl{color:#94a3b8;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;border-radius:.35rem;justify-content:center;align-items:center;width:2rem;height:2rem;transition:color .15s,background-color .15s;display:flex}.drag-hdl:hover{color:#1e293b;background-color:#f1f5f9}.drag-hdl:active{cursor:grabbing}.hdr-drag-hdl{color:#ffffffd9;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;border-radius:.35rem;justify-content:center;align-items:center;width:2rem;height:2rem;transition:color .15s,background-color .15s;display:flex}.hdr-drag-hdl:hover{color:#fff;background:#ffffff38}.hdr-drag-hdl:active{cursor:grabbing}.task-link-edit,.hdr-ttl-edit{cursor:default}.task-blank{width:100%;min-height:1.8rem;display:block}.blank-txt{width:100%;min-height:1.6rem;display:block}.add-row{border-bottom:1px solid var(--grid-brdr);background:#fff;align-items:stretch;min-height:2.85rem;display:flex}.add-btn{color:#15803d;cursor:pointer;background:0 0;border:none;align-items:center;padding:0;font-family:inherit;font-size:1.05rem;font-weight:600;transition:color .15s,opacity .15s;display:flex}.add-btn:hover{color:#166534;text-decoration:underline}.chk-box{cursor:pointer;color:#fff;background:0 0;border:1.8px solid #cbd5e1;border-radius:.25rem;justify-content:center;align-items:center;width:1.35rem;height:1.35rem;transition:all .15s;display:flex}.chk-box:hover{border-color:#94a3b8}.chk-done{background:#10b981;border-color:#10b981}.emp-row{border-bottom:1px solid var(--grid-brdr);min-height:2.85rem;display:flex}.emp-tim{border-right:1px solid var(--grid-brdr);flex-shrink:0;width:4.4rem}.emp-cnt{border-right:1px solid var(--grid-brdr);flex:1}.emp-act{flex-shrink:0;width:3.5rem}.fab-btn{color:#fff;cursor:pointer;z-index:50;background:#1e293b;border:none;border-radius:1.1rem;justify-content:center;align-items:center;width:3.6rem;height:3.6rem;transition:transform .2s cubic-bezier(.16,1,.3,1),background .15s;display:flex;position:fixed;bottom:2rem;right:calc(50% - 14.5rem);box-shadow:0 10px 25px -5px #0f172a66}@media (width<=32rem){.fab-btn{right:1.5rem}}.fab-btn:hover{background:#0f172a;transform:scale(1.05)}.fab-btn:active{transform:scale(.95)}.add-drawer-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#0f172a73;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.add-drawer{background:#fff;border-top-left-radius:1.5rem;border-top-right-radius:1.5rem;flex-direction:column;gap:1.15rem;width:100%;max-width:32rem;padding:1.5rem 1.5rem 2.25rem;animation:.25s ease-out slideUp;display:flex;box-shadow:0 -10px 30px #00000026}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.drawer-head{justify-content:space-between;align-items:center;display:flex}.drawer-ttl{color:#0f172a;font-size:1.25rem;font-weight:700}.drawer-cls{cursor:pointer;color:#64748b;background:#f1f5f9;border:none;border-radius:50%;justify-content:center;align-items:center;width:2rem;height:2rem;display:flex}.drawer-cls:hover{color:#0f172a;background:#e2e8f0}.type-toggle{background:#f1f5f9;border-radius:.65rem;gap:.25rem;padding:.25rem;display:flex}.type-btn{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:.5rem;flex:1;padding:.55rem;font-size:.9rem;font-weight:600;transition:all .15s}.type-btn.type-act{color:#0f172a;background:#fff;box-shadow:0 1px 4px #00000014}.inpt-row{gap:.75rem;display:flex}.drawer-inpt{border:1.5px solid var(--grid-brdr);color:#0f172a;border-radius:.65rem;flex:1;padding:.75rem 1rem;font-size:1rem;transition:border-color .15s}.drawer-inpt:focus{border-color:#2563eb}.drawer-tim{border:1.5px solid var(--grid-brdr);color:#0f172a;border-radius:.65rem;width:6rem;padding:.75rem;font-size:.95rem}.color-picker{align-items:center;gap:.65rem;display:flex}.colr-opt{cursor:pointer;border:2px solid #0000;border-radius:50%;width:2rem;height:2rem;transition:transform .15s}.colr-opt:hover{transform:scale(1.1)}.colr-opt.colr-act{border-color:#0f172a;transform:scale(1.15)}.c-grn{background-color:var(--hdr-grn)}.c-blu{background-color:var(--hdr-blu)}.c-pur{background-color:var(--hdr-pur)}.c-amb{background-color:var(--hdr-amb)}.drawer-form{flex-direction:column;gap:1rem;display:flex}.colr-lbl{color:#64748b;margin-bottom:.4rem;font-size:.85rem;font-weight:700;display:block}.grid-load{text-align:center;color:#64748b;padding:3rem}.drawer-subm{color:#fff;cursor:pointer;background:#0f172a;border:none;border-radius:.75rem;padding:.85rem;font-size:1rem;font-weight:700;transition:background .15s}.drawer-subm:hover{background:#1e293b}.edit-page{border-left:1px solid var(--grid-brdr);border-right:1px solid var(--grid-brdr);background:#fff;flex-direction:column;max-width:32rem;min-height:100vh;margin:0 auto;display:flex}.edit-nav{border-bottom:2px solid var(--grid-brdr);background:#fff;justify-content:space-between;align-items:center;padding:1.1rem 1.25rem;display:flex}.bck-link{color:#0f172a;align-items:center;gap:.4rem;font-size:.95rem;font-weight:600;text-decoration:none;display:flex}.edit-body{flex-direction:column;gap:1.4rem;padding:1.5rem;display:flex}.form-fld{flex-direction:column;gap:.45rem;display:flex}.fld-lbl{text-transform:uppercase;color:#64748b;letter-spacing:.04em;font-size:.85rem;font-weight:700}.fld-inpt{border:1.5px solid var(--grid-brdr);color:#0f172a;border-radius:.65rem;padding:.8rem 1rem;font-size:1.05rem}.fld-inpt:focus{border-color:#2563eb}.fld-txa{border:1.5px solid var(--grid-brdr);color:#0f172a;resize:vertical;border-radius:.65rem;min-height:8rem;padding:.8rem 1rem;font-size:.95rem}.fld-txa:focus{border-color:#2563eb}.fld-row{gap:1rem;display:flex}.swtch-row{border:1.5px solid var(--grid-brdr);background:#f8fafc;border-radius:.65rem;justify-content:space-between;align-items:center;padding:.85rem 1rem;display:flex}.swtch-btn{cursor:pointer;background:#cbd5e1;border:none;border-radius:9999px;width:3.2rem;height:1.8rem;transition:background-color .2s;position:relative}.swtch-btn.swtch-on{background:#2563eb}.swtch-knob{background:#fff;border-radius:50%;width:1.44rem;height:1.44rem;transition:transform .2s;position:absolute;top:.18rem;left:.2rem;box-shadow:0 1px 3px #0003}.swtch-on .swtch-knob{transform:translate(1.35rem)}.edit-acts{border-top:1px solid var(--grid-brdr);justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;padding-top:1rem;display:flex}.btn-del{color:#dc2626;cursor:pointer;background:#fee2e2;border:none;border-radius:.65rem;padding:.75rem 1.25rem;font-size:.92rem;font-weight:600;transition:background .15s}.btn-del:hover{background:#fecaca}.btn-sav{color:#fff;cursor:pointer;background:#0f172a;border:none;border-radius:.65rem;padding:.75rem 1.6rem;font-size:.95rem;font-weight:700;transition:background .15s}.btn-sav:hover{background:#1e293b}.btn-sav.sav-suc{background:#16a34a}.fld-flex{flex:1}.nav-tag{color:#64748b;font-size:.85rem;font-weight:600}.edit-nav-rgt{align-items:center;gap:.75rem;display:flex}.sync-badge{color:#16a34a;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:9999px;align-items:center;gap:.35rem;padding:.28rem .65rem;font-size:.8rem;font-weight:600;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex}.sync-badge.sync-saving{color:#2563eb;background:#eff6ff;border-color:#bfdbfe}.sync-badge.sync-error{color:#dc2626;background:#fef2f2;border-color:#fecaca}.spin-icn{animation:.8s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.auto-save-note{color:#94a3b8;font-size:.84rem;font-weight:500}.err-ttl{color:#0f172a;margin-bottom:.5rem;font-size:1.25rem;font-weight:700}.err-msg{color:#64748b;margin-bottom:1.5rem}.err-btn{padding:.75rem 1.5rem;text-decoration:none;display:inline-block}.swtch-ttl{color:#0f172a;font-size:.95rem;font-weight:700;display:block}.swtch-sub{color:#64748b;font-size:.82rem}.stat-btn{cursor:pointer;padding:.65rem .85rem}.stat-lbl{color:#0f172a;font-size:.9rem;font-weight:600}.stat-lbl.stat-done{color:#16a34a}.hl-row{flex-wrap:wrap;gap:.5rem;display:flex}
