/* 甜蜜情侣风：黑体、蜜桃粉与奶油白。保留双人插画，弱化手帐装饰。 */
:root{--paper:#fffdfb;--canvas:#fff6f3;--ink:#654653;--muted:#8b727b;--green:#a7536c;--line:#efdee2;--soft:#faecee;--rose:#b75b76;--sans:"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;--serif:var(--sans);--grid:#fff0eb;background:var(--canvas);font-family:var(--sans);color:var(--ink)}
body{background:linear-gradient(90deg,#f7f1e4 1px,transparent 1px),linear-gradient(#f7f1e4 1px,transparent 1px),#eee8d9;background-size:28px 28px}button,input,textarea{touch-action:manipulation}button:active{filter:brightness(.96)}button svg,.icon{stroke-width:1.8}.shell{max-width:1060px;display:block;background:var(--paper);box-shadow:0 0 50px #7d644716;min-height:100dvh}.sidebar{position:relative;top:auto;width:100%;height:auto;padding:24px 38px;border:0;border-bottom:2px solid #e6d6b9;display:flex;flex-direction:row;align-items:center;justify-content:space-between;background:#f9f4e8;gap:20px}.brand-mark{border:2px solid #b59372;background:#fff5d5;color:#a37c52;width:44px;height:44px;box-shadow:2px 3px 0 #d8c5a5}.brand strong{font:600 24px var(--serif);letter-spacing:2px}.brand small{font:11px var(--sans);letter-spacing:1px}.sidebar .nav{flex-direction:row;gap:6px}.nav button{padding:12px 16px;gap:7px;font-size:13px;border:2px solid transparent;border-radius:14px}.nav button.active{color:#72533c;background:#e7edc4;border-color:#c8d295}.nav button:not(.active):hover{background:#f7ecd6}.sidebar-bottom{display:none}.main{max-width:none;padding:22px 36px 45px}.topbar{height:35px;margin-bottom:20px}.breadcrumb{font-size:12px}.top-actions .plain-link{color:#86613f}.page-intro h1{font:600 29px var(--serif);letter-spacing:2px}.page-intro p{font-size:13px}.icon-button{color:#9a775b;border-radius:12px;min-width:44px;min-height:44px}.plain-link{font-size:12px;min-height:44px;display:inline-flex;align-items:center}.story-layout{max-width:840px;grid-template-columns:minmax(300px,410px) 1fr;gap:34px;margin:auto}.story-stage{border:3px solid #d2b797;border-radius:22px 22px 16px 16px;box-shadow:5px 6px 0 #eee0c3;background:#f6eacb}.story-heading{padding:7% 8%}.story-heading h2{font:600 36px/1.55 var(--serif);color:#704b38;letter-spacing:3px}.story-heading p{color:#805e47;font-size:12px;line-height:1.6}.story-eyebrow{font-size:12px;color:#806d4d}.story-heading .save-mark{stroke:#a58a61}.signature-wrap{bottom:3%;left:6%;right:6%}.signature-note{color:#79593f;font-size:11px;letter-spacing:0}.stamp{border:2px dashed #ae9167;background:#fffaf2db;color:#805e44;width:91px;height:91px;box-shadow:2px 3px 0 #a98e5a12}.stamp:before{border-color:#d2bc97}.stamp strong{font:600 22px var(--serif)}.stamp small{font-size:10px}.stamp.signed{color:#b36b5d;border-color:#b36b5d;background:#fff2e6e8}.stamp.signed:before{border-color:#dba398}.signature-action{margin-top:5px}.signature-action button{font-size:11px;min-height:36px;color:#815f45}.story-wash{background:linear-gradient(180deg,#fff7dbb3,transparent 36%,transparent 70%,#fff7dc99 92%)}.story-pagination{font-size:12px;padding-top:15px}.story-pagination button{font-size:12px;min-height:44px;padding:6px}.story-notes{padding:23px 20px;background:#fffaf0;border:2px solid #efdfbd;border-radius:16px;position:relative;margin-top:15px}.story-notes:before{content:"";position:absolute;top:-10px;left:36%;width:80px;height:23px;background:#e8bcb185;transform:rotate(-4deg);border-left:2px dashed #d99b8d66;border-right:2px dashed #d99b8d66}.section-label h2{font-size:15px}.section-label span{font-size:12px}.progress-title{font:600 31px var(--serif)}.progress-title span{font-size:13px}.progress-block>p{font-size:12px}.progress-track{height:8px;background:#eee4c6;border:1px solid #d9c89d;border-radius:12px;overflow:hidden}.progress-track>i{background:#abbf7b}.mini-row{font-size:13px;min-height:60px;border-bottom:1px dashed #dec8ac}.mini-row .index{color:#b09069}.mini-row .icon{color:#ad8c66}.notes-line{height:0;border-top:1px dashed #d9bf9f;background:none}.quote{font:17px/2 var(--serif);margin:0;color:#85684f;letter-spacing:0}.quote cite{color:#9a8067;font-size:11px}.btn{border:2px solid #9fae72;border-radius:14px;color:#4d6034;background:#e5edc4;box-shadow:0 3px 0 #c6d19f;font-size:14px;min-height:46px;font-weight:500}.btn:hover{background:#dce6b1}.btn.secondary{color:#795b43;border-color:#dfc59c;background:#fff8e9;box-shadow:0 3px 0 #eee0c5}.btn.secondary:hover{background:#f7edda}.btn.danger{background:#f6dcd4;border-color:#c38c80;color:#8b5144;box-shadow:0 3px 0 #e5bcb1}.panel{border:2px solid #f0dfbb;background:#fffbf3;border-radius:22px;box-shadow:none}.panel h2{font:600 20px var(--serif)}.panel-sub{font-size:13px}.field{font-size:14px}.field input,.field select,.field textarea{border:2px solid #e5d5b4;border-radius:12px;background:#fffefb;font-size:16px}.field small,.tiny{font-size:12px}.empty{font-size:14px}.empty h3{font:600 24px var(--serif)}.avatar{background:#f4dfb4;border:2px solid #cfb590;color:#876447}.avatar.fang{background:#e2dce8;border-color:#bdb1c5;color:#776783}.chat-page{border:2px solid #dcc4a2;max-width:800px;margin:auto;background:#fffdf5;border-radius:22px}.chat-head{background-color:var(--grid);background-image:linear-gradient(#fff9 1px,transparent 1px),linear-gradient(90deg,#fff9 1px,transparent 1px);background-size:24px 24px;border-bottom:2px solid #c9b38e}.chat-head h1{font:600 21px var(--serif)}.chat-head p{font-size:12px}.bubble{border:2px solid #efdfc1;background:#fff8e9;border-radius:5px 17px 17px;font-size:14px}.mine .bubble{background:#edf0cf;border-color:#d0d9aa;border-radius:17px 5px 17px 17px}.message-meta{font-size:11px}.message-meta button{font-size:11px;min-height:32px;padding:3px 8px}.composer{background:#faf6ed;border-color:#e5d4b3}.compose-row textarea{border:2px solid #e0ccaa;font-size:16px;border-radius:12px}.emoji-bar button{width:38px;height:38px}.chat-hint{font-size:11px}.settings-page{margin:auto;max-width:740px}.notice{background:#f2f0d7;border:1px dashed #cab991;font-size:13px}.notice.error{background:#fae8e0}.inline-code{background:#edf0cf;color:#675b36}.install-steps{font-size:13px}.account-details{font-size:13px}.identity-title{font-size:12px}.role-buttons button{font-size:13px;min-height:44px;background:#fffaf0;border:2px solid #e2cda8;border-radius:13px}.role-buttons button.selected{color:#675738;background:#edf0ce;border-color:#b9c58d}.badge{background:#ba786a}.toast{background:#785c46f5;border:2px solid #a88c6e;border-radius:16px;font-size:13px}dialog{border:3px solid #dbc39d;border-radius:24px;background:#fffcf4}.modal-head{background:#fffcf4}.modal-head h2{font:600 25px var(--serif)}.modal-desc{font-size:14px}.modal-body .notice{font-size:14px}.form-error,.form-status{font-size:13px}.all-list strong{font-size:14px}.all-list small{font-size:12px}.all-list button{border-bottom:1px dashed #e3d0ad}.list-number{color:#ac8e65}.list-filters button{font-size:12px;min-height:40px;border:1.5px solid #d8c39e}.list-filters button.active{background:#e8edc7;color:#605a36;border-color:#a4b174}.status-pill{font-size:11px;background:#f3eacf;color:#806a46}.status-pill.approved{background:#e6edc9}.status-pill.pending{background:#f8e5c4}.list-search{border:2px solid #e2d1ad;border-radius:12px}.list-search input{font-size:16px}.form-status{color:#62783e}.auth-tabs button.active{border-color:#b6c181}.auth-tabs button{font-size:14px}
/* 首页像翻开的笔记本：格纸封面与装订纸页。 */
.scrap-home{margin:-22px -36px -45px;min-height:75vh}.scrap-hero{background-color:var(--grid);background-image:linear-gradient(#fff9 1.5px,transparent 1.5px),linear-gradient(90deg,#fff9 1.5px,transparent 1.5px);background-size:31px 31px;padding:27px 35px 0;position:relative;border-bottom:5px solid #b58b62;overflow:hidden;min-height:260px}.scrap-hero h1{text-align:center;font:600 27px var(--serif);letter-spacing:3px;color:#805737;position:relative;z-index:1}.scrap-hero h1 small{display:block;font:13px var(--sans);letter-spacing:1px;color:#7d7d48;margin-top:9px}.hero-scene{max-width:820px;height:218px;margin:12px auto 0;position:relative}.hero-mascots{position:absolute;right:0;bottom:-4px;width:50%;max-width:420px;height:auto}.hero-note{position:absolute;left:15px;top:35px;width:44%;max-width:330px;background:#fffde8;border:2px solid #bec777;padding:20px 20px 17px;box-shadow:3px 4px 0 #b9c17c25;transform:rotate(-2deg);font-family:var(--serif);color:#757c3d}.hero-note:before{content:"";position:absolute;top:-10px;left:49%;width:11px;height:11px;border-radius:50%;background:#e9b148;border:2px solid #c58f43;box-shadow:0 6px 0 -2px #d0c8b1}.hero-note h2{font:600 19px/1.5 var(--serif)}.hero-note p{font-size:15px;line-height:1.7;margin-top:7px}.hero-note strong{font-size:29px;color:#8a693b;letter-spacing:2px}.hero-clock{position:absolute;right:26px;top:22px;width:42px;height:42px;border:5px solid #edc461;border-radius:50%;background:#fffdeb;box-shadow:0 0 0 2px #c5a15c;transform:rotate(8deg)}.hero-clock:before{content:"";position:absolute;left:14px;top:7px;width:8px;height:12px;border-left:3px solid #c6a34f;border-bottom:3px solid #c6a34f;transform:skewY(-25deg)}.notebook-rings{height:49px;background:var(--paper);border-top:2px solid #efd1a5;border-bottom:0;display:flex;justify-content:space-around;align-items:center;position:relative;margin:0 22px}.notebook-rings:before{content:"";position:absolute;top:9px;right:8px;width:18px;height:48px;background:#f4c7bcaa;border:1px solid #c78f7c;transform:rotate(30deg);z-index:1}.notebook-rings i{display:block;width:14px;height:17px;border:2px solid #b68a70;border-radius:50%;background:#fffaf0}.notebook-page{padding:12px 34px 34px;max-width:920px;margin:auto}.notebook-section-title{font:600 22px var(--serif);margin:12px 0 19px;display:flex;align-items:center;justify-content:space-between;gap:8px}.notebook-section-title small{font:12px var(--sans);color:#967e65}.daily-stickers{display:grid;grid-template-columns:1fr 1fr;gap:18px}.daily-sticker{border:2px solid #f0dfb9;border-radius:22px;background:#fff9ec;padding:17px 19px;display:flex;align-items:center;gap:16px}.daily-sticker .sticker-avatar{width:72px;height:72px;object-fit:cover;border:0;flex-shrink:0}.daily-sticker h3{font:600 19px var(--serif);margin:0 0 7px}.daily-sticker p{font-size:13px;color:#8c735c}.daily-sticker.checked{border-color:#c5d29b;background:#f4f5df}.daily-sticker .check-mark{font-size:12px;color:#6f7e3f}.daily-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:19px 0 25px}.daily-actions .btn{min-width:180px}.daily-actions .tiny{line-height:1.6}.home-shortcuts{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin:21px 0 28px}.shortcut{background:#fff9ec;border:2px solid #f0dfb9;border-radius:22px;padding:20px 10px 15px;display:flex;align-items:center;flex-direction:column;gap:9px;position:relative}.shortcut:hover{background:#fff4db}.shortcut .big-icon{width:48px;height:48px;color:#b78a57;stroke-width:1.25;padding:3px;border:2px solid #dbc399;border-radius:14px;background:#f8ebbf;transform:rotate(-5deg)}.shortcut:nth-child(2) .big-icon{background:#e2eccd;border-color:#becb94;color:#8b9d65;transform:rotate(5deg)}.shortcut:nth-child(3) .big-icon{background:#f4ded6;border-color:#d6aea0;color:#b47b69;transform:rotate(-5deg)}.shortcut strong{font:600 18px var(--serif);margin-top:3px}.shortcut small{font-size:12px;color:#927458}.scrap-divider{border:0;border-top:1px dashed #d3b69c;margin:30px 0}.notebook-page .pending-row{border-color:#e4d0b0}.notebook-page .pending-row p{font-size:14px}.notebook-page .pending-row small{font-size:12px}.pending-empty{border:2px solid #f1e1c1;border-radius:22px;background:#fff9ed;padding:20px;display:flex;align-items:center;gap:17px}.pending-empty .icon{width:42px;height:42px;stroke:#b89b72;flex-shrink:0}.pending-empty h3{font:600 18px var(--serif);margin-bottom:7px}.pending-empty p{font-size:13px;line-height:1.8;color:#92785e}.scrap-foot{text-align:center;font-size:12px;color:#a0866c;padding:24px 0 8px}.mobile-role-switch{display:none!important}.picture-missing{background:#fff5d9}.picture-error{display:none;position:absolute;left:12%;right:12%;top:45%;font:18px/1.8 var(--serif);text-align:center;color:#936b4b}.picture-missing .picture-error{display:block}.picture-missing .scene-image{display:none}
@media(max-width:1130px){.main{padding:22px 30px 40px}.scrap-home{margin:-22px -30px -40px}.sidebar{padding:20px 30px}.story-layout{grid-template-columns:minmax(300px,400px) 1fr}.story-heading h2{font-size:34px}}
@media(max-width:900px) and (min-width:721px){.sidebar{padding:20px}.brand strong{font-size:22px}.sidebar .nav button{font-size:12px;padding:9px;gap:5px}.story-layout{display:grid;max-width:none;grid-template-columns:360px 1fr;gap:22px}.story-notes{display:block;padding:20px 14px}.story-notes .quote{font-size:15px}}
@media(max-width:720px){body{background:var(--paper)}.shell{box-shadow:none}.sidebar{display:none}.main{max-width:540px;padding:14px 18px calc(96px + env(safe-area-inset-bottom))}.topbar{height:44px;margin:0 0 14px;gap:5px}.mobile-brand{font:600 21px var(--serif);letter-spacing:1px;gap:8px;color:#7b553b}.mobile-brand .icon{stroke:#aa8961;width:22px;height:22px}.top-actions{gap:3px}.top-actions .icon-button{width:44px;height:44px}.top-actions .plain-link{font-size:12px;min-height:44px}.mode-mobile{display:none}.top-actions .icon-button .icon{width:22px;height:22px}.page-intro{margin-bottom:20px}.page-intro h1{font-size:26px}.page-intro p{font-size:12px}.story-layout{display:block}.story-notes{display:none}.story-heading h2{font-size:clamp(29px,8.5vw,39px)}.story-heading p{font-size:11px}.story-eyebrow{font-size:11px;letter-spacing:0;margin-bottom:10px}.story-eyebrow .num{font-size:14px}.story-stage{border-width:2px;border-radius:18px;box-shadow:3px 5px 0 #eee0c3}.signature-note{font-size:10px;line-height:1.7;margin-bottom:7px}.signature-wrap{bottom:2.4%;left:5%;right:5%}.signature-pair{gap:12%}.stamp{width:82px;height:82px}.stamp strong{font-size:21px}.stamp small{font-size:9px}.signature-action{margin-top:1px}.signature-action button{font-size:11px;min-height:38px}.story-pagination{font-size:11px;padding-top:12px}.story-pagination button{font-size:12px;min-height:44px}.mobile-nav{height:calc(72px + env(safe-area-inset-bottom));padding:7px 12px calc(7px + env(safe-area-inset-bottom));background:#fffaf0;border-top:2px solid #e7d3af;backdrop-filter:none;gap:8px}.mobile-nav button{color:#9b7c60;font-size:12px;min-width:60px;gap:3px;border:1.5px solid transparent;padding:3px 12px;border-radius:13px}.mobile-nav button.active{color:#746642;background:#eef0cf;border-color:#c8d198}.mobile-nav button svg{width:25px;height:25px}.scrap-home{margin:-14px -18px -20px}.scrap-hero{padding:22px 18px 0;min-height:240px;background-size:28px 28px;border-bottom-width:4px}.scrap-hero h1{font-size:24px;letter-spacing:2px}.scrap-hero h1 small{font-size:12px;margin-top:7px}.hero-scene{height:175px;margin-top:5px}.hero-note{width:51%;left:1px;top:34px;padding:14px 12px;z-index:1}.hero-note h2{font-size:16px}.hero-note p{font-size:13px;margin-top:6px;line-height:1.7}.hero-note strong{font-size:24px}.hero-mascots{width:59%;right:-8px;bottom:-4px;z-index:2}.hero-clock{width:33px;height:33px;border-width:4px;right:21px;top:18px}.hero-clock:before{left:10px;top:5px;width:6px;height:10px;border-width:2px}.notebook-rings{margin:0 16px;height:43px}.notebook-rings i{width:13px;height:16px;border-width:1.6px}.notebook-rings:before{height:37px;width:13px;top:4px;right:2px}.notebook-page{padding:8px 20px 25px}.notebook-section-title{font-size:21px;margin:12px 0 16px}.notebook-section-title small{font-size:11px}.daily-stickers{gap:12px}.daily-sticker{padding:13px 10px;gap:9px;border-radius:18px;display:block;text-align:center}.daily-sticker .sticker-avatar{width:70px;height:63px;object-fit:cover}.daily-sticker h3{font-size:18px;margin:2px 0 7px}.daily-sticker p{font-size:12px}.daily-actions{margin:16px 0 22px;gap:12px}.daily-actions .btn{min-width:150px;min-height:44px;font-size:13px;padding:8px 15px}.daily-actions .tiny{font-size:11px}.home-shortcuts{gap:11px;margin:18px 0 22px}.shortcut{padding:15px 6px 14px;gap:7px;border-radius:19px}.shortcut .big-icon{width:44px;height:44px}.shortcut strong{font-size:17px}.shortcut small{font-size:10px}.scrap-divider{margin:23px 0}.pending-empty{padding:18px 15px;gap:12px;border-radius:19px}.pending-empty h3{font-size:17px}.pending-empty p{font-size:12px}.pending-empty .icon{width:36px;height:36px}.scrap-foot{font-size:11px;padding-top:24px}.chat-page{height:calc(100dvh - 161px - env(safe-area-inset-bottom));min-height:400px;border-radius:18px}.chat-head h1{font-size:19px}.chat-head p{font-size:11px}.bubble{font-size:14px;padding:10px 12px}.message-meta{font-size:10px}.message-meta button{font-size:10px}.composer .emoji-bar{gap:3px}.emoji-bar button{width:34px;height:38px}.compose-row textarea{font-size:16px}.chat-hint{font-size:10px}.settings-page .panel{padding:20px;border-radius:20px}.settings-page .panel h2{font-size:21px}.panel-sub{font-size:13px}.field{font-size:14px}.tiny{font-size:12px}.form-error{font-size:13px}.toast{font-size:12px;bottom:calc(85px + env(safe-area-inset-bottom))}.modal-head h2{font-size:24px}.modal-desc{font-size:14px}.all-list strong{font-size:13px}.all-list small{font-size:11px}.all-list button{gap:8px}.status-pill{font-size:10px}.list-filters{gap:6px}.list-filters button{padding:8px 11px;font-size:12px}.settings-page .identity{display:block}.settings-page .role-buttons button{font-size:14px}.empty{font-size:13px}.paper-copy{font:22px/1.9 var(--serif)}}
@media(max-width:360px){.main{padding-left:12px;padding-right:12px}.scrap-home{margin-left:-12px;margin-right:-12px}.mobile-brand{font-size:19px}.top-actions .plain-link{font-size:11px}.story-heading h2{font-size:28px}.stamp{width:74px;height:74px}.stamp strong{font-size:20px}.signature-note{font-size:9px}.signature-action button{font-size:10px}.hero-note{width:53%;padding:13px 9px}.hero-note h2{font-size:15px}.hero-note p{font-size:12px}.hero-mascots{right:-13px;width:58%}.daily-actions .btn{min-width:134px}.notebook-page{padding-left:16px;padding-right:16px}.notebook-section-title small{font-size:10px}.shortcut strong{font-size:16px}}
