@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;600;700;800&display=swap');
:root{--ink:#252528;--muted:#898990;--pink:#d99b91;--cream:#f8f5f0;--line:#ece8e2;--green:#667b65}*{box-sizing:border-box}body{margin:0;background:#e9e6e1;color:var(--ink);font-family:'DM Sans','Noto Sans SC',sans-serif}.phone{max-width:460px;min-height:100vh;margin:auto;background:#fcfbf8;position:relative;padding-bottom:90px;box-shadow:0 10px 50px #3332}header{height:66px;display:flex;align-items:center;padding:0 25px;border-bottom:1px solid #f0ede8;gap:9px;position:sticky;top:0;background:#fcfbf8ed;z-index:4}.brand{display:flex;align-items:center;gap:9px;font-weight:700;letter-spacing:.2px;font-size:15px}.brand img{width:32px;height:32px;object-fit:contain;border-radius:8px}.tag{font-size:11px;color:var(--muted);border-left:1px solid var(--line);padding-left:9px}header button{margin-left:auto;background:none;border:0;color:#6f716d;font-size:13px}.screen{padding:22px 22px 28px}.hidden{display:none!important}.hero{background:#e7e9df;border-radius:24px;padding:25px 23px 0;min-height:370px;overflow:hidden;position:relative}.eyebrow,.detail-head small,.section-title small{font-size:10px;letter-spacing:1.8px;color:#73796c}.hero h1{font-size:38px;line-height:1.18;margin:21px 0 10px;letter-spacing:1px}.hero h1 em{font-style:normal;color:#9b685d}.hero p{font-size:12px;color:#75766e}.art{height:150px;position:relative;margin-top:3px}.sun{position:absolute;width:100px;height:100px;border-radius:50%;background:#e7c787;right:22px;top:5px}.photo{position:absolute;width:105px;height:130px;border:7px solid #fff;background:#c3d1c3;box-shadow:0 9px 22px #40483b26;display:grid;place-items:center;font-size:40px;color:#fff}.p1{left:9px;top:20px;transform:rotate(-11deg);background:#c99482}.p2{left:102px;top:9px;transform:rotate(5deg);background:#9eafa6}.p3{left:202px;top:26px;transform:rotate(12deg);background:#dbb884}.section-title{display:flex;align-items:end;justify-content:space-between;margin:29px 2px 15px}.section-title h2{font-size:20px;margin:4px 0 0}.count{font-size:11px;color:var(--muted);padding-bottom:3px}.album-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.album{border-radius:16px;background:#f3f0eb;padding:10px;cursor:pointer}.cover{height:128px;border-radius:11px;display:grid;place-items:center;font-size:44px;color:#fff;background:linear-gradient(145deg,#d6aa90,#a9705f)}.album:nth-child(2) .cover{background:linear-gradient(145deg,#b8c5b8,#768876)}.album h3{font-size:14px;margin:11px 2px 4px}.album p{font-size:10px;color:var(--muted);margin:0 2px 3px}.scan{width:100%;margin:19px 0 0;border:0;border-radius:15px;padding:16px;background:var(--green);color:white;font-size:14px;font-weight:600}.detail-head{padding:17px 2px 23px}.detail-head h1{font-size:34px;margin:9px 0}.detail-head p{font-size:12px;color:var(--muted)}.pill{display:inline-block;background:#f2eadc;color:#9a7542;padding:6px 10px;border-radius:20px;font-size:10px}.back{border:0;background:transparent;padding:4px 0;color:#777;font-size:13px}.upload-box{position:relative;border:1px dashed #c9c6bd;border-radius:16px;padding:25px;text-align:center;background:#f8f6f1}.upload-icon{font-size:27px;color:var(--green);margin-bottom:9px}.upload-box b{font-size:13px}.upload-box p,.hint{font-size:10px;color:var(--muted)}.upload-box input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.media-list{display:grid;gap:9px;margin:14px 0}.media-item{display:flex;align-items:center;gap:12px;background:#f4f1ec;border-radius:12px;padding:10px;font-size:12px}.media-thumb{width:45px;height:45px;border-radius:8px;background:#dfdacf;display:grid;place-items:center;font-size:20px}.media-item small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.primary{width:100%;border:0;border-radius:14px;background:#29372e;color:white;padding:15px;font-weight:600;font-size:13px;margin-top:10px}.hint{text-align:center;line-height:1.8}.field{display:block;font-size:12px;color:#666;margin:18px 0}.field input{display:block;width:100%;margin-top:8px;border:1px solid var(--line);border-radius:12px;padding:14px;background:white;font:inherit} .admin-list{margin-top:22px}.admin-row{background:#f2efe9;border-radius:13px;padding:14px;margin:9px 0;display:flex;justify-content:space-between;align-items:center;font-size:12px}.qr{font-size:10px;color:var(--green);border:1px solid #9aaa96;border-radius:20px;padding:6px 9px}nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(460px,100%);height:72px;border-top:1px solid var(--line);background:#fcfbf8f5;display:flex;justify-content:space-around;align-items:center;z-index:5}nav button{border:0;background:transparent;color:#9a9a97;font-size:21px;display:grid;justify-items:center;gap:3px}nav small{font-size:9px}nav .active{color:var(--pink)}
.compress-button{width:100%;padding:13px;border:1px solid #d7d8ce;background:#f4f4ed;color:#39493d;border-radius:13px;font-size:12px;font-weight:600;margin-top:4px}.media-item.invalid{outline:1px solid #ca716b}

.hero{background:#eeeee5}.hero h1 em{color:#a66f61}.cover{background:linear-gradient(145deg,#d6aa90,#a9705f)}nav .active{color:#b77b70}

/* Airy periwinkle, lilac and restrained blush palette from the reference. */
:root{--ink:#26365d;--muted:#8290b0;--pink:#d99aca;--cream:#f7f8ff;--line:#e5e9f6;--green:#6559e8}
body{background:#e8edff;color:var(--ink)}.phone{background:linear-gradient(145deg,#f5f7ff 0%,#f4efff 52%,#fff4f8 100%)}header{background:#f7f8ffed;border-bottom-color:#e6e9f5}.tag{color:#8490ad}.hero{background:linear-gradient(135deg,#dbe5ff 0%,#ebe0ff 62%,#f8e6f2 100%)}.hero h1 em{color:#7467e8}.eyebrow,.detail-head small,.section-title small{color:#6f7fa5}.photo{box-shadow:0 10px 24px #5264a526}.album{background:#fff;border:1px solid #e8eaf4;box-shadow:0 5px 18px #53638a0c}.scan,.primary{background:linear-gradient(100deg,#6559e8,#8270f2);box-shadow:0 8px 20px #6c60e82b}.upload-box{background:#fff;border-color:#bfc8e6}.upload-icon{color:#6559e8}.compress-button{background:#f3f2ff;border-color:#d8d4fb;color:#564bd0}.media-item{background:#fff;border:1px solid #ececf5}.pill{background:#f5eafa;color:#9b5d9b}nav{background:#fbfbffed;border-color:#e4e7f1}nav .active{color:#6a5fe7}.field input{border-color:#e2e5f0}.admin-row{background:#fff;border:1px solid #e8eaf4}.qr{color:#5f54dc;border-color:#c9c4f4}
.field textarea{display:block;width:100%;min-height:90px;margin-top:8px;padding:14px;border:1px solid #e2e5f0;border-radius:12px;background:#fff;font:inherit;resize:vertical}.action-row{display:flex;gap:10px;margin-top:10px}.action-row>*{flex:1}.action-row .primary{margin:0}.browse-button{border:0;border-radius:14px;background:#35ad61;color:white;font-size:13px;font-weight:600;padding:15px}.notice{background:#fff5df;color:#876832;border-radius:12px;padding:12px;font-size:12px;margin-bottom:12px}.progress-track{height:8px;background:#e9e8f5;border-radius:10px;overflow:hidden;margin:18px 0 5px}.progress-track span{display:block;width:0;height:100%;background:linear-gradient(90deg,#6559e8,#d99aca);transition:width .2s}.report-button{display:block;margin:24px auto 0;padding:10px 16px;border:1px solid #e5e5ee;border-radius:10px;background:white;color:#6a6a75;font-size:11px}
.home-screen{padding:18px 20px 30px;min-height:calc(100vh - 138px);display:flex;flex-direction:column;justify-content:center;gap:22px}.home-cover{position:relative;min-height:54vh;border-radius:22px;overflow:hidden;background:linear-gradient(145deg,#dbe5ff,#ebe0ff 60%,#f8e6f2);box-shadow:0 12px 35px #5968a51c}.home-cover>img{position:absolute;width:100%;height:100%;inset:0;object-fit:cover;display:none}.home-cover.has-image>img{display:block}.cover-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:#354674;background:radial-gradient(circle at 78% 24%,#fff9 0 7%,transparent 8%),linear-gradient(145deg,#d8e3ff,#e9ddff 58%,#f7e5ee)}.cover-placeholder span{font-size:10px;letter-spacing:3px;color:#7169bd}.cover-placeholder strong{font-family:serif;font-size:34px;line-height:1.45;letter-spacing:3px;margin:16px 0}.cover-placeholder small{color:#7f89a7;font-size:11px}.home-cover.has-image .cover-placeholder{display:none}.cover-caption{position:absolute;left:18px;right:18px;bottom:17px;padding:14px 16px;border-radius:13px;background:#ffffffd9;backdrop-filter:blur(10px);display:flex;flex-direction:column;gap:4px;color:#26365d}.cover-caption span{font-weight:700;font-size:13px}.cover-caption small{font-size:10px;color:#8290b0}.scan{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin:0;padding:16px 18px;border-radius:15px}.scan small{flex-basis:100%;font-size:10px;font-weight:400;opacity:.85}.scan-icon{font-size:20px}.cover-admin{background:#fff;border:1px solid #e8eaf4;border-radius:16px;padding:16px;margin:18px 0}.cover-admin h2{font-size:16px;margin:0}.cover-admin p{font-size:11px;color:#8290b0}.cover-admin-preview{height:150px;border-radius:12px;background:linear-gradient(135deg,#dbe5ff,#f5e8f3);display:grid;place-items:center;overflow:hidden;color:#69769b;font-size:12px}.cover-admin-preview img{width:100%;height:100%;object-fit:cover;display:none}.cover-pick{display:block;text-align:center;margin:12px 0;position:relative;cursor:pointer}.cover-pick input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.cover-admin .compress-button{margin:0}.cover-admin .hint{display:block;margin-top:12px}
.batch-panel{padding:16px;border:1px solid #e6e9f5;background:#fff;border-radius:16px;margin-top:18px}.batch-panel .field{margin:0 0 12px}.batch-panel input{max-width:140px}.qr-card{display:flex;align-items:center;gap:12px}.qr-preview{width:54px;height:54px;border:5px solid #fff;outline:1px solid #e1e4f0;border-radius:5px;background-color:#fff;background-image:repeating-conic-gradient(#34446a 0 25%,transparent 0 50%);background-size:10px 10px;position:relative;display:grid;place-items:center}.qr-preview span{background:#fff;padding:2px 3px;font-size:8px;color:#6559e8;font-weight:700}.admin-row{gap:10px}.admin-list{max-height:450px;overflow:auto}
.audio-preview{display:block;width:100%;height:42px;margin-top:9px;border-radius:11px;background:#f1f1f8}.video-preview{display:block;width:100%;max-height:260px;aspect-ratio:16/9;object-fit:contain;margin-top:10px;border-radius:13px;background:#161821}.media-info{min-width:0;flex:1}.media-item{flex-wrap:wrap}.media-thumb{flex:0 0 45px}.remove-file{align-self:flex-start;border:0;background:#f4eafa;color:#9b5d9b;border-radius:50%;width:26px;height:26px}.file-actions{display:flex;gap:10rpx}
