/* CUIDAR — functional role colours, neutral content. */
:root { --ink:#202721; --muted:#606963; --line:#d7dcd7; --paper:#fff; }
body { --role:#245b48; --role-dark:#174533; --role-soft:#edf4ef; --role-focus:#83ab96; --pico-color:var(--ink); --pico-muted-color:var(--muted); --pico-background-color:#f6f6f2; --pico-font-size:100%; --pico-line-height:1.6; --pico-border-radius:4px; --pico-primary:var(--role); --pico-primary-background:var(--role); --pico-primary-border:var(--role); --pico-primary-hover:var(--role-dark); --pico-primary-hover-background:var(--role-dark); --pico-primary-hover-border:var(--role-dark); --pico-primary-focus:var(--role-focus); --pico-primary-underline:var(--role); --pico-secondary:#49544d; --pico-secondary-background:#f0f1ed; --pico-secondary-border:#cfd5cf; --pico-secondary-inverse:#26352b; --pico-secondary-hover-background:#e5e9e3; --pico-secondary-hover-border:#bbc4bb; --pico-secondary-hover-inverse:#1c2920; --pico-card-background-color:#fff; --pico-card-sectioning-background-color:#f5f6f2; --pico-form-element-border-color:#aab4ac; --pico-form-element-background-color:#fff; --pico-muted-border-color:var(--line); --cu-primary:var(--role); --cu-primary-dk:var(--role-dark); --cu-primary-lt:var(--role-soft); --cu-shadow-sm:none; --cu-shadow-md:none; color:var(--ink); background:#f6f6f2; }
body.clinician-shell { --role:#264f7b; --role-dark:#183a5f; --role-soft:#eef3f9; --role-focus:#88a9ca; }
body.admin-shell { --role:#805420; --role-dark:#604018; --role-soft:#f6efe3; --role-focus:#ba9e72; }
h1,h2,h3,h4 { color:var(--ink); letter-spacing:-.018em; font-weight:650; }
h1 { font-size:clamp(1.8rem,3vw,2.5rem); line-height:1.2; }
h2 { font-size:1.35rem; } h3 { font-size:1.1rem; }
a { color:var(--role); } button,[role=button] { border-radius:4px; font-weight:600; box-shadow:none; }
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:3px solid var(--role-focus); outline-offset:3px; }
main.container { max-width:1180px; padding-top:2rem; }
.site-header { background:#fff; border-top:4px solid var(--role); border-bottom:1px solid var(--line); box-shadow:none; }
.app-header { padding:.9rem 2rem; gap:1.6rem; }
.site-brand { letter-spacing:.09em; font-size:1.2rem; font-weight:750; flex-shrink:0; }
.site-brand span { color:var(--muted); font-size:.62rem; letter-spacing:0; }
.role-label { color:var(--role); background:var(--role-soft); padding:.3rem .55rem; border-radius:2px; font-size:.75rem; font-weight:650; white-space:nowrap; }
.site-header .desktop-nav { gap:1.25rem; }
.desktop-nav a { color:#4a554e; font-size:.85rem; }
.desktop-nav a[aria-current=page] { color:var(--role); box-shadow:0 2px var(--role); }
.account-menu { min-width:auto; } .account-menu summary { color:var(--ink); font-size:.85rem; }
.account-menu-panel { border-radius:4px; border-color:var(--line); box-shadow:0 6px 15px #20272112; }
.care-heading { align-items:flex-start; margin-bottom:2rem; gap:1.5rem; }
.care-heading h1 { margin:.35rem 0 .5rem; }
.care-heading p { color:var(--muted); }
.section-kicker { color:var(--muted); font-size:.77rem; letter-spacing:.01em; text-transform:none; font-weight:500; }
.care-panel { padding:1.5rem; border:1px solid var(--line); border-radius:4px; background:#fff; box-shadow:none; }
.care-panel h2,.care-panel h3 { margin:.2rem 0 1rem; }
.home-grid { grid-template-columns:minmax(0,1.65fr) minmax(0,1fr); gap:2rem; }
.daily-card { background:var(--role-soft); border:0; border-left:4px solid var(--role); border-radius:0; padding:1.75rem; }
.daily-card:after { content:none; }
.daily-card h2 { font-size:1.55rem; max-width:none; margin:.65rem 0 .6rem; }
.daily-card p { color:#4c5a50; max-width:none; }
.daily-card [role=button] { min-height:48px; margin:.75rem 0 0; }
.home-secondary .care-panel { border:0; border-top:1px solid var(--line); border-radius:0; padding:1.25rem 0; background:transparent; }
.home-secondary .care-panel:first-child { border-top:3px solid var(--role); }
.text-action { color:var(--role); font-size:.92rem; }
.help-card,.assistant-teaser { background:transparent; }
.recent-panel { border:0; border-top:1px solid var(--line); border-radius:0; background:transparent; padding:1.5rem 0; }
.recent-observation { border-color:var(--line); }
.reply-panel { border-left:3px solid var(--role); }
.reply-text,.message-team,.assistant-answer { background:var(--role-soft); color:var(--ink); border-radius:3px; }
.reply-text footer,.conversation-meta { color:var(--muted); }
.message-bubble { border-radius:4px; } .message-team { border-left-color:var(--role); }
.status-pill { border-radius:3px; background:#edf0eb; color:#4c5950; font-size:.75rem; font-weight:500; padding:.2rem .5rem; }
.care-notice { border-radius:3px; }
.inbox-overview { border:1px solid var(--line); background:#fff; gap:0; }
.inbox-overview .care-panel { border:0; border-radius:0; border-right:1px solid var(--line); padding:1.25rem 1.5rem; }
.inbox-overview .care-panel:last-child { border-right:0; }
.inbox-overview strong { color:var(--role); font-size:2rem; font-variant-numeric:tabular-nums; font-weight:600; }
.inbox-overview span { color:var(--muted); }
.inbox-grid { gap:2rem; }
.inbox-grid section>h2 { padding-bottom:.85rem; border-bottom:2px solid var(--role); }
.inbox-item { border:0; border-bottom:1px solid var(--line); border-radius:0; padding:1.2rem 0; background:transparent; }
.inbox-item h3 { margin:.5rem 0; }
.inbox-urgent { border-left:3px solid #a13c32; padding-left:1rem; }
.inbox-grid .text-muted.care-panel { border:0; border-radius:0; background:transparent; padding:1rem 0; }
.assistant-layout { gap:2rem; }
.assistant-intro { margin-bottom:1.5rem; } .assistant-mark { display:none; }
.assistant-intro h2 { font-size:1.2rem; }
.assistant-layout>aside { border:0; border-top:2px solid var(--role); border-radius:0; padding:1.25rem 0; background:transparent; }
.assistant-suggestions button { border-radius:4px; font-size:.8rem; }
.source-passage { color:var(--ink); border-left-color:var(--role); }
.content-review-row,.coverage-row { border-color:var(--line); }
.urgent-access a { border-radius:3px; } .header-urgent { color:#943b33; }
.mobile-care-nav { border-color:var(--line); box-shadow:none; }
.mobile-care-nav a { border-radius:0; color:#59635c; }
.mobile-care-nav a[aria-current=page] { color:var(--role); background:var(--role-soft); box-shadow:inset 0 3px var(--role); }
.site-footer .footer-links a,.site-footer .footer-version { color:var(--muted); }
.situation-footer { border-radius:4px; }
.page-header { align-items:flex-start; padding-bottom:1rem; border-bottom:1px solid var(--line); margin-bottom:1.5rem; }
.page-header h1,.page-header h2 { margin:0; }
.table-scroll { background:#fff; border:1px solid var(--line); border-top:3px solid var(--role); border-radius:3px; }
.table-scroll figure { margin:0; } table { margin:0; } table thead th { color:#445148; background:#f0f2ed; font-weight:600; font-size:.8rem; }
table td { font-size:.87rem; } table th,table td { padding:1rem; }
.admin-shell table thead th { background:var(--role-soft); }
.user-actions { display:flex; align-items:center; flex-wrap:wrap; gap:.5rem; }
.badge-active,.badge-inactive { border-radius:3px; }
@media(min-width:1100px) { .admin-shell .site-header .desktop-nav { gap:1rem; } }
@media(max-width:1099px) { .site-header .desktop-nav { display:none; } .app-header { gap:1rem; } .account-menu { margin-left:auto; } }
@media(max-width:768px) { .app-header { padding:.75rem 1rem; gap:.7rem; flex-wrap:wrap; } .site-brand { font-size:1.05rem; } .site-brand span { display:none; } .role-label { font-size:.7rem; padding:.25rem .4rem; } .account-menu summary { font-size:.8rem; } .header-urgent { margin-left:auto; font-size:.7rem; } .caregiver-shell .account-menu { margin-left:0; } main.container { padding:1.5rem 1rem; } .care-heading h1 { font-size:2rem; } .care-heading { margin-bottom:1.5rem; } .home-grid,.inbox-grid,.assistant-layout { grid-template-columns:1fr; gap:1rem; } .daily-card { padding:1.25rem; } .daily-card h2 { font-size:1.35rem; } .care-panel { padding:1.25rem; border-radius:3px; } .home-secondary { gap:0; } .inbox-overview .care-panel { padding:1rem .65rem; } .inbox-overview span { font-size:.73rem; } .inbox-overview strong { font-size:1.75rem; } .mobile-care-nav a { font-size:.8rem; } table th,table td { padding:.85rem; } }
@media(max-width:640px) {
  .admin-shell .table-scroll { overflow:visible; }
  .admin-shell .table-scroll table,.admin-shell .table-scroll tbody,.admin-shell .table-scroll tr { display:block; width:100%; }
  .admin-shell .table-scroll thead { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
  .admin-shell .table-scroll tbody tr { padding:.65rem 1rem; border-bottom:1px solid var(--line); }
  .admin-shell .table-scroll tbody tr:last-child { border-bottom:0; }
  .admin-shell .table-scroll td { display:grid; grid-template-columns:minmax(5rem,30%) minmax(0,1fr); gap:.6rem; align-items:start; width:100%; padding:.4rem 0; border:0; text-align:left; white-space:normal; }
  .admin-shell .table-scroll td.actions-col { display:block; }
  .admin-shell .table-scroll td::before { content:attr(data-label); color:var(--muted); font-size:.75rem; font-weight:600; }
  .admin-shell .table-scroll td.actions-col::before { display:block; margin-bottom:.3rem; }
  .admin-shell .table-scroll td:first-child { font-weight:650; }
  .admin-shell .table-scroll td small { overflow-wrap:anywhere; }
  .admin-shell .table-scroll td .badge-active,.admin-shell .table-scroll td .badge-inactive { justify-self:start; }
  .admin-shell .table-scroll .user-actions { min-width:0; }
  .admin-shell .table-scroll .user-actions .btn-sm { margin:0; }
}
@media(max-width:350px) { .caregiver-shell .role-label { order:4; flex-basis:100%; background:transparent; padding:0; } }
@media print { .role-label { display:none; } }

/* One predictable navigation pattern at every viewport. */
.app-header { position:relative; }
.site-header .desktop-nav a { display:inline-flex; align-items:center; min-height:44px; }
.account-menu summary { display:flex; align-items:center; gap:.4rem; min-height:44px; padding:.5rem; margin:0; font-weight:600; color:var(--ink); }
.account-menu[open] summary { margin-bottom:0; }
.account-menu summary span { font-size:.8rem; transition:transform .15s ease; }
.account-menu[open] summary span { transform:rotate(180deg); }
.account-menu-panel { top:calc(100% + .35rem); padding:.5rem; width:250px; border-radius:4px; }
.account-menu-panel nav { display:flex; flex-direction:column; gap:0; padding:0; }
.account-menu-panel .menu-primary { display:none; }
.account-menu-panel .menu-secondary { border-bottom:1px solid var(--line); padding-bottom:.35rem; }
.account-menu-panel a,.account-menu-panel .link-button { display:flex; align-items:center; width:100%; min-height:44px; padding:.55rem .75rem; color:var(--ink); font-size:.9rem; text-align:left; text-decoration:none; border-radius:2px; }
.account-menu-panel a:hover,.account-menu-panel a[aria-current=page],.account-menu-panel .link-button:hover { color:var(--role); background:var(--role-soft); }
.account-menu-panel a[aria-current=page] { font-weight:700; border-left:3px solid var(--role); }
.account-menu-panel form { padding:0; margin:0; }
.account-menu-panel .link-button { background:transparent; border:0; margin:0; cursor:pointer; }
.header-urgent { display:inline-flex; align-items:center; min-height:44px; text-underline-offset:.2em; }
.mobile-care-nav { display:none!important; }
.caregiver-shell { padding-bottom:0!important; }
.situation-footer { position:static!important; }

/* Compact, consistent blocks. */
.care-panel { padding:1.25rem; }
.daily-card { padding:1.5rem; margin-bottom:1rem; }
.home-secondary { display:flex; flex-direction:column; gap:0; }
.home-secondary .care-panel { margin:0; padding:1.25rem 0; }
.home-secondary .care-panel:first-child { padding-top:1.25rem; }
.inbox-overview .care-panel { min-width:0; }

@media(max-width:1099px) {
  .site-header .desktop-nav { display:none; }
  .account-menu { position:static; }
  .account-menu-panel { position:absolute; top:100%; left:0; right:0; width:auto; max-height:calc(100dvh - 5rem); overflow-y:auto; border-left:0; border-right:0; border-radius:0; box-shadow:0 8px 16px #20272122; padding:.5rem max(1rem,calc((100vw - 1180px)/2)); }
  .account-menu-panel .menu-primary { display:flex; border-bottom:1px solid var(--line); padding-bottom:.35rem; margin-bottom:.35rem; }
}
@media(max-width:768px) {
  .app-header { flex-wrap:wrap; gap:.5rem; }
  .site-brand { flex-shrink:0; }
  .role-label { display:none; }
  .header-urgent { margin-left:auto; font-size:.78rem; }
  .caregiver-shell .account-menu { margin-left:0; }
  .care-panel { padding:1rem; }
  .daily-card { padding:1.25rem; }
  .home-secondary .care-panel { padding:1.1rem 0; }
  .inbox-overview { display:block; }
  .inbox-overview .care-panel { display:flex; flex-direction:row; align-items:baseline; gap:1rem; padding:.6rem 0; border-right:0; border-bottom:1px solid var(--line); }
  .inbox-overview .care-panel:last-child { border-bottom:0; }
  .inbox-overview strong { flex:0 0 2.5rem; font-size:1.4rem; }
  .inbox-overview span { font-size:.88rem; }
  .site-footer { margin-top:1.5rem; }
}
@media(max-width:350px) {
  .app-header { padding:.5rem .75rem; }
  .site-brand { font-size:1rem; }
  .account-menu summary { padding:.4rem .2rem; }
}
