/* Practice tokens: navy rail, cool gray canvas, white work surfaces, restrained teal status. */
.portal-panel.chart-page { font-family:"Segoe UI",Arial,sans-serif; background:#f4f7fa; color:#18344f; font-size:0.8235rem; }
.portal-panel .chart-brand { font-family:Poppins,"Segoe UI",sans-serif; }
.portal-panel.chart-page .shell { max-width:1800px; padding:24px 28px; }
.portal-panel.chart-page .panel-demo-entry { background:transparent; border:0; padding:0; font-size:0.7647rem; margin-bottom:10px; }
.portal-panel.chart-page .panel-head { border:0; padding:0 0 20px; margin:0; }
.portal-panel.chart-page .who b { font-size:1.0588rem; }
.portal-panel.chart-page #seccion-pacientes > h2 { font-size:1.6471rem; letter-spacing:-.6px; margin:0 0 4px; }
.practice-intro { color:#526a80; font-size:0.8235rem; margin:0 0 20px; }
.practice-heading { display:flex; justify-content:space-between; gap:24px; align-items:center; margin-bottom:10px; }
.practice-heading h1 { font-size:1.7647rem; letter-spacing:-.6px; line-height:1.3; margin:0 0 6px; }
.practice-heading p { font-size:0.8235rem; color:#526a80; margin:0; }
.portal-panel.chart-page .practice-heading .panel-head { display:flex; align-items:center; gap:16px; padding:0; flex:none; }
.practice-heading .who { text-align:right; }
.practice-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.practice-top-actions { display:flex; gap:12px; align-items:center; }
.practice-top-actions kbd { font:0.7647rem "Segoe UI",sans-serif; border:1px solid #cdd9e4; border-radius:3px; color:#5a7187; padding:1px 4px; margin-left:8px; }
.practice-root { display:block !important; }
.practice-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); padding:18px 0; margin-bottom:22px; border:1px solid #dfe7ef; border-radius:8px; background:#fff; }
.practice-metrics > div { text-align:center; padding:0 12px; border-right:1px solid #e3ebf3; }
.practice-metrics > div:last-child { border:0; }
.practice-metrics b { display:block; font-size:1.6471rem; line-height:1.2; color:#102d4c; font-weight:650; }
.practice-metrics span { display:block; font-size:0.7647rem; color:#546a80; margin-top:4px; }
.practice-layout { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:18px; align-items:start; }
.practice-directory,.practice-side-card { border:1px solid #dfe7ef; border-radius:8px; background:#fff; padding:18px; min-width:0; }
.practice-directory h3,.practice-side h3 { font-size:1.1176rem; line-height:1.3; margin:0 0 14px; letter-spacing:-.3px; }
.practice-toolbar { display:flex; gap:14px; align-items:end; margin-bottom:13px; }
.practice-toolbar label { display:block; font-size:0.7647rem; color:#536a82; }
.practice-toolbar label:first-child { flex:1; }
.practice-toolbar input,.practice-toolbar select,.practice-finder input { font:0.8235rem "Segoe UI",Arial,sans-serif; min-height:40px; padding:9px 11px; border:1px solid #cbdbe9; border-radius:5px; background:#fff; color:#163b60; width:100%; margin-top:5px; }
.practice-toolbar select { display:block; width:190px; }
.practice-filters { display:flex; gap:7px; flex-wrap:wrap; margin-bottom:16px; }
.practice-filter { border:1px solid #d6e2ed; background:#fff; color:#365571; border-radius:20px; min-height:34px; padding:6px 12px; cursor:pointer; font:0.7647rem "Segoe UI",Arial,sans-serif; }
.practice-filter[aria-pressed=true] { background:#133c61; border-color:#133c61; color:#fff; }
.practice-filter:hover { box-shadow:0 0 0 1px #83b2d6; }
.practice-scroll-hint { display:none; }
.practice-table-wrap { overflow:auto; scrollbar-width:thin; }
.practice-table-wrap table { width:100%; border-collapse:collapse; font-size:0.7647rem; min-width:720px; }
.practice-table-wrap th { font-weight:600; font-size:0.7647rem; text-align:left; background:#eef3f8; padding:12px 8px; color:#234565; }
.practice-table-wrap tr.patient { display:table-row !important; padding:0 !important; border:0 !important; border-radius:0 !important; box-shadow:none !important; }
.practice-table-wrap td { padding:14px 8px; border-bottom:1px solid #e5edf4; vertical-align:middle; line-height:1.5; }
.practice-table-wrap tbody tr:hover { background:#f8fbfe; }
.practice-person { display:flex; gap:10px; align-items:center; min-width:180px; }
.practice-person strong { display:block; color:#153554; font-size:0.7647rem; font-weight:600; }
.practice-person small { display:block; color:#687d90; font-size:0.7647rem; margin-top:3px; }
.practice-avatar { display:grid; place-items:center; flex:none; width:38px; height:38px; border-radius:50%; background:#e2eef9; color:#285f91; font-size:0.7647rem; font-weight:600; }
.practice-table-wrap tr:nth-child(3n+2) .practice-avatar { background:#e0f2ed; color:#276c61; }
.practice-table-wrap tr:nth-child(3n+3) .practice-avatar { background:#eeeafa; color:#5a5387; }
.practice-purpose { max-width:175px; color:#49627b; }
.practice-status { display:inline-block; padding:4px 8px; border-radius:4px; font-size:0.7647rem; white-space:nowrap; background:#edf1f5; color:#526780; }
.practice-status.active { background:#e3f4ee; color:#176351; }
.practice-row-actions { min-width:285px; }
.practice-action-group { display:flex; align-items:center; gap:8px; }
.practice-row-actions .button { display:inline-flex; align-items:center; justify-content:center; gap:7px; font:600 0.7647rem/1.3 "Segoe UI",Arial,sans-serif !important; min-height:44px !important; padding:9px 11px !important; border-radius:7px; white-space:nowrap; text-decoration:none; box-shadow:none; }
.practice-row-actions .practice-summary-button { color:#245578; border-color:#c4d8e8; background:#f7fbff; }
.practice-row-actions .practice-summary-button:hover { background:#e9f3fc; border-color:#7da7c8; }
.practice-row-actions .practice-open-button { background:#205f94; border-color:#205f94; color:#fff; }
.practice-row-actions .practice-open-button:hover { background:#164c7a; border-color:#164c7a; }
.practice-row-actions svg { width:17px; height:17px; flex:none; }
.practice-action-note { font-size:0.7647rem; line-height:1.5; color:#63788a; white-space:normal; }
.practice-pager { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-top:15px; font-size:0.7647rem; }
.practice-result-count { font-size:0.7647rem; color:#536e86; margin:0 auto 0 0; }
.practice-pager .button { font-size:0.7647rem !important; padding:5px 9px !important; min-height:32px !important; }
.practice-empty { padding:25px 14px; color:#536e86; background:#f8fbfd; text-align:center; border-radius:5px; }
.practice-empty p { font-size:0.7647rem; }
.practice-side { display:grid; gap:16px; }
.practice-side-card p { font-size:0.7647rem; line-height:1.6; }
.practice-side-card > a { font-size:0.7647rem; }
.practice-side-card > .button { display:flex; width:100%; justify-content:center; margin-top:14px; }
.practice-muted { color:#61798f; font-size:0.7647rem !important; }
.practice-today { display:grid; grid-template-columns:42px minmax(0,1fr); gap:10px; border-bottom:1px solid #e3ebf2; padding:15px 0; font-size:0.7647rem; }
.practice-today time { font-weight:600; color:#23496f; }
.practice-today b,.practice-today span { display:block; }
.practice-today b { font-size:0.7647rem; }
.practice-today span { margin-top:5px; color:#5c7489; }
.practice-today a { grid-column:2; justify-self:start; }
.practice-side-card > a:not(.button) { display:inline-block; margin-top:15px; }
.practice-dialog { width:min(720px,calc(100% - 28px)); max-height:90dvh; overflow:auto; border:1px solid #d3dfeb; border-radius:12px; padding:24px; color:#163654; background:#fff; font:0.8235rem/1.6 "Segoe UI",Arial,sans-serif; box-shadow:0 20px 80px #0d29402b; }
.practice-dialog::backdrop { background:#0e2c4a70; }
.practice-dialog-head { display:flex; align-items:center; justify-content:space-between; gap:14px; border-bottom:1px solid #e1e8f0; padding-bottom:16px; margin-bottom:20px; }
.practice-dialog-head h2 { margin:0; font-size:1.2941rem; }
.practice-dialog .button { display:inline-flex; align-items:center; justify-content:center; gap:8px; font:600 0.8235rem/1.4 "Segoe UI",Arial,sans-serif; padding:10px 14px; min-height:44px; border-radius:7px; box-shadow:none; }
.practice-preview-identity { display:flex; gap:14px; align-items:center; margin-bottom:16px; }
.practice-preview-identity h3 { font-size:1.3529rem; line-height:1.3; margin:0; }
.practice-preview-identity .practice-avatar { width:56px; height:56px; font-size:1.1765rem; }
.practice-preview-identity p { margin:5px 0 0; }
.practice-preview-details { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:18px 0; }
.practice-preview-details div:last-child { grid-column:1/-1; }
.practice-preview-details dt { font-size:0.7647rem; color:#63788a; margin-bottom:4px; }
.practice-preview-details dd { margin:0; overflow-wrap:anywhere; }
.practice-preview-actions { display:flex; flex-wrap:wrap; gap:9px; border-top:1px solid #e1e8f0; padding-top:18px; margin-top:20px; }
.practice-directory-help { color:#536b81; font-size:0.7647rem; line-height:1.6; max-width:680px; margin:-4px 0 20px; }
.practice-table-wrap table { min-width:880px; font-size:0.8235rem; }
.practice-person strong { font-size:0.8235rem; }
.practice-next-visit { display:flex; align-items:center; gap:14px; padding:16px; border:1px solid #dce7f0; border-radius:8px; background:#f5f9fd; margin:18px 0; }
.practice-next-visit > div { flex:1; min-width:0; }
.practice-next-visit svg,.practice-dialog .button svg { width:20px; height:20px; flex:none; }
.practice-dialog .practice-next-visit h4 { margin:0 0 3px; }
.practice-next-visit p { margin:0; font-size:0.8235rem; }
.practice-next-visit small { display:block; color:#58748c; line-height:1.5; margin-top:4px; }
.practice-primary-actions { border:0; padding:0; margin:18px 0 24px; }
.practice-primary-actions .primary { flex:1; }
.practice-shortcuts { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:12px 0 20px; }
.practice-shortcut { display:flex; gap:12px; align-items:center; min-width:0; min-height:80px; padding:14px; border:1px solid #dae5ee; border-radius:8px; background:#fff; color:#1d4a71; text-decoration:none; }
.practice-shortcut:hover { border-color:#88afcf; background:#f3f8fd; }
.practice-shortcut > svg { width:22px; height:22px; flex:none; }
.practice-shortcut > svg:last-child { width:16px; margin-left:auto; }
.practice-shortcut b { display:block; font-size:0.8235rem; line-height:1.4; }
.practice-shortcut small { display:block; font-size:0.7647rem; line-height:1.5; color:#5b7288; margin-top:4px; }
.practice-access-options { border-top:1px solid #e1e8f0; padding-top:14px; color:#526c84; font-size:0.7647rem; }
.practice-access-options summary { padding:8px 0; cursor:pointer; }
.practice-access-options .practice-preview-actions { margin-top:8px; padding:0; border:0; }
.practice-dialog .practice-revoke { color:#98304e; border-color:#d6acb8; }
.practice-back { margin:0 0 18px; }
.practice-visit-list { display:grid; gap:12px; }
.practice-visit { padding:16px; border:1px solid #dce7f0; border-radius:8px; }
.practice-visit time { font-weight:600; }
.practice-visit .practice-status { margin-left:12px; }
.practice-dialog .practice-visit h4 { margin:10px 0 4px; }
.practice-visit p { margin:4px 0; font-size:0.8235rem; }
.practice-unavailable { padding:16px; background:#f4f7fa; border-left:3px solid #7891a7; font-size:0.8235rem; }
.practice-finder { width:min(600px,calc(100% - 28px)); }
.practice-dialog h4 { font-size:0.8235rem; margin:20px 0 7px; }
.practice-finder-results { display:grid; gap:6px; margin-top:12px; }
.practice-finder .practice-result-count { margin:8px 0; }
.practice-finder-result { display:flex; gap:12px; align-items:center; border:1px solid #e0e9f1; background:#fff; color:#193f65; border-radius:6px; padding:12px; font:0.8235rem "Segoe UI",sans-serif; text-align:left; cursor:pointer; text-decoration:none; }
.practice-finder-result .practice-status { margin-left:auto; }
.practice-finder-result:hover { background:#eef6fd; border-color:#7db0d4; }
.practice-agenda-list > h3 { text-transform:capitalize; font-size:0.9412rem; margin:22px 0 10px; }
.practice-agenda-list .appointment { background:#fff; border:1px solid #dfe7ef; border-radius:7px; margin-bottom:8px; }
.practice-root :focus-visible,.practice-dialog :focus-visible { outline:3px solid #367eba; outline-offset:3px; }
@media (prefers-reduced-motion:no-preference) {
  .practice-dialog[open] { animation:practice-enter .18s ease-out; }
  .portal-panel [data-panel-views]:not([data-panel-inactive]) { animation:practice-enter .18s ease-out; }
  .practice-filter,.practice-finder-result { transition:background-color .14s,border-color .14s; }
  @keyframes practice-enter { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:translateY(0); } }
}
@media (max-width:1400px) { .practice-layout { grid-template-columns:minmax(0,1fr); } .practice-side { grid-template-columns:1fr 1fr; } }
@media (max-width:900px) {
  .practice-table-wrap { overflow:visible; }
  .practice-table-wrap table { display:block; min-width:0; }
  .practice-table-wrap thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .practice-table-wrap tbody { display:block; }
  .practice-table-wrap tr.patient { display:grid !important; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; padding:18px 0 !important; border-bottom:1px solid #dfe7ef !important; }
  .practice-table-wrap td { display:block; padding:0; border:0; }
  .practice-table-wrap .practice-identity-cell { grid-column:1/-1; }
  .practice-table-wrap td[data-label]::before { content:attr(data-label); display:block; font-size:0.7647rem; color:#607990; margin-bottom:4px; }
  .practice-table-wrap .practice-purpose { max-width:none; }
  .practice-table-wrap .practice-access-cell { grid-column:1/-1; display:flex; gap:10px; align-items:center; }
  .practice-table-wrap .practice-access-cell::before { margin:0; }
  .practice-table-wrap .practice-row-actions { grid-column:1/-1; min-width:0; }
  .practice-action-group { display:grid; grid-template-columns:1fr 1fr; }
  .practice-row-actions .button { font-size:0.7647rem !important; padding:9px 7px !important; gap:5px; }
  .practice-row-actions svg { width:15px; height:15px; }
  .practice-action-note { font-size:0.7647rem; }
}
@media (max-width:600px) {
  .portal-panel.chart-page .shell { padding:18px 14px; }
  .portal-panel.chart-page #seccion-pacientes > h2 { font-size:1.4706rem; }
  .practice-top-actions kbd { display:none; }
  .practice-heading { align-items:flex-start; flex-direction:column; gap:12px; }
  .practice-heading h1 { font-size:1.5294rem; }
  .portal-panel.chart-page .practice-heading .panel-head { width:100%; justify-content:space-between; }
  .practice-heading .who { text-align:left; }
  .practice-top-actions { gap:5px; }
  .practice-top-actions .button { padding:7px; font-size:0.7647rem; }
  .practice-metrics { grid-template-columns:1fr 1fr; gap:18px 0; }
  .practice-metrics > div:nth-child(2) { border:0; }
  .practice-metrics b { font-size:1.4706rem; }
  .practice-toolbar { flex-direction:column; align-items:stretch; gap:8px; }
  .practice-toolbar select { width:100%; }
  .practice-directory,.practice-side-card { padding:14px; }
  .practice-side { grid-template-columns:1fr; }
  .practice-pager .practice-result-count { flex-basis:100%; }
  .practice-dialog { padding:18px; }
  .practice-preview-identity h3 { font-size:1.2353rem; }
  .practice-shortcuts { grid-template-columns:1fr; }
  .practice-next-visit { display:grid; grid-template-columns:20px minmax(0,1fr); gap:10px; }
  .practice-next-visit .button { grid-column:2; justify-self:start; }
  .practice-dialog-head { position:sticky; top:-18px; z-index:1; background:#fff; margin-top:-18px; padding-top:18px; }
  .practice-primary-actions { flex-direction:column; }
  .practice-primary-actions .button { width:100%; }

}
@media print { .practice-top-actions,.practice-filters,.practice-toolbar,.practice-row-actions,.practice-side,.practice-pager button,.practice-dialog { display:none !important; } .practice-layout { display:block; } .practice-table-wrap { overflow:visible; } }
#diario-compartido details > summary {
  min-height: 56px;
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: .5rem 0;
  font-size: 1.125rem;
  font-weight: 700;
  cursor: pointer;
}
#diario-compartido details > summary::before { content: "▸"; flex: none; }
#diario-compartido details[open] > summary::before { content: "▾"; }
#diario-compartido p { font-size: 1.125rem; line-height: 1.6; margin: .4rem 0; }
#diario-compartido .item { padding: .75rem 0; border-bottom: 1px solid var(--border); }
#diario-compartido button { min-height: 56px; font-size: 1.125rem; white-space: normal; }
