:root {
  --ink: #12241f;
  --ink-soft: #5d706a;
  --green-950: #073f35;
  --green-900: #075849;
  --green-800: #0b6c59;
  --green-700: #0c7c65;
  --green-100: #e7f4ee;
  --green-50: #f3faf7;
  --paper: #fffefd;
  --canvas: #f6f8f6;
  --line: #e3eae6;
  --amber: #b35e00;
  --amber-bg: #fff5df;
  --red: #bc3737;
  --red-bg: #fff0ef;
  --shadow: 0 18px 45px rgba(21, 52, 42, 0.08);
  --radius: 18px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--canvas);
  font-synthesis: none;
}

* { box-sizing: border-box; }
html { min-width: 320px; background: var(--canvas); }
body { margin: 0; min-height: 100vh; overflow-x: hidden; background: var(--canvas); }
button, input, select { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .62; }
button:focus-visible, input:focus-visible, select:focus-visible { outline: 3px solid rgba(12, 124, 101, .28); outline-offset: 2px; }
[hidden] { display: none !important; }

.app-noise { position: fixed; inset: 0; pointer-events: none; opacity: .2; z-index: 20; background-image: radial-gradient(rgba(0,0,0,.08) .45px, transparent .6px); background-size: 5px 5px; mix-blend-mode: multiply; }
.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--green-900); font-size: 20px; font-weight: 800; letter-spacing: -1.15px; text-decoration: none; }
.brand > span:last-child > span { color: #8ee0bb; }
.brand--light { color: #fff; }
.brand-mark { display: grid; width: 29px; height: 29px; place-items: center; color: #8de0bb; }
.brand-mark svg { width: 100%; height: 100%; overflow: visible; filter: drop-shadow(0 2px 3px rgba(0, 0, 0, .12)); }
.eyebrow { margin: 0 0 8px; color: var(--green-700); font-size: 10px; font-weight: 800; letter-spacing: 1.35px; line-height: 1.2; }
.eyebrow--light { color: #8fd7b7; }
.muted { color: var(--ink-soft); }

/* Login */
.login-layout { display: grid; min-height: 100vh; grid-template-columns: minmax(360px, 1.06fr) minmax(480px, .94fr); }
.login-intro { position: relative; overflow: hidden; display: flex; flex-direction: column; padding: clamp(34px, 5vw, 70px) clamp(36px, 8vw, 128px); color: #f5fff9; background: var(--green-950); }
.login-intro::before, .login-intro::after { content: ""; position: absolute; border-radius: 50%; pointer-events: none; }
.login-intro::before { top: -18rem; right: -15rem; width: 41rem; height: 41rem; border: 1px solid rgba(147, 235, 194, .19); box-shadow: 0 0 0 4.4rem rgba(147, 235, 194, .035), 0 0 0 9rem rgba(147, 235, 194, .025); }
.login-intro::after { bottom: -12rem; left: -17rem; width: 33rem; height: 33rem; background: rgba(78, 178, 139, .08); }
.login-intro > * { position: relative; z-index: 1; }
.intro-copy { max-width: 630px; margin: auto 0 34px; }
.intro-copy h1 { max-width: 650px; margin: 0 0 20px; font-size: clamp(40px, 4.3vw, 66px); font-weight: 680; letter-spacing: -3.2px; line-height: 1.03; }
.intro-copy p:not(.eyebrow) { max-width: 510px; margin: 0; color: #c9e7d8; font-size: 17px; line-height: 1.65; }
.intro-points { display: grid; gap: 13px; padding: 0; margin: 0; list-style: none; color: #e6f6ee; font-size: 14px; }
.intro-points span { display: inline-grid; width: 20px; height: 20px; margin-right: 9px; place-items: center; border-radius: 50%; color: #b7efd3; background: rgba(145, 229, 188, .15); font-size: 12px; }
.intro-foot { margin: 68px 0 0; color: #8ebdad; font-size: 12px; }
.login-panel { display: grid; place-items: center; padding: 40px 28px; background: var(--paper); }
.login-card { width: min(100%, 410px); }
.mobile-brand { display: none; margin-bottom: 45px; }
.login-card h2 { margin: 0 0 9px; font-size: 29px; letter-spacing: -1.35px; line-height: 1.2; }
.login-card > .muted { margin: 0 0 30px; font-size: 14px; line-height: 1.5; }
.stack-form { display: grid; gap: 17px; }
label { display: grid; gap: 7px; color: #354a43; font-size: 12px; font-weight: 700; }
.optional-label { margin-left: 4px; color: #8a9c95; font-size: 10px; font-style: normal; font-weight: 600; }
input, select { width: 100%; height: 44px; border: 1px solid #d5e1db; border-radius: 9px; padding: 0 12px; color: var(--ink); background: #fff; font-size: 14px; transition: border-color .15s, box-shadow .15s; }
input::placeholder { color: #9aaca5; }
input:hover, select:hover { border-color: #acc9ba; }
.input-with-action { position: relative; display: block; }
.input-with-action input { padding-right: 64px; }
.text-button { position: absolute; top: 50%; right: 9px; border: 0; padding: 4px 6px; transform: translateY(-50%); color: var(--green-700); background: transparent; font-size: 12px; font-weight: 750; }
.form-error { margin: -3px 0 0; color: var(--red); font-size: 12px; line-height: 1.4; }
.button { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; gap: 8px; border: 1px solid transparent; border-radius: 9px; padding: 0 15px; font-size: 13px; font-weight: 760; transition: background .15s, color .15s, border .15s, transform .15s; }
.button:active { transform: translateY(1px); }
.button--primary { color: #fff; background: var(--green-800); box-shadow: 0 5px 14px rgba(8, 109, 89, .18); }
.button--primary:hover { background: var(--green-900); }
.button--secondary { border-color: #cdded6; color: var(--green-900); background: #fff; }
.button--secondary:hover { border-color: #9dc7b4; background: var(--green-50); }
.button--wide { width: 100%; min-height: 46px; margin-top: 4px; justify-content: space-between; padding-inline: 16px; }
.demo-button { width: 100%; margin-top: 12px; border: 0; padding: 9px; color: var(--green-800); background: transparent; font-size: 12px; font-weight: 740; }
.demo-button:hover { color: var(--green-950); text-decoration: underline; }
.login-note { margin: 19px auto 0; max-width: 360px; color: #869991; font-size: 11px; line-height: 1.55; text-align: center; }

/* App shell */
.app-shell { min-height: 100vh; background: var(--canvas); }
.sidebar { position: fixed; z-index: 11; inset: 0 auto 0 0; display: flex; width: 258px; flex-direction: column; color: #e5f6ed; background: linear-gradient(160deg, #063f37 0%, #063830 58%, #042e28 100%); }
.sidebar-top { display: flex; height: 68px; align-items: center; justify-content: space-between; padding: 0 20px; }
.close-sidebar { display: none; }
.main-nav { display: flex; min-height: 0; flex: 1; flex-direction: column; overflow-y: auto; padding: 8px 12px 12px; scrollbar-width: thin; scrollbar-color: rgba(188,231,210,.18) transparent; }
.nav-label { margin: 14px 10px 7px; color: #80aa9b; font-size: 8px; font-weight: 800; letter-spacing: 1.22px; }
.nav-label--spaced { margin-top: 20px; }
.nav-item { display: flex; width: 100%; min-height: 36px; align-items: center; gap: 10px; border: 0; border-radius: 8px; padding: 0 10px; color: #b7d0c5; background: transparent; font-size: 11.5px; font-weight: 640; text-align: left; text-decoration: none; transition: .15s; }
.nav-item:hover { color: #fff; background: rgba(167, 231, 202, .095); }
.nav-item.is-active { color: #145b47; background: #dff4e9; box-shadow: inset 0 0 0 1px rgba(255,255,255,.43), 0 4px 15px rgba(0,0,0,.1); }
.nav-icon { display: block; width: 15px; height: 15px; flex: 0 0 15px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; color: #98c6b4; }
.nav-item.is-active .nav-icon { color: #21745a; }
.nav-item b { min-width: 19px; margin-left: auto; border-radius: 10px; padding: 2px 6px; color: #d8ffeb; background: rgba(145, 230, 185, .17); font-size: 10px; text-align: center; }
.nav-item.is-active b { color: #14634c; background: rgba(21, 122, 91, .12); }
.sidebar-bottom { padding: 12px 12px 14px; border-top: 1px solid rgba(212, 252, 228, .11); }
.app-version-card { display: flex; align-items: center; gap: 9px; border: 1px solid rgba(198, 238, 218, .14); border-radius: 11px; padding: 10px; color: #e9faf1; background: rgba(0, 25, 20, .21); }
.app-version-card > span:nth-child(2) { display: grid; gap: 2px; flex: 1; }
.app-version-card strong { font-size: 11px; }.app-version-card small { color: #8fb9a9; font-size: 9px; }.app-version-card b { color: #9ae1bf; font-size: 8px; letter-spacing: .5px; }.version-mark { display: grid; width: 29px; height: 29px; place-items: center; border-radius: 8px; color: #07513f; background: #a8e2c3; font-size: 9px; font-weight: 850; }
.logout-button { display: flex; width: 100%; align-items: center; gap: 8px; margin-top: 16px; border: 0; padding: 7px 5px; color: #9fcbb9; background: transparent; font-size: 11px; font-weight: 670; text-align: left; }
.logout-button:hover { color: #fff; }
.workspace { width: calc(100% - 258px); min-height: 100vh; margin-left: 258px; }
.topbar { position: sticky; z-index: 8; top: 0; display: flex; height: 62px; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); padding: 0 clamp(20px, 2.6vw, 40px); background: rgba(250,251,249,.94); backdrop-filter: blur(12px); }
.topbar-start { display: flex; align-items: center; gap: 11px; min-width: 0; }
.pharmacy-switcher { display: flex; min-width: 186px; align-items: center; gap: 8px; border: 0; padding: 4px 7px 4px 0; color: #1b352b; background: transparent; text-align: left; }
.pharmacy-switcher > span:nth-child(2) { display: grid; gap: 1px; flex: 1; }.pharmacy-switcher strong { font-size: 11px; }.pharmacy-switcher small { color: #779087; font-size: 9px; font-weight: 600; }.pharmacy-switcher-mark { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 8px; color: #146248; background: #d7f0e2; font-size: 11px; font-weight: 850; }.pharmacy-switcher i { width: 0; height: 0; border: 4px solid transparent; border-top: 5px solid #70877d; border-bottom: 0; }
.topbar-context { display: grid; justify-items: center; gap: 3px; }
.topbar-date { color: #7a8e86; font-size: 10px; font-weight: 650; }
.topbar-context strong { font-size: 13px; letter-spacing: -.2px; }
.topbar-actions { display: flex; align-items: center; gap: 9px; }
.support-link { display: inline-flex; align-items: center; gap: 6px; border: 0; padding: 7px 4px; color: #5c756b; background: transparent; font-size: 11px; font-weight: 680; }.support-link:hover { color: var(--green-900); }.support-link svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.plan-pill { display: inline-flex; align-items: center; gap: 5px; border: 1px solid #e8d4a2; border-radius: 12px; padding: 4px 8px; color: #8b6512; background: #fff8e9; font-size: 10px; font-weight: 780; }.plan-pill > span { color: #d29720; }
.connection-pill { display: inline-flex; align-items: center; gap: 6px; color: #678078; font-size: 11px; font-weight: 680; }
.connection-pill i { display: block; width: 7px; height: 7px; border-radius: 50%; background: #db9b32; box-shadow: 0 0 0 3px rgba(219,155,50,.13); }
.connection-pill.is-live { color: #287457; }
.connection-pill.is-live i { background: #43b77a; box-shadow: 0 0 0 3px rgba(67,183,122,.14); }
.connection-pill.is-demo i { background: #658adb; box-shadow: 0 0 0 3px rgba(101,138,219,.14); }
.icon-button { display: inline-grid; width: 34px; height: 34px; place-items: center; border: 1px solid transparent; border-radius: 8px; color: #547269; background: transparent; font-size: 19px; line-height: 1; }
.icon-button:hover { border-color: #d7e5dd; color: var(--green-900); background: #fff; }
.menu-button { display: none; }
.profile-button { display: flex; align-items: center; gap: 5px; border: 0; padding: 0; color: #5f756c; background: transparent; }
.profile-button span { display: grid; width: 31px; height: 31px; place-items: center; border: 2px solid #fff; border-radius: 50%; color: #075b49; background: #bde7d1; box-shadow: 0 1px 4px rgba(0,0,0,.13); font-size: 10px; font-weight: 850; }
.profile-button i { width: 0; height: 0; border: 4px solid transparent; border-top: 5px solid #758a82; border-bottom: 0; }
.content { width: min(100%, 1720px); margin: 0 auto; padding: clamp(20px, 2.7vw, 35px) clamp(20px, 2.8vw, 42px) 55px; }
.view { animation: view-in .25s ease both; }
@keyframes view-in { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }
.view-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 29px; }
.view-heading h1 { margin: 0 0 6px; color: #14271f; font-size: clamp(26px, 2.4vw, 35px); font-weight: 730; letter-spacing: -1.55px; line-height: 1.12; }
.view-heading h1 span { color: #40a879; }
.view-heading > div > p:not(.eyebrow) { margin: 0; color: #70847c; font-size: 13px; }
.heading-actions { display: flex; gap: 10px; flex-wrap: wrap; }

/* Dashboard */
.dashboard-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; margin-bottom: 20px; }
.dashboard-heading h1 { margin: 0 0 5px; color: #14271f; font-size: clamp(28px, 2.5vw, 37px); font-weight: 740; letter-spacing: -1.75px; line-height: 1.1; }
.dashboard-heading h1 span { color: #42aa7a; }.dashboard-heading > div > p:not(.eyebrow) { margin: 0; color: #71847d; font-size: 12px; }.dashboard-heading .eyebrow { margin-bottom: 7px; }
.dashboard-heading-actions { display: flex; align-items: center; gap: 9px; }.compact-action { display: inline-flex; min-height: 37px; align-items: center; gap: 6px; border: 1px solid #d8e6df; border-radius: 8px; padding: 0 11px; color: #47675c; background: #fff; font-size: 11px; font-weight: 740; }.compact-action:hover { border-color: #a4c9b8; color: var(--green-900); }.dashboard-new-sale { min-height: 37px; font-size: 11px; }
.metric-grid { display: grid; gap: 11px; margin-bottom: 13px; }.metric-grid--six { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.metric-card, .panel { border: 1px solid var(--line); border-radius: 13px; background: var(--paper); box-shadow: 0 2px 8px rgba(25, 59, 48, .025); }
.metric-card { position: relative; min-width: 0; min-height: 118px; padding: 13px 14px; overflow: hidden; }.metric-card::after { content: ""; position: absolute; right: -26px; bottom: -43px; width: 89px; height: 89px; border-radius: 50%; background: rgba(83, 190, 144, .045); }
.metric-top { position: relative; z-index: 1; display: flex; min-height: 17px; align-items: flex-start; justify-content: space-between; gap: 6px; color: #688078; font-size: 10px; font-weight: 710; }.metric-top > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.metric-trend { border-radius: 9px; padding: 2px 4px; font-size: 8px; font-weight: 800; white-space: nowrap; }.metric-trend--up { color: #218054; background: #e5f6ed; }.metric-mini-icon { display: grid; width: 17px; height: 17px; place-items: center; border-radius: 5px; color: #2a8461; background: #eaf6ef; font-size: 10px; font-weight: 850; }
.metric-card--warning .metric-mini-icon { color: #a95d06; background: var(--amber-bg); }.metric-card strong { position: relative; z-index: 1; display: block; margin-top: 9px; color: #183027; font-size: clamp(18px, 1.6vw, 23px); letter-spacing: -1px; line-height: 1.1; white-space: nowrap; }.metric-card small { position: relative; z-index: 1; display: block; margin-top: 5px; overflow: hidden; color: #82958d; font-size: 8.5px; text-overflow: ellipsis; white-space: nowrap; }
.metric-spark { position: absolute; z-index: 1; right: 13px; bottom: 13px; display: flex; width: 52px; height: 21px; align-items: end; gap: 3px; opacity: .85; }.metric-spark i { width: 5px; border-radius: 2px 2px 0 0; background: #67bf98; }.metric-spark i:nth-child(1) { height: 33%; }.metric-spark i:nth-child(2) { height: 52%; }.metric-spark i:nth-child(3) { height: 38%; }.metric-spark i:nth-child(4) { height: 75%; }.metric-spark i:nth-child(5) { height: 58%; }.metric-spark i:nth-child(6) { height: 92%; }.metric-spark i:nth-child(7) { height: 72%; }.metric-spark--profit i { background: #70ae9b; }.metric-spark--short i { background: #91ceb0; }.metric-spark--low i { background: #93bdb0; }.metric-spark--warning i { background: #e5aa58; }.metric-spark--warning i:nth-child(4) { height: 47%; }.metric-spark--warning i:nth-child(6) { height: 38%; }
.panel { padding: 16px; }.panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 14px; }.panel-heading--dense { margin-bottom: 11px; }.panel-heading .eyebrow { margin-bottom: 4px; }.panel-heading h2, .panel h3 { margin: 0; color: #193229; font-size: 14px; letter-spacing: -.5px; }.link-button { border: 0; padding: 3px 0; color: var(--green-700); background: transparent; font-size: 10px; font-weight: 760; white-space: nowrap; }.link-button:hover { color: var(--green-950); text-decoration: underline; }
.dashboard-board { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(325px, .68fr); gap: 13px; align-items: start; }.dashboard-board-main, .dashboard-board-side { display: grid; gap: 13px; }.movement-panel { min-height: 301px; }.chart-controls { display: flex; align-items: center; gap: 10px; }.chart-legend { display: inline-flex; align-items: center; gap: 4px; color: #71847c; font-size: 9px; font-weight: 650; }.legend-dot { width: 7px; height: 7px; border-radius: 50%; }.legend-dot--sales { background: #168062; }.legend-dot--purchase { background: #b8d6ca; }.period-button { border: 0; border-left: 1px solid #e2ebe5; padding: 2px 0 2px 10px; color: #557167; background: transparent; font-size: 9px; font-weight: 730; }
.movement-summary { display: grid; gap: 2px; margin: 2px 0 0; }.movement-summary strong { color: #18332a; font-size: 21px; letter-spacing: -1px; }.movement-summary span { color: #80948b; font-size: 9px; }.movement-chart { position: relative; height: 191px; margin-top: 5px; }.chart-guide { position: absolute; right: 0; left: 0; border-top: 1px dashed #e8efeb; }.chart-guide--1 { top: 17%; }.chart-guide--2 { top: 47%; }.chart-guide--3 { top: 77%; }.movement-bars { position: relative; z-index: 1; display: grid; height: 100%; grid-template-columns: repeat(8, 1fr); align-items: end; gap: clamp(7px, 1.6vw, 18px); border-bottom: 1px solid #dfe9e3; }.movement-bars > div { position: relative; display: flex; height: 100%; align-items: end; justify-content: center; gap: 3px; padding-bottom: 20px; }.movement-bars i, .movement-bars b { display: block; width: min(13px, 34%); border-radius: 4px 4px 0 0; }.movement-bars i { background: linear-gradient(180deg, #66c59c, #167e61); }.movement-bars b { background: #c8ded3; }.movement-bars small { position: absolute; bottom: 3px; color: #91a19a; font-size: 8px; }
.dashboard-detail-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: 13px; }.refill-panel, .activity-panel { min-height: 244px; }.followup-list, .activity-list, .highest-sales-list, .expiry-watch-list { display: grid; }.followup-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 9px; padding: 9px 0; border-top: 1px solid #edf2ef; }.followup-row:first-child, .activity-row:first-child, .highest-sale-row:first-child, .expiry-watch-row:first-child { border-top: 0; padding-top: 0; }.patient-avatar { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 8px; color: #1d7457; background: #e2f3e9; font-size: 9px; font-weight: 850; }.followup-row strong, .activity-row strong, .highest-sale-row strong, .expiry-watch-row strong { display: block; overflow: hidden; color: #294138; font-size: 10px; font-weight: 760; text-overflow: ellipsis; white-space: nowrap; }.followup-row small, .activity-row small, .highest-sale-row small, .expiry-watch-row small { display: block; margin-top: 2px; overflow: hidden; color: #82958d; font-size: 8.5px; text-overflow: ellipsis; white-space: nowrap; }.followup-due { color: #ae620e; font-size: 8.5px; font-weight: 760; text-align: right; }.followup-due--fresh { color: #368567; }
.activity-row { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 9px; padding: 10px 0; border-top: 1px solid #edf2ef; }.activity-icon { display: grid; width: 25px; height: 25px; place-items: center; border-radius: 7px; color: #247c5b; background: #e5f4eb; font-size: 11px; font-weight: 850; }.activity-icon--stock { color: #9d620f; background: #fff3df; }.activity-icon--alert { color: #b44545; background: #fff0ef; }.live-dot { display: inline-flex; align-items: center; gap: 4px; color: #3b8467; font-size: 9px; font-weight: 760; }.live-dot::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: #43ad79; box-shadow: 0 0 0 3px rgba(67,173,121,.12); }
.side-stat-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }.side-stat { min-height: 89px; border: 1px solid var(--line); border-radius: 12px; padding: 12px; background: #fff; }.side-stat p { margin: 0 0 6px; color: #789087; font-size: 9px; font-weight: 700; }.side-stat strong { display: block; color: #183229; font-size: 18px; letter-spacing: -.8px; }.side-stat span { display: block; margin-top: 5px; color: #7f938a; font-size: 8px; white-space: nowrap; }.side-stat span b { color: #397e63; }.side-stat--profit { border-color: #d5eadf; background: linear-gradient(135deg, #f3fbf6, #fff); }.side-stat--profit span { color: #2a8963; }
.highest-sales-panel { padding-bottom: 9px; }.highest-sale-row { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 8px 0; border-top: 1px solid #edf2ef; }.sales-rank { display: grid; width: 23px; height: 23px; place-items: center; border-radius: 7px; color: #267d5c; background: #e8f5ee; font-size: 9px; font-weight: 850; }.highest-sale-row > b { color: #42675a; font-size: 9px; }.highest-sale-row:nth-child(2) .sales-rank { color: #9b6a18; background: #fff2d9; }.highest-sale-row:nth-child(3) .sales-rank { color: #6a7880; background: #eef2f3; }
.side-bottom-grid { display: grid; grid-template-columns: minmax(138px, .7fr) minmax(0, 1.3fr); gap: 10px; }.stock-health-panel { min-height: 198px; }.stock-health-panel h2 { margin-bottom: 10px; }.stock-donut { --stock-health: 78%; display: grid; width: 104px; height: 104px; place-items: center; margin: 3px auto 8px; border-radius: 50%; background: conic-gradient(#1b8866 var(--stock-health), #e3eee8 0); }.stock-donut > div { display: grid; width: 79px; height: 79px; place-items: center; align-content: center; border-radius: 50%; background: #fff; }.stock-donut strong { color: #1b362b; font-size: 18px; letter-spacing: -1px; }.stock-donut span { margin-top: -2px; color: #7b8f86; font-size: 8px; }.stock-health-caption { margin: 0; color: #799087; font-size: 8.5px; line-height: 1.4; text-align: center; }.expiry-watch-panel { min-height: 198px; }.expiry-watch-row { display: grid; grid-template-columns: 7px minmax(0, 1fr); align-items: center; gap: 7px; padding: 8px 0; border-top: 1px solid #edf2ef; }.expiry-marker { width: 6px; height: 6px; border-radius: 50%; background: #df9351; }.expiry-marker--urgent { background: #d36464; }.expiry-watch-row small { white-space: normal; }
.attention-list { display: grid; }.attention-row { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; padding: 11px 0; border-top: 1px solid #eef2ef; }.attention-row:first-child { border-top: 0; padding-top: 2px; }.attention-symbol { display: grid; width: 33px; height: 33px; place-items: center; border-radius: 9px; color: var(--amber); background: var(--amber-bg); font-size: 14px; font-weight: 800; }.attention-symbol--red { color: var(--red); background: var(--red-bg); }.attention-row strong { display: block; color: #294037; font-size: 12px; font-weight: 760; }.attention-row small { display: block; margin-top: 3px; color: #7c9188; font-size: 10px; }.attention-row > span:last-child { color: #899b94; font-size: 16px; }.empty-state { padding: 22px 10px; color: #7c9188; font-size: 11px; text-align: center; }
.soft-badge { display: inline-flex; min-height: 23px; align-items: center; border-radius: 15px; padding: 0 8px; color: #627b71; background: #eff4f1; font-size: 10px; font-weight: 760; white-space: nowrap; }.soft-badge--green { color: #207353; background: #e4f5eb; }.soft-badge--amber { color: #a95400; background: var(--amber-bg); }.soft-badge--red { color: #ae3f3f; background: var(--red-bg); }
.table-wrap { width: 100%; overflow-x: auto; } table { width: 100%; border-collapse: collapse; white-space: nowrap; } th { padding: 0 10px 10px; color: #82938c; font-size: 9px; font-weight: 820; letter-spacing: .65px; text-align: left; text-transform: uppercase; } td { border-top: 1px solid #eef2ef; padding: 12px 10px; color: #567068; font-size: 11px; } td:first-child, th:first-child { padding-left: 0; } td:last-child, th:last-child { padding-right: 0; }.product-cell { display: flex; align-items: center; gap: 9px; color: #294137; font-weight: 720; }.product-initial { display: grid; width: 26px; height: 26px; place-items: center; border-radius: 7px; color: #187253; background: #e8f5ee; font-size: 10px; font-weight: 850; }.table-loading { padding: 25px 0; color: #83968e; text-align: center; }.status { display: inline-flex; align-items: center; gap: 5px; font-size: 10px; font-weight: 690; }.status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #49aa7b; }.status--low { color: #aa600b; }.status--low::before { background: #e19a37; }.status--critical { color: #b74343; }.status--critical::before { background: #d76565; }

/* Reference-style dashboard hierarchy */
.dashboard-breadcrumb { margin: 0 0 9px; color: #8a9c95; font-size: 10px; font-weight: 650; }.dashboard-breadcrumb span { margin: 0 5px; color: #b0c0b9; }.dashboard-heading h1 { font-size: clamp(31px, 2.55vw, 39px); }.dashboard-heading > div > p:not(.dashboard-breadcrumb) { margin: 0; color: #71847d; font-size: 12px; }
.metric-grid--reference { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }.metric-card--reference, .metric-card--fast { min-height: 122px; padding: 15px; }.metric-card--reference::after, .metric-card--fast::after { display: none; }.metric-card--reference > p, .metric-card--fast > p { margin: 0; color: #73867e; font-size: 10px; font-weight: 710; }.metric-card--reference > strong, .metric-card--fast > strong { display: block; margin-top: 10px; color: #173128; font-size: 23px; letter-spacing: -1.1px; }.metric-card--reference > small { display: block; margin-top: 6px; color: #8a9b94; font-size: 9px; }.payment-chips { display: flex; gap: 5px; margin-top: 8px; }.payment-chips span { border-radius: 5px; padding: 3px 6px; color: #5d776c; background: #eff5f1; font-size: 8px; font-weight: 760; }.payment-chips span:nth-child(2) { color: #1b7660; background: #e5f5ed; }.payment-chips span:nth-child(3) { color: #956119; background: #fff4df; }.metric-card--fast { display: flex; flex-direction: column; justify-content: space-between; border-color: #cde7d9; background: linear-gradient(135deg, #f5fcf8, #fff); }.metric-card--fast > strong { margin: 7px 0 auto; font-size: 17px; }.metric-detail-button { display: inline-flex; width: max-content; align-items: center; gap: 8px; border: 0; padding: 0; color: #0d7759; background: transparent; font-size: 10px; font-weight: 830; }.metric-detail-button span { font-size: 14px; }
.refill-panel--full { margin-bottom: 13px; }.refill-panel--full .followup-list { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 14px; }.refill-panel--full .followup-row { border-top: 0; border-right: 1px solid #edf2ef; padding: 2px 12px 2px 0; }.refill-panel--full .followup-row + .followup-row { padding-left: 0; }.refill-panel--full .followup-row:last-child { border-right: 0; }
.reference-row { display: grid; gap: 13px; margin-top: 13px; }.reference-row--movement { grid-template-columns: minmax(0, 1.65fr) minmax(300px, .65fr); }.reference-row--performance { grid-template-columns: 1fr 1fr; }.reference-row--activity { grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr); align-items: stretch; }.reference-row--movement .movement-panel, .reference-row--movement .expiry-watch-panel { min-height: 302px; }.reference-row--movement .expiry-watch-panel { padding-bottom: 12px; }.performance-panel { min-height: 165px; }.performance-value { display: block; margin-top: 8px; color: #19342a; font-size: 26px; letter-spacing: -1.2px; }.performance-caption { display: block; margin-top: 5px; color: #7d9188; font-size: 10px; }.performance-caption b { color: #297d5e; }.performance-bars, .patient-movement-bars { display: flex; height: 28px; align-items: end; gap: 5px; margin-top: 14px; }.performance-bars i, .patient-movement-bars i { display: block; width: 11px; border-radius: 3px 3px 0 0; background: #76c69f; }.performance-bars i:nth-child(1), .patient-movement-bars i:nth-child(1) { height: 31%; }.performance-bars i:nth-child(2), .patient-movement-bars i:nth-child(2) { height: 59%; }.performance-bars i:nth-child(3), .patient-movement-bars i:nth-child(3) { height: 46%; }.performance-bars i:nth-child(4), .patient-movement-bars i:nth-child(4) { height: 88%; }.performance-bars i:nth-child(5), .patient-movement-bars i:nth-child(5) { height: 67%; }.performance-bars i:nth-child(6), .patient-movement-bars i:nth-child(6) { height: 100%; }.performance-bars i:nth-child(7) { height: 74%; }.patient-movement-bars i { background: #c1ddd0; }.patient-movement-bars i:nth-child(4) { background: #5bbb8b; }.activity-panel { min-height: 253px; }.reference-stack { display: grid; grid-template-rows: minmax(158px, .8fr) minmax(158px, 1fr); gap: 13px; }.reference-stack .stock-health-panel, .reference-stack .highest-sales-panel { min-height: 0; }.reference-stack .stock-donut { width: 85px; height: 85px; margin: 0 auto 4px; }.reference-stack .stock-donut > div { width: 65px; height: 65px; }.reference-stack .stock-donut strong { font-size: 15px; }.reference-stack .stock-health-caption { font-size: 8px; }.reference-stack .highest-sale-row { padding: 5px 0; }

/* Stock intake workspace */
.receive-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 21px; }.receive-heading h1 { margin: 0 0 5px; color: #14271f; font-size: clamp(28px, 2.4vw, 35px); letter-spacing: -1.5px; }.receive-heading > div > p:not(.eyebrow) { margin: 0; color: #71847d; font-size: 12px; }.receive-privacy-pill { display: inline-flex; align-items: center; gap: 5px; border: 1px solid #d7e8df; border-radius: 15px; padding: 5px 9px; color: #39745f; background: #f4faf6; font-size: 10px; font-weight: 740; white-space: nowrap; }
.receive-workspace { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 14px; align-items: start; }.receive-mode-rail { display: grid; gap: 7px; border: 1px solid var(--line); border-radius: 14px; padding: 13px; background: #fff; }.mode-rail-title { margin: 2px 3px 5px; color: #7f948b; font-size: 8px; font-weight: 840; letter-spacing: .95px; }.intake-mode { display: flex; min-height: 58px; align-items: center; gap: 9px; border: 1px solid transparent; border-radius: 10px; padding: 8px; color: #557168; background: transparent; text-align: left; transition: .15s; }.intake-mode:hover { border-color: #d9ebe1; background: #f7fbf8; }.intake-mode.is-active { border-color: #bfdfcf; color: #185f49; background: #eaf7f0; }.intake-mode-icon { display: grid; width: 27px; height: 27px; flex: 0 0 27px; place-items: center; border-radius: 8px; color: #427c68; background: #edf4f0; font-size: 14px; font-weight: 850; }.intake-mode.is-active .intake-mode-icon { color: #fff; background: #278060; }.intake-mode > span:nth-child(2) { display: grid; min-width: 0; gap: 2px; flex: 1; }.intake-mode strong { overflow: hidden; font-size: 10px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }.intake-mode small { overflow: hidden; color: #81968c; font-size: 8.5px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }.intake-mode b { border-radius: 5px; padding: 3px 4px; color: #5d8273; background: rgba(133, 194, 162, .18); font-size: 7px; letter-spacing: .25px; }.mode-rail-help { display: grid; gap: 4px; margin-top: 5px; border-top: 1px solid #ecf2ee; padding: 12px 4px 2px; color: #758b81; font-size: 9px; line-height: 1.45; }.mode-rail-help strong { color: #426b5c; font-size: 9px; }
.receive-canvas { border: 1px solid var(--line); border-radius: 14px; padding: clamp(16px, 2.4vw, 25px); background: #fff; }.intake-panel { animation: view-in .2s ease both; }.intake-panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; margin-bottom: 15px; }.intake-panel-heading h2 { margin: 0 0 5px; color: #183128; font-size: 19px; letter-spacing: -.75px; }.intake-panel-heading > div > p:not(.eyebrow) { max-width: 650px; margin: 0; color: #73877f; font-size: 11px; line-height: 1.5; }.intake-steps { display: flex; max-width: 430px; align-items: center; gap: 0; padding: 0; margin: 0 0 17px; list-style: none; }.intake-steps li { position: relative; display: flex; min-width: 100px; align-items: center; gap: 6px; color: #a0afa9; font-size: 9px; font-weight: 720; }.intake-steps li:not(:last-child)::after { content: ""; width: 32px; height: 1px; margin-left: 4px; background: #dfeae4; }.intake-steps b { display: grid; width: 19px; height: 19px; place-items: center; border-radius: 50%; color: #8ca097; background: #f0f5f2; font-size: 9px; }.intake-steps .is-current { color: #257754; }.intake-steps .is-current b { color: #fff; background: #25805f; }.supplier-inline { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; margin-bottom: 15px; }.supplier-inline label { font-size: 11px; }.supplier-inline input { height: 40px; }
.intake-dropzone { display: grid; min-height: 194px; place-items: center; align-content: center; gap: 7px; border: 1.5px dashed #a8cdbb; border-radius: 12px; padding: 20px; color: #758c82; background: linear-gradient(135deg, #fbfefc, #f4faf6); text-align: center; transition: .15s; }.intake-dropzone:hover, .intake-dropzone.is-dragging { border-color: #2d926b; background: #eff9f3; }.dropzone-icon { display: grid; width: 37px; height: 37px; place-items: center; border-radius: 11px; color: #297c5c; background: #dff2e8; font-size: 20px; font-weight: 850; }.intake-dropzone strong { color: #2b493e; font-size: 12px; }.intake-dropzone > span:not(.dropzone-icon) { color: #8a9c95; font-size: 10px; }.intake-dropzone small { color: #91a29b; font-size: 8.5px; }.intake-dropzone .button { min-height: 33px; font-size: 10px; }.intake-dropzone--document { min-height: 178px; border-color: #d9caa6; background: linear-gradient(135deg, #fffdfa, #fff8e8); }.intake-dropzone--document .dropzone-icon { color: #9a6c21; background: #fff0cf; }.intake-file-status { min-height: 17px; margin: 9px 0 0; color: #799087; font-size: 10px; }.intake-file-status.is-ready { color: #287454; }.intake-file-status.is-warning { color: #a26315; }
.intake-template-link { display: inline-flex; margin-top: 1px; color: #287454; font-size: 10px; font-weight: 760; text-decoration: none; }.intake-template-link:hover { color: #1d6247; text-decoration: underline; }
.migration-start-grid { display: grid; grid-template-columns: minmax(260px, .9fr) minmax(340px, 1.1fr); gap: 14px; align-items: stretch; }.migration-template-card, .migration-upload-card { min-width: 0; border: 1px solid #d9e8e0; border-radius: 12px; padding: clamp(16px, 2vw, 22px); background: #fcfefd; }.migration-template-card { background: linear-gradient(145deg, #f4fbf7, #fff); }.migration-upload-card { border-color: #cfe5d8; background: linear-gradient(145deg, #fbfefc, #f3faf6); }.migration-card-kicker { display: flex; align-items: center; gap: 8px; }.migration-card-kicker .eyebrow { margin: 0; }.migration-step-number { display: grid; width: 20px; height: 20px; place-items: center; border-radius: 50%; color: #fff; background: #287f5e; font-size: 9px; font-weight: 850; }.migration-template-card h3, .migration-upload-card h3 { margin: 13px 0 6px; color: #1b382d; font-size: 16px; letter-spacing: -.45px; }.migration-template-card > p, .migration-upload-card > p { margin: 0; color: #748a80; font-size: 10.5px; line-height: 1.6; }.migration-template-download { display: flex; align-items: center; gap: 10px; margin: 17px 0 14px; border: 1px solid #c7e2d3; border-radius: 9px; padding: 11px 12px; color: #226e53; background: #fff; text-decoration: none; transition: .15s; }.migration-template-download:hover { border-color: #75b995; background: #f8fcf9; transform: translateY(-1px); }.migration-template-download > span:first-child { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 8px; color: #1c7657; background: #e3f4ea; font-size: 18px; font-weight: 850; }.migration-template-download > span:last-child { display: grid; gap: 2px; }.migration-template-download b { font-size: 10.5px; }.migration-template-download small { color: #7f978b; font-size: 8.5px; }.migration-column-note { display: grid; gap: 3px; border-top: 1px solid #deebe3; padding-top: 12px; color: #7e9188; font-size: 9px; line-height: 1.55; }.migration-column-note strong { color: #426d5b; font-size: 9px; }.migration-dropzone { display: grid; min-height: 150px; place-items: center; align-content: center; gap: 6px; margin-top: 15px; border: 1.5px dashed #9fc9b0; border-radius: 10px; padding: 16px; color: #778d83; background: rgba(255,255,255,.66); text-align: center; transition: .15s; }.migration-dropzone:hover, .migration-dropzone.is-dragging { border-color: #2f936b; background: #eef9f2; }.migration-dropzone[aria-disabled=true] { cursor: not-allowed; opacity: .64; }.migration-dropzone strong { color: #2c4d40; font-size: 11px; }.migration-dropzone > span:not(.dropzone-icon) { color: #879b91; font-size: 9px; }.migration-dropzone small { color: #91a49a; font-size: 8.5px; }.migration-dropzone .button { min-height: 32px; font-size: 10px; }.migration-upload-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-top: 11px; }.migration-upload-actions .button { min-height: 37px; font-size: 10px; }.migration-upload-actions .button:disabled { color: #82998d; background: #e8f0eb; box-shadow: none; }.migration-upload-actions > span { max-width: 260px; color: #82958b; font-size: 9px; line-height: 1.45; text-align: right; }.migration-review { margin-top: 18px; border: 1px solid #d6e7dc; border-radius: 12px; padding: 17px; background: #fcfefd; }.migration-review[hidden] { display: none; }.migration-warnings { margin: 11px 0 14px; border-left: 3px solid #d9a04a; border-radius: 0 7px 7px 0; padding: 9px 12px; color: #966e2d; background: #fff9ed; font-size: 10px; line-height: 1.55; }.migration-warnings p { margin: 3px 0; }.migration-summary { display: flex; flex-wrap: wrap; gap: 10px 22px; align-items: center; margin: 14px 0; border: 1px solid #e0ece5; border-radius: 9px; padding: 11px 13px; color: #71877d; background: #f3f8f5; font-size: 10px; }.migration-summary strong { margin-right: 3px; color: #244c3b; font-size: 13px; }.migration-summary > span:last-child { margin-left: auto; color: #a67423; }.migration-review-table { width: 1735px !important; min-width: 1735px !important; }.migration-review-table th:nth-child(7) { width: 110px; }.migration-review-table th:nth-child(8) { width: 122px; }.migration-review-table th:nth-child(9) { width: 105px; }.migration-review-table th:nth-child(10), .migration-review-table th:nth-child(11) { width: 137px; }.migration-review-table th:nth-child(12) { width: 175px; }.migration-loose-units-input:disabled { color: #91a198; background: #f1f4f2; cursor: not-allowed; }.migration-confirm-card { display: grid; gap: 14px; margin-top: 14px; border: 1px solid #d9e9df; border-radius: 10px; padding: 14px; background: #f8fcf9; }.migration-review-check { display: flex !important; align-items: flex-start; gap: 10px; color: #55756a; font-size: 10px; line-height: 1.55; }.migration-review-check input { flex: 0 0 16px; width: 16px; height: 16px; margin: 1px 0 0; accent-color: #278365; }.migration-review-check b { color: #355f4d; }.migration-confirm-actions { display: flex; align-items: center; justify-content: space-between; gap: 14px; border-top: 1px solid #e0ece4; padding-top: 12px; }.migration-confirm-actions > span { max-width: 670px; color: #7b9086; font-size: 10px; line-height: 1.5; }.migration-confirm-actions .button { min-height: 40px; flex: 0 0 auto; font-size: 10px; }.migration-confirm-actions .button:disabled { color: #82998d; background: #e7efe9; box-shadow: none; }.migration-notice { margin-top: 16px; }
.csv-review { margin-top: 16px; border: 1px solid #dbeae2; border-radius: 11px; padding: 13px; background: #fcfefd; }.csv-review-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 10px; }.csv-review-heading .eyebrow { margin-bottom: 3px; }.csv-review-heading h3 { margin: 0; color: #274238; font-size: 12px; }.csv-review table { min-width: 580px; }.csv-review-footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 11px; color: #788e84; font-size: 9px; line-height: 1.4; }.csv-review-footer .button { min-height: 34px; flex: 0 0 auto; font-size: 10px; }.csv-review-footer .button:disabled { color: #779188; background: #e8efeb; box-shadow: none; }.intake-notice { display: grid; gap: 5px; margin-top: 15px; border-left: 3px solid #83c7a3; border-radius: 0 8px 8px 0; padding: 10px 12px; color: #748980; background: #f4faf6; font-size: 10px; line-height: 1.5; }.intake-notice strong { color: #346a56; }.intake-notice .link-button { justify-self: start; }.manual-receipt-form { width: min(100%, 620px); }

/* Forms and workspace views */
.collapsible-panel { margin: -8px 0 17px; }
.form-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; }
.form-actions { display: flex; grid-column: 1 / -1; justify-content: flex-end; gap: 9px; padding-top: 3px; }
.table-panel { padding: 0 20px 8px; }
.table-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 16px 0; }
.search-field { position: relative; width: min(100%, 320px); }
.search-field span { position: absolute; top: 50%; left: 10px; transform: translateY(-52%); color: #8ca097; font-size: 17px; }
.search-field input { height: 38px; padding-left: 31px; font-size: 12px; }
.two-column-form-layout { display: grid; grid-template-columns: minmax(0, .94fr) minmax(260px, .56fr); gap: 17px; max-width: 955px; }
.form-panel { padding: 25px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.form-hint { margin: -3px 0 1px; color: #788d84; font-size: 11px; line-height: 1.45; }
.receipt-aside, .pos-aside { display: grid; align-content: start; gap: 16px; }
.info-panel { min-height: 148px; padding: 25px; }
.info-orb { display: grid; width: 26px; height: 26px; place-items: center; margin-bottom: 14px; border-radius: 50%; color: #326f5b; background: #dff3e9; font-size: 13px; font-weight: 850; }
.info-orb--green { color: #fff; background: #3ca875; }
.info-panel p { margin: 8px 0 0; color: #72867e; font-size: 12px; line-height: 1.55; }
.receipt-checklist ul { display: grid; gap: 11px; padding: 0; margin: 13px 0 0; list-style: none; color: #61776e; font-size: 12px; }
.receipt-checklist li::before { content: "✓"; display: inline-grid; width: 16px; height: 16px; place-items: center; margin-right: 8px; border-radius: 50%; color: #2b8a64; background: #e8f6ee; font-size: 10px; font-weight: 900; }
.pos-layout { max-width: 900px; }
.sale-total { display: flex; align-items: baseline; justify-content: space-between; margin: 1px 0 -1px; border-top: 1px solid #eaf0ed; border-bottom: 1px solid #eaf0ed; padding: 16px 0; color: #60756d; font-size: 12px; }
.sale-total strong { color: #19352a; font-size: 25px; letter-spacing: -1px; }
.product-preview { min-height: 181px; }
.preview-empty { display: grid; place-items: center; gap: 6px; min-height: 105px; color: #94a49e; text-align: center; }
.preview-empty span { display: grid; width: 31px; height: 31px; place-items: center; border-radius: 8px; background: #f0f5f2; font-size: 16px; }
.preview-empty p { margin: 0; font-size: 11px; }
.preview-product { display: grid; gap: 5px; padding-top: 5px; }
.preview-product strong { font-size: 15px; }.preview-product span { color: #70857b; font-size: 11px; }.preview-product b { margin-top: 8px; color: var(--green-800); font-size: 21px; letter-spacing: -.7px; }
.alerts-page-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px; }
.detailed-alert-list { display: grid; }
.detail-alert { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; padding: 13px 0; border-top: 1px solid #eaf0ed; }
.detail-alert:first-child { border-top: 0; padding-top: 1px; }
.detail-alert h3 { font-size: 13px; }.detail-alert p { margin: 4px 0 0; color: #788c84; font-size: 11px; }.detail-alert > span:last-child { color: #9aac9f; font-size: 18px; }
.settings-card { display: flex; width: min(100%, 580px); align-items: center; gap: 15px; }.settings-card > .soft-badge { margin-left: auto; }.settings-card h2 { margin: 0 0 4px; font-size: 16px; }.settings-card p { margin: 0; color: #72867e; font-size: 11px; }
.settings-logo { display: grid; width: 46px; height: 46px; place-items: center; border-radius: 14px; color: #17684d; background: #c8edd8; font-size: 18px; font-weight: 850; }
.module-card { display: flex; width: min(100%, 650px); align-items: center; gap: 17px; }.module-card > div:nth-child(2) { flex: 1; }.module-card h2 { margin: 0; font-size: 17px; letter-spacing: -.4px; }.module-card p:not(.eyebrow) { margin: 7px 0 0; color: #72867e; font-size: 12px; line-height: 1.5; }.module-icon { display: grid; width: 43px; height: 43px; place-items: center; border-radius: 13px; color: #2e815f; background: #e0f3e8; font-size: 18px; font-weight: 850; }

/* Toast and responsive */
.toast-region { position: fixed; z-index: 30; right: 20px; bottom: 20px; display: grid; width: min(380px, calc(100vw - 40px)); gap: 9px; }
.toast { display: flex; align-items: flex-start; gap: 10px; border: 1px solid #d9e9e1; border-radius: 11px; padding: 12px; color: #315247; background: #fff; box-shadow: var(--shadow); font-size: 12px; line-height: 1.4; animation: toast-in .25s ease; }
.toast::before { content: "✓"; display: grid; width: 18px; height: 18px; flex: 0 0 18px; place-items: center; border-radius: 50%; color: #fff; background: #3aa878; font-size: 11px; font-weight: 850; }.toast--error::before { content: "!"; background: #d05a5a; }
@keyframes toast-in { from { opacity: 0; transform: translateY(9px); } }
.sidebar-scrim { display: none; }

@media (max-width: 1180px) {
  .metric-grid--six { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dashboard-board { grid-template-columns: 1fr; }
  .dashboard-board-side { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
  .side-stat-grid { grid-column: 1 / -1; }.highest-sales-panel { min-height: 194px; }.side-bottom-grid { min-height: 194px; }
  .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 940px) {
  .dashboard-board-side { grid-template-columns: 1fr; }.side-stat-grid { grid-column: auto; }.side-bottom-grid { max-width: 580px; }
  .reference-row--movement, .reference-row--activity { grid-template-columns: 1fr; }.reference-row--performance { grid-template-columns: 1fr 1fr; }.refill-panel--full .followup-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }.refill-panel--full .followup-row:nth-child(2) { border-right: 0; }.refill-panel--full .followup-row { border-bottom: 1px solid #edf2ef; padding-bottom: 9px; }.refill-panel--full .followup-row:nth-child(n + 3) { border-bottom: 0; }
}
@media (max-width: 800px) {
  .login-layout { grid-template-columns: 1fr; }.login-intro { display: none; }.login-panel { min-height: 100vh; }.mobile-brand { display: inline-flex; }
  .sidebar { width: min(286px, 84vw); transform: translateX(-101%); transition: transform .2s ease; box-shadow: 16px 0 45px rgba(0,0,0,.16); }.sidebar.is-open { transform: none; }.close-sidebar { display: inline-grid; color: #b4dccc; }.sidebar-scrim { position: fixed; z-index: 10; inset: 0; background: rgba(5, 30, 23, .36); }.sidebar-scrim.is-open { display: block; }.workspace { width: 100%; margin-left: 0; }.menu-button { display: inline-grid; }.topbar { height: 58px; }.connection-pill, .topbar-context, .support-link, .plan-pill { display: none; }.content { padding-top: 22px; }.dashboard-heading, .view-heading { align-items: flex-start; flex-direction: column; gap: 14px; }.dashboard-heading-actions, .heading-actions { width: 100%; }.dashboard-heading-actions .button, .heading-actions .button { flex: 1; }.two-column-form-layout, .alerts-page-grid { grid-template-columns: 1fr; }.receipt-aside, .pos-aside { grid-template-columns: repeat(2, minmax(0, 1fr)); }.info-panel { min-height: 0; }
}
@media (max-width: 540px) {
  .topbar { padding-inline: 17px; }.topbar-date { display: none; }.pharmacy-switcher { min-width: 0; max-width: 132px; }.pharmacy-switcher > span:nth-child(2) { min-width: 0; }.pharmacy-switcher strong { display: block; overflow: hidden; max-width: 80px; text-overflow: ellipsis; white-space: nowrap; }.pharmacy-switcher small { display: none; }.content { padding: 20px 14px 42px; }.dashboard-heading h1, .view-heading h1 { font-size: 27px; }.dashboard-heading > div > p:not(.eyebrow), .view-heading > div > p:not(.eyebrow) { line-height: 1.5; }.metric-grid--six, .metric-grid--reference { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }.metric-card { min-height: 110px; padding: 11px; }.metric-card strong { font-size: 18px; }.metric-card small { font-size: 8px; }.metric-spark { right: 10px; bottom: 10px; transform: scale(.87); transform-origin: right bottom; }.panel, .form-panel { padding: 14px; }.movement-panel { min-height: 280px; }.chart-controls { gap: 6px; }.chart-legend { display: none; }.movement-chart { height: 166px; }.dashboard-detail-grid, .side-bottom-grid, .reference-row--performance { grid-template-columns: 1fr; }.side-bottom-grid { max-width: none; }.refill-panel--full .followup-list { grid-template-columns: 1fr; }.refill-panel--full .followup-row { border-right: 0; }.stock-health-panel { min-height: auto; }.stock-donut { margin-bottom: 4px; }.form-grid, .form-row, .receipt-aside, .pos-aside { grid-template-columns: 1fr; }.form-actions { justify-content: stretch; }.form-actions .button { flex: 1; }.profile-button i { display: none; }.topbar-actions { gap: 4px; }.table-toolbar { align-items: flex-start; flex-direction: column; }.search-field { width: 100%; }.settings-card { align-items: flex-start; flex-wrap: wrap; }.settings-card > .soft-badge { margin-left: 61px; margin-top: -15px; }.login-panel { padding-inline: 23px; }
}

@media (max-width: 940px) {
  .receive-workspace { grid-template-columns: 1fr; }.receive-mode-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }.mode-rail-title, .mode-rail-help { grid-column: 1 / -1; }.mode-rail-help { display: none; }
}
@media (max-width: 800px) {
  .receive-heading { align-items: flex-start; flex-direction: column; gap: 12px; }
}
@media (max-width: 540px) {
  .receive-heading h1 { font-size: 27px; }.receive-mode-rail { grid-template-columns: 1fr; }.mode-rail-title { grid-column: auto; }.supplier-inline { grid-template-columns: 1fr; }.csv-review-footer { display: grid; align-items: stretch; }.csv-review-footer .button { width: 100%; }.intake-dropzone { min-height: 174px; }.intake-panel-heading { align-items: flex-start; flex-direction: column; }.intake-steps li { min-width: 82px; }.intake-steps li:not(:last-child)::after { width: 18px; }
}

/* Distributor intake keeps the full delivery in one editable review workspace. */
.receive-workspace { grid-template-columns: minmax(0, 1fr); gap: 18px; }
.receive-mode-rail { grid-template-columns: repeat(4, minmax(0, 1fr)); padding: 12px; gap: 9px; }
.mode-rail-title { grid-column: 1 / -1; margin-bottom: 2px; }
.mode-rail-help { display: none; }
.receive-canvas, .intake-panel { min-width: 0; }
.intake-mode { min-height: 70px; }
.intake-mode strong { white-space: normal; line-height: 1.35; }
.supplier-inline--invoice { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(145px, .8fr); }
.csv-review { padding: 17px; }
.csv-source-hint { max-width: 740px; margin: 7px 0 0; color: #7d9188; font-size: 10px; line-height: 1.5; }
.stock-review-summary { display: flex; flex-wrap: wrap; gap: 12px 23px; margin: 15px 0; border: 1px solid #e1ece6; border-radius: 9px; padding: 12px 14px; color: #71877c; background: #f3f8f5; font-size: 11px; }
.stock-review-summary strong { margin-right: 3px; color: #244c3b; font-size: 13px; }
#onlineReviewCount { margin-left: auto; color: #a67423; }
.stock-review-scroll { position: relative; max-height: 650px; border: 1px solid #e1ebe5; border-radius: 9px; overscroll-behavior-x: contain; }
.csv-review .stock-review-table { width: 1635px; min-width: 1635px; table-layout: fixed; white-space: normal; border-collapse: separate; border-spacing: 0; }
.stock-review-table th { position: sticky; top: 0; z-index: 3; height: 45px; border-bottom: 1px solid #dbe7df; padding: 12px 9px; color: #688276; background: #eef5f1; font-size: 9px; letter-spacing: .6px; white-space: nowrap; }
.stock-review-table td { padding: 13px 9px; vertical-align: top; background: #fff; }
.stock-review-table th:first-child, .stock-review-table td:first-child { position: sticky; left: 0; width: 50px; z-index: 2; padding-left: 12px; text-align: center; }
.stock-review-table th:first-child { z-index: 4; }
.stock-review-table th:nth-child(2), .stock-review-table td:nth-child(2) { position: sticky; left: 50px; width: 255px; z-index: 2; border-right: 1px solid #dde9e1; box-shadow: 4px 0 6px -6px #527b64; }
.stock-review-table th:nth-child(2) { z-index: 4; }
.stock-review-table th:nth-child(3) { width: 112px; }
.stock-review-table th:nth-child(4) { width: 125px; }
.stock-review-table th:nth-child(5) { width: 148px; }
.stock-review-table th:nth-child(6) { width: 88px; }
.stock-review-table th:nth-child(7) { width: 125px; }
.stock-review-table th:nth-child(8) { width: 105px; }
.stock-review-table th:nth-child(9), .stock-review-table th:nth-child(10) { width: 137px; }
.stock-review-table th:nth-child(11) { width: 175px; }
.stock-review-table th:last-child { width: 78px; padding-right: 9px; }
.stock-review-table td:last-child { padding-right: 9px; text-align: center; }
.stock-review-table input { width: 100%; min-width: 0; height: 36px; border-radius: 6px; padding: 0 8px; color: #294c3b; font-size: 11px; }
.stock-review-table td:nth-child(2) input { font-weight: 700; }
.stock-review-table .has-review-issues td:nth-child(2) { background: #fffcf5; }
.stock-row-serial { padding-top: 23px !important; color: #7b9386; font-size: 11px; font-weight: 700; }
.stock-cell-note { display: block; margin-top: 6px; color: #8b9c93; font-size: 8px; line-height: 1.5; }
.stock-cell-note--warning { color: #b27c26; }
.stock-row-issues { display: block; margin-top: 6px; color: #b37c2b; font-size: 9px; line-height: 1.5; }
.stock-row-ready { display: block; margin-top: 6px; color: #4b9773; font-size: 9px; }
.stock-import-notes { margin-top: 7px; color: #8c794e; font-size: 9px; line-height: 1.5; }
.stock-import-notes summary { cursor: pointer; font-size: 8px; }
.stock-import-notes > span { display: block; padding-top: 4px; }
.stock-source-name { margin-top: 6px; color: #8b9c93; font-size: 8px; line-height: 1.5; }
.stock-source-name summary { cursor: pointer; }
.stock-source-name > span { display: block; padding-top: 4px; color: #748c7e; }
.stock-review-workspace { margin-top: 20px; padding-top: 20px; border-top: 1px solid #e1ece5; min-width: 0; }
.offline-service-status { margin: 0 0 16px; padding: 12px 14px; border: 1px solid #dae9e0; border-radius: 9px; color: #658271; background: #f3f9f5; font-size: 11px; line-height: 1.6; }
.offline-invoice-details { margin: 0 0 16px; border: 1px solid #d8e8df; border-radius: 11px; padding: 15px; background: linear-gradient(135deg, #f8fcf9, #eff8f2); }.offline-invoice-details[hidden] { display: none; }.offline-invoice-details-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }.offline-invoice-details-heading h3 { margin: 0; color: #29513f; font-size: 13px; letter-spacing: -.2px; }.offline-invoice-details-heading .eyebrow { margin-bottom: 4px; }.offline-invoice-date-status { max-width: 420px; margin: 0; color: #678277; font-size: 10px; line-height: 1.55; text-align: right; }.offline-invoice-details .supplier-inline { margin: 14px 0 0; }.offline-invoice-details .supplier-inline label > span { display: block; margin-bottom: 5px; color: #547268; font-size: 10px; font-weight: 760; }
.offline-check { display: flex !important; align-items: flex-start; gap: 10px; color: #55745f; font-size: 11px; font-weight: 500; line-height: 1.6; }
.offline-check > input[type=checkbox] { flex: 0 0 16px; width: 16px; height: 16px; margin: 2px 0 0; padding: 0; accent-color: #278365; }
.offline-consent { margin: 17px 0; padding: 13px 15px; border: 1px solid #eadfc8; border-radius: 9px; background: #fffbf2; color: #8c754a; }
.offline-extract-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.offline-extract-actions .button { min-height: 40px; font-size: 11px; }
.offline-extract-actions .button:disabled { color: #84978c; border-color: #dfe8e2; background: #edf3ef; box-shadow: none; cursor: not-allowed; }
.offline-local-preview { margin: 16px 0; overflow: hidden; border: 1px solid #dce8df; border-radius: 10px; background: #f6faf7; }
.offline-local-preview > img { display: block; width: 100%; max-height: 340px; object-fit: contain; padding: 12px; background: #edf3ef; }
.offline-local-preview > img[hidden] { display: none; }
.offline-local-pdf { display: grid; justify-items: center; gap: 7px; padding: 24px 15px; color: #6b8474; font-size: 11px; }
.offline-local-pdf[hidden] { display: none; }
.offline-local-pdf > span { color: #458b70; font-size: 34px; }
.offline-local-pdf > small { color: #90a195; font-size: 10px; }
.offline-preview-caption { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 15px; border-top: 1px solid #dce8df; color: #68806f; font-size: 10px; }
.offline-preview-caption > span { max-width: 70%; overflow-wrap: anywhere; }
.offline-preview-caption .link-button { font-size: 10px; }
.offline-review-meta { display: grid; gap: 13px; margin: 14px 0 17px; border: 1px solid #e3e8d8; border-radius: 9px; padding: 15px; background: #fafcf5; }
.offline-review-meta[hidden] { display: none; }
.offline-buyer-context { display: grid; gap: 5px; padding-bottom: 11px; border-bottom: 1px solid #e5ebdf; color: #7e927c; font-size: 11px; }
.offline-buyer-context strong { color: #486d50; font-size: 10px; }
.offline-draft-warnings { border-left: 3px solid #d8a34c; border-radius: 0 7px 7px 0; padding: 7px 11px; background: #fff8e9; color: #a17b39; font-size: 10px; line-height: 1.6; }
.offline-draft-warnings p { margin: 4px 0; }
.stock-invoice-evidence { margin-top: 6px; color: #7b8f83; font-size: 8px; line-height: 1.6; }
.stock-invoice-evidence summary { cursor: pointer; color: #629078; }
.stock-invoice-evidence > span { display: block; margin-top: 4px; overflow-wrap: anywhere; }
.stock-review-table .loose-sale-control { display: inline-flex; height: 36px; align-items: center; gap: 6px; color: #3b6e55; font-size: 11px; font-weight: 600; }
.loose-sale-control input[type=checkbox] { width: 15px; height: 15px; margin: 0; accent-color: #268063; }
.loose-sale-control.is-unavailable { opacity: .35; }
.stock-money-input { position: relative; }
.stock-money-input > span { position: absolute; top: 10px; left: 8px; z-index: 1; color: #91a095; font-size: 11px; }
.stock-money-input > input { padding-left: 21px; }
.stock-review-table input[data-stock-field=tax_override_reason] { margin-top: 8px; }
.migration-review-table input[data-migration-field=tax_override_reason] { margin-top: 8px; }
.stock-remove-row { width: 30px; height: 34px; border: 1px solid #edd9d3; border-radius: 7px; color: #b36d60; background: #fff7f5; font-size: 21px; }
.stock-remove-row:hover { border-color: #d99c8d; color: #a43e2c; background: #ffebe5; }
.csv-exclusions { margin-top: 11px; border-radius: 7px; padding: 10px 12px; color: #728c7e; background: #f1f6f3; font-size: 10px; }
.stock-confirm-error { margin: 12px 0 0; border: 1px solid #ebc8bd; border-radius: 7px; padding: 11px 12px; color: #ac4c37; background: #fff4ef; font-size: 11px; line-height: 1.5; }
.csv-review-footer { padding-top: 5px; font-size: 11px; }
.csv-review-footer .button { min-height: 42px; padding-inline: 18px; font-size: 11px; }

/* A single, batch-wise inventory across all stock-receipt routes. */
.inventory-overview { display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; margin: 0 0 20px; border: 1px solid #dce9e3; border-radius: 12px; padding: 15px 18px; color: #758b7f; background: #f8fcf9; font-size: 11px; }
.inventory-overview b { margin-right: 4px; color: #244c3b; font-size: 17px; }
#inventoryAccessNote { margin-left: auto; color: #5e7e6b; font-size: 10px; }
.inventory-panel { overflow: hidden; }
.inventory-toolbar { gap: 16px; }
.inventory-toolbar .search-field { width: min(440px, 55%); }
.inventory-filter { display: flex; align-items: center; gap: 10px; margin-left: auto; color: #6e8678; font-size: 11px; }
.inventory-filter select { width: 220px; height: 38px; border-radius: 8px; padding: 0 12px; color: #2d5843; background: #f9fcfa; font-size: 11px; }
.inventory-result-line { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; padding: 0 21px 13px; color: #8a9d92; font-size: 10px; }
.inventory-result-line > span:first-child { color: #567562; font-weight: 600; }
.inventory-scroll { max-height: 690px; border-top: 1px solid #e2ece5; border-bottom: 1px solid #e2ece5; overscroll-behavior-x: contain; }
.inventory-table { width: 1594px; min-width: 1594px; table-layout: fixed; border-collapse: separate; border-spacing: 0; white-space: normal; }
.inventory-table th { position: sticky; top: 0; z-index: 2; height: 47px; padding: 12px; color: #698172; background: #edf5ef; border-bottom: 1px solid #dce9df; font-size: 9px; letter-spacing: .5px; white-space: nowrap; }
.inventory-table td { height: 98px; padding: 15px 12px; color: #3c5c49; background: #fff; border-bottom: 1px solid #edf2ee; vertical-align: top; font-size: 11px; line-height: 1.5; }
.inventory-table th:first-child, .inventory-table td:first-child { position: sticky; left: 0; z-index: 1; width: 50px; text-align: center; }
.inventory-table th:first-child { z-index: 3; }
.inventory-table th:nth-child(2), .inventory-table td:nth-child(2) { position: sticky; left: 50px; z-index: 1; width: 265px; border-right: 1px solid #e0eae3; box-shadow: 5px 0 8px -9px #345f45; }
.inventory-table th:nth-child(2) { z-index: 3; }
.inventory-table th:nth-child(3) { width: 105px; }
.inventory-table th:nth-child(4) { width: 115px; }
.inventory-table th:nth-child(5) { width: 120px; }
.inventory-table th:nth-child(6) { width: 150px; }
.inventory-table th:nth-child(7) { width: 115px; }
.inventory-table th:nth-child(8) { width: 135px; }
.inventory-table th:nth-child(9), .inventory-table th:nth-child(10) { width: 137px; }
.inventory-table th:nth-child(11) { width: 85px; }
.inventory-table th:last-child { width: 80px; }
.inventory-table tr:hover td { background: #fbfdfb; }
.inventory-medicine { display: block; color: #254b38; line-height: 1.45; }
.inventory-serial { color: #83998a !important; font-weight: 700; }
.inventory-pack { white-space: nowrap; color: #355c46; }
.inventory-source-name { margin-top: 5px; color: #8c9e93; font-size: 8px; line-height: 1.5; }
.inventory-source-name summary { cursor: pointer; }
.inventory-source-name > span { display: block; padding-top: 4px; color: #6f8979; }
.inventory-subline { display: block; margin-top: 5px; color: #8c9e93; font-size: 9px; line-height: 1.5; }
.inventory-warning { display: block; margin-top: 5px; color: #ba7738; font-size: 9px; }
.inventory-reorder { display: inline-block; margin-top: 5px; padding: 2px 6px; color: #b27e2c; background: #fff5dd; border-radius: 5px; font-size: 8px; }
.inventory-edit-button { display: block; margin-top: 8px; padding: 0; color: #2c8566; background: none; border: 0; font-size: 9px; font-weight: 600; }
.inventory-edit-button:hover { text-decoration: underline; }
.inventory-loose { display: inline-block; padding: 5px 8px; border: 1px solid #e0e7e2; border-radius: 6px; color: #7b8c80; background: #f5f7f5; white-space: nowrap; font-size: 9px; font-weight: 600; }
.inventory-loose--allowed { border-color: #c9e7d7; color: #2c8563; background: #edf9f1; }
.inventory-remove-button { display: inline-grid; place-items: center; width: 30px; height: 30px; border: 1px solid #edd9d3; border-radius: 7px; color: #b36d60; background: #fff7f5; font-size: 20px; }
.inventory-remove-button:disabled { cursor: not-allowed; opacity: .35; }
.inventory-remove-button:not(:disabled):hover { background: #ffebe5; border-color: #d99c8d; }
.inventory-footnote { margin: 0; padding: 14px 21px; color: #8a9d91; font-size: 10px; line-height: 1.6; }
.inventory-dialog { width: min(590px, calc(100vw - 32px)); max-height: calc(100vh - 40px); overflow-y: auto; padding: 25px; color: #244936; background: #fff; border: 1px solid #d9e7de; border-radius: 18px; box-shadow: 0 25px 90px #183e3330; }
.inventory-dialog::backdrop { background: #102f2a6e; backdrop-filter: blur(3px); }
.inventory-dialog--small { width: min(460px, calc(100vw - 32px)); }
.inventory-dialog .panel-heading { margin: 0; align-items: flex-start; }
.inventory-dialog-context { margin: 0; padding: 11px 13px; border-radius: 8px; color: #48715c; background: #f1f7f3; font-size: 12px; font-weight: 600; }
.inventory-dialog textarea { width: 100%; resize: vertical; border: 1px solid #dbe6de; border-radius: 8px; padding: 10px; color: #315943; background: #fbfdfb; font: inherit; font-size: 12px; }
.inventory-editor-loose { display: flex !important; flex-wrap: wrap; align-items: center; gap: 9px; }
.inventory-editor-loose input { width: 16px; height: 16px; margin: 0; accent-color: #238568; }
.inventory-editor-loose small { flex: 1 0 100%; font-weight: 400; color: #8a9d91; }
.inventory-editor-loose.is-unavailable { opacity: .45; }
.button--danger { color: #fff; background: #b85946; border: 1px solid #b85946; }
.button--danger:hover { background: #a84d3a; }
@media (max-width: 800px) { #inventoryAccessNote { flex-basis: 100%; margin-left: 0; } }
@media (max-width: 540px) { .inventory-toolbar .search-field { width: 100%; }.inventory-filter { width: 100%; justify-content: space-between; margin-left: 0; }.inventory-filter select { width: min(240px, 80%); }.inventory-result-line { padding-inline: 14px; }.inventory-overview { padding: 12px; gap: 9px 17px; }.inventory-dialog { padding: 18px; }.inventory-footnote { padding-inline: 14px; } }
@media (max-width: 1100px) {
  .receive-mode-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .supplier-inline--invoice { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .supplier-inline--invoice label:first-child { grid-column: 1 / -1; }
}
@media (max-width: 540px) {
  .receive-mode-rail { gap: 5px; padding: 9px; }
  .intake-mode { gap: 6px; padding: 6px; }
  .intake-mode-icon { display: none; }
  .intake-mode b { display: none; }
  .intake-mode small { white-space: normal; line-height: 1.4; }
  .supplier-inline--invoice { grid-template-columns: minmax(0, 1fr); }
  .supplier-inline--invoice label:first-child { grid-column: auto; }
  .csv-review { margin-inline: -7px; padding: 10px; }
  .stock-review-table th:nth-child(2), .stock-review-table td:nth-child(2) { width: 220px; }
  .stock-review-summary { gap: 9px 16px; padding: 11px; }
  #onlineReviewCount { width: 100%; margin-left: 0; }
  .offline-invoice-details-heading { flex-direction: column; gap: 7px; }.offline-invoice-date-status { max-width: none; text-align: left; }
}

@media (max-width: 940px) {
  .migration-start-grid { grid-template-columns: 1fr; }
  .migration-upload-actions > span { max-width: none; text-align: left; }
  .migration-confirm-actions { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 540px) {
  .migration-template-card, .migration-upload-card, .migration-review { padding: 13px; }
  .migration-upload-actions .button, .migration-confirm-actions .button { width: 100%; }
  .migration-summary { gap: 8px 13px; padding: 10px; }
  .migration-summary > span:last-child { flex-basis: 100%; margin-left: 0; }
  .migration-dropzone { min-height: 138px; padding: 13px; }
}

/* Existing Stock keeps template, upload and the safety workflow visible together. */
.migration-start-grid { grid-template-columns: minmax(0, 1.52fr) minmax(235px, .82fr); gap: 16px; align-items: stretch; }
.migration-workspace-card, .migration-workflow-card { min-width: 0; border: 1px solid #d8e8df; border-radius: 13px; background: #fcfefd; }
.migration-workspace-card { padding: clamp(16px, 2vw, 21px); background: linear-gradient(145deg, #f7fcf9, #fff); }
.migration-template-topline { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: start; }
.migration-template-topline .eyebrow, .migration-workflow-card .eyebrow { margin: 0 0 5px; }
.migration-template-topline h3, .migration-upload-heading h3, .migration-workflow-card h3 { margin: 0; color: #1d3c30; font-size: 16px; letter-spacing: -.38px; }
.migration-template-topline p:not(.eyebrow), .migration-upload-heading p { max-width: 490px; margin: 6px 0 0; color: #768c82; font-size: 10px; line-height: 1.55; }
.migration-template-download--compact { flex: 0 0 auto; min-width: 142px; margin: 0; padding: 9px 10px; }
.migration-template-download--compact > span:first-child { width: 25px; height: 25px; font-size: 16px; }
.migration-column-note--compact { grid-template-columns: minmax(94px, auto) minmax(0, 1fr); column-gap: 11px; row-gap: 3px; margin-top: 14px; padding-top: 11px; }
.migration-column-note--compact > strong { grid-row: 1 / span 2; align-self: start; border-radius: 6px; padding: 5px 6px; color: #34705a; background: #e9f6ee; text-align: center; }
.migration-upload-section { margin-top: 16px; border-top: 1px solid #dfece4; padding-top: 15px; }
.migration-upload-section .migration-card-kicker { margin-bottom: 8px; }
.migration-upload-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.migration-upload-heading .soft-badge { flex: 0 0 auto; margin-top: 1px; }
.migration-upload-section .migration-dropzone { min-height: 128px; margin-top: 13px; padding: 13px; }
.migration-upload-section .migration-upload-actions { margin-top: 9px; }
.migration-workflow-card { display: flex; flex-direction: column; padding: 19px 18px 16px; color: #70877b; background: linear-gradient(160deg, #f1faf4, #fcfefa); }
.migration-workflow-card > h3 { margin-bottom: 15px; font-size: 17px; }
.migration-workflow-list { display: grid; gap: 13px; margin: 0; padding: 0; list-style: none; }
.migration-workflow-list li { display: grid; grid-template-columns: 25px minmax(0, 1fr); gap: 9px; align-items: start; }
.migration-workflow-list li > span { display: grid; width: 25px; height: 25px; place-items: center; border: 1px solid #a7d6b9; border-radius: 50%; color: #277759; background: #e7f6ed; font-size: 10px; font-weight: 850; }
.migration-workflow-list strong { display: block; color: #315b48; font-size: 10.5px; }
.migration-workflow-list p { margin: 3px 0 0; color: #7a9086; font-size: 9.5px; line-height: 1.52; }
.migration-workflow-note { margin: auto 0 0; border-top: 1px solid #dbeae0; padding-top: 12px; color: #547566; font-size: 9.5px; line-height: 1.5; }
@media (max-width: 940px) {
  .migration-start-grid { grid-template-columns: 1fr; }
  .migration-workflow-card { min-height: 0; }
  .migration-workflow-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
  .migration-workflow-list li { grid-template-columns: 22px minmax(0, 1fr); gap: 7px; }
  .migration-workflow-list li > span { width: 22px; height: 22px; }
  .migration-workflow-note { margin-top: 13px; }
}
@media (max-width: 620px) {
  .migration-template-topline { grid-template-columns: 1fr; }
  .migration-template-download--compact { width: 100%; }
  .migration-column-note--compact { grid-template-columns: 1fr; }
  .migration-column-note--compact > strong { width: fit-content; grid-row: auto; }
  .migration-upload-heading { align-items: flex-start; flex-direction: column; gap: 6px; }
  .migration-workflow-list { grid-template-columns: 1fr; }
}

/* Manual stock entry mirrors the review surface without ever saving on input. */
.manual-entry-shell { display: grid; gap: 16px; }
.manual-invoice-card, .manual-entry-card, .manual-review-card { min-width: 0; border: 1px solid #d8e8df; border-radius: 13px; padding: clamp(15px, 2vw, 21px); background: #fcfefd; }
.manual-invoice-card { background: linear-gradient(142deg, #f4fbf6, #fff); }
.manual-review-card { background: linear-gradient(145deg, #fffefb, #fbfdfb); }
.manual-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; }
.manual-card-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
.manual-card-actions .button { min-height: 34px; padding-inline: 10px; font-size: 10px; }
.manual-card-heading .eyebrow { margin: 0 0 5px; }
.manual-card-heading h3 { margin: 0; color: #1e4232; font-size: 16px; letter-spacing: -.35px; }
.manual-card-heading p:not(.eyebrow) { max-width: 630px; margin: 6px 0 0; color: #758d80; font-size: 10px; line-height: 1.55; }
.manual-card-heading > .button { flex: 0 0 auto; min-height: 36px; padding-inline: 12px; font-size: 10px; }
.manual-invoice-grid { display: grid; grid-template-columns: minmax(210px, 1.35fr) minmax(180px, 1fr) minmax(150px, .7fr); gap: 12px; margin-top: 16px; }
.manual-invoice-grid label { display: grid; gap: 6px; color: #527063; font-size: 10px; font-weight: 750; }
.manual-invoice-grid label > span em { color: #b76a57; font-style: normal; }
.manual-invoice-grid input { width: 100%; height: 39px; border: 1px solid #d7e6dc; border-radius: 8px; padding: 0 10px; color: #244d3a; background: #fff; font: inherit; font-size: 11px; }
.manual-invoice-grid input:focus { outline: 2px solid #a9d9bd; outline-offset: 1px; border-color: #79b891; }
.manual-date-help { margin: 10px 0 0; color: #7e9689; font-size: 9px; line-height: 1.55; }
.manual-entry-card { overflow: hidden; }
.manual-entry-scroll { position: relative; max-height: 540px; margin: 16px -1px 0; border: 1px solid #e1ece5; border-radius: 9px; overflow-x: auto; }
.manual-entry-scroll::after { position: absolute; right: 8px; bottom: 7px; z-index: 5; content: "↔ Scroll for all columns"; border: 1px solid #d5e5da; border-radius: 12px; padding: 3px 7px; color: #6b8879; background: rgb(255 255 255 / 92%); box-shadow: 0 2px 7px rgb(37 73 54 / 8%); font-size: 8px; font-weight: 750; letter-spacing: .1px; pointer-events: none; }
.manual-entry-table { width: 1810px; min-width: 1810px; max-width: 1810px; table-layout: fixed; white-space: normal; border-collapse: separate; border-spacing: 0; }
.manual-entry-table th:nth-child(1), .manual-entry-table td:nth-child(1) { width: 50px; }
.manual-entry-table th:nth-child(2), .manual-entry-table td:nth-child(2) { width: 248px; min-width: 248px; max-width: 248px; white-space: normal; overflow-wrap: anywhere; }
.manual-entry-table th:nth-child(3) { width: 106px; }
.manual-entry-table th:nth-child(4) { width: 118px; }
.manual-entry-table th:nth-child(5) { width: 142px; }
.manual-entry-table th:nth-child(6) { width: 79px; }
.manual-entry-table th:nth-child(7) { width: 104px; }
.manual-entry-table th:nth-child(8) { width: 185px; }
.manual-entry-table th:nth-child(9) { width: 102px; }
.manual-entry-table th:nth-child(10), .manual-entry-table th:nth-child(11) { width: 132px; }
.manual-entry-table th:nth-child(12) { width: 185px; }
.manual-entry-table th:nth-child(13) { width: 75px; }
.manual-entry-table abbr { border-bottom: 1px dotted currentColor; cursor: help; text-decoration: none; }
.manual-entry-table input[data-manual-field=tax_override_reason] { margin-top: 8px; }
.manual-entry-table .stock-remove-row:disabled { cursor: not-allowed; opacity: .35; }
.manual-row-status { min-width: 0; max-width: 228px; }
.manual-row-status .stock-row-issues, .manual-row-status .manual-row-starter, .manual-row-issue-details { overflow-wrap: anywhere; word-break: normal; white-space: normal; }
.manual-row-starter { display: block; margin-top: 6px; color: #84998e; font-size: 9px; line-height: 1.5; }
.manual-row-issue-details { margin-top: 5px; color: #9b7130; font-size: 8px; line-height: 1.5; }
.manual-row-issue-details summary { cursor: pointer; color: #9b7130; font-weight: 720; }
.manual-row-issue-details > span { display: block; padding-top: 4px; }
.manual-loose-units-input:disabled { color: #94a399; background: #f0f3f1; }
.manual-entry-actions, .manual-confirm-card { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; }
.manual-entry-actions > span, .manual-confirm-card .migration-confirm-actions > span { max-width: 640px; color: #748c80; font-size: 10px; line-height: 1.55; }
.manual-entry-actions .button, .manual-confirm-card .button { min-height: 40px; font-size: 10px; }
.manual-review-summary { display: flex; flex-wrap: wrap; gap: 10px 22px; align-items: center; margin-top: 15px; border: 1px solid #e1e9dc; border-radius: 9px; padding: 12px 14px; color: #70877a; background: #f7faf5; font-size: 10px; }
.manual-review-summary strong { display: block; margin-bottom: 2px; color: #2f5a46; font-size: 17px; line-height: 1; }
.manual-review-summary > span:last-child { margin-left: auto; color: #567866; font-weight: 720; }
.manual-entry-notice { margin-top: 0; }
@media (max-width: 840px) {
  .manual-invoice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .manual-invoice-grid label:first-child { grid-column: 1 / -1; }
}
@media (max-width: 540px) {
  .manual-invoice-card, .manual-entry-card, .manual-review-card { padding: 13px; }
  .manual-card-heading { align-items: flex-start; flex-direction: column; gap: 9px; }
  .manual-card-actions { width: 100%; justify-content: space-between; }
  .manual-card-heading > .button { width: 100%; }
  .manual-invoice-grid { grid-template-columns: 1fr; gap: 10px; }
  .manual-invoice-grid label:first-child { grid-column: auto; }
  .manual-entry-actions, .manual-confirm-card { align-items: stretch; flex-direction: column; }
  .manual-entry-actions .button, .manual-confirm-card .button { width: 100%; }
  .manual-review-summary { gap: 9px 15px; padding: 11px; }
  .manual-review-summary > span:last-child { flex-basis: 100%; margin-left: 0; }
}
