:root { --ca-bg:#f5f4ef; --ca-surface:var(--paper); --ca-text:var(--ink); --ca-muted:var(--muted); --ca-line:var(--line); --ca-accent:var(--red); --ca-soft:#eeeee7; --ca-hover:#ebece4; color:var(--ink); background:var(--ca-bg); color-scheme:light; }
:root[data-admin-theme="dark"] { --ca-bg:#141714; --paper:#1d221d; --ink:#f0f0e8; --muted:#b0b7ab; --line:#3e483d; --green:#87ccb0; --red:#c83a2f; --ca-soft:#272e27; --ca-hover:#323b30; color-scheme:dark; }
:root[data-admin-accent="green"] { --red:#276448; }
:root[data-admin-accent="gold"] { --red:#80601f; }
:root[data-admin-theme="dark"][data-admin-accent="green"] { --red:#327754; }
:root[data-admin-theme="dark"][data-admin-accent="gold"] { --red:#8c6820; }
body { color:var(--ink); background:var(--ca-bg); }
button:hover:not(:disabled) { background:var(--ca-hover); }
button.primary:hover:not(:disabled) { background:var(--red); border-color:var(--red); filter:brightness(1.08); }
.sidebar-foot button:hover:not(:disabled) { background:#30382c; color:#fff; border-color:#829078; }
.promo-preview-image button:hover:not(:disabled) { background:#252b24; color:#fff; border-color:#829078; }
.appearance-dialog { width:min(560px,calc(100vw - 28px)); padding:28px; border:1px solid var(--line); border-radius:18px; background:var(--paper); color:var(--ink); }
.appearance-dialog header,.appearance-dialog footer { display:flex; gap:16px; justify-content:space-between; align-items:start; }
.appearance-dialog footer { justify-content:flex-end; margin-top:24px; }
.appearance-dialog header h2 { margin-bottom:25px; }
.appearance-dialog fieldset { border:0; padding:0; margin:0 0 24px; }
.appearance-dialog legend { font-size:13px; font-weight:650; margin-bottom:12px; }
.appearance-options { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.appearance-options label { position:relative; display:flex; flex-direction:column; align-items:center; gap:10px; padding:12px 8px; border:1px solid var(--line); border-radius:10px; cursor:pointer; font-size:12px; }
.appearance-options label:has(:checked) { border-color:var(--red); outline:1px solid var(--red); }
.appearance-options input { position:absolute; inset:9px 9px auto auto; width:14px; height:14px; margin:0; }
.theme-sample { width:70px; height:45px; border-radius:5px; background:linear-gradient(90deg,#20251f 25%,#f5f4ef 25%); border:1px solid #7a8175; margin:9px 0; }
.theme-dark { background:linear-gradient(90deg,#090d09 25%,#252b25 25%); }
.theme-system { background:linear-gradient(90deg,#20251f 25%,#f5f4ef 25%,#f5f4ef 62%,#252b25 62%); }
.swatch { width:24px; height:24px; border-radius:50%; margin-top:9px; }
.swatch-red { background:#be3025; }.swatch-green { background:#276448; }.swatch-gold { background:#80601f; }
#appearance-button { font-size:12px; padding:8px 12px; }
.admin-subnav { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:26px; border-bottom:1px solid var(--line); padding-bottom:14px; }
.admin-subnav button[aria-pressed="true"] { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.login-screen { min-height:100dvh; background:linear-gradient(115deg,rgba(0,0,0,.72),rgba(4,3,3,.58)),linear-gradient(#000, #000) 58% 50%/cover; color:#f7f3e9; }
.login-screen .login-brand { background:transparent; }
.login-screen .login-brand h1 { font-size:0; height:84px; width:min(340px,80vw); background:url('/assets/img/carloto-logo-white.svg') left center/contain no-repeat; }
.login-screen .login-card { background:rgba(7,6,5,.9); color:#f7f3e9; border:1px solid #ffffff29; box-shadow:0 24px 80px #0008; }
.login-screen input { color:#fff; background:#1b1d1b; border-color:#42483d; }
.login-screen .login-card p,.login-screen .login-brand p,.login-screen .login-card label { color:#c5c3b8; }
.login-screen .eyebrow { color:#ef8b73; }
.businesses-view { background:#080a08 linear-gradient(#000, #000) center/cover fixed; }
.businesses-view #app { background:linear-gradient(115deg,#000e,#070807df); min-height:100dvh; }
.businesses-view main { background:transparent; }
.businesses-view .topbar,.businesses-view .page-head { color:#f7f4e9; }
.businesses-view .topbar { border-color:#ffffff25; background:#090b09b3; }
.businesses-view .business-hub-tools button {
  color:#f7f4e9;
  background:#20271f;
  border-color:#7b8974;
}
.businesses-view .business-hub-tools button:hover:not(:disabled) {
  color:#fff;
  background:#333f2f;
  border-color:#a4b19b;
}
.businesses-view .business-hub-tools button:active:not(:disabled) { background:#161c15; }
.businesses-view .business-hub-tools button:focus-visible { outline-color:#edbd62; }
.businesses-view .business-hub-tools button:disabled {
  color:#b7bfb0;
  background:#20271f;
  border-color:#53604d;
  opacity:1;
}
.businesses-view .page-description,.businesses-view #page-description { color:#c1c6ba; }
.businesses-view .business-directory-note { color:#b7c0b1; }
.businesses-view .eyebrow { color:#ec9b88; }
.businesses-view #connection { color:#abd8bd; }
[data-admin-theme="dark"] .status { background:#263f30; color:#bce0c7; }
[data-admin-theme="dark"] .status.error { background:#47251e; color:#ffc7b7; }
[data-admin-theme="dark"] .badge { color:#cbd1c4; background:#394332; }
[data-admin-theme="dark"] .badge.active { background:#254334; color:#c1e4c8; }
[data-admin-theme="dark"] .badge.draft { background:#493d2a; color:#f0d5a7; }
@media(max-width:600px) { .appearance-dialog { padding:20px; }.business-hub-tools { gap:6px; flex-wrap:wrap; justify-content:flex-end; } .login-screen .login-brand h1 { height:55px; } }

/* Shared dark surfaces. Public artwork/previews retain their own brand colors. */
html[data-admin-theme="dark"] {
  --surface: var(--paper);
  --border: var(--line);
  --ca-accent-ink: #f2a093;
  --ca-success-bg: #263f30;
  --ca-success-ink: #bce0c7;
  --ca-warning-bg: #403729;
  --ca-warning-ink: #ead2a8;
  --ca-error-bg: #47251e;
  --ca-error-ink: #ffc7b7;
}
html[data-admin-theme="dark"][data-admin-accent="green"] { --ca-accent-ink: #91d6ad; }
html[data-admin-theme="dark"][data-admin-accent="gold"] { --ca-accent-ink: #e3c180; }
html[data-admin-theme="dark"] :is(input, textarea, select, td, th, .profile-dialog) { border-color: var(--line); }
html[data-admin-theme="dark"] :is(.eyebrow, .profile-poster-info button, .business-carloto .business-card-footer, .luck-result-percent) { color: var(--ca-accent-ink); }
html[data-admin-theme="dark"] :is(.profile-scope, .api-key-row) { background: var(--paper); border-color: var(--line); }
html[data-admin-theme="dark"] :is(.table-wrap th, .link-field input, .api-example, .weekdays label, .product-cell img, .product-cell .product-photo, .profile-library-tabs button span) { background: var(--ca-soft); }
html[data-admin-theme="dark"] :is(.product-more[aria-expanded="true"], .product-menu button:focus-visible) { background: var(--ca-hover); }
html[data-admin-theme="dark"] :is(.profile-publishing small, .profile-card>small, .profile-library-tabs button, .profile-poster-info, .business-card-arrow) { color: var(--muted); }
html[data-admin-theme="dark"] .profile-library-tabs button[aria-pressed="true"] { color: var(--ink); }
html[data-admin-theme="dark"] :is(.badge.inactive, .badge.archived) { color: var(--ca-warning-ink); background: var(--ca-warning-bg); }
html[data-admin-theme="dark"] .business-card-footer { border-color: var(--line); }

/* Products, ordering and configuration. */
html[data-admin-theme="dark"] .product-order { --order-green: #91b797; --order-line: var(--line); }
html[data-admin-theme="dark"] :is(.product-order-row, .beverage-component, .beverage-choices, .beverage-choices label) { border-color: var(--line); }
html[data-admin-theme="dark"] :is(.product-order-draft, .product-order-state) { color: var(--ca-success-ink); }
html[data-admin-theme="dark"] .product-order-draft { background: var(--ca-success-bg); }
html[data-admin-theme="dark"] :is(.product-order-draft.is-dirty, .product-order-hidden-note) { background: var(--ca-warning-bg); color: var(--ca-warning-ink); }
html[data-admin-theme="dark"] :is(.product-order-position, .product-order-state.is-hidden, .product-order-movers button, .product-order-handle, .product-order-info #product-order-help svg, .beverage-toolbar p, .beverage-note, .beverage-component small, .beverage-choices small, .beverage-selected>small) { color: var(--muted); }
html[data-admin-theme="dark"] .product-order-image { background: var(--ca-soft); }
html[data-admin-theme="dark"] .product-order-row.is-grabbed { background: var(--ca-soft); }
html[data-admin-theme="dark"] .product-order-row.is-grabbed .product-order-handle { color: var(--ink); background: var(--ca-hover); border-color: var(--line); }
html[data-admin-theme="dark"] .product-order-ghost { background: var(--paper); border-color: var(--line) !important; }
html[data-admin-theme="dark"] .product-order-footer { background: color-mix(in srgb, var(--ca-bg) 96%, transparent); }
html[data-admin-theme="dark"] .product-order-save-state p.is-error { color: var(--ca-error-ink); }
html[data-admin-theme="dark"] .settings-tabs button[aria-selected="true"] { color: var(--ca-accent-ink); box-shadow: inset 0 -2px var(--ca-accent-ink); }
html[data-admin-theme="dark"] .beverage-selected button { background: var(--ca-soft); }

/* Campaign editor surfaces. Photo, banner and popup previews are unchanged. */
html[data-admin-theme="dark"] :is(.promo-template, .promo-library-card, .promo-actions>div, .promo-empty, .promo-form-panel, .promo-operating-summary, .promo-luck-outcomes div, .promo-image-actions label.button, .promo-image-actions button) { background: var(--paper); border-color: var(--line); }
html[data-admin-theme="dark"] :is(.promo-luck-rule, .promo-schedule-note, .promo-preview-tabs, .promo-weekdays span, .promo-empty>span) { background: var(--ca-soft); color: var(--ink); border-color: var(--line); }
html[data-admin-theme="dark"] :is(.promo-editor-tabs, .promo-step>details, .promo-eligible [data-eligible-products]>div, .promo-placement, .promo-step-footer, .promo-preview-summary, .promo-tags span, .promo-card-body footer, .promo-operating-summary>div) { border-color: var(--line); }
html[data-admin-theme="dark"] :is(.promo-luck-rule p, .promo-luck-scope p, .promo-luck-outcomes small, .promo-section-heading small, .promo-section-heading>span, .promo-template small, .promo-filters button, .promo-preview-tabs button, .promo-card-body>p, .promo-tags span, .promo-empty p, .promo-editor-top small, .promo-editor-tabs button, .promo-editor .help, .promo-placement small, .promo-step-footer, .promo-preview-summary small, .promo-operating-summary span, .promo-operating-summary p) { color: var(--muted); }
html[data-admin-theme="dark"] :is(.promo-luck-outcomes strong, .promo-operating-summary p b, .promo-editor-tabs button[aria-selected="true"]) { color: var(--ink); }
html[data-admin-theme="dark"] .promo-editor-tabs button[aria-selected="true"] { border-bottom-color: var(--ca-accent-ink); }
html[data-admin-theme="dark"] :is(.promo-filters button[aria-pressed="true"], .promo-preview-tabs button[aria-pressed="true"], .promo-placement:has(input:checked)) { background: var(--ca-hover); color: var(--ink); border-color: #72906c; }
html[data-admin-theme="dark"] .promo-weekdays input:checked+span { background: #3d5a40; color: #f4f4ed; border-color: #7a9c75; }
html[data-admin-theme="dark"] .promo-actions button:hover { background: var(--ca-hover); }
html[data-admin-theme="dark"] .promo-editor-top { background: var(--ca-bg); border-color: var(--line); }
html[data-admin-theme="dark"] :is(.promo-editor button:focus-visible, .promo-template:focus-visible, .promo-actions summary:focus-visible, .promo-weekdays input:focus-visible+span) { outline-color: var(--ca-accent-ink); }
html[data-admin-theme="dark"] .promo-editor input[type="checkbox"] { accent-color: #80b58c; }

/* Luck redemption and people. The QR remains black on white for scanning. */
html[data-admin-theme="dark"] :is(.luck-result p, .luck-result-terms summary, .luck-results-lookup span) { color: var(--muted); }
html[data-admin-theme="dark"] :is(.luck-results-confirm, .luck-results-lookup) { background: var(--ca-soft); border-color: var(--line); }
html[data-admin-theme="dark"] :is(.luck-results-confirm>code, .luck-results-lookup strong) { color: var(--ink); }
html[data-admin-theme="dark"] .luck-results .editor-footer { background: var(--paper); }
html[data-admin-theme="dark"] .people-kind { color: var(--ca-success-ink); background: var(--ca-success-bg); }
html[data-admin-theme="dark"] .people-kind-visitor { color: var(--ca-warning-ink); background: var(--ca-warning-bg); }

/* Business directory and editing. Business palette swatches and logos are not recolored. */
html[data-admin-theme="dark"] :is(.business-manager-tabs, .business-manager-card.is-archived, .business-manager-preview-column) { background: var(--ca-soft); border-color: var(--line); }
html[data-admin-theme="dark"] :is(.business-manager-tabs button[aria-pressed="true"], .business-manager-menu, dialog.business-manager-dialog, .business-manager-dialog .business-manager-field input, .business-manager-dialog .business-manager-field select, .business-manager-editor-foot) { background: var(--paper); color: var(--ink); border-color: var(--line); }
html[data-admin-theme="dark"] :is(.business-manager-editor-head, .business-manager-fields section+section, .business-manager-image-controls, .business-manager-image-controls>div+div, .business-manager-empty, .business-manager-dialog .business-manager-close) { border-color: var(--line); }
html[data-admin-theme="dark"] :is(.business-manager-tabs button, .business-manager-tabs button span, .business-manager-refresh, .business-manager-loading, .business-manager-empty p, .business-manager-editor-head p, .business-manager-field, .business-manager-field>span, .business-manager-field-help, .business-manager-image-controls span, .business-manager-looks legend, .business-manager-caption, .business-manager-preview-note, .business-manager-editor-foot>span, .business-manager-protected-body p, .business-manager-dialog .business-manager-close) { color: var(--muted); }
html[data-admin-theme="dark"] .business-manager-dialog .business-manager-field input[readonly] { color: var(--muted); background: var(--ca-soft); }
html[data-admin-theme="dark"] .business-manager-field input::placeholder { color: var(--muted); }
html[data-admin-theme="dark"] :is(.business-manager-image-controls button, .business-manager-looks button) { background: var(--ca-soft); color: var(--ink); border-color: var(--line); }
html[data-admin-theme="dark"] :is(.business-manager-menu button:hover:not(:disabled), .business-manager-menu button:focus, .business-manager-dialog .business-manager-close:hover:not(:disabled), .business-manager-looks button:hover:not(:disabled)) { background: var(--ca-hover); color: var(--ink); }
html[data-admin-theme="dark"] .business-manager-menu [data-business-action="archive"] { color: var(--ca-error-ink); border-color: var(--line); }
html[data-admin-theme="dark"] .business-manager-image-controls [data-remove-logo] { color: var(--ca-error-ink); background: transparent; border-color: transparent; }
html[data-admin-theme="dark"] :is(.business-manager-load-error, .business-manager-error, .business-manager-reconcile) { color: var(--ca-error-ink); background: var(--ca-error-bg); border-color: #775044; }
html[data-admin-theme="dark"] .business-manager-loader { border-color: var(--line); border-top-color: var(--green); }
/* This is an actual light carta preview, independent of the administration theme. */
html[data-admin-theme="dark"] .business-manager-preview { color: #242420; }
/* Directory photography is dark in both appearance modes. */
.businesses-view .business-manager-refresh { color: #c5cdbe; }
.businesses-view .business-manager-empty { background: #151b15d9; border-color: #4f5c47; color: #f0f0e8; }
.businesses-view .business-manager-empty p,
.businesses-view .business-manager-loading { color: #c5cdbe; }
html[data-admin-theme="dark"] button.primary:hover:not(:disabled) { filter: brightness(1.05); }
