/* ============================================================
   RESPONSIVE — 320 / 375 / 425 / 768 / 1024 / 1440 / 1920
   ============================================================ */

@media (max-width:1440px){
  .grid-4{grid-template-columns:repeat(4,1fr);}
}

@media (max-width:1180px){
  .grid-4{grid-template-columns:repeat(2,1fr);}
  .grid-3{grid-template-columns:repeat(2,1fr);}
  .col-span-2{grid-column:span 1;}
}

@media (max-width:1024px){
  .sidebar{position:fixed;left:0;top:0;transform:translateX(-100%);box-shadow:var(--shadow);}
  .sidebar.mobile-open{transform:translateX(0);}
  .sidebar.collapsed{width:250px;}
  .sidebar.collapsed .name,.sidebar.collapsed .nav-label,.sidebar.collapsed .nav-sec-title{display:block;}
  .topbar .searchbox{max-width:220px;}
}

@media (max-width:860px){
  .grid-2{grid-template-columns:1fr;}
  .form-grid{grid-template-columns:1fr;}
  .page{padding:18px 16px 100px;}
  .topbar{padding:12px 16px;}
}

@media (max-width:768px){
  .grid-4{grid-template-columns:repeat(2,1fr);}
  .grid-3{grid-template-columns:1fr;}
  .bottom-nav{display:block;}
  .fab{bottom:78px;right:16px;}
  .topbar .searchbox{display:none;}
  .page-title{font-size:1.25rem;}
}

@media (max-width:425px){
  .grid-4{grid-template-columns:repeat(2,1fr);}
  .stat-card .stat-value{font-size:1.2rem;}
  .lock-card{padding:28px 20px;}
  .modal2{padding:18px;}
}

@media (max-width:375px){
  .grid-4{grid-template-columns:1fr 1fr;}
  .page-head{flex-direction:column;align-items:flex-start;}
}

@media (max-width:320px){
  .grid-4,.grid-3{grid-template-columns:1fr;}
  .cal-cell{min-height:56px;font-size:.62rem;}
}

/* High contrast mode */
[data-contrast="high"]{
  --border: rgba(0,0,0,.35);
  --border-strong: rgba(0,0,0,.55);
  --text-muted:#333;
  --text-faint:#333;
}
[data-theme="dark"][data-contrast="high"]{
  --border: rgba(255,255,255,.4);
  --border-strong: rgba(255,255,255,.6);
  --text-muted:#e8e8e8;
  --text-faint:#d0d0d0;
}

@media print{
  .sidebar,.topbar,.bottom-nav,.fab,#toast-stack,.no-print{display:none !important;}
  .page{padding:0;}
  body{background:#fff;}
}
