.banner-manager[data-v-d8d317f3]{padding-top:18px;border-top:1px solid var(--line)}.banner-head[data-v-d8d317f3]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.banner-head p[data-v-d8d317f3]{max-width:620px;margin:6px 0 0;color:var(--muted);font-size:13px;line-height:1.6}.banner-file-input[data-v-d8d317f3]{display:none}.disabled[data-v-d8d317f3]{cursor:not-allowed;opacity:.55}.banner-list[data-v-d8d317f3]{display:grid;gap:10px;margin-top:16px}.banner-row[data-v-d8d317f3]{display:grid;grid-template-columns:144px minmax(0,1fr) auto;align-items:center;gap:14px;min-height:92px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#faf6ee}.banner-row img[data-v-d8d317f3]{width:144px;aspect-ratio:16 / 7;display:block;border-radius:6px;object-fit:cover;background:#e8dfd0}.banner-meta[data-v-d8d317f3]{min-width:0}.banner-meta span[data-v-d8d317f3]{display:block;margin-top:6px;overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.banner-actions[data-v-d8d317f3]{display:flex;gap:6px}.banner-actions .icon-btn[data-v-d8d317f3]{width:34px;height:34px}.banner-actions .icon-btn[data-v-d8d317f3]:disabled{cursor:not-allowed;opacity:.35}.danger-icon[data-v-d8d317f3]{color:#a13f36}.banner-empty[data-v-d8d317f3]{margin-top:14px;padding:24px;border:1px dashed var(--line);border-radius:8px;color:var(--muted);text-align:center}@media (max-width: 720px){.banner-head[data-v-d8d317f3]{align-items:stretch;flex-direction:column}.banner-row[data-v-d8d317f3]{grid-template-columns:112px minmax(0,1fr)}.banner-row img[data-v-d8d317f3]{width:112px}.banner-actions[data-v-d8d317f3]{grid-column:1 / -1;justify-content:flex-end}}:root{--ink: #171a17;--sub: #596159;--muted: #8c928b;--paper: #f5f0e7;--paper2: #ebe5d9;--card: #fffdf8;--line: #ded6c8;--deep: #1e2b27;--gold: #9b7650;--gold2: #d7c1a0;--green: #557565;--blue: #5d788b;--orange: #b27a3e;--red: #a65f58;--shadow: 0 20px 52px rgba(31, 38, 33, .12);--hero: linear-gradient(135deg, rgba(30, 43, 39, .08), rgba(155, 118, 80, .18)), radial-gradient(circle at 18% 18%, rgba(247, 241, 230, .9), transparent 28%), linear-gradient(135deg, #748d77, #b99a71 52%, #e5dccd);--clean: linear-gradient(135deg, #d9e4d8, #8eaa95);--massage: linear-gradient(135deg, #ead8cf, #b98d7d);--repair: linear-gradient(135deg, #d9e0e5, #6f8795);--beauty: linear-gradient(135deg, #f0d7de, #c5899c);--move: linear-gradient(135deg, #e6dbc7, #af8b5d);--pipe: linear-gradient(135deg, #d8e4df, #678979)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,sans-serif;color:var(--ink)}body{min-height:100vh;min-width:1160px;background:#e6e2d7}button,input,textarea,select{font:inherit}button{border:0;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}input,textarea,select{outline:0}.photo{background-size:cover;background-position:center;background-repeat:no-repeat;background-color:#ddd3c2;position:relative;overflow:hidden}.photo:after,.thumb:after,.upload-preview:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(120deg,rgba(255,255,255,.1),transparent 45%);pointer-events:none}.hero-photo{background-image:var(--hero)}.clean{background-image:var(--clean)}.massage{background-image:var(--massage)}.repair{background-image:var(--repair)}.beauty{background-image:var(--beauty)}.move{background-image:var(--move)}.pipe{background-image:var(--pipe)}.primary,.ghost,.soft,.danger{min-height:44px;border-radius:12px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;white-space:nowrap;transition:.18s ease}.primary:active,.ghost:active,.soft:active,.danger:active{transform:scale(.985);opacity:.82}.primary{background:var(--deep);color:#fff}.ghost{background:#fffdf8;color:var(--deep);border:1px solid var(--line)}.soft{background:#ebe5d9;color:var(--deep);border:1px solid #ddd3c2}.danger{background:#f4e9e6;color:var(--red);border:1px solid #e2c9c4}.full{width:100%}.small{min-height:34px;padding:0 12px;font-size:12px}.badge{display:inline-flex;align-items:center;gap:5px;min-height:24px;padding:0 9px;border-radius:999px;font-size:11px;font-weight:800;background:#eee7d9;color:#5d554b}.badge.warn,.warn{background:#f5eadc;color:var(--orange)}.badge.payment,.payment{background:#f3e8d8;color:#8d623e}.badge.info,.info{background:#e7eef1;color:var(--blue)}.badge.ok,.ok{background:#e7eee8;color:var(--green)}.price{font-weight:800;color:var(--gold);letter-spacing:0}.tiny,.item-head p,.upload-card p{font-size:12px;line-height:1.5;color:var(--muted)}label{display:block;margin-bottom:14px;font-size:12px;font-weight:700;color:var(--sub)}label input,label select,label textarea,.input,.select,.textarea{width:100%;margin-top:7px;border:1px solid var(--line);background:#fffdf8;border-radius:12px;color:var(--ink)}label input,label select,.input,.select{height:44px;padding:0 12px}label textarea,.textarea{min-height:92px;padding:12px;resize:vertical}label input:focus,label select:focus,label textarea:focus,.input:focus,.select:focus,.textarea:focus{border-color:#a98a60;box-shadow:0 0 0 4px #9b76501f}.toast{position:fixed;z-index:120;left:50%;bottom:26px;transform:translate(-50%);max-width:calc(100vw - 36px);min-height:40px;padding:0 16px;border-radius:999px;background:#171a17eb;color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;box-shadow:var(--shadow)}.mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:flex;background:#12161370;animation:fade .18s ease}.sheet{width:100%;max-width:430px;margin:auto auto 0;background:#fbf7ee;border-radius:22px 22px 0 0;padding:18px;box-shadow:0 -24px 70px #171a173d;animation:rise .22s ease;max-height:86vh;overflow:auto}.service-sheet{max-width:680px}.quote-sheet{max-width:420px}.quote-reference{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;padding:14px;border-radius:12px;background:#f3eee4;color:var(--sub)}.quote-reference strong{color:var(--gold);font-size:20px}.order-dialog{width:min(520px,calc(100vw - 48px));margin:auto;background:#fbf7ee;border-radius:22px;padding:22px 24px;box-shadow:0 28px 90px #171a1747;animation:pop .2s ease;max-height:86vh;overflow:auto}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.sheet-head h2{margin:0;font-size:20px}.icon-btn{width:38px;height:38px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:#fffdf8d1;border:1px solid rgba(222,214,200,.75);color:var(--deep)}.line{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:42px;border-bottom:1px solid var(--line)}.line span:first-child{color:var(--sub)}.line strong{max-width:300px;text-align:right;word-break:break-word}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{transform:translateY(36px)}to{transform:translateY(0)}}@keyframes pop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.app,.app-shell{min-height:100vh;width:100%;min-width:1160px;background:#eee9df;color:var(--ink)}.admin-nav,.top-nav{height:66px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:#fbf8f0;border-bottom:1px solid #ded6c8}.admin-nav h1,.top-nav h1{margin:0;font-size:19px}.admin-shell,.layout{display:grid;grid-template-columns:268px minmax(0,1fr);min-height:calc(100vh - 66px)}.side{background:#1d2925;color:#f7f1e6;padding:24px 18px}.brand,.brand-row,.merchant{display:flex;align-items:center;gap:13px;margin-bottom:24px}.brand-photo{width:58px;height:58px;border-radius:16px;box-shadow:0 18px 42px #00000047}.brand-mark{width:58px;height:58px;border-radius:16px;display:grid;place-items:center;background:var(--deep);color:#f7ead8;font-size:24px;font-weight:900;box-shadow:0 18px 42px #00000038}.brand strong,.brand-row strong,.merchant strong{display:block;font-size:17px}.brand span,.brand-row span,.merchant span{display:block;margin-top:4px;color:#f7f1e68f;font-size:12px}.login-card .brand span,.login-card .brand-row span{color:var(--muted)}.nav-btn{width:100%;height:44px;margin-bottom:9px;border-radius:13px;background:transparent;color:#f7f1e6b3;border:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:10px;padding:0 13px;font-weight:800;text-align:left}.nav-btn.active{background:#f3eadb;color:#1d2925;border-color:#f3eadb}.main{min-width:0}.topbar{position:sticky;top:0;z-index:15;display:flex;align-items:center;justify-content:space-between;padding:22px 30px;background:#fbf8f0eb;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid #ded6c8}.topbar h2{margin:0;font-size:24px}.topbar p{margin:5px 0 0;color:var(--muted);font-size:12px}.admin-content,.content{padding:28px 30px}.content.narrow{max-width:780px}.focus{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;margin-bottom:18px}.focus-card{min-height:190px;border-radius:24px;padding:24px;color:#fff;background:linear-gradient(115deg,#16201cf2,#263630b8),var(--hero);background-size:cover;box-shadow:0 24px 70px #1f26212e;position:relative;overflow:hidden}.focus-card h3{margin:0;font-size:28px}.focus-card p{width:430px;max-width:100%;color:#ffffffbd;line-height:1.7}.badge-row{display:flex;gap:8px;margin-top:22px}.metric-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.metric{border-radius:20px;background:#fffdf8;border:1px solid #ded6c8;padding:20px;box-shadow:0 14px 34px #1f26210f}.metric span{color:var(--muted);font-size:12px}.metric strong{display:block;margin-top:14px;font-size:32px}.section-head,.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px;flex-wrap:wrap}.section-head h3{margin:0}.search{width:min(520px,100%);height:42px;border-radius:999px;background:#fffdf8;border:1px solid #ded6c8;display:flex;align-items:center;gap:9px;padding:0 13px}.search input{flex:1;min-width:0;border:0;background:transparent;color:var(--ink)}.date-range{display:flex;align-items:center;gap:8px;min-height:42px}.date-range input{width:148px;height:38px;border:1px solid var(--line);border-radius:12px;background:#fffdf8;color:var(--ink);padding:0 10px;font-size:12px}.date-range span{color:var(--muted);font-size:12px;font-weight:800}input.search{display:block}.seg{display:flex;gap:8px;overflow:auto}.chip{min-height:34px;border-radius:999px;padding:0 12px;background:#fffdf8;border:1px solid var(--line);font-weight:800;font-size:12px;color:var(--sub)}.chip.active{background:#1e2b27;color:#fff;border-color:#1e2b27}.table-list{display:grid;gap:12px}.admin-item{border-radius:18px;background:#fffdf8;border:1px solid #ded6c8;padding:14px;box-shadow:0 12px 32px #1f26210e}.item-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}.item-head strong{font-size:15px}.item-head p{margin:4px 0 0}.mini-grid{display:grid;grid-template-columns:repeat(6,minmax(86px,1fr));gap:8px;padding:10px;border-radius:13px;background:#f3eee4;color:var(--sub);font-size:12px}.actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:12px}.service-line{display:flex;gap:13px;min-width:0}.thumb{width:72px;aspect-ratio:1 / 1;border-radius:15px;flex:0 0 auto;background-size:cover;background-position:center;background-repeat:no-repeat;position:relative;overflow:hidden}.upload-card{display:grid;grid-template-columns:96px 1fr;gap:14px;align-items:center;padding:12px;border:1px dashed rgba(155,118,80,.5);border-radius:16px;background:#faf6ee;margin-bottom:14px}.upload-preview{width:96px;aspect-ratio:1 / 1;border-radius:14px;border:1px solid var(--line);background-size:cover;background-position:center;background-repeat:no-repeat;background-color:#e8dfd0;display:flex;align-items:center;justify-content:center;color:var(--muted);overflow:hidden;position:relative}.upload-preview.has-img{border-color:#1e2b2740}.upload-tools{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.upload-note{display:block;margin-top:8px;color:var(--muted);font-size:12px;line-height:1.5}.upload-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:10px 0 14px}.upload-tile{position:relative;min-height:82px;border-radius:14px;overflow:hidden;background-color:#e8dfd0;background-size:cover;background-position:center;border:1px solid var(--line)}.tile-remove{position:absolute;right:6px;top:6px;min-height:24px;padding:0 8px;border-radius:999px;background:#171a17b8;color:#fff;font-size:11px;font-weight:800}.cover-tag{position:absolute;left:6px;bottom:6px;min-height:22px;padding:0 8px;border-radius:999px;background:#fffdf8e6;color:var(--deep);font-size:11px;font-weight:900;line-height:22px}.file-input{display:none}.switch{width:44px;height:26px;border-radius:999px;background:#d6cfbf;padding:3px;flex:0 0 auto}.switch:before{content:"";display:block;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 2px 5px #00000029;transition:.18s}.switch.on{background:#1e2b27}.switch.on:before{transform:translate(18px)}.login{min-height:100vh;display:grid;grid-template-columns:minmax(520px,1fr) 440px;background:linear-gradient(115deg,#16201ceb,#26363094),var(--hero);background-size:cover}.login-copy{display:flex;flex-direction:column;justify-content:flex-end;padding:64px;color:#fff}.login-copy h1{margin:0;font-size:42px;line-height:1.06;letter-spacing:0}.login-copy p{max-width:520px;margin:18px 0 0;color:#ffffffbd;line-height:1.8}.login-panel{display:flex;align-items:center;padding:36px}.login-card{width:100%;padding:28px;border-radius:24px;background:#fbf8f0;border:1px solid rgba(255,255,255,.4);box-shadow:0 26px 80px #0000003d}.empty{min-height:220px;border-radius:20px;background:#fffdf8;border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;color:var(--muted);padding:22px}@media (max-width: 900px){body,.app,.app-shell{min-width:0}.admin-shell,.layout{grid-template-columns:1fr}.side{display:flex;gap:8px;overflow:auto}.brand,.merchant{min-width:210px;margin-bottom:0}.nav-btn{width:auto;white-space:nowrap}.focus{grid-template-columns:1fr}.mini-grid{grid-template-columns:1fr 1fr}.login{grid-template-columns:1fr}.login-copy{display:none}.admin-content,.content,.topbar{padding:18px}.metric-grid{grid-template-columns:1fr 1fr}}
