:root {
  --ink: #242321; --muted: #77746e; --gold: #98712e; --gold-dark: #79541c;
  --gold-soft: #f1eadf; --gold-border: #ddc9a9; --line: #e7e4df; --bg: #f7f6f3;
  --surface: #fff; --soft: #f8f7f5; --red: #b44433; --green: #477755;
  --shadow: 0 2px 10px #35281204; --radius: 10px;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 14px/1.65 "Microsoft YaHei", "PingFang SC", system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { touch-action: manipulation; }
button, .button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 40px; padding: 8px 15px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--ink); cursor: pointer; text-decoration: none; line-height: 1.5; transition: background .15s, border-color .15s; }
button:hover, .button:hover { background: var(--soft); border-color: #cfc6b8; }
button:disabled { opacity: .45; cursor: not-allowed; }
.primary { color: #fff; background: linear-gradient(115deg, #a58448, #947031); border-color: #997638; box-shadow: 0 1px 2px #70531e14; }
.primary:hover { background: #8a652b; border-color: #8a652b; color: #fff; }
.danger, .error { color: var(--red); }
.error { white-space: pre-wrap; font-size: 13px; }
.error:empty { display: none; }
a { color: var(--gold-dark); text-underline-offset: 4px; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible { outline: 3px solid #b89457; outline-offset: 3px; }
input, select, textarea { width: 100%; min-width: 0; min-height: 39px; border: 1px solid #dddad5; border-radius: 5px; padding: 8px 10px; color: var(--ink); background: var(--surface); line-height: 1.5; }
input::placeholder, textarea::placeholder { color: #9a9792; }
input:disabled { color: #66635e; background: #f7f7f6; -webkit-text-fill-color: #66635e; opacity: 1; }
input[type=checkbox] { width: 16px; height: 16px; min-height: 16px; margin: 0; flex-shrink: 0; accent-color: var(--gold); }
textarea { min-height: 88px; resize: vertical; }
label { display: block; color: #54524e; font-size: 12px; margin: 9px 0; }
label input, label select, label textarea { margin-top: 6px; font-size: 14px; }
.check { display: flex; align-items: flex-start; gap: 8px; min-height: 32px; font-size: 12px; line-height: 1.7; }
.check input { margin-top: 3px; }
h1, h2, h3, p { margin: 0; }
h1 { font-size: 26px; line-height: 1.45; font-weight: 650; letter-spacing: -.6px; }
h2 { font-size: 18px; font-weight: 650; line-height: 1.5; }
h3 { font-size: 15px; font-weight: 650; }
p { margin: 9px 0; }
.muted, small { color: var(--muted); font-size: 12px; }
.gold { color: var(--gold-dark); }
.icon { flex-shrink: 0; display: inline-block; vertical-align: middle; }
.row { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; }
.start { justify-content: flex-start; }
.compact { gap: 9px; }
.small { min-height: 34px; padding: 6px 11px; font-size: 12px; }
.text-button { background: transparent; border: 0; border-radius: 4px; min-height: 30px; padding: 3px 0; font-size: 12px; color: var(--gold-dark); box-shadow: none; }
.text-button:hover { background: transparent; color: #513509; }
.full { width: 100%; }
.shell { display: grid; grid-template-columns: 132px minmax(0, 1fr); min-height: 100vh; }
.sidebar { position: sticky; top: 0; height: 100vh; padding: 28px 10px 19px; background: #fcfbf9; border-right: 1px solid var(--line); display: flex; flex-direction: column; }
.brand { color: var(--ink); text-decoration: none; font-size: 20px; font-weight: 650; letter-spacing: .5px; }
.brand.dark { color: var(--gold-dark); }
.brand-logo { text-decoration: none; text-align: center; display: flex; flex-direction: column; align-items: center; color: var(--ink); margin: 0 0 32px; line-height: 1.4; }
.brand-logo strong { font: 600 30px/1.3 "Songti SC", "SimSun", serif; letter-spacing: 3px; color: #6d4b1b; }
.brand-logo span { font-size: 11px; letter-spacing: 3px; padding-left: 2px; margin-top: 2px; }
.brand-sub { display: none; }
.navigation { display: grid; gap: 10px; }
.navigation button, .sidebar-bottom button, .sidebar-bottom a { border: 0; background: transparent; display: flex; align-items: center; justify-content: flex-start; gap: 12px; color: #55534f; padding: 10px 14px; min-height: 42px; font-size: 14px; position: relative; text-decoration: none; }
.navigation button:hover, .sidebar-bottom button:hover, .sidebar-bottom a:hover { background: #f3efe9; }
.navigation button.active, .sidebar-bottom button.active { color: var(--gold-dark); background: var(--gold-soft); }
.navigation button.active::before, .sidebar-bottom button.active::before { content: ""; position: absolute; left: 0; top: 9px; bottom: 9px; width: 3px; background: var(--gold); border-radius: 4px; }
.sidebar-bottom { display: grid; gap: 6px; margin-top: auto; }
.sidebar-bottom a { font-size: 12px; padding-left: 16px; gap: 10px; }
.workspace { min-width: 0; }
.topbar { height: 60px; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 0 32px; border-bottom: 1px solid var(--line); background: #fffdfb; }
.topbar-brand { display: flex; align-items: center; gap: 12px; font-size: 12px; }
.topbar-brand strong { font-weight: 500; color: #625e57; }
.topbar-tag { font-size: 11px; color: #99958e; border-left: 1px solid var(--line); padding-left: 12px; }
.topbar .row { gap: 16px; }
.topbar button { border: 0; background: transparent; padding: 5px; min-height: 30px; font-size: 12px; color: var(--muted); }
#connection { display: flex; align-items: center; gap: 7px; font-size: 11px; }
#connection::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: #78a382; }
.main { padding: 29px 32px 45px; max-width: 1430px; margin: 0 auto; }
.heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 22px; }
.heading p { margin: 7px 0 0; font-size: 13px; color: var(--muted); }
.heading > button, .heading > .button { flex-shrink: 0; }
.panel { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 23px; box-shadow: var(--shadow); min-width: 0; }
.layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 22px; align-items: start; }
.stack { display: grid; align-content: start; gap: 18px; min-width: 0; }
.fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 14px; }
.fields.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.wide { grid-column: 1/-1; }
.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 13px; }
.section-heading > .icon { color: #a49b8c; }
.section-heading h3 { display: flex; align-items: center; gap: 7px; }
.count { font-size: 11px; font-weight: 400; background: #f3f1ed; padding: 2px 7px; border-radius: 4px; color: var(--muted); margin-left: 6px; }
.chip { display: inline-flex; align-items: center; flex-shrink: 0; white-space: nowrap; padding: 3px 8px; border-radius: 4px; background: #edf3ed; color: #54755b; font-size: 11px; line-height: 1.6; font-weight: 400; }
.chip.warn, .chip.pending { background: #fcf0e7; color: #ad5b24; }
.chip.neutral { background: #f2f1ef; color: #77736c; }
.chip.bad { background: #f9eae7; color: var(--red); }
.notice { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; background: #f7f1e6; border: 1px solid #eee2cc; border-radius: 6px; color: #866431; padding: 11px 13px; font-size: 12px; margin: 12px 0; }
.note { background: #f7f3ec; padding: 12px 14px; border-radius: 6px; font-size: 12px; color: #736b5d; }
.rule { height: 1px; background: var(--line); margin: 20px 0; }
.state-line { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 11px 0; font-size: 13px; }
.state-line strong { font-weight: 500; font-variant-numeric: tabular-nums; text-align: right; }
.actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.actions button { flex: 1; font-size: 12px; min-width: 110px; }
.today-layout { display: grid; grid-template-columns: minmax(0, 1fr) 306px; gap: 22px; align-items: start; }
.today-board { padding: 24px; }
.search-box { margin: 0 0 18px; display: flex; align-items: center; gap: 9px; border: 1px solid #dfdcd6; border-radius: 6px; min-height: 40px; padding: 0 11px; background: var(--surface); }
.search-box .icon { color: #8c8983; }
.search-box input { border: 0; min-height: 38px; margin: 0; padding: 7px 0; outline-offset: 0; font-size: 13px; background: transparent; }
.search-box:focus-within { outline: 2px solid #c6ad83; outline-offset: 1px; }
.search-box input:focus-visible { outline: 0; }
.today-stats { display: grid; grid-template-columns: repeat(3, 1fr); padding: 18px 0; margin: 0 0 27px; border-radius: 7px; background: #f7f6f4; text-align: center; }
.today-stats > div + div { border-left: 1px solid #e5e1da; }
.today-stats span { display: block; font-size: 12px; color: #77736d; }
.today-stats strong { display: block; font-size: 25px; font-weight: 550; line-height: 1.3; margin-top: 7px; font-variant-numeric: tabular-nums; }
.filter-tabs { display: flex; gap: 8px; margin-bottom: 10px; }
.filter-tabs button { min-height: 31px; padding: 5px 12px; font-size: 12px; background: #faf9f7; }
.filter-tabs button.active { border-color: var(--gold-border); background: var(--gold-soft); color: var(--gold-dark); }
.filter-tabs small { font-size: 11px; color: inherit; }
.task, .content-row { padding: 19px 0; border-bottom: 1px solid #eeece8; }
.task:last-child, .content-row:last-child { border-bottom: 0; }
.task { display: flex; justify-content: space-between; align-items: center; gap: 14px; }
.task-person { display: flex; align-items: center; gap: 13px; min-width: 0; }
.avatar { width: 39px; height: 39px; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; border-radius: 50%; background: #e9edf2; color: #4d5d77; font-size: 17px; font-family: "Songti SC", "SimSun", serif; }
.task:nth-of-type(even) .avatar, [data-todo-search]:nth-child(even) .avatar, [data-search]:nth-child(even) .avatar { background: #f4e9d6; color: #8b622b; }
.task-copy { min-width: 0; }
.task-copy strong { font-size: 14px; font-weight: 600; overflow-wrap: anywhere; }
.task-copy p { font-size: 12px; line-height: 1.65; margin: 5px 0 0; overflow-wrap: anywhere; }
.dot-divider { display: inline-block; padding: 0 7px; color: #bbb4a8; }
.task-tail { display: flex; gap: 14px; align-items: center; flex-shrink: 0; }
.task-tail .primary { min-width: 78px; }
.attention { display: flex; width: 100%; margin: 22px 0 0; padding: 13px 14px; font-size: 12px; border: 0; background: #faf2e5; color: #9d612c; justify-content: flex-start; gap: 9px; }
.attention > span:last-child { margin-left: auto; white-space: nowrap; display: flex; align-items: center; gap: 4px; }
.schedule-list { list-style: none; padding: 0; margin: 22px 0 0; }
.schedule-list li { display: flex; gap: 15px; position: relative; padding: 0 0 23px 19px; border-left: 1px solid #e6e0d6; margin-left: 4px; }
.schedule-list li::before { content: ""; position: absolute; width: 7px; height: 7px; background: #a98245; border-radius: 50%; left: -4px; top: 7px; }
.schedule-list li:last-child { padding-bottom: 0; }
.schedule-list time { font-variant-numeric: tabular-nums; font-size: 13px; }
.schedule-list strong { font-size: 13px; font-weight: 500; }
.schedule-list p { font-size: 11px; color: var(--muted); margin: 5px 0; }
.reminder-panel .state-line { border-bottom: 1px solid #f1eeea; }
.reminder-panel > button { margin-top: 15px; }
.setup-note { padding: 8px 10px; color: #79736a; }
.setup-note h3 { margin-top: 12px; font-size: 14px; color: #696156; }
.setup-note p { font-size: 12px; }
.soft-icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid #ece4d7; border-radius: 50%; background: #f8f4ed; color: var(--gold-dark); flex-shrink: 0; }
.record-board .search-box { max-width: 500px; margin: 16px 0 3px; }
.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 22px; }
.metric-grid .panel { padding: 19px 21px; font-size: 12px; color: var(--muted); }
.metric-grid b { display: block; margin-top: 9px; color: var(--ink); font-size: 25px; font-weight: 550; line-height: 1.4; font-variant-numeric: tabular-nums; }
.metric-grid .panel:first-child b { color: var(--gold-dark); }
.table-wrap { overflow: auto; }
table { border-collapse: collapse; width: 100%; text-align: left; font-size: 13px; }
td, th { padding: 12px 9px; border-bottom: 1px solid var(--line); vertical-align: top; }
th { color: var(--muted); font-weight: 400; }
td { overflow-wrap: anywhere; }
.empty { padding: 34px 12px; text-align: center; color: var(--muted); font-size: 13px; }
.empty-icon { width: 52px; height: 52px; display: flex; align-items: center; justify-content: center; border-radius: 50%; margin: 0 auto 14px; color: #b2a792; background: #f6f3ed; }
.empty strong { display: block; font-size: 14px; color: #79736a; font-weight: 500; }
.empty p { margin: 6px 0 0; font-size: 12px; }
.schedule-panel .empty { padding: 21px 0 15px; }
.schedule-panel .empty-icon { width: 42px; height: 42px; }
.breadcrumb { display: flex; align-items: center; gap: 10px; font-size: 12px; color: var(--muted); margin: -6px 0 13px; }
.breadcrumb .text-button { color: var(--muted); min-height: 20px; }
.main[data-page=case] .heading { margin-bottom: 21px; }
.case-stage { border-bottom: 1px solid var(--line); margin-bottom: 0; }
.case-progress { display: flex; list-style: none; margin: 0; padding: 0 16px 21px; }
.case-progress li { flex: 1; position: relative; text-align: center; font-size: 12px; color: #7a7771; display: flex; flex-direction: column; align-items: center; gap: 7px; }
.case-progress li::after { position: absolute; content: ""; height: 1px; background: #dad6cf; top: 12px; left: calc(50% + 22px); width: calc(100% - 44px); }
.case-progress li:last-child::after { display: none; }
.step-dot { position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; width: 25px; height: 25px; background: #f3f2f0; border: 1px solid #d9d4cd; border-radius: 50%; color: #77736b; font: 13px/1 system-ui, sans-serif; }
.case-progress .done .step-dot { background: #b89964; border-color: #b89964; color: white; }
.case-progress .done::after { background: #c6ad84; }
.case-progress .current { color: var(--ink); font-weight: 600; }
.case-progress .current .step-dot { background: var(--gold); border-color: var(--gold); color: white; box-shadow: 0 0 0 4px #efe8dc; }
.case-progress small { display: block; font-size: 9px; margin-top: 1px; color: #a09a8d; font-weight: 400; }
.case-tabs { display: flex; gap: 25px; border-bottom: 1px solid var(--line); margin-bottom: 21px; }
.case-tabs button { background: none; border: 0; position: relative; border-radius: 0; padding: 13px 6px 12px; color: #77736c; min-height: 48px; font-size: 13px; }
.case-tabs button[aria-selected=true] { color: var(--ink); font-weight: 600; }
.case-tabs button[aria-selected=true]::after { content: ""; height: 3px; background: var(--gold); position: absolute; bottom: -1px; left: 0; right: 0; border-radius: 2px; }
.case-layout { grid-template-columns: minmax(0, 1fr) 278px; gap: 19px; }
.case-main { min-width: 0; }
.quote-panel { padding: 21px 22px 0; overflow: hidden; }
.quote-panel .section-heading { margin: 0; }
.item { padding: 14px 0 12px; border-bottom: 1px solid #efebe5; }
.item-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 7px; }
.item-number { font-size: 11px; color: #998c78; letter-spacing: .4px; }
.item-head .text-button { color: #969087; min-height: 22px; font-size: 11px; }
.item-editor { display: grid; grid-template-columns: 105px minmax(0, 1fr); gap: 17px; align-items: start; }
.item-media { padding-top: 8px; text-align: center; }
.photo-placeholder { width: 100%; height: 118px; background: #f5f2ec; border: 1px solid #ece5d9; color: #af9b78; display: flex; flex-direction: column; gap: 10px; padding: 10px 6px; }
.photo-placeholder span { font-size: 10px; color: #9b8b70; }
.item-media > .button, .item-media > button.small { margin-top: 9px; padding: 5px 4px; font-size: 11px; min-height: 32px; gap: 4px; border-color: #e6dbc9; color: var(--gold-dark); }
.item-media > small { display: block; font-size: 10px; margin-top: 7px; }
.item-editor label { margin: 6px 0; }
.item-editor .fields > label:last-child { grid-column: 1/-1; }
.net-weight { display: block; min-height: 39px; font-size: 14px; padding: 8px 10px; margin-top: 6px; border: 1px solid #e7e4df; background: #f7f7f5; border-radius: 5px; color: #767169; line-height: 1.5; }
.item-verified { margin: 14px 0 0 122px; min-height: 24px; }
.quote-adjust { padding: 12px 0 15px; grid-template-columns: .7fr 1fr 1.2fr; gap: 12px; }
.quote-adjust input { font-size: 12px; }
.quote-save { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; border-top: 1px solid var(--line); padding: 16px 22px; margin: 0 -22px; background: #fffefa; }
.save-status { display: inline-flex; align-items: center; gap: 7px; font-size: 11px; color: #827a6b; }
.save-status::before { content: ""; width: 6px; height: 6px; background: #88a385; border-radius: 50%; flex-shrink: 0; }
.quote-summary { padding: 22px 20px; position: sticky; top: 18px; }
.quote-summary h3 { font-size: 16px; }
.quote-caption { margin: 21px 0 5px; color: #858077; font-size: 12px; }
.total { font-size: 29px; color: var(--gold-dark); line-height: 1.35; font-weight: 600; letter-spacing: -.8px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.total > span { margin-left: 3px; }
.quote-summary > .muted { font-size: 11px; margin-top: 7px; }
.quote-summary .rule { margin: 19px 0 8px; }
.quote-summary .state-line { font-size: 12px; padding: 10px 0; }
.balance-line { display: flex; align-items: center; justify-content: space-between; padding: 13px 0 3px; gap: 8px; font-size: 12px; }
.balance-line strong { color: var(--gold-dark); font-size: 15px; font-weight: 550; }
details summary { cursor: pointer; font-size: 12px; color: #7a7163; padding: 8px 0; }
.money-detail { margin: 7px 0 12px; }
.more-actions { border-bottom: 1px solid #f0ede8; margin-top: 7px; }
.more-actions .actions { margin: 6px 0 13px; }
.more-actions button { min-height: 34px; }
.summary-footnote { font-size: 10px; text-align: center; color: #9a9182; margin: 16px 0 0; }
.quote-summary > .note { margin: 10px 0; font-size: 11px; }
.ai-strip { display: flex; align-items: center; gap: 13px; border: 1px solid var(--line); border-radius: 8px; padding: 15px 18px; background: #fbfaf8; margin-top: 15px; }
.ai-strip h3 { font-size: 13px; }
.ai-strip p { font-size: 11px; color: var(--muted); margin: 5px 0 0; }
.ai-strip > button { margin-left: auto; flex-shrink: 0; border-color: #c7b18d; color: var(--gold-dark); background: transparent; }
.appointment-panel { margin-top: 15px; padding: 17px 21px; }
.appointment-panel h3 { font-size: 13px; }
.appointment-panel .section-heading { margin: 0; }
.appointment-panel > p:last-child { margin-bottom: 0; }
.timeline { list-style: none; padding: 0 0 0 5px; margin: 23px 0 0; font-size: 13px; }
.timeline li { border-left: 1px solid #e7ddcd; padding: 0 0 20px 20px; position: relative; overflow-wrap: anywhere; }
.timeline li::before { content: ""; position: absolute; left: -4px; top: 6px; border-radius: 50%; width: 7px; height: 7px; background: #b59a6c; }
.timeline time { display: block; font-size: 11px; color: #969083; margin-bottom: 4px; }
.timeline p { font-size: 12px; color: var(--muted); margin: 3px 0 0; }
.initial-note { margin: 17px 0 8px; }
.file-list a { display: flex; align-items: center; gap: 14px; padding: 17px 4px; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; overflow-wrap: anywhere; }
.file-list a > span { flex: 1; min-width: 0; }
.file-list small { display: block; margin-top: 3px; }
.mobile-next { display: none; }
.prose p { line-height: 1.95; overflow-wrap: anywhere; }
.preserve { white-space: pre-wrap; overflow-wrap: anywhere; }
.nowrap { white-space: nowrap; }
.subnav { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 20px; }
dialog { border: 1px solid var(--line); border-radius: 12px; padding: 25px; width: min(620px, calc(100% - 28px)); max-height: 90vh; overflow: auto; box-shadow: 0 16px 70px #30281e24; color: var(--ink); }
dialog::backdrop { background: #302b244f; backdrop-filter: blur(2px); }
dialog > header { margin-bottom: 17px; padding-bottom: 15px; border-bottom: 1px solid var(--line); }
dialog > header button { min-height: 30px; padding: 4px; border: 0; color: var(--muted); }
dialog h2 { font-size: 19px; }
.toast { position: fixed; left: 50%; bottom: 25px; transform: translateX(-50%); background: #3f372c; color: white; padding: 12px 20px; border-radius: 7px; z-index: 30; max-width: calc(100% - 28px); font-size: 13px; box-shadow: 0 4px 22px #30291e21; }
.auth-page { min-height: 100vh; display: grid; place-items: center; padding: 35px 20px; }
.auth { width: min(430px, 100%); padding: 35px 36px 25px; border-radius: 12px; background: var(--surface); border: 1px solid var(--line); box-shadow: 0 5px 28px #49361506; }
.auth .brand-logo { margin: 0 0 27px; }
.auth h1 { font-size: 23px; text-align: center; }
.auth > .muted { text-align: center; font-size: 12px; margin: 8px 0 24px; }
.auth label { margin: 14px 0; }
.auth button { width: 100%; margin-top: 7px; }
.auth-foot { text-align: center; margin: 20px 0 0; font-size: 12px; }
.public-header { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 18px max(24px, calc((100vw - 1100px) / 2)); border-bottom: 1px solid var(--line); background: #fffefa; }
.public-header nav { display: flex; align-items: center; gap: 24px; }
.public-header nav a { font-size: 13px; text-decoration: none; color: #777064; }
.public-header .brand { color: #584326; font-size: 20px; }
.public-back { display: none; }
.public-main { max-width: 1148px; padding: 31px 24px 55px; margin: 0 auto; }
.public-main > .notice { margin-top: 0; }
.public-hero { padding: 13px 0 30px; }
.public-hero h1 { font-size: 31px; max-width: 840px; margin: 10px 0 15px; line-height: 1.5; }
.lead { font-size: 16px; color: #777168; }
.eyebrow { font-size: 12px; color: #a18351; }
.public-grid { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 25px; align-items: start; }
.public-grid aside { display: grid; gap: 17px; }
.public-grid .prose h2 { font-size: 20px; margin-bottom: 13px; }
.public-grid .prose h3 { margin-top: 23px; }
.public-grid .prose { padding: 26px; }
.process { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 21px 0; }
.process span { padding: 6px 10px; background: #f6f2eb; border-radius: 4px; font-size: 12px; color: #8b7250; }
.inquiry-card { padding: 25px; }
.inquiry-card h2 { font-size: 21px; letter-spacing: -.4px; }
.inquiry-card > .muted { margin: 4px 0 17px; }
.inquiry-card form > label { margin: 15px 0; }
.kind-switch { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; margin: 17px 0 19px; }
.kind-switch button { font-size: 12px; min-height: 41px; padding: 8px 3px; background: #fff; border-color: #e2dfda; }
.kind-switch button[aria-pressed=true] { background: #f6efe2; border-color: var(--gold); color: #76501b; }
.inquiry-card textarea { min-height: 82px; }
.inquiry-card .check { font-size: 11px; }
.inquiry-card .primary { min-height: 43px; }
.optional-fields { border-top: 1px dashed #e5dfd4; margin-top: 16px; }
.optional-fields summary { font-size: 11px; color: #918777; }
.contact-direct { border-top: 1px solid var(--line); margin-top: 26px; padding-top: 18px; text-align: center; }
.contact-direct > span { display: block; font-size: 11px; color: var(--muted); margin-bottom: 6px; }
.contact-direct a { display: inline-flex; align-items: center; gap: 10px; color: var(--ink); text-decoration: none; font-size: 19px; font-weight: 550; font-variant-numeric: tabular-nums; }
.inquiry-page { max-width: 540px; padding-top: 30px; }
.inquiry-page .public-hero { display: none; }
.inquiry-page .public-grid { display: block; }
.inquiry-page .public-grid > article { display: none; }
.inquiry-page aside > .inquiry-note { padding: 0 20px; background: none; border: 0; box-shadow: none; text-align: center; }
.inquiry-page .inquiry-note h3 { font-size: 13px; }
.public-footer { text-align: center; color: var(--muted); font-size: 11px; padding: 22px; border-top: 1px solid var(--line); }
.public-footer a { color: #8c8170; }
.honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.receipt { max-width: 1000px; margin: 30px auto; background: white; padding: 30px; }
.receipt h2 { margin-top: 25px; }
@media (min-width: 1600px) { .main { padding-top: 34px; } }
@media (max-width: 1150px) {
  .shell { grid-template-columns: 112px minmax(0, 1fr); }
  .sidebar { padding-left: 8px; padding-right: 8px; }
  .navigation button, .sidebar-bottom button { padding-left: 12px; gap: 9px; }
  .sidebar-bottom a { padding-left: 9px; font-size: 11px; gap: 6px; }
  .main { padding: 25px 23px 40px; }
  .topbar { padding: 0 23px; }
  .today-layout { grid-template-columns: minmax(0, 1fr) 265px; gap: 17px; }
  .today-board { padding: 20px; }
  .today-layout .task { align-items: flex-start; flex-wrap: wrap; }
  .today-layout .task-tail { margin-left: 52px; }
  .layout { grid-template-columns: minmax(0, 1fr) 265px; gap: 17px; }
  .case-layout { grid-template-columns: minmax(0, 1fr) 250px; }
  .quote-panel { padding-left: 18px; padding-right: 18px; }
  .quote-save { margin-left: -18px; margin-right: -18px; padding-left: 18px; padding-right: 18px; }
  .item-editor { grid-template-columns: minmax(0, 1fr); }
  .item-media { display: flex; align-items: center; gap: 10px; padding-top: 0; }
  .photo-placeholder { width: 64px; height: 55px; flex-shrink: 0; padding: 8px; }
  .photo-placeholder span { display: none; }
  .item-media > button.small { width: auto; margin: 0; }
  .item-media > small { margin: 0; }
  .item-verified { margin-left: 0; }
  .quote-adjust { grid-template-columns: 1fr 1fr; }
  .quote-adjust > label:last-child { grid-column: 1/-1; }
  .total { font-size: 26px; }
  .metric-grid b { font-size: 22px; }
}
@media (max-width: 900px) {
  .today-layout { grid-template-columns: minmax(0, 1fr); }
  .today-layout > .stack { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .today-layout .task { flex-wrap: nowrap; align-items: center; }
  .today-layout .task-tail { margin-left: 0; }
  .layout { grid-template-columns: minmax(0, 1fr); }
  .layout > .stack { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .case-layout { grid-template-columns: minmax(0, 1fr); }
  .quote-summary { position: static; }
  .item-editor { grid-template-columns: 105px minmax(0, 1fr); }
  .item-media { display: block; padding-top: 8px; }
  .photo-placeholder { width: 100%; height: 118px; }
  .photo-placeholder span { display: block; }
  .item-media > button.small { width: 100%; margin-top: 9px; }
  .item-media > small { margin-top: 7px; }
  .item-verified { margin-left: 122px; }
  .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .public-grid { grid-template-columns: minmax(0, 1fr) 340px; gap: 18px; }
  .public-grid .prose { padding: 20px; }
}
@media (max-width: 650px) {
  body { font-size: 14px; }
  button, .button { min-height: 44px; }
  input, select, textarea { min-height: 44px; font-size: 16px; }
  label input, label select, label textarea { font-size: 16px; }
  .small { min-height: 38px; }
  .text-button { min-height: 34px; }
  .shell { display: block; }
  .sidebar { position: fixed; top: auto; bottom: 0; left: 0; width: 100%; height: auto; z-index: 15; padding: 5px 8px max(6px, env(safe-area-inset-bottom)); border: 0; border-top: 1px solid var(--line); background: #fffdfb; }
  .sidebar > .brand-logo, .sidebar-bottom { display: none; }
  .navigation { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 3px; }
  .navigation button { flex-direction: column; gap: 4px; justify-content: center; padding: 6px 0; min-height: 49px; font-size: 10px; border-radius: 6px; }
  .navigation button .icon { width: 19px; height: 19px; }
  .navigation button.active { background: #f4eee4; }
  .navigation button.active::before { display: none; }
  .topbar { height: 54px; padding: 0 17px; }
  .topbar-brand strong { color: #5f4c30; font-weight: 600; font-size: 13px; }
  .topbar-tag, #connection { display: none; }
  .topbar .row { gap: 13px; }
  .topbar button { min-height: 36px; }
  .topbar button .topbar-label { display: none; }
  .main { padding: 22px 16px 100px; }
  h1 { font-size: 23px; letter-spacing: -.5px; }
  h2 { font-size: 17px; }
  .heading { gap: 12px; margin-bottom: 19px; }
  .heading p { font-size: 11px; line-height: 1.8; margin-top: 6px; }
  .heading > button, .heading > .button { font-size: 12px; padding: 9px 11px; min-height: 39px; }
  .heading > button .icon { width: 15px; height: 15px; }
  .panel { padding: 17px; border-radius: 8px; }
  .today-layout, .layout, .stack, .layout > .stack, .today-layout > .stack { grid-template-columns: minmax(0, 1fr); gap: 15px; }
  .today-board { padding: 16px; }
  .today-stats { margin-bottom: 24px; padding: 16px 0; }
  .today-stats strong { font-size: 23px; }
  .search-box { min-height: 42px; margin-bottom: 16px; }
  .search-box input { min-height: 40px; font-size: 12px; }
  .filter-tabs { gap: 7px; }
  .filter-tabs button { min-height: 36px; padding: 7px 10px; font-size: 11px; }
  .task, .today-layout .task { flex-wrap: wrap; align-items: flex-start; gap: 9px; padding: 16px 0; }
  .task-person { gap: 10px; width: 100%; }
  .avatar { width: 34px; height: 34px; font-size: 15px; }
  .task-copy strong { font-size: 13px; }
  .task-copy p { font-size: 11px; }
  .task-tail, .today-layout .task-tail { width: calc(100% - 44px); margin-left: 44px; justify-content: space-between; gap: 8px; }
  .task-tail button { min-height: 34px; font-size: 11px; padding: 6px 10px; }
  .task-tail .primary { min-width: 72px; }
  .attention { padding: 12px 10px; font-size: 11px; gap: 7px; margin-top: 14px; }
  .attention > span:last-child { font-size: 10px; }
  .attention > .icon { width: 16px; }
  .metric-grid { gap: 10px; }
  .metric-grid .panel { padding: 15px; font-size: 11px; }
  .metric-grid b { font-size: 21px; }
  .fields, .fields.two { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 11px; }
  .fields label:has(input[type=datetime-local]) { grid-column: 1/-1; }
  .breadcrumb { margin-top: -7px; margin-bottom: 8px; font-size: 11px; }
  .main[data-page=case] .heading { margin-bottom: 18px; }
  .main[data-page=case] .heading h1 { font-size: 21px; }
  .main[data-page=case] .heading > .button { font-size: 0; padding: 8px 10px; min-height: 35px; }
  .main[data-page=case] .heading > .button .icon { width: 17px; height: 17px; }
  .case-progress { padding: 0 0 16px; }
  .case-progress li { font-size: 11px; gap: 6px; }
  .step-dot { width: 23px; height: 23px; font-size: 11px; }
  .case-progress li::after { top: 11px; left: calc(50% + 16px); width: calc(100% - 32px); }
  .case-progress small { font-size: 8px; }
  .case-tabs { justify-content: space-between; gap: 0; margin-bottom: 16px; }
  .case-tabs button { font-size: 12px; padding: 12px 3px; min-height: 44px; }
  .case-tabs .count { font-size: 9px; padding: 1px 4px; margin: 0; }
  .mobile-next { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 11px 14px; border-radius: 7px; border: 1px solid #e7dbc6; background: #f7f1e7; margin: 0 0 14px; position: sticky; top: 8px; z-index: 8; box-shadow: 0 2px 8px #624a1710; }
  .mobile-next small { display: block; font-size: 10px; color: #958362; }
  .mobile-next strong { font-size: 21px; color: var(--gold-dark); line-height: 1.3; font-weight: 600; letter-spacing: -.5px; font-variant-numeric: tabular-nums; }
  .mobile-next button { font-size: 11px; min-height: 37px; padding: 8px 11px; }
  .quote-panel { padding: 17px 16px 0; }
  .quote-panel .section-heading { align-items: flex-start; gap: 10px; }
  .quote-panel h2 { font-size: 17px; white-space: nowrap; }
  .quote-panel .section-heading > .row { justify-content: flex-end; gap: 4px 8px; }
  .quote-panel .section-heading button { font-size: 10px; min-height: 26px; padding: 3px 5px; }
  .item-editor { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .item-media { display: flex; gap: 10px; padding-top: 0; }
  .photo-placeholder { width: 57px; height: 52px; flex-shrink: 0; padding: 10px; }
  .photo-placeholder .icon { width: 27px; height: 27px; }
  .photo-placeholder span { display: none; }
  .item-media > button.small { width: auto; margin: 0; font-size: 11px; padding: 8px; min-height: 36px; }
  .item-media > small { margin: 0; font-size: 9px; }
  .item-verified { margin-left: 0; font-size: 11px; }
  .item-editor .fields input { font-size: 14px; }
  .net-weight { min-height: 44px; padding: 10px; }
  .quote-adjust { grid-template-columns: 1fr 1fr; }
  .quote-adjust input { font-size: 13px; }
  .quote-save { margin: 0 -16px; padding: 13px 16px; }
  .quote-save button { min-height: 38px; font-size: 12px; }
  .save-status { font-size: 10px; }
  .ai-strip { padding: 13px; gap: 10px; flex-wrap: wrap; }
  .ai-strip .soft-icon { width: 36px; height: 36px; }
  .ai-strip > div { flex: 1; min-width: 160px; }
  .ai-strip h3 { font-size: 12px; }
  .ai-strip p { font-size: 10px; }
  .ai-strip > button { margin-left: 46px; font-size: 11px; }
  .quote-summary { padding: 20px; }
  .total { font-size: 30px; }
  .quote-caption { margin-top: 15px; }
  .appointment-panel { padding: 16px; }
  .appointment-panel h3 { font-size: 12px; }
  .appointment-panel button { font-size: 11px; }
  .toast { bottom: 85px; width: max-content; font-size: 12px; }
  dialog { padding: 21px; }
  dialog h2 { font-size: 18px; }
  .auth-page { padding: 25px 18px; align-items: start; }
  .auth { margin-top: 20px; padding: 29px 25px 24px; }
  .public-header { padding: 16px; justify-content: center; position: relative; }
  .public-header .brand { font-size: 18px; color: var(--ink); }
  .public-header nav { display: none; }
  .public-back { position: absolute; left: 14px; top: 14px; display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; color: var(--ink); }
  .public-main { padding: 24px 17px 35px; }
  .public-hero { padding: 0 0 23px; }
  .public-hero h1 { font-size: 25px; margin: 7px 0 13px; }
  .lead { font-size: 14px; }
  .public-grid { display: flex; flex-direction: column; gap: 20px; }
  .public-grid > article, .public-grid > aside { width: 100%; min-width: 0; }
  .public-grid > aside { order: -1; }
  .public-grid .prose { padding: 20px; }
  .inquiry-card { padding: 21px 19px; }
  .inquiry-card h2 { font-size: 21px; }
  .kind-switch { gap: 5px; }
  .kind-switch button { min-height: 43px; font-size: 12px; }
  .inquiry-card label { font-size: 12px; }
  .inquiry-card input, .inquiry-card textarea { font-size: 14px; }
  .inquiry-card .check { font-size: 11px; }
  .inquiry-page { padding-top: 10px; background: #fff; }
  .inquiry-page .inquiry-card { border: 0; box-shadow: none; padding: 16px 3px; }
  .inquiry-page .notice { font-size: 10px; padding: 7px 10px; margin-bottom: 7px; }
  .contact-direct { margin-top: 23px; }
  .public-footer { padding: 20px 14px; font-size: 10px; }
  .receipt { margin: 0; padding: 18px; }
}
@media print { .no-print { display: none; } body { background: #fff; } .receipt { margin: 0; padding: 0; } .table-wrap { overflow: visible; } a { color: #000; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; } }

.info-page .public-grid > aside { order: 1; }
.inquiry-card h1 { font-size: 23px; }

/* Compact quote fields follow the reference: weight, purity, then price. */
.item-title { display: flex; align-items: center; gap: 11px; min-width: 0; }
.item-title .item-number { white-space: nowrap; }
.item-title input { width: 175px; max-width: 100%; min-height: 28px; padding: 3px 6px; font-size: 12px; background: transparent; border-color: transparent; }
.item-title input:not(:disabled):hover { border-color: var(--line); }
.item-title input:disabled { background: transparent; color: #696157; }
.item-editor .fields > label:last-child { grid-column: auto; }
@media(max-width:650px) { .item-title { gap: 6px; } .item-title input { width: 143px; min-height: 36px; font-size: 12px; } }

[data-todo-search] .task, [data-search] > .task { border-bottom: 1px solid #eeece8; }

/* Service content, private photos and follow-up use the established white/gold components. */
.followup-card { margin-top: 15px; padding: 17px 21px; }
.followup-card .section-heading { margin-bottom: 6px; }
.followup-card h3 { display:flex; align-items:center; gap:7px; font-size:13px; }
.followup-card p { font-size:12px; }
.followup-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 0; border-bottom:1px solid var(--line); }
.followup-row strong { font-size:12px; margin-right:8px; }
.followup-row p { font-size:11px; color:var(--muted); margin:6px 0 0; overflow-wrap:anywhere; }
.followup-row > div { min-width:0; }
.followup-row > button { flex-shrink:0; }
.photo-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(155px,1fr)); gap:16px; margin-top:20px; }
.photo-grid > .empty { grid-column:1/-1; }
.photo-card { min-width:0; border:1px solid var(--line); border-radius:7px; padding:9px; }
.photo-card > strong { display:block; font-size:12px; overflow-wrap:anywhere; margin-top:8px; }
.photo-card > small { display:block; font-size:10px; margin:3px 0; }
.photo-card > .row > a { font-size:11px; }
.photo-thumb,.document-thumb { display:flex; width:100%; height:140px; padding:0; align-items:center; justify-content:center; background:var(--soft); overflow:hidden; border-radius:5px; border:0; text-decoration:none; }
.photo-thumb img { width:100%; height:100%; object-fit:cover; }
.document-thumb { flex-direction:column; gap:12px; color:var(--gold); font-size:12px; }
.photo-viewer { margin:0; }
.photo-viewer img { display:block; max-width:100%; max-height:65vh; margin:auto; object-fit:contain; }
.photo-viewer figcaption { text-align:center; margin-top:12px; font-size:12px; color:var(--muted); overflow-wrap:anywhere; }
.photo-placeholder:has(img) { padding:0; overflow:hidden; }
.photo-placeholder img { width:100%; height:100%; object-fit:cover; border-radius:5px; }
.content-kit { display:flex; gap:15px; align-items:center; justify-content:space-between; background:#faf7f0; border:1px solid #e9dfcf; border-radius:7px; padding:15px; margin-bottom:24px; }
.content-kit h3 { font-size:14px; }
.content-kit p { font-size:11px; margin:6px 0 0; }
.content-kit button { flex-shrink:0; color:var(--gold-dark); border-color:var(--gold-border); }
.case-tools { justify-content:flex-end; }
.prose h2:not(:first-child) { margin-top:25px; }
.prose ol { padding-left:23px; line-height:1.95; }
@media(max-width:650px){.content-kit{display:block}.content-kit button{margin-top:12px}.followup-card{padding:16px}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.photo-thumb,.document-thumb{height:115px}.case-tools{gap:5px;flex-shrink:0}.case-tools .button{font-size:0;padding:8px;min-height:35px}.case-tools .icon{width:16px;height:16px}.main[data-page=case] .heading>div:first-child{min-width:0}.main[data-page=case] .heading h1{overflow-wrap:anywhere}}

/* The fixed-answer service follows the established warm-white and gold styling. */
.support-faq { border-top:1px solid var(--line); margin-top:28px; padding-top:24px; }
.support-faq details { padding:12px 0; border-bottom:1px solid var(--line); }
.support-faq summary { color:var(--ink); font-weight:550; cursor:pointer; line-height:1.6; }
.support-faq p { overflow-wrap:anywhere; }
.support-launch { position:fixed; right:24px; bottom:20px; z-index:30; box-shadow:0 4px 22px #79541c25; gap:8px; }
.support-dialog { width:min(470px,calc(100% - 24px)); max-height:calc(100dvh - 24px); padding:22px; }
.support-dialog > header { align-items:flex-start; }
.support-dialog header p { font-size:11px; margin:7px 0 0; }
.support-log { max-height:32dvh; min-height:100px; overflow-y:auto; overscroll-behavior:contain; padding:2px 5px 8px 0; }
.support-bubble { background:#f5f3ef; border:1px solid #eee9e2; padding:12px 14px; margin:0 25px 12px 0; border-radius:9px 9px 9px 2px; white-space:pre-wrap; overflow-wrap:anywhere; font-size:13px; line-height:1.8; }
.support-bubble.from-customer { margin:0 0 12px 30px; background:#f5eddf; border-color:#e8dbc5; border-radius:9px 9px 2px 9px; }
.support-topics { display:flex; flex-wrap:wrap; gap:7px; max-height:125px; overflow-y:auto; margin:12px 0; }
.support-topics button { font-size:11px; min-height:34px; padding:6px 9px; text-align:left; white-space:normal; }
#support-form { display:flex; gap:8px; margin-top:15px; }
#support-form input { min-width:0; margin:0; }
#support-form button { flex-shrink:0; }
.support-contact { display:flex; flex-wrap:wrap; gap:15px; font-size:12px; padding-top:16px; border-top:1px solid var(--line); margin-top:16px; }
.support-foot { font-size:10px; color:var(--muted); margin:12px 0 0; }
.support-manage { max-height:52vh; overflow:auto; margin-bottom:18px; }
.public-footer { padding-bottom:90px; }
@media(max-width:650px){.support-launch{right:15px;bottom:15px;min-height:40px;font-size:12px}.support-dialog{padding:18px;max-height:calc(100dvh - 20px)}.support-log{max-height:29dvh}.support-faq h2{font-size:18px}.support-topics{max-height:100px}}
/* Phone-bound rewards share the approved warm white / restrained gold palette. */
.reward-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:20px 0}.reward-toolbar .search-box{flex:1;margin:0;max-width:560px}.coupon-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:18px}.coupon-card{border:1px solid #e8e2d7;border-radius:12px;background:#fff;padding:24px;min-width:0;position:relative;overflow-wrap:anywhere}.coupon-card:before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:#b18a4a}.coupon-benefit{display:block;color:#8b641f;font-size:30px;line-height:1.5;margin:8px 0 12px;font-variant-numeric:tabular-nums}.coupon-card h3{font-size:17px;margin:8px 0}.coupon-card p{font-size:14px;line-height:1.8}.coupon-card .actions{margin-top:18px}.reward-margin{margin-top:24px}.gold-coupon-fields{border-top:1px solid #eee8de;padding-top:18px;margin-top:16px}.gold-coupon-fields details{font-size:13px;color:#666}.customer-portal{max-width:940px;margin:42px auto;padding:0 24px 60px}.customer-login{max-width:440px;margin:50px auto}.customer-login h1{font-size:28px}.customer-login form{margin:24px 0}.customer-login label{margin-bottom:16px}.portal-foot{display:flex;gap:12px;margin-top:28px}.activation-code{font:600 23px/1.6 monospace;letter-spacing:1px;background:#f8f5ee;padding:16px;border-radius:8px;overflow-wrap:anywhere}.customer-portal .coupon-grid{margin-top:20px}[data-page=customers] .task-tail{flex-wrap:wrap}[data-page=rewards] .task{gap:20px}#shop-preview{margin:16px 0}.customer-portal .heading{gap:16px}
@media(max-width:650px){.reward-toolbar{align-items:stretch;flex-direction:column}.reward-toolbar button{width:100%}.coupon-card{padding:20px}.coupon-benefit{font-size:27px}.customer-portal{padding:0 16px 32px;margin-top:24px}.customer-login{margin:18px auto}.public-header nav{flex-wrap:wrap;gap:10px}.gold-coupon-fields details{max-width:100%}[data-page=customers] .task-tail{justify-content:flex-start;gap:6px}[data-page=rewards] .heading{align-items:flex-start}.activation-code{font-size:18px}.filter-tabs{flex-wrap:wrap}}

.customer-auth-tabs{display:flex;border-bottom:1px solid #e8e2d7;gap:24px;margin:16px 0 24px}.customer-auth-tabs a{padding:10px 0;color:#68635b;text-decoration:none;border-bottom:2px solid transparent}.customer-auth-tabs a[aria-current=page]{color:#98712e;border-bottom-color:#98712e;font-weight:600}.customer-auth-links{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:14px}.customer-auth-links a{color:#98712e}.auth-code-help{font-size:13px;line-height:1.7;color:#75706a;margin:-6px 0 20px}.auth-footnote{border-top:1px solid #eee8de;padding-top:18px;margin-top:24px;font-size:13px}.customer-login label.check{align-items:flex-start;line-height:1.6}

/* Guidance uses the same warm-white surfaces, restrained gold and compact controls. */
.guide-steps{list-style:none;padding:0;margin:20px 0;display:grid;gap:20px}.guide-steps li{display:flex;gap:12px;align-items:flex-start;min-width:0}.guide-number{display:grid;place-items:center;flex-shrink:0;width:28px;height:28px;border:1px solid var(--gold-border);border-radius:50%;color:var(--gold-dark);background:var(--gold-soft);font-size:12px}.guide-steps strong{font-size:14px;font-weight:600}.guide-steps p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.8}.inline-guide{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:14px 18px;margin:0 0 22px}.inline-guide summary{cursor:pointer;color:var(--gold-dark);font-size:13px;font-weight:600}.inline-guide .guide-steps{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:6px}.guide-start{border:1px solid var(--gold-border);background:var(--surface);border-radius:var(--radius);padding:21px 24px;margin-bottom:22px}.guide-start .guide-steps{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:0}.guide-start .guide-steps li>div{flex:1}.guide-start .guide-steps button{margin-top:8px}.guide-intro{display:flex;align-items:center;justify-content:space-between;gap:14px}.guide-intro p{font-size:12px;color:var(--muted);margin:4px 0 0}.guided-empty{padding:32px 22px;text-align:center;grid-column:1/-1}.guided-empty p{color:var(--muted);max-width:430px;margin:10px auto 20px}.empty .button,.empty button{margin-top:14px}.guide-next{display:flex;gap:14px;align-items:center;border:1px solid var(--gold-border);border-left:3px solid var(--gold);background:var(--surface);border-radius:8px;padding:15px 18px;margin-bottom:20px}.guide-next>div{flex:1;min-width:0}.guide-next strong{font-size:15px}.guide-next p{margin:3px 0 0;font-size:12px;color:var(--muted)}.guide-next button{flex-shrink:0}.guide-next small{display:block;color:var(--gold-dark);font-size:11px;margin-bottom:2px}.guide-help-intro{font-size:13px;color:var(--muted);margin:12px 0 20px}.guide-shortcuts{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0 0}.field-hint{color:var(--muted);font-size:12px;line-height:1.75;margin:5px 0 14px}.success-note{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--line);border-left:3px solid var(--green);border-radius:8px;padding:15px 18px;background:var(--surface);margin-bottom:22px}.success-note>.icon{color:var(--green);margin-top:3px}.success-note p{margin:3px 0 0;font-size:12px;color:var(--muted)}.customer-auth-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:56px;align-items:center;margin:52px auto;max-width:880px}.customer-auth-layout .customer-login{margin:0;width:100%;padding:30px}.customer-auth-layout .customer-auth-tabs{margin-top:0}.auth-intro{padding:10px 0}.auth-brand{font-family:Georgia,'Songti SC',serif;font-size:29px;letter-spacing:3px;color:var(--gold-dark)}.auth-brand>span{display:block;font-family:'Microsoft YaHei',sans-serif;font-size:11px;letter-spacing:2px;color:var(--muted);margin-top:2px}.auth-intro h2{font-size:31px;font-weight:600;line-height:1.65;letter-spacing:-.5px;margin:30px 0 12px}.auth-intro>p{font-size:14px;max-width:300px;color:var(--muted)}.auth-intro .guide-steps{gap:23px;margin:28px 0}.auth-consult{display:inline-flex;gap:8px;align-items:center;font-size:12px;text-decoration:none;margin-top:8px}.customer-login label{margin:14px 0 6px}.customer-login .check{margin:20px 0}.customer-login form{margin:22px 0}.password-control{display:flex;border:1px solid var(--line);border-radius:6px;overflow:visible;background:var(--surface)}.password-control input{border:0;background:transparent;flex:1;border-radius:6px;min-width:0}.password-control button{flex-shrink:0;border:0;background:transparent;color:var(--gold-dark);font-size:12px;padding:8px 12px}.password-control:focus-within{border-color:var(--gold)}.customer-portal .inline-guide{margin-top:20px}.customer-portal .filter-tabs button span{font-size:12px;color:inherit}.inquiry-step-label{font-size:11px;color:var(--gold-dark);letter-spacing:.4px;margin:22px 0 10px;display:block}.inquiry-card #inquiry-success{padding:18px 0;outline:none}.inquiry-card #inquiry-success h2{font-size:21px}.inquiry-success-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;color:var(--green);background:var(--soft);margin-bottom:15px}.inquiry-card #inquiry-success .guide-steps{margin:20px 0}.inquiry-reference{font-size:12px;color:var(--muted);margin:10px 0}.mobile-customer-link{display:none}.reward-guide{margin-top:20px}.reward-guide .guide-steps{grid-template-columns:repeat(3,minmax(0,1fr))}.customer-tools-note{margin-top:0;margin-bottom:20px;font-size:13px}.help-topbar .topbar-label{display:inline}
@media(max-width:1000px){.customer-auth-layout{gap:30px}.guide-start .guide-steps{gap:16px}}
@media(max-width:650px){.guide-start{padding:17px;margin-bottom:18px}.guide-intro{align-items:flex-start}.guide-start .guide-steps,.inline-guide .guide-steps,.reward-guide .guide-steps{grid-template-columns:1fr;gap:17px}.guide-start .guide-steps{margin-top:17px}.guide-next{padding:12px;gap:10px;flex-wrap:wrap}.guide-next strong{font-size:14px}.guide-next button{min-height:40px;font-size:12px}.guide-next .soft-icon{display:none}.guide-next>div{min-width:190px}.customer-auth-layout{display:block;margin:0 auto}.auth-intro{padding:0 4px 18px}.auth-intro .auth-brand{display:none}.auth-brand>span{display:inline;font-size:10px;margin-left:12px;letter-spacing:1px}.auth-intro h2,.auth-intro>p,.auth-intro .guide-steps{display:none}.auth-consult{margin-top:10px}.customer-auth-layout .customer-login{padding:23px 21px}.customer-login h1{font-size:25px}.customer-auth-tabs{gap:23px}.customer-auth-tabs a{min-height:44px;display:flex;align-items:center}.customer-auth-links{font-size:13px}.password-control input{min-height:44px;font-size:16px}.password-control button{min-width:48px;min-height:44px}.public-header .mobile-customer-link{display:inline-flex;position:absolute;right:14px;font-size:12px;min-height:36px;align-items:center;text-decoration:none}.public-header.customer-header{justify-content:space-between}.customer-header>a:last-child{font-size:12px}.guide-help-intro{font-size:13px}.topbar .help-topbar{gap:4px}.topbar .help-topbar .topbar-label{display:inline;font-size:11px}.topbar .row{gap:8px}.guided-empty{padding:25px 18px}.inquiry-step-label{margin-top:20px}.inline-guide{padding:13px 15px}.guide-shortcuts>.button,.guide-shortcuts>button{flex:1}.customer-portal .heading>button{flex-shrink:0}.customer-portal .heading p{font-size:12px}}

/* Single-store workspaces: quiet surfaces, readable details and contextual actions. */
.daily-shortcuts{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 22px}.daily-shortcuts button{min-height:42px;background:var(--surface)}
.task-thumbnail,.task-placeholder{width:52px;height:52px;flex-shrink:0;border-radius:9px;object-fit:cover;background:var(--gold-soft);color:var(--gold-dark)}.task-placeholder{display:grid;place-items:center}
.task-copy p,.followup-row p,.schedule-list p,.content-kit p,.guide-next p,.guide-intro p,.customer-case p{font-size:14px;line-height:1.75}.field-hint,.photo-card small,.item-media small,.summary-footnote,.guide-next small{font-size:12px;line-height:1.65}
.operations-panel{margin:24px 0}.operations-panel>.filter-tabs{margin-bottom:28px}.operations-panel .section-heading{align-items:flex-start}.operations-panel .section-heading h2{font-size:21px}.operations-panel .section-heading p{margin:7px 0 0}.operations-panel .metric-grid strong,.operation-detail .metric-grid strong{display:block;margin-top:10px;font-size:24px;font-variant-numeric:tabular-nums;color:var(--gold-dark)}
.inventory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:22px}.inventory-card{min-width:0;border:1px solid var(--line);border-radius:10px;padding:22px;background:var(--surface)}.inventory-card h3{font-size:17px;overflow-wrap:anywhere}.inventory-card>p{color:var(--muted);font-size:13px}.inventory-amount{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:22px 0}.inventory-amount>strong{font-size:28px;font-variant-numeric:tabular-nums}.inventory-amount small{margin-left:5px;font-size:14px;font-weight:400}.inventory-amount>span{font-size:14px;color:var(--muted)}.inventory-card .actions{gap:8px;flex-wrap:wrap}.inventory-card .actions button{min-height:40px}
.operation-detail{margin-top:24px;padding:20px}.operation-detail>summary{font-size:15px;font-weight:600;cursor:pointer}.operation-detail[open]>summary{margin-bottom:20px}.operation-detail .metric-grid{gap:18px;margin:22px 0}.operations-panel fieldset{border:1px solid var(--line);padding:16px}.table-wrap td,.table-wrap th{font-size:14px;white-space:normal;overflow-wrap:anywhere}.attribution-panel{margin:24px 0}.attribution-panel td{min-width:90px}
.settings-extensions{margin-top:24px}.settings-extensions>.section-heading{margin:16px 0}.settings-extensions p{font-size:14px;line-height:1.8}.case-extra-tools{margin-top:20px;padding:22px;background:var(--gold-soft);border:1px solid var(--gold-border);border-radius:9px}.case-extra-tools h3{margin:0 0 14px}.quick-result{font-size:20px;color:var(--gold-dark);font-variant-numeric:tabular-nums}
.customer-quick-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:26px 0 34px}.customer-quick-nav a{display:flex;flex-direction:column;gap:9px;text-decoration:none;padding:19px 16px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink)}.customer-quick-nav a>.icon{color:var(--gold-dark)}.customer-quick-nav a>strong{font-size:16px;font-weight:600}.customer-quick-nav a>span{font-size:12px;color:var(--muted)}.customer-business{scroll-margin-top:90px}.customer-business .section-heading{margin:22px 0}.customer-case{margin-bottom:18px}.customer-case .section-heading{margin-top:0}.customer-case h3{font-size:19px;margin-top:6px}.customer-case small{font-size:12px;color:var(--muted)}.customer-case-amount{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:22px 0}.customer-case-amount>span{font-size:14px;color:var(--muted)}.customer-case-amount>strong{font-size:26px;color:var(--gold-dark);font-variant-numeric:tabular-nums}.customer-next{padding:14px 16px;border-left:3px solid var(--gold);background:var(--gold-soft);border-radius:4px}.customer-case details{margin-top:18px}.customer-case summary{font-size:14px;cursor:pointer}.customer-case .timeline{margin-top:20px}.customer-case .timeline time{display:block;font-size:12px}.customer-coupon-heading{margin:32px 0 18px;font-size:22px}#my-coupons{scroll-margin-top:100px}.customer-business+.customer-coupon-heading{border-top:1px solid var(--line);padding-top:26px}.customer-appointment .icon{vertical-align:middle}
.public-estimate{background:var(--gold-soft);padding:14px;border:1px solid var(--gold-border);border-radius:7px;margin:15px 0}.public-estimate summary{font-size:14px;cursor:pointer}.public-estimate input,.public-estimate select{background:var(--surface)}.public-estimate #estimate-result{font-size:15px;line-height:1.8;color:var(--gold-dark)}.public-estimate label{margin-top:15px}.catalog-entry{margin-top:16px}.catalog-entry label{font-size:14px}
@media(max-width:1000px){.inventory-grid{grid-template-columns:1fr}.customer-quick-nav{gap:9px}.customer-quick-nav a{padding:16px 12px}}
@media(max-width:650px){.daily-shortcuts{gap:8px;margin-bottom:18px}.daily-shortcuts button{flex:1;min-height:44px}.operations-panel{padding:18px 14px}.operations-panel>.filter-tabs{gap:5px;flex-wrap:wrap}.operations-panel>.filter-tabs button{min-height:44px;padding:8px 10px;font-size:14px}.inventory-card{padding:18px}.inventory-card .section-heading{flex-wrap:wrap;gap:10px}.inventory-card .actions button,.case-extra-tools button{min-height:44px}.operations-panel .metric-grid,.operation-detail .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.operations-panel .metric-grid strong{font-size:21px}.operations-panel .row.start{flex-wrap:wrap}.operations-panel input[type=date]{max-width:100%;min-height:44px}.operation-detail{padding:17px 12px}.task-thumbnail,.task-placeholder{width:44px;height:44px}.customer-quick-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:22px 0 28px}.customer-quick-nav a{padding:17px;min-height:105px}.customer-case{padding:20px 16px}.customer-case .section-heading{gap:10px}.customer-case-amount{flex-wrap:wrap}.customer-case-amount>strong{font-size:25px}.customer-case summary{min-height:44px;display:flex;align-items:center}.customer-case .button{min-height:44px}.customer-business .section-heading h2{font-size:21px}.customer-portal .heading p{font-size:14px}.guide-next button{min-height:44px}.case-extra-tools .row{flex-wrap:wrap}.public-estimate button{min-height:44px}.public-estimate input,.public-estimate select,.catalog-entry select{font-size:16px}}

/* After-login tours point to real controls without operating them. */
.tour-welcome{display:flex;gap:14px;align-items:center;background:var(--gold-soft);border:1px solid var(--gold-border);border-radius:var(--radius);padding:16px 20px;margin:0 0 20px}.tour-welcome>div:not(.tour-welcome-actions){flex:1;min-width:0}.tour-welcome strong{font-size:15px}.tour-welcome p{font-size:12px;color:var(--muted);margin:3px 0 0}.tour-welcome-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.tour-welcome .soft-icon{background:var(--surface);margin:0}.interface-tour{position:fixed;inset:0;width:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:transparent;overflow:hidden;box-shadow:none}.interface-tour::backdrop{background:transparent;backdrop-filter:none}.tour-spotlight{position:fixed;border:2px solid var(--gold);border-radius:8px;box-shadow:0 0 0 9999px #211c1670;pointer-events:none}.tour-card{position:fixed;background:var(--surface);border:1px solid var(--gold-border);border-radius:var(--radius);padding:19px 20px 13px;box-shadow:0 12px 32px #211c1630;max-height:calc(100dvh - 28px);overflow:auto;max-width:calc(100vw - 28px)}.tour-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.tour-card-top .eyebrow{font-size:11px;color:var(--gold-dark)}#tour-step{margin-left:10px;color:var(--muted);font-variant-numeric:tabular-nums}.tour-card-top button{min-width:32px;min-height:32px;padding:5px;border:0;background:transparent}.tour-card h2{font-size:18px;line-height:1.6}.tour-card p{font-size:13px;line-height:1.9;color:var(--muted);margin:9px 0 20px}.tour-card-actions{display:flex;justify-content:space-between;gap:12px}.tour-card-actions button{min-height:40px}.tour-card .tour-skip{display:block;margin:10px auto 0;font-size:11px}.portal-foot{flex-wrap:wrap}.inline-guide>.small{margin-top:14px}
@media(max-width:650px){.tour-welcome{align-items:flex-start;padding:16px;gap:10px;flex-wrap:wrap}.tour-welcome>.soft-icon{display:none}.tour-welcome>div:not(.tour-welcome-actions){flex-basis:100%}.tour-welcome-actions{width:100%;justify-content:space-between;gap:10px}.tour-welcome strong{font-size:14px}.tour-welcome-actions button{min-height:40px}.tour-card{padding:16px 17px 12px}.tour-card h2{font-size:17px}.tour-card-top button{min-height:36px;min-width:36px}.tour-card-actions button{min-height:44px}.tour-card .tour-skip{min-height:36px}.customer-portal .tour-welcome{margin-top:15px}}

.business-stage{margin-bottom:20px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.business-stage>summary{display:flex;justify-content:space-between;gap:14px;cursor:pointer;padding:19px 22px;list-style:none}.business-stage>summary strong{font-size:16px}.business-stage>summary span{font-size:13px;color:var(--gold-dark)}.business-stage>summary:after{content:"展开";font-size:12px;color:var(--muted)}.business-stage[open]>summary:after{content:"收起"}.business-stage .quote-panel{border:0;box-shadow:none;border-top:1px solid var(--line);border-radius:0 0 10px 10px}.business-stage:not([open]){margin-bottom:22px}@media(max-width:650px){.business-stage>summary{padding:16px;flex-wrap:wrap;gap:8px}.business-stage>summary span{font-size:12px}.business-stage .quote-panel{padding:15px}}

/* Natural task hierarchy: one main action, compact states, optional secondary controls. */
.heading p:empty,.empty p:empty,.guided-empty p:empty{display:none}
.case-stage{margin-bottom:20px}.case-tabs{margin-top:0}
.quote-summary{position:sticky;top:84px;align-self:start}
.quote-summary>.primary{margin:20px 0 8px;min-height:44px}
.quote-save #save-quote{display:none}
.business-stage[open]>summary{padding:15px 22px}
.quote-panel>.section-heading h2{display:none}
.quote-panel>.section-heading{justify-content:flex-end;margin-bottom:10px}
.quote-summary .note{margin:8px 0}
[aria-invalid="true"]{border-color:var(--red,#ae4732)!important;outline:2px solid #ae473220;outline-offset:2px}
.daily-shortcuts{justify-content:flex-end;margin-top:-10px;margin-bottom:18px}
.daily-shortcuts button{background:transparent;border-color:transparent;padding:7px 10px;color:var(--gold-dark)}
.daily-shortcuts button:hover{background:var(--gold-soft)}
.inventory-card .actions{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:10px}
.inventory-card .actions>button{flex:0 1 auto;min-width:100px}
.inventory-more{position:relative;margin:0 0 0 auto;font-size:13px;align-self:center}
.inventory-more>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;padding:8px 12px;color:var(--muted);list-style:none}
.inventory-more>div{position:absolute;right:0;top:100%;z-index:5;min-width:180px;padding:8px;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px #4a382016}
.inventory-more button{display:block;width:100%;text-align:left;border:0;min-height:44px}
.customer-quick-nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0 30px}
.customer-quick-nav a{min-height:84px;align-items:center;justify-content:center;text-align:center;padding:16px;gap:10px;border-color:var(--line)}
.customer-quick-nav a>strong{font-size:14px}
.customer-quick-nav a.customer-recycle{grid-column:1/-1;flex-direction:row;min-height:76px;padding:20px 24px;background:var(--gold);border-color:var(--gold);color:#fff;justify-content:flex-start}
.customer-quick-nav .customer-recycle>.icon{color:inherit}
.customer-quick-nav .customer-recycle>.icon:last-child{margin-left:auto}
.customer-quick-nav .customer-recycle>strong{font-size:19px}
.customer-quick-nav a:hover{border-color:var(--gold);background:var(--gold-soft)}
.customer-quick-nav a.customer-recycle:hover{background:var(--gold-dark)}
.customer-portal .heading{margin-bottom:12px}
.customer-portal .guided-empty{padding:24px 18px}
.customer-portal .guided-empty h2,.customer-portal .guided-empty h3{font-size:16px;font-weight:500}
.customer-portal .guided-empty p{font-size:13px;margin:8px auto}
.customer-portal .guided-empty .empty-icon{display:none}
.customer-business .guided-empty>a{display:none}
.customer-case .section-heading{margin-bottom:12px}
.customer-case-amount{margin:18px 0}.customer-case details{padding-top:10px;border-top:1px solid var(--line)}
@media(max-width:650px){
 .quote-summary{position:static}.quote-summary #summary-save-quote,.quote-summary #case-next{display:none}
 .quote-save{padding:12px 16px}.business-stage[open]>summary{padding:15px}
 .daily-shortcuts{justify-content:flex-start;margin-top:0;gap:4px}.daily-shortcuts button{flex:0 1 auto;font-size:12px}
 .customer-quick-nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:18px 0 24px}
 .customer-quick-nav a{min-height:83px;padding:12px 6px;gap:10px}.customer-quick-nav a>strong{font-size:13px}
 .customer-quick-nav a.customer-recycle{min-height:68px;padding:16px 20px}.customer-quick-nav .customer-recycle>strong{font-size:18px}
 .inventory-card .actions>button{min-width:90px}.inventory-more>summary{padding:8px}
}
