/* ==========================================================================
   Nouvel UI System
   Cool aqua glass surfaces, Nouvel brand gradients, editorial headings,
   rounded layered panels, and a calmer app shell.
   ========================================================================== */

:root{
  --font-sans: "Lexend Deca", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-display: "Geist", sans-serif;

  --bg: #eef7f8;
  --bg-soft: #f7fbfc;
  --bg-muted: #9b9b9b;
  --surface: rgba(244, 250, 252, 0.84);
  --surface-strong: rgba(249, 253, 255, 0.92);
  --surface-muted: rgba(229, 241, 247, 0.84);
  --surface-accent: rgba(221, 240, 246, 0.9);
  --glass-fill: rgba(249, 253, 255, 0.34);
  --glass-fill-strong: rgba(249, 253, 255, 0.46);
  --glass-fill-dark: rgba(23, 92, 110, 0.18);
  --glass-edge: rgba(255, 255, 255, 0.42);
  --glass-edge-soft: rgba(44, 103, 120, 0.12);
  --glass-highlight: rgba(255, 255, 255, 0.58);
  --glass-highlight-soft: rgba(255, 255, 255, 0.2);
  --glass-shadow: 0 26px 70px -36px rgba(10, 36, 44, 0.34);
  --glass-shadow-soft: 0 18px 44px -30px rgba(10, 36, 44, 0.24);
  --glass-blur: 30px;
  --text: #17303a;
  --text-soft: #576b73;
  --muted: #686c6d;
  --line: rgba(61, 96, 107, 0.14);
  --line-strong: rgba(33, 79, 95, 0.18);
  --accent: #303739;
  --accent-strong: #434849;
  --accent-soft: #dff2f7;
  --accent-soft-2: #edf8fb;
  --accent-highlight: #4b4f50;
  --success: #237b6e;
  --warn: #aa7a35;
  --danger: #e53935;

  --clin-bg-deep: #7d8587;
  --clin-bg-mid: #7c8182;
  --clin-bg-soft: #6b6c6c;
  --clin-blob-teal: rgba(39, 184, 214, 0.32);
  --clin-blob-aqua: rgba(143, 215, 232, 0.26);
  --clin-blob-emerald: rgba(31, 143, 168, 0.22);
  --clin-blob-violet: rgba(176, 182, 255, 0.12);
  --clin-blob-blue: rgba(117, 195, 235, 0.16);
  --clin-surface: rgba(243, 252, 255, 0.16);
  --clin-surface-strong: rgba(247, 253, 255, 0.24);
  --clin-surface-soft: rgba(250, 255, 255, 0.1);
  --clin-surface-border: rgba(255, 255, 255, 0.2);
  --clin-surface-border-strong: rgba(255, 255, 255, 0.3);
  --clin-highlight: rgba(255, 255, 255, 0.5);
  --clin-shadow-soft: 0 22px 54px -38px rgba(7, 35, 43, 0.32);
  --clin-shadow: 0 38px 96px -54px rgba(7, 35, 43, 0.42);
  --clin-shadow-strong: 0 54px 132px -64px rgba(7, 35, 43, 0.52);

  --radius: 14px;
  --radius-lg: 20px;
  --radius-xl: 28px;
  --radius-pill: 999px;

  --shadow-soft: 0 12px 30px -22px rgba(10, 36, 44, 0.24);
  --shadow-panel: 0 28px 70px -34px rgba(7, 35, 43, 0.34);
  --shadow-raised: 0 32px 84px -38px rgba(7, 35, 43, 0.4);

  --nou-page-max: 80rem;
  --nou-form-max: 72rem;
  --nou-field-max: 42rem;
  --nou-search-max: 34rem;
  --nou-control-height: 3.35rem;
  --nou-button-height: 3.15rem;
  --nou-icon-button-size: 2.85rem;
  --nou-control-radius: 18px;
  --nou-control-border: rgba(32, 91, 108, 0.2);
  --nou-control-border-hover: rgba(31, 143, 168, 0.34);
  --nou-control-surface: rgba(249, 253, 255, 0.58);
  --nou-control-surface-strong: rgba(249, 253, 255, 0.76);
  --nou-control-text: #17303a;
  --nou-control-placeholder: rgba(61, 83, 92, 0.68);
  --nou-focus-ring: 0 0 0 4px rgba(47, 182, 211, 0.18);
  --nou-control-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72), 0 18px 38px -30px rgba(7, 35, 43, 0.3);

  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 20px;
  --sp-6: 24px;

  --appbar-h: 64px;
}

@media (min-width:768px){
  :root{ --appbar-h: 80px; }
}

*,
*::before,
*::after{
  box-sizing: border-box;
}

html,
body{
  height: 100%;
}

html{
  scroll-behavior: smooth;
}

body{
  margin: 0 !important;
  overflow-x: hidden;
  color: var(--text);
  background:
    radial-gradient(circle at 14% 10%, rgba(54, 64, 66, 0.24), transparent 28%),
    radial-gradient(circle at 86% 14%, rgba(169, 177, 255, 0.12), transparent 24%),
    radial-gradient(circle at 54% 100%, rgba(101, 117, 120, 0.18), transparent 42%),
    linear-gradient(180deg, #b5bcbc 0%, #dce5e9 52%, #bfc8ca 100%) !important;
  font-family: var(--font-sans);
  font-optical-sizing: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body::before,
body::after{
  content: none;
}

h1,
h2,
h3,
h4,
h5,
h6,
.font-display{
  font-family: var(--font-display);
  font-optical-sizing: auto;
  letter-spacing: -0.03em;
  line-height: 1.05;
  color: var(--text);
  font-style: normal;
}

p,
label,
input,
select,
textarea,
button{
  font-family: var(--font-sans);
}

a{
  color: var(--accent-highlight);
  transition: color .18s ease, background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

a:hover{
  color: var(--accent-strong);
}

::selection{
  background: rgba(39, 184, 214, 0.22);
}

.container{
  max-width: var(--nou-page-max);
  margin-inline: auto;
  padding: var(--sp-6);
}

main.has-fixed-appbar{
  min-height: 100dvh;
  padding-top: calc(var(--appbar-h) + env(safe-area-inset-top, 0px));
  padding-left: max(env(safe-area-inset-left, 0px), 0px);
  padding-right: max(env(safe-area-inset-right, 0px), 0px);
  padding-bottom: max(env(safe-area-inset-bottom, 0px), 0px);
}

/* ---- App shell ---------------------------------------------------------- */
.app-shell-atmosphere{
  display: none;
}

.app-shell-atmosphere::before,
.app-shell-atmosphere::after{
  content: none;
}

#app-bar{
  background: transparent;
  border-bottom: 0;
  backdrop-filter: none;
}

.app-shell-header-inner{
  position: relative;
}

.app-shell-nav{
  position: relative;
  background:
    linear-gradient(135deg, rgba(47, 182, 211, 0.86) 0%, rgba(39, 168, 198, 0.82) 42%, rgba(68, 176, 205, 0.76) 100%);
  border: 1px solid rgba(255, 255, 255, 0.38);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.5),
    inset 0 -1px 0 rgba(9, 91, 117, 0.16),
    var(--glass-shadow);
  backdrop-filter: blur(34px) saturate(170%);
  -webkit-backdrop-filter: blur(34px) saturate(170%);
  overflow: hidden;
}

.app-shell-nav::before{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0.02) 58%);
  pointer-events: none;
}

.app-shell-nav::after{
  content: "";
  position: absolute;
  top: -48%;
  right: -16%;
  width: 38%;
  height: 188%;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.34), transparent 60%);
  filter: blur(18px);
  pointer-events: none;
}

.app-shell-nav a{
  color: rgba(255, 255, 255, 0.96);
}

.app-shell-nav a:hover{
  color: #ffffff;
}

.app-shell-site-nav{
  position: relative;
  z-index: 1;
}

.app-shell-site-nav a{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.4rem;
  white-space: nowrap;
  font-size: .98rem;
  font-weight: 600;
  letter-spacing: .01em;
}

.app-shell-site-nav a:hover{
  text-shadow: 0 0 18px rgba(255, 255, 255, 0.18);
}

.app-shell-user-chip{
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.08);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.app-shell-top-action{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  border-radius: 1rem;
  border: 1px solid rgba(255, 255, 255, 0.18);
  padding: .7rem 1rem;
  font-size: .92rem;
  font-weight: 700;
  text-decoration: none;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.28),
    inset 0 -1px 0 rgba(255, 255, 255, 0.08),
    0 18px 34px -24px rgba(7, 35, 43, 0.42);
  backdrop-filter: blur(18px) saturate(145%);
  -webkit-backdrop-filter: blur(18px) saturate(145%);
}

.app-shell-top-action--primary{
  background: rgba(255, 255, 255, 0.28);
  color: var(--accent-strong) !important;
}

.app-shell-top-action--primary:hover{
  background: rgba(255, 255, 255, 0.36);
}

.app-shell-top-action--soft{
  border-color: rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.16);
  color: var(--text) !important;
}

.app-shell-top-action--soft:hover{
  background: rgba(255, 255, 255, 0.22);
}

.app-shell-top-action--danger{
  background: rgba(229, 57, 53, 0.14);
  color: #b63a37 !important;
}

.app-shell-top-action--danger:hover{
  background: rgba(229, 57, 53, 0.2);
}

.app-shell-drawer{
  background: rgba(255, 255, 255, 0.22);
  border-left: 1px solid rgba(255, 255, 255, 0.32);
  box-shadow:
    inset 1px 0 0 rgba(255, 255, 255, 0.48),
    0 32px 80px -38px rgba(7, 35, 43, 0.46);
  backdrop-filter: blur(34px) saturate(150%);
  -webkit-backdrop-filter: blur(34px) saturate(150%);
}

.app-shell-drawer h2{
  font-size: 1.45rem;
}

.app-shell-overlay{
  background: rgba(8, 38, 47, 0.28);
  backdrop-filter: blur(12px) saturate(120%);
}

.app-shell-modal{
  background: rgba(255, 255, 255, 0.22);
  border: 1px solid rgba(255, 255, 255, 0.36);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.62),
    inset 0 -1px 0 rgba(255, 255, 255, 0.08),
    0 36px 92px -40px rgba(7, 35, 43, 0.56);
  backdrop-filter: blur(34px) saturate(160%);
  -webkit-backdrop-filter: blur(34px) saturate(160%);
}

.app-shell-main{
  position: relative;
}

/* ---- Generic surfaces --------------------------------------------------- */
.card,
.panel,
.console-card,
.table-card{
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: var(--glass-fill);
  border: 1px solid var(--glass-edge);
  border-radius: var(--radius-lg);
  box-shadow:
    inset 0 1px 0 var(--glass-highlight),
    inset 0 -1px 0 rgba(255, 255, 255, 0.08),
    var(--glass-shadow-soft);
  backdrop-filter: blur(26px) saturate(155%);
  -webkit-backdrop-filter: blur(26px) saturate(155%);
}

.card::before,
.panel::before,
.console-card::before,
.table-card::before{
  content: none;
}

.console-wrap{
  padding-block: 1.5rem;
}

.header{
  display:flex;
  align-items:center;
  gap: var(--sp-4);
  padding: var(--sp-5);
  border-bottom: 1px solid var(--line);
}

.header h1{
  font-size: clamp(1.35rem, 2vw, 1.9rem);
  margin: 0;
}

.searchbar,
.search-bar{
  display:flex;
  align-items:center;
  gap: var(--sp-2);
  width: min(100%, var(--nou-search-max));
  min-height: var(--nou-control-height);
  background: var(--nou-control-surface);
  border: 1px solid var(--nou-control-border);
  border-radius: var(--radius-pill);
  padding: 0 1rem;
  box-shadow:
    var(--nou-control-shadow);
  backdrop-filter: blur(24px) saturate(145%);
  -webkit-backdrop-filter: blur(24px) saturate(145%);
}

.searchbar input[type="search"],
.search-bar input[type="search"]{
  appearance: none;
  border: 0;
  outline: 0;
  background: transparent;
  width: 100%;
  font-size: 15px;
  color: var(--text);
}

.searchbar input::placeholder,
.search-bar input::placeholder{
  color: #7a9098;
}

.searchbar:focus-within,
.search-bar:focus-within{
  border-color: rgba(255, 255, 255, 0.46);
  box-shadow:
    0 0 0 4px rgba(39, 184, 214, 0.12),
    var(--glass-shadow-soft);
}

input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="number"],
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"],
input[type="url"],
input[type="file"]:not(.hidden):not(.sr-only),
select,
textarea,
.input,
.select,
.nou-control{
  width: 100%;
  max-width: 100%;
  min-height: var(--nou-control-height);
  border: 1px solid var(--nou-control-border);
  border-radius: var(--nou-control-radius);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.62), rgba(255, 255, 255, 0.3)),
    var(--nou-control-surface);
  color: var(--nou-control-text);
  padding: 0 1.05rem;
  outline: 0;
  box-shadow: var(--nou-control-shadow);
  backdrop-filter: blur(20px) saturate(140%);
  -webkit-backdrop-filter: blur(20px) saturate(140%);
  transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease;
}

input[type="file"]:not(.hidden):not(.sr-only){
  display: block;
  height: auto;
  min-height: var(--nou-control-height);
  padding: .78rem 1rem;
  cursor: pointer;
}

input[type="file"]:not(.hidden):not(.sr-only)::file-selector-button{
  min-height: 2.35rem;
  margin-right: .9rem;
  border: 1px solid rgba(47, 182, 211, 0.22);
  border-radius: 14px;
  background: rgba(47, 182, 211, 0.16);
  color: var(--nou-control-text);
  font: inherit;
  font-weight: 700;
  padding: .35rem .85rem;
  cursor: pointer;
}

select,
.select,
.nou-select{
  appearance: none;
  -webkit-appearance: none;
  padding-right: 3.15rem;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23576b73' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"),
    linear-gradient(180deg, rgba(255, 255, 255, 0.62), rgba(255, 255, 255, 0.3)),
    var(--nou-control-surface);
  background-repeat: no-repeat, no-repeat, no-repeat;
  background-position: right 1rem center, 0 0, 0 0;
  background-size: 1.15rem 1.15rem, 100% 100%, 100% 100%;
}

textarea{
  min-height: 8.5rem;
  padding-block: 1rem;
  line-height: 1.55;
  resize: vertical;
}

input:focus,
select:focus,
textarea:focus,
.input:focus,
.select:focus,
.nou-control:focus{
  border-color: rgba(47, 182, 211, 0.62);
  box-shadow:
    var(--nou-focus-ring),
    0 18px 32px -24px rgba(7, 35, 43, 0.24);
}

input:hover,
select:hover,
textarea:hover,
.input:hover,
.select:hover,
.nou-control:hover{
  border-color: var(--nou-control-border-hover);
}

input::placeholder,
textarea::placeholder,
.input::placeholder,
.nou-control::placeholder{
  color: var(--nou-control-placeholder);
  opacity: 1;
}

.nou-form-container{
  width: min(100%, var(--nou-form-max));
  margin-inline: auto;
}

.nou-form-section{
  width: min(100%, var(--nou-field-max));
}

.nou-control-shell{
  width: 100%;
  min-width: 0;
}

.nou-control-shell > :is(input, select, textarea){
  width: 100%;
  max-width: 100%;
}

.nou-search,
.nou-search-wrap{
  width: min(100%, var(--nou-search-max));
}

.nou-search-wrap{
  position: relative;
  display: flex;
  align-items: center;
}

.nou-search-wrap > input{
  padding-left: 1.05rem;
  padding-right: 3.05rem;
}

.nou-search-wrap:has(svg[class*="left-"]) > input{
  padding-left: 2.85rem;
  padding-right: 1.05rem;
}

.nou-search-wrap > svg{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: rgba(41, 72, 82, 0.58);
}

.nou-search-wrap > svg:not([class*="left-"]){
  right: 1.05rem;
}

.nou-search-wrap > svg[class*="left-"]{
  left: 1.05rem;
  right: auto;
}

.nou-search--wide{
  width: min(100%, 44rem);
}

.nou-control-row{
  display: flex;
  width: 100%;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem;
}

.nou-control-row > :is(.clin-search-wrap, .searchbar, .search-bar, .nou-search, .nou-search-wrap){
  flex: 1 1 min(100%, 22rem);
}

.nou-control-row > :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]), textarea, .nou-control){
  flex: 0 1 16rem;
}

.nou-control-row > input[type="search"]{
  flex: 1 1 min(100%, 22rem);
  width: min(100%, var(--nou-search-max));
}

.nou-control-row > :is(select, .select, .nou-select){
  flex: 0 1 16rem;
}

.nou-control-row > textarea{
  flex-basis: min(100%, 32rem);
}

.nou-control-row > :is(button, .nou-btn, .nou-btn-primary, .nou-btn-secondary, .nou-icon-btn, .nou-back-btn){
  flex: 0 0 auto;
}

.nou-dropzone{
  display: grid;
  min-height: 10rem;
  place-items: center;
  gap: .65rem;
  border-radius: 26px;
  border: 1px dashed rgba(47, 182, 211, 0.38);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.48), rgba(255, 255, 255, 0.18)),
    rgba(239, 253, 255, 0.18);
  color: var(--text-soft);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.62), var(--glass-shadow-soft);
}

button,
.btn,
.icon-btn{
  transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease, color .18s ease;
}

button:active,
.btn:active,
.icon-btn:active{
  transform: translateY(1px);
}

.btn{
  border: 1px solid rgba(255, 255, 255, 0.28);
  background: rgba(255, 255, 255, 0.16);
  color: var(--text);
  padding: .72rem .95rem;
  border-radius: 1rem;
  cursor: pointer;
  font: inherit;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.68),
    inset 0 -1px 0 rgba(255, 255, 255, 0.08),
    0 18px 34px -26px rgba(7, 35, 43, 0.28);
  backdrop-filter: blur(22px) saturate(145%);
  -webkit-backdrop-filter: blur(22px) saturate(145%);
}

.btn:hover{
  background: rgba(255, 255, 255, 0.22);
}

.btn.primary,
.btn-primary{
  background: rgba(31, 143, 168, 0.9);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.14);
}

.btn.primary:hover,
.btn-primary:hover{
  background: rgba(23, 127, 149, 0.96);
}

.btn.danger{
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.44), rgba(255, 255, 255, 0.1)),
    rgba(229, 57, 53, 0.12);
  color: #b63a37;
  border-color: rgba(229, 57, 53, 0.18);
}

.badge{
  display:inline-flex;
  align-items:center;
  gap:.25rem;
  padding: .32rem .72rem;
  border-radius: 999px;
  font-size: 12px;
  background: rgba(255, 255, 255, 0.16);
  color: var(--text-soft);
  border: 1px solid rgba(255, 255, 255, 0.28);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(18px) saturate(140%);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
}

.badge.ok{ background: rgba(219, 244, 237, 0.92); color: #1f6f62; border-color: rgba(31, 112, 98, 0.18); }
.badge.warn{ background: rgba(245, 235, 219, 0.92); color: #8f6223; border-color: rgba(170, 122, 53, 0.18); }
.badge.muted{ background: rgba(232, 241, 246, 0.9); color: var(--muted); }

table,
.table{
  width:100%;
  border-collapse: collapse;
}

th,
td,
.table th,
.table td{
  padding: 12px 14px;
  border-bottom: 1px solid rgba(61, 96, 107, 0.1);
  text-align: left;
  vertical-align: middle;
}

thead th,
.table thead th{
  background: rgba(234, 245, 250, 0.84);
  color: #43636d;
  font-weight: 700;
}

tbody tr:hover td,
.table tr:hover td{
  background: rgba(241, 249, 252, 0.8);
}

.text-muted{
  color: var(--muted);
}

main :is(section, article, aside, form).rounded-2xl:not(.bg-gradient-to-br),
main :is(section, article, aside, form).rounded-3xl:not(.bg-gradient-to-br),
main :is(section, article, aside, form).rounded-\[28px\]:not(.bg-gradient-to-br),
main :is(section, article, aside, form).rounded-\[30px\]:not(.bg-gradient-to-br){
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.2) !important;
  border-color: rgba(255, 255, 255, 0.28) !important;
  backdrop-filter: blur(30px) saturate(160%);
  -webkit-backdrop-filter: blur(30px) saturate(160%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.52),
    inset 0 -1px 0 rgba(255, 255, 255, 0.08),
    var(--glass-shadow);
}

main :is(section, article, aside, form).rounded-2xl:not(.bg-gradient-to-br)::before,
main :is(section, article, aside, form).rounded-3xl:not(.bg-gradient-to-br)::before,
main :is(section, article, aside, form).rounded-\[28px\]:not(.bg-gradient-to-br)::before,
main :is(section, article, aside, form).rounded-\[30px\]:not(.bg-gradient-to-br)::before{
  content: none;
}

main :is(section, article, aside).bg-gradient-to-br{
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.24) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    var(--shadow-raised) !important;
}

