/* ============================================================
   AMPTracking Professional UI
   Design commun pour toutes les pages
   ============================================================ */

:root{
  --amp-primary:#0E5D8D;
  --amp-primary-2:#0d6efd;
  --amp-accent:#44C0F1;
  --amp-success:#198754;
  --amp-warning:#f59e0b;
  --amp-danger:#dc3545;

  --amp-bg:#f4f7fb;
  --amp-surface:#ffffff;
  --amp-surface-2:#f8fafc;
  --amp-text:#0f172a;
  --amp-muted:#64748b;
  --amp-border:rgba(15,23,42,.10);
  --amp-shadow:0 16px 48px rgba(15,23,42,.10);
  --amp-shadow-soft:0 8px 26px rgba(15,23,42,.08);

  --amp-radius-sm:12px;
  --amp-radius:18px;
  --amp-radius-lg:28px;
  --amp-nav-h:68px;

  --amp-page-max:1440px;
  --amp-content-pad:18px;
}

*{
  box-sizing:border-box;
}

html, body{
  min-height:100%;
}

body{
  margin:0;
  font-family:Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:
    radial-gradient(900px 480px at 20% -10%, rgba(14,93,141,.14), transparent 60%),
    radial-gradient(900px 480px at 95% 0%, rgba(13,110,253,.12), transparent 55%),
    var(--amp-bg);
  color:var(--amp-text);
}

a{
  text-decoration:none;
}

.text-muted{
  color:var(--amp-muted)!important;
}

/* Navbar commune */
.amp-navbar{
  min-height:var(--amp-nav-h);
  background:rgba(255,255,255,.92)!important;
  backdrop-filter: blur(14px);
  border-bottom:1px solid rgba(15,23,42,.08);
  box-shadow:0 8px 30px rgba(15,23,42,.06);
  z-index:1040;
}

.amp-navbar .navbar-brand{
  font-weight:900;
  color:var(--amp-text);
  letter-spacing:-.02em;
}

.amp-logo{
  height:38px;
  width:auto;
  object-fit:contain;
}

.amp-site-badge{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.36rem .65rem;
  border-radius:999px;
  background:rgba(13,110,253,.10);
  border:1px solid rgba(13,110,253,.18);
  color:var(--amp-primary-2);
  font-size:.78rem;
  font-weight:800;
}

.amp-navbar .nav-link{
  display:inline-flex;
  align-items:center;
  gap:.42rem;
  border-radius:999px;
  padding:.48rem .78rem!important;
  margin:0 .08rem;
  color:#334155!important;
  font-size:.88rem;
  font-weight:750;
  transition:.16s ease;
}

.amp-navbar .nav-link:hover{
  color:#fff!important;
  background:linear-gradient(135deg,var(--amp-primary),var(--amp-primary-2));
  box-shadow:0 10px 22px rgba(13,110,253,.20);
}

.amp-navbar .nav-link.active{
  color:#fff!important;
  background:linear-gradient(135deg,var(--amp-primary),var(--amp-primary-2));
  box-shadow:0 10px 22px rgba(13,110,253,.20);
}

.amp-navbar .nav-link.nav-danger{
  color:var(--amp-danger)!important;
}

.amp-navbar .nav-link.nav-danger:hover{
  color:#fff!important;
  background:linear-gradient(135deg,#b42318,var(--amp-danger));
}

/* Layouts */
.amp-page{
  width:100%;
  max-width:var(--amp-page-max);
  margin:0 auto;
  padding:var(--amp-content-pad);
}

.amp-page-fluid{
  width:100%;
  padding:14px;
}

.amp-page-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1rem;
}

.amp-page-title{
  margin:0;
  font-weight:900;
  letter-spacing:-.03em;
  color:var(--amp-text);
}

.amp-page-subtitle{
  margin:.28rem 0 0;
  color:var(--amp-muted);
}

.amp-card{
  border:1px solid var(--amp-border)!important;
  border-radius:var(--amp-radius)!important;
  background:var(--amp-surface)!important;
  box-shadow:var(--amp-shadow-soft)!important;
  overflow:hidden;
}

.amp-card-lg{
  border-radius:var(--amp-radius-lg)!important;
  box-shadow:var(--amp-shadow)!important;
}

.amp-card .card-header,
.card.amp-card .card-header{
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,250,252,.92));
  border-bottom:1px solid var(--amp-border);
  font-weight:850;
}

.amp-kpi{
  border:1px solid var(--amp-border);
  border-radius:var(--amp-radius);
  background:#fff;
  box-shadow:var(--amp-shadow-soft);
  padding:1rem;
  min-height:112px;
}

