/* Shared app appearance. Landing and unmarked documents are deliberately outside this scope. */
@font-face {
  font-family: Manrope;
  src: url('/fonts/manrope/manrope-variable.ttf') format('truetype');
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
}
:root {
  --ui-bg: #f5f3ee;
  --ui-surface: #ffffff;
  --ui-surface-soft: #eeece7;
  --ui-text: #262733;
  --ui-muted: #616272;
  --ui-border: #dcdbe3;
  --ui-accent: #6558b8;
  --ui-accent-soft: #efecfb;
  --ui-teal: #267b76;
  --ui-danger: #a43b43;
  --ui-warning: #7b571a;
  --ui-success: #256849;
  --ui-shadow: 0 12px 40px #3531440a, 0 2px 8px #35314404;
  --ui-font: Manrope, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color-scheme: light;
}
:root[data-theme='dark'] {
  --ui-bg: #191c28;
  --ui-surface: #242837;
  --ui-surface-soft: #2c3142;
  --ui-text: #f1f0f7;
  --ui-muted: #b2b6c8;
  --ui-border: #3c4154;
  --ui-accent: #c0b4ff;
  --ui-accent-soft: #37324e;
  --ui-teal: #80cec5;
  --ui-danger: #ffadb6;
  --ui-warning: #efd299;
  --ui-success: #99deba;
  --ui-shadow: 0 12px 40px #07091220, 0 2px 8px #07091210;
  color-scheme: dark;
}
html:has(body.app-design), body.app-design {
  --bg-dark: var(--ui-bg); --bg: var(--ui-bg); --canvas: var(--ui-bg);
  --bg-primary: var(--ui-bg); --bg-secondary: var(--ui-surface-soft);
  --bg-card: var(--ui-surface); --card-bg: var(--ui-surface); --surface: var(--ui-surface);
  --bg-card-hover: var(--ui-surface-soft);
  --text-primary: var(--ui-text); --text: var(--ui-text); --text-secondary: var(--ui-muted); --text-muted: var(--ui-muted); --muted: var(--ui-muted);
  --border-color: var(--ui-border); --border: var(--ui-border); --card-border: var(--ui-border);
  --primary: var(--ui-accent); --primary-hover: var(--ui-accent); --primary-gradient: #6558b8;
  --accent: var(--ui-teal); --accent-hover: var(--ui-teal); --focus: var(--ui-accent);
  --font-body: var(--ui-font); --font-display: var(--ui-font);
  --care-primary: var(--ui-teal); --care-primary-strong: var(--ui-teal);
  --care-surface: var(--ui-surface); --care-surface-solid: var(--ui-surface); --care-border: var(--ui-border);
  --care-text: var(--ui-text); --care-muted: var(--ui-muted); --care-radius: 24px;
  --legal-ink: var(--ui-text); --legal-muted: var(--ui-muted); --legal-line: var(--ui-border); --legal-accent: var(--ui-teal);
  --shadow-sm: 0 2px 8px #35314408; --shadow-md: var(--ui-shadow); --shadow-lg: var(--ui-shadow);
}
body.app-design {
  background: var(--ui-bg) !important;
  color: var(--ui-text);
  font-family: var(--ui-font);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
body.app-design::before { background: none; }
body.app-design :is(h1,h2,h3,h4,h5,h6,.logo,.logo-title,.brand,.care-brand) {
  font-family: var(--ui-font); letter-spacing: -.035em;
}
body.app-design :is(h1,h2,h3) { line-height: 1.25; font-weight: 750; }
body.app-design :is(p,li,label,legend,.avv-page,.avv-dialog,.legal-document) { color: var(--ui-text); }
body.app-design :is(.muted,.subtitle,.lead,.breadcrumb,.related,.avv-muted,.avv-subtitle) { color: var(--ui-muted); }
body.app-design :where(a:not(.btn):not(.button):not(.care-nav-link)) { color: var(--ui-accent); }
body.app-design :is(button,input,select,textarea) { font: inherit; }
body.app-design :is(input:not([type='checkbox']):not([type='radio']):not([type='range']):not([type='file']),select,textarea,.premium-input) {
  color: var(--ui-text) !important;
  background: var(--ui-surface) !important;
  border: 1px solid var(--ui-border) !important;
  border-radius: 12px;
}
body.app-design :is(input,textarea)::placeholder { color: var(--ui-muted); opacity: .85; }
body.app-design :is(input[type='checkbox'],input[type='radio']) { accent-color: var(--ui-accent); }
body.app-design :is(button,.btn,.button,.care-button,.avv-link) { border-radius: 12px; box-shadow: none; }
body.app-design :is(.btn-primary,.btn-login,.button-primary,.care-button-primary,.avv-primary) {
  background: #6558b8 !important; border-color: #6558b8 !important; color: #fff !important;
}
body.app-design #btn-admin-passkey-login { background: #267b76 !important; border-color: #267b76 !important; color: #fff !important; box-shadow: none !important; }
body.app-design .login-card div[style*='opacity: 0.3'] { opacity: 1 !important; color: var(--ui-muted); }
body.app-design .login-card hr { border-top-color: var(--ui-border) !important; }
body.app-design :is(.btn-secondary,.btn-ghost,.care-button-secondary,.avv-entry button) {
  background: var(--ui-surface); border-color: var(--ui-border); color: var(--ui-text);
}
body.app-design :is(.card,.panel,.glass-card,.dashboard-card,.stat-card,.auth-card,.login-container,.login-card,.care-card,.care-panel,.care-auth-card,.care-invite-card,.vpn-enroll-card,.legal-center__card,.legal-center__masthead,.avv-onboarding,.avv-provider,.avv-offer,.cta-box) {
  background: var(--ui-surface); color: var(--ui-text); border: 1px solid var(--ui-border);
  border-radius: 24px; box-shadow: var(--ui-shadow); backdrop-filter: none;
}
body.app-design :is(.main-header,.care-header,.care-auth-shell,.care-mobile-shell,.care-mobile-header,.care-bottom-nav,.care-public-invite-card,.sidebar,.care-sidebar,.mobile-drawer,.avv-dialog,main.legal-document > header,main.legal-document > section,main.legal-document > footer) {
  background: var(--ui-surface) !important; color: var(--ui-text); border-color: var(--ui-border) !important;
}
body.app-design :is(.modal-content,.modal-card,.custom-modal-card,main.legal-document > section,main.legal-document > header) {
  background: var(--ui-surface); color: var(--ui-text); border-radius: 24px; border-color: var(--ui-border);
}
body.app-design :is(.nav-link.active,.nav-item.active,.care-nav-item.is-active,.care-nav-link[aria-current='page'],.tab-button.active) {
  background: var(--ui-accent-soft); color: var(--ui-accent); box-shadow: none;
}
body.app-design :is(th,td,.care-row,.avv-steps li) { border-color: var(--ui-border); }
body.app-design :is(thead,.table-header) { background: var(--ui-surface-soft); }
body.app-design :is(.avv-page,.legal-document) { font-family: var(--ui-font); }
body.app-design .legal-document, body.app-design.legal-document {
  --legal-ink: var(--ui-text); --legal-muted: var(--ui-muted); --legal-line: var(--ui-border); --legal-accent: var(--ui-teal);
}
body.app-design :is(.legal-nav,.legal-notice,.care-auth-intro,.care-public-invite-summary) {
  background: var(--ui-accent-soft); color: var(--ui-text); border-color: var(--ui-border);
}
body.app-design .avv-message:not(.avv-error) { background: var(--ui-accent-soft); color: var(--ui-text); }
body.app-design .care-auth-status:is([data-tone='error'],[data-tone='danger']) { color: var(--ui-danger); }
body.app-design .care-auth-status[data-tone='warning'] { color: var(--ui-warning); }
body.app-design .care-auth-status[data-tone='success'] { color: var(--ui-success); }
body.app-design :is(.avv-page,.legal-document,.avv-dialog) :is(p,li,h1,h2,h3,label) { color: var(--ui-text); }
body.app-design :is(.avv-entry button,.avv-dialog button,.avv-dialog .avv-link) { background: var(--ui-surface); color: var(--ui-text); border-color: var(--ui-border); }
body.app-design :focus-visible { outline: 3px solid var(--ui-accent); outline-offset: 3px; }
body.app-design [hidden] { display: none !important; }
.app-theme-control {
  position: fixed; right: 20px; bottom: 20px; z-index: 700;
  display: inline-flex; align-items: center; gap: 10px; padding: 6px 8px 6px 14px;
  max-width: calc(100vw - 32px); border: 1px solid var(--ui-border); border-radius: 99px;
  background: var(--ui-surface); color: var(--ui-muted); box-shadow: var(--ui-shadow);
  font: 600 12px/1.4 var(--ui-font);
}
body.app-design .app-theme-control select { border: 0 !important; border-radius: 99px; min-height: 34px; padding: 5px 8px; max-width: 112px; font-size: 12px; }
.app-theme-control-inline { position: static; box-shadow: none; }
@media (max-width: 640px) { .app-theme-control { right: 12px; bottom: calc(76px + env(safe-area-inset-bottom)); } }
@media (prefers-reduced-motion: reduce) {
  body.app-design *, body.app-design *::before, body.app-design *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
@media print {
  :root, :root[data-theme] { --ui-bg: #fff; --ui-surface: #fff; --ui-surface-soft: #fff; --ui-text: #111; --ui-muted: #444; --ui-border: #ccc; --ui-accent: #333; --ui-teal: #333; --ui-accent-soft: #fff; color-scheme: light; }
  .app-theme-control { display: none !important; }
  body.app-design { background: #fff !important; color: #111 !important; }
}