.glass-hero{
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.34), rgba(255, 255, 255, 0.14) 42%, rgba(255, 255, 255, 0.08)),
    rgba(243, 253, 255, 0.1) !important;
  border: 1px solid rgba(255, 255, 255, 0.28) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.54),
    inset 0 -1px 0 rgba(255, 255, 255, 0.06),
    var(--clin-shadow-strong) !important;
  backdrop-filter: blur(34px) saturate(180%);
  -webkit-backdrop-filter: blur(34px) saturate(180%);
}

.glass-hero::before{
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.34), rgba(255, 255, 255, 0.12) 42%, transparent 70%),
    radial-gradient(circle at 10% 10%, rgba(106, 232, 210, 0.16), transparent 26%);
  pointer-events: none;
}

.glass-hero::after{
  content: "";
  position: absolute;
  top: -42%;
  right: -14%;
  width: 44%;
  height: 190%;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.54), transparent 58%);
  filter: blur(22px);
  pointer-events: none;
}

.glass-chip{
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.46);
  background: rgba(255, 255, 255, 0.22);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72);
  color: var(--text-soft);
  backdrop-filter: blur(18px) saturate(145%);
  -webkit-backdrop-filter: blur(18px) saturate(145%);
}

.glass-badge{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.45rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.52);
  background: rgba(255, 255, 255, 0.34);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
  color: var(--accent-strong);
  backdrop-filter: blur(16px) saturate(145%);
  -webkit-backdrop-filter: blur(16px) saturate(145%);
}

.glass-button{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  border-radius: 1rem;
  border: 1px solid rgba(255, 255, 255, 0.44);
  background: rgba(255, 255, 255, 0.22);
  color: var(--text);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.74),
    0 18px 38px -28px rgba(7, 35, 43, 0.24);
  backdrop-filter: blur(20px) saturate(150%);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
}

.glass-button:hover{
  background: rgba(255, 255, 255, 0.3);
  color: var(--accent-strong);
}

.glass-button--accent{
  background: rgba(31, 143, 168, 0.92);
  border-color: rgba(31, 143, 168, 0.22);
  color: #f8fdff;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.18),
    0 22px 42px -28px rgba(17, 101, 121, 0.58);
}

.glass-button--accent:hover{
  background: rgba(23, 127, 149, 0.98);
  color: #f8fdff;
}

.glass-button--soft{
  color: var(--accent-strong);
}

.nou-btn,
.nou-btn-secondary,
.nou-btn-primary,
.nou-icon-btn,
.nou-back-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-height: var(--nou-button-height);
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.44);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.52), rgba(255, 255, 255, 0.22)),
    rgba(239, 253, 255, 0.22);
  color: var(--nou-control-text);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.72),
    0 18px 38px -28px rgba(7, 35, 43, 0.28);
  font-size: .92rem;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  padding: 0 1rem;
  backdrop-filter: blur(20px) saturate(150%);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
}

.nou-btn:hover,
.nou-btn-secondary:hover,
.nou-icon-btn:hover,
.nou-back-btn:hover{
  border-color: rgba(47, 182, 211, 0.34);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.62), rgba(255, 255, 255, 0.3)),
    rgba(239, 253, 255, 0.28);
  color: var(--accent-strong);
  transform: translateY(-1px);
}

.nou-btn-primary{
  border-color: rgba(147, 229, 243, 0.22);
  background: linear-gradient(135deg, rgba(23, 127, 149, 0.98), rgba(47, 182, 211, 0.96));
  color: #f8fdff;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.18),
    0 22px 42px -28px rgba(17, 101, 121, 0.58);
}

.nou-btn-primary:hover{
  color: #f8fdff;
  background: linear-gradient(135deg, rgba(20, 118, 138, 1), rgba(31, 167, 194, 0.98));
  transform: translateY(-1px);
}

.nou-icon-btn,
.nou-back-btn{
  width: var(--nou-icon-button-size);
  min-width: var(--nou-icon-button-size);
  height: var(--nou-icon-button-size);
  min-height: var(--nou-icon-button-size);
  padding: 0;
  border-radius: 16px;
}

.nou-back-btn{
  color: var(--text-soft);
}

.nou-back-btn svg,
.nou-icon-btn svg{
  width: 1.05rem;
  height: 1.05rem;
  flex: 0 0 auto;
}

.nou-back-btn__label{
  display: none;
}

.nou-list-page{
  width: min(100%, var(--nou-page-max));
  margin-inline: auto;
  padding: clamp(.75rem, 2vw, 1.25rem);
}

.nou-list-shell{
  position: relative;
  display: flex;
  min-height: min(78dvh, 54rem);
  flex-direction: column;
  border-radius: 36px;
  border: 1px solid rgba(255, 255, 255, 0.52);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.08)),
    radial-gradient(circle at 12% 8%, rgba(47, 182, 211, 0.2), transparent 28%),
    radial-gradient(circle at 86% 18%, rgba(176, 182, 255, 0.2), transparent 25%),
    rgba(222, 239, 243, 0.28);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.74),
    inset 0 -1px 0 rgba(255, 255, 255, 0.1),
    0 34px 90px -42px rgba(7, 35, 43, 0.44);
  padding: clamp(.65rem, 1.6vw, 1.15rem);
  overflow: hidden;
  backdrop-filter: blur(28px) saturate(155%);
  -webkit-backdrop-filter: blur(28px) saturate(155%);
}

.nou-list-shell::before{
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.42), transparent 38%),
    radial-gradient(circle at 50% 100%, rgba(143, 215, 232, 0.14), transparent 34%);
  pointer-events: none;
}

.nou-list-inner{
  position: relative;
  z-index: 1;
  display: flex;
  min-height: 0;
  flex: 1 1 auto;
  flex-direction: column;
  overflow: hidden;
  border-radius: 28px;
  border: 1px solid rgba(255, 255, 255, 0.62);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.32)),
    rgba(248, 253, 255, 0.42);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.78),
    0 26px 60px -42px rgba(7, 35, 43, 0.34);
  padding: clamp(1rem, 2vw, 1.45rem);
  backdrop-filter: blur(22px) saturate(150%);
  -webkit-backdrop-filter: blur(22px) saturate(150%);
}

.nou-list-header{
  display: flex;
  flex: 0 0 auto;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.nou-list-header__meta{
  min-width: 0;
  max-width: 46rem;
}

.nou-list-actions{
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: .65rem;
}

.nou-list-toolbar{
  flex: 0 0 auto;
  margin-top: 1rem;
}

.nou-list-body{
  flex: 1 1 0;
  min-height: 16rem;
  max-height: clamp(22rem, calc(100dvh - 21rem), 44rem);
  margin-top: 1rem;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: .25rem .35rem .5rem .1rem;
  scrollbar-gutter: stable;
}

.nou-list-body--deep{
  max-height: clamp(28rem, calc(100dvh - 19rem), 52rem);
}

.nou-list-stack{
  display: grid;
  gap: 1rem;
}

.nou-list-card{
  border-radius: 26px;
  border: 1px solid rgba(255, 255, 255, 0.62);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.62), rgba(255, 255, 255, 0.3)),
    rgba(247, 252, 253, 0.42);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.72),
    0 20px 48px -38px rgba(7, 35, 43, 0.3);
}

.nou-floating-action{
  display: inline-flex;
  min-height: var(--nou-button-height);
  align-items: center;
  justify-content: center;
  gap: .55rem;
  border-radius: 999px;
  border: 1px solid rgba(147, 229, 243, 0.34);
  background:
    linear-gradient(135deg, rgba(20, 139, 161, 0.98), rgba(47, 182, 211, 0.96)),
    var(--brand-cyan);
  color: #f8fdff;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    0 24px 48px -26px rgba(17, 101, 121, 0.62);
  font-size: .92rem;
  font-weight: 800;
  line-height: 1;
  padding: 0 1.1rem;
  text-decoration: none;
  white-space: nowrap;
  transform: translateY(-1px);
  transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.nou-floating-action:hover{
  color: #fff;
  transform: translateY(-2px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.28),
    0 30px 58px -28px rgba(17, 101, 121, 0.7);
}

.nou-floating-action svg{
  width: 1rem;
  height: 1rem;
  flex: 0 0 auto;
}

@media (min-width: 768px){
  .nou-icon-btn.md\:hidden,
  .nou-back-btn.md\:hidden{
    display: none;
  }
}

@media (min-width: 1024px){
  .nou-icon-btn.lg\:hidden,
  .nou-back-btn.lg\:hidden{
    display: none;
  }
}

@media (min-width: 768px){
  .nou-back-btn{
    width: auto;
    min-width: 0;
    padding-inline: .9rem 1rem;
  }

  .nou-back-btn__label{
    display: inline;
  }
}

@media (max-width: 767.98px){
  .nou-list-page{
    padding: .65rem;
  }

  .nou-list-shell{
    min-height: calc(100dvh - var(--appbar-h, 72px) - 1.25rem);
    border-radius: 28px;
    padding: .55rem;
  }

  .nou-list-inner{
    border-radius: 24px;
    padding: .85rem;
  }

  .nou-list-header{
    flex-direction: column;
    align-items: stretch;
  }

  .nou-list-actions{
    justify-content: flex-start;
  }

  .nou-list-actions > :is(a, button){
    flex: 1 1 auto;
  }

  .nou-list-actions > :is(.nou-back-btn, .nou-icon-btn){
    flex: 0 0 var(--nou-icon-button-size);
  }

  .nou-list-actions > .nou-floating-action{
    flex: 1 1 auto;
  }

  .nou-list-body{
    min-height: 18rem;
    max-height: calc(100dvh - var(--appbar-h, 72px) - 16rem);
    padding-right: .15rem;
  }
}


.glass-avatar{
  position: relative;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.22);
  border: 1px solid rgba(255, 255, 255, 0.46);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.72),
    0 18px 38px -28px rgba(7, 35, 43, 0.24);
  backdrop-filter: blur(18px) saturate(145%);
  -webkit-backdrop-filter: blur(18px) saturate(145%);
}

/* ---- Utility palette overrides ----------------------------------------- */
.bg-white,
.bg-white\/85,
.bg-white\/90,
.bg-white\/95{
  background-color: rgba(255, 255, 255, 0.2) !important;
}

.bg-slate-50,
.bg-slate-50\/70,
.bg-slate-50\/80,
.bg-slate-50\/90,
.bg-gray-100{
  background-color: rgba(255, 255, 255, 0.16) !important;
}

.bg-slate-100{
  background-color: rgba(255, 255, 255, 0.22) !important;
}

.bg-emerald-50,
.bg-emerald-50\/70,
.bg-emerald-50\/80,
.bg-emerald-50\/90,
.bg-teal-50,
.bg-teal-50\/70,
.bg-teal-50\/80,
.bg-teal-50\/90{
  background-color: rgba(232, 242, 236, 0.2) !important;
}

.bg-amber-50,
.bg-amber-50\/70{
  background-color: rgba(247, 240, 228, 0.2) !important;
}

.bg-amber-100{
  background-color: rgba(245, 235, 217, 0.24) !important;
}

.bg-emerald-100,
.bg-teal-100{
  background-color: rgba(218, 244, 249, 0.3) !important;
}

.bg-sky-50,
.bg-sky-50\/70,
.bg-sky-100{
  background-color: rgba(228, 242, 249, 0.24) !important;
}

.bg-slate-900{
  background-color: #173b45 !important;
}

.bg-slate-900\/35{
  background-color: rgba(23, 59, 69, 0.35) !important;
}

.bg-emerald-600,
.bg-teal-600{
  background-color: var(--accent) !important;
}

.bg-emerald-700,
.bg-teal-700{
  background-color: var(--accent-strong) !important;
}

.hover\:bg-emerald-700:hover,
.hover\:bg-teal-700:hover{
  background-color: var(--accent-strong) !important;
}

.hover\:bg-emerald-50:hover,
.hover\:bg-teal-50:hover{
  background-color: rgba(224, 246, 250, 0.92) !important;
}

.hover\:bg-emerald-100:hover,
.hover\:bg-teal-100:hover{
  background-color: rgba(213, 241, 247, 0.96) !important;
}

.hover\:bg-slate-50:hover{
  background-color: rgba(241, 249, 252, 0.92) !important;
}

.hover\:bg-slate-200:hover{
  background-color: rgba(226, 240, 246, 0.94) !important;
}

.text-slate-900,
.text-gray-900{
  color: var(--text) !important;
}

.text-slate-800,
.text-gray-800{
  color: #24414b !important;
}

.text-slate-700,
.text-gray-700{
  color: #4b6670 !important;
}

.text-slate-600,
.text-gray-600{
  color: var(--text-soft) !important;
}

.text-slate-500,
.text-gray-500,
.text-slate-400{
  color: var(--muted) !important;
}

.text-white{
  color: #f8fdff !important;
}

.text-emerald-900,
.text-teal-900,
.text-emerald-800,
.text-teal-800,
.text-emerald-700,
.text-teal-700,
.text-emerald-600,
.text-teal-600{
  color: var(--accent-strong) !important;
}

.text-emerald-50,
.text-teal-50,
.text-teal-100{
  color: rgba(247, 253, 255, 0.94) !important;
}

.text-amber-700,
.text-amber-800{
  color: #946526 !important;
}

.text-sky-600,
.text-sky-700{
  color: #506a60 !important;
}

.border-slate-200,
.border-slate-100,
.border-gray-300{
  border-color: rgba(87, 93, 86, 0.12) !important;
}

.border-emerald-100,
.border-teal-100,
.border-emerald-200,
.border-teal-200,
.border-sky-200{
  border-color: rgba(76, 105, 86, 0.14) !important;
}

.border-amber-100,
.border-amber-200{
  border-color: rgba(170, 122, 53, 0.16) !important;
}

.border-white\/70,
.border-white\/80,
.border-white\/90{
  border-color: rgba(255, 255, 255, 0.28) !important;
}

.ring-black\/5{
  --tw-ring-color: rgba(71, 63, 52, 0.08) !important;
}

.shadow-sm{
  box-shadow: var(--shadow-soft) !important;
}

.shadow-xl{
  box-shadow: var(--shadow-panel) !important;
}

.backdrop-blur{
  backdrop-filter: blur(28px) saturate(150%) !important;
  -webkit-backdrop-filter: blur(28px) saturate(150%) !important;
}

.from-teal-600{
  --tw-gradient-from: #25483a var(--tw-gradient-from-position) !important;
  --tw-gradient-to: rgb(37 72 58 / 0) var(--tw-gradient-to-position) !important;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important;
}

.via-teal-500{
  --tw-gradient-stops: var(--tw-gradient-from), #3e6851 var(--tw-gradient-via-position), var(--tw-gradient-to) !important;
}

.to-emerald-500{
  --tw-gradient-to: #799772 var(--tw-gradient-to-position) !important;
}

/* ---- Clinician console design system ----------------------------------- */
.clinician-console{
  position: relative;
  isolation: isolate;
  width: min(100%, 90rem);
  margin-inline: auto;
  padding: 1.25rem .75rem 6rem;
}

.clinician-console::before{
  content: "";
  position: fixed;
  inset: 0;
  z-index: -3;
  pointer-events: none;
  background:
    radial-gradient(circle at 12% 12%, var(--clin-blob-teal), transparent 24%),
    radial-gradient(circle at 84% 14%, var(--clin-blob-violet), transparent 22%),
    radial-gradient(circle at 72% 34%, var(--clin-blob-blue), transparent 18%),
    radial-gradient(circle at 18% 76%, var(--clin-blob-emerald), transparent 24%),
    radial-gradient(circle at 86% 84%, rgba(143, 215, 232, 0.22), transparent 22%),
    radial-gradient(circle at 50% 112%, rgba(238, 247, 248, 0.18), transparent 30%),
    linear-gradient(180deg, var(--clin-bg-deep) 0%, var(--clin-bg-mid) 42%, var(--clin-bg-soft) 100%);
}

.clinician-console::after{
  content: "";
  position: fixed;
  inset: -8% -10% auto;
  height: 60vh;
  z-index: -2;
  pointer-events: none;
  background:
    radial-gradient(circle at 12% 28%, rgba(255, 255, 255, 0.18), transparent 20%),
    radial-gradient(circle at 78% 16%, rgba(181, 188, 255, 0.14), transparent 18%),
    radial-gradient(circle at 56% 74%, rgba(143, 215, 232, 0.18), transparent 20%);
  filter: blur(72px);
  opacity: .88;
}

.clinician-console--narrow{
  max-width: 68rem;
}

.clinician-console--compact{
  max-width: 58rem;
}

@media (min-width: 640px){
  .clinician-console{
    padding: 1.5rem 1rem 6rem;
  }
}

@media (min-width: 1024px){
  .clinician-console,
  .clinician-console--narrow,
  .clinician-console--compact{
    width: 100%;
    max-width: none;
    min-height: calc(100dvh - var(--app-bar-h));
    padding: 1rem 1.25rem 1.5rem;
    --clin-desktop-frame-height: calc(100dvh - var(--app-bar-h) - 2.5rem);
  }
}

.clin-shell{
  position: relative;
  width: min(100%, var(--nou-page-max));
  margin-inline: auto;
  overflow: hidden;
  border-radius: 36px;
  padding: 1rem;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0.08) 54%, rgba(255, 255, 255, 0.04)),
    radial-gradient(circle at top right, rgba(176, 182, 255, 0.14), transparent 30%),
    radial-gradient(circle at bottom left, rgba(143, 215, 232, 0.16), transparent 32%),
    var(--clin-surface);
  border: 1px solid var(--clin-surface-border-strong);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.52),
    inset 0 -1px 0 rgba(255, 255, 255, 0.06),
    var(--clin-shadow-strong);
  backdrop-filter: blur(24px) saturate(145%);
  -webkit-backdrop-filter: blur(24px) saturate(145%);
}

.clin-shell::before{
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 8% 10%, rgba(39, 184, 214, 0.18), transparent 28%),
    radial-gradient(circle at 92% 12%, rgba(176, 182, 255, 0.16), transparent 24%),
    radial-gradient(circle at 54% 100%, rgba(143, 215, 232, 0.14), transparent 30%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.22), transparent 30%);
  pointer-events: none;
}

.clin-shell > *{
  position: relative;
  z-index: 1;
}

@media (min-width: 1024px){
  .clin-shell{
    min-height: var(--clin-desktop-frame-height);
  }
}

.clin-page-header{
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

@media (min-width: 768px){
  .clin-page-header{
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
  }
}

.clin-page-header__meta{
  max-width: 44rem;
}

.clin-page-header__actions{
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}

.clin-eyebrow{
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .42rem .82rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.48);
  background: rgba(255, 255, 255, 0.28);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72);
  color: var(--accent);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
  backdrop-filter: blur(18px) saturate(145%);
  -webkit-backdrop-filter: blur(18px) saturate(145%);
}

.clin-title{
  margin: .9rem 0 0;
  font-family: var(--font-display);
  font-size: clamp(2rem, 3.1vw, 3rem);
  font-weight: 700;
  letter-spacing: -.04em;
  line-height: 1;
  color: var(--text);
}

.clin-title--section{
  font-size: clamp(1.3rem, 2vw, 1.85rem);
  margin-top: 0;
}

.clin-copy{
  margin: .75rem 0 0;
  max-width: 42rem;
  color: rgba(41, 53, 60, 0.78);
  font-size: .98rem;
  line-height: 1.7;
}

