/* Shared Eval presentation. No workflow, status, permission or media changes. */
body:has(.app){--cream:#fbf7f0;--card:#fffdf9;--ink:#3e3935;--muted:#70675f;--line:#eadfd2;--orange:#ad4b0b;--radius:20px;--shadow:0 8px 28px #6d574509;background:linear-gradient(180deg,#fffdfa,#fbf7f0);color:var(--ink);line-height:1.55}
.app{grid-template-columns:232px minmax(0,1fr)}
.app .side{padding:28px 18px;background:#fffdf9;border-right:1px solid #eadfd2}
.app .brand{font-size:18px;letter-spacing:.12em}.app .sub{font-size:12px;line-height:1.6;color:#70675f}
.app nav button{min-height:46px;padding:12px 14px;border-radius:12px;font-weight:600;line-height:1.35;color:#5d5147}
.app nav button.active,.app nav button:hover{background:#ffeddd;color:#92400c}.app nav button.active{box-shadow:inset 3px 0 #ad4b0b}
.app .experience-switch button{min-height:44px;border-radius:12px;font-weight:650}.app .experience-switch button.active{background:#ad4b0b;border-color:#ad4b0b;color:#fff}
.app .main{padding:32px clamp(22px,3.4vw,52px) 56px;min-width:0}
.app .main>.top{max-width:1120px;margin:0 auto 30px;align-items:center;gap:16px}
.app .top h1{font-size:clamp(25px,2.5vw,32px);font-weight:650;line-height:1.2;letter-spacing:-.035em;margin:0}
.app .top>div>p{font-size:13px;color:#70675f;line-height:1.5;margin-top:8px}
.app .page{max-width:1120px;margin-left:auto;margin-right:auto;min-width:0}
.app .page.family-page{max-width:920px}.app #care-face-lab,.app #care-fleet{max-width:1240px}
.app .card{background:#fffdf9;border:1px solid #eadfd2;border-radius:20px;padding:28px;box-shadow:0 8px 28px #6d574509;min-width:0}
.app .card h2,.app .card h3,.app .recognition-hero h2,.app .recognition-wizard h3{font-weight:650;letter-spacing:-.025em;line-height:1.3}
.app .card h3{font-size:21px;margin:0 0 18px}.app .card h4{font-size:16px;line-height:1.4}
.app .grid{gap:22px}.app .grid>*{min-width:0}
.app .btn,.modal .btn{font-size:14px;font-weight:650;line-height:1.4;border:1px solid #d6c7b8;border-radius:12px;background:#fffdf9;color:#4b4036;white-space:normal}
.app .btn.primary,.modal .btn.primary{background:#ad4b0b;border-color:#ad4b0b;color:#fff}
.app .btn.danger,.modal .btn.danger{background:#fff7f4;border-color:#e9c1bb;color:#a32e26}

.app button:disabled,.modal button:disabled{opacity:.5;cursor:not-allowed}
.app :focus-visible,.modal :focus-visible{outline:3px solid #8c420e;outline-offset:4px}
.app .btn:hover:not(:disabled),.modal .btn:hover:not(:disabled){filter:brightness(.96)}
.app .field{gap:8px}.app .field label,.modal .field label{font-size:13px;font-weight:650;color:#64594f;line-height:1.5}
.app .field input,.app .field select,.app .field textarea,.modal .field input,.modal .field select,.modal .field textarea{min-height:46px;padding:12px;border:1px solid #cdbfad;border-radius:12px;background:#fff;color:#3e3935;font:inherit;max-width:100%}
.app .field textarea,.modal .field textarea{min-height:110px;resize:vertical}.app input[type=checkbox],.modal input[type=checkbox]{accent-color:#ad4b0b}
.app .form,.modal .form{gap:18px}.app .form-actions,.modal .form-actions{gap:12px;flex-wrap:wrap;margin-top:22px}
.app .notice{background:#fff4e7;border:1px solid #eedbc2;border-radius:12px;color:#6f4c2d;line-height:1.65;padding:14px 16px;font-size:14px}
.app .row{gap:18px;padding:18px 0;min-width:0}.app .row>div{min-width:0}.app .row small{color:#70675f;line-height:1.6;font-size:13px}
.app .status-card{background:#faf6ef;border:1px solid #e4d8ca;border-radius:16px;padding:20px;min-width:0}
.app .badge,.app .pill{font-weight:650;line-height:1.35}.app .badge{flex-shrink:0}
.app .stat b,.app .metric-number{font-weight:600;letter-spacing:-.035em}.app .metric-label{color:#70675f;font-size:13px}
.app .care-table{font-size:14px;line-height:1.55}.app .care-table th{font-size:12px;font-weight:650;color:#70675f;background:#faf6ef}.app .care-table td,.app .care-table th{padding:15px 14px}.app .resident-directory-wrap{max-width:100%;overflow-x:auto;border:1px solid #eadfd2;border-radius:14px;overscroll-behavior-x:contain}
.app .recognition-care{max-width:100%;color:#3e3935;line-height:1.6}
.app #face>.card{background:transparent;padding:0;border:0;box-shadow:none}
.app .recognition-eyebrow,.app .recognition-lab-heading>small{font-size:11px;letter-spacing:.13em;font-weight:750;color:#9b4611}
.app .recognition-hero{align-items:flex-start;gap:20px;margin:12px 0 26px}.app .recognition-hero h2{font-size:clamp(25px,3vw,34px);margin:0 0 12px;line-height:1.2}.app .recognition-hero p{font-size:15px;color:#70675f;line-height:1.65}
.app .recognition-tabs{display:flex;gap:6px;border-bottom:1px solid #eadfd2;padding:0 0 8px;margin:18px 0 26px}.app .recognition-tabs .btn{flex:1;border:0;background:transparent;color:#655b52;min-height:48px;padding:12px 18px;border-radius:12px;font-weight:650}.app .recognition-tabs .btn.active{background:#ffeddd;color:#92400c;box-shadow:inset 0 -2px #d56619}
.app .recognition-summary{border:1px solid #eadfd2;border-radius:18px;background:#fffdf9;padding:24px;gap:24px;box-shadow:0 8px 28px #6d574509}.app .recognition-summary strong{font-weight:650}.app .recognition-summary p,.app .recognition-summary small{color:#70675f;line-height:1.6}
.app .recognition-improvement,.app .recognition-wizard{border:1px solid #eadfd2;border-radius:20px;background:#fffdf9;padding:28px;margin:22px 0;box-shadow:0 8px 28px #6d574509}
.app .recognition-improvement h3,.app .recognition-wizard h3{font-size:23px;margin:0 0 14px}.app .recognition-improvement p,.app .recognition-wizard p{color:#70675f;line-height:1.65}
.app .recognition-actions{display:flex;gap:12px;flex-wrap:wrap;margin:22px 0 12px}.app .recognition-choice{display:flex;align-items:flex-start;gap:12px;font-size:14px;line-height:1.65}.app .recognition-choice input{width:20px;height:20px;margin-top:3px}
.app .recognition-device-control{background:#faf6ef;border:1px solid #e4d8ca;padding:20px;border-radius:16px;margin-top:14px}.app .recognition-footnote{font-size:13px;line-height:1.65;color:#70675f;margin-top:24px}.app .recognition-notice{border-radius:12px;padding:16px;background:#fff4e7;color:#6f4c2d}
.app .recognition-wizard select,.app .recognition-wizard input:not([type=checkbox]){min-height:48px;border:1px solid #cdbfad;border-radius:12px;padding:12px;background:#fff;max-width:100%;font:inherit;color:#3e3935}
.modal .modal-box{border:1px solid #eadfd2;border-radius:22px;background:#fffdf9;padding:28px;max-width:calc(100vw - 32px)}.modal .modal-head{gap:18px;margin-bottom:24px}.modal .modal-head h2,.modal .modal-head h3{font-weight:650;letter-spacing:-.025em}.modal .close{min-width:44px;min-height:44px;border-radius:10px}.modal audio{width:100%;max-width:100%}
@media(max-width:1100px){.app .grid.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.app .recognition-summary{gap:18px;padding:20px}}
@media(max-width:900px){.app{grid-template-columns:1fr}.app .side{height:auto;position:static;border-right:0;border-bottom:1px solid #eadfd2;padding:22px 18px}.app .main{padding:24px 18px 40px}.app .main>.top{margin-bottom:26px}.app .card{padding:22px}.app .recognition-hero{flex-wrap:wrap}}
@media(max-width:700px){.app .main{padding:24px 18px 40px}.app .card{padding:20px 16px;border-radius:18px}.app .grid.two,.app .form,.app .care-metrics{grid-template-columns:minmax(0,1fr)}.app .grid{gap:18px}.app .field.full{grid-column:auto}.app .form-actions .btn{flex:1 1 140px}.app .recognition-improvement,.app .recognition-wizard{padding:22px 16px;border-radius:18px}.app .recognition-summary{grid-template-columns:1fr;padding:20px;gap:20px}.app .recognition-summary>div+div{border-top:1px solid #eadfd2;padding-top:18px}.app .recognition-actions .btn{flex:1 1 130px}.app .recognition-tabs .btn{padding:12px 8px;font-size:13px}.app .recognition-device-control{padding:16px 12px}.app .recognition-hero h2{font-size:27px}.app .row{flex-wrap:wrap;gap:12px}.app .row>div:first-child{flex:1 1 180px}.app .resident-directory-wrap{border-radius:12px}.modal .modal-box{padding:22px 16px;max-height:92dvh}.app .care-table{font-size:13px}.app .care-table td,.app .care-table th{padding:12px}}
@media(prefers-reduced-motion:reduce){.app *,.app *::before,.app *::after,.modal *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Retain semantic alert emphasis alongside shared card borders. */
.app .card.attention{border-left:4px solid #b86a20}
.app .status-card.warn,.app .notice.warn{background:#fff4e7;border-color:#edcfaa;color:#8a4a16}
.app .status-card.critical,.app .status-card.error,.app .notice[role=alert]{background:#fff1ee;border-color:#e9b9b1;color:#9c3026}
/* Table-heavy operational pages retain their own layout and explicit scrolling. */
.app .memento-table-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;border:1px solid var(--line);border-radius:14px}.app .memento-table-scroll:focus-visible{outline:3px solid #8c420e;outline-offset:3px}.app .memento-table-scroll .care-table{margin:0}.app .empty{padding:24px;color:var(--muted);line-height:1.65;border:1px dashed var(--line);border-radius:14px;background:var(--card)}.app .top .badge{align-self:flex-start}.app .page[aria-busy=true]{cursor:progress}.app .page :is(h2,h3){overflow-wrap:anywhere}.app nav button{overflow-wrap:anywhere}.app .notice a{text-decoration:underline;text-underline-offset:3px}.app .status-card pre,.app #care-face-lab pre{overflow-x:auto;max-width:100%;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:700px){.app .side nav{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}.app .top{flex-wrap:wrap}.app #care-residents .card>button[data-permission]{position:static!important;margin:10px 0}.app .form-actions{display:flex}.app .care-table{min-width:560px}.app .card>div[style*="justify-content:space-between"]{flex-wrap:wrap}}
/* Keep Family destinations readable rather than squeezing six labels into one row. */
@media(max-width:700px){.app:not(.care-mode) .side .family-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;overflow:visible}.app .side .family-nav button{min-width:0;overflow-wrap:normal;word-break:normal}}
.app .care-table td>small{display:block;margin-top:4px;color:var(--muted);line-height:1.5}

/* Explicit action roles; compact lists do not inherit guided-workflow geometry. */
:is(.app,.modal) .btn[data-memento-action="standard"]{min-height:40px;padding:8px 14px;font-size:14px;line-height:20px;border-radius:10px}
:is(.app,.modal) .btn[data-memento-action="compact"]{min-height:34px;padding:6px 10px;font-size:13px;line-height:20px;border-radius:8px;white-space:nowrap;flex:0 0 auto}
:is(.app,.modal) .btn[data-memento-action="guided"]{min-height:46px;padding:12px 18px;font-size:14px;line-height:20px;border-radius:12px}
.app [data-memento-actions]{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:8px;max-width:100%}
.app .row>[data-memento-actions]{flex:0 0 auto;margin-top:0}
.app .row:has(>[data-memento-actions]){align-items:center;padding:12px 0;gap:12px}
.app .row:has(>[data-memento-actions])>div:first-child{flex:1 1 160px;min-width:0}
.app [data-memento-actions]>.pill,.app [data-memento-actions]>.badge{font-size:12px;line-height:16px;padding:4px 8px;border-radius:999px;flex:0 0 auto}
.app :is(#people,#reminders)>.grid.two{align-items:start}
@media(max-width:700px){:is(.app,.modal) .btn[data-memento-action="compact"]{min-height:36px;padding-top:7px;padding-bottom:7px}.app .row>[data-memento-actions]{justify-content:flex-start}}

.app [data-memento-actions]>.toggle{min-height:34px;padding:6px 10px;font-size:13px;line-height:20px}
@media(max-width:700px){.app [data-memento-actions]>.toggle{min-height:36px;padding:7px 10px}}

/* Fleet uses a wider operational layout; align its heading to the same width. */
.app:has(#care-fleet.active) .main>.top{max-width:1240px}
/* Fleet status and action columns keep their alignment regardless of labels. */
.app #fleetDeviceList .fleet-device-actions{display:grid;grid-template-columns:80px 112px;gap:8px;justify-content:end}
.app #fleetDeviceList .fleet-device-actions>:is(.pill,.btn){width:100%;box-sizing:border-box;text-align:center}
/* Alert actions form one compact, equal-width column at every viewport. */
.app #careAlertRows [data-memento-actions]{display:flex;flex-direction:column;align-items:stretch;flex-wrap:nowrap;width:120px;margin-top:0;gap:6px}
.app #careAlertRows [data-memento-actions]>.btn{width:100%;box-sizing:border-box;text-align:center}
.app #careAlertRows td:last-child{width:1%}
@media(max-width:700px){.app #fleetDeviceList .fleet-device-actions{justify-content:start}}

/* Page-specific selectors use the same compact filter geometry. */
.app :is(#careAlertFilter,.recognition-care select[data-person]){box-sizing:border-box;height:40px;min-height:40px;max-width:100%;padding:8px 12px;border:1px solid #cdbfad;border-radius:10px;background:#fff;color:#3e3935;font:inherit;font-weight:400;line-height:22px}
.app #care-alerts .field{margin-bottom:12px}
.app .recognition-care label:has(>select[data-person]){display:flex;flex-direction:column;align-items:flex-start;gap:8px;font-size:14px;font-weight:600;margin:12px 0 18px}
.app .recognition-care select[data-person]{width:240px;font-weight:400}
.app :is(#careAlertFilter,.recognition-care select[data-person]):focus-visible{outline:3px solid #8c420e;outline-offset:3px}
.app #voiceList .recording-library-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px;min-width:0;max-width:100%}
.app #voiceList .recording-library-actions audio{max-width:100%}
.app #voiceList .recording-library-actions .btn{min-height:34px;padding:6px 10px;font-size:13px;line-height:20px;border-radius:8px;flex:0 0 auto}
@media(max-width:700px){.app #voiceList .recording-library-actions{justify-content:flex-start}.app #voiceList .recording-library-actions .btn{min-height:36px;padding:7px 10px}}

/* Saved recordings and soundbits share one card anatomy and native player. */
.app #voice :is(#voiceList,#soundbitRows) .memento-audio-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:14px 16px;padding:18px;margin:14px 0}
.app #voice :is(#voiceList,#soundbitRows) .memento-audio-card>div:first-child{grid-column:1;grid-row:1;min-width:0;width:auto}
.app #voice :is(#voiceList,#soundbitRows) .memento-audio-card>:is(.recording-library-actions,.btn){grid-column:2;grid-row:1;justify-self:end;align-self:start;width:auto;margin:0}
.app #voice :is(#voiceList,#soundbitRows) .memento-audio-card>audio{grid-column:1/-1;grid-row:2;width:100%;max-width:100%;height:44px;margin:0;display:block}
.app #voice :is(#voiceList,#soundbitRows) .memento-audio-card .btn{min-height:34px;padding:6px 10px;font-size:13px;line-height:20px;border-radius:8px}
/* The reminder form defines the companion list height; pagination controls overflow. */
.app #reminders>.grid.two{align-items:start}
.app #reminders .memento-reminder-card{box-sizing:border-box;display:flex;flex-direction:column;min-width:0}
.app #remList{flex:1;min-height:0}
.app #remList>.row[hidden]{display:none}
.app #reminders .memento-reminder-pagination{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:16px;flex:0 0 auto;font-size:13px}
.app #reminders .memento-reminder-pagination[hidden]{display:none}
.app #reminders .memento-reminder-pagination [role=status]{text-align:center;color:var(--muted)}
@media(max-width:700px){.app #voice :is(#voiceList,#soundbitRows) .memento-audio-card{padding:16px;gap:12px}.app #voice :is(#voiceList,#soundbitRows) .memento-audio-card .btn{min-height:36px;padding:7px 10px}}
