:root{--accent:#cc2f6c;--accent-hover:#bc2963;--accent-shadow:#9a1f50;--accent-strong:#8a1d49;--rose:#b0275e;--ink:#5a2340;--ink-muted:#8e4f6d;--ink-soft:#9c7387;--line:#f7cfdf;--line-soft:#fbe0eb;--line-strong:#f2a7c4;--tint:#ffe3ee;--tint-soft:#fff0f6;--tint-faint:#fff4f8;--paper:#fff;--page:#fff6fa;--dot:#ffd6e5;--sticky:#fff0f6;--ok-bg:#e3f4e8;--ok-ink:#1f6b3a;--bad-bg:#fde2e2;--bad-ink:#a12626;--warn-bg:#fff3c4;--warn-ink:#6b4a00;--radius:30px;--font-display:"Fredoka", "Nunito", ui-rounded, system-ui, sans-serif;--font-body:"Nunito", ui-rounded, system-ui, -apple-system, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background-color:var(--page);background-image:radial-gradient(var(--dot) 1.6px, transparent 1.6px);color:var(--ink);font-family:var(--font-body);-webkit-text-size-adjust:100%;background-size:24px 24px;margin:0;font-size:17px;line-height:1.45}button,input,textarea,select{font:inherit;color:inherit}a{color:var(--rose)}h1,h2,h3{font-family:var(--font-display);margin:0;font-weight:600}h1{align-items:center;gap:.5rem;font-size:1.4rem;display:flex}h2{font-size:1.3rem}h3{font-size:1.1rem}p{margin:0}.fr{font-family:var(--font-display)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.app{max-width:760px;padding:max(env(safe-area-inset-top), 12px) 16px max(env(safe-area-inset-bottom), 24px);margin:0 auto}.shell{align-items:flex-start;min-height:100vh;display:flex}.side{flex-direction:column;flex:0 0 236px;gap:24px;min-height:100vh;padding:26px 18px;display:flex;position:sticky;top:0}.brand{font-family:var(--font-display);color:var(--rose);letter-spacing:-.5px;align-items:center;gap:8px;padding:0 6px;font-size:28px;font-weight:700;text-decoration:none;display:flex}.side-nav{flex-direction:column;gap:6px;display:flex}.nav{min-height:50px;color:var(--ink-muted);border-radius:20px;align-items:center;gap:12px;padding:0 16px;font-size:16px;font-weight:800;text-decoration:none;display:flex}.nav:hover{background:#ffedf4}.nav.active{color:var(--rose);box-shadow:0 4px 0 var(--line);background:#fff}.badge{background:var(--accent);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:26px;height:26px;margin-left:auto;padding:0 8px;font-size:13px;font-weight:800;display:inline-flex}.side-foot{flex-direction:column;gap:8px;margin-top:auto;display:flex}.main{flex:auto;min-width:0;max-width:1180px;padding:30px 36px 140px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;display:flex}.hello{letter-spacing:-.5px;font-size:38px;font-weight:700}.sub{color:var(--ink-muted);font-size:16px;font-weight:700}.cols{flex-wrap:wrap;align-items:flex-start;gap:24px;display:flex}.cols>.wide{flex:999 440px;min-width:0}.cols>.narrow{flex:300px;min-width:0}@media (width<=860px){.shell{flex-direction:column}.side{width:100%;min-height:0;padding:max(env(safe-area-inset-top), 12px) 12px 4px;flex-flow:wrap;flex:none;align-items:center;gap:10px;position:static}.side-nav{flex-flow:wrap;gap:4px;width:100%}.nav{min-height:42px;padding:0 12px;font-size:15px}.side-foot{flex-direction:row;margin:0 0 0 auto}.main{width:100%;padding:8px 14px 130px}.hello{font-size:30px}}.stack{flex-direction:column;gap:.9rem;display:flex}.stack.tight{gap:.4rem}.row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.row.spread{justify-content:space-between}.row.nowrap{flex-wrap:nowrap}.grow{flex:auto;min-width:0}.card{background:var(--paper);border:2px solid var(--line-soft);border-radius:var(--radius);padding:22px 24px;box-shadow:0 10px 30px #cc2f6c14}.card.flat{box-shadow:none}.card-title{margin:0 0 4px 4px;font-size:22px}.muted{color:var(--ink-muted)}.small{font-size:.88rem}.strong{font-weight:800}.error,.bad{color:var(--bad-ink)}.empty{color:var(--ink-muted);margin:6px;font-weight:700}.btn{cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 22px;font-size:16px;font-weight:800;text-decoration:none;transition:transform 80ms,box-shadow 80ms,background .15s;display:inline-flex}.btn:disabled{opacity:.55;cursor:default}.btn.primary{background:var(--accent);color:#fff;box-shadow:0 5px 0 var(--accent-shadow)}.btn.primary:not(:disabled):hover{background:var(--accent-hover)}.btn.primary:not(:disabled):active{box-shadow:0 1px 0 var(--accent-shadow);transform:translateY(4px)}.btn.soft,.btn.secondary{color:var(--rose);border:2px solid var(--line);box-shadow:0 5px 0 var(--line);background:#fff;flex-wrap:wrap}.btn.soft:not(:disabled):hover,.btn.secondary:not(:disabled):hover{background:var(--tint-faint)}.btn.soft:not(:disabled):active,.btn.secondary:not(:disabled):active{box-shadow:0 1px 0 var(--line);transform:translateY(4px)}.btn.ghost{color:#9a3f67;background:0 0;min-height:42px;padding:0 14px}.btn.ghost:not(:disabled):hover{background:var(--tint)}.btn.danger{color:var(--bad-ink);background:#fff;border:2px solid #f3c2c2}.btn.small{min-height:36px;padding:0 14px;font-size:14px}.btn.round{width:46px;min-height:46px;padding:0}.btn.round.small{width:36px;min-height:36px}.back{color:var(--accent-strong);align-items:center;gap:4px;font-weight:800;text-decoration:none;display:inline-flex}.fab{right:28px;bottom:calc(28px + env(safe-area-inset-bottom));z-index:15;min-height:60px;padding:0 26px;font-size:17px;position:fixed}@media (width<=860px){.fab{right:14px;bottom:calc(14px + env(safe-area-inset-bottom))}}.chip{background:var(--tint);border-radius:999px;padding:.15rem .7rem;font-size:.88rem;font-weight:700;display:inline-block}.chip.ok{background:var(--ok-bg);color:var(--ok-ink)}.chip.bad{background:var(--bad-bg);color:var(--bad-ink)}p.chip{border-radius:12px;padding:.4rem .8rem}.mini{background:var(--tint-soft);color:var(--accent-strong);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:4px 11px;font-size:13px;font-weight:700;display:inline-flex}.mini.warn{background:var(--warn-bg);color:var(--warn-ink)}.mini.bad{background:var(--bad-bg);color:var(--bad-ink)}.sticker{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:7px 13px;font-size:13px;font-weight:800;display:inline-flex}.st-need{background:var(--accent);color:#fff}.st-ok{background:var(--tint);color:var(--accent-strong)}.st-later{color:#7a5468;background:#f7f0f3}.st-up{color:var(--ink-muted);border:2px solid var(--line-soft);background:#fff}.av{font-family:var(--font-display);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.av1{color:#8a1d49;background:#ffd0e1}.av2{color:#7a3a12;background:#fde2cf}.av3{color:#55307e;background:#eadcf8}.av4{color:#6b4a00;background:#ffe9a8}.av5{color:#1f5a4b;background:#d9f0ea}.tick{border:3px solid var(--line-strong);cursor:pointer;color:#0000;background:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:34px;height:34px;padding:0;display:inline-flex}.tick:hover{border-color:var(--accent);color:var(--line-strong)}.tick.on{background:var(--accent);border-color:var(--accent);color:#fff}.tick.sm{border-width:2.5px;width:28px;height:28px}.seg{background:var(--tint);border-radius:999px;flex-wrap:wrap;gap:4px;padding:5px;display:inline-flex}.segb{color:#9a3f67;cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:7px;min-height:40px;padding:0 16px;font-size:15px;font-weight:800;display:inline-flex}.segb.on{color:var(--rose);background:#fff;box-shadow:0 4px #f4c2d6}.seg.small .segb{min-height:34px;padding:0 12px;font-size:14px}.pchip{min-height:42px;color:var(--accent-strong);cursor:pointer;background:#fff;border:2px dashed #ec9dbc;border-radius:999px;align-items:center;gap:7px;padding:0 16px;font-size:15px;font-weight:800;display:inline-flex}.pchip:hover{background:var(--tint-faint)}.pchip.on{border-style:solid;border-color:var(--accent);background:var(--tint)}.lbl{color:var(--ink-muted);padding-left:4px;font-size:14px;font-weight:800}.field{flex-direction:column;gap:.3rem;min-width:0;font-weight:700;display:flex}.field>span:first-child{color:var(--ink-muted);padding-left:4px;font-size:14px;font-weight:800}.field input,.field select,.field textarea,.input,textarea{width:100%;color:var(--ink);border:2px solid var(--line);background:#fff;border-radius:16px;outline:none;min-height:48px;padding:10px 14px;font-size:17px;font-weight:600}.field input:focus,.field select:focus,.field textarea:focus,.input:focus,textarea:focus{box-shadow:0 0 0 4px var(--tint);border-color:#e36e9a}::placeholder{color:#b88aa0}.field.inline{flex-direction:row;align-items:center;gap:10px}.fields{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;display:grid}.check{cursor:pointer;align-items:center;gap:.6rem;font-weight:700;display:flex}.check input{width:22px;height:22px;accent-color:var(--accent)}.paper{border:2px solid var(--line);width:100%;min-height:220px;color:var(--ink);resize:vertical;background-color:#fff;background-image:linear-gradient(#0000 35px,#fce1ec 35px);background-position:0 10px;background-size:100% 36px;background-attachment:local;border-radius:24px;padding:10px 20px;font-size:19px;font-weight:600;line-height:36px;display:block}.paper.compact{min-height:112px;font-size:18px}.lrow{text-align:left;background:#fff9fb;border:2px solid #0000;border-radius:22px;align-items:center;gap:14px;width:100%;padding:12px 14px;display:flex}.lrow.clickable{cursor:pointer}.lrow.clickable:hover,.lrow.open{border-color:var(--line);background:#fff}.lrow.off{opacity:.6}.lesson-block{flex-direction:column;gap:8px;display:flex}.lesson-time{width:54px;font-family:var(--font-display);color:var(--ink-muted);flex:none;font-size:19px;font-weight:600}.who{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.who-name{color:var(--ink);font-size:17px;font-weight:800;text-decoration:none}.who-meta{color:var(--ink-muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;font-weight:700;display:flex}.inline-editor{background:var(--tint-faint);border:2px solid var(--line-soft);border-radius:22px;margin:0 0 6px 68px;padding:14px}@media (width<=860px){.inline-editor{margin-left:0}}.row-promises{flex-wrap:wrap;gap:6px;margin:-2px 0 2px 68px;display:flex}@media (width<=860px){.row-promises{margin-left:0}}.prow{border-radius:16px;align-items:flex-start;gap:12px;padding:8px 4px;display:flex}.prow .ptxt{text-align:left;cursor:pointer;color:var(--ink);background:0 0;border:0;padding:0;font-size:16px;font-weight:800}.prow .ptxt:hover{color:var(--rose)}.prow.done .ptxt{color:var(--ink-soft);text-decoration:line-through}.pmeta{color:var(--ink-muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;font-weight:700;display:flex}.section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin:10px 4px 0;font-size:13px;font-weight:800}.hero{background:var(--tint);border-radius:34px;flex-wrap:wrap;align-items:center;gap:20px;margin-bottom:22px;padding:20px 26px;display:flex}.hero.calm{border:2px solid var(--line-soft);background:#fff}.hero-title{font-family:var(--font-display);color:var(--accent-strong);font-size:24px;font-weight:600}.banner{text-align:left;background:var(--tint);color:var(--ink);border:2px dashed var(--accent);cursor:pointer;border-radius:18px;align-items:center;gap:.5rem;padding:.8rem 1rem;font-weight:700;display:flex}.notice{background:var(--warn-bg);color:var(--warn-ink);border-radius:18px;padding:12px 16px;font-weight:700}.notice.bad{background:var(--bad-bg);color:var(--bad-ink)}.bob{animation:2.6s ease-in-out infinite bob}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@media (prefers-reduced-motion:reduce){.bob{animation:none}}.sticky{background:var(--sticky);border-radius:6px 26px 26px;padding:24px 20px 18px;position:relative;transform:rotate(-1deg);box-shadow:0 8px 20px #cc2f6c1a}.sticky .tape{background:#f2a7c48c;border-radius:4px;width:84px;height:22px;margin-left:-42px;position:absolute;top:-11px;left:50%;transform:rotate(3deg)}.raw{white-space:pre-wrap;font-weight:700}.addition{border-left:3px solid var(--line-strong);white-space:pre-wrap;padding-left:10px}.entry{border:2px solid var(--line-soft);background:#fff;border-radius:22px;align-items:flex-start;gap:14px;padding:12px 14px;display:flex}.date-tile{background:var(--tint);width:56px;height:58px;color:var(--accent-strong);text-transform:uppercase;border-radius:16px;flex-direction:column;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:800;line-height:1;display:flex}.date-tile b{font-family:var(--font-display);font-size:22px;font-weight:600}.plan-item{align-items:flex-start;gap:12px;display:flex}.week{grid-template-columns:repeat(var(--days,5), minmax(170px, 1fr));gap:12px;padding-bottom:8px;display:grid;overflow-x:auto}.dayhead{border:2px solid var(--line-soft);background:#fff;border-radius:20px;flex-direction:column;gap:2px;padding:12px 14px;display:flex}.dayhead.today{background:var(--tint);border-color:var(--line-strong)}.wl{border:2px solid var(--line-soft);cursor:pointer;text-align:left;width:100%;box-shadow:0 4px 0 var(--line-soft);background:#fff;border-radius:18px;flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px;display:flex}.wl:hover{border-color:var(--line-strong)}.wl.need{border-color:#e36e9a}.wl.off{opacity:.55}.wl.off .wl-name{text-decoration:line-through}.wl-name{font-weight:800}.scards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.scard{border:2px solid var(--line-soft);text-align:center;color:var(--ink);background:#fff;border-radius:28px;flex-direction:column;align-items:center;gap:8px;padding:22px 16px;text-decoration:none;display:flex;box-shadow:0 8px 22px #cc2f6c0f}.scard:hover{border-color:var(--line-strong)}.scard.off{opacity:.65}dialog.sheet{width:min(480px,100vw - 24px);max-height:calc(100vh - 40px);color:var(--ink);background:#fff;border:0;border-radius:32px;padding:26px;box-shadow:0 24px 60px #5a234040}dialog.sheet.wide{width:min(760px,100vw - 24px)}dialog.sheet::backdrop{background:#5a234047}.sheet-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.toast{left:50%;bottom:calc(30px + env(safe-area-inset-bottom));z-index:30;background:var(--ink);color:#fff;border-radius:999px;align-items:center;gap:10px;padding:12px 22px;font-size:15px;font-weight:800;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 10px 30px #5a23404d}.save-state{color:var(--ink-muted);align-items:center;gap:6px;min-height:28px;font-size:14px;font-weight:800;display:inline-flex}.save-state.saved{color:var(--ok-ink)}.save-state.failed,.save-state.conflict{color:var(--bad-ink)}.save-state.offline{color:var(--warn-ink)}.conflict-texts{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.conflict-texts pre{white-space:pre-wrap;font:inherit;background:var(--tint-faint);border:2px solid var(--line-soft);border-radius:16px;min-height:80px;margin:0;padding:12px;font-weight:600}.install{border-color:var(--accent)}.steps{flex-direction:column;gap:.6rem;margin:0;padding-left:1.4rem;display:flex}.steps li{flex-direction:column;display:flex}.inline-icon{vertical-align:-.2em;color:#0a84ff;width:1.2em;height:1.2em}.facts{margin:0;padding-left:1.2rem}.summary{flex-direction:column;gap:.4rem;display:flex}.table-wrap{margin:0 -.4rem;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.88rem}th,td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:.4rem}.prompt{background:#fff9c4;border-radius:6px 6px 18px;margin:0;padding:.8rem 1rem;box-shadow:0 2px #5a234014}.timer{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:1.5rem}.timer.over{color:var(--bad-ink)}.results{margin:0;padding-left:1.4rem}
