:root {
    --ink: #382a34;
    --ink-soft: #594852;
    --blue: #b978a0;
    --blue-deep: #925775;
    --blue-pale: #f3e5ee;
    --paper: #f4edf3;
    --white: rgba(255, 252, 254, .72);
    --line: rgba(107, 76, 96, .14);
    --muted: #806f7a;
    --sage: #8ca59a;
    --sage-pale: #e8f0ec;
    --blush: #c98ca9;
    --blush-pale: #f7e8ef;
    --plum: #80647b;
    --plum-pale: #eee6ee;
    --amber: #c1a06f;
    --amber-pale: #f7efdf;
    --coral: #bd6e78;
    --coral-pale: #f6e5e8;
    --glass: rgba(255, 252, 254, .62);
    --glass-strong: rgba(255, 253, 255, .82);
    --glass-border: rgba(255, 255, 255, .72);
    --shadow: 0 24px 70px rgba(76, 46, 67, .13);
    --shadow-soft: 0 10px 35px rgba(76, 46, 67, .08);
    --radius: 24px;
    --sidebar: 242px;
    --topbar: 72px;
    --font-display: "Bodoni Moda", Didot, Georgia, serif;
    --font-body: "Manrope", "Avenir Next", system-ui, sans-serif;
    font-family: var(--font-body);
    color: var(--ink);
    background: var(--paper);
    font-synthesis: none;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; background: var(--paper); color: var(--ink); }
