/* Kwetu dark navy theme */
:root{
  --bg:#0b1220; --bg-2:#0f1b2d; --top-a:#0f172a; --top-b:#1e293b;
  --text:#E2E8F0; --muted:#94A3B8; --border:#1f2937;
  --accent:#22d3ee; --accent-2:#38bdf8;
  --green:#16a34a; --blue:#1d4ed8; --slate:#334155;
  --danger:#f87171; --warning:#f59e0b;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;}
a{color:var(--accent-2);text-decoration:none}
.container{max-width:1100px;margin:0 auto;padding:16px;}
.demo-bar{
  background:#1f2937;
  color:#facc15;
  padding:6px;
  min-height:36px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  font-size:12px;
  font-weight:600;
  border-bottom:1px solid rgba(250,204,21,.12);
}
.topbar{
  background: linear-gradient(90deg,var(--top-a),var(--top-b));
  padding:12px 16px; position:sticky; top:0; z-index:10;
  display:flex; align-items:center; gap:16px;
}
.topbar-head{display:contents}
.brand{font-weight:700; letter-spacing:.3px;}
.mobile-nav-shell{display:contents}
.topnav{display:flex; align-items:center; gap:8px; flex-wrap:wrap}
.nav-group{display:flex; align-items:center; gap:8px; flex-wrap:wrap}
.nav-group-label{display:none}
.topnav a{margin-right:0; padding:6px 10px; border-radius:999px; background:transparent; border:1px solid transparent; display:flex; align-items:center; gap:8px}
.nav-icon{font-size:1rem; line-height:1}
.topnav a{transition:background .2s ease,border-color .2s ease,box-shadow .2s ease,color .2s ease}
.topnav a.active, .topnav a:hover{border-color:var(--accent); background:rgba(34,211,238,.08)}
.menu-item{transition:all .2s ease}
.topbar-user{margin-left:auto; display:flex; align-items:center; gap:8px; flex-wrap:wrap}
.btn{display:inline-block;padding:10px 16px;border-radius:999px;border:1px solid var(--border);background:var(--bg-2);color:var(--text);box-shadow:0 2px 8px rgba(0,0,0,.25)}
.btn.primary{border-color:transparent;background:linear-gradient(90deg,var(--accent),var(--accent-2)); color:#03121a; font-weight:600}
.btn.danger{background:#3b0c0c;border-color:#4a1a1a}
.btn.small{padding:6px 10px;font-size:.9rem}
.card{background:var(--bg-2);border:1px solid var(--border);border-radius:16px;padding:16px; box-shadow:0 6px 24px rgba(0,0,0,.25);}
.grid{display:grid;gap:16px}
.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}
@media (max-width:900px){.grid.cols-3{grid-template-columns:1fr}.grid.cols-2{grid-template-columns:1fr}}
.h1{font-size:1.6rem;margin:0 0 10px}
.h2{font-size:1.2rem;margin:0 0 6px;color:var(--muted)}
.table{width:100%;border-collapse:collapse;font-size:.95rem}
.table th,.table td{border-bottom:1px solid var(--border);padding:10px 8px;text-align:left}
.table th{color:var(--muted);font-weight:600}
.input, select, textarea{width:100%;padding:10px;border-radius:12px;border:1px solid var(--border);background:#0c1525;color:var(--text)}
.row{display:flex;gap:12px;flex-wrap:wrap}
.col{flex:1;min-width:220px}
.badge{display:inline-block;padding:4px 10px;border-radius:999px;font-size:.8rem;border:1px solid var(--border);}
.badge.inside{background:#0d1c36;color:#cfe4ff;border-color:#0e2a5e}
.badge.out{background:#0f2415;color:#ccf5d6;border-color:#155a2c}
.flash{padding:10px 12px;border-radius:12px;background:#11203a;border:1px solid #17314e;margin:8px 0}
.flash.error{background:#2a1212;border-color:#4c1b1b}
footer{margin:32px 0 12px;color:var(--muted); font-size:.9rem; text-align:center}
.searchbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}
label{display:block;margin-bottom:6px;color:var(--muted);font-size:.9rem}
.form-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px}
kbd{background:#0e2238;border:1px solid #1f3857;border-radius:6px;padding:2px 6px}
.visitors-mobile-list{display:none}
.visitor-mobile-card{
  display:block;
  background:#0f172a;
  border:1px solid #1f2937;
  border-radius:12px;
  padding:14px;
  margin-bottom:12px;
  color:var(--text);
  cursor:pointer;
  text-decoration:none;
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.visitor-mobile-card:hover,
.visitor-mobile-card:focus-visible{
  border-color:rgba(56,189,248,.4);
  box-shadow:0 10px 24px rgba(0,0,0,.22);
  background:#122038;
}
.visitor-mobile-top{margin-bottom:12px}
.visitor-mobile-name{font-size:1.02rem;font-weight:700;color:var(--text)}
.visitor-mobile-phone{font-size:.92rem;color:var(--muted);margin-top:4px}
.visitor-mobile-section{padding-top:10px;margin-top:10px;border-top:1px solid rgba(31,41,55,.9)}
.visitor-mobile-row,
.visitor-mobile-status{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  margin-bottom:10px;
  font-size:.92rem;
}
.visitor-mobile-label{
  color:var(--muted);
  font-size:.82rem;
  min-width:108px;
}
.visitor-mobile-actions{
  display:flex;
  gap:10px;
  margin-top:14px;
}
@media (max-width:768px){
  .menu-toggle{
    display:block;
    background:none;
    border:none;
    color:var(--text);
    font-size:1.5rem;
    cursor:pointer;
    padding:8px;
    border-radius:8px;
    transition:background .2s ease;
    margin-left:auto;
  }
  .menu-toggle:hover{
    background:rgba(34,211,238,.1);
  }
  .topbar{
    align-items:center;
    flex-direction:row;
    gap:10px;
    padding:16px;
  }
  .topbar-head{
    display:flex;
    align-items:center;
    width:100%;
    gap:12px;
  }
  .brand{
    font-size:1.35rem;
    font-weight:800;
  }
  .mobile-nav-shell{
    display:block;
    position:fixed;
    top:0;
    left:-100%;
    width:100%;
    height:100vh;
    background:var(--bg);
    z-index:999;
    overflow-y:auto;
    transition:left .3s ease;
    padding:80px 0 20px;
    max-width:100%;
  }
  .mobile-nav-shell.active{
    left:0;
  }
  .topnav{
    flex-direction:column;
    align-items:stretch;
    gap:0;
    width:100%;
  }
  .nav-group{
    flex-direction:column;
    align-items:stretch;
    gap:0;
    width:100%;
    padding:10px 0 2px;
  }
  .nav-group + .nav-group{
    margin-top:6px;
    border-top:1px solid rgba(148,163,184,.14);
    padding-top:14px;
  }
  .nav-group-label{
    display:block;
    font-size:12px;
    font-weight:700;
    letter-spacing:1px;
    text-transform:uppercase;
    color:#94A3B8;
    margin:0 0 8px;
    padding:0 6px;
  }
  .topnav a{
    display:block;
    width:100%;
    padding:12px 16px;
    margin-bottom:8px;
    border-radius:14px;
    border:1px solid rgba(56,189,248,.08);
    background:rgba(15,27,45,.55);
  }
  .topnav a:hover,
  .topnav a:focus-visible{
    background:rgba(34,211,238,.12);
    border-color:rgba(56,189,248,.32);
  }
  .topnav a.active{
    background:linear-gradient(180deg, rgba(34,211,238,.2), rgba(29,78,216,.18));
    border-color:rgba(34,211,238,.55);
    box-shadow:0 0 0 1px rgba(34,211,238,.14), 0 10px 24px rgba(8,145,178,.18);
    color:#dff9ff;
  }
  .topbar-user{margin-left:0;flex-direction:column;align-items:stretch}
  .topbar-user span{margin-right:0 !important}
  .topbar-user .btn{width:100%;text-align:center}
  .visitors-table-wrap{display:none}
  .visitors-mobile-list{display:block}
  .visitor-mobile-actions .btn{
    flex:1;
    text-align:center;
  }
  .visitor-mobile-actions{
    position:relative;
    z-index:1;
  }
}
