:root{--bg:#f5f7fb;--panel:#fff;--text:#172033;--muted:#6b7280;--line:#e5e7eb;--brand:#2563eb;--brand2:#06b6d4;--ok:#16a34a;--warn:#d97706;--err:#dc2626;--radius:18px;--shadow:0 18px 40px rgba(15,23,42,.08)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Tahoma,sans-serif;font-size:14px}.app-shell{display:flex;min-height:100vh}.sidebar{width:280px;background:#101827;color:#dbeafe;padding:20px;position:sticky;top:0;height:100vh;overflow:auto}.brand{display:flex;align-items:center;gap:12px;margin-bottom:24px}.brand-mark{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;font-weight:800}.brand span,.user-pill small{display:block;color:#93a4bd;font-size:12px}.nav{display:flex;flex-direction:column;gap:4px}.nav a{color:#dbeafe;text-decoration:none;padding:10px 12px;border-radius:12px}.nav a:hover{background:rgba(255,255,255,.08)}.nav-title{color:#8aa0bd;font-size:12px;margin:16px 10px 6px;text-transform:uppercase}.main{flex:1;padding:22px;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.topbar h1{margin:0;font-size:24px}.user-pill{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:8px 12px}.user-pill a{color:var(--brand);text-decoration:none}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:18px}.grid{display:grid;gap:18px}.cards{grid-template-columns:repeat(4,minmax(0,1fr))}.two{grid-template-columns:repeat(2,minmax(0,1fr))}.stat span{color:var(--muted)}.stat strong{display:block;font-size:30px;margin:8px 0}.stat small{color:var(--muted)}.section-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}h2{font-size:18px;margin:0 0 12px}.muted{color:var(--muted)}.alert{padding:12px 14px;border-radius:14px;margin-bottom:14px}.alert.success{background:#dcfce7;color:#166534}.alert.error{background:#fee2e2;color:#991b1b}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:12px;padding:9px 14px;background:#fff;color:#1f2937;text-decoration:none;cursor:pointer;font-weight:600}.btn.primary{background:linear-gradient(135deg,var(--brand),#1d4ed8);color:#fff;border:0}.btn.warn{background:#f59e0b;color:#fff;border:0}.btn.ghost{background:#f8fafc}.btn.small{padding:6px 10px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.actions,.inline{display:inline-flex;gap:8px}.form-grid{display:grid;gap:14px}.form-grid.two{grid-template-columns:repeat(2,1fr)}.form-grid.three{grid-template-columns:repeat(3,1fr)}.form-grid.four{grid-template-columns:repeat(4,1fr)}label{display:flex;flex-direction:column;gap:6px;font-weight:600;color:#374151}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;font:inherit}input:focus,select:focus,textarea:focus{outline:3px solid rgba(37,99,235,.15);border-color:var(--brand)}.inline-form{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:top;white-space:nowrap}th{background:#f8fafc;text-align:left;color:#475569;font-weight:700}tr:hover td{background:#fbfdff}.badge{display:inline-flex;padding:4px 9px;border-radius:999px;font-size:12px;background:#e2e8f0;color:#334155}.badge.open,.badge.active,.badge.validated,.badge.imported,.badge.success{background:#dcfce7;color:#166534}.badge.closed,.badge.disabled{background:#e5e7eb;color:#374151}.badge.needs_mapping,.badge.staged,.badge.warn{background:#fef3c7;color:#92400e}.badge.error{background:#fee2e2;color:#991b1b}.report-filter{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.items-box{display:grid;gap:10px}.item-row{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:10px;align-items:end}.detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.detail-grid div{background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:12px}.detail-grid span{display:block;color:var(--muted);font-size:12px}.detail-grid strong{display:block;margin-top:4px}/* Login page: Minimal Nursing Management Background */
body.login-page{min-height:100vh;overflow-x:hidden;color:#0f172a;background:radial-gradient(circle at 10% 12%, rgba(37,99,235,.18), transparent 26%),radial-gradient(circle at 92% 10%, rgba(14,165,233,.16), transparent 28%),radial-gradient(circle at 84% 84%, rgba(34,197,94,.12), transparent 30%),linear-gradient(135deg,#eff7ff 0%,#f8fbff 48%,#ecf9f6 100%)}
.login-bg{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.login-bg::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(37,99,235,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(37,99,235,.06) 1px,transparent 1px);background-size:46px 46px;mask-image:linear-gradient(180deg,rgba(0,0,0,.88),rgba(0,0,0,.14))}
.login-blob{position:absolute;border:1px solid rgba(37,99,235,.10);background:rgba(255,255,255,.42);box-shadow:0 26px 70px rgba(15,23,42,.08);backdrop-filter:blur(12px)}
.blob-a{width:250px;height:250px;border-radius:74px;left:-86px;top:12%;transform:rotate(18deg)}
.blob-b{width:320px;height:320px;border-radius:94px;right:-120px;bottom:-94px;transform:rotate(-16deg)}
.medical-cross{position:absolute;width:76px;height:76px;border-radius:22px;background:linear-gradient(135deg,#2563eb,#06b6d4);box-shadow:0 18px 40px rgba(37,99,235,.22)}
.medical-cross::before,.medical-cross::after{content:"";position:absolute;background:#fff;border-radius:999px;left:50%;top:50%;transform:translate(-50%,-50%)}
.medical-cross::before{width:36px;height:12px}.medical-cross::after{width:12px;height:36px}
.cross-a{left:8%;bottom:16%;opacity:.14;transform:rotate(14deg)}
.cross-b{right:10%;top:28%;opacity:.12;transform:rotate(-14deg) scale(.76)}
.login-shell{position:relative;z-index:1;width:min(1180px,92vw);min-height:100vh;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.02fr) minmax(360px,.58fr);align-items:center;gap:52px;padding:54px 0}
.login-hero{position:relative;padding:12px 0 14px}
.brand.login-brand{display:flex;align-items:center;gap:12px;margin:0 0 30px}
.login-brand .brand-mark{width:46px;height:46px;border-radius:16px;font-weight:900}
.login-brand strong{display:block;font-size:18px;color:#0f172a;line-height:1.25}.login-brand span{display:block;color:#64748b;font-size:12px;margin-top:2px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(37,99,235,.14);background:rgba(255,255,255,.78);border-radius:999px;padding:8px 13px;color:#2563eb;font-weight:800;font-size:12px;letter-spacing:.02em;box-shadow:0 12px 26px rgba(15,23,42,.05)}
.eyebrow::before{content:"";width:8px;height:8px;border-radius:999px;background:#22c55e;box-shadow:0 0 0 6px rgba(34,197,94,.13)}
.hero-copy h1{margin:18px 0 16px;color:#0f172a;font-size:clamp(32px,4.2vw,56px);line-height:1.08;letter-spacing:-.045em;max-width:780px}
.hero-copy p{margin:0;color:#475569;font-size:16px;line-height:1.82;max-width:670px}
.nursing-visual{margin:34px 0 0;display:grid;grid-template-columns:minmax(230px,310px) 96px minmax(230px,310px);align-items:center;gap:0}
.visual-card{min-height:112px;background:rgba(255,255,255,.80);border:1px solid rgba(226,232,240,.95);border-radius:26px;padding:18px;display:flex;align-items:center;gap:14px;box-shadow:0 20px 44px rgba(15,23,42,.08);backdrop-filter:blur(14px)}
.visual-card strong{display:block;color:#0f172a;font-size:15px}.visual-card small{display:block;color:#64748b;margin-top:5px;line-height:1.5}
.visual-icon{flex:0 0 auto;width:46px;height:46px;border-radius:17px;display:grid;place-items:center;background:linear-gradient(135deg,#dbeafe,#cffafe);color:#2563eb;font-weight:900;font-size:23px}
.pill-icon{position:relative;background:linear-gradient(135deg,#dcfce7,#e0f2fe)}
.pill-icon::before{content:"";width:28px;height:14px;border-radius:999px;background:linear-gradient(90deg,#2563eb 0 50%,#06b6d4 50%);transform:rotate(-28deg);box-shadow:inset 0 0 0 1px rgba(255,255,255,.65)}
.visual-line{height:2px;background:linear-gradient(90deg,rgba(37,99,235,.08),rgba(6,182,212,.60),rgba(37,99,235,.08));position:relative}
.visual-line::before,.visual-line::after{content:"";position:absolute;top:50%;width:10px;height:10px;border-radius:999px;background:#06b6d4;transform:translateY(-50%);box-shadow:0 0 0 7px rgba(6,182,212,.10)}
.visual-line::before{left:10px}.visual-line::after{right:10px}
.login-card{width:100%;background:rgba(255,255,255,.90);border:1px solid rgba(226,232,240,.96);box-shadow:0 30px 72px rgba(15,23,42,.14);border-radius:30px;padding:32px;backdrop-filter:blur(16px)}
.login-card-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:22px}
.login-card-icon{width:44px;height:44px;border-radius:17px;display:grid;place-items:center;background:linear-gradient(135deg,#2563eb,#06b6d4);color:#fff;font-weight:900;box-shadow:0 16px 30px rgba(37,99,235,.24)}
.login-card h2{font-size:25px;margin:0 0 6px;color:#0f172a;letter-spacing:-.02em}.login-card p{margin:0;color:#64748b;line-height:1.6}.login-form{display:grid;gap:16px}.login-form label{display:flex;flex-direction:column;gap:7px;color:#334155;font-weight:700}.login-form input{min-height:48px;background:rgba(255,255,255,.94);border-color:#dbe3ee;border-radius:14px}.login-form input::placeholder{color:#a0aec0}.login-submit{width:100%;min-height:50px;margin-top:2px;border-radius:15px;font-size:15px;box-shadow:0 17px 34px rgba(37,99,235,.24)}
@media(max-width:1100px){
  .cards,.form-grid.four{grid-template-columns:repeat(2,1fr)}
  .sidebar{width:240px}
  .login-shell{grid-template-columns:1fr;gap:24px;max-width:780px}
  .hero-copy h1{font-size:clamp(30px,7vw,46px)}
}
@media(max-width:780px){
  .app-shell{display:block}
  .sidebar{position:relative;width:auto;height:auto}
  .main{padding:14px}
  .topbar{align-items:flex-start;gap:10px;flex-direction:column}
  .cards,.two,.form-grid.three,.form-grid.four,.detail-grid{grid-template-columns:1fr}
  .item-row{grid-template-columns:1fr}
  .user-pill{width:100%;justify-content:space-between}
  .login-page{overflow:auto}
  .login-shell{width:min(94vw,560px);padding:30px 0;display:block}
  .brand.login-brand{margin-bottom:22px}
  .hero-copy p{font-size:14px;line-height:1.72}
  .nursing-visual{grid-template-columns:1fr;gap:12px;margin:22px 0 18px}
  .visual-line{display:none}
  .login-card{padding:23px;border-radius:25px}
  .login-card h2{font-size:22px}
}
@media(max-width:520px){
  .hero-copy h1{font-size:29px}
  .visual-card{min-height:auto;padding:15px;border-radius:21px}
  .login-card-head{align-items:center}
  .login-card-icon{width:39px;height:39px;border-radius:14px}
}
