:root{
  --app-primary:#0b4f96;
  --app-primary-2:#0e66c2;
  --app-bg:#eef3f9;
  --app-border:#dde5f0;
  --app-text:#1c2b3d;
  --admin-sidebar:#0f2542;
  --admin-sidebar-2:#173663;
}

body{min-height:100vh;display:flex;flex-direction:column;background:var(--app-bg);color:var(--app-text)}

/* Public */
.app-navbar{background:linear-gradient(135deg,var(--app-primary),var(--app-primary-2));box-shadow:0 8px 24px rgba(11,79,150,.22)}
.brand-logo{height:42px;width:auto}
.brand-title{font-weight:700;line-height:1.05}
.brand-subtitle{font-size:.75rem;opacity:.92;line-height:1.2}
.logo-placeholder{display:inline-block;background:#fff;color:var(--app-primary);padding:6px 10px;border-radius:8px;font-weight:700;font-size:.85rem}

.hero-card{background:linear-gradient(180deg,#fff,#f8fbff)}
.hero-features{display:grid;gap:.45rem;font-size:.92rem;color:#31465f}
.hero-features i{color:var(--app-primary);margin-right:.35rem}

/* Auth */
.auth-bg{background:radial-gradient(circle at 20% 20%, #dfeeff 0%, #eef3f9 40%, #f7faff 100%)}
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem 1rem}
.auth-card{max-width:460px;width:100%;border:1px solid var(--app-border);border-radius:16px;background:#fff;box-shadow:0 12px 28px rgba(13,45,85,.12)}
.auth-card .card-body{padding:2rem}
.auth-title{font-weight:700;color:#143254}
.auth-subtitle{font-size:.9rem;color:#64748b}

/* Admin shell */
.admin-shell{display:flex;min-height:100vh;width:100%}
.admin-sidebar{width:260px;background:linear-gradient(180deg,var(--admin-sidebar),var(--admin-sidebar-2));color:#fff;padding:1rem;display:flex;flex-direction:column;gap:1rem;position:sticky;top:0;height:100vh}
.admin-brand{display:flex;align-items:center;gap:.65rem;padding:.45rem .4rem;background:rgba(255,255,255,.08);border-radius:12px}
.admin-brand .brand-logo{height:36px}
.admin-nav{display:flex;flex-direction:column;gap:.35rem}
.admin-link{color:#d8e8ff;text-decoration:none;padding:.7rem .8rem;border-radius:10px;display:flex;gap:.55rem;align-items:center;font-weight:500}
.admin-link:hover,.admin-link.active{background:rgba(255,255,255,.16);color:#fff}

.admin-main{flex:1;display:flex;flex-direction:column;min-width:0}
.admin-topbar{background:#fff;border-bottom:1px solid var(--app-border);padding:1rem 1.5rem;display:flex;justify-content:space-between;align-items:center}
.admin-content{padding:1.25rem 1.5rem}

.premium-card{background:#fff;border:1px solid var(--app-border);border-radius:14px;box-shadow:0 8px 20px rgba(18,52,92,.06)}
.metric-card{padding:1rem}
.metric-card .metric-label{font-size:.83rem;color:#64748b;text-transform:uppercase;letter-spacing:.03em}
.metric-card .metric-value{font-size:1.65rem;font-weight:700;color:#12345f}

.card{border:1px solid var(--app-border);border-radius:14px}
.table{background:#fff}
.table thead th{background:#f6f9fe;color:#355174;font-size:.82rem;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}
.table td{vertical-align:middle}

.form-label{font-weight:600;font-size:.92rem;color:#33475f}
.form-control,.form-select{border-radius:10px;padding:.65rem .8rem;border:1px solid #dbe3ee}
.form-control:focus,.form-select:focus{border-color:#6ea8e6;box-shadow:0 0 0 .2rem rgba(14,102,194,.12)}
.btn{border-radius:10px}
.btn-primary{background:var(--app-primary);border-color:var(--app-primary)}
.btn-primary:hover{background:#094680;border-color:#094680}

.filter-panel{padding:1rem;border:1px solid var(--app-border);border-radius:12px;background:#fff}

.filter-panel-premium{padding:1.1rem 1.1rem 1rem;border-color:#d7e1ef;background:linear-gradient(180deg,#ffffff 0%,#f9fbff 100%);box-shadow:0 10px 22px rgba(18,52,92,.06)}
.filter-panel-head{padding-bottom:.35rem;border-bottom:1px dashed #dbe5f3;margin-bottom:.1rem}
.filter-panel-premium .form-label{font-size:.78rem;letter-spacing:.02em;text-transform:uppercase;color:#5b6f89;margin-bottom:.3rem}
.filter-panel-premium .form-control,.filter-panel-premium .form-select{height:42px;padding:.55rem .75rem;border-color:#cfdaea;background:#fff}
.filter-panel-premium .form-control::placeholder{color:#8ca0b9}
.filter-panel-actions .btn{height:42px;padding:.55rem .95rem;display:inline-flex;align-items:center;font-weight:600}
.filter-panel-actions .btn-filter-main{min-width:164px;box-shadow:0 6px 16px rgba(11,79,150,.24)}


.map-box{height:320px;border-radius:12px;border:1px solid #dfe7f2}
.map-box-home{min-height:560px}

@media (max-width:1199px){.map-box-home{min-height:500px}}
@media (max-width:991px){
  .brand-subtitle{display:none!important}
  .map-box-home{min-height:400px}
  .admin-shell{display:block}
  .admin-sidebar{position:relative;height:auto;width:100%;border-radius:0}
}
@media (max-width:576px){
  .map-box-home{min-height:320px}
  .hero-card .h3{font-size:1.3rem}
  .admin-content,.admin-topbar{padding:1rem}
}

.chart-wrap{position:relative;min-height:280px}
.protocol-number{font-size:.92rem;font-weight:600;letter-spacing:.02em}
.print-body{background:#fff}
.print-container{max-width:1100px}
.print-sheet{background:#fff}
.min-box{min-height:90px}
.signature-line{height:1px;background:#1f2937;margin:0 auto 8px auto;width:80%}
@media (max-width:1199px){
  .filter-panel-premium .form-control,.filter-panel-premium .form-select,.filter-panel-actions .btn{height:40px}
}
@media (max-width:991px){
  .filter-panel-premium{padding:1rem}
  .filter-panel-head{margin-bottom:.2rem}
  .filter-panel-actions{justify-content:flex-start!important}
}
@media (max-width:576px){
  .filter-panel-premium .form-label{font-size:.74rem}
  .filter-panel-actions .btn{flex:1 1 100%;justify-content:center}
  .filter-panel-actions .btn-filter-main{min-width:0}
}

@media print{
  .d-print-none{display:none!important}
  .print-container{max-width:none;padding:0}
  body{background:#fff}
}
.admin-requests-table .quick-update-form{min-width:170px}
.admin-requests-table td{font-size:.88rem}
.admin-requests-table .badge{text-transform:capitalize}
