/* Shared AgendaSIMIA interface. Legacy token names remain compatible with templates. */
:root {
  color-scheme: light;
  --bg: #ece7f4; --surface: #ffffff; --surface-alt: #e6def1; --white: var(--surface);
  --text: #202039; --text-mid: #4f4c67; --text-muted: #68637e; --muted: var(--text-muted);
  --navy: var(--text); --brand-deep: #19233d; --purple: #7041d9; --purple-mid: #6233c9;
  --lilac: #bca7dd; --lime: #d7f98b; --blue: #3d65ce; --border: #c1b3d7;
  --accent-soft: #eee7ff; --success-bg: #e4f2cd; --success: #345616; --danger-bg: #fce9ed;
  --danger: #b32949; --danger-border: #e9b2be; --warning-bg: #fff2d6; --warning: #8a570f;
  --shadow: 0 6px 24px #7041d918, 0 1px 3px #7041d90d; --radius: 18px;
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: #11131d; --surface: #1c2030; --surface-alt: #252a3c; --white: var(--surface);
  --text: #f1eff8; --text-mid: #d1cedf; --text-muted: #aaa6bf; --muted: var(--text-muted);
  --purple: #b69aff; --purple-mid: #cfbaff; --lilac: #655285; --border: #3b4057;
  --accent-soft: #302541; --blue: #9bb6ff; --success-bg: #283a24; --success: #c4ed93;
  --danger-bg: #3a2633; --danger: #ffacbb; --danger-border: #774253; --warning-bg: #3c3424;
  --warning: #f5cb86; --shadow: 0 12px 40px #0000001a;
}
*,*::before,*::after { box-sizing:border-box; }
* { margin:0; padding:0; }
html { scroll-behavior:smooth; scroll-padding-top:100px; }
body { min-height:100vh; background:var(--bg); color:var(--text); font:15px/1.6 'DM Sans',system-ui,sans-serif; -webkit-font-smoothing:antialiased; }
a { color:var(--purple); text-decoration:none; }
a:hover { text-decoration:underline; }
button,input,select,textarea { font:inherit; }
button,a,input,textarea,select { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
input,textarea,select { accent-color:var(--purple); }
img { max-width:100%; }
button:disabled { cursor:not-allowed; opacity:.55; }
:focus-visible { outline:3px solid var(--blue); outline-offset:3px; }
[hidden] { display:none!important; }
.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; }
.skip-link { position:fixed;top:-80px;left:20px;background:var(--surface);padding:12px 20px;z-index:300; }
.skip-link:focus { top:12px; }
.brand-lockup { display:inline-flex;align-items:center;gap:11px;color:var(--text);font-size:19px;font-weight:800;letter-spacing:-.04em;white-space:nowrap; }
.brand-lockup:hover { text-decoration:none; }
.brand-lockup img { height:37px;width:37px;object-fit:contain;border-radius:10px; }
.brand-lockup small { font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);border-left:1px solid var(--border);padding-left:11px;margin-left:1px; }
.theme-toggle { width:42px;height:42px;padding:0;display:inline-grid;place-items:center;background:var(--surface-alt);color:var(--text);border:1px solid var(--border);border-radius:50%;flex-shrink:0; }
.theme-toggle:hover { border-color:var(--purple); }
.theme-toggle svg { width:19px;height:19px; }
.theme-toggle .theme-sun { display:none; }
[data-theme="dark"] .theme-toggle .theme-sun { display:block; }
[data-theme="dark"] .theme-toggle .theme-moon { display:none; }
.site-top { max-width:1200px;margin:auto;padding:24px 32px;display:flex;align-items:center;justify-content:space-between;gap:20px; }
.site-top-actions { display:flex;align-items:center;gap:18px; }
.app-nav { background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:90; }
.app-nav-inner { max-width:1400px;margin:auto;display:flex;align-items:center;gap:26px;padding:16px 28px; }
.nav-panel { flex:1;min-width:0; }
.nav-menu-toggle { width:44px;height:44px;align-items:center;justify-content:center;padding:0;border:1px solid var(--border);border-radius:12px;color:var(--text);background:var(--surface-alt); }
.nav-menu-toggle svg { width:22px;height:22px; }
.nav-menu-toggle:hover,.nav-menu-toggle[aria-expanded="true"] { border-color:var(--purple);color:var(--purple); }
.nav-mobile-account { display:none; }
.nav-links { display:flex;align-items:center;gap:3px;flex:1; }
.nav-link { color:var(--text-mid);font-size:14px;font-weight:600;white-space:nowrap;padding:10px 13px;border-radius:9px; }
.nav-link:hover,.nav-link.active { background:var(--accent-soft);color:var(--purple);text-decoration:none; }
.nav-right { display:flex;align-items:center;gap:9px; }
.nav-user { display:flex;align-items:center;gap:8px;color:var(--text-mid);font-size:13px;font-weight:600; }
.nav-user:hover { text-decoration:none;color:var(--purple); }
.nav-avatar { width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--accent-soft);color:var(--purple);object-fit:cover; }
.nav-exit { color:var(--text-muted);font-size:13px;padding:8px; }
.nav-logout { display:flex;margin:0; }
.nav-logout button { background:transparent;border:0;text-align:left; }
.nav-mobile-account .nav-logout button { width:100%; }
.page { max-width:1080px;margin:0 auto;padding:42px 28px 70px; }
.page-title,.dash-title,.cfg-title,.avail-title,.hist-title { font-size:clamp(25px,3vw,33px)!important;font-weight:800;letter-spacing:-.04em!important;line-height:1.2; }
.page-title { margin-bottom:24px; }
.page-header { display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:28px; }
.page-header .page-title { margin-bottom:0; }
.eyebrow { color:var(--purple);font-size:12px;letter-spacing:.09em;text-transform:uppercase;font-weight:800;margin-bottom:10px; }
.subtext { color:var(--text-muted);font-size:15px;margin-top:8px; }
.card { background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow); }
.card-title { font-size:17px!important;font-weight:800;color:var(--text);letter-spacing:-.025em; }
.card-sub { color:var(--text-muted);font-size:13px!important; }
:root:not([data-theme="dark"]) :is(.card,.stat-tile,.summary-card,.cal-shell,.cal-chart-card,.cal-stat,.cal-history-results,.google-panel,.billing-card,.billing-account-card,.billing-tier-card,.auth-panel,.help-panel,.help-guide-card,.support-topic,.help-faq,.svc-card,.feature-card,.agenda-plan) { border-color:var(--border);box-shadow:var(--shadow); }
:root:not([data-theme="dark"]) .billing-tier-pro { border-top-color:var(--purple); }
.btn { display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 18px;min-height:44px;border-radius:10px;border:1px solid transparent;font-size:14px;font-weight:700;line-height:1.3;text-decoration:none;transition:background .15s,border-color .15s,transform .15s; }
.btn:hover { text-decoration:none; }
.btn-primary { color:#fff;background:#7041d9;box-shadow:0 4px 14px #7041d921; }
.btn-primary:hover { color:#fff;background:#6233c9; }
.btn-secondary { color:var(--text);background:var(--surface);border-color:var(--border); }
.btn-secondary:hover { background:var(--surface-alt);border-color:var(--purple); }
.btn-danger { color:var(--danger);background:var(--danger-bg);border-color:var(--danger-border); }
.btn-danger:hover { border-color:var(--danger); }
.btn-sm { min-height:36px;padding:8px 12px;font-size:13px; }
.btn-full { width:100%; }
.form-group { margin-bottom:20px; }
.form-group label,.form-label { display:block;color:var(--text-mid);font-size:14px;font-weight:600;margin-bottom:7px; }
.form-control { width:100%;min-height:46px;padding:11px 13px;border:1px solid var(--border);border-radius:10px;font-size:15px;color:var(--text);background:var(--surface);transition:border-color .15s,box-shadow .15s; }
.form-control:focus { outline:none;border-color:var(--purple);box-shadow:0 0 0 3px var(--accent-soft); }
.form-control::placeholder { color:var(--text-muted);opacity:.8; }
.form-control:disabled { opacity:.8; }
.form-note { margin-top:7px;font-size:13px;color:var(--text-muted); }
.alert { border:1px solid var(--border);padding:13px 16px;border-radius:11px;font-size:14px;margin-bottom:18px;background:var(--surface-alt);color:var(--text); }
.alert-error { background:var(--danger-bg);color:var(--danger);border-color:var(--danger-border); }
.alert-success { background:var(--success-bg);color:var(--success);border-color:color-mix(in srgb,var(--success) 35%,transparent); }
.badge { display:inline-flex;padding:4px 9px;font-size:12px;border-radius:20px;font-weight:700; }
.empty { text-align:center;color:var(--text-muted);padding:45px 20px; }
.empty-icon { font-size:30px;margin-bottom:10px; }
table { border-collapse:collapse;width:100%; }
th { text-align:left;text-transform:uppercase;letter-spacing:.05em;font-size:11px;color:var(--text-muted);padding:14px 12px;border-bottom:1px solid var(--border); }
td { font-size:14px;color:var(--text-mid);padding:16px 12px;border-bottom:1px solid var(--border);vertical-align:middle; }
tr:last-child td { border-bottom:none; }
tr:hover td { background:var(--accent-soft); }
.avatar { width:var(--size,48px);height:var(--size,48px);border-radius:calc(var(--size,48px)*.25);object-fit:cover;display:block;flex-shrink:0; }
.avatar-letter { background:var(--accent-soft);color:var(--purple);font-weight:800;font-size:calc(var(--size,48px)*.4);display:flex;align-items:center;justify-content:center; }
.powered { text-align:center;margin-top:36px;font-size:12px;color:var(--muted); }
.powered a { color:var(--purple);font-weight:700; }
.detail-key { font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em; }
.detail-val { font-size:16px;font-weight:700;color:var(--text);margin-top:3px; }
.skeleton { background:linear-gradient(90deg,var(--surface-alt) 25%,var(--border) 50%,var(--surface-alt) 75%);background-size:200% 100%;animation:shimmer 1.2s infinite linear;border-radius:8px; }
@keyframes shimmer { to { background-position:-200% 0; } }
.spinner { width:16px;height:16px;border-radius:50%;border:2px solid #ffffff50;border-top-color:#fff;animation:spin .7s linear infinite;display:inline-block; }
@keyframes spin { to { transform:rotate(360deg); } }
.app-footer { max-width:1080px;margin:0 auto;padding:0 28px 28px;display:flex;justify-content:space-between;gap:12px;color:var(--text-muted);font-size:12px; }
.app-footer a { color:var(--text-muted); }
.app-footer-links { display:flex;gap:18px; }
/* Dashboard and booking refinements; existing DOM and data bindings remain intact. */
.dash { max-width:1180px!important;padding:44px 28px 70px!important; }
.dash-head { margin-bottom:28px!important; }
.dash-sub { font-size:14px!important;margin-top:8px!important; }
.stat-row { gap:16px!important;margin-bottom:26px!important; }
.stat-tile { padding:23px!important;box-shadow:var(--shadow);border-radius:16px!important; }
.stat-tile:first-child { background:var(--accent-soft);border-color:var(--lilac); }
.stat-num { font-size:34px!important; }
.stat-lbl { font-size:13px!important;margin-top:8px!important; }
.dash-grid { grid-template-columns:minmax(0,1fr) 330px!important;gap:24px!important; }
.booking-row { padding:19px 0!important;border-color:var(--border)!important; }
.booking-when { background:var(--accent-soft)!important;padding:11px 4px!important;width:68px!important; }
.booking-guest-name { font-size:15px!important; }
.booking-guest-phone { font-size:13px!important; }
.booking-svc { white-space:normal!important;max-width:160px;text-align:center; }
.svc-row { padding:16px 0!important;border-color:var(--border)!important; }
.svc-del { color:var(--text-muted)!important;min-width:32px;min-height:32px; }
.svc-del:hover { color:var(--danger)!important;background:var(--danger-bg);border-radius:7px; }
.link-card { background:#262044!important;border:1px solid #534171;padding:25px!important;box-shadow:var(--shadow); }
.link-card-title { color:#c6bfda!important;font-size:11px!important; }
.link-url { color:#d7f98b!important;font-size:14px!important; }
.link-copy { color:#19233d!important; }
.link-btn { min-height:43px; }
.check-row { padding:14px 0!important; }
.check-label { font-size:14px!important; }
.empty-state { padding:40px 16px!important;font-size:14px!important; }
.book-wrap { max-width:980px!important;padding:30px 24px 65px!important; }
.book-grid { gap:24px!important; }
.book-back { font-size:14px!important; }
.info-title { font-size:20px!important; }
.cal-nav { width:40px!important;height:40px!important; }
.cal-dow { padding:10px 0!important; }
.cal-day { font-size:15px!important;border-radius:11px!important;min-height:38px; }
.cal-day:disabled { color:var(--text-muted)!important;opacity:.45; }
.cal-day.is-avail { background:var(--accent-soft)!important; }
.cal-day.is-selected { background:#7041d9!important;color:#fff!important; }
.slot-pill { padding:13px 0!important;font-size:14px!important; }
.selected-banner,#slot-summary { background:var(--accent-soft)!important; }
.pub-wrap { max-width:650px!important;margin:35px auto!important; }
.pub-profile { padding:30px 20px 12px; }
.pub-name { font-size:29px!important; }
.svc-card { border-radius:16px!important;padding:23px!important;box-shadow:var(--shadow); }
.svc-card .svc-name { font-size:17px!important; }
.svc-desc { font-size:14px!important;line-height:1.6!important; }
.confirmed-wrap { margin:36px auto 65px!important;max-width:560px!important; }
.confirmed-h1 { font-size:29px!important; }
.confirmed-icon { width:72px!important;height:72px!important;background:var(--success-bg)!important; }
.confirmed-icon svg { color:var(--success)!important; }
.confirmed-card { padding:28px!important; }
.cfg { max-width:820px!important;padding:42px 24px 60px!important; }
.cfg .section-title { text-transform:none!important;letter-spacing:-.025em!important;font-size:19px!important; }
.avail-wrap,.hist-wrap { max-width:1040px!important; }
/* Account access */
.auth-shell { max-width:1080px;margin:40px auto 70px;padding:0 28px;display:grid;grid-template-columns:1fr 440px;gap:95px;align-items:center; }
.auth-copy h1 { font-size:clamp(34px,4vw,49px);letter-spacing:-.055em;line-height:1.13;max-width:490px; }
.auth-copy>p { color:var(--text-mid);margin-top:20px;max-width:420px;font-size:16px; }
.auth-panel { padding:32px;border-radius:22px; }
.auth-panel h2 { font-size:24px;letter-spacing:-.04em;margin-bottom:6px; }
.auth-panel .auth-intro { color:var(--text-muted);font-size:14px;margin-bottom:25px; }
.auth-footer { font-size:14px;color:var(--text-muted);text-align:center;margin-top:23px; }
.auth-password-head { display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:7px; }
.auth-password-head label { margin-bottom:0; }
.auth-password-head a { font-size:12px;font-weight:600; }
.auth-terms { display:flex;align-items:flex-start;gap:10px;font-size:12px;color:var(--text-mid);line-height:1.65;margin:20px 0; }
.auth-terms input { margin-top:4px;min-width:16px;min-height:16px; }
.auth-mini { margin-top:35px;border:1px solid var(--border);border-radius:18px;max-width:420px;padding:23px;background:var(--surface);box-shadow:var(--shadow); }
.auth-mini-head { display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--text-muted);margin-bottom:18px; }
.auth-mini-item { display:flex;align-items:center;gap:15px;padding:13px 0;border-top:1px solid var(--border);font-size:14px; }
.auth-mini-item span { display:grid;place-items:center;width:33px;height:33px;border-radius:10px;background:var(--accent-soft);color:var(--purple);font-size:12px;font-weight:800; }
.auth-mini-item div small { display:block;color:var(--text-muted);font-size:12px;margin-top:2px; }
/* Integration cards shared with future verified connection states. */
.integration-grid { display:grid;grid-template-columns:minmax(0,1.4fr) minmax(240px,.8fr);gap:24px;align-items:start; }
.integration-card { padding:28px; }
.integration-heading { display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px; }
.integration-heading h2 { font-size:20px;letter-spacing:-.03em; }
.integration-heading p { color:var(--text-muted);font-size:14px;margin-top:4px; }
.integration-icon { width:46px;height:46px;border:1px solid var(--border);border-radius:13px;background:var(--accent-soft);color:var(--purple);display:grid;place-items:center;font-size:21px;font-weight:800; }
.integration-caption { padding:16px 18px;border-radius:12px;background:var(--surface-alt);font-size:13px;color:var(--text-mid);margin:18px 0; }
.integration-help { color:var(--text-muted);font-size:14px;line-height:1.75; }
.integration-help li { margin:10px 0 10px 18px; }
.integration-help strong { color:var(--text); }
.integration-actions { display:flex;gap:10px;flex-wrap:wrap;padding-top:22px;margin-top:22px;border-top:1px solid var(--border); }
.status-chip { font-size:13px!important;min-height:32px; }
.link-card { background:var(--brand-deep)!important; }
.link-card-title { color:#c8ccde!important; }
.link-copy { color:#19233d!important; }
.dash-sub,.stat-lbl,.check-label,.booking-guest-phone,.booking-when-time,.svc-dur,.form-note { font-size:14px!important; }
.booking-row,.svc-row,.check-row { border-bottom-color:var(--border)!important; }
.booking-when { background:var(--accent-soft)!important; }
.svc-del { color:var(--danger)!important;min-width:38px;min-height:38px; }
.integration-caption summary { cursor:pointer;font-weight:700; }
.integration-caption[open] summary { margin-bottom:18px; }
.switch input:focus-visible+.slider { outline:3px solid var(--blue);outline-offset:3px; }
@media(max-width:1100px) {
  .app-nav-inner { display:grid;grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr);gap:10px;padding:12px 24px; }
  .app-nav-inner>.brand-lockup { grid-column:1;grid-row:1;justify-self:start; }
  .app-nav-inner .brand-lockup small { display:none; }
  .nav-menu-toggle { display:inline-flex;grid-column:2;grid-row:1;justify-self:center; }
  .nav-right { grid-column:3;grid-row:1;justify-self:end;gap:6px; }
  .nav-right>.nav-exit,.nav-right>.nav-logout,.nav-user>span:last-child { display:none; }
  .nav-user { min-width:44px;min-height:44px;justify-content:center; }
  .nav-panel { grid-column:1 / -1;grid-row:2; }
  .nav-links { flex-wrap:wrap; }
  .nav-mobile-account { display:flex;flex-direction:column;border-top:1px solid var(--border);margin-top:8px;padding-top:8px; }
  .app-nav.nav-enhanced .nav-panel { position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);width:calc(100% - 32px);max-width:440px;max-height:calc(100vh - 100px);max-height:calc(100dvh - 100px);overflow-y:auto;overscroll-behavior:contain;padding:10px;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:0 14px 32px #19233d24; }
  [data-theme="dark"] .app-nav.nav-enhanced .nav-panel { box-shadow:0 14px 32px #00000045; }
  .app-nav.nav-enhanced .nav-links { display:flex;flex-direction:column;align-items:stretch;gap:4px; }
  .app-nav.nav-enhanced .nav-link { display:flex;align-items:center;min-height:46px;padding:11px 14px;font-size:15px;white-space:normal; }
  .auth-shell { gap:45px;grid-template-columns:1fr 420px; }
}
@media(max-width:860px) { .dash-grid,.integration-grid { grid-template-columns:1fr!important; }.auth-shell { grid-template-columns:1fr;max-width:520px;margin-top:20px; }.auth-copy { display:none; }.stat-row { gap:10px!important; }.stat-tile { padding:18px!important; }.site-top { padding:20px 24px; } }
@media(max-width:540px) { .app-nav-inner { padding:12px 16px; }.nav-link { padding:9px 11px; }.brand-lockup { font-size:17px;gap:8px; }.brand-lockup small { display:none; }.nav-user>span:last-child { display:none; }.nav-right>.btn { display:none; }.theme-toggle { width:38px;height:38px; }.page,.dash { padding:28px 16px 45px!important; }.card { padding:20px; }.stat-num { font-size:27px!important; }.stat-lbl { font-size:12px!important; }.stat-row { gap:8px!important; }.stat-tile { padding:17px 12px!important; }.booking-svc { max-width:105px;font-size:10px!important; }.site-top { padding:18px 20px; }.site-top-actions { gap:11px; }.auth-shell { padding:0 18px; }.auth-panel { padding:25px 22px; }.book-wrap { padding:16px 14px 45px!important; }.cal-grid { gap:3px!important; }.pub-wrap { margin-top:0!important; }.svc-card { padding:19px!important; }.svc-head { align-items:flex-start!important;flex-wrap:wrap; }.app-footer { padding:0 20px 25px;flex-direction:column; }.page-header { align-items:flex-start;flex-wrap:wrap; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important;animation:none!important;transition:none!important; } }
