@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css");:root{--bg:#f6f7f4;--panel:#ffffff;--panel-strong:#f0f4ef;--text:#1c211e;--muted:#667064;--line:#dce3da;--accent:#167c6a;--accent-strong:#0f5f52;--accent-soft:#e4f3ef;--warning:#b57316;--shadow:0 12px 34px rgba(35,44,38,0.08);--prio-high:#d65745;--prio-high-soft:#fbe9e6;--prio-mid:#c98a2b;--prio-mid-soft:#fbf0dd;--prio-low:#4f87b3;--prio-low-soft:#e6eff5}*{box-sizing:border-box}body,html{width:100%;min-height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Pretendard,Apple SD Gothic Neo,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;word-break:keep-all}a{color:inherit;text-decoration:none}button,select{font:inherit}.appShell{min-height:100vh;display:grid;grid-template-rows:64px 1fr}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;height:64px;display:grid;grid-template-columns:minmax(220px,280px) 1fr auto;grid-gap:16px;gap:16px;padding:0 20px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand,.topbar{align-items:center}.brand{display:inline-flex;min-width:0;gap:10px}.brandMark{display:inline-grid;width:34px;height:34px;flex:0 0 34px;place-items:center;border-radius:8px;background:var(--accent);color:#ffffff;font-weight:800}.brand small,.brand strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand strong{font-size:15px;line-height:1.25}.brand small{margin-top:2px;color:var(--muted);font-size:12px}.switcher{display:grid;grid-template-columns:minmax(180px,260px) minmax(220px,360px);grid-gap:10px;gap:10px;justify-content:flex-start}.selectGroup{display:grid;min-width:0;grid-gap:4px;gap:4px}.selectGroup span{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:0;text-transform:uppercase}.selectGroup select{width:100%;height:34px;min-width:0;border:1px solid var(--line);border-radius:8px;background:#ffffff;color:var(--text);padding:0 10px}.openButton{display:inline-flex;height:36px;align-items:center;justify-content:center;border-radius:8px;background:var(--text);color:#ffffff;padding:0 14px;font-size:13px;font-weight:700;white-space:nowrap}.workspace{min-height:0;display:block}.content{min-width:0;min-height:calc(100vh - 64px);display:grid;grid-template-rows:auto minmax(0,1fr);padding:14px}.contentHeader{display:flex;min-width:0;align-items:flex-end;justify-content:space-between;gap:16px;padding-bottom:14px}.contentHeader p{margin:0 0 4px;color:var(--accent-strong);font-size:12px;font-weight:800}.contentHeader h1{margin:0;font-size:24px;line-height:1.2}.contentHeader code{max-width:50%;background:#ffffff;color:var(--muted);padding:7px 9px;text-overflow:ellipsis;white-space:nowrap}.contentHeader code,.viewer{overflow:hidden;border:1px solid var(--line);border-radius:8px}.viewer{min-height:0;background:var(--panel);box-shadow:var(--shadow)}.viewerFrame{display:block;width:100%;height:calc(100vh - 160px);min-height:520px;border:0;background:#ffffff}.homePage{min-height:100vh;padding:24px}.homeHeader{display:flex;align-items:center;justify-content:space-between}.homeIntro{margin:70px 0 28px}.homeIntro p{margin:0 0 8px;color:var(--accent-strong);font-size:13px;font-weight:800}.homeIntro h1{margin:0;font-size:clamp(34px,6vw,64px);line-height:1.02}.serviceGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:12px;gap:12px;max-width:960px}.serviceCard{display:grid;min-height:148px;align-content:space-between;border:1px solid var(--line);border-radius:8px;background:#ffffff;padding:18px;box-shadow:var(--shadow)}.serviceCard:hover{border-color:#9dcfc4}.serviceCard span{color:var(--accent-strong);font-size:13px;font-weight:800}.serviceCard strong{margin-top:18px;font-size:20px;line-height:1.25}.serviceCard small{color:var(--muted);font-size:12px;font-weight:700}.emptyPage{min-height:100vh;display:grid;place-items:center;padding:24px}.emptyPage div{width:min(100%,420px);border:1px solid var(--line);border-radius:8px;background:#ffffff;padding:24px;box-shadow:var(--shadow)}.emptyPage p{margin:0 0 8px;color:var(--warning);font-size:13px;font-weight:800}.emptyPage h1{margin:0 0 18px;font-size:24px}.emptyPage a{color:var(--accent-strong);font-weight:800}@media (max-width:900px){.appShell{grid-template-rows:auto 1fr}.topbar{height:auto;grid-template-columns:1fr auto;padding:12px}.switcher{grid-column:1/-1;grid-template-columns:1fr;order:3}.contentHeader{align-items:flex-start;flex-direction:column}.contentHeader code{max-width:100%}.viewerFrame{height:72vh;min-height:460px}}@media (max-width:560px){.homePage{padding:16px}.homeIntro{margin-top:44px}.topbar{grid-template-columns:1fr}.openButton{width:100%}.content{padding:12px}}.topbarRight{display:inline-flex;align-items:center;gap:8px}.appLauncher{position:relative;display:inline-flex}.launcherBtn{display:inline-grid;place-items:center;width:40px;height:40px;border:none;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer;transition:background .16s ease,color .16s ease}.launcherBtn:hover{background:var(--accent-soft);color:var(--accent-strong)}.launcherBackdrop{position:fixed;inset:0;z-index:49}.launcherPop{position:absolute;z-index:50;top:50px;right:0;width:288px;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:var(--shadow);animation:popIn .16s cubic-bezier(.16,1,.3,1)}.launcherHead{margin:2px 4px 12px;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.launcherGrid{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.appTile{display:grid;justify-items:center;grid-gap:4px;gap:4px;padding:16px 10px 13px;border:1px solid transparent;border-radius:12px;text-align:center;transition:background .15s ease,border-color .15s ease,transform .15s ease}.appTile:hover{background:var(--panel-strong);transform:translateY(-1px)}.appTile.is-active{border-color:var(--accent);background:var(--accent-soft)}.appTileIcon{display:grid;place-items:center;width:46px;height:46px;margin-bottom:4px;border-radius:13px;color:#fff}.appTileIcon.icon-planning{background:linear-gradient(150deg,#1f9e87,#15715f)}.appTileIcon.icon-todo{background:linear-gradient(150deg,#6a5acd,#4f3fb0)}.appTile strong{font-size:13px;font-weight:700;color:var(--text)}.appTile small{font-size:11px;color:var(--muted)}.todoApp{min-height:100vh;display:flex;flex-direction:column}.todoTop{position:-webkit-sticky;position:sticky;top:0;z-index:30;display:flex;justify-content:space-between;height:60px;padding:0 20px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.calBtn,.todoTop{align-items:center}.calBtn{display:inline-flex;gap:7px;height:38px;padding:0 16px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--text);font-size:13px;font-weight:700;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.calBtn:hover{border-color:#9dcfc4;box-shadow:var(--shadow);transform:translateY(-1px)}.todoError{margin:10px 20px 0;padding:10px 14px;border-radius:10px;background:var(--prio-high-soft);color:#9a3526;font-size:13px;font-weight:600}.todoLayout{flex:1 1;display:grid;grid-template-columns:264px 1fr;min-height:0}.lnb{border-right:1px solid var(--line);background:#fbfcfb;padding:14px 10px;overflow-y:auto}.lnbCalBtn{display:flex;align-items:center;gap:9px;width:100%;margin-bottom:10px;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:var(--text);font-size:13.5px;font-weight:700;cursor:pointer;transition:border-color .16s ease,color .16s ease,transform .16s ease}.lnbCalBtn:hover{border-color:var(--accent);color:var(--accent-strong);transform:translateY(-1px)}.lnbHead{display:flex;align-items:center;justify-content:space-between;padding:4px 6px 10px}.lnbTitle{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.02em;text-transform:uppercase}.iconBtn{display:inline-grid;place-items:center;width:30px;height:30px;border:none;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;transition:background .15s ease,color .15s ease}.iconBtn:hover{background:var(--accent-soft);color:var(--accent-strong)}.iconBtn.sm{width:24px;height:24px}.lnbComposer{padding:2px 6px 8px}.lnbComposer input{width:100%;height:34px;padding:0 10px;border:1px solid var(--accent);border-radius:8px;background:#fff;outline:none}.lnbEmpty{margin:8px;color:var(--muted);font-size:12.5px;line-height:1.6}.lnbItem{display:flex;align-items:center;gap:4px;height:36px;padding-right:6px;border-radius:9px;cursor:pointer;transition:background .14s ease}.lnbItem:hover{background:#eef1ed}.lnbItem.is-active{background:var(--accent-soft)}.lnbItem.is-active .lnbName{color:var(--accent-strong);font-weight:700}.lnbCaret{display:inline-grid;place-items:center;width:20px;height:20px;border:none;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;flex:0 0 20px}.lnbCaret:hover{background:rgba(0,0,0,.06)}.lnbCaret.is-hidden{visibility:hidden}.lnbName{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.lnbCount{font-size:11px;font-weight:700;color:var(--muted);padding:1px 7px;border-radius:999px;background:rgba(0,0,0,.05)}.lnbActions{display:none;align-items:center;gap:1px}.lnbItem:hover .lnbActions{display:inline-flex}.menuWrap{position:relative}.menuBackdrop{position:fixed;inset:0;z-index:40}.menuPop{position:absolute;z-index:41;top:28px;right:0;min-width:130px;padding:5px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:var(--shadow);display:flex;flex-direction:column}.menuPop button{text-align:left;padding:8px 10px;border:none;border-radius:7px;background:transparent;font-size:13px;cursor:pointer}.menuPop button:hover{background:var(--panel-strong)}.menuPop button.danger{color:var(--prio-high)}.todoMain{min-width:0;padding:22px clamp(16px,4vw,44px) 80px;overflow-y:auto}.todoMainHead h1{margin:0 0 6px;font-size:26px;letter-spacing:-.01em}.todoLoading,.todoPlaceholder{color:var(--muted);padding:40px 4px}.taskListView{max-width:760px}.listToolbar{display:flex;align-items:center;justify-content:space-between;margin:14px 0 6px}.sortTabs{display:inline-flex;gap:2px;padding:3px;border-radius:999px;background:#eceeea}.sortTabs button{border:none;background:transparent;padding:6px 14px;border-radius:999px;font-size:13px;font-weight:700;color:var(--muted);cursor:pointer;transition:background .15s ease,color .15s ease}.sortTabs button.is-active{background:#fff;color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.08)}.showDone{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted);cursor:pointer}.showDone input{accent-color:var(--accent)}.quickAdd{display:flex;align-items:center;gap:8px;margin:10px 0 22px;padding:0 12px;height:46px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--muted);transition:border-color .16s ease,box-shadow .16s ease}.quickAdd:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.quickAdd input{flex:1 1;border:none;outline:none;background:transparent;font-size:14.5px;color:var(--text)}.quickAddBtn{width:100%;font:inherit;font-size:14.5px;font-weight:600;cursor:pointer;text-align:left}.quickAddBtn:hover{border-color:var(--accent);color:var(--accent-strong)}.listEmpty{color:var(--muted);padding:8px 2px}.taskSection{margin-bottom:26px}.sectionTitle{display:flex;align-items:center;gap:8px;margin:0 0 6px;padding:0 2px 8px;border-bottom:1px solid var(--line);font-size:13px;font-weight:800;letter-spacing:.01em}.sectionCount{font-size:11px;font-weight:700;color:var(--muted)}.section-due_today,.section-high{color:var(--prio-high)}.section-mid{color:var(--prio-mid)}.section-low{color:var(--prio-low)}.section-done{color:var(--accent-strong)}.section-cancelled{color:var(--muted)}.taskRow{display:flex;align-items:flex-start;gap:12px;padding:11px 8px;border-bottom:1px solid #edf0ec;cursor:pointer;transition:background .13s ease}.taskRow:hover{background:#fafbf9}.taskRow.is-finished .taskTitle{color:var(--muted);text-decoration:line-through}.taskRow.dragOver{background:var(--accent-soft);outline:2px solid var(--accent);outline-offset:-2px;border-radius:8px}.rowCaret{flex:0 0 auto;display:inline-grid;place-items:center;width:20px;height:20px;margin-top:1px;border:none;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;transition:background .14s ease}.rowCaret:hover{background:var(--accent-soft);color:var(--accent-strong)}.rowCaret.is-hidden{visibility:hidden}.rootDrop{display:flex;align-items:center;justify-content:center;gap:8px;margin:4px 0 18px;padding:13px;border:1.5px dashed var(--line);border-radius:11px;font-size:12.5px;color:var(--muted);transition:border-color .15s ease,background .15s ease,color .15s ease}.rootDrop strong{color:var(--text)}.rootDrop.dragOver{border-color:var(--accent);background:var(--accent-soft)}.rootDrop.dragOver,.rootDrop.dragOver strong{color:var(--accent-strong)}[draggable=true]{-webkit-user-drag:element}.taskMain{flex:1 1;min-width:0}.taskTitle{display:block;font-size:14.5px;line-height:1.4}.taskMeta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-top:5px}.metaItem{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--muted)}.metaItem.is-overdue{color:var(--prio-high);font-weight:700}.taskRight{display:flex;align-items:center;gap:8px;flex:0 0 auto;padding-top:1px}.taskCheck{flex:0 0 auto;display:inline-grid;place-items:center;width:21px;height:21px;margin-top:1px;border-radius:50%;border:1.8px solid var(--prio-mid);background:transparent;color:#fff;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .12s ease}.taskCheck:hover{transform:scale(1.08)}.taskCheck.prio-high{border-color:var(--prio-high)}.taskCheck.prio-mid{border-color:var(--prio-mid)}.taskCheck.prio-low{border-color:var(--prio-low)}.taskCheck.is-done{background:var(--accent);border-color:var(--accent)}.taskCheck.is-cancelled{background:var(--muted);border-color:var(--muted)}.prioBadge{font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px}.prioBadge.prio-high{color:var(--prio-high);background:var(--prio-high-soft)}.prioBadge.prio-mid{color:var(--prio-mid);background:var(--prio-mid-soft)}.prioBadge.prio-low{color:var(--prio-low);background:var(--prio-low-soft)}.avatar{display:inline-grid;place-items:center;border-radius:50%;color:#fff;font-weight:800}.avatar-kim_anna{background:#7a59c4}.avatar-choi_seonwoong{background:#2f8f76}.tagChip{display:inline-flex;align-items:center;gap:3px;font-size:11.5px;font-weight:600;color:var(--accent-strong);background:var(--accent-soft);padding:2px 8px;border-radius:999px}.tagChip.removable button{display:inline-grid;place-items:center;border:none;background:transparent;color:inherit;cursor:pointer;padding:0;margin-left:1px}.modalOverlay{position:fixed;inset:0;z-index:60;display:grid;place-items:start center;padding:40px 16px;background:rgba(28,33,30,.42);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);overflow-y:auto;animation:fadeIn .16s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{width:min(100%,920px);background:#fff;border-radius:16px;box-shadow:0 24px 70px rgba(20,30,24,.28);overflow:hidden;animation:popIn .18s cubic-bezier(.16,1,.3,1)}@keyframes popIn{0%{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}.modalBar{justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line)}.modalBar,.modalCrumbs{display:flex;align-items:center}.modalCrumbs{flex-wrap:wrap;gap:2px;min-width:0}.crumbWrap{display:inline-flex;align-items:center}.crumb{border:none;background:transparent;color:var(--muted);font-size:13px;font-weight:600;padding:4px 8px;border-radius:7px;cursor:pointer;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crumb:hover{background:var(--panel-strong);color:var(--text)}.crumb-root{display:inline-flex;align-items:center;gap:6px}.crumbSep{color:var(--line);flex:0 0 auto}.modalBody{display:grid;grid-template-columns:1fr 280px;min-height:360px}.modalMain{padding:22px 24px;border-right:1px solid var(--line)}.modalTitleRow{display:flex;align-items:flex-start;gap:12px}.modalTitleRow.is-finished .modalTitleInput{color:var(--muted);text-decoration:line-through}.modalTitleInput{flex:1 1;border:none;outline:none;font-size:21px;font-weight:700;letter-spacing:-.01em;color:var(--text);background:transparent;padding:0;margin-top:-1px}.descBlock{display:flex;align-items:flex-start;gap:9px;margin:14px 0 18px;padding:0 0 18px 33px;border-bottom:1px solid var(--line)}.descIcon{flex:0 0 auto;margin-top:4px;color:var(--muted)}.modalDesc{flex:1 1;min-width:0;border:none;outline:none;resize:vertical;font:inherit;font-size:14px;color:var(--text);line-height:1.6;background:transparent}.modalDesc::placeholder{color:var(--muted)}.micBtn{flex:0 0 auto;display:inline-grid;place-items:center;width:32px;height:32px;margin-top:1px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--muted);cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease}.micBtn:hover{border-color:var(--accent);color:var(--accent-strong)}.micBtn.is-listening{border-color:var(--prio-high);background:var(--prio-high-soft);color:var(--prio-high);animation:micPulse 1.2s ease-in-out infinite}@keyframes micPulse{0%,to{box-shadow:0 0 0 0 rgba(240,122,100,.45)}50%{box-shadow:0 0 0 5px rgba(240,122,100,0)}}.subCard{margin-left:33px;border:1px solid var(--line);border-radius:12px;background:#fafbf9;overflow:hidden}.subHead{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;font-size:13px;font-weight:700;color:var(--text)}.subHeadTitle{display:inline-flex;align-items:center;gap:7px}.subProgress{font-size:12px;font-weight:600;color:var(--muted)}.subList{border-top:1px solid var(--line)}.subRow{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid rgba(0,0,0,.05);cursor:pointer;transition:background .13s ease}.subRow:hover{background:rgba(0,0,0,.025)}.subRow.dragOver{background:var(--accent-soft);outline:2px solid var(--accent);outline-offset:-2px}.subRowTitle{flex:1 1;min-width:0;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subRow.is-finished .subRowTitle{color:var(--muted);text-decoration:line-through}.subRowCount,.subRowDate{display:inline-flex;align-items:center;gap:3px;font-size:11.5px;color:var(--muted)}.subAddBtn{display:flex;align-items:center;gap:8px;width:100%;border:none;border-top:1px solid var(--line);background:transparent;font:inherit;font-size:13.5px;font-weight:600;color:var(--accent-strong);cursor:pointer;padding:11px 14px;transition:background .13s ease}.subAddBtn:hover{background:var(--accent-soft)}.outDrop{margin:14px 0 0 33px;padding:13px;border:1.5px dashed var(--line);border-radius:11px;text-align:center;font-size:12.5px;color:var(--muted);transition:border-color .15s ease,background .15s ease,color .15s ease}.outDrop strong{color:var(--text)}.outDrop.dragOver{border-color:var(--accent);background:var(--accent-soft)}.outDrop.dragOver,.outDrop.dragOver strong{color:var(--accent-strong)}.modalPanel{padding:18px 18px 22px;background:#fbfcfb}.panelField{padding:12px 2px;border-bottom:1px solid #eef1ed}.panelLabel{display:block;font-size:12px;font-weight:800;color:var(--muted);margin-bottom:8px;letter-spacing:.01em}.panelStatic{font-size:13.5px;color:var(--text)}.segGroup{display:inline-flex;gap:6px;flex-wrap:wrap}.seg{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 12px;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;transition:all .15s ease}.seg:hover{border-color:#b9c2b6}.seg.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.seg.prio-high.is-active{background:var(--prio-high);border-color:var(--prio-high)}.seg.prio-mid.is-active{background:var(--prio-mid);border-color:var(--prio-mid)}.seg.prio-low.is-active{background:var(--prio-low);border-color:var(--prio-low)}.dateInput{width:100%;height:36px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#fff;font:inherit;font-size:13.5px;color:var(--text)}.tagEditor{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.tagInput{border:none;outline:none;background:transparent;font:inherit;font-size:13px;min-width:80px;flex:1 1;padding:3px 0}.panelActions{display:flex;flex-direction:column;gap:6px;margin-top:16px}.panelBtn{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:13px;font-weight:600;color:var(--text);cursor:pointer;transition:all .15s ease}.panelBtn:hover{border-color:#b9c2b6;background:var(--panel-strong)}.panelBtn.danger{color:var(--prio-high)}.panelBtn.danger:hover{background:var(--prio-high-soft);border-color:var(--prio-high)}.panelBtn.primary{justify-content:center;background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}.panelBtn.primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.panelBtn.primary:disabled{background:#c2c9bf;border-color:#c2c9bf;cursor:not-allowed}.createActions{display:grid;grid-template-columns:1fr 1.4fr;grid-gap:8px;gap:8px}.createActions .panelBtn{justify-content:center}.createDot{flex:0 0 auto;width:21px;height:21px;margin-top:1px;border-radius:50%;border:1.8px dashed var(--line)}.createTag{color:var(--accent-strong);font-weight:700}.calModal{width:min(98vw,1360px);background:#fff;border-radius:16px;box-shadow:0 24px 70px rgba(20,30,24,.28);overflow:hidden;animation:popIn .18s cubic-bezier(.16,1,.3,1)}.calBar{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line)}.calBar h2{gap:9px;margin:0;font-size:20px;letter-spacing:-.01em}.calBar h2,.calNav{display:inline-flex;align-items:center}.calNav{gap:4px}.todayBtn{height:32px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:13px;font-weight:700;cursor:pointer}.todayBtn:hover{border-color:#9dcfc4}.calWeekHead{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--line)}.calWd{padding:8px 0;text-align:center;font-size:12px;font-weight:700;color:var(--muted)}.calWd.sun{color:var(--prio-high)}.calWd.sat{color:var(--prio-low)}.calGrid{display:flex;flex-direction:column}.calWeek{position:relative;border-bottom:1px solid var(--line)}.calWeek:last-child{border-bottom:none}.calCells{display:grid;grid-template-columns:repeat(7,1fr)}.calCell{position:relative;min-height:138px;padding:6px 7px 8px;border-right:1px solid #eef1ed}.calCell:last-child{border-right:none}.calCell.out{background:#fafbf9}.calCell.out .calDayNum{color:#c2c9bf}.calDayNum{display:inline-grid;place-items:center;width:26px;height:24px;font-size:13.5px;font-weight:600;color:var(--text)}.calCell.today .calDayNum{background:var(--accent);color:#fff;border-radius:999px;width:22px;height:22px;font-weight:800}.calMarkers{display:flex;flex-direction:column;gap:2px}.calMarker{display:flex;align-items:center;gap:4px;width:100%;border:none;background:transparent;padding:1px 3px;border-radius:5px;font-size:12px;color:var(--text);cursor:pointer;text-align:left}.calMarker:hover{background:var(--panel-strong)}.calMarkerText{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calMarker.done .calMarkerText{text-decoration:line-through;color:var(--muted)}.calDot{flex:0 0 auto;width:7px;height:7px;border-radius:50%}.calMarker.prio-high .calDot{background:var(--prio-high)}.calMarker.prio-mid .calDot{background:var(--prio-mid)}.calMarker.prio-low .calDot{background:var(--prio-low)}.calMarker.created .calDot{background:transparent;border:1.6px solid var(--muted)}.calBars{position:absolute;left:0;right:0;pointer-events:none}.calRangeBar{position:absolute;height:19px;border:none;border-radius:6px;padding:0 8px;font-size:11px;font-weight:600;color:#fff;cursor:pointer;pointer-events:auto;display:flex;align-items:center;overflow:hidden}.calRangeBar.prio-high{background:var(--prio-high)}.calRangeBar.prio-mid{background:var(--prio-mid)}.calRangeBar.prio-low{background:var(--prio-low)}.calRangeBar.done{opacity:.5}.calRangeBar.clipL{border-top-left-radius:0;border-bottom-left-radius:0}.calRangeBar.clipR{border-top-right-radius:0;border-bottom-right-radius:0}.calBarText{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calLegend{display:flex;gap:18px;padding:12px 20px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.calLegend span{display:inline-flex;align-items:center;gap:6px}.legendBar{width:22px;height:10px;border-radius:4px;background:var(--prio-low)}.legendDot{width:9px;height:9px;border-radius:50%}.legendDot.due{background:var(--prio-mid)}.legendDot.created{background:transparent;border:1.6px solid var(--muted)}.setupNotice{max-width:560px;margin:60px auto;padding:0 20px}.setupNotice h1{font-size:24px}.setupNotice p{color:var(--muted);line-height:1.6}.setupNotice code{background:var(--panel-strong);padding:1px 6px;border-radius:5px;font-size:13px}.setupNotice pre{background:#1c211e;color:#e8efe9;padding:14px 16px;border-radius:10px;font-size:12.5px;overflow-x:auto}.setupHint{font-size:13px}@media (max-width:860px){.todoLayout{grid-template-columns:1fr}.lnb{border-right:none;border-bottom:1px solid var(--line);max-height:230px}.modalBody{grid-template-columns:1fr}.modalMain{border-right:none;border-bottom:1px solid var(--line)}.calCell{min-height:100px}}.todoApp{--bg:#121316;--panel:#1a1c21;--panel-strong:#23262d;--text:#e8eaed;--muted:#898f99;--line:#2a2d35;--accent:#2ec79a;--accent-strong:#54d6b0;--accent-soft:rgba(46,199,154,0.14);--shadow:0 18px 44px rgba(0,0,0,0.5);--prio-high:#f07a64;--prio-high-soft:rgba(240,122,100,0.16);--prio-mid:#e4ab44;--prio-mid-soft:rgba(228,171,68,0.16);--prio-low:#5ca8e6;--prio-low-soft:rgba(92,168,230,0.16);color-scheme:dark;color:var(--text);background:radial-gradient(900px 500px at 12% -8%,rgba(46,199,154,.08),transparent 60%),radial-gradient(800px 520px at 100% 0,rgba(92,130,230,.06),transparent 55%),var(--bg)}.todoApp .todoTop{background:rgba(18,19,22,.72);border-bottom-color:var(--line);box-shadow:inset 0 -1px 0 rgba(255,255,255,.02)}.todoApp .lnb{background:#15171b;border-right-color:var(--line)}.todoApp .lnbItem:hover{background:var(--panel-strong)}.todoApp .lnbItem.is-active{background:var(--accent-soft)}.todoApp .lnbCount{background:rgba(255,255,255,.07);color:var(--muted)}.todoApp .lnbCaret:hover{background:rgba(255,255,255,.08)}.todoApp .lnbComposer input{background:var(--panel);color:var(--text)}.todoApp .menuPop{background:var(--panel-strong);border-color:var(--line)}.todoApp .menuPop button:hover{background:rgba(255,255,255,.06)}.todoApp .calBtn,.todoApp .dateInput,.todoApp .panelBtn,.todoApp .quickAddBtn,.todoApp .seg,.todoApp .todayBtn{background:var(--panel);border-color:var(--line);color:var(--text)}.todoApp .calBtn:hover,.todoApp .todayBtn:hover{border-color:var(--accent);box-shadow:var(--shadow)}.todoApp .seg:hover{border-color:#3a3f48}.todoApp .panelBtn:hover{background:var(--panel-strong);border-color:#3a3f48}.todoApp .sortTabs{background:#202329}.todoApp .sortTabs button.is-active{background:var(--panel);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.4)}.todoApp .showDone input{accent-color:var(--accent)}.todoApp .taskRow{border-bottom-color:rgba(255,255,255,.05)}.todoApp .taskRow:hover{background:rgba(255,255,255,.025)}.todoApp .modalOverlay{background:rgba(0,0,0,.62)}.todoApp .calModal,.todoApp .modal{background:var(--panel);border:1px solid var(--line);box-shadow:0 30px 80px rgba(0,0,0,.6)}.todoApp .modalPanel{background:#16181c}.todoApp .subCard{background:rgba(255,255,255,.025);border-color:var(--line)}.todoApp .subRow{border-bottom-color:rgba(255,255,255,.06)}.todoApp .subRow:hover{background:rgba(255,255,255,.04)}.todoApp .calBar,.todoApp .calLegend,.todoApp .calWeek,.todoApp .calWeekHead,.todoApp .modalBar,.todoApp .modalMain,.todoApp .outDrop,.todoApp .panelField,.todoApp .subHead,.todoApp .subRow{border-color:var(--line)}.todoApp .subRow{border-bottom-color:rgba(255,255,255,.05)}.todoApp .calMarker:hover,.todoApp .crumb:hover,.todoApp .subRow:hover{background:rgba(255,255,255,.05)}.todoApp .modalDesc,.todoApp .modalTitleInput,.todoApp .tagInput{color:var(--text)}.todoApp .calCell{border-right-color:rgba(255,255,255,.045)}.todoApp .calCell.out{background:rgba(0,0,0,.22)}.todoApp .calCell.out .calDayNum{color:#4f545c}.todoApp .todoError{background:var(--prio-high-soft);color:#f3a594}.todoApp .panelBtn.primary{background:var(--accent);border-color:var(--accent);color:#08130f}.todoApp .panelBtn.primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.todoApp .panelBtn.primary:disabled{background:#2e333a;border-color:#2e333a;color:var(--muted)}.todoApp .calCell.today .calDayNum,.todoApp .taskCheck.is-done{color:#08130f}.todoApp .seg.is-active{background:var(--accent);border-color:var(--accent);color:#08130f}.todoApp .seg.prio-high.is-active{background:var(--prio-high);border-color:var(--prio-high)}.todoApp .seg.prio-mid.is-active{background:var(--prio-mid);border-color:var(--prio-mid)}.todoApp .seg.prio-low.is-active{background:var(--prio-low);border-color:var(--prio-low)}.todoApp .calRangeBar{color:#0d0f12;font-weight:700}.todoApp .lnb::-webkit-scrollbar,.todoApp .modalOverlay::-webkit-scrollbar,.todoApp .todoMain::-webkit-scrollbar{width:10px}.todoApp .lnb::-webkit-scrollbar-thumb,.todoApp .modalOverlay::-webkit-scrollbar-thumb,.todoApp .todoMain::-webkit-scrollbar-thumb{background:#2e333a;border-radius:8px}