:root { font-family: Tahoma, Arial, sans-serif; color: #171717; background: #f6f7f9; }
* { box-sizing: border-box; }
body { margin: 0; }
a { color: inherit; text-decoration: none; }
.topbar { min-height: 64px; display:flex; align-items:center; justify-content:space-between; padding:0 5vw; background:#fff; border-bottom:1px solid #e8e8e8; }
.topbar nav { display:flex; align-items:center; gap:18px; }
.brand { font-size:24px; font-weight:800; letter-spacing:-.5px; }
.container { width:min(1100px, 92vw); margin:0 auto; }
.hero { padding:96px 0; max-width:760px; }
.eyebrow { font-size:13px; background:#fff; border:1px solid #ddd; border-radius:999px; padding:7px 12px; }
h1 { line-height:1.5; font-size:clamp(30px,5vw,52px); margin:22px 0 12px; }
p { line-height:2; color:#555; }
.actions { margin-top:28px; display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.button { border:0; border-radius:12px; background:#111; color:#fff; padding:12px 20px; cursor:pointer; font:inherit; display:inline-block; }
.button.secondary { background:#fff; color:#111; border:1px solid #ddd; }
.button.small { padding:8px 13px; }
.button.full { width:100%; margin-top:18px; }
.link-button { border:0; background:transparent; font:inherit; cursor:pointer; }
.auth-card { width:min(460px,100%); margin:60px auto; padding:28px; background:#fff; border:1px solid #e5e5e5; border-radius:18px; box-shadow:0 10px 35px rgba(0,0,0,.04); }
.auth-card h1 { font-size:27px; margin:0 0 24px; }
.auth-card label { display:block; margin:14px 0 7px; font-size:14px; }
.auth-card input:not([type=checkbox]) { width:100%; padding:12px 13px; border:1px solid #d9d9d9; border-radius:10px; font:inherit; background:#fff; }
.auth-card span.field-validation-error, .validation { color:#b42318; font-size:13px; }
.check { display:flex!important; gap:8px; align-items:center; }
.success { color:#067647; }

.panel { margin:44px 0; padding:28px; background:#fff; border:1px solid #e5e5e5; border-radius:18px; }
.panel.narrow { max-width:800px; margin:44px auto; }
.page-heading h1,.page-title-row h1,.dashboard-head h1 { font-size:30px; margin:12px 0 4px; }
.page-title-row,.dashboard-head { display:flex; justify-content:space-between; align-items:center; gap:20px; margin:42px 0 22px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.full-row { grid-column:1/-1; }
.field label { display:block; margin-bottom:7px; font-size:14px; }
.field input,.field select,.field textarea { width:100%; border:1px solid #d8d8d8; border-radius:10px; padding:11px 12px; font:inherit; background:#fff; }
.slug-input { display:flex; direction:ltr; align-items:center; border:1px solid #d8d8d8; border-radius:10px; overflow:hidden; background:#f8f8f8; }
.slug-input span { padding:0 10px; color:#777; font-size:13px; }
.slug-input input { border:0; border-left:1px solid #e0e0e0; border-radius:0; }
.business-list { display:grid; gap:12px; }
.business-card { display:flex; align-items:center; justify-content:space-between; border:1px solid #eee; border-radius:14px; padding:17px; gap:15px; }
.business-card strong,.business-card small { display:block; }
.business-card small { margin-top:6px; color:#777; direction:ltr; text-align:right; }
.badge { background:#ecfdf3; color:#067647; padding:6px 10px; border-radius:999px; font-size:12px; }
.stat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; }
.stat { background:#fff; border:1px solid #e5e5e5; border-radius:16px; padding:20px; }
.stat span,.stat strong { display:block; }
.stat span { color:#666; font-size:13px; }
.stat strong { font-size:27px; margin-top:10px; }
.stat small { font-size:12px; }
.coming { margin-top:18px; }
.empty { text-align:center; padding:40px; }
@media(max-width:700px){.form-grid,.stat-grid{grid-template-columns:1fr}.full-row{grid-column:auto}.page-title-row,.dashboard-head{align-items:flex-start;flex-direction:column}.business-card{align-items:flex-start;flex-direction:column}}

/* Settings */
.settings-nav { display:flex; gap:8px; flex-wrap:wrap; margin:0 0 18px; padding:10px; background:#fff; border:1px solid #e5e5e5; border-radius:14px; }
.settings-nav a { padding:9px 12px; border-radius:9px; font-size:13px; color:#444; }
.settings-nav a:hover { background:#f1f3f5; color:#111; }
.settings-summary-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:40px; }
.settings-card { background:#fff; border:1px solid #e5e5e5; border-radius:16px; padding:20px; display:flex; gap:14px; align-items:flex-start; transition:.15s ease; }
.settings-card:hover { transform:translateY(-2px); box-shadow:0 8px 28px rgba(0,0,0,.05); border-color:#cfcfcf; }
.settings-card strong,.settings-card small { display:block; }
.settings-card small { color:#777; margin-top:7px; line-height:1.8; }
.settings-icon { width:34px; height:34px; border-radius:10px; display:grid; place-items:center; background:#f2f4f7; font-weight:800; }
.settings-panel { margin-top:18px; }
.settings-panel h2 { margin:0 0 8px; font-size:20px; }
.section-head { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; margin-bottom:18px; }
.section-head p { margin:0; }
.alert { border-radius:12px; padding:12px 15px; margin:14px 0; font-size:14px; }
.success-box { background:#ecfdf3; color:#067647; border:1px solid #abefc6; }
.error-box { background:#fef3f2; color:#b42318; border:1px solid #fecdca; }
.hint { display:block; color:#777; font-size:12px; margin-top:6px; }
.profile-logo-row { display:flex; gap:18px; align-items:center; }
.logo-preview { width:88px; height:88px; min-width:88px; border:1px dashed #ccc; border-radius:18px; display:grid; place-items:center; overflow:hidden; color:#aaa; background:#fafafa; }
.logo-preview img { width:100%; height:100%; object-fit:cover; }
.grow { flex:1; }
.input-prefix { display:flex; direction:ltr; border:1px solid #d8d8d8; border-radius:10px; overflow:hidden; background:#fafafa; }
.input-prefix span { padding:11px 10px; color:#777; }
.input-prefix input { border:0!important; border-left:1px solid #e3e3e3!important; border-radius:0!important; }
.switch-row { display:flex; gap:11px; align-items:flex-start; border:1px solid #e8e8e8; border-radius:12px; padding:13px; background:#fafafa; }
.switch-row input { margin-top:4px; width:17px; height:17px; }
.switch-row strong,.switch-row small { display:block; }
.switch-row small { color:#777; margin-top:5px; line-height:1.7; }
.switch-row.prominent { margin-bottom:22px; background:#f7f8fa; }
.inline-form { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.inline-form input { min-height:42px; border:1px solid #ddd; border-radius:10px; padding:9px 11px; font:inherit; }
.gallery-upload input[type=text] { flex:1; min-width:220px; }
.gallery-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-top:18px; }
.gallery-card { border:1px solid #e5e5e5; border-radius:12px; overflow:hidden; background:#fff; }
.gallery-card img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.gallery-card > div { padding:10px; display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:12px; }
.danger-link { border:0; background:transparent; color:#b42318; cursor:pointer; font:inherit; font-size:12px; }
.week-table { display:grid; gap:9px; margin:18px 0 22px; }
.week-row { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:12px; align-items:center; padding:12px; border:1px solid #e8e8e8; border-radius:12px; }
.day-name { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.mini-switch { display:flex; gap:6px; font-size:12px; color:#666; align-items:center; }
.time-field label { display:block; color:#777; font-size:11px; margin-bottom:4px; }
.time-field input { width:100%; border:1px solid #d8d8d8; border-radius:9px; padding:9px; font:inherit; }
.two-column-settings { display:grid; grid-template-columns:1fr 1fr; gap:18px; align-items:start; }
.two-column-settings.wide-left { grid-template-columns:1.6fr .9fr; }
.two-column-settings .panel { margin-top:18px; }
.stack-form { display:grid; gap:13px; }
.simple-list { display:grid; gap:9px; }
.simple-list-row { display:flex; align-items:center; justify-content:space-between; gap:12px; border:1px solid #e8e8e8; border-radius:12px; padding:13px; }
.simple-list-row strong,.simple-list-row small { display:block; }
.simple-list-row small { color:#777; margin-top:5px; line-height:1.7; }
.row-actions { display:flex; gap:12px; align-items:center; }
.text-link { color:#175cd3; font-size:13px; }
.sticky-card { position:sticky; top:18px; }
.empty.compact { padding:22px 10px; color:#777; }
.ltr-inline { direction:ltr; display:inline-block; margin:0; }
.dashboard-actions { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:18px 0 40px; }
.action-card { background:#fff; border:1px solid #e5e5e5; border-radius:16px; padding:20px; }
.action-card strong,.action-card span { display:block; }
.action-card span { color:#777; font-size:13px; line-height:1.8; margin-top:7px; }
.action-card.muted { opacity:.6; cursor:not-allowed; }
@media(max-width:900px){.settings-summary-grid,.gallery-grid,.dashboard-actions{grid-template-columns:repeat(2,1fr)}.two-column-settings,.two-column-settings.wide-left{grid-template-columns:1fr}.sticky-card{position:static}}
@media(max-width:700px){.settings-summary-grid,.gallery-grid,.dashboard-actions{grid-template-columns:1fr}.week-row{grid-template-columns:1fr 1fr}.day-name{grid-column:1/-1}.profile-logo-row{align-items:flex-start;flex-direction:column}}

/* Appointment Engine */
.compact-actions { margin-top:0; }
.date-navigator { margin:18px 0; display:flex; align-items:center; justify-content:center; gap:18px; }
.date-navigator > div { min-width:180px; text-align:center; background:#fff; border:1px solid #e5e5e5; border-radius:14px; padding:10px 18px; }
.date-navigator small,.date-navigator strong { display:block; }
.date-navigator small { color:#777; font-size:11px; margin-bottom:4px; }
.date-navigator strong { font-size:18px; }
.date-arrow { width:42px; height:42px; border-radius:50%; background:#fff; border:1px solid #ddd; display:grid; place-items:center; font-size:26px; line-height:1; }
.daily-appointments { margin-top:18px; }
.appointment-list { display:grid; gap:10px; }
.appointment-row { display:grid; grid-template-columns:72px minmax(220px,1fr) 120px minmax(180px,auto); gap:14px; align-items:center; border:1px solid #e8e8e8; border-radius:14px; padding:13px; }
.appointment-time { font-size:21px; font-weight:800; direction:ltr; text-align:center; }
.appointment-main strong,.appointment-main > span { display:block; }
.appointment-main > span { margin-top:5px; color:#666; font-size:12px; }
.mini-badges { display:flex; gap:6px; margin-top:8px; flex-wrap:wrap; }
.mini-badge { border-radius:999px; padding:3px 8px; background:#f2f4f7; color:#555; font-size:10px; }
.mini-badge.danger { background:#fef3f2; color:#b42318; }
.status-badge { display:inline-block; border-radius:999px; padding:6px 10px; font-size:11px; white-space:nowrap; }
.status-neutral { background:#f2f4f7; color:#475467; }
.status-warning { background:#fffaeb; color:#b54708; }
.status-info { background:#eff8ff; color:#175cd3; }
.status-success { background:#ecfdf3; color:#067647; }
.status-danger { background:#fef3f2; color:#b42318; }
.appointment-actions { display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
.appointment-actions form { margin:0; }
.mini-button { border:1px solid #ddd; background:#fff; border-radius:8px; padding:7px 9px; cursor:pointer; font:inherit; font-size:11px; }
.mini-button.primary { background:#111; border-color:#111; color:#fff; }
.mini-button.danger { color:#b42318; border-color:#fecdca; }
.appointment-form-panel { max-width:900px; margin-left:auto; margin-right:auto; }
.slot-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; margin-top:8px; }
.slot-option { position:relative; border:1px solid #dfe3e8; border-radius:11px; padding:11px 8px; text-align:center; cursor:pointer; background:#fff; transition:.15s ease; }
.slot-option:hover { border-color:#999; }
.slot-option input { position:absolute; opacity:0; pointer-events:none; }
.slot-option strong,.slot-option small { display:block; }
.slot-option strong { direction:ltr; font-size:16px; }
.slot-option small { color:#777; font-size:10px; margin-top:5px; }
.slot-option:has(input:checked) { border-color:#111; box-shadow:0 0 0 2px #111 inset; background:#f8f8f8; }
.slot-full { border-color:#fecdca; background:#fff8f7; }
.slot-full small { color:#b42318; }
.slot-option.disabled { opacity:.55; cursor:not-allowed; }
.override-check { display:flex; gap:8px; align-items:center; margin-top:10px; font-weight:700; }

/* Public business */
.public-business-hero { margin:48px 0 22px; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:30px; border:1px solid #e5e5e5; border-radius:20px; background:#fff; }
.public-business-header { display:flex; gap:18px; align-items:center; }
.public-business-header h1 { margin:10px 0 6px; font-size:34px; }
.public-business-header p { margin:0; }
.public-logo { width:96px; height:96px; min-width:96px; border-radius:24px; overflow:hidden; background:#111; color:#fff; display:grid; place-items:center; font-size:32px; font-weight:800; }
.public-logo img { width:100%; height:100%; object-fit:cover; }
.public-book-button { white-space:nowrap; }
.public-info-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.public-info-card { margin:0; }
.public-info-card h2,.public-info-card p { margin-top:0; }
.working-hour-line { padding:8px 0; border-bottom:1px solid #f0f0f0; font-size:13px; }
.public-gallery { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-top:14px; }
.public-gallery img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:12px; }
.booking-success { max-width:620px; margin:70px auto; text-align:center; }
.success-mark { width:56px; height:56px; margin:0 auto 14px; display:grid; place-items:center; border-radius:50%; background:#ecfdf3; color:#067647; font-size:28px; font-weight:800; }
.booking-success h2 { margin-bottom:6px; }

@media(max-width:900px){
  .appointment-row{grid-template-columns:64px 1fr 110px}.appointment-actions{grid-column:2/-1;justify-content:flex-start}
  .slot-grid{grid-template-columns:repeat(3,1fr)}
  .public-business-hero{align-items:flex-start;flex-direction:column}.public-info-grid{grid-template-columns:1fr}.public-gallery{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:600px){
  .appointment-row{grid-template-columns:58px 1fr}.appointment-row>div:nth-child(3){grid-column:2}.appointment-actions{grid-column:1/-1}
  .slot-grid{grid-template-columns:repeat(2,1fr)}
  .public-business-header{align-items:flex-start}.public-logo{width:72px;height:72px;min-width:72px;border-radius:18px}.public-business-header h1{font-size:26px}.public-gallery{grid-template-columns:1fr 1fr}
}


/* Visit & service management */
.visit-head { margin:34px 0 18px; display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.visit-head h1 { margin:12px 0 4px; font-size:34px; }
.visit-head p { margin:0; }
.visit-grid { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr); gap:18px; align-items:start; margin-bottom:42px; }
.visit-status-panel { margin:18px 0; }
.visit-status-actions { justify-content:flex-start; }
.visit-service-list { display:grid; gap:10px; margin-bottom:18px; }
.visit-service-row { display:grid; grid-template-columns:minmax(160px,1fr) minmax(300px,1.5fr) auto; align-items:end; gap:10px; padding:12px; border:1px solid #e8e8e8; border-radius:12px; }
.visit-service-name strong,.visit-service-name small { display:block; }
.visit-service-name small { color:#777; margin-top:5px; }
.visit-service-edit { display:grid; grid-template-columns:90px minmax(150px,1fr) auto; gap:8px; align-items:end; }
.visit-service-edit label { font-size:11px; color:#666; }
.visit-service-edit input { width:100%; margin-top:4px; border:1px solid #ddd; border-radius:8px; padding:8px; font:inherit; }
.add-service-form { display:grid; grid-template-columns:minmax(180px,1.4fr) minmax(160px,1fr) 100px auto; gap:10px; align-items:end; border-top:1px solid #eee; padding-top:18px; }
.add-service-form .field { margin:0; }
.add-service-form select,.add-service-form input { width:100%; border:1px solid #d8d8d8; border-radius:10px; padding:10px; font:inherit; background:#fff; }
.financial-summary,.visit-note-panel { margin:0 0 18px; }
.money-line { display:flex; justify-content:space-between; gap:12px; padding:11px 0; border-bottom:1px solid #eee; }
.money-line.total { border-bottom:0; padding-top:15px; font-size:17px; }
.money-debt { color:#b42318; }
.money-credit { color:#175cd3; }
.money-paid { color:#067647; }
.visit-note-panel textarea { width:100%; resize:vertical; border:1px solid #ddd; border-radius:10px; padding:10px; font:inherit; }
@media(max-width:900px){.visit-grid{grid-template-columns:1fr}.visit-service-row{grid-template-columns:1fr}.add-service-form{grid-template-columns:1fr 1fr}.visit-service-edit{grid-template-columns:90px 1fr auto}}
@media(max-width:600px){.visit-head{flex-direction:column}.add-service-form,.visit-service-edit{grid-template-columns:1fr}.visit-service-row{align-items:stretch}}

/* Financial management */
.row-status-stack { display:flex; flex-direction:column; align-items:flex-start; gap:6px; }
.financial-badge { display:inline-block; border-radius:999px; padding:5px 9px; font-size:10px; font-weight:700; white-space:nowrap; }
.financial-debt { background:#fef3f2; color:#b42318; }
.financial-paid { background:#ecfdf3; color:#067647; }
.financial-credit { background:#eff8ff; color:#175cd3; }
.customer-balance-box { margin:16px 0; border-radius:12px; padding:13px; display:grid; gap:4px; }
.customer-balance-box span,.customer-balance-box small { font-size:11px; }
.customer-balance-box strong { font-size:17px; }
.customer-balance-box.debt { background:#fef3f2; color:#b42318; }
.customer-balance-box.paid { background:#ecfdf3; color:#067647; }
.customer-balance-box.credit { background:#eff8ff; color:#175cd3; }
.payment-open-button { margin-top:12px; }
.payment-history-panel { margin-top:18px; }
.payment-history-list { display:grid; gap:9px; }
.payment-history-row { display:flex; justify-content:space-between; align-items:center; gap:14px; border:1px solid #e8e8e8; border-radius:12px; padding:12px; }
.payment-history-row strong,.payment-history-row small { display:block; }
.payment-history-row small { color:#777; margin-top:4px; }
.payment-row-actions { display:flex; align-items:center; gap:8px; }
.payment-row-actions form { margin:0; }
.payment-status { display:inline-block; border-radius:999px; padding:5px 9px; font-size:10px; font-weight:700; }
.payment-status.success { background:#ecfdf3; color:#067647; }
.payment-status.cancelled { background:#f2f4f7; color:#667085; }
.payment-status.failed { background:#fef3f2; color:#b42318; }
.payment-status.pending { background:#fffaeb; color:#b54708; }
.payment-dialog { width:min(520px,calc(100% - 28px)); border:0; border-radius:18px; padding:0; box-shadow:0 24px 70px rgba(0,0,0,.22); }
.payment-dialog::backdrop { background:rgba(0,0,0,.42); }
.payment-form { padding:22px; display:grid; gap:16px; }
.dialog-head { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; }
.dialog-head h2 { margin:7px 0 0; }
.dialog-close { width:36px; height:36px; border:1px solid #ddd; border-radius:50%; background:#fff; cursor:pointer; font-size:22px; }
.payment-form input[type=number],.payment-form textarea { width:100%; border:1px solid #d8d8d8; border-radius:10px; padding:10px; font:inherit; }
.payment-method-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:7px; }
.payment-method-grid label { border:1px solid #ddd; border-radius:10px; padding:10px; cursor:pointer; display:flex; gap:7px; align-items:center; }
.dialog-actions { display:flex; justify-content:flex-end; gap:8px; }
@media(max-width:600px){.payment-history-row{align-items:flex-start;flex-direction:column}.payment-method-grid{grid-template-columns:1fr}.payment-row-actions{width:100%;justify-content:space-between}}

/* Customers & payment date - v0.6 */
.payment-date-grid { display:grid; grid-template-columns:1fr 150px; gap:10px; }
.payment-form input[type=text],.payment-form input[type=time] { width:100%; border:1px solid #d8d8d8; border-radius:10px; padding:10px; font:inherit; background:#fff; }
.customer-name-link { color:inherit; text-decoration:none; }
.customer-name-link:hover { text-decoration:underline; }
.customer-search-panel { margin:18px 0; }
.customer-search-form { display:flex; align-items:end; gap:10px; }
.customer-search-form .field { margin:0; }
.customer-search-form .grow { flex:1; }
.customer-search-form input { width:100%; border:1px solid #d8d8d8; border-radius:10px; padding:11px; font:inherit; }
.customer-list { display:grid; gap:9px; }
.customer-row { color:inherit; text-decoration:none; display:grid; grid-template-columns:48px minmax(190px,1fr) 100px 170px 90px 110px; align-items:center; gap:12px; border:1px solid #e9e9e9; border-radius:14px; padding:12px; transition:.15s ease; }
.customer-row:hover { border-color:#bbb; box-shadow:0 5px 18px rgba(0,0,0,.04); }
.customer-avatar { width:44px; height:44px; display:grid; place-items:center; border-radius:50%; background:#111; color:#fff; font-weight:800; }
.customer-main strong,.customer-main>span { display:block; }
.customer-main>span { color:#667085; font-size:12px; margin-top:4px; }
.customer-stat small,.customer-stat strong { display:block; }
.customer-stat small { color:#888; font-size:10px; margin-bottom:4px; }
.customer-stat strong { font-size:12px; }
.customer-open { font-size:11px; color:#555; white-space:nowrap; }
.pagination { display:flex; align-items:center; justify-content:center; gap:12px; margin-top:18px; }
.customer-profile-head { margin:34px 0 18px; display:flex; justify-content:space-between; align-items:flex-start; gap:18px; }
.customer-profile-head h1 { margin:9px 0 4px; font-size:34px; }
.customer-profile-head p { margin:0; }
.back-link { display:block; color:#667085; text-decoration:none; font-size:12px; margin-bottom:12px; }
.customer-stats { grid-template-columns:repeat(4,1fr); }
.customer-balance-hero { display:flex; align-items:center; justify-content:space-between; gap:15px; border-radius:14px; padding:16px 18px; margin:14px 0 18px; }
.customer-balance-hero span { font-size:12px; }
.customer-balance-hero strong { font-size:20px; }
.customer-balance-hero.debt { background:#fef3f2; color:#b42318; }
.customer-balance-hero.paid { background:#ecfdf3; color:#067647; }
.customer-balance-hero.credit { background:#eff8ff; color:#175cd3; }
.customer-profile-grid { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(260px,.65fr); gap:18px; align-items:start; margin-bottom:42px; }
.customer-profile-main { display:grid; gap:18px; }
.customer-edit-form { display:grid; grid-template-columns:1fr 1fr 1fr auto; gap:10px; align-items:end; }
.customer-edit-form .field { margin:0; }
.customer-edit-form input { width:100%; border:1px solid #d8d8d8; border-radius:10px; padding:10px; font:inherit; }
.customer-basic-info { display:flex; gap:28px; flex-wrap:wrap; }
.dynamic-info-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:16px; padding-top:16px; border-top:1px solid #eee; }
.dynamic-info-grid>div { background:#fafafa; border-radius:10px; padding:10px; }
.dynamic-info-grid small,.dynamic-info-grid strong { display:block; }
.dynamic-info-grid small { color:#777; margin-bottom:4px; }
.customer-history-list { display:grid; gap:10px; }
.history-card { border:1px solid #e8e8e8; border-radius:13px; padding:13px; }
.history-card-head { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; }
.history-card-head>div:last-child { text-align:left; display:grid; gap:7px; justify-items:end; }
.history-card strong,.history-card small { display:block; }
.history-card small { color:#777; margin-top:4px; }
.service-chip-list { display:flex; gap:6px; flex-wrap:wrap; margin:11px 0; }
.service-chip-list span { background:#f2f4f7; border-radius:999px; padding:5px 9px; font-size:10px; }
.history-table { display:grid; }
.history-table-row { display:grid; grid-template-columns:minmax(180px,1fr) 90px 110px 80px; gap:10px; align-items:center; padding:11px 0; border-bottom:1px solid #eee; }
.history-table-row:last-child { border-bottom:0; }
.history-table-row strong,.history-table-row small { display:block; }
.history-table-row small { color:#777; margin-top:4px; }
.customer-profile-side .sticky-panel { position:sticky; top:18px; }
.customer-note-form textarea { width:100%; resize:vertical; border:1px solid #ddd; border-radius:10px; padding:10px; font:inherit; margin:8px 0; }
.customer-notes-list { display:grid; gap:8px; margin-top:14px; }
.customer-note-item { border:1px solid #e8e8e8; border-radius:11px; padding:11px; }
.customer-note-item p { margin:0 0 8px; white-space:pre-wrap; }
.customer-note-item>div { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.customer-note-item form { margin:0; }
.link-danger { border:0; background:transparent; color:#b42318; cursor:pointer; font:inherit; font-size:11px; padding:0; }
@media(max-width:1000px){.customer-row{grid-template-columns:48px minmax(170px,1fr) 90px 150px 80px}.customer-open{display:none}.customer-profile-grid{grid-template-columns:1fr}.customer-profile-side .sticky-panel{position:static}.customer-edit-form{grid-template-columns:1fr 1fr}.customer-stats{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.payment-date-grid{grid-template-columns:1fr}.customer-search-form{align-items:stretch;flex-direction:column}.customer-row{grid-template-columns:44px 1fr}.customer-stat,.customer-row>div:nth-of-type(5){grid-column:2}.customer-profile-head{flex-direction:column}.customer-edit-form,.dynamic-info-grid{grid-template-columns:1fr}.history-card-head{flex-direction:column}.history-card-head>div:last-child{text-align:right;justify-items:start}.history-table-row{grid-template-columns:1fr 1fr}.history-table-row>div:first-child{grid-column:1/-1}}

/* Staff & permissions - v0.7 */
.staff-list { display:grid; gap:10px; }
.staff-row { display:grid; grid-template-columns:48px minmax(210px,1fr) 110px 90px auto; gap:14px; align-items:center; border:1px solid #e8e8e8; border-radius:14px; padding:13px; }
.staff-row.inactive { opacity:.62; background:#fafafa; }
.staff-avatar { width:44px; height:44px; border-radius:50%; display:grid; place-items:center; background:#111; color:#fff; font-weight:800; }
.staff-main strong,.staff-main span,.staff-main small { display:block; }
.staff-main span { color:#555; font-size:12px; margin-top:3px; }
.staff-main small { color:#888; font-size:11px; margin-top:4px; }
.staff-permissions { text-align:center; }
.staff-permissions strong,.staff-permissions small { display:block; }
.staff-permissions small { color:#888; font-size:10px; }
.staff-actions { display:flex; gap:7px; justify-content:flex-end; }
.staff-actions form { margin:0; }
.staff-form-grid { display:grid; gap:18px; margin-bottom:38px; }
.two-col-form { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.two-col-form .full-span { grid-column:1/-1; }
.two-col-form input { width:100%; border:1px solid #d8d8d8; border-radius:10px; padding:10px; font:inherit; }
.permission-title { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; }
.permission-title h2 { margin-bottom:4px; }
.permission-title p { margin:0; color:#777; font-size:12px; }
.permission-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:14px; }
.permission-group { border:1px solid #e8e8e8; border-radius:14px; padding:14px; }
.permission-group h3 { margin:0 0 10px; font-size:14px; }
.permission-item { display:flex; align-items:flex-start; gap:9px; padding:9px 0; border-top:1px solid #f0f0f0; cursor:pointer; }
.permission-item:first-of-type { border-top:0; }
.permission-item input { margin-top:3px; }
.permission-item strong,.permission-item small { display:block; }
.permission-item strong { font-size:12px; }
.permission-item small { color:#777; font-size:10px; margin-top:3px; line-height:1.7; }
.status-switch { grid-column:1/-1; border:1px solid #e8e8e8; border-radius:12px; padding:13px; display:flex; gap:10px; align-items:flex-start; cursor:pointer; }
.status-switch strong,.status-switch small { display:block; }
.status-switch small { color:#777; font-size:10px; margin-top:4px; }
.badge.muted { background:#f2f4f7; color:#667085; }
.alert.success { background:#ecfdf3; color:#067647; border:1px solid #abefc6; border-radius:12px; padding:11px 14px; margin:12px 0; }
@media(max-width:850px){.staff-row{grid-template-columns:44px 1fr}.staff-permissions,.staff-row>div:nth-child(4),.staff-actions{grid-column:2;text-align:right;justify-content:flex-start}.permission-groups{grid-template-columns:1fr}.two-col-form{grid-template-columns:1fr}.two-col-form .full-span{grid-column:auto}}

/* v0.8 Reports */
.report-filter-card{margin-bottom:1.25rem}.report-filter-grid{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;gap:1rem;align-items:end}.report-filter-grid label{display:grid;gap:.45rem}.report-filter-grid input{width:100%}.report-range{margin-top:.75rem}.report-section{margin-top:2rem}.report-section h2{margin:.2rem 0 0}.report-section h3{margin-top:0}.section-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.report-stats{margin-bottom:1rem}.report-stats.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-card small{display:block;margin-top:.35rem;font-weight:500}.danger-soft{background:#fff3f3!important;border-color:#fecaca!important}.success-soft{background:#f0fdf4!important;border-color:#bbf7d0!important}.info-soft{background:#eff6ff!important;border-color:#bfdbfe!important}.report-two-col{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1rem 0}.simple-list{display:grid;gap:.15rem}.simple-list-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--border,#e5e7eb)}.simple-list-row:last-child{border-bottom:0}.simple-list-row>div{display:grid;gap:.2rem}.simple-list-row small{color:#6b7280}.table-card{overflow:hidden}.table-card .table-wrap{overflow:auto}.table-card table{width:100%;border-collapse:collapse}.table-card th,.table-card td{padding:.8rem .7rem;text-align:right;border-bottom:1px solid #eef0f2;white-space:nowrap}.table-card th{font-size:.82rem;color:#6b7280;background:#fafafa}.text-danger{color:#b91c1c;font-weight:700}.text-success{color:#15803d;font-weight:700}.text-info{color:#1d4ed8;font-weight:700}.empty-state{text-align:center;color:#6b7280;padding:1.5rem!important}
@media(max-width:800px){.report-filter-grid{grid-template-columns:1fr}.report-two-col{grid-template-columns:1fr}.report-stats.three{grid-template-columns:1fr}.section-title-row{align-items:flex-start}}

/* SMS */
.sms-nav{margin-bottom:1.25rem}.sms-simulation{background:#fffaeb;color:#7a2e0e;border:1px solid #fedf89}.sms-stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:2rem}.sms-section{margin:2rem 0}.sms-template-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.sms-template-card{margin:0}.sms-template-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.sms-template-card p{font-size:.9rem;min-height:5rem}.sms-placeholder-help{margin-bottom:1rem}.sms-placeholder-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.8rem}.sms-placeholder-list code{direction:ltr;background:#f4f4f5;border:1px solid #e4e4e7;border-radius:8px;padding:.35rem .55rem}.sms-template-editor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.sms-template-editor{margin:0;display:grid;gap:1rem;align-content:start}.sms-template-editor h2{margin:0;font-size:1.2rem}.sms-template-editor textarea{width:100%;border:1px solid #d8d8d8;border-radius:10px;padding:11px 12px;font:inherit;resize:vertical}.sms-metrics{display:flex;flex-wrap:wrap;gap:.6rem;font-size:.8rem;color:#667085}.sms-metrics span{background:#f8fafc;border:1px solid #eef2f6;border-radius:8px;padding:.4rem .55rem}.sms-campaign-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.7fr);gap:1rem;align-items:start}.sms-compose,.sms-preview-card{margin:0}.sms-compose{display:grid;gap:1rem}.sms-preview-card{position:sticky;top:1rem}.small-text{font-size:.82rem}.sms-wallet-layout{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}.sms-wallet-layout .card{margin:0}.sms-wallet-balance>span,.sms-wallet-balance>strong{display:block}.sms-wallet-balance>strong{font-size:2rem;margin:.7rem 0}.sms-credit-form{display:grid;gap:1rem}.sms-body-cell{max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sms-status{display:inline-block;border-radius:999px;padding:.3rem .55rem;font-size:.75rem;font-weight:700}.status-pending{background:#fffaeb;color:#b54708}.status-success{background:#ecfdf3;color:#067647}.status-danger{background:#fef3f2;color:#b42318}.status-muted{background:#f2f4f7;color:#667085}.sms-error{display:block;color:#b42318;margin-top:.25rem}.sms-history-table td{vertical-align:middle}
@media(max-width:900px){.sms-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.sms-template-grid,.sms-template-editor-grid{grid-template-columns:1fr}.sms-campaign-layout,.sms-wallet-layout{grid-template-columns:1fr}.sms-preview-card{position:static}}
@media(max-width:600px){.sms-stats{grid-template-columns:1fr}.sms-body-cell{max-width:220px}}

/* v0.10 Discovery, favorites & notifications */
.directory-head{margin:38px 0 20px}.directory-head.compact{margin-bottom:18px}.directory-head h1{margin:8px 0 5px;font-size:34px}.directory-head p{margin:0;color:#667085}.directory-filter-panel{margin-bottom:16px}.directory-filter-form{display:grid;grid-template-columns:1.4fr 1fr 1fr auto;gap:10px;align-items:end}.directory-filter-form .field{margin:0}.directory-filter-form input,.directory-filter-form select{width:100%;border:1px solid #d8d8d8;border-radius:10px;padding:10px;font:inherit;background:#fff}.directory-result-head{display:flex;justify-content:space-between;align-items:center;margin:18px 0 12px;font-size:12px}.directory-result-head a{color:#555}.business-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:22px}.business-card{border:1px solid #e7e7e7;border-radius:17px;background:#fff;overflow:hidden;display:flex;flex-direction:column}.business-card-link{display:flex;gap:13px;padding:16px;text-decoration:none;color:inherit;flex:1}.business-card-logo{width:60px;height:60px;min-width:60px;border-radius:15px;overflow:hidden;background:#111;color:#fff;display:grid;place-items:center;font-size:22px;font-weight:800}.business-card-logo img{width:100%;height:100%;object-fit:cover}.business-card-main{min-width:0}.business-card-main h2{font-size:17px;margin:7px 0 3px}.business-card-main small{color:#667085}.business-card-main p{color:#667085;font-size:11px;line-height:1.8;margin:9px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.business-type-chip{display:inline-block;background:#f2f4f7;color:#475467;border-radius:999px;padding:4px 7px;font-size:9px}.business-card-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid #eee;padding:11px 14px}.business-card-footer form{margin:0}.booking-on,.booking-off{font-size:10px;font-weight:700}.booking-on{color:#067647}.booking-off{color:#667085}.favorite-button{border:1px solid #d8d8d8;border-radius:999px;background:#fff;color:#555;padding:7px 10px;font:inherit;font-size:10px;cursor:pointer;text-decoration:none;display:inline-block}.favorite-button.active{background:#fff8e7;border-color:#f5d67b;color:#8a6100}.favorite-button.large{padding:10px 13px;font-size:11px}.empty-directory{text-align:center;color:#667085;padding:28px}.public-hero-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.public-hero-actions form{margin:0}.notification-nav-link{display:inline-flex!important;align-items:center;gap:5px}.notification-count{min-width:18px;height:18px;border-radius:999px;background:#b42318;color:#fff;display:inline-grid;place-items:center;padding:0 5px;font-size:9px;font-weight:800}.notification-head{margin:34px 0 18px;display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.notification-head h1{font-size:34px;margin:8px 0 5px}.notification-head p{margin:0;color:#667085}.notification-head form{margin:0}.notification-list{display:grid;gap:9px;margin-bottom:40px}.notification-item{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid #e8e8e8;border-radius:14px;padding:14px;background:#fff}.notification-item.unread{background:#f8fbff;border-color:#cfe1ff}.notification-dot{width:8px;height:8px;border-radius:50%;background:#d0d5dd}.notification-item.unread .notification-dot{background:#175cd3}.notification-title-row{display:flex;justify-content:space-between;gap:16px;align-items:center}.notification-title-row time{font-size:10px;color:#98a2b3;white-space:nowrap}.notification-content p{margin:6px 0;color:#475467;font-size:12px}.notification-content small{color:#667085;font-size:10px}.home-business-search{display:grid;grid-template-columns:1.5fr .7fr auto;gap:8px;max-width:720px;margin-top:24px}.home-business-search input{border:1px solid #d8d8d8;border-radius:11px;padding:11px;font:inherit}.home-discover-link{display:inline-block;margin-top:10px;font-size:12px;color:#555}
@media(max-width:900px){.business-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.directory-filter-form{grid-template-columns:1fr 1fr}.directory-filter-form .button{grid-column:1/-1}.public-hero-actions{width:100%}}
@media(max-width:600px){.business-card-grid{grid-template-columns:1fr}.directory-filter-form,.home-business-search{grid-template-columns:1fr}.notification-head{flex-direction:column}.notification-item{grid-template-columns:8px 1fr}.notification-item>form{grid-column:2}.notification-title-row{align-items:flex-start;flex-direction:column;gap:4px}}

/* v0.11 admin */
.impersonation-bar{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:10px 16px;background:#fff4e5;border-bottom:1px solid #f5c26b;color:#7a4a00}
.impersonation-bar form{margin:0}
.action-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.action-row form{margin:0;display:flex;gap:6px;align-items:center}
.badge.success{background:#ecfdf3;color:#067647}.badge.danger{background:#fef3f2;color:#b42318}
.d-block{display:block}.code-box{max-width:520px;white-space:pre-wrap;word-break:break-word;background:#f8fafc;border:1px solid #eaecf0;border-radius:10px;padding:10px;margin-top:8px;font-size:12px;direction:ltr;text-align:left}

/* v0.12 CMS & SEO */
.cms-category-create{margin-bottom:1rem}.cms-category-create h2{margin-top:0}.cms-category-form{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end}.cms-category-form .field{margin:0}.cms-category-form input,.cms-inline-category-form input,.cms-filter-form input,.cms-filter-form select,.cms-main-editor input,.cms-main-editor textarea,.cms-publish-panel input,.cms-publish-panel select{width:100%;border:1px solid #d8d8d8;border-radius:10px;padding:10px 11px;font:inherit;background:#fff}.cms-inline-category-form{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:center}.cms-filter-form{display:grid;grid-template-columns:minmax(220px,1.4fr) 180px 220px auto;gap:10px;align-items:end}.cms-filter-form .field{margin:0}.cms-editor-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.65fr);gap:16px;align-items:start;margin-bottom:40px}.cms-main-editor,.cms-publish-panel{margin:0}.cms-main-editor textarea{resize:vertical;line-height:1.9}.cms-main-editor h2{margin:26px 0 10px}.cms-publish-panel{position:sticky;top:16px;display:grid;gap:14px}.cms-publish-panel .field{margin:0}.cms-publish-date{display:grid;grid-template-columns:1fr 120px;gap:8px}.cms-cover-preview{width:100%;max-height:220px;object-fit:cover;border-radius:12px;border:1px solid #eee}.check-line{display:flex;align-items:center;gap:7px;font-size:12px}.button.full{display:block;width:100%;text-align:center}.validation-summary{margin-bottom:14px;color:#b42318}.field span.field-validation-error,.cms-publish-panel>span.field-validation-error{display:block;color:#b42318;font-size:11px;margin-top:5px}
.articles-head{margin:42px 0 18px}.articles-head h1{font-size:38px;margin:8px 0 5px}.articles-head p{margin:0;color:#667085}.article-category-nav{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:20px}.article-category-nav a{border:1px solid #e4e7ec;border-radius:999px;padding:7px 11px;color:#475467;text-decoration:none;font-size:11px}.article-category-nav a.active{background:#111;color:#fff;border-color:#111}.article-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:42px}.article-card{background:#fff;border:1px solid #e7e7e7;border-radius:18px;overflow:hidden;display:flex;flex-direction:column}.article-cover{display:block;aspect-ratio:16/9;background:#f2f4f7;overflow:hidden}.article-cover img{width:100%;height:100%;object-fit:cover}.article-cover-placeholder{width:100%;height:100%;display:grid;place-items:center;background:linear-gradient(135deg,#111,#3a3a3a);color:#fff;font-size:28px;font-weight:800}.article-card-body{padding:16px;display:flex;flex-direction:column;flex:1}.article-category{font-size:10px;font-weight:700;color:#175cd3;text-decoration:none}.article-card h2{font-size:18px;line-height:1.7;margin:8px 0}.article-card h2 a{color:inherit;text-decoration:none}.article-card p{color:#667085;font-size:12px;line-height:1.9;margin:0 0 14px}.article-card-meta{margin-top:auto;padding-top:12px;border-top:1px solid #f0f0f0;display:flex;justify-content:space-between;gap:10px;font-size:10px;color:#98a2b3}.article-card-meta a{color:#475467;text-decoration:none}.article-details{max-width:860px;margin:44px auto 70px}.article-details-head{text-align:center;margin-bottom:24px}.article-details-head h1{font-size:42px;line-height:1.55;margin:12px 0 10px}.article-byline{display:flex;justify-content:center;gap:15px;flex-wrap:wrap;color:#667085;font-size:11px}.article-details-cover{width:100%;max-height:480px;object-fit:cover;border-radius:20px;margin:10px 0 28px}.article-content{white-space:pre-line;font-size:16px;line-height:2.25;color:#292929;background:#fff;border:1px solid #eee;border-radius:18px;padding:26px}
@media(max-width:900px){.cms-editor-layout{grid-template-columns:1fr}.cms-publish-panel{position:static}.cms-filter-form{grid-template-columns:1fr 1fr}.cms-filter-form .grow{grid-column:1/-1}.article-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.cms-category-form,.cms-inline-category-form,.cms-filter-form,.cms-publish-date{grid-template-columns:1fr}.article-grid{grid-template-columns:1fr}.article-details-head h1{font-size:30px}.article-content{padding:18px;font-size:15px}.articles-head h1{font-size:30px}}

/* v0.13 customer portal */
.portal-nav{display:flex;flex-wrap:wrap;gap:.55rem;margin:1rem 0 1.5rem}.portal-nav a{padding:.55rem .8rem;border:1px solid #e4e7ec;border-radius:10px;background:#fff;color:#344054;text-decoration:none;font-size:.88rem}.portal-nav a:hover{border-color:#98a2b3;background:#f9fafb}.portal-stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:1.5rem}.portal-section{margin:1.5rem 0}.portal-appointment-list{display:grid;gap:.75rem}.portal-appointment-card{display:flex;align-items:center;justify-content:space-between;gap:1rem}.portal-appointment-card:not(.panel){padding:1rem;border:1px solid #eaecf0;border-radius:14px;background:#fff}.portal-appointment-main{display:grid;gap:.25rem}.portal-appointment-main small,.portal-appointment-card small{color:#667085}.portal-business-link{display:block;color:#175cd3;text-decoration:none;font-weight:700;margin-bottom:.2rem}.portal-appointment-actions{display:flex;align-items:center;justify-content:flex-end;gap:.65rem;flex-wrap:wrap}.portal-cancel-hint{max-width:230px;text-align:left;color:#667085}.button.danger{background:#b42318;color:#fff;border-color:#b42318}.portal-history-row{grid-template-columns:minmax(220px,1.5fr) .5fr .6fr auto}.portal-visit-list{display:grid;gap:1rem}.portal-visit-card{margin:0}.portal-service-table{margin-top:1rem}.portal-service-table table{width:100%;border-collapse:collapse}.portal-service-table th,.portal-service-table td{padding:.7rem;border-bottom:1px solid #eef0f2;text-align:right}.portal-money-summary{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #eef0f2}.portal-money-summary span{background:#f8fafc;border:1px solid #eef2f6;border-radius:10px;padding:.65rem .8rem}.portal-payment-stats{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:1rem}.portal-profile-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:1rem;align-items:start}.portal-profile-grid .panel{margin:0}.portal-password-form{display:grid;gap:1rem}
@media(max-width:850px){.portal-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-profile-grid{grid-template-columns:1fr}.portal-appointment-card{align-items:flex-start;flex-direction:column}.portal-appointment-actions{justify-content:flex-start}.portal-history-row{grid-template-columns:1fr}}
@media(max-width:560px){.portal-stats,.portal-payment-stats{grid-template-columns:1fr}.portal-nav{display:grid;grid-template-columns:1fr 1fr}.portal-nav a{text-align:center}}

/* v0.15.1 SystemAdmin 2FA */
.two-factor-card{max-width:480px}.two-factor-card .muted{line-height:1.9}.two-factor-code{font-size:1.45rem!important;letter-spacing:.25rem;text-align:center}.two-factor-recovery-link{display:block;margin-top:14px;text-align:center;color:#475467;font-size:12px}.two-factor-setup-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start;margin-bottom:40px}.two-factor-setup-grid .panel{margin:0}.step-number{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#111;color:#fff;font-weight:800;margin-bottom:10px}.authenticator-key{border:1px dashed #98a2b3;background:#f8fafc;border-radius:12px;padding:14px;font-family:Consolas,monospace;word-break:break-all;letter-spacing:.08rem;margin:14px 0}.recovery-code-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0}.recovery-code-grid code{display:block;padding:11px;border:1px solid #d0d5dd;border-radius:9px;background:#f8fafc;text-align:center;font-size:14px}.two-factor-success{max-width:760px}.warning-text{padding:12px;border-radius:10px;background:#fffaeb;color:#b54708;line-height:1.8}
@media(max-width:700px){.two-factor-setup-grid,.recovery-code-grid{grid-template-columns:1fr}.authenticator-key{font-size:12px}.two-factor-code{font-size:1.25rem!important}}