button, input, textarea, select { font: inherit; color: inherit; }
button { border: 0; cursor: pointer; }
button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, a:focus-visible { outline: 3px solid rgba(43, 183, 235, .36); outline-offset: 2px; }
button:disabled { cursor: not-allowed; opacity: .42; }
svg { width: 18px; height: 18px; stroke-width: 1.8; flex: 0 0 auto; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 8px; font-size: clamp(2.25rem, 4vw, 3.65rem); line-height: .98; letter-spacing: -.045em; font-family: var(--font-display); font-weight: 400; }
h2 { margin-bottom: 0; font-size: 1.35rem; line-height: 1.15; letter-spacing: -.025em; }
h3 { margin-bottom: 0; font-size: .95rem; }
small { color: var(--muted); }
.skip-link { position: fixed; left: 14px; top: -60px; padding: 10px 16px; background: var(--ink); color: #fff; border-radius: 10px; z-index: 1000; transition: top .2s; }
.skip-link:focus { top: 14px; }
.text-positive { color: #3d8970 !important; }
.text-warning { color: #a56b16 !important; }
.eyebrow { margin: 0 0 8px; font-size: .68rem; line-height: 1; letter-spacing: .16em; text-transform: uppercase; font-weight: 700; color: var(--blue-deep); }
.eyebrow.light { color: #93def9; }

.app-frame { min-height: 100vh; }
.sidebar { position: fixed; inset: 0 auto 0 0; width: var(--sidebar); display: flex; flex-direction: column; background: var(--ink); color: #fff; z-index: 50; }
.brand-lockup { height: var(--topbar); display: flex; align-items: center; gap: 12px; padding: 0 20px; border-bottom: 1px solid rgba(255,255,255,.08); }
.brand-mark { width: 37px; height: 37px; border: 1px solid rgba(255,255,255,.32); border-radius: 50% 50% 50% 18%; display: grid; place-items: center; font-family: "Instrument Serif", Georgia, serif; font-size: 1.42rem; color: #fff; background: linear-gradient(145deg, rgba(43,183,235,.9), rgba(116,153,138,.9)); box-shadow: inset 0 0 0 3px rgba(255,255,255,.12); }
.brand-copy { display: flex; flex-direction: column; line-height: 1; }
.brand-copy strong { font-size: 1rem; letter-spacing: .01em; font-weight: 600; }
.brand-copy small { margin-top: 5px; font-size: .58rem; letter-spacing: .19em; text-transform: uppercase; color: rgba(255,255,255,.48); }
.primary-nav { padding: 18px 12px; overflow-y: auto; }
.nav-label { margin: 18px 10px 7px; font-size: .61rem; letter-spacing: .15em; text-transform: uppercase; color: rgba(255,255,255,.38); font-weight: 700; }
.primary-nav .nav-label:first-child { margin-top: 0; }
.nav-item { position: relative; width: 100%; min-height: 42px; display: grid; grid-template-columns: 22px 1fr auto; align-items: center; gap: 9px; padding: 0 10px; color: rgba(255,255,255,.64); background: transparent; text-align: left; border-radius: 10px; font-size: .82rem; transition: .2s ease; }
.nav-item:hover { color: #fff; background: rgba(255,255,255,.06); }
.nav-item.is-active { color: #fff; background: linear-gradient(90deg, rgba(43,183,235,.17), rgba(43,183,235,.04)); }
.nav-item.is-active::before { content: ""; position: absolute; width: 3px; height: 21px; left: -12px; top: 10px; background: var(--blue); border-radius: 0 4px 4px 0; }
.nav-item svg { width: 17px; }
.nav-badge { min-width: 20px; padding: 3px 6px; color: #c5edf9; background: rgba(43,183,235,.16); border-radius: 20px; font-size: .61rem; text-align: center; }
.nav-badge.coral { color: #ffd9d5; background: rgba(207,102,93,.2); }
.nav-badge.sage { color: #d9eee6; background: rgba(116,153,138,.25); }
.nav-badge.amber { color: #ffe7bd; background: rgba(201,147,63,.22); }
.nav-dot { width: 7px; height: 7px; border-radius: 50%; background: #62c69f; box-shadow: 0 0 0 4px rgba(98,198,159,.1); }
.sidebar-footer { margin-top: auto; padding: 12px; border-top: 1px solid rgba(255,255,255,.07); }
.sync-card { display: flex; gap: 10px; align-items: center; padding: 10px; }
.sync-card > span:last-child, .tablet-launch > span { display: flex; flex-direction: column; }
.sync-card strong, .tablet-launch strong { font-size: .7rem; font-weight: 600; }
.sync-card small, .tablet-launch small { margin-top: 3px; color: rgba(255,255,255,.4); font-size: .62rem; }
.sync-icon { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 8px; color: #66c89f; background: rgba(98,198,159,.1); }
.sync-icon svg { width: 14px; }
.tablet-launch { width: 100%; display: grid; grid-template-columns: 26px 1fr 16px; align-items: center; gap: 8px; padding: 11px 10px; color: #fff; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.08); border-radius: 12px; text-align: left; }
.tablet-launch:hover { background: rgba(255,255,255,.1); }
.tablet-launch > svg:last-child { width: 13px; color: rgba(255,255,255,.5); }

.workspace { margin-left: var(--sidebar); min-height: 100vh; }
.topbar { position: sticky; top: 0; height: var(--topbar); display: flex; justify-content: space-between; align-items: center; padding: 0 28px; background: rgba(243,245,244,.88); backdrop-filter: blur(18px); border-bottom: 1px solid rgba(23,37,50,.08); z-index: 40; }
.topbar-left, .topbar-actions { display: flex; align-items: center; gap: 16px; }
.location-copy { display: flex; flex-direction: column; gap: 3px; }
.location-copy small { font-size: .59rem; text-transform: uppercase; letter-spacing: .14em; }
.location-copy button { display: flex; align-items: center; gap: 3px; padding: 0; background: transparent; font-size: .78rem; font-weight: 700; }
.location-copy svg { width: 13px; }
.search-trigger { min-width: 270px; display: flex; align-items: center; gap: 8px; padding: 9px 10px; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.72); color: var(--muted); font-size: .72rem; text-align: left; }
.search-trigger span { flex: 1; }
kbd { padding: 2px 5px; border: 1px solid #d5dcdd; border-bottom-width: 2px; border-radius: 5px; color: #718087; background: #fff; font-family: inherit; font-size: .58rem; }
.role-switcher { display: flex; align-items: center; padding: 3px; background: #e7ebea; border-radius: 10px; }
.role-caption { padding: 0 6px; font-size: .58rem; color: var(--muted); text-transform: uppercase; letter-spacing: .09em; }
.role-button { padding: 7px 8px; border-radius: 7px; background: transparent; color: var(--muted); font-size: .63rem; font-weight: 600; }
.role-button.is-active { background: #fff; color: var(--ink); box-shadow: 0 2px 6px rgba(23,37,50,.08); }
.icon-button { width: 34px; height: 34px; display: inline-grid; place-items: center; padding: 0; border: 1px solid var(--line); background: #fff; border-radius: 9px; color: var(--ink-soft); }
.icon-button:hover { border-color: #c7d1d1; background: #fafcfc; }
.icon-button svg { width: 16px; }
.notification-button { position: relative; }
.notification-button span { position: absolute; width: 7px; height: 7px; right: 5px; top: 5px; background: var(--coral); border: 2px solid #fff; border-radius: 50%; }
.user-menu { display: flex; align-items: center; gap: 9px; padding: 0; background: transparent; text-align: left; }
.user-menu > span:nth-child(2) { display: flex; flex-direction: column; }
.user-menu strong { font-size: .7rem; }
.user-menu small { font-size: .59rem; }
.user-menu > svg { width: 13px; color: var(--muted); }
.mobile-menu { display: none; }

main { padding: 34px clamp(22px, 3vw, 42px) 70px; }
.view { display: none; max-width: 1540px; margin: 0 auto; animation: view-in .3s ease; }
.view.is-active { display: block; }
@keyframes view-in { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }
.page-heading { margin-bottom: 26px; }
.page-heading > p:last-child, .page-heading > div > p:last-child { max-width: 690px; margin-bottom: 0; color: var(--muted); font-size: .83rem; }
.heading-with-actions { display: flex; justify-content: space-between; align-items: flex-end; gap: 30px; }
.compact-page-heading h1 { font-size: clamp(2.2rem, 3.2vw, 3rem); }
.page-actions { display: flex; gap: 9px; flex: 0 0 auto; }
.button { min-height: 40px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 15px; border-radius: 10px; font-size: .72rem; font-weight: 700; transition: transform .17s, box-shadow .17s, background .17s; }
.button:hover { transform: translateY(-1px); }
.button.primary { color: #fff; background: var(--blue-deep); box-shadow: 0 6px 18px rgba(8,126,170,.18); }
.button.primary:hover { background: #056f97; box-shadow: 0 8px 22px rgba(8,126,170,.25); }
.button.secondary { color: var(--ink); background: #fff; border: 1px solid var(--line); }
.button.dark { color: #fff; background: var(--ink); }
.button.ghost { background: transparent; }
.button.small { min-height: 34px; padding: 0 11px; font-size: .66rem; }
.button.full { width: 100%; }
.text-button { display: inline-flex; align-items: center; gap: 5px; padding: 0; color: var(--blue-deep); background: transparent; font-size: .66rem; font-weight: 700; }
.text-button svg { width: 14px; }
.panel { background: var(--white); border: 1px solid rgba(23,37,50,.07); border-radius: var(--radius); box-shadow: var(--shadow-soft); }
.panel-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.panel-header.compact { align-items: center; }
.count-badge { min-width: 28px; padding: 5px 8px; border-radius: 20px; background: var(--blue-pale); color: var(--blue-deep); font-size: .66rem; font-weight: 700; text-align: center; }

/* Today */
.today-pulse { display: grid; grid-template-columns: repeat(4, 1fr); margin-bottom: 18px; background: #fff; border: 1px solid rgba(23,37,50,.07); border-radius: var(--radius); box-shadow: var(--shadow-soft); overflow: hidden; }
.today-pulse article { min-width: 0; display: grid; grid-template-columns: 40px 1fr; grid-template-rows: auto auto; column-gap: 12px; padding: 18px 20px; border-right: 1px solid var(--line); }
.today-pulse article:last-child { border: 0; }
.pulse-icon { grid-row: 1 / 3; width: 40px; height: 40px; display: grid; place-items: center; border-radius: 12px; }
.pulse-icon.blue { color: var(--blue-deep); background: var(--blue-pale); }
.pulse-icon.blush { color: var(--blush); background: var(--blush-pale); }
.pulse-icon.sage { color: var(--sage); background: var(--sage-pale); }
.pulse-icon.amber { color: var(--amber); background: var(--amber-pale); }
.today-pulse article > div { display: flex; align-items: baseline; gap: 7px; min-width: 0; }
.today-pulse article > div strong { font-family: "Instrument Serif", Georgia, serif; font-size: 1.58rem; font-weight: 400; white-space: nowrap; }
.today-pulse article > div span { color: var(--muted); font-size: .68rem; white-space: nowrap; }
.today-pulse article > small { font-size: .6rem; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.72fr) minmax(280px, .62fr); gap: 18px; }
.agenda-panel { padding: 22px; overflow: hidden; }
.segmented-control { display: flex; padding: 3px; background: #eef1f1; border-radius: 9px; }
.segmented-control button { padding: 7px 10px; color: var(--muted); background: transparent; border-radius: 7px; font-size: .62rem; font-weight: 600; }
.segmented-control button.is-active { color: var(--ink); background: #fff; box-shadow: 0 2px 5px rgba(23,37,50,.08); }
.agenda-legend { display: flex; align-items: center; gap: 16px; margin-top: 20px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.agenda-legend > span { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-size: .6rem; }
.agenda-legend .text-button { margin-left: auto; }
.legend-dot { width: 7px; height: 7px; border-radius: 50%; }
.legend-dot.anna { background: var(--sage); }.legend-dot.sara { background: var(--blush); }.legend-dot.elena { background: var(--blue); }
.day-ruler { margin: 13px 0 8px 142px; display: grid; grid-template-columns: repeat(10, 1fr); color: #9aa6aa; font-size: .52rem; }
.day-ruler span:not(:first-child) { text-align: center; }
.rhythm-lanes { display: flex; flex-direction: column; gap: 10px; }
.rhythm-row { display: grid; grid-template-columns: 132px 1fr; gap: 10px; align-items: center; }
.rhythm-name { display: flex; gap: 8px; align-items: center; }
.rhythm-name > span:last-child { display: flex; flex-direction: column; }
.rhythm-name strong { font-size: .66rem; }.rhythm-name small { font-size: .53rem; }
.avatar { width: 32px; height: 32px; display: inline-grid; place-items: center; flex: 0 0 auto; border-radius: 50%; font-size: .6rem; font-weight: 700; }
.avatar.large { width: 40px; height: 40px; font-size: .7rem; }
.avatar.xlarge { width: 58px; height: 58px; font-family: "Instrument Serif", Georgia, serif; font-size: 1.15rem; font-weight: 400; }
.avatar.tiny { width: 23px; height: 23px; font-size: .48rem; }
.avatar-sage { color: #315a4d; background: var(--sage-pale); }.avatar-blush { color: #84465a; background: var(--blush-pale); }.avatar-blue { color: #076b90; background: var(--blue-pale); }.avatar-plum { color: #5a4360; background: var(--plum-pale); }.avatar-amber { color: #885c19; background: var(--amber-pale); }
.rhythm-track { position: relative; height: 49px; border-radius: 9px; background-color: #f7f9f8; background-image: repeating-linear-gradient(90deg, transparent, transparent calc(10% - 1px), #e7eceb calc(10% - 1px), #e7eceb 10%); overflow: hidden; }
.rhythm-block, .rhythm-gap { position: absolute; left: calc(var(--start) * 10%); width: calc(var(--span) * 10%); top: 5px; bottom: 5px; min-width: 50px; display: flex; flex-direction: column; justify-content: center; padding: 5px 8px; border-radius: 7px; text-align: left; font-size: .56rem; font-weight: 700; line-height: 1.1; overflow: hidden; white-space: nowrap; }
.rhythm-block small { margin-top: 3px; font-size: .48rem; color: currentColor; opacity: .66; }
.rhythm-block.anna { color: #315a4d; background: #dcebe5; border-left: 3px solid var(--sage); }.rhythm-block.sara { color: #81485a; background: #f5e5ea; border-left: 3px solid var(--blush); }.rhythm-block.elena { color: #076788; background: #e2f4fa; border-left: 3px solid var(--blue); }
.rhythm-gap { align-items: center; flex-direction: row; gap: 4px; color: var(--muted); background: transparent; border: 1px dashed #cbd4d4; }
.rhythm-gap.opportunity { color: #95661d; border-color: #d9ab60; background: #fff8e9; }.rhythm-gap svg { width: 11px; }
.resource-strip { margin: 18px -22px -22px; padding: 11px 22px; display: flex; align-items: center; gap: 8px; background: #f7f9f8; border-top: 1px solid var(--line); overflow-x: auto; }
.resource-label { display: inline-flex; align-items: center; gap: 5px; margin-right: 4px; color: var(--muted); font-size: .56rem; text-transform: uppercase; letter-spacing: .09em; font-weight: 700; }.resource-label svg { width: 13px; }
.resource-chip { display: inline-flex; align-items: center; gap: 5px; padding: 6px 9px; border: 1px solid var(--line); border-radius: 20px; background: #fff; font-size: .55rem; white-space: nowrap; }.resource-chip i { width: 6px; height: 6px; border-radius: 50%; background: #65b692; }.resource-chip.busy i { background: var(--blush); }.resource-chip strong { font-weight: 600; color: var(--muted); }
.next-panel { overflow: hidden; }
.next-panel > .panel-header { padding: 22px 20px 0; }
.next-client-card { padding: 18px 20px; border-bottom: 1px solid var(--line); }
.client-identity { display: flex; align-items: center; gap: 10px; }.client-identity > span:last-child { display: flex; flex-direction: column; }.client-identity strong { font-size: .79rem; }.client-identity small { margin-top: 3px; font-size: .58rem; }
.status-pill { display: inline-flex; align-items: center; gap: 5px; width: max-content; padding: 5px 8px; border-radius: 20px; font-size: .55rem; font-weight: 700; white-space: nowrap; }.status-pill i { width: 6px; height: 6px; border-radius: 50%; }.status-pill.confirmed { color: #367960; background: var(--sage-pale); }.status-pill.confirmed i { background: #4aa27f; }.status-pill.pending { color: #8f621b; background: var(--amber-pale); }.status-pill.pending i { background: var(--amber); }
.next-client-card > .status-pill { margin: 11px 0; }
.treatment-line { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 12px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }.treatment-line span { display: flex; flex-direction: column; }.treatment-line small { font-size: .54rem; }.treatment-line strong { margin-top: 3px; font-size: .64rem; }
.clinical-note { display: flex; gap: 8px; margin: 12px 0; padding: 10px; color: #8e4e4a; background: var(--coral-pale); border-radius: 9px; }.clinical-note svg { width: 15px; }.clinical-note span { display: flex; flex-direction: column; }.clinical-note strong { font-size: .57rem; }.clinical-note small { margin-top: 2px; color: #9b6a66; font-size: .51rem; line-height: 1.35; }
.session-counter > span { display: flex; justify-content: space-between; }.session-counter small, .session-counter strong { font-size: .56rem; }.progress { height: 4px; margin-top: 7px; background: #e8eceb; border-radius: 5px; overflow: hidden; }.progress i { display: block; height: 100%; background: var(--sage); }
.card-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 14px; }
.mini-task-list { padding: 16px 20px 20px; }.mini-task-list h3 { margin-bottom: 7px; }.mini-task-list label { display: grid; grid-template-columns: 17px 1fr auto; align-items: center; gap: 7px; padding: 8px 0; border-bottom: 1px solid #edf0f0; font-size: .57rem; }.mini-task-list label:last-child { border: 0; }.mini-task-list input { accent-color: var(--blue-deep); }.mini-task-list small { font-size: .5rem; }
.opportunity-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 18px; margin-top: 18px; }
.opportunity-hero { position: relative; min-height: 230px; display: grid; grid-template-columns: 120px 1fr auto; align-items: center; gap: 25px; padding: 26px; overflow: hidden; background: linear-gradient(135deg, #e9f4f0 0%, #f5f9f7 52%, #fff 100%); }
.opportunity-hero::after { content: ""; position: absolute; width: 180px; height: 180px; right: -85px; top: -80px; border: 1px solid rgba(116,153,138,.25); border-radius: 50%; box-shadow: 0 0 0 25px rgba(116,153,138,.04), 0 0 0 50px rgba(116,153,138,.03); }
.opportunity-visual { position: relative; width: 108px; height: 150px; display: flex; flex-direction: column; align-items: center; justify-content: space-between; padding: 8px; font-family: "Instrument Serif", Georgia, serif; font-size: 1.22rem; }
.opportunity-visual::before { content: ""; position: absolute; inset: 33px 50%; border-left: 1px dashed #789c8c; }.opportunity-visual i { width: 42px; height: 42px; z-index: 1; background: var(--sage); border: 10px solid #d8e7e1; border-radius: 50%; box-shadow: 0 0 0 8px rgba(116,153,138,.1); }
.opportunity-hero h2 { font-family: "Instrument Serif", Georgia, serif; font-size: 2rem; font-weight: 400; }.opportunity-hero p:last-child { max-width: 540px; margin: 10px 0 0; color: var(--muted); font-size: .69rem; line-height: 1.55; }.opportunity-hero .button { align-self: end; z-index: 1; }
.attention-list { padding: 22px; }.attention-list > button { width: 100%; display: grid; grid-template-columns: 36px 1fr 16px; align-items: center; gap: 10px; padding: 13px 0; background: transparent; border-bottom: 1px solid var(--line); text-align: left; }.attention-list > button:last-child { border: 0; }.attention-list > button > span:nth-child(2) { display: flex; flex-direction: column; }.attention-list strong { font-size: .64rem; }.attention-list small { margin-top: 3px; font-size: .55rem; }.attention-list > button > svg { width: 14px; color: var(--muted); }
.attention-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; }.attention-icon.amber { color: #9a6a20; background: var(--amber-pale); }.attention-icon.coral { color: var(--coral); background: var(--coral-pale); }.attention-icon.blue { color: var(--blue-deep); background: var(--blue-pale); }.attention-icon.sage { color: var(--sage); background: var(--sage-pale); }.attention-icon svg { width: 15px; }

/* Calendar */
.calendar-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 12px 16px; }
.date-nav, .calendar-filters { display: flex; align-items: center; gap: 6px; }
.calendar-filters { max-width: 52%; padding-bottom: 2px; overflow-x: auto; scrollbar-width: thin; }
.date-nav .icon-button { border: 0; background: #f6f8f7; }
.filter-chip { display: flex; align-items: center; gap: 6px; padding: 5px 8px; background: #fff; border: 1px solid var(--line); border-radius: 20px; color: var(--muted); font-size: .58rem; }.filter-chip.is-active { color: var(--ink); }
.shift-roster { display: grid; grid-template-columns: minmax(180px, 1.4fr) repeat(6, minmax(92px, 1fr)); align-items: stretch; gap: 1px; margin: 12px 0; background: var(--line); overflow: hidden; }
.shift-roster-title, .shift-person { min-width: 0; display: flex; align-items: center; gap: 8px; padding: 11px 12px; background: #fff; }
.shift-roster-title > span:first-child { width: 30px; height: 30px; display: grid; place-items: center; color: var(--blue-deep); background: var(--blue-pale); border-radius: 9px; }.shift-roster-title svg { width: 14px; }.shift-roster-title > span:last-child, .shift-person > span:last-child { display: flex; flex-direction: column; }.shift-roster-title small, .shift-person small { font-size: .48rem; }.shift-roster-title strong, .shift-person strong { font-size: .56rem; white-space: nowrap; }.shift-person.late { background: #fffbf2; }.shift-person.long { background: #f0f8f5; }
.resource-health { display: flex; align-items: center; gap: 8px; margin: 12px 0; }.resource-health > span { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 20px; background: rgba(255,255,255,.75); color: var(--muted); font-size: .56rem; }.resource-health strong { color: var(--ink-soft); }.status-dot { width: 8px; height: 8px; border-radius: 50%; }.status-dot.good { background: #55ae86; }.status-dot.warning { background: var(--amber); }.status-dot.private { background: var(--plum); }
.calendar-shell { min-height: 720px; display: grid; grid-template-columns: 85px repeat(3, 1fr); grid-template-rows: 66px 1fr; overflow: hidden; }
.calendar-corner { padding: 16px 14px; display: flex; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }.calendar-corner small { font-size: .53rem; }.calendar-corner strong { font-size: .62rem; }
.calendar-column-head { display: grid; grid-template-columns: 32px 1fr 20px; align-items: center; gap: 8px; padding: 12px 14px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }.calendar-column-head > span:nth-child(2) { display: flex; flex-direction: column; }.calendar-column-head strong { font-size: .66rem; }.calendar-column-head small { font-size: .5rem; }.calendar-column-head button { padding: 0; background: transparent; color: var(--muted); }.calendar-column-head svg { width: 14px; }
.time-column { display: grid; grid-template-rows: repeat(11, 1fr); padding: 0 10px; border-right: 1px solid var(--line); background: #fbfcfc; }.time-column span { position: relative; padding-top: 6px; color: #8a989e; font-size: .53rem; }.time-column span::after { content: ""; position: absolute; right: -10px; top: 10px; width: 6px; border-top: 1px solid #dfe5e5; }
.calendar-lane { position: relative; border-right: 1px solid var(--line); background-color: #fff; background-image: repeating-linear-gradient(180deg, transparent, transparent calc(9.09% - 1px), #edf0ef calc(9.09% - 1px), #edf0ef 9.09%); }.calendar-lane:last-child { border: 0; }
.calendar-event { position: absolute; left: 8px; right: 8px; top: var(--top); height: var(--height); min-height: 54px; display: flex; flex-direction: column; align-items: flex-start; padding: 9px 10px; border-radius: 9px; text-align: left; overflow: hidden; }.calendar-event time { font-size: .49rem; opacity: .7; }.calendar-event strong { margin-top: 4px; font-size: .65rem; }.calendar-event span { margin-top: 3px; font-size: .51rem; opacity: .72; }.calendar-event.sage { color: #315a4d; background: #deece7; border-left: 3px solid var(--sage); }.calendar-event.blush { color: #824b5d; background: #f4e6ea; border-left: 3px solid var(--blush); }.calendar-event.blue { color: #076689; background: #e1f4fb; border-left: 3px solid var(--blue); }.calendar-event.opportunity-event { color: #96691f; background: #fff8e9; border: 1px dashed #d4a454; align-items: center; justify-content: center; }.calendar-event.opportunity-event svg { width: 14px; }.calendar-event.opportunity-event strong { margin-top: 3px; }

/* Clients */
.client-layout { display: grid; grid-template-columns: minmax(330px, .75fr) minmax(560px, 1.65fr); gap: 18px; }
.client-index, .client-detail { min-height: 720px; }
.list-toolbar { display: grid; grid-template-columns: 1fr 34px; gap: 8px; padding: 16px; }
.input-with-icon { height: 36px; display: flex; align-items: center; gap: 7px; padding: 0 10px; border: 1px solid var(--line); border-radius: 9px; background: #fff; }.input-with-icon svg { width: 14px; color: var(--muted); }.input-with-icon input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; font-size: .62rem; }.input-with-icon input::placeholder, textarea::placeholder { color: #9aa5a9; }
.client-tabs, .inventory-tabs { display: flex; gap: 18px; padding: 0 16px; border-bottom: 1px solid var(--line); overflow-x: auto; }.client-tabs button, .inventory-tabs button { position: relative; padding: 10px 0; color: var(--muted); background: transparent; font-size: .55rem; white-space: nowrap; }.client-tabs button.is-active, .inventory-tabs button.is-active { color: var(--ink); font-weight: 700; }.client-tabs button.is-active::after, .inventory-tabs button.is-active::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--blue-deep); }.client-tabs span, .inventory-tabs span { margin-left: 3px; color: var(--blue-deep); }
.client-list { padding: 7px; }.client-row { width: 100%; display: grid; grid-template-columns: 38px 1fr auto 15px; align-items: center; gap: 9px; padding: 11px; background: transparent; border-radius: 10px; text-align: left; }.client-row:hover { background: #f7f9f8; }.client-row.is-active { background: #edf7f4; }.client-main { display: flex; flex-direction: column; min-width: 0; }.client-main strong { font-size: .64rem; }.client-main small { margin-top: 3px; font-size: .51rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.client-row > svg { width: 13px; color: var(--muted); }.client-tags { display: flex; align-items: flex-end; flex-direction: column; gap: 3px; }.tag { padding: 3px 6px; border-radius: 10px; font-style: normal; font-size: .45rem; white-space: nowrap; }.tag.treatment { color: var(--blue-deep); background: var(--blue-pale); }.tag.good { color: #397c64; background: var(--sage-pale); }.tag.payment, .tag.warning { color: #956821; background: var(--amber-pale); }.tag.consent { color: #98504b; background: var(--coral-pale); }
.client-detail { padding: 22px; overflow: hidden; }
.client-profile-head { display: flex; justify-content: space-between; align-items: center; gap: 20px; }.client-profile-head h2 { font-family: "Instrument Serif", Georgia, serif; font-size: 2rem; font-weight: 400; }.client-profile-head .eyebrow { margin-bottom: 4px; font-size: .55rem; }.profile-actions { display: flex; gap: 7px; }
.client-summary-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin: 20px 0 0; background: var(--line); border: 1px solid var(--line); border-radius: 11px; overflow: hidden; }.client-summary-grid > div { padding: 12px; display: flex; flex-direction: column; gap: 6px; background: #f9fbfa; }.client-summary-grid small { font-size: .5rem; }.client-summary-grid strong { font-size: .63rem; }.client-summary-grid > div > span { display: flex; align-items: center; gap: 5px; }
.detail-tabs { display: flex; gap: 22px; margin: 22px -22px 0; padding: 0 22px; border-bottom: 1px solid var(--line); overflow-x: auto; }.detail-tabs button { position: relative; padding: 11px 0; background: transparent; color: var(--muted); font-size: .58rem; white-space: nowrap; }.detail-tabs button.is-active { color: var(--ink); font-weight: 700; }.detail-tabs button.is-active::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--blue-deep); }
.client-tab-panel { display: none; padding-top: 18px; }.client-tab-panel.is-active { display: block; }.detail-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }.detail-columns > div { display: flex; flex-direction: column; gap: 14px; }.detail-card { padding: 15px; background: #f8faf9; border: 1px solid #e8eceb; border-radius: 12px; }.detail-card-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }.detail-card-head > span { display: inline-flex; align-items: center; gap: 7px; }.detail-card-head svg { width: 15px; color: var(--blue-deep); }.detail-card-head strong { font-size: .65rem; }.health-note { padding: 10px; margin-bottom: 10px; border-radius: 8px; }.health-note.critical { background: var(--coral-pale); border-left: 3px solid var(--coral); }.health-note strong { font-size: .59rem; }.health-note p { margin: 4px 0 0; color: #89615e; font-size: .52rem; line-height: 1.45; }.detail-card dl { margin: 0; }.detail-card dl div { display: flex; justify-content: space-between; padding: 7px 0; border-bottom: 1px solid #e4e9e7; font-size: .54rem; }.detail-card dl div:last-child { border: 0; }.detail-card dt { color: var(--muted); }.detail-card dd { margin: 0; font-weight: 600; text-align: right; }
.preference-chips { display: flex; flex-wrap: wrap; gap: 6px; }.preference-chips span { padding: 6px 8px; color: var(--ink-soft); background: #fff; border: 1px solid var(--line); border-radius: 20px; font-size: .5rem; }
.package-card-mini h3 { margin-bottom: 8px; font-family: "Instrument Serif", Georgia, serif; font-size: 1.4rem; font-weight: 400; }.session-visual { display: flex; align-items: baseline; gap: 5px; }.session-visual strong { font-family: "Instrument Serif", Georgia, serif; color: var(--sage); font-size: 2rem; font-weight: 400; }.session-visual span { color: var(--muted); font-size: .55rem; }.session-dots { display: flex; gap: 4px; margin: 7px 0 8px; }.session-dots i { flex: 1; height: 6px; background: #dfe5e3; border-radius: 4px; }.session-dots i.used { background: var(--sage); }.package-card-mini > small { font-size: .5rem; }
.document-list { margin: 0; padding: 0; list-style: none; }.document-list li { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 8px 0; border-top: 1px solid var(--line); }.document-list li > span { display: flex; align-items: center; gap: 6px; }.document-list svg { width: 13px; color: var(--muted); }.document-list strong { font-size: .54rem; }.document-list small { font-size: .48rem; }
.permission-denied { display: none; text-align: center; padding: 28px; }.permission-denied svg { color: var(--muted); }.permission-denied strong { display: block; margin-top: 8px; font-size: .64rem; }.permission-denied p { margin: 4px auto 0; max-width: 360px; color: var(--muted); font-size: .53rem; line-height: 1.5; }.permission-placeholder { display: none; color: var(--muted); }
.empty-state { min-height: 310px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }.empty-state > svg { width: 34px; height: 34px; color: var(--blue-deep); }.empty-state h3 { margin-top: 12px; font-family: "Instrument Serif", Georgia, serif; font-size: 1.6rem; font-weight: 400; }.empty-state p { max-width: 430px; margin: 7px 0 16px; color: var(--muted); font-size: .66rem; }.measure-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }.measure-grid > div { display: flex; flex-direction: column; padding: 16px; border-radius: 12px; background: #f8faf9; }.measure-grid small { font-size: .53rem; }.measure-grid strong { margin: 7px 0 3px; font-family: "Instrument Serif", Georgia, serif; font-size: 1.6rem; font-weight: 400; }.measure-grid span { font-size: .52rem; }.timeline-list p { position: relative; display: flex; flex-direction: column; margin: 0 0 0 6px; padding: 0 0 20px 24px; border-left: 1px solid var(--line); }.timeline-list p > i { position: absolute; left: -5px; top: 2px; width: 9px; height: 9px; background: var(--blue); border: 2px solid #fff; border-radius: 50%; }.timeline-list strong { font-size: .62rem; }.timeline-list span { margin-top: 3px; color: var(--muted); font-size: .54rem; }

/* Messages */
.messages-shell { min-height: 730px; display: grid; grid-template-columns: 300px minmax(430px, 1fr) 210px; overflow: hidden; }
.conversation-index { border-right: 1px solid var(--line); }.conversation-toolbar { display: grid; grid-template-columns: 1fr 34px; gap: 7px; padding: 14px; }.inbox-tabs { display: flex; gap: 16px; padding: 0 14px 8px; border-bottom: 1px solid var(--line); }.inbox-tabs button { padding: 6px 0; color: var(--muted); background: transparent; font-size: .54rem; }.inbox-tabs button.is-active { color: var(--ink); font-weight: 700; }.inbox-tabs span { margin-left: 3px; color: var(--coral); }
.conversation-row { width: 100%; display: grid; grid-template-columns: 34px 1fr 8px; gap: 9px; align-items: center; padding: 14px; background: transparent; border-bottom: 1px solid #edf0ef; text-align: left; }.conversation-row.is-active { background: #eff8f5; }.conversation-row > span:nth-child(2) { min-width: 0; }.conversation-row strong { font-size: .62rem; }.conversation-row p { margin: 3px 0; color: var(--ink-soft); font-size: .54rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.conversation-row small { font-size: .48rem; }.channel { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; }.channel.whatsapp { color: #34896b; background: var(--sage-pale); }.channel svg { width: 15px; }.unread-dot { width: 7px; height: 7px; background: var(--blue); border-radius: 50%; }
.conversation-pane { min-width: 0; display: grid; grid-template-rows: 61px auto 1fr auto; }.conversation-head { display: flex; align-items: center; justify-content: space-between; padding: 10px 16px; border-bottom: 1px solid var(--line); }.conversation-head > div:last-child { display: flex; gap: 5px; }.online-dot { display: inline-block; width: 6px; height: 6px; background: #55ae86; border-radius: 50%; }
.conversation-context { display: flex; align-items: center; gap: 9px; padding: 9px 16px; color: var(--blue-deep); background: var(--blue-pale); }.conversation-context > svg { width: 15px; }.conversation-context > span { display: flex; flex-direction: column; }.conversation-context small { color: #4b8fa7; font-size: .48rem; }.conversation-context strong { font-size: .56rem; }.conversation-context .text-button { margin-left: auto; }
.message-thread { min-height: 400px; padding: 18px; background-color: #f7f9f8; background-image: radial-gradient(rgba(116,153,138,.09) .8px, transparent .8px); background-size: 16px 16px; overflow-y: auto; }.day-separator { display: flex; justify-content: center; margin-bottom: 16px; }.day-separator span { padding: 4px 8px; background: rgba(255,255,255,.88); border-radius: 20px; color: var(--muted); font-size: .48rem; }.message { max-width: 72%; margin-bottom: 9px; padding: 10px 12px 7px; border-radius: 12px; box-shadow: 0 3px 10px rgba(23,37,50,.05); }.message p { margin: 0; font-size: .62rem; line-height: 1.45; }.message > small { display: block; margin-top: 4px; text-align: right; font-size: .44rem; }.message.received { background: #fff; border-radius: 4px 12px 12px 12px; }.message.system { max-width: 90%; display: flex; gap: 9px; margin: 16px auto; color: var(--muted); background: rgba(255,255,255,.65); box-shadow: none; }.message.system svg { width: 15px; }.message.system span { display: flex; flex-direction: column; }.message.system strong { font-size: .52rem; }.message.system small { margin-top: 2px; font-size: .47rem; }.suggested-reply { max-width: 92%; margin: 18px auto 0; padding: 12px; background: #fff9ea; border: 1px dashed #ddb76f; border-radius: 11px; }.suggested-reply > span { display: inline-grid; grid-template-columns: 15px 1fr; column-gap: 5px; }.suggested-reply > span svg { grid-row: 1 / 3; width: 13px; color: var(--amber); }.suggested-reply strong { font-size: .55rem; }.suggested-reply small { font-size: .45rem; }.suggested-reply .text-button { float: right; }.suggested-reply p { clear: both; margin: 9px 0 0; color: #5c5544; font-size: .58rem; line-height: 1.45; }
.message-composer { padding: 10px 14px; border-top: 1px solid var(--line); background: #fff; }.quick-replies { display: flex; gap: 5px; margin-bottom: 7px; overflow-x: auto; }.quick-replies button { padding: 5px 8px; border: 1px solid var(--line); border-radius: 20px; background: #fff; color: var(--muted); font-size: .48rem; white-space: nowrap; }.composer-row { display: grid; grid-template-columns: 34px 1fr 34px; gap: 7px; align-items: end; }.composer-row textarea { min-height: 36px; max-height: 100px; resize: vertical; padding: 9px 10px; border: 1px solid var(--line); border-radius: 9px; outline: 0; font-size: .6rem; }.send-button { width: 34px; height: 34px; display: grid; place-items: center; color: #fff; background: var(--blue-deep); border-radius: 9px; }.send-button svg { width: 15px; }.composer-note { display: flex; align-items: center; gap: 4px; margin-top: 6px; font-size: .45rem; }.composer-note svg { width: 11px; }
.conversation-side { padding: 16px; border-left: 1px solid var(--line); }.conversation-side h3 { margin-bottom: 14px; }.side-fact { display: flex; flex-direction: column; padding: 9px 0; border-bottom: 1px solid var(--line); }.side-fact small { font-size: .48rem; }.side-fact strong { margin-top: 4px; font-size: .58rem; }.side-note { display: flex; gap: 7px; margin-top: 14px; padding: 10px; color: #8b621f; background: var(--amber-pale); border-radius: 9px; }.side-note svg { width: 14px; }.side-note p { margin: 0; font-size: .5rem; line-height: 1.45; }

/* Packages */
.metric-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin-bottom: 18px; background: var(--line); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-soft); }.metric-strip article { padding: 18px; display: flex; flex-direction: column; background: #fff; }.metric-strip small { font-size: .54rem; }.metric-strip strong { margin: 6px 0 3px; font-family: "Instrument Serif", Georgia, serif; font-size: 1.7rem; font-weight: 400; }.metric-strip span { color: var(--muted); font-size: .5rem; }
.package-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(280px, .55fr); gap: 18px; }.wide-table-panel, .ledger-panel { padding: 20px; }.compact-input { width: 210px; }.table-wrap { overflow-x: auto; }.wide-table-panel table, .inventory-table, .permission-matrix table { width: 100%; margin-top: 15px; border-collapse: collapse; font-size: .57rem; }.wide-table-panel th, .wide-table-panel td, .inventory-table th, .inventory-table td, .permission-matrix th, .permission-matrix td { padding: 11px 9px; border-bottom: 1px solid var(--line); text-align: left; white-space: nowrap; }.wide-table-panel th, .inventory-table th, .permission-matrix th { color: var(--muted); font-size: .48rem; text-transform: uppercase; letter-spacing: .07em; }.table-person, .product-cell { display: flex; align-items: center; gap: 8px; }.table-progress { display: flex; align-items: center; gap: 7px; }.table-progress > i { width: 70px; height: 4px; background: #e7ecea; border-radius: 4px; overflow: hidden; }.table-progress b { display: block; height: 100%; background: var(--sage); }.table-progress small { font-size: .48rem; }
.ledger-list { margin-top: 10px; }.ledger-list > div { display: grid; grid-template-columns: 35px 1fr; align-items: center; gap: 9px; padding: 12px 0; border-bottom: 1px solid var(--line); }.ledger-list > div:last-child { border: 0; }.ledger-list span:nth-child(2) { display: flex; flex-direction: column; }.ledger-list strong { font-size: .58rem; }.ledger-list small { margin-top: 3px; font-size: .49rem; }.ledger-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; font-size: .63rem; font-weight: 700; }.ledger-icon.minus { color: var(--blush); background: var(--blush-pale); }.ledger-icon.euro { color: var(--sage); background: var(--sage-pale); }.ledger-icon.undo { color: var(--blue-deep); background: var(--blue-pale); }.ledger-icon svg { width: 14px; }

/* Reactivation */
.opportunity-banner { min-height: 185px; display: grid; grid-template-columns: 155px 1fr 110px; align-items: center; gap: 26px; padding: 25px 30px; color: #fff; background: linear-gradient(125deg, #203c3a, #315d55 60%, #213f3c); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; }.opportunity-clock { height: 125px; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.2); border-radius: 50% 50% 50% 18%; background: rgba(255,255,255,.06); }.opportunity-clock small { color: rgba(255,255,255,.6); font-size: .55rem; }.opportunity-clock strong { margin: 5px 0; font-family: "Instrument Serif", Georgia, serif; font-size: 2.2rem; font-weight: 400; }.opportunity-clock span { font-size: .53rem; color: #bbd5cd; }.opportunity-banner h2 { font-family: "Instrument Serif", Georgia, serif; font-size: 2.05rem; font-weight: 400; }.opportunity-banner p:last-child { max-width: 690px; margin: 9px 0 0; color: #bfd0cc; font-size: .65rem; line-height: 1.5; }.match-score { display: flex; flex-direction: column; align-items: center; text-align: center; }.match-score span { font-family: "Instrument Serif", Georgia, serif; color: #9fe0c7; font-size: 2.1rem; }.match-score small { color: #adc5be; font-size: .48rem; }
.reactivation-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(280px, .55fr); gap: 18px; margin-top: 18px; }.match-list, .dormant-panel { padding: 20px; }.match-card { display: grid; grid-template-columns: 28px 42px 1fr auto auto; align-items: center; gap: 10px; padding: 15px 0; border-bottom: 1px solid var(--line); }.match-card:last-child { border: 0; }.match-rank { font-family: "Instrument Serif", Georgia, serif; color: #9da8ab; font-size: 1.15rem; }.match-person { min-width: 0; }.match-person > strong { font-size: .66rem; }.match-person > small { display: block; margin-top: 3px; font-size: .51rem; }.match-person > div { display: flex; gap: 5px; margin-top: 7px; }.match-person > div span { padding: 4px 6px; border-radius: 10px; background: #f2f5f4; color: var(--muted); font-size: .44rem; }.match-reasons { display: flex; flex-direction: column; gap: 4px; }.match-reasons span { display: flex; align-items: center; gap: 3px; color: #4d7e6c; font-size: .48rem; white-space: nowrap; }.match-reasons svg { width: 10px; }
.donut-summary { display: flex; align-items: center; gap: 18px; margin: 24px 0; }.donut { width: 110px; height: 110px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: conic-gradient(var(--sage) 0 41.7%, var(--amber) 41.7% 75%, var(--blush) 75% 100%); position: relative; }.donut::after { content: ""; position: absolute; inset: 16px; background: #fff; border-radius: 50%; }.donut span { display: flex; flex-direction: column; z-index: 1; text-align: center; font-family: "Instrument Serif", Georgia, serif; font-size: 1.65rem; }.donut small { font-family: "DM Sans", sans-serif; font-size: .45rem; }.donut-summary ul { margin: 0; padding: 0; list-style: none; }.donut-summary li { display: flex; align-items: center; gap: 6px; margin: 8px 0; color: var(--muted); font-size: .49rem; }.donut-summary li i { width: 7px; height: 7px; border-radius: 50%; }.donut-summary li i.sage { background: var(--sage); }.donut-summary li i.amber { background: var(--amber); }.donut-summary li i.blush { background: var(--blush); }.donut-summary li strong { color: var(--ink); }.campaign-mini { display: grid; grid-template-columns: 34px 1fr auto; gap: 8px; align-items: center; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); }.campaign-mini > span:nth-child(2) { display: flex; flex-direction: column; }.campaign-mini strong { font-size: .56rem; }.campaign-mini small { font-size: .47rem; }.campaign-mini > span:last-child { font-size: .56rem; font-weight: 700; }

/* Inventory */
.inventory-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 18px; }.inventory-summary article { display: grid; grid-template-columns: 40px 1fr auto; align-items: center; gap: 10px; padding: 15px; background: #fff; border: 1px solid var(--line); border-radius: 13px; }.inventory-summary article > span { width: 40px; height: 40px; display: grid; place-items: center; color: var(--sage); background: var(--sage-pale); border-radius: 11px; }.inventory-summary article.critical > span { color: var(--coral); background: var(--coral-pale); }.inventory-summary article > div { display: flex; flex-direction: column; }.inventory-summary small { font-size: .5rem; }.inventory-summary strong { margin-top: 3px; font-size: .69rem; }
.inventory-panel { padding: 20px; }.panel-tools { display: flex; gap: 7px; }.panel-tools select { padding: 0 30px 0 10px; border: 1px solid var(--line); border-radius: 9px; background: #fff; font-size: .55rem; }
.inventory-tabs { margin: 12px -20px 0; padding: 0 20px; }.inventory-table { margin-top: 4px; }.product-pictogram { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 11px; }.product-pictogram.gel, .tablet-product-icon.gel { color: var(--blue-deep); background: var(--blue-pale); }.product-pictogram.wraps, .tablet-product-icon.wraps { color: var(--blush); background: var(--blush-pale); }.product-pictogram.gloves, .tablet-product-icon.gloves { color: var(--plum); background: var(--plum-pale); }.product-pictogram.cream, .tablet-product-icon.cream { color: var(--amber); background: var(--amber-pale); }.product-cell > span:last-child { display: flex; flex-direction: column; }.product-cell small { margin-top: 3px; font-size: .46rem; }.category-tag { padding: 4px 7px; color: var(--blue-deep); background: var(--blue-pale); border-radius: 12px; font-size: .46rem; }.category-tag.neutral { color: var(--plum); background: var(--plum-pale); }.category-tag.retail { color: #8c611e; background: var(--amber-pale); }.stock-state { display: inline-flex; align-items: center; gap: 5px; font-size: .49rem; }.stock-state i { width: 7px; height: 7px; border-radius: 50%; }.stock-state.low { color: var(--coral); }.stock-state.low i { background: var(--coral); }.stock-state.good { color: #43856d; }.stock-state.good i { background: #55ae86; }.stock-state.warning { color: #9b6c23; }.stock-state.warning i { background: var(--amber); }

/* Catalogo servizi e cabine */
.catalog-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 18px; }.catalog-summary article { display: grid; grid-template-columns: 42px 1fr; align-items: center; gap: 12px; padding: 16px; background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow-soft); }.catalog-summary article > div { display: flex; flex-direction: column; }.catalog-summary article small { font-size: .5rem; }.catalog-summary article strong { margin: 2px 0; font-family: "Instrument Serif", Georgia, serif; font-size: 1.55rem; font-weight: 400; }.catalog-summary article span { color: var(--muted); font-size: .48rem; }
.cabin-panel, .treatment-panel { padding: 20px; }.treatment-panel { margin-top: 18px; }.catalog-note { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); font-size: .5rem; }.catalog-note svg { width: 13px; }.cabin-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 16px; }.cabin-card { position: relative; min-height: 128px; padding: 15px; background: #f8faf9; border: 1px solid #e6ebe9; border-radius: 13px; overflow: hidden; }.cabin-card::after { content: attr(data-number); position: absolute; right: 9px; bottom: -15px; color: rgba(23,37,50,.045); font-family: "Instrument Serif", Georgia, serif; font-size: 5.2rem; line-height: 1; }.cabin-card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }.cabin-card-head > span { display: flex; align-items: center; gap: 7px; }.cabin-number { width: 29px; height: 29px; display: grid; place-items: center; color: #fff; background: var(--ink); border-radius: 50% 50% 50% 9px; font-size: .55rem; font-weight: 700; }.cabin-card h3 { font-size: .68rem; }.cabin-card .status-pill { z-index: 1; }.cabin-card p { position: relative; z-index: 1; margin: 11px 0 0; max-width: 90%; color: var(--muted); font-size: .54rem; line-height: 1.45; }.cabin-card footer { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 5px; margin-top: 12px; }.cabin-card footer span { padding: 4px 6px; color: var(--blue-deep); background: var(--blue-pale); border-radius: 10px; font-size: .45rem; }
.treatment-table { width: 100%; margin-top: 14px; border-collapse: collapse; }.treatment-table th, .treatment-table td { padding: 11px 9px; border-bottom: 1px solid var(--line); text-align: left; font-size: .55rem; vertical-align: middle; }.treatment-table th { color: var(--muted); font-size: .46rem; letter-spacing: .07em; text-transform: uppercase; }.treatment-name { display: flex; flex-direction: column; }.treatment-name strong { font-size: .59rem; }.treatment-name small { margin-top: 3px; font-size: .46rem; }.duration-chips, .cabin-chips { display: flex; flex-wrap: wrap; gap: 4px; }.duration-chips span { min-width: 31px; padding: 4px 6px; color: #864c60; background: var(--blush-pale); border-radius: 10px; font-size: .46rem; font-weight: 700; text-align: center; }.cabin-chips span { width: 25px; height: 25px; display: grid; place-items: center; color: var(--blue-deep); background: var(--blue-pale); border-radius: 7px; font-size: .45rem; font-weight: 700; }.booking-rule { display: inline-flex; align-items: center; gap: 5px; font-size: .49rem; }.booking-rule i { width: 7px; height: 7px; background: #55ae86; border-radius: 50%; }.booking-rule.guided { color: #93651f; }.booking-rule.guided i { background: var(--amber); }

/* Team */
.team-grid { display: grid; grid-template-columns: minmax(360px, .65fr) minmax(620px, 1.3fr); gap: 18px; }.team-members, .permission-matrix, .audit-panel { padding: 20px; }.team-members article { display: grid; grid-template-columns: 42px 1fr auto 34px; align-items: center; gap: 10px; padding: 13px 0; border-bottom: 1px solid var(--line); }.team-members article:last-child { border: 0; }.team-members article > span:nth-child(2) { display: flex; flex-direction: column; }.team-members strong { font-size: .62rem; }.team-members small { margin-top: 3px; font-size: .48rem; }.role-pill { padding: 5px 8px; border-radius: 20px; font-size: .47rem; font-weight: 700; }.role-pill.admin { color: var(--blue-deep); background: var(--blue-pale); }.role-pill.reception { color: var(--plum); background: var(--plum-pale); }.role-pill.operator { color: #437a66; background: var(--sage-pale); }
.weekly-shifts { margin-bottom: 18px; padding: 20px; }.weekly-shifts table { width: 100%; margin-top: 14px; border-collapse: collapse; }.weekly-shifts th, .weekly-shifts td { padding: 9px; border-bottom: 1px solid var(--line); text-align: left; font-size: .53rem; }.weekly-shifts th { color: var(--muted); font-size: .46rem; letter-spacing: .06em; text-transform: uppercase; }.shift-legend { display: flex; gap: 10px; }.shift-legend span { display: inline-flex; align-items: center; gap: 4px; color: var(--muted); font-size: .47rem; }.shift-legend i { width: 7px; height: 7px; border-radius: 50%; }.shift-legend i.morning { background: var(--sage); }.shift-legend i.late { background: var(--amber); }.shift-legend i.long { background: var(--blue); }.shift-cell { min-width: 47px; display: inline-grid; place-items: center; padding: 5px 7px; border-radius: 8px; font-size: .49rem; font-weight: 700; }.shift-cell.morning { color: #3f7d67; background: var(--sage-pale); }.shift-cell.late { color: #91631e; background: var(--amber-pale); }.shift-cell.mid { color: #6b5571; background: var(--plum-pale); }.shift-cell.long { color: var(--blue-deep); background: var(--blue-pale); }
.permission-matrix table td:not(:first-child) { font-size: .5rem; }.permission-matrix table svg { width: 11px; margin-right: 4px; vertical-align: -2px; color: var(--sage); }.permission-matrix table td:nth-last-child(-n+2) svg[data-lucide="x"] { color: var(--coral); }
.audit-panel { margin-top: 18px; }.audit-row { display: grid; grid-template-columns: 24px 1fr auto; align-items: center; gap: 8px; padding: 10px 0; border-top: 1px solid var(--line); }.audit-row > span:nth-child(2) { display: flex; flex-direction: column; }.audit-row strong { font-size: .56rem; }.audit-row small { margin-top: 3px; font-size: .48rem; }.audit-row > span:last-child { color: var(--muted); font-size: .48rem; }

/* Integration */
.integration-status { display: grid; grid-template-columns: 72px 1fr auto auto; align-items: center; gap: 20px; padding: 20px; }.integration-logo { width: 66px; height: 66px; display: grid; place-items: center; background: var(--blue-pale); border-radius: 18px; }.integration-logo img { width: 38px; height: 42px; }.integration-status h2 { margin: 8px 0 3px; }.integration-status p { margin: 0; color: var(--muted); font-size: .58rem; }.integration-status dl { display: flex; gap: 28px; margin: 0; }.integration-status dl div { display: flex; flex-direction: column; }.integration-status dt { color: var(--muted); font-size: .48rem; }.integration-status dd { margin: 4px 0 0; font-size: .58rem; font-weight: 700; }
.integration-grid { display: grid; grid-template-columns: minmax(360px, .7fr) minmax(580px, 1.3fr); gap: 18px; margin-top: 18px; }.api-config, .sync-map { padding: 20px; }.demo-badge { padding: 5px 8px; color: #956821; background: var(--amber-pale); border-radius: 20px; font-size: .48rem; font-weight: 700; }.api-config form { display: grid; grid-template-columns: 1fr 100px; gap: 13px; margin-top: 18px; }.api-config label { display: flex; flex-direction: column; gap: 6px; color: var(--muted); font-size: .51rem; font-weight: 600; }.api-config input { width: 100%; height: 38px; padding: 0 10px; border: 1px solid var(--line); border-radius: 9px; background: #fff; font-size: .57rem; outline: 0; }.api-config label > small { font-size: .45rem; font-weight: 400; }.full-field { grid-column: 1 / -1; }.password-field { display: grid; grid-template-columns: 1fr 38px; }.password-field input { border-radius: 9px 0 0 9px; }.password-field button { background: #fff; border: 1px solid var(--line); border-left: 0; border-radius: 0 9px 9px 0; }.password-field svg { width: 14px; }.form-actions { display: flex; justify-content: flex-end; gap: 7px; }
.sync-map-row { display: grid; grid-template-columns: 130px 1fr 110px 9px; align-items: center; gap: 9px; padding: 10px 0; border-bottom: 1px solid var(--line); }.sync-map-row:last-child { border: 0; }.sync-entity { display: flex; align-items: center; gap: 7px; }.sync-entity svg { width: 14px; color: var(--blue-deep); }.sync-entity strong { font-size: .56rem; }.sync-map-row code { padding: 4px 6px; color: var(--ink-soft); background: #f3f5f4; border-radius: 5px; font-size: .47rem; }.sync-direction { display: flex; align-items: center; gap: 4px; color: var(--muted); font-size: .46rem; }.sync-direction svg { width: 11px; }.sync-map-row.local .sync-entity svg { color: var(--plum); }
.integration-notes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 18px; padding: 18px; }.integration-notes > div { display: flex; gap: 10px; }.integration-notes > div > span:last-child { display: flex; flex-direction: column; }.integration-notes strong { font-size: .58rem; }.integration-notes p { margin: 4px 0 0; color: var(--muted); font-size: .49rem; line-height: 1.45; }

/* Tablet mode */
.tablet-mode { position: fixed; inset: 0; display: none; background: #edf1ef; z-index: 200; overflow-y: auto; }.tablet-mode.is-open { display: block; animation: tablet-in .35s ease; }.tablet-mode[aria-hidden="false"] { display: block; }@keyframes tablet-in { from { opacity: 0; transform: scale(.985); } to { opacity: 1; transform: none; } }
.tablet-header { height: 78px; display: flex; align-items: center; justify-content: space-between; padding: 0 28px; color: #fff; background: var(--ink); }.tablet-brand, .tablet-user { display: flex; align-items: center; gap: 10px; }.tablet-brand > span:last-child, .tablet-user > span:not(.avatar):not(.sync-live) { display: flex; flex-direction: column; }.tablet-brand strong { font-size: .85rem; }.tablet-brand small, .tablet-user small { color: rgba(255,255,255,.5); font-size: .55rem; }.tablet-user strong { font-size: .66rem; }.sync-live { display: flex; align-items: center; gap: 6px; margin-right: 12px; color: #aee5cf; font-size: .58rem; }.sync-live i { width: 7px; height: 7px; background: #63c99d; border-radius: 50%; box-shadow: 0 0 0 4px rgba(99,201,157,.12); }.tablet-exit { height: 40px; display: flex; align-items: center; gap: 6px; margin-left: 12px; padding: 0 13px; color: #fff; background: rgba(255,255,255,.1); border-radius: 10px; font-size: .62rem; }.tablet-exit svg { width: 15px; }
.tablet-content { max-width: 1380px; margin: 0 auto; padding: 30px; }.tablet-intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }.tablet-intro h1 { font-size: clamp(2.7rem, 5vw, 4.2rem); }.tablet-intro p:last-child { margin: 0; color: var(--muted); font-size: .76rem; }.tablet-scan { min-width: 210px; display: flex; align-items: center; gap: 13px; padding: 15px 18px; color: #fff; background: var(--blue-deep); border-radius: 14px; box-shadow: 0 10px 24px rgba(8,126,170,.22); text-align: left; }.tablet-scan > svg { width: 28px; height: 28px; }.tablet-scan > span { display: flex; flex-direction: column; }.tablet-scan strong { font-size: .78rem; }.tablet-scan small { margin-top: 2px; color: rgba(255,255,255,.68); font-size: .54rem; }
.tablet-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 28px 0 16px; }.tablet-search { height: 50px; min-width: 330px; display: flex; align-items: center; gap: 9px; padding: 0 14px; background: #fff; border: 1px solid var(--line); border-radius: 13px; }.tablet-search input { width: 100%; border: 0; outline: 0; font-size: .72rem; }.tablet-filter { display: flex; padding: 4px; background: #dde4e1; border-radius: 12px; }.tablet-filter button { min-height: 39px; padding: 0 14px; color: var(--muted); background: transparent; border-radius: 9px; font-size: .62rem; font-weight: 600; }.tablet-filter button.is-active { color: var(--ink); background: #fff; box-shadow: 0 2px 7px rgba(23,37,50,.09); }
.tablet-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }.tablet-product { display: grid; grid-template-columns: 60px 1fr auto; grid-template-rows: 1fr auto; gap: 12px 16px; padding: 18px; background: #fff; border: 2px solid transparent; border-radius: 18px; box-shadow: var(--shadow-soft); }.tablet-product.low { border-color: rgba(207,102,93,.3); }.tablet-product-icon { width: 60px; height: 60px; display: grid; place-items: center; grid-row: 1; border-radius: 16px; }.tablet-product-icon svg { width: 27px; height: 27px; }.tablet-product h2 { margin: 6px 0 3px; font-size: 1rem; }.tablet-product p { margin: 0; color: var(--muted); font-size: .58rem; }.stock-alert { display: flex; align-items: center; gap: 5px; color: var(--coral); font-size: .48rem; font-weight: 700; }.stock-alert i { width: 6px; height: 6px; background: var(--coral); border-radius: 50%; }.stock-alert.good { color: #46836d; }.stock-alert.good i { background: #55ae86; }.stock-alert.warning { color: #9b6d25; }.stock-alert.warning i { background: var(--amber); }.tablet-stock { min-width: 75px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding-left: 14px; border-left: 1px solid var(--line); }.tablet-stock small { font-size: .47rem; }.tablet-stock strong { margin: 2px 0; font-family: "Instrument Serif", Georgia, serif; font-size: 2.2rem; font-weight: 400; }.tablet-stock span { color: var(--muted); font-size: .46rem; }.quantity-control { grid-column: 1 / -1; display: grid; grid-template-columns: 58px 1fr 58px; align-items: center; gap: 8px; padding-top: 12px; border-top: 1px solid var(--line); }.quantity-control button { height: 48px; display: grid; place-items: center; color: var(--ink); background: #edf1ef; border-radius: 11px; }.quantity-control button:last-child { color: #fff; background: var(--sage); }.quantity-control button:active { transform: scale(.96); }.quantity-control span { color: var(--muted); font-size: .57rem; text-align: center; }.tablet-feed { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 16px; padding: 16px 18px; background: #fff; border-radius: 14px; }.tablet-feed strong { font-size: .65rem; }.tablet-feed .eyebrow { margin-bottom: 4px; }

/* Modal & command */
.modal-backdrop, .command-backdrop { position: fixed; inset: 0; display: none; align-items: center; justify-content: center; padding: 18px; background: rgba(15,27,35,.54); backdrop-filter: blur(7px); z-index: 300; }.modal-backdrop.is-open, .command-backdrop.is-open { display: flex; }.modal { width: min(560px, 100%); max-height: 92vh; overflow-y: auto; padding: 22px; background: #fff; border-radius: 18px; box-shadow: 0 30px 80px rgba(0,0,0,.25); animation: modal-in .2s ease; }.modal > header { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 18px; }.modal h2 { font-family: "Instrument Serif", Georgia, serif; font-size: 2rem; font-weight: 400; }.modal-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }.modal-form label { display: flex; flex-direction: column; gap: 5px; color: var(--muted); font-size: .53rem; font-weight: 600; }.modal-form input, .modal-form select, .modal-form textarea { width: 100%; min-height: 40px; padding: 9px 10px; border: 1px solid var(--line); border-radius: 9px; background: #fff; outline: 0; font-size: .61rem; }.modal-form textarea { min-height: 78px; resize: vertical; }.modal-form .full { grid-column: 1 / -1; }.modal-form .modal-note { display: flex; gap: 7px; padding: 10px; color: #4e7568; background: var(--sage-pale); border-radius: 9px; font-size: .52rem; line-height: 1.45; }.modal-form .modal-note svg { width: 14px; }.modal-form .form-actions { margin-top: 4px; }@keyframes modal-in { from { opacity: 0; transform: translateY(8px) scale(.98); } to { opacity: 1; transform: none; } }
.command-palette { width: min(610px, 100%); overflow: hidden; background: #fff; border-radius: 16px; box-shadow: 0 30px 80px rgba(0,0,0,.28); }.command-palette > label { height: 62px; display: grid; grid-template-columns: 22px 1fr auto; align-items: center; gap: 9px; padding: 0 18px; border-bottom: 1px solid var(--line); }.command-palette input { border: 0; outline: 0; font-size: .76rem; }.command-results { padding: 8px; }.command-results .nav-label { color: var(--muted); }.command-results button { width: 100%; display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 8px; padding: 9px 10px; background: transparent; border-radius: 10px; text-align: left; }.command-results button:hover { background: #f3f6f5; }.command-results button > svg { width: 17px; color: var(--blue-deep); }.command-results button > span { display: flex; flex-direction: column; }.command-results strong { font-size: .61rem; }.command-results small { margin-top: 2px; font-size: .49rem; }
.toast-region { position: fixed; right: 22px; bottom: 22px; display: flex; flex-direction: column; gap: 8px; z-index: 400; }.toast { min-width: 270px; display: grid; grid-template-columns: 28px 1fr auto; align-items: center; gap: 9px; padding: 12px; color: #fff; background: var(--ink); border-radius: 12px; box-shadow: 0 14px 40px rgba(23,37,50,.24); animation: toast-in .25s ease; }.toast > span:first-child { width: 28px; height: 28px; display: grid; place-items: center; color: #9fe0c7; background: rgba(255,255,255,.1); border-radius: 8px; }.toast > span:nth-child(2) { display: flex; flex-direction: column; }.toast strong { font-size: .6rem; }.toast small { margin-top: 2px; color: rgba(255,255,255,.58); font-size: .48rem; }.toast button { color: rgba(255,255,255,.6); background: transparent; }.toast button svg { width: 13px; }@keyframes toast-in { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: none; } }

/* Serum glass visual system */
body::before, body::after { content: ""; position: fixed; z-index: -2; border-radius: 50%; filter: blur(10px); pointer-events: none; }
body::before { width: 48vw; height: 48vw; min-width: 520px; min-height: 520px; right: -14vw; top: -20vw; background: radial-gradient(circle at 42% 44%, rgba(214,176,199,.58), rgba(229,210,223,.18) 58%, transparent 72%); }
body::after { width: 38vw; height: 38vw; min-width: 420px; min-height: 420px; left: 18vw; bottom: -24vw; background: radial-gradient(circle, rgba(164,191,177,.34), rgba(216,230,222,.1) 62%, transparent 74%); }
.app-frame::before { content: ""; position: fixed; inset: 0; z-index: -3; background: linear-gradient(145deg, #f9f5f8 0%, #f2eaf1 48%, #edf2ef 100%); }
:where(h1, .today-pulse article > div strong, .opportunity-visual, .opportunity-hero h2, .client-profile-head h2, .package-card-mini h3, .session-visual strong, .empty-state h3, .measure-grid strong, .metric-strip strong, .opportunity-clock strong, .opportunity-banner h2, .match-score span, .catalog-summary article strong, .cabin-card::after, .tablet-stock strong, .modal h2) { font-family: var(--font-display); }

body.role-admin { --role-accent: #a7648e; --role-soft: rgba(219, 182, 205, .33); }
body.role-receptionist { --role-accent: #af855f; --role-soft: rgba(222, 199, 166, .36); }
body.role-operator { --role-accent: #668f7e; --role-soft: rgba(174, 205, 190, .34); }

.sidebar { inset: 14px auto 14px 14px; height: auto; color: var(--ink); background: rgba(255, 251, 254, .64); border: 1px solid var(--glass-border); border-radius: 28px; box-shadow: 0 24px 60px rgba(89,55,78,.14), inset 0 1px 0 rgba(255,255,255,.9); backdrop-filter: blur(30px) saturate(145%); overflow: hidden; }
.brand-lockup { border-color: var(--line); }
.brand-mark { color: #fff; border: 1px solid rgba(255,255,255,.76); background: linear-gradient(145deg, #c889ad, #927089 56%, #849e92); box-shadow: inset 0 1px 1px rgba(255,255,255,.65), 0 8px 22px rgba(126,82,110,.22); }
.brand-copy strong { font-family: var(--font-display); font-size: 1.12rem; font-weight: 500; letter-spacing: -.02em; }
.brand-copy small, .nav-label { color: rgba(71,49,65,.48); }
.nav-item { color: rgba(71,49,65,.66); border: 1px solid transparent; }
.nav-item:hover { color: var(--ink); background: rgba(255,255,255,.5); border-color: rgba(255,255,255,.72); }
.nav-item.is-active { color: var(--ink); background: linear-gradient(105deg, rgba(255,255,255,.82), var(--role-soft)); border-color: rgba(255,255,255,.9); box-shadow: 0 7px 20px rgba(91,55,79,.08), inset 0 1px 0 #fff; }
.nav-item.is-active::before { left: -1px; top: 9px; height: 22px; width: 3px; background: var(--role-accent); border-radius: 6px; }
.nav-badge { color: var(--blue-deep); background: rgba(183,119,159,.12); }
.nav-dot { background: #729c88; box-shadow: 0 0 0 4px rgba(114,156,136,.12); }
.sidebar-footer { border-color: var(--line); }
.sync-card strong, .tablet-launch strong { color: var(--ink); }
.sync-card small, .tablet-launch small { color: var(--muted); }
.tablet-launch { color: var(--ink); background: rgba(255,255,255,.43); border-color: rgba(255,255,255,.72); }
.tablet-launch:hover { background: rgba(255,255,255,.72); }
.tablet-launch > svg:last-child { color: var(--muted); }

.workspace { margin-left: calc(var(--sidebar) + 28px); }
.topbar { top: 14px; height: var(--topbar); margin: 14px 18px 0 0; padding: 0 20px; background: rgba(255,252,254,.64); border: 1px solid var(--glass-border); border-radius: 22px; box-shadow: 0 12px 36px rgba(86,52,76,.08), inset 0 1px 0 rgba(255,255,255,.9); backdrop-filter: blur(26px) saturate(150%); }
.search-trigger, .icon-button { background: rgba(255,255,255,.6); border-color: rgba(110,78,98,.12); box-shadow: inset 0 1px 0 rgba(255,255,255,.8); }
.search-trigger:hover, .icon-button:hover { background: rgba(255,255,255,.84); border-color: rgba(146,87,117,.2); }
.role-switcher { padding: 4px; background: rgba(110,78,98,.08); border: 1px solid rgba(255,255,255,.58); border-radius: 13px; }
.role-button { padding: 8px 10px; border-radius: 9px; }
.role-button.is-active { color: #fff; background: var(--role-accent); box-shadow: 0 7px 16px color-mix(in srgb, var(--role-accent) 28%, transparent); }
.user-menu .avatar { box-shadow: 0 0 0 3px var(--role-soft); }

main { padding-top: 46px; }
.page-heading { margin-bottom: 22px; }
.eyebrow { color: var(--role-accent, var(--blue-deep)); }
.page-heading > p:last-child, .page-heading > div > p:last-child { color: #74616e; line-height: 1.65; }
.panel, .today-pulse, .metric-strip, .catalog-summary article { background: var(--glass); border: 1px solid var(--glass-border); box-shadow: var(--shadow-soft), inset 0 1px 0 rgba(255,255,255,.88); backdrop-filter: blur(24px) saturate(140%); }
.button { min-height: 42px; border-radius: 13px; }
.button.primary { color: #fff; background: linear-gradient(135deg, var(--role-accent, var(--blue-deep)), color-mix(in srgb, var(--role-accent, var(--blue-deep)) 72%, #4d3847)); box-shadow: 0 11px 26px color-mix(in srgb, var(--role-accent, var(--blue-deep)) 22%, transparent), inset 0 1px 0 rgba(255,255,255,.25); }
.button.primary:hover { background: linear-gradient(135deg, color-mix(in srgb, var(--role-accent) 88%, #fff), color-mix(in srgb, var(--role-accent) 72%, #3f303a)); }
.button.secondary { background: rgba(255,255,255,.58); border-color: rgba(110,78,98,.14); box-shadow: inset 0 1px 0 rgba(255,255,255,.82); }
.button.dark { background: #4b3745; }
.segmented-control, .client-tabs, .inventory-tabs { background: rgba(103,75,94,.08); }
.segmented-control button.is-active, .client-tabs button.is-active, .inventory-tabs button.is-active { background: rgba(255,255,255,.82); }

.access-lens { position: relative; display: grid; grid-template-columns: 48px minmax(240px,1fr) auto auto; align-items: center; gap: 16px; margin-bottom: 18px; padding: 15px 17px; overflow: hidden; background: linear-gradient(110deg, rgba(255,255,255,.8), var(--role-soft)); border: 1px solid rgba(255,255,255,.9); border-radius: 22px; box-shadow: 0 14px 34px rgba(82,51,72,.08), inset 0 1px 0 #fff; backdrop-filter: blur(24px); }
.access-lens::after { content: ""; position: absolute; width: 140px; height: 140px; right: -45px; top: -70px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, rgba(255,255,255,.86), var(--role-soft) 48%, transparent 69%); pointer-events: none; }
.access-lens-orb { width: 48px; height: 48px; display: grid; place-items: center; color: #fff; background: linear-gradient(145deg, color-mix(in srgb, var(--role-accent) 74%, #fff), var(--role-accent)); border: 1px solid rgba(255,255,255,.72); border-radius: 50% 50% 50% 16px; box-shadow: inset 0 1px 1px rgba(255,255,255,.58), 0 10px 24px var(--role-soft); }
.access-lens-copy { display: flex; flex-direction: column; }
.access-lens-copy small { color: var(--role-accent); font-size: .5rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.access-lens-copy strong { margin-top: 3px; font-size: .72rem; }
.access-lens-copy p { margin: 3px 0 0; color: var(--muted); font-size: .53rem; }
.access-lens-chips { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.access-lens-chips span { padding: 6px 9px; color: var(--ink-soft); background: rgba(255,255,255,.55); border: 1px solid rgba(255,255,255,.8); border-radius: 999px; font-size: .48rem; font-weight: 650; white-space: nowrap; }
.access-lens-lock, .scope-badge { display: inline-flex; align-items: center; gap: 6px; color: var(--role-accent); font-size: .5rem; font-weight: 700; white-space: nowrap; }
.access-lens-lock { position: relative; z-index: 1; padding: 8px 10px; background: rgba(255,255,255,.45); border-radius: 12px; }
.access-lens-lock svg, .scope-badge svg { width: 14px; }
.scope-badge { min-height: 42px; padding: 0 13px; background: var(--role-soft); border: 1px solid rgba(255,255,255,.78); border-radius: 13px; }

.role-workstream { display: grid; grid-template-columns: 1fr 34px 1fr 34px 1.2fr; align-items: center; gap: 10px; margin: -2px 0 18px; padding: 12px 16px; color: var(--ink-soft); background: rgba(255,255,255,.38); border: 1px solid rgba(255,255,255,.62); border-radius: 18px; }
.role-workstream > span { display: flex; flex-direction: column; }
.role-workstream small { color: var(--muted); font-size: .46rem; }
.role-workstream strong { margin-top: 3px; font-size: .57rem; }
.role-workstream > i { position: relative; height: 1px; background: linear-gradient(90deg, var(--role-soft), var(--role-accent)); opacity: .7; }
.role-workstream > i::after { content: ""; position: absolute; right: 0; top: -3px; width: 7px; height: 7px; border-radius: 50%; background: var(--role-accent); }
.operator-stream { background: linear-gradient(105deg, rgba(255,255,255,.58), rgba(185,211,198,.28)); }

.today-pulse { background: rgba(255,255,255,.38); }
.today-pulse article { background: rgba(255,255,255,.34); }
.today-pulse article > div strong { font-size: 1.72rem; }
.pulse-icon { border: 1px solid rgba(255,255,255,.7); box-shadow: inset 0 1px 0 rgba(255,255,255,.78); }
.rhythm-track, .calendar-lane { background-color: rgba(255,255,255,.42); }
.resource-strip { background: rgba(255,255,255,.33); }
.resource-chip, .shift-roster-title, .shift-person, .calendar-column-head { background: rgba(255,255,255,.48); }
.client-row.is-active { background: linear-gradient(90deg, var(--role-soft), rgba(255,255,255,.46)); }
.cabin-card, .measure-grid > div { background: rgba(255,255,255,.42); border-color: rgba(255,255,255,.7); }
.cabin-number { background: linear-gradient(145deg, var(--role-accent), #584050); }
.modal, .command-palette { background: rgba(255,252,254,.9); border: 1px solid rgba(255,255,255,.86); backdrop-filter: blur(30px); }
.modal-backdrop, .command-backdrop { background: rgba(67,45,59,.34); backdrop-filter: blur(15px); }
.toast { background: rgba(61,43,55,.92); border: 1px solid rgba(255,255,255,.15); backdrop-filter: blur(20px); }

body.role-operator .agenda-legend > span:not([data-current-operator]),
body.role-operator .rhythm-row:not([data-current-operator]),
body.role-operator .calendar-filters > :not([data-current-operator]),
body.role-operator .shift-person:not([data-current-operator]),
body.role-operator .calendar-column-head:not([data-current-operator]),
body.role-operator .calendar-lane:not([data-current-operator]) { display: none; }
body.role-operator .calendar-shell { grid-template-columns: 85px minmax(0, 1fr); min-width: 0; }
body.role-operator .shift-roster { grid-template-columns: minmax(210px, 1fr) minmax(150px, .5fr); }
body.role-operator .agenda-legend { justify-content: space-between; }
body.role-operator .agenda-legend .text-button { margin-left: 0; }
body.role-operator .opportunity-grid { grid-template-columns: 1fr; }
body.role-operator [data-book-treatment] { display: none; }
body.role-receptionist .clinical-note { display: none; }

/* Role visibility */
body.role-receptionist [data-permission="health"], body.role-receptionist [data-permission="admin"], body.role-operator [data-permission="finance"], body.role-operator [data-permission="admin"] { display: none !important; }
body.role-receptionist [data-role-placeholder="health"], body.role-operator [data-role-placeholder="finance"] { display: flex; }
body.role-operator .permission-placeholder[data-role-placeholder="finance"] { display: inline; }

/* Responsive */
@media (max-width: 1220px) {
    .topbar { padding: 0 20px; }.search-trigger { min-width: 0; width: 38px; padding: 9px; }.search-trigger span, .search-trigger kbd { display: none; }.role-caption { display: none; }.user-menu > span:nth-child(2), .user-menu > svg { display: none; }
    .dashboard-grid { grid-template-columns: 1fr; }.next-panel { display: grid; grid-template-columns: 1fr 1fr; }.next-panel > .panel-header { grid-column: 1 / -1; }.next-client-card { border-right: 1px solid var(--line); border-bottom: 0; }
    .opportunity-hero { grid-template-columns: 90px 1fr; }.opportunity-hero .button { grid-column: 2; justify-self: start; }
    .messages-shell { grid-template-columns: 270px 1fr; }.conversation-side { display: none; }
    .client-layout { grid-template-columns: 330px 1fr; }.client-summary-grid { grid-template-columns: 1fr 1fr; }
    .team-grid, .integration-grid { grid-template-columns: 1fr; }.shift-roster { grid-template-columns: repeat(3, 1fr); }.shift-roster-title { grid-column: 1 / -1; }
}

@media (max-width: 920px) {
    :root { --sidebar: 230px; }
    .sidebar { transform: translateX(-100%); transition: transform .25s ease; box-shadow: 20px 0 50px rgba(0,0,0,.22); }.sidebar.is-open { transform: translateX(0); }.workspace { margin-left: 0; }.mobile-menu { display: grid; }
    .today-pulse { grid-template-columns: 1fr 1fr; }.today-pulse article:nth-child(2) { border-right: 0; }.today-pulse article:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
    .opportunity-grid, .package-grid, .reactivation-layout { grid-template-columns: 1fr; }
    .client-layout { grid-template-columns: 1fr; }.client-index { min-height: auto; }.client-list { max-height: 310px; overflow-y: auto; }.client-detail { min-height: 620px; }
    .calendar-shell { min-width: 820px; }.view#view-calendar { overflow-x: auto; }
    .messages-shell { grid-template-columns: 230px minmax(420px, 1fr); overflow-x: auto; }
    .integration-status { grid-template-columns: 64px 1fr auto; }.integration-status dl { grid-column: 2 / -1; }.integration-status > button { grid-column: 3; grid-row: 1; }
    .tablet-grid { grid-template-columns: 1fr; }.cabin-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 680px) {
    .topbar { height: 66px; padding: 0 12px; }.location-copy small { display: none; }.location-copy button { max-width: 145px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.role-switcher { display: none; }.notification-button { display: none; }
    main { padding: 24px 14px 60px; }.heading-with-actions { align-items: flex-start; flex-direction: column; }.page-actions { width: 100%; }.page-actions .button { flex: 1; }.today-pulse { grid-template-columns: 1fr; }.today-pulse article { border-right: 0; border-bottom: 1px solid var(--line); }.today-pulse article:nth-child(3) { border-bottom: 1px solid var(--line); }
    .agenda-panel { padding: 16px; }.day-ruler { margin-left: 0; }.rhythm-row { grid-template-columns: 1fr; }.rhythm-name { display: none; }.rhythm-track { height: 56px; }.resource-strip { margin: 18px -16px -16px; padding: 11px 16px; }
    .next-panel { display: block; }.next-client-card { border-right: 0; border-bottom: 1px solid var(--line); }
    .opportunity-hero { grid-template-columns: 1fr; }.opportunity-visual { height: 80px; width: 100%; flex-direction: row; }.opportunity-visual::before { inset: 50% 50px auto; border-left: 0; border-top: 1px dashed #789c8c; }.opportunity-hero .button { grid-column: 1; }.opportunity-hero h2 { font-size: 1.65rem; }
    .client-detail { padding: 16px; }.client-profile-head { align-items: flex-start; }.client-profile-head .profile-actions .button { display: none; }.client-summary-grid { grid-template-columns: 1fr 1fr; }.detail-tabs { margin: 20px -16px 0; padding: 0 16px; }.detail-columns { grid-template-columns: 1fr; }.measure-grid { grid-template-columns: 1fr 1fr; }
    .metric-strip, .inventory-summary, .integration-notes, .catalog-summary { grid-template-columns: 1fr 1fr; }.metric-strip article:last-child, .inventory-summary article:last-child, .integration-notes > div:last-child, .catalog-summary article:last-child { grid-column: 1 / -1; }
    .match-card { grid-template-columns: 25px 40px 1fr; }.match-reasons { display: none; }.match-card .invite-button { grid-column: 3; justify-self: start; }
    .inventory-panel { padding: 15px; }.panel-header { flex-direction: column; }.panel-tools { width: 100%; }.panel-tools .input-with-icon { flex: 1; }.inventory-tabs { margin: 12px -15px 0; padding: 0 15px; }
    .team-members, .permission-matrix, .weekly-shifts { padding: 15px; }.team-members article { grid-template-columns: 40px 1fr auto; }.team-members article .icon-button { display: none; }.permission-matrix, .weekly-shifts { overflow-x: auto; }.weekly-shifts table { min-width: 650px; }.shift-roster { grid-template-columns: 1fr 1fr; }.shift-roster-title { grid-column: 1 / -1; }.calendar-filters { max-width: none; }.cabin-panel, .treatment-panel { padding: 15px; }.cabin-grid { grid-template-columns: 1fr; }.treatment-table { min-width: 720px; }
    .integration-status { grid-template-columns: 55px 1fr; }.integration-status dl, .integration-status > button { grid-column: 1 / -1; }.integration-status dl { justify-content: space-between; gap: 10px; }.integration-grid { min-width: 0; }.sync-map { overflow-x: auto; }.sync-map-row { min-width: 620px; }.api-config form { grid-template-columns: 1fr; }.api-config .full-field { grid-column: 1; }
    .tablet-header { height: 68px; padding: 0 14px; }.sync-live, .tablet-user > span:not(.avatar):not(.sync-live) { display: none; }.tablet-content { padding: 22px 14px; }.tablet-intro { align-items: stretch; flex-direction: column; }.tablet-scan { min-width: 0; }.tablet-toolbar { align-items: stretch; flex-direction: column; }.tablet-search { min-width: 0; }.tablet-filter { overflow-x: auto; }.tablet-product { grid-template-columns: 50px 1fr auto; padding: 14px; }.tablet-product-icon { width: 50px; height: 50px; }.tablet-feed { align-items: stretch; flex-direction: column; }
    .modal-form { grid-template-columns: 1fr; }.modal-form .full { grid-column: 1; }.toast-region { left: 12px; right: 12px; bottom: 12px; }.toast { min-width: 0; }
}

@media (max-width: 1220px) {
    .access-lens { grid-template-columns: 48px 1fr auto; }
    .access-lens-chips { grid-column: 2 / -1; justify-content: flex-start; }
}

@media (max-width: 920px) {
    .sidebar { transform: translateX(calc(-100% - 28px)); }
    .sidebar.is-open { transform: translateX(0); }
    .topbar { margin: 12px 12px 0; top: 12px; }
    main { padding-top: 42px; }
    .role-workstream { grid-template-columns: 1fr 26px 1fr 26px 1.15fr; }
    body.role-operator .calendar-shell { min-width: 620px; }
}

@media (max-width: 680px) {
    .topbar { margin: 9px 9px 0; top: 9px; border-radius: 18px; }
    main { padding-top: 30px; }
    h1 { font-size: clamp(2.15rem, 12vw, 3rem); }
    .access-lens { grid-template-columns: 42px 1fr; gap: 12px; padding: 14px; }
    .access-lens-orb { width: 42px; height: 42px; }
    .access-lens-chips, .access-lens-lock { grid-column: 1 / -1; justify-content: flex-start; }
    .access-lens-lock { justify-self: start; }
    .today-pulse { grid-template-columns: 1fr 1fr; }
    .today-pulse article { padding: 15px; border-right: 1px solid var(--line); }
    .today-pulse article:nth-child(2n) { border-right: 0; }
    .today-pulse article:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
    .today-pulse article:nth-child(n+3) { border-bottom: 0; }
    .today-pulse article { grid-template-columns: 34px 1fr; column-gap: 9px; }
    .pulse-icon { width: 34px; height: 34px; }
    .today-pulse article > div { align-items: flex-start; flex-direction: column; gap: 0; }
    .today-pulse article > div strong { font-size: 1.35rem; }
    .today-pulse article > div span { font-size: .54rem; white-space: normal; }
    .role-workstream { grid-template-columns: 1fr; gap: 8px; }
    .role-workstream > i { width: 1px; height: 14px; margin-left: 4px; background: linear-gradient(var(--role-soft), var(--role-accent)); }
    .role-workstream > i::after { right: -3px; top: auto; bottom: 0; }
    .scope-badge { min-height: 38px; }
    body.role-operator .shift-roster { grid-template-columns: 1fr; }
    body.role-operator .shift-roster-title { grid-column: 1; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

@media print {
    .sidebar, .topbar, .page-actions, .tablet-mode { display: none !important; }.workspace { margin: 0; }main { padding: 0; }.view { display: block !important; break-after: page; }.panel { box-shadow: none; }
}
