/* ========== LATRade • app.css ========== */

/* Reset lejer + sistem de culori */
:root{
  --bg: #0f2430;
  --bg-soft: #132b36;
  --card: #0f2430;
  --surface: #254c60;
  --border: #1e3b48;
  --text: #e9f2f7;
  --muted: #9fb3bf;
  --primary: #0ea5e9;        /* sky-500 */
  --primary-600: #0284c7;    /* sky-600 */
  --danger: #ef4444;
  --radius: 14px;
  --shadow: 0 10px 30px rgba(0,0,0,.35);
  --focus: 0 0 0 3px rgba(14,165,233,.3);
}

*{ box-sizing: border-box; }
html,body{ height:100%; }
body{
  margin:0;
  font: 15px/1.5 ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
  color:var(--text);
  background:linear-gradient(180deg, #1676b6 0%, var(--bg) 120px);
}

/* Utilitare */
.muted{ color:var(--muted); }
ul{ margin:0; padding-left:18px; }
a{ color:var(--primary); text-decoration:none; }
a:hover{ text-decoration:underline; }

/* Layout pagină auth */
.page-auth .auth-wrap{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding: 24px;
}

/* Card generic */
.card{
  width:100%;                 /* full-width by default */
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.page-auth .card{
  width:min(420px, 92vw);
}
.card-head{
  padding: 22px 22px 4px;
  border-bottom: 1px solid var(--border);
}
.card-head .brand{
  display:flex; align-items:center; gap:12px;
}
.card-head h1{
  margin:0; font-size:22px; letter-spacing:.2px;
}

.card-foot{
  padding: 14px 22px 20px;
  border-top: 1px solid var(--border);
  text-align:center;
}

/* Form */
.form{ padding: 18px 22px; display:grid; gap:14px; }
.field .label{ display:block; font-size:13px; color:var(--muted); margin-bottom:6px; }
input[type="text"],
select,
input[type="email"], 
input[type="month"], 
input[type="file"], 
input[type="password"], 
input[type="number"]{
  width:100%;
  padding: 12px 12px;
  border:1px solid var(--border);
  border-radius: 10px;
  color:var(--text);
  background: var(--surface);
  outline:none;
}
input:focus{ border-color:var(--primary); box-shadow: var(--focus); }

.with-addon{
  display:flex; gap:8px; align-items:stretch;
}
.with-addon input{ flex:1; }
.btn.addon{
  min-width:44px;
  padding:0 10px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--bg-soft);
  color:var(--muted);
  cursor:pointer;
}
.btn.addon:hover{ color:var(--text); border-color:var(--primary); }

/* Butoane */
.btn{
  text-align:center;
  display:inline-flex;
  align-items:center;          /* centru pe verticală */
  justify-content:center;      /* centru pe orizontală */
  gap:8px;
  padding:10px 14px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface);
  color:var(--text);
  cursor:pointer;
  transition:.15s ease;
}
.btn:hover{ border-color: var(--primary); }
.btn:focus-visible{ outline:none; box-shadow: var(--focus); }

.btn-primary{
  background: linear-gradient(180deg, var(--primary) -20%, var(--primary-600) 120%);
  border-color: transparent;
}
.btn-primary:hover{ filter: brightness(1.05); }
.btn-block{ width:100%; }

/* Alerta */
.alert{
  margin:16px 22px 0; padding:12px 14px;
  border:1px solid var(--border);
  border-radius: 10px;
  background: var(--bg-soft);
}
.alert-danger{ border-color: rgba(239,68,68,.5); background: rgba(239,68,68,.08); }
.alert ul{ margin:0; }

