:root {
  --ink: #17211e;
  --muted: #6e7b76;
  --soft: #9aa6a1;
  --bg: #f4f6f3;
  --paper: #fff;
  --line: #e5eae6;
  --green: #14785e;
  --green-2: #1f9a78;
  --green-soft: #e7f4ee;
  --red: #c84f46;
  --red-soft: #fff0ed;
  --amber: #b97920;
  --amber-soft: #fff6e4;
  --shadow: 0 10px 32px rgba(27, 53, 44, .06);
  --sidebar: 228px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--bg); font-family: "Noto Sans SC", "Microsoft YaHei", system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.hidden-file { display: none; }

.sidebar { position: fixed; inset: 0 auto 0 0; width: var(--sidebar); display: flex; flex-direction: column; padding: 26px 18px 20px; border-right: 1px solid var(--line); background: rgba(255,255,255,.9); backdrop-filter: blur(20px); z-index: 30; }
.brand { display: flex; align-items: center; gap: 12px; padding: 0 8px 30px; }
.brand-mark { width: 42px; height: 42px; display: grid; place-items: center; color: white; border-radius: 14px; background: linear-gradient(145deg,#249674,#0b604c); box-shadow: 0 8px 20px rgba(20,120,94,.22); font-weight: 800; }
.brand-mark.small { width: 34px; height: 34px; border-radius: 11px; }
.brand strong, .brand span { display: block; }
.brand strong { font-size: 18px; letter-spacing: -.03em; }
.brand span { margin-top: 2px; color: var(--muted); font-size: 11px; }
.side-nav { display: grid; gap: 7px; }
.nav-item { height: 48px; border: 0; border-radius: 14px; padding: 0 13px; display: flex; align-items: center; gap: 12px; color: var(--muted); background: transparent; text-align: left; transition: .16s; }
.nav-item > span { width: 27px; font-size: 19px; text-align: center; font-weight: 500; }
.nav-item svg { width: 21px; height: 21px; display:block; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.nav-item b { font-size: 13px; font-weight: 600; }
.nav-item:hover { background: #f1f5f2; color: var(--ink); }
.nav-item.active { color: var(--green); background: var(--green-soft); }
.nav-item.active b { font-weight: 800; }
.sidebar-foot { margin-top: auto; padding: 14px; display: flex; align-items: center; gap: 11px; border-radius: 15px; background: #f1f6f3; }
.sidebar-foot strong, .sidebar-foot small { display: block; }
.sidebar-foot strong { font-size: 12px; }
.sidebar-foot small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.live-dot { width: 8px; height: 8px; flex: none; border-radius: 50%; background: #1cad78; box-shadow: 0 0 0 5px rgba(28,173,120,.12); animation: pulse 2s infinite; }

.main-area { min-height: 100vh; margin-left: var(--sidebar); }
.topbar { height: 78px; position: sticky; top: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; padding: 0 clamp(24px,4vw,52px); border-bottom: 1px solid rgba(229,234,230,.9); background: rgba(244,246,243,.82); backdrop-filter: blur(20px); }
.mobile-brand { display: none; align-items: center; gap: 9px; }
.store-switch .eyebrow { display: block; margin: 0 0 2px 3px; color: var(--soft); font-size: 9px; font-weight: 700; letter-spacing: .12em; }
.store-switch select { max-width: 280px; appearance: none; padding: 4px 25px 4px 3px; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: 14px; font-weight: 700; }
.top-actions { display: flex; align-items: center; gap: 12px; }
.install-button { height: 34px; padding: 0 13px; border: 0; border-radius: 99px; color: #fff; background: var(--green); font-size: 11px; font-weight: 800; white-space: nowrap; box-shadow: 0 7px 16px rgba(13,132,101,.18); }
.data-pill { display: flex; align-items: center; gap: 7px; padding: 7px 11px; border: 1px solid var(--line); border-radius: 99px; color: var(--muted); background: rgba(255,255,255,.65); font-size: 11px; }
.data-pill i { width: 7px; height: 7px; border-radius: 50%; background: #19a974; }
.avatar-button { min-width: 72px; height: 38px; display: flex; align-items: center; gap: 7px; padding: 4px 10px 4px 5px; border: 1px solid #dce5e0; border-radius: 99px; color: var(--ink); background: white; }
.avatar-button span { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; color: var(--green); background: var(--green-soft); font-weight: 800; }
.avatar-button b { font-size: 11px; }
.page { max-width: 1280px; margin: 0 auto; padding: 38px clamp(24px,4vw,52px) 90px; }

.page-head { margin-bottom: 26px; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.page-head h1 { margin: 6px 0 0; font-size: clamp(27px,3vw,39px); line-height: 1.2; letter-spacing: -.045em; }
.page-head p { margin: 9px 0 0; color: var(--muted); font-size: 13px; }
.kicker { color: var(--green); font-size: 11px; font-weight: 800; letter-spacing: .1em; }
.page-actions { display: flex; gap: 8px; }

.btn { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 0 16px; border: 1px solid var(--line); border-radius: 13px; color: var(--ink); background: white; font-size: 12px; font-weight: 700; transition: .15s; }
.btn:hover { transform: translateY(-1px); box-shadow: 0 8px 20px rgba(20,45,37,.08); }
.btn.primary { border-color: var(--green); color: white; background: var(--green); }
.btn.primary:hover { background: #0f6a52; }
.btn.quiet { color: var(--muted); background: transparent; }
.btn.small { min-height: 34px; padding: 0 12px; border-radius: 10px; font-size: 11px; }
.btn:disabled { opacity: .42; cursor: not-allowed; transform: none; box-shadow: none; }
.text-button { border: 0; color: var(--green); background: none; font-size: 11px; font-weight: 800; }
.panel { border: 1px solid var(--line); border-radius: 22px; background: var(--paper); box-shadow: var(--shadow); }

.agent-hero { position: relative; min-height: 220px; display: flex; align-items: center; justify-content: space-between; gap: 28px; overflow: hidden; padding: 34px 38px; border-radius: 28px; color: white; background: radial-gradient(circle at 90% 10%,rgba(109,220,180,.3),transparent 35%), linear-gradient(135deg,#0d4e42,#14785e 70%,#209072); box-shadow: 0 22px 48px rgba(12,89,70,.18); }
.agent-hero.needs-attention { background: radial-gradient(circle at 90% 10%,rgba(255,214,157,.22),transparent 36%), linear-gradient(135deg,#263933,#116a54 72%,#1a8669); }
.agent-state { display: flex; align-items: center; gap: 22px; }
.agent-orb { position: relative; width: 78px; height: 78px; flex: none; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.28); border-radius: 27px; background: rgba(255,255,255,.13); box-shadow: inset 0 0 30px rgba(255,255,255,.08); }
.agent-orb i { position: absolute; inset: -7px; border: 1px solid rgba(132,241,202,.35); border-radius: 31px; animation: orb 3s infinite ease-in-out; }
.agent-orb span { font-size: 21px; font-weight: 800; letter-spacing: -.05em; }
.agent-orb.small { width: 54px; height: 54px; border-color: #b9dfd2; color: white; border-radius: 18px; background: var(--green); }
.agent-orb.small i { inset: -5px; border-color: #b8e1d4; border-radius: 21px; }
.agent-orb.small span { font-size: 15px; }
.agent-live { color: #9ef0d0; font-size: 11px; font-weight: 800; letter-spacing: .08em; }
.agent-state h1 { max-width: 660px; margin: 8px 0 0; font-size: clamp(27px,3.2vw,43px); line-height: 1.18; letter-spacing: -.05em; }
.agent-state p { margin: 11px 0 0; color: rgba(255,255,255,.7); font-size: 13px; }
.vision-mode { min-width: 190px; padding: 14px 16px; border: 1px solid rgba(255,255,255,.15); border-radius: 16px; background: rgba(5,40,31,.2); }
.vision-mode i { width: 7px; height: 7px; display: inline-block; margin-right: 7px; border-radius: 50%; background: #69e2b6; }
.vision-mode span { font-size: 11px; font-weight: 700; }
.vision-mode small { display: block; margin: 5px 0 0 15px; color: rgba(255,255,255,.48); font-size: 9px; }
.owner-stats { position: relative; z-index: 3; width: calc(100% - 48px); margin: -18px auto 22px; display: grid; grid-template-columns: repeat(3,1fr); border: 1px solid var(--line); border-radius: 20px; background: rgba(255,255,255,.95); box-shadow: 0 14px 34px rgba(21,55,45,.08); }
.owner-stats > div { min-height: 102px; padding: 20px 26px; border-right: 1px solid var(--line); }
.owner-stats > div:last-child { border: 0; }
.owner-stats span, .owner-stats small { display: block; }
.owner-stats span { color: var(--muted); font-size: 11px; }
.owner-stats strong { margin-right: 8px; font-size: 31px; letter-spacing: -.04em; }
.owner-stats small { display: inline; color: var(--soft); font-size: 10px; }
.owner-stats .urgent strong { color: var(--red); }
.owner-grid { display: grid; grid-template-columns: minmax(0,1.18fr) minmax(320px,.82fr); gap: 18px; }
.attention-panel, .event-panel { padding: 24px; }
.section-title { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; }
.section-title span { color: var(--green); font-size: 10px; font-weight: 800; letter-spacing: .08em; }
.section-title h2 { margin: 4px 0 0; font-size: 18px; letter-spacing: -.03em; }
.working-dot { padding: 5px 9px; border-radius: 99px; color: var(--green) !important; background: var(--green-soft); font-size: 9px !important; }
.attention-list { display: grid; gap: 12px; }
.owner-issue { display: grid; grid-template-columns: 132px minmax(0,1fr); overflow: hidden; border: 1px solid #ecd9d5; border-radius: 18px; background: #fffafa; }
.owner-issue > img { width: 100%; height: 100%; min-height: 186px; object-fit: cover; }
.owner-issue-body { padding: 16px 17px; }
.issue-top { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.risk-badge { display: inline-flex; padding: 4px 8px; border-radius: 99px; color: var(--amber); background: var(--amber-soft); font-size: 9px; font-weight: 800; }
.red .risk-badge { color: var(--red); background: var(--red-soft); }
.deadline { color: var(--muted); font-size: 10px; font-weight: 700; }
.deadline.overdue, .overdue { color: var(--red) !important; }
.owner-issue h3 { margin: 9px 0 0; font-size: 16px; }
.owner-issue p { margin: 6px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.assigned-line { margin: 12px 0; display: flex; align-items: center; gap: 7px; font-size: 10px; }
.assigned-line b { padding: 3px 7px; border-radius: 7px; color: var(--green); background: var(--green-soft); }
.assigned-line span { color: var(--soft); }
.card-actions { display: flex; gap: 7px; flex-wrap: wrap; }
.event-list { display: grid; }
.event-row { position: relative; display: grid; grid-template-columns: 28px minmax(0,1fr) auto; gap: 10px; padding: 11px 0; border-bottom: 1px solid #edf0ee; }
.event-row:last-child { border: 0; }
.event-icon { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 9px; color: var(--green); background: var(--green-soft); font-size: 11px; font-weight: 800; }
.event-row.escalated .event-icon { color: var(--red); background: var(--red-soft); }
.event-row strong { display: block; font-size: 11px; }
.event-row p { margin: 4px 0 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
.event-row time { color: var(--soft); font-size: 9px; }

.round-switch { display: grid; grid-template-columns: repeat(2,1fr); gap: 12px; margin-bottom: 16px; }
.round-tab { min-height: 92px; display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto; gap: 3px 12px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 17px; color: var(--muted); background: white; text-align: left; }
.round-tab span { font-size: 12px; font-weight: 700; }
.round-tab strong { grid-row: 1/3; grid-column: 2; align-self: center; color: var(--ink); font-size: 19px; }
.round-tab small { color: var(--soft); font-size: 9px; }
.round-tab.active { border-color: #83c8b5; color: var(--green); background: var(--green-soft); box-shadow: 0 8px 24px rgba(20,120,94,.08); }
.round-tab.completed small { color: var(--green); }
.round-progress { min-height: 116px; display: flex; align-items: center; gap: 22px; padding: 20px 24px; margin-bottom: 18px; }
.round-progress > div:first-child { flex: 1; }
.round-progress span { color: var(--green); font-size: 10px; font-weight: 800; }
.round-progress h2 { margin: 4px 0 0; font-size: 19px; }
.round-progress p { margin: 5px 0 0; color: var(--muted); font-size: 10px; }
.progress-ring { width: 70px; height: 70px; display: grid; place-items: center; border-radius: 50%; background: conic-gradient(var(--green) var(--progress),#e9efec 0); position: relative; }
.progress-ring::before { content:""; position: absolute; inset: 7px; border-radius: 50%; background: white; }
.progress-ring strong { position: relative; font-size: 13px; }
.point-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; }
.point-card { overflow: hidden; border: 1px solid var(--line); border-radius: 20px; background: white; box-shadow: var(--shadow); }
.point-photo { position: relative; height: 175px; overflow: hidden; background: #e8ede9; }
.point-photo > img { width: 100%; height: 100%; object-fit: cover; }
.point-placeholder { height: 100%; position: relative; display: grid; place-items: center; color: var(--green); background: radial-gradient(circle at 60% 30%,#e1f3eb,transparent 45%),linear-gradient(145deg,#f0f3ef,#e1e9e4); }
.point-placeholder span { position: absolute; top: 13px; left: 15px; color: #a5b2ac; font-size: 10px; font-weight: 800; }
.point-placeholder b { width: 68px; height: 68px; display: grid; place-items: center; border: 1px solid rgba(20,120,94,.16); border-radius: 24px; background: rgba(255,255,255,.56); font-size: 24px; }
.checked { position: absolute; right: 10px; bottom: 10px; padding: 5px 9px; border-radius: 99px; color: white; background: rgba(14,100,78,.88); backdrop-filter: blur(8px); font-size: 9px; font-weight: 800; }
.point-body { min-height: 185px; display: flex; flex-direction: column; padding: 17px; }
.point-body > div > span { color: var(--green); font-size: 9px; font-weight: 700; }
.point-body h3 { margin: 3px 0 0; font-size: 17px; }
.point-body p { min-height: 34px; margin: 9px 0 14px; color: var(--muted); font-size: 10px; line-height: 1.55; }
.point-body .ai-summary { color: var(--ink); }
.point-body .btn { width: 100%; margin-top: auto; }
.point-upload-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:auto; }
.point-upload-actions .btn { margin:0; }
.point-upload-actions .btn.primary { grid-column:1/-1; min-height:48px; }
.point-upload-actions .voice-button { width:100%; }
.easy-actions { display: grid; grid-template-columns: auto 1fr; gap: 8px; margin-top: auto; }
.easy-actions .btn { margin: 0; }
.voice-button { min-height: 42px; padding: 0 13px; border: 1px solid #b8dcd1; border-radius: 12px; color: var(--green); background: #f0faf6; font-size: 11px; font-weight: 800; white-space: nowrap; }
.voice-button:hover { background: var(--green-soft); }
.easy-tip { margin: -10px 0 18px; display: flex; align-items: center; gap: 13px; padding: 14px 16px; border: 1px solid #c8e4da; border-radius: 16px; background: var(--green-soft); }
.easy-tip p { margin: 0; color: var(--muted); font-size: 11px; }
.easy-tip strong { font-size: 13px; }
.task-easy-tip div p { margin-top: 3px; }

.task-tabs { display: flex; gap: 6px; margin: -8px 0 18px; padding: 4px; width: max-content; border-radius: 12px; background: #e9eeeb; }
.task-tabs button { min-width: 88px; height: 34px; border: 0; border-radius: 9px; color: var(--muted); background: transparent; font-size: 11px; font-weight: 700; }
.task-tabs button.active { color: var(--ink); background: white; box-shadow: 0 3px 10px rgba(30,50,43,.06); }
.task-list-page { display: grid; gap: 14px; }
.task-card { display: grid; grid-template-columns: 220px minmax(0,1fr); overflow: hidden; border: 1px solid var(--line); border-left: 4px solid #d6aa58; border-radius: 20px; background: white; box-shadow: var(--shadow); }
.task-card.red { border-left-color: var(--red); }
.task-photo { position: relative; min-height: 260px; overflow:hidden; padding:0; border:0; color:inherit; background: #e9eeea; text-align:left; cursor:zoom-in; }
.task-photo img { width: 100%; height: 100%; object-fit: cover; position: absolute; }
.task-photo span { position: absolute; left: 12px; bottom: 12px; padding: 5px 9px; border-radius: 99px; color: white; background: rgba(18,31,27,.66); backdrop-filter: blur(8px); font-size: 9px; }
.task-content { padding: 22px 24px; }
.task-meta { display: flex; align-items: center; gap: 9px; color: var(--muted); font-size: 10px; }
.task-meta b { margin-left: auto; color: var(--green); }
.task-content h2 { margin: 10px 0 0; font-size: 20px; }
.task-content > p { margin: 7px 0 0; color: var(--muted); font-size: 11px; }
.action-box { margin: 14px 0; padding: 12px 14px; display: flex; gap: 12px; border-radius: 12px; background: #f2f6f4; }
.action-box span { flex: none; color: var(--green); font-size: 9px; font-weight: 800; }
.action-box strong { font-size: 11px; }
.assignee { display: flex; align-items: center; gap: 8px; }
.person { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; color: var(--green); background: var(--green-soft); font-size: 11px; font-weight: 800; }
.assignee small, .assignee b { display: block; font-size: 9px; }
.assignee small { color: var(--soft); }
.assignee b { margin-top: 1px; }
.task-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: -35px; }
.task-order { padding: 4px 8px; border-radius: 8px; color: white; background: var(--green); font-size: 9px; font-weight: 800; }
.easy-task-actions { margin-top: 15px; display: flex; align-items: center; flex-wrap: wrap; }
.task-camera { min-height:52px; }
.task-secondary-actions { display:flex; gap:8px; }
.task-secondary-actions .btn, .task-secondary-actions .voice-button { min-height:46px; }
.verified-box { margin-top: 15px; display: grid; grid-template-columns: 28px minmax(0,1fr) 62px; align-items: center; gap: 10px; padding: 10px; border-radius: 13px; background: var(--green-soft); }
.verified-box > span { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--green); font-size: 11px; }
.verified-box b { font-size: 10px; }
.verified-box p { margin: 2px 0 0; color: var(--muted); font-size: 9px; }
.verified-box img { width: 58px; height: 45px; border-radius: 8px; object-fit: cover; }

.setup-callout { margin-bottom: 18px; display: flex; align-items: center; gap: 17px; padding: 18px 21px; border: 1px solid #cce5dc; border-radius: 18px; background: var(--green-soft); }
.setup-callout strong { font-size: 13px; }
.setup-callout p { margin: 5px 0 0; color: var(--muted); font-size: 10px; }
.points-settings { display: grid; gap: 10px; }
.setting-point { min-height: 110px; display: grid; grid-template-columns: 55px minmax(0,1fr) 110px auto; gap: 16px; align-items: center; padding: 17px 19px; border: 1px solid var(--line); border-radius: 17px; background: white; }
.setting-point.inactive { opacity: .5; }
.point-number { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 15px; color: var(--green); background: var(--green-soft); font-size: 12px; font-weight: 800; }
.setting-main > span { color: var(--muted); font-size: 9px; }
.setting-main h2 { margin: 3px 0 7px; font-size: 16px; }
.setting-main p { margin: 0; display: flex; gap: 5px; flex-wrap: wrap; }
.setting-main p b, .rules-preview b { padding: 3px 7px; border-radius: 7px; color: var(--muted); background: #f1f4f2; font-size: 8px; font-weight: 600; }
.setting-owner small, .setting-owner strong { display: block; }
.setting-owner small { color: var(--soft); font-size: 8px; }
.setting-owner strong { margin-top: 4px; font-size: 11px; }
.privacy-note { margin-top: 18px; display: flex; gap: 22px; padding: 21px 24px; }
.privacy-note > span { flex: none; color: var(--green); font-size: 10px; font-weight: 800; }
.privacy-note h2 { margin: 0; font-size: 14px; }
.privacy-note p { margin: 5px 0 0; color: var(--muted); font-size: 10px; }

.modal-backdrop { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 20px; background: rgba(13,26,22,.42); backdrop-filter: blur(10px); animation: fade .15s; }
.modal { width: min(760px,100%); max-height: 92vh; overflow: auto; border-radius: 24px; background: white; box-shadow: 0 28px 80px rgba(9,31,24,.26); }
.modal.small { width: min(450px,100%); }
.modal.photo-modal { width: min(920px,100%); }
.modal-head { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; padding: 19px 22px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.96); backdrop-filter: blur(15px); }
.modal-head span { color: var(--green); font-size: 9px; font-weight: 800; }
.modal-head h2 { margin: 3px 0 0; font-size: 18px; }
.icon-button { width: 34px; height: 34px; border: 0; border-radius: 50%; color: var(--muted); background: #eef2ef; font-size: 18px; }
.modal-body { padding: 22px; }
.modal-foot { position: sticky; bottom: 0; display: flex; justify-content: flex-end; gap: 8px; padding: 15px 22px; border-top: 1px solid var(--line); background: rgba(255,255,255,.96); }
.analyzing { min-height: 390px; display: grid; place-items: center; align-content: center; padding: 38px; text-align: center; }
.scan-frame { width: 132px; height: 132px; position: relative; margin-bottom: 25px; border: 1px solid #9acdbf; border-radius: 28px; background: linear-gradient(145deg,#eff8f4,#d8ebe4); overflow: hidden; }
.scan-frame::before, .scan-frame::after { content:""; position:absolute; inset: 20px; border: 2px solid var(--green); border-left-color: transparent; border-right-color: transparent; border-radius: 18px; opacity:.35; }
.scan-frame span { position: absolute; left: 10px; right: 10px; height: 2px; top: 15px; background: #39b58d; box-shadow: 0 0 16px #1fa37c; animation: scan 1.8s infinite ease-in-out; }
.scan-frame i { position:absolute; inset:48px; border-radius:50%; background:var(--green); box-shadow:0 0 0 13px rgba(20,120,94,.1); }
.analyzing h2 { margin: 0; font-size: 20px; }
.analyzing p { margin: 8px 0 0; color: var(--muted); font-size: 11px; }
.analyzing small { margin-top: 18px; color: var(--soft); font-size: 9px; }
.result-modal { padding: 36px 28px 28px; text-align: center; }
.result-icon { width: 62px; height: 62px; margin: 0 auto 13px; display: grid; place-items: center; border-radius: 22px; color: white; background: var(--green); font-size: 25px; font-weight: 800; }
.result-modal.found .result-icon { background: var(--amber); }
.result-modal > span { color: var(--green); font-size: 10px; font-weight: 800; letter-spacing:.08em; }
.result-modal h2 { margin: 7px 0 0; font-size: 21px; }
.result-modal > p { margin: 8px 0 20px; color: var(--muted); font-size: 11px; }
.mini-issue { margin: 8px 0; padding: 12px 14px; border-radius: 12px; background: #f5f7f5; text-align: left; }
.mini-issue b, .mini-issue span { display: block; }
.mini-issue b { font-size: 11px; }
.mini-issue span { margin-top: 4px; color: var(--muted); font-size: 9px; }
.modal-actions { margin-top: 22px; display: flex; justify-content: center; gap: 8px; }
.role-list { display: grid; gap: 9px; }
.role-choice { min-height: 70px; display: grid; grid-template-columns: 42px 1fr auto; align-items: center; gap: 12px; padding: 10px 13px; border: 1px solid var(--line); border-radius: 14px; background: white; text-align: left; }
.role-choice > span { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; color: var(--green); background: var(--green-soft); font-weight: 800; }
.role-choice b, .role-choice small { display: block; }
.role-choice b { font-size: 12px; }
.role-choice small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.role-choice i { color: var(--soft); font-size: 20px; font-style: normal; }
.role-choice.active { border-color: #78bba9; background: #f4fbf8; }
.form-stack { display: grid; gap: 15px; }
.form-stack label { color: var(--muted); font-size: 10px; font-weight: 700; }
.form-stack input:not([type="checkbox"]), .form-stack select { width: 100%; height: 43px; margin-top: 6px; padding: 0 11px; border: 1px solid var(--line); border-radius: 11px; outline: 0; background: #fafcfa; }
.toggle-line { display: flex; align-items: center; gap: 8px; }
.rules-preview { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; padding: 12px; border-radius: 12px; background: #f5f7f5; }
.rules-preview span { width: 100%; margin-bottom: 3px; color: var(--green); font-size: 9px; }
.compare-photos { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.compare-photos figure { margin: 0; overflow: hidden; border-radius: 15px; background:#eef2ef; }
.compare-photos img { width: 100%; height: 320px; display:block; object-fit:cover; }
.compare-photos figcaption { padding: 8px; text-align:center; color:var(--muted); font-size:9px; }
.detail-copy { margin-top: 16px; padding: 16px; border-radius: 14px; background:#f4f7f5; }
.detail-copy span { color:var(--green); font-size:9px; font-weight:800; }
.detail-copy p { color:var(--muted); font-size:11px; }
.detail-copy strong { font-size:11px; }

.toast-root { position: fixed; right: 22px; bottom: 22px; z-index: 130; display: grid; gap: 8px; }
.toast { min-width: 240px; max-width: 360px; display:flex; align-items:center; gap:9px; padding: 12px 14px; border-radius: 12px; color: white; background: #17231f; box-shadow: 0 14px 40px rgba(0,0,0,.2); font-size: 11px; animation: toast .18s; }
.toast span { width:20px; height:20px; display:grid; place-items:center; border-radius:50%; background:rgba(255,255,255,.15); font-size:9px; }
.toast.error { background: #a43e39; }
.empty-state { min-height: 190px; display: grid; place-items: center; align-content: center; padding: 30px; color: var(--muted); text-align: center; }
.empty-state > span { width: 38px; height: 38px; margin-bottom: 10px; display:grid; place-items:center; border-radius:50%; color:var(--green); background:var(--green-soft); }
.empty-state strong { color: var(--ink); font-size: 14px; }
.empty-state p { margin:6px 0 0; font-size:10px; }
.page-loading { min-height: 60vh; display: grid; place-items:center; align-content:center; gap:17px; color:var(--muted); font-size:11px; }
.ai-loader { display:flex; gap:5px; }
.ai-loader i { width:8px; height:8px; border-radius:50%; background:var(--green); animation:bounce 1s infinite; }
.ai-loader i:nth-child(2) { animation-delay:.13s; }.ai-loader i:nth-child(3) { animation-delay:.26s; }
.bottom-nav { display:none; }

@keyframes pulse { 50% { box-shadow:0 0 0 8px rgba(28,173,120,0); } }
@keyframes orb { 50% { transform:scale(1.06); opacity:.45; } }
@keyframes scan { 50% { top:115px; } }
@keyframes bounce { 50% { transform:translateY(-7px); opacity:.45; } }
@keyframes fade { from { opacity:0; } }
@keyframes toast { from { transform:translateY(8px); opacity:0; } }

@media (max-width: 1050px) {
  .owner-grid { grid-template-columns: 1fr; }
  .point-grid { grid-template-columns: repeat(2,1fr); }
  .vision-mode { display:none; }
}

@media (max-width: 760px) {
  :root { --sidebar: 0px; }
  .sidebar { display:none; }
  .main-area { margin-left:0; }
  .topbar { height:64px; padding:0 15px; }
  .mobile-brand { display:flex; }
  .store-switch .eyebrow { display:none; }
  .store-switch select { max-width:132px; font-size:11px; }
  .data-pill { display:none; }
  .install-button { height: 32px; padding: 0 10px; font-size: 10px; }
  .avatar-button { min-width:38px; width:38px; padding:4px; }
  .avatar-button b { display:none; }
  .page { padding:22px 14px 92px; }
  .page-head { display:block; margin-bottom:20px; }
  .page-head h1 { font-size:25px; }
  .page-head p { font-size:11px; line-height:1.6; }
  .agent-hero { min-height:auto; padding:25px 20px; border-radius:22px; }
  .agent-state { display:block; }
  .agent-orb { width:54px; height:54px; margin-bottom:18px; border-radius:19px; }
  .agent-orb i { border-radius:23px; }
  .agent-orb span { font-size:16px; }
  .agent-state h1 { font-size:29px; }
  .agent-state p { font-size:10px; line-height:1.6; }
  .owner-stats { width:calc(100% - 20px); grid-template-columns:repeat(3,1fr); }
  .owner-stats > div { min-height:82px; padding:14px 10px; text-align:center; }
  .owner-stats span { font-size:8px; }
  .owner-stats strong { display:block; margin:3px 0 0; font-size:25px; }
  .owner-stats small { font-size:7px; }
  .attention-panel, .event-panel { padding:18px 14px; }
  .owner-issue { grid-template-columns:100px 1fr; }
  .owner-issue > img { min-height:210px; }
  .owner-issue-body { padding:13px; }
  .card-actions .btn { flex:1; padding:0 7px; }
  .round-switch { display:flex; overflow:auto; gap:8px; padding-bottom:3px; }
  .round-tab { min-width:145px; min-height:82px; }
  .round-progress { display:grid; grid-template-columns:1fr auto; padding:17px; }
  .round-progress .btn { grid-column:1/-1; }
  .progress-ring { width:58px; height:58px; }
  .point-grid { grid-template-columns:1fr 1fr; gap:10px; }
  .point-photo { height:125px; }
  .point-body { min-height:175px; padding:13px; }
  .point-body h3 { font-size:15px; }
  .point-body p { font-size:8px; }
  .task-card { grid-template-columns:105px minmax(0,1fr); border-radius:16px; }
  .task-photo { min-height:300px; }
  .task-content { padding:16px 13px; }
  .task-content h2 { font-size:17px; }
  .task-meta { flex-wrap:wrap; gap:5px; }
  .task-meta b { width:100%; margin:0; }
  .action-box { display:block; }
  .action-box strong { display:block; margin-top:5px; }
  .task-actions { margin-top:14px; display:grid; }
  .verified-box { grid-template-columns:24px 1fr; }
  .verified-box img { display:none; }
  .setting-point { grid-template-columns:42px 1fr auto; gap:9px; padding:14px; }
  .point-number { width:38px; height:38px; }
  .setting-owner { grid-column:2; }
  .setting-point > .btn { grid-column:3; grid-row:1/3; }
  .privacy-note { display:block; }
  .privacy-note div { margin-top:8px; }
  .compare-photos img { height:210px; }
  .bottom-nav { position:fixed; left:0; right:0; bottom:0; z-index:50; height:72px; display:grid; grid-template-columns:repeat(6,1fr); padding:7px 5px max(7px,env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:rgba(255,255,255,.94); backdrop-filter:blur(18px); }
  .bottom-nav .nav-item { height:52px; display:grid; place-items:center; align-content:center; gap:1px; padding:0; border-radius:12px; }
  .bottom-nav .nav-item > span { width:auto; font-size:17px; }
  .bottom-nav .nav-item b { font-size:8px; }
  .toast-root { left:14px; right:14px; bottom:84px; }
  .toast { min-width:0; max-width:none; }
  .modal-backdrop { padding:12px; align-items:end; }
  .modal { max-height:88vh; border-radius:23px 23px 15px 15px; }
}

/* 店员简易模式：四五十岁员工也能直接用，不要求打字和学习菜单。 */
body[data-role="purchaser"] .side-nav { margin-top: 22px; }
body[data-role="purchaser"] .bottom-nav { grid-template-columns: repeat(4,1fr); }
body[data-role="purchaser"] .task-content h2 { font-size: 24px; line-height: 1.35; }
body[data-role="purchaser"] .task-content > p { font-size: 14px; line-height: 1.7; }
body[data-role="purchaser"] .action-box { padding: 16px; }
body[data-role="purchaser"] .action-box span { font-size: 11px; }
body[data-role="purchaser"] .action-box strong { font-size: 16px; line-height: 1.55; }
body[data-role="purchaser"] .easy-task-actions .btn,
body[data-role="purchaser"] .easy-task-actions .voice-button { min-height: 54px; font-size: 14px; border-radius: 15px; }
body[data-role="purchaser"] .easy-task-actions .btn.primary { flex: 1 1 230px; }

@media (max-width:760px) {
  .easy-tip { align-items: flex-start; }
  .easy-tip p { line-height: 1.6; }
  .easy-actions { grid-template-columns: 1fr; }
  .easy-actions .voice-button, .easy-actions .btn { min-height: 48px; }
  body[data-role="purchaser"] .page { padding-top: 18px; }
  body[data-role="purchaser"] .page-head h1 { font-size: 28px; line-height: 1.3; }
  body[data-role="purchaser"] .task-card { display: block; border-left-width: 5px; }
  body[data-role="purchaser"] .task-photo { min-height: 220px; }
  body[data-role="purchaser"] .task-content { padding: 20px 17px; }
  body[data-role="purchaser"] .task-content h2 { font-size: 25px; }
  body[data-role="purchaser"] .task-content > p { font-size: 14px; }
  body[data-role="purchaser"] .task-actions { display: grid; }
  body[data-role="purchaser"] .task-actions .btn,
  body[data-role="purchaser"] .task-actions .voice-button { width:100%; min-height:56px; }
  body[data-role="purchaser"] .bottom-nav .nav-item b { font-size: 10px; }
}

@media (max-width: 390px) {
  .point-grid { grid-template-columns:1fr; }
  .point-photo { height:175px; }
  .task-card { grid-template-columns:90px minmax(0,1fr); }
}

/* 手机到货验收 */
.receiving-section { margin-top: 28px; }
.receiving-order-list, .receiving-history-list, .receiving-alerts { display: grid; gap: 14px; }
.receiving-order-card { padding: 22px; border: 1px solid var(--line); border-radius: 22px; background: #fff; box-shadow: var(--shadow); }
.receiving-order-head { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; }
.receiving-order-head span { color: var(--green); font-size: 10px; font-weight: 800; letter-spacing: .05em; }
.receiving-order-head h2 { margin: 5px 0 7px; font-size: 23px; }
.receiving-order-head p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.receiving-order-head > strong { font-size: 22px; white-space: nowrap; }
.receiving-photo-steps { margin-top: 18px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.receiving-capture { min-width:0; display:grid; gap:6px; }
.photo-step { min-height: 82px; display: flex; align-items: center; gap: 12px; padding: 13px; text-align: left; border: 1px dashed #b9cbc4; border-radius: 17px; color: var(--ink); background: #f8fbfa; }
.photo-step > b { width: 38px; height: 38px; flex: 0 0 38px; display: grid; place-items: center; border-radius: 13px; color: #fff; background: var(--green); font-size: 16px; }
.photo-step span { display: grid; gap: 4px; }
.photo-step strong { font-size: 14px; }
.photo-step small { color: var(--muted); font-size: 9px; }
.photo-step.ready { border-style: solid; border-color: #7bc8ae; background: var(--green-soft); }
.photo-gallery { min-height:38px; border:1px solid var(--line); border-radius:11px; color:var(--muted); background:#fff; font-size:11px; font-weight:800; }
.receiving-main-action { width: 100%; min-height: 48px; margin-top: 12px; }
.receiving-safety { display: block; margin-top: 9px; color: var(--muted); text-align: center; font-size: 9px; }
.receiving-alerts { margin-bottom: 26px; padding: 20px; border: 1px solid #f3c8c3; border-radius: 23px; background: #fff8f7; }
.receiving-alerts .section-title { margin-bottom: 4px; }
.receiving-alert-card { display: grid; grid-template-columns: 130px 1fr; gap: 16px; overflow: hidden; border: 1px solid #f0d7d4; border-radius: 18px; background: #fff; }
.receiving-alert-card img { width: 100%; height: 100%; min-height: 145px; object-fit: cover; }
.receiving-alert-card > div { padding: 15px 15px 15px 0; }
.receiving-alert-card span { color: var(--muted); font-size: 10px; }
.receiving-alert-card h3 { margin: 6px 0; font-size: 18px; }
.receiving-alert-card p { margin: 0 0 12px; color: var(--danger); font-size: 11px; }
.receiving-alert-card > div > div { display: flex; flex-wrap: wrap; gap: 7px; }
.receiving-history-card { width: 100%; min-height: 72px; display: grid; grid-template-columns: 40px 1fr auto 14px; align-items: center; gap: 12px; padding: 11px 15px; text-align: left; border: 1px solid var(--line); border-radius: 17px; color: var(--ink); background: #fff; }
.history-state { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 13px; font-weight: 900; }
.history-state.ok { color: var(--green); background: var(--green-soft); }
.history-state.warn { color: var(--danger); background: #fff0ee; }
.receiving-history-card div { display: grid; gap: 4px; }
.receiving-history-card small { color: var(--muted); font-size: 9px; }
.receiving-history-card > b { font-size: 11px; }
.receiving-history-card i { color: var(--muted); font-style: normal; }
.supplier-record { margin-top: 26px; padding: 22px; }
.supplier-mini-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; }
.supplier-mini-grid article { display: grid; gap: 5px; padding: 13px; border-radius: 14px; background: #f6f9f8; }
.supplier-mini-grid span { color: var(--muted); font-size: 9px; }
.supplier-mini-grid b { color: var(--green); font-size: 10px; }
.supplier-mini-grid b.warn { color: var(--danger); }
.back-button { margin-bottom: 18px; padding: 0; border: 0; color: var(--green); background: transparent; font-weight: 800; }
.receiving-ai-card { display: grid; grid-template-columns: minmax(240px,.8fr) 1.2fr; gap: 22px; padding: 18px; border: 1px solid #bde2d6; border-radius: 24px; background: linear-gradient(135deg,#eaf8f3,#fff); }
.receiving-photos { min-height: 220px; display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.receiving-photos img { width: 100%; height: 100%; min-height: 220px; object-fit: cover; border-radius: 15px; }
.receiving-photos img:only-child { grid-column: 1/-1; }
.receiving-ai-copy { align-self: center; }
.receiving-ai-copy > span { color: var(--green); font-size: 10px; font-weight: 800; }
.receiving-ai-copy h2 { margin: 8px 0; font-size: 25px; line-height: 1.35; }
.receiving-ai-copy p { margin: 0; color: var(--muted); font-size: 11px; }
.ai-receiving-findings { margin-top: 12px; display: grid; gap: 8px; }
.ai-receiving-findings article { display: grid; grid-template-columns: 58px 1fr; gap: 12px; padding: 13px; border-left: 4px solid var(--danger); border-radius: 13px; background: #fff1ef; }
.ai-receiving-findings span { align-self: start; padding: 5px 7px; border-radius: 99px; color: var(--danger); background: #fff; text-align: center; font-size: 9px; font-weight: 800; }
.ai-receiving-findings b { font-size: 14px; }
.ai-receiving-findings p { margin: 4px 0 0; color: #73504c; font-size: 11px; }
.ai-no-findings { margin-top: 12px; padding: 15px; border-radius: 14px; color: var(--green); background: var(--green-soft); font-weight: 700; }
.receiving-review-list { margin-top: 28px; }
.receiving-check-item { margin-bottom: 12px; padding: 20px; border: 1px solid var(--line); border-radius: 20px; background: #fff; }
.receiving-check-item.ai-warning { border-color: #efb9b1; box-shadow: inset 5px 0 #d95043; }
.receiving-item-title { display: flex; gap: 12px; }
.receiving-item-title > span { min-width: 48px; color: var(--green); font-size: 10px; font-weight: 800; }
.receiving-item-title h3 { margin: 0 0 5px; font-size: 20px; }
.receiving-item-title p { margin: 0; color: var(--muted); font-size: 10px; }
.ai-item-warning { margin: 13px 0; padding: 12px; border-radius: 12px; color: #8b3027; background: #fff0ee; }
.ai-item-warning p { margin: 4px 0 0; font-size: 11px; }
.receiving-input-grid { margin-top: 17px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.receiving-input-grid label > span, .quality-choice legend { display: block; margin-bottom: 7px; color: var(--muted); font-size: 10px; font-weight: 700; }
.receiving-input-grid label > small { display: block; margin-top: 5px; color: var(--green); font-size: 8px; }
.number-stepper { display: grid; grid-template-columns: 48px 1fr 48px; min-height: 48px; overflow: hidden; border: 1px solid var(--line); border-radius: 13px; }
.number-stepper button { border: 0; color: var(--green); background: var(--green-soft); font-size: 22px; font-weight: 800; }
.number-stepper input, .money-input input { width: 100%; min-width: 0; border: 0; outline: 0; text-align: center; font-size: 18px; font-weight: 800; }
.money-input { min-height: 48px; display: grid; grid-template-columns: 38px 1fr; align-items: center; overflow: hidden; border: 1px solid var(--line); border-radius: 13px; }
.money-input b { padding-left: 14px; color: var(--green); font-size: 17px; }
.quality-choice { margin: 17px 0 0; padding: 0; border: 0; }
.quality-choice label { display: inline-block; margin-right: 8px; }
.quality-choice input { position: absolute; opacity: 0; pointer-events: none; }
.quality-choice span { min-height: 45px; display: inline-flex; align-items: center; padding: 0 18px; border: 1px solid var(--line); border-radius: 13px; font-size: 13px; font-weight: 800; }
.quality-choice input:checked + span { border-color: var(--green); color: var(--green); background: var(--green-soft); box-shadow: 0 0 0 2px rgba(13,132,101,.08); }
.quality-choice label:last-child input:checked + span { border-color: var(--danger); color: var(--danger); background: #fff0ee; }
.receiving-confirm-bar { position: sticky; bottom: 10px; z-index: 10; display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 20px; padding: 14px 16px; border: 1px solid #a8dac9; border-radius: 18px; background: rgba(255,255,255,.96); box-shadow: 0 14px 40px rgba(20,55,43,.18); backdrop-filter: blur(14px); }
.receiving-confirm-bar div { display: grid; gap: 3px; }
.receiving-confirm-bar span { color: var(--muted); font-size: 9px; }
.receiving-result-item { margin-bottom: 8px; display: grid; grid-template-columns: 35px 1fr auto; gap: 12px; align-items: center; padding: 14px; border-radius: 15px; background: #fff; }
.receiving-result-item > span { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 10px; background: #f0f5f3; font-weight: 800; }
.receiving-result-item h3 { margin: 0 0 4px; font-size: 15px; }
.receiving-result-item p { margin: 0; color: var(--muted); font-size: 10px; }
.receiving-result-item div > b { color: var(--danger); font-size: 10px; }
.receiving-result-item > strong { color: var(--green); font-size: 11px; }
.receiving-result-item.bad > strong { color: var(--danger); }
.owner-resolution { margin-top: 20px; padding: 22px; border-color: #efc6c0; }
.owner-resolution > span { color: var(--danger); font-size: 10px; font-weight: 800; }
.owner-resolution h2 { margin: 5px 0; }
.owner-resolution p { color: var(--muted); font-size: 11px; }
.owner-resolution > div { display: flex; flex-wrap: wrap; gap: 8px; }
.receiving-done { margin-top: 20px; display: grid; gap: 5px; padding: 20px; border-radius: 17px; color: var(--green); background: var(--green-soft); text-align: center; }
.receiving-done.waiting { color: #9b5a00; background: #fff5df; }
.receiving-done span { font-size: 10px; }

@media (max-width:760px) {
  .receiving-order-card { padding: 17px 15px; border-radius:18px; }
  .receiving-order-head h2 { font-size: 21px; }
  .receiving-order-head > strong { font-size: 16px; }
  .receiving-photo-steps { grid-template-columns: 1fr; }
  .receiving-capture { grid-template-columns:minmax(0,1fr) 88px; align-items:stretch; }
  .photo-step { min-height: 74px; border-style:solid; border-color:#b7d8cd; border-radius:15px; background:#f0f8f5; }
  .photo-step strong { font-size:15px; }
  .photo-step small { font-size:10px; }
  .photo-gallery { min-height:74px; padding:0 8px; border-color:#cad7d2; border-radius:15px; font-size:12px; }
  .receiving-main-action { width:100%; min-height:54px; margin-top:12px; font-size:14px; }
  body[data-role="purchaser"] .receiving-main-action { min-height: 56px; font-size: 15px; }
  .receiving-alert-card { grid-template-columns: 90px 1fr; }
  .receiving-alert-card > div { padding: 12px 10px 12px 0; }
  .receiving-alert-card h3 { font-size: 15px; }
  .supplier-mini-grid { grid-template-columns: 1fr; }
  .receiving-ai-card { grid-template-columns: 1fr; padding: 13px; }
  .receiving-photos { min-height: 180px; }
  .receiving-photos img { min-height: 180px; }
  .receiving-ai-copy { padding: 3px 5px 8px; }
  .receiving-ai-copy h2 { font-size: 20px; }
  .receiving-input-grid { grid-template-columns: 1fr; }
  .quality-choice { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .quality-choice label { margin: 0; }
  .quality-choice span { justify-content: center; padding: 0 8px; }
  .receiving-confirm-bar { bottom: 76px; display: grid; }
  .receiving-confirm-bar .btn { min-height: 54px; }
  .receiving-result-item { grid-template-columns: 32px 1fr; }
  .receiving-result-item > strong { grid-column: 2; }
  .owner-resolution > div { display: grid; }
  .owner-resolution .btn { min-height: 48px; }
}

/* 手机员工工作台：统一使用单列大卡片，老板和店员在手机上看到相同的清晰布局。 */
@media (max-width:760px) {
  .task-tabs { width:100%; display:grid; grid-template-columns:1fr 1fr; margin:-4px 0 14px; padding:4px; }
  .task-tabs button { width:100%; min-width:0; height:40px; font-size:13px; }
  .task-list-page { gap:14px; }
  .task-card,
  body[data-role="purchaser"] .task-card { display:block; overflow:hidden; border:1px solid var(--line); border-top:4px solid #d6aa58; border-left:1px solid var(--line); border-radius:20px; box-shadow:0 8px 26px rgba(28,51,43,.08); }
  .task-card.red,
  body[data-role="purchaser"] .task-card.red { border-top-color:var(--red); border-left-color:var(--line); }
  .task-photo,
  body[data-role="purchaser"] .task-photo { display:block; width:100%; height:165px; min-height:165px; }
  .task-photo img { position:static; display:block; width:100%; height:100%; object-fit:cover; object-position:center top; }
  .task-photo span { left:12px; bottom:10px; padding:6px 10px; font-size:10px; }
  .task-content,
  body[data-role="purchaser"] .task-content { padding:16px; }
  .task-meta { display:flex; flex-wrap:wrap; gap:6px; font-size:11px; }
  .task-meta b { width:auto; margin-left:auto; }
  .task-content h2,
  body[data-role="purchaser"] .task-content h2 { margin-top:11px; font-size:22px; line-height:1.3; }
  .task-content > p,
  body[data-role="purchaser"] .task-content > p { margin-top:7px; font-size:13px; line-height:1.65; }
  .action-box,
  body[data-role="purchaser"] .action-box { display:block; margin:13px 0; padding:13px 14px; border-radius:13px; }
  .action-box span,
  body[data-role="purchaser"] .action-box span { display:block; font-size:11px; }
  .action-box strong,
  body[data-role="purchaser"] .action-box strong { display:block; margin-top:5px; font-size:15px; line-height:1.55; }
  .assignee { margin-top:10px; }
  .person { width:34px; height:34px; }
  .assignee small, .assignee b { font-size:10px; }
  .task-actions,
  body[data-role="purchaser"] .task-actions { width:100%; display:grid; gap:8px; margin-top:14px; }
  .task-actions .task-camera,
  body[data-role="purchaser"] .task-actions .task-camera { width:100%; min-height:56px; border-radius:15px; font-size:15px; }
  .task-secondary-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
  .task-secondary-actions .btn,
  .task-secondary-actions .voice-button,
  body[data-role="purchaser"] .task-secondary-actions .btn,
  body[data-role="purchaser"] .task-secondary-actions .voice-button { width:100%; min-height:46px; padding:0 8px; border-radius:13px; font-size:12px; }
  .verified-box { margin-top:13px; padding:12px; }

  .point-grid { grid-template-columns:1fr; gap:12px; }
  .point-card { border-radius:19px; }
  .point-photo { height:155px; }
  .point-body { min-height:0; padding:15px; }
  .point-body > div > span { font-size:11px; }
  .point-body h3 { margin-top:4px; font-size:20px; }
  .point-body p { min-height:0; margin:8px 0 13px; font-size:12px; line-height:1.6; }
  .point-upload-actions { grid-template-columns:1fr 1fr; }
  .point-upload-actions .btn.primary { min-height:54px; font-size:14px; }
  .point-upload-actions .btn, .point-upload-actions .voice-button { min-height:44px; font-size:12px; }
  .round-switch { display:grid; grid-template-columns:1fr 1fr; overflow:visible; }
  .round-tab { min-width:0; min-height:76px; padding:13px; }
  .round-progress { margin-bottom:14px; border-radius:18px; }
}

/* 微信式快速下单：整段粘贴，核对后生成正式采购单。 */
.quick-order-compose { padding: 24px; }
.quick-order-top, .quick-review-head, .quick-submit-bar { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.quick-order-top > div:first-child > span, .quick-review-head > div > span { color:var(--green); font-size:10px; font-weight:800; letter-spacing:.08em; }
.quick-order-top h2, .quick-review-head h2 { margin:5px 0 0; font-size:21px; }
.quick-tools { display:flex; gap:7px; flex-wrap:wrap; }
.quick-order-text { width:100%; min-height:260px; margin-top:18px; resize:vertical; padding:18px; border:1px solid #cfdad5; border-radius:17px; outline:0; color:var(--ink); background:#fbfdfc; font-size:15px; line-height:1.8; transition:.15s; }
.quick-order-text:focus { border-color:#69b49e; box-shadow:0 0 0 4px rgba(20,120,94,.08); background:#fff; }
.quick-order-controls { display:grid; grid-template-columns:minmax(220px,1fr) auto; align-items:end; gap:12px; margin-top:14px; }
.quick-order-controls label, .quick-final-settings label { display:grid; gap:7px; color:var(--muted); font-size:10px; font-weight:700; }
.quick-order-controls select, .quick-final-settings input { width:100%; height:46px; padding:0 13px; border:1px solid var(--line); border-radius:13px; outline:0; background:#fff; }
.quick-recognize { min-width:210px; min-height:46px; }
.draft-saved { display:block; margin-top:10px; color:var(--soft); font-size:9px; }
.quick-preview { scroll-margin-top:90px; margin-top:18px; }
.quick-empty { min-height:130px; display:flex; align-items:center; justify-content:center; gap:15px; padding:24px; border:1px dashed #bcd0c8; border-radius:20px; color:var(--muted); background:#f8fbf9; }
.quick-empty > span { width:42px; height:42px; flex:0 0 42px; display:grid; place-items:center; border-radius:14px; color:#fff; background:var(--green); font-weight:900; }
.quick-empty strong { display:block; color:var(--ink); font-size:14px; }
.quick-empty p { margin:5px 0 0; font-size:10px; }
.quick-review { padding:24px; }
.quick-review-head p { margin:7px 0 0; color:var(--muted); font-size:10px; }
.recognition-ok { padding:8px 12px; border-radius:99px; color:var(--green); background:var(--green-soft); font-size:10px; white-space:nowrap; }
.quick-unparsed { margin-top:16px; padding:15px; border:1px solid #f0c9a4; border-radius:15px; background:#fff8ec; }
.quick-unparsed > strong { color:#9b5a00; font-size:11px; }
.quick-unparsed p { display:grid; grid-template-columns:minmax(100px,.7fr) 1.3fr; gap:12px; margin:9px 0 0; font-size:10px; }
.quick-unparsed p span { color:var(--muted); }
.quick-order-rows { display:grid; gap:10px; margin-top:18px; }
.quick-order-row { display:grid; grid-template-columns:34px minmax(0,1fr) 34px; gap:12px; align-items:start; padding:15px; border:1px solid var(--line); border-radius:17px; background:#fff; }
.quick-row-index { width:32px; height:32px; display:grid; place-items:center; border-radius:10px; color:var(--green); background:var(--green-soft); font-size:11px; font-weight:900; }
.quick-row-main { min-width:0; }
.quick-row-name { display:flex; align-items:center; gap:9px; }
.quick-row-name > input { min-width:150px; max-width:270px; height:36px; padding:0 9px; border:1px solid transparent; border-radius:9px; outline:0; background:#f5f8f6; font-size:15px; font-weight:800; }
.quick-row-name > input:focus { border-color:#8ac5b4; background:#fff; }
.quick-match { padding:5px 8px; border-radius:99px; font-size:8px; font-weight:800; white-space:nowrap; }
.quick-match.matched { color:var(--green); background:var(--green-soft); }
.quick-match.new { color:#9b650d; background:var(--amber-soft); }
.quick-warning { margin:7px 0 0; color:#a4660d; font-size:9px; }
.quick-row-fields { display:grid; grid-template-columns:100px 90px minmax(180px,1fr); gap:8px; margin-top:11px; }
.quick-row-fields label { min-width:0; display:grid; gap:5px; color:var(--muted); font-size:8px; font-weight:700; }
.quick-row-fields input, .quick-row-fields select { width:100%; min-width:0; height:38px; padding:0 9px; border:1px solid var(--line); border-radius:10px; outline:0; background:#fafcfa; font-size:11px; }
.quick-row-fields input:focus, .quick-row-fields select:focus { border-color:#81beaD; background:#fff; }
.quick-row-more { margin-top:8px; color:var(--muted); font-size:9px; }
.quick-row-more summary { width:max-content; max-width:100%; cursor:pointer; list-style:none; }
.quick-row-more summary::-webkit-details-marker { display:none; }
.quick-row-more summary::before { content:"›"; display:inline-block; margin-right:6px; transition:.15s; }
.quick-row-more[open] summary::before { transform:rotate(90deg); }
.quick-row-more summary b { margin-left:4px; color:var(--green); }
.quick-row-more > div { display:grid; grid-template-columns:minmax(180px,1fr) 130px; gap:8px; margin-top:8px; padding:10px; border-radius:11px; background:#f6f9f7; }
.quick-row-more label { display:grid; gap:5px; font-size:8px; font-weight:700; }
.quick-row-more input, .quick-row-more select { width:100%; min-width:0; height:38px; padding:0 9px; border:1px solid var(--line); border-radius:10px; outline:0; background:#fff; font-size:11px; }
.quick-remove { width:32px; height:32px; border:0; border-radius:10px; color:var(--soft); background:#f3f5f3; font-size:20px; }
.quick-remove:hover { color:var(--red); background:var(--red-soft); }
.quick-add-line { width:100%; min-height:44px; margin-top:10px; border:1px dashed #a9c8bd; border-radius:14px; color:var(--green); background:#f8fbfa; font-size:11px; font-weight:800; }
.quick-final-settings { display:grid; grid-template-columns:260px 1fr; gap:12px; margin-top:18px; padding-top:18px; border-top:1px solid var(--line); }
.quick-submit-bar { position:sticky; bottom:10px; z-index:8; margin-top:18px; padding:14px 16px; border:1px solid #a8dac9; border-radius:17px; background:rgba(255,255,255,.96); box-shadow:0 14px 36px rgba(20,55,43,.15); backdrop-filter:blur(14px); }
.quick-submit-bar div { display:grid; gap:4px; }
.quick-submit-bar span { color:var(--muted); font-size:9px; }
.quick-submit-bar strong { font-size:11px; }
.quick-history { margin-top:30px; }
.quick-history-list { display:grid; gap:9px; }
.quick-history-card { width:100%; min-height:78px; display:grid; grid-template-columns:80px minmax(0,1fr) auto 14px; align-items:center; gap:13px; padding:12px 15px; border:1px solid var(--line); border-radius:16px; color:var(--ink); background:#fff; text-align:left; }
.quick-history-card:hover { border-color:#9fcbbb; box-shadow:var(--shadow); }
.order-status { padding:6px 8px; border-radius:99px; color:#8d620f; background:var(--amber-soft); text-align:center; font-size:9px; font-weight:800; }
.order-status.confirmed, .order-status.exported, .order-status.received { color:var(--green); background:var(--green-soft); }
.order-status.cancelled { color:var(--muted); background:#eef1ef; }
.quick-history-card div { min-width:0; }
.quick-history-card div > strong { font-size:13px; }
.quick-history-card p { overflow:hidden; margin:5px 0; color:var(--muted); font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.quick-history-card small { color:var(--soft); font-size:8px; }
.quick-history-card > b { font-size:12px; white-space:nowrap; }
.quick-history-card > i { color:var(--soft); font-style:normal; }
.quick-order-detail { padding:24px; }
.quick-detail-summary { display:grid; grid-template-columns:1fr 1fr; overflow:hidden; margin-bottom:18px; border:1px solid var(--line); border-radius:16px; background:#f8faf9; }
.quick-detail-summary div { display:grid; gap:5px; padding:17px; }
.quick-detail-summary div + div { border-left:1px solid var(--line); }
.quick-detail-summary span { color:var(--muted); font-size:9px; }
.quick-detail-summary strong { font-size:18px; }
.quick-detail-list { display:grid; }
.quick-detail-row { display:grid; grid-template-columns:32px minmax(0,1fr) auto 100px; gap:12px; align-items:center; padding:12px 2px; border-bottom:1px solid #edf0ee; }
.quick-detail-row > span { width:30px; height:30px; display:grid; place-items:center; border-radius:9px; color:var(--green); background:var(--green-soft); font-size:9px; font-weight:800; }
.quick-detail-row h3 { margin:0; font-size:14px; }
.quick-detail-row p { margin:4px 0 0; color:var(--muted); font-size:9px; }
.quick-detail-row > strong { font-size:14px; }
.quick-detail-row > small { color:var(--muted); text-align:right; font-size:9px; }
.quick-detail-note { margin-top:16px; padding:14px; border-radius:13px; background:var(--amber-soft); }
.quick-detail-note span { color:#936216; font-size:9px; font-weight:800; }
.quick-detail-note p { margin:5px 0 0; font-size:11px; }
.quick-share-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }
.quick-share-actions .btn { flex:1 1 150px; }
.quick-share-tip { margin:10px 0 0; color:var(--soft); text-align:center; font-size:8px; }

@media (max-width:760px) {
  .quick-order-compose, .quick-review, .quick-order-detail { padding:17px 14px; }
  .quick-order-top { display:block; }
  .quick-tools { margin-top:12px; }
  .quick-tools .btn { flex:1; padding:0 8px; }
  .quick-order-text { min-height:320px; padding:14px; font-size:16px; line-height:1.75; }
  .quick-order-controls { grid-template-columns:1fr; }
  .quick-recognize { width:100%; min-height:52px; }
  .quick-review-head { display:block; }
  .recognition-ok { display:inline-block; margin-top:10px; }
  .quick-order-row { grid-template-columns:31px minmax(0,1fr) 31px; gap:8px; padding:12px 9px; }
  .quick-row-name { display:grid; gap:6px; }
  .quick-row-name > input { width:100%; max-width:none; height:42px; font-size:17px; }
  .quick-match { width:max-content; }
  .quick-row-fields { grid-template-columns:1fr 1fr; }
  .quick-row-fields .note-field { grid-column:1/-1; }
  .quick-row-fields input, .quick-row-fields select { height:44px; font-size:13px; }
  .quick-row-more > div { grid-template-columns:1fr 110px; }
  .quick-row-more input, .quick-row-more select { height:42px; }
  .quick-final-settings { grid-template-columns:1fr; }
  .quick-submit-bar { display:block; bottom:78px; }
  .quick-submit-bar .btn { width:100%; min-height:52px; margin-top:12px; }
  .quick-history-card { grid-template-columns:68px minmax(0,1fr) 14px; gap:9px; padding:11px; }
  .quick-history-card > b { display:none; }
  .quick-detail-row { grid-template-columns:30px minmax(0,1fr) auto; gap:8px; }
  .quick-detail-row > small { display:none; }
  .quick-share-actions { display:grid; grid-template-columns:1fr 1fr; }
  .quick-share-actions .btn:first-child { grid-column:1/-1; }
}

/* 商品库点选下单：像点外卖，不要求老板粘贴或学习格式。 */
.catalog-toolbar { position:sticky; top:88px; z-index:12; padding:16px; background:rgba(255,255,255,.96); backdrop-filter:blur(18px); }
.catalog-page-head .kicker { font-size:14px; }
.catalog-page-head p { font-size:16px; line-height:1.65; }
.catalog-search { height:52px; display:grid; grid-template-columns:38px 1fr 36px; align-items:center; overflow:hidden; border:1px solid #ccd9d4; border-radius:16px; background:#f8fbf9; }
.catalog-search > span { color:var(--green); text-align:center; font-size:24px; transform:rotate(-15deg); }
.catalog-search input { width:100%; height:100%; border:0; outline:0; color:var(--ink); background:transparent; font-size:18px; }
.catalog-search button { width:28px; height:28px; border:0; border-radius:50%; color:var(--muted); background:#e9eeeb; }
.catalog-browser { min-width:0; }
.catalog-categories { display:flex; gap:8px; overflow-x:auto; margin-top:12px; padding:10px; border:1px solid var(--line); border-radius:18px; background:#fff; box-shadow:var(--shadow); scrollbar-width:none; }
.catalog-categories::-webkit-scrollbar { display:none; }
.catalog-categories button { min-width:max-content; height:44px; display:flex; align-items:center; gap:7px; padding:0 16px; border:1px solid var(--line); border-radius:99px; color:var(--muted); background:#fff; font-size:14px; font-weight:800; }
.catalog-categories button b { font:inherit; }
.catalog-categories button small { min-width:23px; height:23px; display:grid; place-items:center; padding:0 6px; border-radius:99px; color:var(--soft); background:#f0f3f1; font-size:11px; }
.catalog-categories button.active { border-color:var(--green); color:#fff; background:var(--green); }
.catalog-categories button.active small { color:var(--green); background:#fff; }
.catalog-section { margin-top:24px; }
.catalog-help { color:var(--muted); font-size:14px; }
.catalog-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.catalog-product { min-width:0; min-height:248px; display:flex; flex-direction:column; padding:18px; border:1px solid var(--line); border-radius:19px; background:#fff; box-shadow:var(--shadow); transition:.15s; }
.catalog-product.selected { border-color:#7bc4af; box-shadow:0 0 0 2px rgba(20,120,94,.08); }
.catalog-product-top { min-height:22px; display:flex; align-items:center; justify-content:space-between; }
.catalog-product-top span { padding:5px 9px; border-radius:99px; color:var(--green); background:var(--green-soft); font-size:12px; font-weight:800; }
.catalog-product-top b { color:var(--green); font-size:12px; }
.catalog-product h3 { margin:14px 0 0; font-size:22px; line-height:1.25; }
.catalog-product p { margin:8px 0 0; color:var(--muted); font-size:14px; line-height:1.45; }
.catalog-product > small { min-height:38px; display:block; margin:8px 0 14px; color:#76837e; font-size:12px; line-height:1.55; }
.catalog-section .section-title span { font-size:13px; }
.catalog-section .section-title h2 { font-size:22px; }
.catalog-add { width:100%; min-height:48px; margin-top:auto; border:1px solid #abd5c7; border-radius:12px; color:var(--green); background:#f0faf6; font-size:15px; font-weight:900; }
.catalog-stepper { min-height:52px; display:grid; grid-template-columns:44px minmax(0,1fr) 44px; align-items:stretch; overflow:hidden; margin-top:auto; border:1px solid #83c4b1; border-radius:12px; background:#fff; }
.catalog-stepper > button { height:100%; border:0; color:var(--green); background:var(--green-soft); font-size:24px; font-weight:900; }
.catalog-qty-main { min-width:0; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.catalog-stepper input { width:100%; min-width:28px; height:100%; padding:0 2px; border:0; outline:0; text-align:center; font-size:19px; font-weight:900; }
.catalog-unit-toggle { min-width:48px; height:100%; flex:none; display:grid; place-items:center; align-content:center; gap:1px; padding:0 5px; border:0; border-left:1px solid #d8e6e1; color:var(--green); background:#f3faf7; }
.catalog-unit-toggle b { font-size:15px; line-height:1; }
.catalog-unit-toggle small { color:#6d8d83; font-size:8px; line-height:1; }
.catalog-no-result { grid-column:1/-1; min-height:220px; display:grid; place-items:center; align-content:center; gap:7px; padding:30px; border:1px dashed #b7ccc4; border-radius:20px; color:var(--muted); text-align:center; }
.catalog-no-result strong { color:var(--ink); }
.catalog-no-result p { margin:0 0 9px; font-size:10px; }
.catalog-cart-bar { position:fixed; right:24px; bottom:24px; z-index:45; min-width:340px; display:grid; grid-template-columns:48px 1fr auto; align-items:center; gap:12px; padding:10px 10px 10px 13px; border:1px solid rgba(255,255,255,.18); border-radius:20px; color:#fff; background:#153c32; box-shadow:0 18px 45px rgba(13,55,43,.28); }
.catalog-bag { position:relative; width:44px; height:44px; display:grid; place-items:center; border-radius:14px; color:#fff; background:var(--green); font-weight:900; }
.catalog-bag b { position:absolute; right:-5px; top:-6px; min-width:22px; height:22px; display:grid; place-items:center; padding:0 5px; border:2px solid #153c32; border-radius:99px; color:#8d2f29; background:#ffddd8; font-size:11px; }
.catalog-cart-bar > div:nth-child(2) { display:grid; gap:3px; }
.catalog-cart-bar > div:nth-child(2) span { color:rgba(255,255,255,.68); font-size:12px; }
.catalog-cart-bar > div:nth-child(2) strong { font-size:15px; }
.catalog-cart-bar > button { height:46px; padding:0 17px; border:0; border-radius:13px; color:#123a2f; background:#8be0bf; font-size:14px; font-weight:900; }
.catalog-cart-list { overflow:hidden; }
.catalog-cart-item { display:grid; grid-template-columns:36px minmax(140px,1fr) 220px minmax(180px,.8fr) 45px; align-items:center; gap:13px; padding:15px 18px; border-bottom:1px solid var(--line); }
.catalog-cart-item:last-child { border:0; }
.catalog-cart-item > span { width:32px; height:32px; display:grid; place-items:center; border-radius:10px; color:var(--green); background:var(--green-soft); font-size:10px; font-weight:900; }
.catalog-cart-name h3 { margin:0; font-size:18px; }
.catalog-cart-name p { margin:5px 0 0; color:var(--muted); font-size:13px; }
.catalog-cart-qty { height:48px; display:grid; grid-template-columns:42px minmax(0,1fr) 42px; align-items:stretch; overflow:hidden; border:1px solid #b5d5ca; border-radius:12px; }
.catalog-cart-qty > button { height:100%; border:0; color:var(--green); background:var(--green-soft); font-size:20px; }
.catalog-cart-qty input { min-width:0; width:100%; height:100%; border:0; outline:0; text-align:right; font-size:17px; font-weight:900; }
.catalog-cart-qty .catalog-unit-toggle { min-width:56px; }
.catalog-cart-note { min-width:0; height:46px; padding:0 12px; border:1px solid var(--line); border-radius:11px; outline:0; background:#fafcfa; font-size:14px; }
.catalog-cart-remove { border:0; color:var(--red); background:transparent; font-size:13px; font-weight:800; }
.catalog-checkout { margin-top:15px; padding:20px; }
.catalog-checkout .quick-final-settings { margin:0; padding:0; border:0; }
.catalog-checkout-action { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-top:16px; padding-top:16px; border-top:1px solid var(--line); }
.catalog-checkout-action div { display:grid; gap:4px; }
.catalog-checkout-action span { color:var(--muted); font-size:9px; }
.catalog-checkout-action strong { font-size:12px; }
.catalog-checkout-action .btn { min-width:180px; min-height:48px; }
.custom-product-form { display:grid; gap:14px; }
.custom-product-form > div { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.custom-product-form label { display:grid; gap:7px; color:var(--muted); font-size:13px; font-weight:800; }
.custom-product-form input, .custom-product-form select { width:100%; height:50px; padding:0 12px; border:1px solid var(--line); border-radius:12px; outline:0; background:#fafcfa; font-size:16px; }
.custom-product-form .btn { min-height:50px; margin-top:4px; }

@media (max-width:1050px) {
  .catalog-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .catalog-cart-item { grid-template-columns:32px minmax(120px,1fr) 190px minmax(150px,.8fr) 40px; }
}

@media (max-width:760px) {
  .catalog-page-head { margin-bottom:18px; }
  .catalog-page-head h1 { font-size:25px; line-height:1.25; }
  .catalog-page-head p { margin-top:7px; font-size:13px; line-height:1.55; }
  .catalog-page-head .page-actions { margin-top:12px; }
  .catalog-page-head .page-actions .btn { min-height:40px; }
  .catalog-toolbar { top:64px; margin:0 -14px; padding:10px 14px; border-radius:0; border-left:0; border-right:0; box-shadow:0 8px 20px rgba(32,59,50,.06); }
  .catalog-search { height:48px; border-radius:14px; }
  .catalog-search input { font-size:16px; }
  .catalog-browser { display:grid; grid-template-columns:86px minmax(0,1fr); align-items:start; gap:10px; margin:0 -14px; }
  .catalog-categories { position:sticky; top:133px; z-index:8; max-height:calc(100vh - 213px); display:flex; flex-direction:column; gap:4px; overflow-x:hidden; overflow-y:auto; margin:0; padding:8px 5px 12px; border:0; border-right:1px solid var(--line); border-radius:0; background:#f1f5f2; box-shadow:none; }
  .catalog-categories button { width:100%; min-width:0; height:52px; flex:none; display:grid; place-items:center; align-content:center; gap:2px; padding:0 3px; border:0; border-radius:11px; color:#68756f; background:transparent; font-size:12px; }
  .catalog-categories button small { min-width:0; height:auto; padding:0; color:#9aa6a1; background:transparent; font-size:9px; }
  .catalog-categories button.active { box-shadow:0 5px 14px rgba(20,120,94,.18); }
  .catalog-categories button.active small { color:rgba(255,255,255,.75); background:transparent; }
  .catalog-section { min-width:0; margin:0; padding:16px 14px 115px 0; }
  .catalog-section .section-title { margin-bottom:11px; }
  .catalog-section .section-title span { font-size:11px; }
  .catalog-section .section-title h2 { margin-top:3px; font-size:19px; }
  .catalog-grid { grid-template-columns:minmax(0,1fr); gap:9px; }
  .catalog-product { min-width:0; min-height:190px; padding:13px; border-radius:16px; box-shadow:0 5px 18px rgba(27,53,44,.05); }
  .catalog-product-top span { padding:4px 8px; font-size:11px; }
  .catalog-product h3 { margin-top:10px; font-size:19px; overflow-wrap:anywhere; }
  .catalog-product p { margin-top:5px; font-size:13px; }
  .catalog-product > small { min-height:30px; margin:5px 0 8px; font-size:11px; overflow-wrap:anywhere; }
  .catalog-add { min-height:45px; font-size:14px; }
  .catalog-stepper { width:100%; min-width:0; min-height:48px; grid-template-columns:42px minmax(0,1fr) 42px; }
  .catalog-stepper > button { min-width:0; font-size:22px; }
  .catalog-qty-main { min-width:0; }
  .catalog-stepper input { min-width:28px; padding:0; font-size:18px; text-align:right; }
  .catalog-unit-toggle { min-width:58px; }
  .catalog-unit-toggle b { font-size:15px; }
  .catalog-help { display:none; }
  .catalog-cart-bar { left:12px; right:12px; bottom:78px; min-width:0; grid-template-columns:42px minmax(0,1fr) auto; gap:9px; padding:8px; border-radius:17px; }
  .catalog-bag { width:40px; height:40px; }
  .catalog-cart-bar > div:nth-child(2) span { font-size:10px; }
  .catalog-cart-bar > div:nth-child(2) strong { font-size:13px; }
  .catalog-cart-bar > button { height:42px; padding:0 13px; font-size:13px; }
  .catalog-cart-item { grid-template-columns:30px minmax(0,1fr) 38px; gap:9px; padding:14px 11px; }
  .catalog-cart-name { min-width:0; }
  .catalog-cart-qty { grid-column:2/4; width:100%; }
  .catalog-cart-note { grid-column:2/4; width:100%; }
  .catalog-cart-remove { grid-column:3; grid-row:1; }
  .catalog-checkout { padding:15px; }
  .catalog-checkout-action { display:block; }
  .catalog-checkout-action .btn { width:100%; min-height:54px; margin-top:13px; }
}

@media (max-width:350px) {
  .catalog-browser { grid-template-columns:76px minmax(0,1fr); gap:8px; }
  .catalog-categories button { font-size:11px; }
  .catalog-section { padding-right:10px; }
  .catalog-stepper { grid-template-columns:38px minmax(0,1fr) 38px; }
  .catalog-unit-toggle { min-width:52px; }
}

/* SaaS 登录与商户后台 */
.login-mode .sidebar, .login-mode .topbar, .login-mode .bottom-nav { display:none !important; }
.login-mode .main-area { margin:0; }
.login-mode .page { max-width:none; min-height:100vh; padding:0; }
.login-screen { min-height:100vh; display:grid; place-items:center; padding:30px 18px; background:radial-gradient(circle at 15% 10%,rgba(78,189,149,.18),transparent 35%),radial-gradient(circle at 90% 85%,rgba(20,120,94,.12),transparent 32%),#f2f6f3; }
.login-card { width:min(440px,100%); padding:34px; border:1px solid rgba(216,228,222,.95); border-radius:28px; background:rgba(255,255,255,.96); box-shadow:0 28px 80px rgba(24,69,54,.13); }
.login-brand { display:flex; align-items:center; gap:12px; }
.login-brand strong, .login-brand span { display:block; }
.login-brand strong { font-size:19px; }
.login-brand span { margin-top:3px; color:var(--muted); font-size:10px; }
.login-version { margin-top:18px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 14px; border:1px solid #bcded2; border-radius:13px; color:var(--green); background:var(--green-soft); }
.login-version span { font-size:12px; font-weight:800; }
.login-version strong { font-size:16px; }
.login-copy { margin:32px 0 24px; }
.login-copy > span { color:var(--green); font-size:10px; font-weight:900; letter-spacing:.08em; }
.login-copy h1 { margin:8px 0 0; font-size:31px; letter-spacing:-.045em; }
.login-copy p { margin:10px 0 0; color:var(--muted); font-size:12px; line-height:1.7; }
.login-error { margin:-8px 0 15px; padding:11px 13px; border-radius:11px; color:#a43c34; background:var(--red-soft); font-size:11px; font-weight:700; }
.login-form { display:grid; gap:15px; }
.login-form label { display:grid; gap:7px; color:var(--muted); font-size:10px; font-weight:800; }
.login-form input { width:100%; height:50px; padding:0 14px; border:1px solid #d8e2dd; border-radius:14px; outline:0; color:var(--ink); background:#fbfcfb; font-size:14px; }
.login-form input:focus { border-color:#65b69d; box-shadow:0 0 0 3px rgba(20,120,94,.08); }
.password-input { position:relative; }
.password-input input { padding-right:58px; }
.password-input button { position:absolute; right:8px; top:8px; height:34px; padding:0 10px; border:0; border-radius:9px; color:var(--green); background:var(--green-soft); font-size:9px; font-weight:800; }
.login-submit { min-height:52px; margin-top:4px; font-size:13px; }
.login-security { display:block; margin-top:18px; color:var(--soft); text-align:center; font-size:9px; }
.account-profile { display:grid; gap:15px; }
.account-profile-main { display:flex; align-items:center; gap:12px; padding:14px; border-radius:15px; background:#f4f8f6; }
.account-profile-main > span, .account-circle { width:40px; height:40px; flex:none; display:grid; place-items:center; border-radius:13px; color:var(--green); background:var(--green-soft); font-weight:900; }
.account-version { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:13px 14px; border-radius:13px; color:var(--green); background:var(--green-soft); }
.account-version span { font-size:11px; font-weight:700; }
.account-version strong { font-size:14px; }
.account-profile-main b, .account-profile-main small { display:block; }
.account-profile-main small { margin-top:4px; color:var(--muted); font-size:9px; }
.account-store-list { display:grid; gap:7px; padding:4px 2px; }
.account-store-list > span { color:var(--soft); font-size:9px; font-weight:800; }
.account-store-list b { padding:9px 11px; border:1px solid var(--line); border-radius:10px; font-size:11px; }
.danger-soft { border-color:#f2cbc6; color:var(--red); background:var(--red-soft); }
.saas-metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:13px; margin-bottom:18px; }
.saas-metrics article { min-height:122px; display:grid; align-content:center; gap:6px; padding:22px; border:1px solid var(--line); border-radius:20px; background:#fff; box-shadow:var(--shadow); }
.saas-metrics span, .saas-metrics small { color:var(--muted); font-size:10px; }
.saas-metrics strong { font-size:25px; letter-spacing:-.03em; }
.saas-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.saas-panel { padding:22px; }
.saas-list { display:grid; margin-top:16px; }
.saas-list article { display:grid; grid-template-columns:42px 1fr auto; align-items:center; gap:11px; padding:13px 0; border-bottom:1px solid var(--line); }
.saas-list article:last-child { border-bottom:0; }
.store-square { width:40px; height:40px; display:grid; place-items:center; border-radius:13px; color:#8d641f; background:var(--amber-soft); font-size:10px; font-weight:900; }
.saas-list b, .saas-list small { display:block; }
.saas-list b { font-size:12px; }
.saas-list small { overflow:hidden; margin-top:4px; color:var(--muted); font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.saas-list i { padding:5px 8px; border-radius:99px; color:var(--green); background:var(--green-soft); font-size:8px; font-style:normal; font-weight:800; }
.store-access-field { display:grid; gap:7px; margin:0; padding:12px; border:1px solid var(--line); border-radius:13px; }
.store-access-field legend { padding:0 5px; color:var(--muted); font-size:9px; font-weight:800; }
.store-check { display:flex !important; grid-template-columns:none !important; flex-direction:row; align-items:center; gap:9px !important; padding:8px; border-radius:10px; background:#f7faf8; }
.store-check > input { width:18px !important; height:18px !important; flex:none; }
.store-check b, .store-check small { display:block; }
.store-check small { margin-top:2px; color:var(--muted); font-size:8px; }

/* 老板首页：不是报表墙，只呈现AI状态、需要老板拍板的例外和简短工作记录。 */
.owner-home { display:grid; gap:18px; }
.owner-command { position:relative; overflow:hidden; padding:34px 38px 30px; border-radius:28px; color:#fff; background:radial-gradient(circle at 90% 0,rgba(123,235,194,.25),transparent 34%),linear-gradient(135deg,#103e35,#0d7258 68%,#168a69); box-shadow:0 22px 48px rgba(12,89,70,.17); }
.owner-command::after { content:"AI"; position:absolute; right:26px; bottom:-34px; color:rgba(255,255,255,.055); font-size:150px; font-weight:900; letter-spacing:-.08em; pointer-events:none; }
.owner-command-head { position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:14px; color:rgba(255,255,255,.7); font-size:10px; font-weight:700; }
.owner-live { display:inline-flex; align-items:center; gap:7px; color:#a2f0d4; }
.owner-live i { width:7px; height:7px; border-radius:50%; background:#72e4bb; box-shadow:0 0 0 5px rgba(114,228,187,.12); }
.owner-greeting { position:relative; z-index:1; margin:27px 0 5px; color:#a9e7d1; font-size:12px; font-weight:800; }
.owner-command h1 { position:relative; z-index:1; max-width:720px; margin:0; font-size:clamp(30px,3.5vw,46px); line-height:1.16; letter-spacing:-.05em; }
.owner-command-copy { position:relative; z-index:1; max-width:680px; margin:13px 0 0; color:rgba(255,255,255,.7); font-size:12px; line-height:1.7; }
.owner-command-actions { position:relative; z-index:1; display:flex; gap:10px; margin-top:24px; }
.owner-command-actions .btn { min-height:48px; padding:0 21px; }
.owner-primary-action { border-color:#fff; color:#0b654e; background:#fff; }
.owner-order-action { border-color:rgba(255,255,255,.28); color:#fff; background:rgba(255,255,255,.09); }
.owner-command-foot { position:relative; z-index:1; display:flex; gap:20px; margin-top:22px; padding-top:17px; border-top:1px solid rgba(255,255,255,.14); color:rgba(255,255,255,.66); font-size:10px; }
.owner-metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.owner-metrics article { min-height:112px; display:grid; align-content:center; gap:5px; padding:20px 22px; border:1px solid var(--line); border-radius:20px; background:#fff; box-shadow:var(--shadow); }
.owner-metrics span { color:var(--muted); font-size:11px; }
.owner-metrics strong { font-size:31px; line-height:1; letter-spacing:-.04em; }
.owner-metrics small { color:var(--soft); font-size:9px; }
.owner-metrics .urgent { border-color:#f0ccc7; background:#fff9f8; }
.owner-metrics .urgent strong { color:var(--red); }
.owner-focus, .owner-activity { padding:24px; }
.owner-decision { display:grid; grid-template-columns:150px minmax(0,1fr); overflow:hidden; border:1px solid #ecd9d5; border-radius:19px; background:#fffafa; }
.decision-photo { position:relative; min-height:205px; overflow:hidden; padding:0; border:0; background:#e8eeea; cursor:zoom-in; }
.decision-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center top; }
.decision-photo span { position:absolute; left:10px; bottom:10px; padding:5px 8px; border-radius:99px; color:#fff; background:rgba(15,29,24,.66); font-size:9px; }
.decision-body { min-width:0; padding:17px 18px; }
.decision-body h3 { margin:9px 0 0; font-size:18px; line-height:1.35; }
.decision-body > p { margin:6px 0 0; color:var(--muted); font-size:11px; line-height:1.6; }
.decision-actions { display:flex; gap:8px; }
.decision-actions .btn { min-height:40px; }
.issue-decision-actions { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:14px; }
.issue-decision-actions .btn { min-height:48px; }
.issue-decision-actions .btn.quiet { grid-column:1/-1; }
.account-management { display:grid; grid-template-columns:1fr 1fr; gap:8px; }

@media (max-width:760px) {
  .login-card { padding:25px 20px; border-radius:23px; }
  .login-copy { margin:27px 0 21px; }
  .login-copy h1 { font-size:27px; }
  .saas-metrics { grid-template-columns:1fr 1fr; }
  .saas-metrics article:last-child { grid-column:1/-1; }
  .saas-grid { grid-template-columns:1fr; }
  .saas-panel { padding:16px; }
  .page-head .page-actions { width:100%; display:grid; grid-template-columns:1fr 1fr; }

  .topbar { height:68px; padding:0 14px; box-shadow:0 1px 0 rgba(225,232,228,.9); }
  .mobile-brand { gap:8px; }
  .mobile-brand strong { font-size:16px; letter-spacing:-.03em; }
  .store-switch { min-width:0; margin-left:auto; }
  .store-switch select { width:auto; max-width:118px; padding-right:15px; overflow:hidden; color:#53605b; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
  .top-actions { gap:8px; }
  .page { padding:16px 14px 102px; }

  .owner-home { gap:12px; }
  .owner-command { padding:22px 19px 19px; border-radius:22px; }
  .owner-command::after { right:12px; bottom:-18px; font-size:92px; }
  .owner-command-head { font-size:9px; }
  .owner-greeting { margin:21px 0 5px; font-size:11px; }
  .owner-command h1 { max-width:300px; font-size:29px; line-height:1.18; }
  .owner-command-copy { margin-top:10px; font-size:11px; line-height:1.65; }
  .owner-command-actions { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,.8fr); gap:8px; margin-top:18px; }
  .owner-command-actions .btn { min-height:50px; padding:0 10px; border-radius:14px; font-size:12px; }
  .owner-command-foot { justify-content:space-between; gap:7px; margin-top:16px; padding-top:14px; font-size:8px; }
  .owner-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
  .owner-metrics article { min-height:94px; padding:13px 10px; border-radius:17px; box-shadow:0 7px 22px rgba(28,51,43,.055); }
  .owner-metrics span { font-size:10px; }
  .owner-metrics strong { font-size:27px; }
  .owner-metrics small { font-size:8px; }
  .owner-focus, .owner-activity { padding:17px 14px; border-radius:21px; }
  .owner-focus .section-title, .owner-activity .section-title { margin-bottom:14px; }
  .owner-focus .section-title h2, .owner-activity .section-title h2 { font-size:19px; }
  .owner-decision { grid-template-columns:92px minmax(0,1fr); border-radius:17px; }
  .decision-photo { min-height:220px; }
  .decision-body { padding:13px 12px; }
  .decision-body h3 { margin-top:8px; font-size:17px; }
  .decision-body > p { display:-webkit-box; overflow:hidden; -webkit-line-clamp:3; -webkit-box-orient:vertical; font-size:11px; }
  .decision-body .assigned-line { margin:10px 0; }
  .decision-actions { display:grid; grid-template-columns:1.15fr .85fr; gap:6px; }
  .decision-actions .btn { min-height:42px; padding:0 7px; font-size:10px; }
  .owner-home .receiving-alert-card { grid-template-columns:92px minmax(0,1fr); border-radius:17px; }
  .owner-home .receiving-alert-card img { min-height:175px; object-position:center top; }
  .owner-home .receiving-alert-card > div { padding:13px 11px 13px 0; }
  .owner-home .receiving-alert-card h3 { font-size:16px; }
  .owner-home .receiving-alert-card .btn { min-height:40px; padding:0 8px; }
  .owner-activity .event-row { grid-template-columns:30px minmax(0,1fr) auto; padding:12px 0; }
  .owner-activity .event-row strong { font-size:12px; }
  .owner-activity .event-row p { font-size:10px; }

  .bottom-nav { height:76px; grid-template-columns:repeat(var(--nav-count,5),minmax(0,1fr)); padding:6px 6px max(6px,env(safe-area-inset-bottom)); border-top:1px solid #e1e8e4; background:rgba(255,255,255,.97); box-shadow:0 -8px 26px rgba(22,48,39,.07); }
  body[data-role="purchaser"] .bottom-nav { grid-template-columns:repeat(var(--nav-count,4),minmax(0,1fr)); }
  .bottom-nav .nav-item { height:61px; display:flex; flex-direction:column; justify-content:center; gap:3px; padding:0; border-radius:13px; color:#7c8883; background:transparent; }
  .bottom-nav .nav-item > span { width:31px; height:31px; display:grid; place-items:center; border-radius:11px; color:#66736e; background:transparent; transition:.16s; }
  .bottom-nav .nav-item svg { width:20px; height:20px; stroke-width:1.9; }
  .bottom-nav .nav-item b { font-size:10px; line-height:1; font-weight:700; }
  .bottom-nav .nav-item.active { color:var(--green); background:transparent; }
  .bottom-nav .nav-item.active > span { color:#fff; background:var(--green); box-shadow:0 6px 15px rgba(20,120,94,.2); }
  .bottom-nav .nav-item.active b { font-weight:900; }
  .toast-root { bottom:88px; }
  .account-management { grid-template-columns:1fr; }
  .account-management .btn { min-height:48px; }
}
