:root {
  --bg:#f5f7fb;
  --panel:#ffffff;
  --panel-soft:#f9fbff;
  --line:#dce3eb;
  --text:#1f2937;
  --muted:#7a8699;
  --primary:#1677ff;
  --accent:#ff7a1a;
  --accent-soft:#fff3e8;
  --success:#2ba471;
  --danger:#f04438;
  --warning:#ff7a1a;
  --sidebar:#ffffff;
  --sidebar-active:#e8f1ff;
  --shadow:0 8px 24px rgba(15,23,42,.05);
  --radius:8px;
  --radius-lg:12px;
  --font:"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
}
*{box-sizing:border-box} body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text)} a{text-decoration:none;color:inherit} button,input,select,textarea{font:inherit}
.field[hidden],label[hidden],div[hidden],section[hidden]{display:none !important}
.console-layout{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--sidebar);border-right:1px solid var(--line);padding:0 0 24px}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid var(--line)}.sidebar-logo{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#fff;font-weight:700}.sidebar-brand-text{display:grid;gap:2px}.sidebar-brand-text strong{font-size:16px}.sidebar-brand-text span{font-size:12px;color:var(--muted)}.sidebar-nav{display:grid;padding-top:12px}.sidebar-nav a{display:flex;align-items:center;gap:12px;padding:14px 20px;color:#334155}.sidebar-nav a.active{background:var(--sidebar-active);color:var(--primary);border-right:2px solid var(--primary)}.sidebar-nav a:hover{background:#f8fbff}
.console-main{padding:28px 28px 36px}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.page-head h1{margin:0;font-size:28px}.page-head p{margin:8px 0 0;color:var(--muted)}.page-tabs{display:flex;gap:10px;margin-top:14px}.page-tab{display:inline-flex;align-items:center;justify-content:center;height:36px;padding:0 16px;border:1px solid var(--line);border-radius:18px;background:#fff;color:#667085}.page-tab.active{background:var(--sidebar-active);border-color:#c7dcff;color:var(--primary);font-weight:600}
.filter-panel,.table-panel,.panel-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.filter-panel{padding:18px;margin-bottom:18px}.filter-grid{display:grid;grid-template-columns:220px 140px 220px 108px;gap:14px;align-items:end;justify-content:start}.completed-filter-grid{grid-template-columns:220px 160px 108px}.filter-item{display:grid;gap:8px}.filter-item span,.field span,.field-label{font-size:14px;color:#344054;font-weight:500}.field-sub-label{font-size:13px;color:var(--muted);font-weight:500}.filter-item input,.filter-item select,.field input,.field select,.field textarea{width:100%;height:40px;border:1px solid var(--line);border-radius:4px;padding:0 12px;background:#fff;outline:none}.field textarea{height:auto;min-height:120px;padding:10px 12px;resize:vertical}.filter-item input:focus,.filter-item select:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary)}.filter-button{align-self:end}.required-star{font-style:normal;color:var(--danger);margin-left:2px}
.btn{display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 18px;border:1px solid var(--line);border-radius:4px;background:#fff;color:#344054;cursor:pointer}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.secondary{background:#fff;}.btn.danger{background:#fff5f5;border-color:#fecaca;color:var(--danger)}.btn.wide{width:100%}.small-btn{height:34px;padding:0 14px}.highlight-btn{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 14px 28px rgba(255,122,26,.16)}
.table-panel{padding:0 0 18px}.table-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px}.actions{display:flex;gap:12px;flex-wrap:wrap}.table-summary{color:var(--muted);font-size:14px}.table-wrap{overflow:auto} table{width:100%;min-width:1480px;border-collapse:collapse} th,td{padding:14px 12px;border-bottom:1px solid #edf1f5;text-align:left;vertical-align:middle} thead th{background:#f8fafc;font-weight:600;color:#344054}.table-name{font-weight:600}.cell-note{max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#667085}.cell-note.no-truncate{max-width:none;white-space:normal;overflow:visible;text-overflow:clip}.table-actions{display:flex;gap:10px;flex-wrap:wrap}.text-btn{color:var(--primary);cursor:pointer}.text-btn.danger{color:var(--danger)}.text-danger{color:var(--danger)}.table-thumb{width:56px;height:56px;border-radius:8px;object-fit:cover;border:1px solid var(--line);background:#f8fafc}
.status{font-size:14px;font-weight:500}.draft{color:#667085}.pending{color:var(--warning)}.rejected{color:var(--danger)}.progress{color:var(--primary)}.approved{color:var(--success)}
.pager{display:flex;gap:8px;align-items:center;padding:18px}.pager-btn{width:36px;height:36px;border:1px solid var(--line);background:#fff;border-radius:6px;cursor:pointer}.pager-btn.active{border-color:#7aa2ff;color:var(--primary);background:#eff6ff}
.form-page-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px}.form-panel{min-width:0}.form-blocks{display:grid;gap:18px}.panel-card{padding:18px}.panel-title{font-size:18px;font-weight:600;margin-bottom:18px}.field-stack{display:grid;gap:18px}.field{display:grid;gap:8px}.field-stack .field input,.field-stack .field select,.field-stack .field textarea,.field-stack .field .upload-box,.field-stack .field .image-preview-wrap{max-width:560px}.weight-row-field{gap:10px}.weight-row{display:grid;grid-template-columns:156px 156px;gap:16px;align-items:start}.slim-field{gap:8px}.slim-input-group{grid-template-columns:minmax(0,1fr) 44px}.field-tip{font-size:12px;color:var(--muted);line-height:1.6}.form-actions-bar{display:flex;justify-content:flex-end;gap:12px}.preview{display:grid;gap:12px}.preview-row{display:flex;justify-content:space-between;gap:16px;padding-bottom:10px;border-bottom:1px solid #edf1f5}.preview-row span:first-child{color:var(--muted)}.preview-action-card{display:grid;gap:16px}.preview-actions{justify-content:flex-start}.preview-actions .highlight-btn{width:100%;height:44px}.sticky-side-stack{position:sticky;top:28px;display:grid;gap:18px}.draft-tip{padding:12px 14px;border:1px solid #dbeafe;border-radius:8px;background:#f8fbff;color:#1d4ed8;font-size:13px;line-height:1.6}
.checkbox-group{display:flex;flex-wrap:wrap;gap:10px}.check-chip{position:relative;display:inline-flex;align-items:center}.check-chip input{position:absolute;opacity:0;pointer-events:none}.check-chip span{display:inline-flex;align-items:center;justify-content:center;height:36px;padding:0 14px;border:1px solid var(--line);border-radius:18px;background:#fff;color:#344054;font-weight:400}.check-chip input:checked + span{border-color:var(--primary);background:#eef5ff;color:var(--primary)}
.check-chip.is-disabled span{background:#f8fafc;color:#98a2b3;border-color:#e5e7eb}
.inline-input-group{display:grid;grid-template-columns:minmax(0,1fr) 48px;gap:8px}.unit-badge{display:inline-flex;align-items:center;justify-content:center;height:40px;border:1px solid var(--line);border-radius:4px;background:#f8fafc;color:#475467}
.upload-box{display:block;border:1px dashed #b8c4d6;border-radius:8px;background:#fafcff;cursor:pointer}.upload-box[hidden],.image-preview-wrap[hidden]{display:none !important}.upload-box input{display:none}.upload-inner{display:grid;justify-items:center;gap:8px;padding:28px 16px;color:var(--muted);text-align:center}.upload-inner i{font-size:22px;color:var(--primary)}.upload-inner strong{color:#344054}.image-preview-wrap{display:flex;align-items:center;gap:12px}.image-preview{width:120px;height:120px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}
.detail-main{display:grid;gap:18px}.hero-card{display:grid;grid-template-columns:96px 1fr;gap:16px;align-items:center}.cover{width:96px;height:96px;border-radius:8px;object-fit:cover;border:1px solid var(--line)}.cover.zoomable{cursor:zoom-in}.muted{color:var(--muted);line-height:1.7}.timeline{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.step{padding:14px;border:1px solid var(--line);border-radius:8px;background:#fff}.step.done{background:#f0fdf4;border-color:#bbe5cd}.step.active{background:var(--accent-soft);border-color:#ffd3ad}.step.rejected{background:#fff1f2;border-color:#fda4af}.step.approved{background:#f0fdf4;border-color:#86efac}.step small{display:block;color:var(--muted);margin-bottom:6px}.step strong{display:block;margin-bottom:6px}.reject-reason{display:block;margin-top:8px;padding:8px 10px;border-radius:8px;background:#fef2f2;color:var(--danger);font-weight:600;line-height:1.5}.summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.summary-item{padding:14px;border:1px solid var(--line);border-radius:8px;background:#fff}.launch-date-chip{display:inline-flex;align-items:center;min-height:32px;padding:0 12px;border-radius:16px;background:#f8fafc;border:1px solid var(--line);color:#475467}.launch-date-chip.empty{color:#98a2b3}.launch-date-note{font-size:12px;color:var(--muted)}.disabled-btn{background:#f8fafc !important;border-color:#e5e7eb !important;color:#98a2b3 !important;cursor:not-allowed !important}.form-modal-card{width:min(420px,100%);background:#fff;border-radius:16px;padding:24px;box-shadow:0 24px 60px rgba(0,0,0,.28)}.form-modal-card h3{margin:0 0 10px;font-size:22px}.form-modal-card p{margin:0 0 18px;color:var(--muted);line-height:1.6}.modal-form-actions{display:flex;justify-content:center;gap:12px;margin-top:18px}.modal-form-actions .btn.primary{min-width:108px}
.summary-edit-item{display:grid;gap:8px;background:linear-gradient(180deg,#fcfdff 0%,#f7faff 100%)}.summary-edit-item input,.summary-edit-item textarea{width:100%;height:42px;border:1px solid #d6e4ff;border-radius:10px;padding:0 14px;background:#fff;box-shadow:inset 0 1px 2px rgba(15,23,42,.04);outline:none}.summary-edit-item textarea{height:auto;min-height:110px;padding:12px 14px;resize:vertical}.summary-edit-item input:focus,.summary-edit-item textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(22,119,255,.08)}
.image-modal{position:fixed;inset:0;background:rgba(15,23,42,.75);display:none;align-items:center;justify-content:center;padding:24px;z-index:99}.image-modal.open{display:flex}.image-modal img{max-width:min(90vw,980px);max-height:86vh;border-radius:12px;box-shadow:0 24px 60px rgba(0,0,0,.28)}.image-modal #image-modal-close{position:absolute;top:24px;right:24px;width:40px;height:40px;border:0;border-radius:50%;background:#fff;color:#111827;cursor:pointer}
.home-minimal-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.home-minimal-card{width:min(720px,100%);padding:56px 48px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);text-align:center}.home-minimal-card h1{font-size:34px;margin:0 0 40px}.home-role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.home-role-btn{display:flex;align-items:center;justify-content:center;min-height:56px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#344054;font-size:18px;font-weight:600}.home-role-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.home-role-btn.pending{background:#f8fafc}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.metric-card{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:18px}.metric-card small{display:block;color:var(--muted);margin-bottom:10px}.metric-card strong{font-size:28px;line-height:1}.metric-card p{margin:8px 0 0;color:#475467;font-size:13px}
.route-tag{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:14px;background:#f8fafc;border:1px solid var(--line);color:#475467;font-size:12px;font-weight:600}.route-tag.tasting{background:#eef6ff;border-color:#cfe0ff;color:#155eef}.route-tag.compare{background:#fff5eb;border-color:#ffd6ae;color:#c25400}.route-tag.review{background:#f0fdf4;border-color:#b7e4c7;color:#15803d}.route-tag.reject{background:#fef2f2;border-color:#fecaca;color:#dc2626}
.console-split{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px}.main-stack,.side-stack{display:grid;gap:18px}.side-stack{position:sticky;top:28px;height:max-content}.state-card{display:grid;gap:14px}.state-card .state-row{display:flex;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid #edf1f5}.state-card .state-row:last-child{padding-bottom:0;border-bottom:0}.state-card .state-row span:first-child{color:var(--muted)}
.ops-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.info-block{padding:14px;border:1px solid var(--line);border-radius:8px;background:#fff}.info-block strong{display:block;margin-bottom:8px}.info-block p{margin:0;color:#475467;line-height:1.7}
.decision-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.decision-card{display:grid;gap:10px;padding:16px;border:1px solid var(--line);border-radius:10px;background:#fff}.decision-card strong{font-size:16px}.decision-card p{margin:0;color:#667085;line-height:1.6;font-size:13px}
.todo-list,.record-list,.keyword-list{display:grid;gap:12px}.todo-item,.record-item{padding:14px;border:1px solid var(--line);border-radius:10px;background:#fff}.todo-item strong,.record-item strong{display:block;margin-bottom:8px}.todo-item p,.record-item p{margin:0;color:#667085;line-height:1.6;font-size:13px}
.inline-note{padding:12px 14px;border-radius:8px;background:var(--accent-soft);color:#9a3412;font-size:13px;line-height:1.6;border:1px solid #ffd3ad}
.ops-table{min-width:1120px}.ops-table.compact{min-width:860px}.ops-table td .btn,.ops-table td .route-tag{margin-right:8px}
.score-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.score-card{padding:16px;border:1px solid var(--line);border-radius:10px;background:#fff}.score-card strong{display:block;font-size:22px;margin-bottom:10px}.score-card small{display:block;color:var(--muted);margin-bottom:12px}.bar-group{display:grid;gap:8px}.bar-row{display:grid;grid-template-columns:18px 1fr 34px;gap:10px;align-items:center;font-size:13px;color:#475467}.bar-track{height:8px;border-radius:999px;background:#eef2f7;overflow:hidden}.bar-fill{height:100%;background:var(--primary);border-radius:999px}.bar-fill.good{background:var(--success)}.bar-fill.warn{background:var(--accent)}.bar-fill.bad{background:var(--danger)}
.review-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.keyword-list{grid-template-columns:repeat(3,minmax(0,1fr))}.keyword-chip{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:18px;background:#fff;color:#475467;font-size:13px}
.evidence-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.evidence-card{padding:14px;border:1px dashed #c5d0e0;border-radius:10px;background:#fafcff}.evidence-card strong{display:block;margin-bottom:8px}.evidence-card p{margin:0;color:#667085;line-height:1.6;font-size:13px}
.result-hero{display:grid;gap:10px;padding:22px;background:#f0fdf4;border:1px solid #b7e4c7;border-radius:14px}.result-hero h2{margin:0;font-size:26px;color:#166534}.result-hero p{margin:0;color:#166534;line-height:1.7}
.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.section-head h2{margin:0;font-size:20px}.section-head p{margin:0;color:var(--muted);font-size:13px}
.muted-table-note{font-size:13px;color:var(--muted)}
.ops-filter-grid{grid-template-columns:160px 180px 140px 140px 220px 220px 108px}
.ops-sub-filter-grid{grid-template-columns:160px 180px 220px 220px 108px}
.image-modal button{position:absolute;top:24px;right:24px;width:40px;height:40px;border:0;border-radius:50%;background:#fff;color:#111827;cursor:pointer}
.ops-modal{position:fixed;inset:0;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;padding:24px;z-index:120}
.ops-modal-card{width:min(760px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:16px;padding:24px;border:1px solid var(--line);box-shadow:0 24px 60px rgba(15,23,42,.18)}
.ops-modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.ops-modal-head h3{margin:0;font-size:26px}.ops-modal-close{width:36px;height:36px;border:1px solid var(--line);border-radius:50%;background:#fff;cursor:pointer}
.ops-modal-desc{margin:0 0 18px;color:var(--muted);line-height:1.6}.ops-launch-groups{display:grid;gap:16px;margin-bottom:18px}.ops-launch-group{padding:14px;border:1px solid var(--line);border-radius:10px;background:#fafcff}.ops-launch-group strong{display:block;margin-bottom:10px}.ops-launch-group ul{margin:0;padding-left:18px;color:#475467;line-height:1.8}
.ops-modal-form{display:grid;gap:16px}.ops-inline-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.ops-modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}
.ops-compare-stack{display:grid;gap:20px}.ops-compare-source{padding-left:16px;border-left:3px solid #dbeafe;display:grid;gap:14px}.ops-source-title{display:grid;gap:10px}.ops-chip-row{display:flex;flex-wrap:wrap;gap:10px}.ops-plain-text{display:flex;align-items:center;color:#475467}.ops-diff.good{color:var(--success);font-style:normal}.ops-diff.warn{color:var(--warning);font-style:normal}.ops-diff.bad{color:var(--danger);font-style:normal}.ops-evidence-line{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.ops-source-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ops-evidence-gallery{display:flex;gap:12px;flex-wrap:wrap}.ops-evidence-thumb-wrap{position:relative;width:96px}.ops-evidence-thumb{width:96px;height:96px;border-radius:10px;object-fit:cover;border:1px solid var(--line);background:#f8fafc}.ops-thumb-delete{margin-top:8px;width:100%;height:32px;border:1px solid #fecaca;border-radius:8px;background:#fff5f5;color:var(--danger);cursor:pointer}
.compare-result-gallery{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.compare-result-thumb{width:88px;height:88px;border-radius:10px;object-fit:cover;border:1px solid var(--line);background:#f8fafc}
.ops-qr-panel{display:grid;justify-items:center;gap:12px;padding:8px 0}.ops-qr-image{width:180px;height:180px;border-radius:12px;border:1px solid var(--line);background:#fff;object-fit:cover}
.ops-dish-review-list{display:grid;gap:16px}.ops-dish-review-card{padding:18px;border:1px solid var(--line);border-radius:12px;background:#fff}.ops-dish-review-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid #edf1f5}.ops-dish-review-title{display:grid;gap:8px}.ops-dish-review-head strong{display:block;font-size:18px;margin:0}.ops-dish-review-head p{margin:0;color:#667085;line-height:1.6;font-size:13px}.ops-dish-review-image{width:112px;height:112px;border-radius:14px;object-fit:cover;border:1px solid var(--line);background:#f8fafc}.ops-inline-panel{padding:16px}.ops-inline-panel .panel-title{margin-bottom:14px;font-size:16px}.ops-dish-review-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.ops-dish-basic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}.ops-dish-score-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.ops-dish-score-grid-tight{grid-template-columns:repeat(3,minmax(0,1fr))}.ops-dish-bottom-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.ops-dish-bottom-grid .score-card{height:100%}.ops-dish-bottom-grid .score-card small{font-size:12px;white-space:nowrap}.ops-dish-bottom-grid .score-card strong{font-size:20px}.ops-dish-bottom-grid .bar-row{grid-template-columns:48px 1fr 26px}.ops-highlight-panel{background:#fff7ed;border-color:#fed7aa}.ops-highlight-panel .score-card{background:transparent;border:0;padding:0}.ops-highlight-panel .score-card small{color:#9a3412;font-weight:700}.ops-review-decision-group{display:grid;grid-template-columns:1fr;gap:10px}.ops-review-decision-group .check-chip span{width:100%;justify-content:center}.ops-wide-block{grid-column:span 2}
.miniapp-stage{min-height:100vh;display:grid;place-items:center;padding:20px;background:var(--bg)}
.miniapp-shell{--primary:#ff8010;--accent:#ff8010;--accent-soft:#fff3e8;--sidebar-active:#fff3e8;width:min(100%,390px);min-height:844px;background:#f4f7fb;border:1px solid var(--line);border-radius:28px;box-shadow:0 24px 60px rgba(15,23,42,.12);overflow:hidden}
.miniapp-header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 14px;background:#fff;border-bottom:1px solid #edf1f5}
.miniapp-header strong{font-size:17px;font-weight:700}
.miniapp-header .text-btn{font-size:14px}
.miniapp-header-spacer{width:56px}
.miniapp-content{display:grid;gap:12px;padding:14px 14px 112px}
.miniapp-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:0 8px 24px rgba(15,23,42,.04)}
.miniapp-card h1,.miniapp-card h2{margin:0}
.miniapp-card h2{font-size:18px;line-height:1.35}
.miniapp-overview{display:grid;gap:12px}
.miniapp-overview-meta{display:flex;flex-wrap:wrap;gap:8px}
.miniapp-overview-meta span,.miniapp-caption{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:14px;background:#f8fafc;border:1px solid #edf1f5;color:#667085;font-size:12px}
.miniapp-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.miniapp-selector-card{display:grid;gap:12px}
.miniapp-merchant-tabs{display:flex;gap:8px;overflow:auto;padding-bottom:2px}
.miniapp-merchant-tab{flex:0 0 auto;min-width:108px;padding:10px 12px;border:1px solid #e5ebf3;border-radius:14px;background:#fff}
.miniapp-merchant-tab strong{display:block;font-size:14px;color:#1f2937}
.miniapp-merchant-tab span{display:inline-flex;align-items:center;justify-content:center;min-width:44px;margin-top:6px;padding:2px 8px;border-radius:999px;background:#fff7ed;color:#c2410c;font-size:12px;font-weight:700}
.miniapp-merchant-tab.active{border-color:#cfe0ff;background:#eef5ff;box-shadow:0 8px 20px rgba(21,94,239,.08)}
.miniapp-dish-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.miniapp-dish-chip{display:grid;gap:4px;padding:10px 12px;border:1px solid #e5ebf3;border-radius:14px;background:#fff}
.miniapp-dish-chip strong{font-size:14px;color:#1f2937;line-height:1.4}
.miniapp-dish-chip span{display:inline-flex;align-items:center;justify-content:center;min-width:56px;padding:3px 8px;border-radius:999px;background:#fff7ed;color:#c2410c;font-size:12px;font-weight:700}
.miniapp-dish-chip.active{border-color:#cfe0ff;background:#eef5ff;box-shadow:0 8px 18px rgba(21,94,239,.08)}
.miniapp-dish-state{font-style:normal;font-size:12px;font-weight:600;color:#98a2b3}
.miniapp-dish-state.is-done{color:var(--success)}
.miniapp-dish-state.is-draft{color:var(--accent)}
.miniapp-product-head{display:grid;grid-template-columns:minmax(0,1fr) 96px;gap:14px;align-items:start;margin-bottom:14px}
.miniapp-product-title h2{margin-top:8px;font-size:22px;line-height:1.35}
.miniapp-cover{width:96px;height:96px;border-radius:16px;object-fit:cover;border:1px solid var(--line);background:#f8fafc}
.miniapp-product-compact{display:grid;gap:14px}
.miniapp-price-inline{display:flex;align-items:baseline;gap:8px;padding:12px 14px;border-radius:16px;background:#fff7ed;border:1px solid #fed7aa}
.miniapp-price-inline strong{font-size:26px;line-height:1;color:#111827}
.miniapp-price-inline span{font-size:12px;color:#9a3412}
.miniapp-price-inline em{margin-left:auto;font-style:normal;font-size:12px;color:#b45309}
.miniapp-detail-rows{display:grid;gap:8px}
.miniapp-detail-row{display:grid;grid-template-columns:56px minmax(0,1fr);gap:10px;align-items:start}
.miniapp-detail-row span{color:#667085;font-size:12px;line-height:1.6}
.miniapp-detail-row strong{font-size:13px;line-height:1.6;color:#1f2937;font-weight:600}
.miniapp-grade-note{margin-bottom:14px;color:#667085;font-size:12px;line-height:1.6}
.miniapp-score-group{display:grid;gap:14px}
.miniapp-score-item{display:grid;gap:10px}
.miniapp-score-item strong{font-size:15px}
.miniapp-score-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.miniapp-score-options .check-chip{width:100%}
.miniapp-score-options .check-chip span{width:100%;height:44px;border-radius:12px;font-weight:700}
.miniapp-score-options .check-chip input:checked + span{background:#eef5ff;border-color:#cfe0ff;color:#155eef}
.miniapp-recommend-title{margin:16px 0 10px;font-size:15px;font-weight:600;color:#1f2937}
.miniapp-recommend-options{display:grid;gap:10px}
.miniapp-recommend-options .check-chip span{width:100%;justify-content:center;height:46px;min-height:46px;padding:0 14px;border-radius:14px;line-height:1.55}
.miniapp-recommend-options .check-chip input:checked + span{background:#eef5ff;border-color:#cfe0ff;color:#155eef}
.miniapp-textarea textarea{min-height:104px;max-width:none;font-size:14px;line-height:1.7}
.miniapp-footer{position:sticky;bottom:0;padding:12px 14px 16px;background:linear-gradient(180deg,rgba(244,247,251,0) 0%,#f4f7fb 28%,#f4f7fb 100%)}
.miniapp-footer-card{display:grid;gap:10px;padding:12px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 10px 28px rgba(15,23,42,.08)}
.miniapp-result-mark{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:#f8fafc;color:#ff8010;font-size:28px;margin:0 auto 10px}
.miniapp-result{text-align:center}
.miniapp-result h1{margin:0 0 8px;font-size:24px}
.miniapp-result p{margin:0;color:#475467;line-height:1.7}
.miniapp-result.compact{display:flex;align-items:center;gap:14px;text-align:left}
.miniapp-result.compact .miniapp-result-mark{margin:0;flex:0 0 64px}
.miniapp-result-copy{display:grid;gap:4px}
.miniapp-result-copy h1{margin:0;font-size:22px}
.miniapp-result-copy p{margin:0;font-size:13px;color:#667085}
.miniapp-summary-list{display:grid;gap:10px}
.miniapp-summary-item{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid #edf1f5}
.miniapp-summary-item:last-child{padding-bottom:0;border-bottom:0}
.miniapp-summary-item span:first-child{color:var(--muted)}
.miniapp-summary-list.compact{gap:0}
.miniapp-submitted-list{display:grid;gap:10px;margin-top:14px}
.miniapp-submitted-card{padding:14px;border:1px solid #edf1f5;border-radius:14px;background:#fbfcfe}
.miniapp-submitted-card.is-submitted{background:#f8fafc;border-color:#d0d5dd}
.miniapp-submitted-card p{margin:6px 0 0;color:#475467;font-size:13px;line-height:1.65}
.miniapp-submitted-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.miniapp-submitted-head strong{font-size:15px}
.miniapp-submitted-head span{font-size:12px;color:#667085}
.miniapp-success-note{margin-top:14px;padding:14px;border:1px solid #edf1f5;border-radius:14px;background:#fbfcfe}
.miniapp-success-note strong{display:block;margin-bottom:8px}
.miniapp-success-note p{margin:0;color:#475467;font-size:13px;line-height:1.65}
.miniapp-success-grid{display:grid;gap:10px}
.miniapp-success-groups{display:grid;gap:14px}
.miniapp-success-group{display:grid;gap:10px}
.miniapp-success-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.miniapp-success-group-head strong{font-size:15px;color:#1f2937}
.miniapp-success-group-head span{font-size:12px;color:#667085}
.miniapp-success-next{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:1px solid #dbeafe;border-radius:16px;background:#f8fbff;color:var(--primary)}
.miniapp-success-next:hover{background:#eef5ff}
.miniapp-success-next.is-submitted{border-color:#d0d5dd;background:#f8fafc;color:#98a2b3}
.miniapp-success-next strong{display:block;color:#1f2937;font-size:15px}
.miniapp-success-next span{display:block;margin-top:4px;color:#667085;font-size:12px}
.miniapp-dish-chip.is-submitted{background:#f8fafc;border-color:#d0d5dd}
.miniapp-dish-chip.is-submitted span{background:#ecfdf3;color:#027a48}
.miniapp-merchant-tab.is-complete span{background:#ecfdf3;color:#027a48}
@media (max-width:1100px){.console-layout{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line)}.filter-grid,.completed-filter-grid,.form-page-layout,.timeline{grid-template-columns:1fr}.weight-row{grid-template-columns:1fr 1fr}.sticky-side-stack{position:static}}
@media (max-width:1100px){.metric-grid,.console-split,.ops-info-grid,.decision-grid,.score-grid,.review-grid,.evidence-grid,.ops-filter-grid,.ops-inline-fields{grid-template-columns:1fr}.keyword-list{grid-template-columns:repeat(2,minmax(0,1fr))}.side-stack{position:static}}
@media (max-width:1100px){.ops-dish-review-grid,.ops-dish-score-grid,.ops-dish-basic-grid,.ops-dish-bottom-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-wide-block{grid-column:span 2}}
@media (max-width:720px){.console-main{padding:20px 16px 28px}.summary-grid,.home-role-grid,.hero-card,.weight-row,.keyword-list,.miniapp-product-head,.miniapp-dish-grid,.ops-dish-review-grid,.ops-dish-score-grid,.ops-dish-basic-grid,.ops-dish-bottom-grid{grid-template-columns:1fr}.page-head,.table-toolbar,.image-preview-wrap,.page-tabs,.section-head,.miniapp-submitted-head,.miniapp-result.compact,.ops-dish-review-head{flex-direction:column;align-items:flex-start}.home-minimal-card{padding:36px 24px}.home-minimal-card h1{font-size:28px}.miniapp-stage{padding:0}.miniapp-shell{width:100%;min-height:100vh;border-radius:0;border-left:0;border-right:0}.miniapp-header{padding-top:18px}.miniapp-price-inline{display:grid;gap:4px}.miniapp-price-inline em{margin-left:0}.miniapp-result.compact .miniapp-result-mark{margin:0 auto}.ops-wide-block{grid-column:span 1}}

.modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,.5);display:none;align-items:center;justify-content:center;padding:24px;z-index:100}
.modal-overlay.show{display:flex}
.modal-content{width:min(520px,100%);background:#fff;border-radius:16px;box-shadow:0 24px 60px rgba(15,23,42,.2);overflow:hidden}
.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--line)}
.modal-header h3{margin:0;font-size:20px}
.modal-header-actions{display:flex;align-items:center;gap:10px}
.modal-close{width:32px;height:32px;border:1px solid var(--line);border-radius:50%;background:#fff;cursor:pointer;display:grid;place-items:center;color:#667085}
.modal-header-actions .btn{height:32px;font-size:13px}
.modal-body{padding:24px}
.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--line);background:#fafbfc}
.upload-area{margin-bottom:16px}
.upload-label{display:block;border:1px dashed #b8c4d6;border-radius:10px;background:#fafcff;padding:28px 16px;text-align:center;cursor:pointer;color:var(--muted)}
.upload-label i{display:block;font-size:28px;color:var(--primary);margin-bottom:10px}
.upload-label span{display:block;font-weight:500;color:#344054}
.modal-actions{margin-bottom:16px}
.modal-tip{margin:0;padding:12px 14px;border-radius:8px;background:#f8fbff;color:#1d4ed8;font-size:13px;line-height:1.6;border:1px solid #dbeafe}
.table-thumb.no-image{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:8px;border:1px dashed #c5d0e0;background:#fafcff;color:#98a2b3;font-size:20px}

/* 批量添加模态框样式 */
#batch-add-modal {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.5);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
  z-index: 100;
}

#batch-add-modal.show {
  display: flex;
}

#batch-add-modal .modal-content {
  width: min(520px, 100%);
  max-height: 90vh;
  overflow-y: auto;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.2);
}

#batch-add-modal .modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 24px;
  border-bottom: 1px solid var(--line);
}

#batch-add-modal .modal-header h2 {
  margin: 0;
  font-size: 22px;
}

#batch-add-modal .modal-body {
  padding: 24px;
}

#batch-add-modal .upload-section,
#batch-add-modal .template-section {
  margin-bottom: 24px;
}

#batch-add-modal .upload-section h3,
#batch-add-modal .template-section h3 {
  margin: 0 0 12px;
  font-size: 16px;
  font-weight: 600;
  color: #1f2937;
}

#batch-add-modal .upload-section button {
  margin-right: 12px;
}

#batch-add-modal .modal-footer {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  padding: 16px 24px;
  border-top: 1px solid var(--line);
  background: #fafbfc;
}
