*{margin:0;padding:0;box-sizing:border-box;text-size-adjust:100%}
html,body{height:100%}
body{background:#F5F0EB;font-family:"PingFang SC","Microsoft YaHei","Noto Serif SC",serif;color:#2C2C2C;-webkit-font-smoothing:antialiased}
.app{min-height:100vh;padding-bottom:64px}
a{text-decoration:none;color:inherit}

/* ===== Bottom Nav ===== */
.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:64px;background:#FAF8F5;border-top:1px solid #EDE8E1;display:flex;align-items:center;justify-content:space-around;z-index:1000;padding-bottom:env(safe-area-inset-bottom)}
.nav-item{display:flex;flex-direction:column;align-items:center;gap:3px;padding:4px 12px;border-radius:8px;transition:all .2s;color:#8C8C8C;font-size:11px;font-weight:500}
.nav-item.active{background:#F0EBE4;color:#4A7C6F}
.nav-item .icon-wrap{width:28px;height:28px;display:flex;align-items:center;justify-content:center}
.nav-item .icon-wrap svg{width:22px;height:22px}
.nav-item.active .icon-wrap svg{stroke:#4A7C6F}

/* ===== Page switch (SPA tabs) ===== */
.page{display:none}
.page.active{display:block}

/* ===== Full-bleed Banner ===== */
.banner{width:100%;height:200px;position:relative;overflow:hidden}
.banner-bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:opacity 1.2s ease}
.banner .dots{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);display:flex;gap:8px;z-index:3}
.banner .dots span{width:7px;height:7px;border-radius:50%;background:rgba(250,248,245,0.4);border:1px solid rgba(250,248,245,0.3)}
.banner .dots span.on{background:#FAF8F5;border-color:#FAF8F5}
.banner-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(74,124,111,0.25) 0%,rgba(74,124,111,0.55) 100%);z-index:1}
.banner-text{position:absolute;bottom:40px;left:24px;z-index:2;color:#FAF8F5}
.banner-text h1{font-size:26px;font-weight:700;font-family:"Noto Serif SC",serif;letter-spacing:2px;text-shadow:0 2px 8px rgba(0,0,0,0.2)}
.banner-text p{font-size:14px;opacity:.9;letter-spacing:1px;margin-top:4px;text-shadow:0 1px 4px rgba(0,0,0,0.2)}

/* ===== About Us ===== */
.about{padding:20px 20px 16px}
.about h2{font-size:18px;font-weight:600;color:#2C2C2C;margin:0 0 4px;font-family:"Noto Serif SC",serif;display:flex;align-items:center;gap:8px}
.about h2::after{content:"";flex:1;height:1px;background:#EDE8E1}
.about .desc{background:#FAF8F5;border:1px solid #EDE8E1;border-radius:8px;padding:16px 18px;margin-top:10px}
.about .desc p{font-size:14px;color:#4A4A4A;line-height:1.9}
.about .desc .highlight{color:#4A7C6F;font-weight:600}
.about .stats{display:flex;gap:12px;margin-top:14px}
.about .stat{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 8px;text-align:center;background:#FAF8F5;border:1px solid #EDE8E1;border-radius:8px}
.about .stat .stat-icon{width:34px;height:34px}
.about .stat .stat-icon svg{width:100%;height:100%}
.about .stat .num{font-size:20px;font-weight:700;color:#4A7C6F;font-family:"Noto Serif SC",serif}
.about .stat .lbl{font-size:12px;color:#8C8C8C;margin-top:2px}

/* ===== Section Header ===== */
.shdr{display:flex;justify-content:space-between;align-items:center;padding:8px 20px 4px}
.shdr h3{font-size:16px;font-weight:600;color:#2C2C2C;font-family:"Noto Serif SC",serif}
.shdr a{font-size:12px;color:#8C8C8C;text-decoration:none}

/* ===== Activity Card ===== */
.card{margin:0 16px 12px;background:#FAF8F5;border-radius:8px;border:1px solid #EDE8E1;overflow:hidden;display:block;color:inherit;text-decoration:none}
.card-img{height:130px;position:relative;display:flex;align-items:center;justify-content:center;background-size:cover;background-position:center}
.card-tag{position:absolute;top:10px;left:10px;padding:3px 12px;border-radius:4px;font-size:11px}
.card-tag.green{background:#4A7C6F;color:#FAF8F5}
.card-tag.brown{background:#8B5E3C;color:#FAF8F5}
.card-tag.grey{background:#C4C0B6;color:#FAF8F5}
.card-hot{position:absolute;top:10px;right:10px;background:#8B5E3C;color:#FAF8F5;padding:3px 10px;border-radius:4px;font-size:11px}
.card-body{padding:12px 16px}
.card-body h4{font-size:15px;font-weight:600;color:#2C2C2C;margin-bottom:4px}
.card-meta{font-size:12px;color:#8C8C8C;line-height:1.6}
.card-foot{display:flex;align-items:center;gap:8px;margin-top:8px}
.price-now{font-size:18px;font-weight:700;color:#8B5E3C}
.price-old{font-size:12px;color:#8C8C8C;text-decoration:line-through}
.btn-pri{padding:6px 20px;border:none;border-radius:6px;font-size:13px;margin-left:auto;background:#4A7C6F;color:#FAF8F5;font-family:inherit}
.btn-oul{background:transparent;border:1px solid #4A7C6F;color:#4A7C6F;padding:6px 20px;border-radius:6px;font-size:13px;margin-left:auto;font-family:inherit}
.btn-oul.dis{border-color:#C4C0B6;color:#8C8C8C}
.tag-y{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;background:#F5F0E0;color:#C9A96E}

/* ===== Activity List Page ===== */
.sbar{margin:12px 16px 0;display:flex;gap:8px}
.sbar input{flex:1;padding:10px 14px;border:1px solid #EDE8E1;border-radius:8px;background:#FAF8F5;font-size:14px;outline:none;font-family:inherit;color:#2C2C2C}
.sbar input::placeholder{color:#BFBFBF}
.sbar .btn-search{padding:8px 16px;font-size:14px;background:#4A7C6F;color:#FAF8F5;border:none;border-radius:6px;font-family:inherit}
.ctabs{display:flex;margin:12px 16px 0;gap:4px;overflow-x:auto}
.ctabs span{padding:6px 14px;border-radius:6px;font-size:13px;color:#8C8C8C;white-space:nowrap}
.ctabs span.on{background:#4A7C6F;color:#FAF8F5}

/* ===== My Page ===== */
.user-card-new{padding:28px 20px 16px;background:#FAF8F5;border-bottom:1px solid #EDE8E1}
.user-card-new .uhdr{display:flex;align-items:center;gap:14px}
.user-card-new .uavatar-lg{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#4A7C6F,#6B8F71);display:flex;align-items:center;justify-content:center;color:#FAF8F5;font-size:24px;flex-shrink:0}
.user-card-new .uphone{font-size:17px;font-weight:600;color:#2C2C2C}
.user-card-new .uauth{font-size:12px;color:#6B8F71;margin-top:2px}
.user-card-new .ustats{display:flex;border-top:1px solid #EDE8E1;margin-top:16px;padding:10px 0}
.user-card-new .ustats > div{flex:1;text-align:center}
.user-card-new .ustats .u-num{font-size:18px;font-weight:700;color:#4A7C6F}
.user-card-new .ustats .u-num.gold{color:#C9A96E}
.user-card-new .ustats .u-lbl{font-size:11px;color:#8C8C8C;margin-top:1px}

.menu-grid{display:grid;grid-template-columns:repeat(4,1fr);margin:10px 16px;background:#FAF8F5;border-radius:10px;border:1px solid #EDE8E1;padding:4px 0}
.menu-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 0;color:#4A4A4A}
.menu-item .mi-icon{font-size:22px;line-height:1}
.menu-item .mi-icon.g{color:#4A7C6F}
.menu-item .mi-icon.l{color:#6B8F71}
.menu-item .mi-icon.y{color:#C9A96E}
.menu-item .mi-icon.s{color:#8C8C8C}
.menu-item span{font-size:11px}

.order-list-wrap{margin:0 16px}
.order-list-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.order-list-hdr .olt{font-size:14px;font-weight:500;color:#2C2C2C}
.order-list-hdr .olr{font-size:12px;color:#8C8C8C}

.oitem{display:flex;padding:12px 16px;border-bottom:1px solid #EDE8E1;gap:12px;background:#FAF8F5;margin:0 12px 6px;border-radius:8px;border:1px solid #EDE8E1}
.oimg{width:60px;height:60px;border-radius:6px;background:#EDE8E1;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:11px;color:#8C8C8C}
.oinfo{flex:1;min-width:0}
.oinfo h4{font-size:14px;color:#2C2C2C;font-weight:500;margin-bottom:2px}
.oinfo p{font-size:12px;color:#8C8C8C}
.oright{text-align:right;flex-shrink:0}
.oprice{font-size:15px;font-weight:600;color:#2C2C2C;margin-bottom:4px}
.lb{display:inline-block;padding:2px 10px;border-radius:4px;font-size:11px}
.lb-g{background:#E8F0EA;color:#6B8F71}
.lb-y{background:#F5F0E0;color:#C9A96E}

/* ===== Top Bar ===== */
.top-bar{display:flex;align-items:center;padding:14px 16px;gap:12px;background:#FAF8F5;border-bottom:1px solid #EDE8E1}
.top-bar .back{font-size:18px;color:#4A7C6F;width:28px;height:28px;display:flex;align-items:center;justify-content:center}
.top-bar .ttl{flex:1;font-size:16px;font-weight:600;color:#2C2C2C;text-align:center;font-family:"Noto Serif SC",serif}
.top-bar .extra{width:28px;display:flex;align-items:center;justify-content:center;color:#4A7C6F}

/* ===== Activity Detail Page ===== */
.ad-header{display:flex;align-items:center;padding:14px 16px;gap:12px;background:#FAF8F5;border-bottom:1px solid #EDE8E1}
.ad-back{font-size:18px;color:#4A7C6F;width:28px;height:28px;display:flex;align-items:center;justify-content:center}
.ad-title{flex:1;font-size:16px;font-weight:600;color:#2C2C2C;text-align:center;font-family:"Noto Serif SC",serif}
.ad-share{font-size:18px;color:#4A7C6F;width:28px;height:28px;display:flex;align-items:center;justify-content:center}
.ad-banner{height:200px;background-size:cover;background-position:center;position:relative}
.ad-banner .ad-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(74,124,111,0.1),rgba(74,124,111,0.6));display:flex;align-items:flex-end;padding:16px 20px}
.ad-banner .ad-overlay h1{color:#FAF8F5;font-size:22px;font-family:"Noto Serif SC",serif;text-shadow:0 2px 8px rgba(0,0,0,0.3)}
.ad-info{background:#FAF8F5;margin:-20px 16px 0;border-radius:10px;border:1px solid #EDE8E1;padding:16px 18px;position:relative;z-index:2}
.ad-info .ad-price{display:flex;align-items:baseline;gap:6px;margin-bottom:6px}
.ad-info .ad-price .now{font-size:24px;font-weight:700;color:#8B5E3C}
.ad-info .ad-price .old{font-size:14px;color:#8C8C8C;text-decoration:line-through}
.ad-info .ad-price .gb{font-size:13px;color:#C9A96E;background:#F5F0E0;padding:2px 8px;border-radius:4px;margin-left:6px}
.ad-info .ad-meta{font-size:13px;color:#4A4A4A;line-height:1.8}
.ad-info .ad-meta span{margin-right:14px}
.ad-progress{margin-top:10px;display:flex;align-items:center;gap:10px}
.ad-progress .bar{flex:1;height:6px;background:#EDE8E1;border-radius:3px;overflow:hidden}
.ad-progress .bar .fill{height:100%;background:#4A7C6F;border-radius:3px}
.ad-progress .num{font-size:12px;color:#8C8C8C;white-space:nowrap}

.ad-section{padding:14px 16px}
.ad-section h3{font-size:15px;font-weight:600;color:#2C2C2C;margin-bottom:8px;font-family:"Noto Serif SC",serif;display:flex;align-items:center;gap:8px}
.ad-section h3::after{content:"";flex:1;height:1px;background:#EDE8E1}
.ad-desc{background:#FAF8F5;border:1px solid #EDE8E1;border-radius:8px;padding:14px 16px;font-size:13px;color:#4A4A4A;line-height:1.9}
.ad-desc strong{color:#2C2C2C}
.ad-desc .img{margin:12px 0;border-radius:6px;overflow:hidden;background-size:cover;background-position:center}
.ad-desc .img.h160{height:160px}
.ad-desc .img.h120{height:120px}
.ad-desc .caption{margin-top:6px;color:#8C8C8C;font-size:12px}

.gb-list{background:#FAF8F5;border:1px solid #EDE8E1;border-radius:8px;padding:10px 14px}
.gb-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #EDE8E1}
.gb-row:last-child{border-bottom:none}
.gb-row .gb-avatar{width:28px;height:28px;border-radius:50%;background:#4A7C6F;color:#FAF8F5;font-size:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.gb-row .gb-info{flex:1}
.gb-row .gb-info .gb-name{font-size:13px;color:#2C2C2C}
.gb-row .gb-info .gb-count{font-size:11px;color:#8C8C8C}
.gb-row .gb-btn-sm{padding:4px 14px;border:1px solid #4A7C6F;border-radius:6px;font-size:12px;color:#4A7C6F;background:transparent;font-family:inherit}
.gb-row .gb-time{font-size:11px;color:#C9A96E}
.gb-row .gb-add{text-align:center;flex:1;padding:4px 0}
.gb-row .gb-add a{font-size:13px;color:#4A7C6F}

.ad-foot{position:fixed;bottom:64px;left:0;right:0;background:#FAF8F5;border-top:1px solid #EDE8E1;padding:10px 16px;display:flex;gap:10px;z-index:999;box-shadow:0 -2px 8px rgba(0,0,0,0.04)}
.ad-foot .af-btn{flex:1;padding:12px;border-radius:6px;font-size:14px;text-align:center;font-family:inherit}
.ad-foot .af-btn.primary{background:#4A7C6F;color:#FAF8F5;border:none}
.ad-foot .af-btn.secondary{background:transparent;border:1px solid #4A7C6F;color:#4A7C6F}
.ad-foot .af-btn .small{font-size:11px;opacity:.8;display:block}
.ad-foot .af-btn.primary .small{color:#FAF8F5}
.ad-foot .af-btn.secondary .small{color:#8C8C8C}

/* ===== Signup / Group Buy Detail ===== */
.pr-header{display:flex;align-items:center;padding:14px 16px;gap:12px;border-bottom:1px solid #EDE8E1;background:#FAF8F5}
.pr-back{width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:#4A7C6F;font-size:18px}
.pr-title{flex:1;font-size:16px;font-weight:600;color:#2C2C2C;text-align:center;font-family:"Noto Serif SC",serif}
.pr-step{display:flex;justify-content:center;gap:8px;padding:14px 16px 6px}
.pr-step .dot{width:8px;height:8px;border-radius:50%;background:#EDE8E1}
.pr-step .dot.on{background:#4A7C6F;width:24px;border-radius:4px}
.pr-info{background:#FAF8F5;margin:10px 16px;border-radius:8px;border:1px solid #EDE8E1;padding:14px 16px;display:flex;gap:12px}
.pr-info .pi-img{width:72px;height:72px;border-radius:6px;background-size:cover;background-position:center;flex-shrink:0}
.pr-info .pi-text{flex:1;min-width:0}
.pr-info .pi-text h4{font-size:15px;font-weight:600;color:#2C2C2C;margin-bottom:2px}
.pr-info .pi-text .pi-time{font-size:12px;color:#8C8C8C;margin-bottom:4px}
.pr-info .pi-text .pi-price{font-size:18px;font-weight:700;color:#8B5E3C}
.pr-info .pi-text .pi-price small{font-size:12px;color:#8C8C8C;text-decoration:line-through;font-weight:400;margin-left:4px}
.pr-form{padding:0 16px}
.pr-label{font-size:14px;font-weight:500;color:#2C2C2C;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center}
.pr-label .count{display:flex;align-items:center;gap:10px}
.pr-label .count button{width:28px;height:28px;border-radius:50%;border:1px solid #4A7C6F;background:transparent;color:#4A7C6F;font-size:16px;display:flex;align-items:center;justify-content:center;font-family:inherit}
.pr-label .count span{font-size:16px;font-weight:600;color:#2C2C2C;min-width:20px;text-align:center}
.pr-field{margin-bottom:10px}
.pr-field label{font-size:13px;color:#4A4A4A;display:block;margin-bottom:4px}
.pr-field label .req{color:#C97E7E}
.pr-field input{width:100%;padding:10px 12px;border:1px solid #EDE8E1;border-radius:6px;background:#FAF8F5;font-size:14px;color:#2C2C2C;outline:none;font-family:inherit}
.pr-field input::placeholder{color:#BFBFBF}
.pr-total{position:fixed;bottom:64px;left:0;right:0;background:#FAF8F5;border-top:1px solid #EDE8E1;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;z-index:999;box-shadow:0 -2px 8px rgba(0,0,0,0.04)}
.pr-total .total-text{font-size:14px;color:#4A4A4A}
.pr-total .total-price{font-size:20px;font-weight:700;color:#8B5E3C}
.pr-total .total-btn{padding:10px 28px;border:none;border-radius:6px;font-size:15px;background:#4A7C6F;color:#FAF8F5;font-weight:500;font-family:inherit}

/* ===== Group Buy Page ===== */
.gb-banner{height:140px;background-size:cover;background-position:center;position:relative}
.gb-banner .gb-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(74,124,111,0.1),rgba(74,124,111,0.5));display:flex;align-items:flex-end;padding:14px 18px}
.gb-banner .gb-overlay h3{color:#FAF8F5;font-size:17px;font-family:"Noto Serif SC",serif;text-shadow:0 1px 6px rgba(0,0,0,0.3)}
.gb-banner .gb-overlay p{color:rgba(250,248,245,0.85);font-size:12px;margin-top:2px}
.gb-price{margin:0 16px;margin-top:-20px;background:#FAF8F5;border-radius:8px;border:1px solid #EDE8E1;padding:12px 16px;display:flex;justify-content:space-between;align-items:center;position:relative;z-index:2}
.gb-price .gp-left .gp-label{font-size:12px;color:#8C8C8C}
.gb-price .gp-left .gp-amount{font-size:22px;font-weight:700;color:#8B5E3C;font-family:"Noto Serif SC",serif}
.gb-price .gp-left .gp-amount small{font-size:13px;color:#8C8C8C;text-decoration:line-through;font-weight:400;margin-left:4px}
.gb-price .gp-right{text-align:right}
.gb-price .gp-rule{font-size:12px;color:#8C8C8C}
.gb-price .gp-rule strong{color:#4A7C6F}
.gb-section{padding:14px 16px}
.gb-section h4{font-size:14px;color:#2C2C2C;font-weight:500;margin-bottom:8px}
.gb-section .h4-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.gb-selected{display:flex;gap:6px;flex-wrap:wrap}
.gb-tag{display:flex;align-items:center;gap:6px;padding:6px 10px;background:#E8F0EA;border-radius:6px}
.gb-tag .gt-name{font-size:13px;font-weight:500;color:#2C2C2C}
.gb-tag .gt-phone{font-size:11px;color:#6B8F71}
.gb-tag .gt-remove{font-size:12px;color:#8C8C8C;opacity:.6;margin-left:2px}
.gb-tag-add{background:#FAF8F5;border:1.5px dashed #C4C0B6;padding:6px 14px;display:flex;align-items:center;gap:4px;color:#4A7C6F}
.gb-tag-add .plus{font-size:16px;line-height:1}
.gb-hint{font-size:12px;color:#8C8C8C;margin-top:6px}
.gb-members{display:flex;gap:8px;flex-wrap:wrap}
.gb-member{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;color:#FAF8F5}
.gb-member.empty{border:2px dashed #C4C0B6;background:transparent;color:#C4C0B6;font-size:18px;width:36px;height:36px;border-radius:50%;padding:0}
.gb-pay-mode h4{font-size:14px;color:#2C2C2C;font-weight:500;margin-bottom:8px}
.gb-option{display:flex;gap:10px;margin-bottom:8px;align-items:flex-start}
.gb-option input[type="radio"]{accent-color:#4A7C6F;margin-top:3px}
.gb-option .opt-title{font-size:14px;font-weight:500;color:#2C2C2C}
.gb-option .opt-desc{font-size:12px;color:#8C8C8C;margin-top:1px}
.gb-share{display:flex;gap:8px}
.gb-share .share-btn{flex:1;padding:8px;border:1px solid #EDE8E1;border-radius:6px;background:#FAF8F5;text-align:center;font-size:12px;color:#4A4A4A}
.gb-share .share-btn .s-icon{font-size:18px;display:block;margin-bottom:2px}
.gb-foot{position:fixed;bottom:64px;left:0;right:0;background:#FAF8F5;border-top:1px solid #EDE8E1;padding:12px 16px;display:flex;gap:10px;z-index:999;box-shadow:0 -2px 8px rgba(0,0,0,0.04)}
.gb-foot .gb-btn{flex:1;padding:11px;border-radius:6px;font-size:14px;text-align:center;font-family:inherit}
.gb-foot .gb-btn.primary{background:#4A7C6F;color:#FAF8F5;border:none}
.gb-foot .gb-btn.secondary{background:transparent;border:1px solid #4A7C6F;color:#4A7C6F}

/* ===== Refund Page ===== */
.rf-header{display:flex;align-items:center;padding:14px 16px;gap:12px;border-bottom:1px solid #EDE8E1;background:#FAF8F5}
.rf-back{font-size:18px;color:#4A7C6F;width:28px;height:28px;display:flex;align-items:center;justify-content:center}
.rf-title{flex:1;font-size:16px;font-weight:600;color:#2C2C2C;text-align:center;font-family:"Noto Serif SC",serif}
.rf-order{background:#FAF8F5;margin:12px 16px;border-radius:8px;border:1px solid #EDE8E1;padding:14px 16px;display:flex;gap:12px}
.rf-order .ro-img{width:60px;height:60px;border-radius:6px;background-size:cover;background-position:center;flex-shrink:0}
.rf-order .ro-text{flex:1;min-width:0}
.rf-order .ro-text h4{font-size:14px;font-weight:600;color:#2C2C2C;margin-bottom:2px}
.rf-order .ro-text .ro-meta{font-size:12px;color:#8C8C8C}
.rf-order .ro-text .ro-price{font-size:16px;font-weight:700;color:#8B5E3C;margin-top:4px}
.rf-section{margin:0 16px 12px;background:#FAF8F5;border-radius:8px;border:1px solid #EDE8E1;overflow:hidden}
.rf-section .rf-item{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #EDE8E1}
.rf-section .rf-item:last-child{border-bottom:none}
.rf-section .rf-item .ri-label{font-size:14px;color:#2C2C2C}
.rf-section .rf-item .ri-value{font-size:14px;color:#8C8C8C;display:flex;align-items:center;gap:4px}
.rf-section .rf-item .ri-arrow{font-size:12px;color:#C4C0B6}
.rf-textarea{padding:0 16px;margin-bottom:12px}
.rf-textarea textarea{width:100%;padding:12px 14px;border:1px solid #EDE8E1;border-radius:8px;background:#FAF8F5;font-size:13px;font-family:inherit;color:#2C2C2C;outline:none;resize:none;height:80px;line-height:1.6}
.rf-textarea textarea::placeholder{color:#BFBFBF}
.rf-warning{margin:0 16px;background:#F5EAEA;border-radius:6px;padding:10px 14px;font-size:12px;color:#C97E7E;line-height:1.6}
.rf-total{margin:0 16px;display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-top:1px solid #EDE8E1}
.rf-total .rt-label{font-size:13px;color:#4A4A4A}
.rf-total .rt-amount{font-size:20px;font-weight:700;color:#8B5E3C}
.rf-foot{position:fixed;bottom:64px;left:0;right:0;background:#FAF8F5;border-top:1px solid #EDE8E1;padding:12px 16px;display:flex;gap:10px;z-index:50}
.rf-foot .rf-btn{flex:1;padding:11px;border-radius:6px;font-size:14px;text-align:center;font-family:inherit}
.rf-foot .rf-btn.primary{background:#C97E7E;color:#FAF8F5;border:none}
.rf-foot .rf-btn.secondary{background:transparent;border:1px solid #C4C0B6;color:#8C8C8C}

/* ===== Misc ===== */
.empty{text-align:center;padding:60px 20px;color:#8C8C8C;font-size:14px}

/* ===== Contacts Page ===== */
.ct-card{background:#FAF8F5;border:1px solid #EDE8E1;border-radius:10px;padding:16px;margin-bottom:10px;display:flex;align-items:center;gap:12px;transition:all .2s}
.ct-card:active{background:#F0EBE4}
.ct-card-icon{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#4A7C6F,#6B8F71);display:flex;align-items:center;justify-content:center;color:#FAF8F5;font-size:24px;flex-shrink:0}
.ct-card-text{font-size:15px;color:#2C2C2C;font-weight:500}
.ct-contact{cursor:default}
.ct-contact:active{background:#FAF8F5}
.ct-avatar{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#8B5E3C,#A67B5B);display:flex;align-items:center;justify-content:center;color:#FAF8F5;font-size:18px;font-weight:600;flex-shrink:0}
.ct-info{flex:1;min-width:0}
.ct-name{font-size:15px;font-weight:500;color:#2C2C2C;margin-bottom:2px}
.ct-meta{font-size:12px;color:#8C8C8C;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-del{font-size:13px;color:#C97E7E;padding:4px 10px;border-radius:6px;border:1px solid #F0D0D0;transition:all .2s}
.ct-del:active{background:#F5EAEA}
.ct-empty{text-align:center;padding:60px 20px;color:#8C8C8C;font-size:14px}
.ct-field{margin-bottom:14px}
.ct-field label{display:block;font-size:13px;color:#4A4A4A;margin-bottom:6px}
.ct-field input{width:100%;padding:12px 14px;border:1px solid #EDE8E1;border-radius:8px;background:#F5F0EB;font-size:14px;color:#2C2C2C;outline:none;font-family:inherit;transition:border-color .2s}
.ct-field input:focus{border-color:#4A7C6F}
.ct-field input::placeholder{color:#BFBFBF}
.ct-submit{width:100%;padding:14px;border:none;border-radius:8px;background:linear-gradient(135deg,#4A7C6F,#5B8D80);color:#FAF8F5;font-size:15px;font-weight:500;font-family:inherit;letter-spacing:2px;transition:opacity .2s;box-shadow:0 4px 12px rgba(74,124,111,0.3)}
.ct-submit:active{opacity:.9}
.overlay{position:fixed;inset:0;background:rgba(0,0,0,0.4);display:flex;align-items:center;justify-content:center;z-index:1000}
.panel{background:#FAF8F5;border-radius:12px;width:100%;max-width:340px;box-shadow:0 8px 32px rgba(0,0,0,0.15)}
.panel-hdr{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #EDE8E1;font-size:15px;font-weight:600;color:#2C2C2C}
.panel-body{padding:12px 16px}
.panel-btn{width:100%;padding:14px;border:none;border-radius:8px;background:linear-gradient(135deg,#4A7C6F,#5B8D80);color:#FAF8F5;font-size:15px;font-weight:500;font-family:inherit;margin:16px 20px 20px;letter-spacing:2px}
.contact-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #EDE8E1}
.contact-item:last-child{border-bottom:none}
.c-name{font-size:14px;font-weight:500;color:#2C2C2C}
.c-meta{font-size:12px;color:#8C8C8C;margin-top:1px}
.c-del{font-size:13px;color:#C97E7E;padding:4px 10px}