:root{color-scheme:light dark;--bg: #F1F5FB;--surface: #FFFFFF;--line: #E4EAF3;--ink: #16233A;--ink-soft: #475569;--accent: #2563EB;--accent-ink: #1D4ED8;--accent-soft: #EFF5FF;--accent-line: #BFDBFE;--done: #16A34A;--done-ink: #15803D;--done-soft: #F0FDF5;--done-line: #BBF7D0;--chip-math: #BFDBFE;--chip-book: #A5F3FC;--chip-spark: #FDE68A;--book-ink: #0E7490;--book-soft: #ECFEFF;--spark-ink: #B45309;--spark-soft: #FEF3E2;--bubble-mine: #2563EB;--mine: #E4EAF3;--radius: 20px;--radius-card: 20px;--radius-btn: 14px;--radius-chip: 8px;--shadow-card: 0 1px 2px rgba(22,35,58,.05), 0 6px 16px rgba(22,35,58,.06);--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--fs-title: 19px;--fs-body: 15px;--fs-meta: 13px;--fs-label: 11px;--fs-button: 17px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden}body{background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Pretendard,Malgun Gothic,sans-serif;font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}#app{display:flex;flex-direction:column;height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) 0 env(safe-area-inset-left)}#bar{display:flex;align-items:center;gap:4px;padding:6px 8px;border-bottom:1px solid rgba(0,0,0,.06)}#bar button{border:none;background:none;color:var(--ink);font:inherit;padding:8px;border-radius:12px;cursor:pointer;display:grid;place-items:center}#bar button:active{background:#0000000d}#title{flex:1;font-size:16px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block!important;text-align:center}#panel{position:fixed;top:0;bottom:0;left:0;width:min(78vw,320px);background:var(--surface);z-index:20;transform:translate(-100%);transition:transform .25s ease;padding:calc(16px + env(safe-area-inset-top)) 0 env(safe-area-inset-bottom);overflow-y:auto;box-shadow:2px 0 20px #0000001f}#panel.open{transform:none}#panel h2{margin:0 20px 12px;font-size:14px;color:var(--ink-soft);font-weight:600}#panel .row{display:flex;align-items:center}#panel .row.on{background:var(--mine)}#panel .rowTitle{flex:1;border:none;background:none;font:inherit;color:inherit;text-align:left;padding:13px 8px 13px 20px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#panel .rowDel{border:none;background:none;color:var(--ink-soft);font-size:22px;line-height:1;padding:10px 18px 10px 10px;cursor:pointer}#scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000052;z-index:19;opacity:0;pointer-events:none;transition:opacity .25s ease}#scrim.open{opacity:1;pointer-events:auto}#log{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:20px 16px 8px;display:flex;flex-direction:column;gap:12px}.msg{max-width:84%;padding:12px 16px;border-radius:var(--radius);white-space:pre-wrap;word-break:break-word;animation:rise .22s ease-out}.msg.user{align-self:flex-end;background:var(--bubble-mine);color:#fff;border-bottom-right-radius:6px}.msg.assistant{align-self:flex-start;background:var(--surface);border-bottom-left-radius:6px;box-shadow:0 1px 2px #0000000d}.msg.assistant.pending{min-height:44px;min-width:68px}.msg.assistant.pending:after{content:"•••";letter-spacing:3px;color:var(--ink-soft);animation:breathe 1.4s ease-in-out infinite}@keyframes breathe{0%,to{opacity:.25}50%{opacity:.9}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}#composer{display:flex;align-items:flex-end;gap:8px;padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid rgba(0,0,0,.06)}#input{flex:1;resize:none;border:1px solid rgba(0,0,0,.1);border-radius:var(--radius);padding:11px 16px;font:inherit;font-size:17px;background:var(--surface);color:inherit;max-height:140px;outline:none}#input:focus{border-color:var(--accent)}#send{flex:none;width:44px;height:44px;border:none;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;cursor:pointer}#send:disabled{opacity:.4}.msg .head{display:block;margin:10px 0 2px;font-size:16px}.msg .head:first-child{margin-top:0}.msg code{background:#0000000f;border-radius:5px;padding:1px 5px;font-size:.92em}.msg a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}#welcome{margin:auto;text-align:center;animation:rise .4s ease-out}#welcome img{width:150px;height:150px;border-radius:28px}#welcome p{margin:14px 0 0;color:var(--ink-soft);line-height:1.7}.msg.assistant.status{color:var(--ink-soft);font-size:15px}#install,#askPush{position:fixed;left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom));background:var(--surface);border-radius:var(--radius);padding:16px 18px;box-shadow:0 6px 24px #00000021;animation:rise .3s ease-out}#install strong,#askPush strong{display:block;margin-bottom:4px}#install p,#askPush p{margin:0 0 12px;color:var(--ink-soft);font-size:15px}#install .ico{display:inline-block;padding:0 5px;border:1px solid currentColor;border-radius:5px}#install button,#askPush button{border:none;background:var(--accent);color:#fff;padding:9px 20px;border-radius:999px;font:inherit;font-size:15px;cursor:pointer}#askPush .no{background:none;color:var(--ink-soft);padding-left:8px}@media(prefers-color-scheme:dark){:root{--bg: #0B1120;--surface: #151F33;--line: rgba(231,237,246,.08);--ink: #E7EDF6;--ink-soft: #97A6BC;--accent: #2563EB;--accent-ink: #7FB0FF;--accent-soft: #17274B;--accent-line: #2A4680;--done: #16A34A;--done-ink: #4ADE80;--done-soft: #10291B;--done-line: #1E4A2E;--chip-math: #2E4E93;--chip-book: #14555F;--chip-spark: #6B4A0F;--book-ink: #67E8F9;--book-soft: #10333B;--spark-ink: #FBBF24;--spark-soft: #2E2412;--bubble-mine: #2563EB;--mine: #2C3A50;--shadow-card: none}#input{border-color:#ffffff1f}.msg.assistant{box-shadow:none}}#rec{flex:1;overflow-y:auto;padding:14px 14px 4px;-webkit-overflow-scrolling:touch}#rec[hidden]{display:none}.reccard{background:var(--surface);border-radius:var(--radius);padding:18px;margin-bottom:12px}.recdate{font-size:16px;font-weight:700;color:var(--ink);padding:2px var(--sp-1) var(--sp-3);letter-spacing:-.01em}.taskcard{background:var(--surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);border:1px solid transparent;padding:18px;margin-bottom:var(--sp-3)}.taskcard.is-done{background:var(--done-soft);border-color:var(--done-line)}.taskcard.is-done .tasklabel{color:var(--done-ink)}.taskcard.is-todo .tasklabel{color:var(--accent-ink)}.tasklabel{font-size:var(--fs-label);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:10px}.taskwhat{margin-bottom:14px}.taskwhat span{display:block;font-size:var(--fs-meta);font-weight:600;color:var(--ink-soft)}.taskwhat b{display:block;font-size:var(--fs-title);font-weight:700;line-height:1.35;letter-spacing:-.01em;word-break:keep-all;overflow-wrap:break-word}.taskwhat span+b,.taskwhat b+span{margin-top:2px}.donerow{display:flex;align-items:flex-start;gap:10px}.donebadge{flex:0 0 auto;width:28px;height:28px;border-radius:999px;background:var(--done);color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;line-height:1;animation:pop .18s ease-out}@keyframes pop{0%{transform:scale(.6)}to{transform:scale(1)}}.donerow b{font-size:var(--fs-title);font-weight:700;color:var(--ink);line-height:1.35;letter-spacing:-.01em;word-break:keep-all}.tasknext{font-size:var(--fs-meta);font-weight:500;color:var(--ink-soft);margin-top:var(--sp-2);word-break:keep-all}.bookmeta{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-meta);font-weight:500;color:var(--ink-soft);font-variant-numeric:tabular-nums;margin:6px 0 12px}.bookbar{flex:1;height:4px;border-radius:999px;background:var(--line);overflow:hidden}.bookbar i{display:block;height:100%;background:var(--accent)}.btn1{width:100%;min-height:52px;border:0;border-radius:var(--radius-btn);background:var(--accent);color:#fff;font-size:var(--fs-button);font-weight:700;font-family:inherit;cursor:pointer;transition:transform .1s ease}.btn1:active{transform:scale(.97)}.btn1[disabled]{opacity:.55}.btn2{min-height:44px;padding:0 18px;border:0;border-radius:var(--radius-btn);background:var(--accent-soft);color:var(--accent-ink);font-size:var(--fs-body);font-weight:600;font-family:inherit;cursor:pointer;transition:transform .1s ease}.btn2:active{transform:scale(.97)}.btnlink{border:0;background:none;color:var(--ink-soft);font-size:14px;font-weight:600;font-family:inherit;min-height:44px;padding:0 2px;cursor:pointer;text-decoration:none}.taskrow{display:flex;align-items:center;gap:var(--sp-4);margin-top:6px}.taskrow2{display:flex;align-items:center;gap:var(--sp-3)}.logcard{background:var(--surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);border:1px solid transparent;padding:var(--sp-4) 18px;margin-bottom:var(--sp-3)}.logrow,.todorow{display:flex;align-items:center;gap:10px;min-height:44px;font-size:var(--fs-body);font-weight:500;color:var(--ink)}.logrow span,.todorow span{flex:1;min-width:0;word-break:keep-all}.logrow i{color:var(--ink-soft);font-style:normal}.logrow time,.cafetime{font-size:var(--fs-meta);color:var(--ink-soft);font-variant-numeric:tabular-nums}.todobox{flex:0 0 auto;width:24px;height:24px;border-radius:var(--radius-chip);border:2px solid var(--line);background:transparent;color:#fff;font-size:14px;font-weight:800;line-height:1;cursor:pointer;font-family:inherit}.todorow.is-done .todobox{border-color:var(--done);background:var(--done)}.logdel{flex:0 0 auto;width:30px;height:30px;border-radius:999px;border:0;background:none;color:var(--ink-soft);font-size:19px;line-height:1;cursor:pointer;font-family:inherit}.addrow{width:100%;min-height:44px;margin-top:var(--sp-1);padding:0;border:0;background:none;color:var(--ink-soft);font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;text-align:left}.rec-status{font-size:var(--fs-meta);color:var(--ink-soft);margin-top:var(--sp-2)}@media(prefers-reduced-motion:reduce){.btn1,.btn2,.donebadge{transition:none;animation:none}}.calhead{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:10px}.calhead b{flex:1;text-align:center;font-size:16px;font-weight:700;letter-spacing:-.01em}.calhead button{border:0;background:var(--accent-soft);color:var(--accent-ink);width:36px;height:36px;border-radius:var(--radius-btn);font-size:16px;cursor:pointer;font-family:inherit}.calhead button[disabled]{background:none;color:var(--ink-soft);opacity:.4}.calgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.caldow{text-align:center;font-size:var(--fs-label);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);padding-bottom:var(--sp-1)}.calcell{min-height:52px;border-radius:10px;padding:3px;display:flex;flex-direction:column;align-items:center;gap:2px}.calcell.out{visibility:hidden}.calcell .dnum{font-size:var(--fs-meta);font-weight:500;color:var(--ink-soft);font-variant-numeric:tabular-nums;line-height:22px;width:24px;text-align:center}.calcell.has .dnum{font-weight:700;color:var(--ink)}.calcell.today .dnum{box-shadow:inset 0 0 0 2px var(--accent);border-radius:999px}.calchip{height:18px;min-width:18px;border-radius:6px;font-size:11px;line-height:18px;display:flex;align-items:center;justify-content:center;background:var(--chip-math)}.calchip.bk{background:var(--chip-book)}.calchip.ev{background:var(--chip-spark)}.cafedot{font-size:8px}.calhint{font-size:13px;color:var(--ink-soft);margin:0 0 10px}.tochat{width:100%;border:0;border-radius:16px;background:var(--mine);color:var(--ink);font-size:15px;font-weight:700;padding:14px;margin-bottom:10px;font-family:inherit;cursor:pointer}#tabs{display:flex;border-top:1px solid var(--mine);background:var(--surface);padding-bottom:env(safe-area-inset-bottom);flex:0 0 auto}#tabs button{flex:1;border:0;background:transparent;color:var(--ink-soft);font-family:inherit;font-size:12px;font-weight:700;padding:9px 0 7px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px}#tabs button span{font-size:19px;line-height:1}#tabs button.on{color:var(--accent)}#log[hidden],#composer[hidden]{display:none!important}.evrow{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;padding:2px 0}.evrow span{flex:1;min-width:0}.evdel{flex:0 0 auto;width:28px;height:28px;border-radius:999px;border:1px solid var(--mine);background:transparent;color:var(--ink-soft);font-size:16px;line-height:1;cursor:pointer;font-family:inherit}.cafedot{font-size:8px;margin-left:2px}