.clin-panel,
.clin-glass-panel,
.clin-card,
.clin-glass-card,
.clin-list-item,
.portal-panel,
.portal-card,
.portal-list-item,
.reception-panel,
.reception-card,
.reception-list-item,
.clin-glass-row,
.clin-table-shell,
.clin-thread-shell,
.clin-modal-panel,
.clin-subpanel,
.clin-section-shell{
  position: relative;
  overflow: hidden;
  border-radius: 30px;
  border: 1px solid var(--glass-edge);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.34), rgba(255, 255, 255, 0.14) 42%, rgba(255, 255, 255, 0.08)),
    var(--clin-surface-soft);
  box-shadow:
    inset 0 1px 0 var(--clin-highlight),
    inset 0 -1px 0 rgba(255, 255, 255, 0.08),
    var(--clin-shadow);
  backdrop-filter: blur(30px) saturate(170%);
  -webkit-backdrop-filter: blur(30px) saturate(170%);
}

.clin-panel::before,
.clin-glass-panel::before,
.clin-card::before,
.clin-glass-card::before,
.clin-list-item::before,
.portal-panel::before,
.portal-card::before,
.portal-list-item::before,
.reception-panel::before,
.reception-card::before,
.reception-list-item::before,
.clin-glass-row::before,
.clin-table-shell::before,
.clin-thread-shell::before,
.clin-modal-panel::before,
.clin-subpanel::before,
.clin-section-shell::before{
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.28), transparent 40%),
    radial-gradient(circle at 100% 0%, rgba(255, 255, 255, 0.14), transparent 24%);
  pointer-events: none;
}

.clin-panel > *,
.clin-glass-panel > *,
.clin-card > *,
.clin-glass-card > *,
.clin-list-item > *,
.portal-panel > *,
.portal-card > *,
.portal-list-item > *,
.reception-panel > *,
.reception-card > *,
.reception-list-item > *,
.clin-glass-row > *,
.clin-table-shell > *,
.clin-thread-shell > *,
.clin-modal-panel > *,
.clin-subpanel > *,
.clin-section-shell > *{
  position: relative;
  z-index: 1;
}

.clin-panel{
  padding: 1.15rem;
}

.portal-panel,
.reception-panel{
  padding: 1.15rem;
}

.clin-card{
  padding: 1rem;
}

.portal-card,
.reception-card{
  padding: 1rem;
}

.clin-subpanel{
  padding: .95rem;
  border-radius: 24px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.12)),
    rgba(243, 252, 255, 0.1);
}

.clin-list-item{
  padding: 1rem 1.05rem;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background-color .18s ease;
}

.portal-list-item,
.reception-list-item{
  padding: 1rem 1.05rem;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background-color .18s ease;
}

.clin-list-item:hover{
  transform: translateY(-2px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.52),
    var(--clin-shadow-strong);
}

.portal-list-item:hover,
.reception-list-item:hover{
  transform: translateY(-2px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.52),
    var(--clin-shadow-strong);
}

.clin-worklist-hero{
  isolation: isolate;
  padding-bottom: 1rem;
}

.clin-worklist-hero::before{
  content: "";
  position: absolute;
  inset: -.85rem -.9rem 0;
  z-index: 0;
  border-radius: 34px;
  background: linear-gradient(180deg, rgba(8, 24, 29, 0.82) 0%, rgba(8, 24, 29, 0.58) 68%, rgba(8, 24, 29, 0) 100%);
  backdrop-filter: blur(22px) saturate(150%);
  -webkit-backdrop-filter: blur(22px) saturate(150%);
  pointer-events: none;
}

.clin-worklist-hero::after{
  content: "";
  position: absolute;
  left: .8rem;
  right: .8rem;
  bottom: -.65rem;
  height: 2.35rem;
  z-index: 2;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(7, 22, 27, 0.76) 0%, rgba(7, 22, 27, 0.34) 52%, rgba(7, 22, 27, 0) 100%);
  filter: blur(12px);
  pointer-events: none;
}

.clin-worklist-hero > *{
  position: relative;
  z-index: 3;
}

.clin-worklist-results{
  position: relative;
  z-index: 1;
  margin-top: 0;
  padding-top: .35rem;
}

.clin-worklist-summary{
  flex-wrap: wrap;
}

.clin-worklist-summary__item{
  color: rgba(239, 248, 252, 0.82);
  font-size: .96rem;
  line-height: 1.5;
}

.clin-worklist-summary__value{
  color: rgba(255, 255, 255, 0.98);
  font-weight: 800;
  text-shadow: 0 1px 10px rgba(129, 221, 214, 0.18);
}

@media (min-width: 1024px){
  .clin-worklist-hero{
    margin-bottom: 2.75rem;
    padding-bottom: 1.25rem;
  }

  .clin-worklist-results{
    padding-top: .5rem;
  }
}

.clin-section-stack{
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.clin-grid{
  display: grid;
  gap: 1.5rem;
}

.clin-app-shell{
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 1.25rem;
}

.clin-page-section{
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 1rem;
}

.clin-workspace-grid,
.clin-equal-grid{
  display: grid;
  gap: 1rem;
  align-items: stretch;
}

.clin-workspace-grid > *,
.clin-equal-grid > *{
  min-width: 0;
  min-height: 0;
}

.clin-workspace-card{
  display: flex;
  min-width: 0;
  min-height: 0;
  height: 100%;
  flex-direction: column;
}

.clin-panel-header{
  display: flex;
  flex-direction: column;
  gap: .9rem;
}

.clin-attention-header__content{
  width: 100%;
  min-width: 0;
}

.clin-attention-header__top{
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
}

.clin-attention-header__top .clin-eyebrow{
  min-width: 0;
}

.clin-attention-header__top .clin-btn{
  flex: 0 0 auto;
  white-space: nowrap;
}

.clin-attention-lab-card,
.clin-mobile-lab-review-section{
  justify-content: space-between;
  gap: 1.05rem;
  border-color: rgba(147, 229, 243, 0.34);
  background:
    radial-gradient(circle at 8% 0%, rgba(185, 246, 255, 0.32), transparent 34%),
    linear-gradient(135deg, rgba(23, 127, 149, 0.96), rgba(47, 182, 211, 0.9)),
    rgba(23, 127, 149, 0.96) !important;
  color: #f8fdff;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.32),
    0 24px 56px -34px rgba(7, 35, 43, 0.62);
}

.clin-attention-lab-card__top,
.clin-mobile-lab-review-section__top{
  display: flex;
  width: 100%;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.clin-attention-lab-card__heading,
.clin-mobile-lab-review-section__heading{
  display: flex;
  min-width: 0;
  flex: 1 1 auto;
  align-items: center;
  gap: .75rem;
}

.clin-attention-lab-card__heading > div,
.clin-mobile-lab-review-section__heading > div{
  min-width: 0;
}

.clin-attention-lab-card__badge,
.clin-mobile-lab-review-section__badge{
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.34);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.28), rgba(255, 255, 255, 0.12)),
    rgba(255, 255, 255, 0.16);
  color: #f8fdff;
  font-size: 1.05rem;
  font-weight: 900;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.44),
    0 18px 34px -26px rgba(7, 35, 43, 0.52);
  backdrop-filter: blur(18px) saturate(160%);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
}

.clin-mobile-lab-review-section__eyebrow{
  border-color: rgba(255, 255, 255, 0.34);
  background: rgba(255, 255, 255, 0.16);
  color: rgba(248, 253, 255, 0.92) !important;
}

.clin-attention-lab-card__title,
.clin-mobile-lab-review-section__title{
  display: block;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 0 .85rem;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 0;
  background: transparent;
  color: #f8fdff;
  box-shadow: none;
  overflow-wrap: anywhere;
}

.clin-attention-lab-card__title{
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.22;
}

.clin-mobile-lab-review-section__title{
  line-height: 1.12;
}

.clin-attention-lab-card__meta{
  margin: 0;
  color: rgba(248, 253, 255, 0.78);
  font-size: .88rem;
  line-height: 1.45;
}

.clin-attention-lab-card__button,
.clin-mobile-lab-review-section__button{
  flex: 0 0 auto;
  border-color: rgba(255, 255, 255, 0.34);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.28), rgba(255, 255, 255, 0.12)),
    rgba(255, 255, 255, 0.16);
  color: #f8fdff;
  white-space: nowrap;
}

.clin-attention-lab-card__button:hover,
.clin-mobile-lab-review-section__button:hover{
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.34), rgba(255, 255, 255, 0.16)),
    rgba(255, 255, 255, 0.2);
  color: #fff;
}

.clin-attention-lab-card__copy,
.clin-mobile-lab-review-section__copy{
  margin: 0;
  color: rgba(248, 253, 255, 0.84);
  font-size: .9rem;
  line-height: 1.55;
}

.clin-panel-header__meta{
  min-width: 0;
}

.clin-panel-header__actions{
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  align-items: center;
}

.clin-panel-scroll-body,
.clin-sidebar-list,
.clin-record-list{
  min-height: 0;
}

.clin-panel-scroll-body{
  flex: 1 1 auto;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-right: .2rem;
}

.clin-panel-scroll-body,
.clin-thread-body,
.clin-message-sidebar__list,
.clin-message-thread,
.clinician-console .overflow-y-auto,
.clinician-console .overflow-x-auto{
  scrollbar-width: thin;
  scrollbar-color: transparent transparent;
  scrollbar-gutter: stable;
}

.clin-panel-scroll-body--flush{
  margin-inline: -.1rem;
  padding-inline: .1rem;
}

.clin-panel-scroll-body::-webkit-scrollbar,
.clin-thread-body::-webkit-scrollbar,
.clin-message-sidebar__list::-webkit-scrollbar,
.clin-message-thread::-webkit-scrollbar,
.clinician-console .overflow-y-auto::-webkit-scrollbar,
.clinician-console .overflow-x-auto::-webkit-scrollbar{
  width: .65rem;
  height: .65rem;
}

.clin-panel-scroll-body::-webkit-scrollbar-track,
.clin-thread-body::-webkit-scrollbar-track,
.clin-message-sidebar__list::-webkit-scrollbar-track,
.clin-message-thread::-webkit-scrollbar-track,
.clinician-console .overflow-y-auto::-webkit-scrollbar-track,
.clinician-console .overflow-x-auto::-webkit-scrollbar-track{
  background: transparent;
}

.clin-panel-scroll-body::-webkit-scrollbar-thumb,
.clin-thread-body::-webkit-scrollbar-thumb,
.clin-message-sidebar__list::-webkit-scrollbar-thumb,
.clin-message-thread::-webkit-scrollbar-thumb,
.clinician-console .overflow-y-auto::-webkit-scrollbar-thumb,
.clinician-console .overflow-x-auto::-webkit-scrollbar-thumb{
  border-radius: 999px;
  background: transparent;
  border: 2px solid transparent;
  transition: background-color .18s ease, border-color .18s ease;
}

.clin-panel-scroll-body:hover,
.clin-panel-scroll-body:focus-within,
.clin-thread-body:hover,
.clin-thread-body:focus-within,
.clin-message-sidebar__list:hover,
.clin-message-sidebar__list:focus-within,
.clin-message-thread:hover,
.clin-message-thread:focus-within,
.clinician-console .overflow-y-auto:hover,
.clinician-console .overflow-y-auto:focus-within,
.clinician-console .overflow-x-auto:hover,
.clinician-console .overflow-x-auto:focus-within{
  scrollbar-color: rgba(255, 255, 255, 0.72) transparent;
}

.clin-panel-scroll-body:hover::-webkit-scrollbar-thumb,
.clin-panel-scroll-body:focus-within::-webkit-scrollbar-thumb,
.clin-thread-body:hover::-webkit-scrollbar-thumb,
.clin-thread-body:focus-within::-webkit-scrollbar-thumb,
.clin-message-sidebar__list:hover::-webkit-scrollbar-thumb,
.clin-message-sidebar__list:focus-within::-webkit-scrollbar-thumb,
.clin-message-thread:hover::-webkit-scrollbar-thumb,
.clin-message-thread:focus-within::-webkit-scrollbar-thumb,
.clinician-console .overflow-y-auto:hover::-webkit-scrollbar-thumb,
.clinician-console .overflow-y-auto:focus-within::-webkit-scrollbar-thumb,
.clinician-console .overflow-x-auto:hover::-webkit-scrollbar-thumb,
.clinician-console .overflow-x-auto:focus-within::-webkit-scrollbar-thumb{
  background: rgba(255, 255, 255, 0.72);
}

.clin-record-list{
  display: flex;
  flex-direction: column;
  gap: .75rem;
}

.ext-result-card{
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: stretch;
  gap: .85rem;
}

.ext-result-card__content{
  min-width: 0;
  overflow-wrap: anywhere;
}

.ext-result-card__actions{
  display: flex;
  width: 100%;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
}

.ext-result-card__actions > *{
  flex: 0 0 auto;
  max-width: 100%;
  white-space: nowrap;
}

.clin-external-results-panel{
  max-height: clamp(24rem, 54vh, 37rem);
  overflow: hidden;
}

.clin-panel-header.clin-external-results-header{
  flex: 0 0 auto;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
}

.clin-external-results-header > div:first-child{
  min-width: 0;
}

.clin-external-results-header__actions{
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: .5rem;
}

.clin-external-results-header__actions .clin-btn{
  white-space: nowrap;
}

.clin-external-results-search{
  flex: 0 0 auto;
  margin-top: 1rem;
}

.clin-external-results-scroll{
  margin-top: .9rem;
}

.clin-panel-footer{
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  align-items: center;
}

.clin-sticky-footer{
  position: sticky;
  bottom: 0;
  z-index: 2;
}

.clin-fixed-panel{
  min-height: 18rem;
}

.clin-fixed-panel--tall{
  min-height: 24rem;
}

.clin-fixed-panel--xl{
  min-height: 30rem;
}

.clin-patient-grid{
  display: grid;
  gap: 1rem;
  align-items: stretch;
}

.clin-mobile-patient-section{
  max-height: clamp(31rem, 72vh, 46rem);
  overflow: hidden;
}

.clin-patient-section-header{
  flex: 0 0 auto;
}

.clin-panel-header.clin-patient-section-header{
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
}

.clin-patient-section-header__top{
  display: flex;
  width: 100%;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
}

.clin-patient-section-header__top .clin-eyebrow{
  min-width: 0;
}

.clin-patient-section-header__top .clin-btn{
  flex: 0 0 auto;
  min-height: 2.65rem;
  white-space: nowrap;
}

.clin-patient-section__scroll{
  margin-top: 1.25rem;
}

.clin-patient-card{
  display: flex;
  min-width: 0;
  min-height: 100%;
  flex-direction: column;
  gap: 1rem;
}

.clin-patient-card__body{
  min-width: 0;
}

.clin-patient-card__actions{
  margin-top: auto;
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.clin-profile-header-card{
  align-self: start;
  height: auto;
  min-height: 0;
  gap: 1rem;
  padding: 1.15rem;
  background:
    radial-gradient(circle at 12% 0%, rgba(47, 182, 211, 0.18), transparent 32%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.46), rgba(255, 255, 255, 0.16)),
    rgba(243, 253, 255, 0.14) !important;
}

.clin-profile-header-card__top{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.clin-profile-header-card__identity{
  display: flex;
  min-width: 0;
  align-items: center;
  gap: .85rem;
}

.clin-profile-header-card__avatar{
  width: 4.35rem;
  height: 4.35rem;
  flex-shrink: 0;
  border: 1px solid rgba(255, 255, 255, 0.46);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.62),
    0 20px 42px -30px rgba(7, 35, 43, 0.4);
}

.clin-profile-header-card__avatar img{
  width: 100%;
  height: 100%;
}

.clin-profile-header-card__meta{
  min-width: 0;
}

.clin-profile-header-card__eyebrow{
  color: rgba(23, 127, 149, 0.88);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .15em;
  line-height: 1.2;
  text-transform: uppercase;
}

.clin-profile-header-card__name{
  margin: .22rem 0 0;
  color: var(--text);
  font-size: clamp(1.45rem, 2vw, 2rem);
  font-weight: 800;
  letter-spacing: 0;
  line-height: 1.08;
}

.clin-profile-header-card__icon-btn{
  position: relative;
  display: grid;
  width: 2.85rem;
  height: 2.85rem;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.48);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.18)),
    rgba(239, 253, 255, 0.18);
  color: var(--accent-strong);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.72),
    0 18px 34px -28px rgba(7, 35, 43, 0.34);
  text-decoration: none;
}

.clin-profile-header-card__icon-btn:hover{
  transform: translateY(-1px);
  color: rgba(23, 127, 149, 0.98);
}

.clin-profile-header-card__badge{
  position: absolute;
  top: -.25rem;
  right: -.25rem;
  display: grid;
  min-width: 1.15rem;
  height: 1.15rem;
  place-items: center;
  border-radius: 999px;
  background: var(--danger);
  color: #fff;
  font-size: .62rem;
  font-weight: 800;
  box-shadow: 0 8px 18px -10px rgba(229, 57, 53, 0.9);
}

.clin-profile-header-card__copy{
  margin: 0;
  color: rgba(41, 53, 60, 0.74);
  font-size: .92rem;
  line-height: 1.55;
}

.clin-profile-header-card__actions{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .65rem;
}

.clin-profile-header-card__actions .clin-btn{
  min-height: 2.75rem;
  width: 100%;
}

.clin-profile-header-card__actions .clin-btn:not(.clin-btn--accent){
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.46), rgba(255, 255, 255, 0.18)),
    rgba(239, 253, 255, 0.16);
}

.clin-dashboard-workspace{
  display: grid;
  gap: 1rem;
  align-items: start;
}

.clin-dashboard-workspace > .clin-shell{
  width: 100%;
  max-width: none;
}

.clin-dashboard-main{
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 1rem;
}

.clin-dashboard-topbar{
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1.15rem 1.2rem;
  border-radius: 24px;
  border: 1px solid rgba(255, 255, 255, 0.48);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.42), rgba(255, 255, 255, 0.18)),
    rgba(255, 248, 240, 0.24);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.68),
    var(--clin-shadow-soft);
}

.clin-dashboard-topbar__meta{
  min-width: 0;
}

.clin-dashboard-heading{
  margin: .8rem 0 0;
  font-family: var(--font-display);
  font-size: clamp(2rem, 3.2vw, 3.1rem);
  line-height: .98;
  letter-spacing: -.05em;
  color: var(--text);
}

.clin-dashboard-topbar__actions{
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  align-items: center;
}

.clin-dashboard-nav{
  display: flex;
  flex-wrap: wrap;
  gap: .7rem;
  align-items: flex-start;
}

.clin-dashboard-nav__link{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.9rem;
  padding: 0 1rem;
  border-radius: 18px;
  border: 1px solid rgba(37, 86, 64, 0.14);
  background: rgba(255, 255, 255, 0.54);
  color: var(--accent-highlight);
  font-size: .92rem;
  font-weight: 700;
  text-decoration: none;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.74);
  transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.clin-dashboard-nav__link:hover{
  transform: translateY(-1px);
  background: rgba(255, 255, 255, 0.72);
  color: var(--accent-strong);
}

.clin-dashboard-nav__link--active,
.clin-dashboard-nav__link--accent{
  background: linear-gradient(135deg, rgba(37, 86, 64, 0.98), rgba(50, 105, 78, 0.96));
  border-color: rgba(37, 86, 64, 0.18);
  color: #faf5ef;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.16),
    0 18px 36px -24px rgba(37, 86, 64, 0.28);
}

.clin-dashboard-nav__link--active:hover,
.clin-dashboard-nav__link--accent:hover{
  background: linear-gradient(135deg, rgba(31, 74, 55, 1), rgba(43, 92, 68, 0.98));
  color: #faf5ef;
}

.clin-dashboard-date{
  display: inline-flex;
  align-items: center;
  min-height: 2.9rem;
  padding: 0 1rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.44);
  background: rgba(255, 255, 255, 0.24);
  color: var(--text-soft);
  font-size: .9rem;
  font-weight: 700;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.66);
}

.clin-sidebar-rail{
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
}

.clin-sidebar-rail__panel{
  transition: width .26s ease, box-shadow .26s ease, transform .26s ease;
}

