/* SUNBABY VI 4.1: 麦烤橙 E65624 / 麦穗黄 F9CF5B / 健康绿 76A24A / 奶油白 F6F1DA.
   Presentation only. Keep all existing table/container widths, cell typography,
   padding, sticky offsets, overflow rules and business state selectors intact. */
:root {
  --brand: #e65624;
  --brand-strong: #b83d16;
  --brand-soft: #fff0e8;
  --brand-yellow: #f9cf5b;
  --brand-leaf: #76a24a;
  --brand-cream: #f6f1da;
  --ink: #29251f;
  --muted: #756e62;
  --paper: #f7f5ef;
  --panel: #fffefa;
  --green: var(--brand-strong); /* Compatibility for existing action tokens. */
  --green-2: var(--brand-soft);
  --orange: var(--brand-strong);
  --red: #b42318;
  --line: #e5e0d5;
  --shadow: 0 4px 20px #3f2b1510, 0 1px 3px #3f2b1506;
  --success: #43672c;
  --success-soft: #edf5e5;
  --warning: #825b13;
  --warning-soft: #fff4d4;
  --danger-soft: #fff0ec;
  --focus-ring: #e6562440;
}
body { background: var(--paper); color: var(--ink); }
::selection { background: #f9cf5b80; color: #29251f; }
:where(button,a,input,select,textarea,summary):focus-visible {
  outline: 2px solid var(--brand-strong); outline-offset: 3px;
}
:where(input[type=checkbox], input[type=radio]) { accent-color: var(--brand-strong); }
:where(input,textarea,select)::placeholder { color: #8b847a; }
:where(button,.button,a,summary) { -webkit-tap-highlight-color: transparent; }
.button {
  transition: background-color .16s ease, color .16s ease, box-shadow .16s ease, opacity .16s ease;
  border-radius: 10px;
}
.button:hover:not(:disabled) { transform: none; filter: none; box-shadow: inset 0 0 0 1px #29251f16; }
.button:active:not(:disabled) { box-shadow: inset 0 2px 5px #29251f26; }
.button.primary { color: #fff; background: var(--brand-strong); box-shadow: 0 2px 5px #b83d1618; }
.button.primary:hover:not(:disabled) { background: #9f3212; }
.button.secondary { background: var(--brand-soft); color: #9f3212; }
.button.secondary:hover:not(:disabled) { background: #ffe2d3; }
.button.ghost { background: #f0eee8; color: #5b544a; }
.button.ghost:hover:not(:disabled) { background: #e9e5dc; }
.button.danger, .button.stop { background: var(--red); color: #fff; }
.button:disabled { opacity: .55; box-shadow: none; }
.module-nav { background: #fffef9ed; border-color: var(--line); box-shadow: 0 4px 20px #3224110c; backdrop-filter: blur(16px); }
.module-nav a { color: #665e52; transition: color .16s, background-color .16s; }
.module-nav a:hover { background: var(--brand-soft); color: var(--brand-strong); }
.module-nav a.active { background: #29251f; color: #fff9e9; box-shadow: inset 0 -2px var(--brand-yellow); }
:is(.hero,.delivery-heading,.campaign-heading,.dimension-header,.admin-hero) h1 { font-family: inherit; font-size: clamp(30px, 3.2vw, 42px); font-weight: 750; letter-spacing: -.04em; line-height: 1.2; }
.eyebrow { color: var(--brand-strong); }
:is(.panel,.delivery-card,.campaign-panel,.dimension-picker,.account-card) { background: var(--panel); border-color: var(--line); box-shadow: var(--shadow); }
:is(.panel,.delivery-card,.campaign-panel) { backdrop-filter: none; }
.module-card { background: #fffefa; border-color: var(--line); box-shadow: var(--shadow); }
.module-card::after { background: #f9cf5b26; }
.module-card:hover { transform: translateY(-2px); border-color: #e7bb99; box-shadow: 0 12px 30px #54330e12; }
.module-icon { background: var(--brand-soft); color: var(--brand-strong); }
.finance-card .module-icon { background: #fff2cc; color: #795817; }
.dimension-card .module-icon { background: var(--success-soft); color: var(--success); }
.step-number { background: #f9cf5b; color: #49320b; }
:is(.listing-view-tabs,.admin-tabs,.delivery-tabs,.campaign-tabs,.settings-tabs,.delivery-subnav) { background: #fffefa; border-color: var(--line); }
:is(.admin-tabs,.delivery-tabs,.campaign-tabs) button:not(.active) { color: #665e52; }
:is(.admin-tabs,.delivery-tabs,.campaign-tabs) button.active { background: #29251f; color: #fff9e9; }
:is(.operation-options,.entry-selection-toolbar,.selection-toolbar,.schedule-filter,.task-group-card,.campaign-group-import) { background: #faf8f1; border-color: var(--line); color: var(--ink); }
:is(.entry-grid-type-name,.badge,.activity-count) { color: var(--brand-strong); background: var(--brand-soft); }
label, .operation-option-title { color: #5e574d; }
:is(.searchable-select-trigger,.searchable-select-search,.choice-list-search,.entry-grid-toolbar input,.entry-grid-toolbar select) { border-color: var(--line); }
:is(input,select,textarea):focus-visible { border-color: var(--brand); box-shadow: 0 0 0 3px var(--focus-ring); }
:is(.searchable-select-panel,.grid-combo-panel,.grid-cascade-panel,.campaign-filter-options) { border-color: var(--line); background: #fffefa; box-shadow: 0 12px 36px #30200f24; }
:is(.searchable-select-option,.campaign-filter-options button):is(:hover,:focus-visible,[aria-selected=true]) { background: var(--brand-soft); color: var(--brand-strong); }
/* Color-only table changes: no sizing, font, padding, layout or sticky changes. */
:is(.entry-grid-wrap,.sheet-table-wrap,.enum-table-scroll,.table-scroll) { border-color: var(--line); }
table th { background-color: #f3f0e7; color: #524a3f; border-color: var(--line); }
table td { border-color: var(--line); }
:is(.campaign-rules-table,.entry-grid-table) thead th { background-color: #f3f0e7; color: #524a3f; }
:is(.entry-grid-readonly,.entry-grid-not-applicable) { background-color: #f7f5f0; color: #787164; }
table tbody tr:hover > td { background-color: #fffaf0; }
table tbody tr:focus-within > td { box-shadow: inset 0 1px #e9b295, inset 0 -1px #e9b295; }
/* State colors are semantic, independent of the orange action color. */
.status-text.ok, .empty-state.success, #adminMessage.success { color: var(--success); }
.status-text.warning { color: var(--warning); }
.status-text.error { color: var(--red); }
:is(.activity-state.completed,.account-state.enabled) { color: var(--success); background: var(--success-soft); }
:is(.activity-state.failed,.activity-state.interrupted,.account-state.disabled) { color: var(--red); background: var(--danger-soft); }
:is(.activity-state.pending,.activity-state.paused,.activity-state.missed,.activity-state.needs_attention) { color: var(--warning); background: var(--warning-soft); }
:is(.delivery-empty,.empty-state,.run-event-log,.activity-block-heading) { background: #faf8f2; border-color: var(--line); }
:is(.dialog-close,.campaign-dialog-close) { background: #f0eee8; color: #665e52; }
dialog { border-color: var(--line); box-shadow: 0 24px 80px #29251f30; }
dialog::backdrop { background: #29251f59; backdrop-filter: blur(3px); }
dialog[open] { animation: sunbaby-dialog-in .16s ease-out; }
@keyframes sunbaby-dialog-in { from { opacity: .4; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
/* Product share view uses the same brand, preserving its independent layout. */
body:has(#reviewContent) { background: var(--paper); }
body:has(#reviewContent) :is(section,nav a) { border-color: var(--line); }
body:has(#reviewContent) nav { background: #f7f5eff5; }
body:has(#reviewContent) nav a { color: var(--brand-strong); }
body:has(#reviewContent) .readonly { background: var(--brand-soft); color: var(--brand-strong); }
/* Vector artwork extracted from the supplied VI; no raster enlargement. */
html.login-document { scrollbar-gutter: auto; }
.login-page { position: relative; isolation: isolate; display: grid; grid-template-rows: auto 1fr; align-items: center; justify-content: stretch; gap: 16px; min-height: 100svh; padding: clamp(20px,4vh,40px) max(4vw,24px) 24px; background: #f1ebd3; }
.login-masthead { display: flex; align-items: center; gap: 24px; justify-self: start; }
.login-masthead img { display: block; width: 184px; height: auto; }
.login-masthead span { border-left: 1px solid #29251f; padding-left: 24px; font-size: 34px; font-weight: 700; line-height: 1.1; }
.login-art { position: fixed; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center top; pointer-events: none; }
.login-page::before { content: none; }
.login-page .access-shell { position: relative; justify-self: end; align-self: center; max-width: 420px; padding: 24px 32px; background: #fff; border: 1px solid #ffffffd9; border-radius: 24px; box-shadow: 0 24px 80px #3e2a1533, 0 2px 8px #3e2a1510; backdrop-filter: blur(20px); }
.login-brand { color: var(--brand-strong); letter-spacing: .04em; margin-bottom: 20px; }
.login-brand-mark { background: var(--brand); color: #231a13; border-radius: 10px; }
.login-heading { text-align: center; }
.login-heading h1 { font-size: 26px; letter-spacing: -.03em; }
.login-heading > p { font-size: 13px; color: var(--muted); }
.login-methods { margin: 20px 0 8px; padding: 3px; gap: 3px; border: 0; border-radius: 11px; background: #f7f6f2; }
.login-methods button { border: 0; border-radius: 8px; padding: 9px 4px; }
.login-methods button[aria-selected=true] { color: var(--brand-strong); background: #fff; box-shadow: 0 1px 5px #29251f12; }
.login-methods:not([hidden]) + .login-panels { min-height: 412px; }
.login-page .access-form input { background: #fffefa; border-color: #dcd4c5; }
.login-page .access-form input:focus { border-color: var(--brand); box-shadow: 0 0 0 3px var(--focus-ring); }
.login-page #submitLogin { background: var(--brand-strong); color: white; }
.login-page #submitLogin:disabled { background: #e9e4d8; color: #746959; }
.login-copyright { align-self: flex-end; width: min(420px,100%); text-align: center; color: #493c2b; }
.login-password-wrap { display: block; position: relative; }
.login-page .access-form .login-password-wrap input { width: 100%; padding-right: 56px; }
.login-password-toggle { position: absolute; right: 5px; top: 5px; bottom: 5px; border: 0; border-radius: 7px; background: transparent; color: var(--brand-strong); padding: 0 9px; font: inherit; font-size: 12px; cursor: pointer; }
.login-password-toggle:hover { background: var(--brand-soft); }
.login-caps-lock { color: var(--warning); font-size: 12px; margin: 6px 0 0; }
@media(max-width:700px) {
  .login-page { padding: 20px 16px; gap: 16px; }
  .login-masthead { gap: 16px; }
  .login-masthead img { width: 140px; }
  .login-masthead span { padding-left: 16px; font-size: 26px; }
  .login-art { object-position: 35% center; }
  .login-page .access-shell { justify-self: center; padding: 22px 24px; border-radius: 20px; }
  .login-copyright { align-self: center; }
}
@media(prefers-reduced-motion:reduce) {
  .button,.module-card,.module-nav a { transition: none; }
  .module-card:hover { transform: none; }
  dialog[open],.admin-view.active { animation: none; }
}
/* Preserve the distinction between edited rows and selected spreadsheet cells. */
.entry-data-grid td.selected, .rule-group-table td[data-rule-cell].selected { background: #fff0cb !important; box-shadow: inset 0 0 0 2px #b83d16; }
.entry-data-grid tr.dirty td { background-color: #fff8e2; }
.entry-data-grid tr.dirty td[data-condition-active=false] { background-color: #f4f1e9; }
.rule-group-options .rule-group-option:is(:hover,:focus-visible,.is-active,[aria-selected=true]) { background: var(--brand-soft); color: var(--brand-strong); }
.rule-group-option[aria-selected=true] .rule-option-check { background: var(--brand-strong); border-color: var(--brand-strong); }
/* Module-specific surfaces; keep their geometry and business state styles. */
.entry-workspace, .campaign-card, .campaign-inset, .campaign-block,
.campaign-dialog-heading, .campaign-dialog-footer { background: #faf8f2; border-color: var(--line); }
.entry-data-grid th, .enum-table th, .campaign-table th,
.dimension-shell th, .dimension-shell th.action-cell { background-color: #f3f0e7; color: #524a3f; border-color: var(--line); }
.grid-combo-token, .rule-group-tags button, .campaign-token { background: var(--brand-soft); color: var(--brand-strong); }
.grid-rule-group-button, .rule-group-add-row { background: #faf8f2; border-color: var(--line); color: var(--brand-strong); }
.listing-view-nav, .listing-sheet-tabs { border-color: var(--line); }
.listing-view-nav :is(button,a).active { background: #29251f; color: #fff9e9; }
.listing-view-nav #openLoginDialog, .delivery-tabs #openDeliveryLoginDialog { background: var(--brand-soft); color: var(--brand-strong); }
.dimension-shell, .dimension-dialog { --dimension-line: var(--line); --dimension-soft: #faf8f2; --dimension-green-soft: var(--brand-soft); }
.badge.muted { background: #f0eee8; color: #665e52; }

@media(min-width:701px) and (max-height:760px) {
  .login-page { padding-top: 16px; padding-bottom: 16px; gap: 12px; }
  .login-masthead img { width: 150px; }
  .login-masthead span { font-size: 28px; }
  .login-page .access-shell { padding: 20px 28px; }
  .login-methods { margin-top: 14px; }
}
