
:root{
    color-scheme:dark;
}
html[data-theme="dark"]{
    color-scheme:dark;
    --ink:#eef5f7;
    --ink-soft:#aabac4;
    --paper:#14202a;
    --paper-elev:#1a2832;
    --canvas:#0f1722;
    --canvas-warm:#111d27;
    --line:#223340;
    --line-strong:#324554;
    --brand:#3ca08d;
    --brand-deep:#d9f4ef;
    --brand-soft:#16322f;
    --accent:#6ea8ff;
    --accent-soft:#1a2942;
    --success:#69c58f;
    --success-soft:#14281f;
    --warning:#d8a74d;
    --warning-soft:#2d2413;
    --danger:#ef8f87;
    --danger-soft:#321a1a;
    --shadow:0 18px 55px rgba(0,0,0,.34);
    --shadow-soft:0 8px 28px rgba(0,0,0,.22);
}
html[data-theme="light"]{
    color-scheme:light;
}
:root{
    --ink:#12202f;
    --ink-soft:#425466;
    --paper:#ffffff;
    --canvas:#f4f7f7;
    --canvas-warm:#f8f7f2;
    --line:#dfe7e6;
    --line-strong:#cad6d4;
    --brand:#17675f;
    --brand-deep:#103f3b;
    --brand-soft:#e8f4f1;
    --accent:#2b68c5;
    --accent-soft:#eaf1fc;
    --success:#28784f;
    --success-soft:#eaf6ef;
    --warning:#a36314;
    --warning-soft:#fff4df;
    --danger:#a6403d;
    --danger-soft:#fff0ee;
    --shadow:0 18px 55px rgba(30,50,55,.08);
    --shadow-soft:0 8px 28px rgba(30,50,55,.06);
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    color:var(--ink);
    background:var(--canvas);
    line-height:1.45;
}
*{box-sizing:border-box}
html{min-height:100%}
body{margin:0;min-height:100vh;background:var(--canvas);color:var(--ink)}
a{color:inherit}
button,input,textarea{font:inherit}
button{color:inherit}
svg{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
h1,h2,h3,p{margin-top:0}
.kicker{display:block;color:var(--brand);font-weight:850;letter-spacing:.14em;font-size:11px}
.kicker.light{color:#a9d5ce}
.hilva-mark{
    display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:12px;
    background:var(--brand);color:white;font-family:Georgia,serif;font-style:italic;font-weight:700;font-size:23px;line-height:1;
    padding-left:2px;padding-bottom:2px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.15)
}
.hilva-mark.small{width:26px;height:26px;border-radius:9px;font-size:17px}
.hilva-mark.large{width:56px;height:56px;border-radius:18px;font-size:37px}
.live-dot{display:inline-block;width:8px;height:8px;border-radius:99px;background:#2fb274;box-shadow:0 0 0 4px rgba(47,178,116,.12)}

.app-header{
    position:sticky;top:0;z-index:30;display:flex;justify-content:space-between;align-items:center;
    min-height:72px;padding:0 max(24px,calc((100vw - 1180px)/2));background:rgba(255,255,255,.9);
    backdrop-filter:blur(18px);border-bottom:1px solid rgba(202,214,212,.8)
}
.app-brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:850;font-size:20px}
.app-nav{display:flex;align-items:center;gap:18px}
.app-nav a:not(.button),.nav-button{font-size:14px;font-weight:700;color:var(--ink-soft);text-decoration:none}
.nav-button{border:0;background:transparent;cursor:pointer;padding:8px}
.app-nav form{display:flex}

.app-shell{max-width:1180px;margin:0 auto;padding:42px 24px 80px}
.button{
    display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:13px;
    border:1px solid var(--line-strong);padding:11px 16px;background:var(--paper);text-decoration:none;
    font-weight:800;cursor:pointer;transition:.18s ease;line-height:1.1
}
.button:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(20,40,45,.08)}
.button.primary{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 8px 20px rgba(23,103,95,.18)}
.button.secondary{background:var(--paper)}
.button.danger{background:var(--danger);border-color:var(--danger);color:#fff}
.button.danger-ghost{background:transparent;border-color:transparent;color:var(--danger);padding-left:8px;padding-right:8px}
.button.compact{padding:8px 12px;border-radius:11px;font-size:13px}
.button.wide{width:100%}
.button.large{min-height:52px;padding:14px 20px;font-size:15px}
.toast{
    display:flex;gap:12px;align-items:flex-start;padding:15px 17px;border-radius:14px;margin-bottom:24px;border:1px solid var(--line);
    background:var(--paper);box-shadow:var(--shadow-soft)
}
.toast>span{display:grid;place-items:center;flex:0 0 26px;height:26px;border-radius:50%;font-weight:900}
.toast p{margin:2px 0 0}
.toast.success{border-color:#cfe7d9;background:var(--success-soft)}
.toast.success>span{background:var(--success);color:white}
.toast.danger{border-color:#efcfcc;background:var(--danger-soft)}
.toast.danger>span{background:var(--danger);color:white}
.toast ul{margin:8px 0 0;padding-left:18px}

.dashboard-hero{
    display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin:10px 0 32px;
    padding:0 4px
}
.dashboard-hero h1{font-size:clamp(36px,5vw,54px);line-height:1;margin:8px 0 12px;letter-spacing:-.04em}
.dashboard-hero p{max-width:650px;margin:0;color:var(--ink-soft);font-size:17px}
.dashboard-date{
    display:grid;grid-template-columns:auto auto;align-items:end;column-gap:10px;min-width:150px;
    padding:14px 18px;border-radius:18px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow-soft)
}
.dashboard-date span{grid-column:1/-1;color:var(--ink-soft);font-size:12px;text-transform:capitalize}
.dashboard-date strong{font-size:42px;line-height:1}
.dashboard-date small{padding-bottom:4px;text-transform:capitalize;color:var(--ink-soft)}

.patient-grid.premium{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:20px}
.patient-overview-card{
    display:block;text-decoration:none;padding:24px;border-radius:24px;background:var(--paper);border:1px solid var(--line);
    box-shadow:var(--shadow-soft);transition:.2s ease
}
.patient-overview-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.patient-overview-head{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;margin-bottom:20px}
.patient-overview-head h2{margin:4px 0 0;font-size:24px}
.overview-arrow{font-size:24px;color:var(--brand)}
.person-avatar{
    width:76px;height:76px;border-radius:24px;display:grid;place-items:center;
    background:linear-gradient(145deg,var(--brand-soft),#d7ebe7);color:var(--brand-deep);
    font-size:28px;font-weight:900;border:1px solid #c6dfda
}
.person-avatar.small{width:48px;height:48px;border-radius:16px;font-size:17px}
.metric-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.metric-card{padding:14px;border-radius:16px;background:color-mix(in srgb, var(--paper) 80%, var(--canvas));border:1px solid #edf1f0}
.metric-card strong{display:block;font-size:30px;line-height:1}
.metric-card span{font-size:12px;color:var(--ink-soft);font-weight:700}
.metric-card.success{background:var(--success-soft);border-color:#d6eadf}
.metric-card.pending{background:var(--warning-soft);border-color:#f0dfbd}
.attention-banner{display:flex;align-items:center;gap:8px;margin-top:12px;padding:10px 12px;border-radius:12px;background:var(--danger-soft);color:var(--danger);font-weight:800;font-size:13px}
.attention-banner span{display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:var(--danger);color:white}
.overview-timeline{margin-top:17px;border-top:1px solid var(--line)}
.overview-dose{display:grid;grid-template-columns:52px 1fr auto;gap:10px;padding:11px 0;border-bottom:1px solid #eef2f1;align-items:center;font-size:13px}
.overview-dose>span{font-weight:800}
.overview-dose>strong{font-weight:750}
.overview-dose em{font-style:normal;font-weight:800;color:var(--ink-soft)}
.overview-dose.status-confirmed em{color:var(--success)}
.overview-dose.status-missed em{color:var(--danger)}
.overview-empty{padding:18px 0;color:var(--ink-soft);font-size:13px}

.patient-hero{
    display:grid;grid-template-columns:auto 1fr auto;gap:20px;align-items:center;padding:8px 4px 30px
}
.patient-identity h1{font-size:clamp(36px,5vw,52px);line-height:1;margin:6px 0 8px;letter-spacing:-.04em}
.patient-identity>p{margin:0;color:var(--ink-soft)}
.patient-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.patient-badges span{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;background:var(--paper);border:1px solid var(--line);font-size:12px;font-weight:750;color:var(--ink-soft)}
.hero-action{align-self:center}

.device-link-banner{
    display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;margin-bottom:24px;padding:17px 18px;
    border-radius:18px;background:linear-gradient(135deg,#eaf4ff,#f0f9f7);border:1px solid #cfe0e9
}
.device-link-icon,.side-icon{
    width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:var(--paper);color:var(--brand);
    box-shadow:0 5px 16px rgba(20,60,60,.08)
}
.device-link-icon svg,.side-icon svg{width:24px;height:24px}
.device-link-banner small{display:block;color:var(--brand);font-weight:850;letter-spacing:.1em;font-size:10px}
.device-link-banner strong{display:block;margin:2px 0 5px}
.device-link-banner a{font-size:12px;color:var(--accent);overflow-wrap:anywhere}

.care-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:24px}
.section-title{display:flex;align-items:end;justify-content:space-between;margin-bottom:14px}
.section-title h2{font-size:27px;margin:5px 0 0;letter-spacing:-.025em}
.count-badge{display:grid;place-items:center;min-width:36px;height:36px;border-radius:12px;background:var(--brand-soft);color:var(--brand);font-weight:900}
.medication-stack{display:grid;gap:14px}
.medication-card{
    position:relative;display:grid;grid-template-columns:auto 1fr;gap:17px;padding:21px;border-radius:22px;background:var(--paper);
    border:1px solid var(--line);box-shadow:var(--shadow-soft);overflow:visible
}
.medication-card.is-paused{background:color-mix(in srgb, var(--paper) 86%, var(--canvas))}
.medication-card.is-paused .medication-icon{background:#f1f2f1;color:#7a8585}
.medication-icon{
    width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand)
}
.medication-icon svg{width:32px;height:32px;stroke-width:2.2}
.medication-body{min-width:0}
.medication-title-row{display:flex;justify-content:space-between;gap:12px}
.medication-title-row h3{font-size:20px;margin:0 0 7px;letter-spacing:-.02em}
.medication-title-row h3 span{color:var(--ink-soft);font-weight:700}
.medication-tags{display:flex;gap:6px;flex-wrap:wrap}
.tag{display:inline-flex;align-items:center;min-height:25px;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}
.tag.active{background:var(--success-soft);color:var(--success)}
.tag.paused{background:color-mix(in srgb, var(--paper) 60%, var(--canvas));color:#667176}
.tag.neutral{background:color-mix(in srgb, var(--paper) 72%, var(--canvas));color:#586765}
.medication-instruction{margin:14px 0 0;color:var(--ink-soft);font-size:14px}
.schedule-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:16px}
.schedule-item{display:flex;gap:9px;align-items:center;padding:10px;border-radius:14px;background:color-mix(in srgb, var(--paper) 74%, var(--canvas));border:1px solid #edf1f0}
.schedule-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:var(--paper);color:var(--brand)}
.schedule-icon svg{width:16px;height:16px}
.schedule-item div{display:grid;min-width:0}
.schedule-item small{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);font-weight:800}
.schedule-item strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.medication-actions{display:flex;align-items:center;gap:6px;margin-top:16px;padding-top:14px;border-top:1px solid #edf1f0}
.paused-copy{font-size:12px;color:var(--ink-soft);margin-right:auto}
.icon-menu{display:none;border:0;background:transparent;font-size:19px;cursor:pointer;letter-spacing:2px;color:var(--ink-soft)}
.medication-menu{position:absolute;right:18px;top:54px;z-index:5;padding:8px;background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}
.medication-menu button,.medication-menu a{display:block;width:100%;border:0;background:none;font-weight:800;padding:8px;cursor:pointer;text-decoration:none;text-align:left}
.medication-menu a{color:var(--brand)}
.medication-menu button{color:var(--danger)}
.archive-panel{margin-top:18px;border:1px solid var(--line);background:rgba(255,255,255,.62);border-radius:18px;overflow:hidden}
.archive-panel summary{cursor:pointer;list-style:none;padding:15px 17px;display:flex;justify-content:space-between;align-items:center;font-weight:800;color:var(--ink-soft)}
.archive-panel summary::-webkit-details-marker{display:none}
.archive-panel summary strong{display:inline-grid;place-items:center;min-width:25px;height:25px;margin-left:6px;border-radius:8px;background:#e9eeed}
.archive-list{padding:0 17px 15px}
.archive-list article{display:grid;grid-template-columns:1fr minmax(160px,2fr);gap:20px;padding:14px 0;border-top:1px solid var(--line)}
.archive-list article div{display:grid}
.archive-list article span,.archive-list article p{font-size:12px;color:var(--ink-soft);margin:0}
.side-card{padding:22px;border-radius:22px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow-soft);margin-bottom:14px}
.side-card h2{font-size:21px;margin:8px 0 8px}
.side-card p{font-size:14px;color:var(--ink-soft)}
.side-card .side-icon{margin-bottom:18px}
.device-stat{display:flex;align-items:center;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-soft);font-weight:750}
.principle-card{background:linear-gradient(145deg,var(--brand-deep),#17574f);color:white;border-color:transparent}
.principle-card p{color:#d4e5e1}
.principle-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.14);font-weight:900}

.empty-panel{text-align:center;padding:42px 24px;border:1px dashed var(--line-strong);border-radius:22px;background:rgba(255,255,255,.6)}
.empty-panel.large{max-width:680px;margin:50px auto}
.empty-icon{display:grid;place-items:center;width:48px;height:48px;margin:0 auto 14px;border-radius:16px;background:var(--brand-soft);color:var(--brand);font-size:26px}
.empty-panel p{color:var(--ink-soft)}

.hilva-dialog{
    width:min(520px,calc(100vw - 28px));border:0;border-radius:24px;padding:26px;background:var(--paper);color:var(--ink);
    box-shadow:0 35px 100px rgba(0,0,0,.28)
}
.hilva-dialog::backdrop{background:rgba(9,24,28,.62);backdrop-filter:blur(5px)}
.dialog-close-form{position:absolute;right:16px;top:14px}
.dialog-x{border:0;background:color-mix(in srgb, var(--paper) 70%, var(--canvas));width:34px;height:34px;border-radius:12px;font-size:22px;cursor:pointer}
.dialog-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;margin-bottom:16px}
.dialog-icon.danger{background:var(--danger-soft);color:var(--danger)}
.dialog-icon svg{width:24px;height:24px}
.hilva-dialog h2{font-size:26px;margin:6px 0 10px}
.dialog-copy{color:var(--ink-soft);font-size:14px}
.notify-notice{display:grid;gap:2px;padding:12px 14px;border-radius:14px;background:var(--accent-soft);color:#315b95;margin:16px 0}
.notify-notice strong{font-size:12px}
.notify-notice span{font-size:12px}
.remove-form label{display:grid;gap:7px;font-weight:800;font-size:13px}
.remove-form textarea{min-height:100px;padding:12px;border-radius:13px;border:1px solid var(--line-strong);resize:vertical}
.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}

.form-shell{max-width:900px}
.form-hero{display:flex;gap:18px;align-items:center;margin-bottom:28px}
.form-hero h1{font-size:38px;margin:5px 0 6px;letter-spacing:-.035em}
.form-hero p{color:var(--ink-soft);margin:0}
.form-icon{display:grid;place-items:center;flex:0 0 72px;height:72px;border-radius:22px;background:var(--brand-soft);color:var(--brand)}
.form-icon svg{width:38px;height:38px}
.form-icon.person{font-size:34px;font-weight:600}
.premium-form{display:grid;gap:14px}
.form-card{padding:24px;border-radius:22px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow-soft)}
.form-section-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:20px}
.form-section-head>span{display:grid;place-items:center;flex:0 0 30px;height:30px;border-radius:10px;background:var(--brand);color:white;font-weight:900;font-size:12px}
.form-section-head h2{font-size:20px;margin:1px 0 2px}
.form-section-head p{font-size:12px;color:var(--ink-soft);margin:0}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.form-grid .full{grid-column:1/-1}
.form-grid label,.premium-form>label{display:grid;gap:7px;font-weight:800;font-size:13px}
.form-grid label>span{font-size:12px}
.form-grid input,.form-grid textarea,.premium-form input,.premium-form textarea{
    width:100%;border:1px solid var(--line-strong);border-radius:13px;background:var(--paper);padding:12px 13px;outline:none;transition:.16s ease
}
.form-grid input:focus,.form-grid textarea:focus{border-color:#6ca49e;box-shadow:0 0 0 4px rgba(23,103,95,.08);background:var(--paper)}
.form-grid textarea{min-height:92px;resize:vertical}
.form-grid label>small{font-weight:500;color:var(--ink-soft)}
.input-suffix{position:relative}
.input-suffix input{padding-right:90px}
.input-suffix span{position:absolute;right:13px;top:50%;transform:translateY(-50%);color:var(--ink-soft);font-size:12px;font-weight:700}
.days-fieldset{border:0;padding:0;margin:0}
.days-fieldset legend{font-size:12px;font-weight:800;padding:0}
.days-fieldset p{font-size:11px;color:var(--ink-soft);margin:3px 0 10px}
.day-selector{display:flex;gap:8px}
.day-selector label{display:block!important}
.day-selector input{position:absolute;opacity:0;pointer-events:none}
.day-selector span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;border:1px solid var(--line-strong);background:var(--paper);font-weight:850;cursor:pointer}
.day-selector input:checked+span{background:var(--brand);color:white;border-color:var(--brand)}
.permanent-switch{display:flex!important;align-items:center;gap:12px;padding:14px;border-radius:16px;background:var(--brand-soft);cursor:pointer;margin-bottom:16px}
.permanent-switch>input{position:absolute;opacity:0}
.switch-control{position:relative;flex:0 0 44px;height:25px;border-radius:99px;background:#a7b6b3;transition:.2s}
.switch-control::after{content:"";position:absolute;top:3px;left:3px;width:19px;height:19px;border-radius:50%;background:var(--paper);box-shadow:0 2px 5px rgba(0,0,0,.2);transition:.2s}
.permanent-switch input:checked+.switch-control{background:var(--brand)}
.permanent-switch input:checked+.switch-control::after{transform:translateX(19px)}
.permanent-switch>span:last-child{display:grid}
.permanent-switch strong{font-size:13px}
.permanent-switch small{color:var(--ink-soft)}
.duration-grid{margin-top:5px}
.is-disabled{opacity:.48}
.is-disabled input{background:#eef2f1}
.form-submit-bar{position:sticky;bottom:16px;z-index:10;display:flex;justify-content:flex-end;gap:10px;margin-top:4px;padding:12px;border-radius:18px;background:rgba(255,255,255,.88);backdrop-filter:blur(18px);border:1px solid var(--line);box-shadow:var(--shadow)}

.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(420px,1.05fr) minmax(420px,.95fr)}
.login-brand-panel{position:relative;overflow:hidden;display:flex;flex-direction:column;padding:48px;min-height:100vh;background:linear-gradient(150deg,#0e3835 0%,#17675f 58%,#23574f 100%);color:white}
.login-brand{display:flex;align-items:center;gap:12px;font-size:23px}
.login-message{margin:auto 0;max-width:620px}
.login-message h1{font-size:clamp(48px,6vw,78px);line-height:.98;letter-spacing:-.055em;margin:10px 0 24px}
.login-message p{max-width:500px;color:#d7e7e4;font-size:17px}
.thread-line{display:flex;align-items:center;width:min(420px,75%);opacity:.65}
.thread-line span{width:12px;height:12px;border:2px solid #b7ddd6;border-radius:50%}
.thread-line i{height:1px;flex:1;background:#86bdb4}
.login-form-panel{display:grid;place-items:center;padding:34px;background:#fbfcfb}
.login-card{width:min(430px,100%);display:grid;gap:16px;padding:34px}
.login-card h2{font-size:34px;margin:6px 0 0}
.login-card>p{color:var(--ink-soft);margin-bottom:10px}
.login-card label{display:grid;gap:7px;font-size:13px;font-weight:800}
.login-card input{padding:13px 14px;border-radius:13px;border:1px solid var(--line-strong);background:var(--paper)}
.inline-error{padding:11px 13px;border-radius:12px;background:var(--danger-soft);color:var(--danger);font-weight:700;font-size:12px}

.kiosk-page{
    min-height:100vh;background:
    radial-gradient(circle at 15% 10%,rgba(78,142,131,.12),transparent 33%),
    radial-gradient(circle at 85% 15%,rgba(53,104,160,.08),transparent 28%),
    #eef3f2;padding:18px
}
.kiosk-frame{max-width:860px;margin:0 auto;background:rgba(255,255,255,.86);min-height:calc(100vh - 36px);border-radius:30px;box-shadow:0 24px 80px rgba(31,54,59,.12);overflow:hidden;border:1px solid rgba(255,255,255,.8)}
.kiosk-header{display:flex;justify-content:space-between;align-items:center;padding:24px 30px 8px}
.kiosk-brand{display:flex;align-items:center;gap:9px;font-size:17px;font-weight:900;color:var(--brand-deep)}
.kiosk-date{display:flex;align-items:baseline;gap:10px;color:var(--ink-soft)}
.kiosk-date span{text-transform:capitalize;font-size:14px}
.kiosk-date strong{font-size:28px;color:var(--ink)}
.kiosk-greeting{padding:14px 30px 18px}
.kiosk-greeting h1{font-size:clamp(38px,6vw,58px);letter-spacing:-.05em;margin:5px 0 0;line-height:1}
.kiosk-message{margin:0 30px 18px;display:flex;gap:12px;padding:14px;border-radius:16px}
.kiosk-message.danger{background:var(--danger-soft);color:var(--danger)}
.message-icon{display:grid;place-items:center;flex:0 0 30px;height:30px;border-radius:50%;background:var(--danger);color:white;font-weight:900}
.message-icon.success{background:var(--success)}
.kiosk-message p{margin:2px 0 0;font-size:14px}
.focus-card{
    position:relative;margin:0 30px 22px;padding:26px 28px 24px;border-radius:27px;background:
    linear-gradient(155deg,#f9fffd 0%,#f0f8f6 100%);border:2px solid #9bc8c0;text-align:center;overflow:hidden
}
.focus-card::before{content:"";position:absolute;inset:0 0 auto 0;height:5px;background:linear-gradient(90deg,var(--brand),#58a397)}
.focus-card.is-late{border-color:#e3b0ab;background:linear-gradient(155deg,#fffafa,#fff3f1)}
.focus-topline{display:flex;justify-content:space-between;align-items:center}
.status-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;background:#e2f1ee;color:var(--brand-deep);font-size:10px;font-weight:900;letter-spacing:.08em}
.status-chip.success{background:var(--success-soft);color:var(--success)}
.status-dot{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px rgba(23,103,95,.1)}
.focus-time{font-size:14px;font-weight:850;color:var(--ink-soft)}
.medicine-symbol{display:grid;place-items:center;width:72px;height:72px;margin:12px auto 7px;border-radius:24px;background:var(--paper);color:var(--brand);box-shadow:0 10px 30px rgba(23,103,95,.12)}
.medicine-symbol svg{width:38px;height:38px;stroke-width:2.2}
.focus-label{margin:0;color:var(--ink-soft);font-size:14px}
.focus-card h2{font-size:clamp(38px,7vw,60px);line-height:1;margin:7px 0 13px;letter-spacing:-.045em}
.focus-card h2 span{display:inline;color:var(--ink-soft);font-weight:720}
.dose-pill{display:inline-flex;padding:9px 15px;border-radius:999px;background:var(--paper);border:1px solid #d7e7e4;font-size:20px;font-weight:850}
.focus-instruction{margin:13px 0 0;font-size:17px}
.take-button{
    width:100%;min-height:78px;margin-top:22px;border:0;border-radius:18px;background:linear-gradient(135deg,var(--brand),#1f776e);
    color:white;font-size:clamp(24px,5vw,34px);font-weight:950;letter-spacing:-.025em;display:flex;align-items:center;justify-content:center;gap:14px;cursor:pointer;
    box-shadow:0 12px 28px rgba(23,103,95,.24)
}
.take-button svg{width:27px;height:27px;stroke-width:2.4}
.take-button:disabled{opacity:.68;cursor:wait}
.microcopy{margin:12px 0 0;color:var(--ink-soft);font-size:12px}
.calm-card{margin:0 30px 22px;padding:31px 28px;border-radius:27px;background:linear-gradient(150deg,#f7fcf9,#eef7f2);border:1px solid #cfe4d7;text-align:center}
.calm-orbit{position:relative;display:grid;place-items:center;justify-items:center;align-items:center;width:100px;height:100px;margin:0 auto 16px;border-radius:50%;background:var(--paper);box-shadow:0 12px 35px rgba(40,120,79,.12);overflow:hidden}
.calm-orbit::before{content:"";position:absolute;inset:-7px;border:2px solid rgba(40,120,79,.18);border-radius:50%}
.calm-orbit svg{display:block;width:72px;height:72px;color:var(--success);stroke-width:2.35;stroke-linecap:round;stroke-linejoin:round;transform:translate(0,0)}
.calm-card h2{font-size:clamp(30px,5vw,44px);line-height:1.08;letter-spacing:-.04em;margin:14px auto 18px;max-width:620px}
.calm-copy{max-width:540px;margin:0 auto;font-size:17px;color:var(--ink-soft)}
.memory-proof{display:flex;align-items:center;gap:13px;max-width:500px;margin:0 auto;padding:15px 17px;border-radius:18px;background:var(--paper);border:1px solid #dceae1;text-align:left}
.memory-check{display:grid;place-items:center;flex:0 0 52px;height:52px;border-radius:17px;background:var(--success-soft);color:var(--success)}
.memory-check svg{width:30px;height:30px;stroke-width:2.45}
.memory-proof div{display:grid}
.memory-proof small{font-size:10px;font-weight:850;letter-spacing:.08em;color:var(--ink-soft);text-transform:uppercase}
.memory-proof strong{font-size:16px}
.memory-proof span{font-size:13px;color:var(--success);font-weight:750}
.floating-confirmation{display:flex;align-items:center;gap:11px;margin:-8px 30px 22px;padding:13px 15px;border-radius:15px;background:var(--paper);border:1px solid #d7e6dc;box-shadow:var(--shadow-soft);font-weight:800;color:var(--success);font-size:13px}
.day-section{padding:5px 30px 12px}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:14px;margin-bottom:12px}
.section-heading h2{font-size:27px;margin:4px 0 0}
.day-counter{font-size:12px;color:var(--ink-soft);font-weight:750}
.day-timeline{display:grid}
.timeline-item{display:grid;grid-template-columns:62px 18px 1fr;align-items:stretch;min-height:74px}
.timeline-time{padding-top:18px;font-weight:900;font-size:15px}
.timeline-rail{position:relative;display:flex;justify-content:center}
.timeline-rail::before{content:"";position:absolute;top:0;bottom:0;width:2px;background:#dfe7e5}
.timeline-rail span{z-index:1;width:10px;height:10px;margin-top:24px;border-radius:50%;background:#9aa8a5;border:2px solid white;box-shadow:0 0 0 1px #cfd8d6}
.status-confirmed .timeline-rail span{background:var(--success)}
.status-missed .timeline-rail span{background:var(--danger)}
.timeline-card{display:flex;justify-content:space-between;gap:18px;align-items:center;margin:7px 0;padding:13px 15px;border-radius:16px;background:var(--paper);border:1px solid #e3e9e8}
.timeline-card>div:first-child{display:grid}
.timeline-card strong{font-size:14px}
.timeline-card small{font-size:12px;color:var(--ink-soft)}
.timeline-state{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:850;color:var(--ink-soft)}
.status-confirmed .timeline-state{color:var(--success)}
.status-missed .timeline-state{color:var(--danger)}
.mini-check,.mini-alert{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:currentColor;color:white;font-size:11px}
.mini-check{background:var(--success)}
.mini-alert{background:var(--danger)}
.mini-dot{width:7px;height:7px;border-radius:50%;background:#8c9997}
.empty-day{display:flex;gap:10px;align-items:center;padding:18px;border-radius:16px;background:var(--paper);border:1px solid var(--line);color:var(--ink-soft)}
.empty-day>span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--success-soft);color:var(--success);font-weight:900}
.empty-day p{margin:0}
.next-card{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:15px 30px 22px;padding:17px 19px;border-radius:18px;background:var(--accent-soft);border:1px solid #d7e4f7}
.next-card div{display:grid}
.next-card strong{font-size:17px}
.next-card>span{font-size:26px;font-weight:900;color:#315b95}
.kiosk-footer{display:flex;align-items:flex-start;gap:10px;margin:4px 30px 0;padding:20px 0 26px;border-top:1px solid var(--line);color:var(--ink-soft)}
.kiosk-footer p{margin:3px 0 0;font-size:11px;max-width:650px}

@media(max-width:900px){
    .care-layout{grid-template-columns:1fr}
    .care-side{display:grid;grid-template-columns:1fr 1fr;gap:14px}
    .side-card{margin-bottom:0}
    .patient-hero{grid-template-columns:auto 1fr}.hero-action{grid-column:1/-1;justify-self:start}
}
@media(max-width:720px){
    .app-header{padding:0 18px}
    .app-shell{padding:28px 16px 60px}
    .dashboard-hero{align-items:flex-start}.dashboard-date{display:none}
    .patient-grid.premium{grid-template-columns:1fr}
    .schedule-grid{grid-template-columns:1fr 1fr}
    .schedule-grid .schedule-item:last-child{grid-column:1/-1}
    .care-side{grid-template-columns:1fr}
    .archive-list article{grid-template-columns:1fr;gap:5px}
    .login-page{grid-template-columns:1fr}
    .login-brand-panel{display:none}
    .login-form-panel{min-height:100vh}
    .form-grid{grid-template-columns:1fr}
    .form-grid .full{grid-column:auto}
    .form-submit-bar{bottom:8px}
    .patient-hero{grid-template-columns:auto 1fr;gap:14px}
    .person-avatar{width:62px;height:62px;border-radius:20px;font-size:22px}
    .patient-identity h1{font-size:36px}
    .medication-card{grid-template-columns:1fr}
    .medication-icon{width:48px;height:48px}
    .medication-actions{justify-content:space-between}
    .icon-menu{display:block}
}
@media(max-width:560px){
    .kiosk-page{padding:0;background:var(--paper)}
    .kiosk-frame{min-height:100vh;border-radius:0;border:0;box-shadow:none}
    .kiosk-header{padding:18px 20px 5px}
    .kiosk-date span{display:none}
    .kiosk-date strong{font-size:25px}
    .kiosk-greeting{padding:12px 20px 16px}
    .kiosk-greeting h1{font-size:38px}
    .focus-card,.calm-card{margin-left:14px;margin-right:14px;border-radius:24px;padding:22px 18px}
    .focus-card h2{font-size:38px}
    .medicine-symbol{width:62px;height:62px;border-radius:20px}
    .take-button{min-height:72px;font-size:25px;border-radius:16px}
    .floating-confirmation{margin-left:14px;margin-right:14px}
    .day-section{padding-left:18px;padding-right:18px}
    .section-heading{align-items:flex-start;flex-direction:column}
    .timeline-item{grid-template-columns:52px 15px 1fr}
    .timeline-card{align-items:flex-start;flex-direction:column;gap:7px}
    .next-card{margin-left:14px;margin-right:14px}
    .kiosk-footer{margin-left:18px;margin-right:18px}
    .medication-actions{flex-direction:column;align-items:stretch}
    .medication-actions form,.medication-actions .button{width:100%}
    .button.danger-ghost{border:1px solid #efd2cf}
    .form-hero{align-items:flex-start}
    .form-icon{width:54px;height:54px;flex-basis:54px;border-radius:17px}
    .form-hero h1{font-size:31px}
    .form-submit-bar{display:grid;grid-template-columns:1fr 1.6fr}
}


.theme-toggle{
    position:fixed;right:16px;bottom:16px;z-index:60;display:inline-flex;align-items:center;gap:10px;
    border:1px solid var(--line-strong);background:var(--paper);color:var(--ink);border-radius:999px;
    padding:10px 14px;box-shadow:var(--shadow-soft);cursor:pointer;backdrop-filter:blur(14px)
}
.theme-toggle-label{font-weight:800;font-size:12px;letter-spacing:.02em}
.theme-toggle-icon{display:grid;place-items:center;width:20px;height:20px}
html[data-theme="dark"] .theme-toggle-icon-light{display:grid}
html[data-theme="dark"] .theme-toggle-icon-dark{display:none}
html[data-theme="light"] .theme-toggle-icon-light{display:none}
html[data-theme="light"] .theme-toggle-icon-dark{display:grid}
.theme-toggle svg{width:18px;height:18px}

html[data-theme="dark"] body{background:var(--canvas);color:var(--ink)}
html[data-theme="dark"] .app-header{background:rgba(15,23,34,.88);border-bottom-color:rgba(50,69,84,.8)}
html[data-theme="dark"] .nav-button,
html[data-theme="dark"] .app-nav a:not(.button){color:var(--ink-soft)}
html[data-theme="dark"] .device-link-banner,
html[data-theme="dark"] .next-card{border-color:var(--line-strong)}
html[data-theme="dark"] .patient-overview-card,
html[data-theme="dark"] .medication-card,
html[data-theme="dark"] .side-card,
html[data-theme="dark"] .toast,
html[data-theme="dark"] .form-card,
html[data-theme="dark"] .dashboard-date,
html[data-theme="dark"] .hilva-dialog,
html[data-theme="dark"] .login-card,
html[data-theme="dark"] .empty-panel,
html[data-theme="dark"] .device-link-banner,
html[data-theme="dark"] .archive-panel,
html[data-theme="dark"] .kiosk-frame,
html[data-theme="dark"] .timeline-card,
html[data-theme="dark"] .memory-proof,
html[data-theme="dark"] .floating-confirmation,
html[data-theme="dark"] .focus-card,
html[data-theme="dark"] .calm-card,
html[data-theme="dark"] .next-card,
html[data-theme="dark"] .patient-badges span,
html[data-theme="dark"] .schedule-item,
html[data-theme="dark"] .metric-card,
html[data-theme="dark"] .status-chip,
html[data-theme="dark"] .dose-pill,
html[data-theme="dark"] .focus-fact,
html[data-theme="dark"] .dose-pill-icon,
html[data-theme="dark"] .theme-toggle{
    background:var(--paper);border-color:var(--line);color:var(--ink)
}
html[data-theme="dark"] .kiosk-page{background:radial-gradient(circle at 15% 10%,rgba(60,160,141,.12),transparent 33%),radial-gradient(circle at 85% 15%,rgba(110,168,255,.08),transparent 28%),var(--canvas)}
html[data-theme="dark"] .kiosk-frame{background:rgba(20,32,42,.94);border-color:rgba(50,69,84,.95)}
html[data-theme="dark"] .focus-card{background:linear-gradient(155deg,#16262d 0%,#173332 100%);border-color:#3c887d}
html[data-theme="dark"] .focus-card.is-late{background:linear-gradient(155deg,#241c1d,#302021);border-color:#8a5b58}
html[data-theme="dark"] .calm-card{background:linear-gradient(150deg,#15252a,#152d24);border-color:#325949}
html[data-theme="dark"] .login-form-panel{background:var(--canvas)}
html[data-theme="dark"] .login-card input,
html[data-theme="dark"] .form-grid input,
html[data-theme="dark"] .form-grid textarea,
html[data-theme="dark"] .premium-form input,
html[data-theme="dark"] .premium-form textarea,
html[data-theme="dark"] .remove-form textarea{background:#101922;color:var(--ink);border-color:var(--line-strong)}
html[data-theme="dark"] .take-button{background:linear-gradient(135deg,#20776a,#2a9a88)}
html[data-theme="dark"] .button.secondary{background:var(--paper);color:var(--ink)}
html[data-theme="dark"] .overview-dose,
html[data-theme="dark"] .archive-list article,
html[data-theme="dark"] .overview-timeline,
html[data-theme="dark"] .medication-actions,
html[data-theme="dark"] .device-stat,
html[data-theme="dark"] .kiosk-footer,
html[data-theme="dark"] .day-section,
html[data-theme="dark"] .timeline-card,
html[data-theme="dark"] .empty-day{border-color:var(--line)}
html[data-theme="dark"] .day-selector span{background:var(--paper);border-color:var(--line-strong);color:var(--ink)}
html[data-theme="dark"] .permanent-switch{background:var(--brand-soft)}
html[data-theme="dark"] .status-chip{background:color-mix(in srgb, var(--brand-soft) 85%, var(--paper))}
html[data-theme="dark"] .status-chip.success{background:var(--success-soft)}
html[data-theme="dark"] .metric-card.pending{background:var(--warning-soft)}
html[data-theme="dark"] .metric-card.success{background:var(--success-soft)}
html[data-theme="dark"] .focus-time,
html[data-theme="dark"] .dashboard-hero p,
html[data-theme="dark"] .day-counter,
html[data-theme="dark"] .medication-instruction,
html[data-theme="dark"] .microcopy,
html[data-theme="dark"] .kiosk-footer,
html[data-theme="dark"] .timeline-card small,
html[data-theme="dark"] .device-link-banner a{color:var(--ink-soft)}
html[data-theme="dark"] .section-heading h2,
html[data-theme="dark"] .kiosk-greeting h1,
html[data-theme="dark"] .patient-identity h1,
html[data-theme="dark"] .dashboard-hero h1{color:var(--ink)}
html[data-theme="dark"] .person-avatar{background:linear-gradient(145deg,#1b3b38,#15302d);border-color:#2d5955;color:#d8f1ed}
html[data-theme="dark"] .schedule-icon,
html[data-theme="dark"] .memory-check,
html[data-theme="dark"] .medicine-symbol,
html[data-theme="dark"] .device-link-icon,
html[data-theme="dark"] .side-icon,
html[data-theme="dark"] .dose-pill-icon,
html[data-theme="dark"] .fact-icon,
html[data-theme="dark"] .timeline-med-icon,
html[data-theme="dark"] .next-icon{background:#10232d;color:var(--brand);border-color:#284757}

.dose-pill-wrap{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:14px}
.dose-pill-icon,.fact-icon,.timeline-med-icon,.next-icon,.section-title-icon{display:inline-grid;place-items:center;color:var(--brand);background:var(--brand-soft);border:1px solid #cfe0db}
.dose-pill-icon{width:42px;height:42px;border-radius:14px}
.dose-pill-icon svg{width:20px;height:20px}
.focus-facts{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:16px;text-align:left}
.focus-fact{display:flex;gap:10px;align-items:center;padding:12px 13px;border-radius:16px;background:rgba(255,255,255,.72);border:1px solid #dceae6}
.focus-fact.wide{grid-column:1/-1}
.fact-icon{width:36px;height:36px;border-radius:12px;flex:0 0 36px}
.fact-icon svg{width:18px;height:18px}
.focus-fact small{display:block;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-weight:850}
.focus-fact strong{display:block;font-size:15px;line-height:1.25}
.section-heading h2{display:flex;align-items:center;gap:10px}
.section-title-icon{width:34px;height:34px;border-radius:11px}
.section-title-icon svg{width:17px;height:17px}
.timeline-copy{display:flex;align-items:center;gap:10px}
.timeline-med-icon{width:34px;height:34px;border-radius:12px;flex:0 0 34px}
.timeline-med-icon svg{width:16px;height:16px}
.next-card>div:first-child{display:flex;align-items:center;gap:12px}
.next-icon{width:42px;height:42px;border-radius:14px;flex:0 0 42px}
.next-icon svg{width:18px;height:18px}

@media(max-width:560px){
    .theme-toggle{right:10px;bottom:10px;padding:9px 12px}
    .theme-toggle-label{font-size:11px}
    .focus-facts{grid-template-columns:1fr}
    .section-title-icon{width:30px;height:30px}
    .next-card>div:first-child{align-items:flex-start}
}



/* R1-R11 · Administrador y múltiples tomas */
.admin-label{display:inline-flex;padding:4px 7px;border-radius:8px;background:var(--accent-soft);color:var(--accent);font-size:9px;font-weight:900;letter-spacing:.12em}
.admin-shell{max-width:1280px}
.admin-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:6px 0 26px}
.admin-hero h1{font-size:clamp(38px,5vw,58px);line-height:1;margin:7px 0 10px;letter-spacing:-.045em}
.admin-hero p{margin:0;color:var(--ink-soft);font-size:16px}
.admin-shield{display:grid;place-items:center;width:72px;height:72px;border-radius:24px;background:var(--brand-soft);color:var(--brand)}
.admin-shield svg{width:36px;height:36px;stroke-width:2}
.admin-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:20px}
.admin-metrics article{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:18px;background:var(--paper);box-shadow:var(--shadow-soft)}
.admin-metric-icon{grid-row:1/3;display:grid;place-items:center;width:38px;height:38px;border-radius:13px;background:var(--brand-soft);font-size:18px}
.admin-metrics strong{font-size:24px;line-height:1}
.admin-metrics small{color:var(--ink-soft);font-weight:700}
.admin-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.85fr);gap:20px}
.admin-panel{padding:22px;border:1px solid var(--line);border-radius:22px;background:var(--paper);box-shadow:var(--shadow-soft)}
.admin-panel-head{display:flex;justify-content:space-between;align-items:end;gap:14px;margin-bottom:16px}
.admin-panel-head h2{font-size:25px;margin:4px 0 0}
.admin-table-wrap{overflow:auto}
.admin-table{width:100%;border-collapse:collapse;font-size:13px}
.admin-table th{text-align:left;padding:9px 10px;color:var(--ink-soft);font-size:10px;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--line)}
.admin-table td{padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
.admin-table td:first-child{display:grid}
.admin-table td small{color:var(--ink-soft)}
.tag.admin{background:var(--accent-soft);color:var(--accent)}
.admin-patient-list{display:grid;gap:11px}
.admin-patient-card{padding:15px;border-radius:17px;border:1px solid var(--line);background:color-mix(in srgb,var(--paper) 92%,var(--canvas))}
.admin-patient-main{display:flex;align-items:center;gap:11px}
.admin-patient-main>div:last-child{display:grid}
.admin-patient-main a{text-decoration:none}
.admin-patient-main span{font-size:11px;color:var(--ink-soft)}
.caregiver-chips{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}
.caregiver-chip,.unassigned-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 9px;border-radius:999px;border:1px solid var(--line);background:var(--paper);font-size:11px;font-weight:750}
.caregiver-chip button{border:0;background:transparent;color:var(--danger);cursor:pointer;font-weight:900;padding:0}
.unassigned-chip{color:var(--warning);background:var(--warning-soft)}
.admin-assign-form{display:grid;grid-template-columns:1fr auto;gap:8px}
.admin-assign-form select,.admin-user-form select,.admin-user-form input{width:100%;padding:10px 11px;border-radius:12px;border:1px solid var(--line-strong);background:var(--paper);color:var(--ink)}
.admin-user-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}
.admin-user-form label{display:grid;gap:6px;font-size:12px;font-weight:800}
.admin-user-form .full{grid-column:1/-1}
.schedule-editor{display:grid;gap:10px}
.schedule-editor-row{position:relative;display:grid;grid-template-columns:64px 145px minmax(170px,1fr) minmax(180px,1fr) 34px;gap:10px;align-items:end;padding:14px;border:1px solid var(--line);border-radius:18px;background:color-mix(in srgb,var(--paper) 94%,var(--canvas))}
.schedule-number{align-self:center;display:grid;justify-items:center;color:var(--brand)}
.schedule-number>span{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:var(--brand);color:#fff;font-weight:900}
.schedule-number small{margin-top:4px;font-size:8px;letter-spacing:.1em;font-weight:900}
.schedule-editor-row label{display:grid;gap:6px;font-weight:800;font-size:12px}
.schedule-editor-row input{width:100%;padding:11px 12px;border:1px solid var(--line-strong);border-radius:12px;background:var(--paper);color:var(--ink)}
.schedule-remove{align-self:center;width:32px;height:32px;border:1px solid var(--line);border-radius:11px;background:transparent;color:var(--danger);font-size:20px;cursor:pointer}
.schedule-remove:disabled{opacity:.3;cursor:not-allowed}
.add-schedule-button{margin-top:12px}
.add-schedule-icon{display:grid;place-items:center;width:22px;height:22px;border-radius:8px;background:var(--brand-soft);color:var(--brand);font-weight:900}
.schedule-days{margin-top:22px!important}
.schedule-list{display:grid;gap:7px;margin-top:16px}
.schedule-dose-row{display:grid;grid-template-columns:34px 64px 1fr auto;gap:9px;align-items:center;padding:9px 11px;border-radius:13px;background:color-mix(in srgb,var(--paper) 74%,var(--canvas));border:1px solid var(--line)}
.schedule-dose-clock{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:var(--brand-soft);color:var(--brand)}
.schedule-dose-clock svg{width:15px;height:15px}
.schedule-dose-row>strong{font-size:14px}
.schedule-dose-row>span:not(.schedule-dose-clock){font-size:13px;font-weight:750}
.schedule-dose-row>small{font-size:10px;color:var(--ink-soft);font-weight:750}
@media(max-width:1050px){.admin-metrics{grid-template-columns:repeat(3,1fr)}.admin-grid{grid-template-columns:1fr}.schedule-editor-row{grid-template-columns:58px 130px 1fr 1fr 34px}}
@media(max-width:720px){.admin-metrics{grid-template-columns:repeat(2,1fr)}.admin-hero{align-items:flex-start}.admin-shield{display:none}.schedule-editor-row{grid-template-columns:48px 1fr 34px}.schedule-editor-row label{grid-column:2}.schedule-editor-row .schedule-number{grid-row:1/4}.schedule-remove{grid-column:3;grid-row:1}.admin-user-form{grid-template-columns:1fr}.admin-user-form .full{grid-column:auto}.admin-assign-form{grid-template-columns:1fr}.schedule-dose-row{grid-template-columns:30px 55px 1fr}.schedule-dose-row small{grid-column:3}}


/* R1-R12 · acceso administrativo separado */
.admin-login-brand-panel{
    background:
        radial-gradient(circle at 85% 18%,rgba(89,167,153,.18),transparent 24%),
        linear-gradient(150deg,#0b2928 0%,#123f3b 56%,#15312f 100%);
}
.admin-login-security{display:flex;align-items:center;gap:12px;max-width:430px;padding:14px 16px;border:1px solid rgba(205,237,231,.16);border-radius:17px;background:rgba(255,255,255,.07);backdrop-filter:blur(12px)}
.admin-login-security>div{display:grid;gap:2px}.admin-login-security strong{font-size:13px}.admin-login-security span{font-size:11px;color:#bcd8d3}
.admin-login-shield{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:14px;background:rgba(109,204,185,.13);color:#a9e0d5}.admin-login-shield svg{width:23px;height:23px}
.admin-login-card{position:relative}.admin-login-card::before{content:"ADMIN";position:absolute;right:34px;top:32px;padding:5px 8px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:9px;font-weight:950;letter-spacing:.12em}
.admin-back-to-care{display:block;text-align:center;color:var(--ink-soft);font-size:12px;font-weight:750;text-decoration:none}.admin-back-to-care:hover{color:var(--brand)}


.button:disabled,.button.is-processing{opacity:.68;cursor:wait;transform:none!important;box-shadow:none!important}
.account-shell{max-width:980px}
.account-hero{display:flex;align-items:center;gap:18px;margin:8px 0 28px}
.account-lock{display:grid;place-items:center;flex:0 0 72px;height:72px;border-radius:22px;background:var(--brand-soft);color:var(--brand);border:1px solid var(--line)}
.account-lock svg{width:34px;height:34px}
.account-hero h1{font-size:clamp(34px,5vw,48px);margin:5px 0 7px;letter-spacing:-.04em}
.account-hero p{margin:0;max-width:720px;color:var(--ink-soft)}
.account-grid{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(0,1.25fr);gap:18px}
.account-card{padding:24px;border-radius:22px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow-soft)}
.account-user-row{display:flex;align-items:center;gap:12px;margin:17px 0 21px}
.account-user-row>div:last-child{display:grid}
.account-user-row span{color:var(--ink-soft);font-size:13px}
.account-details{display:grid;margin:0}
.account-details>div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid var(--line)}
.account-details dt{font-size:12px;color:var(--ink-soft);font-weight:800}
.account-details dd{margin:0;text-align:right;font-size:12px;font-weight:800}
.password-card h2{font-size:26px;margin:6px 0 20px}
.security-form{display:grid;gap:14px}
.security-form label{display:grid;gap:7px;font-size:12px;font-weight:850}
.security-form input{width:100%;padding:13px 14px;border:1px solid var(--line-strong);border-radius:13px;background:var(--canvas);color:var(--ink)}
.password-guidance{display:flex;gap:9px;padding:12px 13px;border-radius:14px;background:var(--brand-soft);color:var(--ink-soft)}
.password-guidance p{margin:1px 0 0;font-size:12px}
.guidance-icon{display:grid;place-items:center;flex:0 0 24px;height:24px;border-radius:50%;background:var(--brand);color:#fff;font-weight:900;font-size:12px}
.security-state{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:10px;text-transform:uppercase;letter-spacing:.05em;font-weight:900}
.security-state.ok{background:var(--success-soft);color:var(--success)}
.security-state.pending{background:var(--warning-soft);color:var(--warning)}
.user-security-cell{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.text-action{border:0;background:transparent;color:var(--accent);font-size:11px;font-weight:850;padding:0;cursor:pointer;text-decoration:none}
.admin-user-form label small{font-weight:500;color:var(--ink-soft);font-size:11px}
html[data-theme="dark"] .account-card{background:var(--paper)}
html[data-theme="dark"] .security-form input{background:#101922;color:var(--ink)}
@media(max-width:720px){.account-grid{grid-template-columns:1fr}.account-hero{align-items:flex-start}.account-lock{width:54px;height:54px;flex-basis:54px;border-radius:17px}.account-hero h1{font-size:32px}}



/* R1-R16 · corrección puntual UX/UI pantalla de contraseña temporal */
.account-shell-forced{max-width:760px;min-height:calc(100vh - 110px);display:grid;align-items:center;padding-top:28px;padding-bottom:40px}
.account-forced-stage{width:100%;display:grid;gap:18px}
.account-forced-card{padding:34px;border:1px solid var(--line);border-radius:28px;background:linear-gradient(180deg,color-mix(in srgb,var(--paper) 96%, var(--canvas)) 0%, color-mix(in srgb,var(--paper) 92%, var(--canvas)) 100%);box-shadow:var(--shadow)}
.account-forced-hero{text-align:center;display:grid;justify-items:center;gap:10px;margin-bottom:18px}
.account-lock.large{width:84px;height:84px;flex-basis:84px;border-radius:26px;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.account-lock.large svg{width:38px;height:38px}
.account-forced-hero h1{margin:0;font-size:clamp(34px,4.8vw,50px);letter-spacing:-.045em;line-height:1.02}
.account-forced-hero p{margin:0;max-width:560px;color:var(--ink-soft);font-size:16px;line-height:1.55}
.forced-identity-card{display:grid;gap:14px;padding:18px 20px;margin:4px auto 22px;max-width:540px;border-radius:20px;border:1px solid var(--line);background:color-mix(in srgb,var(--paper) 74%, var(--canvas))}
.account-user-row.compact{margin:0}
.forced-meta-row{display:flex;gap:10px;flex-wrap:wrap}
.forced-meta-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:12px;font-weight:900;letter-spacing:.02em}
.forced-meta-pill.pending{background:var(--warning-soft);color:var(--warning)}
.security-form-premium{max-width:540px;margin:0 auto;gap:16px}
.field-stack{display:grid;gap:14px}
.field-block{display:grid;gap:8px;font-size:13px;font-weight:850}
.password-input-wrap{position:relative}
.password-input-wrap input{padding-right:94px!important;height:56px;border-radius:16px!important;font-size:16px;background:color-mix(in srgb,var(--canvas) 72%, var(--paper));box-shadow:inset 0 1px 0 rgba(255,255,255,.02)}
.password-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--accent);font-size:12px;font-weight:900;cursor:pointer;padding:8px 10px;border-radius:10px}
.password-toggle:hover{background:color-mix(in srgb,var(--accent-soft) 65%, transparent)}
.password-guidance.premium{display:grid;gap:12px;padding:16px 18px;border-radius:18px;background:color-mix(in srgb,var(--brand-soft) 70%, var(--paper));border:1px solid var(--line)}
.guidance-head{display:flex;align-items:flex-start;gap:12px}
.guidance-head strong{display:block;margin-top:2px;font-size:14px}
.guidance-head p{margin:2px 0 0;font-size:13px;color:var(--ink-soft);line-height:1.45}
.password-checklist{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.password-checklist li{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;background:color-mix(in srgb,var(--paper) 82%, var(--canvas));border:1px solid var(--line);font-size:13px;font-weight:700;color:var(--ink-soft);transition:.18s ease}
.password-checklist li span{display:grid;place-items:center;width:18px;height:18px;border-radius:999px;background:var(--line);color:var(--ink-soft);font-weight:900;line-height:1}
.password-checklist li.is-valid{border-color:color-mix(in srgb,var(--success) 50%, var(--line));background:color-mix(in srgb,var(--success-soft) 76%, var(--paper));color:var(--ink)}
.password-checklist li.is-valid span{background:var(--success);color:#fff}
.account-shell-forced .button.large.wide{height:58px;font-size:18px;border-radius:18px;box-shadow:0 16px 34px rgba(12,47,43,.18)}
html[data-theme="dark"] .account-forced-card{background:linear-gradient(180deg,#13212b 0%,#152631 100%);border-color:#223340;box-shadow:0 26px 60px rgba(0,0,0,.38)}
html[data-theme="dark"] .forced-identity-card{background:#101c26;border-color:#243847}
html[data-theme="dark"] .password-input-wrap input{background:#0c1720;border-color:#304251}
html[data-theme="dark"] .password-guidance.premium{background:#12242c;border-color:#253847}
html[data-theme="dark"] .password-checklist li{background:#101a23;border-color:#233645}
@media(max-width:720px){.account-shell-forced{padding-top:12px}.account-forced-card{padding:24px 18px;border-radius:24px}.account-forced-hero h1{font-size:36px}.account-forced-hero p{font-size:15px}.account-lock.large{width:72px;height:72px;border-radius:22px}.password-input-wrap input{height:52px}.account-shell-forced .button.large.wide{height:54px;font-size:17px}}




/* R1-R17 · mejora completa de Mi cuenta + bust de caché css */
.account-shell-regular{max-width:1180px;padding-top:28px;padding-bottom:44px}
.account-top-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:8px 0 26px}
.account-top-hero h1{margin:6px 0 8px;font-size:clamp(34px,5vw,52px);letter-spacing:-.045em;line-height:1.02}
.account-top-hero p{margin:0;max-width:640px;color:var(--ink-soft);font-size:16px;line-height:1.55}
.account-hero-badge{display:grid;place-items:center;min-width:110px;min-height:110px;border-radius:28px;background:linear-gradient(155deg,color-mix(in srgb,var(--brand-soft) 85%, var(--paper)), color-mix(in srgb,var(--brand-soft) 55%, var(--paper)));border:1px solid var(--line)}
.account-premium-grid{display:grid;grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr);gap:20px;align-items:start}
.account-summary-card,.premium-card{padding:28px;border-radius:26px}
.account-user-row.premium{margin:14px 0 16px}
.account-pill-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.account-details.premium{margin-top:12px}
.account-details.premium>div{padding:14px 0}
.account-details.premium dd{font-size:13px}
.password-card-head{margin-bottom:14px}
.password-card-head h2{margin:6px 0 7px;font-size:30px;letter-spacing:-.03em}
.password-card-head p{margin:0;color:var(--ink-soft);line-height:1.52;max-width:560px}
.account-update-form{max-width:100%;margin:0}
.account-update-form .field-stack{grid-template-columns:1fr}
.account-update-form .button.large.wide{margin-top:2px}
html[data-theme="dark"] .account-hero-badge{background:linear-gradient(155deg,#12322f,#142a33);border-color:#233847}
@media(max-width:900px){.account-premium-grid{grid-template-columns:1fr}.account-top-hero{align-items:flex-start}.account-hero-badge{min-width:86px;min-height:86px;border-radius:24px}}
@media(max-width:720px){.account-shell-regular{padding-top:12px}.account-top-hero h1{font-size:36px}.password-card-head h2{font-size:28px}}



/* R1-R23 · Web Push + equipos de múltiples cuidadores */
.push-permission-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:16px 18px;border-radius:19px;border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow-soft)}
.caregiver-push-card{margin:-8px 0 22px}
.kiosk-push-card{margin:0 30px 18px;box-shadow:none;background:color-mix(in srgb,var(--paper) 85%, var(--brand-soft));border-color:color-mix(in srgb,var(--brand) 30%, var(--line))}
.push-permission-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:var(--brand-soft);color:var(--brand)}
.push-permission-icon svg{width:21px;height:21px}
.push-permission-copy{display:grid;gap:2px;min-width:0}
.push-permission-copy>strong{font-size:14px}
.push-permission-copy>small{color:var(--ink-soft);font-size:11px;line-height:1.35}
.push-permission-card[data-push-state="active"]{border-color:color-mix(in srgb,var(--success) 45%, var(--line));background:color-mix(in srgb,var(--success-soft) 50%, var(--paper))}
.push-permission-card[data-push-state="active"] .push-permission-icon{background:var(--success-soft);color:var(--success)}
.push-permission-card[data-push-state="blocked"]{border-color:color-mix(in srgb,var(--warning) 40%, var(--line))}
.caregiver-team-list{display:grid;gap:9px;margin-top:14px}
.caregiver-team-person{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:10px;border-radius:14px;background:color-mix(in srgb,var(--paper) 76%, var(--canvas));border:1px solid var(--line)}
.caregiver-team-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--brand-soft);color:var(--brand);font-weight:900}
.caregiver-team-person>div{display:grid;min-width:0}
.caregiver-team-person strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.caregiver-team-person small{font-size:10px;color:var(--ink-soft)}
.caregiver-alert-state{font-size:12px}.caregiver-alert-state.off{opacity:.5}
.admin-caregiver-team{display:grid;gap:8px;margin:12px 0}
.admin-caregiver-row{display:grid;grid-template-columns:minmax(170px,.8fr) minmax(0,1.5fr) auto;gap:10px;align-items:center;padding:10px;border-radius:14px;background:color-mix(in srgb,var(--paper) 78%, var(--canvas));border:1px solid var(--line)}
.admin-caregiver-identity{display:flex;gap:9px;align-items:center;min-width:0}.admin-caregiver-identity>div{display:grid;min-width:0}.admin-caregiver-identity strong,.admin-caregiver-identity small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-caregiver-identity small{font-size:10px;color:var(--ink-soft)}
.admin-caregiver-settings{display:grid;grid-template-columns:minmax(120px,1fr) auto auto;gap:8px;align-items:center}.admin-caregiver-settings input[type="text"],.admin-caregiver-settings input:not([type]){min-width:0;padding:8px 10px;border-radius:10px;border:1px solid var(--line-strong);background:var(--paper);color:var(--ink)}
.admin-assign-form.expanded{grid-template-columns:minmax(180px,1fr) minmax(130px,.7fr) auto auto}
.admin-assign-form.expanded input{padding:9px 10px;border-radius:10px;border:1px solid var(--line-strong);background:var(--paper);color:var(--ink)}
.mini-check-option{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-size:11px;font-weight:750;color:var(--ink-soft)}.mini-check-option input{width:auto!important}.danger-text{color:var(--danger)!important}
html[data-theme="dark"] .push-permission-card,html[data-theme="dark"] .caregiver-team-person,html[data-theme="dark"] .admin-caregiver-row{background:#13212b;border-color:#263a48}
@media(max-width:900px){.admin-caregiver-row{grid-template-columns:1fr}.admin-caregiver-settings{grid-template-columns:1fr auto auto}.admin-assign-form.expanded{grid-template-columns:1fr 1fr auto auto}}
@media(max-width:560px){.push-permission-card{grid-template-columns:auto 1fr}.push-permission-card .button{grid-column:1/-1;width:100%}.kiosk-push-card{margin-left:14px;margin-right:14px}.admin-caregiver-settings,.admin-assign-form.expanded{grid-template-columns:1fr}.admin-caregiver-settings .button,.admin-assign-form.expanded .button{width:100%}}


/* R1-R26 · Web Push activation hardening + self-test */
.push-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.push-help-code{font-size:9px!important;letter-spacing:.03em;color:var(--ink-soft)!important;opacity:.8}
.push-permission-card[data-push-state="idle"] .push-help-code,
.push-permission-card[data-push-state="blocked"] .push-help-code{display:block}
.push-permission-card[data-push-state="active"] .push-help-code{display:none}
@media(max-width:560px){
    .push-actions{grid-column:1/-1;width:100%;display:grid;grid-template-columns:1fr}
    .push-actions .button{width:100%}
}


/* R1-R27 · el botón de prueba sólo existe visualmente con suscripción activa */
.push-actions [hidden],
[data-push-test-button][hidden]{
    display:none!important;
}


/* R1-R30 · Admin forms: validation that stays visible in the dialog */
.dialog-validation-summary{
    grid-column:1/-1;
    display:grid;
    gap:3px;
    margin:12px 0 2px;
    padding:11px 13px;
    border:1px solid color-mix(in srgb,var(--danger) 38%,transparent);
    border-radius:12px;
    background:var(--danger-soft);
    color:var(--danger);
    font-size:12px;
}
.dialog-validation-summary strong{font-size:13px}
.field-error{
    color:var(--danger)!important;
    font-weight:800!important;
    font-size:11px!important;
}
.admin-user-form input.field-invalid,
.admin-user-form select.field-invalid{
    border-color:var(--danger)!important;
    box-shadow:0 0 0 2px color-mix(in srgb,var(--danger) 16%,transparent);
}
.admin-user-form button[disabled]{
    opacity:.65;
    cursor:wait;
}


/* R1-R31 · Equipo de cuidado: acciones limpias, sin superposiciones */
.admin-caregiver-row{
    grid-template-columns:minmax(185px,.8fr) minmax(0,1.65fr);
    gap:14px;
    padding:11px 12px;
}
.admin-caregiver-controls{
    min-width:0;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
}
.admin-caregiver-settings{
    min-width:0;
    flex:1 1 auto;
    display:grid;
    grid-template-columns:minmax(112px,1fr) auto auto;
    gap:8px;
    align-items:center;
}
.admin-caregiver-settings input{
    width:100%;
    min-width:0;
    height:38px;
    padding:8px 11px!important;
    border-radius:11px!important;
}
.caregiver-alert-toggle{
    position:relative;
    display:inline-flex;
    align-items:center;
    gap:7px;
    min-height:38px;
    padding:0 9px;
    border:1px solid var(--line);
    border-radius:11px;
    background:color-mix(in srgb,var(--paper) 82%,var(--canvas));
    color:var(--ink-soft);
    font-size:10px;
    font-weight:850;
    white-space:nowrap;
    cursor:pointer;
}
.caregiver-alert-toggle input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}
.caregiver-alert-switch{
    position:relative;
    width:28px;
    height:16px;
    border-radius:999px;
    background:var(--line-strong);
    transition:.18s ease;
}
.caregiver-alert-switch::after{
    content:"";
    position:absolute;
    width:12px;
    height:12px;
    left:2px;
    top:2px;
    border-radius:50%;
    background:#fff;
    transition:.18s ease;
    box-shadow:0 1px 3px rgba(0,0,0,.28);
}
.caregiver-alert-toggle input:checked + .caregiver-alert-switch{
    background:var(--brand);
}
.caregiver-alert-toggle input:checked + .caregiver-alert-switch::after{
    transform:translateX(12px);
}
.caregiver-save-action,
.caregiver-associate-action,
.caregiver-remove-action{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    min-height:38px;
    border-radius:11px;
    padding:0 11px;
    font-size:10px;
    font-weight:900;
    letter-spacing:.01em;
    cursor:pointer;
    transition:transform .14s ease,border-color .14s ease,background .14s ease;
}
.caregiver-save-action,
.caregiver-associate-action{
    border:1px solid color-mix(in srgb,var(--brand) 65%,var(--line));
    background:var(--brand-soft);
    color:var(--brand);
}
.caregiver-remove-action{
    border:1px solid color-mix(in srgb,var(--danger) 34%,var(--line));
    background:transparent;
    color:var(--danger);
}
.caregiver-save-action:hover,
.caregiver-associate-action:hover,
.caregiver-remove-action:hover{
    transform:translateY(-1px);
}
.caregiver-save-action svg,
.caregiver-associate-action svg,
.caregiver-remove-action svg{
    width:15px;
    height:15px;
    fill:none;
    stroke:currentColor;
    stroke-width:2;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.caregiver-remove-form{flex:0 0 auto}
.caregiver-add-form{
    grid-template-columns:minmax(190px,1.2fr) minmax(125px,.8fr) auto auto!important;
    gap:8px!important;
    align-items:center;
}
.caregiver-add-form select,
.caregiver-add-form input{
    min-height:38px;
}
html[data-theme="dark"] .caregiver-alert-toggle{
    background:#101c25;
    border-color:#29404f;
}
@media(max-width:1050px){
    .admin-caregiver-row{grid-template-columns:1fr}
    .admin-caregiver-controls{justify-content:stretch}
}
@media(max-width:720px){
    .admin-caregiver-controls{display:grid;grid-template-columns:1fr}
    .admin-caregiver-settings{grid-template-columns:1fr}
    .caregiver-remove-action,
    .caregiver-save-action{width:100%}
    .caregiver-add-form{grid-template-columns:1fr!important}
    .caregiver-associate-action{width:100%}
}
.push-repair-action{
    border-color:color-mix(in srgb,var(--warning) 55%,var(--line))!important;
    color:var(--warning)!important;
}
[data-push-repair-button][hidden]{
    display:none!important;
}


/* R1-R33 · Paciente: icono Hilva como mini menú de opciones */
.kiosk-header{
    position:relative;
    z-index:20;
}
.patient-options{
    position:relative;
    min-width:0;
}
.kiosk-brand{
    gap:10px;
}
.kiosk-brand-name{
    display:inline-flex;
    align-items:center;
    color:var(--ink);
    font-size:17px;
    font-weight:900;
}
.patient-menu-trigger{
    position:relative;
    display:grid;
    place-items:center;
    width:46px;
    height:46px;
    padding:0;
    border:0;
    border-radius:15px;
    background:transparent;
    cursor:pointer;
    -webkit-tap-highlight-color:transparent;
    transition:transform .14s ease,box-shadow .14s ease;
}
.patient-menu-trigger:hover{
    transform:translateY(-1px);
}
.patient-menu-trigger:focus-visible{
    outline:3px solid color-mix(in srgb,var(--brand) 35%,transparent);
    outline-offset:3px;
}
.patient-menu-trigger .hilva-mark{
    width:42px;
    height:42px;
    font-size:25px;
    box-shadow:0 8px 20px rgba(37,148,132,.14);
}
.patient-menu-dots{
    position:absolute;
    right:-2px;
    bottom:-1px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:2px;
    width:22px;
    height:12px;
    border-radius:999px;
    background:var(--paper);
    border:1px solid var(--line);
    box-shadow:0 3px 9px rgba(0,0,0,.12);
}
.patient-menu-dots i{
    width:2.5px;
    height:2.5px;
    border-radius:50%;
    background:var(--ink-soft);
}
.patient-menu-trigger[aria-expanded="true"] .patient-menu-dots{
    background:var(--brand-soft);
    border-color:color-mix(in srgb,var(--brand) 42%,var(--line));
}
.patient-menu-trigger[aria-expanded="true"] .patient-menu-dots i{
    background:var(--brand);
}

.patient-options-menu{
    position:absolute;
    top:calc(100% + 12px);
    left:0;
    width:min(390px,calc(100vw - 48px));
    padding:16px;
    border:1px solid var(--line);
    border-radius:20px;
    background:color-mix(in srgb,var(--paper) 96%,transparent);
    box-shadow:0 22px 60px rgba(13,28,38,.24);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
    z-index:100;
}
.patient-options-menu[hidden]{
    display:none!important;
}
.patient-options-menu::before{
    content:"";
    position:absolute;
    top:-7px;
    left:16px;
    width:14px;
    height:14px;
    background:inherit;
    border-left:1px solid var(--line);
    border-top:1px solid var(--line);
    transform:rotate(45deg);
}
.patient-options-menu-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin:0 0 12px;
    padding:0 2px 10px;
    border-bottom:1px solid var(--line);
}
.patient-options-menu-head>div{
    display:grid;
    gap:2px;
}
.patient-options-menu-head .kicker{
    font-size:8px;
}
.patient-options-menu-head strong{
    color:var(--ink);
    font-size:18px;
    letter-spacing:-.02em;
}
.patient-menu-close{
    display:grid;
    place-items:center;
    width:34px;
    height:34px;
    padding:0;
    border:1px solid var(--line);
    border-radius:11px;
    background:transparent;
    color:var(--ink-soft);
    font-size:24px;
    line-height:1;
    cursor:pointer;
}
.patient-menu-close:hover{
    color:var(--ink);
    border-color:var(--line-strong);
}

/* La configuración push ya no ocupa espacio en la pantalla principal. */
.patient-menu-push{
    margin:0!important;
    padding:13px!important;
    border-radius:16px!important;
    grid-template-columns:42px minmax(0,1fr)!important;
    gap:11px!important;
    box-shadow:none!important;
}
.patient-menu-push .push-permission-icon{
    width:42px;
    height:42px;
    border-radius:13px;
}
.patient-menu-push .push-permission-copy strong{
    font-size:13px;
}
.patient-menu-push .push-permission-copy small{
    margin-top:3px;
    font-size:10.5px;
    line-height:1.35;
}
.patient-menu-push .push-actions{
    grid-column:1/-1;
    display:grid;
    grid-template-columns:1fr;
    gap:7px;
    width:100%;
    margin-top:2px;
}
.patient-menu-push .push-actions .button{
    width:100%;
    min-height:40px;
    margin:0;
}
.patient-menu-push .push-help-code{
    font-size:8.5px!important;
}

html[data-theme="dark"] .patient-options-menu{
    background:rgba(16,28,38,.97);
    border-color:#2a3f4e;
    box-shadow:0 24px 70px rgba(0,0,0,.44);
}
html[data-theme="dark"] .patient-menu-dots{
    background:#13212b;
    border-color:#2a3f4e;
}
html[data-theme="dark"] .patient-menu-close{
    border-color:#2a3f4e;
    background:#101c25;
}

@media(max-width:560px){
    .patient-options-menu{
        top:calc(100% + 10px);
        left:-4px;
        width:min(350px,calc(100vw - 28px));
        padding:14px;
        border-radius:18px;
    }
    .patient-menu-trigger{
        width:44px;
        height:44px;
    }
    .patient-menu-trigger .hilva-mark{
        width:40px;
        height:40px;
        font-size:24px;
    }
    .kiosk-brand-name{
        font-size:16px;
    }
}


/* R1-R34 · Equipo de cuidado: sobrio, textual y sin iconografía ornamental */
.admin-caregiver-row{
    grid-template-columns:minmax(185px,.92fr) minmax(360px,1.55fr)!important;
    align-items:center!important;
    gap:16px!important;
    padding:10px 12px!important;
    min-height:58px;
}
.admin-caregiver-identity{
    min-width:0;
}
.admin-caregiver-identity>div{
    min-width:0;
}
.admin-caregiver-identity strong,
.admin-caregiver-identity small{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.admin-caregiver-controls{
    min-width:0;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:9px!important;
}
.admin-caregiver-settings{
    min-width:0;
    display:grid!important;
    grid-template-columns:minmax(110px,1fr) 86px 76px!important;
    align-items:center!important;
    gap:8px!important;
}
.admin-caregiver-settings input{
    min-width:0!important;
    height:38px!important;
    margin:0!important;
}
.caregiver-alert-toggle{
    width:86px!important;
    height:38px!important;
    min-height:38px!important;
    padding:0 9px!important;
    justify-content:center!important;
    gap:6px!important;
    border-radius:10px!important;
    font-size:10px!important;
}
.caregiver-alert-switch{
    width:26px!important;
    height:15px!important;
}
.caregiver-alert-switch::after{
    width:11px!important;
    height:11px!important;
}
.caregiver-alert-toggle input:checked + .caregiver-alert-switch::after{
    transform:translateX(11px)!important;
}
.caregiver-save-action,
.caregiver-associate-action{
    height:38px!important;
    min-height:38px!important;
    padding:0 14px!important;
    border:1px solid color-mix(in srgb,var(--brand) 48%,var(--line))!important;
    border-radius:10px!important;
    background:color-mix(in srgb,var(--brand) 10%,transparent)!important;
    color:var(--brand)!important;
    font-size:10px!important;
    font-weight:900!important;
    line-height:1!important;
    box-shadow:none!important;
    white-space:nowrap;
}
.caregiver-save-action:hover,
.caregiver-associate-action:hover{
    background:color-mix(in srgb,var(--brand) 17%,transparent)!important;
    border-color:var(--brand)!important;
    transform:none!important;
}
.caregiver-remove-form{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    margin:0!important;
}
.caregiver-remove-action{
    height:38px!important;
    min-height:38px!important;
    padding:0 11px!important;
    border:1px solid transparent!important;
    border-radius:10px!important;
    background:transparent!important;
    color:color-mix(in srgb,var(--danger) 82%,var(--ink-soft))!important;
    font-size:10px!important;
    font-weight:850!important;
    line-height:1!important;
    box-shadow:none!important;
    white-space:nowrap;
}
.caregiver-remove-action:hover{
    background:var(--danger-soft)!important;
    border-color:color-mix(in srgb,var(--danger) 24%,transparent)!important;
    transform:none!important;
}
.caregiver-save-action svg,
.caregiver-associate-action svg,
.caregiver-remove-action svg{
    display:none!important;
}
.caregiver-add-form{
    display:grid!important;
    grid-template-columns:minmax(180px,1.25fr) minmax(120px,.8fr) 86px 82px!important;
    align-items:center!important;
    gap:8px!important;
}
.caregiver-add-form select,
.caregiver-add-form input,
.caregiver-add-form .caregiver-alert-toggle,
.caregiver-add-form .caregiver-associate-action{
    height:38px!important;
    min-height:38px!important;
    margin:0!important;
}
.caregiver-add-form .caregiver-associate-action{
    width:82px!important;
    padding:0 10px!important;
}

/* En escritorio medio preferimos dos líneas limpias antes que apretar botones. */
@media(max-width:1180px){
    .admin-caregiver-row{
        grid-template-columns:1fr!important;
        gap:9px!important;
    }
    .admin-caregiver-controls{
        grid-template-columns:minmax(0,1fr) auto!important;
    }
}
@media(max-width:760px){
    .admin-caregiver-controls{
        grid-template-columns:1fr!important;
    }
    .admin-caregiver-settings{
        grid-template-columns:1fr 86px 1fr!important;
    }
    .caregiver-save-action{
        width:100%!important;
    }
    .caregiver-remove-action{
        width:100%!important;
        border-color:color-mix(in srgb,var(--danger) 20%,var(--line))!important;
    }
    .caregiver-add-form{
        grid-template-columns:1fr!important;
    }
    .caregiver-add-form .caregiver-alert-toggle,
    .caregiver-add-form .caregiver-associate-action{
        width:100%!important;
    }
}


/* R1-R35 · Equipo de cuidado: filas limpias y acciones sólo cuando hacen falta */
.admin-caregiver-team{
    gap:0!important;
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:16px;
    background:color-mix(in srgb,var(--paper) 88%,var(--canvas));
}
.admin-caregiver-row{
    display:grid!important;
    grid-template-columns:minmax(180px,.92fr) minmax(390px,1.6fr)!important;
    align-items:center!important;
    gap:22px!important;
    min-height:66px!important;
    padding:10px 14px!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
}
.admin-caregiver-row + .admin-caregiver-row{
    border-top:1px solid var(--line)!important;
}
.admin-caregiver-identity{
    min-width:0;
    gap:10px!important;
}
.caregiver-team-avatar{
    width:34px!important;
    height:34px!important;
    border-radius:11px!important;
    font-size:12px!important;
    flex:0 0 34px!important;
}
.admin-caregiver-identity strong{
    font-size:12px!important;
    line-height:1.15!important;
}
.admin-caregiver-identity small{
    margin-top:3px!important;
    font-size:8.5px!important;
    opacity:.78;
}
.admin-caregiver-controls{
    min-width:0;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:12px!important;
    align-items:center!important;
}
.admin-caregiver-settings{
    min-width:0;
    display:grid!important;
    grid-template-columns:minmax(132px,1fr) auto minmax(92px,auto)!important;
    gap:14px!important;
    align-items:center!important;
}
.caregiver-relation-field{
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr)!important;
    align-items:center!important;
    gap:8px!important;
    min-width:0;
    margin:0!important;
}
.caregiver-relation-field>span{
    color:var(--ink-soft);
    font-size:8px;
    font-weight:850;
    text-transform:uppercase;
    letter-spacing:.08em;
    white-space:nowrap;
}
.caregiver-relation-field input{
    width:100%!important;
    height:34px!important;
    min-width:0!important;
    margin:0!important;
    padding:6px 9px!important;
    border:1px solid transparent!important;
    border-radius:9px!important;
    background:transparent!important;
    color:var(--ink)!important;
    font-size:11px!important;
}
.caregiver-relation-field input:hover,
.caregiver-relation-field input:focus{
    border-color:var(--line)!important;
    background:color-mix(in srgb,var(--paper) 72%,var(--canvas))!important;
    outline:none!important;
}
.caregiver-alert-toggle{
    width:auto!important;
    height:34px!important;
    min-height:34px!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    color:var(--ink-soft)!important;
    font-size:9px!important;
    gap:6px!important;
}
.caregiver-alert-switch{
    width:28px!important;
    height:16px!important;
}
.caregiver-save-slot{
    min-width:92px;
    display:flex;
    align-items:center;
    justify-content:flex-end;
}
.caregiver-saved-state{
    color:var(--ink-soft);
    font-size:8.5px;
    font-weight:800;
    opacity:.62;
}
.caregiver-save-action{
    height:34px!important;
    min-height:34px!important;
    padding:0 12px!important;
    border:0!important;
    border-radius:9px!important;
    background:var(--brand)!important;
    color:#fff!important;
    font-size:9px!important;
    font-weight:900!important;
    box-shadow:none!important;
}
.caregiver-save-action[hidden]{
    display:none!important;
}
.admin-caregiver-settings.is-dirty .caregiver-relation-field input{
    background:color-mix(in srgb,var(--brand) 7%,transparent)!important;
    border-color:color-mix(in srgb,var(--brand) 28%,var(--line))!important;
}
.caregiver-remove-form{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    margin:0!important;
}
.caregiver-remove-action{
    height:auto!important;
    min-height:0!important;
    padding:4px 0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    color:var(--ink-soft)!important;
    font-size:8.5px!important;
    font-weight:800!important;
    text-decoration:none;
    opacity:.7;
}
.caregiver-remove-action:hover{
    color:var(--danger)!important;
    background:transparent!important;
    opacity:1;
}

/* Agregar cuidador como footer, no como otra fila de controles iguales */
.caregiver-add-form{
    margin-top:10px!important;
    padding:11px 12px!important;
    display:grid!important;
    grid-template-columns:auto minmax(170px,1.2fr) minmax(120px,.8fr) auto auto!important;
    gap:9px!important;
    align-items:center!important;
    border:1px dashed var(--line)!important;
    border-radius:14px!important;
    background:transparent!important;
}
.caregiver-add-heading{
    display:flex;
    align-items:center;
    gap:6px;
    color:var(--ink-soft);
    font-size:9px;
    font-weight:850;
    white-space:nowrap;
}
.caregiver-add-mark{
    display:grid;
    place-items:center;
    width:20px;
    height:20px;
    border-radius:7px;
    background:var(--brand-soft);
    color:var(--brand);
    font-size:14px;
    font-weight:900;
}
.caregiver-add-form select,
.caregiver-add-form input{
    height:36px!important;
    min-height:36px!important;
    margin:0!important;
    border-radius:10px!important;
    font-size:10px!important;
}
.caregiver-add-form .caregiver-alert-toggle{
    padding:0 3px!important;
}
.caregiver-associate-action{
    height:36px!important;
    min-height:36px!important;
    padding:0 13px!important;
    border:1px solid color-mix(in srgb,var(--brand) 48%,var(--line))!important;
    border-radius:10px!important;
    background:transparent!important;
    color:var(--brand)!important;
    font-size:9px!important;
    font-weight:900!important;
}
.caregiver-associate-action:hover{
    background:var(--brand-soft)!important;
}
.caregiver-associate-action[aria-busy="true"]{
    opacity:.65;
    cursor:wait;
}

/* anula restos visuales de iteraciones previas */
.caregiver-save-action svg,
.caregiver-associate-action svg,
.caregiver-remove-action svg{
    display:none!important;
}

html[data-theme="dark"] .admin-caregiver-team{
    background:rgba(13,25,34,.48);
    border-color:#243a48;
}
html[data-theme="dark"] .caregiver-relation-field input:hover,
html[data-theme="dark"] .caregiver-relation-field input:focus{
    background:#101d26!important;
    border-color:#2a4352!important;
}
html[data-theme="dark"] .caregiver-add-form{
    border-color:#29404f!important;
}

@media(max-width:1160px){
    .admin-caregiver-row{
        grid-template-columns:1fr!important;
        gap:9px!important;
    }
}
@media(max-width:760px){
    .admin-caregiver-controls{
        grid-template-columns:1fr!important;
    }
    .admin-caregiver-settings{
        grid-template-columns:1fr auto auto!important;
        gap:9px!important;
    }
    .caregiver-relation-field{
        grid-column:1/-1;
    }
    .caregiver-add-form{
        grid-template-columns:1fr!important;
    }
    .caregiver-add-heading{
        margin-bottom:2px;
    }
    .caregiver-associate-action{
        width:100%;
    }
}


/* R1-R37 · Admin: contención estricta del panel Personas asistidas */
.admin-grid,
.admin-panel,
.admin-patient-list,
.admin-patient-card,
.admin-caregiver-team,
.admin-caregiver-row,
.admin-caregiver-controls,
.admin-caregiver-settings,
.caregiver-add-form{
    min-width:0!important;
    box-sizing:border-box!important;
}

.admin-panel{
    overflow:hidden!important;
}

.admin-patient-list{
    width:100%!important;
    max-width:100%!important;
}

.admin-patient-card{
    width:100%!important;
    max-width:100%!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
}

.admin-patient-main{
    min-width:0!important;
    width:100%!important;
    box-sizing:border-box!important;
}

.admin-caregiver-team{
    width:100%!important;
    max-width:100%!important;
    overflow:hidden!important;
}

.admin-caregiver-row{
    width:100%!important;
    max-width:100%!important;
    grid-template-columns:minmax(145px,.78fr) minmax(0,1.22fr)!important;
    gap:14px!important;
    overflow:hidden!important;
}

.admin-caregiver-identity{
    min-width:0!important;
    overflow:hidden!important;
}

.admin-caregiver-identity>div{
    min-width:0!important;
    overflow:hidden!important;
}

.admin-caregiver-controls{
    min-width:0!important;
    width:100%!important;
    max-width:100%!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:8px!important;
}

.admin-caregiver-settings{
    min-width:0!important;
    width:100%!important;
    max-width:100%!important;
    grid-template-columns:minmax(0,1fr) auto auto!important;
    gap:9px!important;
}

.caregiver-relation-field{
    min-width:0!important;
    grid-template-columns:auto minmax(0,1fr)!important;
    gap:6px!important;
}

.caregiver-relation-field input{
    min-width:0!important;
    width:100%!important;
    max-width:100%!important;
}

.caregiver-save-slot{
    min-width:54px!important;
    max-width:104px!important;
}

.caregiver-saved-state{
    white-space:nowrap!important;
}

.caregiver-remove-form{
    min-width:0!important;
    max-width:52px!important;
}

.caregiver-remove-action{
    white-space:nowrap!important;
}

.caregiver-add-form{
    width:100%!important;
    max-width:100%!important;
    grid-template-columns:auto minmax(130px,1fr) minmax(100px,.72fr) auto auto!important;
    gap:7px!important;
    overflow:hidden!important;
}

.caregiver-add-heading{
    min-width:0!important;
}

.caregiver-add-form select,
.caregiver-add-form input{
    min-width:0!important;
    width:100%!important;
    max-width:100%!important;
}

/* El panel se adapta antes de desbordar. */
@media(max-width:1320px){
    .admin-caregiver-row{
        grid-template-columns:1fr!important;
        gap:8px!important;
    }

    .admin-caregiver-controls{
        grid-template-columns:minmax(0,1fr) auto!important;
    }

    .caregiver-add-form{
        grid-template-columns:1fr 1fr auto auto!important;
    }

    .caregiver-add-heading{
        grid-column:1/-1;
    }
}

@media(max-width:980px){
    .admin-caregiver-controls{
        grid-template-columns:1fr!important;
    }

    .admin-caregiver-settings{
        grid-template-columns:minmax(0,1fr) auto auto!important;
    }

    .caregiver-remove-form{
        max-width:none!important;
        justify-content:flex-start!important;
    }

    .caregiver-add-form{
        grid-template-columns:1fr 1fr!important;
    }

    .caregiver-add-form .caregiver-alert-toggle,
    .caregiver-add-form .caregiver-associate-action{
        width:100%!important;
    }
}

@media(max-width:640px){
    .admin-caregiver-settings{
        grid-template-columns:1fr auto!important;
    }

    .caregiver-relation-field{
        grid-column:1/-1;
    }

    .caregiver-save-slot{
        min-width:0!important;
    }

    .caregiver-add-form{
        grid-template-columns:1fr!important;
    }
}


/* R1-R38 · Admin móvil real: 360px sin scroll horizontal */
html,body{
    max-width:100%;
}
body{
    overflow-x:hidden;
}
.admin-header{
    width:100%;
}
.admin-mobile-menu-trigger{
    display:none;
}
.admin-shell,
.admin-hero,
.admin-metrics,
.admin-grid,
.admin-panel,
.admin-table-wrap,
.admin-patient-list,
.admin-patient-card{
    max-width:100%;
    min-width:0;
}

/* Tablet: panels first, then density */
@media(max-width:900px){
    .admin-shell{
        width:100%;
        padding:28px 18px 70px!important;
    }
    .admin-grid{
        grid-template-columns:minmax(0,1fr)!important;
        gap:16px!important;
    }
    .admin-panel{
        width:100%;
        padding:18px!important;
    }
}

/* Mobile dashboard */
@media(max-width:720px){
    .admin-header{
        min-height:62px!important;
        padding:0 14px!important;
        gap:10px;
    }
    .admin-header .app-brand{
        min-width:0;
        gap:8px;
        font-size:18px;
    }
    .admin-header .hilva-mark{
        width:34px;
        height:34px;
        flex:0 0 34px;
    }
    .admin-label{
        padding:3px 6px!important;
        font-size:8px!important;
    }

    .admin-mobile-menu-trigger{
        display:grid;
        place-items:center;
        align-content:center;
        gap:4px;
        width:40px;
        height:40px;
        flex:0 0 40px;
        padding:0;
        border:1px solid var(--line);
        border-radius:12px;
        background:var(--paper);
        cursor:pointer;
    }
    .admin-mobile-menu-trigger span{
        display:block;
        width:17px;
        height:2px;
        border-radius:99px;
        background:var(--ink-soft);
        transition:.16s ease;
    }
    .admin-mobile-menu-trigger[aria-expanded="true"] span:nth-child(1){
        transform:translateY(6px) rotate(45deg);
    }
    .admin-mobile-menu-trigger[aria-expanded="true"] span:nth-child(2){
        opacity:0;
    }
    .admin-mobile-menu-trigger[aria-expanded="true"] span:nth-child(3){
        transform:translateY(-6px) rotate(-45deg);
    }

    .admin-header .admin-navigation{
        position:absolute;
        top:calc(100% + 8px);
        left:12px;
        right:12px;
        display:none!important;
        padding:10px;
        border:1px solid var(--line);
        border-radius:16px;
        background:var(--paper);
        box-shadow:0 18px 45px rgba(0,0,0,.22);
    }
    .admin-header .admin-navigation.is-open{
        display:grid!important;
        gap:2px!important;
    }
    .admin-header .admin-navigation a,
    .admin-header .admin-navigation .nav-button{
        width:100%;
        min-height:42px;
        display:flex;
        align-items:center;
        padding:9px 11px!important;
        border-radius:10px;
        font-size:13px!important;
        text-align:left;
    }
    .admin-header .admin-navigation a:hover,
    .admin-header .admin-navigation .nav-button:hover{
        background:var(--brand-soft);
        color:var(--brand);
    }
    .admin-header .admin-navigation form{
        display:block!important;
        width:100%;
    }

    .admin-shell{
        width:100%!important;
        max-width:100%!important;
        margin:0!important;
        padding:22px 12px 64px!important;
    }

    .admin-hero{
        margin:3px 0 20px!important;
        gap:8px!important;
    }
    .admin-hero h1{
        font-size:36px!important;
        line-height:1.02!important;
        margin:6px 0 8px!important;
        letter-spacing:-.04em!important;
    }
    .admin-hero p{
        max-width:32ch;
        font-size:13px!important;
        line-height:1.45;
    }
    .admin-hero .kicker{
        font-size:9px!important;
    }
    .admin-shield{
        display:none!important;
    }

    .admin-metrics{
        width:100%!important;
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        gap:9px!important;
        margin-bottom:16px!important;
    }
    .admin-metrics article{
        min-width:0!important;
        min-height:86px;
        padding:12px!important;
        grid-template-columns:auto minmax(0,1fr)!important;
        column-gap:9px!important;
        border-radius:15px!important;
    }
    .admin-metric-icon{
        width:34px!important;
        height:34px!important;
        border-radius:11px!important;
        font-size:16px!important;
    }
    .admin-metrics strong{
        font-size:21px!important;
    }
    .admin-metrics small{
        min-width:0;
        font-size:10px!important;
        line-height:1.15;
        overflow-wrap:anywhere;
    }
    .admin-metrics article:last-child:nth-child(odd){
        grid-column:1/-1;
        min-height:70px;
    }

    .admin-grid{
        width:100%!important;
        display:grid!important;
        grid-template-columns:minmax(0,1fr)!important;
        gap:14px!important;
    }
    .admin-panel{
        width:100%!important;
        max-width:100%!important;
        padding:14px!important;
        border-radius:18px!important;
        overflow:hidden!important;
    }
    .admin-panel-head{
        align-items:center!important;
        gap:9px!important;
        margin-bottom:12px!important;
    }
    .admin-panel-head h2{
        font-size:23px!important;
        line-height:1.08;
    }
    .admin-panel-head .button{
        flex:0 0 auto;
        padding:8px 10px!important;
        font-size:11px!important;
    }
    .admin-panel-head .kicker{
        font-size:8px!important;
    }

    /* Users: no horizontal table on phones. Each TR becomes a card. */
    .admin-table-wrap{
        width:100%!important;
        overflow:visible!important;
    }
    .admin-table,
    .admin-table tbody{
        display:block!important;
        width:100%!important;
    }
    .admin-table thead{
        display:none!important;
    }
    .admin-table tr{
        display:grid!important;
        grid-template-columns:1fr 1fr!important;
        gap:0 12px!important;
        width:100%!important;
        margin:0 0 10px!important;
        padding:12px!important;
        border:1px solid var(--line);
        border-radius:14px;
        background:color-mix(in srgb,var(--paper) 92%,var(--canvas));
    }
    .admin-table td,
    .admin-table td:first-child{
        display:grid!important;
        grid-template-columns:1fr!important;
        align-content:start;
        min-width:0!important;
        padding:7px 0!important;
        border:0!important;
    }
    .admin-table td::before{
        content:attr(data-label);
        display:block;
        margin-bottom:3px;
        color:var(--ink-soft);
        font-size:8px;
        font-weight:900;
        letter-spacing:.08em;
        text-transform:uppercase;
    }
    .admin-table td[data-label="Usuario"]{
        grid-column:1/-1;
        padding-top:0!important;
        padding-bottom:10px!important;
        border-bottom:1px solid var(--line)!important;
        margin-bottom:3px;
    }
    .admin-table td[data-label="Seguridad"]{
        grid-column:1/-1;
        padding-bottom:0!important;
        border-top:1px solid var(--line)!important;
        margin-top:3px;
        padding-top:10px!important;
    }
    .admin-table td strong{
        min-width:0;
        font-size:12px;
        overflow-wrap:anywhere;
    }
    .admin-table td small{
        min-width:0;
        font-size:9px;
        overflow-wrap:anywhere;
    }
    .admin-table .tag{
        width:max-content;
        max-width:100%;
        font-size:8px!important;
    }
    .user-security-cell{
        min-width:0;
    }

    /* Patients: everything remains inside its card. */
    .admin-patient-list{
        width:100%!important;
    }
    .admin-patient-card{
        width:100%!important;
        max-width:100%!important;
        padding:12px!important;
        border-radius:15px!important;
    }
    .admin-patient-main{
        width:100%!important;
        min-width:0!important;
    }
    .admin-patient-main>div:last-child{
        min-width:0;
    }
    .admin-patient-main strong,
    .admin-patient-main span{
        overflow-wrap:anywhere;
    }

    .admin-caregiver-team{
        margin-top:12px;
    }
    .admin-caregiver-row{
        width:100%!important;
        grid-template-columns:1fr!important;
        gap:10px!important;
        padding:11px!important;
    }
    .admin-caregiver-controls{
        width:100%!important;
        grid-template-columns:1fr!important;
        gap:8px!important;
    }
    .admin-caregiver-settings{
        width:100%!important;
        grid-template-columns:1fr auto!important;
        gap:8px!important;
    }
    .caregiver-relation-field{
        grid-column:1/-1!important;
        display:grid!important;
        grid-template-columns:56px minmax(0,1fr)!important;
        gap:7px!important;
    }
    .caregiver-save-slot{
        min-width:0!important;
        max-width:none!important;
        justify-content:flex-end!important;
    }
    .caregiver-save-action{
        max-width:100%;
        white-space:normal!important;
    }
    .caregiver-remove-form{
        max-width:none!important;
        justify-content:flex-end!important;
    }
    .caregiver-remove-action{
        padding:5px 0!important;
    }

    .caregiver-add-form{
        width:100%!important;
        grid-template-columns:1fr!important;
        gap:8px!important;
        padding:11px!important;
    }
    .caregiver-add-heading{
        grid-column:auto!important;
    }
    .caregiver-add-form select,
    .caregiver-add-form input,
    .caregiver-add-form .caregiver-alert-toggle,
    .caregiver-add-form .caregiver-associate-action{
        width:100%!important;
        max-width:100%!important;
    }
    .caregiver-add-form .caregiver-alert-toggle{
        justify-content:flex-start!important;
    }

    .theme-toggle{
        right:8px!important;
        bottom:8px!important;
        max-width:calc(100vw - 16px);
    }
}

@media(max-width:390px){
    .admin-shell{
        padding-left:10px!important;
        padding-right:10px!important;
    }
    .admin-metrics article{
        padding:10px!important;
    }
    .admin-metrics small{
        font-size:9px!important;
    }
    .admin-panel{
        padding:12px!important;
    }
    .admin-table tr{
        grid-template-columns:1fr!important;
    }
    .admin-table td,
    .admin-table td[data-label="Seguridad"]{
        grid-column:1!important;
    }
}


/* R1-R39 · Admin PHONE layout: no desktop縮 reducido */
@media(max-width:560px){
    html{
        width:100%!important;
        max-width:100%!important;
        overflow-x:hidden!important;
    }
    body{
        width:100%!important;
        max-width:100%!important;
        margin:0!important;
        padding:0!important;
        overflow-x:hidden!important;
    }

    body > .admin-header{
        position:sticky!important;
        left:0!important;
        right:0!important;
        top:0!important;
        width:100vw!important;
        max-width:100vw!important;
        min-width:0!important;
        margin:0!important;
        padding:0 14px!important;
        transform:none!important;
    }

    body > .admin-shell{
        position:relative!important;
        left:0!important;
        right:auto!important;
        width:100vw!important;
        max-width:100vw!important;
        min-width:0!important;
        margin:0!important;
        padding:18px 14px 70px!important;
        transform:none!important;
        overflow:visible!important;
    }

    .admin-header .app-brand{
        flex:1 1 auto!important;
        min-width:0!important;
        overflow:hidden!important;
    }
    .admin-header .app-brand > span:nth-child(2){
        font-size:17px!important;
    }
    .admin-header .admin-label{
        flex:0 0 auto!important;
    }

    /* Hero becomes an app-screen heading, not a marketing hero. */
    .admin-hero{
        display:block!important;
        width:100%!important;
        margin:0 0 16px!important;
        padding:3px 1px 0!important;
    }
    .admin-hero h1{
        margin:5px 0 5px!important;
        font-size:30px!important;
        line-height:1.04!important;
        letter-spacing:-.035em!important;
    }
    .admin-hero p{
        width:100%!important;
        max-width:34ch!important;
        margin:0!important;
        font-size:12px!important;
        line-height:1.4!important;
        color:var(--ink-soft)!important;
    }
    .admin-hero .kicker{
        font-size:8px!important;
        letter-spacing:.12em!important;
    }

    /* Metrics are phone rows: readable, tap-sized, no tiny desktop cards. */
    .admin-metrics{
        display:grid!important;
        grid-template-columns:1fr!important;
        width:100%!important;
        gap:7px!important;
        margin:0 0 14px!important;
    }
    .admin-metrics article,
    .admin-metrics article:last-child:nth-child(odd){
        grid-column:auto!important;
        width:100%!important;
        min-height:58px!important;
        padding:9px 11px!important;
        display:grid!important;
        grid-template-columns:34px 42px minmax(0,1fr)!important;
        align-items:center!important;
        gap:9px!important;
        border-radius:13px!important;
    }
    .admin-metric-icon{
        grid-row:auto!important;
        width:34px!important;
        height:34px!important;
        font-size:15px!important;
        border-radius:10px!important;
    }
    .admin-metrics strong{
        font-size:20px!important;
        line-height:1!important;
        justify-self:start!important;
    }
    .admin-metrics small{
        align-self:center!important;
        min-width:0!important;
        font-size:11px!important;
        line-height:1.2!important;
        overflow-wrap:normal!important;
    }

    .admin-grid{
        width:100%!important;
        max-width:100%!important;
        gap:12px!important;
    }

    .admin-panel{
        width:100%!important;
        max-width:100%!important;
        margin:0!important;
        padding:12px!important;
        border-radius:16px!important;
    }
    .admin-panel-head{
        width:100%!important;
        display:grid!important;
        grid-template-columns:minmax(0,1fr) auto!important;
        align-items:center!important;
        gap:8px!important;
        margin:0 0 11px!important;
    }
    .admin-panel-head h2{
        margin:3px 0 0!important;
        font-size:21px!important;
    }
    .admin-panel-head .button{
        min-height:36px!important;
        padding:8px 10px!important;
        border-radius:10px!important;
        font-size:10px!important;
        white-space:nowrap!important;
    }

    /* Every user is a real mobile card. */
    .admin-table-wrap{
        width:100%!important;
        margin:0!important;
        padding:0!important;
    }
    .admin-table{
        width:100%!important;
        margin:0!important;
    }
    .admin-table tr{
        display:block!important;
        width:100%!important;
        max-width:100%!important;
        margin:0 0 8px!important;
        padding:11px!important;
        border-radius:13px!important;
        overflow:hidden!important;
    }
    .admin-table td,
    .admin-table td:first-child,
    .admin-table td[data-label="Usuario"],
    .admin-table td[data-label="Seguridad"]{
        display:grid!important;
        grid-column:auto!important;
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        margin:0!important;
        padding:7px 0!important;
        border:0!important;
    }
    .admin-table td + td{
        border-top:1px solid color-mix(in srgb,var(--line) 65%,transparent)!important;
    }
    .admin-table td::before{
        margin-bottom:2px!important;
        font-size:7.5px!important;
    }
    .admin-table td strong{
        font-size:12px!important;
    }
    .admin-table td small{
        font-size:9px!important;
        overflow-wrap:anywhere!important;
    }
    .user-security-cell{
        display:flex!important;
        flex-wrap:wrap!important;
        align-items:center!important;
        justify-content:space-between!important;
        gap:7px!important;
        width:100%!important;
    }
    .security-state{
        max-width:100%!important;
    }

    /* Patient card becomes one vertical sheet. */
    .admin-patient-card{
        width:100%!important;
        max-width:100%!important;
        margin:0!important;
        padding:11px!important;
        overflow:hidden!important;
    }
    .admin-patient-main{
        gap:9px!important;
        padding:0 0 10px!important;
    }
    .admin-patient-main .person-avatar.small{
        width:40px!important;
        height:40px!important;
        flex:0 0 40px!important;
        border-radius:13px!important;
    }
    .admin-patient-main strong{
        font-size:13px!important;
    }
    .admin-patient-main span{
        font-size:9px!important;
    }

    .admin-caregiver-team{
        width:100%!important;
        max-width:100%!important;
        margin:0!important;
        border-radius:13px!important;
    }
    .admin-caregiver-row{
        display:block!important;
        width:100%!important;
        max-width:100%!important;
        padding:10px!important;
    }
    .admin-caregiver-identity{
        width:100%!important;
        margin-bottom:9px!important;
    }
    .admin-caregiver-controls{
        display:block!important;
        width:100%!important;
    }
    .admin-caregiver-settings{
        display:grid!important;
        grid-template-columns:1fr auto!important;
        width:100%!important;
        gap:7px!important;
    }
    .caregiver-relation-field{
        display:grid!important;
        grid-template-columns:52px minmax(0,1fr)!important;
        grid-column:1/-1!important;
        width:100%!important;
    }
    .caregiver-relation-field input{
        height:36px!important;
        border:1px solid var(--line)!important;
        background:color-mix(in srgb,var(--paper) 75%,var(--canvas))!important;
    }
    .caregiver-alert-toggle{
        justify-self:start!important;
    }
    .caregiver-save-slot{
        justify-self:end!important;
    }
    .caregiver-remove-form{
        width:100%!important;
        margin-top:5px!important;
        justify-content:flex-end!important;
    }

    .caregiver-add-form{
        display:grid!important;
        grid-template-columns:1fr!important;
        width:100%!important;
        gap:7px!important;
        margin-top:9px!important;
        padding:10px!important;
    }
    .caregiver-add-heading{
        margin-bottom:1px!important;
    }
    .caregiver-add-form select,
    .caregiver-add-form input{
        width:100%!important;
        height:38px!important;
    }
    .caregiver-add-form .caregiver-alert-toggle{
        width:auto!important;
        justify-self:start!important;
    }
    .caregiver-add-form .caregiver-associate-action{
        width:100%!important;
        height:38px!important;
    }

    /* Dialogs must also behave like mobile sheets. */
    .hilva-dialog.admin-dialog{
        width:calc(100vw - 24px)!important;
        max-width:calc(100vw - 24px)!important;
        max-height:calc(100vh - 32px)!important;
        margin:auto!important;
        padding:18px!important;
        border-radius:18px!important;
    }
    .admin-user-form{
        grid-template-columns:1fr!important;
        gap:10px!important;
    }
    .admin-user-form .full{
        grid-column:auto!important;
    }

    /* Theme control should not mask admin content on small phones. */
    .theme-toggle{
        right:10px!important;
        bottom:10px!important;
        padding:8px 10px!important;
        border-radius:12px!important;
    }
    .theme-toggle-label{
        font-size:10px!important;
    }
}

@media(max-width:380px){
    body > .admin-header{
        padding-inline:10px!important;
    }
    body > .admin-shell{
        padding-left:10px!important;
        padding-right:10px!important;
    }
    .admin-header .app-brand > span:nth-child(2){
        font-size:16px!important;
    }
    .admin-hero h1{
        font-size:28px!important;
    }
    .admin-panel-head h2{
        font-size:20px!important;
    }
}


/* R1-R40 · Mobile admin is its own interface, not a scaled desktop dashboard */
.admin-mobile-dashboard{
    display:none;
}

@media(max-width:700px){
    .admin-desktop-dashboard{
        display:none!important;
    }

    .admin-mobile-dashboard{
        display:block!important;
        width:100%;
        max-width:100%;
    }

    .admin-shell{
        padding:18px 14px 72px!important;
    }

    .mobile-admin-intro{
        margin:0 0 16px;
        padding:2px 1px 0;
    }
    .mobile-admin-intro h1{
        margin:5px 0 4px;
        font-size:30px;
        line-height:1;
        letter-spacing:-.04em;
    }
    .mobile-admin-intro p{
        margin:0;
        color:var(--ink-soft);
        font-size:13px;
        line-height:1.4;
    }

    .mobile-admin-summary{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:9px;
        margin-bottom:16px;
    }
    .mobile-admin-summary article{
        min-width:0;
        min-height:78px;
        display:flex;
        align-items:center;
        gap:10px;
        padding:12px;
        border:1px solid var(--line);
        border-radius:16px;
        background:var(--paper);
        box-shadow:var(--shadow-soft);
    }
    .mobile-admin-summary article.wide{
        grid-column:1/-1;
        min-height:64px;
    }
    .mobile-admin-summary-icon{
        width:38px;
        height:38px;
        flex:0 0 38px;
        display:grid;
        place-items:center;
        border-radius:12px;
        background:var(--brand-soft);
        font-size:17px;
    }
    .mobile-admin-summary article>div{
        min-width:0;
        display:grid;
        gap:2px;
    }
    .mobile-admin-summary strong{
        font-size:24px;
        line-height:1;
    }
    .mobile-admin-summary small{
        color:var(--ink-soft);
        font-size:11px;
        font-weight:800;
        line-height:1.15;
    }

    .mobile-admin-tabs{
        position:sticky;
        top:72px;
        z-index:15;
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:4px;
        margin:0 0 14px;
        padding:4px;
        border:1px solid var(--line);
        border-radius:15px;
        background:color-mix(in srgb,var(--paper) 94%,transparent);
        backdrop-filter:blur(14px);
        -webkit-backdrop-filter:blur(14px);
    }
    .mobile-admin-tab{
        min-width:0;
        min-height:42px;
        display:flex;
        align-items:center;
        justify-content:center;
        gap:7px;
        padding:8px 10px;
        border:0;
        border-radius:11px;
        background:transparent;
        color:var(--ink-soft);
        font-size:12px;
        font-weight:900;
        cursor:pointer;
    }
    .mobile-admin-tab span{
        min-width:20px;
        height:20px;
        display:grid;
        place-items:center;
        padding:0 5px;
        border-radius:999px;
        background:var(--canvas);
        font-size:9px;
    }
    .mobile-admin-tab.is-active{
        background:var(--brand-soft);
        color:var(--brand);
    }

    .mobile-admin-section[hidden]{
        display:none!important;
    }
    .mobile-admin-section{
        min-width:0;
    }
    .mobile-admin-section-head{
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:10px;
        margin:0 0 10px;
    }
    .mobile-admin-section-head h2{
        margin:3px 0 0;
        font-size:22px;
        line-height:1.08;
    }
    .mobile-admin-section-head .button{
        min-height:38px;
        padding:8px 11px!important;
        border-radius:11px!important;
        font-size:11px!important;
        white-space:nowrap;
    }

    .mobile-user-list,
    .mobile-patient-list{
        display:grid;
        gap:10px;
    }

    .mobile-user-card,
    .mobile-patient-card{
        width:100%;
        min-width:0;
        padding:14px;
        border:1px solid var(--line);
        border-radius:17px;
        background:var(--paper);
        box-shadow:var(--shadow-soft);
    }

    .mobile-user-card>header{
        display:flex;
        align-items:flex-start;
        justify-content:space-between;
        gap:10px;
        padding-bottom:11px;
        border-bottom:1px solid var(--line);
    }
    .mobile-user-card>header>div{
        min-width:0;
        display:grid;
        gap:3px;
    }
    .mobile-user-card>header strong{
        font-size:14px;
        line-height:1.15;
    }
    .mobile-user-card>header small{
        min-width:0;
        color:var(--ink-soft);
        font-size:10px;
        overflow-wrap:anywhere;
    }
    .mobile-user-card .tag{
        flex:0 0 auto;
        font-size:8px!important;
    }

    .mobile-user-facts{
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:8px;
        padding:11px 0;
    }
    .mobile-user-facts>div{
        min-width:0;
        display:grid;
        gap:3px;
        padding:9px 10px;
        border-radius:12px;
        background:var(--canvas);
    }
    .mobile-user-facts span{
        color:var(--ink-soft);
        font-size:8px;
        font-weight:900;
        letter-spacing:.06em;
        text-transform:uppercase;
    }
    .mobile-user-facts strong{
        min-width:0;
        font-size:12px;
        overflow-wrap:anywhere;
    }

    .mobile-user-card>footer{
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:10px;
        padding-top:10px;
        border-top:1px solid var(--line);
    }
    .mobile-card-action{
        padding:7px 0;
        border:0;
        background:transparent;
        color:var(--brand);
        font-size:11px;
        font-weight:900;
        text-decoration:none;
        cursor:pointer;
    }

    .mobile-patient-head{
        display:flex;
        align-items:center;
        gap:10px;
        padding-bottom:12px;
        border-bottom:1px solid var(--line);
    }
    .mobile-patient-head>div:last-child{
        min-width:0;
        display:grid;
        gap:3px;
    }
    .mobile-patient-head strong{
        font-size:15px;
    }
    .mobile-patient-head small{
        color:var(--ink-soft);
        font-size:10px;
    }

    .mobile-caregiver-list{
        display:grid;
        gap:8px;
        margin-top:12px;
    }
    .mobile-caregiver-card{
        min-width:0;
        padding:11px;
        border:1px solid var(--line);
        border-radius:14px;
        background:var(--canvas);
    }
    .mobile-caregiver-card>header{
        display:flex;
        align-items:center;
        gap:9px;
        margin-bottom:10px;
    }
    .mobile-caregiver-card>header>div{
        min-width:0;
        display:grid;
        gap:2px;
    }
    .mobile-caregiver-card>header strong{
        font-size:12px;
    }
    .mobile-caregiver-card>header small{
        min-width:0;
        color:var(--ink-soft);
        font-size:9px;
        overflow-wrap:anywhere;
    }

    .mobile-caregiver-settings{
        display:grid;
        gap:9px;
    }
    .mobile-caregiver-settings>label:first-child{
        display:grid;
        gap:5px;
    }
    .mobile-caregiver-settings>label:first-child>span{
        color:var(--ink-soft);
        font-size:8px;
        font-weight:900;
        letter-spacing:.06em;
        text-transform:uppercase;
    }
    .mobile-caregiver-settings input[type="text"],
    .mobile-caregiver-settings input:not([type]){
        width:100%;
        height:40px;
        min-width:0;
        margin:0;
        padding:8px 10px;
        border:1px solid var(--line);
        border-radius:11px;
        background:var(--paper);
    }
    .mobile-caregiver-actions{
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:10px;
    }
    .mobile-caregiver-actions .caregiver-alert-toggle{
        height:36px!important;
    }
    .mobile-caregiver-actions .caregiver-save-action{
        min-height:36px!important;
        padding:0 12px!important;
    }
    .mobile-caregiver-remove{
        display:flex;
        justify-content:flex-end;
        margin-top:7px;
        padding-top:7px;
        border-top:1px solid var(--line);
    }
    .mobile-caregiver-remove button{
        padding:5px 0;
        border:0;
        background:transparent;
        color:var(--danger);
        font-size:10px;
        font-weight:850;
        cursor:pointer;
    }

    .mobile-caregiver-add{
        margin-top:10px;
        border:1px dashed var(--line);
        border-radius:14px;
        overflow:hidden;
    }
    .mobile-caregiver-add summary{
        min-height:46px;
        display:flex;
        align-items:center;
        padding:10px 12px;
        color:var(--brand);
        font-size:11px;
        font-weight:900;
        cursor:pointer;
        list-style:none;
    }
    .mobile-caregiver-add summary::-webkit-details-marker{
        display:none;
    }
    .mobile-caregiver-add summary::before{
        content:"+";
        width:24px;
        height:24px;
        display:grid;
        place-items:center;
        margin-right:8px;
        border-radius:8px;
        background:var(--brand-soft);
        font-size:15px;
    }
    .mobile-caregiver-add[open] summary{
        border-bottom:1px solid var(--line);
    }
    .mobile-caregiver-add-form{
        display:grid;
        gap:10px;
        padding:12px;
    }
    .mobile-caregiver-add-form>label:not(.caregiver-alert-toggle){
        display:grid;
        gap:5px;
    }
    .mobile-caregiver-add-form>label:not(.caregiver-alert-toggle)>span{
        color:var(--ink-soft);
        font-size:8px;
        font-weight:900;
        text-transform:uppercase;
        letter-spacing:.06em;
    }
    .mobile-caregiver-add-form select,
    .mobile-caregiver-add-form input{
        width:100%;
        min-width:0;
        height:40px;
        margin:0;
    }
    .mobile-caregiver-add-form .button{
        width:100%;
        min-height:42px;
    }

    .mobile-empty-copy{
        margin:0;
        color:var(--ink-soft);
        font-size:11px;
    }

    /* Desktop-specific mobile overrides from R38/R39 are neutralized because
       the desktop markup is hidden entirely at this breakpoint. */
    .admin-desktop-dashboard .admin-table,
    .admin-desktop-dashboard .admin-grid,
    .admin-desktop-dashboard .admin-metrics{
        display:none!important;
    }
}

@media(min-width:701px){
    .admin-desktop-dashboard{
        display:block!important;
    }
    .admin-mobile-dashboard{
        display:none!important;
    }
}

@media(max-width:390px){
    .mobile-admin-summary{
        gap:7px;
    }
    .mobile-admin-summary article{
        min-height:72px;
        padding:10px;
    }
    .mobile-admin-summary-icon{
        width:34px;
        height:34px;
        flex-basis:34px;
    }
    .mobile-admin-summary strong{
        font-size:21px;
    }
    .mobile-admin-summary small{
        font-size:10px;
    }
    .mobile-user-facts{
        grid-template-columns:1fr;
    }
}


/* R1-R41 · Cuidador móvil: menú agrupado en el icono Hilva, como paciente */
.caregiver-header{
    position:sticky;
    top:0;
    z-index:32;
}
.caregiver-header-start{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
}
.caregiver-options{
    position:relative;
    display:none;
    min-width:0;
}
.caregiver-brand-link{
    min-width:0;
}
.caregiver-brand-link span{
    display:inline-flex;
    align-items:center;
}
.caregiver-menu-trigger{
    position:relative;
    display:grid;
    place-items:center;
    width:46px;
    height:46px;
    padding:0;
    border:0;
    border-radius:15px;
    background:transparent;
    cursor:pointer;
    -webkit-tap-highlight-color:transparent;
    transition:transform .14s ease, box-shadow .14s ease;
}
.caregiver-menu-trigger:hover{
    transform:translateY(-1px);
}
.caregiver-menu-trigger:focus-visible{
    outline:3px solid color-mix(in srgb,var(--brand) 35%,transparent);
    outline-offset:3px;
}
.caregiver-menu-trigger .hilva-mark{
    width:42px;
    height:42px;
    font-size:25px;
    box-shadow:0 8px 20px rgba(37,148,132,.14);
}
.caregiver-menu-trigger[aria-expanded="true"] .patient-menu-dots{
    background:var(--brand-soft);
    border-color:color-mix(in srgb,var(--brand) 42%,var(--line));
}
.caregiver-menu-trigger[aria-expanded="true"] .patient-menu-dots i{
    background:var(--brand);
}
.caregiver-options-menu{
    position:absolute;
    top:calc(100% + 12px);
    left:0;
    width:min(340px,calc(100vw - 28px));
    padding:15px;
    border:1px solid var(--line);
    border-radius:20px;
    background:color-mix(in srgb,var(--paper) 96%,transparent);
    box-shadow:0 22px 60px rgba(13,28,38,.24);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
    z-index:100;
}
.caregiver-options-menu[hidden]{
    display:none!important;
}
.caregiver-options-menu::before{
    content:"";
    position:absolute;
    top:-7px;
    left:16px;
    width:14px;
    height:14px;
    background:inherit;
    border-left:1px solid var(--line);
    border-top:1px solid var(--line);
    transform:rotate(45deg);
}
.caregiver-options-menu-head{
    margin-bottom:10px;
}
.caregiver-options-list{
    display:grid;
    gap:6px;
}
.caregiver-options-list a,
.caregiver-options-list .nav-button{
    width:100%;
    min-height:42px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:11px 12px;
    border:1px solid var(--line);
    border-radius:12px;
    background:var(--paper);
    color:var(--ink);
    font-size:14px;
    font-weight:800;
    text-decoration:none;
}
.caregiver-options-list .nav-button{
    cursor:pointer;
}
.caregiver-options-list form{
    display:block;
    width:100%;
}
.caregiver-options-list a:hover,
.caregiver-options-list .nav-button:hover{
    border-color:color-mix(in srgb,var(--brand) 36%,var(--line));
    background:var(--brand-soft);
    color:var(--brand);
}
html[data-theme="dark"] .caregiver-options-menu{
    background:rgba(16,28,38,.97);
    border-color:#2a3f4e;
    box-shadow:0 24px 70px rgba(0,0,0,.44);
}

@media(max-width:720px){
    .caregiver-header{
        min-height:66px;
        padding:0 14px!important;
        gap:10px;
    }
    .caregiver-header .caregiver-header-start{
        flex:1 1 auto;
        min-width:0;
    }
    .caregiver-header .caregiver-options{
        display:block;
        flex:0 0 auto;
    }
    .caregiver-header .caregiver-desktop-nav{
        display:none!important;
    }
    .caregiver-header .caregiver-brand-link{
        gap:0;
        font-size:18px;
    }
    .caregiver-header .caregiver-brand-link .hilva-mark{
        display:none;
    }
}

@media(min-width:721px){
    .caregiver-header .caregiver-options{
        display:none!important;
    }
    .caregiver-header .caregiver-desktop-nav{
        display:flex!important;
    }
}

.caregiver-brand-mark{display:inline-grid;}
@media(max-width:720px){
    .caregiver-header .caregiver-brand-mark{display:none!important;}
}

@media(max-width:780px){
  .memory-proof{padding:18px 20px;gap:14px}
  .memory-check{flex-basis:56px;height:56px;border-radius:18px}
  .memory-check svg{width:32px;height:32px}
  .calm-orbit svg{width:68px;height:68px}
  .theme-toggle{bottom:12px!important}
  main.kiosk-page,
  main.app-shell{padding-bottom:92px!important}
}

@media(max-width:780px){
  .shell{padding-bottom:30px}
}

/* R1-R46 · Edición segura de horarios */
.schedule-edit-card{max-width:900px}
.schedule-edit-list{gap:10px}
.schedule-edit-row{grid-template-columns:58px minmax(150px,.7fr) minmax(150px,1fr) minmax(110px,.55fr)}
.schedule-edit-fixed{display:grid;gap:5px;align-content:center;min-height:46px;padding:8px 12px;border-radius:12px;background:var(--canvas)}
.schedule-edit-fixed small{color:var(--ink-soft);font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}
.schedule-edit-fixed strong{font-size:13px}
.schedule-history-note{display:flex;align-items:flex-start;gap:10px;margin-top:16px;padding:13px 15px;border:1px solid color-mix(in srgb,var(--success) 22%,var(--line));border-radius:14px;background:var(--success-soft)}
.schedule-history-note>span{display:grid;place-items:center;flex:0 0 26px;height:26px;border-radius:9px;background:var(--success);color:white;font-weight:900}
.schedule-history-note p{margin:2px 0 0;color:var(--ink-soft);font-size:12px;line-height:1.45}
@media(max-width:720px){
  .schedule-edit-row{grid-template-columns:48px minmax(0,1fr)!important}
  .schedule-edit-row>label{grid-column:2}
  .schedule-edit-fixed{grid-column:2;min-height:0}
}


/* R1-R47 · Optional commercial module: AI prescription reader */
.patient-hero-actions{align-self:center;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.prescription-scan-action{border:1px solid color-mix(in srgb,var(--brand) 48%,var(--line));background:var(--brand-soft);color:var(--brand);font-weight:900}
.prescription-ai-mini,.prescription-ai-icon{display:inline-grid;place-items:center;background:linear-gradient(145deg,var(--brand),#73d5c3);color:#fff;font-weight:950;letter-spacing:-.04em;box-shadow:0 8px 22px rgba(43,158,139,.18)}
.prescription-ai-mini{width:25px;height:25px;border-radius:8px;font-size:9px}
.prescription-ai-icon{width:70px;height:70px;border-radius:22px;font-size:22px}
.prescription-hero{align-items:center}
.prescription-safety-note{margin:0 0 18px;padding:16px 18px;border:1px solid color-mix(in srgb,var(--brand) 35%,var(--line));border-radius:16px;background:var(--brand-soft)}
.prescription-safety-note strong{display:block;margin-bottom:4px;color:var(--brand);font-size:13px}.prescription-safety-note p{margin:0;color:var(--ink-soft);font-size:12px;line-height:1.45}
.prescription-config-warning{border-color:color-mix(in srgb,var(--warning) 45%,var(--line))!important}
.prescription-dropzone{position:relative;min-height:270px;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px;border:2px dashed color-mix(in srgb,var(--brand) 40%,var(--line));border-radius:20px;background:color-mix(in srgb,var(--brand-soft) 42%,var(--paper));text-align:center;cursor:pointer;overflow:hidden}
.prescription-dropzone input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.prescription-dropzone strong{font-size:18px}.prescription-dropzone small{color:var(--ink-soft)}.prescription-camera{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:var(--paper);color:var(--brand);font-size:28px;border:1px solid var(--line)}
.prescription-dropzone img{position:relative;z-index:1;max-width:100%;max-height:420px;margin-top:8px;border-radius:14px;object-fit:contain;box-shadow:var(--shadow)}
.prescription-review-shell{max-width:1320px}.prescription-review-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.prescription-review-head h1{font-size:clamp(34px,5vw,52px);line-height:1.02;margin:5px 0 8px}.prescription-review-head p{max-width:720px;margin:0;color:var(--ink-soft)}.prescription-confidence{padding:8px 11px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:10px;font-weight:900;white-space:nowrap}
.prescription-warning-list{margin-bottom:18px;padding:15px 18px;border-radius:16px;border:1px solid color-mix(in srgb,var(--warning) 45%,var(--line));background:color-mix(in srgb,var(--warning) 9%,var(--paper))}.prescription-warning-list strong{display:block;margin-bottom:7px}.prescription-warning-list ul{margin:0;padding-left:18px;color:var(--ink-soft);font-size:12px;line-height:1.5}
.prescription-review-layout{display:grid;grid-template-columns:minmax(270px,.68fr) minmax(0,1.55fr);gap:18px;align-items:start}.prescription-source-panel{position:sticky;top:92px;padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--paper)}.prescription-source-panel img{display:block;width:100%;max-height:70vh;object-fit:contain;margin:8px 0 10px;border-radius:12px;background:var(--canvas)}.prescription-source-panel small{display:block;color:var(--ink-soft);font-size:9px;line-height:1.4}
.prescription-review-form{min-width:0}.prescription-event-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,.72fr);gap:18px;align-items:center;margin-bottom:14px;padding:17px;border:1px solid color-mix(in srgb,var(--brand) 35%,var(--line));border-radius:18px;background:var(--brand-soft)}.prescription-event-card h2{margin:4px 0 5px;font-size:19px}.prescription-event-card p{margin:0;color:var(--ink-soft);font-size:11px}.prescription-event-card label{display:grid;gap:5px}.prescription-event-card input{height:42px}
.prescription-medication-review-list{display:grid;gap:12px}.prescription-medication-review{padding:17px;border:1px solid var(--line);border-radius:19px;background:var(--paper);box-shadow:var(--shadow-soft)}.prescription-medication-review>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding-bottom:11px;border-bottom:1px solid var(--line)}.prescription-medication-review>header>div{display:flex;align-items:center;gap:8px}.prescription-medication-review>header strong{color:var(--ink-soft);font-size:9px}.prescription-include{display:flex!important;align-items:center;gap:7px;font-size:12px;font-weight:900}.prescription-include input{width:18px;height:18px}
.prescription-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.prescription-fields label{display:grid;gap:5px}.prescription-fields .wide{grid-column:1/-1}.prescription-fields input,.prescription-fields textarea{width:100%;min-width:0}.prescription-fields textarea{min-height:72px}
.prescription-schedule-review{display:grid;gap:8px;margin-top:15px;padding-top:13px;border-top:1px solid var(--line)}.prescription-schedule-row{display:grid;grid-template-columns:minmax(120px,.65fr) minmax(150px,1fr) minmax(120px,.65fr);gap:8px;align-items:end;padding:10px;border-radius:14px;background:var(--canvas)}.prescription-schedule-row label{display:grid;gap:4px}.prescription-schedule-row .source-fragment{grid-column:1/-1;color:var(--ink-soft);font-size:9px;font-style:italic;line-height:1.35}.relative-time-chip{min-height:42px;display:grid;align-content:center;padding:7px 10px;border:1px solid color-mix(in srgb,var(--brand) 28%,var(--line));border-radius:11px;background:var(--brand-soft)}.relative-time-chip strong{color:var(--brand);font-size:13px}.relative-time-chip span{font-size:9px;color:var(--ink-soft)}
.prescription-final-check{margin-top:14px;padding:14px 16px;border-radius:15px;background:var(--success-soft);border:1px solid color-mix(in srgb,var(--success) 28%,var(--line))}.prescription-final-check strong{display:block;margin-bottom:4px;color:var(--success)}.prescription-final-check p{margin:0;color:var(--ink-soft);font-size:11px;line-height:1.45}
html[data-theme="dark"] .prescription-dropzone,html[data-theme="dark"] .prescription-medication-review,html[data-theme="dark"] .prescription-source-panel{background:#13212b}html[data-theme="dark"] .prescription-schedule-row{background:#0f1b24}
@media(max-width:900px){.prescription-review-layout{grid-template-columns:1fr}.prescription-source-panel{position:static}.prescription-source-panel img{max-height:440px}.prescription-event-card{grid-template-columns:1fr}.patient-hero-actions{grid-column:1/-1;justify-self:start}}
@media(max-width:620px){.patient-hero-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.patient-hero-actions .button{width:100%;justify-content:center}.prescription-review-head{display:grid}.prescription-confidence{justify-self:start}.prescription-fields{grid-template-columns:1fr}.prescription-fields .wide{grid-column:auto}.prescription-schedule-row{grid-template-columns:1fr}.prescription-schedule-row .source-fragment{grid-column:auto}.prescription-dropzone{min-height:220px}.prescription-ai-icon{width:58px;height:58px;border-radius:18px;font-size:18px}}


/* R1-R51 · Prescription Scan accepts camera, gallery images and PDF files */
.prescription-source-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}
.prescription-source-action{position:relative;min-width:0;min-height:112px;display:flex!important;align-items:center;gap:14px;padding:18px;border:1px solid color-mix(in srgb,var(--brand) 34%,var(--line));border-radius:17px;background:color-mix(in srgb,var(--brand-soft) 28%,var(--paper));cursor:pointer;transition:border-color .16s ease,background .16s ease,transform .16s ease;overflow:hidden}
.prescription-source-action:hover{border-color:color-mix(in srgb,var(--brand) 65%,var(--line));background:color-mix(in srgb,var(--brand-soft) 65%,var(--paper));transform:translateY(-1px)}
.prescription-source-action input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.prescription-source-action>span:last-child{min-width:0;display:grid;gap:3px}.prescription-source-action strong{font-size:14px}.prescription-source-action small{color:var(--ink-soft);font-size:10px}
.prescription-source-icon{display:grid;place-items:center;width:48px;height:48px;flex:0 0 48px;border-radius:15px;background:var(--paper);border:1px solid var(--line);color:var(--brand);font-size:23px;font-weight:900}
.prescription-selected-file{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:15px;background:var(--canvas)}
.prescription-selected-preview{width:62px;height:62px;display:grid;place-items:center;border-radius:12px;background:var(--paper);border:1px solid var(--line);overflow:hidden}
.prescription-selected-preview img{width:100%;height:100%;object-fit:cover}.prescription-selected-file>div:nth-child(2){min-width:0;display:grid;gap:3px}.prescription-selected-file strong{min-width:0;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prescription-selected-file small{color:var(--ink-soft);font-size:9px}
.prescription-pdf-badge{display:grid;place-items:center;min-width:44px;height:44px;padding:0 7px;border-radius:11px;background:color-mix(in srgb,var(--danger) 13%,var(--paper));color:var(--danger);font-size:12px;font-weight:950;letter-spacing:.05em}
.prescription-clear-file{width:34px;height:34px;display:grid;place-items:center;padding:0;border:0;border-radius:10px;background:transparent;color:var(--ink-soft);font-size:22px;cursor:pointer}.prescription-clear-file:hover{background:var(--paper);color:var(--danger)}
.prescription-file-help{margin:10px 2px 0;color:var(--ink-soft);font-size:10px;line-height:1.4}
.prescription-original-pdf{display:grid;justify-items:start;gap:8px;margin:10px 0 12px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--canvas)}.prescription-original-pdf strong{font-size:13px}.prescription-original-pdf small{font-size:9px}.prescription-original-pdf .prescription-pdf-badge{width:52px;height:52px}
.prescription-pdf-frame{display:block;width:100%;height:58vh;min-height:420px;margin:0 0 10px;border:1px solid var(--line);border-radius:12px;background:var(--canvas)}
@media(max-width:720px){.prescription-source-actions{grid-template-columns:1fr}.prescription-source-action{min-height:92px;padding:14px}.prescription-pdf-frame{height:52vh;min-height:360px}.prescription-review-layout{grid-template-columns:1fr}.prescription-source-panel{position:relative;top:auto}}


/* R1-R52 · AI Usage Ledger */
.ai-usage-shell{max-width:1240px;margin:0 auto;padding:44px 28px 80px}
.ai-usage-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:18px}
.ai-usage-hero h1{margin:7px 0 8px;font-size:clamp(34px,5vw,56px);letter-spacing:-.045em;line-height:1}
.ai-usage-hero p{max-width:720px;margin:0;color:var(--ink-soft);line-height:1.5}
.ai-usage-filter{display:flex;align-items:flex-end;gap:8px;flex:0 0 auto}
.ai-usage-filter label{display:grid;gap:5px;color:var(--ink-soft);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.ai-usage-filter input{min-height:40px;margin:0}
.ai-usage-filter .button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}
.ai-usage-note{margin-bottom:16px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--paper);color:var(--ink-soft);font-size:12px;line-height:1.45}
.ai-usage-note strong{color:var(--ink)}
.ai-usage-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.ai-usage-metrics article{display:grid;gap:5px;min-width:0;padding:17px;border:1px solid var(--line);border-radius:17px;background:var(--paper)}
.ai-usage-metrics article>span{color:var(--ink-soft);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}
.ai-usage-metrics strong{font-size:25px;line-height:1.05}
.ai-usage-metrics small{color:var(--ink-soft);font-size:10px}
.ai-usage-metrics .cost{border-color:color-mix(in srgb,var(--brand) 38%,var(--line));background:color-mix(in srgb,var(--brand-soft) 45%,var(--paper))}
.ai-usage-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.ai-usage-panel{padding:18px!important}
.ai-usage-breakdown-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.ai-usage-breakdown-row:first-of-type{border-top:0}
.ai-usage-breakdown-row>div{min-width:0;display:grid;gap:3px}
.ai-usage-breakdown-row>div:last-child{text-align:right}
.ai-usage-breakdown-row strong{font-size:12px;overflow-wrap:anywhere}
.ai-usage-breakdown-row small,.ai-usage-breakdown-row span{color:var(--ink-soft);font-size:9px}
.ai-usage-empty{color:var(--ink-soft);font-size:12px}
.ai-usage-recent{padding:18px!important}
.ai-usage-count{color:var(--ink-soft);font-size:9px;font-weight:800}
.ai-usage-table-wrap{overflow-x:auto}
.ai-usage-table{width:100%;border-collapse:collapse;font-size:11px}
.ai-usage-table th{padding:9px 8px;border-bottom:1px solid var(--line);color:var(--ink-soft);font-size:8px;text-align:left;text-transform:uppercase;letter-spacing:.07em}
.ai-usage-table td{padding:11px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.ai-usage-table td strong,.ai-usage-table td small{display:block}
.ai-usage-table td small{margin-top:3px;color:var(--ink-soft);font-size:9px}
.ai-ledger-status{display:inline-flex;padding:4px 7px;border-radius:999px;background:var(--canvas);color:var(--ink-soft);font-size:8px;font-weight:900;text-transform:uppercase}
.ai-ledger-status.completed{background:var(--success-soft);color:var(--success)}
.ai-ledger-status.parse_failed{background:var(--danger-soft);color:var(--danger)}

@media(max-width:900px){
  .ai-usage-shell{padding:28px 16px 70px}
  .ai-usage-hero{align-items:stretch;flex-direction:column}
  .ai-usage-filter{width:100%;display:grid;grid-template-columns:1fr 1fr}
  .ai-usage-filter label{grid-column:1/-1}
  .ai-usage-metrics{grid-template-columns:1fr 1fr}
  .ai-usage-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  .ai-usage-shell{padding:22px 12px 70px}
  .ai-usage-hero h1{font-size:34px}
  .ai-usage-metrics{grid-template-columns:1fr}
  .ai-usage-metrics article{padding:14px}
  .ai-usage-table,.ai-usage-table tbody{display:block;width:100%}
  .ai-usage-table thead{display:none}
  .ai-usage-table tr{display:block;margin-bottom:9px;padding:11px;border:1px solid var(--line);border-radius:14px;background:var(--canvas)}
  .ai-usage-table td{display:grid;grid-template-columns:100px minmax(0,1fr);gap:9px;width:100%;padding:7px 0;border:0}
  .ai-usage-table td::before{content:attr(data-label);color:var(--ink-soft);font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
  .ai-usage-table td[colspan]{display:block}
  .ai-usage-table td[colspan]::before{display:none}
}

/* R1-R54 · Hilva Familia administration */
.family-shell{max-width:1280px}
.family-hero,.family-detail-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}
.family-hero h1,.family-detail-hero h1{margin:5px 0 8px;font-size:clamp(34px,5vw,52px);line-height:1.02;letter-spacing:-.04em}
.family-hero p{max-width:720px;margin:0;color:var(--ink-soft)}
.family-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}
.family-overview-card{display:grid;gap:16px;padding:20px;border:1px solid var(--line);border-radius:22px;background:var(--paper);box-shadow:var(--shadow-soft);color:var(--ink);text-decoration:none;transition:.16s ease}
.family-overview-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--brand) 35%,var(--line));box-shadow:var(--shadow)}
.family-overview-top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center}
.family-overview-top h2{margin:3px 0 3px;font-size:20px}.family-overview-top small{color:var(--ink-soft)}
.family-avatar,.family-person-avatar{display:grid;place-items:center;flex:0 0 auto;border:1px solid color-mix(in srgb,var(--brand) 25%,var(--line));background:var(--brand-soft);color:var(--brand);font-weight:950}
.family-avatar{width:48px;height:48px;border-radius:16px;font-size:20px}.family-avatar.large{width:72px;height:72px;border-radius:22px;font-size:28px}
.family-person-avatar{width:42px;height:42px;border-radius:14px;font-size:16px}
.family-admin-chip{display:inline-flex;align-items:center;justify-content:center;width:max-content;padding:5px 8px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:9px;font-weight:900;white-space:nowrap}
.family-overview-metrics{display:grid;grid-template-columns:1fr 1fr;gap:9px}.family-overview-metrics>div{display:grid;gap:2px;padding:12px;border-radius:14px;background:var(--canvas)}.family-overview-metrics strong{font-size:21px}.family-overview-metrics span{color:var(--ink-soft);font-size:10px}
.family-overview-footer{display:flex;justify-content:space-between;gap:12px;align-items:center;padding-top:12px;border-top:1px solid var(--line);font-size:10px;color:var(--ink-soft)}.family-overview-footer strong{color:var(--brand)}
.family-locked-panel .empty-icon{font-weight:950;color:var(--brand)}
.family-foundation-note{margin-top:18px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--brand) 28%,var(--line));border-radius:15px;background:var(--brand-soft)}.family-foundation-note strong{display:block;color:var(--brand);font-size:12px}.family-foundation-note p{margin:5px 0 0;color:var(--ink-soft);font-size:11px;line-height:1.45}
.family-detail-identity{flex:1;min-width:0}.family-identity-meta{display:flex;gap:9px;align-items:center;flex-wrap:wrap;color:var(--ink-soft);font-size:11px}.family-identity-meta>span:not(.family-admin-chip){padding:6px 9px;border:1px solid var(--line);border-radius:999px;background:var(--paper)}
.family-role-banner{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;padding:16px;border:1px solid var(--line);border-radius:20px;background:var(--paper);box-shadow:var(--shadow-soft)}.family-role-banner>div{display:grid;gap:3px;padding:4px 7px}.family-role-banner>div+div{border-left:1px solid var(--line);padding-left:20px}.family-role-banner strong{font-size:15px}.family-role-banner small{color:var(--ink-soft);font-size:9px}
.family-detail-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.7fr);gap:16px;align-items:start}.family-main-column,.family-side-column{display:grid;gap:16px}
.family-panel{padding:20px;border:1px solid var(--line);border-radius:22px;background:var(--paper);box-shadow:var(--shadow-soft)}.family-panel h2{margin:4px 0 5px;font-size:21px}.family-panel>p,.family-panel-head p{margin:0;color:var(--ink-soft);font-size:11px;line-height:1.45}
.family-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:15px}
.family-inline-form{display:grid;gap:9px;align-items:end;margin:0 0 8px;padding:12px;border-radius:16px;background:var(--canvas)}.family-member-add{grid-template-columns:minmax(180px,1.2fr) minmax(130px,.7fr) auto}.family-patient-add{grid-template-columns:minmax(0,1fr) auto}.family-inline-form label,.family-stack-form label{display:grid;gap:5px;font-size:11px;font-weight:850}.family-inline-form input,.family-inline-form select,.family-stack-form input,.family-stack-form select,.family-relationship-form input{width:100%;min-width:0;height:42px;padding:0 11px;border:1px solid var(--line);border-radius:11px;background:var(--paper);color:var(--ink);font:inherit}.family-form-help{margin:7px 0 13px!important;color:var(--ink-soft);font-size:10px!important;line-height:1.45}
.family-member-list,.family-patient-list{display:grid}.family-member-row,.family-patient-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:center;padding:13px 2px;border-top:1px solid var(--line)}.family-member-row:first-child,.family-patient-row:first-child{border-top:0}.family-person-copy{min-width:0;display:grid;gap:3px}.family-person-copy>small{color:var(--ink-soft);font-size:10px;overflow-wrap:anywhere}.family-person-copy>span{color:var(--ink-soft);font-size:10px}.family-person-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.family-person-title strong,.family-person-copy>strong{font-size:13px}
.family-member-actions,.family-patient-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.family-relationship-form{display:flex;align-items:center;gap:6px}.family-relationship-form input{width:120px;height:36px;font-size:10px}.family-access-note{color:var(--warning)!important;font-weight:800}.family-empty-inline{display:grid;gap:4px;padding:18px 4px;color:var(--ink-soft)}.family-empty-inline strong{color:var(--ink);font-size:13px}.family-empty-inline span{font-size:10px}
.family-stack-form{display:grid;gap:11px;margin-top:13px}.family-confirm-check{display:grid!important;grid-template-columns:auto 1fr;align-items:start;gap:8px!important;padding:9px;border-radius:11px;background:var(--canvas);font-weight:700!important}.family-confirm-check input{width:17px;height:17px;margin-top:1px}.family-confirm-check span{font-size:10px;line-height:1.35;color:var(--ink-soft)}
.family-transfer-panel{border-color:color-mix(in srgb,var(--brand) 24%,var(--line))}.family-transfer-panel p{margin:5px 0 0;color:var(--ink-soft);font-size:10px;line-height:1.5}
.family-event-list{display:grid;margin-top:12px}.family-event-row{display:grid;grid-template-columns:12px minmax(0,1fr);gap:9px;padding:9px 0;border-top:1px solid var(--line)}.family-event-row:first-child{border-top:0}.family-event-dot{width:8px;height:8px;margin-top:4px;border-radius:50%;background:var(--brand)}.family-event-row div{display:grid;gap:2px}.family-event-row strong{font-size:11px}.family-event-row small{color:var(--ink-soft);font-size:9px}
.family-side-icon{font-size:20px;font-weight:950}
html[data-theme="dark"] .family-overview-card,html[data-theme="dark"] .family-panel,html[data-theme="dark"] .family-role-banner{background:var(--paper)}
@media(max-width:900px){.family-detail-grid{grid-template-columns:1fr}.family-side-column{grid-template-columns:1fr 1fr}.family-history-panel{grid-column:1/-1}}
@media(max-width:720px){.family-shell{padding-left:14px;padding-right:14px}.family-hero,.family-detail-hero{align-items:flex-start;flex-direction:column}.family-detail-hero>.button{align-self:flex-start}.family-avatar.large{width:58px;height:58px;border-radius:18px}.family-role-banner{grid-template-columns:1fr}.family-role-banner>div+div{border-left:0;border-top:1px solid var(--line);padding:12px 7px 4px}.family-member-add,.family-patient-add{grid-template-columns:1fr}.family-inline-form .button{width:100%}.family-member-row,.family-patient-row{grid-template-columns:auto minmax(0,1fr)}.family-member-actions,.family-patient-actions{grid-column:2;justify-content:flex-start}.family-relationship-form{width:100%}.family-relationship-form input{flex:1}.family-side-column{grid-template-columns:1fr}.family-history-panel{grid-column:auto}}
@media(max-width:480px){.family-card-grid{grid-template-columns:1fr}.family-overview-top{grid-template-columns:auto minmax(0,1fr)}.family-overview-top>.family-admin-chip{grid-column:2}.family-overview-footer{align-items:flex-start;flex-direction:column}.family-member-actions,.family-patient-actions{display:grid;grid-template-columns:1fr;width:100%}.family-member-actions form,.family-member-actions .button,.family-patient-actions form,.family-patient-actions .button{width:100%}.family-relationship-form{display:grid;grid-template-columns:1fr auto}.family-relationship-form .button{width:auto}}

/* R1-R55 · Caregiver manual reminders */
.manual-reminder-panel{margin:0 0 24px;padding:20px;border:1px solid color-mix(in srgb,var(--brand) 28%,var(--line));border-radius:22px;background:var(--paper);box-shadow:var(--shadow-soft)}
.manual-reminder-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:13px}.manual-reminder-head h2{margin:4px 0 4px;font-size:23px}.manual-reminder-head p{margin:0;max-width:680px;color:var(--ink-soft);font-size:12px}
.manual-reminder-list{display:grid}.manual-reminder-row{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:14px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.manual-reminder-row:first-child{border-top:0}
.manual-reminder-time{font-size:18px;font-weight:900;color:var(--brand)}.manual-reminder-copy{display:grid;gap:2px;min-width:0}.manual-reminder-copy strong{font-size:14px}.manual-reminder-copy span,.manual-reminder-copy small{color:var(--ink-soft);font-size:10px}.manual-reminder-copy small{margin-top:3px}.manual-reminder-form{margin:0}
@media(max-width:720px){.manual-reminder-panel{padding:16px}.manual-reminder-row{grid-template-columns:48px minmax(0,1fr)}.manual-reminder-form{grid-column:2}.manual-reminder-form .button{width:100%}.manual-reminder-head h2{font-size:21px}}

/* R1-R55 · Desktop architecture hardening. Mobile rules remain untouched. */
@media(min-width:901px){
    .app-header{padding-left:max(32px,calc((100vw - 1320px)/2));padding-right:max(32px,calc((100vw - 1320px)/2))}
    .app-shell{max-width:1320px;padding:48px 32px 88px}
    .dashboard-hero{margin-top:4px;margin-bottom:36px;padding:0}
    .patient-grid.premium{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
    .patient-overview-card{padding:26px}
    .patient-hero{grid-template-columns:88px minmax(0,1fr) auto;gap:24px;padding:12px 0 34px}
    .patient-hero .person-avatar{width:82px;height:82px}
    .patient-hero-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
    .care-layout{grid-template-columns:minmax(0,1fr) 360px;gap:30px;align-items:start}
    .care-main{min-width:0}.care-side{display:grid;gap:18px;position:sticky;top:96px;align-self:start}
    .medication-card{padding:24px}.section-title{margin-bottom:17px}
    .form-shell{max-width:1040px}.form-card{padding:28px}
    .family-shell{max-width:1320px}
    .family-detail-hero{display:grid;grid-template-columns:76px minmax(0,1fr) auto;align-items:center;gap:22px;margin-bottom:24px}
    .family-detail-hero .family-avatar.large{width:76px;height:76px}
    .family-role-banner{grid-template-columns:1fr 1fr;padding:20px 22px;margin-bottom:22px}.family-role-banner strong{font-size:16px}.family-role-banner small{font-size:10px}
    .family-detail-grid{grid-template-columns:minmax(0,2fr) minmax(340px,.8fr);gap:24px}
    .family-main-column,.family-side-column{gap:20px}.family-panel{padding:24px}.family-panel h2{font-size:24px}.family-panel>p,.family-panel-head p{font-size:12px}
    .family-member-add{grid-template-columns:minmax(260px,1.35fr) minmax(180px,.8fr) auto}.family-inline-form{padding:16px;gap:12px}.family-inline-form label,.family-stack-form label{font-size:12px}
    .family-member-row,.family-patient-row{padding:16px 4px;gap:14px}.family-person-copy>small,.family-person-copy>span{font-size:11px}.family-person-title strong,.family-person-copy>strong{font-size:14px}.family-relationship-form input{width:160px}
    .family-side-column{position:sticky;top:96px}.family-history-panel{max-height:440px;overflow:auto}
    .family-card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.family-overview-card{padding:24px}
    .family-create-shell{max-width:900px}
}
@media(min-width:901px) and (max-width:1160px){.patient-grid.premium{grid-template-columns:1fr}.care-layout{grid-template-columns:minmax(0,1fr) 320px}.family-detail-grid{grid-template-columns:minmax(0,1.55fr) 320px}.family-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
