/* ==========================================================================
   Fiori-oriented shell and component language
   ========================================================================== */
/* Fiori-inspired React presentation layer */
:root{
  --sap-shell:#354a5f;
  --sap-shell-hover:#2f4357;
  --sap-blue:#0a6ed1;
  --sap-blue-hover:#0854a0;
  --sap-bg:#f5f6f7;
  --sap-surface:#fff;
  --sap-surface-alt:#f7f7f7;
  --sap-border:#d9d9d9;
  --sap-text:#32363a;
  --sap-muted:#6a6d70;
  --sap-positive:#107e3e;
  --sap-critical:#e9730c;
  --sap-negative:#bb0000;
  --sap-info:#0a6ed1;
  --sap-radius:4px;
  --sap-shadow:0 1px 3px rgba(34,54,73,.18);
  --sap-focus:0 0 0 2px #fff,0 0 0 4px var(--sap-blue);
  --bg:var(--sap-bg);--surface:var(--sap-surface);--surface-2:var(--sap-surface-alt);
  --text:var(--sap-text);--muted:var(--sap-muted);--line:var(--sap-border);
  --primary:var(--sap-blue);--primary-2:#5899da;--danger:var(--sap-negative);
  --warning:var(--sap-critical);--shadow:var(--sap-shadow);
  --lw-color-bg:var(--sap-bg);--lw-color-surface:var(--sap-surface);
  --lw-color-surface-subtle:var(--sap-surface-alt);--lw-color-text:var(--sap-text);
  --lw-color-text-muted:var(--sap-muted);--lw-color-border:var(--sap-border);
  --lw-color-primary:var(--sap-blue);--lw-color-primary-hover:var(--sap-blue-hover);
  --lw-radius-xs:2px;--lw-radius-sm:4px;--lw-radius-md:4px;--lw-radius-lg:6px;--lw-radius-xl:8px;
  --lw-shadow-sm:var(--sap-shadow);--lw-shadow-md:0 2px 8px rgba(34,54,73,.15);
  font-family:"72","Segoe UI",Arial,Helvetica,sans-serif;
}
:root[data-theme=dark]{
  --sap-shell:#223548;--sap-shell-hover:#1b2a38;--sap-blue:#91c8f6;--sap-blue-hover:#b8dcfa;
  --sap-bg:#1d232a;--sap-surface:#29313a;--sap-surface-alt:#232a32;--sap-border:#4b5662;
  --sap-text:#f5f6f7;--sap-muted:#b7c0c8;--sap-positive:#5dc88a;--sap-critical:#f4a460;--sap-negative:#ff8888;
  --bg:var(--sap-bg);--surface:var(--sap-surface);--surface-2:var(--sap-surface-alt);--text:var(--sap-text);
  --muted:var(--sap-muted);--line:var(--sap-border);--primary:var(--sap-blue);--primary-2:#74b3e7;
  --lw-color-bg:var(--sap-bg);--lw-color-surface:var(--sap-surface);--lw-color-surface-subtle:var(--sap-surface-alt);
  --lw-color-text:var(--sap-text);--lw-color-text-muted:var(--sap-muted);--lw-color-border:var(--sap-border);
  --lw-color-primary:var(--sap-blue);--lw-color-primary-hover:var(--sap-blue-hover);
}
html,body,#root{background:var(--sap-bg);color:var(--sap-text)}
body{font-family:"72","Segoe UI",Arial,Helvetica,sans-serif}
.shell{grid-template-columns:252px minmax(0,1fr);grid-template-rows:48px minmax(0,1fr);min-height:100vh}
.app-header{height:48px;min-height:48px;padding:0 12px;grid-template-columns:252px minmax(240px,520px) 1fr;gap:12px;background:var(--sap-shell);border:0;color:#fff;box-shadow:0 1px 4px rgba(0,0,0,.28);backdrop-filter:none}
.brand{color:#fff;gap:8px}.brand-mark,.boot-mark{width:32px;height:32px;border-radius:2px;background:#fff;color:var(--sap-shell);box-shadow:none;font-size:11px}.brand strong{font-size:16px;font-weight:600}.brand small{color:#d8e3ec;font-size:11px}.brand:hover{background:rgba(255,255,255,.08)}
.global-search{height:34px;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.12);border-radius:3px;color:#fff;padding:0 11px}.global-search:hover{background:rgba(255,255,255,.2)}.global-search kbd{background:rgba(0,0,0,.2);border-color:rgba(255,255,255,.25);color:#fff}
.header-actions{gap:2px}.app-header .btn{min-height:34px;height:34px;padding:0 10px;border-radius:3px;background:transparent;border-color:transparent;color:#fff;font-weight:500}.app-header .btn:hover{background:rgba(255,255,255,.14);transform:none}.app-header .btn.primary{background:#fff;color:var(--sap-blue);border-color:#fff}.app-header .btn.primary:hover{background:#eaf4fb}.app-header .btn.icon{width:34px;padding:0}
.report-popover{top:40px;border-radius:4px;border-color:var(--sap-border);box-shadow:0 4px 16px rgba(0,0,0,.22)}
.sidebar{padding:0;border-right:1px solid var(--sap-border);background:var(--sap-surface)}.sidebar-fixed{padding:10px 8px 8px;border-bottom:1px solid var(--sap-border);background:var(--sap-surface)}
.sidebar:before{content:"Navigation";display:block;padding:12px 14px 5px;color:var(--sap-muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.home-nav{width:100%;min-height:38px;padding:7px 10px;border-radius:2px;color:var(--sap-text);font-weight:400}.home-nav strong{font-weight:500}.home-nav:hover{background:#eaecee}.home-nav.active{background:#ebf5fe;color:var(--sap-blue);border-left:3px solid var(--sap-blue);padding-left:7px}
:root[data-theme=dark] .home-nav:hover{background:#34414d}:root[data-theme=dark] .home-nav.active{background:#1c3b57}
.sidebar-search{margin:10px 0 7px;border-radius:3px;background:var(--sap-surface);border:1px solid var(--sap-border)}.sidebar select{border-radius:3px;min-height:34px;padding:6px 8px}
.param-list{padding:8px;gap:0;background:var(--sap-surface)}.param-group{border-bottom:1px solid #eee;padding-bottom:3px;margin-bottom:3px}.param-group-header{min-height:32px;padding:5px 7px;border-radius:2px}.param-group-header:hover{background:#f0f2f3}.param-group-header strong{font-size:12px;color:var(--sap-muted);font-weight:700}.param-group-items{display:grid;gap:0}.param-list button{border-radius:2px;padding:6px 8px;grid-template-columns:26px 1fr;gap:7px;min-height:36px}.param-list button:hover{background:#f0f2f3}.param-list button.active{background:#e5f2fc;color:var(--sap-blue);box-shadow:inset 3px 0 0 var(--sap-blue)}.avatar{width:24px;height:24px;border-radius:50%;font-size:11px;background:#eaf3fb;color:var(--sap-blue)}
:root[data-theme=dark] .param-group{border-color:#3d4853}:root[data-theme=dark] .param-group-header:hover,:root[data-theme=dark] .param-list button:hover{background:#34414d}:root[data-theme=dark] .param-list button.active{background:#1c3b57}
.sidebar footer{padding:8px;border-top:1px solid var(--sap-border)}
.content{padding:0 24px 40px;max-width:none}.content>div,.content>.hero-stack{max-width:1480px;margin:0 auto}
.hero-stack>.hero,.detail-header,.medications-page>.detail-header{margin-left:-24px;margin-right:-24px;padding:22px 32px 18px;background:var(--sap-surface);border-bottom:1px solid var(--sap-border)}
.hero{border-radius:0;box-shadow:none;border:0;background:var(--sap-surface);color:var(--sap-text);display:flex;justify-content:space-between;align-items:center}.hero:before,.hero:after{display:none}.hero h1,.detail-header h1{font-size:26px;font-weight:400;letter-spacing:0;margin:4px 0 6px}.hero p,.detail-header p{color:var(--sap-muted);margin:0}.eyebrow{color:var(--sap-muted);font-size:11px;letter-spacing:.06em}.score{border:0;background:#edf7ed;color:var(--sap-positive);border-radius:4px;min-width:130px}.score strong{color:var(--sap-positive)}
.kpi-grid{margin-top:16px;gap:12px}.kpi-grid article{border:1px solid var(--sap-border);border-radius:4px;box-shadow:none;padding:16px 18px;background:var(--sap-surface)}.kpi-grid article strong{font-size:25px;font-weight:400}.kpi-grid article.attention{border-left:4px solid var(--sap-critical)}
.panel{border:1px solid var(--sap-border);border-radius:4px;box-shadow:none;margin-top:16px;background:var(--sap-surface)}.panel>header{border-bottom:1px solid var(--sap-border);padding-bottom:12px}.panel h2{font-weight:400;font-size:20px}.panel h3{font-weight:500}.dashboard-grid{gap:16px}
.btn{border-radius:3px;min-height:36px;padding:0 12px;font-weight:500;box-shadow:none}.btn:hover{transform:none}.btn.primary{background:var(--sap-blue);border:1px solid var(--sap-blue);color:#fff;box-shadow:none}.btn.primary:hover{background:var(--sap-blue-hover)}.btn.ghost{background:var(--sap-surface);border:1px solid var(--sap-border);color:var(--sap-blue)}.btn.ghost:hover{background:#edf6fc;border-color:#a5cbe8}.btn.icon{border-radius:3px}
.detail-header{position:sticky;top:48px;z-index:12;display:flex;align-items:flex-end}.detail-actions{align-self:center}.chart-card{border-radius:4px}.latest{background:var(--sap-surface-alt);border:1px solid var(--sap-border);border-radius:3px}.latest strong{font-weight:400}.chart-medication-toolbar{background:var(--sap-surface-alt);border-radius:3px;border:1px solid var(--sap-border)}
.status{border-radius:2px;padding:3px 7px;font-weight:600}.status.ok{background:#edf7ed;color:var(--sap-positive)}.status.warn{background:#fff3e8;color:var(--sap-critical)}.status.neutral{background:#eef1f3;color:var(--sap-muted)}
.measurement-table{border:1px solid var(--sap-border);border-radius:3px;overflow:hidden}.table-head{background:#f2f3f4;color:var(--sap-muted);font-size:12px}.table-row{border-top:1px solid var(--sap-border);min-height:42px}.table-row:hover{background:#f5faff}
.medication-card{border:1px solid var(--sap-border);border-radius:4px;box-shadow:none}.medication-card-head{border-bottom:1px solid var(--sap-border)}
.modal-backdrop{background:rgba(0,0,0,.45);backdrop-filter:none}.modal-card{border-radius:4px;border:1px solid #89919a;box-shadow:0 8px 32px rgba(0,0,0,.34)}.modal-card>header{background:#f7f7f7;border-bottom:1px solid var(--sap-border);padding:12px 16px}.modal-card>header h2{font-size:18px;font-weight:400}.form-grid label{color:var(--sap-text);font-weight:500}.form-grid input,.form-grid select,.form-grid textarea,.modal-search{border-radius:3px;border-color:#89919a;min-height:36px}.form-actions{border-top:1px solid var(--sap-border);padding-top:12px}
.file-drop{border:1px dashed #89919a;border-radius:3px;background:#fafafa}.file-drop:hover{border-color:var(--sap-blue);background:#f0f8ff}
.toast{border-radius:3px;background:#32363a;color:#fff;box-shadow:0 4px 16px rgba(0,0,0,.28)}
.mobile-nav{background:var(--sap-surface);border-top:1px solid var(--sap-border);box-shadow:0 -1px 4px rgba(0,0,0,.12)}.mobile-nav button.active{color:var(--sap-blue)}
/* Login */
body:has(.auth-shell){background:var(--sap-bg)}.auth-shell{background:linear-gradient(90deg,var(--sap-shell) 0 38%,var(--sap-bg) 38%)}.auth-card{border-radius:4px;box-shadow:0 4px 20px rgba(0,0,0,.22);border:1px solid var(--sap-border)}.auth-brand-mark{border-radius:2px;background:var(--sap-blue)}.auth-submit{border-radius:3px;background:var(--sap-blue)}
/* Admin */
.admin-shell-react{max-width:none}.admin-topbar{background:var(--sap-shell);color:#fff;border-radius:0;padding:0 20px;min-height:48px}.admin-brand small,.admin-brand p{color:#d8e3ec}.admin-nav{border-radius:0;border:1px solid var(--sap-border);box-shadow:none;background:var(--sap-surface)}.admin-nav button{border-radius:2px}.admin-nav button.active{background:#e5f2fc;color:var(--sap-blue);box-shadow:inset 0 -3px 0 var(--sap-blue)}.admin-card-react,.tenant-card{border-radius:4px;box-shadow:none}.admin-table-react{border:1px solid var(--sap-border);border-radius:3px}.admin-table-react th{background:#f2f3f4}
/* Report */
.report-shell{background:var(--sap-bg)}.report-topbar{background:var(--sap-shell);color:#fff}.report-card,.report-section{border-radius:4px;box-shadow:none}.report-section h2{font-weight:400;border-bottom:1px solid var(--sap-border)}
@media(max-width:1100px){.app-header{grid-template-columns:220px minmax(180px,1fr) auto}.shell{grid-template-columns:220px minmax(0,1fr)}.header-actions .btn:not(.icon):not(.primary){font-size:0;padding:0 8px}.header-actions .btn:not(.icon):not(.primary)::first-letter{font-size:14px}}
@media(max-width:760px){.shell{display:block}.app-header{display:flex;height:48px;padding:0 8px}.brand small{display:none}.global-search{flex:1;min-width:0}.global-search kbd{display:none}.content{padding:0 12px 82px}.hero-stack>.hero,.detail-header,.medications-page>.detail-header{margin-left:-12px;margin-right:-12px;padding:16px}.detail-header{top:48px}.hero{align-items:flex-start}.hero h1,.detail-header h1{font-size:22px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar{top:48px;bottom:58px;border-right:1px solid var(--sap-border);box-shadow:4px 0 12px rgba(0,0,0,.2)}.modal-card{border-radius:4px 4px 0 0}.panel{margin-top:12px}.app-header .btn.primary{display:none}}
@media(max-width:430px){.kpi-grid{grid-template-columns:1fr 1fr}.kpi-grid article{padding:12px}.score{min-width:100px}.header-actions{gap:0}.app-header .header-actions .btn.ghost{display:none}}

/* ==========================================================================
   Enterprise UX structure
   ========================================================================== */
/* Fiori-oriented enterprise UX layer */
:root{
  --ux-shell:#0a2b49;--ux-shell-2:#123e63;--ux-blue:#0a6ed1;--ux-blue-hover:#0854a0;
  --ux-bg:#f5f6f7;--ux-surface:#fff;--ux-surface-2:#f7f8f9;--ux-border:#d5dadd;
  --ux-text:#1d2d3e;--ux-muted:#5b738b;--ux-positive:#107e3e;--ux-critical:#e9730c;--ux-negative:#bb0000;
  --ux-shadow:0 1px 2px rgba(34,54,73,.08),0 3px 10px rgba(34,54,73,.05);
  --ux-focus:0 0 0 2px #fff,0 0 0 4px rgba(10,110,209,.5);
}
:root[data-theme=dark]{--ux-bg:#1d2329;--ux-surface:#252d34;--ux-surface-2:#303941;--ux-border:#46525d;--ux-text:#eef2f5;--ux-muted:#b7c3cc;--ux-shadow:none}
*{scrollbar-width:thin;scrollbar-color:#a8b3bd transparent}
body{background:var(--ux-bg)!important;color:var(--ux-text)!important}
/* Shell */
.shell{grid-template-columns:268px minmax(0,1fr)!important;grid-template-rows:52px minmax(0,1fr)!important;height:100vh;min-height:0!important;overflow:hidden}
.app-header{height:52px!important;min-height:52px!important;grid-template-columns:268px minmax(280px,620px) 1fr!important;background:linear-gradient(90deg,var(--ux-shell),var(--ux-shell-2))!important;padding:0 14px!important;box-shadow:0 1px 5px rgba(0,0,0,.26)!important}
.brand{height:40px!important;border-radius:4px!important;padding:0 8px!important}.brand-mark{width:30px!important;height:30px!important;border-radius:4px!important;background:#fff!important;color:var(--ux-shell)!important}.brand strong{font-size:15px!important}.brand small{font-size:10px!important;opacity:.85}
.global-search{height:36px!important;border-radius:5px!important;background:rgba(255,255,255,.12)!important}.global-search:hover{background:rgba(255,255,255,.2)!important}
.header-actions{justify-content:flex-end}.app-header .btn{height:36px!important;min-height:36px!important;border-radius:4px!important}.app-header .btn.primary{background:#fff!important;color:var(--ux-blue)!important}
/* Side navigation */
.sidebar{top:auto!important;height:auto!important;min-height:0;overflow:hidden!important;background:var(--ux-surface)!important;display:grid!important;grid-template-rows:auto minmax(0,1fr) auto;border-right:1px solid var(--ux-border)!important;padding:0!important}
.sidebar:before{display:none!important}.sidebar-fixed{padding:10px 8px 8px!important;background:var(--ux-surface)!important;border-bottom:1px solid var(--ux-border)!important;overflow:visible!important}
.module-nav{display:grid;gap:2px;margin-bottom:10px}.nav-section-label{padding:9px 10px 4px;color:var(--ux-muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em}.module-nav .home-nav{display:grid!important;grid-template-columns:28px 1fr auto!important;align-items:center;text-align:left;min-height:38px!important;margin:0;border:0!important;border-radius:4px!important;padding:6px 8px!important;background:transparent}.module-nav .home-nav:hover{background:#eef4f8!important}.module-nav .home-nav.active{background:#eaf3fc!important;color:var(--ux-blue)!important;box-shadow:inset 3px 0 0 var(--ux-blue)!important}.module-nav .home-nav .nav-icon{display:grid;place-items:center;font-size:16px;color:var(--ux-muted)}.module-nav .home-nav.active .nav-icon{color:var(--ux-blue)}.module-nav .home-nav strong{font-size:13px;font-weight:500!important}.nav-badge{font-size:10px;min-width:20px;padding:2px 6px;border-radius:10px;background:#edf0f2;color:var(--ux-muted);text-align:center}
.nav-divider{height:1px;background:var(--ux-border);margin:8px 0}.parameter-nav-title{display:flex;align-items:center;justify-content:space-between;padding:7px 4px 5px}.parameter-nav-title strong{font-size:12px;font-weight:600}.parameter-nav-title button{border:0;background:transparent;color:var(--ux-blue);font-size:12px;cursor:pointer}
.sidebar-search{margin:4px 0 7px!important;height:34px!important}.sidebar select{height:34px!important;min-height:34px!important}
.param-list{overflow-y:auto!important;overscroll-behavior:contain;padding:6px 8px 14px!important}.param-group{margin:0!important;padding:0!important;border-bottom:1px solid color-mix(in srgb,var(--ux-border) 75%,transparent)!important}.param-group-header{min-height:34px!important;padding:5px 6px!important}.param-group-header strong{font-size:11.5px!important}.param-list button{min-height:36px!important;border-radius:3px!important}.param-list button.active{background:#eaf3fc!important;box-shadow:inset 3px 0 0 var(--ux-blue)!important;color:var(--ux-blue)!important}.sidebar footer{padding:8px!important;background:var(--ux-surface);border-top:1px solid var(--ux-border)}
/* Workspace */
.content{height:100%;overflow-y:auto;overscroll-behavior:contain;padding:0 28px 48px!important;background:var(--ux-bg)!important}.content>div,.content>.hero-stack{max-width:1540px!important}.page-title,.detail-header,.hero-stack>.hero,.medications-page>.detail-header{margin-left:-28px!important;margin-right:-28px!important;padding:19px 32px 17px!important;background:var(--ux-surface)!important;border-bottom:1px solid var(--ux-border)!important;box-shadow:0 1px 0 rgba(34,54,73,.03)}
.hero{min-height:138px!important}.hero h1,.detail-header h1{font-size:25px!important;font-weight:400!important;line-height:1.2}.eyebrow{font-size:10px!important;color:var(--ux-muted)!important}.hero-actions{margin-top:14px!important}.score{border:1px solid #a9d5b8!important;background:#f1faf4!important;min-width:144px!important;padding:14px 18px!important}.score strong{font-size:34px!important}
/* Fiori cards, responsive dashboard hierarchy */
.dashboard{padding-bottom:20px}.dashboard-grid{display:grid!important;grid-template-columns:repeat(12,minmax(0,1fr))!important;gap:16px!important}.dashboard-grid>.panel{grid-column:span 6}.dashboard-grid>.panel.full,.dashboard-grid>.panel.insights{grid-column:1/-1}.panel{border-radius:5px!important;border:1px solid var(--ux-border)!important;background:var(--ux-surface)!important;box-shadow:var(--ux-shadow)!important;padding:18px!important}.panel>header{min-height:42px;align-items:flex-start!important;margin-bottom:14px!important}.panel h2{font-size:18px!important;font-weight:400!important}.panel h3{font-size:15px!important}.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important}.kpi-grid article{min-height:94px!important;padding:14px 16px!important;border-radius:5px!important;box-shadow:var(--ux-shadow)!important}.kpi-grid article span{font-size:12px;color:var(--ux-muted)}.kpi-grid article strong{font-size:24px!important}.insight-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important}.insight-grid article{min-height:104px;border:1px solid var(--ux-border);border-radius:4px;padding:16px;background:var(--ux-surface-2)}
/* Object page */
.detail-header{top:52px!important;align-items:center!important;min-height:98px!important}.detail-header .eyebrow{display:block;margin-bottom:4px}.detail-actions{display:flex;gap:8px;flex-wrap:wrap}.object-tabs{position:sticky;top:150px;z-index:11;margin:0 -28px 14px;padding:0 32px;background:var(--ux-surface);border-bottom:1px solid var(--ux-border);display:flex;gap:4px;overflow-x:auto}.object-tabs button{height:40px;padding:0 14px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--ux-text);font:inherit;font-size:13px;cursor:pointer;white-space:nowrap}.object-tabs button:hover{background:var(--ux-surface-2)}.object-tabs button.active{color:var(--ux-blue);border-bottom-color:var(--ux-blue);font-weight:600}
.chart-card{display:grid!important;grid-template-columns:220px minmax(0,1fr)!important;grid-template-areas:"latest tools" "latest chart"!important;gap:12px 18px!important;padding:16px!important}.chart-card>.latest{grid-area:latest}.chart-card>.chart-medication-toolbar{grid-area:tools}.chart-card>.chart-wrap{grid-area:chart}.latest{align-self:stretch!important;display:flex!important;flex-direction:column;justify-content:center;min-height:150px!important;padding:18px!important}.latest strong{font-size:30px!important}.chart-wrap{min-width:0!important}.chart-with-axes .spark{height:500px!important;max-height:none!important}
/* Data tables */
.measurement-table,.admin-table-wrap{border:1px solid var(--ux-border)!important;border-radius:4px!important;background:var(--ux-surface);overflow:auto;max-height:560px}.table-head{position:sticky;top:0;z-index:2;background:#eef1f3!important;min-height:38px!important;border-bottom:1px solid var(--ux-border);font-weight:600}.table-row{min-height:44px!important}.table-row:nth-child(even){background:color-mix(in srgb,var(--ux-surface-2) 55%,transparent)}.table-row:hover{background:#edf6fc!important}.status{border-radius:10px!important;font-size:11px!important;padding:3px 8px!important}
/* Toolbar / filter bar */
.chart-medication-toolbar,.filter-bar{padding:8px 10px!important;background:var(--ux-surface-2)!important;border:1px solid var(--ux-border)!important;border-radius:4px!important;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.chart-medication-toolbar label{font-size:12px}.chart-medication-toolbar select{height:32px;border:1px solid var(--ux-border);border-radius:3px;background:var(--ux-surface);color:var(--ux-text)}
/* Medication object/list */
.medication-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))!important;gap:12px!important}.medication-card{border-radius:5px!important;box-shadow:var(--ux-shadow)!important}.medication-card-head{padding:15px!important}.medication-card dl{padding:12px 15px!important}.medication-timeline-panel{overflow:hidden}.timeline-entry{border-radius:4px!important}
/* Dialogs / forms */
.modal-card{border-radius:6px!important;max-height:min(88vh,860px)!important;display:flex;flex-direction:column;overflow:hidden}.modal-card>header{flex:0 0 auto;background:var(--ux-surface)!important;padding:14px 18px!important}.modal-card>header .eyebrow{display:none}.modal-card>form,.modal-card>.form-grid,.modal-card>.preview,.modal-card>.visit-list,.modal-card>.search-results,.modal-card>.ai-result{overflow:auto;padding:18px}.modal-card>.file-drop{margin:18px 18px 0}.modal-card>.import-actions{padding:12px 18px}.form-grid{gap:14px!important}.form-grid label{font-size:12px!important;font-weight:600!important}.form-grid input,.form-grid select,.form-grid textarea,.modal-search{border-radius:4px!important;min-height:38px!important}.form-actions{position:sticky;bottom:0;background:var(--ux-surface);margin-top:4px!important;padding:12px 0 0!important}.btn{border-radius:4px!important}.btn:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none!important;box-shadow:var(--ux-focus)!important}
/* Admin unification */
body:has(.admin-shell-react){background:var(--ux-bg)!important}.admin-shell-react{max-width:none!important;padding:0 28px 42px!important}.admin-topbar{margin:0 -28px 18px!important;height:52px!important;min-height:52px!important;background:linear-gradient(90deg,var(--ux-shell),var(--ux-shell-2))!important;padding:0 22px!important}.admin-brand-mark{width:30px!important;height:30px!important;border-radius:4px!important;background:#fff!important;color:var(--ux-shell)!important}.admin-brand h1{font-size:15px!important;color:#fff}.admin-brand p,.admin-brand small{font-size:10px!important}.admin-nav{position:sticky;top:0;z-index:8;margin:0 -28px 18px!important;padding:0 28px!important;height:44px;align-items:end;border:0!important;border-bottom:1px solid var(--ux-border)!important;background:var(--ux-surface)!important;overflow-x:auto}.admin-nav button{height:43px;border-bottom:3px solid transparent!important;border-radius:0!important}.admin-nav button.active{background:transparent!important;color:var(--ux-blue)!important;box-shadow:none!important;border-bottom-color:var(--ux-blue)!important}.admin-card-react,.tenant-card{border-radius:5px!important;box-shadow:var(--ux-shadow)!important}.admin-table-wrap{max-height:620px}.admin-table-react th{position:sticky;top:0;z-index:1;background:#eef1f3!important}.admin-modal{border-radius:6px!important}
/* Auth */
body:has(.auth-shell){background:var(--ux-bg)!important}.auth-shell{background:linear-gradient(90deg,var(--ux-shell) 0 34%,var(--ux-bg) 34%)!important}.auth-card{border-radius:6px!important;box-shadow:0 8px 28px rgba(0,0,0,.18)!important}.auth-brand-mark{border-radius:4px!important}.auth-submit{border-radius:4px!important}
/* Report */
.report-topbar{height:52px!important;background:linear-gradient(90deg,var(--ux-shell),var(--ux-shell-2))!important}.report-card,.report-section{border-radius:5px!important;box-shadow:var(--ux-shadow)!important}.report-table thead th{position:sticky;top:0;background:#eef1f3}.report-section h2{font-size:18px!important}
/* Dark */
:root[data-theme=dark] .module-nav .home-nav:hover,:root[data-theme=dark] .param-group-header:hover{background:#34414d!important}:root[data-theme=dark] .module-nav .home-nav.active,:root[data-theme=dark] .param-list button.active{background:#1b425f!important}:root[data-theme=dark] .score{background:#173d29!important;border-color:#2b6944!important}:root[data-theme=dark] .table-head,:root[data-theme=dark] .admin-table-react th,:root[data-theme=dark] .report-table thead th{background:#303941!important}
@media(max-width:1100px){.shell{grid-template-columns:230px minmax(0,1fr)!important}.app-header{grid-template-columns:230px minmax(220px,1fr) auto!important}.dashboard-grid>.panel{grid-column:1/-1}.insight-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}.chart-card{grid-template-columns:180px minmax(0,1fr)!important}}
@media(max-width:760px){.shell{display:block!important;height:auto;overflow:visible}.app-header{position:sticky;top:0;z-index:40;height:52px!important}.content{height:auto;overflow:visible;padding:0 12px 82px!important}.page-title,.detail-header,.hero-stack>.hero,.medications-page>.detail-header{margin-left:-12px!important;margin-right:-12px!important;padding:15px 16px!important}.detail-header{top:52px!important}.object-tabs{top:132px;margin:0 -12px 12px;padding:0 12px}.sidebar{position:fixed!important;top:52px!important;bottom:58px!important;left:0;width:min(88vw,320px);height:auto!important;z-index:35;transform:translateX(-104%);transition:transform .2s ease;box-shadow:5px 0 18px rgba(0,0,0,.24)}.sidebar.open{transform:translateX(0)}.kpi-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}.insight-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.chart-card{display:block!important}.chart-card>.latest{min-height:auto!important;margin-bottom:10px}.chart-card>.chart-medication-toolbar{margin-bottom:10px}.chart-with-axes .spark{height:390px!important}.modal-card{width:100%!important;max-width:none!important;max-height:92vh!important;border-radius:8px 8px 0 0!important;margin-top:auto}.modal-backdrop{align-items:end!important;padding:0!important}.admin-shell-react{padding:0 12px 30px!important}.admin-topbar{margin:0 -12px 12px!important;padding:0 12px!important}.admin-nav{margin:0 -12px 14px!important;padding:0 12px!important}.auth-shell{background:var(--ux-bg)!important}.medication-grid{grid-template-columns:1fr!important}}
@media(max-width:430px){.kpi-grid,.insight-grid{grid-template-columns:1fr!important}.hero{display:block!important}.score{margin-top:14px;width:100%}.chart-with-axes .spark{height:350px!important}.global-search span{font-size:12px}.object-tabs button{padding:0 10px}}
.tenant-chip,.user-chip{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 9px;border:1px solid rgba(255,255,255,.22);border-radius:4px;color:#fff;font-size:11px;white-space:nowrap}.user-chip b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#0a6ed1;color:#fff}.sidebar-context{display:grid;gap:2px;padding:2px 5px}.sidebar-context span{font-size:10px;color:var(--ux-muted);text-transform:uppercase;letter-spacing:.05em}.sidebar-context strong{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.object-content{display:grid;gap:16px}.object-section{margin-top:0!important}.ai-object{min-height:220px}.ai-object>.btn{margin-top:12px}
@media(max-width:1100px){.tenant-chip,.user-chip span{display:none}.user-chip{padding:0 4px;border:0}}
@media(max-width:760px){.tenant-chip,.user-chip{display:none}.object-content{gap:12px}}
.hero .btn.ghost{background:var(--ux-surface)!important;color:var(--ux-blue)!important;border-color:#a9c9e6!important}.hero .btn.ghost:hover{background:#edf6fc!important;color:var(--ux-blue-hover)!important}.mobile-nav{grid-template-columns:repeat(5,minmax(0,1fr))!important;height:66px!important}.mobile-nav button{min-width:0;padding:4px 2px!important;font-size:16px!important;line-height:1}.mobile-nav small{display:block!important;font-size:9.5px!important;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-nav button:last-child{grid-column:auto!important}

/* ==========================================================================
   Layout consistency and page geometry
   ========================================================================== */
/* Cross-module consistency rules */
:root{--lw-shell-h:52px;--lw-nav-w:268px;--lw-page-max:1540px;--lw-card-radius:4px;--lw-control-radius:4px}
.panel,.admin-card-react,.report-card,.report-section,.medication-card,.tenant-card,.auth-card{border-radius:var(--lw-card-radius)!important;box-shadow:var(--ux-shadow)!important;border-color:var(--ux-border)!important}
.btn,.admin-btn,.auth-submit,.admin-side-nav button,.admin-side-back{border-radius:var(--lw-control-radius)!important}
.panel>header,.admin-card-react>header{padding-bottom:10px;border-bottom:1px solid color-mix(in srgb,var(--ux-border) 80%,transparent)}
.panel h2,.admin-card-react h2,.report-section h2{font-weight:400!important;color:var(--ux-text)!important}
.sidebar-module-context{align-self:start;margin:14px 12px;padding:18px 14px;border:1px solid var(--ux-border);border-radius:4px;background:var(--ux-surface-2);display:grid;grid-template-columns:34px 1fr;gap:3px 10px;align-items:center}.sidebar-module-context .context-icon{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:4px;background:#eaf3fc;color:var(--ux-blue);font-size:17px}.sidebar-module-context strong{font-size:13px;font-weight:600}.sidebar-module-context small{font-size:11px;line-height:1.35;color:var(--ux-muted)}.parameter-context-controls{display:grid;gap:6px}.module-nav .home-nav strong{font-weight:400!important}.module-nav .home-nav.active strong{font-weight:600!important}
.hero-stack>.hero,.detail-header,.medications-page>.detail-header,.admin-page-title{background:var(--ux-surface)!important;border-bottom:1px solid var(--ux-border)!important;box-shadow:none!important}.hero-stack>.hero{padding-top:22px!important;padding-bottom:22px!important}.detail-header,.medications-page>.detail-header{padding-top:18px!important;padding-bottom:18px!important}.hero h1,.detail-header h1,.admin-page-title h1{margin:3px 0 5px!important;font-size:25px!important;font-weight:400!important;letter-spacing:-.015em}.hero p,.detail-header p,.admin-page-title p{margin:0;color:var(--ux-muted);font-size:14px}.eyebrow,.admin-eyebrow{font-size:10px!important;font-weight:700;color:#607d99!important;letter-spacing:.06em;text-transform:uppercase}.hero-actions,.detail-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.kpi-grid article,.insight-grid article{border:1px solid var(--ux-border)!important;background:var(--ux-surface)!important;border-radius:4px!important;box-shadow:none!important}.kpi-grid article.attention{border-left:3px solid var(--ux-critical)!important}.status{font-weight:600!important;border:1px solid transparent}.status.ok{border-color:#a9d5b8}.status.warn{border-color:#f3c28b}.status.neutral{border-color:var(--ux-border)}
.measurement-table,.admin-table-wrap{border-radius:4px!important;box-shadow:none!important}.table-head,.admin-table-react th,.report-table thead th{height:38px!important;font-size:11px!important;text-transform:none!important;letter-spacing:0!important;color:#425b73!important}.table-row,.admin-table-react td,.report-table td{font-size:13px}.table-row:hover,.admin-table-react tbody tr:hover,.report-table tbody tr:hover{background:#edf6fc!important}
.modal-card,.admin-modal{border-radius:6px!important}.modal-card>header,.admin-modal>header{min-height:52px;border-bottom:1px solid var(--ux-border);padding:12px 18px!important}.modal-card>header h2,.admin-modal h2{font-size:18px!important;font-weight:400!important}.form-grid input,.form-grid select,.form-grid textarea,.admin-form-react input,.admin-form-react select,.admin-inline-actions select,.modal-search{border-radius:4px!important;border-color:#8998a7!important;background:var(--ux-surface)!important;color:var(--ux-text)!important}.form-grid label,.admin-form-react label{font-weight:500!important;color:#30475e!important}.form-actions,.admin-modal-actions{border-top:1px solid var(--ux-border);padding-top:12px!important}
body:has(.admin-app-shell){overflow:hidden;background:var(--ux-bg)!important}.admin-app-shell{display:grid;grid-template-columns:var(--lw-nav-w) minmax(0,1fr);grid-template-rows:var(--lw-shell-h) minmax(0,1fr);height:100vh;overflow:hidden;background:var(--ux-bg)}.admin-topbar{grid-column:1/-1;grid-row:1;height:var(--lw-shell-h)!important;margin:0!important;padding:0 14px!important;background:linear-gradient(90deg,var(--ux-shell),var(--ux-shell-2))!important;box-shadow:0 1px 5px rgba(0,0,0,.26)!important}.admin-brand{gap:8px!important}.admin-brand-mark{width:30px!important;height:30px!important;border-radius:4px!important}.admin-brand h1{font-size:15px!important;color:#fff!important;margin:0!important}.admin-brand small{font-size:9px!important;color:#d7e7f5!important;letter-spacing:.08em!important}.admin-brand p{display:none}.admin-user-context{font-size:11px;color:#d7e7f5;white-space:nowrap}.admin-topbar .admin-btn{height:36px;min-height:36px;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.25);color:#fff}.admin-topbar .admin-btn:hover{background:rgba(255,255,255,.16)}
.admin-side-nav{grid-column:1;grid-row:2;min-height:0;display:flex;flex-direction:column;gap:2px;padding:12px 8px;background:var(--ux-surface);border-right:1px solid var(--ux-border);overflow-y:auto}.admin-nav-label{padding:8px 10px 5px;font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ux-muted)}.admin-side-nav button{display:grid;grid-template-columns:28px 1fr;align-items:center;min-height:38px;padding:6px 8px;border:0;background:transparent;color:var(--ux-text);text-align:left;font:inherit;font-size:13px;cursor:pointer}.admin-side-nav button:hover{background:#eef4f8}.admin-side-nav button.active{background:#eaf3fc;color:var(--ux-blue);box-shadow:inset 3px 0 0 var(--ux-blue)}.admin-nav-icon{display:grid;place-items:center;color:var(--ux-muted);font-size:15px}.admin-side-nav button.active .admin-nav-icon{color:var(--ux-blue)}.admin-side-spacer{flex:1}.admin-side-back{display:block;margin:8px;padding:9px 10px;border:1px solid var(--ux-border);background:var(--ux-surface);color:var(--ux-blue);text-decoration:none;font-size:12px}
.admin-workspace{grid-column:2;grid-row:2;min-width:0;overflow-y:auto;background:var(--ux-bg);padding:0 28px 44px}.admin-page-title{margin:0 -28px 18px;padding:18px 32px}.admin-content{max-width:var(--lw-page-max);margin:0 auto}.admin-grid-react{gap:16px!important}.admin-card-react{padding:18px!important}.tenant-card{border-radius:4px!important;background:var(--ux-surface-2)!important}.tenant-stats>div{border-radius:4px!important;background:var(--ux-surface)!important}.user-row-react{border-radius:4px!important}.admin-badge{border-radius:10px!important}.admin-nav{display:none!important}
.report-card,.report-section{padding:18px!important}.report-topbar{box-shadow:0 1px 5px rgba(0,0,0,.26)!important}
:root[data-theme=dark] .sidebar-module-context{background:var(--ux-surface-2)}:root[data-theme=dark] .sidebar-module-context .context-icon,:root[data-theme=dark] .admin-side-nav button.active{background:#1b425f}:root[data-theme=dark] .admin-side-nav button:hover{background:#34414d}:root[data-theme=dark] .table-row:hover,:root[data-theme=dark] .admin-table-react tbody tr:hover,:root[data-theme=dark] .report-table tbody tr:hover{background:#34414d!important}
@media(max-width:1100px){:root{--lw-nav-w:230px}.admin-user-context{display:none}}
@media(max-width:760px){body:has(.admin-app-shell){overflow:auto}.admin-app-shell{display:block;height:auto;overflow:visible}.admin-topbar{position:sticky;top:0;z-index:40}.admin-side-nav{position:sticky;top:52px;z-index:20;display:flex;flex-direction:row;gap:2px;padding:0 10px;height:44px;border-right:0;border-bottom:1px solid var(--ux-border);overflow-x:auto;overflow-y:hidden}.admin-nav-label,.admin-side-spacer,.admin-side-back{display:none}.admin-side-nav button{display:block;min-width:max-content;height:43px;padding:0 12px;border-bottom:3px solid transparent}.admin-side-nav button.active{box-shadow:none;border-bottom-color:var(--ux-blue)}.admin-nav-icon{display:none}.admin-workspace{overflow:visible;padding:0 12px 30px}.admin-page-title{margin:0 -12px 14px;padding:15px 16px}.sidebar-module-context{margin:12px}.parameter-context-controls{gap:5px}}

/* 9.1.2 – unified page gutters and robust medication dashboard cards */
:root{
  --lw-page-gutter:28px;
  --lw-page-gutter-mobile:12px;
  --lw-section-gap:16px;
}

/* Every primary page surface uses the same horizontal inset. */
.content{
  padding-left:var(--lw-page-gutter)!important;
  padding-right:var(--lw-page-gutter)!important;
}
.content > .dashboard,
.content > .detail,
.content > .medications-page{
  width:100%!important;
  max-width:var(--lw-page-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:0!important;
  padding-right:0!important;
  min-width:0;
}
.dashboard,.detail,.medications-page,.object-content{
  gap:var(--lw-section-gap)!important;
}

/* Page headers/tabs now align with the same left/right edge as cards. */
.hero-stack>.hero,
.detail-header,
.medications-page>.detail-header,
.page-title{
  margin-left:0!important;
  margin-right:0!important;
  margin-top:16px!important;
  border:1px solid var(--ux-border)!important;
  border-radius:var(--lw-card-radius)!important;
}
.object-tabs{
  margin-left:0!important;
  margin-right:0!important;
  padding-left:12px!important;
  padding-right:12px!important;
  border:1px solid var(--ux-border)!important;
  border-top:0!important;
  border-radius:0 0 var(--lw-card-radius) var(--lw-card-radius)!important;
}

/* Keep every dashboard/card child from creating a different side inset. */
.dashboard > *,
.detail > *,
.medications-page > *,
.dashboard-columns > *,
.kpi-grid > *,
.insight-grid > *{
  min-width:0;
  max-width:100%;
}
.panel,
.kpi-grid,
.dashboard-columns,
.insight-grid,
.medication-grid{
  width:100%;
  margin-left:0!important;
  margin-right:0!important;
}

/* Active medication cards: no clipped pills, stable metadata hierarchy. */
.medication-dashboard .medication-chips{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr))!important;
  gap:10px!important;
  align-items:stretch;
}
.medication-dashboard .medication-chips button{
  width:100%!important;
  min-width:0!important;
  min-height:76px;
  border-radius:4px!important;
  padding:11px 12px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:
    "name date"
    "dose dose";
  align-content:center;
  column-gap:12px;
  row-gap:5px!important;
  white-space:normal!important;
  overflow:visible!important;
}
.medication-dashboard .medication-chips button strong{
  grid-area:name;
  min-width:0;
  overflow-wrap:anywhere;
  line-height:1.3;
  font-size:13px;
}
.medication-dashboard .medication-chips .medication-dose{
  grid-area:dose;
  min-width:0;
  white-space:normal!important;
  overflow-wrap:anywhere;
  line-height:1.35;
  font-size:12px;
  color:var(--ux-muted);
}
.medication-dashboard .medication-chips .medication-start{
  grid-area:date;
  justify-self:end;
  align-self:start;
  white-space:nowrap;
  color:var(--ux-muted);
  font-size:11px;
  font-variant-numeric:tabular-nums;
}

/* Compact dashboard timeline: date stays in its own fixed column next to the medication. */
.medication-timeline-panel.compact .medication-timeline:before{
  left:6px;
}
.medication-timeline-panel.compact .timeline-entry{
  grid-template-columns:16px minmax(0,1fr) max-content!important;
  grid-template-areas:"dot body date";
  gap:10px 12px!important;
  align-items:start;
  padding:12px 0!important;
}
.medication-timeline-panel.compact .timeline-dot{
  grid-area:dot;
  margin:5px 0 0!important;
}
.medication-timeline-panel.compact .timeline-body{
  grid-area:body;
  min-width:0;
  padding-bottom:12px;
}
.medication-timeline-panel.compact .timeline-date{
  grid-area:date;
  min-width:max-content;
  padding-top:2px!important;
  text-align:right!important;
  white-space:nowrap;
  font-size:11px;
}
.medication-timeline-panel.compact .timeline-title{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:start;
}
.medication-timeline-panel.compact .timeline-title strong{
  min-width:0;
  overflow-wrap:anywhere;
}
.medication-timeline-panel.compact .timeline-title .status{
  white-space:nowrap;
}
.medication-timeline-panel.compact .timeline-body p{
  overflow-wrap:anywhere;
}

@media(max-width:900px){
  .medication-dashboard .medication-chips{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:760px){
  .content{
    padding-left:var(--lw-page-gutter-mobile)!important;
    padding-right:var(--lw-page-gutter-mobile)!important;
  }
  .hero-stack>.hero,
  .detail-header,
  .medications-page>.detail-header,
  .page-title{
    margin-left:0!important;
    margin-right:0!important;
    margin-top:12px!important;
  }
  .object-tabs{
    margin-left:0!important;
    margin-right:0!important;
  }
  .medication-dashboard .medication-chips{
    grid-template-columns:1fr!important;
  }
  .medication-dashboard .medication-chips button{
    min-height:72px;
  }
  .medication-timeline-panel.compact .timeline-entry{
    grid-template-columns:14px minmax(0,1fr)!important;
    grid-template-areas:
      "dot body"
      ". date"!important;
  }
  .medication-timeline-panel.compact .timeline-date{
    justify-self:start;
    padding-top:0!important;
    margin-top:-6px;
  }
}

/* Medication page and object-page spacing */
:root{
  --lw-object-header-h: 104px;
  --lw-object-tabs-h: 44px;
  --lw-nav-item-gap: 5px;
}

/* Give the primary navigation more breathing room without making it bulky. */
.module-nav{gap:var(--lw-nav-item-gap)!important;padding:4px 0 8px!important}
.nav-section-label{padding:12px 10px 6px!important}
.module-nav .home-nav{min-height:42px!important;padding:7px 10px!important}
.nav-divider{margin:10px 4px!important}
.sidebar-module-context{margin-top:18px!important;margin-bottom:10px!important}
.parameter-nav-title{padding-top:10px!important;padding-bottom:8px!important}

/* Object page: keep a solid sticky stack so content never remains visible underneath it. */
.detail-header{
  position:sticky!important;
  top:0!important;
  z-index:22!important;
  min-height:var(--lw-object-header-h)!important;
  box-sizing:border-box!important;
  background:var(--ux-surface)!important;
  isolation:isolate;
  overflow:hidden;
}
.detail-header::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:-1px;height:1px;
  background:var(--ux-border);
  pointer-events:none;
}
.object-tabs{
  position:sticky!important;
  top:var(--lw-object-header-h)!important;
  z-index:21!important;
  min-height:var(--lw-object-tabs-h)!important;
  margin-bottom:20px!important;
  padding-top:2px!important;
  background:var(--ux-surface)!important;
  box-shadow:0 2px 4px rgba(34,54,73,.06)!important;
  isolation:isolate;
}
.object-tabs button{height:42px!important}
.object-content{padding-top:2px!important}
.content{scroll-padding-top:calc(var(--lw-object-header-h) + var(--lw-object-tabs-h) + 16px)!important}

/* Medication page: content must grow naturally and never be clipped by equal-height cards. */
.medications-page{align-content:start!important;min-width:0}
.medications-page>.detail-header{position:sticky!important;top:0!important;z-index:22!important}
.medications-page>.panel{overflow:visible!important;min-width:0!important}
.medication-grid{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr))!important;
  align-items:start!important;
  grid-auto-rows:auto!important;
  gap:16px!important;
}
.medication-card{
  display:grid!important;
  grid-template-rows:auto auto!important;
  align-self:start!important;
  min-width:0!important;
  height:auto!important;
  min-height:0!important;
  overflow:visible!important;
}
.medication-card-head{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-areas:"summary actions"!important;
  align-items:start!important;
  gap:14px 18px!important;
  min-width:0!important;
}
.medication-card-head>div:first-child{grid-area:summary;min-width:0!important}
.medication-card-head>.medication-actions{grid-area:actions;justify-content:flex-end!important;align-items:flex-start!important;max-width:220px}
.medication-card h3{
  overflow-wrap:anywhere!important;
  word-break:normal!important;
  line-height:1.3!important;
  margin-top:10px!important;
}
.medication-card p{overflow-wrap:anywhere!important;line-height:1.45!important}
.medication-card dl{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:0!important;
  margin:0!important;
  min-width:0!important;
}
.medication-card dl>div{
  display:grid!important;
  grid-template-columns:112px minmax(0,1fr)!important;
  gap:12px!important;
  align-items:start!important;
  padding:10px 0!important;
  border-bottom:1px solid color-mix(in srgb,var(--ux-border) 72%,transparent);
  min-width:0!important;
}
.medication-card dl>div:last-child{border-bottom:0}
.medication-card dd{min-width:0!important;overflow-wrap:anywhere!important;line-height:1.45!important}
.medication-card dt{padding-top:1px!important}
.medication-actions .btn{white-space:nowrap!important}

@media(max-width:1100px){
  .medication-card-head{grid-template-columns:1fr!important;grid-template-areas:"summary" "actions"!important}
  .medication-card-head>.medication-actions{max-width:none!important;justify-content:flex-start!important}
}

@media(max-width:760px){
  :root{--lw-object-header-h:auto;--lw-object-tabs-h:44px}
  .module-nav{gap:4px!important;padding-top:6px!important}
  .nav-section-label{padding-top:10px!important}
  .detail-header,.medications-page>.detail-header{position:relative!important;top:auto!important;min-height:0!important;overflow:visible!important}
  .object-tabs{top:52px!important;margin-bottom:14px!important;box-shadow:0 1px 3px rgba(34,54,73,.08)!important}
  .content{scroll-padding-top:108px!important}
  .medication-grid{grid-template-columns:1fr!important;gap:12px!important}
  .medication-card-head{display:grid!important;grid-template-columns:1fr!important;grid-template-areas:"summary" "actions"!important}
  .medication-card-head>.medication-actions{width:100%;max-width:none!important;display:grid!important;grid-template-columns:1fr 1fr!important}
  .medication-card dl>div{grid-template-columns:1fr!important;gap:3px!important;padding:9px 0!important}
}

@media(max-width:430px){
  .medication-card-head>.medication-actions{grid-template-columns:1fr!important}
  .object-tabs{margin-bottom:12px!important}
}

/* Object-page scrolling */
:root{
  --lw-object-tabs-h:44px;
  --lw-nav-item-gap:7px;
}

/* The page title scrolls away naturally. Only the tab row remains available. */
.detail-header,
.medications-page>.detail-header{
  position:relative!important;
  top:auto!important;
  z-index:auto!important;
  min-height:0!important;
  overflow:visible!important;
  isolation:auto!important;
}
.detail-header::after{display:none!important}
.object-tabs{
  position:sticky!important;
  top:0!important;
  z-index:24!important;
  min-height:var(--lw-object-tabs-h)!important;
  margin-top:0!important;
  margin-bottom:22px!important;
  padding-top:0!important;
  background:var(--ux-surface)!important;
  border-top:1px solid var(--ux-border)!important;
  box-shadow:0 2px 5px rgba(34,54,73,.08)!important;
}
.object-tabs button{height:43px!important}
.object-content{padding-top:0!important}
.content{scroll-padding-top:calc(var(--lw-object-tabs-h) + 18px)!important}

/* Navigation: slightly more rhythm between targets and module groups. */
.module-nav{gap:var(--lw-nav-item-gap)!important;padding:8px 0 12px!important}
.module-nav .home-nav{min-height:44px!important;padding:8px 11px!important}
.nav-section-label{padding:15px 11px 7px!important}
.nav-divider{margin:12px 5px!important}
.sidebar-module-context{margin-top:20px!important;margin-bottom:12px!important}

@media(max-width:760px){
  .object-tabs{
    top:0!important;
    margin-bottom:16px!important;
  }
  .content{scroll-padding-top:62px!important}
  .module-nav{gap:5px!important;padding-top:7px!important}
  .module-nav .home-nav{min-height:42px!important}
  .nav-section-label{padding-top:12px!important}
}


/* Unified sticky page chrome */
:root{
  --lw-shell-h:52px;
  --lw-page-chrome-z:32;
}

/* One sticky wrapper owns header + tabs. Children are deliberately non-sticky. */
.object-page-sticky,
.medications-page-sticky{
  position:sticky!important;
  top:0!important;
  z-index:var(--lw-page-chrome-z)!important;
  margin-left:-28px!important;
  margin-right:-28px!important;
  background:var(--ux-surface)!important;
  box-shadow:0 2px 6px rgba(34,54,73,.08)!important;
  isolation:isolate;
}
.object-page-sticky>.detail-header,
.medications-page-sticky>.detail-header{
  position:relative!important;
  top:auto!important;
  z-index:auto!important;
  margin-left:0!important;
  margin-right:0!important;
  padding-left:32px!important;
  padding-right:32px!important;
  box-shadow:none!important;
  border-bottom:1px solid var(--ux-border)!important;
}
.object-page-sticky>.object-tabs{
  position:relative!important;
  top:auto!important;
  z-index:auto!important;
  margin:0!important;
  padding:0 32px!important;
  min-height:44px!important;
  border-top:0!important;
  border-bottom:1px solid var(--ux-border)!important;
  box-shadow:none!important;
}
.object-page>.object-content,
.object-page>.panel{
  margin-top:22px!important;
}
.medications-page-sticky+ .panel{margin-top:22px!important}
.content{scroll-padding-top:170px!important}

/* The global shell/navigation remains outside the scrolling content on desktop. */
@media(min-width:761px){
  .app-header{position:relative!important;top:auto!important;z-index:70!important}
  .object-page-sticky,.medications-page-sticky{top:0!important}
}

/* On mobile the shell bar itself is sticky, so page chrome starts below it. */
@media(max-width:760px){
  .object-page-sticky,
  .medications-page-sticky{
    top:52px!important;
    margin-left:-12px!important;
    margin-right:-12px!important;
  }
  .object-page-sticky>.detail-header,
  .medications-page-sticky>.detail-header{
    padding:14px 16px!important;
  }
  .object-page-sticky>.object-tabs{
    padding:0 12px!important;
    overflow-x:auto!important;
    overscroll-behavior-inline:contain;
  }
  .content{scroll-padding-top:188px!important}
}


/* Dashboard and detail medication timelines remain intentionally separate. */
/* Full medication page: date -> marker -> content. DOM order is marker/date/body,
   therefore explicit grid areas are required. */
.medication-timeline-panel:not(.compact) .medication-timeline:before{
  left:136px!important;
}
.medication-timeline-panel:not(.compact) .timeline-entry{
  grid-template-columns:112px 24px minmax(0,1fr)!important;
  grid-template-areas:"date dot body"!important;
  column-gap:12px!important;
  align-items:start!important;
}
.medication-timeline-panel:not(.compact) .timeline-date{
  grid-area:date!important;
  grid-column:auto!important;
  grid-row:auto!important;
  min-width:0!important;
  white-space:nowrap!important;
  text-align:right!important;
  padding-top:3px!important;
  font-variant-numeric:tabular-nums!important;
}
.medication-timeline-panel:not(.compact) .timeline-dot{
  grid-area:dot!important;
  grid-column:auto!important;
  grid-row:auto!important;
  justify-self:center!important;
  margin:4px auto 0!important;
}
.medication-timeline-panel:not(.compact) .timeline-body{
  grid-area:body!important;
  grid-column:auto!important;
  grid-row:auto!important;
  min-width:0!important;
}

/* Dashboard compact timeline keeps its dedicated compact layout from the
   consistency layer. These declarations protect it from generic timeline CSS. */
.medication-timeline-panel.compact .timeline-entry{
  grid-template-columns:16px minmax(0,1fr) max-content!important;
  grid-template-areas:"dot body date"!important;
  column-gap:12px!important;
  align-items:start!important;
}
.medication-timeline-panel.compact .timeline-dot{
  grid-area:dot!important;
  grid-column:auto!important;
  grid-row:auto!important;
}
.medication-timeline-panel.compact .timeline-body{
  grid-area:body!important;
  grid-column:auto!important;
  grid-row:auto!important;
  min-width:0!important;
}
.medication-timeline-panel.compact .timeline-date{
  grid-area:date!important;
  grid-column:auto!important;
  grid-row:auto!important;
  justify-self:end!important;
  align-self:start!important;
  min-width:max-content!important;
  white-space:nowrap!important;
  text-align:right!important;
}

@media(max-width:760px){
  .medication-timeline-panel:not(.compact) .medication-timeline:before{left:7px!important}
  .medication-timeline-panel:not(.compact) .timeline-entry{
    grid-template-columns:18px minmax(0,1fr)!important;
    grid-template-areas:"dot date" "dot body"!important;
    column-gap:10px!important;
    row-gap:3px!important;
  }
  .medication-timeline-panel:not(.compact) .timeline-date{
    text-align:left!important;
    white-space:normal!important;
    padding-top:0!important;
  }
  .medication-timeline-panel:not(.compact) .timeline-dot{
    justify-self:start!important;
    margin-top:4px!important;
  }
  .medication-timeline-panel.compact .timeline-entry{
    grid-template-columns:14px minmax(0,1fr)!important;
    grid-template-areas:"dot body" ". date"!important;
  }
  .medication-timeline-panel.compact .timeline-date{
    justify-self:start!important;
    text-align:left!important;
    min-width:0!important;
    white-space:normal!important;
  }
}

/* Medication UI as calm Fiori lists. */
.medication-summary-list{display:grid;border-top:1px solid var(--ux-border)}
.medication-summary-row{appearance:none;width:100%;border:0;border-bottom:1px solid var(--ux-border);background:transparent;color:inherit;display:grid;grid-template-columns:minmax(220px,1.45fr) minmax(220px,1fr) 126px;gap:20px;align-items:center;padding:13px 4px;text-align:left;cursor:pointer}
.medication-summary-row:hover{background:var(--ux-surface-hover)}
.medication-summary-main{min-width:0;display:grid;gap:3px}
.medication-summary-main strong{font-size:14px;line-height:1.3;overflow-wrap:anywhere}
.medication-summary-main small,.medication-summary-dose,.medication-summary-date{font-size:12px;color:var(--ux-muted)}
.medication-summary-dose{min-width:0;overflow-wrap:anywhere}
.medication-summary-date{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.medication-list{display:grid;border-top:1px solid var(--ux-border)}
.medication-list-row{display:grid;grid-template-columns:minmax(240px,1.5fr) minmax(170px,.9fr) minmax(150px,.78fr) minmax(150px,.8fr) auto;gap:20px;align-items:center;padding:17px 4px;border-bottom:1px solid var(--ux-border);min-width:0}
.medication-list-primary,.medication-list-cell{min-width:0}
.medication-list-title{display:flex;align-items:center;gap:10px;min-width:0}
.medication-list-title h3{font-size:15px;margin:0;min-width:0;overflow-wrap:anywhere}
.medication-list-primary>p{margin:4px 0 0;color:var(--ux-muted);font-size:12px;overflow-wrap:anywhere}
.medication-list-cell{display:grid;gap:3px}
.medication-list-cell>span{font-size:10px;text-transform:uppercase;letter-spacing:.055em;color:var(--ux-muted)}
.medication-list-cell>strong{font-size:12px;font-weight:500;line-height:1.4;overflow-wrap:anywhere}
.medication-list-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.medication-event-list{display:grid;border-top:1px solid var(--ux-border)}
.medication-event-row{display:grid;grid-template-columns:124px minmax(0,1fr);gap:22px;align-items:start;padding:17px 4px;border-bottom:1px solid var(--ux-border)}
.medication-event-date{font-size:12px;color:var(--ux-muted);font-variant-numeric:tabular-nums;white-space:nowrap;padding-top:2px}
.medication-event-content{min-width:0;display:grid;gap:7px}
.medication-event-heading{display:flex;align-items:center;gap:9px;flex-wrap:wrap;min-width:0}
.medication-event-heading strong{font-size:14px;overflow-wrap:anywhere}
.medication-event-content>p{margin:0;font-size:13px;line-height:1.45;overflow-wrap:anywhere}
.medication-event-content>.data-quality{display:block;margin:0}
.medication-event-changes{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}
.medication-event-changes button{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--ux-border);background:var(--ux-surface-subtle);border-radius:4px;padding:5px 8px;color:inherit;font-size:11px;cursor:pointer}
.medication-event-changes button:hover{background:var(--ux-surface-hover)}
.medication-timeline-panel.compact .medication-event-row{grid-template-columns:106px minmax(0,1fr);padding:13px 4px}
.medication-timeline-panel.compact .medication-event-content>p{font-size:12px}
@media(max-width:1120px){.medication-list-row{grid-template-columns:minmax(220px,1.35fr) minmax(160px,1fr) minmax(145px,.8fr) auto}.medication-list-row .medication-list-cell:nth-of-type(4){grid-column:2/4}}
@media(max-width:820px){.medication-summary-row{grid-template-columns:minmax(0,1fr) auto;gap:8px 14px}.medication-summary-dose{grid-column:1/3}.medication-summary-date{grid-column:2;grid-row:1}.medication-list-row{grid-template-columns:1fr 1fr;gap:12px 16px;align-items:start}.medication-list-primary{grid-column:1/3}.medication-list-actions{grid-column:1/3;justify-content:flex-start}.medication-list-row .medication-list-cell:nth-of-type(4){grid-column:auto}}
@media(max-width:560px){.medication-summary-row{grid-template-columns:1fr;padding:14px 2px}.medication-summary-date,.medication-summary-dose{grid-column:1;grid-row:auto;text-align:left;white-space:normal}.medication-list-row{grid-template-columns:1fr;padding:16px 2px}.medication-list-primary,.medication-list-actions,.medication-list-row .medication-list-cell:nth-of-type(4){grid-column:1}.medication-list-actions .btn{flex:1}.medication-event-row,.medication-timeline-panel.compact .medication-event-row{grid-template-columns:1fr;gap:5px;padding:14px 2px}.medication-event-date{white-space:normal}}

/* Consistent import mapping editor */
#importMappingEditor{margin-top:20px}
.mapping-editor-panel{border:1px solid var(--line);border-radius:var(--radius-lg,12px);background:var(--surface);overflow:hidden}
.mapping-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid var(--line);background:var(--surface-2)}
.mapping-heading>div{display:grid;gap:4px;min-width:0}
.mapping-heading b{font-size:15px;color:var(--text)}
.mapping-heading small{color:var(--muted);line-height:1.45}
.mapping-count{display:grid;place-items:center;min-width:30px;height:30px;padding:0 9px;border-radius:999px;background:color-mix(in srgb,var(--primary) 12%,var(--surface));color:var(--primary);font-weight:800;font-size:12px}
.mapping-table-head{display:grid;grid-template-columns:minmax(220px,1fr) minmax(200px,.9fr) minmax(300px,1.2fr);gap:18px;padding:10px 18px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface-2) 72%,var(--surface));color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.035em;text-transform:uppercase}
.mapping-list{display:grid}
.mapping-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(200px,.9fr) minmax(300px,1.2fr);gap:18px;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line);background:var(--surface)}
.mapping-row:last-child{border-bottom:0}
.mapping-row:nth-child(even){background:color-mix(in srgb,var(--surface-2) 35%,var(--surface))}
.mapping-row:hover{background:color-mix(in srgb,var(--primary) 4%,var(--surface))}
.mapping-source{display:grid;gap:4px;min-width:0}
.mapping-source b{font-size:14px;overflow-wrap:anywhere}
.mapping-source small,.mapping-hint small{color:var(--muted);line-height:1.4}
.mapping-hint{min-width:0}
.mapping-control{display:grid;gap:6px;min-width:0}
.mapping-control>label{display:none;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.035em}
.mapping-control select{width:100%;min-width:0;min-height:40px;border:1px solid var(--line);border-radius:4px;background:var(--surface);padding:8px 34px 8px 10px}
.mapping-control select:focus{outline:none;box-shadow:var(--ux-focus);border-color:var(--primary)}
@media(max-width:900px){
  .mapping-table-head{display:none}
  .mapping-row{grid-template-columns:1fr;gap:10px;padding:16px}
  .mapping-row+.mapping-row{border-top:0}
  .mapping-control>label{display:block}
  .mapping-hint{padding:8px 10px;border-radius:6px;background:var(--surface-2)}
}
@media(max-width:520px){
  #importMappingEditor{margin-top:14px}
  .mapping-heading{padding:14px;align-items:center}
  .mapping-heading small{font-size:12px}
  .mapping-row{padding:14px}
}

/* Full-width sticky page chrome
   The page chrome (header + local tabs) spans the complete workspace. Only the
   body beneath it is constrained to the readable application width. */
:root{
  --lw-page-chrome-bg:var(--ux-surface);
  --lw-page-body-max:var(--lw-page-max,1540px);
}

.content > .object-page,
.content > .medications-page{
  width:auto!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  min-width:0!important;
}

.object-page,
.medications-page{
  display:block!important;
}

.object-page-sticky,
.medications-page-sticky{
  position:sticky!important;
  top:0!important;
  z-index:36!important;
  margin-left:calc(-1 * var(--lw-page-gutter,28px))!important;
  margin-right:calc(-1 * var(--lw-page-gutter,28px))!important;
  background:var(--lw-page-chrome-bg)!important;
  border-bottom:1px solid var(--ux-border)!important;
  box-shadow:0 2px 7px rgba(34,54,73,.10)!important;
  isolation:isolate!important;
}

.object-page-chrome-inner{
  width:100%!important;
  max-width:var(--lw-page-body-max)!important;
  margin:0 auto!important;
  padding:0 var(--lw-page-gutter,28px)!important;
  background:var(--lw-page-chrome-bg)!important;
}

.object-page-sticky .detail-header,
.medications-page-sticky .detail-header{
  position:static!important;
  top:auto!important;
  z-index:auto!important;
  width:100%!important;
  min-height:96px!important;
  margin:0!important;
  padding:17px 0 15px!important;
  border:0!important;
  border-radius:0!important;
  border-bottom:1px solid var(--ux-border)!important;
  background:transparent!important;
  box-shadow:none!important;
}

.object-page-sticky .object-tabs{
  position:static!important;
  top:auto!important;
  z-index:auto!important;
  width:100%!important;
  min-height:44px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

.object-page-sticky .object-tabs button{
  min-height:44px!important;
}

.object-page-body,
.medications-page-body{
  width:100%!important;
  max-width:var(--lw-page-body-max)!important;
  margin:0 auto!important;
  padding-top:20px!important;
  display:grid!important;
  gap:var(--lw-section-gap,16px)!important;
  min-width:0!important;
}

.object-page-body > *,
.medications-page-body > *{
  min-width:0!important;
  max-width:100%!important;
}

/* Because .content itself is the desktop scroll container, sticky page chrome
   stays directly below the persistent application shell without JS offsets. */
@media(min-width:761px){
  .content{scroll-padding-top:166px!important}
  .object-page-sticky,
  .medications-page-sticky{top:0!important}
}

/* On mobile the application shell participates in document scrolling and is
   sticky at 52px height. Page chrome therefore starts directly below it. */
@media(max-width:760px){
  .content > .object-page,
  .content > .medications-page{max-width:none!important}
  .object-page-sticky,
  .medications-page-sticky{
    top:52px!important;
    margin-left:calc(-1 * var(--lw-page-gutter-mobile,12px))!important;
    margin-right:calc(-1 * var(--lw-page-gutter-mobile,12px))!important;
  }
  .object-page-chrome-inner{
    padding:0 var(--lw-page-gutter-mobile,12px)!important;
  }
  .object-page-sticky .detail-header,
  .medications-page-sticky .detail-header{
    min-height:auto!important;
    padding:13px 4px 12px!important;
    gap:10px!important;
  }
  .object-page-sticky .detail-header h1,
  .medications-page-sticky .detail-header h1{font-size:22px!important}
  .object-page-sticky .object-tabs{
    overflow-x:auto!important;
    overscroll-behavior-inline:contain!important;
    scrollbar-width:thin;
  }
  .object-page-body,
  .medications-page-body{padding-top:14px!important}
  .content{scroll-padding-top:190px!important}
}

@media(max-width:520px){
  .object-page-sticky .detail-header,
  .medications-page-sticky .detail-header{
    align-items:flex-start!important;
  }
  .object-page-sticky .detail-actions,
  .medications-page-sticky .detail-actions{
    width:100%!important;
  }
}

/* ==========================================================================
   Visual polish and runtime resilience styles
   ========================================================================== */
/* Visual polish layer
   Adds visual hierarchy and micro-interactions without changing page geometry. */
:root{
  --lw-polish-shadow-1:0 1px 2px rgba(34,54,73,.08),0 5px 16px rgba(34,54,73,.045);
  --lw-polish-shadow-2:0 2px 6px rgba(34,54,73,.10),0 12px 30px rgba(34,54,73,.07);
  --lw-polish-border:color-mix(in srgb,var(--ux-border,#d9d9d9) 82%,transparent);
  --lw-polish-hover:color-mix(in srgb,var(--ux-blue,#0a6ed1) 4%,var(--ux-surface,#fff));
  --lw-polish-focus:0 0 0 2px color-mix(in srgb,var(--ux-blue,#0a6ed1) 24%,transparent);
  --lw-polish-ease:cubic-bezier(.2,.7,.2,1);
}
html{scroll-behavior:smooth}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}

/* Shell / navigation */
.app-header,.admin-topbar,.report-topbar{
  box-shadow:0 1px 0 rgba(255,255,255,.08),0 2px 8px rgba(24,42,58,.22)!important;
}
.brand-mark,.admin-brand-mark,.boot-mark{letter-spacing:.06em;font-weight:800}
.global-search{transition:background-color .15s var(--lw-polish-ease),border-color .15s var(--lw-polish-ease),box-shadow .15s var(--lw-polish-ease)}
.global-search:hover{border-color:rgba(255,255,255,.55)!important}
.module-nav .home-nav,.admin-side-nav button,.param-list button{
  transition:background-color .14s var(--lw-polish-ease),color .14s var(--lw-polish-ease),box-shadow .14s var(--lw-polish-ease),transform .14s var(--lw-polish-ease);
}
.module-nav .home-nav:hover,.admin-side-nav button:hover,.param-list button:hover{transform:translateX(1px)}
.module-nav .home-nav.active,.admin-side-nav button.active,.param-list button.active{font-weight:600}
.nav-badge{font-variant-numeric:tabular-nums}

/* Full page chrome becomes a single translucent enterprise header. */
.object-page-sticky,.medications-page-sticky{
  background:color-mix(in srgb,var(--lw-page-chrome-bg) 96%,transparent)!important;
  box-shadow:0 1px 0 var(--ux-border),0 5px 16px rgba(34,54,73,.07)!important;
  backdrop-filter:saturate(135%) blur(10px);
}
.detail-header h1{letter-spacing:-.02em!important}
.detail-header p{max-width:820px}
.object-tabs button{position:relative;transition:color .15s var(--lw-polish-ease),background-color .15s var(--lw-polish-ease)}
.object-tabs button:hover{background:color-mix(in srgb,var(--ux-blue) 5%,transparent)}
.object-tabs button.active:after{height:3px;border-radius:3px 3px 0 0}

/* Surface hierarchy */
.panel,.admin-card-react,.report-card,.report-section,.modal-card,.admin-modal{
  border-color:var(--lw-polish-border)!important;
  box-shadow:var(--lw-polish-shadow-1)!important;
}
.panel{transition:border-color .16s var(--lw-polish-ease),box-shadow .18s var(--lw-polish-ease),background-color .16s var(--lw-polish-ease)}
.panel>header,.admin-card-react>header,.report-section>header{padding-bottom:13px}
.panel>header h2,.report-section h2,.admin-card-react h2{letter-spacing:-.015em}
.dashboard-columns>.panel:hover,.medication-dashboard:hover,.insights:hover{box-shadow:var(--lw-polish-shadow-2)!important}
.eyebrow{font-weight:750!important;letter-spacing:.075em!important}
.muted{color:var(--ux-muted)!important}

/* Dashboard hierarchy */
.hero{border-bottom-color:var(--lw-polish-border)!important;background:linear-gradient(100deg,var(--ux-surface) 0%,color-mix(in srgb,var(--ux-blue) 3%,var(--ux-surface)) 100%)!important}
.hero h1{font-weight:500!important}
.hero-actions{gap:8px!important}
.score{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ux-positive,#107e3e) 22%,transparent);min-height:86px;display:grid;place-content:center;text-align:center}
.score strong{font-variant-numeric:tabular-nums;letter-spacing:-.04em}
.kpi-grid article{position:relative;overflow:hidden;box-shadow:var(--lw-polish-shadow-1)!important}
.kpi-grid article:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:color-mix(in srgb,var(--ux-blue) 55%,transparent);opacity:.55}
.kpi-grid article.attention:before{background:var(--ux-critical,#e9730c);opacity:1}
.insight-grid article{transition:transform .16s var(--lw-polish-ease),box-shadow .16s var(--lw-polish-ease),border-color .16s var(--lw-polish-ease)}
.insight-grid article:hover{transform:translateY(-1px);box-shadow:var(--lw-polish-shadow-1)}
.development-list button,.value-list button,.medication-summary-row,.medication-event-row{
  transition:background-color .13s var(--lw-polish-ease),border-color .13s var(--lw-polish-ease);
}
.development-list button:hover,.value-list button:hover,.medication-summary-row:hover{background:var(--lw-polish-hover)!important}

/* Buttons and controls */
.btn,.admin-btn,.auth-submit{letter-spacing:.005em;transition:background-color .14s var(--lw-polish-ease),border-color .14s var(--lw-polish-ease),color .14s var(--lw-polish-ease),box-shadow .14s var(--lw-polish-ease),transform .14s var(--lw-polish-ease)!important}
.btn.primary,.auth-submit{box-shadow:0 1px 2px rgba(0,0,0,.06),0 3px 10px color-mix(in srgb,var(--ux-blue,#0a6ed1) 16%,transparent)!important}
.btn:focus-visible,.admin-btn:focus-visible,.object-tabs button:focus-visible,.home-nav:focus-visible{box-shadow:var(--lw-polish-focus)!important}
input,select,textarea{transition:border-color .14s var(--lw-polish-ease),box-shadow .14s var(--lw-polish-ease),background-color .14s var(--lw-polish-ease)}
input:hover,select:hover,textarea:hover{border-color:color-mix(in srgb,var(--ux-blue) 35%,var(--ux-border))}

/* Status language */
.status,.admin-badge{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:22px;border:1px solid transparent;font-size:11px;line-height:1.1}
.status.ok,.admin-badge.ok{border-color:color-mix(in srgb,var(--ux-positive,#107e3e) 25%,transparent)}
.status.warn,.admin-badge.warn{border-color:color-mix(in srgb,var(--ux-critical,#e9730c) 28%,transparent)}
.status.neutral{border-color:var(--ux-border)}

/* Tables / lists */
.measurement-table,.admin-table-react,.report-table{box-shadow:0 1px 2px rgba(34,54,73,.035)}
.table-head,.admin-table-react th,.report-table th{font-weight:700!important;letter-spacing:.025em;text-transform:none}
.table-row,.admin-table-react tbody tr,.report-table tbody tr{transition:background-color .12s var(--lw-polish-ease)}
.table-row:hover,.admin-table-react tbody tr:hover,.report-table tbody tr:hover{background:var(--lw-polish-hover)!important}
.medication-list-row,.medication-event-row{border-color:color-mix(in srgb,var(--ux-border) 78%,transparent)!important}
.medication-list-row:hover,.medication-event-row:hover{background:var(--lw-polish-hover)}
.medication-list-title h3,.medication-event-heading strong{font-weight:650}

/* Charts — more editorial, less mechanical. */
.chart-card{box-shadow:var(--lw-polish-shadow-2)!important}
.chart-wrap{border-radius:6px;background:linear-gradient(180deg,color-mix(in srgb,var(--ux-blue) 1.8%,var(--ux-surface)) 0%,var(--ux-surface) 100%);overflow:hidden}
.chart-wrap .spark{filter:drop-shadow(0 1px 0 rgba(255,255,255,.3))}
.chart-grid line{stroke:color-mix(in srgb,var(--ux-border) 68%,transparent)!important;stroke-width:.45!important}
.chart-axes line,.chart-axes path{stroke:color-mix(in srgb,var(--ux-muted) 65%,transparent)!important}
.chart-axes text{fill:var(--ux-muted)!important;font-size:3.25px!important;font-variant-numeric:tabular-nums}
.chart-line{stroke:var(--ux-blue)!important;stroke-width:1.7!important;stroke-linecap:round;stroke-linejoin:round}
.chart-point{stroke:var(--ux-surface)!important;stroke-width:.6!important;filter:drop-shadow(0 .5px 1px rgba(34,54,73,.18));transition:r .14s var(--lw-polish-ease)}
.chart-point.normal{fill:var(--ux-blue)!important}
.chart-point.abnormal{fill:var(--ux-negative,#bb0000)!important}
.reference-band{fill:color-mix(in srgb,var(--ux-positive,#107e3e) 13%,transparent)!important}
.reference-line{stroke:color-mix(in srgb,var(--ux-positive,#107e3e) 78%,transparent)!important;stroke-dasharray:4 3!important}
.medication-marker{stroke:color-mix(in srgb,#7b4bb7 78%,transparent)!important}
.chart-actions{padding:8px 10px!important}
.chart-legend{border-top-color:var(--lw-polish-border)!important;background:color-mix(in srgb,var(--ux-surface) 96%,var(--ux-surface-2))}
.latest{box-shadow:inset 3px 0 0 color-mix(in srgb,var(--ux-blue) 75%,transparent)}

/* Import mapping */
.mapping-editor-panel{box-shadow:var(--lw-polish-shadow-1)}
.mapping-heading{background:color-mix(in srgb,var(--ux-blue) 3%,var(--surface-2))!important}
.mapping-row{transition:background-color .12s var(--lw-polish-ease)}
.mapping-row:hover{background:var(--lw-polish-hover)!important}

/* Dialogs and overlays */
.modal-backdrop,.admin-modal-backdrop{animation:lwFadeIn .16s ease both}
.modal-card,.admin-modal{animation:lwDialogIn .18s var(--lw-polish-ease) both}
.toast{animation:lwToastIn .2s var(--lw-polish-ease) both;box-shadow:0 10px 28px rgba(0,0,0,.22)!important}
@keyframes lwFadeIn{from{opacity:0}to{opacity:1}}
@keyframes lwDialogIn{from{opacity:0;transform:translateY(7px) scale(.992)}to{opacity:1;transform:none}}
@keyframes lwToastIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* Skeleton loading */
.lw-skeleton-shell{min-height:100vh;background:var(--ux-bg,var(--bg));display:grid;grid-template-columns:252px 1fr;grid-template-rows:48px 1fr}
.lw-skeleton-top{grid-column:1/3;background:var(--sap-shell,#354a5f)}
.lw-skeleton-side{grid-column:1;padding:18px 14px;border-right:1px solid var(--ux-border);background:var(--ux-surface)}
.lw-skeleton-main{grid-column:2;padding:28px;display:grid;align-content:start;gap:18px;max-width:1500px;width:100%;margin:0 auto}
.lw-skeleton-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.lw-skeleton-card{height:118px;border:1px solid var(--ux-border);border-radius:4px;background:var(--ux-surface);padding:16px;display:grid;align-content:start;gap:12px}
.lw-skeleton-line,.lw-skeleton-block{display:block;border-radius:3px;background:linear-gradient(90deg,color-mix(in srgb,var(--ux-border) 52%,var(--ux-surface)) 20%,color-mix(in srgb,var(--ux-border) 25%,var(--ux-surface)) 45%,color-mix(in srgb,var(--ux-border) 52%,var(--ux-surface)) 70%);background-size:220% 100%;animation:lwSkeleton 1.35s ease-in-out infinite}
.lw-skeleton-line{height:12px}.lw-skeleton-line.sm{width:42%}.lw-skeleton-line.md{width:70%}.lw-skeleton-line.lg{width:92%;height:20px}.lw-skeleton-block{height:280px}
.lw-skeleton-side .lw-skeleton-line{margin-bottom:14px}
@keyframes lwSkeleton{0%{background-position:100% 0}100%{background-position:-120% 0}}
.report-loading,.admin-loading{border:1px solid var(--ux-border);background:var(--ux-surface);box-shadow:var(--lw-polish-shadow-1);border-radius:4px}

/* Dark mode stays subtle and avoids glowing surfaces. */
:root[data-theme=dark] .hero{background:linear-gradient(100deg,var(--ux-surface) 0%,color-mix(in srgb,var(--ux-blue) 5%,var(--ux-surface)) 100%)!important}
:root[data-theme=dark] .panel,:root[data-theme=dark] .admin-card-react,:root[data-theme=dark] .report-card,:root[data-theme=dark] .report-section{box-shadow:0 1px 2px rgba(0,0,0,.20),0 8px 22px rgba(0,0,0,.14)!important}
:root[data-theme=dark] .chart-wrap{background:linear-gradient(180deg,color-mix(in srgb,var(--ux-blue) 4%,var(--ux-surface)) 0%,var(--ux-surface) 100%)}

@media(max-width:900px){
  .lw-skeleton-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .lw-skeleton-shell{display:block}.lw-skeleton-top{height:48px}.lw-skeleton-side{display:none}.lw-skeleton-main{padding:16px 12px 82px}.lw-skeleton-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.lw-skeleton-card{height:102px;padding:12px}.lw-skeleton-block{height:220px}
  .object-page-sticky,.medications-page-sticky{backdrop-filter:saturate(125%) blur(8px)}
}
@media(max-width:420px){.lw-skeleton-grid{grid-template-columns:1fr 1fr}.score{min-height:76px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.modal-backdrop,.admin-modal-backdrop,.modal-card,.admin-modal,.toast,.lw-skeleton-line,.lw-skeleton-block{animation:none!important}.module-nav .home-nav:hover,.admin-side-nav button:hover,.param-list button:hover,.insight-grid article:hover{transform:none}}

/* Runtime resilience ------------------------------------------------------- */
#lw-connection-overlay {
  position: fixed;
  inset: 0;
  z-index: 2147483647;
  display: grid;
  place-items: center;
  padding: 24px;
  background: color-mix(in srgb, var(--lw-surface, #fff) 45%, transparent);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .18s ease, visibility .18s ease;
}
body.lw-server-offline #lw-connection-overlay {
  opacity: 1;
  visibility: visible;
  pointer-events: all;
}
body.lw-server-offline > *:not(#lw-connection-overlay):not(script):not(style) {
  filter: blur(7px);
  pointer-events: none !important;
  user-select: none;
  transition: filter .18s ease;
}
.lw-connection-card {
  width: min(420px, 92vw);
  display: grid;
  justify-items: center;
  gap: 10px;
  padding: 24px 28px;
  border: 1px solid var(--lw-border, #d9d9d9);
  border-radius: var(--lw-radius-lg, 12px);
  background: var(--lw-surface, #fff);
  color: var(--lw-text, #1d2d3e);
  box-shadow: 0 14px 34px rgba(0,0,0,.18);
  text-align: center;
}
.lw-connection-card strong { font-size: 1rem; font-weight: 700; }
.lw-connection-card span { color: var(--lw-text-secondary, #556b82); font-size: .875rem; }
.lw-connection-spinner {
  width: 28px;
  height: 28px;
  border: 3px solid color-mix(in srgb, var(--lw-primary, #0a6ed1) 22%, transparent);
  border-top-color: var(--lw-primary, #0a6ed1);
  border-radius: 50%;
  animation: lw-connection-spin .8s linear infinite;
}
@keyframes lw-connection-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  #lw-connection-overlay, body.lw-server-offline > *:not(#lw-connection-overlay):not(script):not(style) { transition: none; }
  .lw-connection-spinner { animation-duration: 1.6s; }
}