.clin-sidebar-header{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
}

.clin-sidebar-profile{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
}

.clin-sidebar-profile__avatar{
  display: grid;
  width: 2.45rem;
  height: 2.45rem;
  place-items: center;
  flex-shrink: 0;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(37, 86, 64, 0.96), rgba(50, 105, 78, 0.94));
  color: #faf5ef;
  font-size: .95rem;
  font-weight: 800;
  box-shadow: 0 16px 30px -22px rgba(37, 86, 64, 0.34);
}

.clin-sidebar-profile__meta{
  min-width: 0;
  flex: 1 1 auto;
}

.clin-sidebar-profile__name{
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text);
  line-height: 1.2;
}

.clin-sidebar-profile__copy{
  margin: .15rem 0 0;
  color: var(--text-soft);
  font-size: .92rem;
  line-height: 1.35;
}

.clin-sidebar-summary{
  min-width: 0;
  transition: opacity .22s ease, transform .22s ease;
}

.clin-sidebar-summary .clin-copy{
  max-width: 18rem;
}

.clin-sidebar-sections{
  display: flex;
  flex-direction: column;
  gap: 1.35rem;
}

.clin-sidebar-section{
  min-width: 0;
}

.clin-sidebar-section__title{
  color: #79859b;
  font-size: .8rem;
  font-weight: 800;
  letter-spacing: .22em;
  text-transform: uppercase;
}

.clin-sidebar-toggle{
  width: 2.75rem;
  padding-inline: 0;
  flex-shrink: 0;
}

.clin-sidebar-toggle [data-sidebar-toggle-open],
.clin-sidebar-toggle [data-sidebar-toggle-closed]{
  display: grid;
  place-items: center;
}

.clin-sidebar-toggle [data-sidebar-toggle-closed]{
  display: none;
}

.clin-action-stack{
  display: flex;
  flex-direction: column;
  gap: .75rem;
}

.clin-action-stack .clin-action-tile{
  min-height: 0;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: .85rem;
  padding: .85rem;
}

.clin-action-stack .clin-action-tile__label{
  flex: 1 1 auto;
}

.clin-action-stack .shortcut-circle{
  width: 3rem;
  height: 3rem;
  flex-shrink: 0;
}

.clin-action-stack .shortcut-circle img{
  width: 1.55rem;
  height: 1.55rem;
}

.clin-action-tile__label{
  display: block;
  transition: opacity .2s ease, transform .2s ease;
}

.clin-action-tile--active{
  border-color: rgba(118, 224, 170, 0.56);
  background:
    linear-gradient(180deg, rgba(201, 234, 213, 0.82), rgba(192, 228, 206, 0.56)),
    rgba(203, 231, 212, 0.62) !important;
}

.clin-sidebar-footer{
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(124, 107, 87, 0.12);
}

.clin-sidebar-footer__name{
  font-size: 1rem;
  font-weight: 700;
  color: var(--text);
}

.clin-sidebar-footer__copy{
  margin: .15rem 0 0;
  color: var(--text-soft);
  font-size: .9rem;
}

.clin-sidebar-footer__link{
  display: inline-flex;
  margin-top: .55rem;
  color: var(--text-soft);
  font-weight: 700;
  text-decoration: none;
}

.clin-sidebar-footer__link:hover{
  color: var(--accent-strong);
}

.clin-sidebar-rail > *{
  min-width: 0;
}

@media (min-width: 640px){
  .clin-app-shell{
    gap: 1.5rem;
  }

  .clin-workspace-grid,
  .clin-equal-grid{
    gap: 1.25rem;
  }

  .clin-panel-header{
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
  }

}

@media (min-width: 768px){
  .clin-patient-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px){
  .clin-fixed-panel{
    height: clamp(22rem, 44vh, 31rem);
  }

  .clin-fixed-panel--tall{
    height: clamp(25rem, 54vh, 37rem);
  }

  .clin-fixed-panel--xl{
    height: clamp(31rem, 72vh, 46rem);
  }

  .clin-dashboard-workspace{
    --clin-sidebar-width: 18rem;
    grid-template-columns: var(--clin-sidebar-width) minmax(0, 1fr);
    min-height: var(--clin-desktop-frame-height);
    align-items: start;
    transition: grid-template-columns .28s ease;
  }

  .clin-dashboard-workspace.is-collapsed{
    --clin-sidebar-width: 5.75rem;
  }

  .clin-dashboard-workspace > .clin-sidebar-rail{
    align-self: start;
  }

  .clin-sidebar-rail{
    position: sticky;
    top: calc(var(--app-bar-h) + 1rem);
    align-self: stretch;
  }

  .clin-sidebar-rail__panel{
    min-height: var(--clin-desktop-frame-height);
    max-height: var(--clin-desktop-frame-height);
  }

  .clin-dashboard-workspace.is-collapsed .clin-sidebar-summary{
    opacity: 0;
    transform: translateY(-6px);
    pointer-events: none;
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
  }

  .clin-dashboard-workspace.is-collapsed .clin-sidebar-header{
    justify-content: center;
  }

  .clin-dashboard-workspace.is-collapsed .clin-sidebar-toggle [data-sidebar-toggle-open]{
    display: none;
  }

  .clin-dashboard-workspace.is-collapsed .clin-sidebar-toggle [data-sidebar-toggle-closed]{
    display: grid;
  }

  .clin-dashboard-workspace.is-collapsed .clin-sidebar-rail .clin-panel-scroll-body{
    margin-top: .5rem;
  }

  .clin-dashboard-workspace.is-collapsed .clin-sidebar-rail .clin-action-tile{
    min-height: 4.75rem;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: .7rem .45rem;
    text-align: center;
  }

  .clin-dashboard-workspace.is-collapsed .clin-sidebar-rail .clin-action-tile__label{
    opacity: 0;
    transform: translateY(4px);
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
  }

  .clin-dashboard-workspace.is-collapsed .clin-sidebar-rail .shortcut-circle{
    width: 3rem;
    height: 3rem;
  }

  .clin-dashboard-workspace.is-collapsed .clin-sidebar-rail .shortcut-circle img{
    width: 1.6rem;
    height: 1.6rem;
  }

  .clin-dashboard-workspace.is-collapsed .clin-sidebar-rail .clin-pill{
    right: .35rem;
    top: .35rem;
    min-width: 1.15rem;
    height: 1.15rem;
    padding-inline: .2rem;
    font-size: .62rem;
  }
}

@media (min-width: 1280px){
  .clin-patient-grid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.clin-stat-grid{
  display: grid;
  gap: .85rem;
  grid-auto-rows: 1fr;
}

@media (min-width: 640px){
  .clin-stat-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1280px){
  .clin-stat-grid--four{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.clin-stat-card{
  display: flex;
  flex-direction: column;
  min-height: 100%;
  gap: .55rem;
  padding: 1rem;
  border-radius: 24px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.28), rgba(255, 255, 255, 0.12)),
    rgba(241, 252, 255, 0.1);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.4),
    var(--clin-shadow-soft);
}

.clin-stat-card__label{
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.clin-stat-card__value{
  font-size: clamp(1.8rem, 2.5vw, 2.5rem);
  font-weight: 700;
  line-height: 1;
  color: var(--text);
}

.clin-stat-card__hint{
  margin: 0;
  color: var(--text-soft);
  font-size: .92rem;
  line-height: 1.5;
}

.clin-action-grid{
  display: grid;
  gap: .9rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: 1fr;
}

@media (min-width: 960px){
  .clin-action-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.clin-action-tile{
  display: flex;
  min-height: 7.4rem;
  height: 100%;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: .9rem;
  padding: .95rem;
  text-decoration: none;
  color: var(--text);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background-color .18s ease;
}

.clin-action-tile:hover{
  transform: translateY(-2px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.5),
    var(--clin-shadow-strong);
}

.clin-action-tile__icon,
.clin-avatar{
  display: grid;
  place-items: center;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.34), rgba(255, 255, 255, 0.12)),
    rgba(239, 253, 255, 0.12);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.52),
    var(--clin-shadow-soft);
  backdrop-filter: blur(18px) saturate(160%);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
}

.clin-action-tile__icon{
  width: 3.55rem;
  height: 3.55rem;
}

.clin-avatar{
  width: 3rem;
  height: 3rem;
  overflow: hidden;
  font-weight: 800;
  color: var(--accent-strong);
}

.clin-avatar--lg{
  width: 8.5rem;
  height: 8.5rem;
}

.clin-avatar img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.clin-kicker{
  margin: 0;
  font-size: .95rem;
  font-weight: 700;
  color: var(--text);
}

.clin-muted{
  color: var(--muted);
}

.clin-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-height: var(--nou-button-height);
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  padding: 0 1rem;
  font-size: .92rem;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  color: var(--text);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.34), rgba(255, 255, 255, 0.14)),
    rgba(239, 252, 255, 0.12);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.5),
    var(--clin-shadow-soft);
  backdrop-filter: blur(18px) saturate(160%);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
  transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease, color .18s ease;
}

.clin-btn:hover{
  transform: translateY(-1px);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.16)),
    rgba(244, 253, 255, 0.14);
  color: var(--accent-strong);
}

.clin-btn--accent{
  background:
    linear-gradient(135deg, rgba(23, 127, 149, 0.98), rgba(39, 184, 214, 0.96));
  border-color: rgba(147, 229, 243, 0.2);
  color: #f8fdff;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.14),
    0 28px 54px -34px rgba(12, 85, 104, 0.68);
}

.clin-btn--accent:hover{
  background:
    linear-gradient(135deg, rgba(20, 118, 138, 1), rgba(31, 167, 194, 0.98));
  color: #f8fdff;
}

.clin-btn--dark{
  background:
    linear-gradient(135deg, rgba(8, 34, 41, 0.96), rgba(18, 55, 62, 0.94));
  border-color: rgba(164, 220, 228, 0.12);
  color: #f8fdff;
}

.clin-btn--dark:hover{
  background:
    linear-gradient(135deg, rgba(7, 31, 38, 1), rgba(15, 50, 57, 0.98));
  color: #f8fdff;
}

.clin-btn--danger{
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.04)),
    rgba(229, 57, 53, 0.18);
  border-color: rgba(229, 57, 53, 0.24);
  color: #ad3633;
}

.clin-btn--danger:hover{
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0.06)),
    rgba(229, 57, 53, 0.24);
  color: #992e2c;
}

.clin-btn--ghost{
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.12);
  box-shadow: none;
}

.clin-pill{
  display: inline-flex;
  align-items: center;
  gap: .38rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  padding: .42rem .72rem;
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.12)),
    rgba(244, 252, 255, 0.08);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.44);
}

.clin-pill--teal{ color: #175c53; background: rgba(212, 245, 239, 0.7); border-color: rgba(44, 114, 100, 0.16); }
.clin-pill--emerald{ color: #205844; background: rgba(223, 244, 233, 0.74); border-color: rgba(39, 98, 76, 0.16); }
.clin-pill--amber{ color: #8b6327; background: rgba(247, 237, 215, 0.74); border-color: rgba(139, 99, 39, 0.16); }
.clin-pill--sky{ color: #315f73; background: rgba(222, 238, 247, 0.74); border-color: rgba(61, 101, 119, 0.16); }
.clin-pill--rose{ color: #8c4958; background: rgba(248, 230, 236, 0.74); border-color: rgba(146, 80, 94, 0.16); }
.clin-pill--neutral{ color: var(--text-soft); }

.clin-alert{
  border-radius: 20px;
  padding: .95rem 1rem;
  border: 1px solid rgba(255, 255, 255, 0.2);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.24), rgba(255, 255, 255, 0.08)),
    rgba(242, 252, 255, 0.12);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.34),
    var(--clin-shadow-soft);
  font-size: .92rem;
}

.clin-alert--success{ color: #27624c; background: rgba(220, 241, 231, 0.78); }
.clin-alert--error{ color: #8d453d; background: rgba(248, 230, 226, 0.78); }
.clin-alert--warning{ color: #8b6327; background: rgba(246, 236, 214, 0.78); }
.clin-alert--info{ color: var(--text-soft); }

.clin-toolbar{
  display: grid;
  gap: .85rem;
}

@media (min-width: 1024px){
  .clin-toolbar{
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
  }
}

.clin-form-grid{
  display: grid;
  gap: 1rem;
}

.clin-form-grid--two{
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

.clin-form-grid--three{
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

@media (min-width: 768px){
  .clin-form-grid--two{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 900px){
  .clin-form-grid--three{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.clin-field-label{
  display: block;
  margin-bottom: .55rem;
  font-size: .84rem;
  font-weight: 700;
  color: #2b3a40;
}

.clin-form-actions{
  display: flex;
  flex-direction: column-reverse;
  gap: .75rem;
}

@media (min-width: 640px){
  .clin-form-actions{
    flex-direction: row;
    justify-content: flex-end;
  }
}

.clin-checkbox-row{
  display: flex;
  align-items: flex-start;
  gap: .8rem;
  padding: .95rem 1rem;
  border-radius: 22px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0.08)),
    rgba(243, 253, 255, 0.08);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.34),
    var(--clin-shadow-soft);
}

.clin-data-grid{
  display: grid;
  gap: .75rem 1rem;
}

@media (min-width: 768px){
  .clin-data-grid--split{
    grid-template-columns: 9rem minmax(0, 1fr);
  }
}

.clin-data-grid dt{
  color: var(--muted);
  font-size: .8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.clin-data-grid dd{
  margin: 0;
  color: var(--text);
}

.clin-dropzone{
  display: grid;
  place-items: center;
  gap: .55rem;
  padding: 2.5rem 1.5rem;
  text-align: center;
  border-radius: 28px;
  border: 1px dashed rgba(47, 182, 211, 0.38);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.46), rgba(255, 255, 255, 0.16)),
    rgba(243, 253, 255, 0.16);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.58),
    var(--clin-shadow-soft);
}

.clin-filter-row{
  display: grid;
  gap: .75rem;
}

@media (min-width: 768px){
  .clin-filter-row{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.clin-filter-row--wide{
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

@media (min-width: 1024px){
  .clin-filter-row--wide{
    grid-template-columns: minmax(0, 1fr) 14rem auto;
  }
}

.clin-filter-row.nou-control-row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem;
}

.clin-filter-row.nou-control-row > :is(.clin-search-wrap, .nou-search-wrap){
  flex: 1 1 min(100%, 22rem);
}

.clin-filter-row.nou-control-row > form{
  flex: 1 1 min(100%, 22rem);
}

.clin-filter-row.nou-control-row > select{
  flex: 0 1 16rem;
}

.clin-filter-row.nou-control-row > input:not([type="hidden"]){
  flex: 0 1 16rem;
}

.clin-filter-row.nou-control-row > :is(.flex, button, .clin-btn, .nou-btn){
  flex: 0 0 auto;
}

.clinician-console input[type="text"],
.clinician-console input[type="email"],
.clinician-console input[type="password"],
.clinician-console input[type="search"],
.clinician-console input[type="tel"],
.clinician-console input[type="number"],
.clinician-console input[type="date"],
.clinician-console input[type="time"],
.clinician-console input[type="datetime-local"],
.clinician-console input[type="month"],
.clinician-console input[type="url"],
.clinician-console input[type="file"]:not(.hidden):not(.sr-only),
.clinician-console select,
.clinician-console textarea{
  width: 100%;
  min-height: var(--nou-control-height);
  border-radius: 18px;
  border: 1px solid rgba(32, 91, 108, 0.2);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.54), rgba(255, 255, 255, 0.18)),
    rgba(243, 253, 255, 0.2);
  color: var(--text);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.62),
    0 20px 42px -30px rgba(6, 20, 26, 0.42);
  backdrop-filter: blur(18px) saturate(165%);
  -webkit-backdrop-filter: blur(18px) saturate(165%);
}

.clinician-console select{
  padding-right: 3.15rem;
  appearance: none;
  -webkit-appearance: none;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23576b73' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"),
    linear-gradient(180deg, rgba(255, 255, 255, 0.54), rgba(255, 255, 255, 0.18)),
    rgba(243, 253, 255, 0.2);
  background-repeat: no-repeat, no-repeat, no-repeat;
  background-position: right 1rem center, 0 0, 0 0;
  background-size: 1.15rem 1.15rem, 100% 100%, 100% 100%;
}

.clinician-console input::placeholder,
.clinician-console textarea::placeholder{
  color: var(--nou-control-placeholder);
  opacity: 1;
}

.clinician-console input:focus,
.clinician-console textarea:focus,
.clinician-console select:focus{
  outline: none;
  border-color: rgba(47, 182, 211, 0.62);
  box-shadow:
    var(--nou-focus-ring),
    0 24px 44px -30px rgba(6, 20, 26, 0.48);
}

.clin-search-wrap{
  position: relative;
  display: flex;
  align-items: center;
  width: min(100%, var(--nou-search-max));
  min-height: var(--nou-control-height);
  border-radius: 999px;
  overflow: hidden;
  border: 1px solid rgba(32, 91, 108, 0.2);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.56), rgba(255, 255, 255, 0.2)),
    rgba(236, 248, 252, 0.2);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.64),
    0 16px 34px -28px rgba(6, 20, 26, 0.36);
  backdrop-filter: blur(18px) saturate(165%);
  -webkit-backdrop-filter: blur(18px) saturate(165%);
}

.clin-search-wrap:focus-within{
  border-color: rgba(47, 182, 211, 0.62);
  box-shadow:
    var(--nou-focus-ring),
    0 22px 40px -30px rgba(6, 20, 26, 0.42);
}

.clin-search-wrap > input{
  width: 100%;
  border: 0;
  border-radius: inherit;
  background: transparent;
  box-shadow: none;
  min-height: calc(var(--nou-control-height) - 2px);
  padding: 0 3.05rem 0 1.1rem;
  color: var(--text);
  outline: 0;
}

.clin-search-wrap:has(svg[class*="left-"]) > input{
  padding: 0 1.1rem 0 3.05rem;
}

.clin-search-wrap > input:focus{
  border-color: transparent;
  box-shadow: none;
}

.clin-search-wrap > input::placeholder{
  color: var(--nou-control-placeholder);
  opacity: 1;
}

.clin-search-wrap svg{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: rgba(41, 72, 82, 0.58);
}

.clin-search-wrap svg:not([class*="left-"]){
  right: 1.05rem;
}

.clin-search-wrap svg[class*="left-"]{
  left: 1.05rem;
  right: auto;
}

.clin-table-shell{
  padding: .4rem;
}

.clinician-console table{
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

.clinician-console thead{
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0.08)),
    rgba(240, 252, 255, 0.08);
}

.clinician-console thead th{
  padding: .9rem .95rem;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--text-soft);
}

.clinician-console tbody td{
  padding: 1rem .95rem;
  border-top: 1px solid rgba(92, 106, 98, 0.08);
  color: var(--text);
  vertical-align: top;
}

.clinician-console tbody tr:hover td{
  background: rgba(255, 255, 255, 0.14);
}

.clin-empty{
  display: grid;
  place-items: center;
  min-height: 11rem;
  padding: 2rem;
  text-align: center;
  color: var(--muted);
  border-radius: 28px;
  border: 1px dashed rgba(255, 255, 255, 0.2);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.06)),
    rgba(243, 253, 255, 0.06);
}

.clin-thread-layout{
  display: grid;
  grid-template-columns: 1fr;
  min-height: 0;
}

@media (min-width: 768px){
  .clin-thread-layout{
    grid-template-columns: 20rem minmax(0, 1fr);
  }
}

.clin-thread-sidebar{
  min-height: 0;
  border-right: 1px solid rgba(255, 255, 255, 0.12);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.08)),
    rgba(243, 252, 255, 0.08);
}

.clin-thread-panel{
  display: flex;
  min-height: 0;
  flex-direction: column;
}

.clin-thread-header{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.1rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.clin-thread-body{
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: 1.15rem;
}

.clin-composer{
  flex-shrink: 0;
  padding: 1rem 1.1rem;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.08)),
    rgba(243, 252, 255, 0.08);
}

.clin-message-workspace{
  overflow: hidden;
  height: 100%;
}

.clin-message-layout{
  display: grid;
  min-height: 0;
  grid-template-columns: minmax(0, 1fr);
}