.amp-kpi-label{
  color:var(--amp-muted);
  font-size:.78rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.amp-kpi-value{
  font-size:2rem;
  line-height:1;
  font-weight:950;
  letter-spacing:-.04em;
  margin-top:.35rem;
}

.amp-chip{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  border:1px solid var(--amp-border);
  border-radius:999px;
  padding:.34rem .65rem;
  background:rgba(255,255,255,.78);
  color:#334155;
  font-size:.82rem;
  font-weight:750;
}

.btn{
  font-weight:750;
}

.btn-rounded{
  border-radius:999px!important;
}

.form-control,
.form-select{
  border-radius:12px;
  border-color:rgba(15,23,42,.16);
}

.form-control:focus,
.form-select:focus{
  border-color:var(--amp-primary-2);
  box-shadow:0 0 0 .2rem rgba(13,110,253,.12);
}

/* Public home/login */
.amp-public-body{
  min-height:100vh;
  background:
    linear-gradient(135deg, rgba(7,47,73,.82), rgba(7,47,73,.70)),
    url("../images/amp_home.jpg");
  background-size:cover;
  background-position:center;
}

.amp-public-fallback{
  position:fixed;
  inset:0;
  z-index:-2;
  background:
    radial-gradient(850px 520px at 20% 0%, rgba(68,192,241,.35), transparent 60%),
    radial-gradient(850px 520px at 95% 10%, rgba(13,110,253,.30), transparent 55%),
    linear-gradient(135deg,#0E5D8D,#072f49);
}

.amp-hero{
  min-height:calc(100vh - var(--amp-nav-h));
  display:flex;
  align-items:center;
  padding:3rem 0;
}

.amp-hero-panel{
  background:rgba(255,255,255,.94);
  border:1px solid rgba(255,255,255,.58);
  border-radius:32px;
  box-shadow:0 30px 90px rgba(0,0,0,.30);
  padding:clamp(1.4rem,4vw,3rem);
}

.amp-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding:.36rem .75rem;
  border-radius:999px;
  background:rgba(13,110,253,.10);
  color:var(--amp-primary-2);
  border:1px solid rgba(13,110,253,.18);
  font-size:.82rem;
  font-weight:850;
}

.amp-hero-title{
  font-size:clamp(2rem,5vw,4.25rem);
  line-height:1;
  font-weight:950;
  letter-spacing:-.055em;
}

.amp-hero-text{
  max-width:720px;
  color:var(--amp-muted);
  font-size:1.07rem;
}

.amp-login-wrap{
  min-height:calc(100vh - var(--amp-nav-h));
  display:flex;
  align-items:center;
  justify-content:center;
  padding:2rem 1rem;
}

.amp-login-card{
  width:100%;
  max-width:450px;
  border-radius:28px;
  border:1px solid rgba(255,255,255,.60);
  background:rgba(255,255,255,.95);
  box-shadow:0 30px 90px rgba(0,0,0,.28);
}

/* Map workspace */
.amp-map-workspace{
  height:calc(100vh - var(--amp-nav-h));
  display:grid;
  grid-template-columns:310px minmax(420px,1fr) 350px;
  gap:12px;
  padding:12px;
}

.amp-map-panel{
  border:1px solid var(--amp-border);
  border-radius:var(--amp-radius);
  background:rgba(255,255,255,.96);
  box-shadow:var(--amp-shadow-soft);
  overflow:auto;
}

.amp-map-panel-inner{
  padding:1rem;
}

.amp-map-canvas-wrap{
  border:1px solid var(--amp-border);
  border-radius:var(--amp-radius);
  background:#fff;
  box-shadow:var(--amp-shadow);
  overflow:hidden;
  position:relative;
}

.amp-map-canvas-wrap #map{
  width:100%!important;
  height:100%!important;
}

#map{
  border-radius:var(--amp-radius);
}

.sidebar,
.sidebar-right{
  background:transparent!important;
  border:0!important;
  padding:0!important;
  min-height:auto!important;
}

.sidebar h5,
.sidebar-right h5{
  color:var(--amp-primary)!important;
  font-size:1rem!important;
  font-weight:900!important;
}

.filter-block{
  border:1px solid rgba(15,23,42,.08);
  border-radius:14px;
  background:rgba(248,250,252,.78);
  padding:.65rem!important;
  margin-bottom:.65rem;
}

#resultsTableContainer,
#selectedFeatureInfo,
#selectionInfo{
  border-radius:14px;
}

.custom-legend,
.map-legend{
  border:1px solid var(--amp-border)!important;
  border-radius:16px!important;
  box-shadow:var(--amp-shadow-soft)!important;
}

/* Dashboard harmonization */
.dashboard-shell{
  max-width:var(--amp-page-max)!important;
  margin:0 auto!important;
  padding:14px!important;
}

#mapDomaine{
  height:430px!important;
  border-radius:0 0 var(--amp-radius) var(--amp-radius);
}

/* Tables / charts */
.table{
  vertical-align:middle;
}

.table thead th{
  font-size:.78rem;
  color:var(--amp-muted);
  text-transform:uppercase;
  letter-spacing:.05em;
  border-bottom:1px solid var(--amp-border);
}

.table-box{
  border:1px solid var(--amp-border)!important;
  border-radius:14px!important;
  background:rgba(248,250,252,.86)!important;
}

/* responsive */
@media (max-width: 1199px){
  .amp-map-workspace{
    height:auto;
    min-height:calc(100vh - var(--amp-nav-h));
    grid-template-columns:1fr;
  }

  .amp-map-canvas-wrap{
    height:70vh;
  }
}

@media (min-width: 1200px){
  .amp-map-canvas-wrap{
    min-height:calc(100vh - var(--amp-nav-h) - 24px);
  }
}

@media (max-width: 768px){
  :root{
    --amp-content-pad:12px;
  }

  .amp-page-header{
    flex-direction:column;
  }

  .amp-navbar .nav-link{
    margin:.1rem 0;
  }

  .amp-hero{
    padding:1.5rem 0;
  }
}

/* Print */
@media print{
  .amp-navbar,
  .btn,
  .nav,
  .navbar{
    display:none!important;
  }

  body{
    background:white!important;
  }

  .amp-page,
  .dashboard-shell{
    max-width:none!important;
    padding:0!important;
  }

  .card,
  .amp-card{
    box-shadow:none!important;
  }
}
