:root{
  --teal:#0F6E6B; --teal-dark:#0B5250; --ink:#1B2224; --gray:#8A93A0; --line:#E4E8EA;
  --bg:#F5F7F7; --red:#C0392B; --green:#2E7D32; --amber:#E0A800;
}
*{box-sizing:border-box;}
body{margin:0; font-family:'Segoe UI',Inter,Arial,sans-serif; background:var(--bg); color:var(--ink); font-size:14px;}
a{color:var(--teal); text-decoration:none;}
h1,h2,h3{margin:0 0 10px;}

/* ---- shell / sidebar ---- */
.shell{display:flex; min-height:100vh;}
.sidebar{width:220px; background:#fff; border-right:1px solid var(--line); display:flex; flex-direction:column; flex-shrink:0;}
.brand{padding:20px 16px; font-weight:700; font-size:16px; color:var(--teal-dark); border-bottom:1px solid var(--line);}
.brand span{font-weight:400; font-size:12px; color:var(--gray);}
.sidebar nav{display:flex; flex-direction:column; padding:10px; gap:2px; flex:1;}
.sidebar nav a{padding:10px 12px; border-radius:8px; color:var(--ink); font-weight:600; font-size:13px;}
.sidebar nav a:hover{background:var(--bg);}
.sidebar nav a.nav-item.active{background:var(--teal); color:#fff;}
.sidebar-footer{padding:14px; border-top:1px solid var(--line); font-size:12px;}
.whoami{font-weight:700; margin-bottom:6px;}
.whoami span{font-weight:400; color:var(--gray);}
.link-muted{display:block; color:var(--gray); margin-bottom:8px;}
.btn-link{background:none; border:none; color:var(--red); cursor:pointer; padding:0; font-size:12px; font-weight:600;}
.main{flex:1; padding:24px; max-width:1400px;}

/* ---- auth pages ---- */
.auth-body{display:flex; align-items:center; justify-content:center; min-height:100vh;}
.auth-shell{width:100%; max-width:380px; padding:20px;}
.auth-card{background:#fff; border-radius:14px; padding:30px; box-shadow:0 8px 30px rgba(0,0,0,.08); text-align:center;}
.logo-badge{width:52px; height:52px; border-radius:12px; background:var(--teal); color:#fff; font-weight:700; display:flex; align-items:center; justify-content:center; margin:0 auto 14px; font-size:15px;}
.subtitle{color:var(--gray); margin:0 0 20px; font-size:13px;}
.auth-card form{text-align:left;}

/* ---- forms ---- */
.form-group{margin-bottom:14px;}
label{display:block; font-size:12px; font-weight:600; color:#556; margin-bottom:4px;}
input,select,textarea{width:100%; padding:9px 11px; border:1px solid var(--line); border-radius:8px; font-size:13px; font-family:inherit; background:#FAFBFB; color:var(--ink);}
input:focus,select:focus,textarea:focus{outline:2px solid var(--teal); outline-offset:-1px;}

/* ---- buttons ---- */
.btn{display:inline-block; padding:9px 16px; border-radius:8px; border:1px solid var(--teal); background:var(--teal); color:#fff; font-weight:700; font-size:13px; cursor:pointer; text-align:center;}
.btn:hover{background:var(--teal-dark);}
.btn-block{width:100%;}
.btn-ghost{background:#fff; color:var(--ink); border-color:var(--line);}
.btn-red{background:var(--red); border-color:var(--red);}
.btn-small{padding:5px 10px; font-size:12px;}

/* ---- cards / tables ---- */
.card{background:#fff; border:1px solid var(--line); border-radius:12px; padding:18px; margin-bottom:18px;}
.hint{color:var(--gray); font-size:12px;}
table{width:100%; border-collapse:collapse; font-size:13px;}
th,td{padding:8px 10px; text-align:left; border-bottom:1px solid var(--line);}
th{color:var(--gray); font-weight:600; font-size:11px; text-transform:uppercase;}
.num{text-align:right;}

/* ---- tags/badges ---- */
.tag{display:inline-block; padding:3px 9px; border-radius:20px; font-size:11px; font-weight:700; color:#fff;}
.tag-neatribuit{background:var(--gray);}
.tag-atribuit{background:#5B7FBF;}
.tag-vizitat{background:var(--amber);}
.tag-pasaportizat{background:var(--green);}
.tag-lead{background:var(--teal);}

/* ---- alerts ---- */
.alert{padding:10px 14px; border-radius:8px; font-size:13px; margin-bottom:16px;}
.alert-success{background:#E8F5E9; color:#1B5E20; border:1px solid #C8E6C9;}
.alert-error{background:#FDECEA; color:#8B2E23; border:1px solid #F5C6C0;}

/* ---- filters / rows ---- */
.row{display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; margin-bottom:14px;}
.empty{text-align:center; color:var(--gray); padding:30px; font-size:13px;}

/* ---- map ---- */
.map-box{height:70vh; border-radius:10px; overflow:hidden; border:1px solid var(--line);}

@media (max-width: 800px){
  .shell{flex-direction:column;}
  .sidebar{width:100%; flex-direction:row; overflow-x:auto;}
  .sidebar nav{flex-direction:row;}
  .sidebar-footer{display:none;}
  .main{padding:14px;}
}
