/* LegiTag Admin -- styles partages */
:root {
  --c-bg:#f4f5f7;
  --c-card:#ffffff;
  --c-border:#d3d5de;
  --c-text:#354255;
  --c-text-2:#5a6678;
  --c-text-3:#7a8696;

  --c-primary:#3d7c51;
  --c-primary-soft:#f2fff4;
  --c-primary-border:#bcf7d0;

  --c-warn:#a35d35;
  --c-warn-soft:#fffbeb;
  --c-warn-border:#fee68a;

  --c-danger:#ba1c1d;
  --c-danger-soft:#ffe1db;
  --c-danger-border:#ffa59b;

  --r-sm:6px; --r-md:10px; --r-lg:14px;
}
* { box-sizing:border-box; }
html, body { margin:0; padding:0; }
body {
  background:var(--c-bg); color:var(--c-text);
  font-family:-apple-system, BlinkMacSystemFont, "Segoe UI",
              Helvetica, Arial, sans-serif;
  -webkit-font-smoothing:antialiased; line-height:1.5;
}
a { color:var(--c-primary); text-decoration:none; }
a:hover { text-decoration:underline; }
h1, h2, h3 { color:var(--c-text); margin:0 0 12px; }
.fw-400 { font-weight:400; }
.muted { color:var(--c-text-3); }

.layout { display:grid; grid-template-columns:240px 1fr; min-height:100vh; }
@media (max-width:900px) { .layout { grid-template-columns:1fr; } }

.sidebar {
  background:#fff; border-right:1px solid var(--c-border);
  padding:24px 16px; display:flex; flex-direction:column; gap:8px;
}
.sidebar .brand {
  font-weight:800; font-size:18px; color:var(--c-primary);
  padding:4px 8px 16px; letter-spacing:-.01em;
}
.sidebar a.nav {
  display:flex; align-items:center; gap:10px;
  padding:10px 12px; border-radius:var(--r-md);
  color:var(--c-text-2); font-weight:500; font-size:14px;
}
.sidebar a.nav:hover { background:var(--c-bg); color:var(--c-text); text-decoration:none; }
.sidebar a.nav.active {
  background:var(--c-primary-soft); color:var(--c-primary);
  border:1px solid var(--c-primary-border);
}
.sidebar a.nav i { width:18px; height:18px; }

.main { padding:32px; }
@media (max-width:900px) { .main { padding:20px; } }

.card {
  background:var(--c-card); border:1px solid var(--c-border);
  border-radius:var(--r-lg); padding:24px;
  box-shadow:0 1px 3px rgba(0,0,0,.04);
}
.card + .card { margin-top:18px; }
.card h2 { font-size:18px; }

label {
  display:block; font-size:13px; font-weight:600;
  color:var(--c-text-2); margin:12px 0 6px;
}
input[type=text], input[type=email], input[type=number], input[type=password],
select, textarea {
  width:100%; padding:10px 12px; font-size:14px;
  border:1px solid var(--c-border); border-radius:var(--r-md);
  font-family:inherit; background:#fff; color:var(--c-text);
}
input:focus, select:focus, textarea:focus {
  outline:0; border-color:var(--c-primary);
  box-shadow:0 0 0 3px var(--c-primary-soft);
}
textarea { min-height:140px; resize:vertical; font-family:ui-monospace, monospace; }

.btn {
  display:inline-flex; align-items:center; gap:6px;
  padding:9px 16px; font-size:14px; font-weight:600;
  border-radius:var(--r-md); border:1px solid var(--c-border);
  background:#fff; color:var(--c-text); cursor:pointer; font-family:inherit;
}
.btn:hover { background:var(--c-bg); }
.btn-primary {
  background:var(--c-primary); color:#fff; border-color:var(--c-primary);
}
.btn-primary:hover { filter:brightness(.95); background:var(--c-primary); }
.btn-danger {
  background:var(--c-danger-soft); color:var(--c-danger);
  border-color:var(--c-danger-border);
}
.btn-danger:hover { background:#ffd5cf; }
.btn[disabled] { opacity:.5; cursor:not-allowed; }
.btn i { width:16px; height:16px; }

.row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media (max-width:780px) { .row { grid-template-columns:1fr; } }

table.tbl {
  width:100%; border-collapse:collapse; font-size:13px;
}
table.tbl th, table.tbl td {
  text-align:left; padding:10px 12px;
  border-bottom:1px solid var(--c-border);
}
table.tbl th {
  background:var(--c-bg); font-weight:700; color:var(--c-text-2);
  font-size:11px; text-transform:uppercase; letter-spacing:.4px;
}
table.tbl tr:last-child td { border-bottom:0; }

.badge {
  display:inline-block; padding:2px 8px; border-radius:999px;
  font-size:11px; font-weight:600;
  background:var(--c-bg); color:var(--c-text-2); border:1px solid var(--c-border);
}
.badge-warn { background:var(--c-warn-soft); color:var(--c-warn);
              border-color:var(--c-warn-border); }
.badge-danger { background:var(--c-danger-soft); color:var(--c-danger);
                border-color:var(--c-danger-border); }
.badge-ok { background:var(--c-primary-soft); color:var(--c-primary);
            border-color:var(--c-primary-border); }

.toast {
  position:fixed; bottom:20px; right:20px; z-index:9999;
  padding:12px 18px; border-radius:var(--r-md);
  background:var(--c-text); color:#fff; font-size:14px;
  box-shadow:0 4px 16px rgba(0,0,0,.2);
}
.toast-ok { background:var(--c-primary); }
.toast-error { background:var(--c-danger); }

.dropzone {
  border:2px dashed var(--c-border); border-radius:var(--r-lg);
  padding:48px 24px; text-align:center; cursor:pointer;
  transition:all .15s;
}
.dropzone:hover, .dropzone.drag {
  border-color:var(--c-primary); background:var(--c-primary-soft);
}
.dropzone .dz-title { font-weight:700; font-size:16px; margin-bottom:6px; }
.dropzone .dz-sub { color:var(--c-text-3); font-size:13px; }
.dropzone input[type=file] { display:none; }