.clin-message-sidebar,
.clin-message-panel{
  min-width: 0;
  min-height: 0;
}

.clin-message-sidebar{
  display: flex;
  min-height: 16rem;
  max-height: clamp(16rem, 36vh, 22rem);
  flex-direction: column;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.08)),
    rgba(243, 252, 255, 0.08);
}

.clin-message-sidebar__top{
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1rem;
}

.clin-message-sidebar__list{
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 0 1rem 1rem;
}

.clin-message-panel{
  display: flex;
  min-height: clamp(24rem, 58vh, 34rem);
  flex-direction: column;
}

.clin-message-thread{
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 1rem;
}

.clin-message-composer{
  position: sticky;
  bottom: 0;
}

.clin-message-empty{
  min-height: 100%;
}

.clin-list-item.is-active{
  border-color: rgba(54, 144, 127, 0.28);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.42), rgba(255, 255, 255, 0.18)),
    rgba(218, 248, 241, 0.26);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.64),
    0 20px 40px -28px rgba(7, 46, 42, 0.36);
}

@media (min-width: 768px){
  .clin-message-sidebar__top,
  .clin-message-thread,
  .clin-message-composer{
    padding-inline: 1.15rem;
  }
}

@media (min-width: 1024px){
  .clin-message-layout{
    grid-template-columns: 20rem minmax(0, 1fr);
  }

  .clin-message-workspace--page .clin-message-layout{
    height: clamp(34rem, 74vh, 48rem);
  }

  .clin-message-workspace--compact .clin-message-layout{
    height: clamp(29rem, 58vh, 38rem);
  }

  .clin-message-sidebar{
    height: 100%;
    max-height: none;
    border-right: 1px solid rgba(255, 255, 255, 0.12);
    border-bottom: 0;
  }

  .clin-message-sidebar__top{
    padding: 1.15rem;
  }

  .clin-message-sidebar__list{
    padding: 0 1.15rem 1.15rem;
  }

  .clin-message-panel{
    min-height: 0;
  }
}

.clin-bubble{
  max-width: min(82%, 32rem);
  border-radius: 24px;
  padding: .88rem 1rem;
  box-shadow: 0 20px 40px -28px rgba(4, 14, 18, 0.54);
  backdrop-filter: blur(18px) saturate(165%);
  -webkit-backdrop-filter: blur(18px) saturate(165%);
}

.clin-bubble--me{
  background:
    linear-gradient(135deg, rgba(23, 127, 149, 0.98), rgba(39, 184, 214, 0.96));
  color: #f8fdff;
}

.clin-bubble--other{
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.34), rgba(255, 255, 255, 0.12)),
    rgba(243, 253, 255, 0.12);
  color: var(--text);
  border: 1px solid rgba(255, 255, 255, 0.2);
}

.clin-dialog-backdrop{
  background:
    radial-gradient(circle at 20% 10%, rgba(92, 218, 198, 0.12), transparent 24%),
    rgba(7, 17, 23, 0.52);
  backdrop-filter: blur(14px);
}

.clin-modal-panel{
  padding: 1.25rem;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.12)),
    rgba(243, 253, 255, 0.14);
}

.clin-note{
  font-size: .9rem;
  line-height: 1.6;
  color: var(--text-soft);
}

.clin-link{
  color: var(--accent);
  font-weight: 700;
  text-decoration: none;
}

.clin-link:hover{
  color: var(--accent-strong);
}

/* ---- Patient portal shell ---------------------------------------------- */
.portal-console{
  width: 100%;
}

.portal-shell{
  display: flex;
  min-width: 0;
  min-height: calc(100dvh - var(--app-bar-h));
  flex-direction: column;
  gap: 1rem;
  background: transparent;
}

.portal-shell__frame{
  width: 100%;
  max-width: none;
  padding-bottom: 5.75rem;
}

@media (min-width: 768px){
  .portal-shell__frame{
    padding-bottom: 1rem;
  }
}

.portal-page{
  width: min(100%, 76rem);
  margin-inline: auto;
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 1rem;
}

.portal-page--narrow{
  max-width: 64rem;
}

.portal-page--medium{
  max-width: 70rem;
}

.portal-page--wide{
  max-width: 80rem;
}

.portal-toolbar{
  display: flex;
  flex-direction: column;
  gap: .85rem;
}

@media (min-width: 768px){
  .portal-toolbar{
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
  }
}

.portal-toolbar__actions{
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  align-items: center;
}

.portal-hero-panel{
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: 32px;
  border: 1px solid var(--clin-surface-border-strong);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.28), rgba(255, 255, 255, 0.1)),
    rgba(243, 253, 255, 0.12);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.54),
    inset 0 -1px 0 rgba(255, 255, 255, 0.06),
    var(--clin-shadow-strong);
  backdrop-filter: blur(34px) saturate(175%);
  -webkit-backdrop-filter: blur(34px) saturate(175%);
}

.portal-hero-panel::before{
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.32), rgba(255, 255, 255, 0.12) 42%, transparent 74%),
    radial-gradient(circle at 12% 12%, rgba(93, 226, 206, 0.18), transparent 26%),
    radial-gradient(circle at 88% 12%, rgba(142, 155, 255, 0.16), transparent 24%);
  pointer-events: none;
}

.portal-hero-panel > *{
  position: relative;
  z-index: 1;
}

.portal-hero-panel--accent{
  background:
    radial-gradient(circle at 12% 12%, rgba(97, 228, 209, 0.18), transparent 24%),
    radial-gradient(circle at 88% 10%, rgba(153, 161, 255, 0.18), transparent 22%),
    radial-gradient(circle at 72% 82%, rgba(84, 197, 177, 0.14), transparent 26%),
    linear-gradient(135deg, rgba(244, 250, 255, 0.26), rgba(220, 236, 255, 0.14)),
    rgba(243, 253, 255, 0.14);
}

.portal-kicker{
  margin: 0;
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: rgba(224, 246, 242, 0.86);
}

.portal-title{
  margin: .75rem 0 0;
  font-family: var(--font-display);
  font-size: clamp(2rem, 3.1vw, 3rem);
  line-height: 1;
  letter-spacing: -.04em;
  color: #f3fbf9;
}

.portal-copy{
  margin: .8rem 0 0;
  max-width: 44rem;
  color: rgba(236, 246, 248, 0.84);
  font-size: .98rem;
  line-height: 1.75;
}

.portal-meta-grid,
.portal-stats-grid,
.portal-action-grid{
  display: grid;
  gap: .9rem;
}

.portal-meta-grid,
.portal-stats-grid{
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.portal-action-grid{
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 768px){
  .portal-action-grid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1280px){
  .portal-stats-grid--four{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .portal-action-grid--five{
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}

.portal-stat-card{
  position: relative;
  overflow: hidden;
  border-radius: 24px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.08)),
    rgba(243, 253, 255, 0.1);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.34),
    var(--clin-shadow-soft);
  padding: 1rem;
}

.portal-stat-card__label{
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(222, 244, 240, 0.76);
}

.portal-stat-card__value{
  margin-top: .65rem;
  font-size: clamp(1.7rem, 2.2vw, 2.35rem);
  line-height: 1;
  font-weight: 700;
  color: #f7fbfc;
}

.portal-stat-card__hint{
  margin: .5rem 0 0;
  color: rgba(234, 244, 247, 0.76);
  font-size: .86rem;
  line-height: 1.55;
}

.portal-pill{
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.26);
  padding: .42rem .8rem;
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  backdrop-filter: blur(16px) saturate(140%);
  -webkit-backdrop-filter: blur(16px) saturate(140%);
}

.portal-pill--soft{
  background: rgba(255, 255, 255, 0.12);
  color: rgba(235, 245, 248, 0.88);
}

.portal-pill--amber{
  background: rgba(250, 214, 118, 0.18);
  color: #f7d899;
}

.portal-pill--emerald{
  background: rgba(119, 232, 191, 0.18);
  color: #c8f1df;
}

.portal-note{
  font-size: .9rem;
  line-height: 1.65;
  color: var(--text-soft);
}

.portal-empty{
  display: grid;
  place-items: center;
  min-height: 10rem;
  border-radius: 28px;
  border: 1px dashed rgba(255, 255, 255, 0.18);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.06)),
    rgba(243, 253, 255, 0.08);
  color: rgba(232, 243, 246, 0.78);
  padding: 1.4rem;
  text-align: center;
}

.reception-page{
  width: min(100%, var(--nou-page-max));
  margin-inline: auto;
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 1rem;
}

.reception-page--narrow{
  max-width: 64rem;
}

.reception-shortcuts-grid{
  display: grid;
  gap: .9rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.reception-shortcut{
  display: flex;
  min-height: 7.4rem;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
  text-decoration: none;
  color: var(--text);
}

.reception-shortcut__icon{
  display: grid;
  width: 3.4rem;
  height: 3.4rem;
  place-items: center;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.34), rgba(255, 255, 255, 0.12)),
    rgba(239, 253, 255, 0.12);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.52),
    var(--clin-shadow-soft);
  backdrop-filter: blur(18px) saturate(160%);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
}

.reception-shortcut__icon img{
  width: 1.6rem;
  height: 1.6rem;
  object-fit: contain;
}

.portal-bottom-nav__shell{
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.24), rgba(255, 255, 255, 0.08)),
    rgba(243, 253, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.34);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.62),
    inset 0 -1px 0 rgba(255, 255, 255, 0.08),
    0 32px 72px -34px rgba(4, 16, 21, 0.54);
  backdrop-filter: blur(34px) saturate(165%);
  -webkit-backdrop-filter: blur(34px) saturate(165%);
}

.portal-bottom-nav__shell::before{
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.48), transparent 55%),
    radial-gradient(circle at 50% -10%, rgba(255, 255, 255, 0.44), transparent 42%);
  pointer-events: none;
}

.portal-nav-item{
  position: relative;
  z-index: 1;
}

.portal-nav-icon{
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.3);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.66),
    0 14px 28px -24px rgba(4, 16, 21, 0.42);
  backdrop-filter: blur(18px) saturate(145%);
  -webkit-backdrop-filter: blur(18px) saturate(145%);
}

.portal-nav-icon::before{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.34), transparent 60%);
  pointer-events: none;
}

.portal-nav-icon--primary{
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.24),
    0 20px 38px -22px rgba(17, 101, 121, 0.62);
}

.portal-nav-item--active .portal-nav-icon{
  background: rgba(255, 255, 255, 0.28) !important;
  border-color: rgba(255, 255, 255, 0.48) !important;
}

.portal-nav-item--active{
  color: var(--accent-strong) !important;
}

.portal-more-sheet__panel{
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.26), rgba(255, 255, 255, 0.1)),
    rgba(243, 253, 255, 0.14);
  border-color: rgba(255, 255, 255, 0.28) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.66),
    0 -22px 54px -26px rgba(4, 16, 21, 0.52) !important;
  backdrop-filter: blur(34px) saturate(160%);
  -webkit-backdrop-filter: blur(34px) saturate(160%);
}

.portal-sheet-card{
  position: relative;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.16);
  border: 1px solid rgba(255, 255, 255, 0.34);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.58),
    0 18px 34px -26px rgba(7, 35, 43, 0.22);
  backdrop-filter: blur(24px) saturate(150%);
  -webkit-backdrop-filter: blur(24px) saturate(150%);
}

.portal-sheet-card::before{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.3), transparent 55%);
  pointer-events: none;
}

.portal-sheet-card--accent{
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.62),
    0 20px 40px -28px rgba(17, 101, 121, 0.26);
}

.portal-install-app{
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.24),
    0 20px 40px -26px rgba(17, 101, 121, 0.66);
}

.glass-auth-card{
  position: relative;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.16) !important;
  border: 1px solid rgba(255, 255, 255, 0.36);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.6),
    inset 0 -1px 0 rgba(255, 255, 255, 0.08),
    0 30px 78px -38px rgba(7, 35, 43, 0.36);
  backdrop-filter: blur(30px) saturate(160%);
  -webkit-backdrop-filter: blur(30px) saturate(160%);
}

.glass-auth-card::before{
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.3), transparent 58%),
    radial-gradient(circle at 20% 0%, rgba(255, 255, 255, 0.28), transparent 26%);
  pointer-events: none;
}

.glass-auth-support{
  position: relative;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.16) !important;
  border: 1px solid rgba(255, 255, 255, 0.34);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.58),
    0 18px 34px -28px rgba(17, 101, 121, 0.22);
  backdrop-filter: blur(24px) saturate(150%);
  -webkit-backdrop-filter: blur(24px) saturate(150%);
}

.glass-auth-shell{
  position: relative;
}

.glass-auth-shell::before{
  content: none;
}

/* ---- Legacy dashboard helpers ------------------------------------------ */
.consultation-shell{
  min-height: 360px;
  display: flex;
  flex-direction: column;
}

.shortcut-circle{
  width: 72px;
  height: 72px;
  border-radius: 999px;
  display:grid;
  place-items:center;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.34), rgba(255, 255, 255, 0.12)),
    rgba(243, 253, 255, 0.12);
  position:relative;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.46),
    0 22px 44px -28px rgba(4, 14, 18, 0.54);
  border: 1px solid rgba(255, 255, 255, 0.24);
  backdrop-filter: blur(18px) saturate(165%);
  -webkit-backdrop-filter: blur(18px) saturate(165%);
}

.shortcut-circle img{
  width: 34px;
  height: 34px;
}

.mobile-dock{
  position: fixed;
  left: 12px;
  right: 12px;
  bottom: calc(10px + env(safe-area-inset-bottom, 0px));
  z-index: 50;
  display: none;
  background: rgba(236, 247, 251, 0.52);
  border: 1px solid rgba(255, 255, 255, 0.55);
  border-radius: 28px;
  box-shadow: 0 20px 48px -28px rgba(7, 35, 43, 0.34);
  padding: 14px 18px;
  backdrop-filter: blur(24px) saturate(140%);
  transform: translateZ(0);
}

.mobile-dock--floating{
  left: 50%;
  right: auto;
  width: auto;
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  transform: translateX(-50%);
}

.mobile-dock__row{
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  align-items: center;
  gap: 14px;
}

.mobile-dock__row--single{
  grid-template-columns: minmax(0, 1fr);
}

.mobile-dock__row--single .dock-btn{
  width: 100%;
}

.dock-btn{
  display:flex;
  flex-direction: column;
  align-items:center;
  gap: 8px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  text-decoration:none;
  color: var(--text);
}

.dock-btn__circle{
  width: 64px;
  height: 64px;
  border-radius: 999px;
  display:grid;
  place-items:center;
  background: rgba(247, 253, 255, 0.92);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.82), var(--shadow-soft);
  border: 1px solid rgba(61, 96, 107, 0.1);
}

.dock-btn__circle img{
  width: 30px;
  height: 30px;
}

.dock-btn__label{
  font-size: 12px;
  font-weight: 700;
  color: var(--text-soft);
}

.dock-btn--primary .dock-btn__circle{
  background: var(--accent);
  color:#fff;
  border-color: transparent;
}

.dock-btn--danger .dock-btn__circle{
  background: var(--danger);
  color:#fff;
  border-color: transparent;
}

.dock-btn--icon-only{
  display: grid;
  place-items: center;
  gap: 0;
}

@media (max-width: 767.98px){
  .mobile-dock{ display:block; }
  .font-mobile{ font-size: 10px !important; }
}

.offcanvas{
  position: fixed;
  inset: 0;
  z-index: 60;
  display: none;
}

.offcanvas.is-open{
  display:block;
}

.offcanvas__mask{
  position:absolute;
  inset:0;
  background: rgba(8, 38, 47, 0.38);
  backdrop-filter: blur(4px);
}

.offcanvas__panel{
  position:absolute;
  top: env(safe-area-inset-top,0px);
  bottom: env(safe-area-inset-bottom,0px);
  left: 10px;
  width: 140px;
  border-radius: 22px;
  background: rgba(236, 247, 251, 0.78);
  border: 1px solid rgba(255,255,255,0.52);
  box-shadow: 0 24px 60px -28px rgba(7, 35, 43, 0.32);
  backdrop-filter: blur(24px) saturate(140%);
  padding: 18px;
  transform: translateZ(0);
  margin-top: 24px;
  margin-bottom: 10px;
  color: var(--text);
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}

.offcanvas__list{
  display:flex;
  flex-direction: column;
  gap: 18px;
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-right: 4px;
  scrollbar-width: thin;
  scrollbar-color: rgba(47, 182, 211, 0.55) rgba(47, 182, 211, 0.08);
}

.offcanvas__list::-webkit-scrollbar{
  width: .42rem;
}

.offcanvas__list::-webkit-scrollbar-track{
  background: rgba(47, 182, 211, 0.08);
  border-radius: 999px;
}

.offcanvas__list::-webkit-scrollbar-thumb{
  background: rgba(47, 182, 211, 0.55);
  border-radius: 999px;
}

.offcanvas__item{
  display:flex;
  flex-direction: column;
  align-items:center;
  gap: 8px;
  text-decoration:none;
  color: var(--text);
}

.offcanvas__circle{
  width: 80px;
  height: 80px;
  border-radius: 999px;
  display:grid;
  place-items:center;
  background: rgba(247, 253, 255, 0.94);
  border: 1px solid rgba(61, 96, 107, 0.1);
  box-shadow: var(--shadow-soft);
}

.offcanvas__circle img{
  width: 34px;
  height: 34px;
}

