:root{--bg:#f1f5f9;--panel:#fff;--text:#0f172a;--muted:#64748b;--line:#cbd5e1;--primary:#1d4ed8;--danger:#b91c1c}html.dark{--bg:#0f172a;--panel:#1e293b;--text:#e2e8f0;--muted:#94a3b8;--line:#475569;--primary:#3b82f6}*{box-sizing:border-box}body{margin:0;font:15px system-ui;background:var(--bg);color:var(--text)}a{color:inherit}.layout{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:#111827;color:#e5e7eb;padding:20px}.sidebar a{display:block;padding:11px;border-radius:8px;text-decoration:none;margin:3px 0}.sidebar a:hover,.sidebar a.active{background:#1d4ed8}.main{padding:24px;min-width:0}.top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:18px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.stat strong{font-size:28px;display:block}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;background:var(--panel)}th,td{text-align:left;padding:10px;border-bottom:1px solid var(--line);white-space:nowrap}input,select,textarea,button{font:inherit;padding:10px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--text)}input,select,textarea{width:100%}textarea{min-height:110px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.full{grid-column:1/-1}.check{display:flex;gap:8px;align-items:center}.check input{width:auto}.btn{display:inline-block;background:var(--primary);color:#fff;border:0;text-decoration:none;padding:10px 14px;border-radius:8px;font-weight:700;cursor:pointer}.btn.danger{background:var(--danger)}.notice{padding:12px;border-radius:8px;background:#dcfce7;color:#166534;margin-bottom:15px}.error{background:#fee2e2;color:#991b1b}.muted{color:var(--muted)}.login{max-width:420px;margin:12vh auto}.pagination a{padding:8px;text-decoration:none}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.badge{padding:4px 8px;border-radius:999px;background:var(--bg)}@media(max-width:800px){.layout{grid-template-columns:1fr}.sidebar{position:static}.form-grid{grid-template-columns:1fr}.main{padding:14px}}
.hidden{display:none!important}.lookup-card{padding:26px}.lookup-label{display:block;font-size:17px;font-weight:700}.lookup-label input{margin-top:10px;font-size:17px;padding:14px}.record-heading{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px;border-bottom:1px solid var(--line)}.record-heading strong{display:block;font-size:22px;margin-top:4px}.btn.secondary{background:var(--muted)}.check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;padding:14px;border:1px solid var(--line);border-radius:10px}.save-bar{display:flex;gap:14px;align-items:center;position:sticky;bottom:0;background:var(--panel);padding:14px 0 4px}.save-bar .btn{min-width:160px}.lookup-card+#quickForm{scroll-margin-top:12px}@media(max-width:700px){.record-heading,.save-bar{align-items:stretch;flex-direction:column}.save-bar .btn{width:100%}}

/* Improved quick-update verification controls */
.verification-section{margin-top:4px;padding-top:4px}
.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:12px}
.section-heading h3{margin:2px 0 0;font-size:18px;line-height:1.25}
.section-heading p{margin:0;text-align:right}
.section-kicker{display:block;color:var(--primary);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;padding:14px;background:color-mix(in srgb,var(--bg) 72%,transparent);border:1px solid var(--line);border-radius:12px}
.check{min-height:46px;display:flex;align-items:center;gap:11px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.check:hover{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 14%,transparent);transform:translateY(-1px)}
.check input{width:18px;height:18px;margin:0;flex:0 0 auto;accent-color:var(--primary)}
.check span{font-weight:650;line-height:1.25}
.save-bar{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:8px;padding:18px 0 2px;border-top:1px solid var(--line);position:sticky;bottom:0;background:linear-gradient(to bottom,color-mix(in srgb,var(--panel) 88%,transparent),var(--panel) 28%)}
.save-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.save-copy strong{font-size:15px}
.save-primary{min-width:170px;padding:12px 18px;box-shadow:0 8px 20px color-mix(in srgb,var(--primary) 22%,transparent)}
@media(max-width:700px){.section-heading{align-items:flex-start;flex-direction:column;gap:5px}.section-heading p{text-align:left}.check-grid{grid-template-columns:1fr}.save-bar{align-items:stretch;flex-direction:column-reverse;gap:10px}.save-primary{width:100%}}

