:root{color-scheme:light;--paper:#f8f7f2;--card:#fffefa;--ink:#282e25;--grey:#64695e;--quiet:#797d71;--line:#dedfd4;--green:#394f3e;--orange:#ae5132;--serif:Georgia,"Noto Serif CJK SC","Songti SC","STSong","SimSun",serif;--sans:"Segoe UI","PingFang SC","Microsoft YaHei UI","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.5 var(--sans);-webkit-font-smoothing:antialiased;min-height:100dvh}
body:has(dialog[open]){overflow:hidden}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
button:focus-visible,a:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
button:disabled{opacity:.4;cursor:default}
h1,h2,h3,h4,p{margin:0}
svg{display:block}
.star-glyph{display:block}
.star-glyph path{fill:currentColor}
[hidden]{display:none!important}
.muted{color:var(--quiet);font-size:12px}

/* ---------- 顶栏 ---------- */
.appbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:18px;height:64px;padding:0 28px;background:rgba(255,254,250,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:9px}
.brand-art{width:32px;height:32px;color:var(--orange)}
.brand-name{font:700 23px/1 var(--serif);letter-spacing:.06em}
.brand-en{font:600 9px/1.2 var(--sans);letter-spacing:.24em;color:var(--quiet);padding-top:4px}
.appbar-sub{color:var(--quiet);font-size:12px;border-left:1px solid var(--line);padding-left:18px;letter-spacing:.04em}
.appbar-link{font-size:12px;color:var(--grey);border-bottom:1px solid #c9cdbd;padding-bottom:2px;white-space:nowrap}
.appbar-link:hover{color:var(--orange);border-color:var(--orange)}
.sync-banner{display:flex;align-items:center;gap:12px;background:#f6f3e6;border:1px dashed #d9cfae;border-radius:9px;padding:11px 14px;margin-bottom:14px}
.sync-banner .star-glyph{width:17px;height:17px;color:#c9a35c;flex:none}
.sync-banner p{flex:1;font-size:12px;color:#6f6a52;line-height:1.6}
.sync-banner .textlink{white-space:nowrap}
.sync{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:12px;color:#55684e;background:#eef1e4;border:1px solid #dbe2cd;border-radius:99px;padding:7px 14px;white-space:nowrap}
.sync i{width:7px;height:7px;border-radius:50%;background:#6f8f62;box-shadow:0 0 0 3px #6f8f6222}

/* ---------- 骨架 ---------- */
.shell{display:grid;grid-template-columns:228px minmax(0,1fr) 368px;gap:24px;max-width:1600px;margin:0 auto;padding:24px 28px 48px;align-items:start}
.sidenav{position:sticky;top:88px;padding:12px;background:var(--card);border:1px solid var(--line);border-radius:14px;display:grid;gap:4px}
.nav-item{display:flex;align-items:center;gap:10px;padding:12px 13px;border-radius:9px;font:600 13.5px/1.3 var(--sans);color:var(--grey);text-align:left;letter-spacing:.02em}
.nav-item svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.nav-item:hover{background:#f1f2e9;color:#3a4736}
.nav-item.active{background:var(--green);color:#fdfcf7}
.nav-item small{margin-left:auto;font:500 11px/1 var(--sans);opacity:.7}
.nav-foot{margin-top:12px;padding:12px 13px 8px;border-top:1px dashed var(--line);font-size:11px;color:var(--quiet);line-height:1.8}
.nav-foot b{display:block;color:#5b6653;font-weight:600}
.dot-online{display:inline-block;width:6px;height:6px;border-radius:50%;background:#6f8f62;margin-right:5px}
.workspace{min-width:0}

/* ---------- 面板通用 ---------- */
.panel{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px 24px 20px}
.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.panel-head h2{font:700 23px/1.3 var(--serif);letter-spacing:.04em}
.panel-head p{color:var(--quiet);font-size:12px;margin-top:5px;letter-spacing:.03em}
.primary{display:inline-flex;align-items:center;gap:6px;background:var(--green);color:#fdfcf7;font:600 13px/1.3 var(--sans);letter-spacing:.04em;border-radius:8px;padding:10px 16px;white-space:nowrap}
.primary:hover{background:#283e2d}
.secondary{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid #d1d6c7;background:var(--card);border-radius:8px;font-size:13px;padding:9px 14px}
.secondary:hover{background:#eff1e7}
.textlink{color:var(--grey);font-size:12px;border-bottom:1px solid #c9cdbd;padding-bottom:2px}
.textlink:hover{color:var(--orange);border-color:var(--orange)}
.iconbtn{width:27px;height:27px;display:grid;place-items:center;border-radius:6px;color:#8a907f;font-size:13px}
.iconbtn:hover{background:#eef1e6;color:#3a4736}

/* ---------- 期待的日子 ---------- */
.cal-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.stepper{display:flex;align-items:center;gap:2px;border:1px solid var(--line);border-radius:8px;background:var(--card);padding:2px;height:34px}
.stepper button{width:28px;height:28px;display:grid;place-items:center;border-radius:5px;color:var(--grey)}
.stepper button:hover{background:#eef1e6}
.stepper output{min-width:96px;text-align:center;font:600 13px/1.2 var(--sans);font-variant-numeric:tabular-nums}
.cal-hint{margin-left:auto;color:var(--quiet);font-size:11px}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:18px}
.cal .wd{font:600 11px/1 var(--sans);color:var(--quiet);text-align:center;padding:5px 0;letter-spacing:.08em}
.cal-day{min-height:76px;border:1px solid #e4e5da;border-radius:9px;background:#fffefa;padding:6px 7px;display:flex;flex-direction:column;gap:3px;text-align:left;min-width:0}
.cal-day:hover{border-color:#b7c2ab;background:#fcfbf4;box-shadow:0 2px 8px #39462c10}
.cal-day .dnum{font:400 15px/1 Georgia,serif;color:#3c4534}
.cal-day.today{border-color:#c9a98f;background:#fdf7ee}
.cal-day.today .dnum{color:var(--orange);font-weight:700}
.cal-chip{display:block;font:500 10px/1.5 var(--sans);border-radius:4px;padding:0 5px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-more{font-size:9px;color:var(--quiet);padding-left:2px}
.plan-list{display:grid}
.plan-row{display:flex;align-items:center;gap:10px;padding:11px 2px;border-bottom:1px solid #e8e9df;min-width:0}
.plan-row:hover{background:#f6f7ee}
.pdot{width:7px;height:7px;border-radius:50%;flex:none}
.pdate{font:600 12px/1.2 var(--sans);color:#66735c;min-width:52px;white-space:nowrap}
.ptitle{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.pcat{font-size:11px;color:var(--quiet);white-space:nowrap;flex:none}
.pnote{font-size:12px;color:var(--grey);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.pactions{display:flex;gap:2px;margin-left:auto;flex:none}
.list-title{display:flex;align-items:center;gap:8px;margin:16px 0 4px;font:700 15px/1.4 var(--serif);color:#46523f}
.list-title .muted{font-weight:400}
.empty-line{padding:22px 4px;color:var(--quiet);font-size:13px}

/* ---------- 回忆相册 ---------- */
.album-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.mem-card{border:1px solid var(--line);border-radius:11px;overflow:hidden;background:#fffefa;display:flex;flex-direction:column;min-width:0}
.mem-card:hover{border-color:#c2b99f;box-shadow:0 6px 18px #3a46331a}
.mem-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:#e9e7da}
.mem-body{padding:10px 12px 9px;display:grid;gap:4px;min-width:0}
.mem-title{font:600 14px/1.4 var(--serif);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mem-meta{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--quiet)}
.mem-feel{font-size:12px;color:var(--grey);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:38px}
.mem-foot{display:flex;align-items:center;gap:6px;padding:0 8px 8px;margin-top:auto}
.mem-foot .iconbtn{margin-left:0}
.mem-foot .spacer{flex:1}

/* ---------- 爱心头像 ---------- */
.heart-layout{display:flex;gap:30px;align-items:flex-start;flex-wrap:wrap}
.heart-stage{width:230px;flex:none;display:grid;justify-items:center;gap:14px}
.heart-big{position:relative;width:214px;height:214px;filter:drop-shadow(0 12px 26px #3a463324);animation:heartBob 7.5s ease-in-out infinite}
.heart-big .ring{position:absolute;inset:0;clip-path:url(#heartMask);background:#fffefa}
.heart-big .pic{position:absolute;inset:5.2%;clip-path:url(#heartMask);overflow:hidden;background:#fffefa}
.heart-big .pic img{width:100%;height:100%;object-fit:cover;display:block}
.heart-stage p{font-size:11px;color:var(--quiet);text-align:center;line-height:1.8}
@keyframes heartBob{0%,100%{transform:translateY(-4px) rotate(-2deg)}50%{transform:translateY(4px) rotate(2deg)}}
.picker-block{flex:1;min-width:280px}
.picker-title{display:flex;align-items:baseline;gap:8px;font:700 15px/1.4 var(--serif);color:#46523f;margin-bottom:9px}
.picker-title small{font:400 11px/1 var(--sans);color:var(--quiet)}
.photo-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}
.photo-opt{position:relative;border:2px solid transparent;border-radius:8px;overflow:hidden;padding:0;background:#e9e7da;aspect-ratio:1;cursor:pointer}
.photo-opt img{width:100%;height:100%;object-fit:cover;display:block}
.photo-opt:hover{border-color:#c9cdb9}
.photo-opt.selected{border-color:var(--orange);box-shadow:0 0 0 2px #e8c9b666}
.photo-opt .order{position:absolute;right:4px;top:4px;min-width:17px;height:17px;border-radius:50%;background:var(--orange);color:#fff;font:600 10px/17px var(--sans);text-align:center;display:none}
.photo-opt.selected .order{display:block}
.bg-grid{display:flex;flex-wrap:wrap;gap:7px;margin-top:4px}
.bg-opt{position:relative;width:64px;border:2px solid transparent;border-radius:8px;overflow:hidden;padding:0;aspect-ratio:1;cursor:pointer;background:#e9e7da}
.bg-opt img{width:100%;height:100%;object-fit:cover;display:block}
.bg-opt.none{display:grid;place-items:center;font-size:10px;color:var(--quiet);background:#f3f1e6}
.bg-opt:hover{border-color:#c9cdb9}
.bg-opt.selected{border-color:var(--orange);box-shadow:0 0 0 2px #e8c9b666}

/* ---------- 温馨语句 ---------- */
.today-line-card{display:flex;align-items:center;gap:14px;background:#f6f1e1;border:1px solid #e5d9bd;border-radius:11px;padding:16px 18px;margin-bottom:16px}
.today-line-card .star-glyph{width:22px;height:22px;color:var(--orange);flex:none}
.today-line-card .txt{font:400 17px/1.6 var(--serif);color:#4c4433;flex:1}
.today-line-card .tag{font:600 10px/1 var(--sans);color:#8c512d;background:#efe3c6;border-radius:5px;padding:4px 7px;letter-spacing:.1em;white-space:nowrap}
.line-row{display:flex;align-items:center;gap:12px;padding:12px 6px;border-bottom:1px solid #e8e9df}
.line-row:hover{background:#f6f7ee}
.line-row .num{font:400 12px/1 Georgia,serif;color:#9aa091;min-width:22px}
.line-row .txt{font:400 14px/1.6 var(--serif);color:#3f4a3c;flex:1}
.line-row.is-today{background:#faf5e6;border-radius:8px}
.line-row .tag{font:600 10px/1 var(--sans);color:#8c512d;background:#efe3c6;border-radius:4px;padding:3px 6px;margin-right:4px}
.line-add{display:flex;gap:8px;margin-top:14px}
.line-add input{flex:1;border:1px solid #d5d8c9;border-radius:8px;background:#fffefa;padding:10px 12px;font-size:13px;outline:none}
.line-add input:focus{border-color:#7d9070;box-shadow:0 0 0 2px #dbe3d5}
.line-rotate-note{margin-top:10px;font-size:11px;color:var(--quiet)}

/* ---------- 玄关预览 ---------- */
.preview-pane{position:sticky;top:88px}
.preview-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px 16px 14px}
.preview-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.preview-head h3{font:700 15px/1.3 var(--serif);color:#3f4a3c;letter-spacing:.04em}
.seg{display:flex;border:1px solid var(--line);border-radius:8px;padding:2px;background:#f6f7ef}
.seg button{font:600 11px/1 var(--sans);color:var(--quiet);padding:6px 11px;border-radius:6px}
.seg button.on{background:var(--green);color:#fff}
.device{width:300px;margin:14px auto 0;aspect-ratio:744/1133;background:#141712;border-radius:26px;padding:9px;box-shadow:0 26px 60px #2a332a33,0 0 0 1px #ffffff10}
.mini-screen{position:relative;width:100%;height:100%;border-radius:18px;overflow:hidden;background:#f8f7f2;container-type:size;color:#282e25}
.mini-day{position:absolute;inset:0;display:flex;flex-direction:column;padding:7cqh 8cqw 5cqh;z-index:1}
.mini-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(9px) saturate(.85) brightness(1.03);opacity:.5;z-index:0}
.mini-scrim{position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,rgba(248,247,242,.55) 0%,rgba(248,247,242,.72) 35%,#f8f7f2 68%)}
.mini-head{display:flex;align-items:center;gap:2.4cqw;font:600 3.4cqw/1 var(--sans);color:#5b6653}
.mini-head .m-brand{font:700 4.6cqw/1 var(--serif);letter-spacing:.1em;color:#2c3d2e}
.mini-head time{margin-left:auto;font:400 4.6cqw/1 Georgia,serif;color:#5f665a;font-variant-numeric:tabular-nums}
.mini-head time .s{font-size:.62em;color:#8d9384}
.mini-ym{margin-top:6cqh;font:650 3.1cqw/1 var(--serif);letter-spacing:.42em;color:var(--green)}
.mini-num{display:flex;align-items:baseline;gap:2.6cqw;margin-top:2cqw}
.mini-num b{font:400 15.5cqw/1 Georgia,serif;color:#2c3d2e;letter-spacing:-.03em}
.mini-num span{font:650 4.4cqw/1.1 var(--sans);color:#4f5747;letter-spacing:.1em}
.mini-lunar{margin-top:2.4cqw;font:400 3.4cqw/1.4 var(--sans);color:var(--quiet);letter-spacing:.16em}
.mini-line{margin-top:3.4cqw;font:400 3.2cqw/1.7 var(--serif);color:#666e5b;letter-spacing:.04em;min-height:8cqw}
.mini-heart{position:absolute;right:7.5cqw;top:12.5cqw;width:20cqw;height:20cqw;z-index:2;filter:drop-shadow(0 1.4cqw 3cqw #3a463326);animation:heartBobMini 7.5s ease-in-out infinite}
.mini-heart .himg{position:absolute;inset:0;clip-path:url(#heartMask);overflow:hidden;background:#fffefa}
.mini-heart .himg img{width:100%;height:100%;object-fit:cover;display:block}
.mini-heart:after{content:"";position:absolute;left:50%;top:92%;width:1.4px;height:9cqw;background:linear-gradient(180deg,#a99a86aa,transparent);transform-origin:top;animation:stringSwayMini 6.8s ease-in-out infinite}
@keyframes heartBobMini{0%,100%{transform:translateY(-.8cqw) rotate(-3deg)}50%{transform:translateY(.8cqw) rotate(3deg)}}
@keyframes stringSwayMini{0%,100%{transform:translateX(-50%) rotate(-2deg)}55%{transform:translateX(-50%) rotate(2.2deg)}}
.mini-stamp{margin-top:auto;display:flex;background:#f4e8d5;border-radius:1.6cqw;transform:rotate(-.6deg);box-shadow:0 1.2cqw 3cqw #67563421;overflow:hidden}
.mini-stamp-main{flex:1;min-width:0;padding:3cqw 3.6cqw;display:flex;flex-direction:column;gap:1cqw}
.mini-label{display:flex;align-items:center;gap:1.4cqw;font:650 2.5cqw/1.2 var(--sans);color:#8b5b3d;letter-spacing:.18em}
.mini-label .star-glyph{width:2.6cqw;height:2.6cqw;color:#c98a4e}
.mini-stamp-main b{font:700 4.8cqw/1.3 var(--serif);color:#493d2b;margin-top:.6cqw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mini-stamp-main .mdate{font:400 2.8cqw/1.4 var(--sans);color:#726856;letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mini-stamp-main .mcat{display:flex;align-items:center;gap:1.2cqw;font:600 2.6cqw/1.2 var(--sans);color:#655d4f;margin-top:.8cqw}
.mini-stamp-main .mcat i{width:1.6cqw;height:1.6cqw;border-radius:50%;display:inline-block}
.mini-stub{flex:none;width:26%;border-left:1px dashed #bfaa8b;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8cqw;background:#f0e2c8}
.mini-stub b{font:400 10.5cqw/1 Georgia,serif;color:#8c512d}
.mini-stub span{font:600 2.8cqw/1 var(--sans);color:#71563d}
.mini-stub.is-today span{display:none}
.mini-stub.is-today b{font:700 5.6cqw/1.1 var(--serif);color:var(--orange);letter-spacing:.06em}
.mini-album{margin-top:3.4cqw;display:grid;grid-template-columns:repeat(3,1fr);gap:2cqw}
.mini-album img{width:100%;height:15cqw;object-fit:cover;border-radius:1.6cqw;display:block;box-shadow:0 1cqw 2.4cqw #3a463322}
.mini-night{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse 60% 40% at 50% 42%,#182b32,#0b1114 80%);color:#968c6d;z-index:2}
.device.night .mini-day{display:none}
.device.night .mini-night{display:flex}
.mini-night .stars{position:absolute;inset:0;background-image:radial-gradient(1px 1px at 18% 22%,#cfd9c9 50%,transparent 51%),radial-gradient(1px 1px at 72% 15%,#cfd9c9 50%,transparent 51%),radial-gradient(1.5px 1.5px at 40% 62%,#d8cfae 50%,transparent 51%),radial-gradient(1px 1px at 84% 68%,#cfd9c9 50%,transparent 51%),radial-gradient(1px 1px at 25% 78%,#b9c6b2 50%,transparent 51%),radial-gradient(1.5px 1.5px at 62% 40%,#e2d8b0 50%,transparent 51%);opacity:.7}
.mini-night time{position:relative;font:400 10.5cqw/1 Georgia,serif;color:#968c6d;letter-spacing:.05em;font-variant-numeric:tabular-nums}
.mini-night .ndate{position:relative;margin-top:3cqh;font:400 3cqw/1 var(--sans);color:#4f4c39;letter-spacing:.3em}
.mini-night .nnext{position:relative;margin-top:4.6cqh;font:400 2.9cqw/1.2 var(--sans);color:#5f5b45;letter-spacing:.1em}
.preview-note{margin-top:12px;text-align:center;font-size:11px;color:var(--quiet);line-height:1.7}
.preview-legend{display:flex;justify-content:center;gap:14px;margin-top:6px;font-size:10px;color:#9aa091}
.preview-legend span{display:inline-flex;align-items:center;gap:4px}
.preview-legend i{width:6px;height:6px;border-radius:50%;background:#7f9a70}

/* ---------- 对话框 ---------- */
dialog{border:1px solid #d9dbce;background:var(--card);color:var(--ink);padding:0;width:min(480px,calc(100vw - 32px));max-height:88dvh;border-radius:14px;box-shadow:0 24px 90px #212d2633}
dialog.wide{width:min(640px,calc(100vw - 32px))}
dialog::backdrop{background:rgba(33,42,35,.34);backdrop-filter:blur(3px)}
.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:19px 22px 12px;gap:16px}
.dialog-head h2{font:700 21px/1.4 var(--serif)}
.dialog-head .iconbtn{font-size:15px}
.dialog-body{padding:0 22px 22px;overflow:auto;max-height:calc(88dvh - 70px)}
.dialog-body form{display:grid;gap:14px}
.dialog-body label,.dialog-body legend{font-size:12px;color:#54604c;font-weight:600}
.dialog-body label{display:grid;gap:6px}
.dialog-body fieldset{margin:0;padding:0;border:0;min-width:0}
.dialog-body legend{margin:0 0 7px;padding:0}
.dialog-body input,.dialog-body select,.dialog-body textarea{background:#fffefa;border:1px solid #d1d5c7;border-radius:7px;padding:9px 10px;outline:none;font-weight:400;width:100%;min-width:0;font-size:13.5px}
.dialog-body textarea{resize:vertical;min-height:64px}
.dialog-body input:focus,.dialog-body select:focus,.dialog-body textarea:focus{border-color:#6c8062;box-shadow:0 0 0 2px #dbe3d5}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.choices{display:flex;gap:6px;flex-wrap:wrap}
.choices label{position:relative;display:flex;align-items:center;gap:6px;font-size:12px;font-weight:400;border:1px solid var(--line);border-radius:16px;padding:6px 12px;cursor:pointer}
.choices input{position:absolute;opacity:0;width:1px;height:1px;padding:0}
.choices label:has(:checked){background:var(--tint);border-color:var(--tone);color:var(--tone);font-weight:600}
.dialog-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:4px}
.day-plans{display:grid;gap:6px;margin-bottom:14px}
.day-line{display:flex;align-items:center;gap:9px;padding:10px 12px;background:#f2f3eb;border-radius:8px}
.day-line .ptitle{flex:1}
.full{width:100%}
.secondary.full{justify-content:center}
.danger{color:#a14d37;border-color:#e0c4b8}
.danger:hover{background:#f8ece6}
.pick-hint{font-size:11px;color:var(--quiet);margin-top:-4px}
.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,8px);background:#354a38;color:#fff;border-radius:8px;padding:9px 16px;font-size:13px;opacity:0;pointer-events:none;transition:.2s;z-index:60}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* 时间上方的秒 */
#miniClock .s{font-size:.6em;color:#8d9384;font-style:normal}

@media(max-width:1280px){.shell{grid-template-columns:210px minmax(0,1fr) 340px;gap:18px}}
@media(max-width:1120px){.shell{grid-template-columns:200px minmax(0,1fr)}.preview-pane{display:none}}
@media(max-width:820px){.shell{grid-template-columns:1fr;padding:16px}.sidenav{position:static;display:flex;overflow:auto}.nav-foot{display:none}.album-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* ---------- 配置页补充 ---------- */
.photo-grid .photo-opt{cursor:pointer}
.photo-opt .order{display:none}
.photo-opt.selected .order{display:block}
.photo-picker-hint{margin:10px 0 0;font-size:11.5px;color:var(--quiet);line-height:1.8}
.photo-empty{padding:26px 4px;color:var(--quiet);font-size:13px;line-height:1.9}
.heart-picker-title{margin:20px 0 9px;font:700 15px/1.4 var(--serif);color:#46523f;display:flex;align-items:baseline;gap:8px}
.heart-picker-title small{font:400 11px/1 var(--sans);color:var(--quiet)}
.bg-opt.none{font-size:11px}
.settings-grid{display:grid;gap:0;max-width:620px}
.setting-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 4px;border-bottom:1px solid #e8e9df}
.setting-row .label{display:grid;gap:4px}
.setting-row .label b{font-size:13px;font-weight:600;color:#3f4a3c}
.setting-row .label span{font-size:11.5px;color:var(--quiet);line-height:1.7}
.setting-row input[type=time],.setting-row select{border:1px solid #d5d8c9;border-radius:7px;background:#fffefa;padding:8px 10px;font-size:13px;color:var(--ink);outline:none}
.setting-row input[type=time]:focus,.setting-row select:focus{border-color:#6c8062;box-shadow:0 0 0 2px #dbe3d5}
.setting-row input[type=range]{width:200px;accent-color:var(--green)}
.setting-value{min-width:44px;text-align:right;font-size:12.5px;color:var(--grey);font-variant-numeric:tabular-nums}
.settings-note{margin:16px 0 0;padding:12px 14px;border-radius:8px;background:#f6f3e6;border:1px dashed #d9cfae;color:#6f6a52;font-size:11.5px;line-height:1.8}
.sync{transition:color .2s}
.sync.saved{color:#55684e}
