/* Shared with the homepage story: quiet surfaces, fine rules, stable text. */
:root {
  --surface-radius:11px;
  --control-radius:6px;
  --surface-shadow:0 16px 34px -24px rgb(36 35 33 / .24);
  --field-line:#8c8881;
}

.btn,button.primary,.link-chip,.nav-action { border-radius:var(--control-radius); font-weight:550; }
.btn-primary,button.primary { color:#fff; }
input,select,textarea { border-radius:var(--control-radius); border-color:var(--field-line); }
input[type=checkbox],input[type=radio] { accent-color:var(--ink); }
.badge,.current-chip { border-radius:4px; font-weight:500; }
.flash { border:1px solid var(--line); border-left:2px solid var(--ink); border-radius:var(--control-radius); background:var(--white); font-size:14px; }
.flash-err { border-left-color:var(--red); }
.public-shell :is(.detail-hero,.compact-hero,.form-intro) h1,.auth-intro h1,.app-shell .page-head h1 { font-size:clamp(34px,4.1vw,54px); font-weight:600; letter-spacing:-.035em; line-height:1.08; }
.public-shell :is(.editorial-section,.method-section,.pricing-section,.contact-cta) h2 { font-weight:600; font-size:clamp(28px,3vw,40px); }
.public-shell :is(.detail-hero,.compact-hero) p { font-size:18px; line-height:1.5; max-width:40ch; }
.detail-hero { gap:clamp(30px,5vw,74px); padding-block:56px; }
.service-band { border-top-width:1px; }
.service h2 { font-weight:600; }
.service-head p:first-child { font-weight:600; }
.contact-cta { border-top-width:1px; }
summary { font-weight:550; }

.form-main,.auth-form,.form-card,.surface,.panel-soft,.form-panel {
  border:1px solid var(--line);
  border-radius:var(--surface-radius);
  background:var(--white);
  padding:clamp(20px,2.4vw,30px);
  box-shadow:var(--surface-shadow);
  min-width:0;
}
.surface-title { display:flex; align-items:center; gap:12px; margin:0 0 24px; font-size:18px; font-weight:600; line-height:1.3; letter-spacing:-.015em; }
.surface-title::before { content:""; width:2px; height:19px; background:var(--red); flex-shrink:0; }
.form-main form.mt-22,.auth-form form.mt-22,.form-card form.mt-22 { margin-top:0; }
.form-layout,.auth-layout { align-items:start; gap:40px 64px; }
.auth-layout { padding-block:14px 40px; }
.form-intro h1,.auth-intro h1 { max-width:15ch; }
.form-intro p,.auth-intro p { font-size:17px; }
.form-intro .form-aside { margin-top:32px; padding-top:22px; border-top:1px solid var(--line); max-width:330px; }
.form-intro .form-aside p { margin:0; font-size:14px; }
.form-intro .form-aside a { justify-self:start; font-size:14px; }
.form-card>.flash:first-child { margin-top:0; }
.form-card .form-actions { padding-top:6px; }
.form-card .form-actions .btn,.form-card .form-actions button { flex:0 1 auto; }
.form-grid label,.form-group { font-weight:550; }
.form-hint { line-height:1.5; }
.auth-switch { font-size:13px; padding-top:20px; border-top:1px solid var(--line); }

.public-shell .editorial-section .plain-list { border:1px solid var(--line); border-radius:var(--surface-radius); padding:8px 26px 24px; box-shadow:var(--surface-shadow); }
.plain-list details:first-child,.plain-list .price-row:first-child { border-top:0; }
.plain-list details { padding-block:20px; }
.plain-list details:last-child { padding-bottom:0; }
.plain-list summary { font-size:17px; }
.plain-list details p { font-size:15px; }
.price-columns { gap:24px; padding-block:28px; }
.price-columns>div { min-width:0; border:1px solid var(--line); border-radius:var(--surface-radius); padding:28px; box-shadow:var(--surface-shadow); }
.price-columns h3 { font-size:23px; font-weight:600; }
.price-row { align-items:baseline; font-size:15px; padding-block:16px; }
.price-row strong { font-weight:550; }
.method-list { border:1px solid var(--line); border-radius:var(--surface-radius); padding:0 26px; box-shadow:var(--surface-shadow); }
.method-list li,.method-list li:first-child { padding:24px 0; gap:18px; }
.method-list li>span { font-size:15px; padding-top:5px; font-variant-numeric:tabular-nums; }
.method-list h3 { font-size:22px; font-weight:600; }

.app-main { padding-block:42px; }
.app-shell .page-head { margin-bottom:30px; }
.app-shell .page-head p { font-size:16px; margin-top:13px; }
.app-shell .section-title h2 { font-size:25px; font-weight:600; line-height:1.2; }
.app-shell .section-title .lead { font-size:15px; }
.form-section { border:0; padding-top:0; grid-template-columns:minmax(190px,.75fr) minmax(0,1.5fr); align-items:start; gap:24px 48px; }
.form-section>.section-label { display:none; }
.app-shell .line-list { border:1px solid var(--line); border-radius:var(--surface-radius); padding:0 24px; box-shadow:var(--surface-shadow); }
.app-shell .line-item { gap:18px; padding-block:20px; }
.app-shell .line-item:last-child { border-bottom:0; }
.app-shell .line-item h3 { font-size:17px; font-weight:550; letter-spacing:-.015em; }
.app-shell .line-item p { font-size:13px; }
.app-shell .line-item .index { font-size:11px; overflow-wrap:anywhere; }
.app-shell .fact strong { font-size:18px; font-weight:550; overflow-wrap:anywhere; }
.app-shell .fact p { font-size:12px; }

/* Admin panels keep every record readable; forms expand only on request. */
.admin-workspace .page-head h1 { font-size:clamp(34px,4vw,48px); }
.admin-jumps { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:28px; border:0; padding:0; }
.admin-jumps a { display:flex; align-items:center; gap:12px; padding:10px 15px; min-height:44px; border:1px solid var(--line); border-radius:var(--control-radius); text-decoration:none; font-size:13px; }
.admin-jumps a:hover { border-color:var(--ink); color:var(--ink); background:var(--soft); }
.admin-jumps span { font-size:11px; color:var(--muted); font-variant-numeric:tabular-nums; }
.admin-workspace>.section { display:block; border:1px solid var(--line); border-radius:var(--surface-radius); box-shadow:var(--surface-shadow); padding:24px; margin-top:24px; }
.admin-workspace .section-title { margin-bottom:18px; }
.admin-workspace .section-title h2 { font-size:23px; }
.admin-workspace .line-list { border:0; padding:0; box-shadow:none; }
.admin-workspace .line-item { grid-template-columns:110px minmax(0,1fr) auto; }
.admin-workspace .line-item>.badge { justify-self:end; }
.admin-workspace .line-item h3 a { text-decoration:none; }
.admin-workspace .line-item h3 a:hover { text-decoration:underline; }
.admin-workspace details summary { font-size:13px; }
.admin-workspace details { padding-block:12px; }
.admin-workspace .admin-editor { margin-top:12px; }
.admin-workspace .admin-editor .form-grid { grid-template-columns:1fr; max-width:460px; gap:16px; }
.admin-workspace .admin-editor .form-actions { margin:0; }
.admin-detail .section { border-top:0; padding-top:0; margin-top:30px; }
.admin-detail .section-label { display:none; }
.admin-detail .section-body>.lead { border:1px solid var(--line); border-radius:var(--surface-radius); padding:24px; font-size:16px; }
.admin-detail .fact-grid { border:1px solid var(--line); border-radius:var(--surface-radius); padding:24px; gap:24px; }
.case-list { padding:0 22px; border:1px solid var(--line); border-radius:var(--surface-radius); box-shadow:var(--surface-shadow); }
.case-summary-row { display:grid; grid-template-columns:24px minmax(0,1fr) auto; align-items:center; gap:13px; padding:20px 0; border-bottom:1px solid var(--line); }
.case-summary-row:last-child { border-bottom:0; }
.case-check { display:grid; place-items:center; width:24px; height:24px; border:1px solid var(--line); border-radius:5px; }
.case-summary-row.is-done .case-check { background:var(--ink); border-color:var(--ink); }
.case-summary-row.is-done .case-check::after { content:""; width:9px; height:5px; border-left:1.5px solid var(--white); border-bottom:1.5px solid var(--white); transform:translateY(-1px) rotate(-45deg); }
.case-meta { display:flex; flex-wrap:wrap; align-items:center; gap:6px 16px; justify-content:space-between; color:var(--muted); font-size:11px; margin-bottom:6px; }
.case-priority--high,.case-priority--urgent { color:var(--red); }
.case-summary-row h3 { font-size:17px; font-weight:550; line-height:1.3; letter-spacing:-.015em; overflow-wrap:anywhere; }
.case-summary-row p { margin-top:7px; font-size:13px; overflow-wrap:anywhere; }
.case-summary-row .index { font-variant-numeric:tabular-nums; }

@media(max-width:899px) {
  .form-layout,.auth-layout { gap:30px; }
  .admin-workspace .line-item { grid-template-columns:80px minmax(0,1fr); }
  .admin-workspace .line-item>.badge { grid-column:2; justify-self:start; }
  .price-columns>div { padding:22px; }
}
@media(max-width:639px) {
  .detail-hero { padding-block:32px 40px; gap:28px; }
  .public-shell :is(.detail-hero,.compact-hero,.form-intro) h1,.auth-intro h1,.app-shell .page-head h1 { font-size:34px; }
  .public-shell :is(.detail-hero,.compact-hero) p { font-size:16px; }
  .form-layout,.auth-layout,.form-section { grid-template-columns:1fr; gap:26px; }
  .form-layout { padding-block:32px; }
  .auth-layout { padding-top:0; }
  .form-intro .form-aside { margin-top:22px; padding-top:16px; }
  .app-main { padding-block:30px; }
  .form-card .form-actions { gap:10px; }
  .form-card .form-actions .btn,.form-card .form-actions button { padding-inline:16px; }
  .public-shell .editorial-section .plain-list,.method-list { padding-inline:20px; }
  .price-columns { grid-template-columns:1fr; }
  .price-row { gap:12px; font-size:14px; }
  .price-row span { min-width:0; }
  .app-shell .line-list { padding-inline:18px; }
  .admin-workspace>.section { padding:20px; }
  .admin-workspace .line-list { padding:0; }
  .admin-workspace .line-item { grid-template-columns:minmax(0,1fr); gap:9px; }
  .admin-workspace .line-item>.badge { grid-column:1; }
  .admin-detail .grid-12 { grid-template-columns:1fr; gap:16px; }
  .admin-detail .fact-grid { grid-template-columns:1fr; }
  .case-list { padding-inline:16px; }
  .case-summary-row { grid-template-columns:24px minmax(0,1fr); gap:11px; }
  .case-summary-row>.index { display:none; }
}

/* Keep form content together instead of reserving an empty label column. */
.appointment-form { display:block; max-width:760px; }
.appointment-form .form-card { width:100%; }
.form-main,.auth-form { max-width:600px; }
.form-layout,.auth-layout { gap:32px 48px; }
input:focus-visible,select:focus-visible,textarea:focus-visible { border-color:var(--ink); }
.flash-ok::before { content:"✓"; margin-right:9px; font-weight:600; }
:is(.form-card,.form-main,.auth-form) .form-actions { margin-top:4px; }
@media (min-width:640px) and (max-width:899px) {
 .form-layout,.auth-layout { grid-template-columns:minmax(0,1fr); max-width:680px; }
 .form-intro h1,.auth-intro h1 { max-width:22ch; }
 .form-intro .form-aside { margin-top:18px; padding-top:14px; }
 .form-section { grid-template-columns:minmax(0,1fr); max-width:760px; gap:20px; }
}
@media (max-width:639px) {
 .form-card .form-actions>.primary,.form-main .form-actions>.primary { width:100%; justify-content:center; }
 .app-shell .line-item .badge { max-width:100%; overflow-wrap:anywhere; }
}

.flash:focus { outline:2px solid var(--ink); outline-offset:3px; }

/* Small text uses charcoal; original red remains on buttons and visual markers. */
.text-link,.price-row strong,.auth-switch a,.form-aside a { color:var(--ink); }

.auth-recovery-link { display:inline-flex; align-items:center; min-height:44px; margin-top:12px; color:var(--ink); font-size:14px; text-underline-offset:3px; }
