:root{--orange:#fc6c28;--deep:#113f3d;--mint:#e8f4ee;--ink:#202b2a;--muted:#7b8581;--line:#e8eae4;--paper:#f7f6f1}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;background:var(--paper);color:var(--ink)}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;background:none;color:inherit;min-height:44px}button:disabled{opacity:.5;cursor:default}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #fcae78;outline-offset:3px}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}.topbar{height:88px;background:#fffefa;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 5%;gap:16px}.brand{display:flex;align-items:center;gap:12px;font-size:21px;font-weight:800;letter-spacing:1px}.brandmark{display:grid;place-items:center;background:var(--orange);color:white;width:43px;height:43px;border-radius:14px;font-size:26px}.brand small{display:block;color:var(--muted);font-size:9px;letter-spacing:2px;margin-top:4px}.topbar nav{background:#eeeee7;padding:5px;border-radius:30px;display:flex;gap:4px}.topbar nav button{padding:0 24px;border-radius:24px;font-size:14px}.topbar nav button.active{background:var(--deep);color:white}.version{color:var(--muted);font-size:12px}.preview-layout{max-width:1240px;margin:auto;display:grid;grid-template-columns:1fr 420px 230px;gap:42px;padding:42px 25px;align-items:start}.intro{padding-top:45px}.eyebrow{font-size:12px;letter-spacing:3px;color:var(--orange);font-weight:800}.intro h1{font-size:46px;line-height:1.25;letter-spacing:-2px;margin:20px 0}.intro h1 span{color:var(--deep)}.intro p{font-size:14px;line-height:1.9;color:var(--muted);max-width:290px}.intro .step{display:flex;align-items:center;gap:12px;margin-top:25px;font-size:13px}.step i{font-style:normal;color:var(--orange);font-weight:700}.note{font-size:12px;color:var(--muted);line-height:1.8}.intro .note{margin-top:32px;max-width:290px}.sidecard{background:white;border:1px solid var(--line);padding:20px;border-radius:20px;margin-top:45px}.sidecard h3{font-size:14px;margin:0 0 18px}.sidecard select{width:100%;margin-bottom:16px}.sidecard button{width:100%;margin-bottom:9px}.tag{display:inline-flex;background:var(--mint);color:#34846d;font-size:11px;padding:5px 9px;border-radius:6px}.phone{width:100%;border:8px solid #203431;box-shadow:0 18px 45px #2034311a;border-radius:43px;background:#fff;overflow:hidden;position:relative}.statusbar{height:29px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;font-size:11px;font-weight:700;background:white}.wxnav{height:48px;display:flex;align-items:center;justify-content:center;position:relative;font-size:15px;font-weight:700;background:white}.wxnav .capsule{position:absolute;right:12px;border:1px solid var(--line);border-radius:20px;padding:4px 8px;font-size:14px;letter-spacing:2px}.wxnav .back{position:absolute;left:10px;padding:8px}.phone-body{height:650px;overflow-y:auto;background:#f7f8f3;scrollbar-width:thin;padding-bottom:14px}.hero{height:195px;position:relative;background:linear-gradient(130deg,#b5b6a0,#2e5b51);overflow:hidden}.hero img{width:100%;height:100%;object-fit:cover}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 45%,#14312a99)}.hero-label{position:absolute;z-index:1;bottom:16px;left:20px;color:#fff;font-size:11px;letter-spacing:3px}.store-info{padding:18px 18px 16px;background:white}.title-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.store-info h2{font-size:21px;margin:0}.store-info p{font-size:12px;color:var(--muted);line-height:1.6;margin:9px 0}.service-row{display:flex;gap:10px}.service-row a,.service-row button{flex:1;border:1px solid var(--line);border-radius:10px;text-align:center;min-height:40px;display:flex;align-items:center;justify-content:center;gap:7px;font-size:12px}.service-row svg{width:17px}.mobile-pad{padding:14px}.service-tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tile{min-height:132px;border-radius:16px;text-align:left;padding:18px;color:white;background:var(--orange);position:relative;overflow:hidden}.tile:after{content:'';position:absolute;width:90px;height:90px;border:15px solid #ffffff13;border-radius:50%;right:-28px;bottom:-22px}.tile.teal{background:var(--deep)}.tile svg{width:30px;height:30px;display:block;margin-bottom:12px}.tile strong{font-size:17px;display:block}.tile small{font-size:11px;opacity:.8;display:block;margin-top:5px}.newcomer{padding:14px;border-radius:13px;background:#fff0e3;display:flex;gap:10px;align-items:center;margin:14px 0}.newcomer svg{color:var(--orange);width:25px}.newcomer strong{font-size:13px;display:block}.newcomer small{font-size:11px;color:var(--muted);display:block;margin-top:4px}.newcomer button{margin-left:auto;color:var(--orange);font-size:12px;font-weight:700;white-space:nowrap}.section-title{display:flex;align-items:center;justify-content:space-between;margin:20px 0 12px}.section-title h3{margin:0;font-size:17px}.section-title small{font-size:11px;color:var(--muted)}.coupon{background:white;border-radius:13px;display:flex;align-items:center;gap:12px;padding:13px;margin-bottom:10px;border:1px solid #efeae2}.coupon-amount{flex:0 0 62px;border-right:1px dashed #ead6c6;color:var(--orange);font-size:27px;font-weight:800;line-height:1.1}.coupon-amount small{display:block;font-size:10px;font-weight:400;margin-top:5px}.coupon-info{flex:1;min-width:0}.coupon-info strong{font-size:13px;display:block}.coupon-info small{display:block;color:var(--muted);font-size:10px;margin:5px 0}.coupon-info b{color:var(--orange);font-size:12px}.coupon button{border:1px solid #ffd3b9;color:var(--orange);padding:0 10px;border-radius:20px;min-height:34px;font-size:11px;white-space:nowrap}.ad-placeholder{background:repeating-linear-gradient(135deg,#f0f0eb,#f0f0eb 9px,#f4f4ef 9px,#f4f4ef 18px);border:1px solid #e4e5df;border-radius:10px;min-height:65px;display:flex;align-items:center;justify-content:center;color:#939a94;position:relative;font-size:12px;margin-top:16px}.ad-placeholder span{position:absolute;right:6px;top:5px;font-size:9px}.bottomnav{height:67px;display:flex;justify-content:space-around;background:white;border-top:1px solid var(--line)}.bottomnav button{width:30%;font-size:10px;color:var(--muted)}.bottomnav svg{display:block;margin:0 auto 4px}.bottomnav button.active{color:var(--orange)}.primary{background:var(--orange);color:white;border-radius:10px;padding:0 20px;font-weight:600}.secondary{border:1px solid var(--line);background:white;border-radius:10px;padding:0 16px}.text-btn{color:var(--orange);font-size:13px}.detail-ticket{padding:32px 22px;background:#fff0df;border:1px solid #ffd4ad;border-radius:18px;text-align:center;margin:5px 0 20px}.detail-ticket h2{font-size:35px;color:#d6501b;margin:10px 0}.detail-ticket p{color:#9b725d;font-size:13px}.detail-ticket strong{display:block;font-size:22px;color:var(--orange);margin-top:20px}.whitecard{padding:18px;background:white;border-radius:14px;margin-bottom:14px}.whitecard h3{font-size:15px;margin:0 0 12px}.whitecard p{font-size:13px;color:var(--muted);line-height:1.9}.full{width:100%;min-height:48px}.balance{background:var(--deep);color:white;padding:26px 20px;border-radius:15px}.balance small{opacity:.7}.balance b{display:block;font-size:42px;margin-top:6px}.empty{text-align:center;padding:45px 15px;color:var(--muted);font-size:13px;line-height:2}.admin-layout{max-width:1440px;margin:auto;display:grid;grid-template-columns:210px 1fr;min-height:calc(100vh - 88px)}.sidebar{border-right:1px solid var(--line);padding:32px 18px;background:#fffefa}.sidebar h4{font-size:10px;letter-spacing:3px;color:#9a9e96;margin:0 14px 22px}.sidebar button{display:flex;align-items:center;gap:12px;text-align:left;width:100%;border-radius:10px;padding:0 14px;margin:5px 0;color:var(--muted);font-size:13px}.sidebar button.active{background:var(--deep);color:white}.sidebar .note{margin:35px 14px}.admin-content{padding:34px;min-width:0}.admin-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.admin-heading h1{font-size:27px;letter-spacing:-1px;margin:0 0 8px}.admin-heading p{font-size:12px;color:var(--muted);margin:0}.actions{display:flex;gap:8px;flex-wrap:wrap}.actions button{font-size:12px;display:flex;align-items:center;gap:7px}.actions svg{width:16px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:26px 0}.stat{background:white;padding:20px;border-radius:14px;border:1px solid var(--line)}.stat span{font-size:12px;color:var(--muted)}.stat b{display:block;font-size:30px;margin-top:10px}.stat small{font-size:11px;color:var(--muted);margin-left:5px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:15px}.search{width:280px;max-width:100%}input,select,textarea{border:1px solid #dfe3dc;background:white;border-radius:8px;padding:11px 12px;color:var(--ink);outline:none;min-height:43px}input:focus,textarea:focus,select:focus{border-color:var(--orange)}textarea{resize:vertical;min-height:80px}table{width:100%;border-collapse:collapse;background:white;font-size:12px;white-space:nowrap}.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px}th{text-align:left;font-size:11px;color:var(--muted);font-weight:500;background:#f0f2ed}th,td{padding:17px;border-bottom:1px solid var(--line)}tr:last-child td{border:0}.shopcell{display:flex;align-items:center;gap:10px}.shopavatar{width:36px;height:36px;border-radius:9px;background:#f4e5d5;display:grid;place-items:center;font-size:17px;color:#a86637}.shopcell small{display:block;color:var(--muted);margin-top:5px;max-width:200px;overflow:hidden;text-overflow:ellipsis}.warn{background:#fff0df;color:#b87b35}.danger{color:#b84d46}.adminhint{background:#f0f4ed;border-radius:12px;margin-top:20px;padding:16px;font-size:12px;color:#6a7e72;line-height:1.8}.code-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:18px;margin-top:24px}.code-card{background:white;border:1px solid var(--line);border-radius:15px;padding:22px;text-align:center}.code-card h3{font-size:15px}.qrbox{display:flex;justify-content:center;margin:16px 0}.qrbox img,.qrbox canvas{max-width:170px}.code-card .actions{justify-content:center}.code-card p{font-size:11px;color:var(--muted);word-break:break-all}.modal-backdrop{position:fixed;inset:0;background:#112d2d66;backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:30;padding:18px}.modal{width:630px;max-width:100%;max-height:90dvh;overflow:auto;border-radius:20px;background:#fdfdf9;padding:26px;box-shadow:0 20px 70px #0002}.modal.narrow{width:420px}.modalheader{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modalheader h2{font-size:20px;margin:0}.modalheader button{font-size:25px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:flex;flex-direction:column;gap:7px;font-size:12px}.field.wide{grid-column:1/-1}.modalfooter{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.dropzone{border:1px dashed #cdd6cb;border-radius:13px;padding:30px 16px;background:#f3f6ef;text-align:center}.dropzone p{font-size:12px;color:var(--muted)}.dropzone input{width:100%;font-size:12px}.import-result{font-size:12px;line-height:1.8;max-height:180px;overflow:auto;margin-top:16px;white-space:pre-line}.splash{position:absolute;inset:0;background:#f8eddd;z-index:10;display:flex;flex-direction:column;justify-content:center;align-items:center;background-image:radial-gradient(ellipse at 60% 75%,#e2b87a66,transparent 60%)}.splash h2{font-size:37px;font-family:serif;line-height:1.7;letter-spacing:3px;color:#58472e;text-align:center}.splash .skip{position:absolute;top:40px;right:17px;border-radius:20px;background:#fff9;padding:0 16px;font-size:12px}.splash .splashmark{font-size:80px}.splash p{font-size:12px;color:#937c5b}.splash .note{position:absolute;bottom:35px;text-align:center;padding:0 20px}.splash .adtag{position:absolute;left:20px;top:48px;font-size:10px;color:#a08d75}.import-result.error{color:#a84032}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);padding:14px 24px;background:#153b36;color:white;border-radius:12px;font-size:13px;max-width:90%;z-index:80;opacity:0;pointer-events:none;transition:opacity .2s}#toast.show{opacity:1}.image-preview{max-height:160px;max-width:100%;display:block;margin:10px auto}.pillrow{display:flex;gap:10px;margin:15px 0}.pillrow button{border-radius:20px;padding:0 16px;font-size:12px;background:#eaece5}.pillrow button.active{background:var(--deep);color:white}.productrow{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.productrow b{color:var(--orange)}.linklist button{display:block;border-bottom:1px solid var(--line);width:100%;text-align:left;font-size:13px}.overview-block{background:white;border:1px solid var(--line);border-radius:14px;padding:24px;margin-top:24px}.overview-block h3{font-size:17px}.overview-block p{font-size:13px;line-height:1.9;color:var(--muted)}@media(min-width:1500px){.preview-layout{padding-top:65px}}@media(max-width:1150px){.preview-layout{grid-template-columns:1fr 400px;max-width:960px;gap:30px}.sidecard{grid-column:1;margin-top:-260px;max-width:280px}.intro h1{font-size:40px}.version{display:none}}@media(max-width:760px){.topbar{height:66px;padding:0 15px}.brand{font-size:15px;gap:8px}.brandmark{width:32px;height:32px;font-size:21px;border-radius:10px}.brand small{display:none}.topbar nav button{padding:0 12px;font-size:12px;min-height:36px}.preview-layout{display:flex;flex-direction:column;padding:16px 12px;gap:16px}.intro{display:none}.phone{width:100%;max-width:430px;margin:0 auto;border-width:0;border-radius:20px;box-shadow:0 4px 20px #2034310a}.statusbar{display:none}.phone-body{height:calc(100dvh - 216px);min-height:480px}.sidecard{order:-1;margin:0;max-width:430px;width:100%;align-self:center;padding:10px 12px;display:flex;gap:7px;align-items:center;border-radius:12px}.sidecard h3,.sidecard .note{display:none}.sidecard select{margin:0;flex:1;min-width:0;padding:9px;font-size:12px}.sidecard button{width:auto;margin:0;padding:0 12px;font-size:11px}.sidecard button[data-action="show-codes"]{display:none}.hero{height:180px}.admin-layout{display:flex;flex-direction:column}.sidebar{padding:8px 12px;border-right:0;border-bottom:1px solid var(--line);display:flex;overflow:auto;gap:5px}.sidebar h4,.sidebar .note{display:none}.sidebar button{min-width:100px;margin:0;font-size:12px;justify-content:center;padding:0 10px}.sidebar svg{display:none}.admin-content{padding:20px 14px}.admin-heading h1{font-size:23px}.stats{gap:8px;margin:20px 0}.stat{padding:14px 10px}.stat b{font-size:24px}.stat span{font-size:10px}.actions button{padding:0 12px}.toolbar{align-items:flex-start}.toolbar .note{font-size:10px}.formgrid{grid-template-columns:1fr}.field.wide{grid-column:auto}.modal{padding:20px}.coupon-info b{font-size:11px}.intro p{max-width:none}}
.location-entry{display:flex;align-items:center;gap:7px;background:#eaf2e8;color:#416a54;padding:0 12px;border-radius:10px;width:100%;font-size:11px;margin-bottom:13px;text-align:left}.location-entry span{margin-left:auto}.location-entry svg{width:16px}.geo-presets{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.geo-presets button{background:#e8ece3;border-radius:20px;font-size:10px;min-height:33px;padding:0 11px}.geo-presets button.active{background:var(--deep);color:white}.geo-location{font-size:11px;color:#5f796a;margin:14px 0}.geo-location svg{width:16px}.demo-map{border:1px solid #dce5d6;border-radius:14px;overflow:hidden;background:white;margin:12px 0}.demo-map>svg{width:100%;height:auto;display:block;stroke:none;fill:initial}.demo-map .map-pin{cursor:pointer}.map-caption{padding:11px 13px;font-size:11px;color:#557060;border-top:1px solid #e0e8da}.geo-search{display:flex;gap:7px;margin-top:17px}.geo-search input{min-width:0;flex:1;font-size:11px}.geo-search button{font-size:11px;padding:0 15px}.nearby-store{padding:16px;background:white;border:1px solid var(--line);border-radius:12px;margin-bottom:11px}.nearby-store.chosen{border-color:#f9af7c}.nearby-store b{font-size:13px}.nearby-store strong{font-size:11px;color:var(--orange);white-space:nowrap}.nearby-store p{font-size:10px;color:var(--muted);line-height:1.7}.nearby-store .service-row{gap:5px}.nearby-store .service-row button{font-size:10px;padding:0 5px}.bottomnav button{width:24%}
.store-context{background:#eef3eb;border:1px solid #dce7d6;border-radius:15px;padding:18px;margin-bottom:26px}.context-title{display:flex;align-items:center;gap:12px}.context-title select{flex:1;min-width:0;max-width:480px;font-weight:600;font-size:13px}.context-meta{display:flex;justify-content:space-between;gap:12px;font-size:11px;color:#71806c;margin:13px 0;line-height:1.8;flex-wrap:wrap}.context-actions{display:flex;gap:7px;flex-wrap:wrap}.context-actions button{min-height:38px;padding:0 13px;border-radius:8px;background:#fff9;font-size:12px}.context-actions button.on{background:var(--deep);color:white}.context-actions .preview{color:var(--orange);background:white;margin-left:auto}.store-directory,.coupon-directory{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}.directory-card{background:white;border:1px solid var(--line);border-radius:15px;padding:19px;min-width:0}.directory-card.selected-store{border-color:#94b9a4;box-shadow:0 0 0 2px #e4eee3}.directory-card>.title-row>b{font-size:16px}.directory-address{font-size:12px;color:var(--muted);line-height:1.8;min-height:22px;overflow-wrap:anywhere}.status-chips{display:flex;gap:6px;flex-wrap:wrap;margin:15px 0}.status-chips .tag{font-size:10px}.card-main-actions{display:flex;gap:7px;align-items:center;margin-top:15px}.card-main-actions button{font-size:12px;padding:0 14px;flex:1}.card-sub-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.card-sub-actions button{font-size:10px;color:var(--muted);padding:0;min-height:35px}.card-sub-actions .danger{color:#b84d46;margin-left:auto}.pager{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:20px;color:var(--muted);font-size:11px}.pager>div{display:flex;align-items:center;gap:10px}.pager button{border:1px solid var(--line);background:white;border-radius:8px;padding:0 12px;font-size:11px}.pager b{font-size:11px;font-weight:500}.coupon-terms{display:flex;flex-direction:column;gap:8px;padding:15px;background:#fff4e9;border-radius:10px}.coupon-terms strong{font-size:19px;color:var(--orange)}.coupon-terms span{font-size:12px;color:#8e7969}.resource-search{display:flex;gap:7px;max-width:100%}.resource-search input{min-width:0;font-size:12px}.resource-search button{font-size:12px}.code-empty{min-height:170px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f4f5f0;border-radius:10px;margin:16px 0;color:#9ba394}.code-empty svg{width:45px;height:45px}.linked-codes .code-card{min-width:0}.context-title .tag{white-space:nowrap}@media(max-width:760px){.sidebar{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:9px}.sidebar button{min-width:0;font-size:11px;padding:0 3px;white-space:normal}.admin-content{padding:15px 12px}.store-context{padding:13px;margin-bottom:20px}.context-title{gap:7px}.context-title .tag{font-size:9px;padding:5px}.context-title select{font-size:12px;padding:9px;max-width:none}.context-meta{font-size:10px;display:block}.context-meta>span{display:block}.context-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.context-actions button{font-size:11px;padding:0 5px;min-height:42px}.context-actions .preview{margin:0}.store-directory,.coupon-directory{grid-template-columns:1fr}.directory-card{padding:16px}.directory-card .shopcell b{font-size:14px;overflow-wrap:anywhere}.directory-card .shopcell{min-width:0}.directory-card .shopcell small{font-size:10px}.admin-heading p{line-height:1.8}.card-main-actions button{font-size:12px;padding:0 9px;min-height:44px}.toolbar{flex-wrap:wrap}.toolbar .search{width:100%}.linked-codes{grid-template-columns:1fr}.pager{flex-wrap:wrap}.resource-search{width:100%}.resource-search input{flex:1;width:0}.topbar{padding-left:12px;padding-right:12px;gap:6px}.topbar nav button{padding:0 10px}.topbar .brand{font-size:14px}.admin-layout{width:100%;overflow-x:hidden}}
.qr-result{padding:14px;background:#f0f4eb;border:1px solid #dce6d5;border-radius:12px;margin-top:10px}.qr-result .image-preview{max-height:210px;border-radius:7px}.qr-result textarea{font-size:11px;overflow-wrap:anywhere}.qr-original{display:flex;align-items:center;gap:8px;font-size:12px;margin-top:12px}.qr-original input{width:18px;min-height:18px}
.configured-home{padding:0 14px 18px}.layout-module{position:relative;min-width:0;overflow-wrap:anywhere;display:flow-root}.layout-module.edge-module{margin-left:-14px;margin-right:-14px}.layout-module .newcomer,.layout-module .location-entry,.layout-module .whitecard,.layout-module .section-title,.layout-module .ad-placeholder{margin-top:0;margin-bottom:0}.layout-module .section-title{padding-bottom:12px}.layout-module .coupon:last-child{margin-bottom:0}.layout-module .store-info{border-radius:12px}.layout-module .service-row button{background:#fff;min-height:44px}.layout-module .ad-placeholder{position:relative;overflow:hidden}.layout-text{white-space:pre-wrap;padding:16px;background:white;border-radius:12px;font-size:14px;line-height:1.8}.layout-workspace{display:grid;grid-template-columns:minmax(300px,410px) minmax(230px,1fr);gap:26px;align-items:start;margin-top:25px}.layout-canvas{background:#f7f8f3;border:1px solid #d6e0d3;border-radius:22px;overflow:hidden;width:100%;max-width:410px}.layout-canvas-title{background:white;padding:18px;text-align:center;font-size:14px;font-weight:700;border-bottom:1px solid var(--line)}.layout-canvas-title small{display:block;font-size:10px;color:var(--muted);font-weight:400;margin-top:7px}.layout-canvas-body{padding:12px 14px 20px;max-height:780px;overflow-y:auto}.layout-footer-hint{background:white;padding:20px 10px;text-align:center;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.insert-module{display:block;width:100%;min-height:44px;border:1px dashed #c8d9c2;background:#edf4e9;border-radius:8px;color:#5a7c51;font-size:11px;margin:8px 0}.editing-module{outline:1px dashed #c7d1bf;border-radius:10px;cursor:pointer;overflow:visible}.editing-module.edge-module{margin-left:0;margin-right:0}.editing-module:focus-visible{outline:2px solid var(--orange)}.module-selected{outline:2px solid var(--orange)}.module-label{padding:7px 10px;background:#ecf0e7;font-size:10px;color:#71816b;min-height:29px;border-radius:8px 8px 0 0}.module-selected .module-label{background:#ffeadb;color:#b85424}.module-content{pointer-events:none;user-select:none}.layout-inspector{background:white;border:1px solid var(--line);border-radius:16px;padding:20px;position:sticky;top:18px}.layout-inspector h3{font-size:17px;margin:0 0 15px}.layout-move{display:flex;gap:6px;margin-bottom:18px}.layout-move button{flex:1;font-size:12px;padding:0 8px}.layout-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.layout-fields input{width:100%;min-width:0}.layout-fields .full,.layout-fields label:has(textarea){grid-column:1/-1}.layout-fields textarea{width:100%}.layout-safety{border:1px solid #e3e8dd;background:#f5f7f0;border-radius:10px;margin:18px 0;padding:13px}.layout-safety b{font-size:12px;color:#5b7353}.layout-safety p{font-size:11px;line-height:1.8;color:var(--muted);margin:6px 0 0}.module-picker{display:grid;grid-template-columns:1fr 1fr;gap:10px}.module-picker button{font-size:12px}.layout-spacer{background:transparent}.editing-module:has(.layout-spacer) .layout-spacer{background:repeating-linear-gradient(45deg,#eef1eb,#eef1eb 7px,#f6f7f2 7px,#f6f7f2 14px)}@media(max-width:960px){.layout-workspace{grid-template-columns:1fr}.layout-canvas{margin:auto}.layout-canvas-body{max-height:580px}.layout-inspector{position:relative;top:auto;max-width:410px;width:100%;margin:auto}}@media(max-width:760px){.sidecard button[data-layout-open]{font-size:10px;padding:0 8px;white-space:nowrap}.sidecard{flex-wrap:wrap}.sidecard select{min-width:130px}.layout-workspace{gap:16px}.layout-canvas-body{max-height:500px}.layout-inspector{padding:16px}.context-actions{grid-template-columns:1fr 1fr}.layout-fields .field{font-size:11px}}
.direct-workspace{display:block}.direct-workspace .layout-canvas{max-width:440px;margin:auto}.direct-workspace .layout-canvas-body{max-height:none;overflow:visible}.direct-workspace .layout-canvas{overflow:visible}.direct-workspace .layout-canvas-title{border-radius:22px 22px 0 0}.direct-hint{font-size:12px;color:var(--muted);line-height:1.8}.direct-heading{position:sticky;top:0;z-index:8;background:var(--paper);padding:10px 0}.direct-heading .actions{gap:6px}.direct-heading .actions button{font-size:11px}.module-label{display:flex;align-items:center;justify-content:space-between;gap:5px;min-height:36px}.module-label>small{font-size:9px}.direct-tools{display:flex;gap:2px;flex-wrap:wrap;justify-content:flex-end}.direct-tools button{min-height:36px;min-width:32px;padding:0 7px;border-radius:6px;background:white;font-size:11px}.module-selected>.module-content{pointer-events:auto;user-select:text}.module-selected{touch-action:none;z-index:2}.module-selected [contenteditable]{touch-action:auto;cursor:text;outline:1px dashed #f7aa71;outline-offset:3px;min-width:20px;white-space:pre-wrap}.module-selected [contenteditable]:focus{outline:2px solid var(--orange);background:#fff9ed}.direct-resize{position:absolute;right:-9px;bottom:-10px;width:40px;height:40px;min-height:40px;background:var(--orange);color:white;border:3px solid white;border-radius:50%;touch-action:none;z-index:5;font-size:21px;cursor:nwse-resize;box-shadow:0 2px 6px #0002}.direct-size{position:absolute;right:31px;bottom:-5px;background:#fff4e9;padding:3px 6px;font-size:9px;color:#b56632;pointer-events:none}.module-content{--module-scale:1}.layout-module .module-content{--module-scale:inherit}.module-content .store-info h2{font-size:calc(21px * var(--module-scale,1))}.module-content .store-info p,.module-content .layout-text{font-size:calc(13px * var(--module-scale,1))}.module-content .tile strong{font-size:calc(17px * var(--module-scale,1))}.module-content .tile small,.module-content .location-entry{font-size:calc(11px * var(--module-scale,1))}.module-content .section-title h3,.module-content .whitecard h3{font-size:calc(17px * var(--module-scale,1))}.module-content .newcomer strong,.module-content .coupon-info strong{font-size:calc(13px * var(--module-scale,1))}.module-content .coupon-info b{font-size:calc(12px * var(--module-scale,1))}.custom-image-wrap,.direct-photo-wrap{position:relative;overflow:hidden;background:#eaf0e4;border-radius:12px}.custom-image-wrap>img{width:100%;height:100%;object-fit:cover;display:block}.image-empty{display:grid;place-items:center;height:100%;min-height:65px;color:var(--muted);font-size:12px}.direct-image-overlay{position:absolute;inset:auto 15px 15px;min-height:42px;background:#fffE;border-radius:8px;font-size:12px;z-index:3}.editing-module .service-tiles>.tile{cursor:default}.editing-module .newcomer>div:last-child{margin-left:auto}.direct-workspace .insert-module{min-height:44px}.configured-home .module-content{pointer-events:auto;user-select:auto}@media(max-width:760px){.direct-workspace .layout-canvas-body{max-height:none}.direct-heading{top:0;padding:10px 0}.direct-heading h1{font-size:22px}.direct-heading .actions{display:grid;grid-template-columns:repeat(4,1fr);width:100%}.direct-heading .actions button{padding:0 4px;font-size:10px;min-height:44px}.direct-tools button{min-height:44px;min-width:31px;padding:0 5px;font-size:10px}.module-label{align-items:flex-start;flex-direction:column}.direct-tools{width:100%;justify-content:flex-start;gap:4px}.direct-tools button:last-child{margin-left:auto}.module-selected [contenteditable]{font-size:max(16px,1em)}.direct-workspace{margin-top:16px}.direct-workspace .layout-canvas{max-width:none}}
.nav-destination{background:#f1f5ec;padding:18px;border:1px solid #e0e8da;border-radius:13px;margin-bottom:16px}.nav-destination h3{font-size:19px;margin:14px 0 9px}.nav-destination p{font-size:13px;line-height:1.8;overflow-wrap:anywhere}.nav-destination small{font-size:10px;color:var(--muted)}.nav-providers{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}.nav-providers a{display:flex;align-items:center;gap:12px;min-height:76px;background:white;border:1px solid var(--line);border-radius:12px;padding:14px}.nav-providers svg{color:var(--orange);width:25px;height:25px;flex-shrink:0}.nav-providers a>div{flex:1}.nav-providers strong{font-size:14px;display:block}.nav-providers small{font-size:10px;line-height:1.7;display:block;color:var(--muted);margin-top:5px}.nav-providers a>span{color:var(--muted)}
.map-config{padding:18px;border:1px solid #e1e8db;background:#f4f7ef;border-radius:13px;margin:22px 0}.map-config h3{margin-top:0}.map-config input{width:100%;font-size:12px}.map-config .note{font-size:11px}.nav-providers .nav-unavailable{display:flex;align-items:center;gap:12px;min-height:76px;border:1px solid var(--line);border-radius:12px;padding:14px;background:#f4f4ef;text-align:left;color:#8a9288;width:100%}.nav-unavailable>div{flex:1}.nav-providers .nav-unavailable svg{color:#9ca496}

.form-tip{background:#fbf7ec;border:1px solid #ecdfc4;border-radius:12px;padding:14px 16px;margin:0 0 16px}
.form-tip-title{font-weight:700;font-size:14px;color:#7a5a25;margin-bottom:8px}
.form-tip ul{margin:0;padding-left:18px}
.form-tip li{font-size:13px;line-height:1.75;color:#6b5b3e;margin:2px 0}
.form-tip code{background:#f1e9d6;padding:1px 6px;border-radius:4px;font-size:12px}
.form-tip a{color:#a8641c}


/* ============================================================
   管理后台 · 杂志风（与小程序 B 版统一）
   纸白底 / 宋体标题 / 直角 / 2px 墨线 / 朱橙强调
   ============================================================ */

:root{
  --paper:#f8f5ec;
  --paper-2:#fffdf7;
  --ink:#16150f;
  --ink-2:#3a372e;
  --ink-3:#6f6a5e;
  --line:rgba(27,26,23,.16);
  --line-strong:#1b1a17;
  --accent:#c8452a;
}

body{
  background:
    radial-gradient(1200px 620px at 8% -10%, #ffffff 0%, rgba(248,245,236,0) 55%),
    linear-gradient(180deg, #f8f5ec 0%, #efeade 100%);
  color:var(--ink-2);
}

/* 顶栏：报头 */
.topbar{
  background:var(--paper-2);
  border-bottom:2px solid var(--line-strong);
  color:var(--ink);
}
.topbar .brand{font-family:"Songti SC","STSong","SimSun",serif;letter-spacing:1px;color:var(--ink)}
.topbar .brandmark{
  background:var(--accent);border-radius:2px;color:#fff;
  font-family:"Songti SC",serif;
}
.topbar nav button{color:var(--ink-3);letter-spacing:1px;border-radius:2px}
.topbar nav button.active{background:var(--ink);color:var(--paper-2)}
.topbar .version{color:var(--ink-3);letter-spacing:2px}

/* 侧栏 */
.sidebar{background:var(--paper-2);border-right:1px solid var(--line)}
.sidebar button,.sidebar a{color:var(--ink-2);border-radius:2px;letter-spacing:.5px}
.sidebar .active,.sidebar button.active{background:var(--ink);color:var(--paper-2)}

/* 标题：宋体 */
.admin-heading h1,.admin-heading h2,h1,h2{font-family:"Songti SC","STSong","SimSun",serif;letter-spacing:1px;color:var(--ink)}
.admin-heading p,.direct-hint{color:var(--ink-3);letter-spacing:.5px}

/* 卡片 / 统计 */
.stat,.sidecard,.whitecard,.detail-ticket,.code-card,.shopcell,.modal{
  background:var(--paper-2);
  border:1px solid var(--line);
  border-radius:2px;
  box-shadow:none;
}
.stat strong{font-family:"Songti SC",serif;color:var(--ink)}
.stat span{color:var(--ink-3);letter-spacing:1px}

/* 按钮：方角实心 */
button,.primary,.secondary,.text-btn{font-family:inherit;letter-spacing:1px}
.primary{
  background:var(--ink);color:var(--paper-2);border:1px solid var(--ink);
  border-radius:2px;
}
.primary:hover{background:#000}
.secondary{
  background:transparent;color:var(--ink);border:2px solid var(--ink);
  border-radius:2px;
}
.text-btn{color:var(--accent);letter-spacing:1px}
.danger{background:var(--accent);border-color:var(--accent);color:#fff;border-radius:2px}

/* 表格 */
.tablewrap{border:1px solid var(--line);border-radius:2px;background:var(--paper-2)}
table{border-collapse:collapse}
th{
  font-family:"Songti SC",serif;color:var(--ink);letter-spacing:1px;
  border-bottom:2px solid var(--line-strong);background:transparent;
}
td{border-bottom:1px solid var(--line);color:var(--ink-2)}
tr:hover td{background:rgba(27,26,23,.03)}

/* 表单 */
.field input[type=text],.field input[type=number],.field input[type=url],.field input[type=tel],
.field textarea,.field select,.search input,.toolbar input,.toolbar select{
  background:#fffdf7;border:1px solid var(--line);border-radius:2px;color:var(--ink);
  font-family:inherit;
}
.field input:focus,.field textarea:focus,.field select:focus,.search input:focus{
  outline:none;border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)
}
.field > span,.field label{color:var(--ink-3);letter-spacing:.5px}
.form-tip{
  background:#fbf3e6;border:1px solid rgba(200,69,42,.28);border-radius:2px;color:var(--ink-2);
}
.form-tip-title{color:#8f3418;letter-spacing:1px}

/* 弹窗 */
.modal-backdrop{background:rgba(20,20,16,.55)}
.modal{border:2px solid var(--line-strong)}
.modalheader{font-family:"Songti SC",serif;letter-spacing:1px;border-bottom:1px solid var(--line)}
.modalfooter{border-top:1px solid var(--line)}

/* 标签 / 徽标 / 提示 */
.tag,.pillrow .pill{background:#f1ece0;color:var(--ink-2);border-radius:2px;letter-spacing:.5px}
.warn{color:#8f3418}
.adminhint,.note{color:var(--ink-3);letter-spacing:.5px}
.note a,.adminhint a{color:var(--accent)}

/* 手机预览外框也换纸感 */
.phone,.phone-body{background:var(--paper)}
.statusbar,.wxnav{background:var(--paper-2);border-bottom:1px solid var(--line)}

/* 顶栏品牌图标 */
.topbar img.brandmark{width:30px;height:30px;border-radius:6px;object-fit:cover;background:none;display:inline-block}


/* ===== 可读性兜底：强调色/危险色底的按钮一律白字，防止文字与背景同色 ===== */
.primary,
.danger,
.cu-nc-dist .mini,
.cu-mini-btn.primary,
.mp-mini.primary,
.cu-chip.on,
.mp-btn.primary,
.direct-tools .danger,
.direct-tools button,
.layout-ad button,
button[class*="danger"],
button[class*="primary"]{
  color:#fff !important;
}
.primary:disabled,.danger:disabled{color:rgba(255,255,255,.75) !important}

/* 描边/次要按钮：深色字，避免继承成强调色 */
.secondary,
.cu-mini-btn,
.mp-mini.ghost,
.cu-outline-btn,
.text-btn{
  color:#16150f;
}
.text-btn{color:#c8452a}

.topbar nav a.nav-link{padding:8px 14px;color:#16150f;text-decoration:none;font-size:14px;border:1px solid rgba(27,26,23,.25);border-radius:2px;margin-left:8px;letter-spacing:1px}
.topbar nav a.nav-link:hover{background:#16150f;color:#fff}