/* ---- Mobile dashboard and portal app pass ------------------------------ */
@media (max-width: 767.98px){
  .clinician-console{
    width: 100%;
    padding: .85rem .65rem calc(6.8rem + env(safe-area-inset-bottom, 0px));
  }

  .clin-shell{
    overflow: visible;
    border-radius: 30px;
    padding: .75rem;
  }

  .clin-dashboard-mobile,
  .portal-shell,
  .reception-page{
    gap: .85rem;
  }

  .clin-dashboard-mobile .clin-workspace-grid,
  .clin-dashboard-mobile .clin-patient-grid,
  .portal-dashboard-mobile,
  .portal-dashboard-focus,
  .portal-dashboard-summary-grid{
    gap: .85rem;
  }

  .clin-panel,
  .clin-card,
  .portal-panel,
  .portal-card,
  .portal-list-item,
  .reception-panel,
  .reception-card,
  .reception-list-item{
    border-radius: 26px;
  }

  .clin-panel,
  .portal-panel,
  .reception-panel{
    padding: 1rem;
  }

  .clin-fixed-panel,
  .clin-fixed-panel--tall,
  .clin-fixed-panel--xl{
    min-height: 0;
    height: auto;
  }

  .clin-panel-scroll-body{
    overflow: visible;
    padding-right: 0;
  }

  .clin-panel-header{
    gap: .75rem;
  }

  .clin-title,
  .clin-title--section,
  .portal-title{
    letter-spacing: 0;
  }

  .clin-title--section{
    font-size: 1.25rem;
    line-height: 1.12;
  }

  .clin-copy,
  .portal-copy,
  .portal-note{
    font-size: .9rem;
    line-height: 1.55;
  }

  .clin-dashboard-hero-grid{
    grid-template-columns: minmax(0, 1fr);
  }

  .clin-dashboard-mobile .glass-hero{
    border-radius: 28px !important;
  }

  .clin-profile-header-card{
    padding: 1rem !important;
    gap: .85rem;
  }

  .clin-profile-header-card__top{
    gap: .75rem;
  }

  .clin-profile-header-card__identity{
    gap: .72rem;
  }

  .clin-profile-header-card__avatar{
    width: 3.9rem;
    height: 3.9rem;
  }

  .clin-profile-header-card__name{
    font-size: 1.42rem;
  }

  .clin-profile-header-card__eyebrow{
    font-size: .62rem;
    letter-spacing: .12em;
  }

  .clin-profile-header-card__copy{
    font-size: .86rem;
    line-height: 1.48;
  }

  .clin-profile-header-card__icon-btn{
    width: 2.65rem;
    height: 2.65rem;
    border-radius: 17px;
  }

  .clin-mobile-primary-actions{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }

  .clin-mobile-primary-actions .clin-btn,
  .clin-mobile-attention-card .clin-panel-header > .clin-btn,
  .clin-mobile-patient-section .clin-panel-header > .clin-btn{
    width: 100%;
    min-height: 2.9rem;
  }

  .clin-mobile-patient-section{
    max-height: min(42rem, calc(100vh - 2rem));
  }

  .clin-patient-section-header{
    align-items: stretch;
  }

  .clin-patient-section-header__top .clin-btn{
    min-height: 2.55rem;
    border-radius: 16px;
    padding: .68rem .95rem;
    font-size: .82rem;
  }

  .clin-mobile-patient-section .clin-patient-section__scroll{
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-right: .2rem;
  }

  .clin-external-results-panel{
    max-height: min(34rem, calc(100vh - 2rem));
  }

  .clin-external-results-header__actions .clin-btn{
    min-height: 2.55rem;
    border-radius: 16px;
    padding: .68rem .95rem;
    font-size: .82rem;
  }

  .clin-external-results-panel .clin-external-results-scroll{
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-right: .2rem;
  }

  .clin-mobile-attention-card .clin-attention-header__top{
    flex-direction: row;
    align-items: center;
    gap: .55rem;
  }

  .clin-mobile-attention-card .clin-attention-header__top .clin-eyebrow{
    padding-inline: .68rem;
    font-size: .62rem;
    letter-spacing: .1em;
  }

  .clin-mobile-attention-card .clin-attention-header__top .clin-btn{
    min-height: 2.55rem;
    border-radius: 16px;
    padding: .68rem .85rem;
    font-size: .82rem;
  }

  .clin-dashboard-stats{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
  }

  .clin-stat-card{
    min-width: 0;
    border-radius: 22px;
    padding: .85rem;
  }

  .clin-stat-card__label{
    font-size: .64rem;
    letter-spacing: .08em;
    overflow-wrap: anywhere;
  }

  .clin-stat-card__value{
    font-size: 1.7rem;
  }

  .clin-stat-card__hint{
    font-size: .76rem;
    line-height: 1.35;
  }

  .clin-mobile-attention-card .clin-card{
    padding: .9rem;
  }

  .clin-mobile-attention-card .clin-card .flex{
    align-items: flex-start;
  }

  .clin-mobile-attention-card .clin-card .clin-btn{
    flex: 0 0 auto;
  }

  .clin-patient-card{
    gap: .85rem;
    padding: .9rem;
  }

  .clin-patient-card__actions{
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .5rem;
  }

  .clin-patient-card__actions .clin-btn{
    min-width: 0;
    width: 100%;
    padding: .72rem .45rem !important;
    white-space: nowrap;
  }

  .clin-mobile-care-grid{
    grid-template-columns: minmax(0, 1fr);
  }

  .mobile-dock:not(.mobile-dock--floating){
    left: .65rem;
    right: .65rem;
    border-radius: 26px;
    padding: .75rem;
  }

  .mobile-dock:not(.mobile-dock--floating) .mobile-dock__row{
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .45rem;
  }

  .mobile-dock:not(.mobile-dock--floating) .dock-btn__circle{
    width: 3.2rem;
    height: 3.2rem;
  }

  .mobile-dock:not(.mobile-dock--floating) .dock-btn__label{
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .66rem;
  }

  .offcanvas__panel{
    top: calc(.75rem + env(safe-area-inset-top, 0px));
    bottom: calc(.75rem + env(safe-area-inset-bottom, 0px));
    left: max(.75rem, env(safe-area-inset-left, 0px));
    width: min(17rem, calc(100vw - 1.5rem));
    border-radius: 30px;
    padding: .95rem;
  }

  .offcanvas__list{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-content: start;
    gap: .75rem;
    padding-right: .1rem;
  }

  .offcanvas__item{
    min-width: 0;
    min-height: 6.7rem;
    justify-content: center;
    gap: .55rem;
    border-radius: 24px;
    border: 1px solid rgba(255, 255, 255, 0.46);
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.44), rgba(255, 255, 255, 0.18)),
      rgba(239, 253, 255, 0.24);
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.7),
      0 16px 34px -28px rgba(7, 35, 43, 0.32);
    padding: .72rem .45rem;
  }

  .offcanvas__circle,
  .offcanvas__circle.bg-red-500{
    width: 3.4rem;
    height: 3.4rem;
    background: rgba(247, 253, 255, 0.94) !important;
    border-color: rgba(47, 182, 211, 0.16) !important;
    color: var(--accent-strong) !important;
  }

  .offcanvas__circle img{
    width: 1.55rem;
    height: 1.55rem;
  }

  .offcanvas__label{
    max-width: 100%;
    text-align: center;
    font-size: .74rem;
    line-height: 1.18;
    overflow-wrap: anywhere;
  }

  #dock-close,
  #portal-more-close{
    border-radius: 16px;
  }

  .portal-shell__frame{
    padding-bottom: 6.4rem;
  }

  .portal-dashboard-mobile{
    width: 100%;
  }

  .portal-dashboard-hero{
    border-radius: 30px;
    background:
      radial-gradient(circle at 12% 0%, rgba(47, 182, 211, 0.2), transparent 34%),
      linear-gradient(180deg, rgba(255, 255, 255, 0.58), rgba(239, 253, 255, 0.26)),
      rgba(247, 253, 255, 0.34) !important;
    padding: 1.15rem !important;
  }

  .portal-dashboard-hero .portal-kicker{
    color: rgba(23, 127, 149, 0.84);
  }

  .portal-dashboard-hero .portal-title{
    color: var(--text);
    font-size: 2rem;
    line-height: 1.08;
  }

  .portal-dashboard-hero .portal-copy{
    color: rgba(23, 48, 58, 0.72);
  }

  .portal-dashboard-actions{
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100%;
  }

  .portal-dashboard-actions .glass-button{
    min-height: 3.1rem;
    width: 100%;
    border-radius: 18px;
  }

  .portal-dashboard-stats{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
  }

  .portal-dashboard-mobile .portal-stat-card{
    border-radius: 22px;
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.18)),
      rgba(239, 253, 255, 0.18);
    padding: .85rem;
  }

  .portal-dashboard-mobile .portal-stat-card__label{
    color: rgba(23, 127, 149, 0.78);
    font-size: .64rem;
    letter-spacing: .08em;
  }

  .portal-dashboard-mobile .portal-stat-card__value{
    color: var(--text);
    font-size: 1.7rem;
  }

  .portal-dashboard-mobile .portal-stat-card__hint{
    color: rgba(23, 48, 58, 0.66);
    font-size: .76rem;
    line-height: 1.35;
  }

  .portal-dashboard-mobile .portal-panel,
  .portal-dashboard-summary-card{
    border-radius: 28px;
    padding: 1rem !important;
  }

  .portal-dashboard-mobile .portal-action-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .7rem;
  }

  .portal-dashboard-mobile .portal-card{
    min-height: 8rem;
    padding: .9rem;
    border-radius: 24px !important;
  }

  .portal-dashboard-mobile .portal-card p,
  .portal-dashboard-summary-card p{
    overflow-wrap: anywhere;
  }

  .portal-bottom-nav{
    padding-inline: .65rem;
  }

  .portal-bottom-nav__shell{
    border-radius: 28px;
  }

  .portal-bottom-nav__shell > .grid{
    gap: .15rem;
    padding-inline: .35rem;
  }

  .portal-nav-item{
    min-width: 0;
  }

  .portal-nav-item > span:last-child{
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .portal-nav-icon--primary{
    background: linear-gradient(135deg, rgba(23, 127, 149, 0.98), rgba(47, 182, 211, 0.96)) !important;
  }

  .portal-more-sheet__panel{
    border-top-left-radius: 30px;
    border-top-right-radius: 30px;
  }
}

@media (max-width: 360px){
  .clin-mobile-attention-card .clin-attention-header__top .clin-eyebrow{
    padding-inline: .58rem;
    letter-spacing: .06em;
  }

  .clin-mobile-attention-card .clin-attention-header__top .clin-btn{
    padding-inline: .68rem;
    font-size: .78rem;
  }

  .clin-patient-card__actions{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .mobile-dock:not(.mobile-dock--floating) .dock-btn__circle{
    width: 2.9rem;
    height: 2.9rem;
  }

  .portal-bottom-nav{
    padding-inline: .45rem;
  }

  .portal-nav-icon{
    width: 2.55rem !important;
    height: 2.55rem !important;
  }

  .portal-nav-icon--primary{
    width: 3.25rem !important;
    height: 3.25rem !important;
  }
}

/* ---- Public home page -------------------------------------------------- */
.nhs-home{
  --nhs-cyan: #2fb6d3;
  --nhs-cyan-deep: #1d9fbc;
  --nhs-cyan-soft: #dfeaf8;
  --nhs-red: #d92b20;
  --nhs-blue: #146cb4;
  --nhs-text: #3f4348;
  --nhs-text-soft: #575d66;
  --nhs-border: rgba(28, 50, 73, 0.08);
  --nhs-shadow: 0 24px 60px -36px rgba(30, 56, 79, 0.22);
  background: #fff;
  color: var(--nhs-text);
}

.nhs-home,
.nhs-home *{
  box-sizing: border-box;
}

.nhs-home a{
  color: inherit;
  text-decoration: none;
}

.nhs-home button,
.nhs-home input{
  font: inherit;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.nhs-home button{
  border: 0;
  cursor: pointer;
}

.nhs-home input{
  box-shadow: none;
}

.nhs-home-header{
  position: sticky;
  top: 0;
  z-index: 30;
  background: #f4f4f4;
}

.nhs-home-toolbar{
  display: grid;
  grid-template-columns: minmax(9rem, 1fr) auto minmax(32rem, 1fr);
  align-items: center;
  gap: 1.6rem;
  min-height: 7.8rem;
  max-width: 1230px;
  margin: 0 auto;
  padding: 1rem 1.75rem;
}

.nhs-home-toolbar__left{
  display: flex;
  align-items: center;
  justify-self: start;
  gap: .9rem;
  min-width: 0;
}

.nhs-home-menu-btn{
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: .28rem;
  width: 3rem;
  height: 3rem;
  border-radius: 1rem;
  background: #f2f6fb;
  color: var(--nhs-text);
}

.nhs-home-menu-btn span:not(.sr-only){
  display: block;
  width: 1.2rem;
  height: 2px;
  margin: 0 auto;
  border-radius: 999px;
  background: currentColor;
}

.nhs-home-chat-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-width: 8.1rem;
  min-height: 3rem;
  padding: 0 1.35rem;
  border-radius: .95rem;
  background: var(--nhs-red);
  color: #fff !important;
  font-weight: 700;
  white-space: nowrap;
  box-shadow: 0 18px 34px -24px rgba(217, 43, 32, 0.5);
}

.nhs-home-chat-btn svg{
  width: 1.15rem;
  height: 1.15rem;
}

.nhs-home-logo{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  justify-self: center;
}

.nhs-home-logo img{
  width: min(25rem, 27vw);
  min-width: 20rem;
  height: auto;
}

.nhs-home-toolbar__actions{
  display: flex;
  align-items: center;
  justify-self: end;
  justify-content: flex-end;
  gap: .75rem;
  min-width: 0;
}

.nhs-home-search{
  display: grid;
  grid-template-columns: minmax(0, 1fr) 7.8rem;
  align-items: center;
  width: min(30.5rem, 100%);
  min-width: 0;
  border-radius: 1rem;
  overflow: hidden;
  border: 1px solid rgba(27, 64, 93, 0.08);
  background: #fff;
  box-shadow: 0 10px 28px -24px rgba(31, 56, 81, 0.22);
}

.nhs-home-search input{
  width: 100%;
  height: 3.25rem;
  border: 0;
  border-radius: 0;
  padding: 0 1.2rem;
  background: #fff;
  color: var(--nhs-text);
}

.nhs-home-search input::placeholder{
  color: #43b9d7;
}

.nhs-home-search button{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  background: var(--nhs-red);
  color: #fff;
}

.nhs-home-search button svg{
  width: 1.2rem;
  height: 1.2rem;
}

.nhs-home-login-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 6.9rem;
  min-height: 3rem;
  padding: 0 1.55rem;
  border-radius: .65rem;
  background: var(--nhs-blue);
  color: #fff !important;
  font-weight: 700;
  white-space: nowrap;
  box-shadow: 0 16px 30px -24px rgba(20, 108, 180, 0.44);
}

.nhs-home-install-btn,
.nhs-home-mobile-install{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 7.4rem;
  min-height: 3rem;
  padding: 0 1.35rem;
  border-radius: .65rem;
  background: var(--nhs-cyan);
  color: #fff !important;
  font-weight: 700;
  white-space: nowrap;
  box-shadow: 0 16px 30px -24px rgba(47, 182, 211, 0.5);
}

.nhs-home-nav-bar{
  background: var(--nhs-cyan);
}

.nhs-home-nav{
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 2.2rem;
  max-width: 1180px;
  margin: 0 auto;
  padding: 1.75rem 1.5rem;
  color: #fff;
  font-weight: 600;
}

.nhs-home-nav a{
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}

.nhs-home-nav a span{
  font-size: .72rem;
}

.nhs-home-mobile-nav{
  display: none;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.78);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  box-shadow: 0 28px 54px -34px rgba(31, 56, 81, 0.28);
  overscroll-behavior: contain;
}

.nhs-home-mobile-nav__top{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .9rem 1rem .65rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.26);
}

.nhs-home-mobile-nav__top p{
  margin: 0;
  color: #214155;
  font-size: .9rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.nhs-home-mobile-nav__close{
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 2.4rem !important;
  min-width: 2.4rem !important;
  height: 2.4rem;
  padding: 0 !important;
  border-radius: .85rem !important;
  background: rgba(255, 255, 255, 0.56) !important;
  border: 1px solid rgba(255, 255, 255, 0.34) !important;
  color: #214155 !important;
  box-shadow: 0 14px 28px -24px rgba(31, 56, 81, 0.2);
}

.nhs-home-mobile-nav__close span{
  line-height: 1;
  font-size: 1.45rem;
  font-weight: 500;
}

.nhs-home-mobile-nav nav{
  display: grid;
  gap: .3rem;
  max-width: 1180px;
  margin: 0 auto;
  padding: .9rem 1rem 1rem;
  max-height: min(70svh, 34rem);
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(47, 182, 211, 0.55) rgba(47, 182, 211, 0.08);
}

.nhs-home-mobile-nav a,
.nhs-home-mobile-nav button{
  display: block;
  padding: .85rem .95rem;
  border-radius: 1rem;
  color: #214155;
  font-weight: 600;
  background: rgba(255, 255, 255, 0.42);
  border: 1px solid rgba(255, 255, 255, 0.34);
  text-align: left;
  width: 100%;
  box-shadow: 0 14px 28px -24px rgba(31, 56, 81, 0.18);
}

.nhs-home-mobile-install{
  width: 100%;
  justify-content: center !important;
  margin-top: .55rem;
  padding: .9rem .95rem;
  background: rgba(47, 182, 211, 0.92) !important;
  border-color: rgba(255, 255, 255, 0.18) !important;
  color: #fff !important;
}

.nhs-home-mobile-nav nav::-webkit-scrollbar{
  width: .42rem;
}

.nhs-home-mobile-nav nav::-webkit-scrollbar-track{
  background: rgba(47, 182, 211, 0.08);
  border-radius: 999px;
}

.nhs-home-mobile-nav nav::-webkit-scrollbar-thumb{
  background: rgba(47, 182, 211, 0.55);
  border-radius: 999px;
}

.nhs-home-mobile-nav a:hover,
.nhs-home-mobile-nav button:hover{
  background: rgba(255, 255, 255, 0.64);
}

.nhs-home-flash-wrap{
  max-width: 1180px;
  margin: 1rem auto 0;
  padding: 0 1.5rem;
}

.nhs-home-flash{
  border-radius: 1rem;
  padding: .95rem 1rem;
  background: #eaf8fd;
  color: #136980;
  font-weight: 600;
}

.nhs-home-flash.is-error{
  background: #fde9e7;
  color: #b43935;
}

.nhs-home-hero{
  position: relative;
}

.nhs-home-hero__media{
  position: relative;
  min-height: 37rem;
  background-size: cover;
  background-position: center 18%;
}

.nhs-home-hero__shade{
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(22, 33, 40, 0.36) 0%, rgba(22, 33, 40, 0.2) 42%, rgba(22, 33, 40, 0.16) 100%);
}

.nhs-home-hero__glow{
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 46%;
  background: linear-gradient(180deg, rgba(89, 215, 237, 0) 0%, rgba(89, 215, 237, 0.42) 56%, rgba(89, 215, 237, 0.62) 100%);
}

.nhs-home-hero__copy{
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 37rem;
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 1.5rem 7rem;
}

.nhs-home-hero__copy h1{
  max-width: 31rem;
  margin: 0;
  color: #fff;
  font-family: var(--font-sans);
  font-size: clamp(2.45rem, 4vw, 3.55rem);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.04em;
}

.nhs-home-section-title{
  text-align: center;
  padding: 4.25rem 1.5rem 0;
}

.nhs-home-section-title h2{
  margin: 0;
  font-family: var(--font-sans);
  font-size: clamp(2rem, 3vw, 2.45rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  color: var(--nhs-cyan);
}

.nhs-home-section-title--dark h2{
  color: #202329;
}

.nhs-home-story{
  padding: 0 1.5rem 5.5rem;
}

.nhs-home-story__grid{
  display: grid;
  grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr);
  align-items: center;
  gap: clamp(2.5rem, 5vw, 4.6rem);
  max-width: 1140px;
  margin: 3.75rem auto 0;
}

.nhs-home-story__copy{
  max-width: 24.5rem;
}

.nhs-home-story__copy h3{
  margin: 0 0 1rem;
  font-family: var(--font-sans);
  font-size: clamp(1.9rem, 2.6vw, 2.55rem);
  font-weight: 700;
  letter-spacing: -0.04em;
  color: #3a3d41;
}

.nhs-home-story__copy p{
  margin: 0;
  color: var(--nhs-text-soft);
  font-size: 1.15rem;
  line-height: 1.7;
}

.nhs-home-arrow-link{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.1rem;
  height: 3.1rem;
  margin-top: 2rem;
  border-radius: 999px;
  background: var(--nhs-cyan);
  color: #fff !important;
  box-shadow: 0 18px 32px -24px rgba(47, 182, 211, 0.5);
}

.nhs-home-arrow-link svg{
  width: 1.2rem;
  height: 1.2rem;
}

.nhs-home-story__visuals{
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(0, 31.25rem) minmax(0, 17.4rem);
  justify-content: end;
  align-items: start;
  gap: 0;
  max-width: 48.1rem;
  margin-left: auto;
}

.nhs-home-story__visuals::before{
  content: "";
  position: absolute;
  top: -.5rem;
  left: 4.2rem;
  width: 23rem;
  height: 23rem;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(61, 203, 227, 0.2) 0%, rgba(61, 203, 227, 0.08) 40%, transparent 72%);
  filter: blur(16px);
  pointer-events: none;
}

.nhs-home-story__image{
  position: relative;
  margin: 0;
  overflow: hidden;
  background: #eef5f8;
  box-shadow: var(--nhs-shadow);
}

.nhs-home-story__image img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.nhs-home-story__image--main{
  width: 100%;
  height: 41rem;
  border-radius: 2.85rem 0 2.85rem 0;
  z-index: 2;
}

.nhs-home-story__image--main img{
  object-position: 53% center;
}

.nhs-home-story__image--side{
  width: 100%;
  height: 27.6rem;
  margin-top: 5.3rem;
  margin-left: -2.6rem;
  border-radius: 2.35rem;
  z-index: 1;
}

.nhs-home-story__image--side img{
  object-position: 74% center;
}

.nhs-home-labs{
  padding: 0 0 4.5rem;
}

.nhs-home-labs__hero{
  position: relative;
  min-height: 31rem;
  background-size: cover;
  background-position: center;
}

.nhs-home-labs__overlay{
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(40, 45, 48, 0.26) 0%, rgba(53, 57, 61, 0.72) 58%, rgba(53, 57, 61, 0.76) 100%);
}

.nhs-home-labs__content{
  position: relative;
  max-width: 1180px;
  margin: 0 auto;
  padding: 7.85rem 1.5rem 6rem;
  color: #fff;
}