/* Collapsible admin controls */
.admin-section{border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--bg) 72%,transparent);overflow:hidden}
.admin-section summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 16px;cursor:pointer;font-weight:800;list-style:none;background:var(--panel)}
.admin-section summary::-webkit-details-marker{display:none}
.admin-section summary::after{content:'+';font-size:22px;line-height:1;color:var(--primary);transition:transform .15s ease}
.admin-section[open] summary::after{transform:rotate(45deg)}
.admin-section summary small{margin-left:auto;color:var(--muted);font-weight:500}
.admin-section-body{padding:16px;border-top:1px solid var(--line)}
.admin-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}
.save-bar{justify-content:flex-end}
@media(max-width:700px){.admin-section summary{align-items:flex-start}.admin-section summary small{display:none}.admin-fields{grid-template-columns:1fr}}

.admin-section summary small{white-space:nowrap}

.admin-section .internal-use-body{display:none!important}
.admin-section.internal-unlocked[open] .internal-use-body{display:block!important}
.admin-section summary span{margin-right:.35rem}

body.modal-open{overflow:hidden}
.modal-backdrop{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:1rem;background:rgba(3,8,18,.74);backdrop-filter:blur(5px)}
.modal-backdrop.hidden{display:none!important}
.modal-card{position:relative;width:min(100%,430px);padding:1.6rem;border:1px solid var(--border);border-radius:18px;background:var(--panel);box-shadow:0 24px 80px rgba(0,0,0,.4)}
.modal-card h2{margin:.4rem 0 .45rem;text-align:center}
.modal-card p{margin:0 0 1.25rem;color:var(--muted);text-align:center;line-height:1.5}
.modal-close{position:absolute;top:.65rem;right:.7rem;width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:9px;background:transparent;color:var(--text);font-size:1.7rem;line-height:1;cursor:pointer}
.modal-close:hover{background:rgba(148,163,184,.14)}
.password-field{position:relative}
.modal-actions{display:flex;justify-content:flex-end;gap:.7rem;margin-top:1.1rem}
.modal-error{margin-top:.75rem;padding:.7rem .8rem;border:1px solid rgba(239,68,68,.45);border-radius:10px;background:rgba(239,68,68,.1);color:#fca5a5;font-size:.92rem}
.btn-secondary{background:transparent!important;color:var(--text)!important;border:1px solid var(--border)!important}
.modal-card button:disabled{opacity:.65;cursor:not-allowed}
@media (max-width:520px){.modal-card{padding:1.25rem}.modal-actions{flex-direction:column-reverse}.modal-actions .btn{width:100%}}

.modal-close{
  width:auto!important;
  height:auto!important;
  padding:.45rem .65rem!important;
  font-size:.85rem!important;
  font-weight:700;
}

/* Dark login page */
body.login-page{
  min-height:100vh;
  margin:0;
  background:
    radial-gradient(circle at 15% 10%, rgba(37,99,235,.2), transparent 30%),
    radial-gradient(circle at 85% 90%, rgba(30,41,59,.75), transparent 36%),
    linear-gradient(145deg,#030712 0%,#09111f 46%,#111827 100%);
  color:#e5e7eb;
}
.login-wrap{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:1.25rem;
}
.login-card{
  width:min(100%,430px);
  margin:0;
  padding:2rem;
  border:1px solid rgba(148,163,184,.18);
  border-radius:20px;
  background:rgba(15,23,42,.95);
  box-shadow:0 28px 90px rgba(0,0,0,.52);
  backdrop-filter:blur(14px);
}
.login-card h1{
  margin-top:0;
  color:#f8fafc;
}
.login-card label{
  color:#cbd5e1;
}
.login-card input{
  width:100%;
  background:#0b1220;
  color:#f8fafc;
  border-color:rgba(148,163,184,.22);
}
.login-card input:focus{
  border-color:#3b82f6;
  box-shadow:0 0 0 3px rgba(59,130,246,.18);
}
.login-card .btn{
  width:100%;
  margin-top:.35rem;
  box-shadow:0 12px 28px rgba(37,99,235,.24);
}
.login-card .notice.error{
  background:rgba(127,29,29,.22);
  border-color:rgba(248,113,113,.28);
  color:#fecaca;
}
@media (max-width:520px){
  .login-card{
    padding:1.4rem;
    border-radius:16px;
  }
}

/* Internal Use modal spacing cleanup */
.modal-card{
  padding:1.75rem!important;
}
.modal-card h2{
  margin:0 0 .65rem!important;
  text-align:left!important;
}
.modal-card p{
  margin:0 0 1.2rem!important;
  text-align:left!important;
}
.modal-card form{
  display:grid;
  gap:.55rem;
}
.modal-card label{
  margin:0;
  font-weight:600;
}
.password-field{
  margin:0;
}
.password-field input{
  width:100%;
  margin:0;
}
.modal-actions{
  margin-top:.85rem!important;
  justify-content:flex-end!important;
  align-items:center;
}
.modal-actions .btn{
  min-width:96px;
}
.modal-close{
  display:none!important;
}
@media (max-width:520px){
  .modal-card{
    padding:1.25rem!important;
  }
  .modal-actions{
    gap:.55rem;
  }
}

/* Mobile hamburger navigation */
.mobile-menu-button{
  display:none;
  position:fixed;
  top:14px;
  left:14px;
  z-index:1202;
  width:44px;
  height:44px;
  padding:10px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--panel);
  box-shadow:0 10px 30px rgba(0,0,0,.25);
  cursor:pointer;
}
.mobile-menu-button span{
  display:block;
  height:2px;
  margin:5px 0;
  border-radius:999px;
  background:var(--text);
  transition:transform .2s ease,opacity .2s ease;
}
.mobile-menu-button.active span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.mobile-menu-button.active span:nth-child(2){opacity:0}
.mobile-menu-button.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-menu-backdrop{
  position:fixed;
  inset:0;
  z-index:1199;
  background:rgba(2,6,23,.68);
  backdrop-filter:blur(2px);
}
.mobile-menu-backdrop.hidden{display:none!important}
body.menu-open{overflow:hidden}

@media (max-width:900px){
  .mobile-menu-button{display:block}
  .layout{display:block!important;min-width:0}
  .sidebar{
    position:fixed!important;
    top:0;
    left:0;
    bottom:0;
    z-index:1200;
    width:min(84vw,300px)!important;
    max-width:300px;
    transform:translateX(-105%);
    transition:transform .24s ease;
    box-shadow:20px 0 55px rgba(0,0,0,.38);
    overflow-y:auto;
  }
  .sidebar.mobile-open{transform:translateX(0)}
  .main{
    width:100%!important;
    min-width:0;
    margin-left:0!important;
    padding-left:1rem!important;
    padding-right:1rem!important;
  }
  .top{
    min-height:66px;
    padding-left:4.15rem!important;
    gap:.75rem;
  }
  .top h1{
    font-size:1.35rem;
    line-height:1.2;
  }
  .grid,
  .form-grid,
  .admin-fields,
  .check-grid{
    grid-template-columns:1fr!important;
  }
  .card{max-width:100%}
  table{
    display:block;
    width:100%;
    overflow-x:auto;
    white-space:nowrap;
  }
  input,select,textarea,button{max-width:100%}
}

@media (max-width:520px){
  .mobile-menu-button{top:10px;left:10px}
  .main{padding-left:.7rem!important;padding-right:.7rem!important}
  .top{
    padding-left:3.85rem!important;
    align-items:flex-start!important;
    flex-direction:column;
  }
  .top>div{width:100%}
  .card{
    padding:1rem!important;
    border-radius:14px!important;
  }
  .save-bar{display:block!important}
  .save-bar .btn,
  button[type="submit"]{width:100%}
  .modal-card{
    width:calc(100vw - 1.5rem)!important;
    max-height:calc(100vh - 1.5rem);
    overflow-y:auto;
  }
}

/* Authoritative mobile navigation fix */
.mobile-menu-button{
  display:none;
}

@media screen and (max-width:900px){
  html,body{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
  }

  body{
    position:relative;
  }

  .layout{
    display:block!important;
    width:100%!important;
    min-height:100vh;
  }

  #appSidebar.sidebar{
    position:fixed!important;
    inset:0 auto 0 0!important;
    display:block!important;
    width:min(86vw,320px)!important;
    max-width:320px!important;
    min-height:100dvh!important;
    height:100dvh!important;
    margin:0!important;
    padding:5rem 1.25rem 1.5rem!important;
    transform:translate3d(-110%,0,0)!important;
    transition:transform .24s ease!important;
    z-index:1200!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    background:var(--sidebar,var(--panel))!important;
    box-shadow:18px 0 50px rgba(0,0,0,.45)!important;
  }

  #appSidebar.sidebar.mobile-open{
    transform:translate3d(0,0,0)!important;
  }

  #appSidebar.sidebar h2{
    margin-top:0!important;
  }

  .main{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin:0!important;
    padding:0 .9rem 1.25rem!important;
  }

  .top{
    width:100%!important;
    min-height:72px!important;
    padding:1rem 0 1rem 4rem!important;
    box-sizing:border-box!important;
  }

  .mobile-menu-button{
    position:fixed!important;
    top:12px!important;
    left:12px!important;
    z-index:1202!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:44px!important;
    height:44px!important;
    min-width:44px!important;
    padding:0!important;
    margin:0!important;
    border:1px solid var(--border)!important;
    border-radius:12px!important;
    background:var(--panel)!important;
    color:var(--text)!important;
    box-shadow:0 8px 24px rgba(0,0,0,.28)!important;
  }

  .mobile-menu-button .hamburger-lines{
    display:block!important;
    width:20px!important;
    height:16px!important;
    position:relative!important;
  }

  .mobile-menu-button .hamburger-lines>span{
    position:absolute!important;
    left:0!important;
    width:20px!important;
    height:2px!important;
    margin:0!important;
    border-radius:999px!important;
    background:currentColor!important;
    transition:transform .2s ease,opacity .2s ease,top .2s ease!important;
  }

  .mobile-menu-button .hamburger-lines>span:nth-child(1){top:0!important}
  .mobile-menu-button .hamburger-lines>span:nth-child(2){top:7px!important}
  .mobile-menu-button .hamburger-lines>span:nth-child(3){top:14px!important}

  .mobile-menu-button.active .hamburger-lines>span:nth-child(1){
    top:7px!important;
    transform:rotate(45deg)!important;
  }

  .mobile-menu-button.active .hamburger-lines>span:nth-child(2){
    opacity:0!important;
  }

  .mobile-menu-button.active .hamburger-lines>span:nth-child(3){
    top:7px!important;
    transform:rotate(-45deg)!important;
  }

  #mobileMenuBackdrop.mobile-menu-backdrop{
    position:fixed!important;
    inset:0!important;
    z-index:1199!important;
    background:rgba(2,6,23,.72)!important;
    backdrop-filter:blur(2px);
  }

  #mobileMenuBackdrop.mobile-menu-backdrop.hidden{
    display:none!important;
  }

  body.menu-open{
    overflow:hidden!important;
    touch-action:none;
  }

  .grid,
  .form-grid,
  .admin-fields,
  .check-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }

  .card{
    width:100%!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
}

@media screen and (max-width:520px){
  .main{
    padding-left:.65rem!important;
    padding-right:.65rem!important;
  }

  .top{
    min-height:68px!important;
    padding-left:3.85rem!important;
    align-items:center!important;
  }

  .top h1{
    margin:0!important;
    font-size:1.45rem!important;
  }

  #appSidebar.sidebar{
    width:min(90vw,310px)!important;
  }

  .mobile-menu-button{
    top:10px!important;
    left:10px!important;
  }

  .stats,
  .dashboard-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }
}
