/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:host,:root{--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.hidden{display:none}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}}:root{--ink:#2e2522;--muted:#8f8887;--rose:#ed6d7e;--rose-dark:#e9566c;--line:#ece7e4;--page:#f8f3e9;--page-wash:#fffcf7ed;--card:#ffffffeb;--field:#fdfcfc}html[data-theme=dark]{--ink:#f7eeeb;--muted:#b9aaa8;--rose:#ff8795;--rose-dark:#ff9aa5;--line:#514746;--page:#241e1e;--page-wash:#1f1a1beb;--card:#2f2728f0;--field:#3b3132}*{box-sizing:border-box}body,html{min-height:100%}body{color:var(--ink);background:var(--page);margin:0;font-family:Arial,PingFang SC,Microsoft YaHei,sans-serif}button,input{font:inherit}button{cursor:pointer}.login-page{--ink:#33292a;--muted:#9a8f83;--line:#e9dfd2;--field:#fff;--rose:#ed6d7e;--rose-dark:#e05568;--page:#fbf6ec;--card:#fff;--hover:#f3ece0;--icon:#b3a795;--star:#ed6d7e80;--star-glow:#ed6d7e59;--moon:#ecc36a;isolation:isolate;background:var(--page);min-height:100svh;display:flex;position:relative;overflow:hidden}html[data-theme=dark] .login-page{--ink:#e9edf7;--muted:#8f97b0;--line:#26304e;--field:#121a33;--rose:#ff8795;--rose-dark:#ff9aa5;--page:#0b1020;--card:#0b1020;--hover:#1a2340;--icon:#6d7896;--star:#b9c6ea;--star-glow:#b9c6ea8c;--moon:#f0ead2}.night-sky{z-index:0;pointer-events:none;position:absolute;inset:0}.sky-star{background:var(--star);opacity:var(--star-base,.5);border-radius:50%;animation:star-twinkle ease-in-out infinite alternate;position:absolute}.sky-star--bright{background:var(--star);box-shadow:0 0 7px 1px var(--star-glow)}@keyframes star-twinkle{0%{opacity:calc(var(--star-base,.5) * .3)}to{opacity:var(--star-base,.5)}}.sky-moon{color:var(--moon);opacity:.9;filter:drop-shadow(0 0 12px var(--star-glow));position:absolute;top:clamp(44px,9vh,90px);left:clamp(56px,8vw,150px)}@media (prefers-reduced-motion:reduce){.sky-star{animation:none}}::selection{background:#85847f40}.theme-toggle{z-index:2;width:36px;height:36px;color:var(--muted);background:0 0;border:0;border-radius:6px;place-items:center;transition:background .15s,color .15s;display:grid;position:absolute;top:20px;right:24px}.theme-toggle:hover{color:var(--ink);background:var(--hover)}.welcome-panel{z-index:1;flex-direction:column;justify-content:center;width:55%;min-width:520px;padding:clamp(48px,7vh,100px) clamp(52px,7vw,120px);display:flex;position:relative}.feature-list{gap:34px;max-width:420px;display:grid}.feature{align-items:flex-start;gap:16px;display:flex}.feature-icon{border-radius:8px;flex:none;place-items:center;width:40px;height:40px;display:grid}.feature-icon--peach{color:#d97757;background:#faecdd}.feature-icon--sage{color:#4d8b63;background:#ddedea}.feature-icon--cream{color:#bb574f;background:#f5e5e1}html[data-theme=dark] .feature-icon--peach{color:#eb9f7c;background:#d9775729}html[data-theme=dark] .feature-icon--sage{color:#8dc7a3;background:#4d8b632e}html[data-theme=dark] .feature-icon--cream{color:#e79b93;background:#bb574f2e}.feature h2{letter-spacing:.01em;margin:0 0 5px;font-size:16px;font-weight:600}.feature p{color:var(--muted);margin:0;font-size:14px;line-height:1.6}.login-area{z-index:1;flex:1;place-items:center;padding:38px 52px;display:grid;position:relative}.login-card{width:min(100%,400px);color:var(--ink);text-align:left}.form-heading{margin:0 0 26px}.form-heading h2{letter-spacing:-.01em;margin:0;font-size:28px;font-weight:700}.form-heading p{color:var(--muted);margin:8px 0 0;font-size:14px}.input-wrap{border:1px solid var(--line);height:42px;color:var(--icon);background:var(--field);border-radius:6px;align-items:center;margin-top:12px;padding:0 10px;transition:border-color .15s,box-shadow .15s;display:flex}.input-wrap:hover{border-color:#d5c8b4}html[data-theme=dark] .input-wrap:hover{border-color:#3a4668}.input-wrap:focus-within{border-color:var(--rose);box-shadow:0 0 0 1px var(--rose),0 0 0 3px var(--rose)}@supports (color:color-mix(in lab,red,red)){.input-wrap:focus-within{box-shadow:0 0 0 1px var(--rose),0 0 0 3px color-mix(in srgb,var(--rose) 18%,transparent)}}.input-wrap svg{flex:none}.input-wrap input{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;outline:0;padding:0 10px;font-size:15px}.input-wrap input::placeholder{color:var(--icon)}.input-wrap button{color:var(--icon);background:0 0;border:0;padding:4px;display:grid}.input-wrap button:hover{color:var(--muted)}.form-options{justify-content:space-between;align-items:center;margin:14px 0 18px;font-size:14px;display:flex}.form-options-left{gap:18px}.form-options-left,.remember{align-items:center;display:flex}.remember{color:var(--muted);background:0 0;border:0;gap:8px;padding:0;font-size:14px}.remember:hover{color:var(--ink)}.remember span{color:#fff;background:#d8cbb6;border-radius:3px;place-items:center;width:16px;height:16px;transition:background .15s;display:grid}html[data-theme=dark] .remember span{background:#3a4668}.remember[aria-pressed=true] span{background:var(--rose)}.agreement a,.link-button{color:var(--rose);background:0 0;border:0;padding:0;font-size:14px;text-decoration:none}.link-button:hover{text-decoration:underline}.outline-button,.primary-button{border-radius:6px;width:100%;height:42px;font-size:15px;font-weight:600;transition:background .15s,color .15s,border-color .15s}.primary-button{color:#fff;background:var(--rose);border:0}.primary-button:hover:not(:disabled){background:var(--rose-dark)}.primary-button:active:not(:disabled){background:var(--rose-dark);filter:brightness(.92)}.outline-button{border:1px solid var(--line);color:var(--ink);background:0 0;margin-top:12px}.outline-button:hover:not(:disabled){background:var(--hover)}.form-hint{color:var(--muted);font-size:12px}.outline-button:disabled,.primary-button:disabled{opacity:.55;cursor:default}.form-message{border-radius:6px;align-items:center;gap:7px;margin-top:14px;padding:9px 12px;font-size:13px;display:flex}.form-message--success{color:#2f9e63;background:#3ab27214;border:1px solid #3a9e6359}.form-message--error{color:#e5484d;background:#e5484d0f;border:1px solid #e5484d59}html[data-theme=dark] .form-message--success{color:#5ad18f;background:#3ab2721f}html[data-theme=dark] .form-message--error{color:#ff8887;background:#e5484d1f}@media (max-width:900px){.login-page{place-items:center;display:grid}.welcome-panel{display:none}.login-area{padding:24px}.login-card{width:min(100%,420px)}}@media (max-width:420px){.login-area{padding:20px 18px calc(20px + env(safe-area-inset-bottom))}.form-heading h2{font-size:24px}.input-wrap{height:40px}}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}.app-loading{display:grid;place-content:center;justify-items:center;gap:14px;min-height:100svh;color:var(--muted);background:var(--page)}.loading-heart{color:var(--rose);font-size:40px;animation:loadingBeat 1.1s ease-in-out infinite}@keyframes loadingBeat{0%,to{transform:scale(1);opacity:.7}50%{transform:scale(1.22);opacity:1}}.dashboard-page{display:flex;height:100svh;overflow:hidden;color:#382c29;background:var(--page)}html[data-theme=dark] .dashboard-page{color:#f7eeeb;background:var(--page)}.dashboard-sidebar{position:sticky;top:0;z-index:30;display:flex;flex:0 0 244px;flex-direction:column;width:244px;height:100svh;overflow:hidden;padding:32px 18px 20px;border-right:1px solid rgba(135,104,88,.12);background:rgba(255,253,248,.8);backdrop-filter:blur(18px)}html[data-theme=dark] .dashboard-sidebar{border-color:rgba(255,255,255,.08);background:rgba(38,31,31,.86)}.dashboard-sidebar nav{display:grid;gap:6px}.dashboard-sidebar nav a,.dashboard-sidebar nav button{position:relative;display:flex;align-items:center;gap:16px;min-height:49px;padding:0 18px;border:0;border-radius:13px;color:#59443c;background:transparent;font-size:16px;text-align:left;text-decoration:none;transition:color .18s,background .18s}html[data-theme=dark] .dashboard-sidebar nav a,html[data-theme=dark] .dashboard-sidebar nav button{color:#d9c5c0}.dashboard-sidebar nav a:hover,.dashboard-sidebar nav button:hover{color:var(--rose-dark);background:rgba(237,109,126,.09)}.dashboard-sidebar nav a.active{color:#9f3f4d;background:#ffe2dd;font-weight:700}html[data-theme=dark] .dashboard-sidebar nav a.active{color:#ffd7d9;background:rgba(237,109,126,.2)}.nav-tag{position:absolute;top:5px;right:10px;padding:1px 7px;border-radius:9px;color:var(--rose-dark);background:#ffe2dd;font-size:10px;font-style:normal;line-height:1.5}html[data-theme=dark] .nav-tag{color:#ffd7d9;background:rgba(237,109,126,.24)}.dashboard-sidebar nav .nav-pending{cursor:default}.sidebar-profile{display:flex;align-items:center;gap:10px;margin-top:auto;padding:16px 8px 14px;border-top:1px solid var(--line)}.profile-avatar{display:grid;flex:0 0 40px;place-items:center;width:40px;height:40px;overflow:hidden;border-radius:50%;color:white;background:#e98a86;font-size:19px}.profile-avatar img{width:100%;height:100%;object-fit:cover}.profile-avatar.small{flex:0 0 34px;width:34px;height:34px;font-size:15px}.sidebar-profile-names{min-width:0}.sidebar-profile-names b{color:var(--ink);font-size:13px}.sidebar-profile-names b,.sidebar-profile-names small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-profile-names small{margin-top:4px;color:var(--muted);font-size:10px}.sidebar-settings{position:relative;margin-left:auto}.sidebar-settings>button{display:grid;place-items:center;padding:5px;border:0;border-radius:8px;color:var(--muted);background:transparent;transition:color .18s,background .18s}.sidebar-settings>button:hover{color:var(--rose);background:rgba(237,109,126,.12)}.sidebar-menu{position:fixed;left:16px;bottom:92px;z-index:90;display:grid;gap:2px;width:212px;padding:8px;border:1px solid var(--line);border-radius:14px;background:var(--card);box-shadow:0 18px 44px rgba(60,35,25,.22);backdrop-filter:blur(12px);animation:menuPopIn .18s ease}@keyframes menuPopIn{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}.sidebar-menu-head{display:flex;align-items:center;gap:10px;padding:6px 8px 10px;border-bottom:1px solid var(--line);margin-bottom:6px}.sidebar-menu-head b{display:block;font-size:13px}.sidebar-menu-head small{display:block;margin-top:2px;max-width:165px;overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.sidebar-menu>button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:0;border-radius:9px;color:inherit;background:transparent;font:inherit;font-size:13px;text-align:left;cursor:pointer;transition:background .15s}.sidebar-menu>button:hover{background:rgba(237,109,126,.12)}.sidebar-menu>button.danger{color:#d95763}html[data-theme=dark] .sidebar-menu>button.danger{color:#ff9aa5}.profile-modal-mask{position:fixed;inset:0;z-index:95;display:grid;place-items:center;padding:24px;background:rgba(30,20,18,.62);backdrop-filter:blur(4px);animation:toastIn .2s ease}.profile-modal{width:min(92vw,380px);padding:22px 26px;border:1px solid var(--line);border-radius:20px;color:var(--ink);background:var(--card);box-shadow:0 22px 58px rgba(101,59,38,.22);animation:menuPopIn .2s ease}.profile-modal h3{display:flex;align-items:center;gap:8px;margin:0 0 20px;font-size:16px}.profile-modal-close{margin-left:auto;display:grid;place-items:center;padding:4px;border:0;border-radius:8px;color:var(--muted);background:transparent}.profile-modal-close:hover{color:var(--ink);background:rgba(237,109,126,.12)}.profile-modal-avatar{position:relative;display:grid;place-items:center;width:88px;height:88px;margin:0 auto;border:0;border-radius:50%;overflow:hidden;color:white;background:linear-gradient(135deg,#f0a08c,#ed6d7e);font-size:36px;cursor:pointer}.profile-modal-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.profile-modal-camera{position:absolute;right:2px;bottom:4px;display:grid;place-items:center;width:26px;height:26px;border:2px solid var(--card);border-radius:50%;background:rgba(56,44,41,.85)}.profile-modal-tip{display:block;margin:10px 0 16px;color:var(--muted);font-size:11px;text-align:center}.profile-modal label{display:block;font-size:13px;font-weight:700}.profile-modal label+label{margin-top:14px}.profile-modal input{box-sizing:border-box;display:block;width:100%;margin-top:7px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;color:inherit;background:var(--field);font:inherit;font-weight:400;outline:0}.profile-modal input:focus{border-color:var(--rose);box-shadow:0 0 0 3px rgba(237,109,126,.12)}.profile-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.dashboard-main{display:flex;flex-direction:column;min-width:0;min-height:0;flex:1;overflow:hidden}.dashboard-topbar{display:flex;flex:0 0 auto;align-items:center;height:62px;padding:0 32px;border-bottom:1px solid rgba(135,104,88,.1);background:rgba(255,253,248,.4)}html[data-theme=dark] .dashboard-topbar{border-color:rgba(255,255,255,.07);background:rgba(38,31,31,.4)}.topbar-spacer{flex:1}.icon-button,.logout-button,.mobile-menu{display:inline-flex;align-items:center;justify-content:center;border:0;color:var(--muted);background:transparent}.icon-button{width:37px;height:37px;border-radius:50%}.icon-button:hover{color:var(--rose);background:rgba(237,109,126,.1)}.logout-button{gap:6px;margin-left:10px;color:var(--rose-dark);font-size:13px}.logout-button:hover{text-decoration:underline}.mobile-menu{display:none}.dashboard-content{flex:1;min-height:0;overflow-y:auto;padding:26px 30px 48px}body.modal-open{overflow:hidden}body.modal-open .dashboard-content{overflow:hidden;overscroll-behavior:none}.dash-page-title{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:20px}.dash-page-title h1{display:flex;align-items:center;gap:10px;margin:0;font-family:Kaiti SC,STKaiti,serif;font-size:clamp(29px,3vw,42px);letter-spacing:.02em}.dash-page-title h1>svg:first-child{color:var(--rose-dark)}.dash-page-title .title-heart{color:var(--rose)}.dash-page-title p{margin:8px 0 0;color:var(--muted);font-size:15px}.title-actions{display:flex;gap:10px}.dash-grid{display:grid;gap:16px;margin-bottom:16px}.dash-grid--three{grid-template-columns:1.35fr 1fr 1fr}.dash-grid--one{grid-template-columns:minmax(0,1fr)}.dash-card{min-width:0;padding:19px;border:1px solid rgba(213,194,181,.45);border-radius:16px;background:rgba(255,255,255,.8);box-shadow:0 8px 24px rgba(108,72,51,.05);backdrop-filter:blur(10px)}html[data-theme=dark] .dash-card{border-color:rgba(255,255,255,.08);background:rgba(54,43,43,.86)}.dash-card-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.dash-card-title h2{display:flex;align-items:center;gap:9px;margin:0;font-size:18px}.dash-card-title h2 svg{color:var(--rose-dark)}.outline-small,.primary-small,.soft-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:8px 16px;border:0;border-radius:20px;color:var(--rose-dark);background:#ffe7e6;font-size:13px;font-weight:600;white-space:nowrap;text-decoration:none;transition:transform .18s,background .18s,box-shadow .18s,opacity .18s}.outline-small:hover,.primary-small:hover,.soft-button:hover{transform:translateY(-1px)}.outline-small:active,.primary-small:active,.soft-button:active{transform:translateY(0) scale(.97);transition-duration:.08s}.outline-small:focus-visible,.primary-small:focus-visible,.soft-button:focus-visible{outline:2px solid color-mix(in srgb,var(--rose) 55%,transparent);outline-offset:2px}.outline-small:disabled,.primary-small:disabled,.soft-button:disabled{opacity:.5;cursor:default;transform:none;box-shadow:none}.primary-small{color:white;background:#ed6f80;box-shadow:0 7px 13px rgba(237,109,126,.22)}.primary-small:hover{background:#e85d70;box-shadow:0 9px 17px rgba(237,109,126,.3)}html[data-theme=dark] .primary-small{background:#e0566b;box-shadow:0 7px 13px rgba(0,0,0,.35)}html[data-theme=dark] .primary-small:hover{background:#ea6377}.soft-button:hover{background:#ffdcd9}html[data-theme=dark] .soft-button{color:#ffc7cd;background:rgba(237,109,126,.18)}html[data-theme=dark] .soft-button:hover{background:rgba(237,109,126,.3)}.outline-small{background:transparent;box-shadow:inset 0 0 0 1px #f38b97}.outline-small:hover{background:rgba(237,109,126,.08)}html[data-theme=dark] .outline-small{color:#ffb3bc;box-shadow:inset 0 0 0 1px rgba(255,151,165,.55)}html[data-theme=dark] .outline-small:hover{background:rgba(237,109,126,.14)}.text-action{display:inline-flex;align-items:center;gap:4px;padding:3px;border:0;color:var(--muted);background:transparent;font-size:12px;white-space:nowrap;text-decoration:none;transition:color .18s}.text-action:hover{color:var(--rose-dark)}.text-action:focus-visible{outline:2px solid color-mix(in srgb,var(--rose) 55%,transparent);outline-offset:2px;border-radius:6px}.today-entry{display:flex;gap:15px;padding:14px;border-radius:12px;background:#fff4ee}html[data-theme=dark] .today-entry{background:rgba(237,109,126,.1)}.today-entry>div{flex:1}.today-entry p{margin:0 0 10px;color:#665751;line-height:1.8}html[data-theme=dark] .today-entry p{color:#e7d3ce}.today-entry img{width:122px;height:116px;object-fit:cover;border-radius:9px}.progress-number{display:flex;align-items:flex-end;gap:9px}.progress-number strong{color:#2b8159;font-size:33px}.progress-number span{color:#738075;font-size:14px;line-height:1.3}.progress-number small{display:block;font-size:11px}.progress-number b{margin-left:auto;color:var(--muted);font-size:13px}.progress-track,.small-progress{height:12px;overflow:hidden;border-radius:20px;background:#e8e9df}html[data-theme=dark] .progress-track,html[data-theme=dark] .small-progress{background:rgba(255,255,255,.14)}.progress-track{margin:13px 0}.progress-track span,.small-progress span{display:block;height:100%;border-radius:inherit;background:#85b98f}.quote{margin:16px 0 0;color:#8d7770;font-family:Kaiti SC,STKaiti,serif;text-align:center}.mini-task,.mini-task-list{display:grid}.mini-task{grid-template-columns:23px 1fr auto;align-items:center;gap:9px;padding:10px 0;border-bottom:1px solid #f0e9e4;color:inherit;text-decoration:none;font-size:14px}html[data-theme=dark] .mini-task{border-color:rgba(255,255,255,.08)}.mini-task:last-child{border-bottom:0}.mini-task:hover span:nth-child(2){color:var(--rose-dark)}.task-circle{display:grid;place-items:center;width:22px;height:22px;border:1px solid #c9d1ca;border-radius:50%;color:white}.task-circle.is-done{border-color:#83b991;background:#83b991}.mini-task em,.status-pill{padding:5px 9px;border-radius:12px;font-size:10px;font-style:normal;white-space:nowrap}.mini-task em{color:#dc9858;background:#fff0d5}.status-pill{display:inline-flex;width:fit-content;color:#709777;background:#e6f2e5}.status-pill.wait{color:#df9856;background:#fff0d8}.status-pill.late{color:#d86474;background:#ffe5e7}.status-pill.purple{color:#916dce;background:#eee5ff}.reward-list{display:grid}.reward-list>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0}.reward-list span{display:grid;grid-template-columns:30px 1fr;align-items:center;gap:2px 6px}.reward-list span b{font-size:14px}.reward-list span small{grid-column:2;color:var(--muted);font-size:11px}.memory-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.memory-strip a{min-width:0;color:inherit;text-decoration:none}.memory-strip a:hover img{transform:scale(1.04)}.memory-strip img{width:100%;height:124px;object-fit:cover;border-radius:9px;transition:transform .25s}.memory-strip b,.memory-strip small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.memory-strip b{margin-top:6px;font-size:12px}.memory-strip small{color:var(--muted);font-size:10px}.date-highlight{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:8px;padding:11px;border-radius:12px;color:var(--rose-dark);background:#fff0f0}html[data-theme=dark] .date-highlight{background:rgba(237,109,126,.12)}.date-highlight span{display:grid;gap:3px;color:#a14e5b;font-size:11px}.date-highlight b,.date-highlight small{display:block}.date-highlight b{color:inherit;font-size:14px}html[data-theme=dark] .date-highlight b{color:#ffd7d9}.date-highlight small{color:var(--muted);font-size:10px}.date-highlight strong,.date-row{font-size:13px}.date-row{display:flex;justify-content:space-between;padding:10px 4px;border-bottom:1px solid #f0e9e4}html[data-theme=dark] .date-row{border-color:rgba(255,255,255,.08)}.date-row:last-child{border-bottom:0}.date-row span{color:var(--rose-dark)}.wish-overview{display:flex;align-items:center;justify-content:space-between;gap:20px;overflow:hidden;background:rgba(255,255,255,.92)}html[data-theme=dark] .wish-overview{background:rgba(54,43,43,.9)}.wish-overview>div{flex:1}.wish-overview>p{max-width:260px;margin:0;font-family:Kaiti SC,STKaiti,serif;font-size:19px}.wish-overview>img{width:235px;height:160px;object-fit:cover;border-radius:12px}.wish-overview>div>span{color:var(--muted);font-size:13px}.overview-numbers{display:flex;gap:30px;margin:12px 0}.overview-numbers b{color:#e36e78;font-size:37px;line-height:1}.overview-numbers b.green{color:#63a879}.overview-numbers b.orange{color:#e99859}.overview-numbers b.pink{color:#df6877}.overview-numbers small{display:block;margin-top:5px;color:var(--muted);font-size:11px;font-weight:400}.chip-row{display:flex;flex-wrap:wrap;gap:9px;margin:16px 0}.chip-row button{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border:0;border-radius:13px;color:#756562;background:rgba(255,255,255,.7);font-size:13px;transition:.18s}html[data-theme=dark] .chip-row button{color:#d9c5c0;background:rgba(255,255,255,.08)}.chip-row button:hover{color:var(--rose-dark)}.chip-row button.active{color:var(--rose-dark);background:#ffe2e2;font-weight:700}html[data-theme=dark] .chip-row button.active{background:rgba(237,109,126,.22)}.filter-row{display:flex;align-items:center;gap:10px;margin-bottom:15px}.filter-row button,.filter-row label{display:inline-flex;align-items:center;gap:7px;padding:9px 13px;border:1px solid rgba(213,194,181,.5);border-radius:11px;color:#756562;background:rgba(255,255,255,.72);font-size:13px}.filter-row label{flex:1;max-width:300px;margin-left:auto}.filter-row input{width:100%;min-width:0;border:0;outline:0;color:inherit;background:transparent}.wish-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:15px}.wish-card{overflow:hidden;border:1px solid rgba(213,194,181,.45);border-radius:15px;background:rgba(255,255,255,.82);box-shadow:0 8px 22px rgba(108,72,51,.05);transition:transform .2s,box-shadow .2s}html[data-theme=dark] .wish-card{border-color:rgba(255,255,255,.08);background:rgba(54,43,43,.86)}.wish-card:hover{transform:translateY(-3px);box-shadow:0 16px 30px rgba(108,72,51,.12)}.wish-card{cursor:pointer}.wish-card:focus-visible{outline:2px solid var(--rose);outline-offset:2px}.wish-cover{position:relative;display:block}.wish-cover img{display:block;width:100%;height:176px;object-fit:cover}.wish-cover-empty{display:grid;align-content:center;justify-items:center;gap:8px;height:176px;color:var(--muted);background:color-mix(in srgb,var(--rose) 8%,transparent);font-size:12px}.wish-cover-empty svg{color:color-mix(in srgb,var(--rose) 60%,var(--muted))}.wish-count{position:absolute;right:10px;bottom:10px;display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;color:#fff;background:rgba(38,26,24,.62);backdrop-filter:blur(6px);font-size:11px;font-weight:600}.wish-card-body{position:relative;padding:14px}.wish-card-body h3{margin:10px 0 8px;font-size:17px}.wish-card-body p{margin:0 0 9px;color:var(--muted);font-size:12px;line-height:1.65}.wish-card-body>small{color:#a99b95;font-size:11px}.wish-like{position:absolute;top:14px;right:14px;display:inline-flex;align-items:center;gap:4px;padding:0;border:0;color:#e8828f;background:transparent;font-size:12px}.wish-like:hover{color:var(--rose-dark);transform:scale(1.08)}.wish-actions{display:flex;gap:8px;margin-top:12px}.wish-actions button{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:7px 14px;border:1px dashed #f0c3c0;border-radius:10px;color:var(--rose-dark);background:transparent;font-size:12px}.wish-actions button:hover{background:rgba(237,109,126,.08)}.wish-complete--done{border-style:solid;border-color:#83b991;color:#5f9d6f}.wish-complete--done:hover{background:rgba(131,185,145,.12)}@keyframes wish-pill-pop{0%{transform:scale(1)}40%{transform:scale(1.25)}to{transform:scale(1)}}.status-pill.is-celebrate{animation:wish-pill-pop .9s ease;box-shadow:0 0 0 4px rgba(131,185,145,.25)}.wish-detail{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:24px;background:rgba(30,20,18,.62);backdrop-filter:blur(4px);animation:toastIn .2s ease}.wish-detail-body{position:relative;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.9fr);grid-template-rows:minmax(0,1fr);width:min(940px,94vw);height:min(640px,88vh);overflow:hidden;overscroll-behavior:contain;border-radius:18px;background:#fffdf9;box-shadow:0 30px 70px rgba(20,12,10,.4)}html[data-theme=dark] .wish-detail-body{background:#2f2728}.wish-detail-media{display:grid;grid-template-rows:minmax(240px,7fr) auto auto;min-width:0}.wish-detail-media>img{display:block;width:100%;height:100%;object-fit:cover}.wish-detail-empty{display:grid;align-content:center;justify-items:center;gap:8px;min-height:240px;color:var(--muted);background:color-mix(in srgb,var(--rose) 8%,transparent);font-size:13px}.wish-detail-empty svg{color:color-mix(in srgb,var(--rose) 60%,var(--muted))}.wish-detail-thumbs{display:flex;gap:8px;padding:12px 26px 0}.wish-detail-thumbs button{width:54px;height:54px;padding:0;border:2px solid transparent;border-radius:10px;background:transparent;opacity:.6;transition:opacity .18s,border-color .18s}.wish-detail-thumbs button.active{border-color:var(--rose);opacity:1}.wish-detail-thumbs img{display:block;width:100%;height:100%;object-fit:cover;border-radius:8px}.wish-detail-content{display:grid;gap:10px;justify-items:start;padding:20px 26px 26px}.wish-detail-content h2{margin:0;font-family:Kaiti SC,STKaiti,serif;font-size:28px}.wish-detail-meta{color:var(--muted);font-size:12px}.wish-detail-desc{margin:0;color:#5f504b;font-family:Kaiti SC,STKaiti,serif;font-size:15px;line-height:2}html[data-theme=dark] .wish-detail-desc{color:#e7d3ce}.wish-detail-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}@media (max-width:860px){.wish-detail-body{grid-template-columns:1fr;grid-template-rows:none;width:100%;overflow-y:auto;scrollbar-width:none}.wish-detail-body::-webkit-scrollbar{display:none}.wish-detail-media{display:block}.wish-detail-media>img{height:200px}.wish-detail-empty{min-height:0;height:200px}.wish-detail-thumbs{padding:10px 18px 0}.wish-detail-content{padding:16px 18px 20px}.wish-detail-content h2{font-size:24px}}.wish-comments{display:grid;align-content:stretch;grid-template-rows:auto minmax(0,1fr) auto;gap:14px;min-width:0;min-height:0;padding:22px 24px 28px;border-left:1px dashed rgba(213,194,181,.6);background:rgba(255,255,255,.45)}html[data-theme=dark] .wish-comments{border-left-color:rgba(255,255,255,.12);background:rgba(255,255,255,.04)}.wish-comments-head{display:grid;gap:3px}.wish-comments-head h3{display:flex;align-items:center;gap:7px;margin:0;color:var(--ink);font-family:Kaiti SC,STKaiti,serif;font-size:18px}.wish-comments-head h3 svg{color:var(--rose)}.wish-comments-head h3 b{padding:1px 8px;border-radius:999px;color:var(--rose-dark);background:rgba(237,109,126,.14);font-size:12px;font-weight:600}.wish-comments-head small{color:var(--muted);font-size:12px}.wish-comment-list{display:grid;align-content:start;gap:14px;min-height:0;overflow-y:auto;padding-right:4px;scrollbar-width:none}.wish-comment-list::-webkit-scrollbar{display:none}.wish-comment{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px}.wish-comment-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;color:#fff;background:linear-gradient(135deg,#f3a6b1,#e8828f);font-size:14px}.wish-comment-avatar.mine{background:linear-gradient(135deg,#ed6f80,#d75268)}.wish-comment-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.wish-comment-main{min-width:0}.wish-comment-head{display:flex;align-items:center;gap:8px;padding:0 2px}.wish-comment-head b{font-size:13px}.wish-comment-head small{color:var(--muted);font-size:11px}.wish-comment-remove{display:grid;place-items:center;width:22px;height:22px;margin-left:auto;padding:0;border:0;border-radius:50%;color:#a99b95;background:transparent;opacity:0;transition:opacity .18s,color .18s,background .18s}.wish-comment-remove:focus-visible,.wish-comment:hover .wish-comment-remove{opacity:1}.wish-comment-remove:hover{color:#e5484d;background:rgba(229,72,77,.1)}.wish-comment-remove:focus-visible{outline:2px solid var(--rose);outline-offset:1px}.wish-comment-thread{display:grid;gap:10px}.wish-comment-replies{display:grid;gap:10px;margin-left:16px;padding-left:16px;border-left:2px solid rgba(213,194,181,.5)}html[data-theme=dark] .wish-comment-replies{border-left-color:rgba(255,255,255,.12)}.wish-comment.reply{grid-template-columns:28px minmax(0,1fr)}.wish-comment.reply .wish-comment-avatar{width:28px;height:28px;font-size:12px}.wish-comment-replyto{color:var(--rose-dark);font-size:11px}html[data-theme=dark] .wish-comment-replyto{color:var(--rose)}.wish-comment-actions{display:flex;align-items:center;gap:4px;margin-top:4px}.wish-comment-actions button{display:inline-flex;align-items:center;gap:4px;min-width:0;padding:3px 8px;border:0;border-radius:8px;color:var(--muted);background:transparent;font-size:12px;cursor:pointer;transition:color .18s,background .18s}.wish-comment-actions button:hover{color:var(--ink);background:rgba(135,104,88,.09)}.wish-comment-like.is-liked{color:var(--rose)}.wish-comment-like.is-liked:hover{color:var(--rose-dark);background:rgba(237,109,126,.1)}.wish-compose-reply{display:inline-flex;align-items:center;gap:6px;width:fit-content;max-width:100%;margin-left:2px;padding:5px 8px 5px 10px;border-radius:9px;background:rgba(237,109,126,.12);color:var(--rose-dark);font-size:12px}html[data-theme=dark] .wish-compose-reply{color:var(--rose)}.wish-compose-reply svg:first-child{flex:0 0 auto}.wish-compose-reply b{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wish-compose-reply button{display:grid;place-items:center;width:18px;height:18px;padding:0;border:0;border-radius:50%;color:inherit;background:rgba(237,109,126,.16);cursor:pointer;transition:background .18s}.wish-compose-reply button:hover{background:rgba(237,109,126,.3)}.wish-comment p{margin:6px 0 0;padding:9px 12px;border:1px solid rgba(213,194,181,.4);border-radius:4px 14px 14px 14px;color:#5f504b;background:rgba(255,255,255,.72);font-size:13px;line-height:1.75;word-break:break-word}html[data-theme=dark] .wish-comment p{color:#e7d3ce;border-color:rgba(255,255,255,.1);background:rgba(255,255,255,.06)}.wish-comment.mine p{border-color:rgba(237,109,126,.28);background:rgba(237,109,126,.09)}.wish-comment p .wish-comment-link{display:inline-flex;align-items:center;gap:4px;max-width:100%;margin:1px 0;padding:2px 8px 2px 7px;border-radius:8px;background:rgba(237,109,126,.12);transition:background .18s;vertical-align:baseline}.wish-comment p .wish-comment-link:hover{background:rgba(237,109,126,.22)}.wish-comment p .wish-comment-link>svg{flex:0 0 auto;color:var(--rose)}.wish-comment p .wish-comment-link a{color:var(--rose-dark);text-decoration:none;overflow-wrap:anywhere;transition:color .18s}.wish-comment p .wish-comment-link:hover a{color:var(--rose);text-decoration:underline;text-underline-offset:2px}html[data-theme=dark] .wish-comment.mine p{border-color:rgba(237,109,126,.34);background:rgba(237,109,126,.16)}.wish-comment-empty{display:grid;justify-items:center;gap:7px;padding:28px 12px;color:var(--muted);text-align:center}.wish-comment-empty-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;color:var(--rose);background:rgba(237,109,126,.1)}.wish-comment-empty p{margin:0;font-size:13px}.wish-comment-empty small{color:var(--muted);font-size:12px}.wish-comments.is-empty{align-content:stretch;grid-template-rows:auto minmax(0,1fr)}.wish-comments.is-empty .wish-comment-list{display:none}.wish-comments.is-empty .wish-comment-compose{align-self:center;justify-self:center;width:min(420px,100%);padding-top:0;border-top:0}.skeleton{position:relative;overflow:hidden;border-radius:8px;background:rgba(213,194,181,.35)}html[data-theme=dark] .skeleton{background:rgba(255,255,255,.08)}.skeleton:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent);transform:translateX(-100%);animation:skeleton-shimmer 1.2s infinite}html[data-theme=dark] .skeleton:after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.09),transparent)}@keyframes skeleton-shimmer{to{transform:translateX(100%)}}@media (prefers-reduced-motion:reduce){.skeleton:after{animation:none}}.wish-comment-skeleton{display:grid;gap:14px}.wish-skeleton-comment{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px}.wish-skeleton-avatar{width:34px;height:34px;border-radius:50%}.wish-skeleton-comment>div{display:grid;gap:8px;align-content:start;padding-top:3px}.wish-skeleton-line{height:12px}.wish-comment-skeleton-tip{margin:4px 0 0;color:var(--muted);font-size:12px;text-align:center}.wish-comment-compose{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;padding-top:14px;border-top:1px dashed rgba(213,194,181,.6)}html[data-theme=dark] .wish-comment-compose{border-top-color:rgba(255,255,255,.12)}.wish-compose-body{display:grid;gap:8px;min-width:0}.wish-compose-box{padding:8px 10px 7px;border:1px solid rgba(213,194,181,.5);border-radius:16px;background:rgba(255,255,255,.7);transition:border-color .18s,box-shadow .18s}.wish-compose-box:focus-within{border-color:var(--rose);box-shadow:0 0 0 3px rgba(237,109,126,.12)}html[data-theme=dark] .wish-compose-box{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12)}.wish-compose-box textarea{display:block;width:100%;min-height:24px;max-height:132px;padding:2px 3px;border:0;color:inherit;background:transparent;font:inherit;font-size:14px;line-height:1.6;outline:0;resize:none;overflow-y:auto}.wish-compose-preview{position:relative;width:fit-content;margin:0 3px 8px}.wish-compose-links{display:flex;flex-wrap:wrap;gap:6px;margin:6px 3px 2px}.wish-compose-links .wish-comment-link{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:2px 8px 2px 7px;border-radius:8px;font-size:12px;color:var(--rose-dark);background:rgba(237,109,126,.12)}.wish-compose-links .wish-comment-link>svg{flex:0 0 auto;color:var(--rose)}.wish-compose-preview img{display:block;width:64px;height:64px;border-radius:10px;object-fit:cover}.wish-compose-preview button{position:absolute;top:-7px;right:-7px;display:grid;place-items:center;width:20px;height:20px;padding:0;border:0;border-radius:50%;color:#fff;background:rgba(56,44,41,.82);transition:background .18s}.wish-compose-preview button:hover{background:#e5484d}.wish-compose-toolbar{display:flex;align-items:center;gap:10px;padding-top:6px}.wish-compose-attach{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;color:var(--muted);cursor:pointer;transition:color .18s,background .18s}.wish-compose-attach:hover{color:var(--rose-dark);background:rgba(237,109,126,.1)}.wish-compose-count{margin-left:auto;color:var(--muted);font-size:11px}.wish-compose-count.near{color:var(--rose-dark)}.wish-compose-send{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:50%;color:#fff;background:#ed6f80;transition:transform .18s,background .18s,opacity .18s}.wish-compose-send:hover:not(:disabled){transform:translateY(-1px);background:#e85d70}.wish-compose-send:active:not(:disabled){transform:scale(.94)}.wish-compose-send:disabled{opacity:.45;cursor:default}html[data-theme=dark] .wish-compose-send{background:#e0566b}.spinning{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.wish-comment-image{display:block;max-width:min(220px,100%);margin-top:6px;border:1px solid rgba(213,194,181,.4);border-radius:4px 14px 14px 14px;object-fit:cover}@media (max-width:860px){.wish-comments{grid-template-rows:none;padding:18px;border-top:1px dashed rgba(213,194,181,.6);border-left:0;border-radius:0 0 18px 18px;background:transparent}html[data-theme=dark] .wish-comments{border-top-color:rgba(255,255,255,.12)}}.journal-editor{margin-bottom:16px}.journal-date{display:flex;align-items:baseline;gap:12px}.journal-date b{font-size:22px}.journal-date span{color:var(--muted);font-size:13px}.editor-toolbar{display:flex;align-items:center;gap:14px;margin:15px 0;padding:9px 12px;border:1px solid rgba(213,194,181,.5);border-radius:11px;color:#6f605c}.editor-toolbar b,.editor-toolbar i,.editor-toolbar span,.editor-toolbar u{cursor:pointer}.editor-toolbar b:hover,.editor-toolbar span:hover{color:var(--rose-dark)}.editor-toolbar button{display:inline-flex;align-items:center;gap:5px;margin-left:auto;padding:5px 10px;border:1px solid rgba(213,194,181,.6);border-radius:9px;color:inherit;background:transparent;font-size:12px}.journal-body{display:flex;gap:18px}.journal-body p{flex:1;margin:0;color:#5f504b;font-size:15px;line-height:2}html[data-theme=dark] .journal-body p{color:#e7d3ce}.journal-city{white-space:nowrap}.journal-locate{display:inline-flex;align-items:center;gap:3px;margin-left:7px;padding:2px 8px;border:1px solid rgba(237,109,126,.4);border-radius:999px;color:var(--rose);background:rgba(237,109,126,.08);font-size:10px;vertical-align:1px;cursor:pointer;transition:background .18s,border-color .18s}.journal-locate:hover{border-color:var(--rose);background:rgba(237,109,126,.16)}.journal-images{display:flex;flex:0 0 auto;gap:10px}.journal-images img{width:150px;height:172px;object-fit:cover;border-radius:11px}.journal-image-add{display:grid;place-content:center;justify-items:center;gap:8px;width:150px;height:172px;border:1.5px dashed rgba(213,194,181,.8);border-radius:11px;color:var(--muted);background:rgba(237,109,126,.05);font-size:12px;cursor:pointer;transition:border-color .18s,color .18s,background .18s}.journal-image-add:hover{border-color:var(--rose);color:var(--rose);background:rgba(237,109,126,.1)}.mood-row{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-top:17px}.mood-row>span{color:var(--muted);font-size:13px}.mood-row button{padding:8px 15px;border:1px solid rgba(213,194,181,.55);border-radius:20px;color:#756562;background:rgba(255,255,255,.7);font-size:13px}html[data-theme=dark] .mood-row button{color:#d9c5c0;background:rgba(255,255,255,.07)}.mood-row button.selected,.mood-row button:hover{color:var(--rose-dark);border-color:var(--rose);background:#ffe8e6}.journal-list{display:grid}.journal-item{border-bottom:1px solid #f0e9e4}html[data-theme=dark] .journal-item{border-color:rgba(255,255,255,.08)}.journal-item:last-child{border-bottom:0}.notif,.notif>.icon-button{position:relative}.notif-dot{position:absolute;top:7px;right:7px;width:8px;height:8px;border-radius:50%;background:var(--rose);box-shadow:0 0 0 2px var(--card)}.notif-panel{position:absolute;top:calc(100% + 10px);right:0;z-index:95;width:min(340px,calc(100vw - 28px));max-height:420px;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:14px;background:var(--card);box-shadow:0 18px 44px rgba(60,35,25,.22);backdrop-filter:blur(12px);animation:menuPopIn .18s ease}.notif-head{position:sticky;top:0;justify-content:space-between;gap:10px;padding:13px 14px;border-bottom:1px solid var(--line);background:var(--card)}.notif-head,.notif-head h3{display:flex;align-items:center}.notif-head h3{gap:7px;margin:0;font-size:14px}.notif-head .text-action:disabled{opacity:.45;cursor:default}.notif-badge{min-width:18px;padding:1px 6px;border-radius:999px;color:#fff;background:var(--rose);font-size:10px;text-align:center}.notif-list{display:grid;gap:4px;padding:8px}.notif-item{display:flex;gap:10px;width:100%;padding:10px;border:0;border-radius:11px;color:inherit;background:transparent;text-align:left;font:inherit;transition:background .15s}.notif-item:hover{background:rgba(237,109,126,.08)}.notif-item.is-unread{background:rgba(237,109,126,.07)}.notif-item.is-unread:hover{background:rgba(237,109,126,.12)}.notif-item-icon{display:grid;flex:0 0 30px;place-items:center;width:30px;height:30px;border-radius:50%;color:var(--rose);background:rgba(237,109,126,.13);font-size:13px;overflow:hidden}.notif-item-icon img{width:100%;height:100%;border-radius:50%;object-fit:cover}.notif-item b{font-size:13px}.notif-item p{margin:3px 0 0;color:var(--ink);font-size:12px;line-height:1.6}.notif-item small{display:block;margin-top:4px;color:var(--muted);font-size:10px}.notif-empty{display:grid;justify-items:center;gap:6px;padding:34px 18px 30px;color:var(--muted);text-align:center}.notif-empty-icon{display:grid;place-items:center;width:52px;height:52px;margin-bottom:4px;border-radius:50%;color:var(--rose);background:rgba(237,109,126,.12)}.notif-empty p{margin:0;font-size:13px}.notif-empty small{font-size:11px}.journal-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:4px}.journal-list button{display:grid;grid-template-columns:24px 78px 68px 1fr auto;align-items:center;gap:12px;min-width:0;padding:12px 4px;border:0;color:inherit;background:transparent;text-align:left;cursor:pointer}.journal-del{display:grid;place-items:center;margin-top:10px;padding:7px;border-radius:9px;color:var(--muted);cursor:pointer;transition:color .18s,background .18s}.journal-del:hover{color:#d95763;background:rgba(217,87,99,.12)}.journal-view{width:min(940px,94vw);max-height:88vh;overflow-y:auto;overscroll-behavior:contain;border-radius:18px;color:var(--ink);background:var(--card);box-shadow:0 30px 70px rgba(20,12,10,.4);animation:menuPopIn .2s ease}.journal-view .profile-modal-actions{margin:22px 30px 26px}.journal-detail-body{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(290px,.95fr);width:min(940px,94vw);height:min(640px,88vh);overflow:hidden;border-radius:18px;color:var(--ink);background:#fffdf9;box-shadow:0 30px 70px rgba(20,12,10,.4);animation:menuPopIn .2s ease}html[data-theme=dark] .journal-detail-body{background:#2f2728}.journal-detail-main{display:grid;grid-template-rows:minmax(200px,7fr) auto;min-width:0;min-height:0}.journal-detail-body .wish-comments{min-height:0;align-content:stretch;grid-template-rows:auto minmax(0,1fr) auto}.journal-detail-body .wish-comment-list{max-height:none;min-height:0;scrollbar-width:none}.journal-detail-body .wish-comment-list::-webkit-scrollbar{display:none}.journal-detail-media{min-height:0}.journal-gallery{position:relative;height:100%}.journal-gallery-track{display:flex;height:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.journal-gallery-track::-webkit-scrollbar{display:none}.journal-gallery-track img{flex:0 0 100%;width:100%;height:100%;object-fit:contain;background:rgba(237,109,126,.06)}html[data-theme=dark] .journal-gallery-track img{background:rgba(255,255,255,.04)}.journal-gallery-arrow{position:absolute;top:50%;display:grid;place-items:center;width:34px;height:34px;transform:translateY(-50%);border:0;border-radius:50%;color:#5c4a45;background:rgba(255,255,255,.85);transition:color .18s,background .18s}.journal-gallery-arrow:hover{color:var(--rose-dark);background:white}.journal-gallery-arrow.left{left:12px}.journal-gallery-arrow.right{right:12px}.journal-gallery-dots{position:absolute;bottom:12px;left:50%;display:flex;gap:7px;transform:translateX(-50%)}.journal-gallery-dots button{width:7px;height:7px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.55);transition:.18s}.journal-gallery-dots button.active{background:var(--rose);transform:scale(1.3)}.journal-detail-noimage{display:grid;height:100%;align-content:center;justify-items:center;gap:10px;color:var(--muted);background:rgba(237,109,126,.06)}.journal-detail-noimage svg{color:var(--rose)}.journal-detail-noimage p{margin:0;font-size:13px}.journal-detail-content{display:grid;gap:10px;justify-items:start;padding:20px 26px 26px}.journal-detail-content h2{margin:0;font-family:Kaiti SC,STKaiti,serif;font-size:28px}.journal-detail-meta{color:var(--muted);font-size:12px}.journal-detail-text{max-height:24vh;max-width:100%;margin:0;overflow-y:auto;color:#5f504b;font-family:Kaiti SC,STKaiti,serif;font-size:15px;line-height:2;white-space:pre-wrap;overflow-wrap:anywhere;scrollbar-width:none}.journal-detail-text::-webkit-scrollbar{display:none}html[data-theme=dark] .journal-detail-text{color:#e7d3ce}.journal-view.confirm{width:min(460px,92vw);padding:30px 34px 28px}.journal-view.confirm h3{margin:0;font-size:17px}.journal-view.confirm p{margin:12px 0 0;color:var(--muted);line-height:1.8}.journal-view.confirm .profile-modal-actions{margin:22px 0 0}.journal-list button:hover strong{color:var(--rose-dark)}.timeline-dot{width:11px;height:11px;margin-left:6px;border:2px solid #eec2bd;border-radius:50%}.journal-list b{font-size:13px}.journal-list b small{display:block;margin-top:3px;color:var(--muted);font-size:10px;font-weight:400}.journal-list img{width:68px;height:62px;object-fit:cover;border-radius:9px}.journal-list .journal-thumb{position:relative;width:68px;height:62px}.journal-list .journal-thumb img{width:100%;height:100%}.journal-img-count{position:absolute;right:5px;bottom:5px;padding:1px 6px;border-radius:8px;color:white;background:rgba(30,20,18,.55);font-size:10px;font-style:normal}.journal-list strong{display:block;font-size:15px}.journal-list span small{display:block;margin-top:5px;color:var(--muted);font-size:12px}.journal-list em{align-self:start;padding:5px 9px;border-radius:12px;color:#d98494;background:#ffe9e9;font-size:10px;font-style:normal}.reward-banner{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:16px;padding:26px 30px;border-radius:18px;background:#ffedea}html[data-theme=dark] .reward-banner{background:rgba(237,109,126,.16)}.reward-banner>div>span{color:var(--muted);font-size:13px}.reward-banner em{padding:3px 9px;border-radius:10px;color:var(--rose-dark);background:rgba(255,255,255,.7);font-size:11px;font-style:normal}.reward-banner h2{display:flex;align-items:center;gap:9px;margin:11px 0;font-family:Kaiti SC,STKaiti,serif;font-size:30px}.reward-banner h2 svg{color:var(--rose)}.reward-banner p{margin:0 0 16px;color:#7d6a63}.reward-banner button{display:inline-flex;align-items:center;gap:7px;padding:11px 22px;border:0;border-radius:22px;color:white;background:#ed6f80;box-shadow:0 8px 16px rgba(237,109,126,.25);font-size:14px}.reward-banner button:hover{transform:translateY(-1px)}.reward-banner img{width:268px;height:158px;object-fit:cover;border-radius:14px;box-shadow:0 10px 22px rgba(108,72,51,.14)}.reward-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:15px}.reward-card{display:flex;align-items:center;gap:13px;padding:16px;border:1px solid rgba(213,194,181,.45);border-radius:15px;background:rgba(255,255,255,.82);box-shadow:0 8px 22px rgba(108,72,51,.05)}html[data-theme=dark] .reward-card{border-color:rgba(255,255,255,.08);background:rgba(54,43,43,.86)}.reward-icon{font-size:30px}.reward-card>div{flex:1;min-width:0}.reward-card h3{margin:0 0 5px;font-size:16px}.reward-card p{margin:0 0 9px;color:var(--muted);font-size:12px}.small-progress{height:7px}.reward-card small{display:block;margin-top:6px;color:var(--muted);font-size:11px}.reward-card>button{display:inline-flex;align-items:center;gap:5px;padding:8px 12px;border:0;border-radius:15px;color:var(--rose-dark);background:#ffe7e6;font-size:12px}.reward-card>button:hover{background:#ffd9d8}.album-toolbar{display:flex;align-items:center;gap:14px;margin-bottom:18px}.album-toolbar .chip-row{margin:0}.filter-control{display:inline-flex;align-items:center;gap:7px;margin-left:auto;padding:9px 14px;border:1px solid rgba(213,194,181,.5);border-radius:11px;color:#756562;background:rgba(255,255,255,.72);font-size:13px}html[data-theme=dark] .filter-control{border-color:rgba(255,255,255,.1);color:#d9c5c0;background:rgba(255,255,255,.08)}html[data-theme=dark] .filter-control:hover{color:var(--rose-dark)}.album-layout{display:grid;grid-template-columns:1fr 330px;gap:16px;align-items:start}.album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.album-item{padding:0;border:0;color:inherit;background:transparent;text-align:left}.album-item img{width:100%;height:158px;object-fit:cover;border-radius:12px;transition:transform .25s,box-shadow .25s}.album-item:hover img{transform:translateY(-3px) scale(1.02);box-shadow:0 14px 26px rgba(108,72,51,.18)}.album-item span{display:block;margin-top:14px;font-size:13px;font-weight:700}.album-item small{display:flex;align-items:center;gap:5px;margin-top:5px;color:var(--muted);font-size:11px}.featured-memory{position:sticky;top:20px;padding:18px;border:1px solid rgba(213,194,181,.45);border-radius:16px;background:rgba(255,255,255,.84);box-shadow:0 8px 24px rgba(108,72,51,.06)}html[data-theme=dark] .featured-memory{border-color:rgba(255,255,255,.08);background:rgba(54,43,43,.88)}.featured-memory h2{margin:0 0 13px;font-size:17px}.featured-memory img{width:100%;height:168px;object-fit:cover;border-radius:12px}.featured-memory h3{margin:13px 0 8px;font-size:16px}.featured-memory p{margin:0;color:var(--muted);font-size:12px;line-height:1.8}.featured-memory>span{display:block;margin-top:10px;color:var(--rose);text-align:right}.date-layout{display:grid;grid-template-columns:1.15fr .95fr 1fr;gap:16px;margin-bottom:16px}.next-date{position:relative;display:flex;flex-direction:column;align-items:flex-start;padding:14px;border-radius:12px;background:#ffefeb}html[data-theme=dark] .next-date{background:rgba(237,109,126,.16)}.next-date h2{display:flex;align-items:center;gap:8px;margin:11px 0 7px;font-family:Kaiti SC,STKaiti,serif;font-size:27px}.next-date h2 svg{color:var(--rose)}.next-date>p{margin:0;color:var(--muted);font-size:13px}.countdown{display:flex;gap:9px;margin:15px 0}.countdown b{display:grid;place-items:center;min-width:55px;padding:9px 6px;border-radius:11px;color:#c04a5e;background:rgba(255,255,255,.78);font-size:21px}html[data-theme=dark] .countdown b{background:rgba(255,255,255,.1)}.countdown small{display:block;margin-top:2px;color:var(--muted);font-size:10px;font-weight:400}.script-copy{font-family:Kaiti SC,STKaiti,serif;line-height:1.75}.next-date img{width:100%;height:130px;margin:12px 0;object-fit:cover;border-radius:12px}.calendar{color:#6f605c;font-size:12px}.calendar-head{margin-bottom:7px;color:var(--muted);text-align:center}.calendar-days,.calendar-head{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-days{gap:3px}.calendar-days button{display:grid;place-items:center;aspect-ratio:1;border:0;border-radius:8px;color:inherit;background:transparent;font-size:12px}.calendar-days button:hover{color:var(--rose-dark);background:#ffeaea}.calendar-days button.marked{color:var(--rose-dark);font-weight:700}.calendar-days button.today{color:white;background:var(--rose)}.reminder-list{display:grid}.reminder-list label{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid #f0e9e4}html[data-theme=dark] .reminder-list label{border-color:rgba(255,255,255,.08)}.reminder-list label:last-child{border-bottom:0}.reminder-list span{display:flex;align-items:center;gap:9px}.reminder-list b{font-size:13px}.reminder-list b small{display:block;margin-top:4px;color:var(--muted);font-size:10px;font-weight:400}.reminder-list input{width:38px;height:21px;accent-color:var(--rose)}.milestone-list{display:grid}.milestone-list button{display:grid;grid-template-columns:92px 1fr auto;align-items:center;gap:13px;padding:12px 4px;border:0;border-bottom:1px solid #f0e9e4;color:inherit;background:transparent;text-align:left}html[data-theme=dark] .milestone-list button{border-color:rgba(255,255,255,.08)}.milestone-list button:last-child{border-bottom:0}.milestone-list button:hover b{color:var(--rose-dark)}.milestone-list span{color:var(--muted);font-size:12px}.milestone-list b{font-size:14px}.milestone-list b small{display:block;margin-top:4px;color:var(--muted);font-size:11px;font-weight:400}.milestone-list em{color:var(--rose-dark);font-size:12px;font-style:normal}.wish-form-body{position:relative;display:grid;gap:13px;width:min(560px,94vw);max-height:88vh;overflow-y:auto;overscroll-behavior:contain;padding:22px 26px 24px;border-radius:18px;background:#fffdf9;box-shadow:0 30px 70px rgba(20,12,10,.4)}html[data-theme=dark] .wish-form-body{background:#2f2728}.wish-form-body h2{display:flex;align-items:center;gap:8px;margin:0;color:var(--ink);font-family:Kaiti SC,STKaiti,serif;font-size:26px}.wish-form-body h2 svg{color:var(--rose)}.wish-form-body label{display:grid;gap:6px;color:var(--muted);font-size:12px}.wish-form-body input,.wish-form-body select,.wish-form-body textarea{width:100%;padding:10px 12px;border:1px solid rgba(213,194,181,.5);border-radius:11px;color:inherit;background:rgba(255,255,255,.75);outline:0;font:inherit;font-size:14px}html[data-theme=dark] .wish-form-body input,html[data-theme=dark] .wish-form-body select,html[data-theme=dark] .wish-form-body textarea{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.12)}.wish-form-body textarea{min-height:76px;line-height:1.8;resize:vertical}.wish-form-body input:focus,.wish-form-body select:focus,.wish-form-body textarea:focus{border-color:var(--rose)}.wish-upload-title{color:var(--muted);font-size:12px}.wish-upload-box{display:grid;place-items:center;gap:8px;min-height:128px;border:1.5px dashed #e7cdc3;border-radius:13px;color:var(--muted);cursor:pointer;transition:border-color .18s,color .18s}.wish-upload-box:hover{border-color:var(--rose);color:var(--rose-dark)}.wish-upload-box input{display:none}.wish-upload-box small{font-size:12px}.wish-upload-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.wish-upload-preview{position:relative}.wish-upload-preview img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid rgba(213,194,181,.5);border-radius:10px}.wish-upload-preview button{position:absolute;top:-8px;right:-8px;display:grid;place-items:center;width:22px;height:22px;border:0;border-radius:50%;color:#5c4a45;background:rgba(255,255,255,.94);box-shadow:0 4px 10px rgba(108,72,51,.22)}.wish-upload-preview button:hover{color:#e5484d}.wish-form-actions{display:flex;gap:10px;margin-top:2px}.empty-tip{grid-column:1/-1;margin:8px 0}.empty-tip,.home-empty{color:var(--muted);font-size:13px;text-align:center}.home-empty{margin:0;padding:14px 0 10px;line-height:1.8}.home-journal-list{display:grid;gap:2px;max-height:264px;overflow-y:auto;scrollbar-width:thin}.home-journal-item{display:grid;grid-template-columns:44px auto 1fr auto;align-items:center;gap:8px;padding:8px 2px;border-bottom:1px solid #f0e9e4;color:inherit;text-decoration:none}.home-journal-item:last-child{border-bottom:0}.home-journal-item b{color:var(--rose-dark);font-size:12px;font-weight:700;white-space:nowrap}.home-journal-mood{font-size:11px;font-style:normal;white-space:nowrap;color:#709777;background:#e6f2e5;padding:4px 8px;border-radius:12px}.home-journal-text{display:grid;min-width:0}.home-journal-text strong{font-size:13px}.home-journal-text small,.home-journal-text strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-journal-item em,.home-journal-text small{color:var(--muted);font-size:11px}.home-journal-item em{font-style:normal;white-space:nowrap}.home-journal-item:hover strong{color:var(--rose-dark)}html[data-theme=dark] .home-journal-item{border-color:rgba(255,255,255,.08)}html[data-theme=dark] .home-journal-mood{color:#9cc4a4;background:rgba(112,151,119,.18)}.filter-row button.active,.wish-like.is-liked{color:var(--rose-dark);font-weight:700}.filter-row button.active{border-color:var(--rose);background:#ffe8e6}.reward-card.is-open{border-color:var(--rose)}.reward-hint{margin:8px 0 0;padding:9px 11px;border-radius:10px;color:#8a6a5e;background:#fff3ea;font-size:12px;line-height:1.7}html[data-theme=dark] .reward-hint{color:#e0c9c2;background:rgba(237,109,126,.12)}.reward-actions{display:grid;gap:8px;justify-items:stretch}.reward-actions button{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:8px 12px;border:0;border-radius:15px;color:var(--rose-dark);background:#ffe7e6;font-size:12px;white-space:nowrap}.reward-actions button:hover{background:#ffd9d8}.reward-actions button.claim{color:white;background:#ed6f80}.reward-actions button:disabled{opacity:.55;cursor:default}.reward-banner button:disabled{opacity:.6;cursor:default;transform:none}.upload-label{cursor:pointer}.lightbox{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:24px;background:rgba(30,20,18,.62);backdrop-filter:blur(4px);animation:toastIn .2s ease}.lightbox-body{position:relative;max-width:min(860px,92vw);overflow:hidden;border-radius:18px;background:#fffdf9;box-shadow:0 30px 70px rgba(20,12,10,.4)}html[data-theme=dark] .lightbox-body{background:#2f2728}html[data-theme=dark] .lightbox-meta b{color:#f7eeeb}html[data-theme=dark] .lightbox-meta small{color:#b9aaa8}html[data-theme=dark] .lightbox-close{color:#f0e6e2;background:rgba(255,255,255,.16)}html[data-theme=dark] .lightbox-close:hover{color:var(--rose-dark);background:rgba(255,255,255,.26)}.lightbox-body img{display:block;width:100%;max-height:72vh;object-fit:contain;background:#171210}.lightbox-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:14px 18px}.lightbox-meta b{font-size:16px}.lightbox-meta small{color:var(--muted);font-size:12px}.lightbox-meta button{display:inline-flex;align-items:center;gap:6px;margin-left:auto;padding:8px 14px;border:0;border-radius:16px;color:white;background:#ed6f80;font-size:12px}.lightbox-close{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:50%;color:#5c4a45;background:rgba(255,255,255,.85)}.lightbox-close:hover{color:var(--rose-dark)}.toast{position:fixed;top:26px;left:50%;transform:translateX(-50%);z-index:200;display:flex;align-items:center;gap:8px;padding:12px 18px;border-radius:13px;color:white;background:rgba(60,45,42,.92);box-shadow:0 14px 30px rgba(60,35,25,.25);font-size:13px;animation:toastTopIn .25s ease}.toast svg{color:#8fe0a8}.toast-err{background:rgba(122,46,54,.94)}.toast-err svg{color:#ffb3bc}@keyframes toastTopIn{0%{opacity:0;transform:translate(-50%,-14px)}to{opacity:1;transform:translate(-50%)}}@keyframes toastIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.progress-card{position:relative;overflow:hidden}.progress-doodle{position:absolute;right:-18px;bottom:-26px;font-size:106px;line-height:1;opacity:.1;pointer-events:none}.progress-doodle--two{top:-8px;right:96px;bottom:auto;color:var(--rose);font-size:40px;opacity:.14}.wish-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:16px;align-items:start}.wish-layout--no-aside{grid-template-columns:minmax(0,1fr)}.wish-layout .wish-grid{grid-template-columns:repeat(auto-fill,minmax(225px,1fr))}.wish-aside{display:grid;gap:16px}.inspiration-list{display:grid;gap:2px;margin:0;padding:0;list-style:none}.inspiration-list button{display:flex;align-items:center;gap:9px;width:100%;padding:10px;border:0;border-radius:11px;color:#6f605c;background:transparent;font-size:13px;text-align:left;transition:background .18s,color .18s}html[data-theme=dark] .inspiration-list button{color:#d9c5c0}.inspiration-list button svg{flex:0 0 auto;color:var(--rose)}.inspiration-list button:hover{color:var(--rose-dark);background:rgba(237,109,126,.09)}.milestone-progress-list{display:grid}.milestone-progress{display:flex;align-items:center;gap:11px;padding:10px 0;border-bottom:1px solid #f0e9e4}html[data-theme=dark] .milestone-progress{border-color:rgba(255,255,255,.08)}.milestone-progress:last-child{border-bottom:0}.milestone-emoji{display:grid;flex:0 0 36px;place-items:center;width:36px;height:36px;border-radius:12px;background:#fff0e9;font-size:17px}html[data-theme=dark] .milestone-emoji{background:rgba(255,255,255,.08)}.milestone-progress>div{flex:1;min-width:0}.milestone-progress b{display:block;font-size:13px}.milestone-progress .progress-track.small{height:7px;margin:7px 0 0}.milestone-progress .progress-track.small span{background:#ef8f9b}.milestone-progress small{display:block;margin-top:5px;color:var(--muted);font-size:11px}.journal-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}.journal-main{min-width:0}.journal-aside{display:grid;gap:16px}.journal-textarea{flex:1;min-height:170px;padding:0;border:0;outline:0;resize:vertical;color:#5f504b;background:transparent;font:inherit;font-size:15px;line-height:2}html[data-theme=dark] .journal-textarea{color:#e7d3ce}.journal-textarea::placeholder{color:#b4a5a0}.journal-meta{display:flex;align-items:center;justify-content:space-between;margin-top:12px;color:var(--muted);font-size:11px}.journal-meta .autosave{color:#8fae91;margin-left:auto;margin-right:12px}.album-tag{display:inline-block;width:fit-content;margin-top:8px;padding:2px 9px;border-radius:999px;font-size:10px;font-style:normal;font-weight:700;letter-spacing:.5px;color:var(--rose);background:rgba(237,109,126,.14)}.lightbox-meta .album-tag{margin-top:0;margin-left:8px;vertical-align:2px}.calendar-legend{display:flex;gap:14px;margin-top:10px;color:var(--muted);font-size:11px}.calendar-legend span{display:inline-flex;align-items:center;gap:5px}.calendar-legend i{width:8px;height:8px;border-radius:50%}.dot-marked{background:#f2b6bd}.dot-today{background:var(--rose)}.calendar-blank{display:block;aspect-ratio:1}.year-badge{padding:4px 11px;border-radius:11px;color:var(--rose-dark);background:#ffe7e6;font-size:11px}html[data-theme=dark] .year-badge{background:rgba(237,109,126,.2)}.dash-card-title .test-badge{margin-left:2px;padding:2px 8px;border-radius:9px;color:#9a6b2f;background:#fff1d0;font-size:10px;font-style:normal;font-weight:500;line-height:1.5}html[data-theme=dark] .dash-card-title .test-badge{color:#e8c48a;background:rgba(214,158,74,.22)}.streak-card{display:flex;align-items:center;gap:11px;margin-top:15px;padding:12px;border-radius:13px;background:#fff0e8}html[data-theme=dark] .streak-card{background:rgba(237,109,126,.14)}.streak-flame{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;color:#ec7c4f;background:rgba(255,255,255,.8)}html[data-theme=dark] .streak-flame{background:rgba(255,255,255,.1)}.streak-card>div{flex:1;min-width:0}.streak-card b{display:block;font-size:14px}.streak-card small{display:block;margin-top:3px;color:var(--muted);font-size:11px}.prompt-list{display:grid;gap:3px;margin:0;padding:0;list-style:none}.prompt-list button{display:flex;align-items:flex-start;gap:8px;width:100%;padding:10px;border:0;border-radius:11px;color:#6f605c;background:transparent;font-family:Kaiti SC,STKaiti,serif;font-size:13px;line-height:1.6;text-align:left;transition:background .18s,color .18s}html[data-theme=dark] .prompt-list button{color:#d9c5c0}.prompt-list button svg{flex:0 0 auto;margin-top:3px;color:var(--rose)}.prompt-list button:hover{color:var(--rose-dark);background:rgba(237,109,126,.09)}.keyword-cloud{display:flex;flex-wrap:wrap;gap:8px}.keyword-cloud button{padding:7px 12px;border:1px solid rgba(213,194,181,.5);border-radius:15px;color:#756562;background:rgba(255,255,255,.7);font-size:12px;transition:.18s}html[data-theme=dark] .keyword-cloud button{color:#d9c5c0;background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.1)}.keyword-cloud button.active,.keyword-cloud button:hover{color:var(--rose-dark);border-color:var(--rose);background:#ffe8e6}.reward-layout{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);margin-top:16px;align-items:start}.reward-aside,.reward-layout{display:grid;gap:16px}.reward-caption{margin:2px 0 15px;color:var(--muted);font-size:12px;line-height:1.7}.checkin-strip{display:grid;grid-template-columns:repeat(10,1fr);gap:7px}.checkin-strip button{display:grid;place-items:center;gap:1px;padding:7px 0;border:1px solid rgba(213,194,181,.5);border-radius:10px;color:#c9b6b0;background:rgba(255,255,255,.6);transition:transform .16s,color .16s,background .16s,border-color .16s}html[data-theme=dark] .checkin-strip button{border-color:rgba(255,255,255,.1);background:rgba(255,255,255,.05);color:#8d7d7a}.checkin-strip button:hover{transform:translateY(-2px);color:var(--rose)}.checkin-strip button.is-checked{border-color:transparent;color:#fff;background:#ec7787}.checkin-strip button small{font-size:10px}.unlock-card{display:grid;grid-template-columns:44px 1fr;align-items:center;gap:4px 12px}.unlock-icon{display:grid;grid-row:span 2;place-items:center;width:44px;height:44px;border-radius:13px;background:#fff0e9;font-size:22px}html[data-theme=dark] .unlock-icon{background:rgba(255,255,255,.08)}.unlock-card>div b{font-size:14px}.unlock-card>div p{margin:3px 0 0;color:var(--muted);font-size:11px}.unlock-card .progress-track.small{grid-column:1/-1;height:7px;margin:10px 0 0}.unlock-card>small{grid-column:1/-1;margin-top:7px;color:var(--muted);font-size:11px}.unlock-card>button{grid-column:1/-1;justify-self:start;margin-top:12px}.claimed-list{display:grid;margin:0;padding:0;list-style:none}.claimed-list li{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:9px;padding:10px 0;border-bottom:1px solid #f0e9e4}html[data-theme=dark] .claimed-list li{border-color:rgba(255,255,255,.08)}.claimed-list li:last-child{border-bottom:0}.claimed-list span{font-size:19px}.claimed-list b{font-size:13px}.claimed-list small{color:var(--muted);font-size:11px}.memory-fav{margin-top:10px;padding:6px 13px;border:1px solid #f3b7b7;border-radius:15px;color:var(--rose-dark);background:transparent;font-size:12px}html[data-theme=dark] .memory-fav{border-color:rgba(255,154,165,.4)}.memory-fav:hover{background:rgba(237,109,126,.09)}.journey-section{margin-top:16px}.journey-card{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:18px;align-items:center}.journey-map{position:relative;height:230px;overflow:hidden;border-radius:15px;background:#f6f0e8}html[data-theme=dark] .journey-map{background:#2c2525}.journey-route{position:absolute;inset:0;width:100%;height:100%}.journey-route polyline{fill:none;stroke:#e9a7ae;stroke-width:1.1;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.journey-pin{position:absolute;display:grid;justify-items:center;gap:2px;padding:0;border:0;background:transparent;transform:translate(-50%,-50%)}.journey-pin em{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.92);box-shadow:0 6px 14px rgba(108,72,51,.18);font-size:16px;font-style:normal;transition:transform .18s,box-shadow .18s}html[data-theme=dark] .journey-pin em{background:rgba(60,50,50,.95)}.journey-pin small{padding:1px 7px;border-radius:9px;color:#7c6a64;background:rgba(255,255,255,.75);font-size:10px}html[data-theme=dark] .journey-pin small{color:#d9c5c0;background:rgba(40,33,33,.8)}.journey-pin.active em,.journey-pin:hover em{transform:scale(1.12);box-shadow:0 10px 20px rgba(237,109,126,.3)}.journey-pin.active small{color:#fff;background:var(--rose)}.journey-list{display:grid;margin:0;padding:0;list-style:none}.journey-list button{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:11px;width:100%;padding:12px 10px;border:0;border-radius:12px;color:inherit;background:transparent;text-align:left;transition:background .18s}.journey-list button.active,.journey-list button:hover{background:rgba(237,109,126,.09)}.journey-list span{font-size:19px}.journey-list b{font-size:14px}.journey-list b small{display:block;margin-top:3px;color:var(--muted);font-size:11px;font-weight:400}.journey-list em{color:var(--rose-dark);font-size:12px;font-style:normal;white-space:nowrap}.dates-extra{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px;margin-top:16px;align-items:start}.year-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:9px}.year-grid button{display:grid;justify-items:center;gap:4px;padding:11px 4px;border:1px solid rgba(213,194,181,.5);border-radius:12px;color:#756562;background:rgba(255,255,255,.62);font-size:12px;transition:.18s}html[data-theme=dark] .year-grid button{color:#d9c5c0;background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.1)}.year-grid button:hover{color:var(--rose-dark)}.year-grid button.has-event{color:var(--rose-dark);background:#fff1f1}html[data-theme=dark] .year-grid button.has-event{background:rgba(237,109,126,.16)}.year-grid button.active{border-color:var(--rose);box-shadow:0 6px 14px rgba(237,109,126,.2)}.year-grid button small{font-size:11px}.year-dots{min-height:16px;font-size:13px;letter-spacing:1px}.month-detail{display:grid;gap:9px;margin-top:16px}.month-event{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:12px;background:#fff4f0}html[data-theme=dark] .month-event{background:rgba(255,255,255,.06)}.month-event span{font-size:20px}.month-event b{font-size:13px}.month-event b small{display:block;margin-top:3px;color:var(--muted);font-size:11px;font-weight:400}.month-empty{margin:0;color:var(--muted);font-size:12px;line-height:1.8}.idea-list{display:grid;gap:3px;margin:0;padding:0;list-style:none}.idea-list button{display:flex;align-items:center;gap:11px;width:100%;padding:10px;border:0;border-radius:12px;color:#6f605c;background:transparent;text-align:left;transition:background .18s}html[data-theme=dark] .idea-list button{color:#d9c5c0}.idea-list button:hover{background:rgba(237,109,126,.09)}.idea-list span{font-size:22px}.idea-list b{font-size:13px}.idea-list b small{display:block;margin-top:3px;color:var(--muted);font-size:11px;font-weight:400}@media (max-width:1280px){.wish-layout{grid-template-columns:minmax(0,1fr)}.wish-aside{grid-template-columns:repeat(2,minmax(0,1fr))}.journal-layout{grid-template-columns:minmax(0,1fr)}.journal-aside{grid-template-columns:repeat(3,minmax(0,1fr))}.reward-layout{grid-template-columns:minmax(0,1fr)}.reward-aside{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:1024px){.journal-aside{grid-template-columns:repeat(2,minmax(0,1fr))}.dates-extra,.journey-card{grid-template-columns:minmax(0,1fr)}}@media (max-width:860px){.journal-aside,.reward-aside,.wish-aside{grid-template-columns:minmax(0,1fr)}.checkin-strip{grid-template-columns:repeat(7,1fr)}.year-grid{grid-template-columns:repeat(4,1fr)}.journey-map{height:200px}}@media (max-width:1280px){.dash-grid--three{grid-template-columns:1fr 1fr}.dash-grid--three>:first-child{grid-column:span 2}.date-layout{grid-template-columns:1fr 1fr}.album-layout{grid-template-columns:1fr 280px}}@media (max-width:1024px){.dashboard-sidebar{position:fixed;left:0;transform:translateX(-104%);transition:transform .25s ease;box-shadow:0 0 40px rgba(70,45,32,.2)}.dashboard-sidebar.is-open{transform:none}.mobile-menu{display:inline-flex;margin-right:10px;color:var(--muted)}.dashboard-content{padding:20px 18px 40px}.album-layout,.date-layout{grid-template-columns:1fr}.featured-memory{position:static}}@media (min-width:1025px) and (max-height:820px){.dashboard-sidebar{padding-top:18px;padding-bottom:12px}.dashboard-sidebar nav{gap:3px}.dashboard-sidebar nav a,.dashboard-sidebar nav button{min-height:42px}.sidebar-profile{padding-top:10px;padding-bottom:10px}}@media (max-width:860px){.dash-grid--three{grid-template-columns:1fr}.dash-grid--three>:first-child{grid-column:auto}.dash-page-title{flex-direction:column;align-items:flex-start}.dash-page-title h1{font-size:28px}.today-entry{flex-direction:column}.today-entry img{width:100%;height:150px}.journal-body{flex-direction:column}.journal-images{flex-wrap:wrap}.journal-image-add,.journal-images img{width:50%;height:130px}.editor-toolbar{flex-wrap:wrap;gap:10px 12px}.journal-meta{flex-wrap:wrap;gap:8px}.journal-detail-main{grid-template-rows:minmax(200px,300px) auto}.memory-strip img{height:96px}.wish-overview{flex-direction:column;align-items:stretch}.wish-overview>img{width:100%;height:150px}.reward-banner{flex-direction:column;align-items:stretch}.reward-banner img{width:100%;height:150px}.overview-numbers{gap:18px}.overview-numbers b{font-size:29px}.journal-list button{grid-template-columns:20px 56px minmax(0,1fr) auto}.journal-list b{display:none}.journal-list .journal-thumb{display:block;width:56px;height:50px}.journal-list span small,.journal-list strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.journal-detail-body{width:100%;height:88vh;grid-template-columns:1fr;overflow-y:auto;scrollbar-width:none}.journal-detail-body::-webkit-scrollbar{display:none}.journal-detail-body .wish-comments{grid-template-rows:none}.journal-detail-body .wish-comment-list{max-height:45vh}.milestone-list button{grid-template-columns:1fr auto}.milestone-list span{display:none}.toast{top:14px;right:14px;bottom:auto;left:14px;transform:none;justify-content:center}}@media (max-width:480px){.journal-editor{padding:15px}.journal-date{gap:8px}.journal-date b{font-size:18px}.editor-toolbar{gap:9px 10px;padding:8px 10px}.editor-toolbar button{margin-left:0}.journal-textarea{min-height:130px}.journal-image-add,.journal-images img{width:calc(50% - 5px);height:112px}.journal-detail-content{padding:14px 16px 18px}.journal-detail-content h2{font-size:21px}.journal-detail-text{max-height:none;font-size:14px}.journal-view.confirm{padding:22px 20px 20px}.streak-card{flex-wrap:wrap}}