:root {
  --ink: #1e2926;
  --muted: #65716d;
  --green: #294d43;
  --green-2: #3f695d;
  --green-soft: #e8f0ec;
  --paper: #fbfaf7;
  --surface: #fff;
  --line: #dedfd9;
  --sand: #f1ede5;
  --amber: #946226;
  --amber-soft: #f6ead8;
  --red: #9a3e38;
  --red-soft: #f8e7e4;
  --shadow: 0 10px 28px rgba(30, 41, 38, .07);
  --radius: 14px;
}
* { box-sizing: border-box; }
html { font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--ink); background: var(--paper); font-size: 15px; }
body { margin: 0; min-width: 320px; }
a { color: var(--green-2); text-decoration-thickness: 1px; text-underline-offset: 3px; }
button, input, select, textarea { font: inherit; }
button, summary, select { cursor: pointer; }
.skip-link { position: fixed; left: 12px; top: -60px; padding: 10px 14px; background: var(--ink); color: #fff; z-index: 20; }
.skip-link:focus { top: 10px; }
.topbar { position: sticky; inset: 0 0 auto; height: 70px; display: flex; align-items: center; justify-content: space-between; padding: 0 26px; color: #fff; background: #203a33; z-index: 10; box-shadow: 0 1px 0 rgba(255,255,255,.08); }
.brand { display: flex; gap: 11px; align-items: center; color: #fff; text-decoration: none; }
.brand-mark { width: 37px; height: 37px; display: grid; place-items: center; background: #d9e7df; color: var(--green); border-radius: 11px; font-family: Georgia, serif; font-size: 22px; }
.brand strong, .brand small { display: block; }
.brand strong { font-family: Georgia, serif; font-size: 20px; letter-spacing: .02em; }
.brand small { color: #bfd0c9; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.local-badge { display: flex; align-items: center; gap: 8px; padding: 7px 11px; background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.13); border-radius: 999px; font-size: 12px; }
.local-badge span { color: #7fd6ad; font-size: 9px; }
.app-shell { display: grid; grid-template-columns: 225px minmax(0, 1fr); min-height: calc(100vh - 70px); }
.sidebar { position: sticky; top: 70px; height: calc(100vh - 70px); padding: 22px 14px; border-right: 1px solid var(--line); background: #f5f3ee; overflow-y: auto; }
.sidebar > a { display: flex; align-items: center; justify-content: space-between; min-height: 40px; padding: 9px 11px; margin-bottom: 3px; border-radius: 9px; color: #52605c; text-decoration: none; font-weight: 600; }
.sidebar > a:hover { background: #e9ebe6; color: var(--green); }
.sidebar > a[aria-current="page"] { background: var(--green); color: #fff; }
.nav-group { margin-top: 7px; border-top: 1px solid var(--line); }
.nav-group summary { display: flex; min-height: 42px; padding: 11px; align-items: center; justify-content: space-between; color: #52605c; font-size: 12px; font-weight: 800; text-transform: uppercase; cursor: pointer; list-style: none; }
.nav-group summary::-webkit-details-marker { display: none; }
.nav-group summary i { transition: color .2s ease; }
.nav-group > div { padding-left: 7px; border-left: 2px solid #dce2dd; }
.nav-group a { display: flex; min-height: 37px; padding: 8px 10px; margin-bottom: 2px; align-items: center; justify-content: space-between; border-radius: 8px; color: #63706c; font-size: 12px; font-weight: 650; text-decoration: none; }
.nav-group a:hover { background: #e9ebe6; color: var(--green); }
.nav-group a[aria-current="page"] { background: #dfe9e3; color: var(--green); }
kbd { font: 10px ui-monospace, SFMono-Regular, Menlo, monospace; opacity: .58; }
.sidebar-foot { margin-top: 25px; padding: 13px 11px; border-top: 1px solid var(--line); color: #87908d; font-size: 11px; line-height: 1.7; }
.sidebar-foot span { display: block; }
.session-card { margin-top: 22px; padding: 12px 10px; border: 1px solid var(--line); border-radius: 9px; background: #fff; overflow: hidden; }
.session-card > span, .session-card > strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.session-card > span { color: var(--muted); font-size: 9px; }.session-card > strong { margin-top: 3px; color: var(--green); font-size: 11px; }
.session-card form { margin-top: 8px; }.session-card button { padding: 0; border: 0; background: none; color: #7f4b45; font-size: 10px; font-weight: 750; text-decoration: underline; }

/* Authentication */
.auth-body { min-height: 100vh; background: radial-gradient(circle at 15% 10%, #e3eee8 0, transparent 38%), linear-gradient(145deg, #f7f5f0, #edf2ee); }
.auth-shell { width: min(520px, calc(100% - 30px)); margin: 0 auto; padding: 52px 0; }
.auth-brand { display: inline-flex; gap: 10px; margin-bottom: 22px; align-items: center; color: var(--green); text-decoration: none; }
.auth-brand > span:last-child { display: flex; flex-direction: column; }.auth-brand strong { font: 600 21px Georgia, serif; }.auth-brand small { color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.auth-card { padding: clamp(24px, 5vw, 40px); border: 1px solid #d4ddd7; border-radius: 18px; background: rgba(255,255,255,.96); box-shadow: 0 22px 70px rgba(25,53,44,.14); }
.auth-card h1 { margin: 3px 0 10px; color: var(--green); font: 600 clamp(27px, 5vw, 37px)/1.1 Georgia, serif; }.auth-card > p:not(.eyebrow) { color: var(--muted); line-height: 1.55; }
.auth-form { display: grid; gap: 14px; margin-top: 24px; }.auth-form label { display: grid; gap: 6px; color: #46544f; font-size: 12px; font-weight: 750; }.auth-form input { width: 100%; }
.auth-form fieldset { display: grid; gap: 12px; padding: 15px; border: 1px solid var(--line); border-radius: 10px; }.auth-form legend { padding: 0 7px; color: var(--green); font: 600 15px Georgia, serif; }
.auth-form .button { width: 100%; margin-top: 4px; }.auth-security-note { margin: 20px auto 0; color: #77837f; font-size: 9px; line-height: 1.5; text-align: center; }
.auth-steps { margin: 18px 0; padding-left: 22px; color: #52605c; line-height: 1.7; }.secret-display { margin: 18px 0; padding: 14px; border-radius: 9px; background: #e9f0ec; }.secret-display span { display: block; margin-bottom: 6px; color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }.secret-display code, .provisioning-uri { display: block; overflow-wrap: anywhere; color: var(--green); }
.recovery-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 22px 0; }.recovery-grid code { padding: 9px; border: 1px solid var(--line); border-radius: 6px; background: #f7f7f4; color: #263d35; text-align: center; }
.content { width: 100%; max-width: 1600px; padding: 36px clamp(22px, 4vw, 60px) 70px; margin-inline: auto; }
.page-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 25px; }
.page-head h1 { margin: 2px 0 8px; font: 600 clamp(27px, 3vw, 38px)/1.12 Georgia, serif; color: #1d3831; }
.page-head p { margin: 0; max-width: 780px; color: var(--muted); line-height: 1.55; }
.eyebrow { margin: 0 0 4px !important; color: #77847f !important; font-size: 11px; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.notice { margin: -12px 0 23px; padding: 13px 16px; border: 1px solid #b7d0c4; background: var(--green-soft); border-radius: 10px; color: #275246; }
.notice.error { border-color: #e1b6aa; background: var(--red-soft); color: #7c332d; }
.panel { margin-bottom: 22px; padding: 23px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow); }
.panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.panel-head h2, .panel h2 { margin: 0 0 4px; font: 600 21px/1.25 Georgia, serif; color: #29453d; }
.panel-head p, .panel > p { margin: 0; color: var(--muted); font-size: 13px; }
.table-search { display: flex; flex-direction: column; gap: 4px; color: var(--muted); font-size: 10px; font-weight: 750; text-transform: uppercase; }
.table-search input { min-width: 230px; text-transform: none; }
.metrics { display: grid; grid-template-columns: repeat(6, minmax(130px, 1fr)); gap: 13px; margin-bottom: 22px; }
.metric { position: relative; display: flex; flex-direction: column; min-height: 130px; padding: 17px; border: 1px solid var(--line); border-radius: 12px; background: #fff; color: var(--ink); text-decoration: none; box-shadow: 0 5px 16px rgba(30,41,38,.04); overflow: hidden; }
.metric::before { position: absolute; content: ""; width: 46px; height: 4px; top: 0; left: 17px; background: var(--green-2); border-radius: 0 0 4px 4px; }
.metric.warn::before { background: #b27a32; }
.metric.danger::before { background: var(--red); }
.metric span { color: var(--muted); font-size: 12px; font-weight: 650; }
.metric strong { margin: 13px 0 3px; font: 600 31px/1 Georgia, serif; color: var(--green); }
.metric small { color: #87908d; }
.metric:hover { border-color: #aabbb4; transform: translateY(-1px); }
.money-size { font-size: 21px !important; line-height: 1.15 !important; }
.split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.align-start { align-items: start; }
.quick-start { display: flex; align-items: center; justify-content: space-between; gap: 25px; }
.actions, .form-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.button { display: inline-flex; min-height: 39px; align-items: center; justify-content: center; padding: 9px 15px; border: 1px solid #bfc7c2; border-radius: 8px; background: #fff; color: var(--green); text-decoration: none; font-weight: 700; line-height: 1.1; }
.button:hover { background: #f2f5f2; border-color: #91a69d; }
.button.primary { border-color: var(--green); background: var(--green); color: #fff; }
.button.primary:hover { background: #203f36; }
.button.small { min-height: 32px; padding: 6px 10px; font-size: 12px; }
.button.full { width: 100%; }
.button:disabled { opacity: .5; cursor: not-allowed; }
.danger-button { border-color: var(--red) !important; background: var(--red) !important; color: #fff !important; }
.link { border: 0; padding: 4px; background: transparent; color: var(--green-2); text-decoration: underline; text-underline-offset: 3px; }
.danger-link { color: var(--red); font-size: 12px; }
.form-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; }
.form-grid .wide { grid-column: 1 / -1; }
.form-grid label, .form-stack label, .compact-form label, .inline-fields label, .filter-form label, .mapping-form > label { display: flex; flex-direction: column; gap: 6px; color: #4d5a56; font-size: 12px; font-weight: 700; }
input, select, textarea { width: 100%; min-height: 40px; padding: 9px 10px; border: 1px solid #c9cdc8; border-radius: 7px; background: #fff; color: var(--ink); }
textarea { resize: vertical; line-height: 1.45; }
input:focus, select:focus, textarea:focus, button:focus-visible, a:focus-visible, summary:focus-visible { outline: 3px solid rgba(74,122,106,.2); outline-offset: 1px; border-color: var(--green-2); }
label small, .form-note { color: #7c8783; font-size: 11px; font-weight: 400; line-height: 1.45; }
.check { flex-direction: row !important; align-items: center; font-weight: 600 !important; }
.check input { width: 17px; min-height: 17px; }
.form-stack { display: flex; flex-direction: column; gap: 15px; }
.inline-fields { display: flex; align-items: end; gap: 9px; flex-wrap: wrap; }
.inline-fields label { flex: 1 1 150px; }
.inline-fields .button { flex: 0 0 auto; }
.inline-form { display: inline; }
.filter-form { display: flex; gap: 9px; align-items: end; flex-wrap: wrap; }
.filter-form input { min-width: 150px; }
.table-wrap { width: 100%; overflow-x: auto; border: 1px solid #e5e5df; border-radius: 9px; }
table { width: 100%; border-collapse: collapse; font-size: 12px; }
th { padding: 10px; background: #f0f2ee; color: #58645f; font-size: 10px; letter-spacing: .045em; text-align: left; text-transform: uppercase; white-space: nowrap; }
td { padding: 11px 10px; border-top: 1px solid #e8e8e2; vertical-align: top; }
tbody tr:hover { background: #fcfcf9; }
.num { text-align: right; white-space: nowrap; }
.code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .92em; }
.cell-sub { display: block; max-width: 230px; margin-top: 3px; color: #7b8581; overflow-wrap: anywhere; }
.muted-row { opacity: .62; }
.status { display: inline-flex; align-items: center; padding: 5px 8px; border-radius: 999px; background: #eceeea; color: #53605c; font-size: 10px; font-weight: 800; white-space: nowrap; }
.status.ok, .state-paid, .state-received { background: #e1efe7; color: #266044; }
.status.warning, .state-partially_paid, .state-pending, .state-partially_refunded, .state-overpaid { background: var(--amber-soft); color: #7a5122; }
.state-unpaid, .state-refunded, .state-chargeback, .state-cancelled { background: var(--red-soft); color: #843a34; }
.state-not_required { background: #eceeea; color: #5f6865; }
.row-edit { display: inline-block; position: relative; margin-right: 5px; }
.row-edit > summary { color: var(--green-2); text-decoration: underline; text-underline-offset: 3px; list-style: none; }
.row-edit > summary::-webkit-details-marker { display: none; }
.row-edit[open] .compact-form { display: grid; }
.compact-form { position: absolute; right: 0; z-index: 5; display: none; width: min(500px, 84vw); padding: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; background: #fff; border: 1px solid #bfc7c2; border-radius: 10px; box-shadow: 0 18px 45px rgba(19,34,29,.18); }
.compact-form textarea, .compact-form .button { grid-column: 1 / -1; }
.stack-list, .candidate-list { display: flex; flex-direction: column; gap: 9px; }
.edit-card { border: 1px solid #e1e3de; border-radius: 9px; background: #fcfcfa; }
.edit-card summary { display: flex; justify-content: space-between; gap: 15px; align-items: center; padding: 12px; list-style: none; }
.edit-card summary span:first-child { display: flex; flex-direction: column; }
.edit-card small { color: var(--muted); }
.edit-card .compact-form { position: static; width: 100%; border: 0; border-top: 1px solid #e1e3de; border-radius: 0; box-shadow: none; }
.empty { display: flex; min-height: 90px; align-items: center; justify-content: center; padding: 18px; background: #f8f8f5; border: 1px dashed #d5d8d2; border-radius: 9px; color: #7a8581; text-align: center; }
.success-empty { flex-direction: column; gap: 5px; background: #f0f6f2; border-color: #c9ddd2; color: #3d6657; }
.warning-list, .document-list, .item-list { list-style: none; padding: 0; margin: 0; }
.warning-list li { display: flex; gap: 10px; align-items: center; padding: 10px 0; border-bottom: 1px solid #e9e6df; color: #6c4b25; }
.warning-list li:last-child { border-bottom: 0; }
.warning-list li > span { display: grid; flex: 0 0 23px; width: 23px; height: 23px; place-items: center; border-radius: 50%; background: var(--amber-soft); color: var(--amber); font-weight: 900; }
.warning-list.compact li { padding: 7px 0; font-size: 12px; }
.document-list li, .item-list li { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 11px 0; border-bottom: 1px solid #e9e9e3; }
.document-list li:last-child, .item-list li:last-child { border-bottom: 0; }
.document-list li div, .item-list li div { display: flex; flex-direction: column; gap: 2px; }
.document-list li span, .item-list li span { color: var(--muted); font-size: 11px; }
.payment-banner { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding-bottom: 17px; border-bottom: 1px solid var(--line); }
.payment-banner h2 { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 17px; }
.payment-banner .amount { display: flex; flex-direction: column; align-items: end; }
.payment-banner .amount strong { font: 600 23px Georgia, serif; color: var(--green); }
.payment-banner .amount span { color: var(--muted); font-size: 11px; }
.candidate-list { margin-top: 14px; }
.candidate { display: grid; grid-template-columns: minmax(300px, 1fr) 130px minmax(190px, .6fr) auto; gap: 11px; align-items: end; padding: 13px; border: 1px solid #dfe3dd; border-radius: 9px; background: #fcfcfa; }
.candidate label { font-size: 11px; color: var(--muted); }
.candidate-actions { display: flex; flex-direction: column; align-items: stretch; gap: 4px; }
.candidate-main { display: flex; align-items: flex-start; gap: 11px; }
.candidate-main > div { display: flex; flex-direction: column; gap: 2px; }
.candidate-main span, .candidate-main small { color: var(--muted); }
.score { display: grid; flex: 0 0 47px; height: 47px; place-items: center; border-radius: 50%; background: var(--green-soft); color: var(--green) !important; font-weight: 850; }
.manual-match { margin-top: 14px; padding: 12px 13px; border: 1px dashed #bfc9c4; border-radius: 9px; background: #f8faf8; }
.manual-match summary { color: var(--green); font-weight: 750; }
.manual-match form, .manual-match .empty { margin-top: 12px; }
.leave-unresolved { display: flex; justify-content: space-between; gap: 12px; margin-top: 12px; color: var(--muted); font-size: 11px; }
.top-gap { margin-top: 17px; }
.workflow { display: grid; grid-template-columns: repeat(4, 1fr); gap: 11px; margin-bottom: 22px; }
.workflow-step { display: flex; gap: 10px; align-items: center; padding: 14px; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.workflow-step > span { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; background: #edf0ec; color: var(--green); font-weight: 800; }
.workflow-step div { display: flex; min-width: 0; flex: 1; flex-direction: column; }
.workflow-step small { color: var(--muted); }
.workflow-step i { color: #8b9691; font-style: normal; font-weight: 900; }
.workflow-step i.ok { color: #408065; }.workflow-step i.warn { color: var(--amber); }
.checklist { list-style: none; counter-reset: steps; padding: 0; margin: 0; }
.checklist li { counter-increment: steps; display: flex; align-items: center; gap: 11px; padding: 13px 0; border-bottom: 1px solid #e8e9e4; }
.checklist li::before { content: counter(steps); display: grid; flex: 0 0 26px; height: 26px; place-items: center; border: 1px solid #b9c5bf; border-radius: 50%; color: var(--green); font-weight: 800; }
.checklist li div { display: flex; flex: 1; flex-direction: column; }
.checklist li span { color: var(--muted); font-size: 11px; }
.daily-summary { display: grid; grid-template-columns: 1fr 1fr; margin: 15px 0; gap: 8px; }
.daily-summary span { padding: 12px; background: var(--sand); border-radius: 8px; color: var(--muted); }
.daily-summary strong { display: block; color: var(--green); font-size: 20px; }
.or-separator { display: flex; align-items: center; gap: 12px; color: #8a928f; font-size: 11px; text-transform: uppercase; }
.or-separator::before, .or-separator::after { content: ""; height: 1px; flex: 1; background: var(--line); }
.mapping-form { display: flex; flex-direction: column; gap: 18px; }
.profile-select { max-width: 440px; }
.mapping-grid { display: grid; grid-template-columns: minmax(200px, .8fr) minmax(240px, 1.2fr); border: 1px solid var(--line); border-radius: 9px; overflow: hidden; }
.mapping-grid > * { margin: 0; padding: 10px 13px; border-bottom: 1px solid var(--line); }
.mapping-grid > *:nth-child(even) { border-left: 1px solid var(--line); }
.mapping-grid > *:nth-last-child(-n+2) { border-bottom: 0; }
.mapping-grid label { display: flex; align-items: center; background: #fafaf7; font-weight: 700; }
.mapping-head { background: #edf0ec; color: #5b6762; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.confirm-bar { position: sticky; bottom: 12px; display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 18px; padding: 14px; border: 1px solid #a8beb3; border-radius: 10px; background: #edf5f0; box-shadow: var(--shadow); }
.confirm-bar div { display: flex; flex-direction: column; }.confirm-bar span { color: var(--muted); font-size: 11px; }
.error-panel { border-color: #e4bcb4; background: #fffafa; }
.report-metrics { grid-template-columns: repeat(6, 1fr); }
.privacy-callout { border-left: 4px solid var(--green-2); background: #f1f5f2; box-shadow: none; }
.privacy-callout p { margin-top: 4px; }
.narrow { max-width: 750px; margin-inline: auto; }
.detail-list { margin: 0 0 22px; }
.detail-list div { display: grid; grid-template-columns: 180px 1fr; padding: 10px 0; border-bottom: 1px solid var(--line); }
.detail-list dt { color: var(--muted); }.detail-list dd { margin: 0; font-weight: 700; }
.danger-zone { border-color: #dfb2aa; }.error-page { padding: 50px; text-align: center; }
.error-code { display: grid; width: 55px; height: 55px; margin: 0 auto 18px; place-items: center; border-radius: 50%; background: var(--red-soft); color: var(--red); font-size: 28px; font-weight: 900; }
.error-page p { max-width: 580px; margin: 10px auto 23px; line-height: 1.6; }

/* Visual calendar */
.calendar-page-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 18px; }
.calendar-page-head h1 { margin: 2px 0 8px; font: 600 clamp(27px, 3vw, 38px)/1.12 Georgia, serif; color: #1d3831; }
.calendar-page-head p { margin: 0; color: var(--muted); }
.calendar-actions { display: flex; gap: 9px; flex-wrap: wrap; }
.room-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin-bottom: 12px; }
.room-tabs a { display: grid; grid-template-columns: 34px 1fr; gap: 0 10px; min-height: 64px; padding: 11px 13px; align-items: center; border: 1px solid var(--line); border-radius: 11px; background: #fff; color: #52605c; text-decoration: none; box-shadow: 0 3px 11px rgba(31,57,48,.05); }
.room-tabs a > span { grid-row: 1 / 3; display: grid; width: 34px; height: 34px; place-items: center; border-radius: 8px; background: #e7ece8; color: var(--green); font-size: 11px; font-weight: 850; }
.room-tabs strong { align-self: end; color: var(--green); font: 600 16px Georgia, serif; }
.room-tabs small { align-self: start; color: var(--muted); font-size: 9px; }
.room-tabs a[aria-current="page"] { border-color: var(--green); background: var(--green); color: #fff; }
.room-tabs a[aria-current="page"] > span { background: #fff; }.room-tabs a[aria-current="page"] strong, .room-tabs a[aria-current="page"] small { color: #fff; }
.calendar-toolbar { display: flex; align-items: end; gap: 9px; margin-bottom: 13px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.calendar-toolbar form { display: flex; align-items: end; gap: 8px; }
.calendar-toolbar label { display: flex; flex-direction: column; gap: 3px; color: var(--muted); font-size: 10px; font-weight: 750; text-transform: uppercase; }
.calendar-toolbar input { min-height: 34px; padding: 6px 8px; }
.calendar-nav { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid #c6ccc8; border-radius: 8px; color: var(--green); text-decoration: none; font-size: 20px; }
.calendar-date-title { margin-left: 8px; color: var(--green); font: 600 19px Georgia, serif; }
.calendar-legend { display: flex; align-items: center; gap: 12px; margin-left: auto; color: var(--muted); font-size: 10px; }
.calendar-legend span { display: flex; gap: 5px; align-items: center; }
.calendar-legend i { width: 10px; height: 10px; border-radius: 3px; }
.legend-session { background: #91afc4; }.legend-payment { background: #4c9874; border-radius: 50% !important; }
.calendar-help { margin: 0 0 12px; padding: 10px 13px; border-left: 3px solid #82a995; border-radius: 7px; background: #edf4f0; color: #53645d; font-size: 11px; }
.visual-calendar { display: grid; grid-template: auto auto / 68px minmax(1260px, 1fr); width: 100%; margin-bottom: 22px; border: 1px solid #d8dcd7; border-radius: 13px; background: #fff; box-shadow: var(--shadow); overflow-x: auto; overflow-y: hidden; }
.calendar-corner { position: sticky; left: 0; z-index: 9; display: flex; align-items: end; padding: 0 8px 12px; background: #edf1ed; border-right: 1px solid #d9ddd8; border-bottom: 1px solid #d9ddd8; color: #76817d; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.room-heads { display: grid; grid-template-columns: repeat(3, minmax(300px, 1fr)); min-width: 900px; background: #f0f3ef; border-bottom: 1px solid #d9ddd8; }
.week-heads { display: grid; grid-template-columns: repeat(7, minmax(180px, 1fr)); min-width: 1260px; background: #f0f3ef; border-bottom: 1px solid #d9ddd8; }
.day-head { min-height: 91px; padding: 10px 9px 8px; border-right: 1px solid #d9ddd8; }
.day-head:last-child { border-right: 0; }.day-head.is-today { background: #e4eee8; }
.day-head > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 6px; }
.day-head > div:first-child span { color: #64736e; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.day-head > div:first-child strong { color: var(--green); font: 600 17px Georgia, serif; }
.day-head .icon-button { float: right; margin-top: 5px; }
.room-head { min-height: 91px; padding: 12px 13px 9px; border-right: 1px solid #d9ddd8; }
.room-head:last-child { border-right: 0; }
.room-head > div:first-child { display: flex; align-items: center; gap: 8px; }
.room-number { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 7px; background: var(--green); color: #fff; font-size: 10px; font-weight: 800; }
.room-head strong { font: 600 17px Georgia, serif; color: var(--green); }
.room-head .icon-button { float: right; margin-top: -27px; }
.icon-button { display: grid; width: 27px; height: 27px; place-items: center; border: 1px solid #bac5bf; border-radius: 50%; background: #fff; color: var(--green); font-weight: 800; }
.room-shifts { display: flex; gap: 5px; margin-top: 9px; flex-wrap: wrap; }
.room-shifts > span { display: inline-flex; gap: 5px; align-items: center; padding: 4px 6px; border-radius: 6px; background: #dce9e2; color: #376252; font-size: 9px; font-weight: 750; }
.room-shifts form { display: inline; }.room-shifts button { border: 0; padding: 0 1px; background: transparent; color: #7e3e39; line-height: 1; }
.room-shifts em { color: #929b97; font-size: 10px; font-style: normal; }
.time-axis { position: sticky; left: 0; z-index: 8; width: 68px; height: calc(var(--calendar-height) * 1px); background: #f8f8f5; border-right: 1px solid #d9ddd8; }
.time-axis span { position: absolute; top: calc(var(--start) * 1px); right: 8px; transform: translateY(-7px); color: #7b8581; font-size: 10px; font-variant-numeric: tabular-nums; }
.room-lanes { display: grid; grid-template-columns: repeat(3, minmax(300px, 1fr)); min-width: 900px; }
.room-lane { position: relative; height: calc(var(--calendar-height) * 1px); border-right: 1px solid #d9ddd8; background: repeating-linear-gradient(to bottom, #fff 0, #fff 29px, #e8ebe7 30px); overflow: hidden; }
.room-lane:last-child { border-right: 0; }
.week-lanes { display: grid; grid-template-columns: repeat(7, minmax(180px, 1fr)); min-width: 1260px; }
.day-lane { position: relative; height: calc(var(--calendar-height) * 1px); border-right: 1px solid #d9ddd8; background: repeating-linear-gradient(to bottom, #fff 0, #fff 29px, #e8ebe7 30px); overflow: hidden; }
.day-lane:last-child { border-right: 0; }.day-lane.is-today { background: repeating-linear-gradient(to bottom, #fbfdfb 0, #fbfdfb 29px, #dfe9e3 30px); }
.weekly-calendar .time-axis, .weekly-calendar .day-lane { height: calc(var(--calendar-height) * .8px); }
.weekly-calendar .day-lane { background: repeating-linear-gradient(to bottom, #fff 0, #fff 23px, #e8ebe7 24px); }
.weekly-calendar .day-lane.is-today { background: repeating-linear-gradient(to bottom, #fbfdfb 0, #fbfdfb 23px, #dfe9e3 24px); }
.weekly-calendar .time-axis span, .weekly-calendar .calendar-slot, .weekly-calendar .shift-band, .weekly-calendar .calendar-event { top: calc(var(--start) * .8px); }
.weekly-calendar .calendar-slot { height: 24px; }
.weekly-calendar .shift-band, .weekly-calendar .calendar-event { height: calc(var(--duration) * .8px); }
.calendar-slot { position: absolute; z-index: 1; top: calc(var(--start) * 1px); left: 0; width: 100%; height: 30px; padding: 0; border: 0; background: transparent; color: transparent; text-align: left; }
.calendar-slot:hover { background: rgba(55, 105, 88, .07); color: #6f7f79; }
.calendar-slot span { margin-left: 6px; font-size: 8px; }
.shift-band { position: absolute; z-index: 0; top: calc(var(--start) * 1px); left: 3px; right: 3px; height: calc(var(--duration) * 1px); min-height: 15px; border: 1px dashed #add0bd; border-radius: 7px; background: rgba(219, 239, 228, .34); pointer-events: none; }
.shift-band span { position: sticky; top: 0; padding: 2px 5px; color: #609079; font-size: 8px; font-weight: 800; }
.calendar-event { position: absolute; z-index: 3; top: calc(var(--start) * 1px); left: 5px; right: 5px; display: flex; min-height: 30px; height: calc(var(--duration) * 1px); padding: 5px 8px; flex-direction: column; gap: 1px; border: 1px solid #9db7c7; border-left: 4px solid #5886a4; border-radius: 7px; background: #e8f1f6; color: #253b45; text-align: left; overflow: hidden; box-shadow: 0 2px 7px rgba(27,50,42,.11); }
.calendar-event:hover { z-index: 5; filter: brightness(.98); box-shadow: 0 7px 18px rgba(27,50,42,.18); }
.calendar-event strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.calendar-event > span:not(.event-status) { overflow: hidden; color: #566d76; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.calendar-event .event-time { color: #314f5b; font-size: 9px; font-weight: 800; }
.event-status { display: flex; gap: 4px; margin-top: auto; align-items: center; justify-content: space-between; }
.event-status b, .event-status i { font-size: 8px; font-style: normal; font-weight: 800; }
.event-status i { display: inline-flex; padding: 2px 4px; border-radius: 999px; background: #fff; color: #52645d; }
.weekly-calendar .calendar-event { min-height: 20px; padding: 3px 6px; gap: 0; }
.weekly-calendar .calendar-event .event-time { font-size: 8px; line-height: 1.05; }
.weekly-calendar .calendar-event strong { font-size: 10px; line-height: 1.1; }
.weekly-calendar .calendar-event .event-meta { display: none; }
.weekly-calendar .calendar-event .event-status { min-height: 10px; margin-top: 1px; line-height: 1; }
.weekly-calendar .calendar-event .event-status b, .weekly-calendar .calendar-event .event-status i { font-size: 7px; line-height: 1; }
.weekly-calendar .calendar-event .event-status i { padding: 1px 3px; }
.weekly-calendar .calendar-event.event-short .event-status { display: none; }
.calendar-event.session-completed { border-color: #8fbba5; border-left-color: #397859; background: #e5f2eb; color: #234b39; }
.calendar-event.session-cancelled_by_therapist, .calendar-event.session-rescheduled { border-color: #c7cbc8; border-left-color: #8b9490; background: #eceeec; color: #69716e; opacity: .78; }
.calendar-event.session-cancelled_by_patient { border-color: #d8b58b; border-left-color: #a86e2c; background: #f6eadc; }
.calendar-event.session-patient_no_show { border-color: #d4aaa5; border-left-color: #9c4038; background: #f7e8e6; }
.calendar-event-redacted { cursor: default; border-color: #c9d0cc; border-left-color: #687770; background: #edf0ee; color: #4f5d57; }
.meet-action { display: grid; grid-template-columns: 1fr auto; gap: .25rem 1rem; align-items: center; margin: 1rem 0; padding: 1rem; border: 1px solid #b8d7ca; border-radius: 14px; background: #eef8f3; }
.meet-action span { color: var(--muted, #66736d); font-size: .88rem; }
.meet-action .button { grid-column: 2; grid-row: 1 / span 2; }
.meet-action[hidden] { display: none; }
.calendar-event.payment-paid::after, .calendar-event.payment-overpaid::after { content: ""; position: absolute; top: 5px; right: 5px; width: 7px; height: 7px; border-radius: 50%; background: #3d8a65; }
.calendar-event.payment-unpaid::after, .calendar-event.payment-partially_paid::after { content: ""; position: absolute; top: 5px; right: 5px; width: 7px; height: 7px; border-radius: 50%; background: #c04c43; }
.floating-add { position: fixed; z-index: 12; right: 30px; bottom: 28px; display: grid; width: 54px; height: 54px; place-items: center; border: 0; border-radius: 50%; background: var(--green); color: #fff; font-size: 29px; box-shadow: 0 12px 30px rgba(29,65,53,.32); }
.floating-dialog { width: min(620px, calc(100vw - 30px)); max-height: calc(100vh - 34px); padding: 0; border: 1px solid #c7cfca; border-radius: 16px; background: #fff; color: var(--ink); box-shadow: 0 28px 80px rgba(15,33,27,.3); overflow: auto; }
.wide-dialog { width: min(920px, calc(100vw - 30px)); }
.floating-dialog::backdrop { background: rgba(18,31,27,.55); backdrop-filter: blur(2px); }
.dialog-form { padding: 22px; }
.floating-dialog > .dialog-head { padding: 22px 22px 0; }
.dialog-form.tab-panel { padding-top: 15px; }
.dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.dialog-head h2 { margin: 1px 0 5px; font: 600 25px Georgia, serif; color: var(--green); }
.dialog-head p { margin: 0; color: var(--muted); font-size: 12px; }
.dialog-close { flex: 0 0 34px; width: 34px; height: 34px; border: 1px solid #ccd2ce; border-radius: 50%; background: #fff; color: #67736f; font-size: 22px; line-height: 1; }
.dialog-sections { display: flex; flex-direction: column; gap: 14px; }
.dialog-sections fieldset { padding: 15px; border: 1px solid #dde1dc; border-radius: 10px; }
.dialog-sections legend { padding: 0 7px; color: var(--green); font: 600 15px Georgia, serif; }
.dialog-sections fieldset > label, .payment-fields > label { display: flex; flex-direction: column; gap: 6px; margin-bottom: 11px; color: #4d5a56; font-size: 12px; font-weight: 700; }
.two-columns { grid-template-columns: repeat(2, minmax(0,1fr)); }.three-columns { grid-template-columns: repeat(3, minmax(0,1fr)); }
.dialog-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 19px; }
.dialog-tabs { display: flex; gap: 5px; padding: 0 22px; border-bottom: 1px solid var(--line); }
.dialog-tabs button { padding: 10px 13px; border: 0; border-bottom: 3px solid transparent; background: transparent; color: var(--muted); font-weight: 750; }
.dialog-tabs button.active { border-bottom-color: var(--green); color: var(--green); }
.settlement-summary { display: flex; align-items: end; justify-content: space-between; margin-bottom: 15px; padding: 14px; border-radius: 9px; background: var(--sand); }
.settlement-summary span { color: var(--muted); }.settlement-summary strong { color: var(--green); font: 600 24px Georgia, serif; }
.payment-fields { margin-top: 13px; padding: 14px; border: 1px solid #cbdad2; border-radius: 9px; background: #f4f8f5; }
.unassigned-panel { box-shadow: none; }.unassigned-list { display: flex; gap: 8px; flex-wrap: wrap; }
.unassigned-list button { display: flex; padding: 10px; flex-direction: column; border: 1px solid #d9ddd8; border-radius: 8px; background: #fff; color: var(--ink); text-align: left; }
.unassigned-list span { color: var(--muted); font-size: 10px; }
@media (max-width: 1200px) {
  .metrics, .report-metrics { grid-template-columns: repeat(3, 1fr); }
  .candidate { grid-template-columns: 1fr 130px; }.candidate-main { grid-column: 1 / -1; }
}
@media (max-width: 850px) {
  .topbar { padding: 0 15px; }.app-shell { display: block; }.sidebar { position: static; display: flex; height: auto; padding: 8px; border-right: 0; border-bottom: 1px solid var(--line); overflow-x: auto; }.sidebar > a { flex: 0 0 auto; margin: 0 2px; }.nav-group { flex: 0 0 185px; margin: 0 2px; border: 0; }.sidebar kbd, .sidebar-foot { display: none; }.content { padding: 25px 15px 55px; }.split { grid-template-columns: 1fr; }.form-grid { grid-template-columns: repeat(2, 1fr); }.workflow { grid-template-columns: repeat(2, 1fr); }.page-head, .calendar-page-head { flex-direction: column; }.quick-start { align-items: flex-start; flex-direction: column; }.calendar-legend { display: none; }.calendar-date-title { margin-left: auto; }.calendar-toolbar { align-items: stretch; flex-wrap: wrap; }.room-tabs { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .local-badge { font-size: 0; }.local-badge span { font-size: 9px; }.metrics, .report-metrics, .form-grid, .workflow { grid-template-columns: 1fr 1fr; }.metric { min-height: 112px; }.form-grid { grid-template-columns: 1fr; }.mapping-grid { grid-template-columns: 1fr; }.mapping-grid > * { border-bottom: 0; }.mapping-grid > *:nth-child(even) { border-left: 0; border-bottom: 1px solid var(--line); }.mapping-head { display: none; }.candidate { grid-template-columns: 1fr; }.candidate-main { grid-column: auto; }.confirm-bar { position: static; align-items: stretch; flex-direction: column; }.compact-form { right: auto; left: 0; grid-template-columns: 1fr; }.detail-list div { grid-template-columns: 1fr; gap: 4px; }
}
@media print { .topbar, .sidebar, .button, form { display: none !important; }.app-shell { display: block; }.content { max-width: none; padding: 0; }.panel { box-shadow: none; break-inside: avoid; } }

/* Calme unified interface — shared visual language with the public website */
:root {
  --ink: #252a28;
  --muted: #626c67;
  --green: #29453d;
  --green-2: #3d6358;
  --green-soft: #eef2ed;
  --paper: #f8f6f1;
  --surface: #fff;
  --line: #ddd8ce;
  --sand: #eee4d8;
  --amber: #a17a45;
  --amber-soft: #f5ecdf;
  --red: #8a4f50;
  --red-soft: #f6e9e7;
  --shadow: 0 8px 30px rgba(37, 42, 40, .06);
  --shadow-raised: 0 22px 60px rgba(37, 42, 40, .12);
  --radius: 16px;
}
html { background: var(--paper); line-height: 1.55; text-rendering: optimizeLegibility; }
body { background: var(--paper); }
::selection { background: #c9b49b; color: var(--ink); }
:focus-visible { outline: 3px solid rgba(41,69,61,.32) !important; outline-offset: 3px !important; }

.app-shell { display: grid; grid-template-columns: 272px minmax(0, 1fr); min-height: 100vh; }
.app-workspace { min-width: 0; }
.sidebar {
  position: sticky; top: 0; z-index: 30; display: flex; height: 100vh; padding: 22px 16px 18px;
  flex-direction: column; border-right: 1px solid var(--line); background: rgba(255,255,255,.92);
  box-shadow: 8px 0 34px rgba(37,42,40,.025); overflow-y: auto;
}
.sidebar-brand-row { display: flex; min-height: 54px; align-items: center; justify-content: space-between; margin: 0 5px 27px; }
.brand { gap: 12px; color: var(--green); }
.brand-mark { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid #dce4df; border-radius: 14px; background: var(--green-soft); }
.brand-mark img { width: 34px; height: 34px; }
.brand strong { color: var(--green); font: 520 23px/1 Georgia, serif; letter-spacing: -.02em; }
.brand small { margin-top: 5px; color: #77827e; font-size: 8px; font-weight: 750; letter-spacing: .11em; }
.nav-close, .nav-toggle, .nav-backdrop { display: none; }
.nav-section { display: flex; flex-direction: column; gap: 4px; }
.nav-label { display: block; margin: 0 12px 8px; color: #8c9591; font-size: 9px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.nav-section > a { display: grid; grid-template-columns: 29px minmax(0,1fr) auto; min-height: 46px; padding: 8px 11px; align-items: center; border-radius: 12px; color: #53605c; font-weight: 650; text-decoration: none; }
.nav-section > a:hover { background: #f4f4ef; color: var(--green); }
.nav-section > a[aria-current="page"] { background: var(--green); color: #fff; box-shadow: 0 8px 22px rgba(41,69,61,.16); }
.nav-icon { display: grid; width: 25px; height: 25px; place-items: center; border-radius: 7px; background: rgba(41,69,61,.07); color: inherit; font-size: 14px; }
.nav-section a[aria-current="page"] .nav-icon { background: rgba(255,255,255,.13); }
.online-icon { font-size: 11px; }
.nav-section kbd { justify-self: end; }
.nav-group { margin-top: 19px; padding-top: 14px; border-top: 1px solid #ece8df; }
.nav-group summary { min-height: 42px; padding: 8px 11px; border-radius: 11px; color: #61706a; font-size: 11px; letter-spacing: .06em; }
.nav-group summary:hover { background: #f5f4ef; }
.nav-group summary > span { display: flex; gap: 4px; align-items: center; }
.nav-group summary i { color: #8f9894; font-style: normal; transition: transform .2s ease; }
.nav-group .when-open { display: none; }
.nav-group[open] .when-open { display: inline; }
.nav-group[open] .when-closed { display: none; }
.nav-secondary-section { margin-top: 20px; }
.nav-group > div { margin: 2px 0 0 23px; padding: 3px 0 3px 10px; border-left: 1px solid #dddcd5; }
.nav-group a { min-height: 34px; padding: 6px 9px; border-radius: 8px; color: #68736f; font-size: 11px; }
.nav-group a[aria-current="page"] { background: var(--green-soft); color: var(--green); }
.sidebar-spacer { flex: 1 0 18px; }
.preview-switcher { margin-top: 18px; padding: 13px; border: 1px solid #dccbb6; border-radius: 13px; background: #f8f2e9; }
.preview-switcher .nav-label { margin: 0 0 7px; color: #88745b; }
.preview-switcher p { margin: 0 0 10px; color: #6b6256; font-size: 10px; line-height: 1.45; }
.preview-switcher form + form { margin-top: 6px; }
.preview-switcher form > button:not(.button) { width: 100%; min-height: 34px; padding: 7px 8px; border: 1px solid #d5c4ae; border-radius: 8px; background: #fff; color: var(--green); font-size: 10px; font-weight: 750; }
.preview-switcher .button { min-height: 34px; font-size: 10px; }
.session-card { display: grid; grid-template-columns: 34px minmax(0,1fr) 24px; gap: 9px; margin-top: 13px; padding: 11px; align-items: center; border: 1px solid #e5e1d8; border-radius: 13px; background: #fbfaf7; }
.session-avatar { display: grid !important; width: 34px; height: 34px; place-items: center; border-radius: 50%; background: var(--sand); color: var(--green) !important; font: 600 14px Georgia,serif !important; }
.session-copy { min-width: 0; }
.session-copy strong, .session-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.session-copy strong { color: var(--ink) !important; font-size: 9px !important; }
.session-copy small { margin-top: 2px; color: var(--muted); font-size: 8px; }
.session-card form { margin: 0; }
.session-card button { width: 24px; height: 28px; color: #8a4f50; text-decoration: none; }
.account-preview-action { padding: 13px 12px 0; }
.sidebar-foot { margin: 14px 3px 0; padding: 11px 9px 0; font-size: 8px; }

.topbar { position: sticky; top: 0; z-index: 20; display: flex; height: 76px; padding: 0 clamp(20px,3vw,48px); align-items: center; justify-content: space-between; color: var(--ink); border-bottom: 1px solid rgba(221,216,206,.8); background: rgba(248,246,241,.9); box-shadow: none; backdrop-filter: blur(14px); }
.topbar-context span, .topbar-context strong { display: block; }
.topbar-eyebrow { color: #87918c; font-size: 8px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.topbar-context strong { margin-top: 2px; color: var(--green); font: 520 15px Georgia,serif; }
.topbar-actions { display: flex; gap: 8px; align-items: center; }
.online-quick { display: inline-flex; min-height: 34px; padding: 6px 12px; gap: 7px; align-items: center; border: 1px solid #ccd7d1; border-radius: 999px; background: #fff; color: var(--green); font-size: 10px; font-weight: 750; text-decoration: none; }
.online-quick span { color: #5d9a77; font-size: 8px; }
.local-badge { padding: 7px 11px; border-color: #ddd8ce; background: rgba(255,255,255,.72); color: #68746f; }
.local-badge span { color: #62a07d; }
.content { max-width: 1660px; padding: 38px clamp(22px,3.3vw,54px) 80px; }
.preview-banner { display: flex; min-height: 46px; padding: 9px clamp(22px,3.3vw,54px); gap: 16px; align-items: center; justify-content: space-between; border-bottom: 1px solid #d8c2a5; background: #f4e7d5; color: #5d5244; font-size: 11px; }
.preview-banner form { margin: 0; }
.preview-banner button { border: 0; background: transparent; color: var(--green); font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.page-head h1, .calendar-page-head h1 { color: var(--green); font-weight: 520; letter-spacing: -.025em; }
.page-head p, .calendar-page-head p { font-size: 14px; }
.panel { border-color: #e0ddd5; box-shadow: var(--shadow); }
.button { min-height: 42px; border-color: #c9c2b6; border-radius: 10px; }
.button.primary { border-color: var(--green); }

/* Online meeting center */
.online-config-alert { display: flex; margin: 0 0 22px; gap: 8px; flex-direction: column; }
.online-hero { display: grid; grid-template-columns: minmax(0, .9fr) minmax(380px, 1.1fr); min-height: 310px; margin-bottom: 24px; border: 1px solid #cfd8d2; border-radius: 22px; background: var(--green); color: #fff; box-shadow: 0 22px 70px rgba(41,69,61,.16); overflow: hidden; }
.online-hero-copy { position: relative; display: flex; padding: clamp(30px,4vw,55px); flex-direction: column; justify-content: center; }
.online-hero-copy::after { position: absolute; right: -100px; bottom: -160px; width: 310px; height: 310px; content: ""; border: 1px solid rgba(255,255,255,.09); border-radius: 50%; }
.online-hero-copy .eyebrow { color: #c4d5ce !important; }
.online-hero-copy h2 { margin: 6px 0 10px; color: #fff; font: 520 clamp(28px,3vw,42px)/1.12 Georgia,serif; letter-spacing: -.025em; }
.online-hero-copy > p:not(.eyebrow) { max-width: 520px; margin: 0; color: rgba(255,255,255,.72); }
.online-live-dot { position: absolute; top: 25px; right: 28px; width: 9px; height: 9px; border-radius: 50%; background: #8bc8a7; box-shadow: 0 0 0 6px rgba(139,200,167,.12); }
.online-status-line { display: flex; gap: 7px; margin-top: 22px; flex-wrap: wrap; }
.online-stage { display: flex; min-height: 270px; margin: 18px; padding: 25px; align-items: center; justify-content: center; flex-direction: column; border: 1px solid rgba(255,255,255,.14); border-radius: 16px; background: radial-gradient(circle at 50% 35%, #46685f, #1e342e); box-shadow: inset 0 0 70px rgba(0,0,0,.12); }
.online-stage-brand { display: flex; gap: 9px; align-items: center; align-self: flex-start; color: rgba(255,255,255,.72); font-size: 11px; }
.online-stage-brand .brand-mark { width: 31px; height: 31px; border-color: rgba(255,255,255,.2); background: rgba(255,255,255,.9); }
.online-stage-brand .brand-mark img { display: none; }
.online-stage-icon { display: grid; width: 74px; height: 74px; margin: auto; place-items: center; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; background: rgba(255,255,255,.08); color: #b7d8ca; font-size: 22px; }
.online-join { min-width: 220px; }
.online-stage .button.primary { border-color: #fff; background: #fff; color: var(--green); }
.online-stage small { margin-top: 10px; color: rgba(255,255,255,.55); font-size: 9px; text-align: center; }
.online-grid { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(290px,.65fr); gap: 24px; align-items: start; }
.online-list-panel { margin: 0; }
.online-appointments { display: flex; flex-direction: column; }
.online-appointment { display: grid; grid-template-columns: 50px minmax(180px,1fr) auto auto; gap: 14px; min-height: 75px; padding: 12px 0; align-items: center; border-top: 1px solid #ebe8e0; }
.online-appointment:first-child { border-top: 0; }
.online-appointment time { display: grid; width: 45px; height: 50px; place-items: center; align-content: center; border-radius: 11px; background: var(--green-soft); color: var(--green); line-height: 1; }
.online-appointment time strong { font: 520 20px Georgia,serif; }
.online-appointment time span { margin-top: 3px; color: var(--muted); font-size: 8px; }
.online-appointment > div { display: flex; min-width: 0; flex-direction: column; }
.online-appointment > div > strong { overflow: hidden; color: var(--ink); text-overflow: ellipsis; white-space: nowrap; }
.online-appointment > div > span { color: var(--muted); font-size: 10px; }
.online-waiting { color: #838d89; font-size: 9px; white-space: nowrap; }
.online-side { display: grid; gap: 18px; }
.online-side .panel { margin: 0; }
.connection-card .button { margin-top: 18px; }
.connection-list { padding: 0; margin: 0; list-style: none; }
.connection-list li { display: flex; gap: 10px; padding: 10px 0; align-items: center; justify-content: space-between; border-top: 1px solid #ebe8e0; }
.connection-list li > span:first-child { display: flex; min-width: 0; flex-direction: column; }
.connection-list strong, .connection-list small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.connection-list strong { font-size: 11px; }.connection-list small { color: var(--muted); font-size: 8px; }
.privacy-card { border: 0; background: var(--sand); box-shadow: none; }
.privacy-card h2 { margin-top: 12px; }.privacy-card p { line-height: 1.6; }
.privacy-icon { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; background: rgba(41,69,61,.1); color: var(--green); }

@media (max-width: 1050px) {
  .app-shell { grid-template-columns: 238px minmax(0,1fr); }
  .online-hero { grid-template-columns: 1fr; }.online-stage { min-height: 230px; }
  .online-grid { grid-template-columns: 1fr; }.online-side { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 850px) {
  .app-shell { display: block; }
  .sidebar { position: fixed; inset: 0 auto 0 0; display: flex; width: min(310px,88vw); height: 100vh; padding: 20px 16px; border-right: 1px solid var(--line); transform: translateX(-104%); transition: transform .22s ease; }
  body.nav-open { overflow: hidden; }.nav-open .sidebar { transform: translateX(0); }
  .nav-backdrop { position: fixed; inset: 0; z-index: 25; width: 100%; height: 100%; border: 0; background: rgba(29,43,38,.46); }
  .nav-open .nav-backdrop { display: block; }.nav-close { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: #fff; color: var(--ink); font-size: 20px; }
  .nav-toggle { display: inline-flex; min-height: 38px; padding: 7px 11px; gap: 7px; align-items: center; border: 1px solid var(--line); border-radius: 9px; background: #fff; color: var(--green); font-size: 10px; font-weight: 800; }
  .topbar { padding: 0 16px; }.topbar-context { display: none; }.topbar-actions { margin-left: auto; }.local-badge { display: none; }
  .content { padding: 27px 15px 60px; }.preview-banner { padding: 9px 15px; }
  .online-hero { min-height: 0; }.online-hero-copy { min-height: 250px; }.online-stage { margin-top: 0; }
}
@media (max-width: 620px) {
  .online-page-head .button { width: 100%; }.online-hero { border-radius: 17px; }.online-stage { margin: 12px; padding: 18px; }
  .online-side { grid-template-columns: 1fr; }.online-appointment { grid-template-columns: 44px 1fr auto; gap: 9px; }
  .online-appointment > .status { display: none; }.online-appointment .button, .online-waiting { grid-column: 2 / -1; justify-self: start; }
  .preview-banner { align-items: flex-start; flex-direction: column; gap: 4px; }
}
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; } }

/* Operational views introduced in v1.4 */
.nav-group[open] summary span,
.nav-group[open] summary > span,
.nav-group[open] summary i span { transform: none !important; transition: none !important; }

.auth-body { background: var(--paper); }
.auth-shell.auth-layout {
  display: grid; width: min(1160px, calc(100% - 34px)); min-height: min(720px, calc(100vh - 64px));
  margin: 32px auto; padding: 0; grid-template-columns: minmax(340px,.9fr) minmax(410px,1.1fr);
  border: 1px solid var(--line); border-radius: 26px; background: #fff; box-shadow: var(--shadow-raised); overflow: hidden;
}
.auth-story { position: relative; display: flex; min-height: 650px; padding: clamp(30px,5vw,62px); flex-direction: column; background: var(--green); color: #fff; overflow: hidden; }
.auth-story::before,.auth-story::after { position: absolute; content: ""; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; }
.auth-story::before { width: 420px; height: 420px; right: -230px; top: -160px; }
.auth-story::after { width: 290px; height: 290px; left: -160px; bottom: -140px; }
.auth-story .auth-brand { position: relative; z-index: 1; color: #fff; }
.auth-story .auth-brand small { color: #c5d4cf; }
.auth-story .brand-mark { border-color: rgba(255,255,255,.2); background: rgba(255,255,255,.93); }
.auth-story-copy { position: relative; z-index: 1; margin: auto 0; }
.auth-story-copy .eyebrow { color: #bcd0c8 !important; }
.auth-story-copy h2 { max-width: 520px; margin: 12px 0 18px; color: #fff; font: 520 clamp(34px,4vw,53px)/1.08 Georgia,serif; letter-spacing: -.035em; }
.auth-story-copy > p:last-child { max-width: 490px; color: rgba(255,255,255,.7); font-size: 14px; line-height: 1.7; }
.auth-trust { position: relative; z-index: 1; display: flex; gap: 9px; flex-wrap: wrap; }
.auth-trust span { padding: 7px 10px; border: 1px solid rgba(255,255,255,.14); border-radius: 999px; color: rgba(255,255,255,.74); font-size: 9px; }
.auth-trust i { color: #9fd0b6; font-style: normal; }
.auth-access { display: flex; min-width: 0; padding: clamp(30px,5vw,70px); flex-direction: column; justify-content: center; background: #fff; }
.auth-access .auth-card { padding: 0; border: 0; box-shadow: none; }
.auth-access .notice { margin-top: 0; }
.auth-access .auth-security-note { max-width: 470px; }

.configuration-map { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 13px; margin-bottom: 24px; }
.config-tile { display: flex; min-height: 142px; padding: 18px; flex-direction: column; border: 1px solid var(--line); border-radius: 15px; background: #fff; color: var(--ink); text-decoration: none; box-shadow: 0 5px 18px rgba(37,42,40,.035); }
.config-tile:hover { border-color: #afbeb7; transform: translateY(-2px); box-shadow: var(--shadow); }
.config-tile > span { color: #87908c; font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.config-tile strong { margin: auto 0 4px; color: var(--green); font: 520 18px Georgia,serif; }
.config-tile small { color: var(--muted); line-height: 1.45; }
.settings-stack,.section-gap,.catalog-list { margin-top: 22px; }
.operator-form,.catalog-create-form { margin-bottom: 22px; }
.catalog-create-form { display: grid; gap: 14px; padding-bottom: 21px; border-bottom: 1px solid #ebe7df; }
.card-form { position: static !important; display: grid !important; width: 100% !important; border: 0 !important; border-top: 1px solid var(--line) !important; border-radius: 0 !important; box-shadow: none !important; }

.segmented { display: inline-flex; gap: 3px; margin: -7px 0 22px; padding: 4px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.segmented a { min-width: 92px; padding: 8px 14px; border-radius: 8px; color: var(--muted); font-size: 11px; font-weight: 800; text-align: center; text-decoration: none; }
.segmented a[aria-current="page"] { background: var(--green); color: #fff; }
.finance-filter { padding: 13px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.finance-chart-panel { min-height: 370px; }
.finance-chart { display: grid; height: 270px; padding: 15px 6px 0; grid-auto-columns: minmax(34px,1fr); grid-auto-flow: column; gap: clamp(5px,1vw,16px); align-items: end; border-bottom: 1px solid var(--line); overflow-x: auto; }
.chart-column { display: grid; min-width: 34px; height: 100%; grid-template-rows: minmax(0,1fr) 33px; gap: 7px; align-items: end; }
.chart-bars { display: flex; min-height: 1px; height: 100%; gap: 3px; align-items: end; justify-content: center; }
.chart-bar { display: block; width: min(16px,42%); min-height: 2px; border-radius: 5px 5px 1px 1px; }
.chart-bar.gross { background: var(--green-2); }.chart-bar.commission { background: #c4a982; }
.chart-column small { color: var(--muted); font-size: 8px; text-align: center; white-space: nowrap; }
.period-close-panel { border-style: dashed; background: #fbfaf7; box-shadow: none; }
.payment-simple-form { max-width: 1000px; }
.setup-steps { display: grid; padding: 0; margin: 0 0 24px; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; list-style: none; counter-reset: google-setup; }
.setup-steps li { counter-increment: google-setup; display: flex; min-height: 105px; padding: 14px; flex-direction: column; border: 1px solid var(--line); border-radius: 11px; background: #faf9f6; }
.setup-steps li::before { content: "0" counter(google-setup); margin-bottom: auto; color: #a08a6b; font: 520 15px Georgia,serif; }.setup-steps strong { color: var(--green); }.setup-steps span { margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.45; }

.control-overview { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 13px; margin-bottom: 22px; }
.control-overview a { display: flex; min-height: 126px; padding: 17px; flex-direction: column; border: 1px solid var(--line); border-radius: 14px; background: #fff; color: var(--ink); text-decoration: none; box-shadow: var(--shadow); }
.control-overview a.warn { border-color: #dfc39f; background: #fdf9f3; }
.control-overview span,.control-overview small { color: var(--muted); }.control-overview strong { margin: auto 0 2px; color: var(--green); font: 520 30px Georgia,serif; }
.control-layout { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(300px,.55fr); gap: 22px; align-items: start; }.control-layout .panel { margin: 0; }
.control-side { display: grid; gap: 22px; }.control-warning-list { padding: 0; margin: 0; list-style: none; }
.control-warning-list li { display: grid; grid-template-columns: 27px minmax(0,1fr) auto; gap: 10px; padding: 13px 0; align-items: center; border-top: 1px solid var(--line); }
.control-warning-list li:first-child { border-top: 0; }.control-warning-list li > span { display: grid; width: 26px; height: 26px; place-items: center; border-radius: 50%; background: var(--amber-soft); color: var(--amber); }
.automation-status dl { margin: 0; }.automation-status dl div { display: flex; padding: 9px 0; justify-content: space-between; border-top: 1px solid var(--line); }.automation-status dt { color: var(--muted); }.automation-status dd { margin: 0; font-weight: 800; }

.account-layout { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(320px,.9fr); gap: 22px; align-items: start; }.account-layout .panel { margin: 0; }
.access-rule-list { display: grid; gap: 4px; }.access-rule-list article { display: grid; grid-template-columns: 33px 1fr; gap: 12px; padding: 14px 0; border-top: 1px solid var(--line); }.access-rule-list article:first-child { border-top: 0; }.access-rule-list article > span { color: #a08a6b; font: 520 16px Georgia,serif; }.access-rule-list p { margin: 3px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.account-list { display: grid; gap: 10px; }.account-row { border: 1px solid var(--line); border-radius: 13px; background: #fff; overflow: hidden; }.account-row > summary { display: grid; min-height: 72px; padding: 13px 16px; grid-template-columns: minmax(0,1fr) auto; gap: 14px; align-items: center; list-style: none; }.account-row > summary::-webkit-details-marker { display:none; }
.account-identity,.account-signals { display: flex; gap: 10px; align-items: center; }.account-identity > i { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; background: var(--green-soft); color: var(--green); font: 520 16px Georgia,serif; }.account-identity > span { display: flex; min-width: 0; flex-direction: column; }.account-identity strong,.account-identity small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.account-identity small,.account-signals small { color: var(--muted); font-size: 9px; }.account-signals { justify-content: flex-end; }
.account-detail-grid { display: grid; padding: 16px; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; border-top: 1px solid var(--line); background: #faf9f6; }.account-preview-action { grid-column: 1 / -1; padding: 0; }.account-action-card { display: flex; min-width: 0; padding: 14px; gap: 12px; flex-direction: column; border: 1px solid var(--line); border-radius: 11px; background: #fff; }.account-action-card p { margin: 3px 0 0; color: var(--muted); font-size: 10px; }.account-action-card label { margin-top: auto; color: var(--muted); font-size: 10px; }.credential-result { display: flex; margin-bottom: 22px; padding: 16px 18px; gap: 16px; align-items: center; justify-content: space-between; border: 1px solid #b8d4c4; border-radius: 13px; background: #eef6f1; }.credential-result.manual { border-color: #dec49e; background: #faf2e7; }.credential-result > div { display: flex; flex-direction: column; }.one-time-password code { padding: 8px 11px; border-radius: 7px; background: #fff; color: var(--green); font-weight: 800; }

/* A full hour receives 69 px: a 50-minute session stays legible and leaves a visible break. */
.calendar-date-title,.day-head strong { color: var(--green); font-family: Georgia, "Times New Roman", serif; font-variant-numeric: tabular-nums; font-weight: 520; letter-spacing: -.025em; }
.day-head.is-weekend { background: #f3eee6; }.day-head.is-weekend span { color: #887a68; }
.weekly-calendar .time-axis,.weekly-calendar .day-lane { height: calc(var(--calendar-height) * 1.15px); }
.weekly-calendar .day-lane { background: repeating-linear-gradient(to bottom,#fff 0,#fff 68px,#e4e7e2 69px); }
.weekly-calendar .day-lane.is-today { background: repeating-linear-gradient(to bottom,#f8fbf8 0,#f8fbf8 68px,#dce6df 69px); }
.weekly-calendar .day-lane.is-weekend { background: repeating-linear-gradient(to bottom,#fbf8f3 0,#fbf8f3 68px,#e4ddd3 69px); }
.weekly-calendar .day-lane.is-today.is-weekend { background: repeating-linear-gradient(to bottom,#f6f4ed 0,#f6f4ed 68px,#dddcd2 69px); }
.weekly-calendar .time-axis span,.weekly-calendar .calendar-slot,.weekly-calendar .shift-band,.weekly-calendar .calendar-event { top: calc(var(--start) * 1.15px); }
.weekly-calendar .calendar-slot { height: 69px; }
.weekly-calendar .shift-band,.weekly-calendar .calendar-event { height: calc(var(--duration) * 1.15px); }
.weekly-calendar .calendar-event { min-height: 54px; padding: 6px 7px; gap: 2px; border-radius: 9px; }
.weekly-calendar .calendar-event .event-time { font-size: 9px; line-height: 1.15; }.weekly-calendar .calendar-event strong { font-size: 11px; line-height: 1.2; }.weekly-calendar .calendar-event .event-meta { display: block; }.weekly-calendar .calendar-event .event-status { min-height: 13px; margin-top: auto; }.weekly-calendar .calendar-event .event-status b,.weekly-calendar .calendar-event .event-status i { font-size: 7px; line-height: 1.1; }
.visual-calendar.weekly-calendar { grid-template-columns: 68px minmax(826px,1fr); }
.weekly-calendar .week-heads,.weekly-calendar .week-lanes { grid-template-columns: repeat(7,minmax(118px,1fr)); min-width: 826px; }
.weekly-calendar .day-head { position: relative; min-height: 98px; padding: 9px 8px; }
.weekly-calendar .day-head > div:first-child { align-items: flex-start; flex-direction: column; gap: 0; }
.weekly-calendar .day-head > div:first-child strong { font-size: 16px; line-height: 1.15; }
.weekly-calendar .day-head .icon-button { position: absolute; top: 35px; right: 7px; float: none; margin: 0; }
.weekly-calendar .day-head .room-shifts { max-width: calc(100% - 29px); margin-top: 6px; }

@media (max-width: 1050px) {
  .configuration-map,.control-overview { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .setup-steps { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .control-layout,.account-layout { grid-template-columns: 1fr; }.account-detail-grid { grid-template-columns: 1fr; }
}
@media (max-width: 780px) {
  .auth-shell.auth-layout { display: block; min-height: 0; margin: 16px auto; }.auth-story { min-height: 280px; padding: 28px; }.auth-story-copy { margin: 38px 0; }.auth-story-copy h2 { font-size: 31px; }.auth-trust { display: none; }.auth-access { padding: 30px 24px; }
  .account-row > summary { grid-template-columns: 1fr; }.account-signals { justify-content: flex-start; flex-wrap: wrap; }
}
@media (max-width: 560px) { .configuration-map,.control-overview,.setup-steps { grid-template-columns: 1fr; } }

/* Finance, configuration and personnel workflows */
.segmented { display: inline-flex; gap: 4px; margin: -8px 0 22px; padding: 4px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.segmented a { min-width: 92px; padding: 8px 14px; border-radius: 8px; color: var(--muted); font-size: 12px; font-weight: 750; text-align: center; text-decoration: none; }
.segmented a[aria-current="page"] { background: var(--green); color: #fff; }
.finance-filter select { min-width: 210px; }
.finance-metrics { grid-template-columns: repeat(6,minmax(130px,1fr)); }
.finance-chart-panel { overflow: hidden; }
.finance-chart { display: flex; min-height: 300px; padding: 26px 10px 0; gap: 5px; align-items: end; overflow-x: auto; border-top: 1px solid #ebe8e0; background: linear-gradient(to top,#fafbf8,#fff); }
.chart-column { display: grid; flex: 1 0 28px; min-width: 28px; height: 255px; grid-template-rows: 220px 30px; gap: 6px; align-items: end; }
.chart-bars { display: flex; height: 220px; gap: 2px; align-items: end; justify-content: center; }
.chart-bar { display: block; width: min(13px,42%); min-height: 2px; border-radius: 4px 4px 0 0; }
.chart-bar.gross { background: var(--green); }.chart-bar.commission { background: #c9b49b; }
.chart-column small { color: #7a8580; font-size: 8px; text-align: center; }
.period-close-panel { border-style: dashed; box-shadow: none; }

.configuration-map { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin-bottom: 24px; }
.config-tile { display: flex; min-height: 145px; padding: 19px; flex-direction: column; border: 1px solid var(--line); border-radius: 15px; background: #fff; color: var(--ink); text-decoration: none; box-shadow: var(--shadow); }
.config-tile:hover { border-color: #a9b9b1; transform: translateY(-2px); }
.config-tile > span { color: #8a948f; font-size: 9px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.config-tile strong { margin: 13px 0 5px; color: var(--green); font: 520 19px Georgia,serif; }
.config-tile small { color: var(--muted); line-height: 1.5; }
.operator-form { margin-bottom: 22px; padding-bottom: 22px; border-bottom: 1px solid #ebe8e0; }
.settings-stack { margin-top: 20px; }

.catalog-columns > .panel { min-width: 0; }
.catalog-create-form { display: grid; gap: 15px; margin-bottom: 24px; padding: 17px; border: 1px solid #e4e1d9; border-radius: 13px; background: #faf9f5; }
.catalog-list { margin-top: 18px; }
.card-form { padding: 17px; border-top: 1px solid #e4e1d9; }
.check-row { display: flex; gap: 18px; flex-wrap: wrap; }

.account-layout { display: grid; grid-template-columns: minmax(330px,.8fr) minmax(430px,1.2fr); gap: 24px; align-items: start; }
.access-rule-list { display: grid; gap: 11px; }
.access-rule-list article { display: grid; grid-template-columns: 44px 1fr; gap: 13px; padding: 14px; border: 1px solid #e5e1d8; border-radius: 12px; background: #fbfaf7; align-items: start; }
.access-rule-list article > span { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; background: var(--green-soft); color: var(--green); font: 520 13px Georgia,serif; }
.access-rule-list strong { color: var(--green); }.access-rule-list p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.account-list { display: grid; gap: 10px; }
.account-row { border: 1px solid #e2dfd7; border-radius: 13px; background: #fff; overflow: hidden; }
.account-row > summary { display: flex; min-height: 72px; padding: 14px 16px; gap: 18px; align-items: center; justify-content: space-between; list-style: none; }
.account-row > summary::-webkit-details-marker { display: none; }
.account-identity { display: flex; min-width: 0; gap: 12px; align-items: center; }
.account-identity > i { display: grid; flex: 0 0 40px; width: 40px; height: 40px; place-items: center; border-radius: 50%; background: var(--green-soft); color: var(--green); font: 520 17px Georgia,serif; font-style: normal; }
.account-identity > span { display: flex; min-width: 0; flex-direction: column; }
.account-identity strong,.account-identity small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.account-identity small { color: var(--muted); }
.account-signals { display: flex; gap: 9px; align-items: center; }.account-signals > small { color: var(--muted); white-space: nowrap; }
.account-detail-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; padding: 16px; border-top: 1px solid #e5e1d8; background: #faf9f5; }
.account-preview-action { grid-column: 1 / -1; padding: 0; }
.account-action-card { display: flex; padding: 14px; gap: 12px; flex-direction: column; border: 1px solid #dedbd3; border-radius: 11px; background: #fff; }
.account-action-card p { margin: 4px 0 0; color: var(--muted); font-size: 11px; line-height: 1.45; }
.account-action-card label { display: flex; gap: 6px; flex-direction: column; color: #4d5a56; font-size: 11px; font-weight: 700; }
.privileged-note { padding: 15px 18px; border-top: 1px solid #e5e1d8; color: var(--muted); font-size: 12px; }
.credential-result { display: flex; margin-bottom: 22px; padding: 16px 18px; gap: 20px; align-items: center; justify-content: space-between; border: 1px solid #b8d4c6; border-radius: 13px; background: #eef6f1; }
.credential-result.manual { border-color: #dec49f; background: #f8efe2; }.credential-result > div { display: flex; flex-direction: column; }
.credential-result span { color: var(--muted); font-size: 11px; }.one-time-password code { margin-top: 4px; color: var(--green); font-size: 16px; }

.control-overview { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin-bottom: 24px; }
.control-overview > a { display: flex; min-height: 135px; padding: 18px; flex-direction: column; border: 1px solid var(--line); border-radius: 14px; background: #fff; color: var(--ink); text-decoration: none; box-shadow: var(--shadow); }
.control-overview > a.warn { border-color: #d7bc96; background: #fffaf3; }.control-overview span,.control-overview small { color: var(--muted); }.control-overview strong { margin: 12px 0 4px; color: var(--green); font: 520 33px Georgia,serif; }
.control-layout { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(300px,.55fr); gap: 24px; align-items: start; }
.control-side { display: grid; gap: 20px; }.control-side .panel { margin: 0; }
.control-warning-list { padding: 0; margin: 0; list-style: none; }.control-warning-list li { display: grid; grid-template-columns: 30px 1fr auto; gap: 11px; padding: 13px 0; align-items: center; border-top: 1px solid #ebe8e0; }.control-warning-list li:first-child { border-top: 0; }.control-warning-list li > span { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 50%; background: var(--amber-soft); color: var(--amber); font-weight: 900; }
.automation-status dl { display: grid; gap: 8px; }.automation-status dl > div { display: flex; padding: 9px 0; align-items: center; justify-content: space-between; border-top: 1px solid #ebe8e0; }.automation-status dd { margin: 0; color: var(--green); font: 520 21px Georgia,serif; }

.payment-quick-add { border-color: #cbd8d1; }.payment-simple-form .wide select { min-height: 46px; }
.report-blocker { margin-bottom: 17px; padding: 14px; border: 1px solid #ddbd98; border-radius: 11px; background: #f8efe2; }.report-blocker ul { margin: 8px 0 12px; padding-left: 20px; color: #6f512e; }
.integration-explainer { margin-bottom: 22px; }

@media (max-width: 1200px) {
  .finance-metrics { grid-template-columns: repeat(3,1fr); }
  .configuration-map,.control-overview { grid-template-columns: repeat(2,1fr); }
  .account-detail-grid { grid-template-columns: 1fr; }
}
@media (max-width: 950px) {
  .account-layout,.control-layout { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .configuration-map,.control-overview { grid-template-columns: 1fr; }
  .finance-metrics { grid-template-columns: repeat(2,1fr); }
  .account-row > summary { align-items: flex-start; flex-direction: column; }.account-signals { width: 100%; flex-wrap: wrap; }
  .credential-result { align-items: flex-start; flex-direction: column; }
}

/* Calendar period picker and compact 50/90 minute appointment cards. */
.calendar-toolbar {
  display: flex;
  min-height: 82px;
  padding: 13px 16px;
  gap: 18px;
  align-items: center;
}
.calendar-period-nav { display: flex; min-width: 350px; gap: 12px; align-items: center; }
.calendar-period-copy { display: flex; min-width: 250px; flex-direction: column; }
.calendar-period-copy > span { color: #7c8883; font-size: 8px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.calendar-period-copy > small { margin-top: 2px; color: var(--muted); font-size: 10px; }
.calendar-date-title { margin: 2px 0 0; font-size: 22px; line-height: 1.12; }
.calendar-toolbar-actions { display: flex; margin-left: auto; gap: 8px; align-items: end; }
.calendar-toolbar-actions form { display: flex; gap: 7px; align-items: end; }
.calendar-toolbar-actions label { min-width: 145px; }
.calendar-toolbar .calendar-legend { margin-left: 2px; }

.weekly-calendar .calendar-event { min-height: 56px; padding: 5px 7px 6px; gap: 1px; }
.weekly-calendar .calendar-event::after { display: none; }
.weekly-calendar .calendar-event .event-topline {
  display: flex;
  min-height: 12px;
  gap: 5px;
  align-items: center;
  justify-content: space-between;
  color: #314f5b;
  overflow: visible;
}
.weekly-calendar .calendar-event .event-topline .event-time { color: inherit; font-size: 9px; line-height: 1.1; }
.weekly-calendar .calendar-event .event-topline > i {
  max-width: 54%;
  padding: 2px 4px;
  border-radius: 999px;
  background: rgba(255,255,255,.72);
  color: #52645d;
  font-size: 6px;
  font-style: normal;
  font-weight: 850;
  line-height: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}
.weekly-calendar .calendar-event > strong { font-size: 10px; line-height: 1.15; }
.weekly-calendar .calendar-event .event-meta { padding-right: 52px; font-size: 7px; line-height: 1.1; }
.weekly-calendar .calendar-event .event-payment {
  position: absolute;
  right: 5px;
  bottom: 5px;
  display: inline-flex;
  max-width: 50px;
  padding: 2px 4px;
  border-radius: 999px;
  background: rgba(255,255,255,.85);
  color: #52645d;
  font-size: 6px;
  font-weight: 850;
  line-height: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.weekly-calendar .calendar-event-redacted .event-meta { padding-right: 0; }

.integration-metrics { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; margin-bottom: 28px; }
.integration-metrics .metric { min-height: 116px; }
.integration-metrics + .panel { margin-top: 0; }

/* Account linkage, actionable availability and notification center. */
.account-link-summary { margin-top: 3px; color: #657d73 !important; font-weight: 750; }
.therapist-account-link { display: flex; min-height: 70px; padding: 13px 14px; gap: 14px; align-items: center; justify-content: space-between; border: 1px solid #d8e2dc; border-radius: 11px; background: #f4f8f5; }
.therapist-account-link p { margin: 3px 0 0; color: var(--muted); font-size: 10px; line-height: 1.45; }
.therapist-account-link .button { flex: 0 0 auto; }

.notification-center { position: relative; }
.notification-center > summary { position: relative; display: grid; width: 36px; height: 36px; place-items: center; border: 1px solid #ccd7d1; border-radius: 50%; background: #fff; color: var(--green); cursor: pointer; list-style: none; }
.notification-center > summary::-webkit-details-marker { display: none; }
.notification-center > summary:focus-visible { outline: 3px solid rgba(73,126,103,.24); outline-offset: 2px; }
.notification-bell { font-size: 20px; font-weight: 900; line-height: 1; transform: rotate(45deg); }
.notification-center > summary b { position: absolute; top: -5px; right: -5px; display: grid; min-width: 18px; height: 18px; padding: 0 4px; place-items: center; border: 2px solid #f8f6f1; border-radius: 999px; background: #a65550; color: #fff; font-size: 8px; line-height: 1; }
.notification-popover { position: absolute; top: 44px; right: 0; width: min(390px,calc(100vw - 32px)); border: 1px solid #d8d5cc; border-radius: 15px; background: #fff; box-shadow: 0 20px 55px rgba(37,61,54,.2); overflow: hidden; }
.notification-head { display: flex; padding: 14px 16px; align-items: center; justify-content: space-between; border-bottom: 1px solid #ebe8e1; }
.notification-head strong { color: var(--green); font: 520 17px Georgia,serif; }.notification-head small { color: var(--muted); }
.notification-list { display: grid; max-height: min(520px,70vh); overflow-y: auto; }
.notification-item { display: grid; padding: 13px 16px; grid-template-columns: 9px minmax(0,1fr); gap: 11px; color: var(--ink); text-decoration: none; border-top: 1px solid #f0eee8; }
.notification-item:first-child { border-top: 0; }.notification-item:hover { background: #f7f9f6; }
.notification-item > i { width: 8px; height: 8px; margin-top: 4px; border-radius: 50%; background: #6e9b84; }
.notification-warning > i,.notification-payment > i { background: #b36a53; }.notification-summary > i { background: #ae8d55; }
.notification-item span { display: flex; min-width: 0; flex-direction: column; }.notification-item strong { font-size: 11px; }.notification-item small { margin-top: 3px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.notification-empty { margin: 0; padding: 24px 18px; color: var(--muted); text-align: center; }

.availability-panel { margin: 18px 0; }
.availability-panel .panel-head { align-items: center; }
.availability-items { display: grid; gap: 8px; }
.availability-items article { display: grid; min-height: 68px; padding: 11px 13px; grid-template-columns: 118px minmax(0,1fr) auto; gap: 13px; align-items: center; border: 1px solid #e2dfd7; border-radius: 11px; background: #fcfbf8; }
.availability-items article > div { display: flex; min-width: 0; flex-direction: column; }.availability-items article small { margin-top: 3px; color: var(--muted); }
.availability-state { display: inline-flex; width: fit-content; padding: 5px 8px; border-radius: 999px; background: #f0e6d6; color: #775c33; font-size: 8px; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.availability-state.approved { background: #eee3e2; color: #864d4d; }
.availability-review-actions { display: flex; gap: 6px; }
.availability-empty { margin: 0; padding: 13px; border: 1px dashed #d8d6ce; border-radius: 10px; color: var(--muted); text-align: center; }
.weekly-calendar .availability-block { position: absolute; z-index: 2; top: calc(var(--start) * 1.15px); right: 5px; left: 5px; height: calc(var(--duration) * 1.15px); min-height: 12px; border: 1px solid rgba(147,81,77,.45); border-radius: 7px; background: repeating-linear-gradient(135deg,rgba(166,91,87,.13) 0,rgba(166,91,87,.13) 6px,rgba(255,255,255,.3) 6px,rgba(255,255,255,.3) 12px); pointer-events: none; }
.weekly-calendar .availability-block.pending { border-style: dashed; border-color: rgba(176,132,71,.58); background: rgba(236,219,191,.25); }
.weekly-calendar .availability-block span { position: absolute; top: 3px; right: 4px; padding: 2px 4px; border-radius: 4px; background: rgba(255,255,255,.88); color: #80504b; font-size: 6px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.appointment-delete-form { display: flex; align-items: center; gap: 10px; margin: 0 20px 20px; padding-top: 14px; border-top: 1px solid var(--line); }
.appointment-delete-form small { color: var(--muted); }
.page-head-actions,.record-lifecycle-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.record-lifecycle-actions { margin: 0 18px 18px; padding-top: 14px; border-top: 1px solid var(--line); }
.record-lifecycle-actions form { margin: 0; }
.record-actions-cell { min-width: 205px; }
.record-actions-cell .inline-form { margin-left: 8px; }
.leave-panel { margin: 16px 0; border-color: #c7d9d0; background: #f7faf8; }
.room-shifts > span > button { border: 0; background: transparent; color: var(--green); cursor: pointer; padding: 0 2px; font-weight: 800; }
.weekly-calendar .day-head .icon-button {
  top: 38px;
  right: 10px;
  width: 34px;
  height: 34px;
  border: 1px solid #b8c8c0;
  border-radius: 50%;
  background: rgba(255,255,255,.92);
  color: var(--green);
  box-shadow: 0 3px 9px rgba(31,67,55,.09);
  cursor: pointer;
  transition: transform .16s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease;
}
.icon-button::before,.icon-button::after,.floating-add::before,.floating-add::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  border-radius: 2px;
  background: currentColor;
  transform: translate(-50%,-50%);
}
.icon-button::before { width: 13px; height: 2px; }
.icon-button::after { width: 2px; height: 13px; }
.icon-button:hover,.icon-button:focus-visible { border-color: var(--green); background: #f8fbf9; box-shadow: 0 5px 14px rgba(31,67,55,.16); transform: translateY(-1px); }
.icon-button span,.floating-add span { display: none; }
.floating-add { position: fixed; cursor: pointer; transition: transform .16s ease, box-shadow .16s ease; }
.floating-add::before { width: 20px; height: 2px; }
.floating-add::after { width: 2px; height: 20px; }
.floating-add:hover,.floating-add:focus-visible { transform: translateY(-2px); box-shadow: 0 16px 34px rgba(29,65,53,.38); }
.room-shifts .shift-menu-trigger { min-width: 20px; padding: 1px 3px; border-radius: 4px; color: #496b5e; font-size: 10px; letter-spacing: 1px; cursor: pointer; }
.room-shifts .shift-menu-trigger:hover,.room-shifts .shift-menu-trigger:focus-visible { background: rgba(255,255,255,.72); color: var(--green); }
.calendar-context-menu {
  position: fixed;
  z-index: 40;
  width: min(310px, calc(100vw - 24px));
  padding: 8px;
  border: 1px solid #c7d1cc;
  border-radius: 15px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 18px 48px rgba(20,42,34,.24);
  backdrop-filter: blur(12px);
}
.calendar-context-menu[hidden],.calendar-context-menu [hidden] { display: none !important; }
.calendar-context-caption { padding: 8px 10px 10px; border-bottom: 1px solid var(--line); }
.calendar-context-caption strong,.calendar-context-caption span { display: block; }
.calendar-context-caption strong { color: var(--green); font: 650 15px Georgia,serif; }
.calendar-context-caption span { margin-top: 2px; color: var(--muted); font-size: 11px; text-transform: capitalize; }
.calendar-context-menu > button,.calendar-context-menu form button {
  display: grid;
  width: 100%;
  grid-template-columns: 34px 1fr;
  gap: 10px;
  align-items: center;
  padding: 10px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
}
.calendar-context-menu > button:hover,.calendar-context-menu > button:focus-visible,.calendar-context-menu form button:hover,.calendar-context-menu form button:focus-visible { background: #edf4f0; outline: none; }
.calendar-context-menu button > span { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 9px; background: #e4eee9; color: var(--green); font-size: 17px; font-weight: 800; }
.calendar-context-menu button strong,.calendar-context-menu button small { display: block; }
.calendar-context-menu button strong { font-size: 13px; }
.calendar-context-menu button small { margin-top: 2px; color: var(--muted); font-size: 10px; }
.calendar-context-menu form { margin: 0; }
.calendar-context-menu form button { color: #853f38; }
.calendar-context-menu form button > span { background: #f6e9e7; color: #9a463e; }
.button.danger { border-color: #b65c56; color: #8d3732; background: #fff7f6; }
.button.danger:hover { background: #f8e7e5; }
.monthly-approval-card { display: flex; margin: 0 0 22px; gap: 20px; align-items: center; justify-content: space-between; border-color: #cddcd4; background: #f6faf7; }
.monthly-approval-card h2 { margin: 3px 0; }.monthly-approval-card p { max-width: 760px; margin: 0; color: var(--muted); }

@media (max-width: 1180px) {
  .calendar-toolbar { align-items: stretch; flex-wrap: wrap; }
  .calendar-toolbar-actions { margin-left: 0; }
  .calendar-toolbar .calendar-legend { margin-left: auto; align-self: center; }
}
@media (max-width: 760px) {
  .calendar-period-nav { width: 100%; min-width: 0; }
  .calendar-period-copy { min-width: 0; flex: 1; }
  .calendar-date-title { font-size: 19px; }
  .calendar-toolbar-actions { width: 100%; flex-wrap: wrap; }
  .calendar-toolbar-actions form { flex: 1 1 250px; }
  .calendar-toolbar-actions label { flex: 1; }
  .integration-metrics { grid-template-columns: 1fr; gap: 14px; }
  .availability-items article { grid-template-columns: 1fr; }
  .availability-review-actions { width: 100%; }.availability-review-actions .button { flex: 1; }
  .therapist-account-link,.monthly-approval-card { align-items: stretch; flex-direction: column; }
  .notification-popover { position: fixed; top: 68px; right: 12px; left: 12px; width: auto; }
}

/* Therapist-owned public profile editor and faithful card preview. */
.profile-publication-status {
  display: grid;
  margin: 0 0 22px;
  padding: 16px 18px;
  grid-template-columns: 42px minmax(0,1fr) auto;
  gap: 14px;
  align-items: center;
  border: 1px solid #dfcfb3;
  border-radius: 14px;
  background: #fbf7ef;
}
.profile-publication-status.is-ready { border-color: #bdd4c8; background: #f0f7f3; }
.profile-status-icon { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 12px; background: #f0e5d2; color: #805c29; font-size: 19px; font-weight: 900; }
.profile-publication-status.is-ready .profile-status-icon { background: #dcece3; color: #2f6652; }
.profile-publication-status strong { color: var(--green); }
.profile-publication-status p { margin: 3px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.public-profile-layout { display: grid; grid-template-columns: minmax(0,1fr) 370px; gap: 24px; align-items: start; }
.profile-editor-panel { min-width: 0; }
.public-profile-form { display: grid; gap: 18px; }
.profile-form-section { min-width: 0; margin: 0; padding: 19px; border: 1px solid #e1e2dc; border-radius: 13px; background: #fcfcf9; }
.profile-form-section > legend { padding: 0 8px; color: var(--green); font: 600 17px Georgia,serif; }
.profile-form-section > label,.profile-form-section .form-grid label { display: flex; flex-direction: column; gap: 7px; color: #4d5a56; font-size: 12px; font-weight: 750; }
.profile-photo-field { display: grid; grid-template-columns: 132px minmax(0,1fr); gap: 19px; align-items: center; }
.profile-photo-preview { display: grid; width: 132px; aspect-ratio: 4/5; place-items: center; border: 1px solid #cfdbd5; border-radius: 14px; background: linear-gradient(145deg,#e7f0eb,#f5f0e7); color: var(--green); font: 600 42px Georgia,serif; overflow: hidden; }
.profile-photo-preview img,.public-specialist-photo img { width: 100%; height: 100%; object-fit: cover; }
.profile-upload-control { position: relative; display: inline-flex; width: fit-content; min-height: 38px; padding: 9px 14px; align-items: center; border: 1px solid #aabbb3; border-radius: 9px; background: #fff; color: var(--green); font-size: 12px; font-weight: 800; cursor: pointer; }
.profile-upload-control:hover { border-color: var(--green); background: #f4f8f5; }
.profile-upload-control input { position: absolute; width: 1px; height: 1px; padding: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; }
.profile-photo-field .form-note { max-width: 580px; margin: 9px 0 0; }
.profile-remove-photo { margin-top: 12px; }
.profile-role-field { margin-top: 17px; }
.field-label { display: block; margin-bottom: 9px; color: #4d5a56; font-size: 12px; font-weight: 750; }
.profile-role-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.profile-role-check { position: relative; min-width: 0; }
.profile-role-check input { position: absolute; width: 1px; height: 1px; padding: 0; opacity: 0; }
.profile-role-check span { display: flex; min-height: 42px; padding: 9px 11px; align-items: center; border: 1px solid #d7dcd7; border-radius: 10px; background: #fff; color: #596561; font-size: 11px; font-weight: 700; line-height: 1.25; cursor: pointer; transition: border-color .15s ease,background .15s ease,color .15s ease; }
.profile-role-check input:checked + span { border-color: #7fa393; background: #e9f2ed; color: #285346; box-shadow: inset 0 0 0 1px rgba(41,77,67,.08); }
.profile-role-check input:focus-visible + span { outline: 3px solid rgba(74,122,106,.2); outline-offset: 1px; }
.profile-role-field .form-note { margin: 9px 0 0; }
.profile-writing-guide { display: flex; margin-top: 12px; padding: 11px 13px; gap: 8px; flex-wrap: wrap; align-items: center; border-radius: 10px; background: #edf3ef; color: #4d625a; font-size: 10px; }
.profile-writing-guide strong { margin-right: 3px; color: var(--green); }
.profile-writing-guide span { padding: 4px 7px; border-radius: 999px; background: #fff; }
.profile-save-bar { display: flex; padding: 15px 17px; gap: 18px; align-items: center; justify-content: space-between; border: 1px solid #c9d9d1; border-radius: 12px; background: #f2f7f4; }
.profile-save-bar p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.45; }
.profile-save-bar .button { flex: 0 0 auto; }
.profile-live-preview { position: sticky; top: 92px; }
.profile-preview-label { display: flex; margin-bottom: 9px; align-items: center; justify-content: space-between; color: var(--muted); font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.profile-preview-label small { color: #99a19e; font-weight: 650; }
.public-specialist-card { border: 1px solid #d4dcd7; border-radius: 18px; background: #fff; box-shadow: 0 18px 50px rgba(29,58,49,.12); overflow: hidden; }
.public-specialist-photo { display: grid; width: 100%; aspect-ratio: 4/5; place-items: center; background: linear-gradient(145deg,#dfece5,#f3ede4); color: var(--green); font: 600 76px Georgia,serif; overflow: hidden; }
.public-specialist-copy { padding: 22px; }
.public-specialist-copy h2 { margin: 3px 0 4px; color: #1e3d34; font: 600 25px/1.1 Georgia,serif; }
.public-specialist-title { margin: 0; color: var(--green-2); font-size: 11px; font-weight: 800; line-height: 1.45; }
.public-specialist-roles { display: flex; margin-top: 13px; gap: 6px; flex-wrap: wrap; }
.public-specialist-roles span { padding: 5px 8px; border-radius: 999px; background: #e8f0ec; color: #356052; font-size: 8px; font-weight: 800; }
.public-specialist-roles small { color: #8b9490; }
.public-specialist-headline { margin: 15px 0 0; color: #354740; font: 600 15px/1.4 Georgia,serif; }
.public-specialist-description { display: -webkit-box; margin: 9px 0 0; color: var(--muted); font-size: 10px; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden; }
.profile-preview-button { margin-top: 18px; pointer-events: none; }
.profile-preview-note { margin: 11px 4px 0; color: #7d8884; font-size: 9px; line-height: 1.5; text-align: center; }

@media (max-width: 1160px) {
  .public-profile-layout { grid-template-columns: 1fr; }
  .profile-live-preview { position: static; width: min(430px,100%); margin-inline: auto; }
}
@media (max-width: 760px) {
  .profile-publication-status { grid-template-columns: 42px minmax(0,1fr); }
  .profile-publication-status .button { grid-column: 1/-1; }
  .profile-role-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .profile-save-bar { align-items: stretch; flex-direction: column; }
}
@media (max-width: 520px) {
  .profile-photo-field { grid-template-columns: 1fr; }
  .profile-photo-preview { width: 120px; }
  .profile-role-grid { grid-template-columns: 1fr; }
}
