@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600&display=swap');

:root{
  --pb-bg: #0b1120;
  --pb-bg-soft: #111a2e;
  --pb-card: #141d33;
  --pb-border: #223052;
  --pb-text: #e6ebf5;
  --pb-text-muted: #8b98b8;
  --pb-primary: #3d7bff;
  --pb-primary-hover: #2f65e0;
  --pb-success: #22c55e;
  --pb-danger: #ef4444;
  --pb-warning: #f59e0b;
  --pb-info: #38bdf8;
  --pb-radius: 12px;
  --pb-font-heading: 'Space Grotesk', system-ui, sans-serif;
  --pb-font-body: 'Inter', system-ui, sans-serif;
}

*{box-sizing:border-box;}
body{
  background: var(--pb-bg);
  color: var(--pb-text);
  font-family: var(--pb-font-body);
}
h1,h2,h3,h4,h5,.dc-brand{ font-family: var(--pb-font-heading); }

.dc-install-body{ display:flex; align-items:center; min-height:100vh; }

a{ color: var(--pb-primary); text-decoration:none; }
a:hover{ color: var(--pb-primary-hover); }

.dc-shell{ display:flex; min-height:100vh; }

.dc-sidebar{
  width: 260px; flex-shrink:0;
  background: var(--pb-bg-soft);
  border-right: 1px solid var(--pb-border);
  padding: 20px 14px;
}
.dc-sidebar .dc-brand{ font-size:1.25rem; font-weight:700; color:#fff; margin-bottom: 4px; }
.dc-sidebar .dc-role-badge{ font-size:.7rem; padding:2px 8px; border-radius:20px; }
.dc-nav-section{ font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--pb-text-muted); margin:18px 6px 6px; }
.dc-nav-link{
  display:flex; align-items:center; gap:10px;
  padding:9px 12px; border-radius:8px; color: var(--pb-text-muted);
  font-weight:500; font-size:.92rem; margin-bottom:2px;
}
.dc-nav-link:hover{ background: rgba(61,123,255,.08); color:#fff; }
.dc-nav-link.active{ background: rgba(61,123,255,.16); color:#fff; }

.dc-main{ flex:1; min-width:0; }
.dc-topbar{
  display:flex; align-items:center; justify-content:space-between;
  padding: 14px 24px; border-bottom:1px solid var(--pb-border); background: var(--pb-bg-soft);
}
.dc-content{ padding: 24px; }

.dc-card{
  background: var(--pb-card);
  border: 1px solid var(--pb-border);
  border-radius: var(--pb-radius);
}
.dc-stat{
  background: var(--pb-card); border:1px solid var(--pb-border); border-radius: var(--pb-radius);
  padding: 18px; display:flex; flex-direction:column; gap:6px;
}
.dc-stat .num{ font-family: var(--pb-font-heading); font-size:1.8rem; font-weight:700; color:#fff; }
.dc-stat .label{ color:var(--pb-text-muted); font-size:.85rem; }

.table{ color: var(--pb-text); }
.table > :not(caption) > * > *{ background: transparent; border-bottom-color: var(--pb-border); color: var(--pb-text); }
.table-hover>tbody>tr:hover>*{ background: rgba(61,123,255,.06); }

.form-control, .form-select{
  background: var(--pb-bg); border:1px solid var(--pb-border); color: var(--pb-text);
}
.form-control:focus, .form-select:focus{
  background: var(--pb-bg); color:#fff; border-color: var(--pb-primary);
  box-shadow: 0 0 0 .2rem rgba(61,123,255,.2);
}
.form-control::placeholder{ color: var(--pb-text-muted); }
label.form-label{ color: var(--pb-text-muted); font-size:.85rem; font-weight:500; }

.btn{ border-radius:8px; font-weight:600; font-size:.9rem; }
.dc-btn-primary, .btn.dc-btn-primary{ background: var(--pb-primary); border-color: var(--pb-primary); color:#fff; }
.dc-btn-primary:hover{ background: var(--pb-primary-hover); color:#fff; }
.btn-outline-light{ border-color: var(--pb-border); color: var(--pb-text); }
.btn-danger{ background: var(--pb-danger); border-color: var(--pb-danger); }
.btn-success{ background: var(--pb-success); border-color: var(--pb-success); }
.btn-sm-icon{ padding:4px 8px; font-size:.8rem; }

.badge-role-admin{ background: var(--pb-danger); }
.badge-role-operateur{ background: var(--pb-warning); color:#111; }
.badge-role-lecture{ background: var(--pb-border); }

.dc-terminal{
  background:#060b16; color:#8ff0a4; font-family: 'Courier New', monospace;
  padding:14px; border-radius:8px; max-height:420px; overflow:auto; white-space:pre-wrap; font-size:.82rem;
  border:1px solid var(--pb-border);
}
.dc-terminal.error{ color:#ff9b9b; }

.dc-code-block{ position:relative; }
.dc-code-block pre{
  background:#060b16; border:1px solid var(--pb-border); border-radius:8px; padding:14px;
  color:#c9d6ee; font-size:.8rem; max-height:420px; overflow:auto;
}
.dc-copy-btn{ position:absolute; top:8px; right:8px; }

.dc-breadcrumb-path{ font-family: monospace; background: var(--pb-bg); border:1px solid var(--pb-border); border-radius:8px; padding:8px 12px; word-break:break-all;}

.dc-modal .modal-content{ background: var(--pb-card); border:1px solid var(--pb-border); color: var(--pb-text); }

.dc-tabs .nav-link{ color: var(--pb-text-muted); }
.dc-tabs .nav-link.active{ background: var(--pb-primary); color:#fff; }

.dc-flash{ margin-bottom: 16px; }

.dc-filerow-icon{ width:20px; display:inline-block; text-align:center; }

.dc-empty{ text-align:center; padding:40px 20px; color: var(--pb-text-muted); }
