*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f7f3ee;--surface:#fff;--surface-soft:#fbfaf8;--text:#171717;--muted:#6b7280;--line:#e5e1da;--dark:#26211d;--green:#047857;--green-bg:#dff5ea;--blue:#1d4ed8;--blue-bg:#dbeafe;--amber:#b45309;--amber-bg:#fef3c7;--red:#b91c1c;--red-bg:#fee2e2;--shadow:0 1px 2px #0000000f, 0 8px 24px #27201a14;--radius:10px;--max-w:840px;--sidebar-w:220px;--bg-page:#f7f0e6;--bg-card:#fdfbf8;--bg-card-soft:#fbf4e9;--text-primary:#2d2723;--text-secondary:#6f665e;--text-muted:#9b938b;--border-soft:#6f57401f;--divider:#6f57401a;--orange:#d44c0f;--orange-soft:#fff0df;--shadow-card:0 2px 8px #593a1c0d;--radius-card:11px;--radius-inner:9px;--radius-button:9px;--radius-pill:999px}html{scroll-behavior:smooth;height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans SC,sans-serif;line-height:1.6}button,input{font:inherit}button{cursor:pointer}.layout{height:100%;display:flex}.sidebar{width:var(--sidebar-w);color:#5e554e;background-color:#fffdf9;background-image:linear-gradient(#fffdf9 0%,#fffaf6 65%,#fdf5ed 100%);border-right:1px solid #684c361a;flex-direction:column;flex-shrink:0;display:flex;overflow-y:auto;box-shadow:8px 0 24px #684c360f}.sidebar-toggle{display:none}.sidebar-toggle svg,.sidebar-close svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:1.2rem;height:1.2rem;display:block}.sidebar-backdrop,.sidebar-close{display:none}.sidebar-brand{text-align:center;padding:1.5rem 1rem 1rem;position:relative}.sidebar-brand:after{content:"";border-top:1px solid #684c361a;width:calc(100% - .5rem);margin:1rem auto 0;display:block}.sidebar-home-mark{fill:none;stroke:#c86d50;stroke-width:1.55px;stroke-linecap:round;stroke-linejoin:round;width:1.8rem;height:1.8rem;margin:0 auto .65rem;display:block}.sidebar-eyebrow{color:#b86a51;letter-spacing:.17em;text-transform:uppercase;font-family:Georgia,Times New Roman,Songti SC,STSong,serif;font-size:.68rem;font-weight:600}.sidebar-title{color:#4d423a;letter-spacing:.11em;margin-top:.225rem;font-family:Georgia,Songti SC,STSong,serif;font-size:1.3rem;font-weight:400;line-height:1.25}.sidebar-subtitle{color:#9b8e84;letter-spacing:.15em;margin-top:.45rem;font-family:Georgia,Songti SC,STSong,serif;font-size:.76rem;display:block}.sidebar-nav{flex-direction:column;flex:1;gap:.3rem;padding:.6rem .7rem .8rem;display:flex}.sidebar-item{color:#776e67;cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:.65rem;width:100%;padding:.62rem .7rem;font-family:Georgia,Songti SC,STSong,serif;font-size:.84rem;font-weight:700;text-decoration:none;transition:background .15s,border-color .15s,color .15s;display:flex}.sidebar-item:hover{color:#744538;background:#fbf1eb}.sidebar-item.active{color:#963f2d;background:#fae9e1;border-color:#c76a4c14;box-shadow:inset 0 0 0 1px #c76a4c0a}.sidebar-icon{color:currentColor;flex-shrink:0;place-items:center;width:1.4rem;height:1.4rem;display:grid}.sidebar-icon svg{width:1.2rem;height:1.2rem;display:block}.sidebar-illustration{color:#887a6f;opacity:1;pointer-events:auto;flex:none;padding:.2rem .72rem .55rem;transition:opacity .18s,transform .28s cubic-bezier(.22,1,.36,1)}.sidebar-illustration-copy{color:#85766b;letter-spacing:.04em;transform-origin:0;margin:0 .35rem .2rem;font-family:Bradley Hand,Comic Sans MS,STKaiti,cursive;font-size:.78rem;line-height:1.65;transform:rotate(-4deg)}.sidebar-illustration-copy span{color:#b67863;margin-left:.2rem;font-size:1rem;display:inline-block;transform:rotate(4deg)}.sidebar-illustration img{object-fit:contain;object-position:bottom center;width:100%;max-height:13.5rem;display:block}.main-area{flex:1;min-width:0;overflow-y:auto}.app-shell{max-width:var(--max-w);margin:0 auto;padding:1.2rem 1rem 3rem}@media (width>=720px){.sidebar{width:0;transition:width .28s cubic-bezier(.22,1,.36,1);overflow:hidden}body.sidebar-expanded .sidebar{width:var(--sidebar-w);overflow-y:auto}.sidebar-brand,.sidebar-nav,.sidebar-illustration{opacity:0;pointer-events:none;transition:opacity .18s,transform .28s cubic-bezier(.22,1,.36,1);transform:translate(-10px)}body.sidebar-expanded .sidebar-brand,body.sidebar-expanded .sidebar-nav,body.sidebar-expanded .sidebar-illustration{opacity:1;pointer-events:auto;transform:translate(0)}.sidebar-toggle{z-index:30;color:#2f2924;cursor:pointer;backdrop-filter:blur(12px);background:#ffffffb8;border:1px solid #e5e1da;border-left:none;border-radius:0 8px 8px 0;justify-content:center;align-items:center;width:2.2rem;height:4.5rem;transition:opacity .18s,background .15s,color .15s;display:flex;position:fixed;top:50%;left:0;transform:translateY(-50%);box-shadow:0 4px 14px #27201a1f}.sidebar-toggle:hover{color:#c2410c;background:#ffffffe6}body.sidebar-expanded .sidebar-toggle{opacity:0;pointer-events:auto}}@supports not (backdrop-filter:blur(1px)){.sidebar{background-color:#fffdf9}}.follow-up-index{gap:1.2rem;display:grid}.follow-up-header,.follow-up-directory,.follow-up-article{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.follow-up-header{padding:1.4rem 1.5rem}.section-kicker{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:800}.follow-up-header h1,.follow-up-article h1{margin-top:.25rem;font-size:1.55rem;line-height:1.25}.follow-up-header>p:last-child{color:var(--muted);margin-top:.5rem}.follow-up-directory{padding:1.2rem 1.3rem}.follow-up-section-heading{justify-content:space-between;align-items:end;gap:1rem;margin-bottom:.65rem;display:flex}.follow-up-section-heading h2{margin-top:.15rem;font-size:1.08rem}.follow-up-section-heading>span{color:var(--muted);white-space:nowrap;font-size:.8rem}.follow-up-link-list{border-top:1px solid var(--line)}.follow-up-link{border-bottom:1px solid var(--line);min-height:4.1rem;color:var(--text);align-items:center;gap:.8rem;padding:.75rem .25rem;text-decoration:none;transition:padding .15s,color .15s;display:flex}.follow-up-link:last-child{border-bottom:none}.follow-up-link:hover{color:var(--green);padding-left:.5rem}.follow-up-link-icon{background:var(--surface-soft);border-radius:8px;flex-shrink:0;place-items:center;width:2.2rem;height:2.2rem;font-size:1.15rem;display:grid}.follow-up-link-main{gap:.1rem;min-width:0;display:grid}.follow-up-link-main strong{font-size:.94rem}.follow-up-link-main small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;overflow:hidden}.follow-up-link-arrow{color:var(--muted);margin-left:auto;font-size:1.1rem}.follow-up-article{padding:1.4rem 1.5rem 2rem}.article-back-link{color:var(--muted);font-size:.82rem;text-decoration:none;display:inline-block}.article-back-link:hover{color:var(--green)}.follow-up-article-header{border-bottom:1px solid var(--line);align-items:flex-start;gap:.8rem;margin-top:1.25rem;padding-bottom:1.1rem;display:flex}.follow-up-article-icon{background:var(--surface-soft);border-radius:9px;flex-shrink:0;place-items:center;width:2.5rem;height:2.5rem;font-size:1.3rem;display:grid}.follow-up-article-note{color:var(--muted);margin-top:.25rem;font-size:.84rem}.follow-up-article-body{padding-top:1.2rem}.phase-panel{animation:.2s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.stat-grid{grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1rem;display:grid}.stat-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-height:5rem;box-shadow:var(--shadow);padding:.9rem 1rem}.stat-value{font-size:1.7rem;font-weight:900;line-height:1;display:block}.stat-label{color:var(--muted);margin-top:.35rem;font-size:.8rem;font-weight:700;display:block}.tone-green .stat-value{color:var(--green)}.tone-blue .stat-value{color:var(--blue)}.tone-amber .stat-value{color:var(--amber)}.tone-red .stat-value{color:var(--red)}.tone-dark .stat-value{color:var(--dark)}.controls{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);margin-bottom:1.2rem;padding:1rem}.search-row{grid-template-columns:1fr;gap:.75rem;display:grid}.search-box{gap:.35rem;display:grid}.search-box span{color:var(--muted);font-size:.78rem;font-weight:800}.search-input-row{gap:.5rem;display:flex}.search-input-row input{border:1px solid var(--line);background:var(--surface-soft);min-height:2.6rem;color:var(--text);border-radius:8px;outline:none;flex:1;padding:.55rem .7rem}.search-input-row input:focus{border-color:#c08a2f;box-shadow:0 0 0 3px #c08a2f29}.search-btn{color:#fff;cursor:pointer;background:#c08a2f;border:1px solid #c08a2f;border-radius:8px;flex-shrink:0;min-height:2.6rem;padding:.55rem 1rem;font-size:.88rem;font-weight:800;transition:background .15s}.search-btn:hover{background:#a67a26}.search-box input{border:1px solid var(--line);background:var(--surface-soft);width:100%;min-height:2.6rem;color:var(--text);border-radius:8px;outline:none;padding:.55rem .7rem}.search-box input:focus{border-color:#c08a2f;box-shadow:0 0 0 3px #c08a2f29}.result-bar{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:.75rem;margin-top:.9rem;padding-top:.85rem;font-size:.88rem;display:flex}.result-actions{align-items:center;gap:.6rem;display:flex}.text-button{color:var(--amber);background:0 0;border:none;align-items:center;gap:.3rem;font-size:.88rem;font-weight:800;display:inline-flex}.check-section{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);margin-bottom:1.5rem;overflow:hidden}.part-header{border-bottom:3px solid #2f2924;margin:1.8rem 0 1rem;padding-bottom:.6rem}.part-header:first-child{margin-top:0}.part-title{color:#2f2924;letter-spacing:.06em;font-size:1.25rem;font-weight:900}.group-header{border-bottom:2px solid var(--line);align-items:center;gap:.75rem;margin:1.4rem 0 .3rem;padding:0 0 .4rem;display:flex}.group-header:first-child{margin-top:0}.group-title{color:#2f2924;letter-spacing:.04em;font-size:1.05rem;font-weight:900}.group-role{background:var(--surface-soft);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:.2rem .6rem;font-size:.85rem;font-weight:700}.group-note{color:var(--muted);margin:.2rem 0 .6rem;padding-left:.2rem;font-size:.82rem;font-style:italic}.section-note{color:var(--muted);background:var(--surface-soft);border-bottom:1px solid var(--line);margin-top:-.3rem;padding:.3rem 1.1rem .5rem;font-size:.8rem;font-style:italic}.item-sub{color:var(--amber);letter-spacing:.03em;text-transform:uppercase;padding:.5rem 1.1rem .2rem;font-size:.78rem;font-weight:800}.check-item.has-sub{border-left:3px solid #0000;padding-left:1.5rem}.check-item.has-sub:hover{border-left-color:var(--line)}.section-header{color:#fff;cursor:pointer;user-select:none;background:#2f2924;justify-content:space-between;align-items:center;padding:.9rem 1.1rem;transition:background .15s;display:flex}.section-header:hover{background:#3b342d}.section-header-left{align-items:center;gap:.6rem;min-width:0;display:flex}.section-header h2{letter-spacing:.02em;font-size:1rem;font-weight:800}.role-badge{color:#f7c974;background:#ffffff1f;border:1px solid #ffffff2e;border-radius:999px;flex-shrink:0;padding:.15rem .55rem;font-size:.82rem;font-weight:700}.section-header-right{flex-shrink:0;align-items:center;gap:.6rem;display:flex}.section-count{color:#f7c974;font-size:.75rem;font-weight:700}.section-arrow{color:#f7c974;font-size:.85rem;transition:transform .2s}.check-section.open .section-arrow{transform:rotate(90deg)}.section-body{transition:max-height .3s,opacity .2s;overflow:hidden}.check-section.collapsed .section-body{opacity:0;max-height:0!important}.check-section.collapsed .section-note{display:none}.check-list{padding:.5rem 0}.check-item{border-bottom:1px solid var(--line);padding:.85rem 1.1rem}.check-item:last-child{border-bottom:none}.check-q{color:var(--text);font-size:.94rem;font-weight:700;line-height:1.5}.check-hint{color:var(--muted);margin-top:.3rem;font-size:.82rem;line-height:1.55}.contract-list{padding:.5rem 0}.contract-item{border-bottom:1px solid var(--line);gap:.9rem;padding:.85rem 1.1rem;display:flex}.contract-item:last-child{border-bottom:none}.contract-num{color:#f7c974;letter-spacing:.04em;background:#2f2924;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:2.2rem;height:2.2rem;font-size:.82rem;font-weight:900;display:flex}.contract-body{min-width:0}.contract-q{color:var(--text);font-size:.94rem;font-weight:700;line-height:1.5}.empty-state{border-radius:var(--radius);text-align:center;background:#fff9;border:1px dashed #c9c1b7;margin-top:1rem;padding:2rem}.empty-state p{color:var(--muted);margin-top:.4rem}.checklist-ol{counter-reset:checklist-counter;margin:0;padding:.8rem 1.1rem .8rem 2.4rem;list-style:none}.checklist-ol li{border-bottom:1px solid var(--line);color:var(--text);counter-increment:checklist-counter;padding:.6rem 0 .6rem 2rem;font-size:.94rem;line-height:1.5;position:relative}.checklist-ol>li:last-child{border-bottom:none}.checklist-ol>li:before{content:counter(checklist-counter);color:#f7c974;background:#2f2924;border-radius:999px;justify-content:center;align-items:center;width:1.8rem;height:1.8rem;font-size:.78rem;font-weight:900;display:flex;position:absolute;top:.6rem;left:-.2rem}.checklist-q{font-weight:600}.checklist-note{color:var(--muted);margin:.3rem 0 0;font-size:.85rem;font-weight:400;line-height:1.55}.checklist-sub{margin:.4rem 0 0;padding-left:1.2rem;list-style:none}.checklist-sub li{color:var(--muted);counter-increment:none;border-bottom:none;padding:.2rem 0 .2rem 1rem;font-size:.85rem;font-weight:400;line-height:1.55;position:relative}.checklist-sub li:before{content:"•";color:var(--muted);position:absolute;left:0}.calendar-view{animation:.2s fadeIn}.cal-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.cal-title{color:var(--dark);letter-spacing:.04em;font-size:1.4rem;font-weight:900}.cal-nav{align-items:center;gap:.5rem;display:flex}.cal-nav-btn{border:1px solid var(--line);background:var(--surface);width:2rem;height:2rem;color:var(--muted);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;font-size:.85rem;transition:border-color .15s,color .15s;display:flex}.cal-nav-btn:hover{color:#c08a2f;border-color:#c08a2f}.cal-today-btn{border:1px solid var(--line);background:var(--surface-soft);height:2rem;color:var(--text);cursor:pointer;border-radius:999px;padding:0 .9rem;font-size:.82rem;font-weight:700;transition:background .15s,border-color .15s}.cal-today-btn:hover{background:var(--line);border-color:#c08a2f}.cal-weekdays{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(7,1fr);display:grid}.cal-weekday{text-align:center;color:var(--muted);border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface-soft);padding:.55rem .3rem;font-size:.78rem;font-weight:700}.cal-grid{border-left:1px solid var(--line);grid-template-columns:repeat(7,1fr);display:grid}.cal-cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface);min-height:5rem;padding:.4rem .5rem;transition:background .12s;position:relative}.cal-cell:hover{background:var(--surface-soft)}.cal-other-month .cal-date,.cal-other-month .cal-lunar{color:#c9c1b7}.cal-lunar{color:var(--muted);font-size:.68rem;line-height:1.3;display:block}.cal-lunar-start{color:var(--red);border-bottom:2px solid var(--red);display:inline-block}.cal-date{color:var(--text);margin-top:.15rem;font-size:.92rem;font-weight:600;line-height:1.3;display:block}.cal-today{background:#fef2f2}.cal-date-today{color:#fff;background:#dc2626;border-radius:50%;justify-content:center;align-items:center;width:2rem;height:2rem;margin-top:.35rem;font-size:.95rem;font-weight:800;display:inline-flex}.cal-has-data{cursor:pointer}.cal-has-data:hover{background:#f0ece6}.cal-balance{color:var(--amber);margin-top:.25rem;font-size:.7rem;font-weight:700;display:block}.cal-selected{outline-offset:-2px;z-index:1;background:#fdf8ed;outline:2px solid #c08a2f}.cal-special{background:linear-gradient(135deg,#fef9f0 0%,#fdf2e0 100%);border-left:3px solid #e8a840}.cal-special:hover{background:linear-gradient(135deg,#fdf2e0 0%,#fce8c4 100%)}.cal-special.cal-today{background:linear-gradient(135deg,#fef2f2 0%,#fdf2e0 50%)}.cal-special-icons{letter-spacing:1px;vertical-align:middle;margin-left:.2rem;font-size:.75rem;display:inline-block}.detail-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);margin-top:1rem;animation:.2s fadeIn}.daily-detail-full{margin-top:1rem}.daily-detail-full .detail-panel{width:100%}.detail-header{border-radius:var(--radius) var(--radius) 0 0;background:#2f2924;justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.detail-title{color:#fff;font-size:.95rem;font-weight:800}.detail-close{color:#ffffffb3;cursor:pointer;background:#ffffff1f;border:none;border-radius:50%;justify-content:center;align-items:center;width:1.7rem;height:1.7rem;font-size:.8rem;transition:background .15s;display:flex}.detail-close:hover{color:#fff;background:#ffffff38}.detail-body{padding:.8rem 1rem}.detail-row{align-items:baseline;gap:.6rem;padding:.45rem 0;display:flex}.detail-row+.detail-row{border-top:1px solid var(--line)}.detail-label{color:var(--muted);min-width:4.5rem;font-size:.82rem;font-weight:700}.detail-val{color:var(--text);font-size:1.05rem;font-weight:800}.detail-val.consumption{color:var(--red)}.detail-note{color:var(--muted);font-size:.75rem}.detail-row.muted .detail-val{color:#c9c1b7}.cal-expense-dot{background:var(--red);border-radius:50%;width:6px;height:6px;position:absolute;bottom:.4rem;right:.4rem}.cal-income-dot{background:var(--green);border-radius:50%;width:6px;height:6px;position:absolute;bottom:.4rem;left:.4rem}.detail-tasks{border-top:1px solid var(--line);flex-direction:column;gap:.35rem;margin-top:.6rem;padding-top:.6rem;display:flex}.task-item{align-items:flex-start;gap:.55rem;padding:.35rem 0;display:flex}.task-num{color:#f7c974;background:#2f2924;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:1.4rem;height:1.4rem;margin-top:.1rem;font-size:.7rem;font-weight:800;display:flex}.task-time{min-width:7rem;color:var(--muted);white-space:nowrap;flex-shrink:0;margin-top:.15rem;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.76rem;font-weight:600}.task-text{color:var(--text);font-size:.85rem;line-height:1.5}.detail-expenses{border-top:1px solid var(--line);margin-top:.6rem;padding-top:.6rem}.expense-detail-item{align-items:center;gap:.5rem;padding:.3rem 0;font-size:.84rem;display:flex}.expense-detail-sub{color:var(--muted)}.expense-detail-note{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.78rem;overflow:hidden}.expense-detail-amount{color:var(--red);flex-shrink:0;margin-left:auto;font-weight:800}.cal-hema-badge{background:var(--amber);color:#4a2c05;white-space:nowrap;border-radius:999px;padding:.05rem .35rem;font-size:.6rem;font-weight:700;line-height:1.4;position:absolute;top:.3rem;right:.3rem}.cal-hema-day{background:#fffaf0}.cal-hema-day:hover{background:#fdf2dc}.hema-section{border-top:1px solid var(--line);flex-direction:column;gap:.55rem;margin-top:.6rem;padding-top:.6rem;display:flex}.hema-block{align-items:flex-start;gap:.55rem;display:flex}.hema-tag{white-space:nowrap;border-radius:999px;flex-shrink:0;margin-top:.1rem;padding:.1rem .45rem;font-size:.72rem;font-weight:700}.hema-bought{color:#1d5fa8;background:#e7f0fb}.hema-next{color:#3b6d11;background:#e9f5e1}.hema-text{color:var(--text);margin:0;font-size:.85rem;line-height:1.6}.hema-empty{border-radius:var(--radius);border:1px dashed var(--amber);color:var(--muted);background:#fffaf0;margin-top:.6rem;padding:.55rem .7rem;font-size:.82rem}.cal-promo-day{background:#fff6f2}.cal-promo-day:hover{background:#fdeadf}.cal-promo-day.cal-hema-day{background:linear-gradient(135deg,#fffaf0 0%,#fff2ea 100%)}.cal-promo-day.cal-hema-day:hover{background:linear-gradient(135deg,#fdf2dc 0%,#fdeadf 100%)}.cal-promo-icons{vertical-align:middle;margin-left:.15rem;font-size:.7rem;display:inline-block}.cal-promo-bubble{z-index:2000;width:max-content;max-width:min(280px,100vw - 24px);color:var(--dark);pointer-events:none;opacity:0;background:#fffdf9;border:1px solid #eadfd2;border-radius:12px;padding:.55rem .7rem .6rem;font-size:.72rem;line-height:1.5;transition:opacity .12s,transform .12s;position:fixed;transform:translateY(3px);box-shadow:0 12px 30px #2f292429,0 2px 6px #2f292412}.cal-promo-bubble.is-visible{opacity:1;transform:translateY(0)}.cal-promo-bubble:after{content:"";background:#fffdf9;width:8px;height:8px;position:absolute;transform:rotate(45deg)}.cal-promo-bubble.is-below:after{top:-5px;left:var(--tip-arrow-x,18px);border-top:1px solid #eadfd2;border-left:1px solid #eadfd2}.cal-promo-bubble.is-above:after{bottom:-5px;left:var(--tip-arrow-x,18px);border-bottom:1px solid #eadfd2;border-right:1px solid #eadfd2}.cal-promo-bubble-head{color:var(--dark);font-size:.76rem;font-weight:800}.cal-promo-bubble-sub{color:var(--muted);margin-top:.1rem;font-size:.66rem}.cal-promo-bubble-list{border-top:1px dashed #ece0d1;grid-template-columns:auto 1fr;align-items:center;gap:.22rem .5rem;margin-top:.45rem;padding-top:.45rem;display:grid}.cal-promo-bubble-row{display:contents}.cal-promo-bubble-row b{color:#9a5b12;text-align:center;white-space:nowrap;background:#fdeede;border-radius:999px;padding:.05rem .34rem;font-size:.64rem;font-weight:800}.cal-promo-bubble-row span{color:var(--text);font-size:.7rem}.cal-promo-bubble-foot{color:var(--muted);margin-top:.4rem;font-size:.64rem}.promo-tag{color:#9a5b12;background:#fdeede}.promo-note{color:var(--muted);margin:.1rem 0 0;font-size:.78rem;line-height:1.6}.expense-view{animation:.2s fadeIn}.expense-amount{color:var(--red)}.income-amount{color:var(--green)}.expense-cat-icon{flex-shrink:0;font-size:1.1rem}.expense-cat-amount{color:#f7c974;font-size:.82rem;font-weight:800}.expense-item{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:.7rem 1.1rem;display:flex}.expense-item:last-child{border-bottom:none}.expense-item-left{flex-direction:column;gap:.15rem;min-width:0;display:flex}.expense-item-sub{color:var(--text);font-size:.9rem;font-weight:700}.expense-item-right{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.15rem;margin-left:.8rem;display:flex}.expense-item-amount{color:var(--red);font-size:.92rem;font-weight:800}.summary-bar{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);align-items:center;gap:.5rem;margin-top:.75rem;padding:.75rem 1rem;display:flex}.summary-item{align-items:baseline;gap:.35rem;display:flex}.summary-label{color:var(--muted);font-size:.78rem;font-weight:700}.summary-value{color:var(--dark);font-size:.95rem;font-weight:800}.summary-value.income-amount{color:var(--green)}.summary-value.expense-amount{color:var(--red)}.summary-divider{background:var(--line);flex-shrink:0;width:1px;height:1.4rem}.floor-plan{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);margin-bottom:1.5rem;overflow:hidden}.fp-svg{width:100%;height:auto;display:block}.fp-room{fill:var(--surface-soft);stroke:var(--line);stroke-width:1.5px;transition:fill .15s}.fp-room:hover{fill:#f0ece6}.fp-master{fill:#fdf2f8}.fp-bath{fill:#eff6ff}.fp-wash{fill:#f0fdf4}.fp-kitchen{fill:#fff7ed}.fp-second{fill:#f5f3ff}.fp-living{fill:#fefce8}.fp-entry{fill:#f9fafb}.fp-room-label{fill:var(--dark);text-anchor:middle;font-family:-apple-system,Noto Sans SC,sans-serif;font-size:14px;font-weight:800}.fp-room-area{fill:var(--muted);text-anchor:middle;font-family:-apple-system,Noto Sans SC,sans-serif;font-size:11px;font-weight:600}.fp-label-large{font-size:18px}.fp-area-large{font-size:13px}.fp-vertical-label{writing-mode:vertical-rl}.fp-door{fill:none;stroke:var(--amber);stroke-width:3px;stroke-linecap:round}.fp-door-label{fill:var(--amber);text-anchor:middle;font-family:-apple-system,Noto Sans SC,sans-serif;font-size:11px;font-weight:700}.location-section{margin-top:1rem}.location-title{color:var(--dark);border-bottom:2px solid var(--line);letter-spacing:.03em;margin-bottom:.75rem;padding-bottom:.5rem;font-size:1.05rem;font-weight:900}.map-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem;animation:.2s fadeIn;display:grid}.map-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);padding:1.2rem 1.1rem;transition:border-color .15s,transform .15s}.map-card:hover{border-color:#c08a2f;transform:translateY(-2px)}.map-item-name{color:var(--dark);letter-spacing:.03em;font-size:1.05rem;font-weight:900}.map-location{color:var(--muted);margin-top:.4rem;font-size:.88rem;font-weight:600}.map-location:before{content:"📍 "}.food-indicator{font-size:.95rem;line-height:1}.food-detail .detail-title:before{content:"🍽️ "}.food-dishes{flex-direction:column;gap:.5rem;display:flex}.food-meal-block+.food-meal-block{margin-top:.2rem}.food-meal-head{margin-bottom:.6rem}.food-meal-tag{color:#fff;background:var(--red,#b5482f);letter-spacing:.05em;border-radius:999px;padding:.2rem .7rem;font-size:.8rem;font-weight:800;display:inline-block}.food-dish-card{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;align-items:center;gap:.6rem;padding:.7rem .9rem;display:flex}.food-dish-icon{flex-shrink:0;font-size:1.1rem}.food-dish-name{color:var(--text);font-size:.9rem;font-weight:700}.food-dish-body{flex-direction:column;flex:auto;gap:.15rem;min-width:0;display:flex}.food-dish-head{align-items:baseline;gap:.5rem;display:flex}.food-dish-name{color:var(--text);white-space:nowrap;font-size:.9rem;font-weight:700}.food-dish-by{color:var(--muted);flex-shrink:0;font-size:.75rem}.food-dish-cost{color:var(--red);font-variant-numeric:tabular-nums;flex-shrink:0;margin-left:auto;font-size:.85rem;font-weight:800}.food-dish-note{color:var(--muted);font-size:.73rem;line-height:1.35}.food-divider{background:var(--line);height:1px;margin:.8rem 0}.food-photo{border:1px solid var(--line);border-radius:10px;margin:.6rem 0;overflow:hidden}.food-photo img{object-fit:cover;width:100%;height:auto;display:block}.food-views{flex-direction:column;gap:1rem;display:flex}.food-view-tabs{background:var(--surface-soft);border:1px solid var(--line);border-radius:999px;flex-wrap:wrap;align-self:flex-start;gap:.4rem;max-width:100%;padding:.3rem;display:inline-flex}.food-view-tab{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:.45rem 1.1rem;font-size:.9rem;font-weight:700;transition:background .15s,color .15s}.food-view-tab:hover{color:var(--text)}.food-view-tab.active{background:var(--surface);color:var(--red,#b5482f);box-shadow:var(--shadow)}.food-view-panel[hidden]{display:none}.cookbook{flex-direction:column;gap:1.2rem;display:flex}.cookbook-nav{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:.9rem}.cook-nav-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.6rem;display:grid}.cook-nav-btn{border:1px solid var(--line);background:var(--surface);color:var(--dark);cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:.25rem;padding:.7rem .5rem;font-family:inherit;font-size:.9rem;font-weight:800;transition:border-color .15s,box-shadow .15s,transform .1s,background .15s;display:flex}.cook-nav-btn:hover{box-shadow:var(--shadow);border-color:#d8cfc3}.cook-nav-btn:active{transform:translateY(1px)}.cook-nav-btn.active{background:#fdf8ef;border-color:#c08a2f;box-shadow:0 0 0 2px #c08a2f59}.cook-nav-icon{font-size:1.4rem;line-height:1}.cook-nav-label{line-height:1.2}.cook-nav-count{color:var(--muted);background:var(--surface-soft);border:1px solid var(--line);border-radius:999px;padding:.05rem .45rem;font-size:.7rem;font-weight:700}.cook-cat-head{align-items:baseline;gap:.6rem;margin-bottom:.8rem;display:flex}.cook-cat-head h3{color:var(--dark);font-size:1.05rem;font-weight:900}.cook-cat-count{color:var(--muted);font-size:.8rem;font-weight:700}.cook-rec-list{flex-direction:column;gap:.6rem;display:flex}.cook-rec{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.cook-rec-head{border:none;border-bottom:1px solid var(--line);background:var(--surface-soft);width:100%;color:var(--text);cursor:pointer;text-align:left;justify-content:space-between;align-items:center;gap:.6rem;padding:.75rem .95rem;font-family:inherit;font-size:.92rem;font-weight:800;display:flex}.cook-rec-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:1.05rem;line-height:1;display:inline-flex;box-shadow:inset 0 0 0 1px #0000000f}.cook-rec-head:hover{background:#f3efe9}.cook-rec-arrow{color:var(--muted);flex-shrink:0;font-size:.8rem;transition:transform .18s}.cook-rec-title{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;margin-left:.15rem;overflow:hidden}.cook-rec-ware{color:#92400e;white-space:nowrap;background:#ffffffd9;border:1px solid #00000014;border-radius:999px;flex-shrink:0;align-items:center;gap:.25rem;margin-left:.6rem;padding:.16rem .55rem;font-size:.76rem;font-weight:700;display:inline-flex;box-shadow:0 1px 2px #0000000f}.cook-rec-head.open .cook-rec-arrow{transform:rotate(90deg)}.cook-rec-body{border-top:1px solid var(--line);padding:.2rem .95rem .9rem}.cook-empty{color:var(--muted);text-align:center;padding:1.5rem 0;font-size:.9rem}.cookbook-md{color:var(--text);margin-top:.6rem;font-size:.88rem;line-height:1.65}.cookbook-md h2{color:var(--dark);margin:1.1rem 0 .5rem;font-size:.92rem;font-weight:800}.cookbook-md h3{color:var(--dark);margin:.9rem 0 .4rem;font-size:.88rem;font-weight:800}.cookbook-md p{margin:.4rem 0}.cookbook-md ul,.cookbook-md ol{margin:.4rem 0;padding-left:1.3rem}.cookbook-md li{margin:.2rem 0}.cookbook-md a{color:var(--blue);word-break:break-all;text-decoration:none}.cookbook-md a:hover{text-decoration:underline}.cookbook-md code{background:var(--surface-soft);border:1px solid var(--line);border-radius:4px;padding:.1rem .35rem;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.8rem}.cookbook-md pre{background:var(--surface-soft);border:1px solid var(--line);border-radius:6px;margin:.6rem 0;padding:.7rem .85rem;overflow-x:auto}.cookbook-md pre code{background:0 0;border:none;padding:0}.cookbook-md blockquote{background:var(--surface-soft);color:var(--muted);border-left:3px solid #c08a2f;border-radius:0 6px 6px 0;margin:.6rem 0;padding:.4rem .8rem}.cookbook-md strong{color:var(--dark);font-weight:800}.cookbook-md hr{border:none;border-top:1px solid var(--line);margin:.9rem 0}.cookbook-md table{border-collapse:collapse;width:100%;margin:.6rem 0;font-size:.84rem}.cookbook-md th,.cookbook-md td{border:1px solid var(--line);text-align:left;padding:.45rem .65rem}.cookbook-md th{background:var(--surface-soft);color:var(--dark);font-weight:800}.cookbook-md tr:nth-child(2n) td{background:var(--surface-soft)}.price-panel{flex-direction:column;gap:1.2rem;display:flex}.price-cat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:.9rem 1rem 1rem}.price-cat-head{align-items:baseline;gap:.6rem;margin-bottom:.8rem;display:flex}.price-cat-head h3{color:var(--dark);font-size:1.02rem;font-weight:900}.price-cat-count{color:var(--muted);background:var(--surface-soft);border:1px solid var(--line);border-radius:999px;padding:.05rem .5rem;font-size:.78rem;font-weight:700}.price-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.6rem;display:grid}.price-card{border:1px solid var(--line);background:var(--surface);border-radius:10px;flex-direction:column;gap:.1rem;padding:.6rem .8rem .65rem;transition:box-shadow .15s;display:flex}.price-card:hover{box-shadow:var(--shadow)}.price-card-top{justify-content:space-between;align-items:baseline;gap:.4rem;display:flex}.price-name{color:var(--text);font-size:.92rem;font-weight:800}.price-spec{color:var(--muted);flex-shrink:0;font-size:.72rem;font-weight:600}.price-main{color:var(--red,#b5482f);font-variant-numeric:tabular-nums;font-size:1.12rem;font-weight:900}.price-meta-row{flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.2rem;display:flex}.price-badge{background:var(--surface-soft);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:.05rem .45rem;font-size:.7rem;font-weight:700}.price-note{color:var(--muted);font-size:.75rem;line-height:1.4}.price-empty{text-align:center;color:var(--muted);background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius);padding:3rem 1.2rem}.price-empty-icon{margin-bottom:.5rem;font-size:2.2rem}.price-empty p{color:var(--text);margin:.3rem 0;font-size:1rem;font-weight:800}.price-empty-sub{color:var(--muted);max-width:40ch;margin:.5rem auto 0;font-size:.85rem;font-weight:400;line-height:1.6}.price-empty code{background:var(--surface-soft);border:1px solid var(--line);border-radius:4px;padding:.05rem .3rem;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.78rem}.pantry-panel{flex-direction:column;gap:1rem;display:flex}.pantry-summary{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.6rem .8rem;display:flex}.pantry-sum-chip{background:var(--surface-soft);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:.22rem .6rem;font-size:.78rem;font-weight:800}.pantry-sum-chip.ch-red{color:#b3261e;background:#fdeceb;border-color:#f2c2bf}.pantry-sum-chip.ch-yellow{color:#92600a;background:#fdf3df;border-color:#efd9a8}.pantry-sum-chip.ch-green{color:#1e7a43;background:#eaf6ee;border-color:#c6e5d1}.pantry-board{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.pantry-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.pantry-grid{min-width:640px}.pantry-head,.pantry-row{grid-template-columns:200px 1fr;display:grid}.pantry-head{border-bottom:1px solid var(--line);background:var(--surface-soft)}.pantry-row{border-bottom:1px solid var(--line)}.pantry-row:last-child{border-bottom:none}.pantry-head-label{color:var(--muted);border-right:1px solid var(--line);align-self:stretch;align-items:center;padding:.5rem .75rem;font-size:.78rem;font-weight:800;display:flex}.pantry-head-axis{gap:1px;padding:.35rem .45rem;display:grid}.pantry-day{color:var(--muted);text-align:center;white-space:nowrap;font-size:.66rem;line-height:1.6}.pantry-day.is-month{color:var(--text);font-weight:800}.pantry-day.is-today{color:#fff;background:var(--red,#b5482f);border-radius:999px;align-self:center;font-weight:900;line-height:1.5}.pantry-label{border-right:1px solid var(--line);flex-direction:column;justify-content:center;gap:.15rem;min-width:0;padding:.5rem .75rem;display:flex}.pantry-label-top{align-items:center;gap:.4rem;min-width:0;display:flex}.pantry-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:800;overflow:hidden}.pantry-place{border:1px solid;border-radius:999px;flex-shrink:0;padding:.08rem .5rem;font-size:.68rem;font-weight:800}.pantry-place.place-cold{color:#1d5fae;background:#e9f1fb;border-color:#c7dcf4}.pantry-place.place-freeze{color:#17716c;background:#e6f6f5;border-color:#c3e6e2}.pantry-place.place-room{color:#5b6472;background:#f1f2f4;border-color:#d9dce1}.pantry-place.place-shade{color:#8a5f10;background:#faf0dc;border-color:#eed9a7}.pantry-dates{color:var(--muted);align-items:baseline;gap:.5rem;font-size:.72rem;display:flex}.pantry-dates .exp-red{color:#b3261e;font-weight:800}.pantry-dates .exp-yellow{color:#92600a;font-weight:800}.pantry-dates .exp-green{color:#1e7a43;font-weight:800}.pantry-note{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;overflow:hidden}.pantry-track{background:repeating-linear-gradient(90deg,#00000004 0 21px,#0000 21px 22px);align-items:center;gap:1px;padding:.4rem .45rem;display:grid}.pantry-cell{background:0 0;border-radius:3px;height:14px}.pantry-cell.bar-red{background:#e04538}.pantry-cell.bar-yellow{background:#edb03b}.pantry-cell.bar-green{background:#48a878}.pantry-cell.bar-red+.pantry-cell.bar-red,.pantry-cell.bar-yellow+.pantry-cell.bar-yellow,.pantry-cell.bar-green+.pantry-cell.bar-green{border-radius:0}.pantry-shelf{flex-direction:column;gap:.8rem;display:flex}.pantry-shelf-head{flex-wrap:wrap;align-items:baseline;gap:.6rem;display:flex}.pantry-shelf-head h3{color:var(--dark);font-size:1.02rem;font-weight:900}.pantry-shelf-sub{color:var(--muted);font-size:.8rem}.pantry-shelf-group{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:.7rem .9rem .95rem}.pantry-shelf-group h4{color:var(--text);margin:0 0 .6rem;font-size:.9rem;font-weight:800}.pantry-shelf-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.5rem;display:grid}.pantry-shelf-card{border:1px dashed var(--line);background:var(--surface-soft);border-radius:8px;flex-direction:column;gap:.35rem;padding:.5rem .65rem;display:flex}.pantry-shelf-name{color:var(--text);font-size:.85rem;font-weight:700}.pantry-shelf-refs{flex-wrap:wrap;gap:.3rem;display:flex}.pantry-shelf-ref{color:var(--muted);border:1px solid var(--line);background:#fff;border-radius:999px;align-items:center;gap:.3rem;padding:.12rem .5rem;font-size:.72rem;display:inline-flex}.place-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.place-dot.p-cold{background:#4a90d9}.place-dot.p-freeze{background:#2aa5a0}.place-dot.p-room{background:#9aa3ad}.place-dot.p-shade{background:#e0a23c}@media (width<=820px){.pantry-head,.pantry-row{grid-template-columns:164px 1fr}}.ms-body{color:var(--text);font-size:.88rem;line-height:1.6}.ms-note{margin:.35rem 0 .2rem}.ms-sub{margin:.4rem 0 .2rem;padding-left:0;list-style:none}.ms-sub li{color:var(--text);border-bottom:1px dashed var(--line);padding:.28rem .2rem .28rem 1.4rem;font-size:.85rem;line-height:1.55;position:relative}.ms-sub li:last-child{border-bottom:none}.ms-sub li:before{content:"›";color:var(--muted);font-weight:900;position:absolute;top:.26rem;left:.3rem}.ms-empty-mini{color:var(--muted);padding:.3rem 0;font-size:.85rem}.food-meta-grid{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:.5rem;display:grid}.food-meta-item{flex-direction:column;gap:.15rem;display:flex}.food-meta-label{color:var(--muted);font-size:.75rem;font-weight:700}.food-meta-value{color:var(--text);font-size:.95rem;font-weight:800}.food-cost{color:var(--red)}.daily-utility-bar{background:var(--surface-soft);border-radius:10px;justify-content:space-around;align-items:center;gap:1.2rem;margin-top:1rem;padding:.8rem 1rem;display:flex}.daily-utility-item{flex-direction:column;gap:.15rem;display:flex}.daily-utility-label{color:var(--muted);font-size:.72rem;font-weight:600}.daily-utility-value{color:var(--text);font-variant-numeric:tabular-nums;font-size:1rem;font-weight:800}.daily-utility-current{color:var(--red)}.daily-utility-divider{background:var(--line);width:1px;height:2.5rem}body[data-page=schedule-finance] .app-shell{max-width:min(1440px, calc(100vw - var(--sidebar-w) - 2rem));min-height:100%;margin:0 auto;padding:0 16px 8px}body[data-page=schedule-finance]{background:var(--bg-page);color:var(--text-primary)}body[data-page=schedule-finance] .sf-page{flex-direction:column;min-height:100%;display:flex}.sf-top-spacer{flex:0 0 18px;height:18px}.sf-hero{min-height:98px;position:relative}.sf-hero-copy{z-index:1;padding-top:35px;position:relative}.sf-hero-brand{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;margin:0;padding:0;display:block}.sf-hero-brand:focus-visible{outline-offset:5px;outline:2px solid #d44c0f73}.sf-hero-title-row{align-items:end;gap:17px;display:flex}.sf-hero h1{color:var(--text-primary);letter-spacing:-.04em;font-size:36px;font-weight:800;line-height:1.2}.sf-hero-mark{fill:none;width:90px;height:30px;stroke:var(--orange);stroke-width:2.2px;stroke-linecap:round;opacity:.9;margin-bottom:-4px;overflow:visible}.sf-month-switcher{z-index:2;align-items:center;gap:14px;display:flex;position:absolute;top:42px;left:52%}.sf-month-button,.sf-current-month{border:1px solid var(--border-soft);border-radius:var(--radius-button);background:var(--bg-card);height:36px;color:var(--text-primary);box-shadow:var(--shadow-card);font-size:12px}.sf-month-button{width:36px;color:var(--text-secondary)}.sf-month-title{min-width:103px;color:var(--text-primary);letter-spacing:-.02em;text-align:center;white-space:nowrap;font-size:23px;font-weight:800}.sf-current-month{min-width:64px;margin-left:1px;padding:0 13px;font-size:14px;font-weight:700}.sf-hero-decoration{pointer-events:none;width:375px;height:115px;position:absolute;top:-13px;right:0;overflow:hidden}.sf-hero-decoration img{object-fit:fill;width:100%;height:100%;display:block}.sf-hero-decoration:after{background:var(--bg-page);content:"";width:105px;height:56px;position:absolute;bottom:0;left:0;right:auto}.sf-switcher{display:none}.sf-kpi-row{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-top:14px;display:grid;container:sf-kpi/inline-size}body[data-page=schedule-finance] .sf-primary-layout{grid-template-rows:auto auto;grid-template-columns:minmax(0,1.95fr) minmax(0,1fr);align-items:stretch;gap:14px;display:grid}body[data-page=schedule-finance] .sf-primary-layout>.sf-view[data-sf-view=daily-tracker],body[data-page=schedule-finance] .sf-primary-layout>.sf-view[data-sf-view=daily-tracker]>[data-tab=daily-tracker],body[data-page=schedule-finance] .sf-primary-layout>.sf-view[data-sf-view=daily-tracker]>[data-tab=daily-tracker] .daily-tracker-layout{display:contents}body[data-page=schedule-finance] .sf-primary-layout>.sf-view[data-sf-view=daily-tracker][hidden]{display:none!important}body[data-page=schedule-finance] .sf-primary-layout>.sf-kpi-row{grid-area:1/1;margin-top:0}body[data-page=schedule-finance] .sf-primary-layout .daily-tracker-col{grid-area:2/1}body[data-page=schedule-finance] .sf-primary-layout .sf-context-panel{grid-area:1/2/span 2;align-self:stretch;height:auto}body[data-page=schedule-finance] .sf-primary-layout .sf-analytics-grid{grid-area:3/1/auto/-1;margin-top:0}body[data-page=schedule-finance][data-view=membership] .sf-kpi-row,body[data-page=schedule-finance][data-view=expense-records] .sf-kpi-row,body[data-page=schedule-finance][data-view=expense-records] .sf-month-switcher,body[data-page=schedule-finance][data-view=membership] .sf-month-switcher{display:none}.sf-kpi-card{border:1px solid var(--border-soft);border-radius:var(--radius-card);background:var(--bg-card);min-width:0;height:clamp(72px,10cqi,86px);box-shadow:var(--shadow-card);grid-template-columns:clamp(26px,5.3cqi,42px) minmax(0,1fr) clamp(9px,1.8cqi,14px);align-items:center;gap:clamp(5px,1.7cqi,13px);padding:0 clamp(9px,2.2cqi,17px);display:grid;overflow:hidden}.sf-kpi-card.is-renewal{background:#f7fbf2}.sf-kpi-icon{color:#ef8b2e;background:#fff5e8;border-radius:50%;place-items:center;width:clamp(26px,5.3cqi,42px);height:clamp(26px,5.3cqi,42px);display:grid}.sf-kpi-icon svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:clamp(17px,3.1cqi,25px);height:clamp(17px,3.1cqi,25px)}.sf-kpi-icon.is-balance{color:#e88927}.sf-kpi-icon.is-expense{color:#e94b2e;background:#fff0e9}.sf-kpi-icon.is-daily{color:#f28c27}.sf-kpi-icon.is-sleep,.sf-kpi-icon.is-study{color:#3f73d2;background:#eef4ff}.sf-kpi-icon.is-renewal-icon{color:#d99c16;background:#fff5db}.sf-kpi-copy{align-content:center;gap:3px;min-width:0;display:grid}.sf-kpi-copy>span{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:clamp(9px,1.55cqi,14px);line-height:1.2;overflow:hidden}.sf-kpi-copy strong{color:var(--text-primary);letter-spacing:-.02em;white-space:nowrap;font-size:clamp(13px,2.5cqi,25px);font-weight:800;line-height:1.1}.sf-kpi-card:first-child .sf-kpi-copy strong{color:#087c3c}.sf-kpi-card:nth-child(2) .sf-kpi-copy strong{color:#dd3623}.sf-kpi-card.is-renewal .sf-kpi-copy strong{color:var(--orange)}.sf-kpi-arrow{color:#817870;font-size:clamp(18px,3.4cqi,27px);font-weight:300;line-height:1}@container sf-kpi (width<=980px){.sf-kpi-card{grid-template-columns:clamp(24px,5cqi,32px) minmax(0,1fr);gap:clamp(4px,1.3cqi,7px);padding-inline:clamp(7px,1.6cqi,11px)}.sf-kpi-arrow{display:none}.sf-kpi-icon{width:clamp(24px,5cqi,32px);height:clamp(24px,5cqi,32px)}.sf-kpi-icon svg{width:clamp(16px,3.2cqi,20px);height:clamp(16px,3.2cqi,20px)}.sf-kpi-copy strong{font-size:clamp(12px,2.15cqi,20px)}}.daily-tracker-layout{grid-template-columns:minmax(0,1.95fr) minmax(0,1fr);align-items:stretch;gap:16px;margin-top:18px;display:grid}.daily-tracker-col{flex-direction:column;flex:1;min-width:0;display:flex}.daily-tracker-col .calendar-view{border:1px solid var(--border-soft);border-radius:var(--radius-card);background:var(--bg-card);height:492px;box-shadow:var(--shadow-card);flex-direction:column;display:flex;overflow:hidden}.daily-tracker-col .cal-grid{flex:1;grid-auto-rows:minmax(0,1fr);min-height:0}.daily-tracker-col .cal-header{flex-shrink:0;height:56px;margin-bottom:0;padding:0 21px}.daily-tracker-col .cal-header .cal-nav{display:none}.daily-tracker-col .cal-title{color:var(--text-primary);letter-spacing:-.04em;font-size:25px}.cal-legend{color:var(--text-secondary);white-space:nowrap;align-items:center;gap:20px;font-size:13px;display:flex}.cal-legend span{align-items:center;gap:6px;display:inline-flex}.cal-legend i{border-radius:50%;width:9px;height:9px;display:inline-block}.cal-legend i.is-expense{background:#df3a2f}.cal-legend i.is-schedule{background:#3470c9}.cal-legend i.is-subscription{background:#f49b2d}.cal-legend i.is-sleep{background:#12804b}.daily-tracker-col .cal-weekdays{border-top:1px solid var(--divider);border-left:0;flex-shrink:0;height:39px}.daily-tracker-col .cal-weekday{border-color:var(--divider);color:var(--text-secondary);background:0 0;place-items:center;padding:0;font-size:14px;font-weight:600;display:grid}.daily-tracker-col .cal-cell{border-color:var(--divider);background:var(--bg-card);min-height:0;padding:12px 16px}.daily-tracker-col .cal-cell:hover{background:#fffaf4}.daily-tracker-col .cal-date{min-height:24px;color:var(--text-primary);align-items:center;margin-top:0;font-size:17px;font-weight:800;line-height:1.2;display:inline-flex}.daily-tracker-col .cal-lunar{color:var(--text-secondary);margin-left:8px;font-size:13px;line-height:1.2;display:inline}.daily-tracker-col .cal-other-month .cal-date,.daily-tracker-col .cal-other-month .cal-lunar{color:#c8c0b8}.daily-tracker-col .cal-date-today{width:auto;height:auto;color:var(--orange);background:0 0;border-radius:0;justify-content:flex-start;margin:0;font-size:17px}.daily-tracker-col .cal-today{background:var(--bg-card)}.daily-tracker-col .cal-selected{z-index:1;background:#fff8f0;border:1px solid #f3b27e;outline:0}.daily-tracker-col .cal-expense-dot,.daily-tracker-col .cal-schedule-dot,.daily-tracker-col .cal-subscription-dot,.daily-tracker-col .cal-sleep-dot{border-radius:50%;width:7px;height:7px;position:absolute;bottom:13px}.daily-tracker-col .cal-expense-dot{background:#df3a2f;right:17px}.daily-tracker-col .cal-schedule-dot{background:#3470c9;right:31px}.daily-tracker-col .cal-subscription-dot{background:#f49b2d;right:45px}.daily-tracker-col .cal-sleep-dot{background:#12804b;left:17px}.daily-tracker-col .cal-income-dot,.daily-tracker-col .cal-hema-badge{display:none}.daily-side-col{min-width:0}.sf-context-panel{border:1px solid var(--border-soft);border-radius:var(--radius-card);background:var(--bg-card);min-width:0;height:auto;box-shadow:var(--shadow-card);flex-direction:column;gap:10px;padding:16px;display:flex;overflow:visible}.sf-context-header{justify-content:space-between;align-items:flex-start;gap:8px;min-height:44px;padding:0 7px;display:flex}.sf-context-heading{flex:none;align-items:center;gap:8px;min-width:0;display:flex}.sf-context-header h2{color:var(--text-primary);letter-spacing:-.04em;white-space:nowrap;font-size:25px;font-weight:800;line-height:1.2}.sf-context-header p{color:#9b725c;text-align:right;flex:1 1 0;width:175px;min-width:0;margin-top:0;font-family:KaiTi,STKaiti,serif;font-size:13px;line-height:1.35}.sf-context-body{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"expense expense""schedule schedule""sleep subscription""utility study";gap:10px;min-width:0;display:grid}.sf-context-expenses,.sf-context-mini{border:1px solid var(--divider);border-radius:var(--radius-inner);background:#ffffff8f;min-width:0}.sf-context-expenses{flex:none;grid-area:expense;overflow:visible}.sf-context-schedule{grid-area:schedule;position:relative}.sf-context-sleep{grid-area:sleep;position:relative}.sf-context-utility{grid-area:utility}.sf-context-study{grid-area:study;position:relative}.sf-context-subscription{grid-area:subscription;position:relative;overflow:visible}.sf-context-expenses>header{border-bottom:1px solid var(--divider);align-items:center;gap:10px;min-height:56px;padding:8px 12px;display:flex}.sf-context-section-icon{color:#e88927;background:#fff4e4;border-radius:50%;flex:0 0 40px;place-items:center;width:40px;height:40px;font-size:22px;line-height:1;display:grid}.sf-context-section-icon.is-sleep{color:#278d4b;background:#e9f5e8}.sf-context-section-icon.is-schedule{color:#3f7bd8;background:#e8f0ff}.sf-context-section-icon.is-subscription{color:#d69a15;background:#fff4df}.sf-context-section-icon.is-utility{color:var(--orange);background:#fff4e4}.sf-context-section-icon.is-study{color:#6a4fd0;background:#efeafd}.sf-context-expenses>header>div,.sf-context-mini>div{min-width:0}.sf-context-expenses>header>div>span,.sf-context-mini>div>span{color:var(--text-primary);font-size:14px;line-height:1.2;display:block}.sf-context-expenses>header strong{color:#df3323;margin-top:0;font-size:20px;font-weight:800;line-height:1.1;display:block}.sf-context-record-button{border-radius:var(--radius-button);height:34px;color:var(--orange);white-space:nowrap;background:#fffaf5;border:1px solid #f2c49d;margin-left:auto;padding:0 15px;font-size:14px;font-weight:700}.sf-context-expense-row{border-bottom:1px solid var(--divider);grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:39px;padding:0 12px;display:grid}.sf-context-expense-row:last-child{border-bottom:0}.sf-context-expenses,.sf-context-schedule{position:relative}.sf-context-popover{z-index:30;background:#fffaf5;border:1px solid #ebd4bd;border-radius:12px;width:min(360px,100vw - 24px);max-height:min(380px,58vh);padding:10px 12px 12px;display:none;position:absolute;top:calc(100% + 8px);left:0;overflow:hidden;box-shadow:0 12px 28px #593a1c29}.sf-context-popover:before{content:"";background:#fffaf5;border-top:1px solid #ebd4bd;border-left:1px solid #ebd4bd;width:11px;height:11px;position:absolute;top:-6px;left:22px;transform:rotate(45deg)}@media (hover:hover){[data-sf-popover]:hover>.sf-context-popover{display:block}}[data-sf-popover].is-open>.sf-context-popover{display:block}.sf-context-popover-head{z-index:1;border-bottom:1px solid var(--divider);justify-content:space-between;align-items:baseline;gap:8px;padding-bottom:7px;display:flex;position:relative}.sf-context-popover-head span{color:var(--text-primary);font-size:13px;font-weight:800}.sf-context-popover-head small{color:var(--text-muted);white-space:nowrap;font-size:11px}.sf-context-popover-list{max-height:min(330px,50vh);margin-top:3px;overflow:auto}.sf-context-popover .sf-context-expense-row,.sf-context-popover .sf-context-schedule-row{padding-inline:2px}.sf-context-popover .sf-context-schedule-row{border-bottom:1px solid var(--divider);padding-block:4px}.sf-context-popover .sf-context-schedule-row:last-child{border-bottom:0}.sf-context-subscription>div:first-of-type{flex:auto;min-width:0;overflow:hidden}.sf-context-subscription>div:first-of-type>small{color:var(--orange);text-overflow:ellipsis;white-space:nowrap;margin-left:0;font-size:16px;font-weight:800;line-height:1.1;display:block;overflow:hidden}.sf-context-subscription>.sf-context-popover{inset:auto 0 calc(100% + 8px) auto}.sf-context-subscription>.sf-context-popover:before{border:1px solid #ebd4bd;border-top:0;border-left:0;inset:auto 22px -6px auto}.sf-context-popover-copy{color:var(--text-primary);overflow-wrap:anywhere;padding:10px 2px 1px;font-size:13px;line-height:1.5}.sf-context-study>.sf-context-popover{inset:auto 0 calc(100% + 8px) auto}.sf-context-study>.sf-context-popover:before{border:1px solid #ebd4bd;border-top:0;border-left:0;inset:auto 22px -6px auto}.sf-context-study-list{max-height:min(330px,50vh);margin:5px 0 0;padding:0;list-style:none;overflow:auto}.sf-context-study-list li{border-bottom:1px solid var(--divider);color:var(--text-primary);align-items:center;gap:8px;padding:6px 2px;font-size:13px;display:flex}.sf-context-study-list li:last-child{border-bottom:0}.sf-context-study-list li:before{content:"";background:#6a4fd0;border-radius:50%;flex:none;width:6px;height:6px}.sf-context-study-list li span{flex:auto}.sf-context-study-list li strong{color:#6a4fd0;font-weight:700}.sf-context-row-icon{color:#7b776f;text-align:center;font-size:17px}.sf-context-expense-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.sf-context-expense-name small{color:var(--text-muted);margin-left:6px;font-size:11px}.sf-context-expense-row strong{color:#df3323;white-space:nowrap;font-size:14px;font-weight:700}.sf-context-no-record,.sf-context-muted,.sf-context-empty{color:var(--text-muted);font-size:13px}.sf-context-no-record{padding:14px 12px}.sf-context-mini{align-items:center;gap:10px;min-height:67px;padding:10px 12px;display:flex}.sf-context-mini strong{color:var(--text-primary);margin-top:3px;font-size:20px;font-weight:800;line-height:1.05;display:inline-block}.sf-context-mini>small,.sf-context-mini>div>small{color:var(--text-secondary);white-space:nowrap;margin-left:auto;font-size:13px}.sf-context-sleep>small{text-overflow:ellipsis;grid-area:2/2;max-width:100%;margin:2px 0 0;overflow:hidden}.sf-context-sleep{grid-template-rows:auto auto;grid-template-columns:32px minmax(0,1fr);align-content:center;align-items:center;gap:1px 8px;display:grid}.sf-context-sleep .sf-context-section-icon{flex-basis:32px;grid-area:1/1/span 2;width:32px;height:32px;font-size:18px}.sf-context-sleep>div{grid-area:1/2;min-width:0}.sf-context-sleep strong{margin-top:0;line-height:1.1}.sf-context-sleep>small{margin-top:0;line-height:1.25}.sf-context-utility strong{color:var(--orange);margin-top:0;line-height:1.1}.sf-context-schedule-list{max-height:none;margin-top:4px;overflow:visible}.sf-context-schedule-row{color:var(--text-primary);white-space:normal;align-items:flex-start;gap:6px;font-size:13px;line-height:1.45;display:flex}.sf-context-schedule-row i{background:#3470c9;border-radius:50%;flex:0 0 7px;width:7px;height:7px;margin-top:calc(.725em - 3.5px)}.sf-context-schedule-row span{max-width:78px;color:var(--text-secondary);white-space:nowrap;flex:0 0 78px}.sf-context-schedule-row strong{min-width:0;color:var(--text-primary);overflow-wrap:anywhere;text-overflow:clip;white-space:normal;flex:auto;margin-top:0;font-size:13px;font-weight:500;line-height:1.45;display:block;overflow:visible}.sf-context-empty{flex:1;place-items:center;display:grid}body[data-page=schedule-finance] .daily-utility-summary{display:none}body[data-page=schedule-finance] .sf-analytics-grid{grid-template-columns:minmax(0,1.18fr) minmax(0,1fr) minmax(0,.94fr);gap:14px;margin-top:12px;display:grid}body[data-page=schedule-finance] .sf-analytics-card{border:1px solid var(--border-soft);border-radius:var(--radius-card);background:var(--bg-card);min-width:0;height:230px;box-shadow:var(--shadow-card);overflow:hidden}body[data-page=schedule-finance] .sf-trend-card{padding:0}body[data-page=schedule-finance] .sf-trend-card .expense-kanban-head{align-items:center;margin:0;padding:17px 18px 0}body[data-page=schedule-finance] .sf-trend-card .expense-kanban-title{white-space:nowrap;flex:none}body[data-page=schedule-finance] #expenseTrendChart .expense-kanban-title{align-items:center;gap:10px;line-height:28px;display:inline-flex}body[data-page=schedule-finance] .sf-trend-card .sf-chart-detail-button{margin-left:auto}body[data-page=schedule-finance] .sf-trend-card .expense-kanban-title{color:var(--text-primary);letter-spacing:-.03em;align-items:center;gap:10px;font-size:20px;font-weight:800;display:inline-flex}body[data-page=schedule-finance] .sf-chart-icon{align-items:flex-end;gap:3px;width:19px;height:20px;display:inline-flex}body[data-page=schedule-finance] .sf-chart-icon i{background:var(--orange);border-radius:2px 2px 0 0;width:4px;display:block}body[data-page=schedule-finance] .sf-chart-icon i:first-child{height:9px}body[data-page=schedule-finance] .sf-chart-icon i:nth-child(2){height:15px}body[data-page=schedule-finance] .sf-chart-icon i:nth-child(3){height:20px}body[data-page=schedule-finance] .sf-chart-toggle{border:1px solid var(--border-soft);border-radius:var(--radius-pill);height:28px;color:var(--text-secondary);align-items:center;font-size:12px;font-weight:700;display:inline-flex;overflow:hidden}body[data-page=schedule-finance] .sf-trend-toggle-row{justify-content:flex-start;padding:7px 18px 0;display:flex}body[data-page=schedule-finance] .sf-content-action-button,body[data-page=schedule-finance] .sf-view-back{border-radius:var(--radius-button);height:30px;color:var(--orange);white-space:nowrap;cursor:pointer;background:#fffaf5;border:1px solid #f2c49d;justify-content:center;align-items:center;gap:4px;padding:0 12px;font-size:12px;font-weight:700;line-height:1;display:inline-flex}body[data-page=schedule-finance] .sf-content-action-button:hover,body[data-page=schedule-finance] .sf-content-action-button:focus-visible,body[data-page=schedule-finance] .sf-view-back:hover,body[data-page=schedule-finance] .sf-view-back:focus-visible{border-color:var(--orange);background:var(--orange-soft)}body[data-page=schedule-finance] .sf-content-action-button>span,body[data-page=schedule-finance] .sf-view-back>span:first-child{font-size:17px;line-height:.8}body[data-page=schedule-finance] .sf-view-back{margin-bottom:10px}body[data-page=schedule-finance] .sf-subscription-more{margin:10px auto 0}body[data-page=schedule-finance] .sf-chart-toggle span{align-items:center;height:100%;padding:0 14px;display:inline-flex}body[data-page=schedule-finance] .sf-chart-toggle button{height:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;padding:0 14px;display:inline-flex}body[data-page=schedule-finance] .sf-chart-toggle .is-active,body[data-page=schedule-finance] .sf-chart-toggle button:hover{background:var(--orange);color:#fff}body[data-page=schedule-finance] .sf-chart-toggle button:focus-visible{outline:2px solid var(--orange);outline-offset:-2px}body[data-page=schedule-finance] .sf-trend-card .expense-line-area.expense-line-income{fill:#278d4b24}body[data-page=schedule-finance] .sf-trend-card .expense-line-path.expense-line-income,body[data-page=schedule-finance] .sf-trend-card .expense-line-node.expense-line-income{stroke:var(--green)}body[data-page=schedule-finance] .sf-trend-card .expense-line-node.expense-line-income:hover,body[data-page=schedule-finance] .sf-trend-card .expense-line-node.expense-line-income.selected{fill:var(--green)}body[data-page=schedule-finance] .sf-trend-card .expense-line-node.expense-line-income.zero{stroke:#92c8a5}body[data-page=schedule-finance] .sf-category-card .expense-kanban-head{flex:none;padding:17px 17px 0}body[data-page=schedule-finance] .sf-category-card>#sfCategorySummary{flex-direction:column;height:100%;min-height:0;display:flex}body[data-page=schedule-finance] .sf-trend-card .expense-kanban-title,body[data-page=schedule-finance] .sf-category-card .expense-kanban-title,body[data-page=schedule-finance] .sf-subscription-card .expense-kanban-title{color:var(--text-primary);letter-spacing:-.02em;align-items:center;gap:10px;font-size:17px;font-weight:800;line-height:28px;display:inline-flex}body[data-page=schedule-finance] .sf-category-icon{color:var(--orange);font-size:25px;line-height:20px}body[data-page=schedule-finance] .sf-category-list{overscroll-behavior:contain;scrollbar-width:thin;flex-direction:column;flex:auto;gap:8px;min-height:0;padding:10px 18px 12px;display:flex;overflow-y:auto}body[data-page=schedule-finance] .sf-category-row{grid-template-columns:14px 66px minmax(0,1fr) 64px;align-items:center;gap:7px;min-height:19px;display:grid}body[data-page=schedule-finance] .sf-category-swatch{border-radius:4px;width:13px;height:13px}body[data-page=schedule-finance] .sf-category-name{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}body[data-page=schedule-finance] .sf-category-track{border-radius:var(--radius-pill);background:#f5f3ef;height:14px;overflow:hidden}body[data-page=schedule-finance] .sf-category-fill{border-radius:inherit;height:100%;display:block}body[data-page=schedule-finance] .sf-category-amount{color:var(--text-primary);text-align:right;white-space:nowrap;font-size:14px;font-weight:700}body[data-page=schedule-finance] .sf-category-swatch-0,body[data-page=schedule-finance] .sf-category-fill-0{background:#f47b49}body[data-page=schedule-finance] .sf-category-swatch-1,body[data-page=schedule-finance] .sf-category-fill-1{background:#ffc65b}body[data-page=schedule-finance] .sf-category-swatch-2,body[data-page=schedule-finance] .sf-category-fill-2{background:#6bc38b}body[data-page=schedule-finance] .sf-category-swatch-3,body[data-page=schedule-finance] .sf-category-fill-3{background:#55a4ec}body[data-page=schedule-finance] .sf-category-swatch-4,body[data-page=schedule-finance] .sf-category-fill-4{background:#a66ce0}body[data-page=schedule-finance] .sf-category-swatch-5,body[data-page=schedule-finance] .sf-category-fill-5{background:#e978a4}body[data-page=schedule-finance] .sf-chart-empty{color:var(--text-muted);text-align:center;padding:76px 18px;font-size:13px}body[data-page=schedule-finance] .sf-subscription-card .expense-kanban-head{padding:17px 17px 0}body[data-page=schedule-finance] .sf-subscription-icon{color:var(--orange);font-size:25px;line-height:20px}body[data-page=schedule-finance] .sf-subscription-add{border-radius:var(--radius-button);height:30px;color:var(--orange);white-space:nowrap;background:#fffaf5;border:1px solid #f2c49d;padding:0 12px;font-size:12px;font-weight:700}body[data-page=schedule-finance] .sf-subscription-list{flex-direction:column;gap:4px;padding:7px 17px 0;display:flex}body[data-page=schedule-finance] .sf-subscription-row{border-radius:var(--radius-inner);background:#ffffff7a;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:52px;padding:4px 7px;display:grid}body[data-page=schedule-finance] .sf-subscription-logo{width:36px;height:36px;color:var(--orange);background:#fff;border-radius:9px;place-items:center;font-size:21px;display:grid;overflow:hidden}body[data-page=schedule-finance] .sf-subscription-logo img{object-fit:contain;width:31px;height:31px}body[data-page=schedule-finance] .sf-subscription-copy,body[data-page=schedule-finance] .sf-subscription-price{min-width:0}body[data-page=schedule-finance] .sf-subscription-copy strong{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:800;display:block;overflow:hidden}body[data-page=schedule-finance] .sf-subscription-copy span{color:var(--orange);margin-top:3px;font-size:12px;font-weight:700;display:block}body[data-page=schedule-finance] .sf-subscription-copy em{color:#b86116;background:#fff8ec;border:1px solid #f2c995;border-radius:6px;align-items:center;height:19px;margin-left:5px;padding:0 7px;font-size:11px;font-style:normal;line-height:1;display:inline-flex}body[data-page=schedule-finance] .sf-subscription-price{text-align:right}body[data-page=schedule-finance] .sf-subscription-price strong{color:#d93f2e;font-size:15px;font-weight:800;display:block}body[data-page=schedule-finance] .sf-subscription-price span{color:var(--text-muted);white-space:nowrap;margin-top:4px;font-size:11px;display:block}body[data-page=schedule-finance] .sf-footer{min-height:25px;color:var(--text-muted);justify-content:space-between;align-items:center;margin-top:auto;padding-top:16px;font-size:12px;display:flex}body[data-page=schedule-finance] .sf-trend-card .expense-line-chart-wrap{height:188px;padding:0 12px;overflow:hidden}body[data-page=schedule-finance] .sf-trend-card .expense-line-chart{width:100%;min-width:0;height:188px}body[data-page=schedule-finance] .sf-trend-card .expense-line-grid{stroke:#6f57401a}body[data-page=schedule-finance] .sf-trend-card .expense-line-y-label,body[data-page=schedule-finance] .sf-trend-card .expense-line-x-label{fill:var(--text-muted);font-size:11px}body[data-page=schedule-finance] .sf-trend-card .expense-line-area{fill:#ffc48533}body[data-page=schedule-finance] .sf-trend-card .expense-line-path{stroke:var(--orange);stroke-width:2.5px}body[data-page=schedule-finance] .sf-trend-card .expense-line-node{stroke:var(--orange);stroke-width:2px}body[data-page=schedule-finance] .sf-trend-card .expense-line-node:hover,body[data-page=schedule-finance] .sf-trend-card .expense-line-node.selected{fill:var(--orange)}body[data-page=schedule-finance] .sf-trend-card .expense-line-node.zero{stroke:#e7b889}body[data-page=schedule-finance] .sf-trend-card .expense-line-meta{display:none}.daily-side-kanban{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex-direction:column;flex:1;padding:.55rem .65rem;display:flex}.daily-kanban-head{margin-bottom:.5rem}.daily-kanban-title{color:var(--dark);margin:0;font-size:.85rem;font-weight:800}.daily-kanban-empty{color:var(--muted);text-align:center;padding:.6rem 0;font-size:.78rem}.daily-stats-grid{grid-template-columns:repeat(2,1fr);gap:.4rem;display:grid}.daily-stat-item{background:var(--surface-soft);border-radius:6px;flex-direction:column;gap:.1rem;padding:.35rem .45rem;display:flex}.daily-stat-label{color:var(--muted);font-size:.68rem;font-weight:600}.daily-stat-value{color:var(--text);font-variant-numeric:tabular-nums;font-size:.9rem;font-weight:800}.daily-cost{color:var(--red)}.daily-income{color:var(--green)}.daily-cat-grid{grid-template-columns:repeat(3,1fr);gap:.25rem;display:grid}.daily-cat-grid-item{background:var(--surface-soft);border-radius:5px;flex-direction:column;gap:.1rem;padding:.25rem .3rem;display:flex}.daily-cat-grid-name{color:var(--text);font-size:.68rem;font-weight:600}.daily-cat-grid-amount{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.65rem;font-weight:700}.daily-expense-nav{align-items:center;gap:.3rem;display:flex}.daily-expense-btn{border:1px solid var(--line);background:var(--surface);width:1.3rem;height:1.3rem;color:var(--muted);cursor:pointer;border-radius:5px;justify-content:center;align-items:center;font-size:.6rem;transition:border-color .15s,color .15s;display:flex}.daily-expense-btn:hover:not(:disabled){color:#4f46e5;border-color:#4f46e5}.daily-expense-btn:disabled{opacity:.3;cursor:default}.daily-expense-num{color:var(--muted);text-align:center;font-variant-numeric:tabular-nums;min-width:2rem;font-size:.65rem;font-weight:700}.daily-hema-list{flex-direction:column;gap:.4rem;display:flex}.daily-hema-item{background:var(--surface-soft);border-radius:6px;padding:.35rem .4rem}.daily-hema-date{color:var(--muted);margin-bottom:.2rem;font-size:.68rem;font-weight:700}.daily-hema-block{margin-bottom:.2rem}.daily-hema-block:last-child{margin-bottom:0}.daily-hema-tag{border-radius:999px;margin-bottom:.15rem;padding:.08rem .3rem;font-size:.62rem;font-weight:700;display:inline-block}.daily-hema-bought{color:#fff;background:#4f46e5}.daily-hema-next{color:#fff;background:#f59e0b}.daily-hema-text{color:var(--text);margin:0;font-size:.68rem;line-height:1.35}.daily-hema-nav{align-items:center;gap:.3rem;display:flex}.daily-hema-btn{border:1px solid var(--line);background:var(--surface);width:1.3rem;height:1.3rem;color:var(--muted);cursor:pointer;border-radius:5px;justify-content:center;align-items:center;font-size:.6rem;transition:border-color .15s,color .15s;display:flex}.daily-hema-btn:hover:not(:disabled){color:#4f46e5;border-color:#4f46e5}.daily-hema-btn:disabled{opacity:.3;cursor:default}.daily-hema-num{color:var(--muted);text-align:center;font-variant-numeric:tabular-nums;min-width:2rem;font-size:.65rem;font-weight:700}@media (width<=719px){.daily-tracker-layout{flex-direction:column}.daily-side-col{width:100%}}.expense-section-title{color:var(--text);margin:1.4rem 0 0;font-size:1.05rem;font-weight:600}.expense-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-top:.7rem;display:grid}.expense-grid-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex-direction:column;min-width:0;padding:.7rem;display:flex}.expense-grid-header{justify-content:space-between;align-items:center;gap:.4rem;margin-bottom:.5rem;display:flex}.expense-grid-header-left{align-items:center;gap:.4rem;display:flex}.expense-grid-header-left h3{color:var(--dark);margin:0;font-size:.85rem;font-weight:800}.expense-grid-header-right{align-items:center;gap:.3rem;display:flex}.expense-grid-nav{justify-content:center;align-items:center;gap:.3rem;margin-bottom:.4rem;display:flex}.expense-grid-btn{border:1px solid var(--line);background:var(--surface);width:1.3rem;height:1.3rem;color:var(--muted);cursor:pointer;border-radius:5px;justify-content:center;align-items:center;font-size:.6rem;transition:border-color .15s,color .15s;display:flex}.expense-grid-btn:hover:not(:disabled){color:#4f46e5;border-color:#4f46e5}.expense-grid-btn:disabled{opacity:.3;cursor:default}.expense-grid-page{color:var(--muted);text-align:center;font-variant-numeric:tabular-nums;min-width:2rem;font-size:.65rem;font-weight:700}.expense-grid-body{flex-direction:column;flex:1;gap:.3rem;display:flex}.expense-grid-empty{color:var(--muted);text-align:center;padding:.5rem 0;font-size:.75rem}.expense-item{justify-content:space-between;align-items:center;padding:.3rem 0;font-size:.78rem;display:flex}.expense-item-left{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.expense-item-sub{color:var(--text);font-weight:600}.expense-item-note{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;overflow:hidden}.expense-item-right{flex-direction:column;align-items:flex-end;gap:.1rem;display:flex}.expense-item-amount{color:var(--red);font-variant-numeric:tabular-nums;font-weight:800}.expense-item-date{color:var(--muted);font-size:.7rem}@media (width<=719px){.expense-grid{grid-template-columns:1fr}}.expense-layout{grid-template-columns:minmax(0,1fr);align-items:flex-start;gap:1.25rem;display:grid}.expense-main-col{min-width:0}.expense-side-col{flex-direction:column;gap:.6rem;width:100%;min-width:0;display:flex}.expense-side-kanban{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:.55rem .65rem}body[data-page=schedule-finance] .expense-layout{grid-template-columns:minmax(0,1.48fr) minmax(310px,.92fr);align-items:stretch;gap:14px}body[data-page=schedule-finance] .expense-main-col{flex-direction:column;gap:10px;min-height:0;display:flex}body[data-page=schedule-finance] .expense-main-col>.cal-header{height:34px;margin:0;padding:0 2px}body[data-page=schedule-finance] .expense-main-col>.cal-header .cal-title{color:var(--text-primary);letter-spacing:-.03em;font-size:19px}body[data-page=schedule-finance] .expense-main-col>.cal-header .cal-nav{gap:6px}body[data-page=schedule-finance] .expense-main-col>.cal-header .cal-nav-btn,body[data-page=schedule-finance] .expense-main-col>.cal-header .cal-today-btn{height:30px}body[data-page=schedule-finance] .expense-content{border:1px solid var(--border-soft);border-radius:var(--radius-card);background:var(--bg-card);min-width:0;box-shadow:var(--shadow-card);padding:14px 16px 10px}body[data-page=schedule-finance] .expense-record-workspace{flex-direction:column;min-width:0;display:flex}body[data-page=schedule-finance] .expense-summary-strip{border-bottom:1px solid var(--divider);grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding-bottom:11px;display:grid}body[data-page=schedule-finance] .expense-summary-strip>div{flex-direction:column;gap:2px;min-width:0;display:flex}body[data-page=schedule-finance] .expense-summary-strip span{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}body[data-page=schedule-finance] .expense-summary-strip strong{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:800;line-height:1.15;overflow:hidden}body[data-page=schedule-finance] .expense-record-controls{justify-content:space-between;align-items:center;gap:10px;min-width:0;padding:11px 0 8px;display:flex}body[data-page=schedule-finance] .expense-record-type-nav,body[data-page=schedule-finance] .expense-record-category-nav{align-items:center;min-width:0;display:flex}body[data-page=schedule-finance] .expense-record-category-nav{scrollbar-width:none;flex:auto;gap:5px;padding:0;overflow-x:auto}body[data-page=schedule-finance] .expense-record-category-nav::-webkit-scrollbar{display:none}body[data-page=schedule-finance] .expense-record-type-nav{border:1px solid var(--border-soft);border-radius:var(--radius-pill);flex:none;overflow:hidden}body[data-page=schedule-finance] .expense-record-type-btn,body[data-page=schedule-finance] .expense-record-category-btn{color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;border:0;font-size:12px;font-weight:700;line-height:1}body[data-page=schedule-finance] .expense-record-type-btn{min-width:58px;height:27px;padding:0 13px}body[data-page=schedule-finance] .expense-record-type-btn.is-active{background:var(--orange);color:#fff}body[data-page=schedule-finance] .expense-record-count{color:var(--text-muted);white-space:nowrap;font-size:11px}body[data-page=schedule-finance] .expense-record-category-btn{border-radius:var(--radius-pill);white-space:nowrap;border:1px solid #0000;flex:none;padding:6px 9px}body[data-page=schedule-finance] .expense-record-category-btn:hover,body[data-page=schedule-finance] .expense-record-category-btn:focus-visible{color:var(--orange);border-color:#f2c49d}body[data-page=schedule-finance] .expense-record-category-btn.is-active{background:var(--orange-soft);color:var(--orange);border-color:#f2c49d}body[data-page=schedule-finance] .expense-record-list{border-top:1px solid var(--divider);flex-direction:column;min-width:0;display:flex}body[data-page=schedule-finance] .expense-record-row{border-bottom:1px solid var(--divider);grid-template-columns:43px 74px minmax(0,1fr) auto;align-items:center;gap:9px;min-width:0;min-height:39px;display:grid}body[data-page=schedule-finance] .expense-record-row time,body[data-page=schedule-finance] .expense-record-category{color:var(--text-muted);white-space:nowrap;font-size:11px}body[data-page=schedule-finance] .expense-record-category{text-overflow:ellipsis;overflow:hidden}body[data-page=schedule-finance] .expense-record-copy{align-items:baseline;gap:7px;min-width:0;display:flex}body[data-page=schedule-finance] .expense-record-copy strong{min-width:0;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}body[data-page=schedule-finance] .expense-record-copy small{min-width:0;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}body[data-page=schedule-finance] .expense-record-amount{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:14px;font-weight:800}body[data-page=schedule-finance] .expense-record-empty{color:var(--text-muted);text-align:center;padding:30px 0;font-size:13px}body[data-page=schedule-finance] .expense-record-footer{justify-content:space-between;align-items:center;gap:10px;min-height:32px;display:flex}body[data-page=schedule-finance] .expense-record-footer .expense-record-count{color:var(--text-muted);white-space:nowrap;font-size:11px}body[data-page=schedule-finance] .expense-record-pagination{color:var(--text-muted);align-items:center;gap:8px;font-size:11px;display:flex}body[data-page=schedule-finance] .expense-record-pagination button{border:1px solid var(--border-soft);background:var(--bg-card);width:23px;height:23px;color:var(--text-secondary);cursor:pointer;border-radius:6px;place-items:center;display:grid}body[data-page=schedule-finance] .expense-record-pagination button:hover:not(:disabled){color:var(--orange);border-color:#f2c49d}body[data-page=schedule-finance] .expense-record-pagination button:disabled{opacity:.35;cursor:default}body[data-page=schedule-finance] .expense-top-panel{border:1px solid var(--border-soft);border-radius:var(--radius-card);background:var(--bg-card);min-width:0;min-height:0;box-shadow:var(--shadow-card);flex-direction:column;grid-area:1/2;display:flex}body[data-page=schedule-finance] .expense-analysis-row{grid-area:2/1/auto/-1;grid-template-columns:minmax(0,1.18fr) minmax(0,1fr);gap:14px;min-width:0;display:grid}body[data-page=schedule-finance] .expense-analysis-card{border:1px solid var(--border-soft);border-radius:var(--radius-card);background:var(--bg-card);min-width:0;min-height:260px;box-shadow:var(--shadow-card);flex-direction:column;display:flex;overflow:hidden}body[data-page=schedule-finance] .expense-top-panel .expense-side-kanban,body[data-page=schedule-finance] .expense-analysis-card .expense-side-kanban{min-height:100%;box-shadow:none;background:0 0;border:0;border-radius:0;padding:15px 16px}body[data-page=schedule-finance] .expense-analysis-card .expense-kanban-head,body[data-page=schedule-finance] .expense-top-panel .expense-kanban-head{margin-bottom:10px}body[data-page=schedule-finance] .expense-analysis-card .expense-kanban-title,body[data-page=schedule-finance] .expense-top-panel .expense-kanban-title{color:var(--text-primary);font-size:17px}body[data-page=schedule-finance] .expense-analysis-card .expense-line-chart-wrap{height:220px;overflow:hidden}body[data-page=schedule-finance] .expense-analysis-card .expense-line-chart{width:100%;min-width:0;height:220px}body[data-page=schedule-finance] .expense-analysis-card .expense-line-path,body[data-page=schedule-finance] .expense-analysis-card .expense-line-node{stroke:var(--orange)}body[data-page=schedule-finance] .expense-analysis-card .expense-line-node:hover,body[data-page=schedule-finance] .expense-analysis-card .expense-line-node.selected{fill:var(--orange)}body[data-page=schedule-finance] .expense-analysis-card .expense-line-meta{margin-top:8px}body[data-page=schedule-finance] .expense-analysis-card .sf-category-list{padding:8px 0 0}body[data-page=schedule-finance] .expense-top-panel .expense-top-list{flex:auto;gap:5px}@media (width<=900px){body[data-page=schedule-finance] .expense-layout{grid-template-columns:minmax(0,1.2fr) minmax(280px,.9fr)}body[data-page=schedule-finance] .expense-summary-strip{gap:6px}body[data-page=schedule-finance] .expense-summary-strip strong{font-size:14px}}@media (width<=719px){body[data-page=schedule-finance] .expense-layout{grid-template-rows:auto;grid-template-columns:1fr}body[data-page=schedule-finance] .expense-main-col,body[data-page=schedule-finance] .expense-top-panel,body[data-page=schedule-finance] .expense-analysis-row{grid-area:auto}body[data-page=schedule-finance] .expense-analysis-row{grid-template-columns:1fr}body[data-page=schedule-finance] .expense-top-panel{min-height:260px}body[data-page=schedule-finance] .expense-summary-strip{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:10px}body[data-page=schedule-finance] .expense-summary-strip>div:nth-child(n+4){grid-row:2}body[data-page=schedule-finance] .expense-record-row{grid-template-columns:40px minmax(0,1fr) auto;gap:7px}body[data-page=schedule-finance] .expense-record-category{display:none}}.expense-kanban-head{justify-content:space-between;align-items:center;gap:.4rem;margin-bottom:.5rem;display:flex}.expense-kanban-title{color:var(--dark);margin:0;font-size:.85rem;font-weight:800}.expense-kanban-empty{color:var(--muted);text-align:center;padding:.6rem 0;font-size:.78rem}.expense-line-chart-wrap{width:100%;position:relative;overflow-x:auto}.expense-line-chart{width:100%;min-width:560px;height:190px;display:block}.expense-line-grid{stroke:var(--line);stroke-width:1px}.expense-line-y-label,.expense-line-x-label{fill:var(--muted);font-family:inherit;font-size:11px}.expense-line-y-label{text-anchor:end}.expense-line-x-label{text-anchor:middle}.expense-line-area{fill:#6366f11f}.expense-line-path{fill:none;stroke:#4f46e5;stroke-width:3px;stroke-linejoin:round;stroke-linecap:round}.expense-line-node{fill:#fff;stroke:#4f46e5;stroke-width:2px;cursor:pointer;transition:r .15s,fill .15s}.expense-line-node:hover,.expense-line-node.selected{fill:#4f46e5;r:4.8px}.expense-line-node.zero{fill:var(--surface-soft);stroke:#a5b4fc}.expense-line-node.zero.selected{fill:#a5b4fc}.expense-line-tooltip{top:var(--tooltip-top,8px);left:clamp(204px, var(--point-x), calc(100% - 204px));z-index:1;width:min(408px,100% - 1.5rem);min-height:146px;max-height:260px;box-shadow:var(--shadow);background:#fffffff7;border:1px solid #c7d2fe;border-radius:8px;padding:.8rem .9rem;position:absolute;overflow-y:auto;transform:translate(-50%)}.expense-line-tooltip-head{color:var(--text);justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.55rem;font-size:.86rem;display:flex}.expense-line-tooltip-close{width:1.35rem;height:1.35rem;color:var(--muted);background:0 0;border:0;border-radius:4px;flex-shrink:0;place-items:center;font-size:1.1rem;line-height:1;display:grid}.expense-line-tooltip-close:hover{background:var(--surface-soft);color:var(--text)}.expense-line-tooltip ul{flex-direction:column;gap:.45rem;list-style:none;display:flex}body[data-page=schedule-finance] .sf-trend-card .expense-line-tooltip,body[data-page=schedule-finance] .expense-analysis-card .expense-line-tooltip{--tooltip-top-clamped:clamp(6px, var(--tooltip-top,8px), calc(100% - 128px));top:var(--tooltip-top-clamped);min-height:0;max-height:calc(100% - var(--tooltip-top-clamped) - 6px);flex-direction:column;display:flex;overflow:hidden}body[data-page=schedule-finance] .sf-trend-card .expense-line-tooltip-head,body[data-page=schedule-finance] .expense-analysis-card .expense-line-tooltip-head{flex:none}body[data-page=schedule-finance] .sf-trend-card .expense-line-tooltip ul,body[data-page=schedule-finance] .expense-analysis-card .expense-line-tooltip ul{overscroll-behavior:contain;flex:auto;min-height:0;padding-right:2px;overflow-y:auto}.expense-line-tooltip li{color:var(--text);justify-content:space-between;gap:.8rem;font-size:.8rem;display:flex}.expense-line-tooltip li>span{min-width:0}.expense-line-tooltip li b{font-weight:700}.expense-line-tooltip li small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:.1rem;font-size:.7rem;display:block;overflow:hidden}.expense-line-tooltip li strong{color:var(--red);font-variant-numeric:tabular-nums;flex-shrink:0}.expense-line-tooltip-empty{color:var(--muted)!important;justify-content:center!important}.expense-line-meta{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;gap:1rem;margin-top:.25rem;font-size:.72rem;display:flex}.expense-pie-chart,.expense-cat-pie{flex-direction:column;align-items:center;gap:.4rem;display:flex}.expense-pie-ring,.expense-cat-pie-ring{width:80px;height:80px;position:relative}.expense-pie-segment,.expense-cat-pie-segment{border-radius:50%;position:absolute;inset:0}.expense-pie-center,.expense-cat-pie-center{background:var(--surface);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;inset:20px}.expense-pie-total,.expense-cat-pie-total{color:var(--text);font-size:.7rem;font-weight:800}.expense-pie-legend,.expense-cat-pie-legend{flex-direction:column;gap:.2rem;width:100%;display:flex}.expense-pie-legend-item,.expense-cat-pie-legend-item{align-items:center;gap:.3rem;font-size:.65rem;display:flex}.expense-pie-dot,.expense-cat-pie-dot{border-radius:2px;flex-shrink:0;width:8px;height:8px}.expense-pie-legend-name,.expense-cat-pie-legend-name{color:var(--text);flex:1}.expense-pie-legend-pct,.expense-cat-pie-legend-pct{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:700}.expense-cat-view-nav{gap:.2rem;display:flex}.expense-cat-view-btn{border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:4px;padding:.15rem .4rem;font-size:.65rem;font-weight:700;transition:all .15s}.expense-cat-view-btn.active{color:#fff;background:#4f46e5;border-color:#4f46e5}.expense-cat-bar-list{flex-direction:column;gap:.25rem;display:flex}.expense-cat-bar-item{align-items:center;gap:.3rem;display:flex}.expense-cat-bar-name{color:var(--text);flex-shrink:0;min-width:45px;font-size:.65rem;font-weight:600}.expense-cat-bar-track{background:var(--surface-soft);border-radius:3px;flex:1;height:10px;overflow:hidden}.expense-cat-bar-fill{background:linear-gradient(90deg,#4f46e5,#818cf8);border-radius:3px;height:100%;transition:width .3s}.expense-cat-bar-amount{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;min-width:30px;font-size:.65rem;font-weight:700}.expense-top-list{flex-direction:column;gap:.3rem;display:flex}.expense-top-nav{margin-bottom:0}.membership-page{max-width:100%;margin:0}body[data-page=schedule-finance][data-view=membership]{--bg:#faf7f0;--surface:#fffdf9;--surface-soft:#fdf7eb;--text:#372819;--muted:#8c7b68;--dark:#302011;--line:#e8dac5;--amber:#d98200;--red:#98291b}.membership-panel{border:1px solid var(--line);background:var(--surface);border-radius:18px;padding:1.2rem;box-shadow:0 8px 28px #5234120f}.membership-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.5rem;display:flex}.membership-title{color:var(--dark);letter-spacing:-.01em;align-items:center;gap:.65rem;margin:0;font-size:1.65rem;font-weight:900;display:flex}.membership-title-icon{color:#d98200;display:inline-flex}.membership-title-icon .membership-line-icon{stroke-width:2.3px;width:1.45rem;height:1.45rem}.membership-view-nav{border:1px solid var(--line);background:#fbf5ea;border-radius:999px;gap:0;padding:3px;display:flex}.membership-view-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:.4rem 1rem;font-size:.8rem;font-weight:700;transition:background .15s,color .15s}.membership-view-btn:hover:not(.active){color:var(--text)}.membership-view-btn.active{background:var(--dark);color:#fff}.membership-summary{grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1.5rem;display:grid}.membership-stat-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;align-items:center;gap:.75rem;padding:.85rem 1rem;display:flex}.membership-stat-icon{color:#53371b;background:#fff1d8;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:3.1rem;height:3.1rem;display:inline-flex}.membership-line-icon{width:1.45rem;height:1.45rem;display:block}.membership-stat-body{flex-direction:column;gap:.15rem;min-width:0;display:flex}.membership-stat-label{color:var(--muted);font-size:.72rem;font-weight:600}.membership-stat-value{color:var(--dark);font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:900;line-height:1.1}.membership-stat-price{color:var(--red)}.membership-stat-warning{color:var(--amber)}.membership-stat-warning .membership-stat-icon{color:var(--amber);background:#fff0d4}.membership-section-title{color:var(--dark);margin:0 0 .75rem;font-size:.95rem;font-weight:800}.membership-yearly-section{margin-bottom:1.5rem}.membership-yearly-cards{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem;display:grid}.membership-yearly-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;align-items:center;gap:.75rem;padding:.85rem 1rem;display:flex}.membership-yearly-icon{color:#53371b;background:#fff1d8;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:3rem;height:3rem;display:inline-flex}.membership-yearly-body{flex-direction:column;gap:.15rem;min-width:0;display:flex}.membership-yearly-info{align-items:baseline;gap:.4rem;display:flex}.membership-yearly-year{color:var(--dark);font-size:.95rem;font-weight:700}.membership-yearly-count{color:var(--muted);font-size:.72rem}.membership-yearly-total{color:var(--red);font-variant-numeric:tabular-nums;font-size:1.2rem;font-weight:900;line-height:1.1}.membership-list-section{margin-bottom:1rem}.membership-list-heading{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.membership-list-heading .membership-section-title{margin:0}.membership-table{--membership-columns:minmax(170px, 1.35fr) minmax(54px, .42fr) minmax(0, 1fr) 110px 140px;border:1px solid var(--line);background:var(--surface);border-radius:12px;overflow:hidden}.membership-table.is-local{--membership-columns:minmax(170px, 1.35fr) minmax(54px, .42fr) minmax(0, 1fr) 110px 72px 140px}.membership-pagination{justify-content:center;align-items:center;gap:.65rem;margin-top:.75rem;display:flex}.membership-list-heading .membership-pagination{flex-shrink:0;margin:0}.membership-page-btn{border:1px solid var(--line);background:var(--surface);width:1.8rem;height:1.8rem;color:var(--dark);cursor:pointer;border-radius:8px;place-items:center;font-size:1rem;line-height:1;display:inline-grid}.membership-page-btn:hover:not(:disabled),.membership-page-btn:focus-visible{border-color:var(--amber);color:var(--amber)}.membership-page-btn:disabled{cursor:default;opacity:.4}.membership-page-num{min-width:3.2rem;color:var(--muted);font-variant-numeric:tabular-nums;text-align:center;font-size:.75rem}.membership-renew-switch{border:1px solid var(--line);cursor:pointer;background:#e9e2d7;border-radius:999px;align-items:center;width:38px;height:22px;padding:0;transition:background .15s,border-color .15s;display:inline-flex;position:relative}.membership-renew-switch:after{content:"";background:#fffdf9;border-radius:50%;width:14px;height:14px;transition:left .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #5032192e}.membership-renew-switch.is-on{border-color:var(--amber);background:var(--amber)}.membership-renew-switch.is-on:after{left:19px}.membership-renew-switch:hover,.membership-renew-switch:focus-visible{border-color:var(--amber)}.membership-renew-switch:focus-visible{outline-offset:2px;outline:2px solid #d9820059}.membership-table-head{grid-template-columns:var(--membership-columns);background:var(--surface-soft);border-bottom:1px solid var(--line);gap:.75rem;padding:.7rem 1rem;display:grid}.membership-th-name,.membership-th-tag,.membership-th-note,.membership-th-price,.membership-th-renew,.membership-th-status{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.72rem;font-weight:700}.membership-th-price,.membership-th-renew,.membership-th-status{text-align:right}.membership-th-renew,.membership-row-renew{text-align:center}.membership-row-renew{justify-content:center;align-items:center;display:flex}.membership-row{grid-template-columns:var(--membership-columns);border-bottom:1px solid var(--line);align-items:center;gap:.75rem;padding:.85rem 1rem;transition:background .1s;display:grid}.membership-row:last-child{border-bottom:none}.membership-row:hover{background:var(--surface-soft)}.membership-row-tags{align-items:center;min-width:0;display:flex}.membership-row-main{flex-shrink:1;align-items:center;gap:.5rem;min-width:0;display:flex}.membership-row-copy{flex-direction:column;gap:.12rem;min-width:0;display:flex}.membership-row-logo{background:var(--surface-soft);border:1px solid var(--line);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:1.9rem;height:1.9rem;font-size:1.1rem;display:inline-flex}.membership-row-logo img{object-fit:contain;width:1.35rem;height:1.35rem;display:block}.membership-row-copy strong{color:var(--dark);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:.94rem;font-weight:700;overflow:hidden}.membership-name-link{color:#b45309;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;min-width:0;font-size:.94rem;font-weight:700;text-decoration:none;overflow:hidden}.membership-name-link:hover{text-decoration:underline}.membership-expired .membership-name-link{color:var(--muted)}.membership-row-note-mobile{display:none}.membership-row-note{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;min-width:0;font-size:.75rem;overflow:hidden}.membership-row-note:hover{color:var(--dark)}.membership-row-note-mobile{cursor:pointer}.membership-note-tooltip{z-index:2000;background:var(--dark);color:#fdfbf7;max-width:min(340px,100vw - 24px);box-shadow:var(--shadow);white-space:normal;overflow-wrap:anywhere;pointer-events:none;border-radius:8px;padding:.5rem .7rem;font-size:.72rem;line-height:1.55;position:fixed}.membership-note-tooltip.copied{background:#3f6212}.membership-row-price{text-align:right}.membership-row-price strong{color:var(--dark);font-variant-numeric:tabular-nums;font-size:.95rem;font-weight:800}.membership-row-status{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums;justify-content:flex-end;align-items:center;gap:.3rem;font-size:.78rem;display:flex}.membership-status-icon{flex-shrink:0;align-items:center;font-size:.85rem;display:inline-flex}.membership-status-icon .membership-line-icon{width:.9rem;height:.9rem}.membership-due-soon .membership-row-status{color:var(--amber);font-weight:700}.membership-due-soon .membership-row-logo{border-color:var(--amber);background:#fef3c7}.membership-expired .membership-row-status{color:#9ca3af}.membership-expired .membership-row-copy strong{color:var(--muted)}.membership-expired .membership-row-logo{opacity:.55;filter:grayscale(.4)}.membership-tag{border-radius:999px;flex-shrink:0;padding:.05rem .45rem;font-size:.62rem;font-weight:700;display:inline-block}@media (width<=560px){body[data-page=schedule-finance][data-view=membership] .app-shell{padding:.85rem .7rem 1.5rem}.membership-panel{box-shadow:none;background:0 0;border:none;border-radius:0;padding:0}.membership-header{flex-direction:column;align-items:flex-start;gap:.65rem;margin-bottom:1rem}.membership-title{gap:.4rem;font-size:1.2rem}.membership-title-icon .membership-line-icon{width:1.1rem;height:1.1rem}.membership-view-nav{width:100%;padding:2px}.membership-view-btn{flex:1;padding:.35rem .55rem;font-size:.72rem}.membership-summary{grid-template-columns:repeat(2,1fr);gap:.45rem;margin-bottom:1.15rem}.membership-stat-card{border-radius:10px;gap:.5rem;padding:.7rem .65rem}.membership-stat-icon{width:2.15rem;height:2.15rem}.membership-stat-icon .membership-line-icon{width:1.05rem;height:1.05rem}.membership-stat-label{font-size:.64rem}.membership-stat-value{font-size:1rem}.membership-yearly-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}.membership-yearly-card{text-align:center;border-radius:9px;padding:.65rem .4rem;display:block}.membership-yearly-icon{display:none}.membership-yearly-body{gap:.2rem}.membership-yearly-info,.membership-yearly-year,.membership-yearly-count,.membership-yearly-total{display:block}.membership-yearly-year{font-size:.72rem}.membership-yearly-count{font-size:.58rem}.membership-yearly-total{font-size:.78rem}.membership-yearly-section{margin-bottom:1.15rem}.membership-section-title{margin-bottom:.55rem;font-size:.88rem}.membership-table-head{display:none}.membership-table{background:0 0;border:none;border-radius:0;overflow:visible}.membership-row{border:1px solid var(--line);background:var(--surface);border-radius:10px;grid-template-columns:minmax(0,1fr) auto;gap:.28rem .65rem;margin-bottom:.35rem;padding:.65rem .7rem}.membership-row:last-child{border-bottom:1px solid var(--line)}.membership-row-main{grid-area:1/1/span 2;align-self:stretch;gap:.55rem}.membership-row-logo{border-radius:6px;width:2rem;height:2rem}.membership-row-logo img{width:1.5rem;height:1.5rem}.membership-row-copy{gap:.18rem}.membership-row-copy strong{font-size:.86rem}.membership-row-note-mobile{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.66rem;display:block;overflow:hidden}.membership-row-tags{grid-area:1/2;justify-self:end}.membership-tag{padding:.05rem .34rem;font-size:.62rem}.membership-row-note{display:none}.membership-row-price{text-align:left;grid-area:3/1}.membership-row-renew{grid-area:2/2;justify-self:end}.membership-renew-switch{width:32px;height:18px}.membership-renew-switch:after{width:12px;height:12px;top:2px;left:2px}.membership-renew-switch.is-on:after{left:17px}.membership-row-price strong{font-size:.84rem}.membership-row-status{white-space:nowrap;grid-area:3/2;justify-content:flex-start;gap:.22rem;font-size:.68rem}.membership-status-icon .membership-line-icon{width:.8rem;height:.8rem}}.expense-top-item{background:var(--surface-soft);border-radius:6px;align-items:center;gap:.3rem;padding:.3rem .4rem;display:flex}.expense-top-medal{flex-shrink:0;font-size:.9rem}.expense-top-info{flex-direction:column;flex:1;gap:.05rem;min-width:0;display:flex}.expense-top-sub{color:var(--text);font-size:.7rem;font-weight:600}.expense-top-note{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.62rem;overflow:hidden}.expense-top-right{flex-direction:column;align-items:flex-end;gap:.05rem;display:flex}.expense-top-amount{color:var(--red);font-variant-numeric:tabular-nums;font-size:.72rem;font-weight:800}.expense-top-date{color:var(--muted);font-size:.6rem}body[data-page=food-records] .app-shell{max-width:1100px}.food-calendar-layout{align-items:flex-start;gap:1.25rem;display:flex}.food-calendar-col{flex:1;min-width:0}.food-side-col{flex-direction:column;flex-shrink:0;gap:.75rem;width:260px;display:flex}.food-side-kanban{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:.65rem .75rem}.food-recent-kanban{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin-top:1rem;padding:.65rem .75rem}.food-recent-head{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.6rem;display:flex}.food-recent-title{color:var(--dark);margin:0;font-size:.85rem;font-weight:800}.food-recent-nav{align-items:center;gap:.35rem;display:flex}.food-recent-btn{border:1px solid var(--line);background:var(--surface);width:1.4rem;height:1.4rem;color:var(--muted);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;font-size:.65rem;transition:border-color .15s,color .15s;display:flex}.food-recent-btn:hover:not(:disabled){color:#c08a2f;border-color:#c08a2f}.food-recent-btn:disabled{opacity:.3;cursor:default}.food-recent-num{color:var(--muted);text-align:center;font-variant-numeric:tabular-nums;min-width:2.5rem;font-size:.68rem;font-weight:700}.food-recent-list{flex-direction:column;gap:.4rem;display:flex}.food-recent-card{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;padding:.45rem .6rem;transition:border-color .15s}.food-recent-card:hover{border-color:#c08a2f}.food-recent-top{justify-content:space-between;align-items:baseline;gap:.4rem;display:flex}.food-recent-name{color:var(--text);font-size:.82rem;font-weight:700}.food-recent-date{color:var(--muted);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.68rem}.food-recent-bot{flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.15rem;display:flex}.food-recent-meal{color:#fff;background:var(--red,#b5482f);letter-spacing:.03em;border-radius:999px;padding:.08rem .35rem;font-size:.65rem;font-weight:700}.food-recent-chef{color:var(--muted);font-size:.68rem}.food-recent-cost{color:var(--red);font-variant-numeric:tabular-nums;font-size:.68rem;font-weight:700}.food-recent-time{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:.68rem}.food-recent-empty{color:var(--muted);text-align:center;padding:.6rem 0;font-size:.78rem}.food-kanban-head{margin-bottom:.5rem}.food-kanban-title{color:var(--dark);margin:0;font-size:.85rem;font-weight:800}.food-kanban-empty{color:var(--muted);text-align:center;padding:.6rem 0;font-size:.78rem}.food-stats-grid{grid-template-columns:repeat(2,1fr);gap:.4rem;display:grid}.food-stat-item{background:var(--surface-soft);border-radius:6px;flex-direction:column;gap:.1rem;padding:.35rem .45rem;display:flex}.food-stat-label{color:var(--muted);font-size:.68rem;font-weight:600}.food-stat-value{color:var(--text);font-variant-numeric:tabular-nums;font-size:.9rem;font-weight:800}.food-top-list{flex-direction:column;gap:.35rem;display:flex}.food-top-item{align-items:center;gap:.4rem;display:flex}.food-top-name{color:var(--text);flex-shrink:0;min-width:55px;font-size:.78rem;font-weight:600}.food-top-bar{background:var(--surface-soft);border-radius:3px;flex:1;height:5px;overflow:hidden}.food-top-fill{background:linear-gradient(90deg,#c08a2f,#f7c974);border-radius:3px;height:100%;transition:width .3s}.food-top-count{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;min-width:26px;font-size:.68rem;font-weight:700}.food-chef-list{flex-direction:column;gap:.35rem;display:flex}.food-chef-item{background:var(--surface-soft);border-radius:6px;align-items:center;gap:.4rem;padding:.35rem .45rem;display:flex}.food-chef-medal{flex-shrink:0;font-size:.95rem}.food-chef-name{color:var(--text);flex:1;font-size:.8rem;font-weight:700}.food-chef-count{color:var(--muted);font-size:.68rem;font-weight:600}.food-chef-cost{color:var(--red);font-variant-numeric:tabular-nums;font-size:.78rem;font-weight:700}@media (width<=719px){.food-calendar-layout{flex-direction:column}.food-side-col{width:100%}}.foodmap-cards{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;margin-bottom:1.25rem;display:grid}.foodmap-card{border-radius:var(--radius);cursor:pointer;text-align:center;color:#fff;border:none;flex-direction:column;align-items:center;gap:.25rem;padding:1.4rem .75rem;transition:transform .2s,box-shadow .2s;display:flex;box-shadow:0 2px 8px #00000014}.foodmap-card:hover{transform:translateY(-3px);box-shadow:0 6px 20px #00000026}.foodmap-card.active{outline-offset:-6px;outline:3px solid #fff;box-shadow:0 4px 16px #0000002e}.foodmap-card[data-fm-area=校内]{background:linear-gradient(135deg,#6b8f7b,#8aaa96)}.foodmap-card[data-fm-area=校外]{background:linear-gradient(135deg,#b07d6a,#c49a87)}.foodmap-card[data-fm-area]:not([data-fm-area=校内]):not([data-fm-area=校外]){background:linear-gradient(135deg,#8b7e9b,#a69ab3)}.foodmap-card-label{text-shadow:0 1px 4px #00000026;font-size:1.15rem;font-weight:900}.foodmap-card-sub{opacity:.85;font-size:.78rem;font-weight:600}.foodmap-tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem;padding-bottom:.75rem;display:flex}.foodmap-tab{cursor:pointer;color:#fff;opacity:.7;border:none;border-radius:999px;align-items:center;gap:.35rem;padding:.5rem .95rem;font-size:.85rem;font-weight:700;transition:transform .15s,box-shadow .15s,opacity .15s;display:inline-flex;box-shadow:0 1px 4px #0000000f}.foodmap-tab:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 3px 10px #0000001f}.foodmap-tab.active{opacity:1;outline-offset:-4px;outline:2px solid #fff9;box-shadow:0 3px 12px #0000002e}.foodmap-tab-count{min-width:1.2rem;height:1.2rem;color:inherit;background:#fff3;border-radius:999px;justify-content:center;align-items:center;padding:0 .3rem;font-size:.7rem;font-weight:800;display:inline-flex}.foodmap-tab[data-fm-location]{background:#6b8f7b}.foodmap-tab[data-fm-location=小寨]{background:#b07d6a}.foodmap-tab[data-fm-location=钟楼]{background:#7a9bb5}.foodmap-tab[data-fm-location=大雁塔]{background:#c4956a}.foodmap-tab[data-fm-location=丁香]{background:#9b8ba3}.foodmap-tab[data-fm-location=海棠]{background:#c49488}.foodmap-tab[data-fm-location=竹园]{background:#7da0a8}.foodmap-tab[data-fm-location=综合楼]{background:#b5a87a}.food-region-header{border-bottom:2px solid var(--line);align-items:baseline;gap:.5rem;margin-bottom:.75rem;padding-bottom:.5rem;display:flex}.food-region-title{color:var(--dark);letter-spacing:.03em;font-size:1.1rem;font-weight:900}.food-region-count{color:var(--muted);font-size:.78rem;font-weight:700}.food-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.75rem;display:grid}.food-card{border-radius:var(--radius);background:var(--surface);border:none;border-left:4px solid #c49a87;padding:1rem 1.1rem;transition:transform .2s,box-shadow .2s;box-shadow:0 2px 8px #0000000f}.food-card:nth-child(6n+2){border-left-color:#7a9bb5}.food-card:nth-child(6n+3){border-left-color:#6b8f7b}.food-card:nth-child(6n+4){border-left-color:#c4956a}.food-card:nth-child(6n+5){border-left-color:#9b8ba3}.food-card:nth-child(6n+6){border-left-color:#b5a87a}.food-card:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0000001a}.food-card-top{justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.5rem;display:flex}.food-card-name{color:var(--dark);font-size:1rem;font-weight:800}.food-card-date{color:var(--muted);flex-shrink:0;font-size:.75rem;font-weight:700}.food-card-dishes{flex-wrap:wrap;gap:.35rem;margin-bottom:.4rem;display:flex}.food-tag{background:var(--surface-soft);border:1px solid var(--line);color:var(--dark);border-radius:999px;padding:.15rem .55rem;font-size:.78rem;font-weight:600;display:inline-block}.food-card-note{color:var(--muted);margin-top:.35rem;font-size:.82rem;line-height:1.55}body[data-page=relationship-timeline]{--rel-travel:#b45309;--rel-travel-soft:#fdf1dc;--rel-xian:#047857;--rel-xian-soft:#e3f5ec;--rel-quarrel:#b91c1c;--rel-quarrel-soft:#fdeaea;--rel-ink:#2f2924}body[data-page=relationship-timeline] .rel-wrap{animation:.25s fadeIn}body[data-page=relationship-timeline] .rel-hero{border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow);background:radial-gradient(120% 160% at 85% -20%,#f7c97447,#0000 55%),linear-gradient(135deg,#fdf6ea,#f6e9d2);justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.4rem;padding:1.4rem 1.5rem 1.2rem;display:flex;position:relative;overflow:hidden}body[data-page=relationship-timeline] .rel-hero:after{content:"💞";opacity:.16;pointer-events:none;font-size:3.4rem;position:absolute;top:.7rem;right:1.2rem;transform:rotate(-12deg)}body[data-page=relationship-timeline] .rel-hero-kicker{letter-spacing:.16em;color:#b45309;text-transform:uppercase;margin-bottom:.3rem;font-size:.68rem;font-weight:800;display:block}body[data-page=relationship-timeline] .rel-hero-heading{letter-spacing:.01em;color:var(--rel-ink);font-size:1.7rem;font-weight:900}body[data-page=relationship-timeline] .rel-hero-stat{background:#ffffffa6;border:1px solid #b4530924;border-radius:12px;flex-direction:column;align-items:center;gap:.1rem;padding:.45rem .9rem;display:flex}body[data-page=relationship-timeline] .rel-hero-stat-num{color:var(--rel-ink);font-size:1.5rem;font-weight:900;line-height:1}body[data-page=relationship-timeline] .rel-hero-stat-label{letter-spacing:.08em;color:#8a6a3f;font-size:.66rem;font-weight:700}body[data-page=relationship-timeline] .rel-filter{flex-wrap:wrap;gap:.55rem;margin-bottom:1.4rem;display:flex}body[data-page=relationship-timeline] .rel-filter-tab{border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:999px;align-items:center;gap:.42rem;padding:.5rem .95rem;font-size:.85rem;font-weight:700;transition:all .18s;display:inline-flex;box-shadow:0 1px 2px #27201a0a}body[data-page=relationship-timeline] .rel-filter-ico{font-size:.95rem;line-height:1}body[data-page=relationship-timeline] .rel-filter-tab:hover{color:var(--rel-ink);border-color:#c08a2f;transform:translateY(-1px)}body[data-page=relationship-timeline] .rel-filter-tab.active{background:var(--rel-ink);color:#f7c974;border-color:var(--rel-ink);transform:translateY(-1px);box-shadow:0 4px 12px #2f292438}body[data-page=relationship-timeline] .rel-filter-count{background:#ffffff8c;border-radius:999px;justify-content:center;align-items:center;min-width:1.35rem;height:1.35rem;padding:0 .35rem;font-size:.68rem;font-weight:800;display:inline-flex}body[data-page=relationship-timeline] .rel-filter-tab.active .rel-filter-count{color:#f7c974;background:#f7c97433}body[data-page=relationship-timeline] .timeline{padding-left:2.6rem;position:relative}body[data-page=relationship-timeline] .timeline:before{content:"";background:linear-gradient(#e9d5b5,#d9c09a 70%,#0000);border-radius:2px;width:2px;position:absolute;top:.4rem;bottom:.4rem;left:.62rem}body[data-page=relationship-timeline] .timeline-month{align-items:center;gap:.55rem;margin:1.9rem 0 1rem -.6rem;display:flex;position:relative}body[data-page=relationship-timeline] .timeline-month[hidden]{display:none}body[data-page=relationship-timeline] .timeline-month:first-child{margin-top:0}body[data-page=relationship-timeline] .timeline-month-dot{z-index:1;background:#c08a2f;border-radius:50%;width:.72rem;height:.72rem;margin-left:-.24rem;position:relative;box-shadow:0 0 0 4px #c08a2f2e}body[data-page=relationship-timeline] .timeline-month-text{letter-spacing:.06em;color:var(--rel-ink);background:#f2e6cf;border:1px solid #e4d2b2;border-radius:999px;align-items:center;gap:.4rem;padding:.24rem .8rem;font-size:.78rem;font-weight:900;display:inline-flex}body[data-page=relationship-timeline] .timeline-month-line{background:linear-gradient(90deg,#e2d0b0,#0000);flex:1;height:1px}body[data-page=relationship-timeline] .timeline-item{gap:1.1rem;padding-bottom:1.6rem;display:flex;position:relative}body[data-page=relationship-timeline] .timeline-item[hidden]{display:none}body[data-page=relationship-timeline] .timeline-item:last-child{padding-bottom:.2rem}body[data-page=relationship-timeline] .timeline-marker{flex-direction:column;align-items:center;width:1.7rem;display:flex;position:absolute;top:0;bottom:0;left:-2.6rem}body[data-page=relationship-timeline] .timeline-dot{z-index:2;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;margin-top:.42rem;font-size:.78rem;display:flex;position:relative}body[data-page=relationship-timeline] .timeline-dot-ico{filter:drop-shadow(0 1px 1px #00000026);line-height:1}body[data-page=relationship-timeline] .tl-dot-travel{background:linear-gradient(135deg,#f0b45c,#c07d1f);box-shadow:0 0 0 4px #c07d1f29}body[data-page=relationship-timeline] .tl-dot-xian{background:linear-gradient(135deg,#34b586,#0a7a55);box-shadow:0 0 0 4px #0a7a5529}body[data-page=relationship-timeline] .tl-dot-quarrel{background:linear-gradient(135deg,#ef6a6a,#b91c1c);box-shadow:0 0 0 4px #b91c1c26}body[data-page=relationship-timeline] .tl-dot-upcoming{background:linear-gradient(135deg,#f7c974,#c08a2f);box-shadow:0 0 0 4px #c08a2f2e}body[data-page=relationship-timeline] .timeline-line{z-index:1;background:linear-gradient(#e9d5b5,#dcc7a6);border-radius:2px;flex:1;width:2px;margin-top:.35rem;position:relative}body[data-page=relationship-timeline] .timeline-item:last-child .timeline-line{display:none}body[data-page=relationship-timeline] .timeline-card{border:1px solid var(--line);border-radius:calc(var(--radius) + 2px);background:var(--surface);min-width:0;box-shadow:var(--shadow);flex:1;padding:.95rem 1.1rem;transition:border-color .18s,transform .18s,box-shadow .18s}body[data-page=relationship-timeline] .timeline-item:hover .timeline-card{transform:translateY(-2px);box-shadow:0 6px 18px #27201a1a}body[data-page=relationship-timeline] .tl-cat-travel .timeline-card{border-left:4px solid var(--rel-travel);background:linear-gradient(#fffdf9,#fef7ec)}body[data-page=relationship-timeline] .tl-cat-xian .timeline-card{border-left:4px solid var(--rel-xian);background:linear-gradient(#fbfefc,#eff8f3)}body[data-page=relationship-timeline] .tl-cat-quarrel .timeline-card{border-left:4px solid var(--rel-quarrel);background:linear-gradient(#fffbfb,#fdf1f1)}body[data-page=relationship-timeline] .timeline-card-top{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.3rem;display:flex}body[data-page=relationship-timeline] .timeline-cat-tag{letter-spacing:.04em;border-radius:999px;align-items:center;gap:.3rem;padding:.16rem .6rem;font-size:.68rem;font-weight:800;display:inline-flex}body[data-page=relationship-timeline] .tl-tag-travel{background:var(--rel-travel-soft);color:var(--rel-travel)}body[data-page=relationship-timeline] .tl-tag-xian{background:var(--rel-xian-soft);color:var(--rel-xian)}body[data-page=relationship-timeline] .tl-tag-quarrel{background:var(--rel-quarrel-soft);color:var(--rel-quarrel)}body[data-page=relationship-timeline] .timeline-badge{border-radius:999px;flex-shrink:0;padding:.16rem .6rem;font-size:.68rem;font-weight:800}body[data-page=relationship-timeline] .tl-badge-upcoming{color:#b45309;background:#fef3c7}body[data-page=relationship-timeline] .tl-badge-done{color:#6b7280;background:#eef0f2}body[data-page=relationship-timeline] .tl-badge-quarrel{background:var(--rel-quarrel-soft);color:var(--rel-quarrel)}body[data-page=relationship-timeline] .timeline-card-title{color:var(--rel-ink);letter-spacing:.01em;margin:.05rem 0 .3rem;font-size:1.04rem;font-weight:900}body[data-page=relationship-timeline] .timeline-card-meta{flex-wrap:wrap;gap:.35rem .8rem;display:flex}body[data-page=relationship-timeline] .tl-meta{color:var(--muted);align-items:center;gap:.28rem;font-size:.78rem;font-weight:600;display:inline-flex}body[data-page=relationship-timeline] .timeline-card-note{color:var(--muted);border-top:1px dashed var(--line);margin-top:.55rem;padding-top:.55rem;font-size:.82rem;line-height:1.6}body[data-page=relationship-timeline] .q-header{cursor:pointer;user-select:none;justify-content:space-between;align-items:flex-start;gap:.6rem;display:flex}body[data-page=relationship-timeline] .q-header-main{flex:1;min-width:0}body[data-page=relationship-timeline] .q-chevron{color:var(--rel-quarrel);flex:none;margin-top:.2rem;font-size:.85rem;transition:transform .22s}body[data-page=relationship-timeline] .q-header.open .q-chevron{transform:rotate(180deg)}body[data-page=relationship-timeline] .q-body{margin-top:.6rem}body[data-page=relationship-timeline] .q-body.collapsed{display:none}body[data-page=relationship-timeline] .q-field{border-top:1px dashed #b91c1c24;padding:.6rem 0}body[data-page=relationship-timeline] .q-field:first-child{border-top:none;padding-top:.2rem}body[data-page=relationship-timeline] .q-field-label{letter-spacing:.04em;color:var(--rel-quarrel);background:var(--rel-quarrel-soft);border-radius:6px;margin-bottom:.3rem;padding:.08rem .5rem;font-size:.7rem;font-weight:800;display:inline-block}body[data-page=relationship-timeline] .q-field-text{color:var(--text);margin:0;font-size:.86rem;line-height:1.65}@media (width<=719px){:root{--sidebar-w:220px}body[data-page=relationship-timeline] .rel-hero{padding:1.1rem 1.1rem 1rem}body[data-page=relationship-timeline] .rel-hero-heading{font-size:1.4rem}body[data-page=relationship-timeline] .rel-hero:after{font-size:2.6rem;right:.8rem}body[data-page=relationship-timeline] .rel-filter-tab{padding:.45rem .8rem}.sidebar-toggle{z-index:15;color:#fff;cursor:pointer;-webkit-backface-visibility:hidden;background:#2f2924;border:none;border-radius:8px;justify-content:center;align-items:center;width:2.3rem;height:2.3rem;font-size:1.2rem;transition:opacity .2s;display:flex;position:fixed;top:.5rem;left:.5rem}.sidebar-toggle:hover{opacity:.85}.sidebar-backdrop{z-index:24;background:#00000073;display:none;position:fixed;inset:0}body.sidebar-open .sidebar-backdrop{display:block}.sidebar{z-index:25;-webkit-backface-visibility:hidden;will-change:transform;width:var(--sidebar-w);transition:transform .25s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}body.sidebar-open .sidebar{transform:translate(0)}.sidebar-close{color:#8c7d72;cursor:pointer;background:#fbf1eb;border:none;border-radius:6px;justify-content:center;align-items:center;width:1.8rem;height:1.8rem;font-size:.9rem;transition:background .15s;display:flex;position:absolute;top:.5rem;right:.5rem}.sidebar-close:hover{color:#744538;background:#f7e4da}.sidebar-brand{padding:1.5rem .9rem 1rem;position:relative}.sidebar-brand:after{margin-top:1rem}.sidebar-home-mark{width:1.8rem;height:1.8rem}.sidebar-title{font-size:1.25rem}.sidebar-nav{padding:.4rem .4rem .8rem}.sidebar-item{padding:.6rem;font-size:.82rem}.main-area{padding-top:.2rem}}body[data-page=follow-up]{--follow-accent:#6d2932;--follow-deep:#561c24;--follow-clay:#c7b7a3;--follow-cream:#f6e6cb;--follow-blush:#e3cdc1}body[data-page=follow-up] .follow-up-header{border-color:var(--follow-clay);background:var(--follow-cream)}body[data-page=follow-up] .follow-up-header h1,body[data-page=follow-up] .follow-up-section-heading h2,body[data-page=follow-up] .follow-up-article h1{color:var(--follow-deep)}body[data-page=follow-up] .follow-up-directory,body[data-page=follow-up] .follow-up-article{border-color:var(--follow-clay)}body[data-page=follow-up] .section-kicker{color:var(--follow-accent)}body[data-page=follow-up] .follow-up-link-list,body[data-page=follow-up] .follow-up-link,body[data-page=follow-up] .follow-up-article-header{border-color:var(--follow-blush)}body[data-page=follow-up] .follow-up-link-icon,body[data-page=follow-up] .follow-up-article-icon{background:var(--follow-blush)}body[data-page=follow-up] .follow-up-link:hover,body[data-page=follow-up] .article-back-link:hover{color:var(--follow-accent)}body[data-page=follow-up] .follow-up-link:hover{background:#e3cdc13d}body[data-page=home-archive]{--follow-accent:#6d2932;--follow-deep:#561c24;--follow-clay:#c7b7a3;--follow-cream:#f6e6cb;--follow-blush:#e3cdc1}.home-archive{gap:1rem;display:grid}.home-archive-header,.home-events-panel{border:1px solid var(--follow-clay,var(--line));border-radius:var(--radius);background:var(--follow-cream,var(--surface));box-shadow:var(--shadow)}.home-archive-header{padding:1.4rem 1.5rem}.home-archive-header h1{color:var(--follow-deep,var(--text));margin-top:.25rem;font-size:1.55rem;line-height:1.25}.home-archive-header>p:last-child{color:var(--muted);margin-top:.5rem}.home-view-tabs{grid-template-columns:repeat(4,1fr);gap:.5rem;display:grid}.home-view-tab{border:1px solid var(--follow-clay,var(--line));background:var(--surface);min-height:2.8rem;color:var(--text);cursor:pointer;border-radius:8px;font-size:.85rem;font-weight:800;transition:background .15s,color .15s,border-color .15s}.home-view-tab:hover,.home-view-tab.active{border-color:var(--follow-accent,var(--green));background:var(--follow-accent,var(--green));color:#fffaf3}.home-view[hidden]{display:none}.home-view>.follow-up-directory,.home-view>.home-events-panel{border-color:var(--follow-clay,var(--line))}.home-events-panel{padding:1.2rem 1.3rem}.home-events-list{border-top:1px solid var(--follow-blush,var(--line))}.home-event{border-bottom:1px solid var(--follow-blush,var(--line));grid-template-columns:7rem 1fr;gap:1rem;padding:.9rem .25rem;display:grid}.home-event time{color:var(--follow-accent,var(--muted));font-variant-numeric:tabular-nums;font-size:.82rem}.home-event strong{color:var(--follow-deep,var(--text))}.home-event p,.home-empty-state{color:var(--muted);margin-top:.25rem;font-size:.84rem}.home-event-image{border:1px solid var(--follow-blush,var(--line));object-fit:cover;border-radius:8px;width:min(100%,28rem);max-height:18rem;margin-top:.7rem;display:block}.home-event-image-trigger{cursor:zoom-in;background:0 0;border:none;border-radius:8px;width:fit-content;max-width:100%;margin:0;padding:0;display:block}.home-event-image-trigger:focus-visible{outline:2px solid var(--follow-accent,var(--green));outline-offset:3px}.home-image-modal[hidden]{display:none}.home-image-modal{z-index:50;place-items:center;padding:1.5rem;display:grid;position:fixed;inset:0}.home-image-modal-backdrop{cursor:zoom-out;background:#2f2924c7;position:absolute;inset:0}.home-image-modal-content{z-index:1;max-width:min(92vw,1100px);max-height:92vh;position:relative}.home-image-modal-content img{border-radius:10px;max-width:100%;max-height:88vh;display:block;box-shadow:0 12px 40px #0000004d}.home-image-modal-close{z-index:2;background:var(--follow-deep,#2f2924);color:#fff;cursor:pointer;border:1px solid #ffffff59;border-radius:999px;place-items:center;width:2rem;height:2rem;display:grid;position:absolute;top:-.75rem;right:-.75rem}.home-empty-state code{color:var(--follow-accent,var(--text));font-size:.8rem}body[data-page=home-archive] .follow-up-directory,body[data-page=home-archive] .follow-up-article{border-color:var(--follow-clay)}body[data-page=home-archive] .section-kicker{color:var(--follow-accent)}body[data-page=home-archive] .follow-up-link-list,body[data-page=home-archive] .follow-up-link{border-color:var(--follow-blush)}body[data-page=home-archive] .follow-up-link-icon{background:var(--follow-blush)}.tracker-page{gap:1rem;display:grid}.tracker-view-tabs{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:10px;align-self:start;gap:.35rem;padding:.3rem;display:inline-flex}.tracker-view-tab{min-height:2.35rem;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:.45rem .85rem;font-size:.86rem;font-weight:800;transition:background .15s,color .15s}.tracker-view-tab:hover{color:var(--text);background:var(--surface-soft)}.tracker-view-tab.active{background:var(--dark);color:#fff}.tracker-view-panel[hidden]{display:none}@media (width<=600px){.home-view-tabs{grid-template-columns:repeat(2,1fr)}.home-view-tab{font-size:.8rem}.home-event{grid-template-columns:1fr;gap:.15rem}}.foodmap-page{gap:1rem;display:grid}.foodmap-map-section{border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);background:var(--surface);box-shadow:var(--shadow);gap:.7rem;padding:.9rem;display:grid}.foodmap-map-toolbar{scrollbar-width:none;justify-content:space-between;align-items:center;gap:1rem;padding:.15rem .1rem .25rem;display:flex;overflow-x:auto}.foodmap-map-toolbar::-webkit-scrollbar{display:none}.foodmap-map-context{flex:auto;align-items:center;gap:.55rem;min-width:0;display:flex}.foodmap-map-control{flex:none;align-items:center;gap:.65rem;min-width:0;display:flex}.foodmap-map-control-city{flex:auto;min-width:0}.foodmap-city-switcher{flex-wrap:nowrap;align-items:center;gap:.45rem;display:flex}.foodmap-city-button{border:1px solid var(--line);background:var(--surface-soft);color:var(--muted);cursor:pointer;border-radius:999px;align-items:baseline;gap:.35rem;padding:.45rem .8rem;transition:border-color .16s,background .16s,color .16s,transform .16s;display:inline-flex}.foodmap-city-button:hover{border-color:var(--amber);color:var(--amber);transform:translateY(-1px)}.foodmap-city-button.active{border-color:var(--amber);color:var(--dark);background:linear-gradient(#fdf6ea,#f9ecd5);box-shadow:0 2px 6px #b453091f}.foodmap-city-button b{font-size:.86rem}.foodmap-city-button small{color:inherit;opacity:.72;font-size:.7rem}.foodmap-map-legend{color:var(--muted);white-space:nowrap;flex-wrap:nowrap;flex:none;align-items:center;gap:.65rem;font-size:.7rem;display:flex}.foodmap-map-legend span{align-items:center;gap:.28rem;display:inline-flex}.foodmap-legend-dot{border-radius:50%;width:.48rem;height:.48rem;display:inline-block}.foodmap-legend-dot.is-mapped{background:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.foodmap-legend-dot.is-pending{background:#d6c5ad;box-shadow:0 0 0 3px #d6c5ad26}.foodmap-map-filters{padding:.4rem 0 .6rem;position:relative}.foodmap-map-searchbar{align-items:center;gap:.6rem;display:flex}.foodmap-map-search-icon{color:var(--muted);pointer-events:none;font-size:.95rem;position:absolute;top:50%;left:.9rem;transform:translateY(-50%)}.foodmap-map-search-input{border:1px solid var(--line);background:var(--surface);min-height:2.6rem;color:var(--text);border-radius:999px;outline:none;flex:1;padding:.55rem 2.6rem .55rem 2.2rem}.foodmap-map-search-input:focus{border-color:var(--amber);box-shadow:0 0 0 3px #b453091f}.foodmap-filters-toggle{border:1px solid var(--line);background:var(--surface-soft);min-height:2.6rem;color:var(--text);cursor:pointer;border-radius:999px;align-items:center;gap:.35rem;padding:.45rem 1rem;font-size:.86rem;font-weight:700;display:inline-flex;position:relative}.foodmap-filters-toggle:hover{border-color:var(--amber);color:var(--amber)}.foodmap-filters-toggle[aria-expanded=true]{border-color:var(--amber);background:linear-gradient(#fdf6ea,#f9ecd5)}.foodmap-filters-toggle-icon{font-size:1rem;line-height:1}.foodmap-filters-badge{color:#fff;background:#c0392b;border-radius:999px;justify-content:center;align-items:center;min-width:1.2rem;height:1.2rem;padding:0 .35rem;font-size:.7rem;font-weight:800;display:inline-flex}.foodmap-filters-popover{z-index:30;border:1px solid var(--line);background:var(--surface);border-radius:12px;width:min(420px,100vw - 2rem);position:absolute;top:calc(100% + .35rem);right:0;box-shadow:0 12px 28px #27201a24}.foodmap-filters-popover-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:.7rem 1rem;display:flex}.foodmap-filters-popover-title{font-weight:800}.foodmap-filters-popover-close{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:1.05rem;line-height:1}.foodmap-filters-popover-body{gap:.85rem;padding:.85rem 1rem .4rem;display:grid}.foodmap-filters-group{gap:.45rem;display:grid}.foodmap-filters-group-label{color:var(--muted);font-size:.76rem;font-weight:800}.foodmap-filters-group-options{flex-wrap:wrap;gap:.4rem;display:flex}.foodmap-chip{border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:999px;align-items:center;padding:.32rem .7rem;font-size:.78rem;transition:border-color .16s,background .16s,color .16s;display:inline-flex}.foodmap-chip:hover{border-color:var(--amber);color:var(--amber)}.foodmap-chip.active{border-color:var(--amber);color:var(--dark);background:linear-gradient(#fdf6ea,#f9ecd5)}.foodmap-filters-popover-foot{border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding:.8rem 1rem;display:flex}.foodmap-filters-clear{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:.82rem}.foodmap-filters-clear:hover{color:var(--text)}.foodmap-filters-done{color:#fff;cursor:pointer;background:#c0392b;border:none;border-radius:999px;padding:.45rem 1.1rem;font-size:.86rem;font-weight:800}.foodmap-filters-done:hover{background:#a93226}.foodmap-map-panel{border:1px solid var(--line);background:#eef3f1;border-radius:10px;position:relative;overflow:hidden}.foodmap-map-heading{z-index:2;pointer-events:none;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex;position:absolute;top:.8rem;left:.85rem;right:.85rem}.foodmap-map-heading>.foodmap-map-reset{pointer-events:auto;margin-left:auto}.foodmap-map-heading>div,.foodmap-map-heading>span{backdrop-filter:blur(5px);background:#ffffffe0;border:1px solid #ffffffc7;border-radius:8px;padding:.45rem .65rem;box-shadow:0 2px 8px #27201a14}.foodmap-map-heading h2{color:var(--dark);margin-top:.1rem;font-size:1rem}.foodmap-map-heading>span{color:var(--muted);flex-shrink:0;margin-top:.1rem;font-size:.72rem}.foodmap-map-count-wrap{pointer-events:none;align-items:center;gap:.55rem;display:inline-flex}.foodmap-map-reset{pointer-events:auto;color:var(--amber);cursor:pointer;font:inherit;white-space:nowrap;background:#fff8ec;border:1px solid #b4530933;border-radius:999px;padding:.25rem .48rem;font-size:.68rem;font-weight:800;transition:background .16s,border-color .16s,transform .16s}.foodmap-map-reset:hover,.foodmap-map-reset:focus-visible{border-color:var(--amber);background:#fdf0d9;outline:none;transform:translateY(-1px)}.foodmap-map{background:linear-gradient(135deg,#ffffff4d,#d5e4dc73),repeating-linear-gradient(45deg,#6b8f7a14 0 1px,#0000 1px 18px);min-height:390px}.foodmap-poi-marker{--foodmap-marker-color:#3b82f6;--foodmap-marker-hover:#2563eb;--foodmap-marker-ring:#3b82f61f;--foodmap-marker-shadow:#1e40af47;background:var(--foodmap-marker-color);color:#fff;cursor:pointer;width:1.85rem;height:1.85rem;box-shadow:0 3px 10px var(--foodmap-marker-shadow), 0 0 0 3px var(--foodmap-marker-ring);border:2px solid #fffffff5;border-radius:50%;place-items:center;padding:0;transition:transform .16s,background .16s,box-shadow .16s;display:grid;position:relative}.foodmap-poi-marker:after{content:"";z-index:-1;background:var(--foodmap-marker-color);border-bottom:2px solid #fffffff5;border-right:2px solid #fffffff5;width:.56rem;height:.56rem;position:absolute;bottom:-.24rem;left:50%;transform:translate(-50%)rotate(45deg)}.foodmap-poi-marker:hover,.foodmap-poi-marker:focus-visible{background:var(--foodmap-marker-hover);box-shadow:0 4px 12px var(--foodmap-marker-shadow), 0 0 0 4px var(--foodmap-marker-ring);outline:none;transform:translateY(-2px)scale(1.08)}.foodmap-poi-marker:hover:after,.foodmap-poi-marker:focus-visible:after{background:var(--foodmap-marker-hover)}.foodmap-poi-marker.is-active{z-index:10;background:var(--amber);transform:translateY(-2px)scale(1.12);box-shadow:0 5px 14px #b4530957,0 0 0 4px #b4530929}.foodmap-poi-marker.is-active:after{background:var(--amber)}.foodmap-poi-marker-dot{z-index:1;filter:saturate(.8)brightness(1.15);place-items:center;width:1rem;height:1rem;font-size:.78rem;line-height:1;display:grid;position:relative}.foodmap-poi-marker-icon{width:.92rem;height:.92rem;display:block}.foodmap-poi-marker-label{max-width:min(16rem,100vw - 2rem);color:var(--dark);text-overflow:ellipsis;white-space:nowrap;pointer-events:none;background:#fffdf9f5;border:1px solid #b453093d;border-radius:7px;padding:.34rem .56rem;font-size:.72rem;font-weight:800;line-height:1.25;display:none;position:absolute;bottom:calc(100% + .58rem);left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 4px 14px #27201a29}.foodmap-poi-marker-label:after{content:"";background:#fffdf9f5;border-bottom:1px solid #b453093d;border-right:1px solid #b453093d;width:.48rem;height:.48rem;position:absolute;bottom:-.28rem;left:50%;transform:translate(-50%)rotate(45deg)}.foodmap-poi-marker.is-active .foodmap-poi-marker-label,.foodmap-poi-marker:hover .foodmap-poi-marker-label,.foodmap-poi-marker:focus-visible .foodmap-poi-marker-label{display:block}.foodmap-map-status{z-index:2;max-width:min(26rem,100% - 1.7rem);color:var(--muted);background:#ffffffe6;border:1px solid #fffc;border-radius:7px;padding:.4rem .65rem;font-size:.72rem;position:absolute;bottom:.8rem;right:.85rem;box-shadow:0 2px 8px #27201a14}.foodmap-map-status.is-empty{color:#8a6a3f}.foodmap-map-status.is-error{color:var(--red)}.foodmap-map-helper{color:var(--muted);background:#fffaf1;border:1px dashed #b4530938;border-radius:8px;align-items:center;gap:.55rem;padding:.55rem .7rem;font-size:.72rem;display:flex}.foodmap-map-helper-icon{background:var(--amber-bg);width:1.45rem;height:1.45rem;color:var(--amber);border-radius:50%;flex:none;place-items:center;font-size:1rem;font-weight:900;display:inline-grid}.foodmap-map-helper div{gap:.05rem;display:grid}.foodmap-map-helper strong{color:var(--dark);font-size:.74rem}.foodmap-city-content{border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);background:var(--surface);box-shadow:var(--shadow);gap:1rem;padding:1rem 1.1rem 1.2rem;display:grid}.foodmap-city-content[hidden]{display:none}.foodmap-layout{grid-template-columns:190px minmax(0,1fr);align-items:start;gap:1.2rem;display:grid}.foodmap-sidebar{gap:1rem;display:grid;position:sticky;top:1rem}.foodmap-search{gap:.35rem;display:grid}.foodmap-search span{color:var(--muted);font-size:.75rem;font-weight:800}.foodmap-search input{border:1px solid var(--line);background:var(--surface);width:100%;min-height:2.5rem;color:var(--text);border-radius:8px;outline:none;padding:.5rem .65rem}.foodmap-search input:focus{border-color:var(--amber);box-shadow:0 0 0 3px #b453091f}.foodmap-region-list{gap:.25rem;display:grid}.foodmap-region-button{cursor:pointer;text-align:left;width:100%;color:var(--text);background:0 0;border:1px solid #0000;border-left-width:3px;border-radius:8px;justify-content:space-between;align-items:center;gap:.5rem;padding:.72rem .8rem;transition:background .16s,border-color .16s,transform .16s;display:flex}.foodmap-region-button:hover{background:var(--surface-soft);border-color:var(--line)}.foodmap-region-button.active{border-left-color:var(--amber);border-color:var(--line);color:var(--dark);background:linear-gradient(#fdf6ea,#f9ecd5);box-shadow:0 2px 8px #27201a0f}.foodmap-region-button span:first-child{gap:.15rem;display:grid}.foodmap-region-button b{font-size:.92rem}.foodmap-region-button small{color:var(--muted);font-size:.72rem}.foodmap-region-button>span:last-child{color:var(--muted);font-size:1.25rem}.foodmap-results{border-left:1px solid var(--line);min-width:0;min-height:22rem;padding-left:1.2rem}.foodmap-results-heading{justify-content:space-between;align-items:end;gap:1rem;margin-bottom:.8rem;display:flex}.foodmap-results-heading h2{color:var(--dark);margin-top:.15rem}.foodmap-results-heading>span{color:var(--muted);font-size:.78rem}.foodmap-region-content[hidden],.foodmap-list-item[hidden],.foodmap-no-results[hidden]{display:none}.foodmap-list{gap:.7rem;margin-top:.9rem;display:grid}.foodmap-list[hidden],.foodmap-regions[hidden],.foodmap-list-item[hidden]{display:none}body[data-page=food-map] .foodmap-regions:not([hidden])+.foodmap-list{display:none!important}.foodmap-regions{flex-direction:column;gap:.7rem;margin-top:.9rem;display:flex}.foodmap-regions .foodmap-region-item{margin-top:0}.foodmap-score{border-radius:20px;align-items:center;gap:.3rem;padding:.18rem .5rem;font-size:.72rem;font-weight:700;line-height:1;display:inline-flex}.foodmap-score-num{font-size:.85rem}.foodmap-score-recommend{color:#2f6b4f;background:#3c8c5f24}.foodmap-score-tried{color:#9a6a14;background:#c8962824}.foodmap-score-no{color:#b03a32;background:#c8463c24}.foodmap-list-item{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-left:3px solid #0000;border-radius:10px;justify-content:space-between;align-items:start;gap:1rem;padding:.85rem 1rem;transition:border-color .16s,transform .16s,box-shadow .16s;display:flex;box-shadow:0 1px 2px #27201a0a}.foodmap-list-item:hover{border-left-color:var(--amber);transform:translateY(-1px);box-shadow:0 4px 12px #27201a14}.foodmap-region-item{background:linear-gradient(180deg, #fbf8f3, var(--surface));border-left:3px solid #79569a}.foodmap-region-item:hover{border-left-color:#5e3f7e}.foodmap-list-item:hover .foodmap-list-name{color:var(--amber)}.foodmap-list-main{flex:1;min-width:0}.foodmap-list-top{flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.25rem;display:flex}.foodmap-list-name{color:var(--dark);font-size:.98rem;font-weight:800}.foodmap-cat-tag{background:var(--amber-bg);color:var(--amber);border-radius:999px;padding:.1rem .5rem;font-size:.66rem;font-weight:800}.foodmap-status{border-radius:999px;align-items:center;gap:.2rem;padding:.1rem .5rem;font-size:.66rem;font-weight:800;display:inline-flex}.foodmap-status-label-short{display:none}.foodmap-status-recommend{color:var(--green);background:#dff5ea}.foodmap-status-wanna{color:#b45309;background:#fef3c7}.foodmap-status-no{color:var(--red);background:#fee2e2}.foodmap-status-tried{color:#6b7280;background:#f1f5f9}.foodmap-dishes,.foodmap-note{color:var(--muted);margin-top:.18rem;font-size:.8rem;line-height:1.5}.foodmap-dishes{color:var(--amber)}.foodmap-list-side{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.3rem;display:flex}.foodmap-coordinate-state{border-radius:999px;align-items:center;gap:.18rem;padding:.12rem .42rem;font-size:.64rem;font-weight:800;display:inline-flex}.foodmap-coordinate-state.is-mapped{background:var(--blue-bg);color:var(--blue)}.foodmap-coordinate-state.is-pending{color:#9a8061;background:#f4eee5}.foodmap-list-item time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.74rem}.foodmap-address{color:var(--muted);text-align:right;font-size:.72rem}.foodmap-no-results{color:var(--muted);margin-top:.8rem;font-size:.84rem}.foodmap-payload,.foodmap-modal[hidden]{display:none}.foodmap-modal{z-index:60;justify-content:center;align-items:center;padding:1.2rem;display:flex;position:fixed;inset:0}.foodmap-modal-backdrop{backdrop-filter:blur(2px);background:#1a140e80;animation:.2s fadeIn;position:absolute;inset:0}.foodmap-modal-panel{z-index:1;border-radius:calc(var(--radius) + 6px);background:var(--surface);width:100%;max-width:30rem;max-height:82vh;animation:.22s fadeIn,.22s foodmapPop;position:relative;overflow-y:auto;box-shadow:0 20px 60px #1a140e59}@keyframes foodmapPop{0%{opacity:.6;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.foodmap-modal-head{border-bottom:1px solid var(--line);border-radius:calc(var(--radius) + 6px) calc(var(--radius) + 6px) 0 0;background:linear-gradient(135deg,#fdf6ea,#f8ebd2);padding:1.15rem 1.3rem .95rem}.foodmap-modal-top{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.foodmap-modal-close{width:1.8rem;height:1.8rem;color:var(--muted);cursor:pointer;background:#2f292414;border:none;border-radius:50%;flex:none;font-size:.9rem;transition:background .15s,color .15s}.foodmap-modal-close:hover{color:var(--dark);background:#2f292429}.foodmap-modal-name{color:#2f2924;margin-bottom:.35rem;font-size:1.3rem;font-weight:900}.foodmap-modal-meta{flex-wrap:wrap;align-items:center;gap:.35rem .6rem;display:flex}.foodmap-modal-tag,.foodmap-modal-loc,.foodmap-modal-date,.foodmap-modal-map-state{color:var(--muted);align-items:center;font-size:.74rem;font-weight:700;display:inline-flex}.foodmap-modal-tag{background:var(--amber-bg);color:var(--amber);border-radius:999px;padding:.12rem .55rem}.foodmap-modal-map-state{color:var(--blue)}.foodmap-modal-status{border-radius:999px;align-items:center;gap:.25rem;padding:.14rem .6rem;font-size:.68rem;font-weight:800;display:inline-flex}.foodmap-modal-address{color:var(--muted);margin-top:.5rem;font-size:.78rem}.foodmap-modal-note{color:var(--text);border-top:1px dashed #b453092e;margin-top:.55rem;padding-top:.55rem;font-size:.84rem;line-height:1.6}.foodmap-modal-body{padding:1rem 1.3rem 1.3rem}.foodmap-modal-section-title{letter-spacing:.06em;color:var(--muted);margin-bottom:.6rem;font-size:.78rem;font-weight:900}.foodmap-dish-list{gap:.55rem;list-style:none;display:grid}.foodmap-dish{border:1px solid var(--line);background:var(--surface);border-radius:10px;justify-content:space-between;align-items:flex-start;gap:.8rem;padding:.65rem .85rem;display:flex}.foodmap-dish-main{flex:1;min-width:0}.foodmap-dish-name{color:var(--dark);font-size:.92rem;font-weight:800}.foodmap-dish-note{color:var(--muted);margin-top:.15rem;font-size:.8rem;line-height:1.5}.foodmap-dish-price{color:var(--amber);background:var(--amber-bg);border-radius:999px;flex-shrink:0;padding:.18rem .55rem;font-size:.84rem;font-weight:800}.foodmap-dish-empty{color:var(--muted);border-style:dashed;justify-content:center;font-size:.84rem}@media (width<=700px){.foodmap-map-toolbar{flex-direction:column;align-items:flex-start;gap:.55rem}.foodmap-map-legend{padding-left:.15rem}.foodmap-map-heading{flex-direction:column;align-items:stretch;gap:.35rem}.foodmap-map-heading>span{align-self:flex-start}.foodmap-map-count-wrap{flex-wrap:wrap;gap:.35rem}.foodmap-map{min-height:330px}.foodmap-poi-marker{width:1.7rem;height:1.7rem}.foodmap-poi-marker-label{max-width:min(12rem,100vw - 2rem);font-size:.68rem}.foodmap-layout{grid-template-columns:1fr;gap:1rem}.foodmap-city-content{padding:.8rem}.foodmap-sidebar{position:static}.foodmap-region-list{gap:.35rem;display:flex;overflow-x:auto}.foodmap-region-button{border-bottom:3px solid #0000;border-left:none;border-radius:7px;flex:none;min-width:7.5rem}.foodmap-region-button.active{border-bottom-color:var(--amber);border-left:none}.foodmap-results{border-left:none;padding-left:0}.foodmap-list-item{flex-direction:column}.foodmap-list-side{flex-flow:wrap;justify-content:space-between;align-items:center;width:100%}.foodmap-address{text-align:left}.foodmap-modal{align-items:flex-end;padding:.6rem}.foodmap-modal-panel{border-radius:calc(var(--radius) + 4px);max-width:none;max-height:90vh}.foodmap-modal-head{padding:1rem 1.05rem .85rem}.foodmap-modal-body{padding:.9rem 1.05rem 1.1rem}}body[data-page=food-map] .app-shell{max-width:min(1440px, calc(100vw - var(--sidebar-w) - 2rem))}.foodmap-workspace{grid-template-columns:minmax(0,1.1fr) minmax(360px,1.25fr) minmax(250px,.8fr);align-items:stretch;gap:.85rem;display:grid}.foodmap-map-section,.foodmap-city-panels,.foodmap-detail-panel{min-width:0;min-height:0}.foodmap-map-section{align-content:start}.foodmap-map-panel,.foodmap-city-content,.foodmap-detail-panel{height:clamp(560px,100vh - 12.5rem,760px)}.foodmap-map-panel{min-height:0}.foodmap-map{height:100%;min-height:0}.foodmap-city-panels{display:grid}.foodmap-city-content{grid-template-rows:auto minmax(0,1fr);min-height:0;overflow:hidden}.foodmap-directory-toolbar{gap:.6rem;min-width:0;display:grid}.foodmap-filters-group[hidden],.foodmap-filters-badge[hidden]{display:none}.foodmap-kind-switcher{background:#27201a0f;border-radius:9px;align-items:center;gap:2px;width:fit-content;padding:3px;display:inline-flex}.foodmap-kind-button{color:#6b5d4f;cursor:pointer;background:0 0;border:none;border-radius:7px;padding:.38rem .95rem;font-size:.82rem;font-weight:600;transition:background .16s,color .16s}.foodmap-kind-button:hover{color:#2f2924}.foodmap-kind-button.is-active{background:var(--amber);color:#fffaf1}.foodmap-view-switcher[hidden]{display:none}.foodmap-view-switcher{background:#27201a0f;border-radius:9px;align-items:center;gap:2px;width:fit-content;padding:3px;display:inline-flex}.foodmap-view-button{color:#6b5d4f;cursor:pointer;background:0 0;border:none;border-radius:7px;padding:.38rem .95rem;font-size:.82rem;font-weight:600;transition:background .16s,color .16s}.foodmap-view-button:hover{color:#2f2924}.foodmap-view-button.is-active{background:var(--surface);color:#2f2924;box-shadow:0 1px 2px #27201a1f}.foodmap-directory-toolbar .foodmap-search{align-items:center;gap:.55rem;display:flex}.foodmap-directory-toolbar .foodmap-search span{flex:none}.foodmap-directory-toolbar .foodmap-search input{min-width:0}.foodmap-directory-toolbar .foodmap-region-list{border-bottom:1px solid var(--line);scrollbar-width:thin;gap:.2rem;padding-bottom:.35rem;display:flex;overflow-x:auto}.foodmap-directory-toolbar .foodmap-region-button{background:0 0;border-color:#0000 #0000 #0000 currentColor;border-bottom-style:solid;border-bottom-width:2px;border-left-style:none;border-left-width:medium;border-radius:7px 7px 0 0;flex:none;width:auto;padding:.42rem .62rem}.foodmap-directory-toolbar .foodmap-region-button:hover{border-color:#0000;border-bottom-color:var(--line)}.foodmap-directory-toolbar .foodmap-region-button.active{border-color:#0000;border-bottom-color:var(--amber);background:var(--surface-soft);box-shadow:none}.foodmap-directory-toolbar .foodmap-region-button span:first-child{align-items:baseline;gap:.3rem;display:flex}.foodmap-directory-toolbar .foodmap-region-button>span:last-child{display:none}.foodmap-results{border-left:none;min-height:0;padding-left:0;overflow-y:auto}.foodmap-results-heading{z-index:1;background:var(--surface);padding:.2rem 0 .55rem;position:sticky;top:0}.foodmap-list{margin-top:.35rem}.foodmap-detail-panel{border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);background:var(--surface);box-shadow:var(--shadow);align-content:start;padding:1rem;display:grid;overflow-y:auto}.foodmap-detail-empty{background:#fffaf1;border:1px dashed #b453093d;border-radius:10px;align-content:start;gap:.55rem;min-height:100%;padding:1rem .85rem;display:grid}.foodmap-detail-empty-icon{background:var(--amber-bg);width:2.2rem;height:2.2rem;color:var(--amber);border-radius:50%;place-items:center;font-size:1.3rem;display:inline-grid}.foodmap-detail-empty h2{color:var(--dark);font-size:1.12rem}.foodmap-detail-empty>p:not(.section-kicker){color:var(--muted);font-size:.8rem;line-height:1.65}.foodmap-detail-empty-hint{color:var(--muted);border-top:1px solid #b4530924;align-items:center;gap:.35rem;margin-top:auto;padding-top:.85rem;font-size:.72rem;display:flex}.foodmap-detail-empty-hint b{color:var(--amber)}.foodmap-detail-content[hidden]{display:none}.foodmap-detail-content{align-content:start;gap:.65rem;display:grid}.foodmap-detail-top{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.foodmap-detail-status{border-radius:999px;align-items:center;gap:.25rem;padding:.22rem .55rem;font-size:.72rem;font-weight:800;display:inline-flex}.foodmap-detail-clear{border:1px solid var(--line);background:var(--surface);width:1.8rem;height:1.8rem;color:var(--muted);cursor:pointer;border-radius:50%;place-items:center;font-size:.78rem;display:inline-grid}.foodmap-detail-clear:hover,.foodmap-detail-clear:focus-visible{border-color:var(--amber);color:var(--amber);outline:none}.foodmap-detail-name{color:var(--dark);font-size:1.25rem;line-height:1.3}.foodmap-detail-meta{color:var(--muted);flex-wrap:wrap;gap:.35rem .55rem;font-size:.74rem;display:flex}.foodmap-detail-tag{background:var(--amber-bg);color:var(--amber);border-radius:999px;padding:.12rem .5rem;font-weight:800}.foodmap-detail-meta [data-fm-detail-map-state]{color:var(--blue)}.foodmap-detail-address,.foodmap-detail-note{color:var(--muted);font-size:.8rem;line-height:1.6}.foodmap-detail-note{border-top:1px dashed #b4530933;padding-top:.6rem}.foodmap-detail-section-title{border-top:1px solid var(--line);color:var(--dark);letter-spacing:.06em;padding-top:.75rem;font-size:.78rem;font-weight:900}.foodmap-list-item.is-active{border-color:#b453097a;border-left-color:var(--amber);background:#fffaf1;box-shadow:0 4px 14px #b453091a}@media (width<=1180px) and (width>=720px){.foodmap-workspace{grid-template-columns:minmax(0,1.2fr) minmax(320px,.9fr)}.foodmap-detail-panel{grid-column:1/-1;height:auto;min-height:220px}.foodmap-detail-empty{min-height:180px}}@media (width<=719px){body[data-page=food-map] .app-shell{max-width:none}.foodmap-workspace{display:block}.foodmap-map-section{margin-bottom:.85rem}.foodmap-map-panel{height:auto}.foodmap-map{height:330px}.foodmap-city-panels{display:block}.foodmap-city-content{height:auto;overflow:visible}.foodmap-directory-toolbar .foodmap-search{display:grid}.foodmap-results{overflow:visible}.foodmap-detail-panel{height:auto;min-height:220px;margin-top:.85rem}.foodmap-detail-empty{min-height:180px}}body[data-page=food-map]{--bg:#f7f2ea;--surface:#fffdf9;--surface-soft:#fbf7f0;--text:#3a2a1f;--muted:#806f62;--line:#e8ddd1;--dark:#3a2a1f;--green:#34764f;--green-bg:#e8f2e8;--blue:#557b8a;--blue-bg:#e5eff1;--amber:#9f5c18;--amber-bg:#f7e8cf;--red:#a84b3d;--red-bg:#f7e1dc;--shadow:0 8px 24px #4a301c14;--radius:9px}body[data-page=food-map] .app-shell{color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif}body[data-page=food-map] .foodmap-results-heading h2,body[data-page=food-map] .foodmap-detail-name,body[data-page=food-map] .foodmap-detail-empty h2{letter-spacing:.015em;font-family:Songti SC,STSong,Noto Serif SC,serif}body[data-page=food-map] .foodmap-workspace{background:var(--surface);border:1.5px solid #4a3324;border-radius:15px;gap:0;overflow:hidden;box-shadow:0 12px 30px #4a301c1a}body[data-page=food-map] .foodmap-map-section{border:0;border-right:1px solid var(--line);box-shadow:none;background:#fcf8f1;border-radius:0;padding:.75rem}body[data-page=food-map] .foodmap-city-panels{border-right:1px solid var(--line);background:var(--surface)}body[data-page=food-map] .foodmap-city-content{background:var(--surface);box-shadow:none;border:0;border-radius:0;padding:.8rem .85rem .9rem}body[data-page=food-map] .foodmap-map-toolbar{border-bottom:1px solid var(--line);padding:.05rem .05rem .65rem}body[data-page=food-map] .foodmap-map-legend{color:var(--muted)}body[data-page=food-map] .foodmap-city-button{background:var(--surface);color:var(--muted);border-radius:7px;padding:.38rem .65rem}body[data-page=food-map] .foodmap-city-button.active{border-color:var(--amber);background:var(--amber);color:#fffaf1;box-shadow:0 3px 8px #9f5c182e}body[data-page=food-map] .foodmap-city-button.active small{color:inherit}body[data-page=food-map] .foodmap-map-filters{padding:.55rem 0 .65rem}body[data-page=food-map] .foodmap-map-search-input,body[data-page=food-map] .foodmap-search input{border-color:var(--line);background:var(--surface);color:var(--text);border-radius:7px}body[data-page=food-map] .foodmap-map-search-input:focus,body[data-page=food-map] .foodmap-search input:focus{border-color:var(--amber);box-shadow:0 0 0 3px #9f5c181f}body[data-page=food-map] .foodmap-filters-toggle{background:var(--surface);color:var(--text);border-radius:7px}body[data-page=food-map] .foodmap-filters-toggle[aria-expanded=true]{background:var(--amber-bg)}body[data-page=food-map] .foodmap-map-panel{background:#f0f3ef;border-color:#d8c6b4;border-radius:10px}body[data-page=food-map] .foodmap-map-heading>div,body[data-page=food-map] .foodmap-map-heading>span{background:#fffdf9e6;border-color:#d9c7b3cc;border-radius:7px;box-shadow:0 3px 10px #4a301c14}body[data-page=food-map] .foodmap-map-reset{background:var(--amber-bg);color:var(--amber);border-color:#9f5c1840;border-radius:6px}body[data-page=food-map] .foodmap-poi-marker{background:var(--foodmap-marker-color,#c47b2e);box-shadow:0 3px 10px var(--foodmap-marker-shadow,#9f5c1840), 0 0 0 3px var(--foodmap-marker-ring,#c47b2e26);border-color:#fffdf9}body[data-page=food-map] .foodmap-poi-marker:after{background:var(--foodmap-marker-color,#c47b2e)}body[data-page=food-map] .foodmap-poi-marker:hover,body[data-page=food-map] .foodmap-poi-marker:focus-visible,body[data-page=food-map] .foodmap-poi-marker:hover:after,body[data-page=food-map] .foodmap-poi-marker:focus-visible:after{background:var(--foodmap-marker-hover,var(--amber))}body[data-page=food-map] .foodmap-poi-marker.is-active,body[data-page=food-map] .foodmap-poi-marker.is-active:after{background:var(--amber)}body[data-page=food-map] .foodmap-map-helper{background:#fffaf1;border-color:#dfcbb6;border-radius:7px}body[data-page=food-map] .foodmap-directory-toolbar{gap:.5rem}body[data-page=food-map] .foodmap-directory-toolbar .foodmap-search span{color:var(--muted);font-size:.7rem}body[data-page=food-map] .foodmap-directory-toolbar .foodmap-region-list{border-bottom-color:#dfcbb6}body[data-page=food-map] .foodmap-directory-toolbar .foodmap-region-button{color:var(--muted);border-radius:6px 6px 0 0}body[data-page=food-map] .foodmap-directory-toolbar .foodmap-region-button.active{color:var(--dark);background:var(--amber-bg)}body[data-page=food-map] .foodmap-directory-toolbar .foodmap-region-button small{color:var(--muted);font-size:.66rem}body[data-page=food-map] .foodmap-results-heading{background:var(--surface);padding:.25rem 0 .5rem}body[data-page=food-map] .foodmap-results-heading h2{color:var(--dark);font-size:1.05rem}body[data-page=food-map] .foodmap-list{gap:.45rem}body[data-page=food-map] .foodmap-list-item{border-color:var(--line);box-shadow:none;background:#fffefa;border-left:3px solid #0000;border-radius:7px;padding:.62rem .65rem .62rem .75rem}body[data-page=food-map] .foodmap-list-item:hover{border-color:#d9b992;border-left-color:var(--amber);background:#fffaf1;box-shadow:0 4px 12px #4a301c12}body[data-page=food-map] .foodmap-list-item.is-active{border-color:#d9b992;border-left-color:var(--amber);background:#fff5e5;box-shadow:0 4px 12px #9f5c181a}body[data-page=food-map] .foodmap-list-name{color:var(--dark);font-size:.9rem}body[data-page=food-map] .foodmap-cat-tag{color:var(--amber);background:#fff8eb;border:1px solid #e7caa4;border-radius:4px;padding:.08rem .38rem}body[data-page=food-map] .foodmap-status,body[data-page=food-map] .foodmap-detail-status{border-radius:4px;font-size:.64rem}body[data-page=food-map] .foodmap-dishes{color:#9b6b37}body[data-page=food-map] .foodmap-note,body[data-page=food-map] .foodmap-address,body[data-page=food-map] .foodmap-list-item time{color:var(--muted)}body[data-page=food-map] .foodmap-coordinate-state{border-radius:4px;font-size:.64rem}body[data-page=food-map] .foodmap-detail-panel{box-shadow:none;background:#fffaf2;border:0;border-radius:0;padding:.85rem}body[data-page=food-map] .foodmap-detail-empty{background:0 0;border:0;border-radius:0;padding:.75rem .65rem}body[data-page=food-map] .foodmap-detail-empty-icon{background:var(--amber-bg);border-radius:7px;width:2rem;height:2rem}body[data-page=food-map] .foodmap-detail-content{padding:.2rem .05rem}body[data-page=food-map] .foodmap-detail-name{color:var(--dark);font-size:1.2rem}body[data-page=food-map] .foodmap-detail-section-title{color:var(--dark)}body[data-page=food-map] .foodmap-detail-clear{background:0 0;border-radius:6px}body[data-page=food-map] .foodmap-dish{border-color:var(--line);background:#fffefa;border-radius:6px}body[data-page=food-map] .foodmap-detail-scrim{display:none}@media (width<=719px){body[data-page=food-map] .foodmap-workspace{box-shadow:none;background:0 0;border:0;border-radius:0;gap:.75rem;overflow:visible}body[data-page=food-map] .foodmap-map-section,body[data-page=food-map] .foodmap-city-panels,body[data-page=food-map] .foodmap-detail-panel{border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px}body[data-page=food-map] .foodmap-map-section{padding:.65rem}body[data-page=food-map] .foodmap-city-panels{background:var(--surface)}body[data-page=food-map] .foodmap-detail-panel{padding:.75rem}body[data-page=food-map] .foodmap-map-toolbar{flex-direction:row;align-items:center;gap:.45rem;overflow-x:auto}body[data-page=food-map] .foodmap-map-context{flex:none;gap:.45rem;min-width:0;overflow:visible}body[data-page=food-map] .foodmap-map-control{gap:.4rem;min-width:0}body[data-page=food-map] .foodmap-map-control-city{flex:none}body[data-page=food-map] .foodmap-city-switcher{flex-wrap:nowrap;flex:none;min-width:0;overflow:visible}body[data-page=food-map] .foodmap-city-button{flex:none;padding:.35rem .6rem}body[data-page=food-map] .foodmap-map-filters{padding:.45rem 0 .55rem}body[data-page=food-map] .foodmap-map-searchbar{gap:.4rem}body[data-page=food-map] .foodmap-map-search-input{min-width:0;min-height:2.35rem;padding-left:2rem;padding-right:.6rem}body[data-page=food-map] .foodmap-filters-toggle{flex:none;min-height:2.35rem;padding:.35rem .62rem}body[data-page=food-map] .foodmap-filters-toggle-label{display:none}body[data-page=food-map] .foodmap-map-heading h2{font-size:.92rem}body[data-page=food-map] .foodmap-map-heading>div,body[data-page=food-map] .foodmap-map-heading>span{padding:.35rem .5rem}body[data-page=food-map] .foodmap-map{height:clamp(290px,42vh,420px)}body[data-page=food-map] .foodmap-map-helper{font-size:.68rem}body[data-page=food-map] .foodmap-directory-toolbar .foodmap-region-list{margin-inline:-.2rem;padding-inline:.2rem}body[data-page=food-map] .foodmap-directory-toolbar .foodmap-region-button{min-width:6.5rem;padding:.48rem .55rem}body[data-page=food-map] .foodmap-results-heading{padding-top:.15rem}body[data-page=food-map] .foodmap-list-item{padding:.62rem .58rem .62rem .68rem}body[data-page=food-map] .foodmap-list-name{font-size:.88rem}body[data-page=food-map] .foodmap-detail-scrim{z-index:50;background:#2b1d145c;position:fixed;inset:0}body[data-page=food-map] .foodmap-detail-scrim[hidden]{display:none}body[data-page=food-map] .foodmap-detail-panel{z-index:51;background:#fffaf2;border:1px solid #d8c6b4;border-radius:14px;max-height:min(72vh,560px);margin-top:0;display:none;position:fixed;bottom:.65rem;left:.65rem;right:.65rem;overflow-y:auto;box-shadow:0 18px 50px #2b1d143d}body[data-page=food-map] .foodmap-detail-panel.has-selection{display:block}body[data-page=food-map] .foodmap-detail-content{gap:.55rem}body[data-page=food-map] .foodmap-detail-name{font-size:1.12rem}body[data-page=food-map] .foodmap-detail-section-title{padding-top:.65rem}}@media (width>=720px){body[data-page=food-map] .foodmap-workspace{grid-template-rows:minmax(0,auto);grid-template-columns:minmax(0,2fr) minmax(360px,1fr);align-items:stretch;gap:0}body[data-page=food-map] .foodmap-map-section{align-self:stretch;height:100%;min-height:0}body[data-page=food-map] .foodmap-right-column{background:var(--surface);grid-template-rows:auto minmax(0,1fr);align-self:stretch;min-width:0;height:100%;min-height:0;display:grid;overflow:hidden}body[data-page=food-map] .foodmap-detail-panel{border:0;border-bottom:1px solid var(--line);border-radius:0;grid-area:1;height:auto;min-height:0;padding:.85rem;overflow-y:auto}body[data-page=food-map] .foodmap-detail-empty{min-height:0}body[data-page=food-map] .foodmap-city-panels{border-right:0;grid-row:2;height:100%;min-height:0;overflow:hidden}body[data-page=food-map] .foodmap-city-content{border-radius:0;height:100%;min-height:0}}@media (width<=719px){body[data-page=food-map] .foodmap-right-column{background:0 0;height:auto;min-height:0;display:block;overflow:visible}body[data-page=food-map] .foodmap-map-section{height:auto}body[data-page=food-map] .foodmap-city-panels{border-right:1px solid var(--line);height:auto;overflow:visible}body[data-page=food-map] .foodmap-city-content{height:auto}}body[data-page=food-map] .foodmap-dishes-more{color:var(--muted);white-space:nowrap;font-size:.72rem}body[data-page=food-map] .foodmap-list-detail-hint{color:var(--amber);white-space:nowrap;font-size:.62rem;font-weight:800}body[data-page=food-map] .foodmap-modal-panel{border:1px solid #d8c6b4}body[data-page=food-map] .foodmap-detail-usage{background:#fffaf1;border:1px dashed #dfcbb6;border-radius:8px;grid-template-columns:2rem minmax(0,1fr);align-items:start;gap:.55rem;padding:.7rem;display:grid}body[data-page=food-map] .foodmap-detail-usage-icon{background:var(--amber-bg);width:2rem;height:2rem;color:var(--amber);border-radius:50%;place-items:center;font-size:1.15rem;display:inline-grid}body[data-page=food-map] .foodmap-detail-usage div{gap:.15rem;display:grid}body[data-page=food-map] .foodmap-detail-usage strong{color:var(--dark);font-size:.75rem}body[data-page=food-map] .foodmap-detail-usage span:not(.foodmap-detail-usage-icon){color:var(--muted);font-size:.7rem;line-height:1.55}body[data-page=food-map] .foodmap-detail-empty-copy{color:var(--muted);font-size:.8rem;line-height:1.6;display:block}body[data-page=food-map] .foodmap-detail-empty-copy strong{color:var(--dark);font-size:inherit;margin-right:.35em;font-weight:800}@media (width>=720px){body[data-page=food-map] .app-shell{flex-direction:column;min-height:100%;padding:1rem;display:flex}body[data-page=food-map] .foodmap-page{flex-direction:column;flex:auto;justify-content:center;min-height:0;display:flex}body[data-page=food-map] .foodmap-map-panel{height:clamp(560px,100vh - 12rem,740px)}}@media (width<=719px){body[data-page=food-map] .foodmap-list-detail-hint{font-size:.6rem}}body[data-page=food-map] .foodmap-detail-empty{gap:.35rem;padding:.7rem .6rem}body[data-page=food-map] .foodmap-detail-empty-copy{margin:0;line-height:1.45}body[data-page=food-map] .foodmap-detail-empty-hint{margin-top:.1rem;padding-top:.45rem;font-size:.68rem}body[data-page=food-map] .foodmap-detail-usage-copy{color:var(--muted);margin:0;font-size:.7rem;line-height:1.5}body[data-page=food-map] .foodmap-directory-toolbar .foodmap-search{display:block}body[data-page=food-map] .foodmap-list-item{border-left-color:var(--amber);display:block}body[data-page=food-map] .foodmap-list-top{justify-content:space-between;align-items:flex-start;gap:.65rem;margin-bottom:0}body[data-page=food-map] .foodmap-list-title{flex-wrap:wrap;align-items:center;gap:.35rem;min-width:0;display:flex}body[data-page=food-map] .foodmap-list-title .foodmap-list-name{flex:0 auto}body[data-page=food-map] .foodmap-list-top>.foodmap-coordinate-state{flex:none}body[data-page=food-map] .foodmap-dishes{margin-top:.4rem;line-height:1.45}body[data-page=food-map] .foodmap-list-meta{border-top:1px dashed var(--line);flex-wrap:wrap;align-items:flex-start;gap:.3rem .75rem;margin-top:.6rem;padding-top:.5rem;display:flex}body[data-page=food-map] .foodmap-list-meta .foodmap-address{text-align:left;flex:12rem;min-width:0}body[data-page=food-map] .foodmap-list-meta time,body[data-page=food-map] .foodmap-list-detail-hint{flex:none}body[data-page=food-map] .foodmap-list-detail-hint{color:var(--amber);white-space:nowrap;margin-left:auto;font-size:.66rem;font-weight:800}@media (width<=719px){body[data-page=food-map] .foodmap-list-meta{grid-template-columns:minmax(0,1fr) auto;display:grid}body[data-page=food-map] .foodmap-list-meta .foodmap-address{grid-column:1/-1}body[data-page=food-map] .foodmap-list-meta time{grid-column:2}body[data-page=food-map] .foodmap-list-detail-hint{grid-area:2/2}}body[data-page=food-map] .foodmap-directory-toolbar .foodmap-search{position:relative}body[data-page=food-map] .foodmap-directory-search-icon{z-index:1;color:var(--muted);pointer-events:none;font-size:1rem;line-height:1;position:absolute;top:50%;left:.7rem;transform:translateY(-50%)}body[data-page=food-map] .foodmap-directory-toolbar .foodmap-search input{min-height:2.35rem;padding:.45rem .6rem .45rem 2rem;font-size:.84rem}body[data-page=food-map] .foodmap-directory-toolbar .foodmap-region-list{gap:.1rem;padding-bottom:.2rem}body[data-page=food-map] .foodmap-directory-toolbar .foodmap-region-button{min-height:2.75rem;padding:.34rem .6rem}body[data-page=food-map] .foodmap-directory-toolbar .foodmap-region-button b{font-size:.76rem}body[data-page=food-map] .foodmap-directory-toolbar .foodmap-region-button small{font-size:.62rem}body[data-page=food-map] .foodmap-results-heading h2{font-size:.98rem}body[data-page=food-map] .foodmap-results-heading>span{font-size:.7rem}@media (width<=719px){body[data-page=food-map] .foodmap-directory-toolbar .foodmap-region-button{min-width:6.5rem}}body[data-page=food-map] .foodmap-list-item{transition:border-color .16s,background .16s,box-shadow .16s,transform .16s}body[data-page=food-map] .foodmap-list-item:focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-color:#d9b992;border-left-color:var(--amber);background:#fffaf1;transform:translateY(-1px);box-shadow:0 4px 12px #9f5c181f}body[data-page=food-map] .foodmap-list-item:active{transform:translateY(0);box-shadow:0 1px 4px #4a301c14}body[data-page=food-map] .foodmap-list-item:hover .foodmap-list-detail-hint,body[data-page=food-map] .foodmap-list-item:focus-visible .foodmap-list-detail-hint{color:var(--dark);transform:translate(2px)}body[data-page=food-map] .foodmap-list-detail-hint{transition:color .16s,transform .16s;display:inline-flex}body[data-page=food-map] .foodmap-directory-toolbar .foodmap-region-button:focus-visible,body[data-page=food-map] .foodmap-city-button:focus-visible,body[data-page=food-map] .foodmap-filters-toggle:focus-visible,body[data-page=food-map] .foodmap-map-reset:focus-visible{outline:2px solid var(--amber);outline-offset:2px}body[data-page=food-map] .foodmap-directory-toolbar .foodmap-region-button:active,body[data-page=food-map] .foodmap-city-button:active,body[data-page=food-map] .foodmap-filters-toggle:active{transform:translateY(1px)}body[data-page=food-map] .foodmap-detail-clear:focus-visible,body[data-page=food-map] .foodmap-modal-close:focus-visible{outline:2px solid var(--amber);outline-offset:2px}@media (width>=720px){body[data-page=food-map] .foodmap-right-column{height:100%;display:block;overflow:hidden}body[data-page=food-map] .foodmap-city-panels{height:100%;min-height:0;overflow:hidden}}body[data-page=food-map] .foodmap-list-meta{flex-wrap:nowrap;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.45rem;display:grid}body[data-page=food-map] .foodmap-list-meta .foodmap-address{text-align:left;text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}body[data-page=food-map] .foodmap-list-meta time,body[data-page=food-map] .foodmap-list-detail-hint{white-space:nowrap}body[data-page=food-map] .foodmap-list-detail-hint{margin-left:0}@media (width<=719px){body[data-page=food-map] .foodmap-list-meta{grid-template-columns:minmax(0,1fr) auto auto;gap:.25rem}body[data-page=food-map] .foodmap-list-meta time,body[data-page=food-map] .foodmap-list-detail-hint{font-size:.62rem}}body[data-page=food-map] .foodmap-directory-toolbar{position:relative}body[data-page=food-map] .foodmap-directory-search-row{align-items:center;gap:.45rem;display:flex}body[data-page=food-map] .foodmap-directory-search-row .foodmap-search{flex:auto;min-width:0}body[data-page=food-map] .foodmap-directory-search-row .foodmap-filters-toggle{border-radius:8px;flex:none;min-height:2.35rem;padding:.35rem .7rem}body[data-page=food-map] .foodmap-search-submit{border:1px solid var(--line);background:var(--surface-soft);width:2.35rem;height:2.35rem;color:var(--text);cursor:pointer;border-radius:8px;flex:none;place-items:center;padding:0;font-size:1rem;line-height:1;transition:border-color .16s,background .16s,transform .16s;display:inline-grid}body[data-page=food-map] .foodmap-search-submit:hover,body[data-page=food-map] .foodmap-search-submit:focus-visible{border-color:var(--amber);background:var(--amber-bg);outline:none}body[data-page=food-map] .foodmap-search-submit:active{transform:translateY(1px)}body[data-page=food-map] .foodmap-results{grid-template-rows:auto minmax(0,1fr) auto;min-height:0;display:grid;overflow:hidden}body[data-page=food-map] .foodmap-results-meta{border-bottom:1px solid var(--line);min-height:1.8rem;color:var(--muted);justify-content:space-between;align-items:center;gap:.75rem;padding:.35rem 0;font-size:.68rem;display:flex}body[data-page=food-map] .foodmap-results-meta [data-fm-results-count]{color:var(--amber);font-weight:800}body[data-page=food-map] .foodmap-list{align-content:start;min-height:0;margin-top:.45rem;padding:0 .2rem .1rem 0;overflow-y:auto}body[data-page=food-map] .foodmap-no-results{color:var(--muted);place-self:center;margin:1rem 0;font-size:.78rem}body[data-page=food-map] .foodmap-pagination{border-top:1px solid var(--line);background:var(--surface);justify-content:center;align-items:center;gap:.3rem;min-height:2.35rem;padding-top:.5rem;display:flex}body[data-page=food-map] .foodmap-page-button{border:1px solid var(--line);background:var(--surface);min-width:1.8rem;min-height:1.8rem;color:var(--muted);cursor:pointer;border-radius:6px;padding:.2rem .45rem;font-size:.68rem;line-height:1}body[data-page=food-map] .foodmap-page-button:hover:not(:disabled),body[data-page=food-map] .foodmap-page-button.is-current{border-color:var(--amber);color:var(--amber);background:#fdf1dd}body[data-page=food-map] .foodmap-page-button.is-current{font-weight:800}body[data-page=food-map] .foodmap-page-button:disabled{cursor:not-allowed;opacity:.42}body[data-page=food-map] .foodmap-list-item.is-directory-hidden{display:none!important}body[data-page=food-map] .foodmap-list-top{flex-wrap:nowrap;align-items:center;gap:.5rem;min-width:0;display:flex}body[data-page=food-map] .foodmap-list-title{flex-wrap:nowrap;flex:auto;align-items:center;gap:.35rem;min-width:0;display:flex;overflow:hidden}body[data-page=food-map] .foodmap-list-item[data-fm-kind=study] .foodmap-list-title{flex-wrap:wrap;overflow:visible}body[data-page=food-map] .foodmap-list-title .foodmap-list-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;max-width:12em;overflow:hidden}body[data-page=food-map] .foodmap-list-title .foodmap-cat-tag,body[data-page=food-map] .foodmap-list-title .foodmap-status,body[data-page=food-map] .foodmap-list-top>.foodmap-coordinate-state{white-space:nowrap;flex:none}@media (width<=719px){body[data-page=food-map] .foodmap-results{display:block;overflow:visible}body[data-page=food-map] .foodmap-list{padding-right:0;overflow:visible}body[data-page=food-map] .foodmap-pagination{margin-top:.75rem;padding-bottom:.2rem}body[data-page=food-map] .foodmap-filters-popover{width:min(360px,100vw - 2rem);right:0}body[data-page=food-map] .foodmap-city-panels,body[data-page=food-map] .foodmap-city-content,body[data-page=food-map] .foodmap-results,body[data-page=food-map] .foodmap-list{width:100%;min-width:0;max-width:100%}body[data-page=food-map] .foodmap-list-item{width:100%;min-width:0;max-width:100%;overflow:hidden}body[data-page=food-map] .foodmap-list-top{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:.35rem .45rem;display:grid}body[data-page=food-map] .foodmap-list-title{flex:none;grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.3rem;min-width:0;max-width:100%;display:grid;overflow:visible}body[data-page=food-map] .foodmap-list-title .foodmap-list-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;overflow:hidden}body[data-page=food-map] .foodmap-list-title .foodmap-cat-tag,body[data-page=food-map] .foodmap-list-title .foodmap-status{white-space:nowrap}body[data-page=food-map] .foodmap-status-label-full{display:none}body[data-page=food-map] .foodmap-status-label-short{display:inline}body[data-page=food-map] .foodmap-list-top>.foodmap-coordinate-state{display:none}body[data-page=food-map] .foodmap-dishes{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}body[data-page=food-map] .foodmap-list-meta{grid-template-columns:minmax(0,1fr) auto;gap:.25rem .5rem}body[data-page=food-map] .foodmap-list-meta .foodmap-address{grid-column:1/-1;max-width:100%}body[data-page=food-map] .foodmap-list-meta time{grid-area:2/1;min-width:0}body[data-page=food-map] .foodmap-list-detail-hint{grid-area:2/2}body[data-page=food-map] .foodmap-city-panels{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:12px}body[data-page=food-map] .foodmap-city-content{border-radius:12px}}body[data-page=couple-album]{--album-bg:#0d0c0b;--album-fg:#26221e;--album-muted:#8c8579;--album-accent:#6b6258;--album-rule:#26221e1a;--album-paper:#faf8f4;--album-paper-off:#f7f5f0;--album-shadow:0 22px 60px #26221e1a;--album-shadow-soft:0 6px 18px #26221e0f;--album-serif:Georgia, "Songti SC", "STSong", "SimSun", serif;--album-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;color:#e8e2d6;background:#0d0c0b}body[data-page=couple-album] .app-shell{width:100%;max-width:none;margin:0;padding:0}body[data-page=couple-album] .main-area{flex-direction:column;display:flex}body[data-page=couple-album] .app-shell{flex-direction:column;flex:1 0 auto;display:flex}body[data-page=couple-album] [data-album-root]{outline:none;flex-direction:column;flex:1 0 auto;display:flex}body[data-page=couple-album] [data-album-view-section]:not([hidden]){flex-direction:column;flex:1 0 auto;display:flex}body[data-page=couple-album] [data-album-view-section=flip]:not([hidden]){flex:auto;min-height:0}body[data-page=couple-album] .album-tip{z-index:90;color:#26221e;max-width:300px;font-family:var(--album-sans);pointer-events:none;background:#f3efe4;border-radius:4px;flex-direction:column;gap:.3rem;padding:.55rem .8rem;display:flex;position:fixed;box-shadow:0 12px 28px #00000080}body[data-page=couple-album] .album-tip[hidden]{display:none}body[data-page=couple-album] .album-tip-title{letter-spacing:.14em;font-size:.7rem;font-weight:700}body[data-page=couple-album] .album-tip-sub{letter-spacing:.06em;color:#6d675c;font-size:.62rem;line-height:1.8}body[data-page=couple-album] .album-petstage{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1.1rem;padding:2rem 1.5rem;display:flex}body[data-page=couple-album] .album-petstage-kicker{letter-spacing:.34em;color:#8c8577;font-size:.6rem}body[data-page=couple-album] .album-petstage-title{font-family:var(--album-serif);letter-spacing:.45em;text-indent:.45em;color:#ece5d7;margin:0;font-size:2.8rem}body[data-page=couple-album] .album-petstage-sub{letter-spacing:.24em;color:#8c8577;margin:0;font-size:.74rem}body[data-page=couple-album] .album-petstage-back{color:#b5ad9c;letter-spacing:.22em;cursor:pointer;background:0 0;border:1px solid #ece5d740;border-radius:2px;margin-top:.8rem;padding:.45rem 1.1rem;font-family:inherit;font-size:.62rem;transition:border-color .2s,color .2s}body[data-page=couple-album] .album-petstage-back:hover{color:#ece5d7;border-color:#ece5d7}body[data-page=couple-album] .album-flip{gap:2rem;padding:1.6rem 0 2.5rem;display:grid;position:relative}body[data-page=couple-album] .album-sheet{aspect-ratio:3/2;background:var(--album-paper);width:100%;max-width:1200px;box-shadow:var(--album-shadow);border-radius:4px;margin:0 auto;position:relative;overflow:visible}body[data-page=couple-album] .album-sheet[hidden]{display:none}body[data-page=couple-album] .album-masthead{z-index:2;border-bottom:1px solid var(--album-rule);color:var(--album-muted);font-family:var(--album-sans);letter-spacing:.18em;justify-content:space-between;padding-bottom:.45rem;font-size:.58rem;display:flex;position:absolute;top:2.8%;left:5%;right:5%}body[data-page=couple-album] .album-open{grid-template-rows:minmax(0,1fr);grid-template-columns:1fr 1px 1fr;height:100%;min-height:100%;display:grid;position:relative}body[data-page=couple-album] .album-page{flex-direction:column;height:100%;padding:5% 6% 5.5%;display:flex;position:relative;overflow:visible}body[data-page=couple-album] .album-page-left{background:var(--album-paper)}body[data-page=couple-album] .album-page-right{background:var(--album-paper-off)}body[data-page=couple-album] .album-spine{background:linear-gradient(#0000,#26221e1f 12% 88%,#0000);position:relative}body[data-page=couple-album] .album-spine:before{content:"";background:linear-gradient(90deg,#0000000a,#0000 40% 60%,#0000000a);position:absolute;inset:0}body[data-page=couple-album] .album-page-visual{flex:1;justify-content:center;align-items:center;min-height:260px;display:flex;position:relative}body[data-page=couple-album] .album-page-photos{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%;height:100%;display:grid}body[data-page=couple-album] .album-page-photos.layout-one-full{grid-template-columns:1fr}body[data-page=couple-album] .album-page-photos.layout-two-split{grid-template-columns:repeat(2,minmax(0,1fr))}body[data-page=couple-album] .album-page-photos.layout-two-hero{grid-template-columns:minmax(0,1.35fr) minmax(0,.8fr)}body[data-page=couple-album] .album-page-photos.layout-three-hero{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}body[data-page=couple-album] .album-page-photos.layout-three-hero>:first-child{grid-row:1/-1}body[data-page=couple-album] .album-page-photos.layout-three-strip{grid-template-rows:1fr;grid-template-columns:repeat(3,minmax(0,1fr))}body[data-page=couple-album] .album-page-photos.layout-four-grid{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}body[data-page=couple-album] .album-page-photos.layout-four-mosaic{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(3,minmax(0,1fr))}body[data-page=couple-album] .album-page-photos.layout-four-mosaic>:first-child,body[data-page=couple-album] .album-page-photos.layout-four-mosaic>:nth-child(4){grid-column:span 2}body[data-page=couple-album] .album-page-photos.layout-many-dense{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr)}body[data-page=couple-album] .album-page-photo.span-wide{grid-column:span 2}body[data-page=couple-album] .album-page-photo.span-tall{grid-row:span 2}body[data-page=couple-album] .album-page-photo{cursor:zoom-in;background:#edeae3;border:none;min-width:0;min-height:0;padding:0;display:flex;position:relative;overflow:hidden}body[data-page=couple-album] .album-page-photo img{object-fit:cover;width:100%;height:100%;transition:transform .5s;display:block}body[data-page=couple-album] .album-page-photo:hover img{transform:scale(1.02)}body[data-page=couple-album] .album-page-photo-caption{color:#fff;font-family:var(--album-sans);letter-spacing:.02em;background:linear-gradient(#0000,#26221e80);padding:2.8rem .75rem .6rem;font-size:.72rem;line-height:1.4;position:absolute;bottom:0;left:0;right:0}body[data-page=couple-album] .album-page-placeholder{background:linear-gradient(135deg, #ffffff80, #fff0), var(--album-paper);border:1px dashed #26221e29;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;width:100%;height:100%;display:flex}body[data-page=couple-album] .album-page-placeholder-ico{opacity:.35;font-size:1.8rem}body[data-page=couple-album] .album-page-placeholder-title{font-family:var(--album-serif);color:var(--album-fg);letter-spacing:.04em;margin:0;font-size:1.1rem;font-weight:400}body[data-page=couple-album] .album-page-placeholder-hint{font-family:var(--album-sans);color:var(--album-muted);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.72rem}body[data-page=couple-album] .album-page-copy{flex-shrink:0;min-height:8rem;margin-top:1.1rem}body[data-page=couple-album] .album-page-left .album-page-copy{text-align:center}body[data-page=couple-album] .album-page-right .album-page-copy{text-align:center;max-width:38ch;margin-left:auto;margin-right:auto}body[data-page=couple-album] .album-page-date{font-family:var(--album-sans);color:var(--album-muted);letter-spacing:.14em;text-transform:uppercase;font-variant-numeric:tabular-nums;margin-bottom:.35rem;font-size:.72rem;display:block}body[data-page=couple-album] .album-page-title{font-family:var(--album-serif);color:var(--album-fg);letter-spacing:.02em;margin:0;font-size:clamp(1.2rem,2.2vw,1.9rem);font-weight:400;line-height:1.25}body[data-page=couple-album] .album-page-title-muted{opacity:.55}body[data-page=couple-album] .album-page-text{font-family:var(--album-serif);color:var(--album-accent);opacity:.9;margin:.55rem 0 0;font-size:.86rem;line-height:1.65}body[data-page=couple-album] .album-page-blocks{gap:.45rem;display:grid}body[data-page=couple-album] .album-page-block{margin:0}body[data-page=couple-album] .album-page-block-paragraph{font-family:var(--album-serif);color:var(--album-accent);font-size:.86rem;line-height:1.65}body[data-page=couple-album] .album-page-block-quote{border-top:1px solid var(--album-rule);border-bottom:1px solid var(--album-rule);font-family:var(--album-serif);padding:.4rem 1rem;font-size:.95rem;font-style:italic;line-height:1.55}body[data-page=couple-album] .album-page-block-caption{color:var(--album-muted);font-family:var(--album-sans);letter-spacing:.04em;font-size:.68rem;line-height:1.5}body[data-page=couple-album] .album-page-block-heading{font-family:var(--album-serif);font-size:1.05rem;line-height:1.35}body[data-page=couple-album] .album-page-number{font-family:var(--album-serif);color:var(--album-muted);letter-spacing:.1em;font-size:.9rem;position:absolute;bottom:18px}body[data-page=couple-album] .album-page-number.left{right:6%}body[data-page=couple-album] .album-page-number.right{left:6%}body[data-page=couple-album] .album-cover2{text-align:center;background:var(--album-paper);flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex;position:relative}body[data-page=couple-album] .album-cover2-kicker{font-family:var(--album-sans);letter-spacing:.28em;color:var(--album-muted);text-transform:uppercase;margin:0 0 .8rem;font-size:.7rem}body[data-page=couple-album] .album-cover2-title{font-family:var(--album-serif);color:var(--album-fg);letter-spacing:.04em;margin:0 0 1.2rem;font-size:clamp(2.2rem,5.5vw,4rem);font-weight:400;line-height:1.15}body[data-page=couple-album] .album-cover2-sub{font-family:var(--album-sans);color:var(--album-muted);letter-spacing:.12em;margin:0 0 2.2rem;font-size:.85rem}body[data-page=couple-album] .album-cover2-stats{gap:2rem;margin-bottom:2.2rem;display:flex}body[data-page=couple-album] .album-cover2-stat{flex-direction:column;align-items:center;min-width:3.6rem;display:flex}body[data-page=couple-album] .album-cover2-stat-num{font-family:var(--album-serif);color:var(--album-fg);font-size:1.6rem;font-weight:400;line-height:1}body[data-page=couple-album] .album-cover2-stat-label{font-family:var(--album-sans);color:var(--album-muted);letter-spacing:.14em;text-transform:uppercase;margin-top:.3rem;font-size:.65rem}body[data-page=couple-album] .album-cover2-open{border:1px solid var(--album-fg);background:var(--album-fg);color:var(--album-paper);font-family:var(--album-sans);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;border-radius:0;padding:.75rem 2rem;font-size:.8rem;transition:opacity .2s}body[data-page=couple-album] .album-cover2-open:hover{opacity:.82}body[data-page=couple-album][data-album-mode=flip]{--album-bg:#060606;--album-fg:#ece5d7;--album-muted:#8c8577;--album-rule:#ece5d729;background:#060606}body[data-page=couple-album][data-album-mode=flip] .album-viewbar{display:none}body[data-page=couple-album] .album-readerbar{width:100%;font-family:var(--album-sans);letter-spacing:.18em;color:#8c8577;justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem 2.4rem .8rem;font-size:.62rem;display:flex}body[data-page=couple-album] .album-readerbar-back{color:#b5ad9c;letter-spacing:.18em;cursor:pointer;background:0 0;border:none;flex:none;padding:.3rem 0;font-family:inherit;font-size:.62rem;transition:color .2s}body[data-page=couple-album] .album-readerbar-back:hover{color:#ece5d7}body[data-page=couple-album] .album-readerbar-title{font-family:var(--album-serif);letter-spacing:.34em;color:#ece5d7;white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;overflow:hidden}body[data-page=couple-album] .album-readerbar-vol{letter-spacing:.22em;flex:none}body[data-page=couple-album] .album-pagebar{text-align:center;width:100%;padding:2.1rem 2.4rem 1.7rem;position:relative}body[data-page=couple-album] .album-pagebar-center{flex-direction:column;align-items:center;gap:.45rem;display:flex}body[data-page=couple-album] .album-pagebar-num{font-family:var(--album-sans);letter-spacing:.3em;color:#d8d2c4;font-size:.72rem}body[data-page=couple-album] .album-pagebar-hint{font-family:var(--album-sans);letter-spacing:.18em;color:#6d675c;font-size:.56rem}body[data-page=couple-album] .album-pagebar-arrow{color:#b5ad9c;width:44px;height:44px;font-family:var(--album-sans);cursor:pointer;background:0 0;border:1px solid #ece5d729;border-radius:50%;font-size:.95rem;transition:border-color .2s,color .2s;position:absolute;top:50%;transform:translateY(-50%)}body[data-page=couple-album] .album-pagebar-arrow:hover{color:#ece5d7;border-color:#ece5d7}body[data-page=couple-album] .album-pagebar-arrow.is-prev{left:8%}body[data-page=couple-album] .album-pagebar-arrow.is-next{right:8%}body[data-page=couple-album][data-album-mode=flip] .album-flip{flex:auto;justify-content:center;align-items:center;min-height:0;display:flex;container-type:size}body[data-page=couple-album][data-album-mode=flip] .album-sheet{background:radial-gradient(130% 110% at 50% 0,#ffffff4d,#0000 55%),radial-gradient(90% 60% at 50% 110%,#5c482c1a,#0000 60%),#ece5d5;border:none;border-radius:3px;width:min(100cqw,150cqh);overflow:hidden;box-shadow:0 34px 90px #000000a6,inset 0 0 110px #4a3a2221}body[data-page=couple-album][data-album-mode=flip] .album-sheet:before{content:"";z-index:6;pointer-events:none;opacity:.14;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");position:absolute;inset:0}body[data-page=couple-album][data-album-mode=flip] .album-page-left,body[data-page=couple-album][data-album-mode=flip] .album-page-right{background:0 0}body[data-page=couple-album][data-album-mode=flip] .album-page-title{font-family:var(--album-serif);letter-spacing:.05em;color:#26221e;font-size:1.35rem;font-weight:700}body[data-page=couple-album][data-album-mode=flip] .album-page-date{letter-spacing:.22em;border:1.5px solid #26221ebf;padding:.22rem .55rem;font-weight:700;display:inline-block}body[data-page=couple-album][data-album-mode=flip] .album-page-photo{filter:drop-shadow(0 7px 12px #281e0e61);background:0 0}body[data-page=couple-album][data-album-mode=flip] .album-page-photo img{filter:sepia(.14)contrast(1.04)saturate(.9);clip-path:polygon(1% 4%,22% 1%,46% 4%,72% 0%,100% 3%,99% 26%,100% 52%,98% 76%,100% 97%,78% 100%,52% 97%,28% 100%,6% 98%,0% 74%,2% 48%,0% 22%)}body[data-page=couple-album][data-album-mode=flip] .album-page-photo:nth-child(2n) img{clip-path:polygon(0% 2%,28% 5%,55% 0%,78% 4%,100% 1%,98% 30%,100% 58%,97% 82%,99% 99%,74% 96%,47% 100%,20% 97%,2% 100%,1% 70%,3% 40%,0% 14%)}body[data-page=couple-album][data-album-mode=flip] .album-page-photo:nth-child(3n) img{clip-path:polygon(2% 0%,30% 3%,58% 0%,82% 3%,100% 0%,99% 24%,97% 50%,100% 74%,98% 98%,72% 100%,45% 98%,18% 100%,0% 97%,2% 66%,0% 38%,1% 12%)}body[data-page=couple-album][data-album-mode=flip] .album-sheet .album-masthead{display:none}body[data-page=couple-album][data-album-mode=flip] .album-page{padding:3% 3.2%}body[data-page=couple-album][data-album-mode=flip] .album-spine{background:linear-gradient(#0000,#26221e42 9% 91%,#0000)}body[data-page=couple-album][data-album-mode=flip] .album-spine:before{background:linear-gradient(90deg,#00000017,#0000 38% 62%,#00000017)}@media (width<=820px){body[data-page=couple-album] .album-sheet{aspect-ratio:4/3}body[data-page=couple-album] .album-page{padding:6% 5%}body[data-page=couple-album] .album-page-photos{gap:8px}}@media (width<=560px){body[data-page=couple-album] .app-shell{padding-left:.75rem;padding-right:.75rem}body[data-page=couple-album] .album-sheet{aspect-ratio:auto;min-height:0;overflow:visible}body[data-page=couple-album] .album-open{flex-direction:column;display:flex}body[data-page=couple-album] .album-spine{background:var(--album-rule);flex:0 0 1px;height:1px;min-height:1px}body[data-page=couple-album] .album-page{height:auto;min-height:420px;padding:4rem 1.25rem 2.75rem;overflow:visible}body[data-page=couple-album] .album-page-visual{min-height:230px}body[data-page=couple-album] .album-page-photos{height:230px}body[data-page=couple-album] .album-page-number{bottom:1rem}body[data-page=couple-album] .album-masthead{font-size:.5rem;top:1rem}body[data-page=couple-album] .album-cover2{min-height:540px;padding:4rem 1rem 2rem}body[data-page=couple-album] .album-cover2-stats{gap:1rem}body[data-page=couple-album] .album-page-photos{grid-auto-rows:minmax(115px,auto);height:auto;min-height:230px}}body[data-page=food-map] .foodmap-list-item[data-fm-kind=study]{grid-template-rows:1.2rem 1.1rem minmax(0,1fr);gap:.3rem;height:5.35rem;min-height:5.35rem;padding:.58rem .65rem .55rem .75rem;display:grid;overflow:hidden}body[data-page=food-map] .foodmap-study-card-head{align-items:center;gap:.45rem;min-width:0;display:flex}body[data-page=food-map] .foodmap-study-card-head .foodmap-list-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;line-height:1.2;overflow:hidden}body[data-page=food-map] .foodmap-study-status{white-space:nowrap;flex:none;justify-content:center;min-width:1.05rem;min-height:1.05rem;padding:.12rem .35rem}body[data-page=food-map] .foodmap-study-status-dot{background:currentColor;border-radius:50%;width:.4rem;height:.4rem;display:block}body[data-page=food-map] .foodmap-study-card-facts{min-width:0;color:var(--muted);white-space:nowrap;align-items:center;gap:.3rem;font-size:.68rem;line-height:1.1;display:flex;overflow:hidden}body[data-page=food-map] .foodmap-study-card-facts>i{color:#c7b4a1;flex:none;font-style:normal}body[data-page=food-map] .foodmap-study-card-region{text-overflow:ellipsis;white-space:nowrap;flex:none;max-width:7em;overflow:hidden}body[data-page=food-map] .foodmap-study-card-facts .foodmap-cat-tag{text-overflow:ellipsis;white-space:nowrap;flex:none;max-width:8em;overflow:hidden}body[data-page=food-map] .foodmap-study-card-more{color:var(--amber);flex:none;font-weight:800}body[data-page=food-map] .foodmap-study-card-note{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;align-self:center;margin:0;font-size:.72rem;line-height:1.25;overflow:hidden}@media (width<=719px){body[data-page=food-map] .foodmap-list-item[data-fm-kind=study]{height:5.45rem;min-height:5.45rem}}body[data-page=couple-album] .album-shelf{color:#e8e2d6;width:100%;font-family:var(--album-sans);background:#0d0c0b;border-radius:0;flex-direction:column;flex:1 0 auto;margin:0;padding:2.2rem 2.6rem 1.2rem;display:flex}body[data-page=couple-album] .album-shelf-head{justify-content:space-between;align-items:flex-start;gap:1.5rem;padding-bottom:1.4rem;display:flex}body[data-page=couple-album] .album-shelf-back{color:#b5ad9c;letter-spacing:.2em;cursor:pointer;background:0 0;border:none;margin-bottom:.9rem;padding:0;font-family:inherit;font-size:.6rem;transition:color .2s;display:inline-block}body[data-page=couple-album] .album-shelf-back:hover{color:#ece5d7}body[data-page=couple-album] .album-shelf-brand strong{letter-spacing:.22em;color:#ece5d7;font-size:.66rem;font-weight:600;display:block}body[data-page=couple-album] .album-shelf-brand>span{letter-spacing:.22em;color:#8c8577;margin-top:.3rem;font-size:.58rem;display:block}body[data-page=couple-album] .album-shelf-stats{letter-spacing:.16em;color:#7c7568;margin:.7rem 0 0;font-size:.58rem;line-height:1.9}body[data-page=couple-album] .album-shelf-head-right{text-align:right;letter-spacing:.2em;color:#8c8577;font-size:.58rem}body[data-page=couple-album] .album-shelf-zh{font-family:var(--album-serif);letter-spacing:.42em;color:#ece5d7;margin:0 0 .35rem;font-size:.88rem}body[data-page=couple-album] .album-shelf-row{border-bottom:10px solid #1a1714;flex:auto;align-items:flex-end;gap:6px;min-height:240px;padding:0 .4rem;display:flex;position:relative;overflow:auto visible}body[data-page=couple-album] .album-shelf-row:after{content:"";background:linear-gradient(#2a241d,#15120e);height:10px;position:absolute;bottom:-10px;left:0;right:0}body[data-page=couple-album] .album-shelf-book{width:var(--w,30px);height:var(--hpct,70%);background:var(--bg,#444);color:var(--ink,#eee);cursor:pointer;border:none;border-radius:2px 3px 3px 2px;flex:none;justify-content:center;align-items:flex-start;padding:.6rem .1rem 1.2rem;transition:transform .18s,box-shadow .18s,opacity .18s;display:flex;position:relative;box-shadow:inset -3px 0 6px #00000040,inset 1px 0 2px #ffffff29,0 2px 5px #0000008c}body[data-page=couple-album] .album-shelf-book:hover{transform:translateY(-9px);box-shadow:inset -3px 0 6px #00000040,inset 1px 0 2px #ffffff29,0 10px 18px #0009}body[data-page=couple-album] .album-shelf-book-title{writing-mode:vertical-rl;font-family:var(--album-serif);letter-spacing:.18em;white-space:nowrap;max-height:calc(100% - 1.4rem);font-size:.88rem;line-height:1;overflow:hidden}body[data-page=couple-album] .album-shelf-book-vol{text-align:center;font-family:var(--album-sans);letter-spacing:.08em;opacity:.75;font-size:.5rem;position:absolute;bottom:.4rem;left:0;right:0}body[data-page=couple-album] .album-shelf-book.is-pending{filter:saturate(.55)brightness(.96)}body[data-page=couple-album] .album-shelf-book.deco-1:before{content:"";opacity:.45;background:repeating-linear-gradient(currentColor 0 1px,#0000 1px 6px);height:16px;position:absolute;top:14px;left:4px;right:4px}body[data-page=couple-album] .album-shelf-book.deco-2:after{content:"";opacity:.5;border:1px solid;border-radius:50%;width:9px;height:9px;margin-left:-4.5px;position:absolute;top:20px;left:50%}body[data-page=couple-album] .album-shelf-book.deco-3:before{content:"";opacity:.14;background:currentColor;height:24%;position:absolute;top:0;left:0;right:0}body[data-page=couple-album] .album-shelf-foot{letter-spacing:.18em;color:#7c7568;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem .2rem .3rem;font-size:.56rem;display:flex}@media (width<=820px){body[data-page=couple-album] .album-shelf{padding:1.4rem 1rem .7rem}body[data-page=couple-album] .album-readerbar{padding:1.2rem 1.2rem .6rem}body[data-page=couple-album] .album-pagebar{padding:1.6rem 1.2rem 1.2rem}body[data-page=couple-album][data-album-mode=flip] .album-sheet{width:100%}body[data-page=couple-album] .album-shelf-head{flex-direction:column;gap:.7rem}body[data-page=couple-album] .album-shelf-head-right{text-align:left}body[data-page=couple-album] .album-shelf-book-title{font-size:.64rem}}@media (width<=560px){body[data-page=couple-album] .album-shelf-foot span:nth-child(2){display:none}}body[data-page=food-records]{--k-bg:#f6f1e9;--k-surface:#fff;--k-surface-soft:#fdf8f1;--k-ink:#33291f;--k-muted:#8a7a68;--k-line:#ebe1d2;--k-primary:#e76f2e;--k-primary-deep:#c4551d;--k-primary-soft:#fff0e6;--k-danger:#e24c4b;--k-danger-soft:#fdecec;--k-warn:#d99a1b;--k-warn-soft:#fcf2dd;--k-ok:#2e9e63;--k-ok-soft:#e8f5ec;--k-info:#4d8fea;--k-info-soft:#ebf2fd;--k-shadow:0 1px 2px #6046280a, 0 10px 26px #60462812;--k-radius:16px;--k-radius-sm:11px;--bg:var(--k-bg);--surface:var(--k-surface);--surface-soft:var(--k-surface-soft);--line:var(--k-line);--text:var(--k-ink);--muted:var(--k-muted);--dark:var(--k-ink);background:var(--k-bg)}body[data-page=food-records] .app-shell{max-width:min(1600px,100vw - 1.2rem);padding:.9rem .6rem 3rem}body[data-page=food-records] .k-dash{flex-direction:column;gap:.7rem;display:flex}.k-card{background:var(--k-surface);border:1px solid var(--k-line);border-radius:var(--k-radius);box-shadow:var(--k-shadow)}.k-card-head{justify-content:space-between;align-items:baseline;gap:.6rem;margin-bottom:.6rem;display:flex}.k-card-title{color:var(--k-ink);letter-spacing:.01em;margin:0;font-size:1.02rem;font-weight:900}.k-card-sub{color:var(--k-muted);font-size:.76rem;font-weight:600}.k-card-empty{color:var(--k-muted);text-align:left;padding:1rem .2rem;font-size:.84rem;line-height:1.7}.k-card-empty code{background:var(--k-surface-soft);border:1px solid var(--k-line);border-radius:5px;padding:0 .3rem;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.78rem}.k-topbar{justify-content:space-between;align-items:center;gap:1.2rem;padding:.15rem .1rem .05rem;display:flex}.k-topbar-left{flex-shrink:0;align-items:center;gap:.75rem;min-width:0;display:flex}.k-logo-mark{background:var(--k-primary-soft);border:1px solid #f7d9c2;border-radius:14px;flex-shrink:0;place-items:center;width:46px;height:46px;font-size:1.4rem;display:grid}.k-title{color:var(--k-ink);letter-spacing:.01em;margin:0;font-size:1.28rem;font-weight:900}.k-subtitle{color:var(--k-muted);margin:.12rem 0 0;font-size:.8rem}.k-topbar-center{flex:1;justify-content:flex-end;min-width:0;display:flex}.k-topbar-center .k-search{width:min(460px,100%)}.k-topbar-right{flex-shrink:0;align-items:center;gap:.7rem;display:flex}.k-topbar-mood{align-items:center;gap:.4rem;display:flex}.k-mood-icon{font-size:1.15rem}.k-mood-text{flex-direction:column;line-height:1.1;display:flex}.k-mood-text b{color:var(--k-ink);font-size:.78rem;font-weight:800}.k-mood-text i{color:var(--k-muted);margin-top:.1rem;font-size:.66rem;font-style:normal}.k-avatar{background:var(--k-primary-soft);border:1px solid #f7d9c2;border-radius:50%;flex-shrink:0;place-items:center;width:38px;height:38px;font-size:1.4rem;display:grid}.k-today-line{color:var(--k-muted);white-space:nowrap;font-size:.82rem;font-weight:600}.k-search{width:min(340px,46vw);position:relative}.k-search-icon{opacity:.75;pointer-events:none;font-size:.9rem;position:absolute;top:50%;left:.85rem;transform:translateY(-50%)}.k-search input{box-sizing:border-box;border:1px solid var(--k-line);background:var(--k-surface);width:100%;color:var(--k-ink);border-radius:999px;outline:none;padding:.52rem .9rem .52rem 2.1rem;font-size:.88rem;transition:border-color .15s,box-shadow .15s}.k-search input:focus{border-color:#eec7ab;box-shadow:0 0 0 3px #e76f2e1f}.k-search-res{z-index:60;background:var(--k-surface);border:1px solid var(--k-line);border-radius:14px;max-height:60vh;animation:.15s kFade;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:hidden auto;box-shadow:0 14px 40px #5a3c1e24}.k-search-group{border-bottom:1px dashed var(--k-line);padding:.35rem 0}.k-search-group:last-child{border-bottom:none}.k-search-group-name{color:var(--k-muted);padding:.2rem .85rem .25rem;font-size:.72rem;font-weight:800}.k-search-item{text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:.6rem;width:100%;padding:.42rem .85rem;display:flex}.k-search-item:hover{background:var(--k-surface-soft)}.k-search-emoji{background:var(--k-surface-soft);border-radius:9px;flex-shrink:0;place-items:center;width:30px;height:30px;font-size:1rem;display:grid}.k-search-main{flex-direction:column;flex:1;min-width:0;line-height:1.3;display:flex}.k-search-main b{color:var(--k-ink);text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;overflow:hidden}.k-search-main em{color:var(--k-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;font-style:normal;overflow:hidden}.k-search-empty{text-align:center;color:var(--k-muted);padding:1.2rem .9rem;font-size:.86rem;line-height:1.8}.k-search-empty span{font-size:.74rem}.k-hero{border-radius:calc(var(--k-radius) + 4px);background:linear-gradient(118deg,#fff3e4 0%,#ffe9d2 55%,#ffe1c2 100%);border:1px solid #f4d9bb;justify-content:space-between;align-items:center;gap:1rem;min-height:108px;padding:1.05rem 1.5rem;display:flex;position:relative;overflow:hidden}.k-hero:after{content:"";pointer-events:none;background:radial-gradient(600px 120px at 88% 0,#ffffff8c,#0000 70%);position:absolute;inset:0}.k-hero-copy{z-index:1;position:relative}.k-hero-eyebrow{color:#b06a33;letter-spacing:.02em;margin:0 0 .3rem;font-size:.76rem;font-weight:700}.k-hero-title{color:#6f3c12;margin:0;font-size:1.5rem;font-weight:900}.k-hero-sub{color:#9c6a3b;margin:.3rem 0 0;font-size:.88rem}.k-hero-art{z-index:1;align-items:center;gap:.85rem;padding-right:.2rem;display:flex;position:relative}.k-hero-emoji{filter:drop-shadow(0 2px 3px #78461e2e);font-size:1.9rem}.k-hero-emoji-1{font-size:2.4rem}.k-hero-chips{flex-direction:column;gap:.3rem;display:flex}.k-hero-chip{color:#8a5a2b;white-space:nowrap;background:#ffffffa6;border:1px solid #b4783c40;border-radius:999px;padding:.2rem .6rem;font-size:.7rem;font-weight:800}.k-kpis-inner{grid-template-columns:repeat(4,1fr);gap:.55rem;display:grid}.k-kpi{background:var(--k-surface);border:1px solid var(--k-line);border-radius:var(--k-radius-sm);box-shadow:var(--k-shadow);cursor:default;align-items:center;gap:.55rem;padding:.55rem .7rem;display:flex}.k-kpi-icon{border-radius:10px;flex-shrink:0;place-items:center;width:32px;height:32px;font-size:1rem;display:grid}.tone-primary{background:var(--k-primary-soft)}.tone-amber{background:var(--k-warn-soft)}.tone-green{background:var(--k-ok-soft)}.tone-info{background:var(--k-info-soft)}.k-kpi-copy{min-width:0}.k-kpi-label{color:var(--k-muted);margin-bottom:.08rem;font-size:.68rem;font-weight:700;display:block}.k-kpi-value{color:var(--k-ink);white-space:nowrap;font-size:1.05rem;font-weight:900;line-height:1.2}.k-kpi-value small{color:var(--k-muted);font-size:.7rem;font-weight:700}.k-stage{grid-template-columns:repeat(12,minmax(0,1fr));align-items:stretch;gap:.7rem;display:grid}.k-stage-primary{grid-template-rows:auto auto}.k-col-pantry,.k-col-shelf,.k-col-price{min-width:0;height:340px}.k-col-pantry .k-card,.k-col-shelf .k-card,.k-col-price .k-card{height:100%;overflow:hidden}.k-col-cal{flex-direction:column;grid-area:1/1/auto/7;gap:.7rem;min-width:0;display:flex}.k-col-mid{flex-direction:column;grid-area:1/7/auto/10;gap:.7rem;min-width:0;display:flex}.k-col-day{flex-direction:column;grid-area:1/10/auto/13;min-width:0;display:flex}.k-col-pantry{grid-area:2/1/auto/6;min-width:0}.k-col-shelf{grid-area:2/6/auto/10;min-width:0}.k-col-price{grid-area:2/10/auto/13;min-width:0}.k-mid-top{grid-template-columns:1fr 1fr;gap:.7rem;min-height:0;display:grid}.k-mid-top .k-card{min-height:0}.k-card#kRecipeQuick,.k-col-day .k-card{flex:auto;min-height:0}.k-cal-card-inner{background:var(--k-surface);border:1px solid var(--k-line);border-radius:var(--k-radius);box-shadow:var(--k-shadow);flex-direction:column;flex:auto;padding:.75rem .9rem .7rem;display:flex}.k-cal-card-inner .k-cal-grid{flex:auto}.k-cal-head{justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.55rem;display:flex}.k-cal-titlebox{align-items:baseline;gap:.55rem;display:flex}.k-cal-year{color:var(--k-primary);background:var(--k-primary-soft);border-radius:999px;padding:.14rem .6rem;font-size:.86rem;font-weight:800}.k-cal-nav{align-items:center;gap:.35rem;display:flex}.k-today-btn{color:var(--k-primary-deep);background:var(--k-primary-soft);border:1px solid #f6d6bf;border-radius:999px;padding:.3rem .8rem;font-size:.78rem;font-weight:800;transition:background .15s}.k-today-btn:hover{background:#ffe3cc}.k-icon-btn{width:30px;height:30px;color:var(--k-muted);background:var(--k-surface);border:1px solid var(--k-line);cursor:pointer;border-radius:9px;place-items:center;font-size:1rem;line-height:1;transition:background .15s,color .15s,border-color .15s;display:grid}.k-icon-btn:hover{color:var(--k-primary-deep);background:var(--k-surface-soft);border-color:#ecc3a4}.k-cal-legend{color:var(--k-muted);align-items:center;gap:.85rem;margin-bottom:.55rem;font-size:.7rem;display:flex}.k-cal-legend span{align-items:center;gap:.3rem;display:inline-flex}.k-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.dot-record{background:var(--k-primary)}.dot-today{box-shadow:inset 0 0 0 2px var(--k-danger);background:0 0}.dot-selected{background:var(--k-primary-soft);box-shadow:inset 0 0 0 2px var(--k-primary)}.k-cal-week{text-align:center;grid-template-columns:repeat(7,1fr);margin-bottom:.25rem;display:grid}.k-cal-week span{color:var(--k-muted);padding:.15rem 0;font-size:.72rem;font-weight:800}.k-cal-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.k-day{cursor:pointer;min-height:44px;font:inherit;background:0 0;border:none;border-radius:10px;flex-direction:column;justify-content:flex-start;align-items:center;padding:.22rem .1rem .18rem;transition:background .13s;display:flex;position:relative}.k-day:hover{background:var(--k-surface-soft)}.k-day-lunar{color:#b9a893;font-size:.6rem;line-height:1.2}.k-day-num{color:var(--k-ink);font-size:.92rem;font-weight:700;line-height:1.25}.k-day-dot{background:var(--k-primary);border-radius:50%;width:5px;height:5px;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.k-day-dim{opacity:.42;cursor:default;pointer-events:none}.k-day.is-today{box-shadow:inset 0 0 0 2px #ef8f5f}.k-day.is-today .k-day-num{color:var(--k-primary-deep);font-weight:900}.k-day.is-selected{background:var(--k-primary-soft);box-shadow:inset 0 0 0 2px var(--k-primary)}.k-day.is-selected .k-day-num{color:var(--k-primary-deep);font-weight:900}.k-cal-foot{text-align:center;color:var(--k-muted);margin-top:auto;padding-top:.5rem;font-size:.72rem}.k-freq-list{flex-direction:column;gap:.2rem;display:flex}.k-freq-row{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:.55rem;width:100%;padding:.28rem .15rem;display:flex}.k-freq-row:hover{background:var(--k-surface-soft)}.k-rank{width:20px;color:var(--k-muted);text-align:center;flex-shrink:0;font-size:.78rem;font-weight:900}.k-freq-name{max-width:46%;color:var(--k-ink);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;font-size:.85rem;font-weight:700;overflow:hidden}.k-freq-bar{background:var(--k-surface-soft);border-radius:99px;flex:1;min-width:24px;height:6px;overflow:hidden}.k-freq-bar i{background:linear-gradient(90deg, #f6a25e, var(--k-primary));border-radius:99px;height:100%;display:block}.k-freq-count{color:var(--k-muted);flex-shrink:0;font-size:.72rem;font-weight:800}.k-chef-list{flex-direction:column;gap:.15rem;display:flex}.k-chef-row{align-items:center;gap:.55rem;padding:.24rem .15rem;font-size:.85rem;display:flex}.k-chef-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--k-ink);flex:1;font-weight:700;overflow:hidden}.k-chef-count{color:var(--k-muted);font-size:.78rem;font-weight:700}.k-chef-cost{color:var(--k-primary-deep);font-size:.82rem;font-weight:800}.k-card#kFrequent,.k-card#kChefs,.k-card#kRecipeQuick{padding:.7rem .85rem}.k-feature-title{color:var(--k-muted);margin:.15rem 0 .4rem;font-size:.74rem;font-weight:800}.k-recipe-card{text-align:left;border:1px solid var(--k-line);border-radius:var(--k-radius-sm);background:var(--k-surface);cursor:pointer;align-items:center;gap:.6rem;width:100%;padding:.45rem .5rem;transition:transform .12s,box-shadow .15s,border-color .15s;display:flex}.k-recipe-card:hover{box-shadow:var(--k-shadow);border-color:#ecc4a5;transform:translateY(-1px)}.k-recipe-cover-sm{background:linear-gradient(135deg, var(--k-primary-soft), #ffe9d4);border-radius:11px;flex-shrink:0;place-items:center;width:40px;height:40px;font-size:1.35rem;display:grid}.k-recipe-card-main{flex-direction:column;flex:1;gap:.2rem;min-width:0;display:flex}.k-recipe-card-main b{color:var(--k-ink);text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;overflow:hidden}.k-recipe-card-sub{align-items:center;gap:.45rem;display:flex}.k-recipe-card-sub i{color:var(--k-primary-deep);background:var(--k-primary-soft);border-radius:99px;padding:.05rem .45rem;font-size:.7rem;font-style:normal;font-weight:800}.k-recipe-times{color:var(--k-ok);font-size:.7rem;font-weight:700}.k-chevron{color:#cbb7a0;flex-shrink:0;font-size:1rem}.k-cat-grid{grid-template-columns:1fr 1fr;gap:.45rem;margin-top:.6rem;display:grid}.k-recipe-cat{background:var(--k-surface-soft);border:1px solid var(--k-line);border-radius:var(--k-radius-sm);cursor:pointer;min-width:0;font:inherit;text-align:left;align-items:center;gap:.4rem;padding:.5rem .55rem;transition:transform .12s,box-shadow .15s,border-color .15s;display:flex}.k-recipe-cat:hover{box-shadow:var(--k-shadow);border-color:#eec8ab;transform:translateY(-1px)}.k-recipe-cat-icon{font-size:1rem}.k-recipe-cat-name{min-width:0;color:var(--k-ink);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.8rem;font-weight:800;overflow:hidden}.k-recipe-cat-count{color:var(--k-muted);background:var(--k-surface);border:1px solid var(--k-line);border-radius:99px;padding:.02rem .4rem;font-size:.68rem;font-weight:800}.k-day-card{padding:.95rem 1rem 1rem}.k-day-head{justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.75rem;display:flex}.k-day-head-main{flex-direction:column;gap:.2rem;display:flex}.k-day-date{color:var(--k-ink);letter-spacing:.01em;font-size:1.5rem;font-weight:900}.k-day-week{color:var(--k-muted);font-size:.78rem;font-weight:600}.k-badge{border-radius:999px;padding:.18rem .55rem;font-size:.7rem;font-weight:800}.k-badge-today{color:var(--k-danger);background:var(--k-danger-soft);align-self:flex-start}.k-text-btn{color:var(--k-primary-deep);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:.2rem .4rem;font-size:.78rem;font-weight:800}.k-text-btn:hover{text-decoration:underline}.k-day-cover{border-radius:12px;margin-bottom:.75rem;overflow:hidden}.k-day-cover img{object-fit:cover;width:100%;max-height:180px;display:block}.k-meal-group{margin-bottom:.7rem}.k-meal-group-title{color:var(--k-muted);letter-spacing:.05em;margin-bottom:.3rem;font-size:.68rem;font-weight:800}.k-meal{border-bottom:1px dashed var(--k-line);padding:.45rem 0}.k-meal:last-child{border-bottom:none}.k-meal-tag-row{justify-content:space-between;align-items:baseline;gap:.4rem;margin-bottom:.3rem;display:flex}.k-meal-tag{color:var(--k-ink);font-size:.82rem;font-weight:900}.k-meal-meta{color:var(--k-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;font-weight:600;overflow:hidden}.k-dish-chips{flex-wrap:wrap;gap:.35rem;display:flex}.k-dish-chip{border:1px solid var(--k-line);background:var(--k-surface-soft);color:var(--k-ink);cursor:pointer;border-radius:999px;align-items:center;gap:.3rem;padding:.22rem .55rem;font-size:.76rem;font-weight:700;transition:border-color .15s,background .15s;display:inline-flex}.k-dish-chip:hover{background:var(--k-primary-soft);border-color:#e9b78f}.k-dish-cost{color:var(--k-primary-deep);font-size:.66rem;font-weight:800}.k-stat-grid{grid-template-columns:repeat(3,1fr);gap:.4rem;margin:.7rem 0;display:grid}.k-stat-cell{background:var(--k-surface-soft);border:1px solid var(--k-line);border-radius:var(--k-radius-sm);flex-direction:column;align-items:center;gap:.1rem;padding:.5rem .2rem;display:flex}.k-stat-icon{font-size:.95rem}.k-stat-label{color:var(--k-muted);font-size:.66rem;font-weight:700}.k-stat-value{color:var(--k-ink);text-align:center;font-size:.8rem;font-weight:900}.k-day-section-title{color:var(--k-ink);margin-bottom:.35rem;font-size:.82rem;font-weight:900}.k-day-note{box-sizing:border-box;resize:vertical;width:100%;font:inherit;color:var(--k-ink);border:1px solid var(--k-line);border-radius:var(--k-radius-sm);background:var(--k-surface-soft);outline:none;padding:.5rem .6rem;font-size:.8rem;line-height:1.6}.k-day-note:focus{border-color:#eeb483;box-shadow:0 0 0 3px #e76f2e1a}.k-day-empty{text-align:center;padding:2rem .4rem}.k-card#kPantry,.k-card#kShelf,.k-card#kPrices{padding:.7rem .85rem}.k-pantry-badges{flex-wrap:wrap;gap:.4rem;margin-bottom:.7rem;display:flex}.k-pantry-badge{white-space:nowrap;border-radius:999px;padding:.22rem .65rem;font-size:.72rem;font-weight:800}.k-pb-info{color:var(--k-info);background:var(--k-info-soft)}.k-pb-red{color:var(--k-danger);background:var(--k-danger-soft)}.k-pb-yellow{color:#9c6f0a;background:var(--k-warn-soft)}.k-pb-green{color:var(--k-ok);background:var(--k-ok-soft)}.k-pantry-scroll{padding-bottom:.2rem;overflow-x:auto}.k-pantry-head,.k-px-row{grid-template-columns:140px minmax(220px,1fr);align-items:center;gap:.5rem;min-width:430px;display:grid}.k-pantry-head{margin-bottom:.2rem}.k-pantry-head-label{color:var(--k-muted);font-size:.68rem;font-weight:800}.k-pantry-head-axis{gap:2px;display:grid}.k-px-day{text-align:center;color:#b9a68f;font-size:.6rem;font-weight:700}.k-px-day.is-today{color:var(--k-danger);font-weight:900}.k-px-row{border-top:1px dashed var(--k-line);cursor:pointer;border-radius:8px;padding:.35rem 0;transition:background .15s}.k-px-row:hover{background:var(--k-surface-soft)}.k-px-label-top{align-items:center;gap:.4rem;margin-bottom:.15rem;display:flex}.k-px-name{color:var(--k-ink);text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;font-weight:800;overflow:hidden}.k-place-chip{white-space:nowrap;border-radius:99px;padding:.06rem .45rem;font-size:.66rem;font-weight:800}.place-cold{color:var(--k-info);background:var(--k-info-soft)}.place-freeze{color:#5b67c9;background:#edf0fc}.place-room{color:#8a6b2f;background:#fbf3dc}.place-shade{color:var(--k-ok);background:var(--k-ok-soft)}.k-px-dates{color:var(--k-muted);align-items:center;gap:.3rem;font-size:.68rem;font-weight:600;display:flex}.k-px-dates i{font-style:normal}.k-px-exp.exp-red{color:var(--k-danger);font-weight:800}.k-px-exp.exp-yellow{color:#9c6f0a;font-weight:800}.k-px-exp.exp-green{color:var(--k-ok);font-weight:700}.k-px-track{gap:2px;display:grid}.k-px-cell{background:#00000009;border-radius:4px;height:16px}.k-px-cell.bar-red{background:#f4b8b5}.k-px-cell.bar-yellow{background:#f4d48a}.k-px-cell.bar-green{background:#b6dfc6}.k-shelf-grid{grid-template-columns:repeat(2,1fr);gap:.4rem;display:grid}.k-shelf-list{flex-direction:column;gap:.55rem;max-height:100%;padding-right:2px;display:flex;overflow-y:auto}.k-shelf-group{background:linear-gradient(135deg, var(--k-surface-soft) 0%, #fdf7ed 100%);border:1px solid var(--k-line);cursor:pointer;border-radius:12px;padding:.45rem .55rem .5rem;transition:border-color .15s}.k-shelf-group:hover{border-color:#e6d5bc}.k-shelf-group-title{color:var(--k-ink);align-items:center;gap:.3rem;margin:0 0 .35rem;font-size:.74rem;font-weight:900;display:flex}.k-shelf-group-title:after{content:"";background:linear-gradient(90deg, var(--k-line), transparent);flex:1;height:1px;margin-left:.3rem}.k-shelf-items{grid-template-columns:repeat(4,1fr);gap:.3rem;display:grid}.k-shelf-item{border:1px solid var(--k-line);background:#fdfaf4;border-radius:8px;flex-direction:column;gap:.25rem;padding:.3rem .4rem .35rem;display:flex}.k-shelf-name{color:var(--k-ink);text-overflow:ellipsis;white-space:nowrap;font-size:.64rem;font-weight:800;line-height:1.2;overflow:hidden}.k-shelf-refs{flex-direction:column;gap:.12rem;display:flex}.k-shelf-ref{color:var(--k-muted);align-items:baseline;gap:.25rem;font-size:.62rem;font-weight:600;line-height:1.3;display:flex}.k-shelf-ref i{border-radius:50%;flex-shrink:0;align-self:center;width:6px;height:6px;display:inline-block}.k-shelf-ref i.cold{background:var(--k-info)}.k-shelf-ref i.freeze{background:#8da4d6;box-shadow:0 0 0 2px #8da4d62e}.k-shelf-ref i.room{background:#d6a85f}.k-shelf-ref i.shade{background:var(--k-ok)}.k-shelf-ref b{color:var(--k-ink);font-weight:700}.k-shelf-chip{background:var(--k-surface-soft);border:1px solid var(--k-line);border-radius:var(--k-radius-sm);cursor:pointer;min-width:0;font:inherit;text-align:left;align-items:center;gap:.4rem;padding:.5rem .55rem;transition:transform .12s,box-shadow .15s,border-color .15s;display:flex}.k-shelf-chip:hover{box-shadow:var(--k-shadow);border-color:#dfd0bd;transform:translateY(-1px)}.k-shelf-chip-icon{font-size:1.05rem}.k-shelf-item{border-bottom:1px dashed var(--k-line);flex-direction:column;gap:.25rem;padding:.45rem 0;display:flex}.k-shelf-item:last-child{border-bottom:none}.k-shelf-item b{color:var(--k-ink);font-size:.88rem}.k-shelf-refs{flex-wrap:wrap;gap:.35rem;display:flex}.k-shelf-ref{color:var(--k-muted);background:var(--k-surface-soft);border:1px solid var(--k-line);border-radius:999px;padding:.12rem .5rem;font-size:.72rem;font-weight:700}.k-card#kPrices{flex-direction:column;min-height:0;display:flex}.k-card#kPrices .k-card-head{flex:none}.k-price-body{flex-direction:column;flex:auto;gap:.6rem;min-height:0;display:flex;overflow:hidden}.k-price-tabs{flex-wrap:wrap;flex:none;gap:.35rem;display:flex}.k-price-tab{color:var(--k-muted);background:var(--k-surface-soft);border:1px solid var(--k-line);cursor:pointer;border-radius:999px;align-items:center;gap:.3rem;padding:.28rem .6rem;font-size:.76rem;font-weight:800;display:inline-flex}.k-price-tab em{color:var(--k-muted);font-size:.66rem;font-style:normal}.k-price-tab.active{color:var(--k-primary-deep);background:var(--k-primary-soft);border-color:#f2d0b6}.k-price-list{overscroll-behavior:contain;flex-direction:column;flex:auto;gap:.3rem;min-height:0;display:flex;overflow-y:auto}.k-price-row{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:.55rem;width:100%;padding:.42rem .15rem;display:flex}.k-price-row:hover{background:var(--k-surface-soft)}.k-price-emoji{background:var(--k-surface-soft);border-radius:9px;flex-shrink:0;place-items:center;width:32px;height:32px;font-size:1rem;display:grid}.k-price-main{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.k-price-top{align-items:baseline;gap:.4rem;min-width:0;display:flex}.k-price-top b{color:var(--k-ink);text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;overflow:hidden}.k-price-spec{color:var(--k-muted);font-size:.68rem}.k-price-meta{color:var(--k-muted);font-size:.74rem}.k-price-current{color:var(--k-primary-deep);font-size:.82rem;font-weight:900}.k-btn{cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.84rem;font-weight:800;transition:filter .15s,transform .1s;display:inline-flex}.k-btn:hover{filter:brightness(.97)}.k-btn:active{transform:translateY(1px)}.k-btn-primary{background:var(--k-primary);color:#fff}.k-btn-ghost{background:var(--k-surface-soft);color:var(--k-ink);border:1px solid var(--k-line)}.k-btn-block{width:100%}.k-link-btn{color:var(--k-primary-deep);cursor:pointer;background:0 0;border:none;padding:0;font-size:.82rem;font-weight:800}.k-link-btn:hover{text-decoration:underline}.k-hint-text{color:var(--k-muted);margin:.45rem 0 0;font-size:.72rem;line-height:1.6}.k-hint-text code{background:var(--k-surface-soft);border-radius:4px;padding:0 .25rem;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.72rem}.k-note-line{color:var(--k-muted);margin:.35rem 0;font-size:.82rem;line-height:1.6}.k-note-line code{background:var(--k-surface-soft);border-radius:5px;padding:.1rem .3rem;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.78rem}.k-note-box{color:var(--k-ink);background:var(--k-warn-soft);border-radius:var(--k-radius-sm);border:1px solid #ecd9ac;margin:.6rem 0;padding:.6rem .8rem;font-size:.82rem;line-height:1.7}.k-code-details{margin:.5rem 0}.k-code-details summary{cursor:pointer;color:var(--k-primary-deep);font-size:.78rem;font-weight:800}.k-code-pre{background:var(--k-surface-soft);border:1px solid var(--k-line);border-radius:10px;max-height:46vh;margin:.5rem 0 .6rem;padding:.7rem .85rem;overflow:auto}.k-code-pre code{color:var(--k-ink);white-space:pre;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.72rem;line-height:1.6}.k-field-row{grid-template-columns:1fr 1fr;gap:.6rem;margin-bottom:.5rem;display:grid}.k-field{color:var(--k-muted);flex-direction:column;gap:.3rem;font-size:.76rem;font-weight:800;display:flex}.k-field input,.k-field select{font:inherit;color:var(--k-ink);border:1px solid var(--k-line);background:var(--k-surface-soft);border-radius:10px;outline:none;padding:.45rem .55rem;font-size:.86rem}.k-field input:focus,.k-field select:focus{border-color:#eeb483;box-shadow:0 0 0 3px #e76f2e1a}.k-drawer-actions{flex-wrap:wrap;gap:.5rem;margin:.7rem 0 .2rem;display:flex}.k-meta-list{flex-direction:column;display:flex}.k-meta-list-item{border-bottom:1px dashed var(--k-line);justify-content:space-between;align-items:baseline;gap:.6rem;padding:.4rem 0;font-size:.84rem;display:flex}.k-meta-list-date{color:var(--k-muted);white-space:nowrap;font-weight:800}.k-meta-list-rest{text-align:right;color:var(--k-ink);min-width:0}.k-drawer-lead{color:var(--k-muted);margin:0 0 .5rem;font-size:.82rem;line-height:1.7}.k-overlay{z-index:120;background:#2e22181f;animation:.2s kFade;position:fixed;inset:0}.k-drawer-root[hidden]{display:none}.k-drawer-root{z-index:130;pointer-events:none;position:fixed;inset:0}.k-drawer-root.open{pointer-events:auto}.k-drawer-mask{pointer-events:auto;position:absolute;inset:0}.k-drawer{pointer-events:auto;background:var(--k-surface);border-left:1px solid var(--k-line);border-radius:20px 0 0 20px;flex-direction:column;width:min(430px,100vw);transition:transform .24s cubic-bezier(.2,.8,.25,1);display:flex;position:absolute;top:0;bottom:0;right:0;transform:translate(102%);box-shadow:-18px 0 50px #3c281424}.k-drawer-root.open .k-drawer{transform:translate(0)}.k-drawer-head{border-bottom:1px solid var(--k-line);justify-content:space-between;align-items:flex-start;gap:.8rem;padding:1.1rem 1.2rem .85rem;display:flex}.k-drawer-titlebox{min-width:0}.k-drawer-title{color:var(--k-ink);margin:0;font-size:1.12rem;font-weight:900}.k-drawer-sub{color:var(--k-muted);margin:.2rem 0 0;font-size:.76rem;font-weight:600}.k-drawer-close{flex-shrink:0}.k-drawer-body{flex:1;padding:1rem 1.2rem 1.2rem;overflow-y:auto}.k-drawer-foot{border-top:1px dashed var(--k-line);padding:.7rem 1.2rem .9rem}.k-drawer-close{border:1px solid var(--k-line);background:var(--k-surface);width:30px;height:30px;color:var(--k-muted);cursor:pointer;border-radius:9px;place-items:center;font-size:.85rem;display:grid}.k-drawer-close:hover{color:var(--k-ink)}.k-recipe-cover{background:linear-gradient(120deg, var(--k-primary-soft), #ffe9d4);border-radius:14px;align-items:center;gap:.9rem;margin-bottom:1rem;padding:.9rem 1rem;display:flex}.k-recipe-cover-emoji{font-size:2.4rem;line-height:1}.k-recipe-cover-info{flex-wrap:wrap;gap:.4rem;display:flex}.k-recipe-cover-tag{color:#8a5a2b;background:#ffffffb3;border:1px solid #b4783c40;border-radius:999px;padding:.16rem .6rem;font-size:.72rem;font-weight:800}.k-tag-soft{color:var(--k-ok);background:#fff9;border-color:#2e9e634d}.k-recipe-section{margin:.9rem 0}.k-recipe-section-title{color:var(--k-ink);align-items:center;gap:.4rem;margin:0 0 .5rem;font-size:.92rem;font-weight:900;display:flex}.k-recipe-section-title:before{content:"";background:var(--k-primary);border-radius:3px;width:4px;height:15px;display:inline-block}.k-table-wrap{overflow-x:auto}.k-recipe-table{border-collapse:collapse;width:100%;font-size:.8rem}.k-recipe-table th{text-align:left;color:var(--k-muted);border-bottom:1px solid var(--k-line);padding:.4rem .5rem;font-weight:800}.k-recipe-table td{border-bottom:1px dashed var(--k-line);color:var(--k-ink);vertical-align:top;padding:.4rem .5rem}.k-steps{color:var(--k-ink);flex-direction:column;gap:.45rem;margin:0;padding-left:1.25rem;font-size:.88rem;line-height:1.7;display:flex}.k-tip-list{color:var(--k-ink);flex-direction:column;gap:.3rem;margin:0;padding-left:1.1rem;font-size:.85rem;line-height:1.7;display:flex}.k-recipe-body>p{color:var(--k-ink);font-size:.86rem;line-height:1.8}.k-hovercard{z-index:140;background:var(--k-surface);border:1px solid var(--k-line);border-radius:14px;max-width:min(370px,100vw - 20px);max-height:74vh;padding:.8rem .9rem;animation:.14s kPop;position:fixed;overflow:auto;box-shadow:0 16px 44px #3c281429}.k-hovercard[hidden]{display:none}.k-pop-title{color:var(--k-ink);flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 0 .35rem;font-size:.92rem;font-weight:900;display:flex}.k-pop-line{color:var(--k-ink);margin:.22rem 0;font-size:.8rem;line-height:1.6}.k-pop-line b{color:var(--k-ink)}.k-pop-stats{color:var(--k-muted);border-top:1px dashed var(--k-line);margin-top:.4rem;padding-top:.4rem}.k-pop-status{border-radius:999px;padding:.08rem .5rem;font-size:.7rem;font-weight:800}.txt-red{color:var(--k-danger);background:var(--k-danger-soft)}.txt-yellow{color:#8a6a12;background:var(--k-warn-soft)}.txt-green{color:var(--k-ok);background:var(--k-ok-soft)}.k-pop-note{color:var(--k-muted);font-style:italic}.k-hv-recipe .k-hv-title{font-size:1rem}.k-hv-recipe-top{align-items:center;gap:.7rem;margin-bottom:.5rem;display:flex}.k-hv-emoji{background:linear-gradient(135deg, var(--k-primary-soft), #ffe9d4);border-radius:12px;flex-shrink:0;place-items:center;width:44px;height:44px;font-size:1.5rem;display:grid}.k-hv-tags{flex-wrap:wrap;gap:.35rem;margin-top:.2rem;display:flex}.k-hv-tags i{color:var(--k-primary-deep);background:var(--k-primary-soft);border-radius:99px;padding:.05rem .45rem;font-size:.68rem;font-style:normal;font-weight:800}.k-hv-block{margin:.45rem 0}.k-hv-label{color:var(--k-muted);margin-bottom:.15rem;font-size:.7rem;font-weight:900}.k-hv-text{color:var(--k-ink);margin:0;font-size:.8rem;line-height:1.65}.k-hv-steps{color:var(--k-ink);margin:0;padding-left:1.1rem;font-size:.8rem;line-height:1.7}.k-hv-more{margin-top:.55rem}.k-hv-row{text-align:left;cursor:pointer;width:100%;color:var(--k-ink);background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;gap:.6rem;padding:.3rem .2rem;font-size:.82rem;display:flex}.k-hv-row:hover{background:var(--k-surface-soft)}.k-hv-row em{color:var(--k-muted);white-space:nowrap;font-size:.7rem;font-style:normal}@keyframes kFade{0%{opacity:0}to{opacity:1}}@keyframes kPop{0%{opacity:0;transform:translateY(3px)scale(.99)}to{opacity:1;transform:none}}@media (width>=900px) and (width<=1279px){body[data-page=food-records] .app-shell{max-width:none}.k-col-cal{grid-column:1/8}.k-col-mid{grid-column:8/13}.k-col-day{display:none}}@media (width<=899px){.k-stage-primary{display:contents}.k-dash{flex-direction:column;gap:.7rem;display:flex}.k-col-mid,.k-mid-top{display:contents}.k-col-day{display:none}.k-col-cal{order:2}#kRecipeQuick{order:3}.k-col-pantry{order:4;width:100%}.k-col-shelf{order:5;width:100%}.k-col-price{order:6;width:100%}#kFrequent{order:7}#kChefs{order:8}.k-col-cal .k-cal-card-inner,.k-col-pantry .k-card,.k-col-shelf .k-card,.k-col-price .k-card{box-sizing:border-box;width:100%}}@media (width<=719px){body[data-page=food-records] .app-shell{padding:.7rem .6rem 2rem}.k-topbar{flex-wrap:wrap}.k-search{order:3;width:100%}.k-hero{padding:.95rem 1.1rem}.k-hero-art{display:none}.k-kpis-inner{grid-template-columns:repeat(2,1fr);gap:.5rem}.k-cal-grid{gap:1px}.k-day{min-height:46px}.k-day-lunar{font-size:.54rem}.k-cat-grid,.k-shelf-grid{grid-template-columns:1fr 1fr}.k-shelf-items{grid-template-columns:repeat(2,1fr)}.k-drawer{border-radius:20px 20px 0 0}}@media (width<=900px){.k-drawer{border-left:none;border-top:1px solid var(--k-line);border-radius:20px 20px 0 0;width:100%;height:auto;max-height:88vh;inset:auto 0 0;transform:translateY(102%)}.k-drawer-root.open .k-drawer{transform:translateY(0)}}.k-drawer-body .k-day-card{box-shadow:none;background:0 0;border:none;padding:0}.k-drawer-body .k-day-note{background:var(--k-surface-soft)}.k-drawer-body .k-recipe-card{max-width:100%}.k-topbar .k-title{line-height:1.2}.k-shelf-chip,.k-recipe-cat{user-select:none}.k-day:focus-visible,.k-freq-row:focus-visible,.k-recipe-card:focus-visible{outline:2px solid var(--k-primary);outline-offset:1px}body.k-drawer-open .main-area{overflow:hidden}.sf-switcher{backdrop-filter:blur(14px);background:#ffffffa8;border:1px solid #ece3d5;border-radius:999px;align-items:center;gap:.28rem;width:fit-content;margin-bottom:1.15rem;padding:.3rem .4rem;display:flex;box-shadow:0 8px 22px #5e47281a,inset 0 1px #ffffffd1}.sf-view-btn{color:#8a7a68;background:0 0;border:none;border-radius:50%;place-items:center;width:2.25rem;height:2.25rem;font-size:1.05rem;line-height:1;transition:background .18s,color .18s,transform .18s,box-shadow .18s;display:inline-grid;position:relative}.sf-view-btn:hover,.sf-view-btn:focus-visible{color:#5c4b3a;background:#ffffffeb;transform:translateY(-1px)}.sf-view-btn.active{color:#b06a12;background:#fffdf8;box-shadow:0 2px 8px #926a302e,inset 0 0 0 1px #ecd9b6}.sf-view-btn:focus-visible{outline-offset:2px;outline:2px solid #b06a1273}.sf-view-tip{z-index:5;color:#6b5744;white-space:nowrap;opacity:0;pointer-events:none;background:#fffffff7;border:1px solid #ece3d5;border-radius:.5rem;padding:.22rem .5rem;font-size:.66rem;font-weight:700;line-height:1.2;transition:opacity .18s,transform .18s;position:absolute;top:calc(100% + .5rem);left:50%;transform:translate(-50%,-.2rem);box-shadow:0 6px 16px #5e47281f}.sf-view-btn:hover .sf-view-tip,.sf-view-btn:focus-visible .sf-view-tip{opacity:1;transform:translate(-50%)}.sf-view[hidden]{display:none}.sf-view.active{animation:.22s sfViewIn}@keyframes sfViewIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (width<=560px){.sf-view-tip{display:none}}@media (width<=820px){body[data-page=schedule-finance]{overflow-x:hidden}body[data-page=schedule-finance] .app-shell{width:100%;max-width:none;padding:0 12px 8px}body[data-page=schedule-finance] .sf-page{width:100%;min-width:0}body[data-page=schedule-finance] .sf-top-spacer{flex-basis:10px;height:10px}body[data-page=schedule-finance] .sf-hero{min-height:0}body[data-page=schedule-finance] .sf-hero-copy{padding-top:18px}body[data-page=schedule-finance] .sf-hero-title-row{align-items:flex-end;gap:8px}body[data-page=schedule-finance] .sf-hero h1{font-size:28px}body[data-page=schedule-finance] .sf-hero-mark{width:62px;height:22px;margin-bottom:-2px}body[data-page=schedule-finance] .sf-month-switcher{align-self:flex-start;gap:8px;margin-top:11px;position:static}body[data-page=schedule-finance] .sf-month-button,body[data-page=schedule-finance] .sf-current-month{height:32px}body[data-page=schedule-finance] .sf-month-button{width:32px}body[data-page=schedule-finance] .sf-month-title{min-width:88px;font-size:18px}body[data-page=schedule-finance] .sf-current-month{min-width:54px;padding-inline:10px;font-size:12px}body[data-page=schedule-finance] .sf-hero-decoration{display:none}body[data-page=schedule-finance] .sf-primary-layout{flex-direction:column;gap:12px;display:flex}body[data-page=schedule-finance] .sf-primary-layout>.sf-kpi-row{order:1;grid-area:auto;width:100%}body[data-page=schedule-finance] .sf-kpi-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:0}body[data-page=schedule-finance] .sf-kpi-card{height:70px;padding-inline:9px}body[data-page=schedule-finance] .sf-kpi-card.is-renewal{grid-column:1/-1}body[data-page=schedule-finance] .sf-kpi-copy>span{font-size:clamp(9px,3.1cqi,12px)}body[data-page=schedule-finance] .sf-kpi-copy strong{font-size:clamp(12px,5.2cqi,18px)}body[data-page=schedule-finance] .sf-primary-layout .daily-tracker-col{order:2;grid-area:auto;width:100%}body[data-page=schedule-finance] .daily-tracker-col .calendar-view{height:auto;min-height:0}body[data-page=schedule-finance] .daily-tracker-col .cal-header{height:auto;min-height:48px;padding:8px 10px}body[data-page=schedule-finance] .daily-tracker-col .cal-title{flex:none;font-size:20px}body[data-page=schedule-finance] .daily-tracker-col .cal-legend{scrollbar-width:none;justify-content:flex-end;gap:6px;min-width:0;font-size:10px;overflow-x:auto}body[data-page=schedule-finance] .daily-tracker-col .cal-legend::-webkit-scrollbar{display:none}body[data-page=schedule-finance] .daily-tracker-col .cal-legend span{gap:3px}body[data-page=schedule-finance] .daily-tracker-col .cal-legend i{width:6px;height:6px}body[data-page=schedule-finance] .daily-tracker-col .cal-weekdays{height:30px}body[data-page=schedule-finance] .daily-tracker-col .cal-weekday{font-size:11px}body[data-page=schedule-finance] .daily-tracker-col .cal-grid{flex:none}body[data-page=schedule-finance] .daily-tracker-col .cal-cell{height:62px;min-height:62px;padding:7px 3px}body[data-page=schedule-finance] .daily-tracker-col .cal-date{text-overflow:ellipsis;white-space:nowrap;min-height:0;font-size:13px;line-height:1.2;display:block;overflow:hidden}body[data-page=schedule-finance] .daily-tracker-col .cal-date-today{width:auto;height:auto;color:var(--orange);background:0 0;place-items:normal;margin:0;font-size:12px;display:block}body[data-page=schedule-finance] .daily-tracker-col .cal-lunar{text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin:2px 0 0;font-size:9px;line-height:1.1;display:block;overflow:hidden}body[data-page=schedule-finance] .daily-tracker-col .cal-expense-dot,body[data-page=schedule-finance] .daily-tracker-col .cal-schedule-dot,body[data-page=schedule-finance] .daily-tracker-col .cal-subscription-dot,body[data-page=schedule-finance] .daily-tracker-col .cal-sleep-dot{width:5px;height:5px;bottom:8px}body[data-page=schedule-finance] .daily-tracker-col .cal-expense-dot{right:5px}body[data-page=schedule-finance] .daily-tracker-col .cal-schedule-dot{right:13px}body[data-page=schedule-finance] .daily-tracker-col .cal-subscription-dot{right:21px}body[data-page=schedule-finance] .daily-tracker-col .cal-sleep-dot{left:5px}body[data-page=schedule-finance] .sf-primary-layout .sf-context-panel{order:3;grid-area:auto;align-self:stretch;width:100%;min-height:0;padding:12px}body[data-page=schedule-finance] .sf-context-header{min-height:38px;padding-inline:2px}body[data-page=schedule-finance] .sf-context-header h2{font-size:19px}body[data-page=schedule-finance] .sf-context-header p{width:auto;max-width:125px;font-size:10px}body[data-page=schedule-finance] .sf-context-record-button{height:30px;padding-inline:9px;font-size:11px}body[data-page=schedule-finance] .sf-context-body{gap:10px}body[data-page=schedule-finance] .sf-context-expenses>header{min-height:52px;padding:7px 9px}body[data-page=schedule-finance] .sf-context-section-icon{flex-basis:32px;width:32px;height:32px;font-size:18px}body[data-page=schedule-finance] .sf-context-expenses>header>div>span,body[data-page=schedule-finance] .sf-context-mini>div>span{font-size:11px}body[data-page=schedule-finance] .sf-context-expenses>header strong,body[data-page=schedule-finance] .sf-context-mini strong{font-size:15px}body[data-page=schedule-finance] .sf-context-expense-row{min-height:35px;padding-inline:9px;font-size:12px}body[data-page=schedule-finance] .sf-context-expense-name,body[data-page=schedule-finance] .sf-context-expense-row strong{font-size:11px}body[data-page=schedule-finance] .sf-context-mini{gap:8px;min-height:52px;padding:8px}body[data-page=schedule-finance] .sf-context-mini em{margin-left:4px;padding-inline:5px;font-size:10px}body[data-page=schedule-finance] .sf-context-mini>small,body[data-page=schedule-finance] .sf-context-mini>div>small{text-overflow:ellipsis;max-width:42%;font-size:11px;overflow:hidden}body[data-page=schedule-finance] .sf-context-sleep>small{max-width:100%;margin-top:0;line-height:1.2}body[data-page=schedule-finance] .sf-context-subscription>div:first-of-type>small{color:var(--orange);font-size:14px;font-weight:800;line-height:1.1}body[data-page=schedule-finance] .sf-context-schedule-row{white-space:normal;align-items:flex-start;gap:4px;min-width:0;font-size:10px;overflow:visible}body[data-page=schedule-finance] .sf-context-schedule-row span{text-overflow:clip;white-space:nowrap;flex:0 0 53px;max-width:53px;overflow:visible}body[data-page=schedule-finance] .sf-context-schedule-row strong{overflow-wrap:anywhere;text-overflow:clip;white-space:normal;min-width:0;font-size:11px;line-height:1.45;overflow:visible}body[data-page=schedule-finance] .sf-primary-layout .sf-context-panel{height:clamp(560px,100dvh - 110px,620px)}body[data-page=schedule-finance] .sf-context-body{flex:auto;grid-template-rows:minmax(0,1.75fr) minmax(0,1.3fr) minmax(0,.9fr) minmax(0,.9fr);grid-template-areas:"expense expense""schedule schedule""sleep subscription""utility study";min-height:0;display:grid}body[data-page=schedule-finance] .sf-context-expenses{flex-direction:column;min-height:0;display:flex;overflow:hidden}body[data-page=schedule-finance] .sf-context-expense-list{flex-direction:column;flex:auto;min-height:0;display:flex}body[data-page=schedule-finance] .sf-context-expense-list .sf-context-expense-row{flex:1 1 0;min-height:0}body[data-page=schedule-finance] .sf-context-expense-list .sf-context-no-record{flex:auto;justify-content:center;align-items:center;display:flex}body[data-page=schedule-finance] .sf-context-schedule{align-items:center;min-height:0;display:flex}body[data-page=schedule-finance] .sf-context-schedule>div{flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex}body[data-page=schedule-finance] .sf-context-schedule-list{flex-direction:column;justify-content:space-evenly;height:100%;min-height:0;margin-top:0;display:flex;overflow:hidden}body[data-page=schedule-finance] .sf-context-schedule-row{flex:1 1 0;align-items:center;min-height:0}body[data-page=schedule-finance] .sf-context-sleep,body[data-page=schedule-finance] .sf-context-subscription,body[data-page=schedule-finance] .sf-context-utility,body[data-page=schedule-finance] .sf-context-study{align-self:stretch;min-height:0}body[data-page=schedule-finance] .sf-primary-layout .sf-analytics-grid{flex-direction:column;order:4;grid-area:auto;gap:12px;width:100%;margin-top:0;display:flex}body[data-page=schedule-finance] .sf-analytics-card{width:100%;height:auto;min-height:220px;max-height:none}body[data-page=schedule-finance] .sf-trend-card .expense-kanban-head,body[data-page=schedule-finance] .sf-category-card .expense-kanban-head,body[data-page=schedule-finance] .sf-subscription-card .expense-kanban-head{flex-wrap:wrap;gap:8px;padding:14px 14px 0}body[data-page=schedule-finance] .sf-trend-card .expense-kanban-head{flex-wrap:nowrap}body[data-page=schedule-finance] .sf-trend-toggle-row{padding:7px 14px 0}body[data-page=schedule-finance] .sf-trend-card .expense-kanban-title,body[data-page=schedule-finance] .sf-category-card .expense-kanban-title,body[data-page=schedule-finance] .sf-subscription-card .expense-kanban-title{font-size:17px}body[data-page=schedule-finance] .sf-chart-toggle{height:26px;font-size:11px}body[data-page=schedule-finance] .sf-chart-toggle span,body[data-page=schedule-finance] .sf-chart-toggle button{padding-inline:10px}body[data-page=schedule-finance] .sf-trend-card .expense-line-chart-wrap,body[data-page=schedule-finance] .sf-trend-card .expense-line-chart{height:160px}body[data-page=schedule-finance] .sf-trend-card .expense-line-chart-wrap{padding-inline:8px}body[data-page=schedule-finance] .sf-category-list{gap:7px;padding:10px 14px 14px;overflow-y:visible}body[data-page=schedule-finance] .sf-category-card>#sfCategorySummary{height:auto}body[data-page=schedule-finance] .sf-category-row{grid-template-columns:12px 60px minmax(0,1fr) 56px;gap:5px}body[data-page=schedule-finance] .sf-category-swatch{width:12px;height:12px}body[data-page=schedule-finance] .sf-category-name,body[data-page=schedule-finance] .sf-category-amount{font-size:12px}body[data-page=schedule-finance] .sf-category-track{height:12px}body[data-page=schedule-finance] .sf-subscription-card .expense-kanban-title{font-size:17px}body[data-page=schedule-finance] .sf-subscription-add{height:28px;padding-inline:10px;font-size:11px}body[data-page=schedule-finance] .sf-subscription-list{padding:7px 14px 0}body[data-page=schedule-finance] .sf-subscription-row{grid-template-columns:34px minmax(0,1fr) auto;gap:7px;min-height:48px;padding-inline:5px}body[data-page=schedule-finance] .sf-subscription-logo{width:30px;height:30px;font-size:18px}body[data-page=schedule-finance] .sf-subscription-logo img{width:26px;height:26px}body[data-page=schedule-finance] .sf-subscription-copy strong{font-size:12px}body[data-page=schedule-finance] .sf-subscription-copy span,body[data-page=schedule-finance] .sf-subscription-price span{font-size:10px}body[data-page=schedule-finance] .sf-subscription-copy em{height:17px;padding-inline:5px;font-size:9px}body[data-page=schedule-finance] .sf-subscription-price strong{font-size:13px}body[data-page=schedule-finance] .sf-subscription-more{margin-top:9px}body[data-page=schedule-finance] .sf-footer{flex-direction:column;align-items:flex-start;gap:3px;padding-top:4px;font-size:10px}}.k-inline-recipes{border-top:1px dashed var(--k-line);margin-top:.7rem;padding-top:.6rem}.k-inline-recipes-title{color:var(--k-primary-deep);justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.45rem;font-size:.74rem;font-weight:900;display:flex}.k-inline-close{font-weight:800}.k-rec-list{flex-direction:column;gap:.45rem;display:flex}.k-rec-list .k-recipe-card{padding:.4rem .5rem}