.nhs-home-kicker{
  margin: 0 0 1.25rem;
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: .06em;
}

.nhs-home-labs__content h2{
  margin: 0;
  color: #fff;
  font-family: var(--font-sans);
  font-size: clamp(2.5rem, 4.2vw, 4rem);
  font-weight: 700;
  letter-spacing: -0.05em;
}

.nhs-home-red-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 2rem;
  padding: 1.15rem 2.35rem;
  background: #cd1209;
  color: #fff !important;
  font-size: 1.05rem;
  font-weight: 600;
}

.nhs-home-labs__quote{
  position: absolute;
  right: clamp(1.5rem, 8vw, 10rem);
  bottom: -3rem;
  width: min(34rem, calc(100vw - 3rem));
  padding: 2.4rem 2.5rem;
  border-radius: 1rem;
  background: rgba(47, 182, 211, 0.92);
  color: #fff;
  box-shadow: 0 28px 60px -34px rgba(22, 77, 91, 0.44);
}

.nhs-home-labs__quote strong{
  display: block;
  margin-bottom: 1rem;
  font-family: var(--font-sans);
  font-size: clamp(1.35rem, 2.2vw, 1.9rem);
  font-weight: 700;
}

.nhs-home-labs__quote p{
  margin: 0;
  font-size: clamp(1.12rem, 2vw, 1.45rem);
  font-weight: 700;
  line-height: 1.45;
}

.nhs-home-labs__body{
  max-width: 1180px;
  margin: 0 auto;
  padding: 5.2rem 1.5rem 0;
}

.nhs-home-labs__body p{
  margin: 0;
  color: var(--nhs-text-soft);
  font-size: 1.08rem;
  line-height: 1.65;
}

.nhs-home-specialty{
  padding: 4.75rem 1rem 5.5rem;
  background: #fff;
}

.nhs-home-specialty__grid{
  display: grid;
  gap: 2.4rem;
  align-items: center;
  max-width: 1160px;
  margin: 0 auto;
}

.nhs-home-specialty__content{
  max-width: 34rem;
}

.nhs-home-specialty__content--wide{
  max-width: 37rem;
}

.nhs-home-specialty__eyebrow{
  margin: 0;
  color: var(--nhs-cyan);
  font-size: .95rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.nhs-home-specialty__title{
  margin: 0;
  font-family: var(--font-sans);
  font-size: clamp(2.15rem, 3.1vw, 3.15rem);
  font-weight: 700;
  letter-spacing: -0.05em;
  color: var(--nhs-cyan);
}

.nhs-home-specialty__body{
  margin: 1.15rem 0 0;
  color: var(--nhs-text-soft);
  font-size: 1.08rem;
  line-height: 1.7;
}

.nhs-home-specialty__body strong{
  color: #505660;
  font-weight: 700;
}

.nhs-home-specialty__services-block{
  margin-top: 2.7rem;
}

.nhs-home-specialty__services-block--compact{
  margin-top: 2.15rem;
}

.nhs-home-specialty__services-title{
  margin: 0;
  font-family: var(--font-sans);
  font-size: clamp(2rem, 2.7vw, 2.8rem);
  font-weight: 700;
  letter-spacing: -0.05em;
  color: #404348;
}

.nhs-home-specialty__services-title--compact{
  font-size: clamp(1.95rem, 2.4vw, 3rem);
  line-height: 1.15;
}

.nhs-home-specialty__services{
  margin: 1.3rem 0 0;
  padding: 0;
  list-style: none;
}

.nhs-home-specialty__service-item{
  display: flex;
  align-items: center;
  gap: .9rem;
  padding: 1rem 0;
  color: #0d70b6;
  font-size: 1.02rem;
  line-height: 1.4;
}

.nhs-home-specialty__service-item:not(:last-child){
  border-bottom: 1px solid rgba(47, 182, 211, 0.42);
}

.nhs-home-specialty__service-bullet{
  position: relative;
  flex: 0 0 auto;
  width: .88rem;
  height: .88rem;
  border-radius: 999px;
  background: #0d70b6;
}

.nhs-home-specialty__service-bullet::after{
  content: "";
  position: absolute;
  inset: .22rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.85);
}

.nhs-home-specialty__cta{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 8.4rem;
  min-height: 3.2rem;
  margin-top: 1.55rem;
  padding: 0 1.55rem;
  border-radius: .35rem;
  background: var(--nhs-cyan);
  color: #fff !important;
  font-weight: 600;
  box-shadow: 0 18px 34px -26px rgba(47, 182, 211, 0.52);
}

.nhs-home-specialty__media{
  position: relative;
  width: 100%;
  max-width: 35rem;
  margin-left: auto;
  padding-right: 1.6rem;
  padding-bottom: 1.6rem;
}

.nhs-home-specialty__media-accent{
  position: absolute;
  top: 1.25rem;
  right: 0;
  bottom: 0;
  left: 1.25rem;
  border-radius: 1.75rem 0 4rem 1.35rem;
  background: var(--nhs-cyan);
}

.nhs-home-specialty__media-frame{
  position: relative;
  z-index: 1;
  margin: 0;
  overflow: hidden;
  background: #eef4f7;
  border-top-left-radius: 56px;
  border-top-right-radius: 0;
  border-bottom-right-radius: 56px;
  border-bottom-left-radius: 0;
  box-shadow: 0 28px 64px -42px rgba(29, 75, 93, 0.34);
  aspect-ratio: 0.88 / 1;
}

.nhs-home-specialty__media-frame img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.nhs-home-specialty--diagnostics{
  padding-top: 4.15rem;
}

.nhs-home-specialty--diagnostics .nhs-home-specialty__body{
  max-width: 35rem;
}

.nhs-home-specialty--diagnostics .nhs-home-specialty__service-item{
  color: #8590ad;
  font-weight: 600;
}

.nhs-home-specialty--diagnostics .nhs-home-specialty__cta{
  margin-top: 1.9rem;
}

@media (min-width: 768px){
  .nhs-home-specialty__grid{
    grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
    gap: clamp(2rem, 5vw, 4.5rem);
  }

  .nhs-home-specialty__grid--reverse{
    grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr);
  }

  .nhs-home-specialty__grid--reverse .nhs-home-specialty__content{
    order: 2;
    margin-left: auto;
  }

  .nhs-home-specialty__grid--reverse .nhs-home-specialty__media{
    order: 1;
    margin-left: 0;
    margin-right: auto;
  }
}

.nhs-home-vision{
  padding: 4.25rem 1rem 5.75rem;
  background: #f8fbff;
}

.nhs-home-vision__grid{
  display: grid;
  gap: 2.5rem;
  align-items: center;
  max-width: 1160px;
  margin: 0 auto;
}

.nhs-home-vision__content{
  max-width: 36rem;
}

.nhs-home-vision__block + .nhs-home-vision__block{
  margin-top: 2rem;
}

.nhs-home-vision__block h2{
  margin: 0;
  color: #353a40;
  font-family: var(--font-sans);
  font-size: clamp(2.5rem, 4.2vw, 4.1rem);
  font-weight: 700;
  letter-spacing: -0.06em;
}

.nhs-home-vision__block p{
  margin: 1rem 0 0;
  color: #565e69;
  font-size: 1.08rem;
  line-height: 1.72;
}

.nhs-home-vision__cta{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 8.9rem;
  min-height: 3.35rem;
  margin-top: 2rem;
  padding: 0 1.6rem;
  border-radius: .45rem;
  background: var(--nhs-cyan);
  color: #fff !important;
  font-weight: 600;
  box-shadow: 0 18px 36px -26px rgba(47, 182, 211, 0.55);
}

.nhs-home-vision__utility-row{
  display: grid;
  gap: 1rem;
  margin-top: 3rem;
}

.nhs-home-vision__utility-card{
  position: relative;
  min-height: 12.2rem;
  padding: 2rem 1.65rem 3rem;
  border-radius: 1.75rem;
  background: #fff;
  box-shadow: 0 28px 56px -44px rgba(47, 87, 118, 0.26);
}

.nhs-home-vision__utility-card h3{
  margin: 0;
  color: #3b4148;
  font-family: var(--font-sans);
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: -0.03em;
}

.nhs-home-vision__utility-card p{
  margin: 1rem 0 0;
  color: #5d6672;
  font-size: 1rem;
  line-height: 1.55;
}

.nhs-home-vision__utility-arrow{
  position: absolute;
  left: 1.55rem;
  bottom: -1.4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 999px;
  background: var(--nhs-cyan);
  color: #fff !important;
  box-shadow: 0 18px 34px -24px rgba(47, 182, 211, 0.58);
}

.nhs-home-vision__utility-arrow svg{
  width: 1.35rem;
  height: 1.35rem;
}

.nhs-home-vision__media{
  position: relative;
  width: 100%;
  max-width: 34rem;
  margin: 0 auto;
  padding-right: 1.85rem;
  padding-bottom: 1.9rem;
}

.nhs-home-vision__media-accent{
  position: absolute;
  top: 1rem;
  right: 0;
  bottom: 0;
  left: 1.7rem;
  border-radius: 3.1rem 3.1rem 5rem 3.1rem;
  background: var(--nhs-cyan);
}

.nhs-home-vision__media-frame{
  position: relative;
  z-index: 1;
  margin: 0;
  overflow: hidden;
  border-radius: 3rem;
  background: #e8f1f6;
  box-shadow: 0 32px 70px -48px rgba(28, 71, 88, 0.34);
  aspect-ratio: .88 / 1;
}

.nhs-home-vision__media-frame img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

@media (min-width: 768px){
  .nhs-home-vision{
    padding: 4.75rem 1.5rem 6rem;
  }

  .nhs-home-vision__grid{
    grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr);
    gap: clamp(2rem, 5vw, 4.75rem);
  }

  .nhs-home-vision__utility-row{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
  }

  .nhs-home-vision__media{
    margin-left: auto;
    margin-right: 0;
  }
}

.nhs-home-services{
  padding: 4.75rem 1.5rem 6rem;
  background: #edf5ff;
}

.nhs-home-services__heading{
  max-width: 1180px;
  margin: 0 auto 2rem;
}

.nhs-home-services__heading h2{
  margin: 0;
  font-family: var(--font-sans);
  font-size: clamp(2.55rem, 4vw, 4.1rem);
  font-weight: 700;
  letter-spacing: -0.06em;
  color: #3a3d41;
}

.nhs-home-services__masonry{
  display: grid;
  gap: 1rem;
  max-width: 1180px;
  margin: 0 auto;
  align-items: start;
}

.nhs-home-services__stack{
  display: grid;
  gap: 1rem;
  align-content: start;
}

.nhs-home-service-showcase-card{
  position: relative;
  overflow: hidden;
  border-radius: 2rem;
  min-height: 18rem;
  background: #d8e7f2;
  box-shadow: 0 30px 64px -44px rgba(36, 68, 89, 0.32);
  isolation: isolate;
}

.nhs-home-service-showcase-card__link{
  position: relative;
  display: block;
  min-height: inherit;
  height: 100%;
  color: inherit !important;
  text-decoration: none;
}

.nhs-home-service-showcase-card__media,
.nhs-home-service-showcase-card__media img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.nhs-home-service-showcase-card__media img{
  display: block;
  object-fit: cover;
  object-position: center;
  transition: transform .35s ease;
}

.nhs-home-service-showcase-card__overlay{
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(12, 31, 40, 0.04) 10%, rgba(12, 61, 75, 0.16) 40%, rgba(22, 145, 170, 0.34) 68%, rgba(38, 184, 214, 0.78) 100%);
}

.nhs-home-service-showcase-card__content{
  position: absolute;
  left: 1.3rem;
  right: 1.3rem;
  bottom: 1.2rem;
  z-index: 1;
  display: grid;
  gap: .55rem;
}

.nhs-home-service-showcase-card__content h3{
  margin: 0;
  color: #fff;
  font-family: var(--font-sans);
  font-size: clamp(1.4rem, 2vw, 2rem);
  font-weight: 700;
  line-height: 1.16;
  letter-spacing: -0.04em;
}

.nhs-home-service-showcase-card__content p{
  margin: 0;
  color: rgba(247, 252, 255, 0.96);
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.48;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  -webkit-line-clamp: 3;
}

.nhs-home-service-showcase-card__more{
  display: inline-flex;
  align-items: center;
  width: fit-content;
  color: #defbff;
  font-size: .98rem;
  font-weight: 700;
  letter-spacing: -0.01em;
}

.nhs-home-service-showcase-card__more::after{
  content: "→";
  margin-left: .38rem;
  font-size: 1rem;
}

.nhs-home-service-showcase-card:hover .nhs-home-service-showcase-card__media img{
  transform: scale(1.04);
}

.nhs-home-service-showcase-card:hover .nhs-home-service-showcase-card__more{
  color: #ffffff;
}

.nhs-home-service-showcase-card--hero{
  min-height: 27rem;
}

.nhs-home-service-showcase-card--tall{
  min-height: 25rem;
}

.nhs-home-service-showcase-card--medium{
  min-height: 21rem;
}

.nhs-home-service-showcase-card--short{
  min-height: 17rem;
}

.nhs-home-services__empty{
  max-width: 1180px;
  margin: 0 auto;
  padding: 2rem 1.5rem;
  border: 1px solid rgba(31, 143, 168, 0.14);
  border-radius: 1.5rem;
  background: rgba(255, 255, 255, 0.7);
  color: #5f6d7a;
  text-align: center;
}

@media (min-width: 768px) and (max-width: 1179.98px){
  .nhs-home-services__masonry{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .nhs-home-services__stack--tail{
    grid-column: 1 / -1;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .nhs-home-service-showcase-card--hero{
    min-height: 30rem;
  }

  .nhs-home-service-showcase-card--tall{
    min-height: 26rem;
  }
}

@media (min-width: 1180px){
  .nhs-home-services__masonry{
    grid-template-columns: minmax(0, 1.02fr) minmax(0, .96fr) minmax(0, .98fr);
  }

  .nhs-home-service-showcase-card--hero{
    min-height: 33rem;
  }

  .nhs-home-service-showcase-card--tall{
    min-height: 30rem;
  }

  .nhs-home-service-showcase-card--medium{
    min-height: 22.5rem;
  }

  .nhs-home-service-showcase-card--short{
    min-height: 16.75rem;
  }
}

.nhs-home-plans{
  padding: 4.75rem 1.5rem 6rem;
  background: #fff;
}

.nhs-home-plan-panel{
  position: relative;
  overflow: hidden;
  width: min(1705px, calc(100vw - 5rem));
  margin: 4rem auto 0;
  border-radius: 0 6.4rem 0 6.4rem;
  background:
    linear-gradient(90deg, rgba(32, 43, 51, 0.92) 0%, rgba(38, 88, 102, 0.86) 54%, rgba(64, 183, 207, 0.9) 100%),
    url("/static/img/labs-banner.084f52555b78.jpg") center/cover no-repeat;
  color: #fff;
  box-shadow: 0 32px 80px -48px rgba(17, 48, 61, 0.46);
}

.nhs-home-plan-panel__shade{
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 56%, rgba(62, 184, 207, 0.18), transparent 24%);
  pointer-events: none;
}

.nhs-home-plan-panel__content{
  position: relative;
  padding: 6rem clamp(2rem, 6vw, 8.5rem) 5rem;
}

.nhs-home-plan-panel__header h3{
  margin: 0;
  color: #fff;
  font-family: var(--font-sans);
  font-size: clamp(2.25rem, 3vw, 3.35rem);
  font-weight: 700;
  letter-spacing: -0.05em;
}

.nhs-home-plan-panel__header p{
  margin: 1rem 0 0;
  color: rgba(255, 255, 255, 0.9);
  font-size: 1.08rem;
  font-weight: 700;
}

.nhs-home-plan-list{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem;
  margin-top: 4rem;
}

.nhs-home-plan-item{
  display: grid;
  align-content: start;
  gap: 1.5rem;
}

.nhs-home-plan-item__badge{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 6.85rem;
  height: 6.85rem;
  border: 1.5px solid rgba(255, 255, 255, 0.92);
  border-radius: 999px;
  color: #fff;
  font-size: 2.2rem;
  font-weight: 500;
}

.nhs-home-plan-item h4{
  margin: 0;
  color: rgba(255, 255, 255, 0.92);
  font-family: var(--font-sans);
  font-size: clamp(1.2rem, 1.8vw, 1.8rem);
  font-weight: 600;
  line-height: 1.35;
}

.nhs-home-plan-item--cta{
  gap: 1.15rem;
}

.nhs-home-plan-link{
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  margin-top: .5rem;
  color: #fff !important;
  font-family: var(--font-sans);
  font-size: clamp(1.85rem, 2.6vw, 2.85rem);
  font-weight: 700;
  letter-spacing: -0.05em;
}

.nhs-home-plan-link__icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.96);
  color: var(--nhs-cyan-deep);
}

.nhs-home-plan-link__icon svg{
  width: 1.25rem;
  height: 1.25rem;
}

.nhs-home-contact{
  padding: 1.25rem 0 3.25rem;
  background: #fff;
}

.nhs-home-contact__band{
  display: grid;
  grid-template-columns: minmax(0, 35.5rem) minmax(0, 1fr);
  align-items: center;
  gap: clamp(2rem, 7vw, 6.5rem);
  max-width: 1180px;
  margin: 0 auto;
  padding: 5.5rem 1.5rem 4rem;
  background: #edf5ff;
}

.nhs-home-contact__card{
  position: relative;
  padding: 3.9rem 3.35rem 3.25rem;
  border: 1px solid rgba(255, 255, 255, 0.84);
  border-radius: 1.8rem 6.4rem 1.8rem 6.2rem;
  background: #fff;
  box-shadow: 0 38px 84px -56px rgba(31, 56, 81, 0.24);
  transform: translateY(-4.1rem);
}

.nhs-home-contact__logo{
  margin-bottom: 2.75rem;
}

.nhs-home-contact__logo img{
  width: min(18rem, 100%);
  height: auto;
}

.nhs-home-contact__item{
  display: grid;
  grid-template-columns: 4.8rem minmax(0, 1fr);
  gap: 1.25rem;
  align-items: start;
}

.nhs-home-contact__item + .nhs-home-contact__item{
  margin-top: 2.15rem;
}

.nhs-home-contact__icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 4.45rem;
  height: 4.45rem;
  border-radius: 999px;
  background: var(--nhs-cyan);
  color: #fff;
  box-shadow: 0 18px 36px -28px rgba(47, 182, 211, 0.56);
}

.nhs-home-contact__icon svg{
  width: 2rem;
  height: 2rem;
}

.nhs-home-contact__item h3{
  margin: .15rem 0 .45rem;
  font-family: var(--font-sans);
  font-size: 1.3rem;
  font-weight: 700;
  color: #29343a;
}

.nhs-home-contact__item p{
  margin: 0 0 .5rem;
  color: var(--nhs-text);
  font-size: 1.05rem;
  line-height: 1.45;
}

.nhs-home-newsletter{
  padding-bottom: 2.25rem;
  max-width: 34rem;
}

.nhs-home-newsletter h2{
  margin: 0;
  font-family: var(--font-sans);
  font-size: clamp(2.35rem, 3vw, 3.45rem);
  font-weight: 700;
  letter-spacing: -0.05em;
  color: #2a2d32;
}

.nhs-home-newsletter > p{
  margin: 1.6rem 0 0;
  color: var(--nhs-text);
  font-size: 1.1rem;
}

.nhs-home-newsletter__form{
  display: grid;
  grid-template-columns: minmax(0, 16rem) minmax(12rem, 15.8rem);
  gap: .9rem;
  margin-top: 3rem;
  max-width: 32.5rem;
}

.nhs-home-newsletter__form input{
  height: 3.45rem;
  border: 1px solid rgba(20, 57, 88, 0.12);
  border-radius: .62rem;
  padding: 0 1rem;
  background: #fff;
  color: var(--nhs-text);
}

.nhs-home-newsletter__form input::placeholder{
  color: #98a3af;
}

.nhs-home-newsletter__form button{
  height: 3.45rem;
  border-radius: .62rem;
  background: #4b93e6;
  color: #fff;
  font-weight: 600;
}

