:root { --accent:#f4b400; --red:#c9202f; --ink:#16191f; --muted:#727985; --line:#e6eaf0; --surface:#fff; --canvas:#f3f7fb; }
* { box-sizing:border-box; }
html,body { margin:0; min-height:100%; font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif; color:var(--ink); background:var(--canvas); }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
.hidden { display:none !important; }
.login-screen { min-height:100vh; display:grid; place-items:center; padding:24px; background:#202124; }
.login-panel { width:min(380px,100%); padding:36px; background:#fff; border-top:5px solid var(--accent); box-shadow:0 18px 60px rgba(0,0,0,.25); }
.brand-mark { width:100%; height:70px; display:grid; place-items:center; overflow:hidden; margin-bottom:20px; background:#fff; color:#fff; font-size:24px; font-weight:800; border-radius:6px; }.brand-mark img { width:100%; height:100%; object-fit:contain; padding:5px; }
.login-panel h1 { margin:0; font-size:26px; }.login-panel p { margin:5px 0 28px; color:var(--muted); }
label { display:block; color:#555; font-size:13px; font-weight:600; }
input,select,textarea { width:100%; margin-top:7px; border:1px solid #d6d8db; border-radius:4px; background:#fff; padding:10px 12px; color:var(--ink); outline:none; }
input:focus,select:focus,textarea:focus { border-color:#8d9197; box-shadow:0 0 0 3px rgba(32,33,36,.08); }
.login-panel label + label { margin-top:17px; }.wide { width:100%; margin-top:24px; }.form-error { min-height:20px; margin-top:10px; color:#b3261e; font-size:13px; }
.primary,.secondary,.danger,.text-button { min-height:38px; border:0; border-radius:4px; padding:8px 16px; font-weight:700; }
.primary { background:var(--accent); color:#171717; }.primary:hover { background:#e6a900; }.secondary { background:#edf0f2; color:#35373a; }.danger { background:#b3261e; color:#fff; }.text-button { background:transparent; color:#7d3a00; padding:5px 8px; }
.shell { display:flex; min-height:100vh; }
.sidebar { position:fixed; inset:0 auto 0 0; z-index:20; width:232px; display:flex; flex-direction:column; padding:20px 14px; color:var(--ink); background:#fff; border-right:1px solid var(--line); }
.sidebar-brand { display:flex; flex-direction:column; align-items:flex-start; gap:8px; padding:0 8px 22px; border-bottom:1px solid var(--line); }.sidebar-brand>span { width:150px; height:40px; display:grid; place-items:center; overflow:hidden; border-radius:4px; background:#fff; font-weight:800; }.sidebar-brand>span img { width:100%; height:100%; object-fit:contain; padding:4px; }.sidebar-brand strong,.sidebar-brand small { display:block; }.sidebar-brand small { margin-top:2px; color:#9aa1ac; font-size:11px; }
.sidebar nav { padding-top:18px; }.sidebar nav button,.logout { width:100%; border:0; background:transparent; color:#59616d; display:flex; gap:12px; align-items:center; padding:12px 14px; border-radius:6px; text-align:left; }.sidebar nav button span { width:19px; font-size:18px; }.sidebar nav button:hover,.sidebar nav button.active { background:#f2f6fb; color:#1262c5; }.sidebar nav button.active { box-shadow:inset 3px 0 #1677df; }.logout { margin-top:auto; color:#727985; }
.main { width:calc(100% - 232px); margin-left:232px; }.topbar-admin { height:76px; display:flex; align-items:center; padding:0 30px; border-bottom:1px solid var(--line); background:#fff; }.topbar-admin h2 { margin:0; font-size:20px; }.topbar-admin p { margin:4px 0 0; color:var(--muted); font-size:12px; }.icon-button { width:36px; height:36px; padding:0; border:0; border-radius:4px; background:transparent; font-size:23px; }.icon-button:hover { background:#f0f1f2; }#menu-button { display:none; margin-right:8px; }.admin-user { margin-left:auto; display:flex; align-items:center; gap:9px; }.admin-user>span { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:#f4c441; font-weight:800; }.admin-user strong,.admin-user small { display:block; }.admin-user small { color:var(--muted); font-size:11px; }
.view-root { padding:28px 30px 50px; }.section-toolbar { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:18px; }.section-toolbar h3 { margin:0; font-size:17px; }.toolbar-actions { display:flex; gap:8px; align-items:center; }.toolbar-actions input,.toolbar-actions select { margin:0; min-width:150px; }
.stats-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:15px; }.stat-card { min-height:112px; padding:20px; border:1px solid var(--line); border-radius:6px; background:#fff; }.stat-card span { display:block; color:var(--muted); font-size:13px; }.stat-card strong { display:block; margin-top:12px; font-size:28px; }.stat-card em { display:block; margin-top:5px; color:#167245; font-size:11px; font-style:normal; }
.panel { margin-top:22px; border:1px solid var(--line); background:#fff; }.panel-head { display:flex; justify-content:space-between; align-items:center; padding:17px 20px; border-bottom:1px solid var(--line); }.panel-head h3 { margin:0; font-size:16px; }
.table-wrap { overflow:auto; }table { width:100%; border-collapse:collapse; background:#fff; }th,td { padding:13px 15px; border-bottom:1px solid var(--line); text-align:left; white-space:nowrap; font-size:13px; }th { color:#606368; background:#fafafa; font-size:12px; }tr:last-child td { border-bottom:0; }.cell-main { display:flex; align-items:center; gap:10px; }.thumb { width:42px; height:42px; flex:0 0 auto; display:grid; place-items:center; overflow:hidden; border-radius:4px; background:#fff4d4; font-size:26px; }.thumb img { width:100%; height:100%; object-fit:cover; }.cell-copy strong,.cell-copy small { display:block; }.cell-copy small { max-width:260px; margin-top:4px; overflow:hidden; text-overflow:ellipsis; color:var(--muted); }.badge { display:inline-flex; align-items:center; min-height:25px; padding:3px 8px; border-radius:12px; background:#eef0f2; color:#585b60; font-size:11px; }.badge.on,.badge.done { background:#e4f4e9; color:#176a3a; }.badge.wait { background:#fff2cc; color:#7b5700; }.badge.cancel { background:#fbe7e6; color:#a62620; }.row-actions { display:flex; gap:3px; }
.empty-table { padding:60px 20px; text-align:center; color:var(--muted); }.loading { min-height:260px; display:grid; place-items:center; color:var(--muted); }
.category-toolbar>div { min-width:0; }.category-toolbar p { margin:5px 0 0; color:var(--muted); font-size:12px; }.category-thumb { width:48px; height:48px; flex:0 0 48px; display:grid; place-items:center; overflow:hidden; border:1px solid var(--line); border-radius:6px; background:#fff; color:#8b6108; font-size:25px; }.category-thumb img { width:100%; height:100%; display:block; object-fit:contain; }.category-description { max-width:360px; overflow:hidden; color:var(--muted); text-overflow:ellipsis; }.category-media-editor { display:grid; grid-template-columns:112px minmax(0,1fr); gap:18px; align-items:center; padding:16px; border:1px solid var(--line); border-radius:8px; background:var(--canvas); }.category-media-preview { width:112px; height:112px; display:grid; place-items:center; overflow:hidden; border:1px solid var(--line); border-radius:8px; background:#fff; color:#8b6108; font-size:48px; }.category-media-preview img { width:100%; height:100%; display:block; object-fit:contain; }.category-media-copy { min-width:0; }.category-media-copy strong { display:block; font-size:14px; }.category-media-copy p { max-width:58ch; margin:6px 0 14px; color:var(--muted); font-size:12px; font-weight:400; line-height:1.55; }.category-media-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }.category-upload { display:inline-flex; align-items:center; justify-content:center; min-height:38px; padding:8px 16px; border-radius:4px; color:#35373a; cursor:pointer; }.category-image-clear { color:#a62620; }.pv-category-item>span { width:28px; height:28px; display:grid; place-items:center; margin:0 auto 5px; overflow:hidden; font-size:20px; }.pv-category-item img { width:100%; height:100%; object-fit:contain; }.pv-category-item small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.pv-menu-tabs button { min-width:0; }.pv-menu-tabs button img,.pv-menu-tabs button>span { width:22px; height:22px; display:grid; place-items:center; margin:0 auto 3px; object-fit:contain; }.pv-menu-tabs button small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.feedback-table .feedback-content { min-width:260px; max-width:420px; white-space:normal; line-height:1.55; }.feedback-actions { display:flex; align-items:center; gap:6px; }.feedback-actions select { width:92px; min-width:92px; margin:0; padding:6px; font-size:12px; }
.settings-layout { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:20px; }.settings-form { padding:22px; border:1px solid var(--line); background:#fff; }.form-section { margin-bottom:26px; }.form-section h3 { margin:0 0 16px; padding-bottom:10px; border-bottom:1px solid var(--line); font-size:15px; }.field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }.field-grid .full { grid-column:1/-1; }.settings-actions { display:flex; justify-content:flex-end; padding-top:17px; border-top:1px solid var(--line); }
.phone-preview { position:sticky; top:98px; height:640px; padding:18px; border:8px solid #252628; border-radius:26px; background:#f6f6f6; overflow:hidden; }.phone-status { height:20px; text-align:center; font-size:10px; }.phone-home { padding:15px 12px; }.phone-home small { color:#af7e00; font-weight:800; }.phone-home h4 { margin:5px 0 14px; font-size:18px; }.preview-store { padding:11px; background:#fff; border-radius:6px; font-size:11px; }.preview-hero { min-height:145px; margin-top:10px; padding:18px; border-radius:7px; color:#fff; background:#27221a center/cover; }.preview-hero span,.preview-hero strong,.preview-hero em { display:block; }.preview-hero span { color:#f4d373; font-size:10px; }.preview-hero strong { margin:7px 0; font-size:18px; }.preview-hero em { font-size:10px; font-style:normal; }.preview-hero b { display:inline-block; margin-top:15px; padding:6px 9px; border-radius:14px; color:#222; background:var(--preview-accent,#ffbd0b); font-size:9px; }.preview-featured { margin-top:17px; font-size:14px; font-weight:800; }
.editor-dialog,.order-dialog { width:min(620px,calc(100% - 30px)); max-height:88vh; padding:0; border:0; border-radius:6px; box-shadow:0 24px 80px rgba(0,0,0,.3); }.editor-dialog::backdrop,.order-dialog::backdrop { background:rgba(0,0,0,.45); }.editor-dialog form>header,.order-detail-head { position:sticky; top:0; z-index:2; display:flex; align-items:center; justify-content:space-between; padding:16px 20px; border-bottom:1px solid var(--line); background:#fff; }.editor-dialog h3 { margin:0; font-size:17px; }.editor-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; padding:20px; }.editor-fields .full { grid-column:1/-1; }.editor-fields textarea { min-height:80px; resize:vertical; }.switch-field { display:flex; align-items:center; gap:9px; padding-top:23px; }.switch-field input { width:auto; margin:0; }.image-field { display:flex; gap:10px; align-items:center; }.image-field input[type=file] { margin:0; }.editor-dialog footer { position:sticky; bottom:0; display:flex; justify-content:flex-end; gap:8px; padding:14px 20px; border-top:1px solid var(--line); background:#fff; }
.order-detail-body { padding:20px; }.order-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:20px; }.order-summary div { padding:12px; background:#f5f6f7; }.order-summary span,.order-summary strong { display:block; }.order-summary span { color:var(--muted); font-size:11px; }.order-summary strong { margin-top:5px; font-size:14px; }.detail-section { padding:17px 0; border-top:1px solid var(--line); }.detail-section h4 { margin:0 0 10px; font-size:14px; }.detail-line { display:flex; justify-content:space-between; gap:15px; padding:6px 0; font-size:13px; }.detail-line span { color:var(--muted); }.order-status-action { display:flex; gap:8px; align-items:center; }.order-status-action select { width:auto; margin:0; }
.toast { position:fixed; z-index:100; left:50%; bottom:30px; transform:translate(-50%,20px); padding:10px 16px; border-radius:4px; background:#252628; color:#fff; opacity:0; pointer-events:none; transition:.2s; font-size:13px; }.toast.show { opacity:1; transform:translate(-50%,0); }
.sidebar-footer .theme-toggle { margin-top:6px; }
.bulk-toolbar { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin:-4px 0 14px; padding:10px 12px; border:1px solid var(--line); background:var(--surface); }
.bulk-toolbar strong { margin-right:auto; font-size:12px; }.bulk-toolbar button:disabled { opacity:.45; cursor:not-allowed; }
.table-check { width:16px; height:16px; margin:0; }.segment-chip { display:inline-flex; align-items:center; gap:4px; margin:2px 3px 2px 0; padding:3px 7px; border-radius:10px; background:#edf2f7; color:#425466; font-size:10px; }.segment-chip i { width:6px; height:6px; border-radius:50%; background:var(--chip,#64748b); }
.customer-identity,.customer-detail-identity,.after-sales-customer-card { display:flex; align-items:center; gap:10px; min-width:0; }.customer-identity>div,.customer-detail-identity>div,.after-sales-customer-card>div { min-width:0; }.customer-identity strong,.customer-identity small,.customer-detail-identity strong,.customer-detail-identity small,.after-sales-customer-card strong,.after-sales-customer-card small { display:block; }.customer-identity small,.customer-detail-identity small,.after-sales-customer-card small { margin-top:4px; color:var(--muted); font-size:11px; }.customer-identifier { overflow:hidden; max-width:260px; text-overflow:ellipsis; white-space:nowrap; }.customer-avatar { width:36px; height:36px; flex:0 0 36px; display:grid; place-items:center; overflow:hidden; border-radius:50%; color:#fff; background:#1677df; font-size:14px; font-weight:800; }.customer-avatar img { width:100%; height:100%; display:block; object-fit:cover; }.customer-avatar-fallback { background:linear-gradient(135deg,#2878d8,#65b4ed); }.customer-avatar-large { width:46px; height:46px; flex-basis:46px; font-size:18px; }.after-sales-customer-card { padding:12px; border:1px solid var(--line); border-radius:7px; background:var(--canvas); }.after-sales-customer-card strong { font-size:14px; }
.pagination { display:flex; align-items:center; justify-content:flex-end; gap:10px; padding:14px 0; color:var(--muted); font-size:12px; }.pagination button { min-width:64px; }.pagination button:disabled { opacity:.45; cursor:not-allowed; }
.order-section-head { margin-bottom:0; }.order-section-head>button { min-width:112px; }.order-filter-panel { display:grid; grid-template-columns:minmax(220px,1.6fr) repeat(4,minmax(128px,1fr)); gap:12px; margin-bottom:18px; padding:16px 0 18px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.order-filter-panel label>span { display:block; margin-bottom:6px; color:var(--muted); font-size:11px; }.order-filter-panel input,.order-filter-panel select { height:38px; margin:0; padding:8px 10px; }.order-filter-search { grid-column:span 2; }.order-filter-actions { display:flex; align-items:flex-end; gap:8px; }.order-filter-actions button { min-width:76px; flex:1; }.order-filter-panel+ .table-wrap { border-top:1px solid var(--line); }
.after-sales-reason { max-width:270px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.after-sales-actions { display:flex; align-items:center; gap:6px; }.after-sales-actions select { width:96px; min-width:96px; margin:0; padding:6px; font-size:11px; }
.after-sales-reship-tracking { max-width:160px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.after-sales-reship-tracking strong { color:#176a3a; font-size:12px; }.after-sales-reship-tracking .muted { color:var(--muted); }
.admin-nav-editor { display:grid; gap:8px; }.admin-nav-row { display:grid; grid-template-columns:24px 34px minmax(0,1fr) 75px 24px; gap:7px; align-items:center; padding:8px; border:1px solid var(--line); background:var(--surface); cursor:grab; }.admin-nav-row.dragging { opacity:.45; }.admin-nav-row input { margin:0; }.admin-nav-row small { color:var(--muted); font-size:10px; }.admin-nav-row .drag-grip { color:var(--muted); text-align:center; font-size:17px; }
.order-remark-cell { max-width:220px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--muted); }
body.dark .bulk-toolbar,body.dark .admin-nav-row { background:var(--surface); }.dark .segment-chip { background:#253247; color:#b9c7d8; }
body.dark .category-media-editor { border-color:var(--line); background:#151c26; }.dark .category-media-preview,.dark .category-thumb { border-color:#344153; background:#fff; }
@media (max-width:1000px) { .stats-grid { grid-template-columns:repeat(2,1fr); }.settings-layout { grid-template-columns:1fr; }.phone-preview { position:relative; top:0; width:330px; max-width:100%; margin:auto; } }
@media (max-width:1200px) { .order-filter-panel { grid-template-columns:repeat(3,minmax(0,1fr)); }.order-filter-search { grid-column:span 2; } }
@media (max-width:720px) { .sidebar { transform:translateX(-100%); transition:.2s; }.sidebar.open { transform:none; }.main { width:100%; margin:0; }.topbar-admin { height:68px; padding:0 15px; }#menu-button { display:block; }.view-root { padding:18px 14px 40px; }.admin-user div { display:none; }.section-toolbar { align-items:flex-start; flex-direction:column; }.toolbar-actions { width:100%; flex-wrap:wrap; }.toolbar-actions input,.toolbar-actions select { min-width:0; flex:1; }.field-grid,.editor-fields { grid-template-columns:1fr; }.field-grid .full,.editor-fields .full { grid-column:auto; }.order-summary { grid-template-columns:1fr; }.stats-grid { gap:10px; }.stat-card { min-height:96px; padding:15px; }.stat-card strong { font-size:23px; } }
@media (max-width:720px) { .category-media-editor { grid-template-columns:84px minmax(0,1fr); gap:12px; padding:12px; }.category-media-preview { width:84px; height:84px; }.category-media-copy p { margin-bottom:10px; }.category-upload { min-height:40px; } }
@media (max-width:720px) { .order-section-head>button { width:100%; }.order-filter-panel { grid-template-columns:1fr; }.order-filter-search { grid-column:auto; }.order-filter-actions button { width:50%; }.pagination { justify-content:center; } }
.combo-products { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 14px; margin-top:9px; padding:12px; border:1px solid var(--line); background:#fafafa; }.combo-products label { display:flex; align-items:center; gap:7px; font-weight:400; }.combo-products input { width:auto; margin:0; }
.spec-root{grid-column:1/-1;padding:15px;border:1px solid var(--line);background:#fafafa}.form-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.form-section-head strong{font-size:14px}.spec-group-editor{margin-top:12px;padding:12px;border:1px solid #dfe1e4;background:#fff}.spec-group-head{display:grid;grid-template-columns:minmax(130px,1fr) 90px auto auto;gap:8px;align-items:center}.spec-group-head input{margin:0}.inline-check{display:flex;align-items:center;gap:5px;white-space:nowrap;font-weight:400}.inline-check input{width:auto;margin:0}.spec-options-editor{display:grid;gap:7px;margin-top:10px}.spec-option-editor{display:grid;grid-template-columns:minmax(120px,1.4fr) 90px 90px 80px 70px auto auto;gap:7px;align-items:center}.spec-option-editor input{margin:0;padding:8px}.add-spec-option{margin-top:10px;min-height:32px;padding:5px 10px;font-size:12px}@media (max-width:720px){.spec-group-head{grid-template-columns:1fr 70px}.spec-group-head .inline-check,.spec-group-head [data-remove-spec-group]{grid-column:1/-1}.spec-option-editor{grid-template-columns:1fr 1fr}.spec-option-editor [data-spec-option-name]{grid-column:1/-1}.spec-option-editor .inline-check{grid-column:1}.spec-option-editor [data-remove-spec-option]{grid-column:2}}
@media (max-width:720px) { .sidebar { visibility:hidden; }.sidebar.open { visibility:visible; }.combo-products { grid-template-columns:1fr; } }
.builder-layout { display:grid; grid-template-columns:minmax(0,1fr) 350px; gap:20px; align-items:start; }.builder-preview { position:sticky; top:96px; }.builder-section-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; border-bottom:1px solid var(--line); }.builder-section-head h3 { border:0; margin:0; }.builder-section-head>div { display:flex; gap:7px; align-items:center; }.builder-section-head select { width:auto; min-width:120px; margin:0; padding:7px 9px; }.block-list,.nav-editor { display:grid; gap:8px; }.builder-row { min-height:60px; display:grid; grid-template-columns:34px minmax(0,1fr) auto auto; gap:10px; align-items:center; padding:10px; border:1px solid var(--line); background:#fafafa; }.builder-row .drag-index { width:28px; height:28px; display:grid; place-items:center; background:#eceef0; border-radius:4px; font-size:12px; }.builder-row strong,.builder-row small { display:block; }.builder-row small { max-width:360px; margin-top:3px; overflow:hidden; color:var(--muted); text-overflow:ellipsis; white-space:nowrap; }.nav-editor-row { display:grid; grid-template-columns:70px minmax(120px,1fr) 80px 38px 38px; gap:8px; align-items:center; }.nav-editor-row input { margin:0; }.nav-editor-row label { display:flex; gap:6px; align-items:center; font-weight:400; }.nav-editor-row label input { width:auto; }.builder-preview .phone-preview { position:relative; top:0; width:350px; max-width:100%; height:700px; }.builder-preview-body { padding:14px 11px 60px; }.pv-header small { color:#9f7200; font-weight:800; }.pv-header h4 { margin:5px 0 14px; font-size:18px; }.pv-notice { margin:9px 0; padding:9px 10px; border-left:3px solid var(--accent); font-size:10px; }.builder-preview .preview-hero { min-height:135px; margin-top:10px; }.pv-section { display:flex; justify-content:space-between; align-items:center; margin:16px 0 8px; font-size:12px; }.pv-section span { color:var(--muted); font-size:9px; }.pv-grid { display:grid; gap:6px; }.pv-grid>div { min-width:0; padding:9px 5px; background:#fff; border:1px solid #eee; border-radius:4px; text-align:center; font-size:10px; }.pv-grid.products>div { min-height:64px; font-size:26px; }.pv-grid.products small { display:block; margin-top:5px; overflow:hidden; font-size:8px; text-overflow:ellipsis; white-space:nowrap; }.copy-grid { max-height:520px; overflow:auto; padding-right:5px; }
@media (max-width:1050px) { .builder-layout { grid-template-columns:1fr; }.builder-preview { position:relative; top:0; }.builder-preview .phone-preview { margin:auto; } }
@media (max-width:720px) { .builder-row { grid-template-columns:28px minmax(0,1fr); }.builder-row>.badge,.builder-row>.row-actions { grid-column:2; }.builder-row>.row-actions { flex-wrap:wrap; }.nav-editor-row { grid-template-columns:56px minmax(100px,1fr) 70px; }.nav-editor-row button { display:none; }.builder-section-head { align-items:flex-start; flex-direction:column; padding-bottom:10px; }.builder-section-head>div { width:100%; }.builder-section-head select { flex:1; min-width:0; } }

.recommend-toggle { display:inline-flex; align-items:center; gap:6px; min-width:76px; padding:5px 8px; border:1px solid #dfe2e5; border-radius:14px; background:#fff; color:#6b7076; font-size:11px; line-height:1; cursor:pointer; transition:.15s ease; }
.recommend-toggle:hover { border-color:#d6a400; color:#8a6500; }
.recommend-toggle.active { border-color:#f0c33c; background:#fff7dc; color:#7b5700; }
.recommend-dot { width:7px; height:7px; border-radius:50%; background:#b7bcc2; }
.recommend-toggle.active .recommend-dot { background:#e5aa00; box-shadow:0 0 0 3px rgba(229,170,0,.14); }
.status-toggle { min-width:52px; padding:5px 9px; border:1px solid transparent; border-radius:14px; font-size:11px; line-height:1; cursor:pointer; transition:.15s ease; }
.status-toggle.on { border-color:#b8e0c7; background:#e4f4e9; color:#176a3a; }
.status-toggle.off { border-color:#e1c5c4; background:#fbe7e6; color:#a62620; }
.status-toggle:hover { filter:brightness(.96); }
body.dark .status-toggle.on { border-color:#286247; background:#123c2d; color:#69d49c; }
body.dark .status-toggle.off { border-color:#6a3537; background:#4a2023; color:#f18b8e; }
.product-library-tabs { width:max-content; display:flex; margin-bottom:22px; padding:3px; border:1px solid var(--line); border-radius:6px; background:#f2f4f6; }.product-library-tabs button { min-height:36px; padding:7px 15px; border:0; border-radius:4px; background:transparent; color:#69717c; font-weight:600; }.product-library-tabs button.active { background:#fff; color:#17202b; box-shadow:0 1px 4px rgba(20,30,45,.12); }.product-library-tabs span { display:inline-flex; min-width:20px; height:20px; align-items:center; justify-content:center; margin-left:5px; border-radius:10px; background:#e6e9ed; font-size:10px; }.library-note { margin:-5px 0 14px; padding:10px 13px; border-left:3px solid #d5a600; color:#6e6040; background:#fff9e9; font-size:12px; }.candidate-table .cell-copy small { max-width:330px; }.candidate-actions { display:flex; align-items:center; gap:5px; }.candidate-publish,.candidate-unpublish { min-height:28px; padding:5px 9px; border:1px solid transparent; border-radius:4px; font-size:11px; cursor:pointer; }.candidate-publish { border-color:#b8e0c7; color:#176a3a; background:#e4f4e9; }.candidate-unpublish { border-color:#e1c5c4; color:#a62620; background:#fbe7e6; }.candidate-publish:disabled,.candidate-unpublish:disabled { border-color:#e0e3e6; color:#a3a8ae; background:#f1f3f5; cursor:not-allowed; }
.catalog-toolbar-actions { flex-wrap:nowrap; justify-content:flex-end; }
.catalog-toolbar-actions>select { width:150px; min-width:150px; height:38px; flex:0 0 150px; margin:0; padding:7px 10px; }
.catalog-search-control { width:min(320px,32vw); min-width:230px; height:38px; display:grid; grid-template-columns:28px minmax(0,1fr) 30px; align-items:center; overflow:hidden; border:1px solid var(--line); border-radius:6px; background:var(--surface); color:#8a929d; transition:border-color .15s,box-shadow .15s; }
.catalog-search-control:focus-within { border-color:#8d9197; box-shadow:0 0 0 3px rgba(32,33,36,.08); }
.catalog-search-control>span { text-align:center; font-size:16px; }
.catalog-search-control input,.toolbar-actions .catalog-search-control input,.combo-catalog-toolbar .catalog-search-control input { width:100%; min-width:0; height:36px; margin:0; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.catalog-search-control input::-webkit-search-cancel-button { display:none; }
.catalog-search-control button { width:26px; height:26px; display:none; place-items:center; padding:0; border:0; border-radius:50%; background:transparent; color:var(--muted); font-size:18px; line-height:1; }
.catalog-search-control.has-value button { display:grid; }
.catalog-search-control button:hover { color:var(--ink); background:var(--canvas); }
.catalog-filter-row { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
.catalog-filter-row select { width:150px; height:38px; margin:0; padding:7px 10px; border-color:var(--line); background:var(--surface); color:var(--ink); }
.catalog-result-count { min-width:72px; color:var(--muted); font-size:11px; text-align:right; white-space:nowrap; }
body.dark .product-library-tabs { border-color:#344153; background:#101721; }.dark .product-library-tabs button { color:#9ba8b8; }.dark .product-library-tabs button.active { color:#e7edf5; background:#273140; box-shadow:none; }.dark .product-library-tabs span { background:#344153; }.dark .library-note { border-color:#96751e; color:#e0c56f; background:#2d2819; }.dark .candidate-publish { border-color:#286247; color:#69d49c; background:#123c2d; }.dark .candidate-unpublish { border-color:#6a3537; color:#f18b8e; background:#4a2023; }.dark .candidate-publish:disabled,.dark .candidate-unpublish:disabled { border-color:#344153; color:#647083; background:#1b2532; }
body.dark .catalog-search-control { border-color:var(--line); background:var(--surface); }.dark .catalog-search-control:focus-within { border-color:#758399; box-shadow:0 0 0 3px rgba(126,145,169,.13); }
@media (max-width:720px) { .product-library-tabs { width:100%; }.product-library-tabs button { flex:1; }.candidate-actions { min-width:150px; flex-wrap:wrap; } }
@media (max-width:1100px) { .catalog-toolbar-actions { flex-wrap:wrap; }.catalog-filter-row { width:100%; justify-content:flex-start; }.catalog-filter-row .catalog-search-control { width:auto; flex:1 1 280px; } }
@media (max-width:720px) { .catalog-toolbar-actions { justify-content:flex-start; }.catalog-search-control { width:100%; min-width:0; flex:1 1 100%; }.catalog-filter-row select,.catalog-toolbar-actions>select { width:auto; min-width:0; flex:1 1 135px; }.catalog-result-count { flex:0 0 auto; text-align:left; } }

/* Unified catalog workspace and product editor */
.section-caption { margin:5px 0 0; color:var(--muted); font-size:12px; }
.catalog-table th,.catalog-table td { vertical-align:middle; }
.catalog-table td:nth-child(1) { min-width:260px; white-space:normal; }
.catalog-table td:nth-child(7) { min-width:130px; white-space:normal; }
.source-label,.source-meta { display:block; }.source-label { color:#3e4651; font-size:12px; }.source-meta { margin-top:4px; color:var(--muted); font-size:10px; line-height:1.45; }
.shelf-button { min-height:28px; padding:5px 10px; border:1px solid transparent; border-radius:4px; font-size:11px; font-weight:700; cursor:pointer; }.shelf-button:disabled { border-color:#e0e3e6; color:#a3a8ae; background:#f1f3f5; cursor:not-allowed; }.shelf-up { border-color:#b8e0c7; color:#176a3a; background:#e4f4e9; }.shelf-down { border-color:#e1c5c4; color:#a62620; background:#fbe7e6; }.danger-link { color:#ad3934; }
.trash-note { border-left-color:#7f8996; color:#56606d; background:#f5f7f9; }.trash-table td:nth-child(5) { color:var(--muted); font-size:11px; }.trash-actions { display:flex; flex-wrap:wrap; gap:7px; align-items:center; }.restore-button,.permanent-delete-button { min-height:30px; padding:6px 11px; border-radius:4px; font-size:11px; font-weight:700; cursor:pointer; }.restore-button { border:1px solid #aac9eb; color:#1165bc; background:#edf6ff; }.restore-button:hover { border-color:#7bafe3; background:#e1f0ff; }.permanent-delete-button { border:1px solid #efb0b0; color:#b42323; background:#fff1f1; }.permanent-delete-button:hover { border-color:#df7777; background:#ffe4e4; }
.confirm-dialog { width:min(430px,calc(100% - 30px)); padding:25px 26px 22px; border:0; border-radius:7px; color:var(--ink); background:#fff; box-shadow:0 24px 80px rgba(0,0,0,.28); }.confirm-dialog::backdrop { background:rgba(17,22,29,.52); }.confirm-icon { width:38px; height:38px; display:grid; place-items:center; margin-bottom:17px; border-radius:50%; color:#a32620; background:#fde7e5; font-size:20px; font-weight:800; }.confirm-dialog h3 { margin:0; font-size:18px; }.confirm-dialog p { min-height:48px; margin:10px 0 22px; color:var(--muted); white-space:pre-line; line-height:1.65; font-size:13px; }.confirm-dialog footer { display:flex; justify-content:flex-end; gap:9px; }.danger-button { min-height:36px; padding:8px 15px; border:1px solid #a82d28; border-radius:4px; color:#fff; background:#b93631; font-weight:700; cursor:pointer; }.danger-button:hover { background:#a62d28; }
.product-editor-dialog { width:min(980px,calc(100% - 28px)); max-height:92vh; }
.product-editor-dialog form>header { padding:19px 26px; background:linear-gradient(180deg,#fff 0%,#fbfcfd 100%); }
.editor-heading h3 { margin:0; font-size:20px; letter-spacing:.01em; }.editor-heading p { min-height:16px; margin:4px 0 0; color:var(--muted); font-size:11px; }
.product-editor-dialog .editor-fields { display:block; padding:0 26px 26px; background:#f8fafc; }
.product-editor-layout { display:grid; gap:1px; }
.product-editor-overview { display:grid; grid-template-columns:180px minmax(0,1fr); gap:24px; padding:26px 0 24px; }
.product-cover-column { display:flex; flex-direction:column; gap:12px; }.product-cover-preview { width:180px; height:180px; display:grid; place-items:center; overflow:hidden; border:1px solid #e2e7ed; border-radius:10px; background:#fff7dc; color:#be8b00; font-size:62px; box-shadow:0 8px 24px rgba(32,48,67,.08); }.product-cover-preview img { width:100%; height:100%; object-fit:cover; }.upload-button,.detail-upload { display:flex; align-items:center; justify-content:center; min-height:34px; padding:8px 12px; border:1px dashed #b9c7d7; border-radius:5px; color:#126ac8; background:#f4f9ff; font-size:11px; font-weight:700; cursor:pointer; }.upload-button input,.detail-upload input { display:none; }.product-overview-fields { min-width:0; align-self:center; }.product-editor-section { padding:23px 0 25px; border-top:1px solid #e3e8ee; }.product-editor-section>header { display:flex; align-items:baseline; gap:10px; margin-bottom:17px; }.product-editor-section>header span { color:#1673d1; font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.product-editor-section>header h4 { margin:0; font-size:16px; }.product-editor-section-body { min-width:0; }.product-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px 18px; }.product-form-grid.four-columns { grid-template-columns:repeat(4,minmax(0,1fr)); }.product-field { min-width:0; }.product-field>span { display:block; color:#4d5560; font-size:11px; font-weight:700; }.product-field input,.product-field select,.product-field textarea { margin-top:7px; padding:10px 11px; border-color:#d8e0e8; border-radius:6px; background:#fff; }.product-field textarea { min-height:86px; resize:vertical; }.product-field.tall textarea { min-height:145px; }.product-field.full,.product-form-grid>.full { grid-column:1/-1; }.accent-section { padding-top:25px; }.specification-section { padding-bottom:25px; }.specification-section .spec-root { padding:0; border:0; background:transparent; }.specification-section .spec-group-editor { border-color:#dbe3eb; border-radius:7px; background:#fff; box-shadow:0 3px 12px rgba(35,55,75,.04); }.product-status-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.editor-switch { display:flex; align-items:center; gap:11px; min-height:60px; padding:11px 13px; border:1px solid #dbe3eb; border-radius:7px; background:#fff; cursor:pointer; }.editor-switch input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }.editor-switch i { position:relative; width:38px; height:21px; flex:0 0 auto; border-radius:11px; background:#d4dae1; transition:.2s; }.editor-switch i::after { content:""; position:absolute; top:2px; left:2px; width:17px; height:17px; border-radius:50%; background:#fff; box-shadow:0 1px 4px rgba(0,0,0,.2); transition:.2s; }.editor-switch input:checked+i { background:#1677df; }.editor-switch input:checked+i::after { transform:translateX(17px); }.editor-switch strong,.editor-switch small { display:block; }.editor-switch strong { font-size:12px; }.editor-switch small { margin-top:3px; color:var(--muted); font-size:10px; font-weight:400; }.detail-image-strip { display:flex; gap:8px; min-height:52px; padding-top:5px; overflow:auto; }.detail-image-strip img { width:58px; height:58px; flex:0 0 auto; object-fit:cover; border:1px solid #dbe3eb; border-radius:5px; background:#fff; }.detail-image-strip span { color:var(--muted); font-size:11px; }.product-record-line { display:grid; grid-template-columns:auto 1fr auto 1fr; gap:8px 14px; align-items:center; padding:12px 14px; border:1px solid #dbe3eb; border-radius:7px; background:#fff; font-size:11px; }.product-record-line span { color:var(--muted); }.product-record-line strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.product-editor-dialog .editor-dialog footer,.product-editor-dialog form>footer { padding:15px 26px; background:#fff; }.product-editor-dialog .spec-options-editor { gap:8px; }.product-editor-dialog .spec-option-editor input { border-color:#dbe3eb; border-radius:5px; }
body.dark .product-editor-dialog form>header { background:#151c26; }.dark .product-editor-dialog .editor-fields { background:#101721; }.dark .product-editor-section { border-color:#2a3545; }.dark .product-field>span { color:#c0cad8; }.dark .product-field input,.dark .product-field select,.dark .product-field textarea,.dark .product-cover-preview,.dark .editor-switch,.dark .product-record-line,.dark .specification-section .spec-group-editor { border-color:#344153; background:#151c26; color:var(--ink); }.dark .upload-button,.dark .detail-upload { border-color:#446486; color:#8fc2ff; background:#122238; }.dark .product-cover-preview { background:#312a18; }.dark .source-label { color:#d6deea; }.dark .shelf-up { border-color:#286247; color:#69d49c; background:#123c2d; }.dark .shelf-down { border-color:#6a3537; color:#f18b8e; background:#4a2023; }.dark .shelf-button:disabled { border-color:#344153; color:#647083; background:#1b2532; }.dark .danger-link { color:#f18b8e; }
body.dark .trash-note { border-color:#596779; color:#b8c2cf; background:#1a2431; }.dark .restore-button { border-color:#315b86; color:#8fc2ff; background:#122a43; }.dark .permanent-delete-button { border-color:#7f3f48; color:#ff9a96; background:#382027; }.dark .confirm-dialog { border:1px solid #344153; color:var(--ink); background:#151c26; }.dark .confirm-icon { color:#ff9a96; background:#482326; }
@media (max-width:900px) { .product-editor-overview { grid-template-columns:145px minmax(0,1fr); gap:18px; }.product-cover-preview { width:145px; height:145px; }.product-form-grid.four-columns { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:720px) { .product-editor-dialog { width:calc(100% - 16px); max-height:95vh; }.product-editor-dialog form>header,.product-editor-dialog .editor-fields,.product-editor-dialog form>footer { padding-right:16px; padding-left:16px; }.product-editor-overview { grid-template-columns:1fr; gap:15px; padding-top:18px; }.product-cover-column { display:grid; grid-template-columns:108px minmax(0,1fr); align-items:center; gap:12px; }.product-cover-preview { width:108px; height:108px; font-size:40px; grid-row:span 2; }.product-form-grid,.product-form-grid.four-columns,.product-status-grid { grid-template-columns:1fr; }.product-field.full,.product-form-grid>.full { grid-column:auto; }.product-editor-section>header { align-items:flex-start; flex-direction:column; gap:3px; }.product-record-line { grid-template-columns:auto 1fr; }.product-record-line strong:nth-of-type(2) { grid-column:2; }.catalog-table td:nth-child(1) { min-width:220px; }.catalog-table td:nth-child(8) { min-width:190px; } }

/* Product publishing workspace */
.product-editor-dialog { width:min(1060px,calc(100% - 28px)); background:#f2f4f7; }
.product-editor-dialog form>header { padding:18px 24px; background:#fff; }
.product-editor-dialog .editor-fields { padding:18px 24px 24px; background:#f2f4f7; }
.product-editor-layout { display:grid; gap:14px; }
.product-editor-tip { min-height:48px; display:flex; align-items:center; gap:11px; padding:11px 14px; border:1px solid #cfe0f6; border-radius:6px; color:#24577f; background:#edf6ff; }.product-editor-tip>span { width:23px; height:23px; flex:0 0 auto; display:grid; place-items:center; border-radius:50%; color:#fff; background:#1976d2; font-size:13px; font-weight:800; }.product-editor-tip p { margin:0; line-height:1.5; font-size:12px; }
.product-editor-section { margin:0; padding:20px 22px 23px; border:1px solid #e2e6eb; border-radius:7px; background:#fff; box-shadow:0 2px 8px rgba(31,44,58,.035); }.product-editor-section>header { align-items:center; margin-bottom:20px; padding-bottom:14px; border-bottom:1px solid #edf0f3; }.product-editor-section>header span { width:27px; height:27px; display:grid; place-items:center; border-radius:4px; color:#1969bc; background:#eaf3fe; font-size:10px; letter-spacing:0; }.product-editor-section>header h4 { font-size:16px; }.product-editor-section.compact { padding-bottom:20px; }
.product-media-field { min-width:0; padding-bottom:5px; }.product-media-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:12px; }.product-media-heading strong,.product-media-heading small { display:block; }.product-media-heading strong { color:#2e3339; font-size:12px; }.product-media-heading strong em { color:#d7423b; font-style:normal; }.product-media-heading small { margin-top:4px; color:#9098a2; font-size:10px; font-weight:400; }.product-media-heading>span { color:#8c949e; font-size:11px; }.product-media-heading>span b { color:#3e4650; }
.product-media-grid { display:flex; flex-wrap:wrap; gap:10px; }.detail-media-items { display:contents; }.product-media-tile,.media-add-tile { position:relative; width:112px; aspect-ratio:1; flex:0 0 auto; overflow:hidden; border-radius:5px; }.product-media-tile { border:1px solid #dde3e9; background:#f5f6f7; }.product-media-tile.is-empty { display:none; }.product-media-tile img { width:100%; height:100%; display:block; object-fit:cover; }.media-add-tile { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; border:1px dashed #c9d0d8; color:#8a929b; background:#fafbfc; cursor:pointer; }.media-add-tile:hover { border-color:#7dadde; color:#176bc0; background:#f2f8ff; }.media-add-tile>span { font-size:30px; line-height:1; font-weight:300; }.media-add-tile>small { font-size:11px; }.media-remove { position:absolute; z-index:2; top:5px; right:5px; width:23px; height:23px; display:grid; place-items:center; padding:0; border:0; border-radius:50%; color:#fff; background:rgba(17,22,28,.72); font-size:16px; line-height:1; cursor:pointer; }.media-remove:hover { background:#b73530; }.media-order,.media-status { position:absolute; left:5px; bottom:5px; padding:3px 6px; border-radius:3px; color:#fff; background:rgba(17,22,28,.68); font-size:9px; }.media-status { background:#1672cd; }.main-media-grid .media-add-tile { width:112px; }.detail-media-add[hidden] { display:none; }
.product-editor-dialog .product-form-grid { gap:17px 20px; }.product-editor-dialog .product-field>span { color:#454c55; font-size:12px; }.product-editor-dialog .product-field input,.product-editor-dialog .product-field select,.product-editor-dialog .product-field textarea { margin-top:8px; padding:11px 12px; border-color:#dce1e7; border-radius:5px; }.product-editor-dialog .product-field input:focus,.product-editor-dialog .product-field select:focus,.product-editor-dialog .product-field textarea:focus { border-color:#438ad2; box-shadow:0 0 0 3px rgba(38,123,209,.1); outline:0; }.product-editor-dialog .specification-section .spec-group-editor { box-shadow:none; }.product-editor-dialog .editor-switch { min-height:66px; border-radius:6px; }
.product-editor-dialog form>footer { padding:14px 24px; border-top-color:#e0e4e9; box-shadow:0 -5px 18px rgba(25,37,50,.05); }.product-editor-dialog form>footer .primary { min-width:116px; }
body.dark .product-editor-dialog { background:#0f151e; }.dark .product-editor-dialog .editor-fields { background:#0f151e; }.dark .product-editor-tip { border-color:#28496c; color:#a9cff6; background:#13273c; }.dark .product-editor-section { border-color:#2b3747; background:#151c26; box-shadow:none; }.dark .product-editor-section>header { border-color:#2b3747; }.dark .product-editor-section>header span { color:#8fc2ff; background:#20344c; }.dark .product-media-heading strong { color:#dce4ed; }.dark .product-media-heading small,.dark .product-media-heading>span { color:#8794a5; }.dark .product-media-heading>span b { color:#c9d3df; }.dark .product-media-tile { border-color:#344153; background:#101721; }.dark .media-add-tile { border-color:#445367; color:#91a0b2; background:#111923; }.dark .media-add-tile:hover { border-color:#4e7dae; color:#8fc2ff; background:#122238; }
@media (max-width:720px) { .product-editor-dialog .editor-fields { padding:12px; }.product-editor-tip { align-items:flex-start; }.product-editor-section { padding:17px 15px 19px; }.product-editor-section>header { flex-direction:row; align-items:center; gap:9px; }.product-media-heading { align-items:flex-end; }.product-media-tile,.media-add-tile,.main-media-grid .media-add-tile { width:88px; }.product-editor-dialog form>footer { padding-right:12px; padding-left:12px; } }

/* Unified mini-program designer */
.designer-shell { min-height:calc(100vh - 76px); margin:-28px -30px -50px; background:#eef3f8; }
.designer-toolbar { height:92px; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:16px 24px; border-bottom:1px solid var(--line); background:#fff; }
.designer-toolbar h3,.designer-toolbar p { margin:0; }.designer-toolbar h3 { margin-top:3px; font-size:19px; }.designer-toolbar p { margin-top:3px; color:var(--muted); font-size:12px; }.designer-kicker { color:#1670d2; font-size:9px; font-weight:800; letter-spacing:1.2px; }.designer-publish { display:flex; align-items:center; gap:14px; }.designer-publish>span { color:var(--muted); font-size:12px; }.designer-publish .primary { min-width:112px; }
.designer-publish .designer-undo { min-width:72px; }.designer-publish .designer-undo:disabled { opacity:.45; cursor:not-allowed; }
.designer-grid { height:calc(100vh - 168px); min-height:650px; display:grid; grid-template-columns:252px minmax(430px,1fr) 318px; overflow:hidden; }
.designer-sidebar,.designer-inspector { min-width:0; background:#fff; }.designer-sidebar { border-right:1px solid var(--line); }.designer-inspector { border-left:1px solid var(--line); }.designer-side-scroll,.inspector-scroll { height:100%; overflow:auto; scrollbar-width:thin; }
.designer-nav-group { display:grid; gap:3px; padding:18px 14px 0; }.designer-group-title { padding:0 9px 8px; color:#9aa1ac; font-size:10px; font-weight:800; text-transform:uppercase; }
.designer-page { width:100%; height:38px; display:grid; grid-template-columns:25px minmax(0,1fr) auto; align-items:center; gap:7px; padding:0 10px; border:0; border-radius:6px; color:#59616d; background:transparent; text-align:left; }.designer-page:hover { background:#f5f8fb; }.designer-page.active { color:#0d67c9; background:#edf5ff; }.designer-page>span { font-size:15px; text-align:center; }.designer-page strong { overflow:hidden; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }.designer-page i { min-width:20px; padding:2px 5px; border-radius:10px; background:#edf0f4; color:#7d8490; font-size:9px; font-style:normal; text-align:center; }.designer-page.active i { background:#fff; color:#0d67c9; }
.designer-layers { margin-top:18px; padding:16px 14px 24px; border-top:1px solid var(--line); }.designer-layer-head { display:flex; align-items:center; justify-content:space-between; color:#8a919c; font-size:11px; }.designer-layer-head strong { margin-right:4px; color:var(--ink); font-size:12px; }.designer-layer-head>span:last-child { min-width:20px; text-align:center; }.designer-add { display:grid; grid-template-columns:minmax(0,1fr) 34px; gap:6px; margin-top:10px; }.designer-add select { height:34px; margin:0; padding:5px 8px; border-color:#dfe4eb; font-size:11px; }.designer-add button { border:0; border-radius:5px; background:#1677df; color:#fff; font-size:20px; }.designer-layer-list { display:grid; gap:5px; margin-top:9px; }.designer-layer { min-height:53px; display:grid; grid-template-columns:20px minmax(0,1fr) auto; gap:7px; align-items:center; padding:7px; border:1px solid transparent; border-radius:6px; background:#f8fafc; cursor:pointer; }.designer-layer:hover { border-color:#dbe5f0; }.designer-layer.active { border-color:#91bcec; background:#edf6ff; box-shadow:inset 2px 0 #1677df; }.designer-layer button { border:0; background:transparent; }.layer-eye { padding:0; color:#b1b7c0; font-size:10px; }.layer-eye.on { color:#27a966; }.designer-layer strong,.designer-layer small { display:block; }.designer-layer strong { font-size:11px; }.designer-layer small { max-width:112px; margin-top:3px; overflow:hidden; color:#9299a4; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }.layer-actions { display:flex; gap:0; opacity:0; }.designer-layer:hover .layer-actions,.designer-layer.active .layer-actions { opacity:1; }.layer-actions button { width:20px; height:24px; padding:0; color:#7b8490; font-size:11px; }.layer-actions button:hover { color:#1267c5; background:#fff; }.designer-empty { padding:25px 8px; color:#9aa1ac; font-size:11px; text-align:center; }
.designer-layer { user-select:none; }.layer-copy { min-width:0; }.layer-index { display:inline-grid; width:18px; height:18px; place-items:center; margin-right:5px; border-radius:4px; color:#6f7b89; background:#edf0f4; font-size:9px; font-weight:700; vertical-align:middle; }.layer-actions { gap:2px; opacity:1; }.layer-actions button { width:24px; height:25px; padding:0; border:1px solid #e0e5eb; border-radius:4px; color:#64707d; background:#fff; font-size:11px; line-height:1; cursor:pointer; }.layer-actions button:hover { border-color:#9fc2e8; color:#1267c5; background:#f2f8ff; }.layer-actions button:disabled { opacity:.35; cursor:not-allowed; }.layer-actions button.layer-delete { margin-left:2px; color:#a66a70; }.layer-actions button.layer-delete:hover { border-color:#e5b9bd; color:#b12630; background:#fff5f5; }.designer-layer.dragging { opacity:.48; border-style:dashed; }.designer-layer.drop-target { border-color:#1677df; box-shadow:0 -2px 0 #1677df; }.designer-layer.drop-target.drop-after { box-shadow:0 2px 0 #1677df; }.designer-layer[draggable="true"] { cursor:grab; }.designer-layer[draggable="true"]:active { cursor:grabbing; }
.pv-category-icon { min-height:27px; display:grid; place-items:center; }.pv-category-icon img { width:100%; height:100%; object-fit:contain; }.pv-grid>div small,.pv-grid>div em { display:block; margin-top:3px; overflow:hidden; font-style:normal; text-overflow:ellipsis; white-space:pre-wrap; }.pv-grid>div em { color:#9299a4; font-size:6px; line-height:1.25; }
.pv-home-head h4,.preview-hero strong,.preview-hero em,.pv-notice,.pv-section strong { white-space:pre-wrap; word-break:break-word; }
.designer-sort-tip { margin:5px 0 0; color:#9299a4; font-size:9px; line-height:1.45; }
.designer-stage { min-width:0; overflow:auto; padding:18px 24px 34px; background:#eef3f8; }.stage-head { max-width:410px; display:flex; align-items:center; justify-content:space-between; margin:0 auto 14px; }.stage-head strong,.stage-head span { display:block; }.stage-head strong { font-size:13px; }.stage-head div span { margin-top:2px; color:#8a919c; font-size:10px; }.live-pill { display:flex !important; align-items:center; gap:5px; padding:5px 8px; border:1px solid #d9e1ea; border-radius:12px; color:#64707c; background:#fff; font-size:8px; font-weight:800; }.live-pill i { width:6px; height:6px; border-radius:50%; background:#22b56e; }
.phone-frame { position:relative; width:350px; height:700px; margin:auto; padding:10px; border:1px solid #1d2229; border-radius:34px; background:#171b20; box-shadow:0 22px 55px rgba(32,55,78,.2); }.phone-speaker { position:absolute; z-index:3; top:8px; left:50%; width:74px; height:19px; transform:translateX(-50%); border-radius:0 0 12px 12px; background:#171b20; }.phone-screen { height:100%; overflow:hidden; border-radius:25px; background:#f7f7f7; scrollbar-width:none; -ms-overflow-style:none; }.phone-screen>.phone-status { height:27px; display:flex; align-items:center; justify-content:space-between; padding:0 16px; color:#1c2229; background:#fff; font-size:8px; font-weight:800; }.builder-preview-body { position:relative; height:calc(100% - 27px); overflow:auto; scrollbar-width:none; -ms-overflow-style:none; }.phone-screen::-webkit-scrollbar,.builder-preview-body::-webkit-scrollbar { width:0; height:0; display:none; }.pv-page { min-height:100%; padding:11px 11px 52px; }.pv-page.pv-mode-compact { padding:6px 7px 48px; }.pv-component { position:relative; margin:0 -4px; padding:4px; border:1px solid transparent; border-radius:6px; cursor:pointer; transition:border-color .15s,box-shadow .15s; }.pv-component:hover { border-color:#86b5eb; }.pv-component.active { border-color:#1677df; box-shadow:0 0 0 2px rgba(22,119,223,.1); }.pv-component.active::before { content:"当前区块"; position:absolute; z-index:8; top:-8px; right:5px; padding:2px 5px; border-radius:3px; color:#fff; background:#1677df; font-size:6px; }
.pv-home-head,.pv-topbar,.pv-card-line,.pv-action-line,.pv-profile,.pv-form-line,.pv-summary,.pv-quantity { display:flex; align-items:center; justify-content:space-between; gap:8px; }.pv-home-head { min-height:52px; margin-top:20px; }.pv-home-head small { color:#986900; font-size:7px; font-weight:800; }.pv-home-head h4 { max-width:220px; margin:3px 0 0; font-size:15px; }.pv-logo { width:68px; height:29px; display:grid; place-items:center; overflow:hidden; border-radius:5px; background:#fff; font-size:11px; font-weight:800; }.pv-logo img,.pv-profile img { width:100%; height:100%; object-fit:contain; }.pv-card-line,.pv-action-line,.pv-panel,.pv-summary,.pv-search,.pv-city-row,.pv-product-row,.pv-order-card,.pv-detail-info { margin:3px 0; padding:10px; border:1px solid #edf0f3; border-radius:6px; background:#fff; }.pv-card-line>div { flex:1; }.pv-card-line small,.pv-card-line strong { display:block; }.pv-card-line small { color:#9299a4; font-size:7px; }.pv-card-line strong { margin-top:3px; font-size:10px; }.pv-card-line>b { color:#a67500; font-size:18px; }.pv-card-line>span { color:#a0a6af; }.pv-notice { padding:8px 9px; border-left:3px solid var(--accent); font-size:8px; }.preview-hero { min-height:122px; margin:0; padding:16px; border-radius:6px; background-position:center; background-size:cover; }.preview-hero span,.preview-hero strong,.preview-hero em { display:block; }.preview-hero span { color:#f4d373; font-size:7px; }.preview-hero strong { margin:6px 0; font-size:15px; }.preview-hero em { font-size:8px; font-style:normal; }.preview-hero b { display:inline-block; margin-top:13px; padding:5px 8px; border-radius:12px; color:#222; font-size:7px; }.pv-section { display:flex; justify-content:space-between; align-items:center; margin:10px 0 6px; font-size:10px; }.pv-section span { color:#9299a4; font-size:7px; }.pv-grid { display:grid; gap:5px; }.pv-grid>div { min-width:0; padding:8px 3px; border:1px solid #eee; border-radius:5px; background:#fff; font-size:8px; text-align:center; }.pv-grid.products>div { min-height:57px; font-size:23px; }.pv-grid.products img { width:100%; height:38px; object-fit:cover; }.pv-grid.products small { display:block; margin-top:4px; overflow:hidden; font-size:7px; text-overflow:ellipsis; white-space:nowrap; }.pv-spacer { display:grid; place-items:center; border:1px dashed #cfd6de; color:#9aa1ac; font-size:7px; }
.pv-topbar { min-height:36px; padding:5px 3px; }.pv-topbar strong { flex:1; font-size:12px; text-align:center; }.pv-topbar>b { width:24px; font-size:24px; font-weight:400; }.pv-topbar>span { font-size:9px; }.pv-menu-tabs { display:flex; gap:6px; overflow:hidden; padding:6px 2px; }.pv-menu-tabs span { flex:0 0 auto; padding:5px 8px; border-bottom:2px solid transparent; color:#777; font-size:8px; }.pv-menu-tabs .on { border-color:var(--accent); color:#222; font-weight:800; }.pv-list-title strong,.pv-list-title small { display:block; }.pv-list-title strong { font-size:11px; }.pv-list-title small { margin-top:2px; color:#9299a4; font-size:7px; }.pv-product-row { display:flex; align-items:center; gap:8px; }.pv-product-row>span { width:48px; height:45px; display:grid; place-items:center; overflow:hidden; border-radius:5px; background:#fff4d4; font-size:27px; }.pv-product-row img { width:100%; height:100%; object-fit:cover; }.pv-product-row>div { min-width:0; flex:1; }.pv-product-row strong,.pv-product-row small,.pv-product-row b { display:block; }.pv-product-row strong { font-size:9px; }.pv-product-row small { margin:3px 0; overflow:hidden; color:#8b929c; font-size:7px; text-overflow:ellipsis; white-space:nowrap; }.pv-product-row b { color:#bf2731; font-size:9px; }.pv-product-row i { width:20px; height:20px; border-radius:50%; font-size:14px; font-style:normal; line-height:19px; text-align:center; }.pv-order-line,.pv-form-line { display:flex; justify-content:space-between; gap:8px; padding:7px 0; border-bottom:1px solid #f0f1f3; font-size:8px; }.pv-order-line:last-child,.pv-form-line:last-child { border:0; }.pv-form-line small { color:#9299a4; }.pv-action-line { font-size:9px; }.pv-summary small,.pv-summary strong { display:block; }.pv-summary small { color:#8b929c; font-size:7px; }.pv-summary strong { margin-top:3px; color:#bf2731; font-size:14px; }.pv-summary>span { color:#9299a4; font-size:7px; }.pv-primary { width:100%; min-height:34px; border:0; border-radius:18px; color:#202020; font-size:10px; font-weight:800; }.pv-empty { padding:28px 10px; text-align:center; }.pv-empty b,.pv-empty strong,.pv-empty small { display:block; }.pv-empty b { color:#afb5bd; font-size:35px; }.pv-empty strong { margin-top:8px; font-size:11px; }.pv-empty small { margin-top:5px; color:#9097a2; font-size:8px; }.pv-order-card { position:relative; }.pv-order-card div { display:flex; justify-content:space-between; font-size:9px; }.pv-order-card div span { color:#a56f00; }.pv-order-card>small { color:#9aa1ac; font-size:7px; }.pv-order-card p { font-size:8px; }.pv-order-card>b { position:absolute; right:10px; bottom:9px; font-size:9px; }.pv-profile>div { width:42px; height:42px; display:grid; place-items:center; overflow:hidden; border-radius:50%; }.pv-profile>span { flex:1; }.pv-profile strong,.pv-profile small { display:block; }.pv-profile strong { font-size:11px; }.pv-profile small { margin-top:3px; color:#9299a4; font-size:7px; }.pv-points { display:flex; align-items:center; justify-content:space-between; padding:13px; border-radius:7px; color:#fff; }.pv-points small,.pv-points strong { display:block; }.pv-points small { color:#f0dba8; font-size:7px; }.pv-points strong { margin-top:2px; font-size:18px; }.pv-points button { border:0; border-radius:13px; padding:6px 10px; font-size:7px; }.pv-shortcuts { overflow:hidden; border:1px solid #edf0f3; border-radius:6px; background:#fff; }.pv-shortcuts span { display:flex; justify-content:space-between; padding:10px; border-bottom:1px solid #edf0f3; font-size:9px; }.pv-shortcuts span:last-child { border:0; }.pv-search { color:#8e959f; font-size:9px; }.pv-city-row { display:flex; align-items:center; gap:9px; }.pv-city-row>b { color:#a67500; }.pv-city-row>span { flex:1; }.pv-city-row strong,.pv-city-row small { display:block; }.pv-city-row strong { font-size:9px; }.pv-city-row small { margin-top:3px; color:#9299a4; font-size:7px; }.pv-city-row i { font-size:10px; font-style:normal; }.pv-gallery { height:220px; display:grid; place-items:center; overflow:hidden; background:#fff4d4; font-size:90px; }.pv-gallery img { width:100%; height:100%; object-fit:cover; }.pv-detail-info small,.pv-detail-info strong,.pv-detail-info b { display:block; }.pv-detail-info>small { color:#a56f00; font-size:7px; }.pv-detail-info>strong { margin-top:4px; font-size:15px; }.pv-detail-info p { margin:5px 0; color:#858c96; font-size:8px; }.pv-detail-info>b { color:#bf2731; font-size:15px; }.pv-specs { display:flex; gap:6px; margin-top:7px; }.pv-specs span { padding:6px 8px; border:1px solid #ddd; border-radius:4px; font-size:7px; }.pv-specs .on { border-color:#c9910a; background:#fff7df; }.pv-quantity { font-size:9px; }.pv-choice-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:5px; margin-top:7px; }.pv-choice-grid>div { padding:8px 3px; border:1px solid #edf0f3; border-radius:5px; background:#fff; font-size:25px; text-align:center; }.pv-choice-grid small,.pv-choice-grid b { display:block; }.pv-choice-grid small { height:22px; margin-top:3px; overflow:hidden; font-size:7px; }.pv-choice-grid b { font-size:8px; }.pv-bottom-nav { position:absolute; z-index:5; right:0; bottom:0; left:0; height:44px; display:flex; justify-content:space-around; border-top:1px solid #e9ecf0; background:rgba(255,255,255,.98); }.pv-bottom-nav span { min-width:0; flex:1; padding-top:5px; color:#a0a6af; font-size:6px; text-align:center; }.pv-bottom-nav b { display:block; font-size:13px; }.pv-bottom-nav .active { color:#191d22; font-weight:800; }.pv-empty-page { padding:180px 15px; color:#9199a4; font-size:9px; text-align:center; }.pv-disabled { position:absolute; inset:0; z-index:9; display:grid; align-content:center; justify-items:center; background:rgba(246,248,250,.88); }.pv-disabled strong { font-size:13px; }.pv-disabled span { margin-top:5px; color:#7f8792; font-size:8px; }
.inspector-title { padding:20px 20px 12px; }.inspector-title>span { display:block; margin-bottom:4px; color:#1670d2; font-size:9px; font-weight:800; }.inspector-title>strong { font-size:16px; }.inspector-title>p { margin:5px 0 0; color:#8c939e; font-size:10px; line-height:1.5; }.inspector-title.compact { padding-top:14px; }.inspector-title.block-title { padding-top:15px; }.inspector-section { display:grid; gap:13px; padding:5px 20px 20px; }.inspector-divider { height:7px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#f5f7fa; }.inspector-field>span { display:block; color:#616975; font-size:10px; font-weight:600; }.inspector-field input,.inspector-field select,.inspector-field textarea { margin-top:6px; padding:8px 9px; border-color:#dfe4ea; border-radius:5px; font-size:11px; }.inspector-field input[type=color] { height:35px; padding:3px; }.inspector-field textarea { min-height:68px; resize:vertical; }.inspector-switch { min-height:35px; display:flex; align-items:center; justify-content:space-between; }.inspector-switch strong { color:#4e5661; font-size:11px; }.inspector-switch input,.mini-switch input { position:absolute; opacity:0; pointer-events:none; }.inspector-switch>i,.mini-switch>i { position:relative; width:34px; height:19px; border-radius:10px; background:#dce1e6; transition:.2s; }.inspector-switch>i::after,.mini-switch>i::after { content:""; position:absolute; top:2px; left:2px; width:15px; height:15px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.2); transition:.2s; }.inspector-switch input:checked+i,.mini-switch input:checked+i { background:#1677df; }.inspector-switch input:checked+i::after,.mini-switch input:checked+i::after { transform:translateX(15px); }.inspector-upload { padding:9px; border:1px dashed #b8c8d9; border-radius:5px; color:#176bc9; background:#f4f9ff; font-size:10px; font-weight:700; text-align:center; }.inspector-upload input { display:none; }.inspector-empty { padding:55px 20px; color:#8d949e; text-align:center; }.inspector-empty strong { color:#4c535d; font-size:12px; }.inspector-empty p { font-size:10px; }
.share-image-reset { padding:8px; border:0; color:#6c7480; background:transparent; font-size:10px; }.share-preview-label { display:flex; align-items:center; justify-content:space-between; margin-top:3px; }.share-preview-label strong { font-size:11px; }.share-preview-label span { color:#9299a4; font-size:9px; }.wechat-share-preview { padding:10px; border-radius:9px; background:#ebebed; color:#161616; }.wechat-share-app { display:flex; align-items:center; gap:6px; color:#87878b; }.wechat-share-app>span { width:20px; height:20px; display:grid; place-items:center; overflow:hidden; border-radius:50%; background:#fff; font-size:8px; }.wechat-share-app img { width:100%; height:100%; object-fit:contain; }.wechat-share-app small { font-size:10px; }.wechat-share-title { display:grid; gap:3px; margin:9px 2px 8px; }.wechat-share-title strong { min-height:16px; overflow:hidden; font-size:13px; font-weight:500; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }.wechat-share-preview>img { width:100%; aspect-ratio:5/4; display:block; object-fit:cover; border-radius:3px; background:#d8d8da; }
.designer-style-panel { margin:0 20px 20px; border:1px solid var(--line); border-radius:6px; background:#fafbfd; }.designer-style-panel>summary { padding:11px 12px; color:#33404e; font-size:11px; font-weight:800; cursor:pointer; }.designer-style-panel>summary::marker { color:#1677df; }.designer-style-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; padding:0 12px 14px; }.designer-style-grid .inspector-field input,.designer-style-grid .inspector-field select { width:100%; box-sizing:border-box; }.inspector-help { margin:0; color:#8d96a3; font-size:10px; line-height:1.5; }.designer-style-panel .inspector-help { padding:0 12px 10px; }.designer-category-editor { display:grid; gap:9px; margin:4px 20px 20px; }.designer-editor-subhead { display:flex; align-items:baseline; justify-content:space-between; gap:8px; }.designer-editor-subhead strong { color:#3d4651; font-size:11px; }.designer-editor-subhead span { color:#9299a4; font-size:9px; }.designer-category-row { padding:10px; border:1px solid var(--line); border-radius:6px; background:#fafbfd; }.designer-category-row-head { display:flex; justify-content:space-between; gap:8px; margin-bottom:8px; }.designer-category-row-head strong { overflow:hidden; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }.designer-category-row-head small { color:#9299a4; font-size:9px; }.designer-category-fields { display:grid; grid-template-columns:1fr 1fr; gap:8px; }.designer-category-fields .full { grid-column:1/-1; }.designer-category-fields .inspector-upload { display:grid; gap:4px; cursor:pointer; }.designer-category-fields .inspector-upload small { color:#7c8794; font-size:9px; font-weight:400; }.designer-category-image { width:64px; height:64px; align-self:end; object-fit:contain; border:1px solid #e2e6eb; border-radius:5px; background:#fff; }
.nav-inspector-list { display:grid; gap:7px; padding:4px 14px 22px; }.nav-inspector-row { display:grid; grid-template-columns:39px minmax(0,1fr) 34px 42px; gap:7px; align-items:center; padding:9px; border:1px solid var(--line); border-radius:6px; }.nav-inspector-row input { margin:0; padding:7px; font-size:10px; }.nav-icon-input input { text-align:center; }.nav-inspector-row small { display:block; margin-top:2px; color:#a0a6af; font-size:8px; }.mini-switch { display:flex; }.mini-switch>i { width:29px; height:17px; }.mini-switch>i::after { width:13px; height:13px; }.mini-switch input:checked+i::after { transform:translateX(12px); }.nav-move { display:flex; }.nav-move button { width:21px; height:27px; padding:0; border:0; background:transparent; color:#747c87; }.copy-search { display:flex; align-items:center; gap:6px; margin:0 20px 12px; padding:0 9px; border:1px solid #dfe4ea; border-radius:5px; color:#8d949f; }.copy-search input { margin:0; padding:8px 0; border:0; box-shadow:none; font-size:10px; }.copy-inspector-list { display:grid; gap:10px; padding:0 20px 24px; }.copy-inspector-list label>span { display:block; color:#646c77; font-size:9px; }.copy-inspector-list input { margin-top:4px; padding:7px 8px; font-size:10px; }.designer-product-checks { display:grid; gap:6px; padding:0 20px 24px; }.designer-product-checks label { display:grid; grid-template-columns:17px 34px minmax(0,1fr); gap:8px; align-items:center; min-height:45px; padding:5px 7px; border:1px solid var(--line); border-radius:5px; font-weight:500; }.designer-product-checks input { width:auto; margin:0; }.designer-product-checks span { width:34px; height:34px; display:grid; place-items:center; overflow:hidden; border-radius:4px; background:#fff4d4; font-size:21px; }.designer-product-checks img { width:100%; height:100%; object-fit:cover; }.designer-product-checks strong { overflow:hidden; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
@media (max-width:1250px) { .designer-grid { grid-template-columns:220px minmax(390px,1fr) 290px; }.designer-stage { padding-right:14px; padding-left:14px; }.phone-frame { width:330px; height:660px; }.designer-layer small { max-width:88px; } }
@media (max-width:900px) { .designer-shell { min-height:auto; }.designer-toolbar { height:auto; min-height:90px; }.designer-grid { height:auto; min-height:0; grid-template-columns:220px minmax(360px,1fr) 290px; overflow:auto; }.designer-sidebar,.designer-inspector { min-height:700px; }.designer-stage { min-height:740px; } }
@media (max-width:720px) { .designer-shell { margin:-18px -14px -40px; }.designer-toolbar { align-items:flex-start; gap:8px; padding:15px 12px; }.designer-toolbar>div:first-child { min-width:0; }.designer-toolbar p,.designer-publish>span { display:none; }.designer-publish { flex:0 0 auto; margin-left:auto; }.designer-publish .primary { min-width:106px; padding-right:10px; padding-left:10px; }.designer-grid { display:block; }.designer-sidebar,.designer-inspector { min-height:0; border:0; }.designer-side-scroll,.inspector-scroll { height:auto; max-height:none; }.designer-nav-group { grid-template-columns:repeat(2,minmax(0,1fr)); padding-top:12px; }.designer-group-title { grid-column:1/-1; }.designer-layers { margin-top:12px; }.designer-stage { min-height:730px; padding:16px 8px 25px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.phone-frame { width:320px; max-width:calc(100vw - 24px); height:650px; }.designer-inspector { padding-bottom:30px; } }
.designer-style-grid { min-width:0; }
@media (max-width:720px) { .designer-style-grid,.designer-category-fields { grid-template-columns:1fr; }.designer-category-fields .full { grid-column:auto; } }
/* Keep hidden form controls from expanding the mobile canvas. */
.inspector-switch input,.mini-switch input { position:absolute; width:1px; height:1px; margin:0; padding:0; opacity:0; pointer-events:none; }

/* Coupon management */
.coupon-admin-head { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:18px; }
.coupon-admin-head h3 { margin:4px 0 0; font-size:22px; }
.coupon-admin-head .section-caption { max-width:620px; margin-top:7px; }
.coupon-admin-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:18px; }
.gift-code-stats { grid-template-columns:repeat(5,minmax(0,1fr)); }
.distribution-stats { grid-template-columns:repeat(4,minmax(0,1fr)); }
.gift-product-pool { display:grid; grid-template-columns:1fr; gap:8px; width:100%; max-height:280px; margin-top:8px; padding:12px; overflow:auto; border:1px solid var(--line); border-radius:6px; background:var(--bg); }
.gift-product-pool label { display:flex; align-items:center; gap:7px; min-width:0; padding:8px; border-radius:4px; background:var(--surface); font-weight:600; }
.gift-product-pool label span { flex:0 0 auto; padding:2px 5px; border-radius:3px; background:#fff0bc; color:#654900; font-size:11px; }
.gift-product-pool label strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.gift-product-pool input { width:auto; margin:0; }
.coupon-admin-stats>div { padding:18px 20px; border:1px solid var(--line); border-radius:8px; background:var(--surface); }
.coupon-admin-stats span,.coupon-admin-stats strong,.coupon-admin-stats small { display:block; }
.coupon-admin-stats span { color:var(--muted); font-size:12px; }.coupon-admin-stats strong { margin:6px 0 3px; font-size:26px; }.coupon-admin-stats small { color:var(--muted); font-size:11px; }
.coupon-admin-panel .panel-head { align-items:center; }.coupon-admin-table td { vertical-align:middle; }.coupon-admin-table td small { color:var(--muted); line-height:1.7; }.coupon-admin-value { color:#b97900; }
.gift-archive-detail { min-width:300px; }.gift-archive-detail summary { color:#705100; font-weight:700; cursor:pointer; }.gift-archive-batches { display:grid; gap:8px; margin-top:10px; }.gift-archive-batch { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding:10px; border:1px solid var(--line); border-radius:6px; background:var(--canvas); }.gift-archive-batch>div:first-child { min-width:150px; }.gift-archive-batch strong,.gift-archive-batch small { display:block; }.gift-archive-batch small { margin-top:4px; color:var(--muted); }.gift-archive-batch .row-actions { flex-wrap:wrap; justify-content:flex-end; }
.gift-batch-complete { margin-right:7px; vertical-align:middle; }
.coupon-editor-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; padding:4px 0; }.coupon-editor-grid .full { grid-column:1/-1; }
body.dark .coupon-admin-stats>div,body.dark .coupon-admin-panel { background:var(--surface); }
@media (max-width:720px) { .coupon-admin-head { align-items:flex-start; flex-direction:column; }.coupon-admin-stats { grid-template-columns:1fr; }.coupon-editor-grid,.gift-product-pool { grid-template-columns:1fr; }.coupon-editor-grid .full { grid-column:auto; }.gift-archive-batch { flex-direction:column; }.gift-archive-batch .row-actions { justify-content:flex-start; } }

.customer-address-editor { padding:15px; border:1px solid var(--line); border-radius:7px; background:var(--canvas); }
.customer-address-head,.customer-address-card { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.customer-address-list { display:grid; gap:8px; margin-top:12px; }
.customer-address-card { padding:12px 13px; border:1px solid var(--line); border-radius:6px; background:var(--surface); }
.customer-address-card>div:first-child { min-width:0; }
.customer-address-card strong,.customer-address-card small { display:block; }
.customer-address-card small { margin-top:5px; color:var(--muted); line-height:1.5; }
@media (max-width:720px) { .customer-address-head,.customer-address-card { align-items:flex-start; flex-direction:column; }.customer-address-card .row-actions { width:100%; } }

/* Let the designer grow with its content so the page-level wheel can reach every panel. */
.designer-grid { height:auto; min-height:650px; overflow:visible; align-items:start; }
.designer-sidebar,.designer-inspector,.designer-stage { height:auto; min-height:0; }
.designer-side-scroll,.inspector-scroll,.designer-stage { height:auto; max-height:none; overflow:visible; }
.pv-logo[data-logo-drag] { position:relative; cursor:move; user-select:none; touch-action:none; }
.pv-logo-resize { position:absolute; right:0; bottom:0; z-index:2; width:10px; height:10px; border-right:2px solid #1677df; border-bottom:2px solid #1677df; cursor:nwse-resize; touch-action:none; }
.pv-logo-resize::after { content:""; position:absolute; right:-3px; bottom:-3px; width:5px; height:5px; border-radius:50%; background:#1677df; }
.pv-component { box-sizing:border-box; }
.pv-block-resize { position:absolute; right:2px; bottom:2px; z-index:9; width:13px; height:13px; border-right:3px solid #1677df; border-bottom:3px solid #1677df; border-radius:0 0 3px 0; cursor:nwse-resize; touch-action:none; opacity:.9; }
.pv-block-resize::before,.pv-block-resize::after { content:""; position:absolute; right:-3px; bottom:-3px; width:5px; height:5px; border-radius:50%; background:#1677df; }
.pv-block-resize::after { right:3px; bottom:3px; width:3px; height:3px; background:#6da8ed; }
.pv-component:hover > .pv-block-resize,.pv-component.active > .pv-block-resize { opacity:1; }

/* Sidebar theme control */
.sidebar-footer { margin-top:auto; padding-top:14px; border-top:1px solid var(--line); }
.theme-toggle { width:100%; min-height:38px; display:flex; align-items:center; gap:10px; padding:10px 14px; border:0; border-radius:6px; background:transparent; color:#727985; text-align:left; }
.theme-toggle:hover { background:#f2f6fb; color:#1262c5; }
.theme-toggle-icon { width:19px; font-size:18px; line-height:1; text-align:center; }
.theme-toggle-state { position:relative; width:32px; height:18px; margin-left:auto; border-radius:10px; background:#d8dde4; transition:.2s; }
.theme-toggle-state::after { content:""; position:absolute; top:2px; left:2px; width:14px; height:14px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.2); transition:.2s; }
.sidebar-footer .logout { margin-top:8px; }

/* Consistent dark workspace palette. The phone mockup remains light to reflect the mini-program preview. */
body.dark { --ink:#e7edf5; --muted:#95a1b3; --line:#2a3545; --surface:#151c26; --canvas:#0d131c; color-scheme:dark; background:var(--canvas); }
body.dark .login-screen { background:#080c12; }
body.dark .login-panel { background:#151c26; border-color:var(--accent); }
body.dark .login-panel label { color:#c0cad8; }
body.dark input,body.dark select,body.dark textarea { border-color:#344153; background:#101721; color:var(--ink); }
body.dark input:focus,body.dark select:focus,body.dark textarea:focus { border-color:#5e9fe8; box-shadow:0 0 0 3px rgba(79,150,232,.16); }
body.dark .secondary { background:#273140; color:#e3eaf3; }
body.dark .secondary:hover { background:#334154; }
body.dark .text-button { color:#f0c252; }
body.dark .sidebar { background:#111720; border-color:#273241; }
body.dark .sidebar-brand { border-color:#273241; }
body.dark .sidebar nav button,body.dark .logout { color:#aeb9c8; }
body.dark .sidebar nav button:hover,body.dark .sidebar nav button.active { background:#202c3d; color:#83b9ff; }
body.dark .sidebar nav button.active { box-shadow:inset 3px 0 #4b9cff; }
body.dark .sidebar-footer { border-color:#273241; }
body.dark .theme-toggle { color:#aeb9c8; }
body.dark .theme-toggle:hover { background:#202c3d; color:#83b9ff; }
body.dark .theme-toggle-state { background:#347fd1; }
body.dark .theme-toggle-state::after { transform:translateX(14px); }
body.dark .main,body.dark .view-root { background:var(--canvas); }
body.dark .topbar-admin { border-color:#273241; background:#151c26; }
body.dark .icon-button:hover { background:#273140; }
body.dark .stat-card,body.dark .panel,body.dark .settings-form { border-color:var(--line); background:var(--surface); }
body.dark table { background:#151c26; }
body.dark th { color:#aab6c6; background:#1d2837; }
body.dark td { border-color:#2a3545; }
body.dark .badge { background:#273140; color:#c0cad8; }
body.dark .badge.on,body.dark .badge.done { background:#123c2d; color:#69d49c; }
body.dark .badge.wait { background:#493a18; color:#f2ca62; }
body.dark .badge.cancel { background:#4a2023; color:#f18b8e; }
body.dark .panel-head,body.dark .form-section h3 { border-color:var(--line); }
body.dark .thumb { background:#3b321d; }
body.dark .combo-products,body.dark .spec-root { border-color:#344153; background:#101721; }
body.dark .spec-group-editor { border-color:#344153; background:#151c26; }
body.dark .editor-dialog,body.dark .order-dialog { border:1px solid #344153; background:#151c26; color:var(--ink); }
body.dark .editor-dialog form>header,body.dark .order-detail-head,body.dark .editor-dialog footer { border-color:var(--line); background:#151c26; }
body.dark .order-summary div { background:#202b3a; }
body.dark .designer-toolbar,body.dark .designer-sidebar,body.dark .designer-inspector { background:#151c26; }
body.dark .designer-sidebar { border-color:var(--line); }
body.dark .designer-inspector { border-color:var(--line); }
body.dark .designer-stage { background:#0e151f; }
body.dark .designer-page { color:#aeb9c8; }
body.dark .designer-page:hover { background:#202c3d; }
body.dark .designer-page.active { color:#83b9ff; background:#1e3550; }
body.dark .designer-page i { background:#273140; color:#9daabc; }
body.dark .designer-page.active i { background:#243e5c; color:#9cc8ff; }
body.dark .designer-layer { background:#1b2532; }
body.dark .designer-layer:hover { border-color:#3a5879; }
body.dark .designer-layer.active { border-color:#4b9cff; background:#1e3550; }
body.dark .layer-index { color:#aab6c5; background:#273140; }
body.dark .layer-actions button { border-color:#3b4a5d; color:#b7c4d3; background:#202b39; }
body.dark .layer-actions button:hover { border-color:#5f8fca; color:#b9d8ff; background:#263d58; }
body.dark .layer-actions button.layer-delete { color:#e09a9e; }
body.dark .layer-actions button.layer-delete:hover { border-color:#8e4b50; color:#ffb8bc; background:#402126; }
body.dark .designer-layer.drop-target { border-color:#4b9cff; box-shadow:0 -2px 0 #4b9cff; }
body.dark .designer-layer.drop-target.drop-after { box-shadow:0 2px 0 #4b9cff; }
body.dark .designer-add select { border-color:#344153; background:#101721; color:var(--ink); }
body.dark .builder-row { border-color:var(--line); background:#1b2532; }
body.dark .builder-row .drag-index { background:#273140; }
body.dark .nav-inspector-row { border-color:var(--line); background:#1b2532; }
body.dark .copy-search { border-color:#344153; background:#101721; }
body.dark .designer-product-checks label { border-color:var(--line); background:#1b2532; }
body.dark .designer-product-checks span { background:#3b321d; }
body.dark .designer-style-panel,body.dark .designer-category-row { border-color:var(--line); background:#101721; }
body.dark .designer-style-panel>summary,body.dark .designer-editor-subhead strong { color:#dce5f0; }
body.dark .wechat-share-preview { background:#ebebed; color:#161616; }
body.dark .designer-category-image { border-color:#344153; background:#151c26; }
body.dark .recommend-toggle { border-color:#3d4858; background:#1b2532; color:#bdc8d6; }
body.dark .recommend-toggle.active { border-color:#96751e; background:#493a18; color:#f2ca62; }
body.dark .feedback-actions select { border-color:#344153; background:#101721; color:var(--ink); }

/* Keep the full designer canvas dark and scrollable when dark mode is enabled. */
html,body { min-height:100%; }
body.dark .shell,
body.dark .main,
body.dark .view-root,
body.dark .designer-shell { min-height:100vh; background:var(--canvas); }
body.dark .designer-shell { min-height:calc(100vh - 76px); padding-bottom:48px; overflow:visible; }
body.dark .designer-grid { min-height:calc(100vh - 168px); background:#0e151f; overflow:visible; }
body.dark .designer-stage { min-height:calc(100vh - 168px); }

@media (max-width:720px) {
  body.dark .designer-shell { min-height:100vh; }
  body.dark .designer-grid,
  body.dark .designer-stage { min-height:0; }
}
.order-detail-head small{display:block;margin-top:4px;color:#8d949f;font-size:11px;font-weight:400}
.danger-text{color:#c43d49!important}
/* 随心配管理 */
.combo-management { padding: 26px 28px 32px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); box-shadow: 0 10px 30px rgba(20,31,48,.05); }
.combo-management-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.combo-management-head h3 { margin:4px 0 7px; font-size:22px; }
.combo-management-head p { margin:0; }
.combo-management-actions { display:flex; align-items:center; gap:9px; flex-shrink:0; }
.section-eyebrow { color:#bd8a06; font-size:10px; font-weight:800; letter-spacing:.12em; }
.combo-setting-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1.25fr; gap:14px; margin:24px 0; padding:17px; border:1px solid var(--line); border-radius:8px; background:var(--canvas); }
.combo-setting-grid label>span,.combo-extra-input>span { display:block; margin-bottom:7px; color:var(--muted); font-size:11px; font-weight:700; }
.combo-setting-grid input { width:100%; box-sizing:border-box; padding:10px 11px; border:1px solid var(--line); border-radius:6px; background:var(--surface); color:var(--ink); }
.combo-offer-admin { display:grid; gap:12px; margin:0 0 24px; padding:16px 17px; border:1px solid var(--line); border-radius:8px; background:var(--canvas); }.combo-offer-admin>div:first-child { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }.combo-offer-admin>div:first-child span { color:var(--muted); font-size:11px; }.combo-offer-admin-row { display:grid; grid-template-columns:150px minmax(0,1fr) 150px minmax(180px,1.3fr) 90px; align-items:end; gap:12px; padding:12px; border:1px solid var(--line); border-radius:7px; background:var(--surface); }.combo-offer-admin-row>strong { color:#a77908; font-size:12px; }.combo-offer-admin-row label { display:grid; gap:5px; color:var(--muted); font-size:10px; font-weight:700; }.combo-offer-admin-row input:not([type=checkbox]) { width:100%; box-sizing:border-box; padding:8px 9px; border:1px solid var(--line); border-radius:5px; background:var(--surface); color:var(--ink); }.combo-offer-admin-row .switch-field { display:flex; align-items:center; gap:6px; min-height:31px; }.combo-offer-admin-row .switch-field input { width:auto; }.combo-offer-rule-note { align-self:center; color:var(--muted); font-size:11px; line-height:1.5; }
.combo-offer-accordion { overflow:hidden; border:1px solid var(--line); border-radius:8px; background:var(--surface); }
.combo-offer-accordion + .combo-offer-accordion { margin-top:9px; }
.combo-offer-accordion summary { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 15px; cursor:pointer; list-style:none; }
.combo-offer-accordion summary::-webkit-details-marker { display:none; }
.combo-offer-accordion summary::before { content:'+'; width:20px; height:20px; display:grid; place-items:center; flex:0 0 20px; border:1px solid var(--line); border-radius:50%; color:var(--muted); font-size:15px; line-height:1; }
.combo-offer-accordion[open] summary::before { content:'−'; color:#a77908; border-color:#d8b348; }
.combo-offer-accordion summary > span { display:grid; flex:1; gap:4px; }
.combo-offer-accordion summary strong { font-size:13px; }
.combo-offer-accordion summary small { color:var(--muted); font-size:10px; font-weight:400; }
.combo-offer-accordion summary > b { color:#a77908; font-size:11px; font-weight:700; white-space:nowrap; }
.combo-offer-accordion .combo-offer-admin-row { margin:0 12px 12px; border-radius:6px; }
.combo-offer-products { display:flex; flex-wrap:wrap; align-items:center; gap:7px; padding:0 15px 15px; border-top:1px solid var(--line); }
.combo-offer-products-label { width:100%; padding-top:11px; color:var(--muted); font-size:10px; font-weight:700; }
.combo-offer-product-chip { padding:5px 9px; border:1px solid #ead9a1; border-radius:999px; background:#fffaf0; color:#72580f; font-size:10px; }
.combo-offer-empty { padding:5px 0; color:var(--muted); font-size:10px; }
.money-input,.unit-input { display:flex; align-items:center; overflow:hidden; border:1px solid var(--line); border-radius:6px; background:var(--surface); }
.money-input b,.unit-input b { padding:0 10px; color:var(--muted); font-size:12px; }
.money-input input,.unit-input input { border:0; border-radius:0; }
.combo-setting-stat { display:flex; flex-direction:column; justify-content:center; padding:0 12px; border-left:1px solid var(--line); }
.combo-setting-stat span,.combo-setting-stat small { color:var(--muted); font-size:11px; }
.combo-setting-stat strong { margin:3px 0; font-size:20px; }
.combo-setting-stat strong b { color:#b87d00; }
.combo-catalog-toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-bottom:13px; border-bottom:1px solid var(--line); }
.combo-catalog-toolbar strong,.combo-catalog-toolbar span { display:block; }
.combo-catalog-toolbar span { margin-top:4px; color:var(--muted); font-size:11px; }
.combo-catalog-toolbar input { width:260px; padding:9px 11px; border:1px solid var(--line); border-radius:6px; background:var(--surface); color:var(--ink); }
.combo-product-list { display:grid; gap:9px; padding-top:12px; }
.combo-product-row { display:grid; grid-template-columns:58px minmax(0,1fr) minmax(360px,1.5fr); align-items:center; gap:13px; min-height:83px; padding:11px 13px; border:1px solid var(--line); border-radius:8px; background:var(--surface); transition:.15s; }
.combo-product-row.selected { border-color:#e1b83d; background:#fffaf0; box-shadow:0 4px 15px rgba(168,121,0,.08); }
.combo-row-switch { display:flex; justify-content:center; cursor:pointer; }
.combo-row-switch input { position:absolute; opacity:0; pointer-events:none; }
.combo-row-switch i { position:relative; width:35px; height:20px; border-radius:11px; background:#d6dbe1; transition:.15s; }
.combo-row-switch i:after { content:""; position:absolute; top:2px; left:2px; width:16px; height:16px; border-radius:50%; background:#fff; box-shadow:0 1px 4px rgba(0,0,0,.2); transition:.15s; }
.combo-row-switch input:checked+i { background:#d1a014; }.combo-row-switch input:checked+i:after { transform:translateX(15px); }
.combo-row-image { width:58px; height:58px; display:grid; place-items:center; overflow:hidden; border-radius:7px; background:#fff3cf; color:#b28108; font-size:28px; }
.combo-row-image img { width:100%; height:100%; object-fit:cover; }
.combo-row-copy { min-width:0; }.combo-row-copy strong,.combo-row-copy small,.combo-row-copy p { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.combo-row-copy strong { font-size:13px; }.combo-row-copy small { margin-top:4px; color:var(--muted); font-size:10px; }.combo-row-copy p { margin:5px 0 0; color:var(--muted); font-size:11px; }
.combo-offer-choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; min-width:0; }
.combo-offer-choices-head { grid-column:1/-1; display:flex; align-items:baseline; justify-content:space-between; gap:10px; padding:0 2px 1px; }
.combo-offer-choices-head strong { color:var(--ink); font-size:11px; }
.combo-offer-choices-head span { color:var(--muted); font-size:9px; }
.combo-offer-choice { display:grid; gap:7px; padding:8px; border:1px solid var(--line); border-radius:6px; background:var(--canvas); }
.combo-offer-choice.selected { border-color:#e1b83d; background:#fffaf0; }
.combo-offer-choice>label:first-child { display:flex; align-items:center; gap:6px; color:var(--ink); font-size:10px; font-weight:700; cursor:pointer; }
.combo-offer-choice>label:first-child input { accent-color:#d1a014; }
.combo-offer-extra { display:grid; gap:4px; color:var(--muted); font-size:9px; }
.combo-offer-extra>div { display:flex; align-items:center; overflow:hidden; border:1px solid var(--line); border-radius:5px; background:var(--surface); }
.combo-offer-extra b { padding:0 6px; color:#ad7b00; font-size:10px; }.combo-offer-extra input { width:100%; min-width:0; padding:6px; border:0; background:transparent; color:var(--ink); }.combo-offer-extra input:disabled { opacity:.45; }
.combo-extra-input { justify-self:stretch; }.combo-extra-input>div { display:flex; align-items:center; overflow:hidden; border:1px solid var(--line); border-radius:5px; background:var(--surface); }.combo-extra-input b { padding:0 7px; color:#ad7b00; font-size:11px; }.combo-extra-input input { width:100%; min-width:0; padding:8px 7px; border:0; background:transparent; color:var(--ink); }.combo-extra-input input:disabled { opacity:.45; }.combo-extra-input small { display:block; margin-top:4px; color:var(--muted); font-size:9px; }
.combo-empty-admin { padding:45px; border:1px dashed var(--line); color:var(--muted); text-align:center; }
.combo-table-state { display:inline-flex; padding:5px 8px; border:1px solid var(--line); border-radius:4px; color:var(--muted); background:var(--canvas); font:inherit; font-size:10px; white-space:nowrap; cursor:pointer; }.combo-table-state:hover { border-color:#d7b24a; color:#8b6200; }.combo-table-state.active { border-color:#eed783; color:#8b6200; background:#fff1c2; }
.product-library-tabs { flex-wrap:wrap; }
.product-status-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.combo-editor-setting { display:grid; gap:8px; min-width:0; padding:0; }
.combo-editor-setting.full { grid-column:1/-1; }
.combo-editor-heading { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.combo-editor-heading strong { font-size:12px; }
.combo-editor-heading small { color:var(--muted); font-size:10px; font-weight:400; }
.combo-offer-editor-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.combo-offer-editor-card { display:grid; gap:10px; padding:12px; border:1px solid var(--line); border-radius:8px; background:var(--canvas); transition:.15s; }
.combo-offer-editor-card.selected { border-color:#e1b83d; background:#fffaf0; box-shadow:0 4px 14px rgba(168,121,0,.08); }
.combo-offer-editor-check { display:flex; align-items:flex-start; gap:9px; cursor:pointer; }
.combo-offer-editor-check input { margin-top:2px; accent-color:#d1a014; }
.combo-offer-editor-check span { display:grid; gap:3px; min-width:0; }
.combo-offer-editor-check strong { font-size:12px; }
.combo-offer-editor-check small { color:var(--muted); font-size:10px; line-height:1.4; }
.combo-editor-setting .editor-switch { min-height:52px; }
.combo-extra-field { display:block; }
.combo-extra-field .money-input { margin-top:7px; }
.product-editor-dialog .combo-extra-field .money-input input { margin-top:0; border:0; box-shadow:none; }
body.dark .combo-management { background:var(--surface); box-shadow:none; }
body.dark .combo-setting-grid,.dark .combo-product-row { background:#151c26; border-color:var(--line); }
body.dark .combo-product-row.selected { border-color:#806516; background:#2a2518; }
body.dark .combo-row-image { background:#3b321d; }
body.dark .combo-offer-choice,body.dark .combo-offer-editor-card { background:#151c26; border-color:var(--line); }
body.dark .combo-offer-choice.selected,body.dark .combo-offer-editor-card.selected { background:#2a2518; border-color:#806516; }
body.dark .combo-table-state.active { color:#e4c466; background:#3b321d; }
body.dark .combo-offer-accordion { background:#151c26; border-color:var(--line); }
body.dark .combo-offer-product-chip { border-color:#645323; background:#2a2518; color:#e4c466; }
@media (max-width:900px) { .combo-setting-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.combo-setting-stat { border-left:0; border-top:1px solid var(--line); padding:12px 0 0; }.combo-product-row { grid-template-columns:54px minmax(0,1fr); }.combo-offer-choices { grid-column:1/-1; }.combo-catalog-toolbar { align-items:flex-start; flex-direction:column; }.combo-catalog-toolbar input { width:100%; box-sizing:border-box; } }
@media (max-width:720px) { .combo-management { padding:18px 15px 22px; }.combo-management-head { flex-direction:column; }.combo-management-actions { width:100%; }.combo-management-actions button { flex:1; }.combo-setting-grid { grid-template-columns:1fr; }.combo-offer-admin>div:first-child { display:block; }.combo-offer-admin-row { grid-template-columns:1fr 1fr; }.combo-offer-admin-row>strong,.combo-offer-rule-note { grid-column:1/-1; }.combo-product-row { grid-template-columns:48px minmax(0,1fr); gap:9px; padding:9px; }.combo-row-image { width:48px; height:48px; }.combo-offer-choices { grid-template-columns:1fr; }.combo-offer-editor-grid { grid-template-columns:1fr; }.combo-editor-heading { display:block; }.product-status-grid { grid-template-columns:1fr; }.combo-editor-setting.full { grid-column:auto; } }

/* Product specification editor */
.specification-section .spec-root>.form-section-head { align-items:center; margin-bottom:16px; padding:0 2px; }
.specification-section .spec-root>.form-section-head>div strong,
.specification-section .spec-root>.form-section-head>div small { display:block; }
.specification-section .spec-root>.form-section-head>div small { margin-top:4px; color:var(--muted); font-size:10px; font-weight:400; }
.specification-section .spec-group-editor { margin-top:14px; padding:0; overflow:hidden; border:1px solid #d9e1e9; border-radius:8px; background:#fff; }
.specification-section .spec-group-head { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:13px 16px; border-bottom:1px solid #e4e9ef; background:#f7f9fb; }
.spec-group-title { display:flex; align-items:center; gap:10px; }
.spec-group-title>span { width:29px; height:29px; flex:0 0 29px; display:grid; place-items:center; border-radius:5px; background:#e7f2ff; color:#126ec8; font-size:10px; font-weight:800; }
.spec-group-title strong,.spec-group-title small { display:block; }
.spec-group-title strong { font-size:13px; }
.spec-group-title small { margin-top:2px; color:var(--muted); font-size:9px; font-weight:400; }
.spec-group-settings { display:grid; grid-template-columns:minmax(220px,2fr) 130px minmax(190px,1fr); align-items:end; gap:12px; padding:15px 16px; }
.spec-field { min-width:0; }
.spec-field>span { display:flex; align-items:center; gap:5px; margin-bottom:7px; color:#4d5661; font-size:10px; font-weight:700; }
.spec-field>span small { color:#8a929c; font-size:9px; font-weight:400; }
.spec-field>input { width:100%; min-width:0; height:38px; margin:0; padding:8px 10px; box-sizing:border-box; border:1px solid #d9e1e9; border-radius:5px; background:var(--surface); color:var(--ink); }
.spec-field>input:focus,.spec-money-input:focus-within { border-color:#438ad2; box-shadow:0 0 0 3px rgba(38,123,209,.1); outline:0; }
.spec-required-setting { min-height:38px; display:flex; align-items:center; gap:10px; padding:7px 11px; box-sizing:border-box; border:1px solid #d9e1e9; border-radius:5px; background:#fafbfc; cursor:pointer; }
.spec-required-setting input { width:auto; margin:0; }
.spec-required-setting strong,.spec-required-setting small { display:block; }
.spec-required-setting strong { font-size:10px; }
.spec-required-setting small { margin-top:2px; color:var(--muted); font-size:9px; font-weight:400; }
.spec-options-head { display:flex; align-items:center; justify-content:space-between; gap:14px; margin:0 16px; padding:13px 0 10px; border-top:1px solid #e9edf2; }
.spec-options-head strong,.spec-options-head small { display:block; }
.spec-options-head strong { font-size:12px; }
.spec-options-head small { margin-top:3px; color:var(--muted); font-size:9px; font-weight:400; }
.spec-options-head .add-spec-option { margin:0; }
.specification-section .spec-options-editor { display:grid; gap:10px; margin:0; padding:0 16px 16px; }
.specification-section .spec-option-editor { display:block; min-width:0; padding:0; overflow:hidden; border:1px solid #e0e6ed; border-radius:7px; background:#fcfcfd; }
.spec-option-toolbar { min-height:39px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:7px 11px; box-sizing:border-box; border-bottom:1px solid #e8ecf1; background:#fff; }
.spec-option-toolbar>strong { color:#37414d; font-size:11px; }
.spec-option-toolbar>div { display:flex; align-items:center; gap:10px; }
.spec-option-switch { color:#4c5662; font-size:10px; }
.spec-option-fields { display:grid; grid-template-columns:minmax(150px,1.5fr) repeat(2,minmax(78px,.75fr)) repeat(2,minmax(100px,1fr)) repeat(2,minmax(72px,.7fr)); gap:11px; padding:13px; }
.spec-money-input { height:38px; display:flex; align-items:center; overflow:hidden; box-sizing:border-box; border:1px solid #d9e1e9; border-radius:5px; background:#fff; }
.spec-money-input>b { padding:0 8px; color:#89919b; font-size:11px; font-weight:600; }
.spec-money-input.sale>b { color:#b57900; }
.product-editor-dialog .spec-money-input>input { width:100%; min-width:0; height:36px; margin:0; padding:8px 8px 8px 0; border:0; border-radius:0; background:transparent; box-shadow:none; color:var(--ink); }
.product-editor-dialog .spec-money-input>input:focus { border:0; box-shadow:none; outline:0; }
body.dark .specification-section .spec-group-editor,
body.dark .spec-option-toolbar { border-color:#344153; background:#151c26; }
body.dark .specification-section .spec-group-head,
body.dark .spec-required-setting,
body.dark .specification-section .spec-option-editor { border-color:#344153; background:#121923; }
body.dark .spec-options-head { border-color:#344153; }
body.dark .spec-field>span,
body.dark .spec-option-toolbar>strong,
body.dark .spec-option-switch { color:#c5cfdb; }
body.dark .spec-field>input,
body.dark .spec-money-input { border-color:#344153; background:#151c26; color:var(--ink); }

/* The phone preview should show the customer-facing page, not editor guides. */
.pv-component { margin:0; padding:0; border:0; border-radius:0; }
.pv-component:hover,
.pv-component.active { border:0; box-shadow:none; }
.pv-component.active::before,
.pv-block-resize { display:none; }
/* Keep the editor homepage preview structurally aligned with pages/index/index.wxml. */
.pv-combo-list { display:grid; gap:7px; margin:3px 0; }
.pv-combo-card { display:flex; min-height:96px; overflow:hidden; border:0; border-radius:8px; background:#fff; box-shadow:0 4px 12px rgba(60,42,20,.08); }
.pv-combo-visual { position:relative; flex:0 0 42%; min-width:0; overflow:hidden; background:#fff; }
.pv-combo-art { position:absolute; inset:0; display:grid; grid-template-columns:repeat(2,1fr); gap:3px; padding:6px; background:#fff; }
.pv-combo-art-image { display:block; padding:0; }
.pv-combo-art-image .pv-combo-preview-image { width:100%; height:100%; display:block; object-fit:contain; object-position:center; }
.pv-combo-thumb { display:grid; min-width:0; min-height:0; place-items:center; overflow:hidden; border-radius:4px; background:#f3f6f8; color:#ad7c23; font-size:19px; }
.pv-combo-thumb:nth-child(1) { background:#fff0ee; }
.pv-combo-thumb:nth-child(2) { background:#f0edff; }
.pv-combo-thumb:nth-child(3) { background:#edf7ef; }
.pv-combo-thumb:nth-child(4) { background:#fff5d9; }
.pv-combo-thumb img { width:100%; height:100%; object-fit:contain; }
.pv-combo-badge { position:absolute; left:6px; bottom:5px; padding:2px 5px; border-radius:8px; color:#fff; background:rgba(30,28,24,.72); font-size:6px; font-weight:700; }
.pv-combo-copy { min-width:0; flex:1; display:flex; flex-direction:column; justify-content:center; padding:8px 8px 8px 7px; }
.pv-combo-copy>strong,.pv-combo-copy>small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pv-combo-copy>strong { color:#29241e; font-size:9px; }
.pv-combo-copy>small { margin-top:3px; color:#7e766d; font-size:6px; }
.pv-combo-rules { display:flex; flex-wrap:wrap; gap:3px; margin-top:5px; }
.pv-combo-rules span { padding:2px 4px; border-radius:3px; font-size:6px; line-height:1.2; }
.pv-rule-fruit { color:#bf5f84; background:#fff1f6; }
.pv-rule-mooncake { color:#377ca2; background:#eaf6fc; }
.pv-combo-footer { display:flex; align-items:center; justify-content:space-between; gap:4px; margin-top:6px; }
.pv-combo-footer>b { color:#bd7620; font-size:11px; }
.pv-combo-footer>em { padding:3px 5px; border-radius:9px; color:#2b2415; background:#ffbd0b; font-size:6px; font-style:normal; font-weight:800; white-space:nowrap; }
.pv-combo-footer>em i { margin-left:2px; font-size:9px; font-style:normal; }
.pv-category-grid { display:grid; gap:5px; }
.pv-category-grid>div { min-width:0; padding:2px; border:0; background:transparent; text-align:center; }
.pv-category-grid .pv-category-icon { height:37px; }
.pv-category-grid>div small { color:#29241e; font-size:7px; }
.pv-category-grid>div em { color:#9299a4; font-size:6px; }
@media (max-width:1100px) { .spec-option-fields { grid-template-columns:repeat(4,minmax(0,1fr)); }.spec-field-label { grid-column:span 2; } }
@media (max-width:720px) { .specification-section .spec-root>.form-section-head,.specification-section .spec-group-head,.spec-options-head { align-items:flex-start; }.specification-section .spec-root>.form-section-head { gap:10px; }.spec-group-settings { grid-template-columns:1fr; }.spec-option-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }.spec-field-label { grid-column:1/-1; }.spec-option-toolbar { align-items:flex-start; }.spec-option-toolbar>div { align-items:flex-end; flex-direction:column; gap:4px; } }

/* Designer navigation and interactive preview. */
.designer-primary-pages { padding-bottom:2px; }
.designer-more-pages { margin-top:4px; border-top:1px solid #edf0f3; border-radius:0 0 6px 6px; }
.designer-more-pages>span { color:#7f8996; letter-spacing:0; }
.designer-more-pages.open>span { color:#1677df; }
.designer-other-pages { max-height:0; overflow:hidden; padding-top:0; opacity:0; transition:max-height .22s ease,opacity .18s ease,padding .22s ease; }
.designer-other-pages.open { max-height:540px; padding-top:10px; opacity:1; }
.preview-mode-toggle { display:flex; align-items:center; gap:2px; margin-left:auto; padding:3px; border:1px solid #dce3eb; border-radius:7px; background:#fff; }
.preview-mode-toggle button { min-width:62px; height:26px; padding:0 9px; border:0; border-radius:5px; color:#7b8490; background:transparent; font-size:9px; font-weight:700; }
.preview-mode-toggle button:hover { color:#176bc9; background:#f2f7fd; }
.preview-mode-toggle button.active { color:#fff; background:#1677df; box-shadow:0 2px 6px rgba(22,119,223,.22); }
.pv-interaction-edit .pv-component { margin:0 -4px; padding:4px; border:1px solid transparent; border-radius:6px; cursor:pointer; }
.pv-interaction-edit .pv-component:hover { border-color:#86b5eb; }
.pv-interaction-edit .pv-component.active { border-color:#1677df; box-shadow:0 0 0 2px rgba(22,119,223,.1); }
.pv-interaction-edit .pv-component.active::before { content:"当前区块"; position:absolute; z-index:8; top:-8px; right:5px; padding:2px 5px; border-radius:3px; color:#fff; background:#1677df; font-size:6px; }
.pv-interaction-edit .pv-block-resize { display:block; }
.pv-interaction-browse .pv-block-resize,.pv-interaction-browse .pv-logo-resize { display:none; }
.pv-interaction-browse .pv-component { cursor:default; }
.pv-interaction-browse [data-preview-route],.pv-interaction-browse [data-preview-back],.pv-interaction-browse [data-preview-message] { cursor:pointer; }
.pv-interaction-browse [data-preview-route]:hover,.pv-interaction-browse [data-preview-back]:hover,.pv-interaction-browse [data-preview-message]:hover { filter:brightness(.97); }
.pv-page button { font:inherit; letter-spacing:0; }
.pv-section button { padding:0; border:0; color:#9299a4; background:transparent; font-size:7px; }
.preview-hero button { display:inline-block; margin-top:13px; padding:5px 8px; border:0; border-radius:12px; color:#222; font-size:7px; font-weight:700; }
.pv-route-row { width:100%; border:1px solid #edf0f3; color:inherit; text-align:left; }
.pv-topbar>button { width:24px; padding:0; border:0; color:#222; background:transparent; font-size:24px; font-weight:400; }
.pv-menu-tabs button { flex:0 0 auto; padding:5px 8px; border:0; border-bottom:2px solid transparent; color:#777; background:transparent; font-size:8px; }
.pv-menu-tabs button.on { border-color:var(--accent); color:#222; font-weight:800; }
.pv-bottom-nav button { min-width:0; flex:1; padding:5px 2px 2px; border:0; color:#a0a6af; background:transparent; font-size:6px; text-align:center; }
.pv-bottom-nav button b,.pv-bottom-nav button span { display:block; }
.pv-bottom-nav button b { font-size:13px; }
.pv-bottom-nav button.active { color:#191d22; font-weight:800; }
.designer-share-canvas { background:#eef0f3 !important; }
.share-preview-stage { width:100%; height:100%; min-height:560px; display:flex; align-items:center; justify-content:center; padding:24px; box-sizing:border-box; }
.share-preview-stage .wechat-share-preview { width:280px; max-width:100%; box-sizing:border-box; box-shadow:0 12px 28px rgba(31,42,55,.12); }
.share-preview-stage .wechat-share-title strong { white-space:nowrap; }
.pv-shortcuts button { width:100%; display:flex; align-items:center; justify-content:space-between; padding:10px; border:0; border-bottom:1px solid #edf0f3; color:#222; background:#fff; font-size:9px; text-align:left; }
.pv-shortcuts button:last-child { border-bottom:0; }
.pv-empty { width:100%; border:0; color:inherit; background:transparent; }
.pv-empty em { display:inline-block; margin-top:9px; padding:5px 11px; border-radius:12px; color:#222; background:#ffbd0b; font-size:7px; font-style:normal; font-weight:700; }

/* Keep category and product artwork centered, uncropped and on a clean white base. */
.pv-category-grid { align-items:start; }
.pv-category-grid>button,.pv-category-grid>div { min-width:0; min-height:78px; display:grid; grid-template-rows:42px minmax(18px,auto) minmax(0,auto); align-content:start; justify-items:stretch; padding:3px 2px; border:0; color:inherit; background:#fff; text-align:center; }
.pv-category-grid .pv-category-icon { width:100%; height:42px; display:grid; place-items:center; overflow:hidden; background:#fff; }
.pv-category-grid .pv-category-icon img { width:100%; height:100%; display:block; object-fit:contain; object-position:center; }
.pv-category-grid>button small,.pv-category-grid>div small { min-height:16px; display:grid; place-items:center; margin-top:3px; overflow:hidden; line-height:1.25; white-space:normal; }
.pv-category-grid>button em,.pv-category-grid>div em { max-height:18px; margin-top:1px; overflow:hidden; line-height:1.3; white-space:normal; }
.pv-grid.products>button,.pv-grid.products>div { min-width:0; min-height:70px; padding:5px 4px; border:0; border-radius:5px; color:inherit; background:#fff; text-align:center; }
.pv-product-image { width:100%; height:45px; display:grid; place-items:center; overflow:hidden; background:#fff; font-size:23px; }
.pv-grid.products img,.pv-product-image img { width:100%; height:100%; display:block; object-fit:contain; object-position:center; }
.pv-product-row { width:100%; border:1px solid #edf0f3; color:inherit; background:#fff; text-align:left; }
.pv-product-row>span,.pv-product-row img,.pv-gallery,.pv-choice-grid>button>span { background:#fff; }
.pv-product-row img,.pv-gallery img,.pv-choice-grid img { object-fit:contain; object-position:center; }
.pv-choice-grid>button { min-width:0; padding:8px 3px; border:1px solid #edf0f3; border-radius:5px; color:inherit; background:#fff; font-size:25px; text-align:center; }
.pv-choice-grid>button>span { width:100%; height:48px; display:grid; place-items:center; overflow:hidden; }
.pv-choice-grid>button>span img { width:100%; height:100%; display:block; }

/* Product-management thumbnails follow the same cutout-first presentation. */
.thumb,.combo-row-image,.product-media-tile,.product-cover-preview { background:#fff; }
.thumb img,.combo-row-image img,.product-media-tile img,.product-cover-preview img { object-fit:contain; object-position:center; }
body.dark .thumb,body.dark .combo-row-image,body.dark .product-media-tile { background:#fff; }
body.dark .designer-other-pages { border-color:var(--line); }
body.dark .preview-mode-toggle { border-color:#344153; background:#101721; }
body.dark .preview-mode-toggle button { color:#9aa7b8; }
body.dark .preview-mode-toggle button.active { color:#fff; background:#2c7fd7; }
.after-sales-address,.after-sales-item-list,.after-sales-detail-list { display:grid; gap:8px; padding:12px; border:1px solid var(--line); border-radius:7px; background:var(--canvas); }
.after-sales-address>span,.after-sales-item-list>span,.after-sales-detail-list>span { color:var(--muted); font-size:10px; font-weight:800; }
.after-sales-address small { color:var(--muted); line-height:1.5; }
.after-sales-item-select { display:grid; grid-template-columns:20px minmax(0,1fr) 70px; align-items:center; gap:9px; padding:9px; border:1px solid var(--line); border-radius:6px; background:var(--surface); }
.after-sales-item-select>input:first-child { width:auto; margin:0; }
.after-sales-item-select>input:last-child { width:70px; margin:0; }
.after-sales-item-select span strong,.after-sales-item-select span small { display:block; }
.after-sales-item-select span small { margin-top:3px; color:var(--muted); }
.after-sales-ticket-summary { display:grid; gap:9px; padding:13px; border:1px solid var(--line); border-radius:7px; background:var(--canvas); }
.after-sales-ticket-summary>div { display:flex; justify-content:space-between; gap:20px; }
.after-sales-ticket-summary span { color:var(--muted); }
.after-sales-ticket-summary strong { max-width:70%; text-align:right; }
.after-sales-detail-item { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:9px; border:1px solid var(--line); border-radius:6px; background:var(--surface); }
.after-sales-detail-item span strong,.after-sales-detail-item span small { display:block; }
.after-sales-detail-item span small { margin-top:3px; color:var(--muted); }
.nav-icon-preview { width:34px; height:34px; display:grid; place-items:center; overflow:hidden; border-radius:5px; background:#f3f6f9; color:#1677df; font-size:18px; line-height:1; }.nav-icon-preview img { width:100%; height:100%; object-fit:contain; }.nav-icon-input { display:grid; grid-template-columns:36px minmax(0,1fr); gap:5px; align-items:center; min-width:0; }.nav-icon-input>[data-nav-icon] { min-width:0; }.nav-image-upload,.nav-image-clear { grid-column:1/-1; min-height:25px; padding:5px 6px; border:1px dashed #b8c8d9; border-radius:4px; color:#176bc9; background:#f4f9ff; font-size:9px; font-weight:700; text-align:center; cursor:pointer; }.nav-image-upload input { display:none; }.nav-image-clear { border-style:solid; border-color:#d9e0e8; color:#7a8490; background:#fff; }.pv-nav-icon-image { display:block; width:24px; height:24px; object-fit:contain; margin:0 auto 3px; }
.nav-inspector-row { grid-template-columns:minmax(122px,1.2fr) minmax(0,1fr) 34px 42px; }
.nav-editor-preview { width:28px; height:28px; display:grid; place-items:center; overflow:hidden; background:#f3f6f9; border-radius:4px; }.nav-editor-preview img { width:100%; height:100%; object-fit:contain; }.nav-editor-upload { cursor:pointer; color:#176bc9; font-size:10px; }
.dark .nav-icon-preview { background:#202b39; color:#8fc2ff; }.dark .nav-image-upload { border-color:#446486; background:#122238; color:#8fc2ff; }.dark .nav-image-clear { border-color:#344153; background:#151c26; color:#aeb8c7; }

/* Keep resize affordances available without painting every preview block blue. */
.pv-interaction-edit .pv-block-resize { opacity:0; pointer-events:none; transition:opacity .15s ease; }
.pv-interaction-edit .pv-component:hover > .pv-block-resize,
.pv-interaction-edit .pv-component.active > .pv-block-resize { opacity:1; pointer-events:auto; }

/* Match the real-device content viewport: 400px x 867px inside the shell. */
.phone-frame { width:422px; height:889px; }
@media (max-width:1250px) { .phone-frame { width:422px; height:889px; } }
@media (max-width:720px) { .phone-frame { width:320px; height:650px; } }
.phone-capsule { width:39px; height:15px; display:flex; align-items:center; justify-content:center; gap:4px; border-radius:9px; background:#b8b9bb; color:#fff; }
.phone-capsule i,.phone-capsule b { display:block; width:3px; height:3px; border-radius:50%; background:#fff; }
.phone-capsule b { width:6px; height:6px; border:1px solid #fff; background:transparent; }

/* Keep the preview canvas at the same 30rpx (about 15px) page gutter. */
.builder-preview-body { padding:4px 15px 60px; }
.pv-page { padding:0 0 92px; }
.pv-combo-card { width:100%; min-height:118px; padding:0; border:0; text-align:left; appearance:none; -webkit-appearance:none; }
#designer-preview .pv-component[data-preview-block="city-1"] .pv-route-row { margin-bottom:30px; }
.pv-combo-list { margin:10px 0 0; }
.pv-component[data-preview-block="combo-offers-mooncake"] { margin-bottom:17px; }
.pv-combo-visual { flex-basis:43%; }
.pv-combo-copy>strong { font-size:13px; }
.pv-combo-copy>small { font-size:8px; }
.pv-combo-rules { gap:4px; margin-top:6px; }
.pv-combo-rules span { padding:3px 5px; font-size:7px; }
.pv-combo-footer { margin-top:7px; }
.pv-combo-footer>b { font-size:14px; }
.pv-combo-footer>em { padding:4px 7px; font-size:7px; }
.pv-category-grid>button,.pv-category-grid>div { min-height:96px; grid-template-rows:58px minmax(18px,auto) minmax(0,auto); }
.pv-category-grid .pv-category-icon { height:58px; }
.pv-bottom-nav { height:92px; padding-bottom:26px; box-sizing:border-box; }

/* The menu preview mirrors the mini-program's fixed category rail and product pane. */
.pv-page-menu { position:relative; min-height:100%; overflow:hidden; background:#fff; }
.builder-preview-body.is-menu-preview { padding-right:0; padding-left:0; }
.pv-page-menu .pv-menu-header-block { position:absolute; z-index:3; top:0; right:0; left:0; height:74px; background:#fff; }
.pv-menu-head-preview { position:absolute; top:18px; left:18px; display:grid; gap:2px; }
.pv-menu-head-preview strong { color:#1f2328; font-size:16px; line-height:20px; }
.pv-menu-head-preview small { color:#8b929b; font-size:9px; }
.pv-menu-price { position:absolute; top:30px; right:54px; color:#d92833; font-size:14px; }
.pv-menu-plus { position:absolute; top:26px; right:12px; width:24px; height:24px; border-radius:50%; background:#ffbd0b; color:#222; font-size:18px; font-style:normal; font-weight:700; line-height:24px; text-align:center; }
.pv-page-menu .pv-menu-categories-block { position:absolute; z-index:2; top:74px; bottom:92px; left:0; width:100px; overflow:hidden; background:#fff; }
.pv-menu-categories { height:100%; overflow:hidden; padding:0; background:#fff; }
.pv-menu-categories button { position:relative; width:100%; min-height:51px; display:grid; place-items:center; padding:5px 7px; border:0; color:#454a50; background:#fff; font-size:10px; line-height:1.3; text-align:center; white-space:normal; }
.pv-menu-categories button.active { color:#202328; background:#fff; font-weight:800; }
.pv-menu-categories button.active::before { content:""; position:absolute; top:5px; bottom:5px; left:0; width:3px; background:#ffbd0b; }
.pv-page-menu .pv-menu-products-block { position:absolute; z-index:2; top:74px; right:0; bottom:92px; left:100px; overflow:auto; padding:0 12px 26px 7px; background:#fff; scrollbar-width:none; }
.pv-page-menu .pv-menu-products-block::-webkit-scrollbar { display:none; }
.pv-menu-products { min-height:100%; background:#fff; }
.pv-menu-category-heading { min-height:34px; display:flex; align-items:center; gap:7px; border-top:1px solid #e7e9ec; border-bottom:1px solid #e7e9ec; background:#fff; }
.pv-menu-category-heading i { width:4px; height:18px; flex:0 0 4px; border-radius:2px; background:#ffbd0b; }
.pv-menu-category-heading strong { overflow:hidden; color:#31353a; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.pv-page-menu .pv-product-row { min-height:76px; margin:0; padding:8px 3px; border:0; border-bottom:1px solid #edf0f3; border-radius:0; }
.pv-page-menu .pv-product-row>span { width:66px; height:62px; flex:0 0 66px; border-radius:0; background:#fff; }
.pv-page-menu .pv-product-row img { object-fit:contain; object-position:center; }
.pv-page-menu .pv-product-row strong { font-size:11px; line-height:15px; }
.pv-page-menu .pv-product-row small { max-height:26px; margin:3px 0; font-size:8px; line-height:13px; white-space:normal; }
.pv-page-menu .pv-product-row b { font-size:12px; }
.pv-page-menu .pv-product-row i { width:24px; height:24px; flex:0 0 24px; line-height:23px; }

/* A cart preview represents one coherent, non-empty state. */
.pv-page-cart .pv-panel { margin-top:4px; }
.pv-page-cart .pv-summary { margin-top:6px; }

/* Profile preview follows the real mini-program grouping and spacing. */
.pv-page-profile { padding-top:12px; background:#f6f5f2; }
.pv-page-profile .pv-profile { min-height:52px; padding:0 2px; }
.pv-page-profile .pv-profile>div { width:48px; height:48px; flex:0 0 48px; background:#ffbd0b !important; color:#171717; font-size:26px; }
.pv-page-profile .pv-profile strong { font-size:16px; }
.pv-page-profile .pv-profile small { margin-top:4px; font-size:10px; }
.pv-page-profile .pv-points { min-height:84px; margin-top:17px; padding:13px; border-radius:8px; }
.pv-page-profile .pv-points small { font-size:10px; }
.pv-page-profile .pv-points strong { margin-top:2px; font-size:20px; }
.pv-points-hint { display:block; margin-top:3px; color:#d8c99f; font-size:9px; font-style:normal; }
.pv-page-profile .pv-points button { min-width:70px; padding:8px 12px; border:0; border-radius:18px; font-size:11px; font-weight:700; }
.pv-profile-shortcuts { margin-top:10px; }
.pv-profile-group { overflow:hidden; margin-top:10px; border-radius:8px; background:#fff; }
.pv-profile-group button { width:100%; min-height:46px; display:flex; align-items:center; justify-content:space-between; padding:0 12px; border:0; border-bottom:1px solid #edf0f3; color:#222; background:#fff; font-size:11px; text-align:left; }
.pv-profile-group button:last-child { border-bottom:0; }
.pv-profile-group button span { flex:1; }
.pv-profile-group button b { color:#a0a6af; font-size:15px; font-weight:400; }
