:root{--bg:#fcf9f5;--card:#fff;--panel-2:#f2edfb;--text:#2b1d55;--muted:#7b7095;--line:#ebe4f6;--icon:#8b80a6;--accent:#5a36d6;--accent-soft:#ece6fd;--accent-ink:#fff;--track:#f2edfb;--done:#cbc2de;--mint:#cdeedb;--peach:#ffd9bf;--pink:#fbd3e6;--sun:#ffe39a;--lav:#e6defc;--good:#1f8a55;--warn:#c2560c;--danger:#e0485a;--parent:#b4329a;--radius:16px;--gap:10px;--tap:44px;--fs:16px;--tabbar:60px;--serif:ui-serif, "New York", Georgia, "AppleMyungjo", "Noto Serif KR", serif;--mono:ui-monospace, "SF Mono", Menlo, "Apple SD Gothic Neo", monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,system-ui,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}[data-theme=dark]{--bg:#1b1335;--card:#261b49;--panel-2:#34285f;--text:#f3effc;--muted:#b6aad6;--line:#392c68;--icon:#a99dcc;--accent:#a58bff;--accent-soft:#3a2c74;--accent-ink:#1b1335;--track:#34285f;--done:#6f6496;--mint:#2c5a48;--peach:#6b4630;--pink:#5f3352;--sun:#6b5a26;--lav:#3a2c74;--good:#5fd39a;--danger:#ff7d8c;--parent:#f08bd8;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-size:var(--fs);-webkit-tap-highlight-color:transparent;overscroll-behavior:none}button,input,select,textarea{font:inherit;color:inherit}button{min-height:var(--tap);border-radius:var(--radius);border:1px solid var(--line);background:var(--card);cursor:pointer;touch-action:manipulation;white-space:nowrap;flex:none;padding:0 16px}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);color:var(--accent-ink);border-color:#0000;font-weight:600}button.primary.ghost{background:var(--panel-2);color:var(--text)}button.danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 40%, transparent)}button.small{min-height:36px;padding:0 12px;font-size:.88em}button.big{width:100%;min-height:52px;font-size:1.05em}button.link{color:var(--muted);background:0 0;border:none;min-height:40px;font-size:.75em;text-decoration:underline}.text-btn{color:var(--accent);background:0 0;border:none;min-height:36px;padding:0 8px;font-weight:600}.icon-btn{min-width:var(--tap);color:var(--text);background:0 0;border:none;place-items:center;padding:0;display:inline-grid}input,select,textarea{min-height:var(--tap);border-radius:var(--radius);border:1px solid var(--line);background:var(--card);width:100%;padding:8px 12px}textarea{resize:vertical}input[type=checkbox],input[type=radio]{width:22px;height:22px;min-height:0;accent-color:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}fieldset{border-radius:var(--radius);background:var(--card);border:none;gap:10px;margin:0;padding:12px;display:grid}legend{color:var(--muted);float:left;width:100%;padding:0;font-size:.85em}label{color:var(--muted);gap:6px;font-size:.9em;display:grid}label>input,label>select,label>textarea{color:var(--text);font-size:1.1em}label.toggle{color:var(--text);min-height:var(--tap);align-items:center;gap:10px;display:flex}h1{margin:0;font-size:1.3em}h2{margin:0;font-size:1em;font-weight:600}h3{color:var(--muted);margin:20px 0 8px;font-size:.95em}.muted{color:var(--muted);font-size:.9em}.center{text-align:center}.spacer{flex:1}.grow{text-align:left;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.error{color:var(--danger);margin:4px 0;font-size:.9em}.warn{color:var(--warn)}.notice{background:color-mix(in srgb, var(--parent) 10%, var(--card));border:1px solid color-mix(in srgb, var(--parent) 30%, transparent);border-radius:var(--radius);margin:0 0 10px;padding:10px 12px;font-size:.88em}.empty{color:var(--muted);text-align:center;white-space:pre-line;padding:60px 0}.loading{height:100%;color:var(--muted);place-items:center;display:grid}.chip{border:1px solid var(--line);border-radius:999px;align-items:center;gap:4px;padding:0 7px;font-size:.85em;line-height:1.5;display:inline-flex}.chev{color:var(--muted);transition:transform .15s}.chev.closed{transform:rotate(-90deg)}.chev.up{transform:rotate(180deg)}.app{height:100%;padding-top:env(safe-area-inset-top);grid-template:"parent parent""banner banner""main detail"1fr"tabs tabs"/minmax(0,1fr) 0;display:grid}.app.has-detail{grid-template-columns:minmax(0,1fr) minmax(360px,420px)}.parent-bar{background:color-mix(in srgb, var(--parent) 14%, var(--bg));color:var(--parent);grid-area:parent;align-items:center;gap:6px;padding:4px 14px;font-size:.85em;font-weight:600;display:flex}.update-banner{background:var(--accent);color:var(--accent-ink);grid-area:banner;align-items:center;gap:12px;padding:8px 16px;display:flex}.save{display:none}.save-error{z-index:70;top:calc(8px + env(safe-area-inset-top));background:var(--danger);color:#fff;border-radius:999px;padding:6px 14px;font-size:.85em;font-weight:600;display:block;position:fixed;left:50%;transform:translate(-50%)}.main{-webkit-overflow-scrolling:touch;grid-area:main;padding:0 12px 110px;overflow-y:auto}.main>*{max-width:760px;margin-inline-start:auto;margin-inline-end:auto}.sub-bar{align-items:center;gap:4px;padding:6px 0;display:flex}.sub-title{font-weight:600}.detail-pane{background:var(--bg);border-left:1px solid var(--line);grid-area:detail;padding:4px 14px 96px;overflow-y:auto}.tabbar{background:var(--bg);padding-bottom:env(safe-area-inset-bottom);height:calc(var(--tabbar) + env(safe-area-inset-bottom));grid-area:tabs;grid-template-columns:repeat(3,1fr);display:grid}.tab{color:var(--icon);height:var(--tabbar);background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:1px;font-size:.7em;display:flex}.fab{z-index:15;right:max(22px, env(safe-area-inset-right));bottom:calc(var(--tabbar) + 22px + env(safe-area-inset-bottom));background:var(--accent);color:#fff;width:56px;height:56px;box-shadow:0 4px 14px color-mix(in srgb, var(--accent) 40%, transparent);border:none;border-radius:50%;place-items:center;padding:0;display:grid;position:fixed}.has-detail .fab{right:442px}.drawer-wrap{z-index:40;background:#0000004d;position:fixed;top:0;bottom:0;left:0;right:0}.drawer{background:var(--bg);width:min(340px,86vw);padding:calc(14px + env(safe-area-inset-top)) 14px 14px;align-content:start;gap:10px;display:grid;position:absolute;top:0;bottom:0;left:0;overflow-y:auto;box-shadow:0 0 40px #0003}.drawer header{justify-content:space-between;align-items:center;padding:6px 4px;display:flex}.drawer-title{color:var(--accent);padding:18px 0 6px;font-size:2em;font-weight:800}.d-card{background:var(--card);border-radius:12px;padding:4px 0}.d-row{text-align:left;width:100%;min-height:54px;color:var(--text);background:0 0;border:none;align-items:center;gap:16px;padding:0 16px;font-size:1.05em;display:flex}.d-row svg{color:var(--accent)}.d-row>span:nth-child(2){flex:1}.d-row.on{color:var(--accent);font-weight:600}.d-sub{width:100%;min-height:48px;color:var(--text);background:0 0;border:none;justify-content:space-between;align-items:center;padding:0 18px 0 56px;font-size:.95em;display:flex}.d-sub.new{color:var(--accent)}.d-dot{place-items:center;width:22px;display:grid}.d-dot:after{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px}.profile .avatar{width:26px;height:26px}.profile.on{font-weight:700}.avatar{background:var(--c,var(--accent));color:#fff;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:.8em;font-weight:700;display:grid}.app-version{margin:6px 8px 0;font-size:.75em}.home-bar{align-items:center;gap:2px;margin-left:-6px;padding:6px 0 2px;display:flex}.search-row{background:var(--card);border-radius:var(--radius);color:var(--muted);align-items:center;gap:8px;margin:4px 0;padding:0 12px;display:flex}.search-row input{background:0 0;border:none;padding-left:0}.filter-note{color:var(--muted);justify-content:space-between;align-items:center;font-size:.85em;display:flex}.chips-row{align-items:center;gap:6px;display:flex}.chips{scrollbar-width:none;flex:1;align-items:center;gap:8px;padding:4px 0 8px;display:flex;overflow-x:auto}.cat-chip{background:var(--panel-2);min-height:32px;color:var(--muted);border:none;border-radius:999px;padding:0 15px;font-size:.85em}.cat-chip.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.chips-row .icon-btn{color:var(--icon)}.task-section{margin-top:2px}.section-head{min-height:34px;color:var(--muted);background:0 0;border:none;align-items:center;gap:4px;padding:0 2px;font-size:.82em;display:inline-flex}.tasks{gap:var(--gap);margin:0 0 4px;padding:0;list-style:none;display:grid}.task{border-radius:var(--radius);background:var(--card);border:2px solid #0000;align-items:center;gap:0;min-height:64px;padding:2px 2px 2px 6px;display:flex}.task.selected{border-color:var(--accent)}.task.dragging{opacity:.5}.task.drop-target{box-shadow:0 -3px 0 var(--accent)}.task.done .task-title{color:var(--text)}.task.done .meta{opacity:.7}.check{width:var(--tap);height:var(--tap);background:0 0;border:none;flex:none;place-items:center;min-height:0;padding:0;display:grid}.check span{border:1.6px solid var(--done);color:#fff;border-radius:50%;place-items:center;width:22px;height:22px;font-size:12px;font-weight:800;display:grid}.task.done .check span{background:var(--done);border-color:var(--done)}.task-main{text-align:left;white-space:normal;background:0 0;border:none;flex:1;gap:4px;min-width:0;height:auto;padding:10px 4px;display:grid}.task-title{overflow-wrap:anywhere;font-size:1em}.meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:7px;font-size:.78em;display:flex}.meta>span{align-items:center;display:inline-flex}.meta .overdue{color:var(--danger)}.drag-handle{width:var(--tap);height:var(--tap);color:var(--icon);touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;flex:none;place-items:center;display:grid}.star-btn{width:var(--tap);height:var(--tap);min-height:0;color:var(--done);background:0 0;border:none;flex:none;place-items:center;padding:0;display:grid}.star-btn:disabled{opacity:1}.pop-anchor{display:inline-flex;position:relative}.popover{z-index:35;background:var(--card);border-radius:12px;min-width:210px;padding:6px;display:grid;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 10px 30px #0000002e}.popover .pop-title{color:var(--muted);margin:6px 10px 4px;font-size:.78em}.popover button{text-align:left;background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;min-height:42px;padding:0 10px;display:flex}.popover button.on{color:var(--accent);font-weight:600}.popover hr{border:none;border-top:1px solid var(--line);width:auto;margin:4px 6px}.danger-text{color:var(--danger)}.sheet-backdrop{z-index:45;background:#0000004d;justify-content:center;align-items:flex-end;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.sheet{background:var(--card);width:min(760px,100%);padding:14px 14px calc(12px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0;gap:10px;display:grid;box-shadow:0 -8px 30px #00000026}.sheet-input{background:var(--bg);border:none;font-size:1.05em}.sheet-tools{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tool-chip{background:var(--bg);min-height:34px;color:var(--accent);border:none;border-radius:999px;align-items:center;gap:5px;width:auto;padding:0 12px;font-size:.85em;display:inline-flex;position:relative}select.tool-chip{-webkit-appearance:none;appearance:none}.tool-chip input{opacity:0;width:100%;height:100%;min-height:0;padding:0;position:absolute;top:0;bottom:0;left:0;right:0}.send{background:var(--accent);color:#fff;border:none;border-radius:999px;min-height:36px;padding:0 18px;font-weight:600}.cat-list{background:var(--card);border-radius:var(--radius);margin:0;padding:0;list-style:none}.cat-list li{border-bottom:1px solid var(--line);align-items:center;gap:10px;min-height:46px;padding:0 6px 0 14px;display:flex}.cat-list li:last-child{border-bottom:none}.cat-list li span:first-child{flex:1}.inline{gap:8px;margin:8px 0;display:flex}.inline input{flex:1}.detail-bar{justify-content:space-between;align-items:center;margin:0 -8px;padding:4px 0 8px;display:flex}.cat-select{color:var(--muted);flex-direction:row;align-items:center;gap:4px;font-size:.92em;display:inline-flex;position:relative}.cat-select select{opacity:0;min-height:0;padding:0;position:absolute;top:0;bottom:0;left:0;right:0}.group{background:var(--card);border-radius:12px;margin-bottom:12px;padding:6px 14px}.title-input{background:0 0;border:none;padding:14px 0 8px;font-size:1.5em;font-weight:500}.subtasks{margin:0;padding:0;list-style:none}.subtasks li{align-items:center;min-height:48px;display:flex}.sub-check{color:var(--text);flex-direction:row;flex:1;align-items:center;gap:14px;font-size:1.05em;display:flex}.sub-check input{-webkit-appearance:none;appearance:none;border:1.6px solid var(--done);border-radius:50%;flex:none;place-items:center;width:22px;min-width:22px;height:22px;margin:0;padding:0;display:grid}.sub-check input:checked{background:var(--done);border-color:var(--done)}.sub-check input:checked:after{content:"✓";color:#fff;font-size:11px;font-weight:800}.subtasks li.done .sub-check span{color:var(--muted);text-decoration:line-through}.sub-del{color:var(--icon);min-width:36px;min-height:36px}.add-sub{color:var(--danger);align-items:center;gap:14px;min-height:48px;font-size:1.05em;display:flex}.add-sub input{color:var(--text);background:0 0;border:none;padding-left:0}.add-sub input::placeholder{color:var(--danger)}.rows{padding:0 0 0 14px}.row-item{min-height:56px;color:var(--text);border-bottom:1px solid var(--line);flex-direction:row;align-items:center;gap:14px;padding-right:10px;font-size:1em;display:flex;position:relative}.row-item:last-child{border-bottom:none}.row-item.indent{padding-left:32px}.row-item.indent svg{display:none}.row-item>svg{color:var(--text);flex:none}.row-label{flex:1}.row-value{color:var(--muted);align-items:center;gap:4px;font-size:.92em;display:inline-flex}.row-item>input:not(.switch),.row-item>select{opacity:0;cursor:pointer;width:100%;min-height:0;padding:0;position:absolute;top:0;bottom:0;left:0;right:0}.switch{-webkit-appearance:none;appearance:none;background:var(--panel-2);border-radius:999px;width:46px;height:28px;transition:background .15s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #00000040}.switch:checked{background:var(--accent)}.switch:checked:after{transform:translate(18px)}.row-head{align-items:center;gap:12px;min-height:44px;display:flex}.memo{color:var(--muted);background:0 0;border:none;padding:0 0 8px 32px;font-size:.92em}.weekday-pick{flex-wrap:wrap;gap:6px;padding:6px 10px 10px 32px;display:flex}.weekday-pick button{border-radius:50%;min-width:38px;min-height:38px;padding:0}.weekday-pick button.on{background:var(--accent);color:var(--accent-ink);border-color:#0000}.cal-page{padding-top:6px}.calendar{padding:2px 0 8px}.cal-head{align-items:center;gap:0;margin:0 -8px 2px;display:flex}.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));row-gap:0;display:grid}.cal-wd{text-align:center;color:var(--muted);padding:8px 0;font-size:.8em}.cal-cell{background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:2px;height:auto;min-height:50px;padding:3px 0;display:flex}.cal-day{border-radius:50%;place-items:center;width:32px;height:32px;font-size:.92em;display:grid}.cal-cell.outside{opacity:.35}.cal-cell.today .cal-day{color:var(--accent);font-weight:600}.cal-cell.sel .cal-day{background:color-mix(in srgb, var(--accent) 70%, #9cc6e4);color:#fff;font-weight:600}.cal-dot{background:var(--accent);border-radius:50%;width:4px;height:4px}.cal-dot.none{visibility:hidden}.cal-dot.all{background:var(--done)}.cal-page .tasks{margin-top:6px}.mine{gap:var(--gap);display:grid}.page-title{padding:16px 2px 4px;font-size:1.15em;font-weight:600}.card{background:var(--card);border-radius:var(--radius);padding:14px}.card h2{font-size:.95em}.card-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.range-nav{align-items:center;gap:0;font-size:.85em;display:flex}.range-nav .icon-btn{min-width:30px;min-height:30px}.range-select{color:var(--text);flex-direction:row;align-items:center;gap:4px;font-size:.85em;display:inline-flex;position:relative}.range-select select{opacity:0;min-height:0;padding:0;position:absolute;top:0;bottom:0;left:0;right:0}.stat-cards{gap:var(--gap);grid-template-columns:1fr 1fr;display:grid}.stat{justify-items:center;gap:4px;padding:18px 14px;display:grid}.stat strong{font-size:1.35em;font-weight:600}.stat span{color:var(--muted);font-size:.8em}.chart{grid-template-columns:22px 1fr;gap:6px;display:grid}.y-axis{color:var(--muted);text-align:right;flex-direction:column;justify-content:space-between;height:140px;margin-top:-5px;font-size:.7em;line-height:1;display:flex}.bars{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.bar-col{text-align:center;color:var(--muted);grid-template-rows:140px auto;gap:6px;font-size:.72em;display:grid}.bar-track{background:var(--track);justify-self:center;width:62%;position:relative;overflow:hidden}.bar-done{background:var(--accent);position:absolute;bottom:0;left:0;right:0}.next7{margin:6px 0 0;padding:0;list-style:none}.link-row{white-space:nowrap;width:100%;min-height:36px;color:var(--text);background:0 0;border:none;align-items:center;gap:10px;padding:0 2px;font-size:.88em;display:flex}.link-row svg{color:var(--muted);flex:none}.donut-row{align-items:center;gap:36px;padding:4px 6px;display:flex}.donut{border-radius:50%;flex:none;place-items:center;width:110px;height:110px;display:grid}.donut span{background:var(--card);border-radius:50%;width:44px;height:44px}.donut-legend{gap:8px;margin:0;padding:0;font-size:.85em;list-style:none;display:grid}.sw{border-radius:2px;width:10px;height:10px;margin-right:8px;display:inline-block}.note{margin:4px 2px;font-size:.78em}.list-pane{background:var(--card);border-radius:var(--radius);margin:4px auto 16px;padding:16px}.pane-head{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.pane-head h1,.pane-head h2{flex:1}.count{color:var(--muted)}.quick-add{gap:8px;margin-bottom:10px;display:flex}.quick-add select{width:auto}.quick-add.wrap{flex-wrap:wrap}.quick-add.wrap input:not([type=date]):not([type=number]){flex:220px}.quick-add input[type=date]{width:auto}.inline-label{color:var(--text);align-items:center;gap:6px;display:flex}.inline-label input{width:80px}.exam-list,.goal-list,.records,.manage,.late{gap:8px;margin:0;padding:0;list-style:none;display:grid}.exam-card{text-align:left;white-space:normal;background:var(--bg);border:none;align-items:center;gap:16px;width:100%;height:auto;padding:12px;display:flex}.exam-card.past{opacity:.6}.dday{color:var(--danger);text-align:center;min-width:84px;font-size:1.3em;font-weight:800}.timetable{gap:4px;display:grid;overflow-x:auto}.tt-row{grid-template-columns:72px repeat(5,minmax(90px,1fr));align-items:center;gap:4px;display:grid}.tt-row>span{text-align:center;color:var(--muted);font-size:.9em}.tt-row input{background:var(--bg);border-color:#0000}.goal{background:var(--bg);border-radius:var(--radius);gap:8px;padding:12px;display:grid}.goal-foot{justify-content:space-between;align-items:center;gap:8px;display:flex}.goal-foot span:last-child{gap:6px;display:flex}.bar{background:var(--track);border-radius:999px;height:10px;overflow:hidden}.bar-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .3s}.dash{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.dash-card{background:var(--bg);border-radius:var(--radius);border-top:5px solid;gap:6px;padding:14px;display:grid}.dash-card header{justify-content:space-between;align-items:center;display:flex}.dash-card p,.dash-card h3{margin:4px 0 0}.late{color:var(--muted);font-size:.85em}.manage li{grid-template-columns:16px 1fr 150px auto;align-items:center;gap:8px;display:grid}.dot{border-radius:50%;width:14px;height:14px}.chips-edit{flex-wrap:wrap;gap:6px;padding:0;list-style:none;display:flex}.chips-edit .icon-btn{min-width:32px;min-height:32px;font-size:.9em}.actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.settings .actions{justify-content:flex-start}.pin-set{flex-wrap:wrap;gap:8px;display:flex}.pin-set input{width:160px}.backdrop{z-index:50;background:#0006;place-items:center;padding:16px;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.modal{background:var(--bg);border-radius:16px;width:min(480px,100%);max-height:90vh;overflow:auto;box-shadow:0 20px 60px #0000004d}.modal-head{justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.modal-body{gap:10px;padding:4px 16px 16px;display:grid}.pin{gap:12px;display:grid}.pin input{letter-spacing:.4em;text-align:center;font-size:1.6em}.toasts{z-index:60;left:50%;bottom:calc(var(--tabbar) + 16px + env(safe-area-inset-bottom));gap:8px;display:grid;position:fixed;transform:translate(-50%)}.toast{color:#fff;background:#1f2937;border-radius:12px;align-items:center;gap:12px;padding:10px 16px;display:flex;box-shadow:0 8px 24px #00000040}.toast button{color:#93c5fd;background:0 0;border-color:#93c5fd;min-height:36px}.onboarding{place-items:center;min-height:100%;padding:24px;display:grid}.onboarding .card{gap:14px;width:min(520px,100%);padding:32px;display:grid}.onboarding form{gap:14px;display:grid}@media (max-width:1023px){.app.has-detail{grid-template-columns:minmax(0,1fr) 0}.detail-pane{z-index:30;width:100%;padding-top:calc(8px + env(safe-area-inset-top));border:none;position:fixed;top:0;bottom:0;left:0;right:0}.detail-pane>*{max-width:760px;margin-inline-start:auto;margin-inline-end:auto}.has-detail .fab{display:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.viewer-bar{background:color-mix(in srgb, var(--accent) 14%, var(--bg));color:var(--accent);flex-wrap:wrap;grid-area:parent;align-items:center;gap:6px;padding:4px 12px;font-size:.82em;font-weight:600;display:flex}.family,.login{gap:10px;display:grid}.duration{gap:4px;display:inline-flex}.duration select{background:var(--bg);width:auto;min-height:34px;color:var(--accent);border:none;border-radius:999px;padding:2px 8px;font-size:.85em}.preset-pick{gap:4px;display:grid}.preset-pick .chips{flex-wrap:wrap;overflow:visible}.badge-pending{color:#fff;background:#f59e0b;border-radius:999px;padding:0 8px;font-size:.9em;font-weight:600}.badge-rejected{color:#fff;background:var(--danger);border-radius:999px;padding:0 8px;font-size:.9em;font-weight:600}.badge-done{color:var(--good);font-size:.85em;font-weight:600}.task.pending .check span{color:#f59e0b;border-style:dashed;border-color:#f59e0b}.record-line{color:var(--muted);overflow-wrap:anywhere;font-size:.78em;display:block}.complete-form{gap:10px;display:grid}.record .row-head{justify-content:space-between}.record-list{gap:4px;margin:0 0 8px;display:grid}.record-list div{gap:12px;font-size:.92em;display:flex}.record-list dt{color:var(--muted);min-width:80px}.record-list dd{margin:0}.decide{align-items:center;gap:8px;padding:6px 0;display:flex}.decide input{flex:1;min-height:38px}.approvals{background:color-mix(in srgb, #f59e0b 10%, var(--card));border-radius:var(--radius);margin-bottom:12px;padding:12px}.approvals ul{gap:8px;margin:8px 0 0;padding:0;list-style:none;display:grid}.approval{background:var(--card);border-radius:8px;gap:4px;padding:10px 12px;display:grid}.preset-list{gap:10px;margin:12px 0;padding:0;list-style:none;display:grid}.preset{background:var(--bg);border-radius:var(--radius);gap:8px;padding:10px;display:grid}.preset-head{align-items:center;gap:8px;display:flex}.preset-head>input{flex:1}.preset-fields{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.preset-fields .chip .icon-btn{min-width:28px;min-height:28px}.field-add{align-items:center;display:inline-flex}.field-add input{width:120px;min-height:34px}h1,.page-title,.drawer-title,.cal-head h2,.onboarding h1,.title-input,.stat strong{font-family:var(--serif);letter-spacing:-.02em;font-weight:400}.page-title,.home-title{color:var(--text);padding:14px 2px 6px;font-size:1.9em}.drawer-title{color:var(--text);font-size:2.1em}.cal-head h2{font-size:1.5em}.stat strong{color:var(--accent);font-variant-numeric:tabular-nums;font-size:2.2em}.section-head,.eyebrow,.tab,.cal-wd,.pop-title,.card h2,.stat span,.legend,legend,.badge-pending,.badge-rejected{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;font-size:11.5px;font-weight:700}.card h2{color:var(--muted)}button.primary,.send,.fab{background:var(--accent);color:var(--accent-ink)}button.primary,button.small,.send,.text-btn,.actions>button,.decide button{font-family:var(--mono);letter-spacing:.06em;border-radius:999px;font-size:13px;font-weight:700}button.primary{min-height:40px;padding:0 20px}button.big{min-height:44px}.actions>button:not(.primary),.decide button:not(.primary){border:1.5px solid var(--accent);color:var(--accent);background:0 0;min-height:40px}.task,.card,.group,.list-pane,.d-card,.calendar,.search-row,.sheet,.modal,.approval,.cat-list,.preset{border:1px solid var(--line);box-shadow:none}.task{border-width:1px;border-radius:14px}.task.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.calendar{background:var(--card);border-radius:var(--radius);padding:10px 12px 12px}.cat-chip{background:var(--card);border:1px solid var(--line);min-height:30px;color:var(--muted);font-size:.84em}.cat-chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.check span{border-color:var(--icon)}.task.done .check span,.check[aria-checked=true] span{background:var(--mint);border-color:var(--good);color:var(--good)}.star-btn.on{color:#f0a400}.tabbar{border-top:1px solid var(--line);background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.fab{width:58px;height:58px;box-shadow:0 6px 0 color-mix(in srgb, var(--accent) 35%, #000 10%)}.fab:active{box-shadow:0 3px 0 color-mix(in srgb, var(--accent) 35%, #000 10%);transform:translateY(3px)}.stat-cards .stat:first-child{background:var(--mint);border-color:#0000}.stat-cards .stat:nth-child(2){background:var(--lav);border-color:#0000}.stat-cards .stat:first-child strong{color:var(--good)}.bar-done{background:var(--accent);border-radius:6px 6px 0 0}.bar-track{border-radius:6px 6px 0 0}.cal-cell.sel .cal-day{background:var(--accent)}.approvals{background:var(--peach);border:none}.viewer-bar{background:var(--lav);color:var(--accent)}.parent-bar{background:var(--pink);color:var(--parent)}.drawer{background:var(--bg)}.d-row svg,.d-sub.new{color:var(--accent)}.badge-pending{background:var(--sun);color:#6b4a00;padding:1px 8px;font-size:10.5px}.badge-rejected{background:var(--pink);color:var(--danger);padding:1px 8px;font-size:10.5px}.illust{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;max-width:100%;height:auto;margin:0 auto;display:block}.empty-state{text-align:center;color:var(--muted);justify-items:center;gap:10px;padding:28px 0 12px;display:grid}.empty-state p{margin:0}.cheer{background:var(--mint);border-radius:var(--radius);align-items:center;gap:14px;margin:6px 0 10px;padding:10px 16px;display:flex}.cheer.wait{background:var(--sun)}.cheer img{flex:none;width:84px}.cheer strong{font-family:var(--serif);font-size:1.25em;font-weight:400;display:block}.mine-hero{justify-content:space-between;align-items:flex-end;display:flex}.onboarding .illust{width:260px;margin-bottom:-6px}@keyframes slide-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}@keyframes rise{0%{opacity:0;transform:translateY(32px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}.detail-pane{animation:.22s ease-out slide-in}.sheet{animation:.22s ease-out rise}.modal,.drawer{animation:.16s ease-out fade}.main>*{animation:.14s ease-out fade}@media (prefers-reduced-motion:reduce){.detail-pane,.sheet,.modal,.drawer,.main>*{animation:none}}button.primary,button.small,.send,.text-btn,.actions>button,.decide button{letter-spacing:.02em}.section-head,.eyebrow,.tab,.cal-wd,.pop-title,.card h2,.stat span,.legend,legend{letter-spacing:.04em}.onboarding h1{font-size:1.8em;line-height:1.25}.mine-hero img{width:108px;margin:6px 0 -4px}button.primary,button.small,.send,.text-btn,.actions>button,.decide button{letter-spacing:0;font-family:inherit}.mine-hero img{margin-top:14px}.remote-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}:root{--ink-accent:#6b4ad8;--accent-deep:#4b2a9e;--lav-wash:#f1ecfd}[data-theme=dark]{--ink-accent:#b9a4ff;--accent-deep:#a58bff;--lav-wash:#2a1f52}h1,.page-title,.home-title,.drawer-title,.onboarding h1,.cal-head h2{color:var(--ink-accent);letter-spacing:-.03em;font-family:inherit;font-weight:300;line-height:1.12}.page-title,.home-title{padding:18px 2px 8px;font-size:2.4em}.drawer-title{font-size:2.4em}.onboarding h1{font-size:2.3em}.onboarding .card>p,.lead,.empty-state p,.cheer span,.mine-hero p{font-family:var(--serif);color:var(--ink-accent);font-size:1.08em;line-height:1.45}button.primary,.send{background:var(--accent-deep);color:#fff;font-weight:700}[data-theme=dark] button.primary,[data-theme=dark] .send{color:var(--accent-ink)}button.primary.ghost,button:not(.primary):not(.icon-btn):not(.link):not(.text-btn):not(.tab):not(.check):not(.star-btn):not(.cat-chip):not(.fab):not(.task):not(.d-row):not(.cal-cell){border-radius:999px}button.primary.ghost,.actions>button:not(.primary),.decide button:not(.primary),.onboarding button:not(.primary):not(.link){border:1.5px solid var(--ink-accent);color:var(--ink-accent);background:0 0;font-weight:700}.chip,.badge-pending,.badge-rejected{font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;border:1.5px solid var(--ink-accent);color:var(--ink-accent);background:0 0;border-radius:999px;padding:1px 9px;font-size:11px;font-weight:700}.badge-pending{color:#7a5600;background:var(--sun);border-color:#b98a00}.badge-rejected{border-color:var(--danger);color:var(--danger);background:0 0}.chip.parent{border-color:var(--parent);color:var(--parent)}.card,.calendar,.list-pane,.group{background:var(--lav-wash);border-color:color-mix(in srgb, var(--ink-accent) 22%, transparent)}.onboarding .card{background:var(--card);border:1.5px solid color-mix(in srgb, var(--ink-accent) 35%, transparent)}.task{background:var(--card);border-color:color-mix(in srgb, var(--ink-accent) 18%, transparent)}input,select,textarea{border-color:color-mix(in srgb, var(--ink-accent) 30%, transparent)}.tab.on{color:var(--accent-deep)}.rec-day{margin:0 0 18px}.rec-day-head{font-family:var(--mono);letter-spacing:.04em;color:var(--ink-accent);margin:14px 2px 8px;font-size:11.5px;font-weight:700}.rec{background:var(--card);border:1px solid color-mix(in srgb, var(--ink-accent) 18%, transparent);border-left:4px solid var(--line);border-radius:14px;gap:6px;padding:12px 14px;display:grid}.rec.rec-done,.rec.rec-ok{border-left-color:var(--good)}.rec.rec-wait{border-left-color:#e0a800}.rec.rec-bad{border-left-color:var(--danger)}.rec-top{align-items:center;gap:10px;min-width:0;display:flex}.rec-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:1.05em;font-weight:600;overflow:hidden}.rec-time{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:.85em}.rec-badge{border:1.5px solid;border-radius:999px;flex:none;padding:2px 10px;font-size:.78em;font-weight:700}.rec-badge.rec-done,.rec-badge.rec-ok{color:var(--good);background:var(--mint)}.rec-badge.rec-wait{color:#7a5600;background:var(--sun)}.rec-badge.rec-bad{color:var(--danger);background:var(--pink)}.rec-badge.rec-muted{color:var(--muted)}.rec-meta{color:var(--muted);font-size:.82em}.rec-body{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.rec-field{background:var(--lav-wash);overflow-wrap:anywhere;border-radius:10px;align-items:baseline;gap:6px;padding:4px 10px;font-size:.92em;display:inline-flex}.rec-field>span{color:var(--ink-accent);font-size:.82em;font-weight:600}.rec-note{font-family:var(--serif);color:var(--text);flex-basis:100%;margin:2px 0 0;line-height:1.45}.rec-reason{color:var(--danger);margin:0;font-size:.9em}.pull-refresh{top:env(safe-area-inset-top);z-index:60;background:var(--card);color:var(--ink-accent);border:1.5px solid color-mix(in srgb, var(--ink-accent) 35%, transparent);pointer-events:none;border-radius:999px;align-items:center;gap:8px;padding:8px 16px;font-size:.9em;font-weight:600;display:flex;position:fixed;left:50%;box-shadow:0 6px 20px #2b1d551f}.pull-refresh span{font-size:1.2em;display:inline-block}.pull-refresh .spin{animation:.8s linear infinite pull-spin}@keyframes pull-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.pull-refresh .spin{animation:none}}.push-strip{background:var(--card);border:1.5px solid color-mix(in srgb, var(--ink-accent) 35%, transparent);color:var(--text);border-radius:12px;flex-wrap:wrap;flex-basis:100%;align-items:center;gap:8px 10px;margin:4px 0 2px;padding:8px 12px;font-size:1.05em;font-weight:600;display:flex}.push-strip.new{background:var(--sun);color:#4a3500;border-color:#b98a00}.push-msg{color:var(--danger);flex-basis:100%;font-size:.92em;font-weight:500}.approvals-btn.has{background:var(--accent-deep);color:#fff;border-radius:999px;padding:0 12px}.approvals-btn.fresh{animation:1.2s ease-in-out 3 pulse}@keyframes pulse{50%{transform:scale(1.08)}}@media (prefers-reduced-motion:reduce){.approvals-btn.fresh{animation:none}}.task.done{background:color-mix(in srgb, var(--mint) 45%, var(--card));border-color:color-mix(in srgb, var(--good) 35%, transparent)}.badge-done{font-family:var(--mono);letter-spacing:.02em;background:var(--mint);color:var(--good);border:1.5px solid var(--good);border-radius:999px;padding:1px 9px;font-size:11px;font-weight:700}.sheet-backdrop{padding-bottom:var(--kb,0px);transition:padding-bottom .15s ease-out}.backdrop{padding-bottom:calc(16px + var(--kb,0px))}.sheet{max-height:calc(var(--vvh,100dvh) - 12px);overflow-y:auto}.modal{max-height:calc(var(--vvh,100dvh) - 24px)}.row-sub-btn{border:1.5px solid var(--ink-accent);min-height:34px;color:var(--ink-accent);background:0 0;border-radius:999px;justify-self:start;margin:-2px 0 4px 44px;padding:0 14px;font-size:.88em;font-weight:600}.approval-info{grid-template-columns:max-content 1fr;gap:4px 12px;margin:6px 0 8px;font-size:.92em;display:grid}.approval-info>div{display:contents}.approval-info dt{color:var(--ink-accent);font-weight:600}.approval-info dd{overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:6px;margin:0;display:flex}.badge-early{background:var(--lav);color:var(--accent-deep);border:1.5px solid var(--accent-deep);border-radius:999px;padding:1px 8px;font-size:11px;font-weight:700}.quick-dates{flex-wrap:wrap;gap:6px;display:flex}.stat-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.heatmap{grid-template-rows:repeat(7,1fr);grid-auto-flow:column;gap:3px;padding:4px 0;display:grid;overflow-x:auto}.heat{background:color-mix(in srgb, var(--ink-accent) 13%, var(--card));border-radius:3px;width:13px;height:13px}.heat.out{visibility:hidden}.heat.today{outline:2px solid var(--accent-deep);outline-offset:1px}.heat-legend{margin:6px 0 0;font-size:.82em}.stat-cards .stat:nth-child(3){background:var(--peach);border-color:#0000}.swipe-row{list-style:none;position:relative}.swipe-row>.task{z-index:1;touch-action:pan-y;min-width:64px;transition:width .22s cubic-bezier(.2,.8,.2,1);position:relative}.swipe-row.swiping:not(.open)>.task{transition:none}.swipe-actions{justify-content:flex-end;align-items:center;gap:0;padding-left:12px;display:flex;position:absolute;top:0;bottom:0;left:auto;right:0}.swipe-row:not(.swiping):not(.open) .swipe-actions{visibility:hidden}.sw-btn{width:76px;height:auto;min-height:0;color:var(--text);background:0 0;border:none;justify-items:center;gap:5px;padding:0;display:grid;border-radius:0!important}.sw-circle{border-radius:50%;place-items:center;width:54px;height:54px;transition:transform .18s cubic-bezier(.2,.8,.2,1);display:grid;box-shadow:0 6px 14px -6px #2b1d5559}.sw-btn:active .sw-circle{transform:scale(.92)}.sw-label{color:var(--muted);letter-spacing:-.01em;white-space:nowrap;font-size:11.5px;font-weight:700}.sw-btn.star .sw-circle{color:#a26f00;background:#fff1c2}.sw-btn.later .sw-circle{background:var(--lav);color:var(--accent-deep)}.sw-btn.date .sw-circle{background:var(--accent-deep);color:#fff}.sw-btn.del .sw-circle{background:var(--danger);color:#fff}.swipe-row.open .sw-btn{animation:.24s cubic-bezier(.2,.8,.2,1) both sw-in}.swipe-row.open .sw-btn:nth-child(2){animation-delay:30ms}.swipe-row.open .sw-btn:nth-child(3){animation-delay:60ms}.swipe-row.open .sw-btn:nth-child(4){animation-delay:90ms}@keyframes sw-in{0%{opacity:0;transform:translate(14px)scale(.85)}to{opacity:1;transform:none}}.dsheet{width:min(560px,100%);max-height:calc(var(--vvh,100dvh) - 12px);background:var(--bg);padding:10px 14px calc(16px + env(safe-area-inset-bottom));border-radius:26px 26px 0 0;gap:12px;animation:.24s cubic-bezier(.2,.8,.2,1) rise;display:grid;overflow-y:auto;box-shadow:0 -12px 40px #2b1d552e}.dsheet:before{content:"";background:color-mix(in srgb, var(--ink-accent) 25%, transparent);border-radius:3px;justify-self:center;width:40px;height:5px}.dsheet-head{grid-template-columns:44px 1fr 44px;align-items:center;display:grid}.dsheet-head h2{text-align:center;color:var(--text);margin:0;font-family:inherit;font-size:1.08em;font-weight:700}.round-btn{background:var(--card);width:40px;height:40px;min-height:0;color:var(--muted);border:none;place-items:center;padding:0;display:grid;border-radius:50%!important}.round-btn.ok{background:var(--accent-deep);color:#fff;justify-self:end}.dsheet-card{background:var(--card);border:1px solid color-mix(in srgb, var(--ink-accent) 14%, transparent);border-radius:20px;gap:10px;padding:12px 14px;display:grid}.mcal-head{justify-content:center;align-items:center;gap:10px;display:flex}.mcal-head strong{text-align:center;font-variant-numeric:tabular-nums;min-width:104px;font-size:1.05em}.mcal{grid-template-columns:repeat(7,1fr);justify-items:center;gap:2px;display:grid}.mcal-wd{color:var(--muted);padding:4px 0;font-size:12px;font-weight:600}.mcal-day{font-variant-numeric:tabular-nums;width:40px;height:40px;min-height:0;color:var(--text);background:0 0;border:none;padding:0;font-size:.98em;border-radius:50%!important}.mcal-day.out{color:color-mix(in srgb, var(--muted) 55%, transparent)}.mcal-day.today{box-shadow:inset 0 0 0 1.5px var(--accent-deep);color:var(--accent-deep);font-weight:700}.mcal-day.sel{background:var(--accent-deep);color:#fff;box-shadow:0 4px 10px -4px var(--accent-deep);font-weight:700}.seg{background:var(--lav-wash);border-radius:999px;flex-wrap:wrap;gap:4px;margin-left:auto;padding:3px;display:inline-flex}.seg button{min-height:32px;color:var(--muted);background:0 0;border:none;padding:0 12px;font-size:.86em;font-weight:600;border-radius:999px!important}.seg button.on{background:var(--card);color:var(--accent-deep);box-shadow:0 2px 6px -2px #2b1d5540}.dsheet .row-item{min-height:50px}.confirm{background:var(--card);border-radius:24px;gap:8px;width:min(360px,100%);padding:22px 18px 16px;animation:.2s cubic-bezier(.2,.8,.2,1) pop;display:grid;box-shadow:0 24px 60px #2b1d554d}.confirm h2{color:var(--text);margin:0;font-family:inherit;font-size:1.08em;font-weight:700}.confirm p{color:var(--muted);margin:0 0 8px;font-size:.92em;line-height:1.45}.confirm-btns{grid-template-columns:1fr 1fr;gap:10px;display:grid}.confirm-btns button{background:var(--lav-wash);min-height:48px;color:var(--text);border:none;font-weight:700;border-radius:16px!important}.confirm-btns .danger-fill{background:var(--danger);color:#fff}@keyframes pop{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}.cheer-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1b133573}.cheer-pop{text-align:center;background:linear-gradient(180deg, var(--lav) 0%, var(--card) 55%);border-radius:30px;justify-items:center;gap:6px;width:min(360px,100%);margin-top:70px;padding:0 22px 20px;animation:.26s cubic-bezier(.2,.8,.2,1) pop;display:grid;position:relative;box-shadow:0 30px 70px #2b1d5559}.cheer-x{background:color-mix(in srgb, var(--ink-accent) 12%, var(--card));width:32px;height:32px;min-height:0;color:var(--muted);z-index:1;border:none;place-items:center;padding:0;display:grid;position:absolute;top:12px;right:12px;border-radius:50%!important}.cheer-badge{width:240px;height:120px;margin-top:-72px;position:relative}.cheer-stars{width:240px;height:150px;position:absolute;top:0;bottom:auto;left:0;right:0}.cheer-stars .st{fill:#ffcf3f;stroke:#e5a900;stroke-width:.8px;transform-box:fill-box;transform-origin:50%;animation:.5s cubic-bezier(.2,1.4,.4,1) both star-pop}.cheer-stars .st1{animation-delay:80ms}.cheer-stars .st2{animation-delay:.12s}.cheer-stars .st3{animation-delay:.18s}.cheer-stars .st4{animation-delay:.22s}@keyframes star-pop{0%{opacity:0;scale:.2}to{opacity:1;scale:1}}.cheer-dome{background:var(--lav);width:112px;height:112px;box-shadow:0 0 0 6px var(--card);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:-14px;left:50%;translate:-50%}.cheer-thumb{transform-origin:30% 90%;width:66px;height:66px;animation:.6s cubic-bezier(.2,1.4,.4,1) .1s both thumb}.cheer-thumb .hand{fill:#fff;stroke:var(--text);stroke-width:2.4px;stroke-linejoin:round}.cheer-thumb .cuff{fill:var(--accent);stroke:var(--text);stroke-width:2.4px}@keyframes thumb{0%{opacity:0;transform:rotate(-25deg)scale(.6)}to{opacity:1;transform:none}}.cheer-pop h2{color:var(--text);letter-spacing:-.02em;margin:26px 0 0;font-family:inherit;font-size:1.32em;font-weight:800}.cheer-pop p{color:var(--muted);margin:0 0 14px;font-family:inherit;font-size:.94em;line-height:1.45}.cheer-ok{width:100%;min-height:52px!important;font-size:1.02em!important}@media (prefers-reduced-motion:reduce){.cheer-pop,.cheer-stars .st,.cheer-thumb,.confirm,.dsheet,.swipe-row.open .sw-btn{animation:none}}.cheer-stars{z-index:1;pointer-events:none}.cheer-dome{z-index:0}