.nhs-home-newsletter__links{
  display: grid;
  justify-content: center;
  gap: .75rem;
  margin-top: 3.35rem;
  text-align: center;
}

.nhs-home-newsletter__links a{
  color: #4c535d !important;
  font-size: 1rem;
  font-weight: 600;
}

.nhs-home-legal{
  padding: 1.5rem 1rem 3.25rem;
  background: #fff;
}

.nhs-home-legal__inner{
  max-width: 1180px;
  margin: 0 auto;
  border-top: 1px solid rgba(31, 143, 168, 0.08);
  padding-top: 1.3rem;
  text-align: center;
}

.nhs-home-legal__copyright{
  margin: 0;
  color: #5b6470;
  font-size: 1.02rem;
  line-height: 1.65;
}

.nhs-home-legal__credit{
  color: #0d70b6;
  font-weight: 600;
}

.nhs-home-legal__meta{
  display: grid;
  gap: .7rem;
  margin-top: 2.35rem;
}

.nhs-home-legal__meta p{
  margin: 0;
  color: #59626d;
  font-size: 1.02rem;
  line-height: 1.5;
}

.nhs-home-chat-float{
  position: fixed;
  right: 1.25rem;
  bottom: 1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.55rem;
  height: 3.55rem;
  border-radius: 999px;
  background: var(--nhs-cyan-deep);
  color: #fff !important;
  box-shadow: 0 22px 40px -24px rgba(29, 159, 188, 0.6);
  z-index: 35;
}

.nhs-home-chat-float svg{
  width: 1.45rem;
  height: 1.45rem;
}

/* Homepage mobile-first refinement pass */
.nhs-home{
  --nhs-page-pad: clamp(1.25rem, 5.5vw, 1.75rem);
  --nhs-mobile-section-gap: clamp(4rem, 11vw, 5.25rem);
  overflow-x: clip;
}

.nhs-home-section-title h2,
.nhs-home-hero__copy h1,
.nhs-home-story__copy h3,
.nhs-home-specialty__title,
.nhs-home-specialty__services-title,
.nhs-home-labs__content h2,
.nhs-home-vision__block h2,
.nhs-home-services__heading h2,
.nhs-home-plan-panel__header h3,
.nhs-home-newsletter h2{
  text-wrap: balance;
}

.nhs-home-chat-float{
  right: max(1rem, env(safe-area-inset-right, 0px));
  bottom: max(1rem, calc(env(safe-area-inset-bottom, 0px) + .35rem));
}

@media (max-width: 1199.98px){
  .nhs-home-story__grid{
    grid-template-columns: 1fr;
  }

  .nhs-home-story__visuals{
    grid-template-columns: minmax(0, 1fr) minmax(13.8rem, .57fr);
    gap: 0;
    align-items: start;
    max-width: 46rem;
  }

  .nhs-home-story__visuals::before{
    content: none;
  }

  .nhs-home-story__image--main,
  .nhs-home-story__image--side{
    width: 100%;
  }

  .nhs-home-story__image--main{
    height: 34rem;
  }

  .nhs-home-story__image--side{
    height: 24.5rem;
    margin-top: 3.7rem;
    margin-left: -2rem;
  }

  .nhs-home-plan-panel{
    width: calc(100vw - 3rem);
  }

  .nhs-home-contact__band{
    grid-template-columns: 1fr;
  }

  .nhs-home-contact__card{
    transform: translateY(0);
  }
}

@media (max-width: 1023.98px){
  .nhs-home-header{
    position: sticky;
    top: 0;
    background: rgba(244, 244, 244, 0.94);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    box-shadow: 0 18px 34px -30px rgba(31, 56, 81, 0.2);
  }

  .nhs-home-toolbar{
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: .9rem 1rem;
    min-height: 0;
    padding:
      max(env(safe-area-inset-top, 0px), .85rem)
      var(--nhs-page-pad)
      1rem;
  }

  .nhs-home-toolbar__left{
    order: 1;
    gap: .7rem;
    align-self: center;
  }

  .nhs-home-menu-btn{
    display: inline-flex;
  }

  .nhs-home-logo{
    order: 2;
    width: auto;
    justify-content: center;
  }

  .nhs-home-logo img{
    width: min(17rem, 48vw);
    min-width: 0;
  }

  .nhs-home-toolbar__actions{
    order: 3;
    width: auto;
    grid-column: auto;
    justify-content: flex-end;
    justify-self: end;
    margin-left: 0;
    display: flex;
    gap: .6rem;
  }

  .nhs-home-install-btn{
    min-width: 0;
    min-height: 2.85rem;
    padding: 0 1rem;
    border-radius: .92rem;
    font-size: .94rem;
  }

  .nhs-home-toolbar__actions .nhs-home-login-btn{
    display: none;
  }

  .nhs-home-nav-bar{
    display: none;
  }

  .nhs-home-mobile-nav{
    display: block;
    position: fixed;
    top: calc(env(safe-area-inset-top, 0px) + 4.8rem);
    right: var(--nhs-page-pad);
    width: min(22rem, calc(100vw - (var(--nhs-page-pad) * 2)));
    margin: 0;
    border: 1px solid rgba(255, 255, 255, 0.32);
    border-radius: 1.15rem;
    overflow: hidden;
    z-index: 32;
  }

  .nhs-home-hero__media,
  .nhs-home-hero__copy{
    min-height: 31rem;
  }

  .nhs-home-hero__copy{
    padding-bottom: 4.25rem;
  }

  .nhs-home-labs__quote{
    position: static;
    width: auto;
    margin: 0 var(--nhs-page-pad);
    transform: translateY(-1.6rem);
  }

  .nhs-home-labs__body{
    padding-top: 1rem;
  }

  .nhs-home-plan-list{
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767.98px){
  .nhs-home-header{
    top: 0;
  }

  .nhs-home-toolbar{
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .85rem;
  }

  .nhs-home-toolbar__left{
    min-width: 0;
  }

  .nhs-home-menu-btn{
    width: 2.85rem;
    height: 2.85rem;
    border-radius: .95rem;
  }

  .nhs-home-chat-btn{
    min-width: 0;
    min-height: 2.85rem;
    padding: 0 .95rem;
    border-radius: .95rem;
    font-size: .95rem;
  }

  .nhs-home-chat-btn span{
    display: none;
  }

  .nhs-home-logo{
    justify-self: center;
  }

  .nhs-home-logo img{
    width: min(11.75rem, 43vw);
  }

  .nhs-home-toolbar__actions{
    gap: 0;
  }

  .nhs-home-toolbar__actions .nhs-home-install-btn{
    display: none !important;
  }

  .nhs-home-toolbar__actions .nhs-home-login-btn{
    display: none !important;
  }

  .nhs-home-mobile-nav nav{
    padding: .65rem;
    gap: .35rem;
  }

  .nhs-home-mobile-nav__top{
    padding: .8rem .8rem .55rem;
  }

  .nhs-home-mobile-nav a,
  .nhs-home-mobile-nav button{
    min-height: 3rem;
    padding: .82rem .95rem;
    border-radius: .95rem;
  }

  .nhs-home-flash-wrap{
    margin-top: .85rem;
    padding-inline: var(--nhs-page-pad);
  }

  .nhs-home-hero__media,
  .nhs-home-hero__copy{
    min-height: min(34rem, 82svh);
  }

  .nhs-home-hero__media{
    background-position: center 16%;
  }

  .nhs-home-hero__shade{
    background: linear-gradient(180deg, rgba(18, 28, 34, 0.08) 0%, rgba(18, 28, 34, 0.18) 32%, rgba(18, 28, 34, 0.72) 100%);
  }

  .nhs-home-hero__glow{
    height: 54%;
    background: linear-gradient(180deg, rgba(89, 215, 237, 0) 0%, rgba(89, 215, 237, 0.25) 44%, rgba(89, 215, 237, 0.62) 100%);
  }

  .nhs-home-hero__copy{
    align-items: flex-end;
    padding: 0 var(--nhs-page-pad) 2.35rem;
  }

  .nhs-home-hero__copy h1{
    max-width: 12ch;
    font-size: clamp(2.05rem, 10vw, 2.75rem);
    line-height: 1.08;
  }

  .nhs-home-section-title{
    padding: 3.6rem var(--nhs-page-pad) 0;
  }

  .nhs-home-section-title h2{
    max-width: 14ch;
    margin-inline: auto;
    font-size: clamp(2rem, 8.6vw, 2.45rem);
    line-height: 1.14;
  }

  .nhs-home-story,
  .nhs-home-services,
  .nhs-home-plans{
    padding-left: var(--nhs-page-pad);
    padding-right: var(--nhs-page-pad);
  }

  .nhs-home-story{
    padding-bottom: var(--nhs-mobile-section-gap);
  }

  .nhs-home-story__grid{
    margin-top: 2.2rem;
    gap: 1.8rem;
  }

  .nhs-home-story__copy{
    max-width: none;
  }

  .nhs-home-story__copy h3{
    font-size: clamp(2rem, 9.2vw, 2.45rem);
    line-height: 1.08;
  }

  .nhs-home-story__copy p,
  .nhs-home-labs__body p{
    font-size: 1rem;
    line-height: 1.72;
  }

  .nhs-home-arrow-link{
    width: 3.35rem;
    height: 3.35rem;
    margin-top: 1.6rem;
  }

  .nhs-home-story__visuals{
    display: block;
    max-width: 22rem;
    margin: .25rem auto 0;
    padding-bottom: 1.35rem;
  }

  .nhs-home-story__image--main,
  .nhs-home-story__image--side{
    width: 100%;
  }

  .nhs-home-story__image--main{
    height: 23rem;
    border-radius: 1.9rem 0 1.9rem 0;
  }

  .nhs-home-story__image--side{
    width: 58%;
    height: 14rem;
    margin: -3rem 0 0 auto;
    border-radius: 1.65rem;
    position: relative;
    z-index: 3;
    box-shadow: 0 24px 46px -34px rgba(31, 56, 81, 0.32);
  }

  .nhs-home-labs{
    padding-bottom: var(--nhs-mobile-section-gap);
  }

  .nhs-home-labs__hero{
    min-height: 23.5rem;
    background-position: center;
  }

  .nhs-home-labs__content{
    padding: 4.25rem var(--nhs-page-pad) 2.7rem;
  }

  .nhs-home-labs__content h2{
    max-width: 11ch;
    font-size: clamp(2.05rem, 9vw, 2.85rem);
    line-height: 1.08;
  }

  .nhs-home-red-btn{
    min-height: 3.15rem;
    margin-top: 1.5rem;
    padding: 0 1.55rem;
    border-radius: .9rem;
  }

  .nhs-home-labs__quote{
    margin: 0 var(--nhs-page-pad);
    padding: 1.35rem 1.25rem;
    border-radius: 1.35rem;
    transform: translateY(-1.25rem);
  }

  .nhs-home-labs__quote strong{
    margin-bottom: .6rem;
    font-size: 1.05rem;
  }

  .nhs-home-labs__quote p{
    font-size: 1.05rem;
    line-height: 1.45;
  }

  .nhs-home-labs__body{
    padding: .5rem var(--nhs-page-pad) 0;
  }

  .nhs-home-specialty{
    padding: 4.2rem var(--nhs-page-pad) var(--nhs-mobile-section-gap);
  }

  .nhs-home-specialty__grid{
    grid-template-columns: 1fr;
    gap: 1.8rem;
  }

  .nhs-home-specialty__content{
    order: 2;
    max-width: none;
  }

  .nhs-home-specialty__title{
    font-size: clamp(2rem, 8.6vw, 2.45rem);
    line-height: 1.08;
  }

  .nhs-home-specialty__body{
    font-size: 1rem;
    line-height: 1.72;
  }

  .nhs-home-specialty__services-title{
    font-size: clamp(1.85rem, 7.8vw, 2.2rem);
    line-height: 1.12;
  }

  .nhs-home-specialty__service-item{
    align-items: flex-start;
    gap: .8rem;
    font-size: .98rem;
    line-height: 1.55;
    padding: .92rem 0;
  }

  .nhs-home-specialty__media{
    order: 1;
    max-width: 23rem;
    margin: 0 auto;
    padding-right: .95rem;
    padding-bottom: .95rem;
  }

  .nhs-home-specialty__media-accent{
    top: .85rem;
    left: .85rem;
    border-radius: 1.35rem 0 2.8rem 1rem;
  }

  .nhs-home-specialty__media-frame{
    border-top-left-radius: 36px;
    border-bottom-right-radius: 36px;
  }

  .nhs-home-specialty__cta{
    min-height: 3.2rem;
    margin-top: 1.4rem;
    border-radius: .85rem;
  }

  .nhs-home-specialty__grid--reverse .nhs-home-specialty__content{
    order: 2;
    margin-left: 0;
  }

  .nhs-home-specialty__grid--reverse .nhs-home-specialty__media{
    order: 1;
    margin-right: auto;
  }

  .nhs-home-vision{
    padding: 4.2rem var(--nhs-page-pad) var(--nhs-mobile-section-gap);
  }

  .nhs-home-vision__grid{
    gap: 1.9rem;
  }

  .nhs-home-vision__content{
    max-width: none;
  }

  .nhs-home-vision__media{
    order: -1;
    max-width: 23rem;
    margin: 0 auto;
    padding-right: 1rem;
    padding-bottom: 1rem;
  }

  .nhs-home-vision__block h2{
    font-size: clamp(2.1rem, 10vw, 2.8rem);
    line-height: 1.04;
  }

  .nhs-home-vision__block p{
    font-size: 1rem;
    line-height: 1.72;
  }

  .nhs-home-vision__block + .nhs-home-vision__block{
    margin-top: 1.7rem;
  }

  .nhs-home-vision__cta{
    min-height: 3.2rem;
    margin-top: 1.7rem;
    border-radius: .85rem;
  }

  .nhs-home-vision__utility-row{
    margin-top: 2.7rem;
    gap: 1.9rem;
  }

  .nhs-home-vision__utility-card{
    min-height: 0;
    padding: 1.65rem 1.35rem 2.95rem;
    border-radius: 1.45rem;
  }

  .nhs-home-vision__utility-card h3{
    font-size: 1.2rem;
  }

  .nhs-home-vision__media-accent{
    top: .8rem;
    left: 1rem;
    border-radius: 2rem 2rem 3rem 2rem;
  }

  .nhs-home-vision__media-frame{
    border-radius: 2rem;
  }

  .nhs-home-services__masonry,
  .nhs-home-services__stack,
  .nhs-home-services__stack--tail{
    grid-template-columns: 1fr;
  }

  .nhs-home-services{
    padding-top: 4.2rem;
    padding-bottom: var(--nhs-mobile-section-gap);
  }

  .nhs-home-services__heading{
    margin-bottom: 1.5rem;
  }

  .nhs-home-services__heading h2{
    font-size: clamp(2.2rem, 9vw, 2.95rem);
    line-height: 1.06;
  }

  .nhs-home-services__masonry{
    max-width: 34rem;
    gap: 1rem;
  }

  .nhs-home-service-showcase-card{
    border-radius: 1.8rem;
  }

  .nhs-home-service-showcase-card__content{
    left: 1.15rem;
    right: 1.15rem;
    bottom: 1.1rem;
  }

  .nhs-home-service-showcase-card__content h3{
    font-size: clamp(1.55rem, 7vw, 2rem);
  }

  .nhs-home-service-showcase-card__content p{
    font-size: .96rem;
    line-height: 1.45;
  }

  .nhs-home-service-showcase-card--hero{
    min-height: 24rem;
  }

  .nhs-home-service-showcase-card--tall{
    min-height: 22rem;
  }

  .nhs-home-service-showcase-card--medium{
    min-height: 20rem;
  }

  .nhs-home-service-showcase-card--short{
    min-height: 16rem;
  }

  .nhs-home-plan-panel{
    width: auto;
    margin-top: 2.3rem;
    border-radius: 1.85rem 3rem 1.85rem 3rem;
  }

  .nhs-home-plan-panel__content{
    padding: 2.3rem 1.25rem 2.55rem;
  }

  .nhs-home-plan-panel__header h3{
    font-size: clamp(2rem, 8.5vw, 2.55rem);
    line-height: 1.08;
  }

  .nhs-home-plan-panel__header p{
    font-size: .98rem;
    line-height: 1.55;
    max-width: 18rem;
  }

  .nhs-home-plan-list{
    gap: 1.6rem;
    margin-top: 2.3rem;
  }

  .nhs-home-plan-item__badge{
    width: 4.8rem;
    height: 4.8rem;
    font-size: 1.6rem;
  }

  .nhs-home-plan-link{
    align-items: center;
    justify-content: space-between;
    width: 100%;
    font-size: 1.7rem;
  }

  .nhs-home-contact__band{
    padding: 2.35rem var(--nhs-page-pad) 2.5rem;
    gap: 2rem;
  }

  .nhs-home-contact__card{
    padding: 2rem 1.35rem 2.25rem;
    border-radius: 1.45rem 4rem 1.45rem 4rem;
  }

  .nhs-home-contact__logo{
    display: flex;
    justify-content: center;
    margin-bottom: 2rem;
  }

  .nhs-home-contact__logo img{
    width: min(15rem, 78%);
  }

  .nhs-home-contact__item{
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
    gap: .95rem;
  }

  .nhs-home-contact__item + .nhs-home-contact__item{
    margin-top: 1.8rem;
    padding-top: 1.8rem;
    border-top: 1px solid rgba(28, 50, 73, 0.08);
  }

  .nhs-home-contact__icon{
    width: 3.65rem;
    height: 3.65rem;
  }

  .nhs-home-contact__icon svg{
    width: 1.7rem;
    height: 1.7rem;
  }

  .nhs-home-contact__item h3{
    margin-top: 0;
    font-size: 1.18rem;
  }

  .nhs-home-contact__item p{
    font-size: .98rem;
    line-height: 1.58;
  }

  .nhs-home-newsletter{
    max-width: none;
    padding-bottom: 0;
    text-align: center;
  }

  .nhs-home-newsletter h2{
    font-size: clamp(2rem, 9vw, 2.75rem);
    line-height: 1.08;
  }

  .nhs-home-newsletter > p{
    margin-top: 1rem;
    font-size: 1rem;
  }

  .nhs-home-newsletter__form{
    grid-template-columns: 1fr;
    gap: .8rem;
    margin-top: 1.8rem;
    max-width: none;
  }

  .nhs-home-newsletter__form input,
  .nhs-home-newsletter__form button{
    height: 3.35rem;
    border-radius: .9rem;
  }

  .nhs-home-newsletter__links{
    justify-content: center;
    margin-top: 2rem;
    text-align: center;
  }

  .nhs-home-legal{
    padding: 1.1rem var(--nhs-page-pad) 2.9rem;
  }

  .nhs-home-legal__inner{
    padding-top: 1.15rem;
  }

  .nhs-home-legal__copyright,
  .nhs-home-legal__meta p{
    font-size: .95rem;
  }

  .nhs-home-legal__meta{
    margin-top: 1.9rem;
    gap: .55rem;
  }

  .nhs-home-chat-float{
    width: 3.35rem;
    height: 3.35rem;
  }
}

@media (max-width: 420px){
  .nhs-home-toolbar{
    grid-template-columns: auto minmax(0, 1fr) auto;
  }

  .nhs-home-logo img{
    width: min(10.6rem, 42vw);
  }

  .nhs-home-chat-btn{
    padding-inline: .82rem;
  }

  .nhs-home-install-btn{
    min-height: 2.75rem;
    font-size: .82rem;
    padding-inline: .7rem;
  }

  .nhs-home-plan-link{
    font-size: 1.5rem;
  }
}

.offcanvas__label{
  font-weight: 700;
  font-size: 13px;
}

@media (max-width: 767.98px){
  .offcanvas__label{
    font-size: .74rem;
  }
}

.footer-create{
  text-align: center !important;
}

/* ---- Responsive --------------------------------------------------------- */
@media (max-width: 720px){
  .table-wrap{ overflow-x: auto; }
  .searchbar{ margin-inline: 0; }
  th,
  td,
  .table th,
  .table td{ padding: 10px 12px; }
}
