@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,600&display=swap");

:root {
  --forest-950: #052f5f;
  --forest-900: #073f78;
  --forest-800: #09518d;
  --forest-700: #0b679f;
  --forest-100: #d9eaf4;
  --forest-50: #edf6fa;
  --cream: #f4f7f8;
  --header-cream: #f5f5f5;
  --paper: #ffffff;
  --ink: #17344e;
  --muted: #687985;
  --line: #dce4e8;
  --header-divider: #dce4e8;
  --peach: #20bfb2;
  --coral: #d96061;
  --coral-soft: #f9e6e6;
  --blue: #18a9ae;
  --blue-soft: #e0f4f3;
  --gold-soft: #fff2d8;
  --shadow-sm: 0 1px 2px rgba(5, 47, 95, .05), 0 5px 18px rgba(5, 47, 95, .05);
  --shadow-lg: 0 24px 70px rgba(5, 47, 95, .2);
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --app-header-height: 88px;
  font-family: "DM Sans", system-ui, sans-serif;
  color: var(--ink);
  background: var(--cream);
  font-synthesis: none;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; min-height: 100vh; background: var(--cream); }
.auth-page { min-height: 100vh; display: grid; place-items: center; padding: 32px 16px; background: linear-gradient(145deg, #edf6fa, #f5f5f5 55%, #e8f7f5); }
.auth-card { width: min(760px, 100%); border: 1px solid var(--line); border-radius: 24px; padding: 18px 32px 28px; background: var(--paper); box-shadow: var(--shadow-lg); }
.signup-header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: center; border-bottom: 1px solid var(--line); margin-bottom: 12px; padding-bottom: 14px; }
.auth-logo { width: clamp(175px, 25vw, 235px); height: auto; display: block; margin: 0; }
.auth-card h1 { margin: 0 0 4px; color: var(--forest-950); font: 600 30px "Fraunces", serif; }
.signup-header p { max-width: 430px; margin: 0; color: var(--muted); line-height: 1.5; }
.auth-card form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.auth-card form > label { display: grid; gap: 7px; color: var(--forest-950); font-size: 13px; font-weight: 700; }
.auth-card form input, .auth-card form select { width: 100%; min-height: 44px; border: 1px solid var(--line); border-radius: 10px; padding: 0 12px; color: var(--ink); background: white; }
.signup-birth-date-field { display: grid; gap: 7px; color: var(--forest-950); font-size: 13px; font-weight: 700; }
.signup-birth-date-field > small { color: var(--muted); font-size: 10px; font-weight: 500; line-height: 1.4; }
.birth-date-picker { display: grid; grid-template-columns: 1.15fr 1fr .8fr; gap: 8px; }
.birth-date-picker select { min-width: 0; }
.birth-date-picker select:disabled { color: #8a9792; background: #f2f4f3; cursor: not-allowed; }
.birth-date-picker input[type="hidden"] { display: none; }
.auth-card form .primary-button, .auth-card .form-error, .signup-section-title { grid-column: 1 / -1; }
.auth-card form .primary-button { margin-top: 6px; }
.signup-section-title { display: flex; gap: 11px; align-items: center; border-bottom: 1px solid var(--line); padding: 4px 0 10px; }
.signup-section-title > span { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 9px; color: var(--forest-700); background: var(--forest-50); font-weight: 700; }
.signup-section-title strong, .signup-section-title small { display: block; }
.signup-section-title small { margin-top: 3px; color: var(--muted); font-size: 12px; font-weight: 400; }
.signup-section-title.minor { margin-top: 6px; padding-top: 14px; }
.signup-success-page { text-align: center; }
.signup-success-card { width: min(680px, 100%); display: grid; justify-items: center; gap: 0; padding: 28px 42px 36px; }
.signup-success-logo { width: min(230px, 72vw); margin-bottom: 24px; }
.signup-success-check { width: 62px; height: 62px; display: grid; place-items: center; margin-bottom: 14px; border-radius: 50%; color: #fff; background: #158777; box-shadow: 0 10px 24px rgba(21,135,119,.22); font-size: 29px; font-weight: 900; }
.signup-success-card h1 { margin-top: 8px; font-size: 34px; }
.signup-success-lead { margin: 4px 0 22px; color: var(--muted); font-size: 16px; }
.signup-success-notice { width: 100%; display: grid; grid-template-columns: auto 1fr; gap: 13px; align-items: start; padding: 18px; border: 1px solid #b8dfd4; border-radius: 14px; background: #eef9f6; text-align: left; }
.signup-success-notice > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 11px; color: #126355; background: #d7f0e9; font-size: 18px; font-weight: 900; }
.signup-success-notice strong { color: var(--forest-950); font-size: 15px; }
.signup-success-notice p { margin: 5px 0 0; color: #526575; font-size: 13px; line-height: 1.55; }
.signup-success-notice.warning { border-color: #ecd9b6; background: #fff8eb; }
.signup-success-notice.warning > span { color: #906124; background: #fae9c8; }
.signup-next-steps { width: 100%; margin: 24px 0; padding: 0; display: grid; gap: 10px; list-style: none; text-align: left; }
.signup-next-steps li { display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: center; padding: 12px 14px; border-bottom: 1px solid var(--line); }
.signup-next-steps li > span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; color: var(--forest-900); background: var(--forest-50); font-weight: 900; }
.signup-next-steps li div { display: grid; gap: 3px; }
.signup-next-steps strong { color: var(--forest-950); font-size: 13px; }
.signup-next-steps small { color: var(--muted); line-height: 1.4; }
.signup-success-action { min-width: 230px; min-height: 46px; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; padding: 0 22px; line-height: 1.2; text-align: center; text-decoration: none; }
.professional-signup-card { width: min(860px, 100%); }
.professional-signup-card .full-field { grid-column: 1 / -1; }
.professional-signup-login { grid-column: 1 / -1; margin: 2px 0 0; color: var(--muted); text-align: center; font-size: 13px; }
.professional-signup-login a { color: var(--forest-700); font-weight: 800; }
.professional-verification-card {
  width: min(760px, 100%);
  padding: 0 0 28px;
  justify-items: stretch;
  overflow: hidden;
  text-align: left;
}
.professional-verification-brand {
  min-height: 82px;
  padding: 12px 30px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid var(--line);
  background: linear-gradient(180deg, #fff, #fbfcfd);
}
.professional-verification-brand .auth-logo { width: 190px; margin: 0; }
.professional-verification-brand > span {
  padding: 7px 11px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border-radius: 999px;
  color: #126355;
  background: #e5f6f1;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}
.professional-verification-brand > span i { width: 7px; height: 7px; border-radius: 50%; background: #159887; box-shadow: 0 0 0 3px rgba(21,152,135,.12); }
.professional-verification-hero {
  padding: 30px 34px 22px;
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 20px;
  align-items: center;
}
.professional-verification-mail {
  width: 64px;
  height: 64px;
  display: grid;
  place-items: center;
  border: 1px solid #75cfc4;
  border-radius: 18px;
  color: #fff;
  background: linear-gradient(145deg, #18aa9a, #0c7d73);
  box-shadow: 0 10px 22px rgba(12,125,115,.19);
}
.professional-verification-mail .ui-icon { width: 29px; height: 29px; }
.professional-verification-hero h1 { margin: 5px 0 7px; color: var(--forest-950); font: 600 36px/1.08 "Fraunces", Georgia, serif; }
.professional-verification-hero p { margin: 0; color: #526b7a; font-size: 15px; line-height: 1.5; overflow-wrap: anywhere; }
.professional-verification-hero p strong { color: var(--forest-900); }
.professional-verification-notice {
  margin: 0 34px;
  padding: 17px 18px;
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  border: 1px solid #b8dfd4;
  border-radius: 14px;
  background: linear-gradient(110deg, #eef9f6, #f9fcfc);
}
.professional-verification-notice > span,
.professional-verification-details > div > span {
  display: grid;
  place-items: center;
  color: #0b7468;
  background: #d9f2ec;
}
.professional-verification-notice > span { width: 40px; height: 40px; border-radius: 12px; }
.professional-verification-notice .ui-icon { width: 21px; height: 21px; }
.professional-verification-notice strong { color: var(--forest-950); font-size: 15px; }
.professional-verification-notice p { margin: 4px 0 0; color: #526b7a; font-size: 13px; line-height: 1.5; }
.professional-verification-details { margin: 14px 34px 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.professional-verification-details > div { min-width: 0; padding: 13px 14px; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 11px; align-items: center; border: 1px solid #e0e7ea; border-radius: 12px; background: #f8fafb; }
.professional-verification-details > div > span { width: 34px; height: 34px; border-radius: 10px; color: var(--forest-700); background: var(--forest-50); }
.professional-verification-details p { margin: 0; }
.professional-verification-details strong,
.professional-verification-details small { display: block; }
.professional-verification-details strong { color: var(--forest-950); font-size: 12px; }
.professional-verification-details small { margin-top: 3px; color: var(--muted); font-size: 11px; line-height: 1.35; }
.professional-verification-card > .success { margin: 14px 34px 0; text-align: center; }
.professional-verification-actions { margin: 22px 34px 0; padding-top: 20px; display: flex; justify-content: flex-end; gap: 10px; border-top: 1px solid var(--line); }
.professional-verification-actions form { margin: 0; display: block; }
.professional-verification-actions .primary-button,
.professional-verification-actions .secondary-button { min-width: 185px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; text-decoration: none; }
.professional-verification-actions .ui-icon { width: 17px; height: 17px; }
.form-error { margin: 0; border-radius: 10px; padding: 10px 12px; color: #9a4435; background: var(--coral-soft); }
@media (max-width: 640px) {
  .auth-card { padding: 16px 18px 24px; }
  .auth-card form { grid-template-columns: 1fr; }
  .auth-card form .primary-button, .auth-card .form-error, .signup-section-title { grid-column: auto; }
  .signup-header { grid-template-columns: 1fr; gap: 10px; }
  .signup-header > div { text-align: center; }
  .signup-header p { margin-inline: auto; }
  .auth-logo { grid-row: 1; justify-self: center; width: min(62vw, 220px); margin: 2px auto 4px; }
  .signup-success-card { padding: 24px 18px 28px; }
  .signup-success-card h1 { font-size: 29px; }
  .signup-success-notice { padding: 15px; }
  .signup-success-action { width: 100%; }
  .professional-verification-card { padding: 0 0 20px; }
  .professional-verification-brand { min-height: 72px; padding: 10px 18px; }
  .professional-verification-brand .auth-logo { width: 165px; }
  .professional-verification-brand > span { padding: 6px 9px; font-size: 10px; }
  .professional-verification-hero { padding: 24px 18px 18px; grid-template-columns: 1fr; justify-items: center; gap: 14px; text-align: center; }
  .professional-verification-mail { width: 58px; height: 58px; border-radius: 16px; }
  .professional-verification-hero h1 { font-size: 30px; }
  .professional-verification-hero p { font-size: 14px; }
  .professional-verification-notice { margin: 0 18px; padding: 15px; align-items: start; }
  .professional-verification-details { margin: 12px 18px 0; grid-template-columns: 1fr; }
  .professional-verification-card > .success { margin-inline: 18px; }
  .professional-verification-actions { margin: 18px 18px 0; padding-top: 17px; flex-direction: column; }
  .professional-verification-actions form,
  .professional-verification-actions .primary-button,
  .professional-verification-actions .secondary-button { width: 100%; }
  .professional-signup-card .full-field,
  .professional-signup-login { grid-column: auto; }
  .birth-date-picker { grid-template-columns: 1fr; }
}
button, input, textarea, select { font: inherit; }
button { color: inherit; }
button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, a:focus-visible {
  outline: 3px solid rgba(39, 100, 89, .3);
  outline-offset: 2px;
}
.skip-link { position: fixed; left: 12px; top: -50px; z-index: 100; background: white; padding: 10px 14px; border-radius: 8px; color: var(--forest-900); }
.skip-link:focus { top: 12px; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.demo-banner { height: 30px; position: fixed; inset: 0 0 auto; z-index: 60; display: flex; align-items: center; justify-content: center; gap: 8px; background: var(--forest-950); color: #dce9e4; font-size: 11px; letter-spacing: .03em; }
.status-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--peach); box-shadow: 0 0 0 3px rgba(246, 189, 117, .12); }
.banner-help { border: 0; border-bottom: 1px solid rgba(255,255,255,.5); padding: 0; color: white; background: transparent; cursor: pointer; font-size: 11px; }

.app-shell { min-height: 100vh; padding-top: 30px; display: grid; grid-template-columns: 244px minmax(0, 1fr); }
.sidebar { position: fixed; top: 30px; bottom: 0; left: 0; width: 244px; z-index: 40; display: flex; flex-direction: column; color: #eaf2ee; background: var(--forest-900); }
.sidebar-brand { height: var(--app-header-height); flex: 0 0 var(--app-header-height); display: flex; align-items: center; justify-content: center; padding: 5px 14px; border-right: 1px solid var(--header-divider); border-bottom: 1px solid var(--header-divider); background: #fff; overflow: hidden; }
.sidebar-brand img { width: 145px; height: calc(var(--app-header-height) - 10px); display: block; object-fit: contain; }
.sidebar-backdrop { position: fixed; inset: 30px 0 0; z-index: 35; border: 0; padding: 0; visibility: hidden; opacity: 0; pointer-events: none; background: rgba(5, 28, 51, .34); backdrop-filter: blur(9px) saturate(.88); -webkit-backdrop-filter: blur(9px) saturate(.88); cursor: pointer; transition: opacity .23s ease, visibility 0s linear .23s; }
.brand { height: var(--app-header-height); display: flex; align-items: center; justify-content: center; padding: 5px 12px; border-right: 1px solid var(--header-divider); border-bottom: 1px solid var(--header-divider); background: var(--header-cream); overflow: hidden; }
.brand-logo-full { width: 100%; height: 100%; display: block; object-fit: contain; }
.main-nav { padding: 18px 12px; display: grid; gap: 4px; }
.nav-item { width: 100%; min-height: 44px; border: 0; border-radius: 10px; padding: 0 12px; display: flex; align-items: center; gap: 11px; color: #bcd0c9; background: transparent; cursor: pointer; text-align: left; font-size: 13px; font-weight: 500; transition: .2s ease; }
.nav-item:hover { color: white; background: rgba(255,255,255,.06); }
.nav-item.active { color: white; background: rgba(255,255,255,.11); box-shadow: inset 3px 0 var(--peach); }
.nav-icon { width: 21px; font-size: 18px; text-align: center; color: #a8c1b9; }
.nav-icon svg { width: 18px; height: 18px; display: block; margin: auto; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.nav-item.active .nav-icon { color: var(--peach); }
.nav-count { min-width: 22px; padding: 2px 6px; margin-left: auto; border-radius: 20px; text-align: center; font-size: 10px; color: var(--forest-900); background: #bcd0c9; }
.sidebar-footer { margin-top: auto; border-top: 1px solid rgba(255,255,255,.08); padding: 10px 12px 14px; }
.profile-mini { margin-top: 8px; padding: 8px 3px 2px; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 6px; align-items: center; }
.profile-mini form { justify-self: end; }
.profile-mini-button { min-width: 0; border: 0; border-radius: 10px; padding: 6px 7px; display: grid; grid-template-columns: 34px minmax(0,1fr); gap: 9px; align-items: center; color: inherit; background: transparent; cursor: pointer; text-align: left; transition: .18s ease; }
.profile-mini-button:hover, .profile-mini-button.active { background: rgba(255,255,255,.09); }
.profile-mini-button:focus-visible { outline-color: rgba(255,255,255,.48); }
.profile-mini-copy { min-width: 0; }
.avatar { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: var(--forest-700); color: white; font-size: 11px; font-weight: 700; }
.profile-mini strong, .profile-mini small { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.profile-mini strong { font-size: 11px; color: white; }
.profile-mini small { margin-top: 2px; font-size: 9px; color: #96b2a9; }
.offline-indicator { width: 7px; height: 7px; border-radius: 50%; background: var(--peach); }
.workspace-logout { width: 30px; height: 30px; border: 1px solid rgba(255,255,255,.15); border-radius: 9px; display: grid; place-items: center; color: #dce9e4; background: rgba(255,255,255,.07); cursor: pointer; }
.workspace-logout .ui-icon { width: 16px; height: 16px; }
.workspace-logout:hover { color: white; background: rgba(255,255,255,.14); }

.workspace { grid-column: 2; min-width: 0; }
.topbar { height: var(--app-header-height); position: sticky; top: 30px; z-index: 30; display: flex; align-items: center; gap: 20px; padding: 0 clamp(20px, 4vw, 52px); border-bottom: 1px solid var(--header-divider); background: rgba(245, 245, 245, .94); backdrop-filter: blur(14px); }
.topbar-brand { min-width: 0; display: none; align-items: center; }
.topbar-logo { width: clamp(160px, 16vw, 220px); max-height: 58px; display: block; object-fit: contain; object-position: left center; }
.eyebrow { display: block; margin-bottom: 3px; color: var(--muted); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .11em; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 0; font: 600 clamp(20px, 2.2vw, 26px)/1.15 "Fraunces", serif; color: var(--forest-950); }
.topbar-actions { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.connection-pill { display: inline-flex; align-items: center; gap: 7px; font-size: 10px; font-weight: 600; color: var(--forest-700); }
.connection-pill span { width: 7px; height: 7px; border-radius: 50%; background: var(--peach); }
.connection-pill.is-offline span { background: var(--coral); }
.icon-button { width: 38px; height: 38px; border: 1px solid var(--line); display: grid; place-items: center; border-radius: 11px; background: var(--paper); cursor: pointer; font-size: 20px; line-height: 1; }
.icon-button:hover { border-color: #b8c5bf; background: white; }
.menu-button { display: none; }
.primary-button, .secondary-button, .danger-button { min-height: 40px; border-radius: 11px; border: 1px solid transparent; padding: 0 16px; cursor: pointer; font-weight: 700; font-size: 12px; transition: .18s ease; }
.primary-button { color: white; background: var(--forest-900); box-shadow: 0 5px 14px rgba(22,60,53,.15); }
.primary-button:hover { transform: translateY(-1px); background: var(--forest-800); }
.primary-button.compact { display: inline-flex; align-items: center; gap: 6px; }
.primary-button.compact span { font-size: 18px; font-weight: 400; }
.secondary-button { border-color: var(--line); background: var(--paper); }
.secondary-button:hover { border-color: #aebbb5; background: white; }
.danger-button { color: #9a4435; background: var(--coral-soft); }
.text-button { border: 0; padding: 3px; color: var(--forest-700); background: none; cursor: pointer; font-size: 11px; font-weight: 700; }

main { padding: clamp(24px, 4vw, 48px) clamp(20px, 4vw, 52px) 70px; }
.view { display: none; max-width: 1260px; margin: 0 auto; animation: fade-in .25s ease; }
.view.active { display: block; }
@keyframes fade-in { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }
.welcome-row { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 25px; }
.welcome-row h2 { margin-bottom: 7px; font: 600 clamp(25px, 3vw, 34px)/1.12 "Fraunces", serif; color: var(--forest-950); }
.welcome-row p { margin-bottom: 0; color: var(--muted); font-size: 13px; }
.date-card { min-width: 190px; padding: 12px 15px; border-left: 3px solid var(--peach); background: rgba(255,255,255,.45); }
.date-card strong { display: block; font: 600 22px/1 "Fraunces", serif; color: var(--forest-900); }
.date-card span { font-size: 10px; color: var(--muted); }
.date-card time { color: var(--forest-800); font-weight: 700; }
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 13px; margin-bottom: 25px; }
.stat-card { min-height: 108px; padding: 17px 18px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); box-shadow: var(--shadow-sm); }
.stat-card header { display: flex; justify-content: space-between; align-items: start; }
.stat-card .stat-icon { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 9px; background: var(--forest-50); color: var(--forest-700); font-size: 16px; }
.semantic-icon { width: 18px; height: 18px; display: block; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.stat-icon .semantic-icon, .review-icon .semantic-icon { width: 17px; height: 17px; }
.ui-empty-state__icon .semantic-icon { width: 20px; height: 20px; }
.stat-card.alert .stat-icon { background: var(--coral-soft); color: var(--coral); }
.stat-card.warm .stat-icon { background: var(--gold-soft); color: #ad762f; }
.stat-card.blue .stat-icon { background: var(--blue-soft); color: var(--blue); }
.stat-card strong { display: block; margin-top: 8px; font: 600 24px/1 "Fraunces", serif; color: var(--forest-950); }
.stat-card p { margin: 5px 0 0; color: var(--muted); font-size: 10px; }
.dashboard-notes-card { width: 100%; font: inherit; color: inherit; text-align: left; cursor: pointer; transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.dashboard-notes-card:hover { transform: translateY(-2px); border-color: #d7bd87; box-shadow: 0 10px 24px rgba(74,61,37,.1); }
.dashboard-notes-card:focus-visible { outline: 3px solid rgba(27,151,151,.22); outline-offset: 2px; }
.trend { padding: 3px 6px; border-radius: 12px; color: var(--forest-700); background: var(--forest-50); font-size: 9px; font-weight: 700; }
.trend.urgent { color: #9b4839; background: var(--coral-soft); }

.dashboard-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: stretch; }
.panel { border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--paper); box-shadow: var(--shadow-sm); overflow: hidden; }
.panel-header { min-height: 64px; padding: 15px 19px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); }
.panel-header h3 { margin: 0 0 3px; font: 600 17px/1.2 "Fraunces", serif; color: var(--forest-950); }
.panel-header p { margin: 0; font-size: 10px; color: var(--muted); }
.schedule-list { padding: 4px 17px 12px; }
[data-dashboard-agenda] { display: flex; flex-direction: column; }
[data-dashboard-agenda] .ui-panel__body { min-height: 0; flex: 1; display: flex; }
[data-dashboard-agenda] .schedule-list { width: 100%; flex: 1; display: flex; flex-direction: column; }
[data-dashboard-agenda] .dashboard-agenda-empty { width: 100%; min-height: 260px; flex: 1; padding: 34px 20px 40px; place-content: center; align-content: center; justify-items: center; text-align: center; }
[data-dashboard-agenda] .dashboard-agenda-empty .ui-empty-state__icon { width: 58px; height: 58px; margin: 0 auto 16px; border-radius: 17px; color: var(--forest-800); background: linear-gradient(145deg, #dff3f4, #edf7fb); box-shadow: 0 10px 24px rgba(13, 83, 113, .09); }
[data-dashboard-agenda] .dashboard-agenda-empty .semantic-icon { width: 29px; height: 29px; stroke-width: 1.7; }
[data-dashboard-agenda] .dashboard-agenda-empty p { max-width: 320px; margin: 0 auto; color: var(--muted); font-size: 13px; line-height: 1.55; text-align: center; }
.schedule-item { width: 100%; position: relative; min-height: 69px; padding: 0; display: grid; grid-template-columns: 54px 40px 1fr auto; gap: 10px; align-items: center; border: 0; border-bottom: 1px solid #e9e9e4; background: transparent; cursor: pointer; text-align: left; transition: background .18s ease; }
.schedule-item:hover { background: var(--forest-50); }
.schedule-item:last-child { border-bottom: 0; }
.schedule-item.current::before { content: ""; position: absolute; left: -17px; width: 3px; height: 36px; border-radius: 0 3px 3px 0; background: var(--peach); }
.schedule-time strong, .schedule-time small { display: block; }
.schedule-time strong { font-size: 11px; color: var(--forest-950); }
.schedule-time small { font-size: 9px; color: var(--muted); }
.patient-avatar { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 11px; color: var(--forest-900); background: var(--forest-100); font-size: 11px; font-weight: 700; }
.patient-avatar.coral { background: var(--coral-soft); color: #984535; }
.patient-avatar.blue { background: var(--blue-soft); color: #496b89; }
.patient-avatar.gold { background: var(--gold-soft); color: #96672d; }
.schedule-name strong, .schedule-name small { display: block; }
.schedule-name strong { font-size: 12px; color: var(--forest-950); }
.schedule-name small { margin-top: 3px; font-size: 9px; color: var(--muted); }
.tag { display: inline-flex; align-items: center; min-height: 22px; padding: 3px 8px; border-radius: 20px; font-size: 9px; font-weight: 700; color: var(--forest-700); background: var(--forest-50); white-space: nowrap; }
.tag.coral { color: #984535; background: var(--coral-soft); }
.tag.gold { color: #906124; background: var(--gold-soft); }
.tag.gray { color: #67736f; background: #eff0ed; }
.tag.status-review { color: #9a4f12; background: #fff0d8; border: 1px solid #f2d09a; }
.tag.status-progress { color: #155f83; background: #e8f5fb; border: 1px solid #bcddeb; }
.tag.status-pending { color: #88631c; background: #fff7d9; border: 1px solid #ead797; }
.tag.status-complete { color: #126a57; background: #e4f6ef; border: 1px solid #b9dfd2; }
.tag.status-cancelled { color: #8b4a4a; background: #f8eaea; border: 1px solid #e8c5c5; }
.review-list { padding: 8px 17px 16px; }
.review-view-switch { padding: 3px; display: inline-grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3px; border: 1px solid #d8e1e4; border-radius: 11px; background: #f3f7f8; }
.review-view-switch button { min-height: 34px; padding: 0 11px; border: 0; border-radius: 8px; color: #58717e; background: transparent; cursor: pointer; font-size: 10px; font-weight: 800; white-space: nowrap; transition: color .18s ease, background .18s ease, box-shadow .18s ease; }
.review-view-switch button:hover { color: var(--forest-950); background: rgba(255,255,255,.75); }
.review-view-switch button.active { color: white; background: var(--forest-800); box-shadow: 0 4px 10px rgba(5,63,120,.16); }
[data-dashboard-reviews] .ui-panel__header { align-items: flex-start; flex-wrap: wrap; }
[data-dashboard-reviews] .ui-panel__actions { width: 100%; justify-content: space-between; }
.review-item { width: 100%; display: grid; grid-template-columns: 34px 1fr auto; gap: 10px; align-items: center; padding: 11px 0; border: 0; border-bottom: 1px solid #e9e9e4; background: transparent; cursor: pointer; text-align: left; transition: background .18s ease; }
.review-item:hover { background: var(--forest-50); }
.review-item:last-child { border-bottom: 0; }
.review-icon { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 9px; background: var(--gold-soft); color: #96672d; }
.review-icon.coral { background: var(--coral-soft); color: var(--coral); }
.review-item strong, .review-item small { display: block; }
.review-item strong { font-size: 10px; }
.review-item small { margin-top: 3px; font-size: 9px; color: var(--muted); }
.count-badge { min-width: 24px; height: 24px; padding: 0 7px; display: grid; place-items: center; border-radius: 20px; color: white; background: var(--forest-700); font-size: 9px; font-weight: 700; }
.review-detail-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 15px; }
.review-detail-grid > [data-review-section] { scroll-margin-top: 24px; transition: border-color .2s ease, box-shadow .2s ease; }
.review-detail-grid > [data-review-section].is-review-target { border-color: var(--peach); box-shadow: 0 0 0 3px rgba(29,190,184,.14), var(--shadow-sm); }
.review-queue-panel { min-width: 0; display: flex; flex-direction: column; }
.review-queue-panel .panel-header .count-badge { flex: 0 0 auto; }
.review-detail-list { min-height: 0; padding: 5px 17px 14px; flex: 1; }
.review-pagination { min-height: 64px; padding: 10px 17px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid var(--line); background: #f8faf9; }
.review-pagination p { margin: 0; color: var(--muted); font-size: 10px; }
.review-pagination p strong, .review-pagination p small { display: block; }
.review-pagination p strong { color: var(--forest-900); font-size: 11px; }
.review-pagination p small { margin-top: 2px; }
.review-pagination > div { display: flex; align-items: center; gap: 7px; }
.review-pagination > div > span { min-width: 76px; color: var(--muted); text-align: center; font-size: 9px; }
.review-pagination .secondary-button { width: 32px; min-width: 32px; min-height: 32px; padding: 0; }
.ui-page-header__actions { flex-wrap: wrap; justify-content: flex-end; }

@media (max-width: 680px) {
  .review-view-switch { width: 100%; }
  .review-view-switch button { min-width: 0; padding-inline: 7px; white-space: normal; line-height: 1.2; }
  [data-dashboard-reviews] .ui-panel__actions,
  .ui-page-header__actions { width: 100%; align-items: stretch; flex-direction: column; }
  .ui-page-header__actions .secondary-button { width: 100%; }
  .review-pagination { align-items: stretch; flex-direction: column; }
  .review-pagination > div { justify-content: space-between; }
}
.review-detail-row { width: 100%; min-height: 66px; border: 0; border-bottom: 1px solid #e9e9e4; padding: 10px 2px; display: grid; grid-template-columns: 34px 1fr auto; gap: 10px; align-items: center; background: transparent; cursor: pointer; text-align: left; }
.review-detail-row:last-child { border-bottom: 0; }
.review-detail-row:hover { background: var(--forest-50); }
.review-detail-row strong, .review-detail-row small { display: block; }
.review-detail-row strong { color: var(--forest-950); font-size: 11px; }
.review-detail-row small { margin-top: 4px; color: var(--muted); font-size: 9px; }
.review-detail-row > i { color: var(--forest-700); font-size: 18px; font-style: normal; }
.appointment-required-action { border: 1px solid #f0cf83; border-radius: 12px; padding: 13px; background: #fffaf0; }
.appointment-required-action > div { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 11px; }
.professional-notes-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: end; margin-bottom: 18px; }
.professional-notes-form label { color: var(--forest-900); font-size: 11px; font-weight: 700; }
.professional-notes-form textarea { width: 100%; margin-top: 7px; resize: vertical; }
.professional-note-list { display: grid; gap: 9px; }
.professional-note-item { display: grid; grid-template-columns: 30px minmax(0, 1fr) 30px; gap: 11px; align-items: center; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: #fbfcfa; }
.professional-note-item p { margin: 0; color: var(--forest-950); font-size: 12px; line-height: 1.45; white-space: pre-wrap; overflow-wrap: anywhere; }
.professional-note-item small { display: block; margin-top: 4px; color: var(--muted); font-size: 9px; }
.professional-note-item.is-completed p { color: var(--muted); text-decoration: line-through; }
.professional-note-check, .professional-note-delete { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; cursor: pointer; font-weight: 800; }
.professional-note-check { border: 1px solid #bcd9d2; color: white; background: white; }
.professional-note-item.is-completed .professional-note-check { background: var(--forest-700); }
.professional-note-delete { border: 0; color: #9b4839; background: var(--coral-soft); font-size: 17px; }
.privacy-note { margin-top: 16px; padding: 13px 16px; display: flex; gap: 11px; align-items: center; border: 1px solid #d9ded8; border-radius: 13px; color: var(--muted); background: rgba(255,255,255,.35); font-size: 10px; line-height: 1.5; }
.privacy-note strong { color: var(--forest-800); }
.privacy-note .lock { font-size: 17px; }
.dashboard-grid > .panel { height: 100%; }
.patient-invitations-panel { grid-column: auto; align-self: stretch; height: 100%; display: flex; flex-direction: column; }
.patient-invitations-panel .panel-header { align-items: flex-start; }
.patient-invitations-panel .panel-header > div { min-width: 0; }
.patient-invitations-panel .panel-header .text-button { min-height: 24px; margin-top: 0; display: inline-flex; align-items: center; justify-content: center; line-height: 1.2; white-space: nowrap; }
.invitation-count { color: var(--forest-700); font-size: 13px; font-weight: 700; white-space: nowrap; }
.invitation-form { display: flex; flex-direction: column; gap: 10px; align-items: stretch; padding: 16px 20px 10px; }
.invitation-email { flex: 1; min-width: 0; height: 44px; border-color: #cfdde3; background: #fbfdfd; }
.invitation-email:focus-within { border-color: var(--forest-700); box-shadow: 0 0 0 3px rgba(15, 145, 139, .1); }
.invitation-email input { width: 100%; }
.invitation-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; gap: 9px; }
.invitation-actions button { width: 100%; min-height: 43px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; line-height: 1.2; text-align: center; }
.invitation-actions button > span { flex: 0 0 auto; display: grid; place-items: center; font-size: 14px; line-height: 1; }
.invitation-actions button .semantic-icon { width: 15px; height: 15px; }
.invitation-form-dashboard { padding-top: 18px; }
.invitation-form-dashboard .invitation-email { height: 54px; padding-inline: 15px; border-radius: 13px; background: #fff; }
.invitation-form-dashboard .invitation-email > span { font-size: 19px; }
.invitation-form-dashboard .invitation-email input { font-size: 13px; }
.invitation-form-dashboard .invitation-actions button { min-height: 46px; }
.invitation-guidance { margin: 1px 20px 16px; display: grid; gap: 9px; }
.invitation-guidance article { min-height: 76px; padding: 12px; display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 10px; align-items: center; border: 1px solid #dde9e9; border-radius: 12px; background: linear-gradient(135deg, #f3f9f9, #fbfdfd); }
.invitation-guidance article > span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; color: var(--forest-800); background: #dff2ef; font-size: 14px; font-weight: 800; }
.invitation-guidance article > span .semantic-icon { width: 16px; height: 16px; }
.invitation-guidance p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.48; }
.invitation-guidance strong { display: block; margin-bottom: 3px; color: var(--forest-950); font-size: 11px; }
.invitation-hint { margin: 0 20px 16px; padding: 11px 12px; display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 9px; align-items: start; border-radius: 11px; color: var(--muted); background: #f4f8f9; font-size: 10px; line-height: 1.45; }
.invitation-hint > span { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 7px; color: var(--forest-800); background: #e3f3f2; font-weight: 800; }
.invitation-hint p { margin: 0; }
.invitation-hint strong { display: block; margin-bottom: 2px; color: var(--forest-950); font-size: 10px; }
.invitation-summary { margin-top: auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; border-top: 1px solid var(--line); padding: 14px 20px 18px; background: linear-gradient(180deg, rgba(244,248,249,.42), rgba(255,255,255,0)); }
.invitation-summary > div { min-height: 70px; display: grid; grid-template-columns: 32px 1fr; grid-template-rows: auto auto; align-content: center; gap: 3px 10px; border: 1px solid #dce8e8; border-radius: 13px; background: #f2f9f8; padding: 11px 12px; }
.invitation-summary span { width: 30px; height: 30px; grid-row: 1 / 3; display: grid; place-items: center; border-radius: 9px; font-size: 14px; color: var(--forest-800); background: #dff2ef; }
.invitation-summary span .semantic-icon { width: 16px; height: 16px; }
.invitation-summary strong { align-self: end; margin: 0; color: var(--forest-950); font: 600 22px/1 "Fraunces", serif; }
.invitation-summary small { align-self: start; margin: 0; color: var(--muted); font-size: 9px; line-height: 1.25; }
.invitation-page-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(280px, .6fr); gap: 16px; margin-bottom: 16px; }
.invitation-page-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.invitation-page-stats .stat-card { height: 100%; }
.invitation-compose .invitation-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
.invitation-compose .invitation-actions { grid-template-columns: auto auto; }
.invitation-compose .invitation-hint { padding-bottom: 18px; }
.invitation-history-panel .invitation-history { border-top: 0; }
.invitation-history { border-top: 1px solid var(--line); padding: 15px 20px 8px; }
.invitation-history-title { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.invitation-history-title small { color: var(--muted); }
.invitation-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 14px; align-items: center; border-top: 1px solid var(--line); padding: 12px 0; }
.invitation-main { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.invitation-main strong { overflow: hidden; text-overflow: ellipsis; }
.invitation-main small { color: var(--muted); }
.invitation-status { border-radius: 999px; background: var(--forest-50); color: var(--forest-700); font-size: 12px; font-weight: 700; padding: 5px 9px; }
.invitation-status.subscribed { background: #e6f5ef; color: #167455; }
.invitation-completed-label { color: #167455; font-size: 12px; font-weight: 700; white-space: nowrap; }
.empty-state.compact { min-height: 90px; }
@media (max-width: 640px) {
  .invitation-form { flex-direction: column; align-items: stretch; }
  .invitation-row { grid-template-columns: 1fr auto; }
  .invitation-row .text-button { grid-column: 1 / -1; justify-self: start; }
}

.view-toolbar { display: flex; justify-content: space-between; gap: 14px; align-items: center; margin-bottom: 20px; }
.view-intro h2 { margin-bottom: 5px; font: 600 29px/1.15 "Fraunces", serif; color: var(--forest-950); }
.view-intro p { margin: 0; color: var(--muted); font-size: 12px; }
.toolbar-actions { display: flex; gap: 9px; }
.search-box { min-width: min(320px, 40vw); height: 42px; display: flex; align-items: center; gap: 8px; padding: 0 12px; border: 1px solid var(--line); border-radius: 11px; background: var(--paper); }
.search-box span { color: var(--muted); font-size: 18px; }
.search-box input { width: 100%; border: 0; outline: 0; background: transparent; font-size: 12px; color: var(--ink); }
.patient-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.patient-empty-state { grid-column: 1 / -1; width: 100%; min-height: clamp(360px, calc(100vh - 250px), 720px); display: grid; align-content: center; justify-items: center; justify-self: stretch; text-align: center; }
.patient-card { position: relative; padding: 18px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); cursor: pointer; box-shadow: var(--shadow-sm); transition: .2s ease; }
.patient-card:hover { transform: translateY(-2px); border-color: #bfc9c4; box-shadow: 0 12px 30px rgba(16,44,39,.08); }
.patient-card .card-top { display: flex; gap: 11px; align-items: center; }
.patient-card h3 { margin: 0 0 3px; font-size: 13px; }
.patient-card .code { color: var(--muted); font-size: 9px; }
.patient-card .status-pin { position: absolute; top: 18px; right: 18px; width: 8px; height: 8px; border-radius: 50%; background: var(--peach); }
.patient-card .status-pin.paused { background: #b7b9b1; }
.patient-card .card-data { margin-top: 17px; padding-top: 13px; display: grid; grid-template-columns: 1fr 1fr; gap: 9px; border-top: 1px solid #e8e8e3; }
.patient-card .card-data small, .patient-card .card-data strong { display: block; }
.patient-card .card-data small { color: var(--muted); font-size: 8px; text-transform: uppercase; letter-spacing: .06em; }
.patient-card .card-data strong { margin-top: 3px; font-size: 10px; font-weight: 600; }
.patient-card .card-footer { margin-top: 15px; display: flex; justify-content: space-between; align-items: center; }

.patient-detail-header { margin-bottom: 18px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 18px; align-items: start; }
.patient-detail-actions { display: flex; gap: 9px; align-items: flex-start; }
.back-button { align-self: start; }
.patient-detail-header .back-button,
.patient-detail-actions .primary-button,
.patient-detail-actions .secondary-button {
  margin: 0;
  height: 44px;
  min-height: 44px;
  max-height: 44px;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  line-height: 1;
}
.patient-detail-actions { align-self: start; }
.patient-detail-identity { display: flex; align-items: flex-start; gap: 13px; min-width: 0; }
.patient-detail-identity > div { min-width: 0; }
.patient-detail-identity .patient-avatar { width: 52px; height: 52px; flex: 0 0 auto; border-radius: 15px; font-size: 14px; }
.patient-detail-identity h2 { margin: 0 0 4px; font: 600 27px/1.1 "Fraunces", serif; color: var(--forest-950); }
.patient-detail-identity p {
  margin: 0;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.45;
  white-space: normal;
  overflow-wrap: anywhere;
}
.patient-name-row { display: flex; align-items: flex-start; gap: 9px; flex-wrap: wrap; }
.patient-name-row h2 { min-width: 0; margin-bottom: 0; overflow: visible; white-space: normal; overflow-wrap: anywhere; }
.patient-name-row .tag { flex: 0 0 auto; }
.patient-verified-badge {
  width: 25px;
  height: 25px;
  flex: 0 0 25px;
  display: grid;
  place-items: center;
  border: 3px solid #dff4ee;
  border-radius: 50%;
  color: #fff;
  background: #158777;
  box-shadow: 0 4px 10px rgba(21, 135, 119, .18);
  font-size: 12px;
  font-weight: 900;
}
.patient-name-row .consent-status { min-height: 28px; padding-inline: 10px; font-size: 11px; }
.patient-name-row .consent-status.signed { color: #126355; background: #dff4ee; }
.patient-name-row a.consent-status { text-decoration: none; cursor: pointer; }
/* Consentimiento inicial de uso de datos */
.data-consent-card { max-width: 920px; }
.data-consent-summary {
  margin: 22px 0;
  padding: 18px 20px;
  border: 1px solid #b9e6dc;
  border-radius: 14px;
  background: #effaf7;
}
.data-consent-summary strong { display: block; margin-bottom: 5px; font-size: 17px; }
.data-consent-summary p { margin: 0; line-height: 1.6; color: #40596d; }
.data-consent-document h2 {
  margin: 22px 0 7px;
  color: #073f78;
  font: 700 15px/1.35 var(--font-sans);
  letter-spacing: .08em;
}
.data-consent-document p { margin: 0; font-size: 16px; line-height: 1.72; }
.data-consent-form { margin-top: 24px; }
.data-consent-form label > small { display: block; margin-top: 6px; color: #607286; }
.data-consent-proof { display: block; }
.data-consent-signature {
  display: grid;
  gap: 8px;
  margin-bottom: 14px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
}
.data-consent-signature img {
  width: min(100%, 440px);
  height: 120px;
  object-fit: contain;
  object-position: left center;
  border-bottom: 1px solid var(--line);
}
.data-consent-signature span { color: var(--muted); font-size: 12px; }
.data-consent-proof dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.data-consent-back { display: table; margin: 22px auto 0; text-decoration: none; }
.data-consent-expired { margin: 22px 0; padding: 16px; }
.verification-card { max-width: 680px; text-align: center; }
.verification-card .auth-logo { margin: 0 auto 24px; }
.verification-details { margin-top: 24px; text-align: left; }
.verification-details div { padding: 13px 0; border-top: 1px solid #dce4e8; }
.verification-details dt { color: #607286; font-size: 12px; text-transform: uppercase; }
.verification-details dd { margin: 4px 0 0; font-weight: 700; overflow-wrap: anywhere; }
.patient-data-consent-banner {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 16px;
  margin: 0 0 20px;
  padding: 17px 19px;
  border: 1px solid #b9e6dc;
  border-radius: 16px;
  background: #effaf7;
}
.patient-data-consent-banner.pending { border-color: #efd4a3; background: #fff9ec; }
.patient-data-consent-banner > span {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 12px;
  background: #10b9aa;
  color: #fff;
  font-size: 22px;
  font-weight: 800;
}
.patient-data-consent-banner.pending > span { background: #d98b18; }
.patient-data-consent-banner small,
.patient-data-consent-banner strong { display: block; }
.patient-data-consent-banner small { margin-bottom: 3px; letter-spacing: .08em; color: #476175; }
.patient-data-consent-banner p { margin: 4px 0 0; color: #607286; }
.patient-data-use-card {
  display: grid;
  grid-template-columns: auto minmax(210px, .9fr) minmax(420px, 1.4fr) auto;
  align-items: center;
  gap: 15px;
  margin: 0 0 12px;
  padding: 15px 18px;
  border: 1px solid #efd4a3;
  border-radius: 15px;
  background: #fff9ec;
}
.patient-data-use-card.accepted { border-color: #b8dfd4; background: linear-gradient(90deg, #eef9f6, #fff 45%); }
.patient-data-use-symbol {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 11px;
  background: #d98b18;
  color: #fff;
  font-size: 20px;
  font-weight: 800;
}
.patient-data-use-card.accepted .patient-data-use-symbol { background: #0f9685; }
.patient-data-use-card strong,
.patient-data-use-card small { display: block; }
.patient-data-use-card strong { margin: 2px 0; }
.patient-data-use-card small { color: #607286; }
.patient-data-use-actions { display: flex; align-items: center; gap: 8px; }
.patient-data-use-actions form { margin: 0; }

@media (max-width: 700px) {
  .data-consent-proof dl { grid-template-columns: 1fr; }
  .patient-data-consent-banner { grid-template-columns: auto 1fr; }
  .patient-data-consent-banner a { grid-column: 1 / -1; text-align: center; }
  .patient-data-use-card { grid-template-columns: auto 1fr; }
  .patient-data-use-actions { grid-column: 1 / -1; flex-wrap: wrap; }
}
.patient-consent-card { display: grid; grid-template-columns: auto minmax(210px, .9fr) minmax(420px, 1.4fr) auto; gap: 15px; align-items: center; margin-bottom: 15px; padding: 15px 17px; border: 1px solid var(--line); border-radius: 15px; background: #fff; box-shadow: var(--shadow-sm); }
.patient-consent-card.signed { border-color: #b8dfd4; background: linear-gradient(90deg, #eef9f6, #fff 45%); }
.patient-consent-card.pending { border-color: #ecd9b6; background: linear-gradient(90deg, #fff8eb, #fff 45%); }
.patient-consent-symbol { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; color: #fff; background: #c08731; font-size: 18px; font-weight: 900; }
.patient-consent-card.signed .patient-consent-symbol { background: #158777; }
.patient-consent-copy { min-width: 0; display: grid; gap: 3px; }
.patient-consent-copy strong { color: var(--forest-950); font-size: 15px; }
.patient-consent-copy small { color: var(--muted); line-height: 1.4; }
.patient-consent-meta { min-width: 0; display: grid; grid-template-columns: minmax(130px, .8fr) minmax(190px, 1.2fr); gap: 18px; margin: 0; }
.patient-consent-meta > .patient-consent-meta-column { min-width: 0; display: grid; gap: 9px; }
.patient-consent-meta-column > div { min-width: 0; display: grid; gap: 3px; }
.patient-consent-meta dt { color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.patient-consent-meta dd { margin: 0; color: var(--forest-950); font-size: 11px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.patient-consent-actions { min-width: 174px; display: flex; align-items: center; gap: 7px; }
.patient-consent-verify, .patient-consent-view { width: 100%; display: inline-flex; align-items: center; justify-content: center; text-align: center; text-decoration: none; white-space: nowrap; }
.patient-consent-prepare { min-width: 190px; display: inline-flex; align-items: center; justify-content: center; text-align: center; text-decoration: none; white-space: nowrap; }
.patient-consent-pending-tag { justify-self: end; }
.patient-incorporation-records {
  margin-top: 18px;
  padding: 16px;
  border: 1px solid #dce5e1;
  border-radius: 17px;
  background: #f8faf9;
}
.patient-incorporation-records-header {
  margin-bottom: 13px;
  padding: 2px 2px 13px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid #e1e8e5;
}
.patient-incorporation-records-header h3 { margin: 2px 0 3px; color: var(--forest-950); font: 600 17px/1.2 "Fraunces", serif; }
.patient-incorporation-records-header p { margin: 0; color: var(--muted); font-size: 11px; }
.patient-incorporation-records-status { padding: 7px 11px; border-radius: 999px; color: #126355; background: #dff4ee; font-size: 10px; font-weight: 800; white-space: nowrap; }
.patient-incorporation-records .patient-incorporation-note:last-child { margin-bottom: 0; }
.patient-overview-grid { display: grid; grid-template-columns: minmax(270px, .68fr) minmax(560px, 1.72fr); gap: 15px; margin-bottom: 15px; align-items: stretch; }
.next-session-card { min-height: 265px; padding: 19px; border: 0; border-radius: var(--radius-lg); display: flex; flex-direction: column; color: white; background: var(--forest-900); box-shadow: 0 14px 35px rgba(22,60,53,.17); cursor: pointer; }
.next-session-card.empty { cursor: default; }
.next-session-card header { margin-bottom: 34px; display: flex; align-items: center; justify-content: space-between; }
.next-session-card .card-symbol { width: 37px; height: 37px; display: grid; place-items: center; border-radius: 11px; color: var(--forest-950); background: var(--peach); font-size: 18px; }
.next-session-card .card-symbol svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.next-session-card .tag { color: var(--forest-900); background: #dce9e4; }
.next-session-card .tag.coral { color: #7f3427; background: var(--coral-soft); }
.next-session-card .eyebrow { color: #a9c2ba; }
.next-session-date, .next-session-time, .next-session-card small { display: block; }
.next-session-date { max-width: 300px; font: 600 24px/1.2 "Fraunces", serif; }
.next-session-time { margin-top: 9px; color: #eaf2ee; font-size: 12px; font-weight: 700; }
.next-session-card small { margin-top: 28px; color: #a9c2ba; font-size: 9px; }
.next-session-card .text-button { margin-top: 18px; color: var(--peach); }
.next-session-register-button {
  width: 100%;
  min-height: 44px;
  margin-top: auto;
  padding: 0 16px;
  border: 1px solid rgba(255, 255, 255, .82);
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  color: var(--forest-950);
  background: #fff;
  cursor: pointer;
  font-size: 11px;
  font-weight: 800;
  box-shadow: 0 8px 18px rgba(0, 20, 44, .18);
  transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}
.next-session-register-button:hover:not(:disabled) { transform: translateY(-1px); background: #f5f5f5; box-shadow: 0 10px 22px rgba(0, 20, 44, .22); }
.next-session-register-button:focus-visible { outline: 3px solid rgba(255,255,255,.5); outline-offset: 2px; }
.patient-diary-card { min-height: 265px; }
.patient-diary-full { margin-top: 15px; }
.patient-mini-chart { height: 150px; padding: 17px 24px 0; display: grid; grid-template-columns: repeat(7,1fr); gap: 14px; align-items: end; }
.mini-chart-day { height: 100%; display: flex; flex-direction: column; justify-content: end; align-items: center; gap: 6px; }
.mini-bars { height: 112px; display: flex; align-items: end; gap: 4px; }
.mini-bars i { width: 11px; min-height: 3px; max-height: 100%; border-radius: 4px 4px 0 0; background: var(--forest-700); }
.mini-bars i:nth-child(2) { background: var(--coral); }
.mini-chart-day > span { color: var(--muted); font-size: 8px; }
.patient-chart-legend { margin: 8px 24px 0; }
.clinical-info-panel { margin-bottom: 15px; }
.patient-overview-grid .clinical-info-panel { margin-bottom: 0; }
.clinical-info-panel .panel-header .secondary-button { min-height: 34px; }
.clinical-info-actions {
  grid-column: 1 / -1;
  width: 100%;
  display: grid;
  grid-template-columns: repeat(4, minmax(135px, 1fr));
  gap: 10px;
}
.clinical-info-actions > button,
.clinical-info-actions > .tag {
  width: 100%;
  min-width: 0;
  min-height: 52px;
  padding: 10px 12px;
  justify-content: center;
  text-align: center;
  white-space: normal;
  line-height: 1.35;
}
.clinical-history-button {
  min-width: 0;
  min-height: 52px;
  padding: 10px 12px;
  border: 1px solid #b8dfe0;
  border-radius: 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  color: #073f78;
  background: #effafa;
  box-shadow: none;
  cursor: pointer;
  font: inherit;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
  transition: color .18s ease, transform .18s ease;
}
.clinical-history-button:hover {
  transform: translateX(2px);
  color: #087e75;
}
.clinical-history-button:focus-visible {
  outline: 3px solid rgba(32, 191, 178, .28);
  outline-offset: 2px;
}
.clinical-history-button-icon {
  width: 27px;
  height: 27px;
  flex: 0 0 auto;
  border-radius: 8px;
  display: grid;
  place-items: center;
  color: #073f78;
  background: #55d7cc;
}
.clinical-history-button-icon svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.clinical-history-button i {
  color: #0a9f94;
  font-size: 15px;
  font-style: normal;
}
.clinical-info-header {
  min-height: 78px;
  display: grid;
  grid-template-columns: minmax(190px, 1fr) auto;
  gap: 14px 18px;
  align-items: center;
}
.clinical-header-meta { margin-left: auto; display: flex; align-items: stretch; border: 1px solid var(--line); border-radius: 10px; background: #f8fafb; overflow: hidden; }
.clinical-header-meta > span { min-width: 128px; padding: 8px 12px; display: grid; align-content: center; }
.clinical-header-meta > span + span { border-left: 1px solid var(--line); }
.clinical-header-meta small, .clinical-header-meta strong { display: block; }
.clinical-header-meta small { margin-bottom: 3px; color: var(--muted); font-size: 7px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.clinical-header-meta strong { color: var(--forest-950); font-size: 9px; }
.clinical-info-grid { padding: 7px 17px 17px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.clinical-field { min-height: 90px; padding: 15px 14px; display: grid; grid-template-columns: 29px 1fr; gap: 10px; align-items: start; border-right: 1px solid #e8e9e3; border-bottom: 1px solid #e8e9e3; }
.clinical-field:nth-child(3n) { border-right: 0; }
.clinical-field:nth-last-child(-n+3) { border-bottom: 0; }
.clinical-icon { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 9px; color: var(--forest-700); background: var(--forest-50); font-size: 13px; font-weight: 700; }
.clinical-field small, .clinical-field strong { display: block; }
.clinical-field small { margin-bottom: 6px; color: var(--muted); font-size: 8px; font-weight: 700; text-transform: uppercase; letter-spacing: .055em; }
.clinical-field strong { color: var(--ink); font-size: 10px; font-weight: 600; line-height: 1.5; }
.clinical-field strong { white-space: pre-line; }
.clinical-risk-overview { background: #fffafa; }
.clinical-risk-overview .clinical-icon { color: #a63e3e; background: #fceaea; }
.clinical-field ul { margin: 0; padding-left: 14px; color: var(--ink); font-size: 10px; font-weight: 600; line-height: 1.6; }
.clinical-field .tag { display: inline-flex; }
.patient-detail-lower { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; align-items: stretch; }
.patient-detail-widgets-grid { grid-auto-rows: minmax(0, 1fr); }
.patient-detail-note-row { margin-top: 15px; grid-template-columns: minmax(0, 1fr); }
.patient-detail-lower > .patient-tasks-panel,
.patient-detail-lower > .patient-metrics-panel,
.patient-detail-lower > .patient-sessions-panel,
.patient-detail-lower > .patient-next-session-note-professional,
.patient-detail-lower > .patient-attachments-panel { min-width: 0; height: 100%; }
.patient-detail-lower > .panel > .panel-header {
  min-height: 86px;
  padding-block: 14px;
  align-items: center;
}
.patient-detail-lower > .panel > .panel-header > div:first-child {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-block: 3px;
}
.patient-attachments-panel { margin-top: 15px; display: flex; flex-direction: column; overflow: hidden; }
.patient-detail-lower > .patient-attachments-panel { margin-top: 0; }
.patient-next-session-note-professional { grid-column: 1 / -1; overflow: hidden; border-color: #b9ded8; background: linear-gradient(110deg, #eef9f6, #fff 66%); }
.patient-next-session-note-professional .panel-header { border-bottom-color: #cfe6e1; }
.patient-next-session-note-date { padding: 6px 9px; border-radius: 999px; color: #126b62; background: #dff3ee; font-size: 9px; font-weight: 750; white-space: nowrap; }
.patient-next-session-note-professional-body { min-height: 90px; padding: 20px 22px; display: flex; align-items: flex-start; gap: 13px; }
.patient-next-session-note-professional-body > span { color: #169184; font: 700 42px/1 Georgia, serif; }
.patient-next-session-note-professional-body p { margin: 0; color: #173e55; font-size: 13px; line-height: 1.65; white-space: pre-line; }
.patient-next-session-note-professional.is-empty { border-color: var(--line); background: #fff; }
.patient-next-session-note-professional.is-empty .patient-next-session-note-professional-body p { color: var(--muted); }
.patient-attachment-actions { display: flex; align-items: center; gap: 8px; }
.patient-attachment-list { min-height: 0; padding: 12px 16px; display: grid; align-content: start; gap: 8px; }
.patient-attachment-list.is-empty,
.patient-attachment-list.is-loading { flex: 1; display: flex; align-items: stretch; }
.patient-attachment-row {
  min-height: 68px;
  padding: 10px 12px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  border: 1px solid #dde7e5;
  border-radius: 13px;
  background: #fbfdfc;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.patient-attachment-row:hover { transform: translateY(-1px); border-color: #b9d6d1; box-shadow: 0 7px 18px rgba(5,47,95,.07); }
.patient-attachment-icon {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  color: #073f78;
  background: #e9f4fa;
}
.patient-attachment-icon.image {
  color: #087e75;
  background: #e5f8f5;
}
.patient-attachment-icon svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.patient-attachment-row strong,
.patient-attachment-row small { display: block; }
.patient-attachment-row strong {
  overflow: hidden;
  color: var(--forest-950);
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.patient-attachment-row small {
  margin-top: 4px;
  color: var(--muted);
  font-size: 8px;
}
.patient-attachment-row-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
}
.patient-attachment-action {
  min-height: 35px;
  padding: 0 11px;
  border: 1px solid #cbdbe3;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  color: #073f78;
  background: #fff;
  text-decoration: none;
  font-size: 9px;
  font-weight: 800;
  transition: transform .18s ease, border-color .18s ease, color .18s ease, background .18s ease, box-shadow .18s ease;
}
.patient-attachment-action svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.patient-attachment-action.view {
  border-color: #084a84;
  color: #fff;
  background: #084a84;
  box-shadow: 0 6px 14px rgba(7, 63, 120, .14);
}
.patient-attachment-action.download {
  color: #087e75;
  background: #f4fbfa;
}
.patient-attachment-action:hover {
  transform: translateY(-1px);
  border-color: #0a9f94;
}
.patient-attachment-action.view:hover {
  border-color: #063b70;
  background: #063b70;
  box-shadow: 0 8px 18px rgba(7, 63, 120, .2);
}
.patient-attachment-action.download:hover {
  color: #065f59;
  background: #e8f7f4;
}
.patient-attachment-action:focus-visible {
  outline: 3px solid rgba(32, 191, 178, .25);
  outline-offset: 2px;
}
.patient-attachment-loading {
  width: 100%;
  min-height: 220px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 9px;
  color: var(--muted);
}
.patient-attachment-loading span {
  width: 24px;
  height: 24px;
  border: 3px solid #d9e7ed;
  border-top-color: #0a9f94;
  border-radius: 50%;
  animation: attachment-spin .8s linear infinite;
}
.patient-attachment-loading p { margin: 0; font-size: 9px; }
.empty-state.patient-attachment-empty {
  width: 100%;
  min-height: 235px;
  padding: 28px 20px;
  border: 1px dashed #b8d4d0;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 14px;
  background: linear-gradient(145deg, #fbfefd 0%, #f1f8f7 100%);
}
.patient-attachment-empty-icon {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border: 1px solid #cce4e0;
  border-radius: 18px;
  color: #087e75;
  background: #e4f6f3;
  box-shadow: 0 8px 20px rgba(8,126,117,.09);
}
.patient-attachment-empty-icon svg { width: 27px; height: 27px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.patient-attachment-empty > div { display: grid; justify-items: center; gap: 6px; }
.empty-state.patient-attachment-empty h3 { margin: 0; font-size: 18px; }
.empty-state.patient-attachment-empty p { max-width: 360px; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; text-align: center; }
.patient-attachment-empty-formats { display: flex; align-items: center; justify-content: center; gap: 6px; flex-wrap: wrap; }
.patient-attachment-empty-formats b { padding: 5px 9px; border: 1px solid #d5e7e4; border-radius: 999px; color: #456273; background: rgba(255,255,255,.82); font-size: 9px; }
.patient-attachments-footer {
  margin-top: auto;
  padding: 10px 17px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  background: #f5f9f8;
  font-size: 8px;
}
.patient-attachments-footer strong { color: #456273; }
@keyframes attachment-spin { to { transform: rotate(360deg); } }
.patient-skill-strip { padding: 14px 17px 7px; display: flex; flex-wrap: wrap; gap: 6px; }
.patient-task-list { padding: 3px 17px 14px; }
.clinical-task-list { padding: 10px 17px 16px; display: grid; gap: 8px; }
.clinical-task-list .task-response-row,
.patient-metrics-panel .patient-questionnaire-assignment {
  min-height: 58px;
  padding: 10px 10px;
  border: 1px solid #e0e8e5;
  border-radius: 11px;
  color: var(--ink);
  background: #fff;
  box-shadow: 0 2px 7px rgba(17, 54, 72, .035);
}
.clinical-task-list .task-response-row:last-child,
.patient-metrics-panel .patient-questionnaire-assignment:last-child { border-bottom: 1px solid #e0e8e5; }
.clinical-task-list .task-response-row:hover,
.patient-metrics-panel .patient-questionnaire-assignment:hover { border-color: #bfd8d4; background: #fbfefd; }
.patient-clinical-task-actions { display: flex; align-items: center; gap: 9px; }
.patient-clinical-task-actions .primary-button { min-height: 34px; padding: 0 11px; font-size: 10px; }
.patient-clinical-task-summary { grid-template-columns: repeat(4,minmax(0,1fr)); }
.patient-clinical-task-history { overflow: hidden; }
.patient-clinical-assignment-list { padding: 0 18px 18px; }
.patient-clinical-assignment { padding: 16px 0; display: grid; grid-template-columns: 28px minmax(0,1fr); align-items: start; gap: 11px; border-bottom: 1px solid var(--line); }
.patient-clinical-assignment:last-child { border-bottom: 0; }
.patient-clinical-assignment-main { min-width: 0; }
.patient-clinical-assignment-main > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.patient-clinical-assignment-main > div:first-child > strong { color: var(--forest-950); font-size: 12px; }
.patient-clinical-assignment-main > p { margin: 6px 0 11px; color: var(--muted); font-size: 9px; line-height: 1.55; }
.patient-clinical-assignment-meta { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.patient-clinical-assignment-meta span { padding: 8px 9px; border-radius: 9px; color: var(--ink); background: #f5f8f9; font-size: 9px; line-height: 1.4; }
.patient-clinical-assignment-meta b { margin-bottom: 3px; display: block; color: var(--muted); font-size: 7px; text-transform: uppercase; letter-spacing: .05em; }
.patient-task-row { min-height: 57px; display: grid; grid-template-columns: 25px 1fr auto; gap: 9px; align-items: center; border-bottom: 1px solid #e9e9e4; }
.patient-task-row:last-child { border-bottom: 0; }
.task-check { width: 21px; height: 21px; display: grid; place-items: center; border: 1px solid #cdd3cf; border-radius: 7px; color: white; font-size: 9px; }
.task-check.done { border-color: var(--forest-700); background: var(--forest-700); }
.patient-task-row strong, .patient-task-row small { display: block; }
.patient-task-row strong { font-size: 10px; }
.patient-task-row small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.patient-task-row > div,
.patient-questionnaire-open > div,
.session-row-main {
  min-width: 0;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-block: 3px;
}
.patient-questionnaire-assignment { grid-template-columns: 1fr auto; gap: 12px; padding: 0; }
.patient-metrics-panel .patient-questionnaire-assignment {
  padding: 0;
  overflow: hidden;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease;
}
.patient-metrics-panel .patient-questionnaire-assignment:hover {
  transform: translateY(-1px);
  box-shadow: 0 5px 14px rgba(5, 47, 95, .06);
}
.patient-questionnaire-open { width: 100%; min-width: 0; min-height: 58px; display: grid; grid-template-columns: 25px 1fr auto; gap: 9px; align-items: center; border: 0; padding: 9px; color: inherit; text-align: left; background: transparent; border-radius: 12px; cursor: pointer; }
.patient-questionnaire-open:hover, .patient-questionnaire-open:focus-visible { background: #f2f8f8; outline: none; }
.questionnaire-score-summary { display: grid; gap: 9px; padding: 18px; margin-bottom: 18px; border: 1px solid #b9ded8; border-radius: 16px; background: #f2fbf9; }
.questionnaire-score-summary h3, .questionnaire-score-summary p { margin: 0; }
.questionnaire-score-summary small { color: var(--muted); }
.questionnaire-response-list, .questionnaire-pending-results { display: grid; gap: 10px; }
.questionnaire-response-item { padding: 14px 16px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.questionnaire-response-item small, .questionnaire-response-item strong { display: block; }
.questionnaire-response-item small { margin-bottom: 5px; color: var(--muted); text-transform: uppercase; letter-spacing: .08em; }
.questionnaire-response-item p { margin: 9px 0 0; padding: 10px 12px; border-radius: 9px; background: #f5f8f9; white-space: pre-wrap; }
.task-row-actions, .task-card-actions { display: flex; align-items: center; justify-content: flex-end; gap: 7px; }
.task-delete-button { width: 27px; height: 27px; flex: 0 0 auto; border: 1px solid #ead5d5; border-radius: 8px; display: grid; place-items: center; color: #a34848; background: #fff8f8; cursor: pointer; font-size: 17px; line-height: 1; transition: .18s ease; }
.task-delete-button:hover { border-color: #d96061; color: white; background: var(--coral); }
.patient-session-list { max-height: 360px; padding: 4px 17px 13px; overflow-y: auto; scrollbar-color: var(--forest-100) transparent; scrollbar-width: thin; }
.patient-widget-page-list {
  height: 430px;
  min-height: 430px;
  align-content: start;
  overflow: hidden;
}
.patient-widget-page-list.clinical-task-list,
.patient-widget-page-list.patient-session-list {
  padding-top: 12px;
  padding-bottom: 12px;
}
.patient-widget-page-list.patient-session-list {
  max-height: none;
  display: grid;
  grid-auto-rows: 61px;
  gap: 7px;
  overflow: hidden;
}
.patient-widget-page-list > .empty-state {
  height: 100%;
  min-height: 0;
  display: grid;
  place-content: center;
}
.patient-widget-pagination {
  min-height: 46px;
  padding: 7px 17px 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-top: 1px solid var(--line);
}
.patient-widget-pagination.is-inactive { visibility: hidden; }
.patient-widget-pagination button {
  width: 31px;
  height: 31px;
  border: 1px solid #cfdde3;
  border-radius: 9px;
  display: grid;
  place-items: center;
  color: var(--forest-900);
  background: #fff;
  cursor: pointer;
  font-size: 13px;
  font-weight: 700;
}
.patient-widget-pagination button:hover:not(:disabled) {
  border-color: var(--forest-700);
  background: var(--forest-50);
}
.patient-widget-pagination button:disabled { opacity: .38; cursor: default; }
.patient-widget-pagination span { min-width: 82px; color: var(--muted); text-align: center; font-size: 9px; font-weight: 700; }
.patient-session-row { width: 100%; min-height: 0; height: 61px; border: 1px solid #e0e8e5; border-radius: 11px; padding: 8px 10px; display: grid; grid-template-columns: 41px 1fr auto 14px; gap: 10px; align-items: center; background: #fff; text-align: left; cursor: pointer; transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease; }
.patient-session-row:hover { transform: translateY(-1px); border-color: #b9d6d1; background: #f8fcfb; box-shadow: 0 5px 14px rgba(5,47,95,.06); }
.session-date-box { width: 38px; height: 43px; display: grid; place-items: center; align-content: center; border-radius: 10px; background: var(--forest-50); color: var(--forest-800); }
.session-date-box strong, .session-date-box small { display: block; }
.session-date-box strong { font: 600 15px/1 "Fraunces", serif; }
.session-date-box small { margin-top: 3px; font-size: 7px; text-transform: uppercase; }
.session-row-main strong, .session-row-main small { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.session-row-main strong { font-size: 10px; }
.session-row-main small { margin-top: 4px; color: var(--muted); font-size: 8px; }
.row-arrow { color: var(--muted); font-size: 18px; }

.session-editor-heading { margin-bottom: 18px; display: flex; align-items: center; gap: 15px; }
.session-editor-heading h2 { margin: 0 0 4px; font: 600 27px/1.1 "Fraunces", serif; color: var(--forest-950); }
.session-editor-heading p { margin: 0; color: var(--muted); font-size: 10px; }
.session-editor-layout { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 15px; align-items: start; }
.session-editor-form-card { overflow: visible; }
.session-editor-form { padding: 18px; }
.session-editor-form > .form-field { align-content: start; }
.session-editor-form > .form-field > input[type="datetime-local"] { min-height: 48px; }
.session-editor-form #session-state { min-height: 245px; }
.session-optional-field[hidden],
.session-optional-fields [hidden] {
  display: none;
}
.session-optional-field {
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
}
.session-optional-field-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 8px;
}
.session-optional-field-header label {
  margin: 0;
}
.session-optional-field .risk-warning {
  margin-bottom: 12px;
}
.session-optional-field textarea {
  min-height: 130px;
}
.clinical-record-stats {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.clinical-record-task-list {
  display: grid;
  gap: 9px;
}
.clinical-record-task-list article {
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #f7fafb;
}
.clinical-record-task-list strong,
.clinical-record-task-list small {
  display: block;
}
.clinical-record-task-list strong {
  color: var(--forest-950);
  font-size: 11px;
}
.clinical-record-task-list small {
  margin-top: 5px;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.55;
}
.clinical-record-signature {
  margin-top: 16px;
  padding: 17px;
  display: grid;
  grid-template-columns: minmax(210px, .7fr) minmax(360px, 1.3fr);
  gap: 18px;
  align-items: center;
  border: 1px solid #bdd9e7;
  border-radius: 13px;
  background: #f2f9fc;
}
.clinical-record-signature h4,
.clinical-record-signature p {
  margin: 0;
}
.clinical-record-signature h4 {
  margin-top: 4px;
  color: var(--forest-950);
  font: 600 15px "Fraunces", serif;
}
.clinical-record-signature p,
.clinical-record-signature small {
  margin-top: 5px;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.5;
}
.clinical-record-signature-pad {
  display: grid;
  justify-items: end;
  gap: 6px;
}
.clinical-record-signature canvas {
  width: 100%;
  height: 135px;
  touch-action: none;
  border: 2px dashed #b9cbd5;
  border-radius: 11px;
  background: #fff;
  cursor: crosshair;
}
.clinical-record-signature canvas:focus,
.clinical-record-signature canvas.signature-error {
  outline: 3px solid rgba(205, 87, 64, .18);
  border-color: #cd5740;
}
.clinical-record-signature.signed {
  grid-template-columns: minmax(220px, 1fr) 260px;
  border-color: #b8dfd4;
  background: #eef9f6;
}
.clinical-record-signature.signed strong,
.clinical-record-signature.signed small {
  display: block;
}
.clinical-record-signature.signed strong {
  margin-top: 5px;
  color: var(--forest-950);
}
.clinical-record-signature.signed img {
  width: 100%;
  height: 90px;
  object-fit: contain;
  border-bottom: 1px solid #b8d5cf;
  background: #fff;
}
.readonly-patient-field { min-height: 48px; padding: 6px 10px; display: grid; grid-template-columns: 31px 1fr 20px; gap: 9px; align-items: center; border: 1px solid var(--line); border-radius: 10px; background: #f4f8fa; }
.readonly-patient-field .patient-avatar { width: 30px; height: 30px; border-radius: 9px; font-size: 9px; }
.readonly-patient-field strong, .readonly-patient-field small { display: block; }
.readonly-patient-field strong { color: var(--forest-950); font-size: 10px; }
.readonly-patient-field small { margin-top: 2px; color: var(--muted); font-size: 8px; }
.readonly-patient-field i { color: var(--peach); font-size: 14px; font-style: normal; text-align: center; }
.session-save-indicators { display: flex; align-items: center; gap: 9px; }
.autosave-status { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); font-size: 8px; font-weight: 700; white-space: nowrap; }
.autosave-status i { width: 7px; height: 7px; border-radius: 50%; background: var(--peach); box-shadow: 0 0 0 3px rgba(32,191,178,.12); }
.session-context-sidebar { position: sticky; top: 135px; display: grid; gap: 12px; }
.context-widget { padding: 16px; }
.context-widget h3 { margin: 0 0 4px; font: 600 15px/1.2 "Fraunces", serif; color: var(--forest-950); }
.context-widget p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.clinical-access-widget { display: grid; grid-template-columns: 34px 1fr; gap: 10px; align-items: start; }
.clinical-access-widget .secondary-button { grid-column: 1 / -1; width: 100%; margin-top: 3px; }
.context-widget-icon { width: 33px; height: 33px; display: grid; place-items: center; border-radius: 10px; color: var(--forest-800); background: var(--forest-50); font: 600 15px "Fraunces", serif; }
.context-widget-header { margin-bottom: 12px; display: flex; justify-content: space-between; align-items: start; gap: 8px; }
.context-skills { margin-bottom: 8px; display: flex; flex-wrap: wrap; gap: 5px; }
.context-task-list { display: grid; }
.context-task { min-height: 49px; display: grid; grid-template-columns: 22px 1fr; gap: 8px; align-items: center; border-top: 1px solid #e9e9e4; }
.context-task.clinical { grid-template-columns: 22px minmax(0,1fr) auto; }
.context-task.clinical .tag { padding: 4px 6px; font-size: 7px; }
.context-task strong, .context-task small { display: block; }
.context-task strong { font-size: 9px; }
.context-task small { margin-top: 2px; color: var(--muted); font-size: 7px; }
.context-diary-chart { height: 95px; display: grid; grid-template-columns: repeat(7,1fr); gap: 5px; align-items: end; }
.context-diary-chart > div { height: 82px; display: flex; flex-direction: column; justify-content: end; align-items: center; gap: 4px; }
.context-bars { height: 65px; display: flex; align-items: end; gap: 2px; }
.context-bars i { width: 6px; min-height: 2px; border-radius: 3px 3px 0 0; background: var(--forest-700); }
.context-bars i:nth-child(2) { background: var(--coral); }
.context-diary-chart small { color: var(--muted); font-size: 7px; }
.context-session-list { max-height: 285px; overflow-y: auto; scrollbar-color: var(--forest-100) transparent; scrollbar-width: thin; }
.context-session-row { width: 100%; min-height: 56px; border: 0; border-top: 1px solid #e9e9e4; padding: 6px 0; display: grid; grid-template-columns: 38px 1fr 12px; gap: 8px; align-items: center; background: transparent; text-align: left; cursor: pointer; }
.context-session-row:hover { background: #f8fafb; }
.context-session-row > span:nth-child(2) { min-width: 0; }
.context-session-row > span:nth-child(2) strong,
.context-session-row > span:nth-child(2) small { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.context-session-row > span:nth-child(2) strong { font-size: 9px; }
.context-session-row > span:nth-child(2) small { margin-top: 3px; color: var(--muted); font-size: 7px; }
button:disabled { cursor: not-allowed; opacity: .5; }

.data-table-wrap { border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); overflow-x: auto; box-shadow: var(--shadow-sm); }
.data-table { width: 100%; border-collapse: collapse; min-width: 680px; }
.data-table th { padding: 12px 16px; color: var(--muted); background: #f7f6f1; text-align: left; font-size: 9px; text-transform: uppercase; letter-spacing: .06em; }
.data-table td { padding: 14px 16px; border-top: 1px solid #e7e8e2; font-size: 11px; }
.data-table tbody tr { cursor: pointer; }
.data-table tbody tr:hover { background: #fbfbf8; }
.session-header-sort { min-height: 30px; border: 0; border-radius: 8px; padding: 0 8px; display: inline-flex; align-items: center; gap: 7px; color: inherit; background: transparent; cursor: pointer; font: inherit; font-weight: 800; letter-spacing: inherit; text-transform: inherit; }
.session-header-sort:hover { color: var(--forest-900); background: #e9f1ef; }
.session-header-sort span { width: 20px; height: 20px; display: grid; place-items: center; border-radius: 6px; color: var(--forest-700); background: #e3efed; font-size: 12px; line-height: 1; }
.session-header-sort.active { color: var(--forest-900); }
.session-header-sort.active span { color: #fff; background: var(--forest-800); }
.session-date-heading { display: flex; align-items: center; gap: 6px; }
.session-header-date-filter { position: relative; width: 34px; height: 30px; display: block; border: 1px solid #d7dfdc; border-radius: 8px; color: var(--forest-700); background: #fff; cursor: pointer; overflow: hidden; }
.session-header-date-filter:hover,
.session-header-date-filter.active { border-color: var(--teal); color: var(--forest-900); background: var(--forest-50); }
.session-header-date-filter > span { position: absolute; inset: 0; display: grid; place-items: center; font-size: 14px; pointer-events: none; }
.session-header-date-filter input { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; padding: 0; opacity: 0; cursor: pointer; }
.session-date-clear { width: 26px; height: 26px; border: 0; border-radius: 7px; color: #9c4b3d; background: #fbe8e3; cursor: pointer; font-size: 16px; line-height: 1; }
.session-records-table { min-width: 520px; }
.table-pagination { margin-top: 13px; padding: 11px 14px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); }
.table-pagination p { margin: 0; color: var(--muted); font-size: 9px; }
.table-pagination p strong { color: var(--forest-900); }
.table-pagination > div { display: flex; align-items: center; gap: 10px; }
.table-pagination > div > span { min-width: 90px; color: var(--muted); text-align: center; font-size: 9px; }
.table-pagination .secondary-button { min-height: 34px; padding: 0 12px; font-size: 9px; }
.person-cell { display: flex; align-items: center; gap: 9px; }
.person-cell strong, .person-cell small { display: block; }
.person-cell small { margin-top: 2px; color: var(--muted); font-size: 9px; }
.empty-state { padding: 50px 20px; text-align: center; color: var(--muted); }
.empty-state .empty-icon { width: 48px; height: 48px; margin: 0 auto 13px; display: grid; place-items: center; border-radius: 15px; color: var(--forest-700); background: var(--forest-50); font-size: 24px; }
.empty-state h3 { margin-bottom: 6px; color: var(--forest-950); font: 600 18px "Fraunces", serif; }
.empty-state p { margin: 0 auto 16px; max-width: 390px; font-size: 11px; line-height: 1.6; }
.patient-empty-state .empty-icon { width: 62px; height: 62px; margin-bottom: 18px; border-radius: 18px; font-size: 30px; }
.patient-empty-state .ui-empty-state__icon { width: 62px; height: 62px; margin-bottom: 18px; border-radius: 18px; color: var(--forest-800); background: linear-gradient(145deg, #e2f4f4, #edf7fb); box-shadow: 0 10px 24px rgba(13, 83, 113, .08); }
.patient-empty-state .ui-empty-state__icon .semantic-icon { width: 28px; height: 28px; stroke-width: 1.7; }
.patient-empty-state h3 { margin-bottom: 10px; font-size: 28px; line-height: 1.15; }
.patient-empty-state p { max-width: 560px; font-size: 17px; line-height: 1.65; }

.calendar-toolbar { margin-bottom: 16px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.calendar-nav { display: flex; align-items: center; gap: 6px; }
.calendar-title { min-width: 220px; margin: 0 8px; font: 600 21px/1.2 "Fraunces", serif; color: var(--forest-950); text-align: center; }
.segmented-control { margin-left: auto; padding: 3px; display: flex; border: 1px solid var(--line); border-radius: 11px; background: var(--paper); }
.segmented-control button { min-height: 33px; border: 0; border-radius: 8px; padding: 0 13px; color: var(--muted); background: transparent; cursor: pointer; font-size: 10px; font-weight: 700; }
.segmented-control button.active { color: white; background: var(--forest-900); box-shadow: 0 3px 9px rgba(22,60,53,.17); }
.calendar-shell { border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); box-shadow: var(--shadow-sm); overflow: hidden; }
.calendar-weekdays { display: grid; grid-template-columns: repeat(7, 1fr); border-bottom: 1px solid var(--line); background: #f7f6f1; }
.calendar-weekdays span { padding: 10px 8px; color: var(--muted); text-align: center; font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.month-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.month-day { min-height: 118px; border: 0; border-right: 1px solid #e7e8e2; border-bottom: 1px solid #e7e8e2; padding: 8px; background: var(--paper); text-align: left; cursor: pointer; overflow: hidden; }
.month-day:nth-child(7n) { border-right: 0; }
.month-day:hover { background: #fafbf8; }
.month-day.outside { background: #f8f7f3; color: #a3aaa6; }
.month-day.today { box-shadow: inset 0 0 0 2px var(--peach); }
.day-number { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 50%; font-size: 10px; font-weight: 700; }
.month-day.today .day-number { color: var(--forest-950); background: var(--peach); }
.day-events { margin-top: 5px; display: grid; gap: 4px; }
.calendar-event { min-width: 0; border: 0; border-left: 3px solid var(--forest-700); border-radius: 5px; padding: 5px 6px; color: var(--forest-900); background: var(--forest-50); text-align: left; cursor: pointer; font-size: 8px; line-height: 1.25; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.status-confirmed { --appointment-accent: #1859b8; --appointment-ink: #092f68; --appointment-bg: #dce9ff; }
.status-reserved { --appointment-accent: #6d32bd; --appointment-ink: #3d176f; --appointment-bg: #eadfff; }
.status-reserved-approval { --appointment-accent: #a43f86; --appointment-ink: #7c2c63; --appointment-bg: #fae8f5; }
.status-pending-payment { --appointment-accent: #b87500; --appointment-ink: #76500a; --appointment-bg: #fff0c7; }
.status-payment-review { --appointment-accent: #d45c16; --appointment-ink: #884015; --appointment-bg: #ffeadc; }
.status-payment-overdue { --appointment-accent: #b23a2d; --appointment-ink: #7d2920; --appointment-bg: #fde6df; }
.status-completed { --appointment-accent: #087a50; --appointment-ink: #064b34; --appointment-bg: #d9f3e6; }
.status-no-show { --appointment-accent: #c02650; --appointment-ink: #741630; --appointment-bg: #fde0e8; }
.status-cancelled { --appointment-accent: #66717c; --appointment-ink: #303842; --appointment-bg: #e3e7eb; }
.status-rejected { --appointment-accent: #8b304d; --appointment-ink: #642338; --appointment-bg: #f4e3e9; }
.status-expired { --appointment-accent: #795548; --appointment-ink: #5a3f36; --appointment-bg: #eee6e2; }
.calendar-event[class*="status-"] {
  border: 1px solid var(--appointment-accent);
  border-left-width: 5px;
  color: var(--appointment-ink);
  background: var(--appointment-bg);
}
.calendar-event.coral { border-left-color: var(--coral); color: #8d4437; background: var(--coral-soft); }
.calendar-event.blue { border-left-color: var(--blue); color: #476681; background: var(--blue-soft); }
.calendar-event.gold { border-left-color: #c99349; color: #855a23; background: var(--gold-soft); }
.calendar-event.cancelled { border-color: var(--appointment-accent); color: var(--appointment-ink); background: var(--appointment-bg); text-decoration: line-through; opacity: 1; }
.calendar-event strong { margin-right: 4px; font-weight: 800; }
.calendar-event.google-imported-block { color: #32475b; background: repeating-linear-gradient(135deg, #e6edf1, #e6edf1 8px, #dce6eb 8px, #dce6eb 16px); border-color: #9cafba; }
.calendar-event.google-imported-block::before { background: #647b89; }
.more-events { padding-left: 5px; color: var(--muted); font-size: 8px; font-weight: 700; }
.time-calendar { overflow-x: auto; }
.time-grid { min-width: 760px; display: grid; grid-template-columns: 58px repeat(var(--calendar-days), minmax(100px, 1fr)); }
.time-grid-header { position: sticky; top: 0; z-index: 4; border-bottom: 2px solid #c5d0cd; background: var(--paper); }
.time-corner { min-height: 55px; border-right: 1px solid #c5d0cd; }
.time-day-header { min-height: 55px; padding: 9px; border-right: 1px solid #cdd6d3; text-align: center; }
.time-day-header:last-child { border-right: 0; }
.time-day-header span, .time-day-header strong { display: block; }
.time-day-header span { color: var(--muted); font-size: 8px; font-weight: 700; text-transform: uppercase; }
.time-day-header strong { margin-top: 4px; font: 600 17px "Fraunces", serif; }
.time-day-header.today strong { width: 29px; height: 29px; margin: 2px auto 0; display: grid; place-items: center; border-radius: 50%; background: var(--peach); }
.time-label { min-height: 58px; padding: 7px 8px 0 0; border-right: 1px solid var(--line); border-bottom: 1px solid #eff0ec; color: var(--muted); text-align: right; font-size: 8px; }
.time-slot { position: relative; min-height: 58px; border-right: 1px solid #e7e8e2; border-bottom: 1px solid #eff0ec; background: var(--paper); cursor: pointer; }
.time-slot:hover { background: #f8faf7; }
.time-slot .calendar-event { position: absolute; inset: 3px 4px auto; z-index: 2; min-height: 50px; padding: 7px; white-space: normal; }
.time-slot .calendar-event small { display: block; margin-top: 3px; opacity: .72; }
.timeline-grid { min-width: 760px; display: grid; grid-template-columns: 58px repeat(var(--calendar-days), minmax(100px, 1fr)); align-items: start; }
.timeline-axis { height: var(--timeline-height); border-right: 1px solid #bcc9c5; background: #f8faf9; }
.timeline-axis-mark { height: 36px; padding: 5px 8px 0 0; color: #35536a; text-align: right; font-size: 8px; font-weight: 800; }
.timeline-axis-mark.half { border-top: 1px dashed #d2dbd8; }
.timeline-day-column { position: relative; height: var(--timeline-height); border-right: 1px solid #cbd5d2; background-color: var(--paper); background-image: repeating-linear-gradient(to bottom, transparent 0, transparent 35px, #d3ddda 35px, #d3ddda 36px, transparent 36px, transparent 71px, #b9c8c4 71px, #b9c8c4 72px); }
.timeline-day-column:last-child { border-right: 0; }
.timeline-day-column.today { background-color: #fbfffe; }
.timeline-slot { position: relative; z-index: 1; width: 100%; height: 36px; display: block; border: 0; padding: 0; background: transparent; cursor: pointer; }
.timeline-slot:hover { background: rgba(32,191,178,.07); }
.timeline-slot:focus-visible { z-index: 4; outline: 2px solid var(--peach); outline-offset: -2px; }
.timeline-day-column .calendar-event { position: absolute; left: 4px; right: 4px; z-index: 3; min-height: 0; padding: 6px 24px 6px 8px; white-space: normal; box-shadow: 0 3px 9px rgba(5,47,95,.14); }
.timeline-day-column .calendar-event small { display: block; margin-top: 3px; color: inherit; opacity: .88; font-weight: 600; }
.calendar-event-menu { position: absolute; top: 5px; right: 6px; font-size: 8px; line-height: 1; letter-spacing: -1px; opacity: .62; }
.timeline-day-column .calendar-event.is-current { z-index: 5; }
.calendar-now-line { position: absolute; left: 0; right: 0; z-index: 6; height: 2px; pointer-events: none; background: #e04f56; box-shadow: 0 1px 3px rgba(224,79,86,.2); }
.calendar-now-line::before { content: ""; position: absolute; left: -4px; top: -3px; width: 8px; height: 8px; border-radius: 50%; background: #e04f56; }
.calendar-now-line span { position: absolute; left: 4px; top: -17px; padding: 1px 4px; border-radius: 4px; color: white; background: #e04f56; font-size: 7px; font-weight: 800; }
.day-agenda { display: grid; grid-template-columns: minmax(0,1fr) 260px; }
.day-agenda .time-grid { min-width: 0; grid-template-columns: 58px 1fr; }
.day-agenda .timeline-grid { min-width: 0; }
.day-summary { padding: 18px; border-left: 1px solid var(--line); background: #faf9f5; }
.day-summary h3 { margin-bottom: 5px; font: 600 17px "Fraunces", serif; }
.day-summary > p { color: var(--muted); font-size: 9px; line-height: 1.5; }
.agenda-summary-item { margin-top: 10px; padding: 11px; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); cursor: pointer; }
.agenda-summary-item[class*="status-"] { border-left: 4px solid var(--appointment-accent); background: var(--appointment-bg); }
.agenda-summary-item.google-imported-block { border-left: 4px solid #9cafba; background: repeating-linear-gradient(135deg, #f2f5f7, #f2f5f7 8px, #e8eef1 8px, #e8eef1 16px); }
.agenda-summary-item strong, .agenda-summary-item small { display: block; }
.agenda-summary-item strong { font-size: 10px; }
.agenda-summary-item small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.calendar-legend { margin-top: 12px; padding: 12px 14px; display: flex; gap: 10px 16px; flex-wrap: wrap; border: 1px solid var(--line); border-radius: 12px; color: var(--muted); background: var(--paper); font-size: 9px; }
.calendar-legend span { display: inline-flex; align-items: center; gap: 5px; }
.calendar-legend i { width: 13px; height: 13px; flex: 0 0 13px; border: 1px solid transparent; border-left-width: 4px; border-radius: 4px; }
.calendar-legend i[class*="status-"] { border-color: var(--appointment-accent); background: var(--appointment-bg); }
.calendar-legend i.google-imported-block { border-color: #9cafba; background: repeating-linear-gradient(135deg, #e6edf1, #e6edf1 4px, #d5e0e6 4px, #d5e0e6 8px); }
.calendar-legend + .appointment-receipts-panel { margin-top: 16px; }

.diary-layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 15px; }
.patient-picker { padding: 10px; }
.picker-item { width: 100%; border: 0; padding: 10px; display: flex; gap: 9px; align-items: center; border-radius: 11px; background: transparent; text-align: left; cursor: pointer; }
.picker-item:hover, .picker-item.active { background: var(--forest-50); }
.picker-item strong, .picker-item small { display: block; }
.picker-item strong { font-size: 10px; }
.picker-item small { margin-top: 2px; font-size: 8px; color: var(--muted); }
.week-chart { padding: 20px; }
.chart-legend { display: flex; gap: 14px; margin-bottom: 18px; font-size: 9px; color: var(--muted); }
.chart-legend span { display: inline-flex; align-items: center; gap: 5px; }
.chart-legend i { width: 8px; height: 8px; display: inline-block; border-radius: 2px; background: var(--forest-700); }
.chart-legend span:nth-child(2) i { background: var(--coral); }
.bars { height: 180px; display: grid; grid-template-columns: repeat(7, 1fr); gap: 12px; align-items: end; border-bottom: 1px solid var(--line); }
.bar-day { height: 100%; display: flex; flex-direction: column; justify-content: end; align-items: center; gap: 7px; }
.bar-pair { height: 140px; display: flex; align-items: end; gap: 3px; }
.bar { width: 12px; min-height: 3px; border-radius: 5px 5px 0 0; background: var(--forest-700); }
.bar.alt { background: var(--coral); }
.bar-day span { padding-bottom: 8px; font-size: 9px; color: var(--muted); }
.skills-list { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 7px; }

.chain-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.chain-card { padding: 18px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); box-shadow: var(--shadow-sm); }
.chain-card header { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 15px; }
.chain-card h3 { margin: 0 0 4px; font-size: 13px; }
.chain-card p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.chain-flow { margin: 12px 0 15px; display: flex; align-items: center; gap: 5px; overflow: hidden; }
.chain-node { width: 27px; height: 27px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; background: var(--forest-50); color: var(--forest-700); font-size: 9px; font-weight: 700; }
.chain-line { height: 2px; flex: 1; background: var(--forest-100); }

.task-columns { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.task-column { min-height: 360px; padding: 13px; border: 1px solid var(--line); border-radius: var(--radius-md); background: rgba(255,255,255,.4); }
.task-column > header { display: flex; justify-content: space-between; align-items: center; padding: 3px 3px 12px; }
.task-column > header h3 { margin: 0; font-size: 11px; }
.task-column > header span { min-width: 21px; padding: 3px 6px; border-radius: 20px; background: var(--paper); font-size: 8px; text-align: center; }
.task-card { margin-bottom: 9px; padding: 14px; border: 1px solid #e0e1db; border-radius: 12px; background: var(--paper); box-shadow: var(--shadow-sm); }
.task-card h4 { margin: 0 0 7px; font-size: 11px; }
.task-card p { margin: 0 0 10px; color: var(--muted); font-size: 9px; line-height: 1.5; }
.task-card footer { display: flex; justify-content: space-between; align-items: center; }
.task-card-heading { margin-bottom: 9px; display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.task-skill-label { color: var(--muted); font-size: 8px; text-align: right; }
.task-patient-link { max-width: 65%; padding: 0; border: 0; background: none; color: var(--forest-700); font: inherit; font-size: 9px; font-weight: 700; text-align: left; cursor: pointer; }
.task-patient-link:hover { text-decoration: underline; }
.due { font-size: 8px; color: var(--muted); }
.due.overdue { color: #a34b3b; font-weight: 700; }

.patient-skills-header { margin-bottom: 18px; display: grid; grid-template-columns: auto 1fr auto; gap: 18px; align-items: center; }
.patient-skill-stats { margin-bottom: 15px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.patient-skill-stats article { min-height: 76px; padding: 15px; display: flex; align-items: center; gap: 12px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); box-shadow: var(--shadow-sm); }
.patient-skill-stats .stat-icon { width: 36px; height: 36px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 11px; background: var(--forest-50); color: var(--forest-700); font-weight: 800; }
.patient-skill-stats strong, .patient-skill-stats small { display: block; }
.patient-skill-stats strong { margin-bottom: 2px; color: var(--forest-950); font: 600 19px "Fraunces", serif; }
.patient-skill-stats small { color: var(--muted); font-size: 9px; }
.patient-skill-library { margin-bottom: 18px; }
.skill-category-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
.skill-category-section { overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); box-shadow: var(--shadow-sm); }
.skill-category-header { min-height: 118px; padding: 16px; display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 12px; align-items: center; border-bottom: 1px solid var(--line); background: var(--paper); }
.skill-category-icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 11px; background: var(--forest-50); color: var(--forest-700); font-size: 17px; }
.skill-category-header h4 { margin: 0 0 3px; color: var(--forest-950); font: 600 16px "Fraunces", serif; }
.skill-category-header p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.45; }
.category-distress-tolerance .skill-category-icon { background: #fff4e8; color: #a55b19; }
.category-emotion-regulation .skill-category-icon { background: #fff0ee; color: #a34b3b; }
.category-interpersonal-effectiveness .skill-category-icon { background: #edf3ff; color: #315f9d; }
.skill-category-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 9px; }
.skill-category-actions .secondary-button { min-height: 36px; padding: 8px 11px; white-space: nowrap; }
.skill-category-task-list { padding: 10px; display: grid; gap: 7px; background: rgba(247,250,249,.72); }
.skill-category-task-row { min-width: 0; padding: 10px; display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 9px; align-items: center; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); }
.skill-category-task-row > div { min-width: 0; }
.skill-category-task-row strong, .skill-category-task-row small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.skill-category-task-row strong { margin-bottom: 3px; color: var(--forest-950); font-size: 11px; }
.skill-category-task-row small { color: var(--muted); font-size: 9px; }
.skill-category-task-empty { min-height: 64px; padding: 12px; display: grid; place-content: center start; gap: 3px; border: 1px dashed var(--line); border-radius: 10px; color: var(--muted); }
.skill-category-task-empty span { color: var(--forest-950); font-size: 11px; font-weight: 700; }
.skill-category-task-empty small { font-size: 9px; }
.exercise-catalog-grid { padding: 11px; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 9px; }
.exercise-picker-intro { margin: 0 11px 5px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.exercise-picker-grid { padding-top: 14px; }
.exercise-catalog-card { min-height: 145px; padding: 13px; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 11px; background: var(--forest-50); }
.exercise-code { margin-bottom: 5px; color: var(--forest-700); font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.exercise-catalog-card h5 { margin: 0 0 5px; color: var(--forest-950); font-size: 12px; }
.exercise-catalog-card p { margin: 0 0 12px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.exercise-catalog-card footer { margin-top: auto; display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.exercise-catalog-card footer .text-button { text-align: right; }
.patient-board-title { margin: 22px 2px 12px; display: flex; align-items: end; justify-content: space-between; gap: 16px; }
.patient-board-title h3 { margin: 0 0 3px; font: 600 18px "Fraunces", serif; color: var(--forest-950); }
.patient-board-title p { margin: 0; color: var(--muted); font-size: 9px; }
.patient-board-directory { margin: -3px 0 18px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.patient-board-directory-card { min-width: 0; padding: 12px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 9px; align-items: center; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); color: inherit; text-align: left; box-shadow: var(--shadow-sm); cursor: pointer; }
.patient-board-directory-card:hover { border-color: var(--forest-100); transform: translateY(-1px); }
.patient-board-directory-card .patient-avatar { width: 34px; height: 34px; font-size: 9px; }
.patient-board-directory-card strong, .patient-board-directory-card small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.patient-board-directory-card strong { margin-bottom: 3px; color: var(--forest-950); font-size: 10px; }
.patient-board-directory-card small { color: var(--muted); font-size: 8px; }
.patient-board-directory-card i { color: var(--forest-700); font-size: 17px; font-style: normal; }
.directory-skill-list { margin-top: 7px; display: flex; flex-wrap: wrap; gap: 4px; }
.patient-board-directory-card .directory-skill-list i { max-width: 100%; padding: 3px 6px; overflow: hidden; border-radius: 20px; background: var(--forest-50); color: var(--forest-700); font-size: 10px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }

.settings-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.professional-profile-page { display: grid; gap: 18px; }
.professional-profile-hero { position: relative; min-height: 220px; overflow: hidden; padding: clamp(28px, 5vw, 48px); display: flex; align-items: center; gap: 28px; border-radius: 25px; color: white; background: linear-gradient(130deg, var(--forest-950), var(--forest-800) 62%, #0a7f9b); box-shadow: 0 18px 46px rgba(5,47,95,.2); }
.professional-profile-hero::before, .professional-profile-hero::after { position: absolute; border: 1px solid rgba(255,255,255,.11); border-radius: 50%; content: ""; pointer-events: none; }
.professional-profile-hero::before { width: 310px; height: 310px; top: -185px; right: -35px; }
.professional-profile-hero::after { width: 190px; height: 190px; right: 85px; bottom: -145px; }
.professional-avatar-large { position: relative; z-index: 1; width: 108px; height: 108px; flex: 0 0 auto; display: grid; place-items: center; border: 4px solid rgba(255,255,255,.82); border-radius: 32px; color: var(--forest-950); background: linear-gradient(145deg, #fff, #dff8f5); box-shadow: 0 15px 32px rgba(0,0,0,.18); }
.professional-avatar-large span { font: 600 35px/1 "Fraunces", serif; }
.professional-avatar-large i { position: absolute; right: -5px; bottom: -5px; width: 24px; height: 24px; border: 4px solid var(--forest-800); border-radius: 50%; background: var(--peach); }
.professional-profile-heading { position: relative; z-index: 1; }
.professional-profile-heading .eyebrow { margin-bottom: 7px; color: #bfe9e5; }
.professional-profile-heading h2 { margin: 0 0 7px; color: white; font: 600 clamp(29px, 4vw, 42px)/1.08 "Fraunces", serif; }
.professional-profile-heading > p { margin-bottom: 16px; color: #d7e9f2; font-size: 15px; }
.professional-profile-status { width: fit-content; padding: 7px 11px; display: flex; align-items: center; gap: 8px; border: 1px solid rgba(255,255,255,.17); border-radius: 999px; color: #e7f6f4; background: rgba(255,255,255,.08); font-size: 10px; font-weight: 700; }
.professional-profile-status span { width: 7px; height: 7px; border-radius: 50%; background: #42d7ca; box-shadow: 0 0 0 4px rgba(66,215,202,.14); }
.professional-profile-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 14px; }
.professional-profile-about { grid-column: 1 / -1; }
.professional-profile-card { padding: 0; overflow: hidden; }
.professional-profile-card .panel-header { min-height: 91px; }
.professional-profile-card .panel-header > div { display: grid; grid-template-columns: 35px 1fr; column-gap: 11px; }
.professional-profile-card .panel-header h3, .professional-profile-card .panel-header p { grid-column: 2; }
.profile-card-icon { width: 35px; height: 35px; grid-row: 1 / span 2; display: grid; place-items: center; border-radius: 10px; color: #a34e4f; background: var(--coral-soft); font-size: 16px; }
.profile-card-icon.turquoise { color: #087d78; background: var(--blue-soft); }
.profile-card-icon.soft-blue { color: var(--forest-700); background: var(--forest-50); }
.professional-biography { margin: 0; padding: 22px 24px 25px; color: #52697a; font-size: 14px; line-height: 1.8; }
.professional-profile-details dl { margin: 0; padding: 10px 22px 18px; }
.professional-profile-details dl > div { padding: 11px 0; display: grid; grid-template-columns: 105px 1fr; gap: 12px; border-bottom: 1px solid #e8edef; }
.professional-profile-details dl > div:last-child { border-bottom: 0; }
.professional-profile-details dt { color: var(--muted); font-size: 11px; }
.professional-profile-details dd { margin: 0; color: var(--forest-950); font-size: 12px; font-weight: 700; }
.professional-profile-information { grid-column: 1 / -1; }
.professional-information-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(280px, 1fr); }
.professional-information-group { min-width: 0; padding: 22px 24px 25px; }
.professional-information-group + .professional-information-group { border-left: 1px solid #e1e8eb; }
.professional-information-group h4 { margin: 0 0 17px; display: flex; align-items: center; gap: 9px; color: var(--forest-950); font: 600 16px/1.25 "Fraunces", serif; }
.professional-information-group h4 span { width: 28px; height: 28px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 9px; color: var(--forest-700); background: var(--forest-50); font: 700 12px/1 sans-serif; }
.professional-information-group dl { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid #e1e8eb; border-radius: 14px; overflow: hidden; }
.professional-information-group dl > div { min-width: 0; min-height: 72px; padding: 13px 15px; border-right: 1px solid #e8edef; border-bottom: 1px solid #e8edef; background: #fbfcfc; }
.professional-information-group dl > div:nth-child(2n) { border-right: 0; }
.professional-information-group dl > div:nth-last-child(-n+2) { border-bottom: 0; }
.professional-information-group dt { margin-bottom: 6px; color: var(--muted); font-size: 11px; }
.professional-information-group dd { margin: 0; overflow-wrap: anywhere; color: var(--forest-950); font-size: 13px; font-weight: 700; line-height: 1.45; }
.professional-information-contact dl { grid-template-columns: 1fr; }
.professional-information-contact dl > div { border-right: 0; }
.professional-information-contact dl > div:nth-last-child(2) { border-bottom: 1px solid #e8edef; }
.professional-profile-demo-note { margin: 0; padding: 11px 14px; display: flex; align-items: center; gap: 8px; border: 1px solid #d5e3e7; border-radius: 12px; color: var(--muted); background: rgba(255,255,255,.48); font-size: 10px; }
.professional-profile-demo-note span { color: var(--forest-700); font-size: 15px; }
.settings-card { padding: 20px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--paper); box-shadow: var(--shadow-sm); }
.settings-card h3 { margin-bottom: 7px; font: 600 16px "Fraunces", serif; color: var(--forest-950); }
.settings-card p { min-height: 34px; color: var(--muted); font-size: 10px; line-height: 1.6; }
.settings-card footer { display: flex; gap: 8px; flex-wrap: wrap; }
.google-calendar-status { display: grid; justify-items: start; gap: 7px; margin: 14px 0; color: var(--muted); }
.google-association-patient-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; flex-wrap:wrap; margin:16px 0; padding:14px; border-radius:14px; background:#f4f8f8; border:1px solid var(--line); }
.google-association-patient-actions span { margin-right:auto; font-weight:700; color:var(--forest-950); }
.patient-timezone-banner { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:18px; align-items:center; margin-bottom:18px; padding:18px 20px; border:1px solid #e5bd68; border-radius:16px; background:#fffaf0; }
.patient-timezone-banner div { display:grid; gap:4px; }
.patient-timezone-banner small { color:var(--muted); }
.patient-timezone-banner form { display:flex; align-items:center; gap:10px; }
.patient-timezone-banner select { min-width:290px; min-height:44px; border:1px solid var(--line); border-radius:12px; padding:0 12px; background:#fff; }
.patient-timezone-settings { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:18px; padding:18px 20px; border:1px solid var(--line); border-radius:18px; background:#fff; }
.patient-timezone-settings p { margin:5px 0 0; color:var(--muted); }
.patient-timezone-settings form { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.patient-timezone-settings select { min-width:min(360px,100%); min-height:44px; border:1px solid var(--line); border-radius:12px; padding:0 12px; background:#fff; }
.timezone-confirmation { display:flex !important; align-items:center; gap:10px; }
.timezone-confirmation input { width:20px !important; height:20px; flex:0 0 auto; }
@media (max-width:760px) { .patient-timezone-banner { grid-template-columns:1fr; } .patient-timezone-banner form { align-items:stretch; flex-direction:column; } .patient-timezone-banner select { min-width:0; width:100%; } .patient-timezone-settings { align-items:stretch; flex-direction:column; } .patient-timezone-settings form { align-items:stretch; flex-direction:column; } .patient-timezone-settings select { min-width:0; width:100%; } }
.google-calendar-status strong { color: var(--forest-950); }
.google-calendar-settings a.primary-button { text-decoration: none; }
.google-import-review-list { display: grid; gap: 12px; margin: 18px 0; }
.google-import-review-row { display: grid; grid-template-columns: 145px minmax(210px, 1fr) minmax(250px, 1.15fr); gap: 14px; align-items: start; padding: 15px; border: 1px solid var(--line); border-radius: 14px; background: #f9fbfc; }
.google-import-time { display: grid; gap: 5px; padding-top: 27px; }
.google-import-time strong { color: var(--forest-950); }
.google-import-time span { color: var(--muted); font-size: 11px; }
.google-import-time small { color: #476575; font-size: 10px; line-height: 1.4; }
.google-import-review-row.is-recurring { border-color: #bcded9; background: linear-gradient(120deg, #f1faf8, #fbfcfc 72%); }
.google-import-review-row.is-recurring .google-import-time strong { color: #076f68; }
.google-import-scope { grid-column: 2; }
.google-import-occurrence-picker { grid-column: 3; }
.google-import-group-count { margin-top: 14px; padding: 11px 14px; display: flex; align-items: baseline; gap: 6px; border: 1px solid #d7e5e5; border-radius: 11px; color: var(--forest-900); background: #f5f9f9; }
.google-import-group-count strong { font: 600 20px "Fraunces", serif; }
.google-import-group-count span { margin-left: auto; color: var(--muted); font-size: 10px; }
.google-match-suggestion { display: grid; gap: 4px; margin-top: 7px; padding: 9px 11px; border: 1px solid #b8dfd4; border-radius: 9px; color: #176e63; background: #eff9f6; }
.google-match-suggestion strong { font-size: 11px; }
.google-match-suggestion small { color: #52766f; line-height: 1.4; }
.storage-meter { height: 7px; margin: 16px 0 6px; border-radius: 10px; background: #ecece7; overflow: hidden; }
.storage-meter span { display: block; width: 12%; height: 100%; border-radius: inherit; background: var(--forest-700); }
.storage-caption { color: var(--muted); font-size: 8px; }

.modal-layer { position: fixed; inset: 0; z-index: 80; display: none; }
.modal-layer.open { display: block; }
.modal-backdrop { position: absolute; inset: 0; background: rgba(10,34,29,.5); backdrop-filter: blur(3px); animation: fade .18s ease; }
.modal-card { position: absolute; top: 50%; left: 50%; width: min(680px, calc(100vw - 32px)); max-height: min(780px, calc(100vh - 52px)); display: flex; flex-direction: column; border-radius: 22px; background: var(--paper); box-shadow: var(--shadow-lg); transform: translate(-50%,-50%); animation: modal-in .22s ease; overflow: hidden; }
.modal-card.wide { width: min(880px, calc(100vw - 32px)); }
@keyframes fade { from { opacity: 0; } }
@keyframes modal-in { from { opacity: 0; transform: translate(-50%,-47%) scale(.98); } }
.modal-header { min-height: 73px; padding: 15px 20px; display: flex; align-items: center; justify-content: space-between; gap: 15px; border-bottom: 1px solid var(--line); }
.modal-header h2 { margin: 0; font: 600 20px "Fraunces", serif; color: var(--forest-950); }
.modal-body { padding: 20px; overflow-y: auto; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-field { display: grid; gap: 6px; }
.form-field.full { grid-column: 1 / -1; }
.form-field label { font-size: 9px; font-weight: 700; color: var(--forest-800); text-transform: uppercase; letter-spacing: .06em; }
.form-field input, .form-field textarea, .form-field select { width: 100%; border: 1px solid var(--line); border-radius: 10px; padding: 10px 11px; color: var(--ink); background: white; font-size: 11px; outline: 0; }
.form-field input:focus, .form-field textarea:focus, .form-field select:focus { border-color: var(--forest-700); box-shadow: 0 0 0 3px rgba(39,100,89,.1); }
.form-field textarea { min-height: 86px; resize: vertical; line-height: 1.5; }
.form-hint { font-size: 8px; color: var(--muted); line-height: 1.4; }
.clinical-history-form { align-items: start; }
.clinical-history-section { grid-column: 1 / -1; border: 1px solid #ccd9de; border-radius: 13px; background: #fbfcfc; overflow: hidden; }
.clinical-history-section > summary { min-height: 58px; padding: 11px 14px; display: grid; grid-template-columns: 30px minmax(0,1fr) auto; align-items: center; gap: 10px; color: var(--forest-950); background: #f4f8f9; cursor: pointer; list-style: none; }
.clinical-history-section > summary::-webkit-details-marker { display: none; }
.clinical-history-section > summary::after { content: "⌄"; color: var(--forest-700); font-size: 17px; transition: transform .15s ease; }
.clinical-history-section[open] > summary::after { transform: rotate(180deg); }
.clinical-history-section > summary > span { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 8px; color: white; background: var(--forest-800); font-size: 10px; font-weight: 800; }
.clinical-history-section > summary strong, .clinical-history-section > summary small { display: block; }
.clinical-history-section > summary strong { font-size: 11px; }
.clinical-history-section > summary small { margin-top: 2px; color: var(--muted); font-size: 8px; }
.clinical-history-section-body { padding: 15px; display: grid; grid-template-columns: 1fr 1fr; gap: 13px; border-top: 1px solid var(--line); background: white; }
.clinical-history-subtitle { padding: 8px 0 2px; color: var(--forest-900); font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; border-bottom: 1px solid var(--line); }
.clinical-risk-section > summary { background: #fff7f5; }
.clinical-risk-section > summary > span { background: #9d4b40; }
.clinical-history-completion-note { padding: 15px 16px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border: 1px solid #d5e1e5; border-radius: 13px; background: #f4f8f9; }
.clinical-history-completion-note strong, .clinical-history-completion-note small { display: block; }
.clinical-history-completion-note strong { margin: 4px 0; color: var(--forest-950); font-size: 14px; }
.clinical-history-completion-note small { color: var(--muted); font-size: 10px; line-height: 1.5; }
.clinical-history-form-actions { flex-wrap: wrap; }
.clinical-history-locked-status { display: inline-flex; min-height: 38px; align-items: center; padding: 9px 13px; border: 1px solid #b9e6dc; border-radius: 10px; color: #126355; background: #effaf7; font-size: 11px; font-weight: 800; }
.clinical-summary-actions { margin: -3px 0 14px; display: flex; justify-content: flex-end; }
.clinical-summary-sections { display: grid; gap: 14px; }
.clinical-summary-group { border: 1px solid #ccd9de; border-radius: 13px; background: white; overflow: hidden; }
.clinical-summary-group > header { padding: 15px 16px; display: grid; grid-template-columns: 34px minmax(0,1fr); align-items: center; gap: 11px; border-bottom: 1px solid var(--line); background: #f4f8f9; }
.clinical-summary-group:nth-child(5) > header { background: #fff7f5; }
.clinical-summary-group > header > span { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 9px; color: white; background: var(--forest-800); font-size: 12px; font-weight: 800; }
.clinical-summary-group:nth-child(5) > header > span { background: #9d4b40; }
.clinical-summary-group > header h3, .clinical-summary-group > header p { margin: 0; }
.clinical-summary-group > header h3 { color: var(--forest-950); font-size: 15px; }
.clinical-summary-group > header p { margin-top: 3px; color: var(--muted); font-size: 11px; line-height: 1.45; }
.clinical-summary-grid { display: grid; grid-template-columns: 1fr 1fr; }
.clinical-summary-grid article { min-width: 0; padding: 15px 16px; border-right: 1px solid #e6ebed; border-bottom: 1px solid #e6ebed; }
.clinical-summary-grid article:nth-child(2n) { border-right: 0; }
.clinical-summary-grid article.wide { grid-column: 1 / -1; border-right: 0; }
.clinical-summary-grid article:last-child { border-bottom: 0; }
.clinical-summary-grid small, .clinical-summary-grid p { display: block; margin: 0; }
.clinical-summary-grid small { margin-bottom: 6px; color: var(--muted); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .045em; }
.clinical-summary-grid p { color: var(--ink); font-size: 13px; line-height: 1.65; white-space: pre-line; overflow-wrap: anywhere; }
.session-clinical-actions { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 10px 18px; padding: 15px; border: 1px solid #bdd9e7; border-radius: 13px; background: #f2f9fc; }
.session-clinical-actions h4, .session-clinical-actions p { margin: 0; }
.session-clinical-actions h4 { color: var(--forest-950); font: 600 15px "Fraunces", serif; }
.session-clinical-actions p, .session-clinical-actions > small { color: var(--muted); font-size: 9px; }
.session-clinical-actions > small { grid-column: 1 / -1; padding-top: 8px; border-top: 1px solid #d6e7ef; }
.session-clinical-action-buttons { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.questionnaire-library-header { margin-bottom: 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.questionnaire-library-header p { margin: 0; color: var(--muted); font-size: 10px; }
.questionnaire-template-list { display: grid; gap: 9px; }
.questionnaire-template-card { padding: 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid var(--line); border-radius: 11px; background: #f8fafb; }
.questionnaire-template-card strong, .questionnaire-template-card small { display: block; }
.questionnaire-template-card strong { color: var(--forest-950); font-size: 11px; }
.questionnaire-template-card small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.builder-summary-grid { margin-bottom: 15px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.builder-summary-grid article { padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); box-shadow: var(--shadow-sm); }
.builder-summary-grid strong, .builder-summary-grid span { display: block; }
.builder-summary-grid strong { color: var(--forest-950); font: 600 24px "Fraunces", serif; }
.builder-summary-grid span { margin-top: 3px; color: var(--muted); font-size: 10px; }
.builder-library-panel, .builder-records-panel { margin-bottom: 15px; }
.builder-template-grid { padding: 14px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.builder-template-card { padding: 15px; border: 1px solid var(--line); border-radius: 13px; background: #fbfcfc; }
.builder-template-card > header { display: flex; align-items: center; gap: 10px; }
.builder-template-card h4, .builder-template-card p { margin: 0; }
.builder-template-card h4 { color: var(--forest-950); font-size: 12px; }
.builder-template-card header p, .builder-template-card > p { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.5; }
.builder-template-icon { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 10px; color: var(--forest-700); background: var(--forest-50); font-size: 16px; }
.builder-field-chips { margin: 12px 0; display: flex; flex-wrap: wrap; gap: 5px; }
.builder-field-chips span { padding: 4px 7px; border-radius: 20px; color: var(--forest-700); background: var(--forest-50); font-size: 8px; }
.builder-template-card footer { padding-top: 10px; display: flex; align-items: center; justify-content: flex-end; gap: 8px; border-top: 1px solid var(--line); }
.builder-template-card footer .danger-text-button { margin-right: auto; color: #9f3e34; }
.builder-template-card footer .danger-text-button:hover { color: #7e2d26; }
.therapeutic-resource-index { margin: 2px 0 20px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.therapeutic-resource-index a { min-height: 76px; padding: 14px; display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 10px; align-items: center; border: 1px solid #cfdee1; border-radius: 14px; color: #173e59; background: #fff; box-shadow: 0 5px 15px rgba(19, 61, 78, .05); text-decoration: none; transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.therapeutic-resource-index a:hover { border-color: #82bbb5; box-shadow: 0 8px 21px rgba(19, 61, 78, .09); transform: translateY(-2px); }
.therapeutic-resource-index a > span { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 10px; color: #087f76; background: #e9f7f4; font-size: 12px; font-weight: 850; }
.therapeutic-resource-index strong { font-size: 14px; line-height: 1.4; }
.therapeutic-resource-scope-notice { margin: 0 0 20px; padding: 14px 16px; border: 1px solid #ead7ad; border-radius: 13px; color: #66562f; background: #fffaf0; }
.therapeutic-resource-scope-notice strong,
.therapeutic-resource-scope-notice p { display: block; margin: 0; }
.therapeutic-resource-scope-notice strong { font-size: 12px; letter-spacing: .035em; text-transform: uppercase; }
.therapeutic-resource-scope-notice p { margin-top: 5px; font-size: 13px; line-height: 1.5; }
.therapeutic-resource-scope-notice ul { margin: 9px 0 0; padding-left: 20px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px 28px; font-size: 12px; line-height: 1.55; }
.therapeutic-resource-sections { display: grid; gap: 18px; }
.therapeutic-resource-section { --resource-section-accent: #168a80; scroll-margin-top: 92px; border-top: 4px solid var(--resource-section-accent); overflow: hidden; }
.therapeutic-resource-section-interactive { --resource-section-accent: #087f76; }
.therapeutic-resource-section-protocols { --resource-section-accent: #315d9b; }
.therapeutic-resource-section-psychoeducation { --resource-section-accent: #b87816; }
.therapeutic-resource-section-own { --resource-section-accent: #7652a4; }
.therapeutic-resource-section-header { min-height: 92px; padding: 18px 20px; display: grid; grid-template-columns: 36px 42px minmax(0, 1fr) auto; gap: 12px; align-items: center; border-bottom: 1px solid var(--line); background: linear-gradient(110deg, #f8fbfb, #fff); }
.therapeutic-resource-section-number { color: #657b85; font-size: 11px; font-weight: 850; letter-spacing: .08em; }
.therapeutic-resource-section-icon { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid color-mix(in srgb, var(--resource-section-accent) 28%, white); border-radius: 13px; color: var(--resource-section-accent); background: color-mix(in srgb, var(--resource-section-accent) 9%, white); font: 750 18px "Fraunces", serif; }
.therapeutic-resource-section-header h3,
.therapeutic-resource-section-header p { margin: 0; }
.therapeutic-resource-section-header h3 { color: var(--forest-950); font: 650 20px/1.25 "Fraunces", serif; }
.therapeutic-resource-section-header p { max-width: 760px; margin-top: 5px; color: #526d79; font-size: 13px; line-height: 1.55; }
.therapeutic-resource-count { padding: 7px 11px; border-radius: 999px; color: #3d5d69; background: #edf3f3; font-size: 11px; font-weight: 750; white-space: nowrap; }
.therapeutic-resource-section-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
.therapeutic-resource-section-actions .primary-button { min-height: 40px; padding: 9px 14px; font-size: 12px; }
.therapeutic-resource-grid { padding: 16px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.therapeutic-resource-card { --therapy-color: #55727c; --therapy-soft: #eef3f4; min-height: 390px; padding: 19px; display: flex; flex-direction: column; border: 1px solid #d4e0e2; border-top: 5px solid var(--therapy-color); border-radius: 15px; background: #fcfdfd; box-shadow: 0 7px 20px rgba(19, 61, 78, .055); }
.therapeutic-resource-card.therapy-dbt { --therapy-color: #087f76; --therapy-soft: #e7f6f3; }
.therapeutic-resource-card.therapy-act { --therapy-color: #81509e; --therapy-soft: #f3ebf8; }
.therapeutic-resource-card.therapy-emdr { --therapy-color: #315d9b; --therapy-soft: #eaf0f9; }
.therapeutic-resource-card.therapy-tcc { --therapy-color: #ba7413; --therapy-soft: #fff3df; }
.therapeutic-resource-card.therapy-systemic { --therapy-color: #b34e68; --therapy-soft: #fbeaf0; }
.therapeutic-resource-card.therapy-transversal { --therapy-color: #55727c; --therapy-soft: #edf3f4; }
.therapeutic-resource-card.is-high-risk { border-color: #edc8c3; border-top-color: var(--therapy-color); background: linear-gradient(145deg, #fffafa, #fff); }
.therapeutic-resource-card > header { display: flex; align-items: flex-start; gap: 11px; }
.therapeutic-resource-card-icon { flex: 0 0 auto; width: 43px; height: 43px; display: grid; place-items: center; border-radius: 12px; color: var(--therapy-color); background: var(--therapy-soft); font-size: 19px; font-weight: 850; }
.therapeutic-resource-card.is-high-risk .therapeutic-resource-card-icon { color: #a44339; background: #fdeae7; }
.therapeutic-resource-card h4,
.therapeutic-resource-card p { margin: 0; }
.therapeutic-resource-category { display: inline-flex; margin-bottom: 7px; padding: 5px 9px; border-radius: 999px; color: var(--therapy-color); background: var(--therapy-soft); font-size: 11px; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
.therapeutic-resource-card h4 { color: var(--forest-950); font: 650 20px/1.25 "Fraunces", serif; }
.therapeutic-resource-card > p { margin-top: 14px; color: #405f6e; font-size: 14px; line-height: 1.65; }
.therapeutic-resource-details { margin: 15px 0 0; padding: 0; display: grid; gap: 0; border: 1px solid #dde6e7; border-radius: 11px; overflow: hidden; }
.therapeutic-resource-details > div { padding: 9px 10px; display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 10px; border-bottom: 1px solid #e3e9ea; background: #fff; }
.therapeutic-resource-details > div:last-child { border-bottom: 0; }
.therapeutic-resource-details dt { color: #5a727d; font-size: 11px; font-weight: 850; letter-spacing: .035em; line-height: 1.45; text-transform: uppercase; }
.therapeutic-resource-details dd { min-width: 0; margin: 0; color: #244a5d; font-size: 13px; line-height: 1.55; overflow-wrap: anywhere; }
.therapeutic-resource-details a { color: #087a75; font-weight: 750; text-decoration-thickness: 1px; text-underline-offset: 2px; }
.therapeutic-resource-card-meta { margin-top: 14px; padding-top: 11px; display: flex; flex-wrap: wrap; gap: 6px; border-top: 1px solid #e0e8e9; }
.therapeutic-resource-card-meta span { padding: 5px 8px; border-radius: 7px; color: #4b6874; background: #f0f4f4; font-size: 11px; font-weight: 700; }
.therapeutic-resource-card footer { margin-top: auto; padding-top: 16px; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.therapeutic-resource-card footer .primary-button { min-height: 42px; }
.therapeutic-resource-sharing-note { padding: 13px 15px; border: 1px solid #d8cbe8; border-radius: 12px; color: #5a4371; background: #f8f3fc; }
.therapeutic-resource-sharing-note strong,
.therapeutic-resource-sharing-note p { display: block; margin: 0; }
.therapeutic-resource-sharing-note strong { font-size: 13px; }
.therapeutic-resource-sharing-note p { margin-top: 5px; font-size: 12px; line-height: 1.55; }
.behavior-chain-workspace { display: grid; gap: 16px; color: #173e55; }
.behavior-chain-toolbar { position: sticky; top: 0; z-index: 3; padding: 14px; display: flex; align-items: end; justify-content: space-between; gap: 16px; border: 1px solid #cfe0e1; border-radius: 14px; background: rgba(248, 252, 251, .97); box-shadow: 0 8px 22px rgba(19, 61, 78, .06); backdrop-filter: blur(10px); }
.behavior-chain-identity { flex: 1; display: grid; grid-template-columns: minmax(260px, 1fr) minmax(210px, .65fr); gap: 12px; }
.behavior-chain-identity label { display: grid; gap: 6px; color: #5d747d; font-size: 9px; font-weight: 850; letter-spacing: .055em; text-transform: uppercase; }
.behavior-chain-identity select, .behavior-chain-identity input { width: 100%; min-height: 44px; border: 1px solid #c7d9dc; border-radius: 10px; color: #173e55; background: #fff; }
.behavior-chain-views { flex: 0 0 auto; padding: 4px; display: flex; gap: 3px; border: 1px solid #c9dadd; border-radius: 12px; background: #eef5f4; }
.behavior-chain-views button { min-height: 38px; padding: 8px 16px; border: 0; border-radius: 9px; color: #476671; background: transparent; font-size: 10px; font-weight: 800; }
.behavior-chain-views button.active { color: #fff; background: #087f76; box-shadow: 0 5px 12px rgba(8, 127, 118, .18); }
.behavior-chain-progress { height: 6px; overflow: hidden; border-radius: 999px; background: #e5eeee; }
.behavior-chain-progress span { height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg, #19b4a2, #087f76); transition: width .25s ease; }
.behavior-chain-stage-track { padding: 4px; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 7px; border: 1px solid #d5e2e3; border-radius: 13px; background: #f4f8f8; }
.behavior-chain-stage-track button { min-width: 0; min-height: 58px; padding: 7px 5px; display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 6px; align-items: center; border: 1px solid transparent; border-radius: 9px; color: #647b84; background: transparent; text-align: left; }
.behavior-chain-stage-track button span { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; color: #526f78; background: #e3eded; font-size: 9px; font-weight: 850; }
.behavior-chain-stage-track button small { overflow: hidden; font-size: 8px; font-weight: 800; line-height: 1.25; text-overflow: ellipsis; }
.behavior-chain-stage-track button.is-current { color: #075f5a; border-color: #84bdb7; background: #fff; box-shadow: 0 4px 12px rgba(8, 127, 118, .08); }
.behavior-chain-stage-track button.is-current span, .behavior-chain-stage-track button.is-complete span { color: #fff; background: #168f83; }
.behavior-chain-stage-track button:disabled { opacity: .52; cursor: not-allowed; }
.behavior-chain-step-list { position: relative; display: grid; gap: 11px; }
.behavior-chain-step { position: relative; overflow: hidden; border: 1px solid #d2e0e2; border-radius: 15px; background: #fff; box-shadow: 0 5px 15px rgba(19, 61, 78, .04); }
.behavior-chain-step.is-open { border-color: #80bdb5; box-shadow: 0 9px 25px rgba(8, 127, 118, .09); }
.behavior-chain-step.is-complete:not(.is-open) { background: #f7fbfa; }
.behavior-chain-step > header { min-height: 72px; padding: 14px 16px; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 12px; align-items: center; }
.behavior-chain-step > header > span { position: relative; z-index: 1; width: 34px; height: 34px; display: grid; place-items: center; border: 3px solid #fff; border-radius: 50%; color: #496772; background: #e6efef; font-size: 11px; font-weight: 850; box-shadow: 0 0 0 1px #c9dcdd; }
.behavior-chain-step.is-open > header > span { color: #fff; background: #087f76; box-shadow: 0 0 0 1px #087f76; }
.behavior-chain-step.is-complete > header > span { color: #fff; background: #169285; box-shadow: 0 0 0 1px #169285; }
.behavior-chain-step h3, .behavior-chain-step p { margin: 0; }
.behavior-chain-step h3 { color: #173e55; font: 650 18px/1.25 "Fraunces", serif; }
.behavior-chain-step p { margin-top: 3px; color: #687f87; font-size: 10px; line-height: 1.45; }
.behavior-chain-step > header > button { min-height: 36px; padding: 7px 11px; border: 1px solid #bad1d3; border-radius: 9px; color: #08766f; background: #fff; font-size: 9px; font-weight: 800; }
.behavior-chain-step-body { padding: 18px 20px 20px 62px; border-top: 1px solid #dce6e7; background: linear-gradient(145deg, #fbfdfd, #fff); }
.behavior-chain-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.behavior-chain-fields label, .behavior-chain-textarea, .behavior-chain-link-fields label, .behavior-chain-alternative { display: grid; gap: 6px; color: #486873; font-size: 9px; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.behavior-chain-fields .wide { grid-column: 1 / -1; }
.behavior-chain-fields input, .behavior-chain-fields textarea, .behavior-chain-textarea textarea, .behavior-chain-link-fields select, .behavior-chain-link-fields textarea, .behavior-chain-alternative textarea { width: 100%; border: 1px solid #c8dadd; border-radius: 10px; color: #173e55; background: #fff; font-size: 12px; line-height: 1.5; text-transform: none; letter-spacing: normal; }
.behavior-chain-fields input, .behavior-chain-link-fields select { min-height: 43px; }
.behavior-chain-fields textarea, .behavior-chain-textarea textarea, .behavior-chain-link-fields textarea, .behavior-chain-alternative textarea { padding: 11px 12px; resize: vertical; }
.behavior-chain-missing { margin-top: 12px; display: inline-flex; align-items: center; gap: 7px; color: #8a5b22; font-size: 10px; font-weight: 750; }
.behavior-chain-missing input { width: 16px; height: 16px; accent-color: #c78322; }
.behavior-chain-step-actions { margin-top: 17px; padding-top: 14px; display: flex; justify-content: flex-end; gap: 9px; border-top: 1px solid #e0e8e9; }
.behavior-chain-links { display: grid; gap: 12px; }
.behavior-chain-link { padding: 14px; border: 1px solid #cfdddf; border-left: 4px solid #70909a; border-radius: 12px; background: #fff; }
.behavior-chain-link.is-intervention { border-color: #e0bd72; border-left-color: #c48119; background: #fffbf2; }
.behavior-chain-link > header { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 9px; align-items: center; }
.behavior-chain-link > header > span { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 9px; color: #fff; background: #537681; font-size: 9px; font-weight: 850; }
.behavior-chain-link.is-intervention > header > span { background: #c48119; }
.behavior-chain-link > header strong { font-size: 11px; }
.behavior-chain-link > header div { display: flex; flex-wrap: wrap; gap: 5px; }
.behavior-chain-link button { min-height: 30px; padding: 5px 8px; border: 1px solid #cbdadd; border-radius: 8px; color: #315664; background: #fff; font-size: 8px; font-weight: 800; }
.behavior-chain-link button.danger { color: #9b453c; border-color: #ebcbc7; }
.behavior-chain-link button:disabled { opacity: .4; cursor: not-allowed; }
.behavior-chain-link-fields { margin-top: 12px; display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 10px; }
.behavior-chain-link > footer { margin-top: 10px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.behavior-chain-link > footer .behavior-chain-missing { margin: 0; }
.behavior-chain-link button.intervention-active { color: #80520f; border-color: #ddb767; background: #fff3d8; }
.behavior-chain-alternative { margin-top: 12px; padding-top: 12px; border-top: 1px solid #ead9b5; }
.behavior-chain-add-link { margin-top: 12px; }
.behavior-chain-intervention-review { margin-bottom: 14px; display: grid; gap: 8px; }
.behavior-chain-intervention-review > p { padding: 13px; border: 1px dashed #d4c08f; border-radius: 10px; color: #7a632e; background: #fffaf0; }
.behavior-chain-intervention-review article { padding: 11px; display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 9px; border: 1px solid #e3c987; border-radius: 10px; background: #fffaf0; }
.behavior-chain-intervention-review article > span { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: #c48119; font-size: 9px; font-weight: 850; }
.behavior-chain-intervention-review strong, .behavior-chain-intervention-review p { display: block; margin: 0; }
.behavior-chain-intervention-review strong { color: #604515; font-size: 10px; }
.behavior-chain-intervention-review p { margin-top: 4px; color: #806b42; font-size: 9px; }
.behavior-chain-understanding { padding: 22px; border: 1px solid #cfe0e1; border-radius: 16px; background: #f9fcfb; }
.behavior-chain-understanding > header h3, .behavior-chain-understanding > header p { margin: 0; }
.behavior-chain-understanding > header h3 { margin-top: 4px; color: #173e55; font: 650 23px/1.25 "Fraunces", serif; }
.behavior-chain-understanding > header p { margin-top: 5px; color: #657c85; font-size: 10px; }
.behavior-chain-timeline { position: relative; margin-top: 20px; display: grid; gap: 0; }
.behavior-chain-timeline::before { position: absolute; top: 18px; bottom: 18px; left: 12px; width: 3px; content: ""; border-radius: 3px; background: #bfd9d5; }
.behavior-chain-timeline article { position: relative; min-height: 68px; padding: 10px 0 10px 42px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; }
.behavior-chain-node { position: absolute; left: 3px; top: 23px; z-index: 1; width: 21px; height: 21px; border: 5px solid #f9fcfb; border-radius: 50%; background: #168a80; box-shadow: 0 0 0 2px #79b9b2; }
.behavior-chain-timeline article.is-intervention .behavior-chain-node { background: #c48119; box-shadow: 0 0 0 2px #ddb767; }
.behavior-chain-timeline small { color: #087b74; font-size: 9px; font-weight: 850; letter-spacing: .055em; text-transform: uppercase; }
.behavior-chain-timeline p { margin: 5px 0 0; color: #294c5d; font-size: 12px; line-height: 1.5; white-space: pre-line; }
.behavior-chain-timeline button { min-height: 32px; padding: 6px 10px; border: 1px solid #c6d8db; border-radius: 8px; color: #08776f; background: #fff; font-size: 8px; font-weight: 800; }
.behavior-chain-timeline aside { margin-top: 9px; padding: 9px 10px; display: grid; gap: 3px; border: 1px solid #e4c985; border-radius: 9px; color: #73541e; background: #fff9ea; font-size: 9px; }
.behavior-chain-savebar { position: sticky; bottom: 0; z-index: 3; padding: 13px 15px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border: 1px solid #cbdcde; border-radius: 13px; background: rgba(255, 255, 255, .97); box-shadow: 0 -6px 20px rgba(19, 61, 78, .07); backdrop-filter: blur(10px); }
.behavior-chain-savebar > label { display: flex; align-items: center; gap: 8px; color: #3c5b68; font-size: 10px; line-height: 1.4; }
.behavior-chain-savebar input { width: 17px; height: 17px; accent-color: #087f76; }
.behavior-chain-savebar > div { flex: 0 0 auto; display: flex; gap: 8px; }
.behavior-chain-savebar button:disabled { opacity: .55; cursor: not-allowed; box-shadow: none; }
.missing-links-workspace { display: grid; gap: 16px; color: #173e55; }
.missing-links-toolbar { position: sticky; top: 0; z-index: 3; padding: 14px; display: flex; align-items: end; justify-content: space-between; gap: 16px; border: 1px solid #cfe0e1; border-radius: 14px; background: rgba(248,252,251,.97); box-shadow: 0 8px 22px rgba(19,61,78,.06); backdrop-filter: blur(10px); }
.missing-links-identity { flex: 1; display: grid; grid-template-columns: minmax(260px,1fr) minmax(210px,.65fr); gap: 12px; }
.missing-links-identity label { display: grid; gap: 6px; color: #5d747d; font-size: 9px; font-weight: 850; letter-spacing: .055em; text-transform: uppercase; }
.missing-links-identity select, .missing-links-identity input { width: 100%; min-height: 44px; border: 1px solid #c7d9dc; border-radius: 10px; color: #173e55; background: #fff; }
.missing-links-toolbar .behavior-chain-views button:disabled { opacity: .45; cursor: not-allowed; }
.missing-links-progress { position: relative; height: 28px; padding: 0 11px; display: flex; align-items: center; overflow: hidden; border-radius: 9px; color: #486772; background: #e7efef; font-size: 9px; font-weight: 800; }
.missing-links-progress i { position: absolute; left: 0; bottom: 0; height: 4px; border-radius: 4px; background: #168a80; transition: width .2s ease; }
.missing-links-question-card { width: min(760px,100%); margin: 8px auto; padding: 24px; border: 1px solid #cbdedf; border-top: 5px solid #168a80; border-radius: 17px; background: linear-gradient(145deg,#fff,#f8fbfb); box-shadow: 0 12px 30px rgba(19,61,78,.08); }
.missing-links-question-card > header { display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 14px; align-items: start; }
.missing-links-question-card > header > span { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 14px; color: #fff; background: #168a80; font-size: 15px; font-weight: 850; }
.missing-links-question-card small, .missing-links-question-card h3, .missing-links-question-card p { display: block; margin: 0; }
.missing-links-question-card small { color: #087a73; font-size: 9px; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.missing-links-question-card h3 { margin-top: 6px; color: #173e55; font: 650 24px/1.3 "Fraunces",serif; }
.missing-links-question-card p { margin-top: 6px; color: #687e87; font-size: 11px; line-height: 1.5; }
.missing-links-question-card > label:not(.missing-links-share-plan) { margin-top: 21px; display: grid; gap: 7px; color: #496872; font-size: 9px; font-weight: 850; letter-spacing: .045em; text-transform: uppercase; }
.missing-links-question-card textarea { width: 100%; padding: 12px; border: 1px solid #c6d9dc; border-radius: 11px; color: #173e55; background: #fff; font-size: 13px; line-height: 1.55; text-transform: none; letter-spacing: normal; resize: vertical; }
.missing-links-answer-actions { margin-top: 18px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; }
.missing-links-answer-actions button { min-height: 70px; padding: 12px; display: flex; align-items: center; justify-content: center; gap: 9px; border: 1px solid #bcd4d5; border-radius: 13px; color: #087970; background: #fff; font-size: 14px; font-weight: 850; box-shadow: 0 5px 14px rgba(19,61,78,.045); }
.missing-links-answer-actions button:hover { border-color: #55a99f; background: #eef9f7; }
.missing-links-answer-actions button > span { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: #168a80; }
.missing-links-answer-actions button:last-child { color: #9a4a41; border-color: #ebcbc7; }
.missing-links-answer-actions button:last-child > span { background: #c55c52; }
.missing-links-text-card { border-top-color: #c48119; }
.missing-links-text-card > header > span { background: #c48119; }
.missing-links-stop { color: #a96514 !important; }
.missing-links-step-actions { margin-top: 17px; padding-top: 14px; display: flex; justify-content: flex-end; border-top: 1px solid #dfe8e9; }
.missing-links-plan-card { border-top-color: #315d9b; }
.missing-links-plan-card > header > span { background: #315d9b; }
.missing-links-share-plan { margin-top: 17px; padding: 13px; display: grid; grid-template-columns: 18px minmax(0,1fr); gap: 10px; align-items: start; border: 1px solid #c8dadd; border-radius: 11px; color: #315564; background: #f3f8f8; }
.missing-links-share-plan input { width: 18px; height: 18px; accent-color: #087f76; }
.missing-links-share-plan strong, .missing-links-share-plan small { display: block; }
.missing-links-share-plan strong { font-size: 10px; }
.missing-links-share-plan small { margin-top: 4px; color: #687d85; font-size: 9px; line-height: 1.45; }
.missing-links-map { padding: 22px; border: 1px solid #cedfe0; border-radius: 16px; background: #f9fcfb; }
.missing-links-map > header h3, .missing-links-map > header p { margin: 0; }
.missing-links-map > header h3 { margin-top: 5px; color: #173e55; font: 650 23px/1.3 "Fraunces",serif; }
.missing-links-map > header p { margin-top: 5px; color: #687e87; font-size: 10px; }
.missing-links-map-path { position: relative; margin-top: 18px; display: grid; gap: 10px; }
.missing-links-map-path::before { position: absolute; top: 22px; bottom: 22px; left: 19px; width: 3px; content: ""; border-radius: 3px; background: #c5ddd9; }
.missing-links-map-path article { position: relative; padding: 11px 12px; display: grid; grid-template-columns: 40px minmax(0,1fr); gap: 12px; border: 1px solid #d5e2e3; border-radius: 12px; background: #fff; }
.missing-links-map-path article > span { position: relative; z-index: 1; width: 40px; height: 40px; display: grid; place-items: center; border: 5px solid #fff; border-radius: 50%; color: #fff; background: #168a80; font-size: 9px; font-weight: 850; box-shadow: 0 0 0 2px #84c1ba; }
.missing-links-map-path article.is-stop > span { background: #c48119; box-shadow: 0 0 0 2px #e0bd73; }
.missing-links-map-path article.is-plan > span { background: #315d9b; box-shadow: 0 0 0 2px #8ba7cc; }
.missing-links-map-path small, .missing-links-map-path strong, .missing-links-map-path p { display: block; }
.missing-links-map-path small { color: #657c85; font-size: 9px; font-weight: 800; }
.missing-links-map-path strong { margin-top: 5px; color: #173e55; font-size: 12px; white-space: pre-line; }
.missing-links-map-path p { margin: 5px 0 0; color: #687d85; font-size: 9px; }
.missing-links-map-path em { margin-top: 7px; display: inline-flex; padding: 4px 7px; border-radius: 6px; color: #8b5b16; background: #fff0cc; font-size: 8px; font-style: normal; font-weight: 850; }
.missing-links-savebar { position: sticky; bottom: 0; z-index: 3; padding: 13px 15px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border: 1px solid #cbdcde; border-radius: 13px; background: rgba(255,255,255,.97); box-shadow: 0 -6px 20px rgba(19,61,78,.07); }
.missing-links-savebar strong, .missing-links-savebar small { display: block; }
.missing-links-savebar strong { color: #173e55; font-size: 11px; }
.missing-links-savebar small { margin-top: 3px; color: #687d85; font-size: 9px; }
.questionnaire-library-search { width: 100%; margin: 2px auto 20px; display: flex; justify-content: center; }
.questionnaire-library-search label { width: min(680px, 100%); min-height: 58px; padding: 8px 13px; display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; gap: 8px; align-items: center; border: 1px solid #c7d9dd; border-radius: 16px; background: #fff; box-shadow: 0 7px 20px rgba(19, 61, 78, .07); transition: border-color .16s ease, box-shadow .16s ease; }
.questionnaire-library-search label:focus-within { border-color: #4ba79f; box-shadow: 0 0 0 4px rgba(19, 139, 128, .09), 0 9px 24px rgba(19, 61, 78, .08); }
.questionnaire-library-search label > span { width: 30px; height: 30px; display: grid; place-items: center; color: #087f76; font-size: 20px; font-weight: 800; }
.questionnaire-library-search input { width: 100%; min-width: 0; min-height: 40px; padding: 0 4px; border: 0; color: var(--forest-950); background: transparent; font-size: 14px; box-shadow: none; outline: 0; }
.questionnaire-library-search input::placeholder { color: #718791; }
.questionnaire-library-search small { color: #657b85; font-size: 9px; white-space: nowrap; }
.metric-library-grid { gap: 16px; }
.metric-instrument-card { min-height: 330px; padding: 20px; display: flex; flex-direction: column; border-color: #cedde1; border-radius: 17px; background: linear-gradient(145deg, #fff 0%, #f8fbfb 100%); box-shadow: 0 8px 22px rgba(19, 61, 78, .06); transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.metric-instrument-card:hover { border-color: #9fc9c5; box-shadow: 0 12px 28px rgba(19, 61, 78, .1); transform: translateY(-2px); }
.metric-instrument-card > header { align-items: flex-start; }
.metric-instrument-card .builder-template-icon { flex: 0 0 auto; width: 46px; height: 46px; border: 1px solid #c6e2dd; border-radius: 14px; color: #057e75; background: #e9f7f4; font-size: 20px; font-weight: 800; }
.metric-instrument-card > header > div { min-width: 0; }
.instrument-kind { display: block; margin-bottom: 4px; color: #087b78; font-size: 8px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.metric-instrument-card h4 { font: 650 20px/1.25 "Fraunces", serif; }
.metric-instrument-card header p { margin-top: 6px; color: var(--muted); font-size: 11px; font-weight: 700; }
.metric-instrument-card .instrument-description { margin-top: 16px; color: #405d6f; font-size: 13px; line-height: 1.65; }
.instrument-card-metadata { margin: 16px 0 0; display: grid; gap: 10px; }
.instrument-card-metadata > div { padding-left: 11px; border-left: 2px solid #cde2df; }
.instrument-card-metadata dt { color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.instrument-card-metadata dd { margin: 4px 0 0; color: var(--forest-950); font-size: 11px; line-height: 1.5; }
.instrument-rights { margin: 14px 0 0 !important; padding: 10px 11px; display: flex; align-items: flex-start; gap: 8px; border-radius: 9px; color: #5d6f77 !important; background: #f1f4f4; font-size: 10px !important; line-height: 1.5 !important; }
.instrument-rights span { flex: 0 0 auto; width: 17px; height: 17px; display: grid; place-items: center; border-radius: 50%; color: #49636b; background: #fff; font-size: 9px; font-weight: 800; }
.core-license-card { margin-top: 15px; padding: 13px 14px; border: 1px solid #d7e1e2; border-radius: 12px; color: #405d69; background: #f5f8f8; }
.core-license-card dl { margin: 0; display: grid; gap: 8px; }
.core-license-card dl > div { display: grid; grid-template-columns: 138px minmax(0, 1fr); gap: 10px; align-items: start; }
.core-license-card dt { color: #55717a; font-size: 9px; font-weight: 800; letter-spacing: .035em; }
.core-license-card dd { min-width: 0; margin: 0; color: #173e55; font-size: 10px; line-height: 1.5; overflow-wrap: anywhere; }
.core-license-card > p { margin: 11px 0 0 !important; padding-top: 10px; border-top: 1px solid #dbe5e5; color: #3f616b !important; font-size: 10px !important; font-weight: 750; line-height: 1.5 !important; }
.core-instrument-copyright { grid-column: 1 / -1; margin-top: 4px; padding: 13px 15px; border: 1px solid #c9dcdd; border-radius: 11px; color: #315762; background: #f2f8f7; font-size: 11px; font-weight: 700; line-height: 1.55; overflow-wrap: anywhere; }
.metric-instrument-card footer { margin-top: auto; padding-top: 16px; }
.questionnaire-preview-banner { margin-bottom: 16px; padding: 13px 15px; display: grid; grid-template-columns: 34px minmax(0,1fr); gap: 11px; align-items: center; border: 1px solid #b9ddd7; border-radius: 12px; color: #175e5a; background: #eef9f7; }
.questionnaire-preview-banner > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; color: #fff; background: #168a80; font-size: 14px; }
.questionnaire-preview-banner strong,
.questionnaire-preview-banner p { display: block; margin: 0; }
.questionnaire-preview-banner strong { font-size: 12px; }
.questionnaire-preview-banner p { margin-top: 3px; color: #4f7473; font-size: 11px; line-height: 1.5; }
.questionnaire-experience-intro { grid-column: 1 / -1; margin-bottom: 2px; padding: 20px 22px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 22px; border: 1px solid #cadde1; border-radius: 15px; background: linear-gradient(120deg, #f1f8f8, #fbfdfd); }
.questionnaire-experience-intro span { color: #087b78; font-size: 9px; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.questionnaire-experience-intro p { max-width: 780px; margin: 6px 0 0; color: #24485e; font-size: 14px; line-height: 1.65; }
.questionnaire-item-count { min-width: 82px; padding: 10px 13px; border-left: 1px solid #bfd7d7; text-align: center; }
.questionnaire-item-count strong,
.questionnaire-item-count span { display: block; }
.questionnaire-item-count strong { color: var(--forest-950); font: 650 27px/1 "Fraunces", serif; }
.questionnaire-item-count span { margin-top: 5px; color: var(--muted); font-size: 9px; }
.questionnaire-experience-form { gap: 16px; }
.questionnaire-experience-form > .form-field { padding: 18px; border: 1px solid #d6e1e3; border-radius: 14px; background: #fcfdfd; }
.questionnaire-experience-form > .form-field > label,
.questionnaire-experience-form > .form-field > legend { color: #123c59; font-size: 14px; font-weight: 750; line-height: 1.55; letter-spacing: 0; text-transform: none; }
.questionnaire-experience-form > .form-field > label { display: block; margin-bottom: 10px; }
.questionnaire-experience-form .questionnaire-likert > div { margin-top: 12px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.questionnaire-experience-form .questionnaire-likert label { min-height: 58px; padding: 11px 13px; display: grid; grid-template-columns: 19px minmax(0,1fr); place-items: center start; gap: 10px; border: 1px solid #cbdadd; border-radius: 11px; color: #173b55; background: #fff; cursor: pointer; text-align: left; transition: border-color .15s ease, background .15s ease, box-shadow .15s ease; }
.questionnaire-experience-form .questionnaire-likert label:hover,
.questionnaire-experience-form .questionnaire-likert label:focus-within { border-color: #64aaa2; background: #f0faf8; box-shadow: 0 0 0 3px rgba(19,139,128,.08); }
.questionnaire-experience-form .questionnaire-likert label span { font-size: 12px; font-weight: 650; line-height: 1.4; }
.questionnaire-experience-form .questionnaire-likert input,
.questionnaire-experience-form .questionnaire-choice-group input { width: 18px; height: 18px; min-height: 0; margin: 0; padding: 0; border: 0; flex: 0 0 auto; accent-color: #087f76; box-shadow: none; }
.questionnaire-experience-form .questionnaire-choice-group { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 9px; }
.questionnaire-experience-form .questionnaire-choice-group legend { grid-column: 1 / -1; margin-bottom: 4px; }
.questionnaire-experience-form .questionnaire-choice-group > label { min-height: 52px; padding: 10px 12px; gap: 10px; border-color: #cbdadd; font-size: 12px; }
.questionnaire-experience-form input:not([type="radio"]):not([type="checkbox"]),
.questionnaire-experience-form select,
.questionnaire-experience-form textarea { min-height: 48px; font-size: 13px; }
.questionnaire-preview-readonly { margin-bottom: 4px; }
.questionnaire-preview-readonly input:disabled,
.questionnaire-preview-readonly select:disabled,
.questionnaire-preview-readonly textarea:disabled { opacity: 1; color: #506873; background: #f7f9f9; }
.questionnaire-preview-readonly .questionnaire-likert label,
.questionnaire-preview-readonly .questionnaire-choice-group > label { cursor: default; }
.questionnaire-preview-readonly .questionnaire-likert label:hover,
.questionnaire-preview-readonly .questionnaire-likert label:focus-within { border-color: #cbdadd; background: #fff; box-shadow: none; }
.instrument-preview-sheet { border: 1px solid #cbdde0; border-radius: 18px; background: #fff; box-shadow: 0 9px 26px rgba(16, 53, 72, .07); overflow: hidden; }
.instrument-preview-sheet > header { padding: 22px 24px; display: flex; align-items: flex-start; gap: 15px; border-bottom: 1px solid #dce7e8; background: linear-gradient(120deg, #edf8f6 0%, #f7fbfb 70%); }
.instrument-preview-mark { flex: 0 0 auto; width: 50px; height: 50px; display: grid; place-items: center; border-radius: 15px; color: #fff; background: linear-gradient(145deg, #0aa99a, #08767c); box-shadow: 0 7px 18px rgba(5, 126, 117, .18); font-size: 22px; font-weight: 850; }
.instrument-preview-sheet h3 { margin: 0; color: var(--forest-950); font: 650 24px/1.2 "Fraunces", serif; }
.instrument-preview-sheet header p { max-width: 760px; margin: 7px 0 0; color: #547080; font-size: 10px; line-height: 1.65; }
.instrument-preview-facts { padding: 18px 24px; display: grid; grid-template-columns: .6fr 1.8fr .8fr; gap: 10px; border-bottom: 1px solid #e0e8e8; background: #fbfcfc; }
.instrument-preview-facts article { min-height: 70px; padding: 12px; border: 1px solid #dce6e6; border-radius: 11px; background: #fff; }
.instrument-preview-facts small,
.instrument-preview-facts strong { display: block; }
.instrument-preview-facts small { color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.instrument-preview-facts strong { margin-top: 5px; color: var(--forest-950); font-size: 10px; line-height: 1.45; }
.instrument-preview-metadata { margin: 0; padding: 4px 24px; }
.instrument-preview-metadata > div { padding: 15px 0; display: grid; grid-template-columns: 190px 1fr; gap: 20px; border-bottom: 1px solid #e2e9e9; }
.instrument-preview-metadata dt { color: #55707b; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.instrument-preview-metadata dd { margin: 0; color: var(--forest-950); font-size: 10px; line-height: 1.6; }
.instrument-preview-notice { margin: 18px 24px 0; padding: 14px 16px; border: 1px solid #f0d695; border-radius: 12px; color: #74571f; background: #fff8e9; }
.instrument-preview-notice strong { font-size: 10px; }
.instrument-preview-notice p { margin: 4px 0 0; font-size: 9px; line-height: 1.55; }
.instrument-preview-privacy { margin: 14px 24px 22px; color: var(--muted); font-size: 9px; line-height: 1.55; }
.builder-record-list { padding: 0 14px 14px; }
.builder-record-list article { padding: 11px 0; display: flex; align-items: center; justify-content: space-between; gap: 10px; border-bottom: 1px solid var(--line); }
.builder-record-list strong, .builder-record-list small { display: block; }
.builder-record-list strong { font-size: 10px; }
.builder-record-list small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.modern-template-builder { gap: 18px; }
.modern-template-builder > [hidden],
.modern-template-builder [hidden] { display: none !important; }
.builder-canvas { grid-column: 1 / -1; width: 100%; border: 1px solid #c9d7dd; border-radius: 16px; background: #f4f8fa; overflow: hidden; box-shadow: 0 5px 16px rgba(18,53,74,.06); }
.builder-canvas > header { padding: 17px 18px; border-bottom: 1px solid var(--line); background: white; }
.builder-canvas-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.builder-canvas h3, .builder-canvas p { margin: 0; }
.builder-canvas h3 { font: 600 16px "Fraunces", serif; color: var(--forest-950); }
.builder-canvas p { margin-top: 4px; color: var(--muted); font-size: 10px; line-height: 1.5; }
.builder-step-label { flex: 0 0 auto; padding: 6px 9px; border-radius: 20px; color: var(--forest-700); background: var(--forest-50); font-size: 9px; font-weight: 800; }
.builder-add-toolbar { padding: 12px 18px; display: flex; flex-wrap: wrap; align-items: center; gap: 7px; border-bottom: 1px solid #d8e2e6; background: #eef5f7; }
.builder-add-toolbar > span { margin-right: 4px; color: var(--forest-950); font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.builder-add-toolbar button { min-height: 34px; border: 1px solid #b9cfd9; border-radius: 9px; padding: 0 11px; display: inline-flex; align-items: center; gap: 5px; color: var(--forest-800); background: white; box-shadow: 0 1px 2px rgba(18,53,74,.04); font-size: 10px; font-weight: 700; cursor: pointer; transition: .15s ease; }
.builder-add-toolbar button:hover { border-color: var(--forest-700); color: var(--forest-950); transform: translateY(-1px); }
.builder-add-toolbar button b { font-size: 14px; line-height: 1; }
.form-builder-fields { padding: 16px; display: grid; gap: 14px; }
.form-builder-fields:empty { display: none; }
.form-builder-field { min-width: 0; border: 1px solid #c7d7de; border-radius: 13px; background: white; box-shadow: 0 3px 10px rgba(18,53,74,.06); overflow: hidden; }
.form-builder-field > .builder-field-header { min-height: 55px; padding: 10px 13px; display: grid; grid-template-columns: 30px minmax(0,1fr) auto; align-items: center; gap: 10px; border-bottom: 1px solid var(--line); background: #f8fafb; }
.builder-field-number { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 8px; color: white; background: var(--forest-800); font-size: 10px; font-weight: 800; }
.builder-field-heading { min-width: 0; }
.builder-field-heading strong, .builder-field-heading small { display: block; }
.builder-field-heading strong { color: var(--forest-950); font-size: 10px; }
.builder-field-heading small { margin-top: 2px; color: var(--muted); font-size: 8px; line-height: 1.35; }
.builder-field-actions { display: flex; align-items: center; gap: 5px; }
.builder-icon-button { width: 30px; height: 30px; min-height: 30px; border: 1px solid #cbd8dd; display: grid; place-items: center; border-radius: 8px; color: var(--forest-800); background: white; cursor: pointer; font-size: 14px; line-height: 1; }
.builder-icon-button:hover { border-color: var(--forest-700); background: var(--forest-50); }
.builder-icon-button.danger { color: #a23d32; }
.builder-icon-button.danger:hover { border-color: #e2aaa4; background: #fff2f0; }
.form-builder-field-grid { padding: 14px; display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(210px, .8fr); align-items: start; gap: 12px; }
.builder-field-meta { grid-column: 1 / -1; min-height: 34px; padding: 8px 10px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-radius: 9px; background: #f5f8f9; }
.builder-required-toggle { display: flex; align-items: center; gap: 7px; color: var(--ink); font-size: 9px; font-weight: 700; cursor: pointer; }
.builder-required-toggle input { width: 16px; height: 16px; flex: 0 0 auto; accent-color: var(--forest-700); }
.builder-response-help { color: var(--muted); font-size: 9px; text-align: right; }
.builder-choice-settings { padding: 12px; border: 1px solid #d5e3e8; border-radius: 10px; background: #f6fafb; }
.builder-choice-settings textarea { min-height: 100px; }
.builder-scale-settings, .builder-number-settings, .builder-frequency-settings { grid-column: 1 / -1; padding: 12px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; border: 1px solid #d5e3e8; border-radius: 10px; background: #f1f7f8; }
.builder-frequency-settings { grid-template-columns: minmax(220px, 1fr); }
.builder-empty { margin: 16px; padding: 30px 20px; border: 1px dashed #afc7d1; border-radius: 12px; display: grid; justify-items: center; gap: 5px; color: var(--muted); text-align: center; background: rgba(255,255,255,.7); }
.builder-empty-icon { width: 34px; height: 34px; margin-bottom: 3px; display: grid; place-items: center; border-radius: 50%; color: var(--forest-700); background: var(--forest-50); font-size: 18px; }
.builder-empty strong { color: var(--forest-950); font-size: 11px; }
.builder-empty small { font-size: 9px; }
.form-inline-action { justify-self: start; }
.task-required-structure { grid-column: 1 / -1; padding: 12px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; border: 1px solid #bcd9e4; border-radius: 11px; background: #f2f9fc; }
.task-required-structure strong, .task-required-structure small { display: block; }
.task-required-structure strong { color: var(--forest-950); font-size: 11px; }
.task-required-structure small { margin-top: 2px; color: var(--muted); font-size: 8px; }
.task-structure-step { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--forest-700); font-size: 10px; font-weight: 800; }
.task-conduct-editor { grid-template-columns: auto minmax(0,1fr) auto; align-items: end; }
.task-conduct-editor .form-field { gap: 7px; }
.task-conduct-editor .form-field small { font-weight: 400; text-transform: none; letter-spacing: 0; }
.task-template-preview { grid-column: 1 / -1; border: 1px solid #b9d1da; border-radius: 16px; background: #eef5f7; overflow: hidden; }
.task-template-preview > header { padding: 13px 16px; border-bottom: 1px solid #cfdee4; background: #f8fbfc; }
.task-template-preview > header h3 { margin: 2px 0 0; color: var(--forest-950); font: 600 15px "Fraunces", serif; }
.task-template-preview > div { padding: 18px; }
.task-patient-preview-card { width: min(590px,100%); margin: 0 auto; border: 1px solid var(--line); border-radius: 16px; background: white; box-shadow: 0 8px 24px rgba(18,53,74,.1); overflow: hidden; }
.task-patient-preview-card > header { padding: 20px; border-bottom: 1px solid var(--line); background: #fcfdfd; }
.task-patient-preview-card > header h3 { margin: 4px 0 6px; color: var(--forest-950); font: 600 20px "Fraunces", serif; }
.task-patient-preview-card > header p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.6; white-space: pre-line; }
.task-patient-preview-body { padding: 18px 20px; display: grid; gap: 16px; }
.task-preview-field { display: grid; gap: 7px; }
.task-preview-conduct { padding: 13px 14px; display: grid; gap: 4px; border: 1px solid #bdd9e3; border-radius: 11px; background: #f0f8fa; }
.task-preview-conduct span { color: var(--forest-700); font-size: 8px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.task-preview-conduct strong { color: var(--forest-950); font-size: 11px; line-height: 1.45; }
.task-preview-field-label { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.task-preview-field-label strong { color: var(--forest-950); font-size: 10px; }
.task-preview-required { color: var(--muted); font-size: 8px; }
.task-preview-field > input,
.task-preview-field > textarea,
.task-preview-input-suffix input { width: 100%; border: 1px solid var(--line); border-radius: 10px; padding: 10px 11px; color: var(--ink); background: white; font-size: 10px; }
.task-preview-field > textarea { min-height: 82px; resize: none; }
.task-preview-choice { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.task-preview-choice.vertical { grid-template-columns: 1fr; }
.task-preview-choice span { min-height: 38px; padding: 9px 11px; border: 1px solid var(--line); display: flex; align-items: center; border-radius: 10px; color: var(--ink); background: #fbfcfc; font-size: 10px; }
.task-preview-choice.checkbox-list span { gap: 7px; }
.task-preview-likert { display: grid; grid-template-columns: repeat(auto-fit,minmax(90px,1fr)); gap: 7px; }
.task-preview-likert span { min-height: 43px; padding: 8px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 10px; color: var(--ink); background: #fbfcfc; font-size: 9px; text-align: center; }
.task-preview-scale { display: grid; gap: 4px; }
.task-preview-scale input { width: 100%; accent-color: var(--forest-700); }
.task-preview-scale > div { display: flex; justify-content: space-between; color: var(--muted); font-size: 8px; }
.task-preview-input-suffix { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 8px; }
.task-preview-input-suffix span { color: var(--muted); font-size: 9px; }
.task-preview-duration { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.task-preview-duration label { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 7px; color: var(--muted); font-size: 9px; }
.task-preview-duration input { width: 100%; border: 1px solid var(--line); border-radius: 10px; padding: 10px 11px; font-size: 10px; }
.task-preview-info { padding: 12px 14px; display: grid; grid-template-columns: auto 1fr; gap: 9px; border: 1px solid #c7dfe8; border-radius: 11px; color: #315c70; background: #f1f8fb; }
.task-preview-info p { margin: 0; font-size: 10px; line-height: 1.55; }
.task-preview-section { padding: 8px 0 10px; border-bottom: 2px solid #c8d8de; }
.task-preview-section strong { color: var(--forest-950); font: 600 15px "Fraunces", serif; }
.task-preview-section p { margin: 4px 0 0; color: var(--muted); font-size: 9px; }
.questionnaire-info-block, .questionnaire-section-heading { grid-column: 1 / -1; }
.questionnaire-info-block { padding: 14px; display: grid; grid-template-columns: auto 1fr; gap: 10px; border: 1px solid #c4dfe9; border-radius: 11px; color: #315c70; background: #f0f8fb; }
.questionnaire-info-block p { margin: 0; font-size: 11px; line-height: 1.6; }
.questionnaire-section-heading { margin-top: 5px; padding: 16px 2px 9px; border-bottom: 2px solid #c8d8de; }
.questionnaire-section-heading span { color: var(--forest-700); font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.questionnaire-section-heading h3 { margin: 3px 0 0; color: var(--forest-950); font: 600 18px "Fraunces", serif; }
.questionnaire-section-heading p { margin: 4px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.questionnaire-choice-group, .questionnaire-likert, .questionnaire-duration { margin: 0; padding: 0; border: 0; }
.questionnaire-choice-group legend, .questionnaire-likert legend, .questionnaire-duration legend { margin-bottom: 8px; color: var(--forest-800); font-size: 9px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.questionnaire-choice-group > label { min-height: 42px; padding: 9px 11px; display: flex; align-items: center; gap: 9px; border: 1px solid var(--line); border-radius: 10px; background: white; cursor: pointer; }
.questionnaire-choice-group input, .questionnaire-likert input { accent-color: var(--forest-700); }
.questionnaire-choice-group span { font-size: 11px; }
.questionnaire-likert > div { display: grid; grid-template-columns: repeat(auto-fit,minmax(100px,1fr)); gap: 7px; }
.questionnaire-likert label { min-height: 52px; padding: 8px; display: grid; place-items: center; gap: 5px; border: 1px solid var(--line); border-radius: 10px; background: white; cursor: pointer; text-align: center; }
.questionnaire-likert label span { font-size: 9px; }
.questionnaire-input-suffix { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 9px; }
.questionnaire-input-suffix input { width: 100%; border: 1px solid var(--line); border-radius: 10px; padding: 10px 11px; color: var(--ink); background: white; font-size: 11px; }
.questionnaire-input-suffix span { color: var(--muted); font-size: 10px; }
.questionnaire-duration { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.questionnaire-duration legend { grid-column: 1 / -1; }
.questionnaire-duration label { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 8px; color: var(--muted); font-size: 10px; }
.questionnaire-duration input { width: 100%; border: 1px solid var(--line); border-radius: 10px; padding: 10px 11px; font-size: 11px; }
.task-patient-preview-card > footer { padding: 13px 20px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid var(--line); background: #fafcfc; }
.task-patient-preview-card > footer small { color: var(--muted); font-size: 8px; }
.task-patient-preview-card > footer .primary-button:disabled { opacity: .55; cursor: default; transform: none; }
.form-actions-spacer { flex: 1 1 auto; }
.task-recording-config { grid-column: 1 / -1; padding: 12px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; border: 1px solid var(--line); border-radius: 11px; background: #fbfcfc; }
.task-recording-config > [hidden] { display: none; }
.custom-task-structure-preview { grid-column: 1 / -1; padding: 10px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; border-radius: 9px; background: var(--forest-50); }
.custom-task-structure-preview strong { width: 100%; color: var(--forest-900); font-size: 9px; text-transform: uppercase; letter-spacing: .05em; }
.custom-task-structure-preview span { padding: 4px 7px; border-radius: 20px; color: var(--forest-700); background: white; font-size: 8px; }
.recurrence-toggle { grid-column: 1 / -1; display: flex; align-items: center; gap: 10px; padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: #f8fafb; cursor: pointer; }
.recurrence-toggle input { width: 18px; height: 18px; flex: 0 0 auto; accent-color: var(--forest-700); }
.recurrence-toggle span, .recurrence-toggle strong, .recurrence-toggle small { display: block; }
.recurrence-toggle strong { color: var(--forest-900); font-size: 11px; }
.recurrence-toggle small { margin-top: 2px; color: var(--muted); font-size: 9px; }
.recurrence-options { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: var(--forest-50); }
.recurrence-options[hidden] { display: none; }
.form-actions { grid-column: 1 / -1; margin-top: 5px; padding-top: 15px; border-top: 1px solid var(--line); display: flex; justify-content: flex-end; gap: 8px; }
.risk-warning { margin-bottom: 14px; padding: 11px 13px; border-radius: 10px; color: #834233; background: var(--coral-soft); font-size: 9px; line-height: 1.5; }
.detail-hero { display: flex; gap: 14px; align-items: center; margin-bottom: 20px; }
.detail-hero .patient-avatar { width: 54px; height: 54px; border-radius: 16px; font-size: 15px; }
.detail-hero h3 { margin: 0 0 4px; font: 600 21px "Fraunces", serif; }
.detail-hero p { margin: 0; font-size: 10px; color: var(--muted); }
.detail-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; margin-bottom: 18px; }
.clinical-history-detail-stats { grid-template-columns: repeat(4, 1fr); }
.detail-stat { padding: 12px; border-radius: 11px; background: #f6f6f2; }
.detail-stat small, .detail-stat strong { display: block; }
.detail-stat small { color: var(--muted); font-size: 8px; text-transform: uppercase; }
.detail-stat strong { margin-top: 4px; font-size: 11px; }
.detail-section { padding: 15px 0; border-top: 1px solid var(--line); }
.detail-section h4 { margin: 0 0 8px; font-size: 10px; text-transform: uppercase; letter-spacing: .06em; color: var(--forest-700); }
.detail-section p { margin-bottom: 0; color: var(--muted); font-size: 10px; line-height: 1.6; }
.modal-footer-row { display: flex; justify-content: flex-end; gap: 8px; margin-top: 15px; }
.task-response-row { width: 100%; border: 0; text-align: left; cursor: pointer; font: inherit; }
.task-response-history { margin-bottom: 16px; }
.task-response-assignment { width: 100%; grid-template-columns: 28px minmax(0,1fr) 18px; border-top: 0; border-right: 0; border-left: 0; background: transparent; text-align: left; cursor: pointer; font: inherit; }
.task-response-assignment:hover, .task-response-row:hover { background: #f4fafb; }
.session-recent-task { width: 100%; border: 0; text-align: left; cursor: pointer; font: inherit; }
.session-recent-task:hover { background: #f4fafb; }
.session-recent-task:focus-visible { outline: 3px solid rgba(25, 108, 103, .2); outline-offset: 2px; }
.task-corrections-field { display: grid; gap: 7px; }
.task-corrections-field span { color: var(--forest-950); font-size: 11px; font-weight: 700; }
.task-corrections-field textarea { width: 100%; min-height: 104px; resize: vertical; border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; background: #fff; color: var(--ink); font: inherit; line-height: 1.55; }
.task-corrections-field textarea:focus { outline: 3px solid rgba(25, 108, 103, .14); border-color: var(--teal-600); }
.task-no-response-note { display: flex; align-items: flex-start; gap: 12px; padding: 15px 16px; border: 1px solid #ead9ac; border-radius: 12px; background: #fffaf0; }
.task-no-response-note > span { display: grid; place-items: center; flex: 0 0 24px; height: 24px; border-radius: 50%; background: #ead9ac; color: #6e5312; font-weight: 800; }
.task-no-response-note strong { color: var(--forest-950); font-size: 12px; }
.task-no-response-note p { margin: 4px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.task-response-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.task-response-heading strong { color: var(--forest-950); font-size: 12px; }
.task-response-summary { display: block; margin-top: 6px; color: var(--muted); font-size: 10px; line-height: 1.5; }
.task-response-review { display: grid; gap: 16px; }
.task-response-review-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.task-response-review-header p { margin: 7px 0 0; color: var(--muted); line-height: 1.55; }
.task-response-review-meta { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.task-response-review-meta span, .task-response-answer-grid article { padding: 13px 14px; border: 1px solid var(--line); border-radius: 12px; background: #f8fafb; }
.task-response-review-meta small, .task-response-answer-grid small { display: block; margin-bottom: 5px; color: var(--muted); font-size: 9px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.task-response-review-meta strong, .task-response-answer-grid strong { color: var(--forest-950); font-size: 13px; }
.task-response-answer-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.task-response-answer-grid article.wide { grid-column: 1 / -1; }
.task-response-answer-grid p { margin: 0; color: var(--ink); font-size: 12px; line-height: 1.65; white-space: pre-wrap; }
.appointment-management-actions { margin-right: auto; display: flex; gap: 8px; }
.appointment-record-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }

.toast-region { position: fixed; right: 20px; bottom: 20px; z-index: 100; display: grid; gap: 8px; }
.toast { min-width: 260px; max-width: 360px; padding: 12px 14px; display: flex; gap: 10px; align-items: center; border-radius: 12px; color: white; background: var(--forest-950); box-shadow: var(--shadow-lg); font-size: 10px; animation: toast-in .2s ease; }
.toast::before { content: "✓"; width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; color: var(--forest-950); background: var(--peach); font-weight: 700; }
@keyframes toast-in { from { opacity: 0; transform: translateY(8px); } }
.mobile-nav { display: none; }

/* Escala tipográfica de lectura cómoda */
body { font-size: 14px; line-height: 1.5; }
.demo-banner, .banner-help { font-size: 12px; }
.nav-count, .profile-mini small, .connection-pill { font-size: 11px; }
.nav-item { min-height: 48px; font-size: 14px; }
.profile-mini strong, .avatar { font-size: 12px; }
.eyebrow { font-size: 11px; }
.primary-button, .secondary-button, .danger-button { min-height: 44px; font-size: 13px; }
.text-button { font-size: 12px; }
.welcome-row p, .view-intro p { font-size: 14px; }
.date-card span, .stat-card p, .panel-header p, .privacy-note { font-size: 12px; }
.trend, .schedule-time small, .schedule-name small, .review-item small, .tag { font-size: 11px; }
.schedule-time strong, .review-item strong { font-size: 13px; }
.schedule-name strong { font-size: 14px; }
.count-badge { font-size: 11px; }
.search-box input { font-size: 14px; }
.patient-card h3 { font-size: 15px; }
.patient-card .code { font-size: 11px; }
.patient-card .card-data small { font-size: 10px; }
.patient-card .card-data strong { font-size: 12px; }
.patient-detail-identity p, .next-session-card small, .session-editor-heading p { font-size: 12px; }
.next-session-time { font-size: 14px; }
.mini-chart-day > span { font-size: 10px; }
.clinical-header-meta small, .clinical-field small { font-size: 10px; }
.clinical-header-meta strong, .clinical-field strong, .clinical-field ul { font-size: 12px; }
.patient-task-row strong, .session-row-main strong, .readonly-patient-field strong { font-size: 12px; }
.patient-task-row small, .session-row-main small, .readonly-patient-field small, .autosave-status { font-size: 10px; }
.session-date-box small { font-size: 9px; }
.context-widget p, .context-task strong, .context-session-row > span:nth-child(2) strong { font-size: 11px; }
.context-task small, .context-diary-chart small, .context-session-row > span:nth-child(2) small { font-size: 10px; }
.data-table th { font-size: 11px; }
.data-table td { font-size: 13px; }
.table-pagination p, .table-pagination > div > span, .person-cell small { font-size: 11px; }
.table-pagination .secondary-button { font-size: 11px; }
.empty-state p { font-size: 13px; }
.segmented-control button { min-height: 38px; font-size: 12px; }
.calendar-weekdays span, .time-day-header span, .timeline-axis-mark { font-size: 11px; }
.day-number { font-size: 12px; }
.calendar-event { font-size: 12px; line-height: 1.32; }
.more-events, .calendar-legend, .agenda-summary-item small { font-size: 11px; }
.calendar-event-menu { font-size: 12px; }
.timeline-day-column .calendar-event.is-current::after, .calendar-now-line span { font-size: 9px; }
.day-summary > p, .agenda-summary-item strong { font-size: 12px; }
.picker-item strong, .chain-card p, .settings-card p { font-size: 12px; }
.picker-item small, .chart-legend, .bar-day span { font-size: 10px; }
.chain-card h3 { font-size: 15px; }
.chain-node, .task-column > header span, .task-card p, .due, .storage-caption, .task-skill-label, .patient-board-directory-card small { font-size: 10px; }
.task-column > header h3, .task-card h4 { font-size: 13px; }
.task-patient-link, .patient-skill-stats small, .patient-board-title p { font-size: 11px; }
.patient-board-directory-card strong { font-size: 12px; }
.exercise-catalog-card p { font-size: 12px; }
.exercise-code { font-size: 10px; }
.exercise-catalog-card h5 { font-size: 13px; }
.skill-category-task-row strong, .skill-category-task-empty span { font-size: 12px; }
.skill-category-task-row small, .skill-category-task-empty small { font-size: 10px; }
.form-field label { font-size: 11px; }
.form-field input, .form-field textarea, .form-field select { min-height: 44px; font-size: 14px; }
.form-hint, .risk-warning { font-size: 11px; }
.detail-hero p, .detail-section h4, .detail-section p { font-size: 12px; }
.detail-stat small { font-size: 10px; }
.detail-stat strong { font-size: 13px; }
.toast { font-size: 12px; }

.patient-portal[hidden] { display: none; }
body.patient-portal-mode { background: #f4f7f8; }
body.patient-portal-mode > .app-shell,
body.patient-portal-mode > .mobile-nav,
body.patient-portal-mode > .demo-banner,
body.patient-portal-mode > .skip-link { display: none; }
.patient-portal { min-height: 100vh; color: var(--ink); background: #f4f7f8; }
.portal-demo-banner { height: 28px; display: flex; align-items: center; justify-content: center; gap: 8px; color: #dce9f0; background: var(--forest-950); font-size: 11px; }
.portal-header { height: 78px; position: sticky; top: 0; z-index: 25; padding: 0 clamp(18px, 4vw, 54px); display: flex; align-items: center; justify-content: space-between; gap: 24px; border-bottom: 1px solid var(--line); background: rgba(245,245,245,.96); backdrop-filter: blur(14px); }
.portal-brand { height: 100%; border: 0; padding: 5px 0; display: flex; align-items: center; gap: 13px; color: var(--forest-900); background: transparent; cursor: pointer; font-weight: 700; }
.portal-brand img { width: 170px; height: 58px; object-fit: contain; }
.portal-brand span { padding-left: 13px; border-left: 1px solid var(--line); font-size: 13px; }
.portal-header-profile { display: flex; align-items: center; gap: 11px; }
.portal-header-profile > span:first-child { text-align: right; }
.portal-header-profile strong, .portal-header-profile small { display: block; }
.portal-header-profile strong { color: var(--forest-950); font-size: 12px; }
.portal-header-profile small { margin-top: 2px; color: var(--muted); font-size: 9px; }
.portal-layout { min-height: calc(100vh - 106px); display: grid; grid-template-columns: 224px minmax(0, 1fr); }
.portal-sidebar { position: sticky; top: 78px; height: calc(100vh - 78px); padding: 28px 15px 20px; display: flex; flex-direction: column; border-right: 1px solid var(--line); background: #fff; }
.portal-sidebar nav { display: grid; gap: 5px; }
.portal-sidebar nav button { min-height: 46px; border: 0; border-radius: 11px; padding: 0 13px; display: grid; grid-template-columns: 24px 1fr auto; align-items: center; gap: 9px; color: #557084; background: transparent; cursor: pointer; text-align: left; font-size: 12px; font-weight: 600; }
.portal-sidebar nav button:hover { color: var(--forest-900); background: var(--forest-50); }
.portal-sidebar nav button.active { color: var(--forest-900); background: #e6f3f7; box-shadow: inset 3px 0 var(--peach); }
.portal-sidebar nav button > span { font-size: 17px; text-align: center; }
.portal-sidebar nav button > i { min-width: 22px; padding: 3px 6px; border-radius: 20px; color: white; background: var(--forest-700); text-align: center; font-size: 9px; font-style: normal; }
.portal-sidebar-help { margin-top: auto; padding: 15px; border: 1px solid var(--line); border-radius: 14px; background: #f7fafb; }
.portal-sidebar-help strong { font: 600 15px/1.2 "Fraunces", serif; color: var(--forest-950); }
.portal-sidebar-help p { margin: 7px 0; color: var(--muted); font-size: 10px; line-height: 1.45; }
.portal-sidebar-help small { color: var(--coral); font-size: 9px; }
.portal-main { width: 100%; max-width: 1250px; margin: 0 auto; padding: clamp(28px, 4vw, 52px); }
.portal-mobile-nav { display: none; }
.portal-welcome { margin-bottom: 22px; display: flex; justify-content: space-between; align-items: end; gap: 20px; }
.portal-welcome h1, .portal-section-heading h1 { margin: 4px 0 8px; font-size: clamp(27px, 3vw, 36px); }
.portal-welcome p, .portal-section-heading p { margin: 0; color: var(--muted); font-size: 13px; }
.portal-today { min-width: 96px; padding: 11px 15px; border-left: 3px solid var(--peach); background: rgba(255,255,255,.55); }
.portal-today strong, .portal-today span { display: block; }
.portal-today strong { font: 600 26px/1 "Fraunces", serif; color: var(--forest-900); }
.portal-today span { margin-top: 4px; color: var(--muted); font-size: 9px; letter-spacing: .08em; }
.portal-summary-grid { margin-bottom: 18px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 13px; }
.portal-summary-grid article { min-height: 94px; padding: 17px; display: flex; align-items: center; gap: 13px; border: 1px solid var(--line); border-radius: 16px; background: white; box-shadow: var(--shadow-sm); }
.portal-summary-grid article > span { width: 37px; height: 37px; display: grid; place-items: center; border-radius: 11px; color: var(--forest-800); background: var(--forest-50); font-size: 18px; }
.portal-summary-grid strong, .portal-summary-grid small { display: block; }
.portal-summary-grid strong { font: 600 23px/1 "Fraunces", serif; color: var(--forest-950); }
.portal-summary-grid small { margin-top: 5px; color: var(--muted); font-size: 10px; }
.portal-home-grid { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); gap: 16px; }
.portal-panel { border: 1px solid var(--line); border-radius: 19px; background: white; box-shadow: var(--shadow-sm); overflow: hidden; }
.portal-panel > header { min-height: 72px; padding: 17px 19px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); }
.portal-panel h2 { margin: 0 0 4px; font: 600 18px/1.2 "Fraunces", serif; color: var(--forest-950); }
.portal-panel header p { margin: 0; color: var(--muted); font-size: 10px; }
.portal-next-appointment { padding-bottom: 17px; }
.portal-next-appointment > .secondary-button { margin-left: 19px; }
.portal-appointment-hero { min-height: 104px; padding: 22px 19px; display: flex; align-items: center; gap: 14px; }
.portal-calendar-icon, .portal-history-icon { width: 43px; height: 43px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 13px; color: var(--forest-900); background: var(--blue-soft); font-size: 20px; }
.portal-appointment-hero strong, .portal-appointment-hero span { display: block; }
.portal-appointment-hero strong { color: var(--forest-950); font-size: 13px; text-transform: capitalize; }
.portal-appointment-hero div span { margin-top: 6px; color: var(--muted); font-size: 10px; }
.portal-link { border: 0; padding: 5px; color: var(--forest-700); background: transparent; cursor: pointer; font-size: 10px; font-weight: 700; }
.portal-compact-tasks, .portal-history-list, .portal-appointment-list { padding: 5px 18px 12px; }
.portal-compact-tasks button, .portal-history-list button { width: 100%; min-height: 65px; border: 0; border-bottom: 1px solid #e9edf0; padding: 10px 2px; display: grid; grid-template-columns: auto 1fr auto; gap: 11px; align-items: center; background: transparent; cursor: pointer; text-align: left; }
.portal-compact-tasks button:last-child, .portal-history-list button:last-child { border-bottom: 0; }
.portal-compact-tasks strong, .portal-compact-tasks small, .portal-history-list strong, .portal-history-list small { display: block; }
.portal-compact-tasks strong, .portal-history-list strong { color: var(--forest-950); font-size: 11px; }
.portal-compact-tasks small, .portal-history-list small { margin-top: 4px; color: var(--muted); font-size: 9px; }
.portal-compact-tasks i, .portal-history-list i { color: var(--forest-700); font-size: 19px; font-style: normal; }
.task-check { width: 22px; height: 22px; border: 2px solid #b8c9d3; border-radius: 7px; }
.portal-mark-note { margin-top: 16px; padding: 18px 20px; display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; }
.portal-mark-note > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 11px; color: #9a5c38; background: var(--gold-soft); }
.portal-mark-note h2 { margin-bottom: 4px; }
.portal-mark-note p { margin: 0; color: var(--muted); font-size: 10px; }
.portal-section-heading { margin-bottom: 24px; }
.portal-task-groups { display: grid; gap: 24px; }
.portal-task-groups > section > header { margin-bottom: 11px; display: flex; align-items: center; gap: 9px; }
.portal-task-groups > section > header h2 { margin: 0; font: 600 19px/1.2 "Fraunces", serif; color: var(--forest-950); }
.portal-task-groups > section > header span { min-width: 23px; padding: 3px 7px; border-radius: 20px; color: var(--forest-700); background: var(--forest-50); text-align: center; font-size: 9px; font-weight: 700; }
.portal-task-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.portal-task-card { min-height: 205px; padding: 17px; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 16px; background: white; box-shadow: var(--shadow-sm); }
.portal-task-card header, .portal-task-card footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.portal-task-area { color: var(--forest-700); font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.portal-task-card h3 { margin: 19px 0 7px; color: var(--forest-950); font-size: 14px; }
.portal-task-card p { margin: 0 0 15px; color: var(--muted); font-size: 11px; line-height: 1.5; }
.portal-task-card footer { margin-top: auto; padding-top: 13px; border-top: 1px solid #e9edf0; }
.portal-task-card footer > span { color: var(--muted); font-size: 9px; }
.portal-diary-layout, .portal-account-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 16px; }
.portal-diary-chart { height: 235px; padding: 28px 28px 10px; display: grid; grid-template-columns: repeat(7, 1fr); gap: 14px; align-items: end; }
.portal-diary-chart > div { height: 100%; display: grid; grid-template-rows: 1fr auto; gap: 8px; text-align: center; }
.portal-diary-bars { height: 100%; display: flex; align-items: end; justify-content: center; gap: 4px; border-bottom: 1px solid var(--line); }
.portal-diary-bars i { width: 12px; min-height: 3px; max-height: 100%; border-radius: 5px 5px 0 0; background: var(--forest-700); }
.portal-diary-bars i:nth-child(2) { background: var(--coral); }
.portal-diary-chart small { color: var(--muted); font-size: 9px; }
.portal-diary-legend { padding: 10px 20px 20px; display: flex; justify-content: center; gap: 18px; color: var(--muted); font-size: 9px; }
.portal-diary-legend span { display: flex; align-items: center; gap: 6px; }
.portal-diary-legend i { width: 8px; height: 8px; border-radius: 50%; background: var(--forest-700); }
.portal-diary-legend span:nth-child(2) i { background: var(--coral); }
.portal-skill-tags { padding: 20px; display: flex; flex-wrap: wrap; gap: 8px; }
.portal-skill-tags span { padding: 7px 10px; border-radius: 20px; color: var(--forest-800); background: var(--forest-50); font-size: 10px; font-weight: 700; }
.portal-info-note { margin: 16px 20px 20px; padding: 13px 15px; border: 1px solid #cfe5ea; border-radius: 12px; color: #486c7b; background: #f1fafb; font-size: 10px; line-height: 1.5; }
.portal-appointment-list article { min-height: 83px; padding: 12px 2px; display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; border-bottom: 1px solid #e9edf0; }
.portal-appointment-list article:last-child { border-bottom: 0; }
.portal-appointment-date { width: 48px; height: 52px; display: grid; place-items: center; align-content: center; border-radius: 11px; color: var(--forest-900); background: var(--forest-50); }
.portal-appointment-date strong, .portal-appointment-date small, .portal-appointment-list article > div strong, .portal-appointment-list article > div small { display: block; }
.portal-appointment-date strong { font: 600 19px/1 "Fraunces", serif; }
.portal-appointment-date small { margin-top: 2px; font-size: 8px; text-transform: uppercase; }
.portal-appointment-list article > div strong { color: var(--forest-950); font-size: 12px; text-transform: capitalize; }
.portal-appointment-list article > div small { margin-top: 5px; color: var(--muted); font-size: 10px; }
.portal-history-icon { width: 34px; height: 34px; border-radius: 10px; font-size: 14px; }
.portal-account-grid dl { margin: 0; padding: 8px 19px 16px; }
.portal-account-grid dl div { padding: 13px 0; display: flex; justify-content: space-between; gap: 20px; border-bottom: 1px solid #e9edf0; }
.portal-account-grid dl div:last-child { border-bottom: 0; }
.portal-account-grid dt { color: var(--muted); font-size: 10px; }
.portal-account-grid dd { margin: 0; color: var(--forest-950); font-size: 11px; font-weight: 700; }
.portal-privacy-list { padding: 16px 19px 4px; }
.portal-privacy-list p { margin: 0 0 10px; padding-left: 17px; position: relative; color: var(--muted); font-size: 10px; line-height: 1.45; }
.portal-privacy-list p::before { content: "•"; position: absolute; left: 3px; color: var(--peach); }
.portal-account-grid .secondary-button { margin: 8px 19px 19px; }
.portal-exercise { max-width: 850px; margin: 0 auto; }
.portal-back-button { border: 0; padding: 5px 0; color: var(--forest-700); background: transparent; cursor: pointer; font-size: 11px; font-weight: 700; }
.portal-exercise-heading { margin: 18px 0; padding: 23px; border-radius: 18px; color: white; background: var(--forest-900); }
.portal-exercise-heading .portal-task-area { color: #9edbd7; }
.portal-exercise-heading h2 { margin: 8px 0; font: 600 27px/1.15 "Fraunces", serif; }
.portal-exercise-heading p { max-width: 670px; margin: 0; color: #d7e7ee; font-size: 12px; line-height: 1.55; }
.portal-autosave-note, .portal-submitted-note { margin-bottom: 13px; padding: 12px 15px; display: flex; align-items: center; gap: 9px; border: 1px solid #cce4e7; border-radius: 12px; color: #496b78; background: #eff9fa; font-size: 10px; }
.portal-submitted-note { align-items: flex-start; flex-direction: column; }
.portal-submitted-note strong { color: var(--forest-900); font-size: 12px; }
.portal-exercise-form { padding: 22px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 17px; border: 1px solid var(--line); border-radius: 19px; background: white; box-shadow: var(--shadow-sm); }
.portal-form-field { display: grid; gap: 7px; }
.portal-form-field.full, .portal-discuss-check, .portal-form-actions { grid-column: 1 / -1; }
.portal-form-field label { color: var(--forest-900); font-size: 10px; font-weight: 700; }
.portal-form-field input, .portal-form-field select, .portal-form-field textarea { width: 100%; border: 1px solid var(--line); border-radius: 11px; padding: 11px 12px; color: var(--ink); background: #fbfcfd; font-size: 11px; }
.portal-form-field textarea { min-height: 108px; resize: vertical; line-height: 1.5; }
.portal-form-field input:disabled, .portal-form-field select:disabled, .portal-form-field textarea:disabled { color: var(--ink); background: #f3f6f7; opacity: 1; }
.portal-discuss-check { padding: 13px; display: flex; gap: 9px; align-items: center; border-radius: 11px; color: var(--forest-900); background: var(--forest-50); font-size: 10px; font-weight: 600; }
.portal-discuss-check input { width: 17px; height: 17px; accent-color: var(--forest-700); }
.portal-form-actions { display: flex; justify-content: flex-end; gap: 9px; }
.portal-empty { padding: 60px 20px; text-align: center; }
.portal-empty h2 { color: var(--forest-950); }
.portal-empty p, .portal-empty-small { color: var(--muted); font-size: 11px; }
.portal-empty .primary-button { margin-top: 13px; }
.portal-empty-small { padding: 24px 8px; text-align: center; }
.portal-onboarding-card { margin-bottom: 18px; padding: 19px; border: 1px solid #efd4a3; border-radius: 18px; background: linear-gradient(100deg, #fff8eb, #fff 58%); box-shadow: var(--shadow-sm); }
.portal-onboarding-card > header { display: flex; justify-content: space-between; gap: 18px; align-items: center; }
.portal-onboarding-card h2 { margin: 4px 0; color: var(--forest-950); font: 600 19px/1.2 "Fraunces", serif; }
.portal-onboarding-card p { margin: 0; color: var(--muted); font-size: 10px; }
.portal-onboarding-card > header > strong { color: #9a6518; font: 600 24px/1 "Fraunces", serif; }
.portal-onboarding-progress { height: 7px; margin: 15px 0; overflow: hidden; border-radius: 999px; background: #f0e4cb; }
.portal-onboarding-progress i { height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg, #10b9aa, #0b7ea1); }
.portal-onboarding-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.portal-onboarding-steps button { min-width: 0; padding: 11px; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 3px 9px; align-items: center; border: 1px solid #ead8b6; border-radius: 11px; color: var(--forest-950); background: rgba(255,255,255,.75); cursor: pointer; text-align: left; }
.portal-onboarding-steps button > span { grid-row: 1 / 3; width: 25px; height: 25px; display: grid; place-items: center; border-radius: 8px; color: white; background: #d98b18; font-weight: 800; }
.portal-onboarding-steps button.complete { border-color: #c7e6df; }
.portal-onboarding-steps button.complete > span { background: #0f9685; }
.portal-onboarding-steps strong, .portal-onboarding-steps small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.portal-onboarding-steps strong { font-size: 10px; }
.portal-onboarding-steps small { color: var(--muted); font-size: 8px; }
.portal-onboarding-complete { margin-bottom: 18px; padding: 15px 18px; display: flex; align-items: center; gap: 12px; border: 1px solid #b8dfd4; border-radius: 15px; background: linear-gradient(90deg, #eef9f6, #fff 52%); }
.portal-onboarding-complete > span { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 10px; color: white; background: #158777; font-weight: 800; }
.portal-onboarding-complete strong, .portal-onboarding-complete small { display: block; }
.portal-onboarding-complete strong { color: var(--forest-950); font-size: 12px; }
.portal-onboarding-complete small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.portal-document-grid { display: grid; grid-template-columns: 1fr; gap: 12px; }
.portal-document-card { overflow: hidden; display: grid; grid-template-columns: minmax(300px, 1.35fr) minmax(400px, 1.55fr) auto; align-items: stretch; border: 1px solid #ecd9b6; border-radius: 16px; background: linear-gradient(110deg, #fff8eb, #fff 55%); box-shadow: var(--shadow-sm); }
.portal-document-card.complete { border-color: #b8dfd4; background: linear-gradient(110deg, #eef9f6, #fff 55%); }
.portal-document-card > header { min-height: 108px; padding: 18px; display: flex; align-items: center; gap: 14px; }
.portal-document-icon { width: 39px; height: 39px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 11px; color: white; background: #c08731; font-size: 18px; font-weight: 900; }
.portal-document-card.complete .portal-document-icon { background: #158777; }
.portal-document-card h2 { margin: 6px 0; color: var(--forest-950); font: 800 15px/1.2 "Inter", system-ui, sans-serif; }
.portal-document-card header p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.45; }
.portal-document-card dl { margin: 0; display: grid; grid-template-columns: minmax(145px, .8fr) minmax(220px, 1.2fr); grid-template-rows: repeat(2, 1fr); }
.portal-document-card dl > div { min-width: 0; min-height: 54px; padding: 14px 12px 9px; }
.portal-document-card dl > div:nth-child(1) { grid-column: 1; grid-row: 1; }
.portal-document-card dl > div:nth-child(2) { grid-column: 1; grid-row: 2; padding-top: 5px; }
.portal-document-card dl > div:nth-child(3) { grid-column: 2; grid-row: 1; }
.portal-document-card dl > div:nth-child(4) { grid-column: 2; grid-row: 2; padding-top: 5px; }
.portal-document-card dt { color: var(--muted); font-size: 8px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.portal-document-card dd { margin: 5px 0 0; overflow: hidden; color: var(--forest-950); font-size: 10px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.portal-document-card > footer { min-width: 176px; min-height: 68px; padding: 13px 15px; display: flex; justify-content: flex-end; align-items: center; gap: 8px; }
.portal-document-card > footer a { min-width: 80px; min-height: 44px; justify-content: center; text-decoration: none; }
.portal-privacy-summary { margin-top: 16px; }
.portal-session-sections { display: grid; gap: 16px; }
.portal-questionnaire-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.portal-questionnaire-list article { min-width: 0; padding: 14px; display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 11px; align-items: center; border: 1px solid var(--line); border-radius: 13px; background: white; box-shadow: var(--shadow-sm); }
.portal-questionnaire-list article > span:first-child { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; color: var(--forest-800); background: var(--forest-50); }
.portal-questionnaire-list strong, .portal-questionnaire-list small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.portal-questionnaire-list strong { color: var(--forest-950); font-size: 11px; }
.portal-questionnaire-list small { margin-top: 4px; color: var(--muted); font-size: 9px; }

@media (min-width: 761px) {
  .portal-demo-banner { font-size: 13px; }
  .portal-header-profile strong { font-size: 14px; }
  .portal-header-profile small { font-size: 11px; }
  .portal-sidebar nav button { font-size: 14px; }
  .portal-sidebar nav button > i { font-size: 11px; }
  .portal-sidebar-help p { font-size: 12px; }
  .portal-sidebar-help small { font-size: 11px; }
  .portal-welcome p, .portal-section-heading p { font-size: 15px; line-height: 1.5; }
  .portal-today span { font-size: 11px; }
  .portal-summary-grid small { font-size: 12px; }
  .portal-panel > header { min-height: 82px; padding-block: 20px; }
  .portal-panel h2 { font-size: 22px; }
  .portal-panel header p { font-size: 13px; line-height: 1.45; }
  .portal-appointment-hero strong { font-size: 15px; }
  .portal-appointment-hero div span { font-size: 13px; }
  .portal-compact-tasks button, .portal-history-list button { min-height: 76px; padding-block: 13px; }
  .portal-compact-tasks strong, .portal-history-list strong { font-size: 14px; line-height: 1.35; }
  .portal-compact-tasks small, .portal-history-list small { font-size: 12px; line-height: 1.4; }
  .portal-mark-note p { font-size: 13px; line-height: 1.45; }
  .portal-task-groups > section > header h2 { font-size: 22px; }
  .portal-task-groups > section > header span { font-size: 11px; }
  .portal-task-area { font-size: 11px; }
  .portal-task-card h3 { font-size: 17px; }
  .portal-task-card p { font-size: 13px; }
  .portal-task-card footer > span { font-size: 11px; }
  .portal-appointment-date small { font-size: 10px; }
  .portal-appointment-list article > div strong { font-size: 14px; }
  .portal-appointment-list article > div small { font-size: 12px; }
  .portal-account-grid dt { font-size: 12px; }
  .portal-account-grid dd { font-size: 13px; }
  .portal-privacy-list p, .portal-info-note { font-size: 12px; }
  .portal-empty p, .portal-empty-small { font-size: 13px; line-height: 1.5; }
  .portal-onboarding-card h2 { font-size: 22px; }
  .portal-onboarding-card p { font-size: 13px; line-height: 1.45; }
  .portal-onboarding-steps button { min-height: 66px; padding: 13px; }
  .portal-onboarding-steps strong { font-size: 13px; line-height: 1.3; }
  .portal-onboarding-steps small { font-size: 11px; line-height: 1.3; }
  .portal-onboarding-steps strong, .portal-onboarding-steps small { white-space: normal; }
  .portal-onboarding-complete strong { font-size: 15px; }
  .portal-onboarding-complete small { font-size: 12px; }
  .portal-document-card h2 { font-size: 17px; }
  .portal-document-card header p { font-size: 12px; }
  .portal-document-card dt { font-size: 10px; }
  .portal-document-card dd { font-size: 12px; }
  .portal-questionnaire-list strong { font-size: 14px; }
  .portal-questionnaire-list small { font-size: 12px; }
  .portal-main .primary-button, .portal-main .secondary-button { font-size: 13px; }
}

@media (min-width: 761px) and (max-width: 1350px) {
  .patient-detail-header { grid-template-columns: auto minmax(0, 1fr); }
  .patient-detail-actions {
    grid-column: 1 / -1;
    justify-content: flex-end;
    flex-wrap: wrap;
  }
}

@media (max-width: 1050px) {
  .app-shell { grid-template-columns: 210px minmax(0,1fr); }
  .sidebar { width: 210px; }
  .stats-grid { grid-template-columns: repeat(2,1fr); }
  .patient-grid, .chain-grid { grid-template-columns: repeat(2,1fr); }
  .patient-board-directory { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .patient-skill-stats { grid-template-columns: repeat(2, 1fr); }
  .patient-overview-grid, .patient-detail-lower { grid-template-columns: 1fr; }
  .patient-attachment-row { grid-template-columns: 42px minmax(0, 1fr); }
  .patient-attachment-row-actions { grid-column: 1 / -1; width: 100%; }
  .patient-attachment-action { flex: 1; }
  .patient-attachments-footer { align-items: flex-start; flex-direction: column; }
  .patient-consent-card, .patient-data-use-card { grid-template-columns: auto 1fr auto; }
  .patient-consent-meta { grid-column: 2 / -1; }
  .patient-consent-actions, .patient-consent-pending-tag, .patient-consent-prepare { grid-column: 3; grid-row: 1; }
  .session-editor-layout { grid-template-columns: 1fr; }
  .session-context-sidebar { position: static; grid-template-columns: repeat(2, minmax(0,1fr)); }
  .session-diary-widget { grid-column: 1 / -1; }
  .past-sessions-widget { grid-column: 1 / -1; }
  .clinical-info-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .clinical-field:nth-child(3n) { border-right: 1px solid #e8e9e3; }
  .clinical-field:nth-child(2n) { border-right: 0; }
  .clinical-field:nth-last-child(-n+3) { border-bottom: 1px solid #e8e9e3; }
  .clinical-field:last-child { border-bottom: 0; }
  .connection-pill { display: none; }
  .portal-layout { grid-template-columns: 190px minmax(0, 1fr); }
  .portal-main { padding: 32px 26px; }
  .portal-header-profile > span:first-child { display: none; }
}

@media (max-width: 760px) {
  .clinical-record-stats,
  .clinical-record-signature,
  .clinical-record-signature.signed {
    grid-template-columns: 1fr;
  }
  :root { --app-header-height: 75px; }
  .professional-profile-hero { min-height: 0; padding: 28px 22px; align-items: flex-start; flex-direction: column; gap: 18px; }
  .professional-avatar-large { width: 86px; height: 86px; border-radius: 25px; }
  .professional-avatar-large span { font-size: 29px; }
  .professional-profile-grid { grid-template-columns: 1fr; }
  .professional-profile-about { grid-column: auto; }
  .professional-profile-details dl > div { grid-template-columns: 90px 1fr; }
  .professional-profile-information { grid-column: auto; }
  .professional-information-grid { grid-template-columns: 1fr; }
  .professional-information-group { padding: 20px; }
  .professional-information-group + .professional-information-group { border-top: 1px solid #e1e8eb; border-left: 0; }
  .professional-information-group dl { grid-template-columns: 1fr; }
  .professional-information-group dl > div { min-height: 0; border-right: 0; }
  .professional-information-group dl > div:nth-last-child(2) { border-bottom: 1px solid #e8edef; }
  .demo-banner {
    min-height: 42px;
    height: auto;
    padding: 4px 10px;
    justify-content: flex-start;
    gap: 7px;
    font-size: 9px;
    line-height: 1.25;
  }
  .demo-banner .status-dot { flex: 0 0 auto; }
  .demo-banner .banner-help { flex: 0 0 auto; margin-left: auto; font-size: 9px; white-space: nowrap; }
  .app-shell { display: block; padding-top: 42px; }
  .sidebar { top: 42px; z-index: 65; width: min(280px, 84vw); overflow-y: auto; transform: translateX(-102%); box-shadow: var(--shadow-lg); transition: transform .23s ease; }
  .sidebar.open { transform: none; }
  .sidebar-brand { display: none; }
  .sidebar-backdrop { inset: 42px 0 0; z-index: 55; }
  .sidebar-backdrop.is-visible { visibility: visible; opacity: 1; pointer-events: auto; transition-delay: 0s; }
  body.sidebar-menu-open { overflow: hidden; }
  .workspace { width: 100%; }
  .topbar { top: 42px; padding: 0 14px; gap: 10px; }
  .topbar-brand { position: absolute; left: 50%; display: flex; transform: translateX(-50%); }
  .menu-button { display: grid; flex: 0 0 auto; }
  .topbar-logo { width: min(48vw, 185px); max-height: 50px; }
  .topbar-actions .icon-button { display: none; }
  .primary-button.compact { width: 39px; padding: 0; justify-content: center; font-size: 0; }
  main { padding: 22px 14px 112px; }
  .welcome-row { align-items: stretch; flex-direction: column; }
  .welcome-row h2 { font-size: 26px; }
  .date-card { display: block; min-width: 0; }
  .stats-grid { gap: 9px; }
  .stat-card { min-height: 104px; padding: 14px; }
  .professional-notes-form { grid-template-columns: 1fr; }
  .professional-notes-form .primary-button { width: 100%; }
  .dashboard-grid, .diary-layout, .invitation-page-grid { grid-template-columns: 1fr; }
  .invitation-compose .invitation-form { grid-template-columns: 1fr; }
  .review-detail-grid { grid-template-columns: 1fr; }
  .patient-grid, .chain-grid, .task-columns, .settings-grid, .patient-board-directory, .patient-skill-stats, .skill-category-grid, .exercise-catalog-grid { grid-template-columns: 1fr; }
  .patient-detail-header {
    display: flex;
    align-items: stretch;
    flex-direction: column;
    gap: 14px;
  }
  .patient-detail-header .back-button { align-self: flex-start; }
  .patient-detail-identity { width: 100%; align-items: center; }
  .patient-detail-identity > div { min-width: 0; flex: 1; }
  .patient-detail-identity h2 { font-size: 25px; overflow-wrap: anywhere; }
  .patient-detail-identity p { max-width: 100%; white-space: normal; line-height: 1.45; }
  .patient-name-row { align-items: flex-start; flex-wrap: wrap; }
  .patient-verified-badge { width: 23px; height: 23px; flex-basis: 23px; }
  .patient-detail-header > .primary-button { width: 42px; padding: 0; overflow: hidden; font-size: 0; }
  .patient-detail-header > .primary-button::first-letter { font-size: 16px; }
  .patient-detail-actions {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
  }
  .patient-detail-actions .primary-button,
  .patient-detail-actions .secondary-button { width: 100%; min-width: 0; min-height: 44px; padding: 7px 10px; font-size: 11px; line-height: 1.25; }
  .patient-detail-actions .primary-button { grid-column: 1 / -1; }
  .patient-consent-card, .patient-data-use-card {
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: 12px;
    overflow: hidden;
    padding: 15px;
  }
  .patient-consent-copy { min-width: 0; }
  .patient-consent-copy strong,
  .patient-consent-copy small { overflow-wrap: anywhere; }
  .patient-consent-meta { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; width: 100%; }
  .patient-consent-meta dd { max-width: 100%; }
  .patient-consent-actions, .patient-consent-pending-tag, .patient-consent-prepare { grid-column: 1 / -1; grid-row: auto; width: 100%; justify-self: stretch; text-align: center; }
  .patient-consent-actions { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .patient-consent-actions > *,
  .patient-consent-actions form,
  .patient-consent-actions form button { width: 100%; min-width: 0; }
  .patient-incorporation-records { padding: 12px; }
  .patient-incorporation-records-header { align-items: flex-start; flex-direction: column; gap: 9px; }
  .patient-clinical-task-actions { align-items: flex-end; flex-direction: column; gap: 5px; }
  .patient-clinical-task-summary { grid-template-columns: 1fr 1fr; }
  .patient-clinical-assignment-meta { grid-template-columns: 1fr 1fr; }
  .task-response-review-meta, .task-response-answer-grid { grid-template-columns: 1fr 1fr; }
  .patient-skills-header { grid-template-columns: 1fr auto; gap: 12px; }
  .patient-skills-header .back-button { grid-column: 1 / -1; justify-self: start; }
  .patient-skills-header > .primary-button { align-self: center; }
  .patient-board-title { align-items: flex-start; }
  .skill-category-header { grid-template-columns: auto 1fr; }
  .skill-category-actions { grid-column: 1 / -1; width: 100%; flex-direction: row; justify-content: space-between; align-items: center; }
  .skill-category-task-row { grid-template-columns: auto minmax(0,1fr); }
  .skill-category-task-row > .tag { grid-column: 2; justify-self: start; }
  .skill-category-task-row > .task-row-actions { grid-column: 2; justify-self: stretch; justify-content: space-between; }
  .patient-overview-grid, .patient-detail-lower { grid-template-columns: 1fr; }
  .session-editor-heading { align-items: flex-start; }
  .session-editor-heading h2 { font-size: 22px; }
  .session-save-indicators { align-items: flex-end; flex-direction: column-reverse; }
  .autosave-status { white-space: normal; text-align: right; }
  .session-editor-layout, .session-context-sidebar { grid-template-columns: 1fr; }
  .session-diary-widget, .past-sessions-widget { grid-column: auto; }
  .session-editor-form { padding: 14px; }
  .clinical-info-panel .panel-header { align-items: flex-start; }
  .clinical-info-header { grid-template-columns: 1fr; }
  .clinical-header-meta { width: 100%; margin-left: 0; order: initial; }
  .clinical-header-meta > span { min-width: 0; flex: 1; }
  .clinical-info-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .clinical-info-grid { grid-template-columns: 1fr; }
  .clinical-field,
  .clinical-field:nth-child(2n),
  .clinical-field:nth-child(3n),
  .clinical-field:nth-last-child(-n+3) { border-right: 0; border-bottom: 1px solid #e8e9e3; }
  .clinical-field:last-child { border-bottom: 0; }
  .next-session-card { min-height: 235px; }
  .patient-mini-chart { padding-inline: 14px; gap: 7px; }
  .patient-session-row { grid-template-columns: 41px 1fr auto; }
  .patient-session-row .row-arrow { display: none; }
  .calendar-toolbar { align-items: stretch; }
  .calendar-nav { width: 100%; justify-content: space-between; }
  .calendar-title { min-width: 0; flex: 1; font-size: 17px; }
  .segmented-control { width: 100%; margin-left: 0; }
  .segmented-control button { flex: 1; }
  .month-day { min-height: 80px; padding: 5px; }
  .calendar-weekdays span { padding: 8px 2px; font-size: 9px; }
  .day-number { width: 23px; height: 23px; font-size: 11px; }
  .calendar-event { border-left-width: 2px; padding: 4px; font-size: 9px; }
  .month-grid .calendar-event { font-size: 0; }
  .calendar-event strong { font-size: 10px; }
  .more-events { font-size: 9px; }
  .time-grid { min-width: 690px; }
  .day-agenda { grid-template-columns: 1fr; }
  .day-agenda .time-grid { min-width: 0; }
  .day-summary { border-top: 1px solid var(--line); border-left: 0; }
  .view-toolbar { align-items: stretch; flex-direction: column; }
  .session-records-table { min-width: 500px; }
  .table-pagination { align-items: stretch; flex-direction: column; }
  .table-pagination > div { justify-content: space-between; }
  .toolbar-actions { width: 100%; flex-wrap:wrap; }
  .search-box { min-width: 0; flex:1 0 100%; }
  .toolbar-actions > button { flex:1 1 150px; }
  .mobile-nav { position: fixed; left: 10px; right: 10px; bottom: max(9px, env(safe-area-inset-bottom)); z-index: 50; height: 62px; padding: 5px 8px; display: grid; grid-template-columns: repeat(4,1fr); align-items: center; border: 1px solid rgba(255,255,255,.1); border-radius: 18px; color: #bcd0c9; background: rgba(16,44,39,.97); box-shadow: 0 12px 30px rgba(16,44,39,.3); backdrop-filter: blur(12px); }
  .mobile-nav button { border: 0; display: grid; place-items: center; gap: 2px; color: inherit; background: transparent; font-size: 10px; }
  .mobile-nav button span { font-size: 18px; }
  .mobile-nav button span svg { width: 18px; height: 18px; display: block; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
  .mobile-nav button.active { color: var(--peach); }
  .form-grid { grid-template-columns: 1fr; }
  .form-field.full, .form-actions { grid-column: auto; }
  .clinical-history-section { grid-column: auto; }
  .clinical-history-section-body { grid-template-columns: 1fr; padding: 11px; }
  .clinical-history-section-body .full { grid-column: auto; }
  .clinical-history-completion-note { align-items: flex-start; flex-direction: column; }
  .clinical-history-form-actions > button { width: 100%; }
  .clinical-info-actions { grid-template-columns: 1fr; }
  .clinical-history-button { width: 100%; }
  .clinical-summary-grid { grid-template-columns: 1fr; }
  .clinical-summary-grid article,
  .clinical-summary-grid article:nth-child(2n),
  .clinical-summary-grid article.wide { grid-column: auto; border-right: 0; }
  .builder-summary-grid, .builder-template-grid { grid-template-columns: 1fr; }
  .therapeutic-resource-index { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .therapeutic-resource-scope-notice ul { grid-template-columns: 1fr; }
  .therapeutic-resource-grid { grid-template-columns: 1fr; padding: 12px; }
  .therapeutic-resource-section-header { grid-template-columns: 30px 38px minmax(0, 1fr); padding: 15px; }
  .therapeutic-resource-section-icon { width: 38px; height: 38px; }
  .therapeutic-resource-count { grid-column: 3; justify-self: start; }
  .therapeutic-resource-card { min-height: 0; }
  .therapeutic-resource-details > div { grid-template-columns: 1fr; gap: 3px; }
  .questionnaire-library-search { margin-bottom: 15px; }
  .questionnaire-library-search label { grid-template-columns: 28px minmax(0, 1fr); padding: 8px 11px; }
  .questionnaire-library-search small { grid-column: 2; margin: -6px 4px 5px; white-space: normal; }
  .metric-instrument-card { min-height: 0; padding: 16px; }
  .metric-instrument-card footer { align-items: stretch; flex-wrap: wrap; }
  .metric-instrument-card footer .primary-button,
  .metric-instrument-card footer .secondary-button { flex: 1 1 150px; }
  .core-license-card dl > div { grid-template-columns: 1fr; gap: 2px; }
  .questionnaire-preview-banner { grid-template-columns: 30px minmax(0,1fr); padding: 12px; }
  .questionnaire-preview-banner > span { width: 30px; height: 30px; }
  .questionnaire-experience-intro { padding: 16px; grid-template-columns: minmax(0,1fr) auto; gap: 12px; }
  .questionnaire-experience-intro p { font-size: 13px; }
  .questionnaire-item-count { min-width: 64px; padding-inline: 9px; }
  .questionnaire-experience-form > .form-field { padding: 14px; }
  .questionnaire-experience-form .questionnaire-likert > div,
  .questionnaire-experience-form .questionnaire-choice-group { grid-template-columns: 1fr; }
  .questionnaire-experience-form .questionnaire-likert label { min-height: 54px; }
  .instrument-preview-sheet > header { padding: 18px; }
  .instrument-preview-facts { padding: 14px 18px; grid-template-columns: 1fr; }
  .instrument-preview-metadata { padding: 2px 18px; }
  .instrument-preview-metadata > div { grid-template-columns: 1fr; gap: 5px; }
  .instrument-preview-notice { margin-inline: 18px; }
  .instrument-preview-privacy { margin-inline: 18px; }
  .form-builder-field-grid, .builder-scale-settings, .builder-number-settings, .builder-frequency-settings { grid-template-columns: 1fr; }
  .questionnaire-duration { grid-template-columns: 1fr; }
  .questionnaire-duration legend { grid-column: auto; }
  .builder-canvas-header { align-items: flex-start; }
  .builder-step-label { display: none; }
  .builder-add-toolbar { padding: 11px; }
  .builder-add-toolbar > span { width: 100%; }
  .builder-add-toolbar button { flex: 1 1 calc(50% - 7px); justify-content: center; }
  .form-builder-fields { padding: 10px; }
  .form-builder-field > .builder-field-header { grid-template-columns: 28px minmax(0,1fr); }
  .google-import-review-row { grid-template-columns: 1fr; }
  .google-import-scope, .google-import-occurrence-picker { grid-column: 1; }
  .google-import-time { padding-top: 0; }
  .builder-field-actions { grid-column: 1 / -1; justify-content: flex-end; padding-top: 7px; border-top: 1px solid var(--line); }
  .builder-field-meta { align-items: flex-start; flex-direction: column; }
  .builder-response-help { text-align: left; }
  .task-recording-config { grid-template-columns: 1fr; }
  .task-conduct-editor { grid-template-columns: auto minmax(0,1fr); align-items: start; }
  .task-conduct-editor .tag { grid-column: 2; justify-self: start; }
  .task-template-preview > div { padding: 10px; }
  .task-patient-preview-card > header,
  .task-patient-preview-body,
  .task-patient-preview-card > footer { padding: 14px; }
  .task-patient-preview-card > footer { align-items: stretch; flex-direction: column; }
  .task-preview-button { width: 100%; }
  .form-actions-spacer { display: none; }
  .session-clinical-actions { grid-template-columns: 1fr; }
  .session-clinical-action-buttons { justify-content: flex-start; }
  .questionnaire-library-header { align-items: stretch; flex-direction: column; }
  .detail-stats { grid-template-columns: 1fr 1fr; }
  .clinical-history-detail-stats { grid-template-columns: 1fr 1fr; }
  .modal-footer-row { flex-wrap: wrap; }
  .appointment-management-actions { width: 100%; margin-right: 0; }
  .appointment-management-actions .danger-button,
  .appointment-management-actions .secondary-button { flex: 1; }
  .appointment-record-actions { width: 100%; }
  .appointment-record-actions .primary-button,
  .appointment-record-actions .secondary-button { flex: 1; }
  .modal-card { max-height: calc(100vh - 28px); }
  .toast-region { left: 14px; right: 14px; bottom: 82px; }
  .toast { min-width: 0; width: 100%; }
  .portal-demo-banner { height: 25px; padding: 0 10px; font-size: 9px; }
  .portal-header { height: 68px; padding: 0 13px; }
  .portal-brand img { width: 85px; height: 56px; }
  .portal-brand span { font-size: 10px; }
  .portal-header-profile .patient-avatar { display: none; }
  .portal-header-profile .secondary-button { min-height: 35px; padding: 0 10px; font-size: 0; }
  .portal-header-profile .secondary-button::after { content: "Salir"; font-size: 10px; }
  .portal-layout { display: block; min-height: calc(100vh - 93px); }
  .portal-sidebar { display: none; }
  .portal-main { padding: 24px 14px 92px; }
  .portal-mobile-nav { position: fixed; left: 9px; right: 9px; bottom: max(8px, env(safe-area-inset-bottom)); z-index: 50; height: 62px; padding: 5px; display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid rgba(255,255,255,.14); border-radius: 18px; color: #bdd3de; background: rgba(5,47,95,.97); box-shadow: 0 12px 30px rgba(5,47,95,.28); }
  .portal-mobile-nav button { border: 0; display: grid; place-items: center; gap: 1px; color: inherit; background: transparent; font-size: 8px; }
  .portal-mobile-nav button span { font-size: 17px; }
  .portal-mobile-nav button.active { color: #56d6ca; }
  .portal-welcome { align-items: flex-start; }
  .portal-today { display: none; }
  .portal-summary-grid { grid-template-columns: 1fr 1fr; }
  .portal-summary-grid article { min-height: 75px; }
  .portal-home-grid, .portal-task-grid, .portal-diary-layout, .portal-account-grid { grid-template-columns: 1fr; }
  .portal-onboarding-steps, .portal-document-grid, .portal-questionnaire-list { grid-template-columns: 1fr; }
  .portal-onboarding-card > header { align-items: flex-start; }
  .portal-document-card { display: block; }
  .portal-document-card dl { margin: 0 6px; }
  .portal-document-card > footer { align-items: stretch; flex-direction: column; }
  .portal-document-card > footer a { width: 100%; justify-content: center; }
  .portal-mark-note { grid-template-columns: auto 1fr; }
  .portal-mark-note .secondary-button { grid-column: 1 / -1; }
  .portal-appointment-list article { grid-template-columns: auto 1fr; }
  .portal-appointment-list article > .tag { grid-column: 2; justify-self: start; }
  .portal-exercise-form { padding: 16px; grid-template-columns: 1fr; }
  .portal-form-field.full, .portal-discuss-check, .portal-form-actions { grid-column: auto; }
  .portal-form-actions { flex-direction: column-reverse; }
  .portal-form-actions button { width: 100%; }
}

@media (max-width: 420px) {
  .therapeutic-resource-index { grid-template-columns: 1fr; }
  .questionnaire-experience-intro { grid-template-columns: 1fr; }
  .questionnaire-item-count { padding: 10px 0 0; display: flex; align-items: baseline; gap: 6px; border-top: 1px solid #bfd7d7; border-left: 0; text-align: left; }
  .questionnaire-item-count strong { font-size: 22px; }
  .questionnaire-item-count span { margin-top: 0; }
  .patient-detail-actions { grid-template-columns: 1fr; }
  .patient-detail-actions .primary-button { grid-column: auto; }
  .patient-consent-meta { grid-template-columns: 1fr; }
  .patient-consent-actions { grid-template-columns: 1fr; }
}

/* Consentimiento informado */
.consent-preparation-page { display: block; padding: 32px clamp(16px, 4vw, 54px); background: #edf3f6; }
.consent-preparation-shell { width: min(1180px, 100%); margin: 0 auto; }
.consent-preparation-header { padding: 22px 25px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 20px; align-items: center; border: 1px solid var(--line); border-radius: 20px; background: white; box-shadow: var(--shadow-sm); }
.consent-preparation-header > div { min-width: 0; }
.consent-preparation-header h1 { margin-bottom: 5px; }
.consent-preparation-header p { margin: 0; color: var(--muted); }
.consent-preparation-header img { width: 190px; max-height: 56px; object-fit: contain; }
.consent-preparation-error { margin: 16px 0 0; padding: 13px 15px; border-radius: 10px; background: #fff0ed; }
.consent-preparation-form { margin-top: 16px; display: grid; gap: 16px; }
.consent-preparation-section { overflow: hidden; border: 1px solid var(--line); border-radius: 20px; background: white; box-shadow: var(--shadow-sm); }
.consent-preparation-section > header { padding: 18px 21px; display: flex; gap: 12px; align-items: center; border-bottom: 1px solid var(--line); background: #fbfcfc; }
.consent-preparation-section > header > span { width: 34px; height: 34px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 10px; color: var(--forest-800); background: var(--forest-50); font-weight: 800; }
.consent-preparation-section > header h2 { margin: 0 0 3px; font: 600 19px/1.2 "Fraunces", serif; color: var(--forest-950); }
.consent-preparation-section > header p { margin: 0; color: var(--muted); font-size: 12px; }
.consent-template-toggle { margin-left: auto; flex: 0 0 auto; }
.consent-previous-prefill-note { margin: 18px 21px 0; padding: 13px 15px; display: flex; align-items: flex-start; gap: 8px 18px; border: 1px solid #cce4e7; border-radius: 11px; color: #486c7b; background: #eff9fa; font-size: 12px; line-height: 1.45; }
.consent-previous-prefill-note strong { color: var(--forest-900); }
.consent-template-editor { padding: 22px; background: #f8fbfc; }
.consent-template-editor label { display: block; margin-bottom: 8px; color: var(--forest-950); font-size: 13px; font-weight: 800; }
.consent-template-editor textarea { width: 100%; min-height: 520px; padding: 18px; resize: vertical; border: 1px solid #bfcfd7; border-radius: 13px; color: #243f50; background: white; font: 500 14px/1.7 "Inter", system-ui, sans-serif; }
.consent-template-editor textarea:focus { outline: 3px solid rgba(20,184,178,.14); border-color: var(--turquoise); }
.consent-template-editor p { margin: 10px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.consent-prefilled-groups { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(270px, .75fr); }
.consent-prefilled-groups > article { min-width: 0; padding: 21px; }
.consent-prefilled-groups > article + article { border-left: 1px solid var(--line); }
.consent-prefilled-groups h3 { margin-bottom: 12px; font: 600 16px/1.2 "Fraunces", serif; color: var(--forest-950); }
.consent-prefilled-grid { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--line); border-radius: 13px; overflow: hidden; }
.consent-prefilled-grid > div { min-width: 0; min-height: 68px; padding: 12px 14px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #f8fbfc; }
.consent-prefilled-grid > div:nth-child(2n), .consent-prefilled-grid > .wide { border-right: 0; }
.consent-prefilled-grid > .wide { grid-column: 1 / -1; }
.consent-prefilled-grid > div:last-child { border-bottom: 0; }
.consent-prefilled-grid dt { margin-bottom: 5px; color: var(--muted); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.consent-prefilled-grid dd { margin: 0; overflow-wrap: anywhere; color: var(--forest-950); font-size: 13px; font-weight: 700; }
.consent-prefilled-grid.patient { grid-template-columns: 1fr; }
.consent-prefilled-grid.patient > div { grid-column: auto; border-right: 0; }
.consent-preparation-fields { padding: 21px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.consent-preparation-fields label { min-width: 0; display: grid; gap: 7px; color: var(--forest-950); font-size: 12px; font-weight: 700; }
.consent-preparation-fields label.wide { grid-column: 1 / -1; }
.consent-preparation-fields input, .consent-preparation-fields select, .consent-preparation-fields textarea { width: 100%; min-height: 46px; padding: 11px 13px; border: 1px solid #cddbe1; border-radius: 10px; color: var(--ink); background: white; font: inherit; font-weight: 500; }
.consent-preparation-fields textarea { resize: vertical; line-height: 1.5; }
.consent-preparation-fields input:focus, .consent-preparation-fields select:focus, .consent-preparation-fields textarea:focus { outline: 3px solid rgba(20, 184, 178, .14); border-color: var(--turquoise); }
.consent-preparation-review .consent-accept { margin: 21px 21px 0; }
.consent-preparation-actions { padding: 18px 21px 21px; display: flex; justify-content: flex-end; gap: 10px; }
.consent-document-review { max-height: 620px; overflow-y: auto; padding: 22px; display: grid; gap: 18px; background: #f8fbfc; }
.consent-document-review article { padding: 17px 18px; border: 1px solid var(--line); border-radius: 13px; background: white; }
.consent-document-review h3 { margin: 0 0 8px; color: var(--forest-950); font: 600 16px/1.3 "Fraunces", serif; }
.consent-document-review p { margin: 0; color: #334e62; font-size: 13px; line-height: 1.75; }
.consent-template-preview-card p { white-space: pre-wrap; }
.consent-document-review strong { display: block; margin-top: 13px; padding: 12px 14px; border-radius: 9px; color: var(--forest-900); background: #edf8f7; font-size: 13px; line-height: 1.55; }
.consent-professional-signature-form { padding: 21px; display: grid; grid-template-columns: minmax(240px, .55fr) minmax(420px, 1.45fr); gap: 18px; align-items: start; }
.consent-professional-signature-form > label { display: grid; gap: 7px; color: var(--forest-950); font-size: 12px; font-weight: 700; }
.consent-professional-signature-form input { width: 100%; min-height: 46px; padding: 11px 13px; border: 1px solid #cddbe1; border-radius: 10px; color: var(--ink); background: white; font: inherit; }
.consent-model-details { margin: 18px 0; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: white; }
.consent-model-details > header { padding: 13px 16px; border-bottom: 1px solid var(--line); background: #edf8f7; }
.consent-model-details > header span { display: block; margin-bottom: 3px; color: var(--forest-700); font-size: 10px; font-weight: 800; letter-spacing: .07em; }
.consent-model-details > header h2 { margin: 0; font: 600 17px/1.2 "Fraunces", serif; color: var(--forest-950); }
.consent-model-grid { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.consent-model-grid > div { min-width: 0; padding: 12px 15px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.consent-model-grid > div:nth-child(2n), .consent-model-grid > .wide { border-right: 0; }
.consent-model-grid > .wide { grid-column: 1 / -1; }
.consent-model-grid dt { margin-bottom: 4px; color: var(--muted); font-size: 10px; font-weight: 700; }
.consent-model-grid dd { margin: 0; overflow-wrap: anywhere; color: var(--forest-950); font-size: 13px; font-weight: 700; line-height: 1.45; white-space: pre-wrap; }
.consent-page { align-items: start; }
.consent-card { width: min(900px, 100%); margin-block: 20px; }
.consent-header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: center; border-bottom: 1px solid var(--line); padding-bottom: 16px; }
.consent-header p { margin: 5px 0 0; color: var(--muted); }
.consent-parties { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 18px 0; }
.consent-parties div { display: grid; gap: 4px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: #f8fbfc; }
.consent-parties small { color: var(--muted); font-size: 12px; }
.consent-parties strong { font-size: 15px; }
.consent-document { max-height: 410px; overflow-y: auto; padding: 22px; border: 1px solid var(--line); border-radius: 14px; background: white; }
.consent-document p { margin: 0 0 16px; color: #253e55; font-size: 15px; line-height: 1.7; white-space: pre-line; }
.consent-document p:last-child { margin-bottom: 0; }
.consent-note { margin: 14px 0 20px; padding: 13px 15px; border-radius: 10px; color: #6c5530; background: #fff4df; font-size: 13px; line-height: 1.5; }
.consent-form { display: grid !important; grid-template-columns: 1fr !important; gap: 18px !important; }
.signature-field { display: grid; gap: 8px; }
.signature-label { display: flex; align-items: center; justify-content: space-between; }
.signature-field canvas { width: 100%; height: 180px; touch-action: none; border: 2px dashed #b9cbd5; border-radius: 12px; background: #fff; cursor: crosshair; }
.signature-field canvas:focus, .signature-field canvas.signature-error { outline: 3px solid rgba(205, 87, 64, .2); border-color: #cd5740; }
.signature-field small { color: var(--muted); }
.consent-accept { display: grid !important; grid-template-columns: auto 1fr; align-items: start; gap: 10px !important; padding: 15px; border: 1px solid var(--line); border-radius: 12px; background: #f8fbfc; font-weight: 500 !important; line-height: 1.5; }
.consent-accept input { width: 18px !important; min-height: 18px !important; margin-top: 2px; }
.consent-submit { justify-self: start; min-width: 230px; }
.consent-success { margin: 16px 0; padding: 14px 16px; border-radius: 10px; color: #126355; background: #dff4ee; font-weight: 700; }
.consent-signed { display: flex; gap: 18px; align-items: center; padding: 28px; border: 1px solid #b8dfd4; border-radius: 16px; background: #eef9f6; }
.consent-signed h2 { margin: 0 0 6px; }
.consent-signed p { margin: 0 0 5px; }
.consent-check { display: grid; place-items: center; width: 52px; height: 52px; flex: 0 0 auto; border-radius: 50%; color: white; background: #158777; font-size: 25px; font-weight: 800; }
.consent-print { margin-left: auto; }
.consent-document-final { max-height: none; margin-top: 18px; }
.consent-final-signature { display: grid; grid-template-columns: minmax(240px, .7fr) minmax(360px, 1.3fr); gap: 18px; margin-top: 18px; }
.consent-final-signature > div, .consent-final-signature dl { margin: 0; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.consent-final-signature > div { display: grid; gap: 8px; align-content: start; }
.consent-final-signature > div > span { color: var(--muted); font-size: 12px; }
.consent-final-signature small, .consent-final-signature dt, .consent-integrity small, .consent-verification-data dt { color: var(--muted); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.consent-final-signature img { width: 100%; height: 105px; object-fit: contain; object-position: left center; border-bottom: 1px solid var(--line); }
.consent-final-signature dl { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 22px; }
.consent-final-signature dl div { display: grid; gap: 3px; }
.consent-final-signature dd, .consent-verification-data dd { margin: 0; color: var(--forest-950); font-weight: 700; overflow-wrap: anywhere; }
.consent-integrity { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 18px; padding: 17px 18px; border-radius: 14px; color: #dff8f4; background: var(--forest-900); }
.consent-integrity div { min-width: 0; display: grid; gap: 7px; }
.consent-integrity small { color: #a9d5cf; }
.consent-integrity code { font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.consent-integrity a { flex: 0 0 auto; color: white; font-weight: 800; }
.consent-verification-card { width: min(720px, 100%); }
.consent-verification-card > .auth-logo { display: block; margin: 0 auto 22px; }
.consent-signed.invalid { border-color: #efc5bc; background: #fff0ed; }
.consent-signed.invalid .consent-check { background: #b84b38; }
.consent-verification-data { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 18px 0 0; }
.consent-verification-data div { display: grid; gap: 5px; padding: 14px; border: 1px solid var(--line); border-radius: 11px; background: #f8fbfc; }
.consent-verification-data .full { grid-column: 1 / -1; }
.consent-verification-data code { font-size: 12px; overflow-wrap: anywhere; }
.consent-privacy-note { margin: 16px 0 0; color: var(--muted); text-align: center; font-size: 12px; }
.consent-professional-signature-preview { margin: 16px 0 20px; padding: 16px 18px; display: grid; grid-template-columns: minmax(0, 1fr) 220px; gap: 20px; align-items: center; border: 1px solid #b8dfd4; border-radius: 13px; background: #eef9f6; }
.consent-professional-signature-preview > div { display: grid; gap: 5px; }
.consent-professional-signature-preview strong { color: var(--forest-950); font-size: 15px; }
.consent-professional-signature-preview small { color: var(--muted); }
.consent-professional-signature-preview img { width: 100%; height: 80px; object-fit: contain; border-bottom: 1px solid #b8d5cf; }
.consent-signer-identity { padding: 13px 15px; display: grid; gap: 3px; border: 1px solid var(--line); border-radius: 11px; background: #f8fbfc; }
.consent-signer-identity small { color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .05em; }
.consent-signer-identity strong { color: var(--forest-950); font-size: 15px; }

@media (max-width: 720px) {
  .consent-preparation-page { padding: 0; }
  .consent-preparation-header { grid-template-columns: 1fr; border-radius: 0; text-align: center; }
  .consent-preparation-header > a { justify-self: start; }
  .consent-preparation-header img { grid-row: 1; justify-self: center; }
  .consent-preparation-form { margin: 12px; }
  .consent-preparation-section > header { flex-wrap: wrap; }
  .consent-template-toggle { width: 100%; margin-left: 0; }
  .consent-previous-prefill-note { margin: 14px 14px 0; flex-direction: column; }
  .consent-template-editor { padding: 14px; }
  .consent-template-editor textarea { min-height: 440px; font-size: 16px; }
  .consent-prefilled-groups, .consent-preparation-fields { grid-template-columns: 1fr; }
  .consent-prefilled-groups > article + article { border-top: 1px solid var(--line); border-left: 0; }
  .consent-preparation-fields label.wide { grid-column: auto; }
  .consent-preparation-actions { flex-direction: column-reverse; }
  .consent-preparation-actions button { width: 100%; }
  .consent-document-review { max-height: none; padding: 14px; }
  .consent-professional-signature-form { grid-template-columns: 1fr; }
  .consent-model-grid { grid-template-columns: 1fr; }
  .consent-model-grid > div, .consent-model-grid > .wide { grid-column: auto; border-right: 0; }
  .consent-header { grid-template-columns: 1fr; text-align: center; }
  .consent-header .auth-logo { justify-self: center; grid-row: 1; width: min(220px, 78vw); }
  .consent-parties { grid-template-columns: 1fr; }
  .consent-document { max-height: none; padding: 16px; }
  .consent-submit { width: 100%; }
  .patient-name-row { flex-wrap: wrap; }
  .consent-signed { align-items: flex-start; flex-wrap: wrap; padding: 20px; }
  .consent-print { width: 100%; margin-left: 0; }
  .consent-final-signature { grid-template-columns: 1fr; }
  .consent-final-signature dl { grid-column: auto; grid-template-columns: 1fr; }
  .consent-professional-signature-preview { grid-template-columns: 1fr; }
  .consent-integrity { align-items: flex-start; flex-direction: column; }
  .consent-verification-data { grid-template-columns: 1fr; }
  .consent-verification-data .full { grid-column: auto; }
}

@media print {
  .consent-page { display: block; padding: 0; background: white; }
  .consent-card { width: 100%; margin: 0; padding: 0; border: 0; box-shadow: none; }
  .consent-print, .consent-success { display: none !important; }
  .consent-document-final { border-color: #bbb; }
  .consent-integrity { color: #111; border: 1px solid #777; background: white; }
  .consent-integrity small { color: #555; }
  .consent-integrity a { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
.professional-availability {
  position: absolute;
  left: 3px;
  right: 3px;
  z-index: 1;
  border: 1px dashed #22a699;
  border-radius: 8px;
  background: rgba(32, 201, 176, .07);
  color: #075f58;
  pointer-events: none;
  padding: 3px 6px;
  font-size: 11px;
  font-weight: 700;
  overflow: hidden;
}
.calendar-event.reserved { background: #fff3d9; border-color: #e2a42d; color: #724b00; }
.suggested-holiday { background: #fff8e8 !important; box-shadow: inset 3px 0 #dfaa32; }
.holiday-label { display:block; margin: 0 5px; color:#9a6710; font-size:9px; line-height:1.15; }
.availability-key { background:#b9efe7 !important; border:1px dashed #15998c; }
.holiday-key { background:#ffe3a0 !important; }
.booking-approval-panel { margin:0 0 18px; padding:18px; border:1px solid #f0cf83; border-radius:16px; background:#fffaf0; }
.booking-approval-panel header,.booking-approval-panel article { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.booking-approval-panel article { padding:12px 0; border-top:1px solid #ecdcb8; }
.booking-approval-panel article > div:last-child { display:flex; gap:8px; flex-wrap:wrap; }
.availability-week { min-width:0; overflow:hidden; border:1px solid #dbe4ea; border-radius:14px; padding:16px; }
.availability-form > .full { grid-column:1 / -1; }
.cancellation-field { width:min(100%, 510px); }
.availability-week > header { padding:4px 4px 14px; border-bottom:1px solid #dfe8ee; }
.availability-week > header h3 { margin:0 0 6px; color:#123c5e; }
.availability-week > header p { margin:0; max-width:720px; color:#60788a; line-height:1.45; }
.availability-day-row { display:grid; grid-template-columns:minmax(0,260px) minmax(0,1fr) 42px; gap:16px; align-items:start; min-width:0; padding:16px 8px; border-bottom:1px solid #e5ecf1; opacity:.68; }
.availability-day-row:last-child { border-bottom:0; }
.availability-day-row.is-enabled { opacity:1; }
.availability-day-name { display:flex; align-items:center; gap:10px; min-height:42px; }
.availability-day-name strong { color:#193d5a; }
.day-enable { position:relative; display:grid; place-items:center; width:25px; height:25px; flex:0 0 25px; cursor:pointer; }
.day-enable input { position:absolute; inset:0; z-index:2; width:25px; height:25px; margin:0; opacity:0; cursor:pointer; }
.day-enable span { display:grid; place-items:center; width:25px; height:25px; border:2px solid #aebfcb; border-radius:7px; background:#fff; color:transparent; font-weight:900; transition:.15s ease; }
.day-enable input:checked + span { border-color:#087bae; background:#087bae; color:#fff; }
.day-enable input:focus-visible + span { outline:3px solid rgba(8,123,174,.2); outline-offset:2px; }
.repeat-week-button { margin-left:auto; max-width:150px; padding:7px 9px; border:1px solid #9fbccc; border-radius:8px; background:#f4f9fc; color:#155b84; font-size:11px; line-height:1.25; font-weight:800; cursor:pointer; }
.availability-ranges { display:grid; min-width:0; gap:9px; }
.availability-range { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) 32px; gap:8px; align-items:end; min-width:0; padding:9px; border:1px solid #d7e2e9; border-radius:11px; background:#f8fbfd; }
.availability-range label { display:grid; min-width:0; gap:4px; color:#61788a; font-size:10px; font-weight:800; text-transform:uppercase; }
.availability-range input { box-sizing:border-box; width:100%; min-width:0; max-width:100%; }
.availability-day-row:not(.is-enabled) .availability-range input { pointer-events:none; background:#edf1f4; color:#7f929f; cursor:not-allowed; }
.range-remove,.add-day-range { display:grid; place-items:center; border-radius:9px; cursor:pointer; font-weight:900; }
.range-remove { width:32px; height:40px; border:0; background:#fff0f0; color:#a83d3d; font-size:20px; }
.add-day-range { width:40px; height:40px; margin-top:9px; border:1px solid #79b7b0; background:#edfafa; color:#08796f; font-size:22px; }
.add-day-range:disabled { opacity:.35; cursor:not-allowed; }
.holiday-guidance { padding:14px; border-radius:12px; background:#fff8e8; border-left:4px solid #dfa72d; }
.field-info { position:relative; display:inline-grid; place-items:center; width:18px; height:18px; margin-left:5px; padding:0; border:1px solid #4d789a; border-radius:50%; background:#f2f8fc; color:#175783; font:700 11px/1 serif; cursor:pointer; vertical-align:middle; text-transform:none; }
.field-info-popover { display:block; position:absolute; z-index:30; width:min(310px,80vw); margin-top:6px; padding:10px 12px; border:1px solid #bbcedc; border-radius:10px; background:#fff; box-shadow:0 10px 25px rgba(20,53,75,.16); color:#29485e; font-size:12px; line-height:1.45; text-transform:none; letter-spacing:normal; }
.reminder-options { margin:0; padding:16px; border:1px solid #d7e2e9; border-radius:13px; }
.reminder-options legend { padding:0 6px; color:#13598a; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
.reminder-options p { margin:0 0 12px; color:#61788a; }
.reminder-options > div { display:flex; gap:10px; flex-wrap:wrap; }
.reminder-options label { display:flex; align-items:center; gap:8px; padding:10px 13px; border:1px solid #cbd9e2; border-radius:10px; background:#f8fbfd; cursor:pointer; }
.reminder-options input { width:18px; height:18px; accent-color:#087bb3; }
.date-rule-editor { padding:16px; border:1px solid #dbe4ea; border-radius:13px; }
.date-rule-editor > div { display:grid; gap:9px; margin:8px 0 12px; }
.date-rule-row { display:grid; grid-template-columns:minmax(180px,1fr) 1fr 42px; gap:10px; align-items:center; padding:10px; border-radius:10px; background:#f7fafc; }
.date-rule-row.leave-row { grid-template-columns:minmax(140px,.8fr) minmax(160px,1fr) auto minmax(160px,1fr) 42px; }
.date-rule-row input,.date-rule-row select { width:100%; }
.holiday-work-option { border-color:#e5bd65; background:#fff9eb; }
.patient-appointment-row { flex-wrap:wrap; }
.patient-appointment-actions { flex:1 0 100%; display:flex; align-items:center; gap:10px; padding:10px 0 4px 64px; flex-wrap:wrap; }
.patient-appointment-actions form { display:flex; gap:8px; align-items:center; }
.appointment-change-area { flex:1 0 100%; margin:8px 0 0 64px; }
.appointment-change-area details { border-top:1px solid #e0e8ed; padding-top:10px; }
.appointment-change-area summary { width:max-content; color:#155f8a; font-weight:800; cursor:pointer; }
.appointment-change-forms { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:12px; }
.appointment-change-forms form { display:grid; gap:9px; padding:13px; border:1px solid #dbe5eb; border-radius:11px; background:#f8fbfc; }
.appointment-change-forms label { display:grid; gap:5px; color:#456477; font-size:11px; font-weight:700; }
.appointment-change-forms input,.appointment-change-forms textarea { width:100%; box-sizing:border-box; border:1px solid #c9d7e0; border-radius:8px; padding:9px; background:#fff; }
.appointment-change-forms textarea { min-height:64px; resize:vertical; }
.change-request-pending { display:flex; gap:8px; flex-wrap:wrap; padding:10px 12px; border-radius:9px; background:#fff7df; color:#795713; }
.receipt-file-button { cursor:pointer; border:1px solid #cbd8e2; border-radius:9px; padding:9px 12px; font-weight:700; }
.receipt-file-button input { width:1px; height:1px; opacity:0; position:absolute; }
.appointment-status-reserved { color:#986400 !important; background:#fff3d9; }
.patient-booking-card { margin-top:20px; }
.patient-slot-day { display:flex; align-items:center; gap:18px; padding:12px 0; border-top:1px solid #e1e8ed; }
.patient-slot-day > strong { min-width:210px; text-transform:capitalize; }
.patient-slot-day > div { display:flex; gap:8px; flex-wrap:wrap; }
.patient-slot-day button { border:1px solid #0a887e; border-radius:9px; background:white; color:#076d66; font-weight:800; padding:9px 13px; cursor:pointer; }
.danger-text { color:#b43c3c !important; }
@media (max-width: 760px) {
  .cancellation-field { width:100%; }
  .availability-day-row { grid-template-columns:1fr 42px; padding:13px 0; }
  .availability-day-name { grid-column:1/-1; flex-wrap:wrap; }
  .availability-ranges { min-width:0; }
  .repeat-week-button { margin-left:0; width:100%; }
  .availability-range { grid-template-columns:1fr 1fr 32px; }
  .patient-slot-day { align-items:flex-start; flex-direction:column; gap:8px; }
  .patient-appointment-actions { padding-left:0; }
  .appointment-change-area { margin-left:0; }
  .appointment-change-forms { grid-template-columns:1fr; }
  .date-rule-row,.date-rule-row.leave-row { grid-template-columns:1fr; }
  .date-rule-row .icon-button { justify-self:end; }
}
.portal-agenda-appointment { grid-template-columns:auto minmax(0,1fr) auto !important; flex-wrap:wrap; }
.portal-agenda-appointment > div em { display:block; margin-top:6px; color:#92640e; font-size:10px; font-style:normal; font-weight:700; }
.portal-agenda-appointment footer { grid-column:1 / -1; display:flex; align-items:center; gap:8px; padding:10px 0 2px 62px; flex-wrap:wrap; }
.portal-receipt-upload { position:relative; cursor:pointer; }
.portal-receipt-upload input { position:absolute; width:1px; height:1px; opacity:0; }
.portal-available-slots { overflow:hidden; }
.portal-slot-day { display:flex; align-items:center; gap:18px; padding:14px 20px; border-top:1px solid #e4eaee; }
.portal-slot-day > strong { min-width:220px; color:#123d5d; text-transform:capitalize; }
.portal-slot-day > div { display:flex; gap:8px; flex-wrap:wrap; }
.portal-slot-day button { border:1px solid #15998e; border-radius:9px; padding:9px 13px; background:#fff; color:#08756d; font-weight:800; cursor:pointer; }
.portal-slot-day button:hover { background:#ecf9f7; }
@media (max-width:760px) {
  .portal-agenda-appointment footer { padding-left:0; }
  .portal-slot-day { align-items:flex-start; flex-direction:column; gap:8px; }
}
.appointment-receipts-panel .receipt-retention-note { margin:10px 0 0; padding-top:10px; border-top:1px solid #ead9b4; color:#785f2c; font-size:10px; line-height:1.45; }
.appointment-receipts-panel a.primary-button { text-decoration:none; }
.receipt-filename-link { display:inline-flex; align-items:center; max-width:320px; padding:8px 11px; border-radius:999px; color:#174f70; background:#eaf1f4; font-size:10px; font-weight:800; text-decoration:underline; cursor:pointer; overflow-wrap:anywhere; }
.receipt-filename-link input { position:absolute; width:1px; height:1px; opacity:0; }
.receipt-needs-reupload { color:#7c5b17; background:#fff3d4; }
.inline-receipt-link { display:inline-block; margin-top:5px; color:#08766c; font-size:10px; font-weight:800; }
.portal-receipt-loaded { color:#0b7468 !important; font-weight:800 !important; }

.management-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:22px; }
.management-heading h2 { margin:5px 0 7px; color:var(--forest-950); font:600 34px/1.05 "Fraunces",serif; }
.management-heading p { max-width:720px; margin:0; color:var(--muted); line-height:1.55; }
.management-period-navigation { position:relative; z-index:2; flex:0 0 auto; display:flex; align-items:center; gap:7px; overflow:visible; }
.management-period { flex:0 0 auto; padding:10px 14px; border:1px solid var(--line); border-radius:999px; background:#fff; color:var(--forest-800); font-size:12px; font-weight:800; text-transform:capitalize; box-shadow:var(--shadow-sm); }
.management-period-navigation > .management-period-button { width:auto; min-width:92px; height:38px; padding:0 12px; border:1px solid #cbd9df; border-radius:11px; display:inline-flex !important; visibility:visible !important; align-items:center; justify-content:center; gap:7px; color:var(--forest-900); background:#fff; box-shadow:var(--shadow-sm); cursor:pointer; font-size:12px; font-weight:800; white-space:nowrap; }
.management-period-button b { font:inherit; }
.management-period-navigation button:hover:not(:disabled) { border-color:var(--forest-300); background:var(--forest-50); }
.management-period-navigation button:disabled { opacity:.5; cursor:default; }
.management-section { margin-bottom:22px; padding:22px; border:1px solid var(--line); border-radius:20px; background:rgba(255,255,255,.72); box-shadow:var(--shadow-sm); }
.management-section > header { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin-bottom:17px; }
.management-section > header h3 { margin:4px 0 0; color:var(--forest-950); font:600 23px/1.15 "Fraunces",serif; }
.management-section > header > small { color:var(--muted); font-size:12px; line-height:1.4; text-align:right; }
.management-kpi-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.management-kpi { min-width:0; min-height:132px; display:grid; grid-template-columns:42px minmax(0,1fr); gap:13px; align-items:center; padding:18px; border:1px solid var(--line); border-radius:15px; background:#fff; box-shadow:var(--shadow-sm); }
.management-kpi > div { align-self:center; display:flex; min-height:78px; flex-direction:column; justify-content:center; }
.management-kpi > span { width:42px; height:42px; display:grid; place-items:center; border-radius:12px; color:var(--forest-800); background:var(--forest-50); font-size:16px; font-weight:800; }
.management-kpi > span .semantic-icon { width:20px; height:20px; stroke-width:1.8; }
.management-kpi.blue > span { color:#08756d; background:#e3f6f4; }
.management-kpi.alert > span { color:#a33e3e; background:#fbe8e8; }
.management-kpi small,.management-kpi strong,.management-kpi p { display:block; }
.management-kpi small { color:var(--muted); font-size:11px; line-height:1.35; font-weight:800; letter-spacing:.035em; text-transform:uppercase; }
.management-kpi strong { margin-top:7px; color:var(--forest-950); font:600 27px/1 "Fraunces",serif; overflow-wrap:anywhere; }
.management-kpi p { margin:8px 0 0; color:var(--muted); font-size:12px; line-height:1.45; }
.management-analytics-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:14px; }
.management-card { min-width:0; padding:18px; border:1px solid var(--line); border-radius:15px; background:#fff; box-shadow:var(--shadow-sm); }
.management-card > header { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:15px; }
.management-card > header h4 { margin:0; color:var(--forest-950); font-size:16px; }
.management-card > header p { margin:5px 0 0; color:var(--muted); font-size:12px; line-height:1.5; }
.management-card > header > strong { color:var(--forest-800); font:600 26px "Fraunces",serif; }
.management-bars { display:grid; gap:12px; }
.management-bars > div > span { display:flex; justify-content:space-between; gap:10px; margin-bottom:6px; color:var(--forest-900); font-size:12px; }
.management-bars > div > span small { color:var(--muted); font-weight:800; }
.management-bars i { height:8px; display:block; overflow:hidden; border-radius:999px; background:#edf1f3; }
.management-bars b { height:100%; display:block; min-width:2px; border-radius:inherit; background:linear-gradient(90deg,var(--forest-700),var(--peach)); }
.management-demand { display:grid; grid-template-columns:1fr 1fr; gap:13px; }
.management-demand > div { display:flex; align-content:flex-start; gap:7px; flex-wrap:wrap; padding:12px; border-radius:12px; background:#f7fafb; }
.management-demand > div > small { flex:1 0 100%; margin-bottom:3px; color:var(--muted); font-size:11px; line-height:1.35; font-weight:800; text-transform:uppercase; }
.management-demand span { padding:6px 9px; border-radius:999px; color:var(--forest-800); background:#e8f3f7; font-size:11px; }
.management-demand span b { margin-left:4px; }
.management-demand p,.management-note { margin:0; color:var(--muted); font-size:12px; line-height:1.45; }
.management-note { margin-top:12px; }
.management-comparison { grid-column:1/-1; }
.management-month-bars { height:180px; display:grid; grid-template-columns:repeat(6,1fr); gap:10px; align-items:end; padding-top:8px; }
.management-month-bars > div { height:100%; display:grid; grid-template-rows:18px 1fr 18px; gap:5px; text-align:center; }
.management-month-bars span,.management-month-bars small { color:var(--muted); font-size:11px; font-weight:800; text-transform:capitalize; }
.management-month-bars i { min-height:80px; display:flex; align-items:flex-end; justify-content:center; border-bottom:1px solid var(--line); }
.management-month-bars b { width:min(42px,72%); display:block; border-radius:7px 7px 2px 2px; background:linear-gradient(180deg,var(--peach),var(--forest-700)); }
.management-invitation-layout { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:14px; margin-bottom:14px; }
.management-invite-compose .invitation-form { grid-template-columns:minmax(0,1fr) auto; }
.management-invite-compose .invitation-actions { grid-template-columns:auto auto; }
.management-mini-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.management-mini-stats .management-kpi { grid-template-columns:34px minmax(0,1fr); min-height:100%; padding:13px; gap:9px; }
.management-mini-stats .management-kpi > span { width:34px; height:34px; }
.management-mini-stats .management-kpi strong { font-size:20px; }
.management-invitation-history { display:grid; }
.management-invitation-row { display:flex; align-items:center; justify-content:space-between; gap:14px; min-height:54px; padding:10px 2px; border-bottom:1px solid #e9eeef; }
.management-invitation-row:last-child { border-bottom:0; }
.management-invitation-row strong,.management-invitation-row small { display:block; }
.management-invitation-row strong { color:var(--forest-950); font-size:13px; }
.management-invitation-row small { margin-top:4px; color:var(--muted); font-size:11px; line-height:1.4; }
.finance-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.management-disclaimer { margin:14px 0 0; padding:12px 14px; border-radius:10px; color:#5e7280; background:#f3f7f8; font-size:12px; line-height:1.5; }
.adherence-summary { grid-template-columns:repeat(4,minmax(0,1fr)); margin-bottom:14px; }
.management-adherence-table-wrap { overflow:auto; border:1px solid var(--line); border-radius:14px; background:#fff; }
.management-adherence-table { width:100%; min-width:1180px; border-collapse:collapse; }
.management-adherence-table th { padding:12px 13px; color:#607887; background:#f5f8f9; font-size:11px; letter-spacing:.045em; text-align:left; text-transform:uppercase; white-space:nowrap; }
.management-adherence-table td { padding:14px 13px; border-top:1px solid #e9eeef; color:var(--forest-900); font-size:12px; vertical-align:top; cursor:pointer; }
.management-adherence-table tr:hover td { background:#f7fbfc; }
.management-adherence-table tr.needs-attention td { background:#fff9f2; }
.management-adherence-table td strong,.management-adherence-table td small { display:block; }
.management-adherence-table td small { margin-top:5px; color:var(--muted); font-size:10px; line-height:1.45; }
.management-trend { display:inline-flex; padding:6px 9px; border-radius:999px; color:#5e7280; background:#edf1f3; font-size:10px; font-weight:800; white-space:nowrap; }
.management-trend.up { color:#08756d; background:#e2f6f2; }
.management-trend.down { color:#a33e3e; background:#fbe8e8; }

.patient-useful-stats-panel { grid-column:1/-1; margin-top:15px; overflow:hidden; }
.patient-useful-stats-header { align-items:center; }
.patient-useful-stats-header .eyebrow { display:block; margin-bottom:4px; }
.patient-adherence-overview { padding:16px 18px 18px; display:grid; grid-template-columns:minmax(240px,.75fr) minmax(330px,1.1fr) minmax(330px,1.15fr); gap:14px; }
.patient-adherence-overview > section { min-width:0; padding:17px; border:1px solid var(--line); border-radius:15px; background:#fff; }
.patient-adherence-general { display:flex; align-items:center; gap:17px; }
.patient-adherence-ring { --adherence:0; position:relative; width:108px; height:108px; flex:0 0 108px; display:grid; place-items:center; border-radius:50%; background:conic-gradient(#0a9488 calc(var(--adherence) * 1%),#e6ecee 0); }
.patient-adherence-ring::after { content:""; position:absolute; inset:10px; border-radius:50%; background:#fff; box-shadow:inset 0 0 0 1px #e8eeef; }
.patient-adherence-ring span { position:relative; z-index:1; text-align:center; }
.patient-adherence-ring strong,.patient-adherence-ring small { display:block; }
.patient-adherence-ring strong { color:var(--forest-950); font:600 24px/1 "Fraunces",serif; }
.patient-adherence-ring small { margin-top:5px; color:var(--muted); font-size:9px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.patient-adherence-general h4,.patient-adherence-comparison h4 { margin:0; color:var(--forest-950); font-size:15px; }
.patient-adherence-general p,.patient-adherence-comparison header p { margin:6px 0 10px; color:var(--muted); font-size:11px; line-height:1.5; }
.patient-useful-stats-panel .management-trend.down { color:#8b6415; background:#fff2d4; }
.patient-adherence-dimensions { display:grid; grid-template-columns:1fr 1fr; gap:15px 13px; }
.patient-adherence-dimension > div { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:6px; }
.patient-adherence-dimension strong { color:var(--forest-900); font-size:12px; }
.patient-adherence-dimension span { color:var(--forest-800); font-size:12px; font-weight:900; }
.patient-adherence-dimension > i { height:8px; display:block; overflow:hidden; border-radius:999px; background:#e8edef; }
.patient-adherence-dimension > i b { height:100%; display:block; min-width:0; border-radius:inherit; background:linear-gradient(90deg,#0b8178,#48cabe); }
.patient-adherence-dimension small { display:block; margin-top:6px; color:var(--muted); font-size:10px; line-height:1.4; }
.patient-adherence-comparison > header { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.patient-adherence-comparison > header > span { min-width:40px; padding:6px 9px; border-radius:999px; color:#607480; background:#edf1f3; font-size:10px; font-weight:900; text-align:center; }
.patient-adherence-comparison > header > span.up { color:#08756d; background:#e2f6f2; }
.patient-adherence-comparison > header > span.down { color:#8b6415; background:#fff2d4; }
.patient-adherence-periods { display:grid; grid-template-columns:1fr auto 1fr; gap:10px; align-items:center; margin-bottom:12px; }
.patient-adherence-periods > div { padding:9px 10px; border-radius:10px; background:#f6f9fa; text-align:center; }
.patient-adherence-periods strong,.patient-adherence-periods small { display:block; }
.patient-adherence-periods strong { color:var(--forest-950); font:600 19px/1 "Fraunces",serif; }
.patient-adherence-periods small { margin-top:4px; color:var(--muted); font-size:9px; }
.patient-adherence-periods > span { color:#82939d; }
.patient-adherence-weekly-bars { height:92px; display:grid; grid-template-columns:repeat(8,1fr); gap:5px; align-items:end; }
.patient-adherence-weekly-bars > div { height:100%; display:grid; grid-template-rows:1fr 13px 13px; gap:2px; align-items:end; text-align:center; }
.patient-adherence-weekly-bars i { height:100%; min-height:4px; align-self:end; border-radius:5px 5px 2px 2px; background:#c9d5da; }
.patient-adherence-weekly-bars .recent i { background:#42bdb2; }
.patient-adherence-weekly-bars strong,.patient-adherence-weekly-bars small { color:var(--muted); font-size:9px; }
.patient-adherence-comparison > p { margin:10px 0 0; color:#536b78; font-size:11px; font-weight:700; text-align:center; }
.patient-adherence-clinical-note { margin:0 18px 18px; padding:15px 17px; display:grid; grid-template-columns:34px minmax(0,1fr); gap:12px; border:1px solid #cfe0e7; border-radius:14px; color:#355565; background:#f2f8fa; }
.patient-adherence-clinical-note > span { width:34px; height:34px; display:grid; place-items:center; border-radius:10px; color:#0a756d; background:#dff3f0; font-size:16px; }
.patient-adherence-clinical-note strong { color:var(--forest-950); font-size:13px; }
.patient-adherence-clinical-note p { margin:5px 0 0; color:#526d7a; font-size:11px; line-height:1.55; }
.patient-adherence-detail { display:grid; gap:20px; }
.patient-adherence-method { padding:15px 17px; display:grid; grid-template-columns:minmax(220px,.7fr) minmax(320px,1.3fr); gap:18px; align-items:center; border:1px solid #cfe0e7; border-radius:13px; background:#f3f8fa; }
.patient-adherence-method h4,.patient-adherence-detail > section > h4 { margin:4px 0 0; color:var(--forest-950); font-size:15px; }
.patient-adherence-method p,.patient-adherence-detail-caption { margin:0; color:#526d7a; font-size:11px; line-height:1.55; }
.patient-adherence-detail > section > h4 { margin-bottom:9px; }
.patient-adherence-detail-caption { margin:-3px 0 9px; }
.patient-adherence-detail-table { max-height:310px; overflow:auto; border:1px solid var(--line); border-radius:11px; }
.patient-adherence-detail-table table { width:100%; min-width:620px; border-collapse:collapse; }
.patient-adherence-detail-table th { position:sticky; top:0; z-index:1; padding:10px 12px; color:#607887; background:#f5f8f9; font-size:10px; letter-spacing:.04em; text-align:left; text-transform:uppercase; }
.patient-adherence-detail-table td { padding:11px 12px; border-top:1px solid #e8edef; color:var(--forest-900); font-size:11px; vertical-align:middle; }

@media (max-width:1100px) {
  .management-kpi-grid,.finance-grid,.adherence-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .management-invitation-layout { grid-template-columns:1fr; }
  .patient-adherence-overview { grid-template-columns:1fr 1fr; }
  .patient-adherence-comparison { grid-column:1/-1; }
}
@media (max-width:760px) {
  .management-heading { align-items:flex-start; flex-direction:column; }
  .management-heading h2 { font-size:29px; }
  .management-period-navigation { width:100%; justify-content:space-between; }
  .management-period-navigation > .management-period-button { width:38px; min-width:38px; padding:0; }
  .management-period-button b { display:none; }
  .management-section { padding:16px; border-radius:16px; }
  .management-section > header { align-items:flex-start; flex-direction:column; }
  .management-section > header > small { text-align:left; }
  .management-kpi-grid,.finance-grid,.adherence-summary,.management-analytics-grid,.management-mini-stats { grid-template-columns:1fr; }
  .management-kpi { min-height:116px; }
  .management-demand { grid-template-columns:1fr; }
  .management-month-bars { gap:5px; }
  .management-invite-compose .invitation-form { grid-template-columns:1fr; }
  .patient-useful-stats-header { align-items:flex-start; }
  .patient-useful-stats-header > button { width:100%; }
  .patient-adherence-overview { padding:13px; grid-template-columns:1fr; }
  .patient-adherence-overview > section,.patient-adherence-comparison { grid-column:1; }
  .patient-adherence-general { align-items:flex-start; flex-direction:column; }
  .patient-adherence-ring { align-self:center; }
  .patient-adherence-dimensions { grid-template-columns:1fr; }
  .patient-adherence-clinical-note { margin:0 13px 13px; }
  .patient-adherence-method { grid-template-columns:1fr; }
}

/* Cabecera del paciente: una única métrica visual para todas las acciones. */
.patient-detail-header > .back-button,
.patient-detail-actions > button.primary-button,
.patient-detail-actions > button.secondary-button {
  appearance: none;
  block-size: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  max-height: 44px !important;
  margin-block: 0 !important;
  padding-block: 0 !important;
  border-width: 1px;
  line-height: 1 !important;
  vertical-align: middle;
}
.patient-detail-actions > button.primary-button { box-shadow: none; }

/* Importación clínica asistida: carga, trazabilidad y revisión profesional. */
.clinical-info-actions { grid-template-columns:repeat(5,minmax(122px,1fr)); }
.clinical-ai-import-button { border-color:#bcd8e8; background:linear-gradient(135deg,#f3fbff,#eefaf8); }
.clinical-ai-import-button .clinical-history-button-icon { color:#fff; background:linear-gradient(145deg,#0a5a98,#0aa296); }
.clinical-import-page { display:grid; gap:20px; padding-bottom:90px; }
.clinical-import-page .ui-page-header { margin-bottom:0; }
.clinical-import-intro-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr); gap:18px; align-items:start; }
.clinical-import-upload-panel { padding:0; overflow:hidden; border:1px solid var(--line); border-radius:18px; background:var(--paper); box-shadow:var(--shadow-sm); }
.clinical-import-upload-panel > header { padding:24px 26px 20px; display:flex; gap:14px; align-items:flex-start; border-bottom:1px solid var(--line); }
.clinical-import-upload-panel h2,.clinical-import-documents-summary h2,.clinical-import-section-header h2 { margin:3px 0 5px; color:var(--forest-950); font:600 22px/1.15 "Fraunces",serif; }
.clinical-import-upload-panel header p { max-width:650px; margin:0; color:var(--muted); font-size:13px; line-height:1.55; }
.clinical-import-step { width:34px; height:34px; flex:0 0 34px; display:grid; place-items:center; border-radius:11px; color:#fff; background:#084a84; font-size:13px; font-weight:900; box-shadow:0 7px 16px rgba(8,74,132,.16); }
.clinical-import-dropzone { min-height:260px; margin:22px 26px 16px; padding:30px; display:grid; place-content:center; justify-items:center; gap:8px; border:2px dashed #a9cdd8; border-radius:17px; color:#355967; background:linear-gradient(145deg,#f7fbfc,#eff8f7); text-align:center; cursor:pointer; transition:.2s ease; }
.clinical-import-dropzone:hover { border-color:#16a89b; background:#eefaf8; transform:translateY(-1px); }
.clinical-import-dropzone.is-disabled { opacity:.58; cursor:not-allowed; }
.clinical-import-dropzone.is-processing { opacity:.7; pointer-events:none; }
.clinical-import-upload-icon { width:58px; height:58px; display:grid; place-items:center; border-radius:17px; color:#075083; background:#dff4f2; }
.clinical-import-upload-icon svg { width:29px; height:29px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.clinical-import-dropzone strong { margin-top:5px; color:var(--forest-950); font-size:16px; }
.clinical-import-dropzone span,.clinical-import-dropzone small { font-size:12px; }
.clinical-import-dropzone small { color:var(--muted); }
.clinical-import-file-list { margin:0 26px; display:grid; gap:8px; }
.clinical-import-file-list article { min-height:54px; padding:9px 12px; display:grid; grid-template-columns:34px 1fr; gap:10px; align-items:center; border:1px solid #dce6ea; border-radius:11px; background:#fff; }
.clinical-import-file-list article > span { width:34px; height:34px; display:grid; place-items:center; border-radius:9px; color:#075083; background:#eaf5f8; }
.clinical-import-file-list strong,.clinical-import-file-list small { display:block; }
.clinical-import-file-list strong { color:var(--forest-950); font-size:12px; overflow-wrap:anywhere; }
.clinical-import-file-list small { margin-top:2px; color:var(--muted); font-size:10px; }
.clinical-import-file-list footer { padding:4px 2px; color:#4d6a76; font-size:11px; text-align:right; }
.clinical-import-file-list footer.is-error { color:#a73932; font-weight:800; }
.clinical-import-analyze-button { min-width:220px; min-height:46px; margin:16px 26px 24px auto; display:flex; align-items:center; justify-content:center; gap:6px; text-align:center; line-height:1; }
.clinical-import-guidance { display:grid; gap:11px; }
.clinical-import-guidance article { padding:17px; display:grid; grid-template-columns:38px minmax(0,1fr); gap:12px; border:1px solid #d8e3e7; border-radius:15px; background:#fff; box-shadow:0 7px 18px rgba(24,67,81,.045); }
.clinical-import-guidance-icon { width:38px; height:38px; display:grid; place-items:center; border-radius:11px; color:#075083; background:#e8f4f8; font-size:16px; font-weight:900; }
.clinical-import-guidance h3 { margin:1px 0 5px; color:var(--forest-950); font-size:13px; }
.clinical-import-guidance p { margin:0; color:#536d79; font-size:11px; line-height:1.55; }
.clinical-import-guidance .clinical-import-privacy-note { border-color:#b9dfda; background:#f2fbf9; }
.clinical-import-guidance .clinical-import-privacy-note .clinical-import-guidance-icon { color:#087b72; background:#d9f3ef; }
.clinical-import-guidance .clinical-import-config-warning { border-color:#efca7b; background:#fffaf0; }
.clinical-import-guidance .clinical-import-config-warning .clinical-import-guidance-icon { color:#a76400; background:#ffedc5; }
.clinical-import-guidance code { font-size:10px; }
.clinical-import-loading { min-height:420px; display:grid; place-content:center; justify-items:center; gap:10px; border:1px solid var(--line); border-radius:18px; background:#fff; text-align:center; }
.clinical-import-loading h2,.clinical-import-result-card h2 { margin:6px 0 0; color:var(--forest-950); font:600 24px/1.2 "Fraunces",serif; }
.clinical-import-loading p,.clinical-import-result-card p { margin:0; color:var(--muted); font-size:13px; }
.clinical-import-spinner,.clinical-import-button-spinner { border-radius:50%; border:3px solid #c9e7e4; border-top-color:#087e75; animation:clinical-import-spin .8s linear infinite; }
.clinical-import-spinner { width:46px; height:46px; }
.clinical-import-button-spinner { width:16px; height:16px; }
@keyframes clinical-import-spin { to { transform:rotate(360deg); } }
.clinical-import-match { padding:15px 18px; display:grid; grid-template-columns:40px 1fr; gap:12px; align-items:center; border:1px solid; border-radius:14px; }
.clinical-import-match > span,.clinical-import-result-card > span { width:40px; height:40px; display:grid; place-items:center; border-radius:12px; color:#fff; font-size:18px; font-weight:900; }
.clinical-import-match strong { color:var(--forest-950); font-size:13px; }
.clinical-import-match p { margin:4px 0 0; color:#4d6875; font-size:11px; line-height:1.45; }
.clinical-import-match.is-match { border-color:#a9ddd6; background:#f0faf8; }
.clinical-import-match.is-match > span { background:#0b8c7f; }
.clinical-import-match.is-mismatch { border-color:#e9b1a9; background:#fff5f3; }
.clinical-import-match.is-mismatch > span { background:#c65348; }
.clinical-import-warnings { padding:15px 18px; border:1px solid #efca7b; border-radius:14px; background:#fffaf0; }
.clinical-import-warnings > div { display:flex; gap:9px; align-items:center; color:#8b5e0a; font-size:13px; }
.clinical-import-warnings > div span { width:26px; height:26px; display:grid; place-items:center; border-radius:8px; color:#fff; background:#d78a0e; font-weight:900; }
.clinical-import-warnings ul { margin:10px 0 0 44px; padding:0; color:#6c5b3b; font-size:11px; line-height:1.55; }
.clinical-import-documents-summary { padding:17px 19px; display:grid; grid-template-columns:auto 1fr; gap:20px; align-items:center; border:1px solid var(--line); border-radius:15px; background:#fff; }
.clinical-import-documents-summary h2 { font-size:18px; }
.clinical-import-documents-summary > div:last-child { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.clinical-import-documents-summary > div:last-child > span { min-height:42px; padding:7px 10px 7px 7px; display:grid; grid-template-columns:28px auto; gap:0 8px; align-items:center; border:1px solid #d9e4e8; border-radius:10px; color:#244d60; background:#f8fbfc; font-size:11px; }
.clinical-import-documents-summary span > strong { grid-row:1/3; width:28px; height:28px; display:grid; place-items:center; border-radius:8px; color:#075083; background:#e3f2f6; }
.clinical-import-documents-summary span > small { color:var(--muted); font-size:9px; }
.clinical-import-review-toolbar { padding:14px 17px; display:flex; justify-content:space-between; gap:14px; align-items:center; border:1px solid #cbdce3; border-radius:14px; background:#f4f9fb; }
.patient-import-identity-card { padding:18px 20px; display:grid; grid-template-columns:38px minmax(0,1fr); gap:14px; align-items:start; border:1px solid #b9d9e3; border-radius:15px; background:#f7fbfc; }
.patient-import-identity-card label { display:grid; gap:7px; color:var(--forest-950); font-size:13px; }
.patient-import-identity-card input { width:100%; min-height:48px; padding:0 13px; border:1px solid #bfd3dc; border-radius:11px; color:var(--forest-950); background:#fff; font:600 15px/1.2 inherit; }
.patient-import-identity-card input:focus { border-color:#0aa296; outline:3px solid rgba(10,162,150,.12); }
.patient-import-identity-card small { color:var(--muted); font-size:10px; font-weight:400; line-height:1.45; }
.patient-ai-import-list-button { display:inline-flex; align-items:center; justify-content:center; gap:7px; }
.clinical-import-review-toolbar strong,.clinical-import-review-toolbar span { display:block; }
.clinical-import-review-toolbar strong { color:var(--forest-950); font-size:13px; }
.clinical-import-review-toolbar span { margin-top:3px; color:var(--muted); font-size:10px; }
.clinical-import-review-toolbar > div:last-child { display:flex; gap:9px; }
.clinical-import-review-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; align-items:start; }
.clinical-import-proposals { overflow:hidden; padding:0; border:1px solid var(--line); border-radius:18px; background:#fff; box-shadow:var(--shadow-sm); }
.clinical-import-section-header { padding:18px 20px; border-bottom:1px solid var(--line); }
.clinical-import-section-header > div { display:flex; align-items:center; gap:12px; }
.clinical-import-section-header h2 { margin-bottom:0; font-size:19px; }
.clinical-import-proposal-list { display:grid; }
.clinical-import-proposal { padding:16px 18px; display:grid; grid-template-columns:30px minmax(0,1fr); gap:10px; border-bottom:1px solid #e4eaed; background:#fff; }
.clinical-import-proposal:last-child { border-bottom:0; }
.clinical-import-proposal.has-conflict { background:#fffaf1; }
.clinical-import-proposal.is-locked { background:#f3f5f6; opacity:.78; }
.clinical-import-proposal-select { padding-top:2px; }
.clinical-import-proposal-select input { position:absolute; opacity:0; pointer-events:none; }
.clinical-import-proposal-select span { width:22px; height:22px; display:grid; place-items:center; border:2px solid #abc4d0; border-radius:7px; background:#fff; cursor:pointer; }
.clinical-import-proposal-select input:checked + span { border-color:#087e75; background:#087e75; }
.clinical-import-proposal-select input:checked + span::after { content:"✓"; color:#fff; font-size:13px; font-weight:900; }
.clinical-import-proposal-select input:disabled + span { cursor:not-allowed; background:#dce3e6; }
.clinical-import-proposal-title { margin-bottom:9px; display:flex; flex-wrap:wrap; gap:7px; align-items:center; }
.clinical-import-proposal-title > strong { margin-right:auto; color:var(--forest-950); font-size:13px; }
.clinical-import-confidence { padding:4px 7px; border-radius:999px; font-size:9px; font-weight:900; }
.clinical-import-confidence.direct { color:#08746b; background:#def4ef; }
.clinical-import-confidence.ambiguous,.clinical-import-confidence.conflict { color:#8d5d04; background:#ffedc3; }
.clinical-import-confidence.locked { color:#5e7078; background:#e2e7e9; }
.clinical-import-proposal textarea,.clinical-import-session-date input { width:100%; border:1px solid #cbdbe2; border-radius:10px; color:var(--forest-950); background:#fbfdfd; font:inherit; font-size:12px; }
.clinical-import-proposal textarea { min-height:70px; padding:10px 11px; resize:vertical; line-height:1.5; }
.clinical-import-proposal textarea:focus,.clinical-import-session-date input:focus { border-color:#0aa296; outline:3px solid rgba(10,162,150,.12); }
.clinical-import-current { margin-top:8px; padding:9px 10px; border-left:3px solid #dda33d; border-radius:5px 9px 9px 5px; background:#fff6df; }
.clinical-import-current small { color:#8a671d; font-size:8px; font-weight:900; text-transform:uppercase; letter-spacing:.06em; }
.clinical-import-current p { margin:3px 0 0; color:#594a2e; font-size:11px; line-height:1.45; white-space:pre-line; }
.clinical-import-proposal footer { margin-top:9px; display:grid; gap:4px; color:#617b87; font-size:9px; }
.clinical-import-proposal footer q { color:#4b6875; font-style:italic; line-height:1.4; }
.clinical-import-session-date { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-bottom:9px; }
.clinical-import-session-date label,.clinical-import-session-proposal .clinical-import-proposal-main > label,.clinical-import-session-proposal details label { color:#365b6d; font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.clinical-import-session-date input { height:40px; margin-top:5px; padding:0 10px; }
.clinical-import-session-proposal label textarea { margin-top:5px; color:var(--forest-950); font-weight:400; text-transform:none; letter-spacing:0; }
.clinical-import-session-proposal details { margin-top:10px; padding:10px 11px; border:1px solid #dbe6ea; border-radius:10px; background:#f8fbfc; }
.clinical-import-session-proposal summary { color:#075083; cursor:pointer; font-size:11px; font-weight:900; }
.clinical-import-session-proposal details label { display:block; margin-top:10px; }
.clinical-import-empty { min-height:220px; padding:35px 20px; display:grid; place-content:center; text-align:center; }
.clinical-import-empty strong { color:var(--forest-950); font:600 17px/1.2 "Fraunces",serif; }
.clinical-import-empty p { max-width:300px; margin:7px auto 0; color:var(--muted); font-size:11px; }
.clinical-import-confirm-bar { position:sticky; z-index:5; bottom:20px; padding:15px 17px; display:flex; justify-content:space-between; gap:18px; align-items:center; border:1px solid #9fc8d7; border-radius:16px; background:rgba(247,252,253,.96); box-shadow:0 14px 35px rgba(7,63,120,.15); backdrop-filter:blur(14px); }
.clinical-import-confirm-bar strong { color:var(--forest-950); font-size:13px; }
.clinical-import-confirm-bar p { margin:4px 0 0; color:#526e7c; font-size:10px; }
.clinical-import-result-card { min-height:260px; padding:34px; display:grid; grid-template-columns:54px 1fr auto; gap:18px; align-items:center; border:1px solid; border-radius:18px; background:#fff; box-shadow:var(--shadow-sm); }
.clinical-import-result-card > span { width:54px; height:54px; border-radius:16px; }
.clinical-import-result-card.is-success { border-color:#a9ddd6; }
.clinical-import-result-card.is-success > span { background:#0b8c7f; }
.clinical-import-result-card.is-error { border-color:#efbbb5; }
.clinical-import-result-card.is-error > span { background:#c65348; }

@media (max-width:1100px) {
  .clinical-info-actions { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .clinical-import-intro-grid,.clinical-import-review-grid { grid-template-columns:1fr; }
  .clinical-import-guidance { grid-template-columns:1fr 1fr; }
}
@media (max-width:760px) {
  .clinical-info-actions { grid-template-columns:1fr; }
  .clinical-import-page { padding-bottom:105px; }
  .clinical-import-intro-grid { gap:13px; }
  .clinical-import-upload-panel > header { padding:18px 16px; }
  .clinical-import-dropzone { min-height:220px; margin:15px; padding:20px 14px; }
  .clinical-import-file-list { margin:0 15px; }
  .clinical-import-analyze-button { width:calc(100% - 30px); margin:14px 15px 18px; }
  .clinical-import-guidance { grid-template-columns:1fr; }
  .clinical-import-review-toolbar,.clinical-import-confirm-bar { align-items:stretch; flex-direction:column; }
  .patient-import-identity-card { grid-template-columns:1fr; }
  .clinical-import-review-toolbar > div:last-child { width:100%; flex-direction:column; }
  .clinical-import-review-toolbar button,.clinical-import-confirm-bar button { width:100%; }
  .clinical-import-documents-summary { grid-template-columns:1fr; }
  .clinical-import-documents-summary > div:last-child { justify-content:flex-start; }
  .clinical-import-session-date { grid-template-columns:1fr; }
  .clinical-import-result-card { grid-template-columns:1fr; justify-items:center; text-align:center; }
}
@media (max-width: 760px) {
  .behavior-chain-toolbar { position: static; align-items: stretch; flex-direction: column; }
  .behavior-chain-identity { grid-template-columns: 1fr; }
  .behavior-chain-views { width: 100%; }
  .behavior-chain-views button { flex: 1; }
  .behavior-chain-stage-track { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .behavior-chain-step > header { grid-template-columns: 30px minmax(0, 1fr); padding: 13px 11px; }
  .behavior-chain-step > header > span { width: 30px; height: 30px; }
  .behavior-chain-step > header > button { grid-column: 2; justify-self: start; }
  .behavior-chain-step-body { padding: 15px 12px; }
  .behavior-chain-fields, .behavior-chain-link-fields { grid-template-columns: 1fr; }
  .behavior-chain-link > header { grid-template-columns: 28px minmax(0, 1fr); }
  .behavior-chain-link > header div { grid-column: 1 / -1; }
  .behavior-chain-link > footer { align-items: flex-start; flex-direction: column; }
  .behavior-chain-step-actions { align-items: stretch; flex-direction: column-reverse; }
  .behavior-chain-step-actions button { width: 100%; }
  .behavior-chain-understanding { padding: 16px 12px; }
  .behavior-chain-timeline article { grid-template-columns: 1fr; padding-left: 38px; }
  .behavior-chain-timeline button { justify-self: start; }
  .behavior-chain-savebar { position: static; align-items: stretch; flex-direction: column; }
  .behavior-chain-savebar > label { align-items: flex-start; }
  .behavior-chain-savebar > div { display: grid; grid-template-columns: 1fr; }
  .behavior-chain-savebar button { width: 100%; }
  .missing-links-toolbar { position: static; align-items: stretch; flex-direction: column; }
  .missing-links-identity { grid-template-columns: 1fr; }
  .missing-links-question-card { padding: 17px 14px; }
  .missing-links-question-card > header { grid-template-columns: 40px minmax(0,1fr); gap: 10px; }
  .missing-links-question-card > header > span { width: 40px; height: 40px; }
  .missing-links-question-card h3 { font-size: 20px; }
  .missing-links-answer-actions { grid-template-columns: 1fr; }
  .missing-links-step-actions .primary-button { width: 100%; }
  .missing-links-map { padding: 16px 11px; }
  .missing-links-map-path article { grid-template-columns: 34px minmax(0,1fr); gap: 9px; }
  .missing-links-map-path article > span { width: 34px; height: 34px; }
  .missing-links-map-path::before { left: 16px; }
  .missing-links-savebar { position: static; align-items: stretch; flex-direction: column; }
  .missing-links-savebar button { width: 100%; }
}
