/* ============================================================
   OfertePro – app.css
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --c-bg:       #f4f6f9;
  --c-surface:  #ffffff;
  --c-border:   #dde3ec;
  --c-primary:  #2563eb;
  --c-primary-d:#1d4ed8;
  --c-success:  #16a34a;
  --c-danger:   #dc2626;
  --c-warning:  #d97706;
  --c-text:     #1e293b;
  --c-muted:    #64748b;
  --c-nav:      #1e293b;
  --radius:     8px;
  --shadow:     0 1px 4px rgba(0,0,0,.10);
}

body { font-family: 'Segoe UI', system-ui, sans-serif; background: var(--c-bg); color: var(--c-text); font-size: 15px; line-height: 1.6; }

/* ── Navbar ── */
.navbar { display:flex; align-items:center; gap:24px; background:var(--c-nav); color:#fff; padding:0 24px; height:56px; position:sticky; top:0; z-index:100; }
.nav-brand { display:flex; align-items:center; gap:10px; font-weight:700; font-size:18px; color:#fff; flex-shrink:0; }
.nav-logo { height:32px; }
.nav-links { display:flex; gap:4px; flex:1; }
.nav-links a { color:rgba(255,255,255,.75); text-decoration:none; padding:6px 14px; border-radius:6px; font-size:14px; transition:background .15s,color .15s; }
.nav-links a:hover,.nav-links a.active { background:rgba(255,255,255,.15); color:#fff; }
.nav-user { display:flex; align-items:center; gap:12px; font-size:14px; color:rgba(255,255,255,.8); }
.btn-logout { color:rgba(255,255,255,.7); text-decoration:none; font-size:13px; border:1px solid rgba(255,255,255,.25); padding:4px 12px; border-radius:6px; transition:.15s; }
.btn-logout:hover { background:rgba(255,255,255,.15); color:#fff; }

/* ── Container ── */
.container { max-width:1280px; margin:0 auto; padding:28px 20px 60px; }

/* ── Page header ── */
.page-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:24px; }
.page-header h1 { font-size:22px; font-weight:700; }
.page-actions { display:flex; gap:10px; }

/* ── Cards ── */
.card { background:var(--c-surface); border:1px solid var(--c-border); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden; margin-bottom:20px; }
.card-header { padding:14px 20px; border-bottom:1px solid var(--c-border); font-weight:600; display:flex; justify-content:space-between; align-items:center; }
.card-body { padding:20px; }

/* ── Stats grid ── */
.stats-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:16px; margin-bottom:28px; }
.stat-card { background:var(--c-surface); border:1px solid var(--c-border); border-radius:var(--radius); padding:20px; box-shadow:var(--shadow); }
.stat-card .stat-label { font-size:13px; color:var(--c-muted); margin-bottom:6px; }
.stat-card .stat-value { font-size:28px; font-weight:700; color:var(--c-primary); }
.stat-card .stat-sub { font-size:12px; color:var(--c-muted); margin-top:4px; }

/* ── Buttons ── */
.btn { display:inline-flex; align-items:center; gap:6px; padding:9px 18px; border-radius:6px; border:none; cursor:pointer; font-size:14px; font-weight:500; text-decoration:none; transition:.15s; white-space:nowrap; }
.btn-primary { background:var(--c-primary); color:#fff; }
.btn-primary:hover { background:var(--c-primary-d); }
.btn-success { background:var(--c-success); color:#fff; }
.btn-success:hover { filter:brightness(1.1); }
.btn-danger { background:var(--c-danger); color:#fff; }
.btn-danger:hover { filter:brightness(1.1); }
.btn-outline { background:transparent; border:1px solid var(--c-border); color:var(--c-text); }
.btn-outline:hover { background:var(--c-bg); }
.btn-sm { padding:5px 12px; font-size:13px; }
.btn-icon { padding:6px; }

/* ── Tables ── */
.table-wrap { overflow-x:auto; }
table { width:100%; border-collapse:collapse; font-size:14px; }
thead th { text-align:left; padding:10px 14px; font-size:12px; font-weight:600; color:var(--c-muted); text-transform:uppercase; letter-spacing:.05em; border-bottom:2px solid var(--c-border); background:#fafbfc; }
tbody td { padding:10px 14px; border-bottom:1px solid var(--c-border); vertical-align:middle; }
tbody tr:last-child td { border-bottom:none; }
tbody tr:hover { background:#f8fafd; }
.td-actions { display:flex; gap:6px; }

/* ── Forms ── */
.form-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; }
.form-group { display:flex; flex-direction:column; gap:5px; }
.form-group label { font-size:13px; font-weight:500; color:var(--c-muted); }
.form-group input,
.form-group select,
.form-group textarea { padding:8px 12px; border:1px solid var(--c-border); border-radius:6px; font-size:14px; background:#fff; transition:border-color .15s; }
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus { outline:none; border-color:var(--c-primary); box-shadow:0 0 0 3px rgba(37,99,235,.12); }
.form-group textarea { resize:vertical; min-height:80px; }
.form-check { display:flex; align-items:center; gap:8px; font-size:14px; cursor:pointer; }
.form-actions { display:flex; gap:10px; margin-top:8px; }

/* ── Alerts ── */
.alert { display:flex; align-items:center; gap:10px; padding:12px 16px; border-radius:6px; margin-bottom:16px; font-size:14px; }
.alert-close { margin-left:auto; background:none; border:none; cursor:pointer; font-size:18px; opacity:.6; }
.alert-success { background:#f0fdf4; border:1px solid #bbf7d0; color:#15803d; }
.alert-danger  { background:#fef2f2; border:1px solid #fecaca; color:#dc2626; }
.alert-warning { background:#fffbeb; border:1px solid #fde68a; color:#92400e; }
.alert-info    { background:#eff6ff; border:1px solid #bfdbfe; color:#1d4ed8; }

/* ── Badges ── */
.badge { display:inline-block; padding:2px 8px; border-radius:99px; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.05em; }
.badge-draft    { background:#f1f5f9; color:#475569; }
.badge-sent     { background:#eff6ff; color:#1d4ed8; }
.badge-accepted { background:#f0fdf4; color:#15803d; }
.badge-rejected { background:#fef2f2; color:#dc2626; }
.badge-expired  { background:#fff7ed; color:#c2410c; }

/* ── Search / Filter bar ── */
.filter-bar { display:flex; gap:10px; margin-bottom:16px; flex-wrap:wrap; }
.filter-bar input, .filter-bar select { padding:7px 12px; border:1px solid var(--c-border); border-radius:6px; font-size:14px; }
.filter-bar input[type=search] { min-width:220px; }

/* ── Quote builder ── */
.builder-grid { display:grid; grid-template-columns:1fr 380px; gap:24px; align-items:start; }
@media(max-width:900px){ .builder-grid { grid-template-columns:1fr; } }

.product-search-results { max-height:360px; overflow-y:auto; border:1px solid var(--c-border); border-radius:var(--radius); background:#fff; }
.product-result-item { padding:10px 14px; border-bottom:1px solid var(--c-border); display:flex; justify-content:space-between; align-items:center; cursor:pointer; transition:background .12s; }
.product-result-item:last-child { border-bottom:none; }
.product-result-item:hover { background:#f0f7ff; }
.product-result-item .pname { font-weight:500; font-size:14px; }
.product-result-item .pprice { font-size:13px; color:var(--c-muted); }
.product-result-item .psup { font-size:12px; color:var(--c-muted); }

#quote-items-table tfoot td { font-weight:700; }
.item-drag { cursor:grab; color:var(--c-muted); }

/* ── Reminder dots on dashboard ── */
.reminder-badge { background:var(--c-danger); color:#fff; border-radius:99px; padding:1px 7px; font-size:11px; }

/* ── Footer ── */
.site-footer { text-align:center; padding:16px; font-size:12px; color:var(--c-muted); border-top:1px solid var(--c-border); }

/* ── Pagination ── */
.pagination { display:flex; gap:4px; justify-content:center; margin-top:20px; }
.pagination a, .pagination span { padding:5px 12px; border-radius:5px; border:1px solid var(--c-border); font-size:13px; text-decoration:none; color:var(--c-text); }
.pagination a:hover { background:var(--c-primary); color:#fff; border-color:var(--c-primary); }
.pagination .current { background:var(--c-primary); color:#fff; border-color:var(--c-primary); }

/* ── Login page ── */
.login-wrap { min-height:100vh; display:flex; align-items:center; justify-content:center; background:var(--c-bg); }
.login-card { background:#fff; border:1px solid var(--c-border); border-radius:12px; padding:40px 36px; width:100%; max-width:400px; box-shadow:0 4px 24px rgba(0,0,0,.09); }
.login-card h1 { font-size:22px; margin-bottom:6px; }
.login-card p  { color:var(--c-muted); font-size:14px; margin-bottom:28px; }

/* ── Utility ── */
.text-muted { color:var(--c-muted); font-size:13px; }
.text-right { text-align:right; }
.text-center { text-align:center; }
.mt-2 { margin-top:8px; }
.mt-4 { margin-top:16px; }
.mb-4 { margin-bottom:16px; }
.d-flex { display:flex; }
.gap-2 { gap:8px; }
.flex-1 { flex:1; }
.fw-bold { font-weight:700; }
.hidden { display:none !important; }

/* ── Adăugiri v2 ── */
.text-danger  { color: var(--c-danger) !important; }
.text-success { color: var(--c-success) !important; }
.text-warning { color: var(--c-warning) !important; }
.text-info    { color: var(--c-primary) !important; }

/* expired row în tabel */
.expired-row td { background: #fff7ed !important; }

/* Stat card link */
a.stat-card { display:block; transition:box-shadow .15s, border-color .15s; }
a.stat-card:hover { box-shadow:0 2px 12px rgba(0,0,0,.12); text-decoration:none; }

/* Nav avatar */
.nav-avatar {
  width:30px; height:30px; border-radius:50%;
  object-fit:cover; border:2px solid rgba(255,255,255,.3); flex-shrink:0;
}
.nav-avatar-initials {
  width:30px; height:30px; border-radius:50%;
  background:rgba(255,255,255,.2); color:#fff;
  font-size:13px; font-weight:700;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.nav-username {
  color:rgba(255,255,255,.85); text-decoration:none;
  font-size:14px; transition:.15s;
}
.nav-username:hover, .nav-username.active { color:#fff; }
