:root{color-scheme:light;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;--brand-50: #effaf8;--brand-100: #d7f0ec;--brand-500: #149488;--brand-600: #0e7c72;--brand-700: #0c635b;--brand-ink: #06413c;--canvas: #f3f6f5;--surface: #ffffff;--line: #e3e9e7;--line-strong: #cfd9d6;--ink: #1a2422;--ink-mid: #465451;--ink-subtle: #6d7d79;--danger: #c0392f;--danger-bg: #fdf0ee;--warn-bg: #fff6e6;--warn-line: #efd39a;--ok: #177245;--ok-bg: #ecf7f0;--info-bg: #edf3fd;--info-line: #c3d5f2;--radius: 12px;--radius-sm: 8px;--shadow-card: 0 1px 2px rgba(16, 36, 32, .05), 0 4px 16px rgba(16, 36, 32, .05);--shadow-pop: 0 8px 30px rgba(10, 40, 35, .16);--sidebar-w: 250px;--sidebar-bg: #0d3733;--sidebar-bg-soft: #114540;--sidebar-ink: #b9cfcb;--sidebar-ink-strong: #f2f8f7}*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}.page-loading{padding:2rem;color:var(--ink-subtle)}.shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-w);background:var(--sidebar-bg);color:var(--sidebar-ink);display:flex;flex-direction:column;overflow-y:auto;z-index:40;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}.sidebar-brand{display:flex;align-items:center;gap:.65rem;padding:1.1rem 1.15rem .9rem}.brand-mark{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,var(--brand-500),var(--brand-700));color:#fff;display:grid;place-items:center;flex-shrink:0}.brand-name{font-weight:700;font-size:1.02rem;color:var(--sidebar-ink-strong);letter-spacing:.01em;line-height:1.2}.tenant-name{display:block;font-size:.74rem;color:var(--sidebar-ink);font-weight:500;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar nav{flex:1;padding:.25rem .7rem 1rem}.nav-group{margin-top:.9rem}.nav-group-label{display:block;padding:0 .5rem .3rem;font-size:.66rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#b9cfcb9e}.sidebar nav a{display:flex;align-items:center;gap:.6rem;padding:.44rem .55rem;margin-bottom:1px;border-radius:8px;color:var(--sidebar-ink);text-decoration:none;font-size:.875rem;font-weight:500;transition:background .12s ease,color .12s ease}.sidebar nav a svg{flex-shrink:0;opacity:.75}.sidebar nav a:hover{background:#ffffff12;color:var(--sidebar-ink-strong)}.sidebar nav a.active{background:var(--brand-600);color:#fff}.sidebar nav a.active svg{opacity:1}.sidebar-foot{padding:.8rem 1.15rem 1rem;border-top:1px solid rgba(255,255,255,.09);font-size:.78rem;color:#b9cfcb8c}.content{margin-left:var(--sidebar-w);min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:.9rem;padding:.6rem 1.6rem;background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.topbar-spacer{flex:1}.menu-toggle{display:none;border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--radius-sm);padding:.35rem .5rem;cursor:pointer;color:var(--ink-mid)}.app-header-user{display:flex;align-items:center;gap:.75rem;font-size:.86rem;color:var(--ink-mid)}.user-chip{display:flex;align-items:center;gap:.5rem}.user-avatar{width:30px;height:30px;border-radius:50%;background:var(--brand-100);color:var(--brand-700);display:grid;place-items:center;font-size:.72rem;font-weight:700;text-transform:uppercase}.app-header-user button{padding:.42rem .85rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink-mid);font-size:.83rem;font-weight:500;cursor:pointer;transition:border-color .12s ease,color .12s ease}.app-header-user button:hover{border-color:var(--brand-600);color:var(--brand-700)}main{flex:1;padding:1.6rem 1.6rem 3rem;max-width:1180px;width:100%}@media(max-width:900px){.sidebar{transform:translate(-100%);transition:transform .18s ease;box-shadow:none}.shell.nav-open .sidebar{transform:translate(0);box-shadow:var(--shadow-pop)}.content{margin-left:0}.menu-toggle{display:inline-flex;align-items:center}.nav-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a1e1b66;z-index:35;border:none;padding:0}}main h1{font-size:1.45rem;font-weight:700;letter-spacing:-.015em;margin:0 0 .25rem}.page-subtitle{color:var(--ink-subtle);font-size:.9rem;margin:0 0 1.4rem;max-width:62ch}main h2{font-size:1.05rem;font-weight:650;margin:0 0 .6rem}main section+section{margin-top:2.2rem}main a{color:var(--brand-600);font-weight:500}table{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface);font-size:.885rem;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);overflow:hidden}th,td{text-align:left;padding:.62rem .9rem;border-bottom:1px solid var(--line);vertical-align:middle}thead th{color:var(--ink-subtle);font-weight:600;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;background:#fafcfb}tbody tr:last-child td{border-bottom:none}tbody tr{transition:background .1s ease}tbody tr:hover{background:#f7faf9}tfoot td{font-weight:650;border-top:2px solid var(--line-strong);border-bottom:none;background:#fafcfb}main button{padding:.5rem 1rem;border:1px solid transparent;border-radius:var(--radius-sm);background:var(--brand-600);color:#fff;font-size:.865rem;font-weight:600;font-family:inherit;cursor:pointer;transition:background .12s ease,box-shadow .12s ease}main button:hover{background:var(--brand-700)}main button:disabled{opacity:.55;cursor:default}main button.button-secondary{background:var(--surface);color:var(--ink-mid);border-color:var(--line-strong)}main button.button-secondary:hover{background:#f5f8f7;color:var(--ink)}main button.button-danger{background:var(--danger)}main button.button-danger:hover{background:#a52f26}main button.link-button{padding:0;border:none;background:none;color:var(--brand-600);font-weight:500;text-decoration:underline}td button{padding:.32rem .7rem;font-size:.8rem}.row-actions{display:inline-flex;gap:.4rem;flex-wrap:wrap}.row-reset-form{display:inline-flex;gap:.4rem;align-items:center;flex-wrap:wrap}.row-reset-form input{padding:.34rem .5rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);font-size:.82rem;width:12.5rem}.inline-form{display:flex;align-items:flex-end;flex-wrap:wrap;gap:.85rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:1.1rem 1.2rem 1.2rem;margin-bottom:1.6rem}.inline-form h2{flex-basis:100%;font-size:.98rem;margin:0}.inline-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.76rem;font-weight:600;color:var(--ink-mid)}.inline-form label.checkbox-label{flex-direction:row;align-items:center;gap:.45rem;font-weight:500}.inline-form select,.inline-form input{padding:.48rem .6rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);font-size:.9rem;font-family:inherit;font-weight:400;color:var(--ink);background:var(--surface);transition:border-color .12s ease,box-shadow .12s ease}.inline-form select:focus,.inline-form input:focus,.login-form input:focus,.row-reset-form input:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 3px #14948829}.inline-form [role=alert]{flex-basis:100%;color:var(--danger);font-size:.82rem;margin:0}main [role=alert]{color:var(--danger);font-size:.86rem}.field-hint{color:var(--ink-subtle);font-size:.8rem;margin:0}.success-notice{background:var(--ok-bg);border:1px solid #bcdcc8;color:var(--ok);border-radius:var(--radius-sm);padding:.55rem .8rem;font-size:.86rem;margin:0 0 1rem}.truncated-banner{background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:var(--radius-sm);padding:.55rem .8rem;font-size:.86rem;margin-bottom:1rem}.manual-payment-notice{background:var(--info-bg);border:1px solid var(--info-line);border-radius:var(--radius-sm);padding:.55rem .8rem;font-size:.86rem;margin:0 0 1rem}.confirm-prompt{display:inline-flex;align-items:center;gap:.5rem;font-size:.86rem}.dash-greeting{margin:0 0 .2rem}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.9rem;margin:1.3rem 0 0}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:.95rem 1.05rem;display:flex;flex-direction:column;gap:.15rem;text-decoration:none;color:inherit;transition:border-color .12s ease,transform .12s ease}a.stat-card:hover{border-color:var(--brand-500);transform:translateY(-1px)}.stat-label{font-size:.72rem;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-subtle);display:flex;align-items:center;gap:.4rem}.stat-value{font-size:1.55rem;font-weight:700;letter-spacing:-.02em}.stat-detail{font-size:.78rem;color:var(--ink-subtle)}.stat-card.stat-alert .stat-value{color:var(--danger)}.onboarding-card{background:linear-gradient(160deg,#ffffff 55%,var(--brand-50));border:1px solid var(--brand-100);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:1.2rem 1.3rem;margin-top:1.4rem}.onboarding-card h2{margin:0 0 .15rem}.onboarding-progress{height:6px;border-radius:999px;background:var(--brand-100);margin:.8rem 0 1rem;overflow:hidden}.onboarding-progress>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand-500),var(--brand-700));transition:width .3s ease}.onboarding-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.5rem 1.2rem}.onboarding-list a{display:flex;align-items:center;gap:.6rem;padding:.5rem .55rem;border-radius:var(--radius-sm);text-decoration:none;color:var(--ink-mid);font-size:.89rem;font-weight:500;transition:background .12s ease}.onboarding-list a:hover{background:#14948814}.onboarding-done{color:var(--ink-subtle)}.onboarding-done .onboarding-text{text-decoration:line-through;text-decoration-color:var(--line-strong)}.onboarding-check{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;border:1.5px solid var(--line-strong);color:transparent}.onboarding-done .onboarding-check{background:var(--brand-600);border-color:var(--brand-600);color:#fff}.dash-section{margin-top:2.2rem}.dash-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.7rem}.dash-section-head h2{margin:0}.dash-empty{background:var(--surface);border:1px dashed var(--line-strong);border-radius:var(--radius);padding:1.4rem;color:var(--ink-subtle);font-size:.9rem}.login-page{min-height:100vh;display:flex;align-items:stretch;background:var(--canvas)}.auth-brand{flex:1 1 46%;background:radial-gradient(120% 90% at 15% 10%,rgba(20,148,136,.45),transparent 60%),linear-gradient(160deg,#0b322e,#0d423d 55%,#0c635b);color:#e7f3f1;display:flex;flex-direction:column;justify-content:space-between;padding:2.6rem 3rem}.auth-brand-top{display:flex;align-items:center;gap:.7rem;font-weight:700;font-size:1.1rem;color:#fff}.auth-brand h2{font-size:1.9rem;font-weight:750;letter-spacing:-.02em;line-height:1.25;margin:0 0 1.4rem;color:#fff;max-width:20ch}.auth-points{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.85rem;max-width:42ch}.auth-points li{display:flex;gap:.65rem;align-items:flex-start;font-size:.92rem;color:#e7f3f1e0}.auth-points svg{flex-shrink:0;margin-top:2px;color:#4fd1c5}.auth-brand-foot{font-size:.78rem;color:#e7f3f180}.auth-side{flex:1 1 54%;display:flex;align-items:center;justify-content:center;padding:2.5rem 1.5rem}@media(max-width:860px){.auth-brand{display:none}}.login-form{display:flex;flex-direction:column;gap:.85rem;width:100%;max-width:400px;padding:2.1rem 2.2rem 2.3rem;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-card)}.login-form h1{font-size:1.35rem;font-weight:700;letter-spacing:-.015em;margin:0}.auth-lede{color:var(--ink-subtle);font-size:.88rem;margin:-.4rem 0 .3rem}.login-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;font-weight:600;color:var(--ink-mid)}.login-form input,.login-form select{padding:.62rem .7rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);font-size:.95rem;font-family:inherit;font-weight:400;color:var(--ink);transition:border-color .12s ease,box-shadow .12s ease}.login-form button{margin-top:.4rem;padding:.68rem;border:none;border-radius:var(--radius-sm);background:var(--brand-600);color:#fff;font-size:.95rem;font-weight:650;font-family:inherit;cursor:pointer;transition:background .12s ease}.login-form button:hover{background:var(--brand-700)}.login-form button:disabled{opacity:.55;cursor:default}.login-form button.link-button{margin-top:0;padding:0;background:none;color:var(--brand-600);font-size:.84rem;font-weight:500;text-decoration:underline;align-self:flex-start}.login-error{color:var(--danger);background:var(--danger-bg);border:1px solid #eecbc7;border-radius:var(--radius-sm);padding:.5rem .7rem;font-size:.85rem;margin:0}.auth-links{margin:0;font-size:.85rem;color:var(--ink-subtle)}.auth-links a{color:var(--brand-600);font-weight:550}.auth-steps{display:flex;gap:.4rem;margin:0 0 .3rem}.auth-steps span{height:4px;flex:1;border-radius:999px;background:var(--line)}.auth-steps span.done{background:var(--brand-500)}.pairing-code-display{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:1.5rem;margin-bottom:1rem;max-width:340px}.pairing-code{font-family:ui-monospace,SF Mono,monospace;font-size:2.1rem;letter-spacing:.22em;font-weight:650;color:var(--brand-700)}.ledger-entry{margin-bottom:1.5rem}.near-expiry-expired{background:var(--danger-bg);color:var(--danger)}.prescription-items{display:flex;flex-direction:column;gap:.5rem;flex-basis:100%}.prescription-item-row{display:flex;align-items:flex-end;flex-wrap:wrap;gap:.75rem}.prescription-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:1.1rem 1.2rem;margin-bottom:1rem}.dispense-form{display:flex;align-items:center;gap:.4rem}.dispense-form input{width:5rem;padding:.34rem .5rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm)}.dispense-form input[placeholder="Dispensed by"]{width:8rem}.dispense-exhausted{color:var(--ink-subtle);font-style:italic}.register-actions{display:flex;align-items:flex-start;gap:1.5rem;margin-bottom:1rem;flex-wrap:wrap}.register-action{display:flex;flex-direction:column;gap:.3rem}.register-export-link{align-self:center}.chain-valid{color:var(--ok);font-weight:600}.chain-invalid{color:var(--danger);font-weight:650}
