:root{--bg:#faf8f5;--surface:#fff;--surface-2:#f2efea;--text:#2b2724;--muted:#6f675f;--line:#e6e1da;--accent:#1f8a4c;--accent-text:#fff;--danger:#c0392b;--sun:#d64545;--sat:#3a6fd6;--cat-birthday:#e8b923;--cat-meetup:#4ba3e3;--cat-workout:#9b6bdf;--cat-travel:#8bc34a;--cat-work:#b08968;--cat-check:#e8609a;--radius:14px;--shadow:0 1px 2px #0000000a, 0 4px 12px #0000000a;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:Pretendard,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#1a1816;--surface:#24211e;--surface-2:#2e2a26;--text:#efe9e2;--muted:#9c948b;--line:#3a3530;--accent:#2f9e5c;--accent-text:#fff;--danger:#ef6b5b;--sun:#f07a7a;--sat:#7aa2f0;--cat-birthday:#f5cf4a;--cat-meetup:#7cc4f5;--cat-workout:#b794f0;--cat-travel:#a5d86a;--cat-work:#c9a27e;--cat-check:#f48fbb}}*{box-sizing:border-box}body{background:var(--bg);min-height:100dvh;margin:0}a{color:inherit;text-decoration:none}h1,h2,h3{margin:0}button,input,textarea{font:inherit;color:inherit}.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center}.error{color:var(--danger)}.empty{padding:48px 0}.btn{background:var(--surface-2);cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;min-width:40px;min-height:40px;padding:0 16px;font-size:.95rem;display:inline-flex}.btn.small{min-height:32px;padding:0 12px;font-size:.85rem}.btn.ghost{background:0 0}.btn.ghost:hover{background:var(--surface-2)}.btn.primary{background:var(--accent);color:var(--accent-text);font-weight:600}.btn.icon{width:36px;height:36px;min-height:36px;padding:0;font-size:1.2rem}.btn.danger{color:var(--danger);border-color:var(--danger);background:0 0}.btn.danger.confirm{background:var(--danger);color:#fff}.btn:disabled{opacity:.5;cursor:default}.app{max-width:1120px;margin:0 auto;padding:0 16px 96px}.topbar{z-index:10;background:var(--bg);align-items:center;gap:12px;padding:12px 0;display:flex;position:sticky;top:0}.brand{letter-spacing:-.02em;font-size:1.15rem;font-weight:800}.tabs{background:var(--surface-2);border-radius:999px;gap:2px;margin:0 auto;padding:3px;display:flex}.tabs a{color:var(--muted);border-radius:999px;padding:6px 16px;font-size:.9rem}.tabs a.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow);font-weight:600}.topbar-right{gap:4px;display:flex}@media (width<=520px){.topbar{flex-wrap:wrap}.topbar-right{margin-left:auto}}.pager{justify-content:space-between;align-items:center;margin:8px 0 16px;display:flex}.pager h1{letter-spacing:-.02em;font-size:1.3rem}.pager .btn{font-size:1.4rem}.plain:hover{text-decoration:underline}.year-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.mini-month{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px;transition:transform .1s}.mini-month:hover{transform:translateY(-2px)}.mini-head{justify-content:space-between;margin-bottom:8px;display:flex}.mini-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:2px;font-size:.7rem;display:grid}.mini-wd{color:var(--muted)}.mini-day{aspect-ratio:1;border-radius:50%;place-items:center;display:grid}.mini-day.has{background:color-mix(in srgb, var(--accent) 22%, transparent);font-weight:600}.mini-day.today{outline:1.5px solid var(--accent)}@media (width<=520px){.year-grid{grid-template-columns:repeat(2,1fr)}.mini-month{padding:8px}}.month-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.wd{text-align:center;color:var(--muted);padding:4px 0 8px;font-size:.8rem}.wd.sun,.cell.sun .num{color:var(--sun)}.wd.sat,.cell.sat .num{color:var(--sat)}.cell{aspect-ratio:1;border-radius:10px;flex-direction:column;align-items:center;gap:3px;min-width:0;padding:4px;display:flex;overflow:hidden}.cell:hover{background:var(--surface-2)}.cell.out{opacity:.35}.cell .num{border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-size:.9rem;display:grid}.cell.today .num{background:var(--accent);border-radius:3px;font-weight:700;color:#fff!important}.bar{text-align:center;white-space:nowrap;text-overflow:ellipsis;border-radius:4px;flex:none;width:100%;padding:2px 5px;font-size:.72rem;line-height:1.3;overflow:hidden}.bar.timed{color:var(--text);border-left:3px solid var(--c);background:0 0;border-radius:0}.bar.allday{background:var(--c);color:#fff}.more{color:var(--muted);font-size:.68rem;line-height:1}@media (width<=520px){.month-grid{gap:2px}.cell{border-radius:6px;gap:2px;padding:2px}.cell .num{width:22px;height:22px;font-size:.8rem}.bar{border-radius:3px;padding:1px 2px;font-size:.6rem}.cell{position:relative}.more{font-size:.58rem;position:absolute;top:3px;right:3px}}.cell.selected{background:var(--surface-2);box-shadow:inset 0 0 0 1.5px var(--line)}.month-layout{grid-template-areas:"cal""panel""tasks";gap:20px;display:grid}.month-main{grid-area:cal;min-width:0}.day-panel{grid-area:panel}.tasks{grid-area:tasks}.day-panel{align-content:start;gap:12px;display:grid}.day-panel-head{align-items:center;gap:8px;display:flex}.day-panel-head h2{margin-right:auto;font-size:1.05rem}@media (width>=860px){.month-layout{gap:20px var(--panel-gap);grid-template:"cal panel""tasks panel"1fr/minmax(0,1fr) 320px}.day-panel{align-self:start;max-height:calc(100dvh - 96px);position:sticky;top:72px;overflow-y:auto}}.event-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.event-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);gap:14px;padding:14px 16px;display:flex;position:relative}.event-line{flex:none;align-self:stretch;width:4px}.event-body{flex:1;min-width:0}.event-card:hover{background:var(--surface-2)}.event-top{align-items:center;gap:10px;margin-bottom:6px;display:flex}.event-top .mood{color:var(--accent);margin-left:auto;font-size:1.3rem;display:flex}.event-card h3{margin-bottom:4px;font-size:1.05rem}.event-card p{margin:4px 0 0}.event-content{white-space:pre-wrap;-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.cat-dot{border-radius:50%;flex:none;width:10px;height:10px;display:inline-block}.tags{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.tag{background:var(--surface-2);color:var(--muted);border-radius:999px;align-items:center;gap:4px;padding:2px 10px;font-size:.8rem;display:inline-flex}.tag button{cursor:pointer;color:inherit;background:0 0;border:0;padding:0;font-size:1rem;line-height:1}.fab{right:max(16px,50vw - 544px);bottom:calc(24px + env(safe-area-inset-bottom));background:var(--accent);width:56px;height:56px;color:var(--accent-text);border-radius:50%;place-items:center;font-size:1.6rem;display:grid;position:fixed;box-shadow:0 6px 20px #0003}.editor{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);gap:16px;padding:20px;display:grid}.editor label{color:var(--muted);gap:6px;font-size:.85rem;display:grid}.editor input,.editor textarea,.editor select{border:1px solid var(--line);background:var(--bg);width:100%;color:var(--text);border-radius:10px;padding:10px 12px;font-size:1rem}.editor input:focus,.editor textarea:focus,.tag-input:focus-within{outline:2px solid var(--accent);outline-offset:-1px}.editor textarea{resize:vertical}.editor fieldset{border:0;flex-wrap:wrap;gap:8px;margin:0;padding:0;display:flex}.editor legend{color:var(--muted);margin-bottom:6px;padding:0;font-size:.85rem}.editor .allday{color:var(--text);cursor:pointer;align-items:center;gap:6px;padding:0 4px;font-size:.95rem;display:flex}.editor .allday input{width:18px;height:18px;accent-color:var(--accent)}.field{color:var(--muted);gap:6px;font-size:.85rem;display:grid}.cat{cursor:pointer;border:1.5px solid var(--line);border-radius:999px;align-items:center;padding:8px 14px;position:relative;color:var(--text)!important;font-size:.9rem!important;display:inline-flex!important}.editor .cat input{opacity:0;pointer-events:none;width:1px;height:1px;padding:0;position:absolute}.cat{gap:8px}.cat .cat-dot{background:var(--c)}.cat.on{border-color:var(--c);background:color-mix(in srgb, var(--c) 14%, transparent);font-weight:600}.cat:focus-within{outline:2px solid var(--c)}.mood-btn{background:var(--surface-2);width:48px;height:48px;color:var(--muted);cursor:pointer;border:1.5px solid #0000;border-radius:50%;place-items:center;font-size:1.6rem;display:grid}.mood-btn:hover{color:var(--text)}.mood-btn.on{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, var(--surface-2))}.tag-input{border:1px solid var(--line);background:var(--bg);border-radius:10px;flex-wrap:wrap;align-items:center;gap:6px;padding:6px;display:flex}.tag-input input{flex:1;min-width:100px;background:0 0!important;border:0!important;outline:none!important;padding:4px 6px!important}.actions{align-items:center;gap:8px;display:flex}.spacer{flex:1}.login{place-items:center;min-height:100dvh;padding:16px;display:grid}.login-card{background:var(--surface);width:100%;max-width:360px;box-shadow:var(--shadow);border-radius:20px;gap:14px;padding:32px 24px;display:grid}.login-card .brand{text-align:center;font-size:1.8rem}.login-card>p{text-align:center;margin:-8px 0 8px}.login-card label{color:var(--muted);gap:6px;font-size:.85rem;display:grid}.login-card input{border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:12px;font-size:1rem}.login-card .btn{min-height:48px;margin-top:8px}.thumbs{grid-template-columns:repeat(4,1fr);gap:6px;max-width:360px;margin-top:10px;display:grid}.thumb{z-index:1;aspect-ratio:1;background:var(--surface-2);cursor:zoom-in;border:0;border-radius:8px;padding:0;position:relative;overflow:hidden}.thumb img,.photo-tile img{object-fit:cover;width:100%;height:100%;display:block}.thumb-more{color:#fff;background:#00000080;place-items:center;font-weight:700;display:grid;position:absolute;inset:0}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;display:grid}.photo-tile{aspect-ratio:1;background:var(--surface-2);border-radius:10px;position:relative;overflow:hidden}.photo-tile.new{outline:2px dashed var(--accent);outline-offset:-2px}.photo-tile button{color:#fff;cursor:pointer;background:#0009;border:0;border-radius:50%;width:24px;height:24px;font-size:1rem;line-height:1;position:absolute;top:4px;right:4px}.editor .photo-add{aspect-ratio:1;cursor:pointer;border:1.5px dashed var(--line);color:var(--muted);border-radius:10px;place-items:center;font-size:1.6rem;display:grid}.editor .photo-add:hover{border-color:var(--accent);color:var(--accent)}.editor .photo-add input{opacity:0;pointer-events:none;width:1px;height:1px;padding:0;position:absolute}.viewer{overscroll-behavior:contain;z-index:100;background:#000000eb;place-items:center;display:grid;position:fixed;inset:0}.viewer img{object-fit:contain;max-width:100vw;max-height:100dvh}.viewer button{color:#fff;cursor:pointer;background:#ffffff1f;border:0;border-radius:50%;position:absolute}.viewer-close{width:44px;height:44px;font-size:1.6rem;top:16px;right:16px}.viewer-nav{width:48px;height:48px;font-size:1.8rem;top:50%;translate:0 -50%}.viewer-nav.prev{left:12px}.viewer-nav.next{right:12px}.viewer-count{color:#fff;opacity:.8;font-size:.9rem;position:absolute;bottom:20px}.when-head{justify-content:space-between;align-items:center;display:flex}.when-row{align-items:flex-start;gap:8px;display:flex}.editor .when-date{flex:auto;width:auto;min-width:0}.when-time{flex:none;gap:4px;width:112px;display:grid}.when-arrow{line-height:44px}.when-chip{border:1px solid var(--line);background:var(--bg);width:100%;height:44px;color:var(--text);cursor:pointer;white-space:nowrap;border-radius:10px;padding:0 8px;font-size:.95rem}.when-chip.on{border-color:var(--accent);color:var(--accent);font-weight:600}.time-wheel{background:var(--bg);border:1px solid var(--line);border-radius:10px;grid-template-columns:1fr 1fr 1fr;padding:0 2px;display:grid;position:relative}.time-wheel:before{content:"";background:color-mix(in srgb, var(--accent) 14%, transparent);pointer-events:none;border-radius:7px;height:34px;position:absolute;top:50%;left:2px;right:2px;translate:0 -50%}.wheel{overscroll-behavior:contain;scroll-snap-type:y mandatory;scrollbar-width:none;perspective:400px;outline:none;position:relative;overflow-y:scroll;-webkit-mask-image:linear-gradient(#00000059,#000 34% 66%,#00000059);mask-image:linear-gradient(#00000059,#000 34% 66%,#00000059)}.wheel::-webkit-scrollbar{display:none}.wheel:focus-visible{box-shadow:inset 0 0 0 2px var(--accent);border-radius:7px}.wheel-item{scroll-snap-align:center;cursor:pointer;white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;place-items:center;font-size:.8rem;display:grid}.wheel-item.on{color:var(--text);font-weight:600}@media (width<=520px){.when-row{gap:4px}.editor .when-date{padding:10px 6px;font-size:.9rem}.when-time{width:86px}.when-chip{padding:0 4px;font-size:.85rem}.wheel-item{letter-spacing:-.02em;font-size:.7rem}}html{-webkit-tap-highlight-color:transparent}a,button,label,input,textarea,.wheel{touch-action:manipulation}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.event-card h3 a.stretched:after{content:"";border-radius:var(--radius);position:absolute;inset:0}.event-card:has(a.stretched:hover){background:var(--surface-2)}.event-card a.stretched:focus-visible{outline:none}.event-card:has(a.stretched:focus-visible){outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3{text-wrap:balance}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.mini-month:hover{transform:none}}.icon{vertical-align:-.125em;flex:none}.with-icon{align-items:center;gap:4px;display:flex}.hint{width:100%;color:var(--muted);margin:2px 0 0;font-size:.8rem}.month-tools{justify-content:flex-end;align-items:center;gap:8px;margin-bottom:8px;display:flex}.btn.outline{border-color:var(--line)}.btn.off-on{background:var(--cat-work);color:#fff;font-weight:600}button.cell{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}.month-grid.editing-off .cell{box-shadow:inset 0 0 0 1px var(--line)}.cell{position:relative}.cell.off{background:color-mix(in srgb, var(--cat-work) 22%, transparent)}.cell.off:hover{background:color-mix(in srgb, var(--cat-work) 32%, transparent)}.off-badge{color:color-mix(in srgb, var(--cat-work) 50%, var(--text));font-size:.62rem;font-weight:600;line-height:1;position:absolute;top:4px;left:5px}@media (width<=520px){.off-badge{font-size:.52rem;top:2px;left:3px}}.tasks{border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);align-content:start;gap:10px;padding:16px;display:grid}.tasks-head{justify-content:space-between;align-items:center;display:flex}.tasks-head h2{align-items:center;gap:8px;font-size:1.05rem;display:flex}.task-list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.task-list li{border-radius:8px;align-items:center;gap:4px;display:flex}.task-list label{cursor:pointer;flex:1;align-items:center;gap:10px;min-width:0;padding:8px;display:flex}.task-list input{width:18px;height:18px;accent-color:var(--accent);flex:none}.task-list span{overflow-wrap:anywhere}.task-list li.done span{color:var(--muted);text-decoration:line-through}.task-del{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;font-size:1.1rem}.task-del:hover{background:var(--line);color:var(--text)}.task-add{gap:8px;display:flex}.task-add input{border:1px solid var(--line);background:var(--bg);min-width:0;color:var(--text);border-radius:10px;flex:1;padding:10px 12px;font-size:.95rem}.topbar{padding-top:max(12px, env(safe-area-inset-top))}.app{padding-left:max(16px, env(safe-area-inset-left));padding-right:max(16px, env(safe-area-inset-right));padding-bottom:calc(96px + env(safe-area-inset-bottom))}.file-pick{border:1.5px dashed var(--line);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;min-height:56px;color:var(--text)!important;font-size:.95rem!important;display:flex!important}.file-pick:hover{border-color:var(--accent)}.file-pick input{opacity:0;width:1px;height:1px;padding:0;position:absolute}.date-range{align-items:end;gap:8px;display:flex}.date-range label{flex:1;min-width:0}.date-range>span{color:var(--muted);padding-bottom:12px}.label-map{gap:8px;margin:0;padding:0;list-style:none;display:grid}.label-map li{align-items:center;gap:8px;display:flex}.label-name{min-width:0;color:var(--text);overflow-wrap:anywhere;flex:1}.editor .label-map select{border:1px solid var(--line);background:var(--bg);width:auto;max-width:55%;color:var(--text);border-radius:10px;padding:8px 10px;font-size:.9rem}.import-preview{overscroll-behavior:contain;gap:2px;max-height:360px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.import-preview li{color:var(--text);align-items:center;gap:8px;padding:6px 4px;font-size:.9rem;display:flex}.nowrap{white-space:nowrap}.truncate{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.success{color:var(--text);margin:0}.success a{color:var(--accent);font-weight:600}.editor .date-range input{min-width:0}@media (width<=520px){.date-range{gap:4px}.editor .date-range input{padding:10px 6px;font-size:.85rem}}.label-swatch{vertical-align:-2px;border-radius:4px;width:14px;height:14px;display:inline-block}.label-samples{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;display:block;overflow:hidden}.cell-link:after{content:"";border-radius:0;position:absolute;inset:0}div.cell{cursor:pointer}div.cell:has(.cell-link:focus-visible){outline:2px solid var(--accent);outline-offset:1px}.cell-link:focus-visible{outline:none}a.bar{z-index:1;display:block;position:relative}a.bar:hover{filter:brightness(1.12)}a.bar:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.when-grid{grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:8px 10px;display:grid}.when-label{color:var(--muted);font-size:.85rem;line-height:44px}.editor .when-grid .when-date{width:100%;height:44px}@media (width<=520px){.when-grid{gap:8px 6px}}.month-grid{column-gap:0}.bar{align-self:stretch;width:auto}.bar.gap{visibility:hidden}.bar.cont-left{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-4px}.bar.cont-right{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:-4px}.bar.cont-left.timed,.bar.cont-right.timed{box-shadow:none}@media (width<=520px){.bar.cont-left{margin-left:-2px}.bar.cont-right{margin-right:-2px}}.bar.gap:before{content:" "}.tasks-icon{font-size:1.1rem;line-height:1}@media (width<=520px){.cell{aspect-ratio:auto;gap:1.5px;height:84px}.cell .num{width:14px;height:14px;font-size:.48rem}.bar{border-radius:2px;padding:1px 2px;font-size:.56rem;line-height:1.25}.pager h1{font-size:.78rem}.month-layout{gap:28px}}.menu-wrap{position:relative}.menu{z-index:30;background:var(--surface);border:1px solid var(--line);border-radius:12px;min-width:168px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #0000002e}.menu a,.menu button{text-align:left;width:100%;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:10px 12px;font-size:.92rem;display:block}.menu a:hover,.menu button:hover{background:var(--surface-2)}.bar{text-align:center}@media (width<=520px){.topbar{padding:max(10px, env(safe-area-inset-top)) 0 6px;flex-wrap:nowrap}.tabs{padding:2px}.tabs a{padding:4px 12px;font-size:.82rem}.topbar-right{margin-left:auto}.pager{margin:0 0 6px}.pager .btn{min-height:32px;font-size:1.2rem}.wd{padding:2px 0 4px;font-size:.7rem}.cell{height:max(72px, calc((100dvh - 150px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) / var(--weeks,6)))}.bar{padding:1px 3px;font-size:.62rem}.day-panel.sheet{z-index:40;overscroll-behavior:contain;max-height:62dvh;padding:6px 16px calc(20px + env(safe-area-inset-bottom));background:var(--surface);visibility:hidden;border-radius:20px 20px 0 0;transition:transform .25s;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;transform:translateY(105%);box-shadow:0 -8px 30px #00000040}.day-panel.sheet.on{visibility:visible;transform:none}.sheet-handle{background:var(--line);cursor:pointer;border:0;border-radius:3px;width:40px;height:5px;margin:4px auto 10px;padding:0;display:block}.sheet-backdrop{z-index:35;background:#00000040;position:fixed;inset:0}}.cat-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.cat-list li{background:var(--bg);border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px;display:flex}.editor .cat-color{cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;width:36px;height:36px;padding:0;overflow:hidden}.cat-color::-webkit-color-swatch-wrapper{padding:0}.cat-color::-webkit-color-swatch{border:0;border-radius:50%}.cat-color::-moz-color-swatch{border:0;border-radius:50%}.editor .cat-name{flex:1;width:auto;min-width:90px;padding:8px 10px}.editor .cat-yearly{color:var(--text);cursor:pointer;align-items:center;gap:4px;font-size:.85rem;display:flex}.editor .cat-yearly input{width:16px;height:16px;accent-color:var(--accent)}.cat-actions{gap:2px;display:flex}.cat-actions .btn.icon{width:32px;height:32px;min-height:32px;font-size:1rem}.danger-text{color:var(--danger)}.cat-remove{background:color-mix(in srgb, var(--danger) 10%, transparent);color:var(--text);border-radius:10px;flex-wrap:wrap;flex-basis:100%;align-items:center;gap:6px;padding:8px;font-size:.9rem;display:flex}.cat-remove .actions{flex-basis:100%}.editor .cat-remove select{border:1px solid var(--line);background:var(--bg);width:auto;color:var(--text);border-radius:8px;padding:6px 8px}.cat-add{border:1.5px dashed var(--line);border-radius:12px;align-items:center;gap:8px;padding:8px;display:flex}:root{--panel-gap:96px;--panel-w:320px}@media (width>=860px){:is(.app:has(.month-layout) .topbar,.app:has(.month-layout) .pager){width:calc(100% - var(--panel-w) - var(--panel-gap))}.app:has(.month-layout) .topbar{position:sticky}}@media (width<=520px){.bar.timed{border-left-width:2px}}.topbar{grid-template-columns:1fr auto 1fr;display:grid}.topbar .tabs{margin:0}.topbar-right{justify-self:end;margin-left:0}.bar.timed{text-align:left;border-left:0;padding-left:6px;position:relative}.bar.timed:before{content:"";background:var(--c);width:2.4px;height:90%;position:absolute;top:5%;left:0}@media (width<=520px){.bar.timed{padding-left:4px}.bar.timed:before{width:1.6px}}.mdp{border:1px solid var(--line);background:var(--bg);border-radius:12px;max-width:340px;margin-top:4px;padding:8px}.mdp-head{color:var(--text);justify-content:space-between;align-items:center;font-size:.9rem;font-weight:600;display:flex}.mdp-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.mdp-wd{color:var(--muted);padding:4px 0;font-size:.72rem}.mdp-day{aspect-ratio:1;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:8px;font-size:.85rem}.mdp-day:hover{background:var(--surface-2)}.mdp-day.out{color:var(--muted);opacity:.5}.mdp-day.on{background:var(--accent);color:var(--accent-text);opacity:1;font-weight:700}.mdp-day.base{outline:1.5px dashed var(--accent);outline-offset:-2px;cursor:default}.day-panel .tasks{grid-area:auto;margin-top:8px}.place-row{align-items:center;gap:8px;display:flex}.place-row input{flex:1;min-width:0}.map-btn{border:1px solid var(--line);flex:none;gap:4px;display:inline-flex;color:var(--accent)!important}.map-btn.disabled{opacity:.4;pointer-events:none}.map-link{color:var(--accent);align-items:center;gap:6px;font-size:.8rem;display:flex}.map-link button{color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:1rem}.loc-link{z-index:1;text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:3px;margin-top:4px;display:inline-flex;position:relative}.loc-link:hover{color:var(--accent)}.copy-row{align-items:center;gap:10px;margin-top:2px;display:flex}@media (width<=520px){.cell{height:clamp(64px, calc((100svh - 300px - env(safe-area-inset-top)) / var(--weeks,6)), 96px)}.month-layout{gap:10px}.month-layout>.tasks{padding:12px 14px}}.editor .when-grid .when-date{appearance:none;box-sizing:border-box;align-items:center;width:100%;min-width:0;height:44px;min-height:44px;padding:0 12px;line-height:44px;display:flex}.editor .when-grid .when-date::-webkit-date-and-time-value{text-align:left;margin:0}.editor .when-grid .when-date::-webkit-calendar-picker-indicator{margin-left:auto}.when-time{align-self:start}.when-chip{box-sizing:border-box;justify-content:center;align-items:center;height:44px;line-height:1;display:flex}.month-grid,.day-swipe{touch-action:pan-y;will-change:transform}.enter-next{animation:.22s both enter-next}.enter-prev{animation:.22s both enter-prev}@keyframes enter-next{0%{opacity:0;transform:translate(35%)}to{opacity:1;transform:none}}@keyframes enter-prev{0%{opacity:0;transform:translate(-35%)}to{opacity:1;transform:none}}.content{overflow-x:clip}.day-swipe{min-height:calc(100svh - 200px)}@media (width>=861px){.app:has(.month-layout){max-width:1680px;padding-bottom:48px;padding-left:40px;padding-right:40px}.app:has(.month-layout){--panel-w:340px}.month-layout{grid-template-columns:minmax(0, 1fr) var(--panel-w)}.cell{aspect-ratio:auto;height:max(152px, calc((100vh - 190px) / var(--weeks,6)));gap:4px}.bar{padding:2px 6px;font-size:.72rem;line-height:1.3}}@media (width<=520px){.month-layout{gap:32px}}.mini-day{border-radius:4px}.mini-day.has{background:color-mix(in srgb, var(--accent) 45%, transparent);color:var(--text)}.mini-day.today{outline:1.5px solid var(--accent);outline-offset:-1px}.search-box input{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--text);border-radius:12px;padding:12px 14px;font-size:1rem}.search-group{margin-top:20px}.search-group h2{color:var(--muted);margin-bottom:8px;font-size:.95rem}.search-item{grid-template-columns:64px 1fr;align-items:start;gap:8px;display:grid}.search-date{color:var(--muted);padding-top:14px;font-size:.85rem}.topbar-right .btn.icon{font-size:1.05rem}.presets{align-items:flex-start;gap:10px;display:flex}.presets .when-label{flex:none;line-height:32px}.preset-list{flex-wrap:wrap;gap:6px;min-width:0;display:flex}.preset{border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:.85rem;display:inline-flex}.preset .cat-dot{background:var(--c);width:8px;height:8px}.preset .muted{font-size:.78rem}.preset:hover{background:var(--surface-2)}.preset.on{border-color:var(--c);background:color-mix(in srgb, var(--c) 14%, transparent);font-weight:600}.carry{border:1px dashed color-mix(in srgb, var(--accent) 60%, transparent);background:color-mix(in srgb, var(--accent) 8%, transparent);width:100%;color:var(--text);text-align:left;cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-size:.85rem;display:flex}.carry>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.carry strong{color:var(--accent);flex:none}.repeat-select,.repeat-until{border:1px solid var(--line);background:var(--surface);height:32px;color:var(--text);border-radius:999px;padding:0 10px;font-size:.85rem}.editor .repeat-until{appearance:none;flex:0 auto;width:auto;min-width:0}.seg{background:var(--surface-2);border-radius:999px;gap:2px;padding:2px;display:inline-flex}.seg button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:5px 12px;font-size:.85rem}.seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow);font-weight:600}.copy-row .when-label,.copy-row .muted{white-space:nowrap;flex:none;line-height:32px}.editor .copy-row .repeat-select{border-radius:999px;flex:none;width:auto;height:32px;padding:0 28px 0 12px;font-size:.85rem}.editor .copy-row .repeat-until{border-radius:999px;height:32px;padding:0 10px;font-size:.85rem}.cell.drop{outline:2px dashed var(--accent);outline-offset:-2px;background:color-mix(in srgb, var(--accent) 10%, transparent);border-radius:6px}.bar[draggable=true]{cursor:grab}.feed{border-radius:var(--radius);background:var(--surface);max-width:640px;box-shadow:var(--shadow);gap:14px;padding:20px;display:grid}.feed p{margin:0}.feed-url{background:var(--bg);overflow-wrap:anywhere;border-radius:10px;padding:12px;font-size:.82rem}.feed-actions{flex-wrap:wrap;gap:8px;display:flex}.feed-steps{gap:4px;margin:0;padding-left:20px;display:grid}.feed .btn.danger{justify-self:start}.tasks-head h2{gap:10px;font-size:.85rem}.tasks-icon{text-align:center;width:18px;font-size:.95rem}.tasks-head .small{text-align:center;white-space:nowrap;width:32px;font-size:.78rem}.task-list label{gap:10px;padding:7px 0;font-size:.85rem}.task-list input{margin:0}.task-list li:hover{background:0 0}.task-del{width:32px;height:32px;font-size:1rem}.task-add input{padding:8px 12px;font-size:.85rem}.task-add .btn.icon{align-self:center;width:32px;min-width:32px;height:32px;min-height:32px;font-size:1.05rem}.carry{font-size:.8rem}@media (width<=520px){.task-add input,.search-box input,.editor input,.editor select,.editor textarea,.editor .when-grid .when-date,.editor .copy-row .repeat-select,.editor .copy-row .repeat-until{font-size:16px}.day-panel-head .btn.icon{width:32px;min-width:32px;height:32px;min-height:32px;font-size:1.05rem}}.editor{grid-template-columns:minmax(0,1fr)}.editor>*,.editor .when-grid .when-date,.editor .field>*{min-width:0}@media (width<=520px){.copy-row .repeat-until+.muted{display:none}.editor .copy-row .repeat-until{flex:auto;padding:0 8px}.editor .copy-row .repeat-select{padding:0 24px 0 10px}}.task-list li{padding-left:28px}.task-list input{width:14px;height:14px}.day-panel-head .btn.icon{width:32px;min-width:32px;height:32px;min-height:32px;margin-right:16px;font-size:1.05rem}.editor-head{top:calc(max(12px, env(safe-area-inset-top)) + 48px);z-index:9;background:var(--bg);margin:0 0 12px;padding:6px 0;position:sticky}.editor-head .btn{min-width:64px;font-size:.95rem}.save-status{margin:-6px 0 10px}@media (width<=520px){.editor-head{top:calc(max(10px, env(safe-area-inset-top)) + 42px)}.editor-head .btn{min-height:34px;padding:0 14px;font-size:.9rem}}.search-box input{appearance:none;outline:none;margin:0;display:block}.search-box input:focus{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.search-box input::-webkit-search-decoration{-webkit-appearance:none}html,body{overscroll-behavior-x:none}.event-view{border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);gap:14px;padding:20px 20px 20px 24px;display:grid;position:relative;overflow:hidden}.event-view:before{content:"";background:var(--c);width:5px;position:absolute;top:0;bottom:0;left:0}.ev-cat{color:var(--muted);align-items:center;gap:8px;font-size:.85rem;display:flex}.ev-cat .cat-dot{background:var(--c)}.ev-badge{background:var(--surface-2);border-radius:999px;padding:2px 8px;font-size:.75rem}.ev-title{letter-spacing:-.02em;overflow-wrap:anywhere;font-size:1.35rem;line-height:1.35}.ev-when{color:var(--muted);margin:-6px 0 0;font-size:.95rem}.ev-row{justify-self:start;align-items:center;gap:6px;margin:0;display:inline-flex}.ev-content{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;line-height:1.6}.ev-photos{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px;display:grid}.ev-foot{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ev-mood{color:var(--accent);align-items:center;gap:6px;font-size:.9rem;display:inline-flex}.ev-mood .icon{font-size:1.3rem}.editor-head a.btn[aria-disabled=true]{pointer-events:none;opacity:.5}.repeat-fixed{background:color-mix(in srgb, var(--accent) 14%, transparent);height:32px;color:var(--accent);border-radius:999px;align-items:center;padding:0 14px;font-size:.85rem;font-weight:600;display:inline-flex}