/* Dark/Light auto (opțional) */
@media (prefers-color-scheme: light){
  :root{
    --bg:#eef6fb; --bg-soft:#f6fbff; --card:#ffffff; --surface:#f8fafc; --border:#e6edf3; --text:#0f172a; --muted:#64748b;
    --shadow: 0 8px 24px rgba(30,41,59,.06);
  }
  body{ background: linear-gradient(180deg, #dbeafe 0%, var(--bg) 120px); }
}
/* === LAYOUT CU SIDEBAR DREAPTA === */
.layout{min-height:100vh;background:var(--bg);}
.topbar{
  position:sticky; top:0; z-index:50;
  display:flex; align-items:center; gap:12px;
  height:56px; padding:0 14px;
  background:linear-gradient(180deg, rgba(255,255,255,.08), rgba(0,0,0,.05));
  border-bottom:1px solid var(--border);
  backdrop-filter:saturate(140%) blur(6px);
}
.brand{font-weight:700; letter-spacing:.2px;}
.hamburger{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:44px; min-height:36px;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
.topbar-actions{margin-left:auto; display:flex; gap:8px;}

.content{padding:18px; padding-right:18px; max-width:1600px; margin:0 auto;}
.page-head{display:flex; align-items:center; gap:14px; margin:6px 0 16px;}
.page-head h1{margin:0;}
.page-head .tools{display:flex; gap:10px; align-items:center;}
.inp{padding:10px 12px; border:1px solid var(--border); border-radius:10px; background:var(--surface); color:var(--text); min-width:320px;}
.pill{font-size:12px;padding:6px 10px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);}

/* SIDEBAR RIGHT */
.sidebar.right{
  position:fixed; right:0; top:56px; bottom:0; width:280px;
  background:var(--card); border-left:1px solid var(--border);
  transform:translateX(0); transition:transform .25s ease;
  overflow:auto; z-index:40;
}
.nav{padding:14px;}
.nav-section{margin-bottom:14px;}
.nav-item{
  display:block; padding:10px 12px; border:1px solid var(--border);
  background:var(--surface); color:var(--text); border-radius:10px; text-decoration:none; margin-bottom:8px;
}
.nav-item:hover{border-color:var(--primary);}
.nav-item.danger{background:rgba(239,68,68,.08); border-color:rgba(239,68,68,.4);}
.nav-parent{
  width:100%; text-align:left; padding:10px 12px; border:1px solid var(--border);
  background:var(--surface); color:var(--text); border-radius:10px; cursor:pointer; margin-bottom:6px;
}
.nav-parent.small{font-size:13px; padding:8px 10px;}
.nav-children{display:grid; gap:6px; padding-left:6px; margin-bottom:8px;}
.nav-children[hidden]{display:none;}

@media (min-width: 1100px){
  .content{margin-right:300px;}
}
@media (max-width: 1099px){
  .sidebar.right{ transform: translateX(100%); }
  .sidebar.right.open,
  .sidebar-open .sidebar.right{ transform: translateX(0); }
}
.sidebar-open { overflow: hidden; }
#sidebar{ -webkit-overflow-scrolling: touch; }

/* === GRID FLOTA (scoped) === */
.fleet-header,
.fleet-row{
  display:grid;
  grid-template-columns: 1.1fr 1.1fr 1.4fr 1.4fr 1.4fr 1.2fr;
  gap:14px; align-items:start;
}
.fleet-header{font-weight:700; color:var(--text); margin: 8px 0;}

.fleet-rows{ --rowH: 64px; }

.fleet-rows .cell{
  display:flex; align-items:stretch;
  height:var(--rowH);
  padding:6px;
  overflow:hidden;
}

/* butonul umple celula */
.fleet-rows .cell > .btn{
  display:flex !important;
  width:100% !important;
  height:100%;
  min-height:0;
  gap:10px;
  padding:8px 12px;
  overflow:hidden;
}

.fleet-rows .btn > *{ flex:0 0 auto; }

/* scope: doar butoanele din grila flotei (nu afectează .btn globale) */
.fleet-rows .btn{
  display:flex;
  align-items:center;
  gap:8px;
  width:100%;
  height:48px;                /* înălțime fixă */
  min-height:48px;
  padding:8px 12px;           /* un pic mai mic decât default ca să nu forțeze wrap */
  white-space:nowrap;         /* nu se mai rupe pe rândul 2 */
  overflow:hidden;            /* ascunde surplusul */
  text-overflow:ellipsis; 
  
}
.fleet-rows .btn:hover{border-color:var(--primary);}
.fleet-rows .btn.red{background:rgba(239,68,68,.08); border-color:rgba(239,68,68,.4)}
.fleet-rows .btn.orange{background:rgba(245,158,11,.10); border-color:rgba(245,158,11,.5)}
.fleet-rows .btn.green{background:rgba(16,185,129,.10); border-color:rgba(16,185,129,.5)}


.btn-orange{
    background:#ff7a00;
    color:#fff;    
    text-align: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 14px;
    border: 1px solid var(--border);
    border-radius: 10px;
    cursor: pointer;
    transition: .15s ease; 
    }
    
    
    .btn-orange:hover{filter:brightness(0.95)}
    
.fleet-rows .tag{
  display:inline-flex;         
  align-items:center;
  line-height:1;
  padding:2px 8px;
  border-radius:999px;
  border:1px solid var(--border);
  background:var(--surface);
}
.fleet-rows .tag.red{border-color:rgba(239,68,68,.5); background:rgba(239,68,68,.08)}
.fleet-rows .tag.red.solid{
  border-color: rgba(239,68,68,.75);
  background:   rgba(239,68,68,.32);  /* mai închis decât .08 */
  color: #ffecec;                     /* text deschis pentru contrast */
}
.fleet-rows .tag.orange{border-color:rgba(245,158,11,.5); background:rgba(245,158,11,.1)}
.fleet-rows .tag.green{border-color:rgba(16,185,129,.5); background:rgba(16,185,129,.1)}
.fleet-rows .btn strong,
.fleet-rows .btn b,
.fleet-rows .btn .text{
  flex:1 1 auto;
  min-width:0;                /* necesar ca ellipsis să funcționeze în flex */
  overflow:hidden;
  text-overflow:ellipsis;
}
.fleet-rows .btn .tag{
  flex:0 0 auto;
  white-space:nowrap;
}

.fleet-rows .cell > .btn strong,
.fleet-rows .cell > .btn b,
.fleet-rows .cell > .btn .text{
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* badge-urile rămân compacte și nu se rup pe rândul 2 */
.fleet-rows .cell > .btn .tag{
  flex:0 0 auto;
  white-space:nowrap;
}

.fleet-rows .btn-2l { align-items:center; }
.fleet-rows .btn-2l .i{ flex:0 0 auto; }     /* iconița */
.fleet-rows .btn-2l .stack{
  display:grid;
  grid-template-rows:auto auto;      /* rând 1: titlu, rând 2: meta */
  grid-auto-flow:column;
  grid-auto-columns:max-content;
  column-gap:6px;
  row-gap:4px;
  min-width:0;
}
.fleet-rows .btn-2l .title{
  grid-column:1 / -1;                /* titlul ocupă tot rândul 1 */
  grid-row:1;
  min-width:0;
}
.fleet-rows .btn-2l .meta{
  display:flex;
  align-items:center;
  gap:6px;
  white-space:nowrap;
  overflow:visible;            
  padding-inline:3px;         
}


/* badge-urile rămân compacte pe un singur rând */
.fleet-rows .btn-2l .meta .tag{
  flex:0 0 auto;
  white-space:nowrap;
}

/* opțional: dacă mai vezi variații de înălțime când sunt multe tag-uri,
   micșorează spațiul dintre elementele din buton */
.fleet-rows .cell > .btn { gap: 6px; }
@media (max-width: 900px){
  .fleet-header, .fleet-row{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px){
  .fleet-header, .fleet-row{ grid-template-columns: 1fr; }
}


/* === MODAL === */
.modal{position:fixed; inset:0; display:none; z-index:100;}
.modal.open{display:block;}
.modal-backdrop{position:absolute; inset:0; background:rgba(0,0,0,.45); opacity:0; transition:opacity .2s;}
.modal.open .modal-backdrop{opacity:1;}
.modal-dialog{
  position:absolute; right:24px; top:24px; bottom:24px; width:min(820px, 92vw);
  background:var(--card); border:1px solid var(--border); border-radius:16px; box-shadow:var(--shadow);
  transform:translateY(8px) scale(.98); opacity:0; transition:.2s;
  padding:18px; overflow:auto;
}
.modal.open .modal-dialog{transform:none; opacity:1;}
.modal-close{
  position:sticky; top:0; float:right; border:1px solid var(--border);
  background:var(--surface); color:var(--text); border-radius:8px; width:36px; height:36px; cursor:pointer;
}
#modal-body h3{margin:0 0 10px;}
.kv{display:grid; grid-template-columns: 1fr 2fr; gap:10px; margin-bottom:12px;}
.embed iframe{width:100%; height:420px; border:1px solid var(--border); border-radius:10px; background:#fff;}
.modal-actions{display:flex; gap:8px; margin-top:10px;}

/* ===== Tabel responsive – fără scroll orizontal pe mobil ===== */
@media (max-width: 700px){
  /* nu mai prindem tabelul într-un scroll intern */
  .page-invoices .card > .scroll{
    overflow: visible;
    max-height: none;
  }

  /* transformăm tabelul în listă de carduri */
  .data-table, .data-table thead, .data-table tbody, 
  .data-table th, .data-table td, .data-table tr {
    display: block;
    width: 100%;
  }

  /* ascundem headerul */
  .data-table thead{
    position: absolute;
    left: -9999px; top: -9999px;
    height: 0; width: 0; overflow: hidden;
  }

  /* fiecare rând devine card */
  .data-table tbody tr{
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 10px;
    margin: 10px 0;
  }

  /* fiecare celulă e pe două coloane: etichetă + valoare */
  .data-table tbody td{
    display: grid;
    grid-template-columns: 120px 1fr;
    align-items: center;
    gap: 10px;
    padding: 8px 6px;
    border: 0;
    border-bottom: 1px solid var(--border);
    white-space: normal;
  }
  .data-table tbody td:last-child{ border-bottom: 0; }

  /* eticheta vine din atributul data-th */
  .data-table tbody td::before{
    content: attr(data-th);
    font-weight: 600;
    color: var(--muted);
  }

  /* celula acțiuni – butoane pe un singur rând, dar pot cădea pe 2 rânduri */
  .data-table tbody td.actions{
    display: block;
  }
  .data-table tbody td.actions > div{
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }

  /* numeric pe dreapta nu mai are sens pe mobil */
  .data-table .num{ text-align: left; }
}

.fleet-rows .btn-2l .meta::before,
.fleet-rows .btn-2l .meta::after,
.fleet-rows .btn-2l .meta .tag + .tag::before{ content:none !important; }

@media (max-width:700px){ .data-table .hide-sm{ display:none; } }