/* =========================================================
   KHUNTEST LABS — Professional Theme CSS
   Brand palette pulled from logo:
   Navy: #062b59 | Red: #e30613 | White: #ffffff
   ========================================================= */

:root{
  --khun-red:#e30613;
  --khun-red-dark:#b4000b;
  --khun-red-soft:#fff1f2;
  --khun-navy:#062b59;
  --khun-navy-2:#0b4d92;
  --khun-navy-dark:#061b36;
  --khun-blue-soft:#eef7ff;
  --khun-green:#16a34a;
  --khun-amber:#f59e0b;
  --khun-bg:#f6f9fd;
  --khun-card:#ffffff;
  --khun-text:#0f172a;
  --khun-muted:#64748b;
  --khun-line:#e2e8f0;
  --khun-shadow:0 18px 55px rgba(2,43,89,.13);
  --khun-shadow-soft:0 10px 28px rgba(2,43,89,.07);
  --radius-xl:28px;
  --radius-lg:22px;
  --radius-md:15px;
  --container:min(1180px,92%);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  background:
    radial-gradient(circle at top right, rgba(227,6,19,.045), transparent 28rem),
    radial-gradient(circle at 8% 15%, rgba(6,43,89,.055), transparent 22rem),
    var(--khun-bg);
  color:var(--khun-text);
  line-height:1.55;
  overflow-x:hidden;
}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
button,input,select,textarea{font-family:inherit;max-width:100%}
::selection{background:var(--khun-red);color:white}

.container{width:var(--container);margin-inline:auto}

/* Topbar */
.topbar{
  background:linear-gradient(90deg,var(--khun-navy-dark),var(--khun-navy));
  color:#dbeafe;
  font-size:14px;
}
.topbar .container{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:9px 0;
  flex-wrap:wrap;
}

/* Navigation */
.nav{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(226,232,240,.88);
  box-shadow:0 10px 28px rgba(15,23,42,.06);
}
.nav-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  padding:11px 0;
  position:relative;
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  color:var(--khun-navy);
  font-weight:950;
  letter-spacing:.25px;
}
.brand img{
  width:66px;
  height:66px;
  object-fit:contain;
  border-radius:18px;
  background:#fff;
  padding:4px;
  box-shadow:0 8px 22px rgba(6,43,89,.12);
}
.brand span{font-size:23px;white-space:nowrap}
.menu{display:flex;align-items:center;gap:18px;font-weight:800;color:#334155;font-size:14.5px}
.menu a{position:relative;padding:8px 0}
.menu a:after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:1px;
  height:2px;
  background:var(--khun-red);
  transform:scaleX(0);
  transform-origin:left;
  transition:.22s ease;
}
.menu a:hover{color:var(--khun-red)}
.menu a:hover:after{transform:scaleX(1)}
.nav-toggle{display:none}
.nav-toggle-label{
  display:none;
  width:46px;
  height:46px;
  border:1px solid var(--khun-line);
  border-radius:14px;
  align-items:center;
  justify-content:center;
  background:#fff;
  color:var(--khun-navy);
  font-size:24px;
  font-weight:950;
  cursor:pointer;
  box-shadow:0 8px 18px rgba(15,23,42,.07);
}

