:root{--fw-canvas:#f6f7fc;--fw-surface:#fff;--fw-surface-2:#fafafe;--fw-ink:#23283d;--fw-ink-2:#5a617c;--fw-ink-3:#838aa6;--fw-line:#e7e9f3;--fw-line-strong:#d6dae9;--fw-brand:#1f6b3a;--fw-brand-2:#2e8b57;--fw-brand-ink:#174f2b;--fw-brand-soft:#e6f4ea;--fw-grad:linear-gradient(135deg, #1f6b3a, #2e8b57);--fw-good:#1e824c;--fw-good-bg:#e5f5ec;--fw-warn:#93610a;--fw-warn-bg:#fdf1d7;--fw-danger:#c03538;--fw-danger-bg:#fbe9e9;--fw-r-sm:10px;--fw-r-md:14px;--fw-r-lg:20px;--fw-shadow-sm:0 1px 2px #23283d0d, 0 1px 6px #23283d0d;--fw-shadow-md:0 2px 4px #23283d0d, 0 10px 28px #23283d17;--fw-shadow-lg:0 6px 16px #23283d1a, 0 24px 60px #23283d29;--fw-font:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Inter, Roboto, "Helvetica Neue", Arial, sans-serif;--fw-sidebar-w:236px;--fw-sidebar-w-collapsed:72px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--fw-font);color:var(--fw-ink);background:radial-gradient(900px 420px at 85% -120px, #2e8b571a, transparent 60%), radial-gradient(700px 380px at -60px 30%, #ff7a590f, transparent 55%), var(--fw-canvas);min-height:100vh;margin:0;font-size:15px;line-height:1.5}h1,h2,h3,h4,p{margin:0}h1{letter-spacing:-.02em;font-size:1.55rem;font-weight:800}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}input,select,textarea{font:inherit;color:var(--fw-ink);background:var(--fw-surface);border:1px solid var(--fw-line-strong);border-radius:var(--fw-r-sm);min-height:40px;padding:.5rem .7rem;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--fw-brand);outline:none;box-shadow:0 0 0 3px #1f6b3a2e}:focus-visible{outline:2px solid var(--fw-brand);outline-offset:2px;border-radius:4px}::selection{background:#2e8b5740}.fw-skiplink{z-index:200;background:var(--fw-surface);color:var(--fw-brand-ink);border-radius:0 0 var(--fw-r-sm) 0;box-shadow:var(--fw-shadow-md);padding:.6rem 1rem;position:absolute;top:0;left:-9999px}.fw-skiplink:focus{left:0}.fw-app{min-height:100vh;display:flex}.fw-sidebar{height:100vh;width:var(--fw-sidebar-w);background:var(--fw-surface);border-right:1px solid var(--fw-line);flex-direction:column;flex:none;align-self:flex-start;gap:.4rem;padding:1.1rem .85rem;transition:width .22s;display:flex;position:sticky;top:0}.fw-app-collapsed .fw-sidebar{width:var(--fw-sidebar-w-collapsed)}.fw-brand{align-items:center;gap:.6rem;padding:.25rem .5rem 1rem;display:flex}.fw-brand-mark{background:var(--fw-grad);border-radius:12px;flex:none;place-items:center;width:38px;height:38px;display:grid;box-shadow:0 4px 12px #1f6b3a59}.fw-brand-name{letter-spacing:-.01em;white-space:nowrap;font-size:1.08rem;font-weight:800}.fw-nav{flex-direction:column;gap:.2rem;display:flex}.fw-navlink{border-radius:var(--fw-r-sm);color:var(--fw-ink-2);white-space:nowrap;align-items:center;gap:.7rem;padding:.6rem .75rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s,transform .15s;display:flex}.fw-navlink:hover{background:var(--fw-surface-2);color:var(--fw-ink);transform:translate(2px)}.fw-navlink-active,.fw-navlink-active:hover{background:var(--fw-brand-soft);color:var(--fw-brand-ink);transform:none}.fw-app-collapsed .fw-navlink{justify-content:center;padding:.6rem 0}.fw-sidebar-add{justify-content:center;margin-top:.8rem}.fw-collapse{border-radius:var(--fw-r-sm);color:var(--fw-ink-3);align-items:center;gap:.55rem;padding:.55rem .75rem;font-size:.88rem;font-weight:600;display:flex}.fw-collapse:hover{background:var(--fw-surface-2);color:var(--fw-ink)}.fw-app-collapsed .fw-collapse{justify-content:center}.fw-column{flex-direction:column;flex:1;min-width:0;display:flex}.fw-topbar{z-index:40;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--fw-line);background:#f6f7fcd9;justify-content:space-between;align-items:center;gap:.8rem;padding:.7rem clamp(1rem,3vw,2rem);display:flex;position:sticky;top:0}.fw-searchtrigger{border:1px solid var(--fw-line-strong);background:var(--fw-surface);min-height:40px;color:var(--fw-ink-3);border-radius:999px;align-items:center;gap:.55rem;width:min(340px,45vw);padding:.45rem .9rem;transition:border-color .15s,box-shadow .15s;display:flex}.fw-searchtrigger:hover{border-color:var(--fw-brand);box-shadow:var(--fw-shadow-sm)}.fw-searchtrigger span{text-align:left;flex:1}.fw-searchtrigger kbd{color:var(--fw-ink-3);background:var(--fw-surface-2);border:1px solid var(--fw-line);border-radius:6px;padding:.1rem .4rem;font-family:inherit;font-size:.72rem;font-weight:700}.fw-topbar-actions{align-items:center;gap:.6rem;display:flex}.fw-main{flex:1;width:100%;max-width:1180px;margin:0 auto;padding:clamp(1rem,3vw,2rem) clamp(1rem,3vw,2rem) 5.5rem}.fw-bellwrap{position:relative}.fw-bell-badge{color:#fff;border:2px solid var(--fw-canvas);background:#e5484d;border-radius:999px;place-items:center;min-width:17px;height:17px;padding:0 4px;font-size:.66rem;font-weight:800;display:grid;position:absolute;top:-2px;right:-4px}.fw-bellpanel{background:var(--fw-surface);border:1px solid var(--fw-line);border-radius:var(--fw-r-md);width:min(360px,100vw - 2rem);box-shadow:var(--fw-shadow-lg);z-index:60;animation:.18s fw-pop;position:absolute;top:calc(100% + 10px);right:0}.fw-bellpanel-head{justify-content:space-between;align-items:center;padding:.8rem 1rem .4rem;display:flex}.fw-bellpanel-head h3{font-size:.95rem;font-weight:700}.fw-bellpanel-empty{color:var(--fw-ink-2);padding:1rem;font-size:.92rem}.fw-bellpanel-list{max-height:60vh;margin:0;padding:.3rem;list-style:none;overflow-y:auto}.fw-notice{border-radius:var(--fw-r-sm);color:var(--fw-ink);align-items:flex-start;gap:.65rem;padding:.6rem .7rem;font-size:.92rem;text-decoration:none;display:flex}.fw-notice:hover{background:var(--fw-surface-2)}.fw-notice small{color:var(--fw-ink-3);font-size:.8rem;display:block}.fw-notice-icon{border-radius:9px;flex:none;place-items:center;width:30px;height:30px;display:grid}.fw-notice-warn .fw-notice-icon{background:var(--fw-warn-bg);color:var(--fw-warn)}.fw-notice-info .fw-notice-icon,.fw-notice-good .fw-notice-icon{background:var(--fw-brand-soft);color:var(--fw-brand-ink)}.fw-bottomnav{z-index:50;background:var(--fw-surface);border-top:1px solid var(--fw-line);padding:.35rem .5rem calc(.35rem + env(safe-area-inset-bottom));display:none;position:fixed;bottom:0;left:0;right:0}.fw-bottomlink{min-height:48px;color:var(--fw-ink-3);border-radius:var(--fw-r-sm);flex-direction:column;flex:1;align-items:center;gap:2px;padding:.3rem 0;font-size:.68rem;font-weight:600;text-decoration:none;display:flex}.fw-bottomlink-active{color:var(--fw-brand-ink)}.fw-bottomadd{background:var(--fw-grad);color:#fff;border-radius:999px;flex:none;align-self:center;place-items:center;width:52px;height:52px;margin:-14px .4rem 0;transition:transform .15s;display:grid;box-shadow:0 6px 16px #1f6b3a73}.fw-bottomadd:active{transform:scale(.94)}.fw-moremenu{flex-direction:column;gap:.3rem;display:flex}.fw-moremenu-item{border-radius:var(--fw-r-sm);border:1px solid var(--fw-line);background:var(--fw-surface);color:var(--fw-ink);text-align:left;align-items:center;gap:.8rem;padding:.8rem .9rem;font-weight:600;text-decoration:none;transition:border-color .15s,background .15s;display:flex}.fw-moremenu-item:hover{border-color:var(--fw-brand);background:var(--fw-brand-soft)}.fw-moremenu-item small{color:var(--fw-ink-3);font-size:.8rem;font-weight:500;display:block}.fw-btn{border-radius:var(--fw-r-sm);border:1px solid var(--fw-line-strong);background:var(--fw-surface);min-height:40px;color:var(--fw-ink);justify-content:center;align-items:center;gap:.4rem;padding:.45rem .95rem;font-size:.92rem;font-weight:600;text-decoration:none;transition:transform .12s,box-shadow .15s,border-color .15s,background .15s;display:inline-flex}.fw-btn:hover{border-color:var(--fw-brand);box-shadow:var(--fw-shadow-sm);transform:translateY(-1px)}.fw-btn:active{transform:translateY(0)}.fw-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.fw-btn-primary{background:var(--fw-grad);color:#fff;border-color:#0000;box-shadow:0 3px 10px #1f6b3a4d}.fw-btn-primary:hover{border-color:#0000;box-shadow:0 5px 16px #1f6b3a66}.fw-btn-danger{color:var(--fw-danger);border-color:color-mix(in srgb, var(--fw-danger) 35%, white)}.fw-btn-danger:hover{border-color:var(--fw-danger);background:var(--fw-danger-bg);box-shadow:none}.fw-btn-ghost{color:var(--fw-brand-ink);background:0 0;border-color:#0000}.fw-btn-ghost:hover{background:var(--fw-brand-soft);box-shadow:none;border-color:#0000}.fw-btn-sm{min-height:32px;padding:.25rem .7rem;font-size:.85rem}.fw-iconbtn{border-radius:var(--fw-r-sm);width:38px;height:38px;color:var(--fw-ink-2);justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex;position:relative}.fw-iconbtn:hover{background:var(--fw-surface-2);color:var(--fw-ink)}.fw-iconbtn:disabled{opacity:.4;cursor:not-allowed}.fw-iconbtn-outline{border:1px solid var(--fw-line-strong);background:var(--fw-surface)}.fw-iconbtn-outline:hover{border-color:var(--fw-brand)}.fw-link{color:var(--fw-brand-ink);font-size:.9rem;font-weight:600;text-decoration:none}.fw-link:hover{text-decoration:underline}.fw-push-right{margin-left:auto}.fw-pill{white-space:nowrap;border-radius:999px;align-items:center;gap:.25rem;padding:.14rem .55rem;font-size:.74rem;font-weight:700;display:inline-flex}.fw-pill-good{background:var(--fw-good-bg);color:var(--fw-good)}.fw-pill-warn{background:var(--fw-warn-bg);color:var(--fw-warn)}.fw-pill-danger{background:var(--fw-danger-bg);color:var(--fw-danger)}.fw-pill-neutral{background:var(--fw-surface-2);border:1px solid var(--fw-line);color:var(--fw-ink-2)}.fw-pill-brand{background:var(--fw-brand-soft);color:var(--fw-brand-ink)}.fw-hint{color:var(--fw-ink-3);margin-top:.5rem;font-size:.85rem}.fw-num{font-variant-numeric:tabular-nums}.fw-page{flex-direction:column;gap:1.1rem;animation:.3s fw-fadeup;display:flex}.fw-card{background:var(--fw-surface);border:1px solid var(--fw-line);border-radius:var(--fw-r-lg);box-shadow:var(--fw-shadow-sm);padding:1.1rem 1.25rem;transition:box-shadow .2s,transform .2s;position:relative}.fw-card-head{justify-content:space-between;align-items:center;gap:.8rem;margin-bottom:.8rem;display:flex}.fw-card-title{letter-spacing:-.01em;font-size:1.02rem;font-weight:700}.fw-card-aside{align-items:center;gap:.5rem;display:flex}.fw-pagehead{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.8rem;display:flex}.fw-pagehead-sub{color:var(--fw-ink-2);margin-top:.15rem;font-size:.92rem}.fw-page-tools{justify-content:space-between;align-items:center;gap:.8rem;display:flex}.fw-page-subtitle{font-size:1.02rem;font-weight:700}.fw-weeknav{align-items:center;gap:.4rem;display:flex}.fw-weeknav-label{color:var(--fw-ink-2);margin-right:.3rem;font-size:.9rem;font-weight:600}.fw-hero{justify-content:space-between;align-items:center;gap:1.5rem;padding:1.6rem 1.8rem;display:flex;overflow:hidden}.fw-hero-backdrop{pointer-events:none;border-radius:inherit;position:absolute;inset:0;overflow:hidden}.fw-blob{filter:blur(2px);opacity:.55;border-radius:50%;animation:9s ease-in-out infinite fw-float;position:absolute}.fw-blob-a{background:radial-gradient(circle at 30% 30%,#2e8b5759,#2e8b570d);width:220px;height:220px;top:-110px;right:-60px}.fw-blob-b{background:radial-gradient(circle at 30% 30%,#ff7a5947,#ff7a590a);width:140px;height:140px;animation-delay:-3s;bottom:-80px;right:180px}.fw-blob-c{background:radial-gradient(circle at 30% 30%,#14b8a647,#14b8a60a);width:90px;height:90px;animation-delay:-6s;top:-50px;left:38%}.fw-hero-text{max-width:34rem;position:relative}.fw-hero-text h1{font-size:clamp(1.5rem,3vw,1.9rem)}.fw-hero-date{color:var(--fw-brand-ink);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.3rem;font-size:.85rem;font-weight:700}.fw-hero-sub{color:var(--fw-ink-2);margin-top:.45rem}.fw-hero-actions{flex-wrap:wrap;gap:.6rem;margin-top:1rem;display:flex}.fw-hero-art{flex:none;animation:7s ease-in-out infinite fw-float;position:relative}.fw-widgets{grid-template-columns:repeat(auto-fit,minmax(310px,1fr));align-items:start;gap:1.1rem;display:grid}.fw-widget-wide{grid-column:1/-1}.fw-widget:hover{box-shadow:var(--fw-shadow-md);transform:translateY(-2px)}.fw-weekrings{flex-wrap:wrap;gap:1.4rem;display:flex}.fw-weekring{flex-direction:column;align-items:center;gap:.25rem;display:flex}.fw-weekring-name{font-size:.9rem;font-weight:700}.fw-weekring-count{color:var(--fw-ink-3);font-size:.78rem}.fw-moneyrows{flex-direction:column;gap:.75rem;display:flex}.fw-moneyrow{grid-template-columns:auto minmax(70px,auto) 1fr auto;align-items:center;gap:.7rem;display:grid}.fw-moneyrow-name{align-items:center;gap:.3rem;font-size:.92rem;font-weight:700;display:flex}.fw-moneyrow-amount{font-variant-numeric:tabular-nums;font-weight:800}.fw-upcoming{flex-direction:column;gap:.7rem;margin:0;padding:0;list-style:none;display:flex}.fw-upcoming-day{text-transform:uppercase;letter-spacing:.05em;color:var(--fw-ink-3);margin-bottom:.25rem;font-size:.78rem;font-weight:800}.fw-upcoming-event{border-radius:var(--fw-r-sm);color:var(--fw-ink);align-items:baseline;gap:.5rem;margin:0 -.4rem;padding:.35rem .4rem;text-decoration:none;display:flex}.fw-upcoming-event:hover{background:var(--fw-surface-2)}.fw-eventdot{border-radius:50%;flex:none;align-self:center;width:9px;height:9px}.fw-upcoming-title{font-weight:600}.fw-upcoming-time{color:var(--fw-ink-3);font-size:.82rem}.fw-activity{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.fw-activity-item{border-bottom:1px solid var(--fw-line);align-items:center;gap:.6rem;padding:.45rem 0;font-size:.92rem;display:flex}.fw-activity-item:last-child{border-bottom:none}.fw-activity-item b{font-weight:700}.fw-activity-when{color:var(--fw-ink-3);margin-left:auto;font-size:.8rem}.fw-customize{flex-direction:column;gap:.3rem;margin:.6rem 0 0;padding:0;list-style:none;display:flex}.fw-customize-row{border:1px solid var(--fw-line);border-radius:var(--fw-r-sm);justify-content:space-between;align-items:center;gap:.6rem;padding:.4rem .5rem;display:flex}.fw-customize-move{gap:.2rem;display:flex}.fw-avatar{color:#fff;border-radius:50%;flex:none;place-items:center;font-weight:800;display:inline-grid;box-shadow:inset 0 -2px 4px #00000026}.fw-ring{flex:none;place-items:center;display:inline-grid;position:relative}.fw-ring svg{display:block}.fw-ring-fill{transition:stroke-dashoffset .5s cubic-bezier(.22,1,.36,1)}.fw-ring-center{place-items:center;display:grid;position:absolute;inset:0}.fw-ring-count{color:var(--fw-ink-2);font-variant-numeric:tabular-nums;font-size:.62rem;font-weight:800}.fw-ring-pct{color:var(--fw-ink);font-variant-numeric:tabular-nums;font-size:.78rem;font-weight:800}.fw-meter{background:var(--fw-line);border-radius:999px;width:100%;height:10px;display:block;overflow:hidden}.fw-meter-fill{border-radius:999px;min-width:0;height:100%;transition:width .5s cubic-bezier(.22,1,.36,1);display:block}.fw-kidlists{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.2rem;display:grid}.fw-kidlist-head{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.fw-kidlist-name{font-size:1rem;font-weight:800}.fw-task{border-radius:var(--fw-r-sm);align-items:center;gap:.6rem;margin:0 -.3rem;padding:.42rem .3rem;transition:background .15s;display:flex}.fw-task:hover{background:var(--fw-surface-2)}.fw-check{border:2px solid var(--fw-line-strong);background:var(--fw-surface);border-radius:8px;flex:none;place-items:center;width:24px;height:24px;transition:background .15s,border-color .15s,transform .12s;display:inline-grid}.fw-check svg{opacity:0;transition:opacity .15s,transform .2s cubic-bezier(.34,1.56,.64,1);transform:scale(.5)}.fw-check:hover{border-color:var(--fw-brand);transform:scale(1.08)}.fw-check-on svg{opacity:1;transform:scale(1)}.fw-check-lg{border-radius:9px;width:28px;height:28px}.fw-task-label{flex:1;align-items:center;gap:.35rem;min-width:0;font-weight:500;transition:color .15s;display:inline-flex}.fw-task-done .fw-task-label{color:var(--fw-ink-3);text-decoration:line-through;text-decoration-thickness:1.5px}.fw-task-star{color:#d9930d;display:inline-flex}.fw-task-meta{align-items:center;gap:.4rem;display:flex}.fw-task-min{color:var(--fw-ink-3);font-variant-numeric:tabular-nums;font-size:.78rem}.fw-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem;display:flex}.fw-segment{background:var(--fw-line);border-radius:var(--fw-r-sm);gap:2px;padding:3px;display:inline-flex}.fw-segment-btn{min-height:36px;color:var(--fw-ink-2);border-radius:8px;padding:.4rem 1rem;font-size:.9rem;font-weight:600;transition:background .15s,color .15s,box-shadow .15s}.fw-segment-active{background:var(--fw-surface);color:var(--fw-ink);box-shadow:var(--fw-shadow-sm)}.fw-chips{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.fw-chip-filter{border:1px solid var(--fw-line-strong);background:var(--fw-surface);min-height:36px;color:var(--fw-ink-2);border-radius:999px;padding:.32rem .85rem;font-size:.88rem;font-weight:600;transition:all .15s}.fw-chip-filter:hover{border-color:var(--fw-brand);color:var(--fw-ink)}.fw-chip-filter-on{background:var(--fw-ink);border-color:var(--fw-ink);color:#fff}.fw-listview{flex-direction:column;gap:1.1rem;display:flex}.fw-listgroup-title{align-items:center;gap:.55rem;display:inline-flex}.fw-listrows{margin:0;padding:0;list-style:none}.fw-listrow{border-bottom:1px solid var(--fw-line);grid-template-columns:minmax(140px,1fr) auto minmax(210px,auto);align-items:center;gap:.8rem;padding:.55rem 0;display:grid}.fw-listrow:last-child{border-bottom:none}.fw-listrow-name{flex-wrap:wrap;align-items:center;gap:.45rem;font-weight:600;display:inline-flex}.fw-listrow-weekly{align-items:center;gap:.55rem;display:inline-flex}.fw-listrow-hint{color:var(--fw-ink-3);font-size:.8rem}.fw-daydots{gap:.3rem;display:inline-flex}.fw-daydot{border:2px solid var(--fw-line-strong);background:var(--fw-surface);width:27px;height:27px;color:var(--fw-ink-3);border-radius:50%;place-items:center;font-size:.68rem;font-weight:700;transition:all .15s;display:grid}.fw-daydot:hover{border-color:var(--fw-brand);transform:scale(1.12)}.fw-daydot-done{color:#fff}.fw-daydot-missed{border-color:color-mix(in srgb, var(--fw-danger) 55%, white);color:var(--fw-danger);background:var(--fw-danger-bg)}.fw-daydot-today{box-shadow:0 0 0 3px #1f6b3a40}.fw-board{grid-auto-columns:minmax(260px,1fr);grid-auto-flow:column;gap:1rem;padding-bottom:.5rem;display:grid;overflow-x:auto}.fw-boardcol{background:var(--fw-surface-2);border-radius:var(--fw-r-md);border:1px dashed #0000;min-height:220px;padding:.7rem;transition:border-color .15s,background .15s}.fw-boardcol-drop{border-color:var(--fw-brand);background:var(--fw-brand-soft)}.fw-boardcol-head{border-top:3px solid var(--fw-line-strong);border-radius:3px 3px 0 0;align-items:center;gap:.55rem;margin-bottom:.3rem;padding:.5rem .55rem .7rem;display:flex}.fw-boardcol-name{font-weight:800}.fw-boardcol-count{background:var(--fw-surface);border:1px solid var(--fw-line);min-width:24px;height:24px;color:var(--fw-ink-2);border-radius:999px;place-items:center;margin-left:auto;padding:0 6px;font-size:.76rem;font-weight:700;display:grid}.fw-boardcol-cards{flex-direction:column;gap:.6rem;display:flex}.fw-taskcard{background:var(--fw-surface);border:1px solid var(--fw-line);border-radius:var(--fw-r-md);box-shadow:var(--fw-shadow-sm);cursor:grab;padding:.7rem .8rem;transition:box-shadow .15s,transform .15s,opacity .15s}.fw-taskcard:hover{box-shadow:var(--fw-shadow-md);transform:translateY(-2px)}.fw-taskcard-dragging{opacity:.45;transform:rotate(2deg)scale(.98)}.fw-taskcard-fixed{cursor:default}.fw-taskcard-head{justify-content:space-between;align-items:flex-start;gap:.4rem;display:flex}.fw-taskcard-title{font-size:.95rem;font-weight:700;line-height:1.3}.fw-taskcard-menuwrap{flex:none;position:relative}.fw-menu{z-index:30;background:var(--fw-surface);border:1px solid var(--fw-line);border-radius:var(--fw-r-sm);min-width:190px;box-shadow:var(--fw-shadow-lg);padding:.3rem;animation:.15s fw-pop;position:absolute;top:calc(100% + 4px);right:0}.fw-menu-item{text-align:left;border-radius:8px;width:100%;padding:.5rem .65rem;font-size:.88rem;font-weight:600;display:block}.fw-menu-item:hover{background:var(--fw-brand-soft);color:var(--fw-brand-ink)}.fw-menu-cancel{color:var(--fw-ink-3);border-top:1px solid var(--fw-line);border-radius:0 0 8px 8px;margin-top:.2rem}.fw-taskcard-days{flex-wrap:wrap;align-items:center;gap:.55rem;margin:.55rem 0;display:flex}.fw-taskcard-daycount{color:var(--fw-ink-2);font-variant-numeric:tabular-nums;font-size:.82rem;font-weight:600}.fw-taskcard-meta{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.fw-taskcard-note{color:var(--fw-ink-3);font-size:.78rem}.fw-weekgrid,.fw-monthgrid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.45rem;display:grid}.fw-dow{text-align:center;text-transform:uppercase;letter-spacing:.05em;color:var(--fw-ink-3);padding:.2rem 0;font-size:.74rem;font-weight:800}.fw-daycell{background:var(--fw-surface);border:1px solid var(--fw-line);border-radius:var(--fw-r-md);text-align:left;flex-direction:column;align-items:stretch;gap:.3rem;min-width:0;min-height:108px;padding:.5rem .55rem;transition:box-shadow .15s,transform .15s,border-color .15s;display:flex}.fw-daycell:hover{border-color:var(--fw-brand);box-shadow:var(--fw-shadow-md);transform:translateY(-2px)}.fw-daycell-today{border-color:var(--fw-brand);box-shadow:0 0 0 3px #1f6b3a29}.fw-daycell-out{opacity:.45}.fw-daycell-num{color:var(--fw-ink-2);align-items:center;gap:.4rem;font-size:.88rem;font-weight:800;display:flex}.fw-daycell-today .fw-daycell-num{color:var(--fw-brand-ink)}.fw-daycell-rows{flex-direction:column;gap:.2rem;display:flex}.fw-daycell-kid{justify-content:space-between;align-items:baseline;gap:.4rem;font-size:.82rem;display:flex}.fw-daycell-kidname{font-weight:700}.fw-daycell-kid-done .fw-daycell-kidname{color:var(--fw-ink-3);text-decoration:line-through}.fw-daycell-kidcount{color:var(--fw-ink-3);font-variant-numeric:tabular-nums;font-size:.78rem}.fw-missdots{gap:3px;display:inline-flex}.fw-missdot{border-radius:50%;width:7px;height:7px}.fw-legend{color:var(--fw-ink-2);flex-wrap:wrap;align-items:center;gap:.9rem;font-size:.85rem;font-weight:600;display:flex}.fw-legend-item{align-items:center;gap:.35rem;display:inline-flex}.fw-daycell-month{min-height:112px}.fw-calweek .fw-daycell{min-height:240px}.fw-calweek .fw-eventchip-title{white-space:normal;overflow:visible}@media (max-width:640px){.fw-calweek .fw-daycell{min-height:150px}}.fw-daycell-events{flex-direction:column;gap:.18rem;min-width:0;display:flex}.fw-eventchip{align-items:baseline;gap:.3rem;min-width:0;font-size:.76rem;line-height:1.3;display:flex}.fw-eventchip .fw-eventdot{width:7px;height:7px}.fw-eventchip-time{white-space:nowrap;font-weight:800}.fw-eventchip-title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.fw-more{color:var(--fw-ink-3);font-size:.74rem;font-weight:600}.fw-eventlist{margin:0;padding:0;list-style:none}.fw-eventitem{border-bottom:1px solid var(--fw-line);align-items:flex-start;gap:.8rem;padding:.7rem 0;display:flex}.fw-eventitem:last-child{border-bottom:none}.fw-eventitem-time{color:var(--fw-ink-2);font-variant-numeric:tabular-nums;flex:0 0 7rem;font-size:.85rem;font-weight:700}.fw-eventitem-body{flex-direction:column;flex:1;gap:.2rem;min-width:0;display:flex}.fw-eventitem-title{align-items:center;gap:.35rem;font-weight:700;display:inline-flex}.fw-eventitem-repeat{color:var(--fw-ink-3);display:inline-flex}.fw-eventitem-driver{color:var(--fw-ink-2);align-items:center;gap:.35rem;font-size:.83rem;display:inline-flex}.fw-eventitem-note{color:var(--fw-ink-3);font-size:.85rem}.fw-profiles{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start;gap:1.1rem;display:grid}.fw-profile{border-top:4px solid var(--fw-line-strong)}.fw-profile-head{flex-wrap:wrap;align-items:center;gap:.8rem;display:flex}.fw-profile-name{font-size:1.15rem;font-weight:800}.fw-profile-role{color:var(--fw-ink-2);font-size:.87rem}.fw-profile-stats{grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:.7rem;margin:1rem 0;display:grid}.fw-stat{background:var(--fw-surface-2);border:1px solid var(--fw-line);border-radius:var(--fw-r-md);flex-direction:column;align-items:flex-start;gap:.15rem;padding:.6rem .7rem;display:flex}.fw-stat-value{font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:800}.fw-stat-label{color:var(--fw-ink-3);font-size:.76rem;font-weight:600}.fw-stat-ring{flex-direction:row;align-items:center;gap:.6rem}.fw-profile-strip{gap:.35rem;margin-bottom:1rem;display:flex}.fw-stripday{border:2px solid var(--fw-line);width:30px;height:30px;color:var(--fw-ink-3);border-radius:9px;place-items:center;font-size:.7rem;font-weight:700;display:grid}.fw-stripday-all{color:#fff}.fw-stripday-missed{border-color:color-mix(in srgb, var(--fw-danger) 55%, white);background:var(--fw-danger-bg);color:var(--fw-danger)}.fw-stripday-open{border-style:dashed}.fw-profile-chores h3{text-transform:uppercase;letter-spacing:.04em;color:var(--fw-ink-3);margin-bottom:.4rem;font-size:.85rem;font-weight:800}.fw-profile-chores ul{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.fw-profile-chores li{justify-content:space-between;align-items:center;gap:.5rem;font-size:.92rem;font-weight:500;display:flex}.fw-profile-foot{border-top:1px solid var(--fw-line);justify-content:space-between;align-items:center;gap:.6rem;margin-top:1rem;padding-top:.8rem;display:flex}.fw-profile-badges{letter-spacing:.1em;color:var(--fw-ink-3);font-size:1.15rem}.fw-profile-badge{cursor:help}.fw-profile-parent{align-self:start}.fw-moneyboard{grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:1rem;display:grid}.fw-moneycard{background:var(--fw-surface-2);border:1px solid var(--fw-line);border-radius:var(--fw-r-md);flex-direction:column;gap:.6rem;padding:.9rem 1rem;transition:box-shadow .15s,transform .15s;display:flex}.fw-moneycard:hover{box-shadow:var(--fw-shadow-md);transform:translateY(-2px)}.fw-moneycard-lead{background:linear-gradient(180deg, #fffaea, var(--fw-surface-2));border-color:#f0c445}.fw-moneycard-who{align-items:center;gap:.6rem;display:flex}.fw-moneycard-name{align-items:center;gap:.3rem;font-weight:800;display:inline-flex}.fw-missedwarn{color:var(--fw-warn);display:inline-flex}.fw-moneycard-amount{font-variant-numeric:tabular-nums;margin-left:auto;font-size:1.25rem;font-weight:800}.fw-moneycard-amount small{color:var(--fw-ink-3);font-size:.78rem;font-weight:600}.fw-moneycard-foot{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.fw-paidtoggle{cursor:pointer;align-items:center;gap:.4rem;min-height:40px;font-size:.88rem;font-weight:700;display:inline-flex}.fw-paidtoggle input{width:18px;height:18px;min-height:0;accent-color:var(--fw-good)}.fw-streaks{flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.fw-streakrow{align-items:center;gap:.6rem;display:flex}.fw-streakrow-name{font-weight:700}.fw-streakrow-value{font-variant-numeric:tabular-nums;margin-left:auto;font-weight:800}.fw-badgegrid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.2rem;display:grid}.fw-badgecol-head{align-items:center;gap:.5rem;margin-bottom:.6rem;font-weight:800;display:flex}.fw-badges{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.fw-badge{border:1px solid var(--fw-line);border-radius:var(--fw-r-md);background:var(--fw-surface-2);opacity:.75;align-items:center;gap:.55rem;padding:.5rem .65rem;display:flex}.fw-badge-earned{opacity:1;background:var(--fw-surface);border-color:color-mix(in srgb, var(--fw-good) 30%, white);box-shadow:var(--fw-shadow-sm)}.fw-badge-emoji{font-size:1.25rem}.fw-badge:not(.fw-badge-earned) .fw-badge-emoji{filter:grayscale()}.fw-badge-name{font-size:.88rem;font-weight:700}.fw-badge-progress{width:70px;margin-left:auto}.fw-form{flex-direction:column;gap:.8rem;display:flex}.fw-form-row{flex-wrap:wrap;align-items:flex-end;gap:.8rem;display:flex}.fw-field{color:var(--fw-ink-2);flex-direction:column;gap:.3rem;min-width:0;font-size:.86rem;font-weight:600;display:flex}.fw-checkfield{cursor:pointer;align-items:center;gap:.5rem;min-height:40px;font-size:.92rem;font-weight:600;display:inline-flex}.fw-checkfield input{width:18px;height:18px;min-height:0;accent-color:var(--fw-brand)}.fw-form-actions{align-items:center;gap:.6rem;margin-top:.6rem;display:flex}.fw-wrap{flex-wrap:wrap}.fw-confirm-body{color:var(--fw-ink-2)}.fw-settings-subhead{text-transform:uppercase;letter-spacing:.04em;color:var(--fw-ink-3);margin:1rem 0 .5rem;font-size:.85rem;font-weight:800}.fw-settings-subhead:first-child{margin-top:0}.fw-settings-rows{flex-direction:column;gap:.5rem;display:flex}.fw-settings-row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.fw-grow{flex:10rem;min-width:8rem}.fw-colorinput{cursor:pointer;width:44px;height:40px;padding:3px}.fw-minutefield{color:var(--fw-ink-3);align-items:center;gap:.3rem;font-size:.85rem;display:inline-flex}.fw-minutefield input{width:4.6rem}.fw-overlay{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#23283d6b;justify-content:center;align-items:flex-start;padding:clamp(.8rem,4vh,3rem) 1rem;animation:.18s fw-fade;display:flex;position:fixed;inset:0;overflow-y:auto}.fw-overlay-top{align-items:flex-start;padding-top:clamp(1rem,12vh,8rem)}.fw-modal{background:var(--fw-surface);border-radius:var(--fw-r-lg);width:min(560px,100%);box-shadow:var(--fw-shadow-lg);outline:none;animation:.22s cubic-bezier(.22,1,.36,1) fw-pop}.fw-modal-wide{width:min(760px,100%)}.fw-modal-head{justify-content:space-between;align-items:center;gap:.8rem;padding:1rem 1.25rem .6rem;display:flex}.fw-modal-head h3{letter-spacing:-.01em;font-size:1.1rem;font-weight:800}.fw-modal-body{padding:.4rem 1.25rem 1.25rem}.fw-palette{background:var(--fw-surface);border-radius:var(--fw-r-lg);width:min(600px,100%);box-shadow:var(--fw-shadow-lg);animation:.2s cubic-bezier(.22,1,.36,1) fw-pop;overflow:hidden}.fw-palette-inputrow{border-bottom:1px solid var(--fw-line);color:var(--fw-ink-3);align-items:center;gap:.6rem;padding:.7rem 1rem;display:flex}.fw-palette-inputrow input{background:0 0;border:none;flex:1;min-height:36px;padding:.2rem 0;font-size:1rem}.fw-palette-inputrow input:focus{box-shadow:none}.fw-palette-results{max-height:min(420px,55vh);padding:.4rem;overflow-y:auto}.fw-palette-none{color:var(--fw-ink-3);padding:1rem}.fw-palette-hit{text-align:left;border-radius:var(--fw-r-sm);grid-template-columns:4.6rem 1fr;align-items:baseline;column-gap:.7rem;width:100%;padding:.55rem .7rem;display:grid}.fw-palette-hit-active{background:var(--fw-brand-soft)}.fw-palette-group{text-transform:uppercase;letter-spacing:.05em;color:var(--fw-ink-3);font-size:.7rem;font-weight:800}.fw-palette-label{font-weight:700}.fw-palette-detail{color:var(--fw-ink-3);grid-column:2;font-size:.8rem}.fw-toasts{bottom:calc(1rem + env(safe-area-inset-bottom));z-index:150;pointer-events:none;flex-direction:column;gap:.5rem;width:min(420px,100vw - 2rem);display:flex;position:fixed;left:50%;transform:translate(-50%)}.fw-toast{pointer-events:auto;background:var(--fw-ink);color:#fff;border-radius:var(--fw-r-md);box-shadow:var(--fw-shadow-lg);align-items:center;gap:.7rem;padding:.75rem 1rem;font-size:.92rem;font-weight:600;animation:.25s cubic-bezier(.22,1,.36,1) fw-toastin;display:flex}.fw-toast-msg{flex:1}.fw-toast-good{background:#17603c}.fw-toast-warn{background:#7a5106}.fw-toast-party{background:var(--fw-grad)}.fw-toast-action{color:#fff;text-underline-offset:3px;border-radius:6px;flex:none;padding:.2rem .3rem;font-weight:800;text-decoration:underline}.fw-toast-action:hover{background:#ffffff26}.fw-confetti{z-index:140;pointer-events:none;position:fixed;inset:0;overflow:hidden}.fw-confetti-piece{animation-name:fw-confetti-fall;animation-timing-function:ease-in;animation-fill-mode:forwards;position:absolute;top:-20px}.fw-empty{text-align:center;flex-direction:column;align-items:center;gap:.4rem;padding:1.6rem 1rem;display:flex}.fw-empty-art{margin-bottom:.3rem}.fw-empty-title{font-size:1.02rem;font-weight:800}.fw-empty-hint{color:var(--fw-ink-3);max-width:30rem;font-size:.9rem}.fw-empty .fw-btn{margin-top:.6rem}.fw-skeleton{border-radius:var(--fw-r-lg);background:linear-gradient(100deg, var(--fw-line) 40%, #f2f3f9 50%, var(--fw-line) 60%);background-size:200% 100%;animation:1.4s linear infinite fw-shimmer}.fw-skeleton-hero{height:170px}.fw-skeleton-card{height:220px}.fw-skeleton-bar{height:56px}.fw-skeleton-block{height:420px}@keyframes fw-fade{0%{opacity:0}}@keyframes fw-fadeup{0%{opacity:0;transform:translateY(8px)}}@keyframes fw-pop{0%{opacity:0;transform:translateY(10px)scale(.98)}}@keyframes fw-toastin{0%{opacity:0;transform:translateY(14px)}}@keyframes fw-float{0%,to{transform:translateY(0)}50%{transform:translateY(-9px)}}@keyframes fw-shimmer{to{background-position:-200% 0}}@keyframes fw-confetti-fall{to{opacity:.9;transform:translateY(105vh)rotate(680deg)}}@media (max-width:900px){.fw-sidebar{display:none}.fw-bottomnav{display:flex}.fw-topbar-add{display:none}.fw-searchtrigger{flex:1;width:auto}.fw-searchtrigger kbd{display:none}.fw-main{padding-bottom:7rem}.fw-hero{text-align:center;flex-direction:column-reverse;padding:1.3rem}.fw-hero-text{flex-direction:column;align-items:center;display:flex}.fw-hero-actions{justify-content:center}.fw-listrow{grid-template-columns:1fr auto}.fw-listrow>:nth-child(3){grid-column:1/-1}.fw-eventitem{flex-wrap:wrap}.fw-eventitem-time{flex-basis:100%}}@media (max-width:640px){.fw-weekgrid,.fw-monthgrid{gap:.25rem}.fw-daycell{border-radius:var(--fw-r-sm);min-height:84px;padding:.35rem .4rem}.fw-daycell-kidname,.fw-eventchip-title{font-size:.7rem}.fw-daycell-kid{flex-direction:column;align-items:flex-start;gap:0}.fw-daycell-kidname{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.fw-daycell-kidcount{font-size:.68rem}.fw-eventchip-time{display:none}.fw-moneyrow{flex-wrap:wrap;align-items:center;display:flex}.fw-moneyrow .fw-moneyrow-amount{margin-left:auto}.fw-moneyrow .fw-meter{flex-basis:100%;order:5}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.fw-blob,.fw-hero-art,.fw-skeleton{animation:none!important}}.fw-login{background:var(--fw-canvas);place-items:center;min-height:100dvh;padding:24px;display:grid}.fw-login-card{background:var(--fw-surface);border:1px solid var(--fw-line);border-radius:18px;flex-direction:column;gap:14px;width:100%;max-width:380px;padding:28px 26px 26px;display:flex;box-shadow:0 12px 40px #23283d14}.fw-login-brand{align-items:center;gap:10px;margin-bottom:6px;display:flex}.fw-login-card h1{margin:0;font-size:1.4rem}.fw-login-sub{color:var(--fw-ink-2);margin:-8px 0 4px;font-size:.92rem}.fw-login-error{background:var(--fw-warn-bg,#fff4dd);color:var(--fw-warn);border-radius:10px;margin:0;padding:10px 12px;font-size:.9rem}.fw-login-submit{justify-content:center;margin-top:4px}.fw-sidebar-user{border-top:1px solid var(--fw-line);justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding:6px 4px 6px 10px;display:flex}.fw-sidebar-user-name{min-width:0;color:var(--fw-ink);white-space:nowrap;text-overflow:ellipsis;flex-direction:column;font-size:.9rem;font-weight:600;display:flex;overflow:hidden}.fw-sidebar-user-name small{color:var(--fw-ink-3);font-size:.75rem;font-weight:500}.fw-app-collapsed .fw-sidebar-user{justify-content:center;padding:6px 0}
