:root{--accent:#3264bd;--accent2:#6c93dc;--accent-tint:#eaf1ff;--bg:#f3f6fc;--surface:#fff;--surface2:#f8fafe;--ink:#1d2c45;--muted:#6b7891;--border:#e3e8f2;--danger:#b53643;--warning:#966018;--success:#18755a;--shadow:0 9px 28px rgba(30,52,93,.055);--radius:19px}
body[data-accent="forest"]{--accent:#287f69;--accent2:#65b49a;--accent-tint:#e4f7ef}
body[data-accent="violet"]{--accent:#7256ba;--accent2:#a594e1;--accent-tint:#f0ebff}
body[data-accent="rose"]{--accent:#b34f79;--accent2:#dc8eac;--accent-tint:#fff0f5}
body[data-accent="amber"]{--accent:#a26b24;--accent2:#cea46c;--accent-tint:#fff4e5}
body[data-theme="dark"]{--bg:#111822;--surface:#1c2633;--surface2:#222e3e;--ink:#eaf0f9;--muted:#a6b5c7;--border:#344153;--shadow:0 11px 30px rgba(0,0,0,.13);--accent-tint:#2e4058}
body[data-theme="dark"][data-accent="forest"]{--accent-tint:#254338}body[data-theme="dark"][data-accent="violet"]{--accent-tint:#39304b}body[data-theme="dark"][data-accent="rose"]{--accent-tint:#452e3c}body[data-theme="dark"][data-accent="amber"]{--accent-tint:#473c2e}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Cairo,Inter,system-ui,sans-serif;font-size:14px}html[lang="en"] body{font-family:Inter,Cairo,system-ui,sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{color:var(--ink)}a{color:var(--accent)}[hidden]{display:none!important}.app-shell{max-width:1690px;margin:auto;padding:14px 16px 70px}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 18px;border:1px solid var(--border);background:var(--surface);border-radius:23px;box-shadow:var(--shadow);margin-bottom:15px}.brand{display:flex;align-items:center;gap:11px;min-width:0}.brand img{width:54px;height:54px;object-fit:contain;border-radius:15px;background:#fff;padding:5px}.brand strong{display:block;font-size:20px;font-weight:900;color:var(--accent);line-height:1.3}.brand small{display:block;font-size:11px;font-weight:700;color:var(--muted)}.header-right{display:flex;align-items:center;gap:9px}.mode-indicator{background:var(--accent-tint);color:var(--accent);padding:7px 11px;border-radius:30px;font-size:11px;font-weight:800;white-space:nowrap}.icon-button{display:grid;place-items:center;width:42px;height:42px;font-size:22px;border-radius:13px;border:1px solid var(--border);background:var(--surface2);color:var(--ink)}
.layout{display:grid;grid-template-columns:229px minmax(0,1fr);gap:16px}.sidebar{background:var(--surface);border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow);padding:14px 10px;position:sticky;top:12px;min-height:calc(100dvh - 125px);align-self:start}.side-caption{padding:10px 14px;color:var(--muted);font-size:10px;letter-spacing:.3px;font-weight:800}.side-caption.separator{border-top:1px solid var(--border);margin-top:9px;padding-top:16px}.nav{width:100%;border:0;background:transparent;color:var(--muted);border-radius:13px;padding:11px 12px;display:flex;align-items:center;gap:12px;text-align:start;margin-bottom:4px}.nav span{font-size:19px;min-width:22px;text-align:center}.nav b{font-size:12px;font-weight:800}.nav:hover{background:var(--surface2)}.nav.active{background:var(--accent-tint);color:var(--accent)}.sidebar-bottom{margin-top:25px;border-top:1px solid var(--border);padding:16px 12px;display:grid;gap:6px}.sidebar-bottom a{text-decoration:none;font-weight:800;font-size:11px}.sidebar-bottom small{color:var(--muted);font-size:10px}.main{min-width:0;position:relative}.page{display:none;animation:slide .22s ease-out}.page.active{display:block}@keyframes slide{from{opacity:.65;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.eyebrow{font-weight:800;letter-spacing:.8px;color:var(--accent2);font-size:11px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 4px 21px}.page-head h1{margin:4px 0 3px;font-size:clamp(21px,2.3vw,29px);line-height:1.35;color:var(--ink);font-weight:900}.page-head p{margin:0;font-size:12px;font-weight:600;color:var(--muted)}.panel{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);padding:19px;box-shadow:var(--shadow)}.panel h3{margin:0 0 13px;color:var(--ink);font-size:15px}.hint{font-size:12px;line-height:1.85;color:var(--muted)}
.btn{padding:10px 17px;border:1px solid transparent;border-radius:13px;background:var(--accent);color:#fff;font-weight:800;min-height:42px;white-space:nowrap;font-size:12px;box-shadow:none}.btn:hover{filter:brightness(.97)}.btn.primary{background:var(--accent)}.btn.secondary{border-color:var(--border);background:var(--surface2);color:var(--ink)}.btn.ghost{background:transparent;color:var(--muted);border-color:var(--border)}.btn.danger{background:#fee9ed;color:#a42d42}.btn.wide{width:100%}.btn.small{padding:6px 10px;min-height:32px;font-size:11px}.chip{display:inline-block;padding:5px 9px;border-radius:30px;font-size:11px;font-weight:800;color:var(--accent);background:var(--accent-tint)}.chip.warning{color:#9b6620;background:#fff0d0}.chip.danger{color:#ab3346;background:#ffe9eb}.chip.success{color:#18755a;background:#dbf6e9}.inline-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:14px}.space-top{margin-top:25px!important}.two-column{display:grid;grid-template-columns:1fr 1fr;gap:14px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-bottom:14px}.stat{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:17px;padding:14px 17px}.stat small{display:block;color:var(--muted);font-size:11px;font-weight:800}.stat strong{font-size:28px;color:var(--accent);font-weight:900;line-height:1.65}.list-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 3px;border-bottom:1px solid var(--border)}.list-row:last-child{border:0}.list-row strong{font-size:12px;font-weight:850}.list-row small{display:block;font-size:11px;color:var(--muted);margin-top:3px}.list-row .actions{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.empty{padding:27px 14px;border:1px dashed var(--border);border-radius:14px;text-align:center;color:var(--muted);font-size:12px}.stack{display:grid;gap:11px}.list-count{font-size:11px;color:var(--muted);margin:12px 5px;font-weight:750}
.filters{display:flex;gap:10px;align-items:center;padding:12px;margin-bottom:12px}.filters input{flex:1}.filters select{width:min(240px,100%)}input:not([type=checkbox]):not([type=file]),select,textarea{border:1px solid var(--border);background:var(--surface2);border-radius:12px;padding:10px 12px;outline:none;min-height:43px;width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent2);outline-offset:0}label{display:block;font-size:12px;font-weight:800;color:var(--ink);margin:9px 0 7px}.checkline{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:11px;font-weight:700;margin:12px 0}.checkline input{width:17px;height:17px;accent-color:var(--accent)}
.med-card{padding:15px;border:1px solid var(--border);background:var(--surface);border-radius:17px;box-shadow:var(--shadow)}.med-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.med-heading h3{margin:0;font-size:16px;color:var(--accent);overflow-wrap:anywhere}.med-heading p{font-size:11px;color:var(--muted);margin:3px 0}.med-heading .actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.batch-grid{display:grid;gap:7px;margin-top:13px}.batch-item{background:var(--surface2);border:1px solid var(--border);border-radius:12px;display:grid;grid-template-columns:minmax(100px,1.1fr) minmax(76px,.8fr) minmax(125px,1fr) auto;gap:9px;align-items:center;padding:10px 12px;font-size:11px}.batch-item.expired{border-color:#dfb3b3}.batch-item b{font-weight:900}.batch-item small{color:var(--muted);font-size:10px}.med-meta{color:var(--muted);font-size:11px;margin:5px 0}.med-meta b{color:var(--ink)}.archived{opacity:.6}
.editor-panel{max-width:960px}.editor-panel h3{display:flex;align-items:center;gap:9px;font-weight:900}.step-num{display:inline-grid;place-items:center;background:var(--accent);color:#fff;border-radius:10px;width:27px;height:27px;font-size:12px}.medicine-options{max-height:235px;overflow:auto;display:grid;gap:6px;margin-top:9px}.medicine-option{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--border);background:var(--surface2);color:var(--ink);text-align:start;border-radius:12px;padding:10px 12px}.medicine-option strong{display:block;font-size:12px}.medicine-option small{display:block;font-size:10px;color:var(--muted)}.picked{background:#e7f7ef;border:1px solid #c3e5d2;color:#166e51;padding:12px;border-radius:13px;font-weight:900;margin-top:8px}.notice{background:var(--accent-tint);border-radius:14px;padding:12px 14px;display:flex;align-items:center;gap:10px;font-weight:700;color:var(--ink);font-size:11px;line-height:1.7}.notice span{font-size:19px}.batch-rows{margin-top:14px;display:grid;gap:11px}.batch-editor{padding:14px;background:var(--surface2);border:1px solid var(--border);border-radius:16px}.batch-editor.is-share{border-color:#7fc9a5}.batch-editor-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-weight:900;color:var(--accent)}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 13px;margin-top:7px}.field-grid label{margin:4px 0}.field-grid label.wide-field{grid-column:1/-1}.field-grid input,.field-grid select{margin-top:4px}.batch-editor input,.batch-editor select{background:var(--surface)}.preview{white-space:pre-wrap;overflow:auto;background:var(--surface2);padding:12px;border-radius:12px;color:var(--ink);font-size:11px}.guest-panel{text-align:center;padding:7px}.guest-icon{font-size:45px}
.auth-layout{display:grid;grid-template-columns:1.04fr .96fr;min-height:calc(100dvh - 160px);gap:16px}.hero{border-radius:23px;padding:clamp(25px,5vw,68px);color:#fff;background:linear-gradient(145deg,#1d3565,var(--accent) 80%);position:relative;overflow:hidden;display:flex;justify-content:center;flex-direction:column;min-height:450px}.hero:after{content:"";position:absolute;width:360px;height:360px;border-radius:50%;border:75px solid #ffffff12;bottom:-145px;left:-145px}.hero-icon{font-size:70px;color:#e8c986;line-height:1.3}.hero .eyebrow{color:#d3e3ff}.hero h1{font-size:clamp(27px,3vw,46px);line-height:1.4;max-width:540px;margin:10px 0}.hero p{font-size:14px;line-height:2;max-width:470px;opacity:.87}.hero-link{display:inline-flex;align-self:flex-start;text-decoration:none;background:#fff;color:#183e7e;margin-top:18px}.hero-decor{font-size:45px;letter-spacing:25px;position:absolute;bottom:17px;left:40px;color:#ffffff18}.auth-card{align-self:center;max-width:500px;width:100%;margin:0 auto;padding:25px 26px}.tabs{display:flex;gap:5px;background:var(--surface2);border-radius:13px;padding:5px}.tab{flex:1;border:0;background:transparent;color:var(--muted);padding:10px 5px;border-radius:10px;font-weight:800;font-size:11px}.tab.on{background:var(--surface);color:var(--accent);box-shadow:var(--shadow)}.auth-form{padding:17px 2px 5px}.auth-form h2{font-size:21px;margin:5px 0 14px}.auth-form label{margin-top:11px}.auth-form button{margin-top:15px}.demo-box{border-top:1px solid var(--border);padding:17px 3px 0;margin-top:20px;display:grid;gap:4px;text-align:center}.demo-box a{font-size:11px;font-weight:800}.demo-box small{font-size:10px;color:var(--muted)}.flash{position:fixed;top:90px;left:22px;z-index:120;background:var(--accent);color:white;border-radius:13px;padding:11px 16px;box-shadow:0 12px 40px #101b3025;font-size:12px;font-weight:800;max-width:min(420px,95vw)}.flash.error{background:#b43e50}
.overlay{position:fixed;inset:0;z-index:110;background:#061324b5;display:flex;align-items:center;justify-content:center;padding:13px;backdrop-filter:blur(5px)}.modal{background:var(--surface);border:1px solid var(--border);color:var(--ink);border-radius:22px;box-shadow:0 24px 85px #0004;width:min(570px,100%);max-height:calc(100dvh - 26px);overflow:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:16px 20px;background:var(--accent-tint);color:var(--accent)}.modal-header h2{margin:0;font-size:17px}.modal-close{background:var(--surface);border:1px solid var(--border);color:var(--ink);border-radius:10px;font-size:18px;width:36px;height:36px}.modal-body{padding:18px 20px}.modal-body label{display:block}.modal-body .field-grid{margin-top:0}.modal-body .field-grid input{margin-top:5px}.modal-body .btn{margin-top:12px}
.mobile-nav{display:none}
@media(max-width:1100px){.layout{grid-template-columns:192px minmax(0,1fr)}.stats{grid-template-columns:repeat(3,minmax(0,1fr))}.batch-item{grid-template-columns:1fr 1fr auto}.batch-item .alloc{grid-column:1/3}}
@media(max-width:780px){.app-shell{padding:8px 8px 92px}.topbar{padding:9px 10px;border-radius:17px}.brand img{width:44px;height:44px}.brand strong{font-size:15px}.brand small{font-size:9px;line-height:1.4}.mode-indicator{display:none}.header-right{gap:5px}.icon-button{width:37px;height:37px}.layout{display:block}.sidebar{display:none}.auth-layout{grid-template-columns:1fr;gap:10px;min-height:0}.hero{min-height:auto;padding:20px 22px;border-radius:17px}.hero-icon,.hero-decor{display:none}.hero h1{font-size:23px;margin:5px 0}.hero p{font-size:11px;margin:5px 0;line-height:1.8}.hero-link{margin-top:9px;font-size:11px;padding:8px 12px;min-height:37px}.auth-card{padding:17px;max-width:none}.page-head{margin:11px 2px 14px;align-items:flex-start}.page-head h1{font-size:21px}.page-head p{font-size:11px}.page-head .btn{font-size:10px;padding:8px 11px;min-height:36px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stat{padding:10px 12px}.stat strong{font-size:23px}.two-column{grid-template-columns:1fr}.panel{padding:13px}.filters{flex-wrap:wrap}.filters input,.filters select{width:100%;min-width:0}.field-grid{grid-template-columns:1fr 1fr;gap:5px 8px}.batch-editor{padding:10px}.batch-item{grid-template-columns:1fr 1fr;gap:8px}.batch-item .alloc{grid-column:auto}.batch-item button{grid-column:1/-1}.med-heading{display:block}.med-heading .actions{margin-top:8px;justify-content:flex-start}.mobile-nav{display:flex;position:fixed;bottom:0;right:0;left:0;z-index:30;border-top:1px solid var(--border);background:var(--surface);padding:7px max(5px,env(safe-area-inset-left)) max(8px,env(safe-area-inset-bottom));justify-content:space-around;box-shadow:0 -9px 25px #00000012}.mobile-nav button{border:0;background:transparent;color:var(--muted);padding:2px 4px;min-width:50px;border-radius:10px;display:flex;flex-direction:column;align-items:center;font-size:20px;font-weight:800}.mobile-nav button.active{background:var(--accent-tint);color:var(--accent)}.mobile-nav small{font-size:9px}.overlay{align-items:flex-end;padding:7px}.modal{border-radius:21px 21px 13px 13px;max-height:calc(100dvh - 10px)}.modal-body{padding:13px}.flash{top:auto;bottom:82px;left:8px;right:8px;max-width:none}}
@media(max-width:430px){.brand small{max-width:195px}.field-grid{grid-template-columns:1fr}.page-head .btn{white-space:normal}.auth-card{padding:13px}.tab{font-size:10px}}

/* v0.4: the hidden staff sidebar must NOT keep a grid column on auth pages. */
body.auth-screen .layout{display:block;max-width:none}
body.auth-screen .main{width:100%;max-width:1240px;margin-inline:auto}
body.auth-screen .auth-layout{width:100%;display:grid;grid-template-columns:minmax(355px,.88fr) minmax(0,1.12fr);align-items:center;gap:22px;min-height:min(730px,calc(100dvh - 142px))}
body.auth-screen .auth-card{order:-1;align-self:center;width:100%;max-width:495px;padding:28px 30px;min-width:0}
body.auth-screen .hero{order:0;min-height:570px;padding:clamp(30px,4vw,60px)}
body.auth-screen .hero h1{font-size:clamp(28px,2.8vw,43px);overflow-wrap:break-word}
body.auth-screen .hero p{font-size:13px}
body.auth-screen .auth-form{max-width:none}
body.auth-screen .auth-form input{min-width:0}
body.auth-screen .tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
body.auth-screen .tab{white-space:normal;min-width:0;overflow-wrap:anywhere;line-height:1.6}
@media(max-width:900px){
 body.auth-screen .auth-layout{grid-template-columns:minmax(0,1fr);max-width:640px;min-height:0;gap:12px}
 body.auth-screen .auth-card{max-width:none;order:0;padding:22px}
 body.auth-screen .hero{order:1;min-height:0;padding:23px 25px}
 body.auth-screen .hero h1{font-size:23px}
 body.auth-screen .hero p{font-size:12px}
 body.auth-screen .hero-icon,body.auth-screen .hero-decor{display:none}
}
@media(max-width:500px){
 body.auth-screen .auth-card{padding:16px}
 body.auth-screen .auth-layout{gap:9px}
 body.auth-screen .hero{padding:16px 19px}
 body.auth-screen .tabs{gap:3px}
 body.auth-screen .tab{font-size:10px;padding:10px 3px}
 body.auth-screen .auth-form h2{font-size:20px}
}

/* Official logo keeps natural proportions on all screens */
.topbar .brand img{object-fit:contain;background:#fff;padding:3px} .hero-logo{display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.96)!important;overflow:hidden;border-radius:22px;padding:12px} .hero-logo img{width:100%;height:100%;max-height:100px;object-fit:contain}.hero-logo.logo-failed{background:transparent!important}.hero-logo.logo-failed:after{content:'✚';font-size:64px;color:#e8c986} 

.hero-logo{width:112px;height:112px;min-height:112px;max-height:112px;flex:none;align-self:flex-start;position:relative;background:transparent!important;padding:0!important;box-shadow:none!important}
.hero-logo:before{content:'✚';color:#e8c986;font-size:70px;line-height:112px;text-align:center;width:100%}
.hero-logo img{position:absolute;inset:0;z-index:2;width:100%;height:100%;max-height:none;object-fit:contain;background:#fff;border-radius:19px;padding:9px}
.hero-logo.logo-failed:after{content:none!important}