/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:0;
  cursor:pointer;
  padding:12px 19px;
  border-radius:999px;
  font-weight:900;
  font-size:15px;
  line-height:1;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
  white-space:nowrap;
}
.btn:hover{transform:translateY(-2px)}
.btn-red{background:linear-gradient(135deg,var(--khun-red),var(--khun-red-dark));color:#fff;box-shadow:0 12px 28px rgba(227,6,19,.28)}
.btn-red:hover{box-shadow:0 16px 36px rgba(227,6,19,.33)}
.btn-navy{background:linear-gradient(135deg,var(--khun-navy),var(--khun-navy-2));color:#fff;box-shadow:0 12px 28px rgba(6,43,89,.22)}
.btn-outline{background:#fff;color:var(--khun-navy);border:1px solid var(--khun-line);box-shadow:0 8px 20px rgba(15,23,42,.05)}
.btn-outline:hover{border-color:rgba(227,6,19,.35);color:var(--khun-red)}
.btn-green{background:var(--khun-green);color:#fff}
.btn-small{padding:9px 12px;font-size:13px}

/* Hero */
.hero{
  position:relative;
  overflow:hidden;
  padding:82px 0 58px;
  background:
    radial-gradient(circle at 82% 12%,rgba(227,6,19,.13),transparent 25rem),
    radial-gradient(circle at 16% 8%,rgba(6,43,89,.10),transparent 22rem),
    linear-gradient(135deg,#ffffff 0%,#eef7ff 56%,#fff3f4 100%);
}
.hero:before{
  content:"";
  position:absolute;
  inset:auto -12rem -18rem auto;
  width:34rem;
  height:34rem;
  border-radius:50%;
  border:48px solid rgba(6,43,89,.05);
}
.hero:after{
  content:"";
  position:absolute;
  left:-8rem;
  top:9rem;
  width:20rem;
  height:20rem;
  border-radius:50%;
  background:rgba(227,6,19,.04);
}
.hero-grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1.08fr .92fr;
  gap:44px;
  align-items:center;
}
.badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  border:1px solid var(--khun-line);
  background:rgba(255,255,255,.92);
  color:var(--khun-navy);
  padding:8px 15px;
  border-radius:999px;
  font-weight:950;
  margin-bottom:16px;
  box-shadow:0 8px 22px rgba(6,43,89,.07);
}
.hero h1{
  font-size:clamp(40px,5vw,62px);
  line-height:1.01;
  letter-spacing:-2px;
  margin:0 0 18px;
  color:var(--khun-navy);
}
.hero h1 span{color:var(--khun-red)}
.hero p{font-size:18px;line-height:1.75;color:#475569;margin:0 0 28px;max-width:680px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.trust-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.trust-pill{
  background:#fff;
  border:1px solid var(--khun-line);
  border-radius:16px;
  padding:11px 14px;
  color:#334155;
  font-weight:850;
  box-shadow:0 8px 20px rgba(2,43,89,.05);
}
.hero-card{
  position:relative;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(226,232,240,.9);
  border-radius:34px;
  padding:28px;
  box-shadow:var(--khun-shadow);
}
.hero-card:before{
  content:"";
  position:absolute;
  inset:14px;
  border-radius:28px;
  border:1px dashed rgba(227,6,19,.22);
  pointer-events:none;
}
.hero-card img{
  width:min(320px,72%);
  margin:0 auto;
  filter:drop-shadow(0 20px 30px rgba(6,43,89,.13));
}
.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:20px;position:relative;z-index:2}
.quick-stat{background:#f8fafc;border:1px solid var(--khun-line);border-radius:20px;padding:16px;text-align:left}
.quick-stat b{font-size:26px;color:var(--khun-navy);display:block;line-height:1.1}

/* Sections */
.section{padding:72px 0}
.section.white{background:#fff}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:30px}
.section h2{font-size:clamp(30px,3.4vw,40px);color:var(--khun-navy);letter-spacing:-.9px;margin:0}
.lead{color:var(--khun-muted);line-height:1.7;margin:8px 0 0;max-width:720px}
.grid{display:grid;gap:18px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.card{
  background:var(--khun-card);
  border:1px solid var(--khun-line);
  border-radius:var(--radius-lg);
  padding:22px;
  box-shadow:var(--khun-shadow-soft);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.card:hover{transform:translateY(-3px);box-shadow:0 18px 38px rgba(2,43,89,.10);border-color:rgba(6,43,89,.18)}
.test-card{position:relative;overflow:hidden}
.test-card:before{
  content:"";
  position:absolute;
  right:-42px;
  top:-42px;
  width:105px;
  height:105px;
  border-radius:50%;
  background:linear-gradient(135deg,rgba(227,6,19,.10),rgba(6,43,89,.08));
}
.test-card .icon{font-size:34px;position:relative;z-index:1}
.test-card h3,.card h3{margin:10px 0 8px;color:var(--khun-navy);letter-spacing:-.25px}
.card p{color:#475569;margin:0 0 12px}
.price{font-size:22px;font-weight:950;color:var(--khun-red);margin-top:8px}
.package-card{border-top:5px solid var(--khun-red);position:relative}
.package-card ul{line-height:1.85;color:#475569;padding-left:20px;margin:12px 0 20px}
.feature{display:flex;gap:14px;align-items:flex-start}
.feature .num{
  min-width:45px;
  height:45px;
  border-radius:16px;
  background:linear-gradient(135deg,var(--khun-blue-soft),#fff);
  color:var(--khun-navy);
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:950;
  border:1px solid #dbeafe;
}
.steps{counter-reset:step}
.step{position:relative;padding-left:62px}
.step:before{
  counter-increment:step;
  content:counter(step);
  position:absolute;
  left:20px;
  top:22px;
  width:40px;
  height:40px;
  border-radius:15px;
  background:linear-gradient(135deg,var(--khun-red),var(--khun-red-dark));
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:950;
  box-shadow:0 10px 20px rgba(227,6,19,.22);
}
.review{font-style:italic;color:#475569}
.review b{font-style:normal;color:var(--khun-navy)}

/* Page Hero */
.page-hero{
  background:
    radial-gradient(circle at 85% 20%,rgba(227,6,19,.25),transparent 18rem),
    linear-gradient(135deg,var(--khun-navy-dark),var(--khun-navy-2));
  color:#fff;
  padding:58px 0;
}
.page-hero h1{font-size:clamp(34px,4vw,46px);margin:0 0 8px;letter-spacing:-.8px}
.page-hero p{color:#dbeafe;margin:0;max-width:760px}

/* Forms */
.form-wrap{display:grid;grid-template-columns:1fr .78fr;gap:24px;align-items:start}
.form-card{background:#fff;border:1px solid var(--khun-line);border-radius:30px;padding:28px;box-shadow:var(--khun-shadow)}
label{display:block;margin:14px 0 7px;font-weight:850;color:#1e293b}
input,select,textarea{
  width:100%;
  padding:13px 14px;
  border:1px solid var(--khun-line);
  border-radius:14px;
  background:#fff;
  color:#0f172a;
  font:inherit;
  outline:none;
  transition:border-color .18s ease, box-shadow .18s ease;
}
input:focus,select:focus,textarea:focus{border-color:rgba(227,6,19,.55);box-shadow:0 0 0 4px rgba(227,6,19,.08)}
textarea{min-height:104px;resize:vertical}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.notice,.success,.error{border-radius:18px;padding:15px;margin:14px 0;font-weight:650}
.notice{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412}
.success{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}
.error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}
.hidden{display:none!important}

/* Auth */
.auth-page{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:28px 0;
  background:
    radial-gradient(circle at 80% 10%,rgba(227,6,19,.16),transparent 24rem),
    radial-gradient(circle at 20% 85%,rgba(6,43,89,.14),transparent 24rem),
    linear-gradient(135deg,#eef7ff,#fff3f4);
}
.auth-box{width:min(480px,92%);background:#fff;border:1px solid var(--khun-line);border-radius:32px;padding:30px;box-shadow:var(--khun-shadow)}
.auth-logo{display:flex;align-items:center;justify-content:center;gap:12px;text-align:center;color:var(--khun-navy)}
.auth-logo img{width:86px;height:86px;object-fit:contain;border-radius:22px;box-shadow:0 10px 25px rgba(6,43,89,.12);padding:5px;background:#fff}
.tabs{display:flex;background:#f1f5f9;padding:5px;border-radius:16px;margin:18px 0}
.tabs button{flex:1;border:0;background:transparent;padding:11px;border-radius:13px;font-weight:900;cursor:pointer;color:#475569}
.tabs button.active{background:#fff;color:var(--khun-red);box-shadow:0 7px 18px rgba(0,0,0,.08)}

/* Dashboard */
.dashboard{display:grid;grid-template-columns:270px 1fr;min-height:100vh;background:#f8fbff}
.sidebar{background:linear-gradient(180deg,var(--khun-navy-dark),#092b52);color:#fff;padding:20px;position:fixed;left:0;top:0;bottom:0;width:270px;height:100vh;overflow:auto;z-index:40}
.sidebar .brand{color:white}
.sidebar .brand span{color:white;font-size:18px}
.sidebar .brand img{width:56px;height:56px;box-shadow:none;background:#fff}
.side-menu{display:grid;gap:8px;margin-top:26px}
.side-menu button,.side-menu a{
  border:0;
  background:transparent;
  color:#cbd5e1;
  text-align:left;
  border-radius:15px;
  padding:13px 14px;
  font-weight:850;
  cursor:pointer;
}
.side-menu button:hover,.side-menu a:hover,.side-menu button.active{background:rgba(255,255,255,.11);color:#fff}
.main{padding:28px;overflow:auto}
.dashboard .main{margin-left:270px;min-height:100vh;overflow-x:hidden}
.dash-top{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:24px}
.dash-top h1{margin:0;color:var(--khun-navy);letter-spacing:-.7px}
.dash-top p{margin:4px 0 0;color:var(--khun-muted)}
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.metric{background:#fff;border:1px solid var(--khun-line);border-radius:23px;padding:20px;box-shadow:var(--khun-shadow-soft)}
.metric span{color:var(--khun-muted);font-weight:800}
.metric b,.metric strong{display:block;color:var(--khun-navy);font-size:29px;margin-top:5px}
.table-card{background:#fff;border:1px solid var(--khun-line);border-radius:23px;overflow:auto;margin-top:18px;box-shadow:var(--khun-shadow-soft)}
table{width:100%;border-collapse:collapse;min-width:760px}
th,td{padding:14px;border-bottom:1px solid var(--khun-line);text-align:left;font-size:14px;vertical-align:top}
th{background:#f8fafc;color:#334155;font-weight:950}
tr:hover td{background:#fbfdff}
.status{display:inline-block;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:950}
.pending{background:#fff7ed;color:#c2410c}.confirmed{background:#eff6ff;color:#1d4ed8}.collected{background:#ecfdf5;color:#047857}.reported{background:#f0fdf4;color:#166534}.cancelled{background:#fef2f2;color:#991b1b}
.report-link{color:var(--khun-red);font-weight:950}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}
.map-box{height:270px;border-radius:24px;overflow:hidden;border:1px solid var(--khun-line);background:#e2e8f0;box-shadow:var(--khun-shadow-soft)}
.map-box iframe{width:100%;height:100%;border:0}

/* Footer */
.footer{background:linear-gradient(180deg,var(--khun-navy-dark),#031429);color:#cbd5e1;padding:48px 0 20px}
.footer-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr 1fr;gap:28px}
.footer h3,.footer h4{color:#fff;margin-top:0}
.footer a,.footer p{display:block;color:#cbd5e1;margin:8px 0;line-height:1.65}
.footer a:hover{color:#fff}
.copy{border-top:1px solid rgba(255,255,255,.12);margin-top:28px;padding-top:18px;text-align:center;color:#94a3b8}
.whatsapp-float{position:fixed;right:18px;bottom:18px;background:#25d366;color:#fff;width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;box-shadow:0 18px 38px rgba(0,0,0,.24);z-index:80}
.whatsapp-float:hover{transform:translateY(-3px)}

/* Booking page */
.booking-page{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}
.booking-hero .container{
  display:grid;
  gap:14px;
}
.booking-hero-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.booking-section{
  padding-top:44px;
}
.booking-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 340px;
  gap:24px;
  align-items:start;
}
.booking-card,
.booking-flow-card,
.booking-summary-card{
  width:100%;
  box-sizing:border-box;
  border-radius:18px;
}
.booking-card h2,
.booking-flow-card h2{
  margin-top:0;
}
.booking-form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.booking-form-grid .full{
  grid-column:1/-1;
}
.booking-card label{
  display:block;
  margin:0 0 7px;
  color:#334155;
  font-weight:850;
}
.booking-card input,
.booking-card select,
.booking-card textarea{
  width:100%;
  box-sizing:border-box;
  min-height:46px;
  font-size:16px;
}
.booking-card textarea{
  min-height:96px;
  resize:vertical;
}
.booking-test-search-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
}
.booking-category-chips{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:14px 0;
}
.booking-catalog-card{
  margin:14px 0;
  max-height:320px;
}
.booking-selected-card{
  margin:14px 0;
}
.booking-total-bar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  background:#f8fbff;
  border:1px solid var(--khun-line);
  border-radius:16px;
  padding:14px 16px;
  margin:14px 0;
  color:var(--khun-navy);
  font-weight:950;
}
.booking-submit-btn{
  width:100%;
  min-height:50px;
  border-radius:999px;
  font-size:16px;
  font-weight:900;
  margin-top:18px;
}
.booking-flow-card{
  position:sticky;
  top:92px;
}
.flow-step{
  display:flex;
  gap:12px;
  align-items:flex-start;
  padding:12px 0;
  border-bottom:1px solid var(--khun-line);
  color:#334155;
  font-weight:800;
}
.flow-step b{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  flex:0 0 28px;
  border-radius:50%;
  background:var(--khun-red);
  color:#fff;
  font-size:14px;
}
.booking-contact-card{
  display:grid;
  gap:5px;
  margin-top:18px;
  padding:14px;
  border-radius:16px;
  background:#f8fafc;
  border:1px solid var(--khun-line);
  color:#475569;
}
.booking-contact-card b,
.booking-contact-card a{
  color:var(--khun-navy);
}

/* Responsive */
@media(max-width:1080px){
  .menu{gap:12px;font-size:13.5px}
  .brand span{font-size:19px}
}
@media(max-width:980px){
  .hero-grid,.form-wrap,.footer-grid{grid-template-columns:1fr}
  .grid-2,.grid-3,.grid-4,.metric-grid{grid-template-columns:1fr 1fr}
  .nav-toggle-label{display:flex;margin-left:auto}
  .menu{
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background:#fff;
    border:1px solid var(--khun-line);
    border-radius:0 0 20px 20px;
    box-shadow:0 18px 38px rgba(15,23,42,.12);
    padding:12px;
    flex-direction:column;
    align-items:stretch;
    gap:4px;
  }
  .menu a{padding:12px 14px;border-radius:12px}
  .menu a:hover{background:#f8fafc}
  .menu a:after{display:none}
  .nav-toggle:checked ~ .menu{display:flex}
  .hero{padding:58px 0 42px}
  .dashboard{grid-template-columns:1fr}
  .sidebar{height:auto;position:static;width:100%}
  .dashboard .main{margin-left:0}
  .side-menu{grid-template-columns:repeat(2,1fr)}
  .section-head{display:block}
}
@media(max-width:640px){
  .topbar .container{font-size:12.5px}
  .brand img{width:56px;height:56px}
  .brand span{font-size:18px}
  .nav-inner{gap:10px}
  .nav .btn{display:none}
  .hero h1{letter-spacing:-1px}
  .hero-card{padding:20px;border-radius:26px}
  .quick-grid,.grid-2,.grid-3,.grid-4,.metric-grid,.two{grid-template-columns:1fr}
  .section{padding:52px 0}
  .side-menu{grid-template-columns:1fr}
  .main{padding:18px}
  .dash-top{display:block}
  .footer-grid{gap:12px}
}

@media(max-width:768px){
  .container{width:min(100% - 32px,1180px)}
  .topbar .container{display:grid;gap:4px;text-align:center;justify-content:center}
  .hero-actions,.toolbar,.report-actions{display:grid}
  .hero-actions .btn,.toolbar .btn,.report-actions .btn{width:100%}
  .form-card,.card,.auth-box{border-radius:18px;padding:20px}
  .table-card{overflow-x:auto}
  table{min-width:720px}
}

@media(max-width:480px){
  .container{width:min(100% - 22px,1180px)}
  .brand img{width:48px;height:48px;border-radius:14px}
  .brand span{font-size:16px}
  .nav-inner{padding:9px 0}
  .page-hero{padding:42px 0}
  .page-hero h1{font-size:32px}
  .section{padding:42px 0}
  .btn{min-height:46px;width:100%;padding:13px 16px}
  .hero p,.lead{font-size:15px}
  .footer{padding-top:36px}
  .whatsapp-float{width:54px;height:54px;right:14px;bottom:14px}
}


/* ===== Legacy-style admin patient entry/report screens inspired by provided reference ===== */
.admin-main{background:linear-gradient(180deg,#fff7ef,#effffb 55%,#f7fbff)}
.legacy-shell{border:1px solid #d9a982;background:rgba(255,236,216,.86);border-radius:12px;overflow:hidden;box-shadow:0 12px 35px rgba(5,31,65,.10);margin-bottom:24px}
.legacy-titlebar{background:linear-gradient(90deg,#b60012,#e30613);color:white;padding:12px 18px;display:flex;justify-content:space-between;gap:14px;align-items:center;font-weight:900;letter-spacing:.3px}
.legacy-titlebar span{font-size:13px;color:#ffe66b}.rate-row{display:flex;gap:16px;align-items:center;padding:10px 18px;background:#fff3f3;color:#061b36;font-weight:800;flex-wrap:wrap}.rate-row label{margin:0;display:inline-flex;align-items:center;gap:5px}.rate-row input{width:auto}
.legacy-form-grid{display:grid;grid-template-columns:1fr 1.1fr 1.1fr;gap:26px;padding:18px;background:rgba(255,222,188,.55)}
.legacy-form-grid label{display:grid;grid-template-columns:150px 1fr;align-items:center;margin:0 0 9px;color:#111827;font-weight:900;font-size:14px;text-transform:uppercase}.legacy-form-grid input,.legacy-form-grid select{height:34px;border:2px solid #7c6f6b;border-radius:4px;padding:5px 8px;background:#f8fafc;font-weight:700}
.legacy-add-row{display:grid;grid-template-columns:1fr 160px 190px 210px;gap:14px;align-items:end;background:#e9a179;padding:12px 18px}.legacy-add-row label{margin:0 0 5px;font-weight:900;color:#0b1736}.legacy-add-row input{height:35px;border:2px solid #5b728f;border-radius:4px}.legacy-green,.legacy-blue{height:42px;border:0;border-radius:4px;color:white;font-weight:900;font-size:16px;cursor:pointer}.legacy-green{background:#43b65f}.legacy-blue{background:#45a7c8}.entry-layout{display:grid;grid-template-columns:1fr 310px;gap:16px;align-items:start;padding:0 18px 18px}.legacy-table-card{margin-top:0;border-radius:0;box-shadow:none}.legacy-table-card th{background:#e6d000!important;color:#061b36!important;font-weight:900}.legacy-table-card td{background:#fff;font-weight:700}.billing-box{background:#00aeb7;color:#073042;padding:16px;border-radius:14px;display:grid;grid-template-columns:1fr 1.2fr;gap:9px;align-self:start;font-weight:900;position:sticky;top:90px}.billing-box label{margin:0;color:#083042;font-weight:900}.billing-box input{height:34px;border:0;border-radius:4px;background:#f4f4f4;text-align:right;font-weight:900}.save-strip{grid-column:1/-1;background:#df7489;color:white;border:0;border-radius:4px;padding:12px;font-weight:900;font-size:18px;cursor:pointer}.test-count{grid-column:1/-1;background:#e6c000;color:white;text-align:center;padding:12px;border-radius:4px;font-size:22px;font-weight:1000}.mini-remove{background:#d83d4a;color:white;border:0;border-radius:4px;padding:5px 10px;font-weight:800;cursor:pointer}.report-select-card{margin:18px}.report-info-grid{grid-template-columns:1fr 1fr 1fr}.report-table-card{margin:0 18px 18px}.report-table-card input,.report-table-card select{height:34px;border:1px solid #a6b0c3;border-radius:4px;padding:4px 8px;width:100%;font-weight:700}.report-table-card .finding-heading-row td{background:#eef2f7!important;color:#061b36;text-align:left;font-weight:1000;text-transform:uppercase}.report-table-card .machine-filled-row td,.report-table-card .machine-filled-row input{background:#ecfdf3!important}.history-btn{background:#e0a63a;color:white;border:0;border-radius:3px;padding:7px 10px;font-weight:900}.report-actions{display:flex;justify-content:flex-end;gap:12px;padding:0 18px 18px}.table-card table select,.table-card table input{min-width:110px}
@media(max-width:1100px){.legacy-form-grid,.entry-layout,.legacy-add-row,.report-info-grid{grid-template-columns:1fr}.legacy-form-grid label{grid-template-columns:1fr}.billing-box{grid-template-columns:1fr;position:static}}

/* 2026 LIS admin refresh */
.admin-main{
  background:#f5f8fc;
  min-width:0;
}
.admin-topbar{
  position:sticky;
  top:0;
  z-index:20;
  background:rgba(245,248,252,.92);
  backdrop-filter:blur(16px);
  border-bottom:1px solid #e2e8f0;
  margin:-24px -24px 22px;
  padding:18px 24px;
}
.admin-top-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}
.admin-top-actions input{
  width:min(360px,42vw);
  border:1px solid #d8e1ef;
  border-radius:999px;
  padding:12px 16px;
  background:#fff;
  box-shadow:0 8px 20px rgba(15,23,42,.05);
}
#todayText{
  color:#64748b;
  font-weight:850;
  white-space:nowrap;
}
.admin-metric-grid{
  grid-template-columns:repeat(5,minmax(150px,1fr));
}
.admin-metric-grid .metric{
  border-radius:16px;
  border:1px solid #dbe5f2;
  box-shadow:0 10px 25px rgba(2,43,89,.07);
}
.quick-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:18px 0;
}
.toolbar{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}
.toolbar input,.toolbar select{
  border:1px solid #d8e1ef;
  border-radius:12px;
  padding:10px 12px;
  background:#fff;
}
.table-card table tr:hover td{
  background:#f8fbff;
}
.settings-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.settings-grid label{
  display:grid;
  gap:6px;
  color:#334155;
  font-weight:850;
}
.settings-grid input{
  border:1px solid #d8e1ef;
  border-radius:12px;
  padding:12px;
  background:#fff;
}
@media(max-width:1200px){
  .admin-metric-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:820px){
  .dashboard{grid-template-columns:1fr}
  .sidebar{position:static;width:100%;height:auto}
  .dashboard .main{margin-left:0}
  .admin-topbar{position:static;margin:0 0 18px;padding:16px 0}
  .admin-top-actions{justify-content:flex-start}
  .admin-top-actions input{width:100%}
  .admin-metric-grid,.settings-grid{grid-template-columns:1fr}
}


/* Finding value popup like diagnostic software */
.attach-btn{background:#35b767;color:white;border:0;border-radius:4px;padding:7px 10px;font-weight:900;margin-right:6px;cursor:pointer;white-space:nowrap}
.finding-modal{position:fixed;inset:0;background:rgba(0,0,0,.48);z-index:9999;display:flex;align-items:center;justify-content:center;padding:18px}.finding-modal.hidden{display:none!important}.finding-box{width:min(980px,96vw);max-height:90vh;background:#e6f7f6;border:2px solid #498d8a;box-shadow:0 25px 80px rgba(0,0,0,.35);display:flex;flex-direction:column}.finding-head{background:linear-gradient(90deg,#318d8c,#6cc4bd);color:white;padding:10px 14px;display:flex;justify-content:space-between;align-items:center;font-size:22px;font-weight:900}.finding-head button{background:transparent;border:0;color:white;font-size:26px;cursor:pointer}.finding-table-wrap{overflow:auto;background:#f8fffd}.finding-table-wrap table{width:100%;border-collapse:collapse}.finding-table-wrap th{background:#d8eee9;color:#111827}.finding-table-wrap td,.finding-table-wrap th{border:1px solid #4f6367;padding:0}.finding-table-wrap input{width:100%;height:34px;border:0;background:#fffbe9;border-radius:0;padding:5px 8px;font-weight:800}.finding-table-wrap tr:nth-child(3) input{background:#e5e7eb;font-weight:900;color:#111827}.finding-footer{display:flex;gap:10px;align-items:center;padding:9px;background:#7dc8c1;flex-wrap:wrap}.finding-footer label{display:flex;align-items:center;gap:8px;margin:0;color:white;font-weight:900}.finding-footer input{height:32px;border:1px solid #698f94;border-radius:4px;padding:5px 8px;font-weight:900}.small-save{grid-column:auto!important;padding:9px 16px!important;font-size:14px!important;background:#df7489!important}
@media(max-width:700px){.finding-head{font-size:16px}.finding-footer{display:grid}.attach-btn{margin-bottom:6px}}

/* ===== Admin dashboard fixed-sidebar layout repair ===== */
html,body{
  margin:0;
  padding:0;
  width:100%;
  min-height:100%;
  overflow-x:hidden;
}

body{
  background:#f3f6fb;
}

.admin-shell{
  min-height:100vh;
  width:100%;
  display:flex;
  align-items:stretch;
  background:#f3f6fb;
}

.admin-sidebar{
  position:fixed;
  left:0;
  top:0;
  bottom:0;
  width:260px;
  min-width:260px;
  height:100vh;
  background:linear-gradient(180deg,#06264a,#021b35);
  color:#fff;
  overflow-y:auto;
  z-index:100;
}

.admin-main{
  flex:1 1 auto;
  min-width:0;
  margin-left:260px;
  width:calc(100% - 260px);
  min-height:100vh;
  background:#f3f6fb;
  overflow-x:hidden;
}

.dashboard .admin-main{
  margin-left:260px;
}

.admin-content,
.dashboard-content,
.main-content{
  width:100%;
  max-width:none;
  box-sizing:border-box;
  padding:28px 32px;
}

.admin-main.main{
  padding:0;
}

.admin-topbar,
.lab-header,
.command-header{
  width:100%;
  box-sizing:border-box;
}

.admin-topbar{
  margin:-28px -32px 22px;
  padding:18px 32px;
}

.dashboard-section,
.admin-section,
.section-panel,
.admin-main section{
  width:100%;
  max-width:none;
  box-sizing:border-box;
}

.dashboard-grid,
.stats-grid,
.admin-metric-grid{
  width:100%;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:16px;
}

.table-wrap,
.admin-table-wrap,
.table-card{
  width:100%;
  overflow-x:auto;
}

table{
  width:100%;
  border-collapse:collapse;
}

.new-booking-layout,
.entry-layout{
  width:100%;
  display:grid;
  grid-template-columns:minmax(0,1fr) 310px;
  gap:16px;
  align-items:start;
}

.booking-form-card,
.patient-entry-form,
.machine-results-card,
.tests-library-card,
.legacy-shell,
.form-card{
  width:100%;
  box-sizing:border-box;
}

.billing-summary-card,
.billing-box{
  position:sticky;
  top:90px;
  width:100%;
  box-sizing:border-box;
}

.test-search-wrap,
.test-search-box{
  position:relative;
  width:100%;
}

.test-suggestions{
  position:absolute;
  left:0;
  right:0;
  top:100%;
  z-index:9999;
  width:100%;
}

@media(max-width:1100px){
  .entry-layout{
    grid-template-columns:1fr;
  }

  .billing-box{
    position:static;
  }
}

@media(max-width:900px){
  .admin-sidebar{
    position:relative;
    width:100%;
    min-width:0;
    height:auto;
  }

  .admin-main,
  .dashboard .admin-main{
    margin-left:0;
    width:100%;
  }

  .admin-shell{
    display:block;
  }

  .admin-content,
  .dashboard-content,
  .main-content{
    padding:18px;
  }

  .admin-topbar{
    position:static;
    margin:0 0 18px;
    padding:16px 0;
  }

  .new-booking-layout,
  .entry-layout{
    grid-template-columns:1fr;
  }

  .billing-summary-card,
  .billing-box{
    position:static;
  }
}

/* Booking mobile overrides must stay after global table/mobile rules. */
@media(max-width:768px){
  html,body{
    max-width:100%;
    overflow-x:hidden;
  }

  .booking-page{
    padding:0 12px 82px;
  }

  .booking-page .container{
    width:100%;
  }

  .booking-hero{
    padding:34px 0 24px;
  }

  .booking-hero h1,
  .booking-card h2,
  .booking-flow-card h2{
    font-size:24px;
    line-height:1.2;
    letter-spacing:0;
  }

  .booking-hero-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .booking-hero-actions .btn{
    width:100%;
  }

  .booking-section{
    padding:22px 0 34px;
  }

  .booking-layout{
    grid-template-columns:1fr;
    gap:16px;
  }

  .booking-form-grid{
    grid-template-columns:1fr;
  }

  .booking-card,
  .booking-flow-card,
  .booking-summary-card{
    padding:16px;
    border-radius:16px;
  }

  .booking-test-search-row{
    grid-template-columns:1fr;
  }

  .booking-test-search-row .btn{
    width:100%;
  }

  .booking-category-chips{
    flex-wrap:nowrap;
    overflow-x:auto;
    padding-bottom:4px;
  }

  .booking-category-chips .btn{
    width:auto;
    flex:0 0 auto;
  }

  .booking-page .table-card{
    border-radius:16px;
    box-shadow:none;
  }

  .booking-page table{
    min-width:0;
  }

  .booking-catalog-card thead,
  .booking-selected-card thead{
    display:none;
  }

  .booking-catalog-card table,
  .booking-catalog-card tbody,
  .booking-catalog-card tr,
  .booking-catalog-card td,
  .booking-selected-card table,
  .booking-selected-card tbody,
  .booking-selected-card tr,
  .booking-selected-card td{
    display:block;
    width:100%;
  }

  .booking-catalog-card tr,
  .booking-selected-card tr{
    border-bottom:1px solid var(--khun-line);
    padding:12px;
  }

  .booking-catalog-card td,
  .booking-selected-card td{
    border:0;
    padding:5px 0;
  }

  .booking-catalog-card td:nth-child(2)::before,
  .booking-selected-card td:nth-child(2)::before{
    content:"Category: ";
    font-weight:900;
    color:var(--khun-navy);
  }

  .booking-catalog-card td:nth-child(3)::before,
  .booking-selected-card td:nth-child(3)::before{
    content:"Price: ";
    font-weight:900;
    color:var(--khun-navy);
  }

  .booking-catalog-card td:nth-child(4)::before,
  .booking-selected-card td:nth-child(4)::before{
    content:"Parameters: ";
    font-weight:900;
    color:var(--khun-navy);
  }

  .booking-catalog-card td:last-child .btn,
  .booking-selected-card td:last-child .btn{
    width:100%;
    margin-top:6px;
  }

  .booking-flow-card{
    position:static;
  }

  .flow-step{
    gap:10px;
    padding:10px 0;
  }

  .whatsapp-float{
    width:52px;
    height:52px;
    right:12px;
    bottom:12px;
    font-size:24px;
  }

  .desktop-only{
    display:none!important;
  }
}

@media(min-width:769px){
  .mobile-only{
    display:none!important;
  }
}
