/* ================================================================
   NUMINMO — Feuille de style principale
   ================================================================ */

:root {
  --primary:       #2563eb;
  --primary-dark:  #1d4ed8;
  --primary-light: #dbeafe;
  --sidebar-bg:    #0b1221;
  --sidebar-text:  #9aa9c2;
  --sidebar-hover: rgba(148,163,184,.09);
  --sidebar-active:#2563eb;
  --bg:            #f1f5f9;
  --card:          #ffffff;
  --border:        #e2e8f0;
  --text:          #1e293b;
  --text-muted:    #64748b;
  --success:       #10b981;
  --warning:       #f59e0b;
  --danger:        #ef4444;
  --info:          #3b82f6;
  --shadow:        0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);
  --shadow-md:     0 4px 6px rgba(0,0,0,.07), 0 2px 4px rgba(0,0,0,.06);
  --radius:        .5rem;
  --radius-lg:     .75rem;
  --sidebar-width: 272px;
  --header-h:      60px;
  --font:          'Inter', system-ui, -apple-system, sans-serif;
}

/* ---- Reset ---------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 15px; }
body {
  font-family: var(--font);
  background: var(--bg);
  color: var(--text);
  line-height: 1.6;
  min-height: 100vh;
}
a { color: var(--primary); text-decoration: none; }
a:hover { text-decoration: underline; }
img { max-width: 100%; }
svg { display:inline-block; vertical-align:middle; flex-shrink:0; width:18px; height:18px; }
.app-icon { fill:none; stroke:currentColor; stroke-width:1.75; vector-effect:non-scaling-stroke; }
ul { list-style: none; }

/* ---- Layout sidebar ------------------------------------------- */
.layout {
  display: flex;
  min-height: 100vh;
}

/* Sidebar */
.sidebar {
  width: var(--sidebar-width);
  background:
    radial-gradient(circle at 0 0, rgba(37,99,235,.12), transparent 32%),
    linear-gradient(180deg,#0c1426 0%,var(--sidebar-bg) 55%,#080e1b 100%);
  color: var(--sidebar-text);
  display: flex;
  flex-direction: column;
  position: fixed;
  top: 0; left: 0;
  height: 100vh;
  z-index: 100;
  transition: transform .25s ease, width .25s ease;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: #26344c transparent;
  border-right: 1px solid rgba(148,163,184,.1);
}

.sidebar-logo {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: 1.15rem 1rem 1.05rem;
  border-bottom: 1px solid rgba(148,163,184,.1);
  min-height: 72px;
}
.sidebar-logo .logo-icon {
  width: 42px; height: 42px;
  background: linear-gradient(145deg,#fffaf0,#f5e8c8);
  border: 1px solid rgba(214,157,35,.45);
  border-radius: 11px;
  display: flex; align-items: center; justify-content: center;
  color: white; font-size: 1.1rem;
  box-shadow: 0 8px 18px rgba(0,0,0,.22), inset 0 1px rgba(255,255,255,.7);
  overflow:hidden;
}
.sidebar-logo .logo-icon svg { width:21px; height:21px; }
.sidebar-logo .logo-icon img { width:142%; max-width:none; height:142%; flex:0 0 auto; object-fit:contain; padding:0; transform:translateY(1px); }
.sidebar-brand-copy { min-width:0; }
.sidebar-collapse-btn { display:grid; place-items:center; width:30px; height:30px; margin-left:auto; padding:0; color:#71819c; background:rgba(148,163,184,.06); border:1px solid rgba(148,163,184,.1); border-radius:8px; cursor:pointer; }
.sidebar-collapse-btn:hover { color:#dbeafe; background:rgba(148,163,184,.12); }
.sidebar-collapse-btn svg { width:16px; height:16px; }
.sidebar-collapse-btn svg { transform:rotate(180deg); transition:transform .2s; }
.sidebar-logo .logo-text {
  font-size: 1rem;
  font-weight: 750;
  color: white;
  letter-spacing: -.02em;
}
.sidebar-logo .logo-sub {
  font-size: .62rem;
  color: var(--sidebar-text);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.sidebar-search-wrap { padding:.7rem .7rem .15rem; }
.sidebar-search { display:flex; align-items:center; gap:.5rem; height:36px; padding:0 .65rem; color:#60718d; background:rgba(148,163,184,.065); border:1px solid rgba(148,163,184,.1); border-radius:9px; transition:border-color .15s,background .15s; }
.sidebar-search:focus-within { color:#93c5fd; background:rgba(148,163,184,.1); border-color:rgba(96,165,250,.35); }
.sidebar-search svg { width:15px; height:15px; }
.sidebar-search input { min-width:0; flex:1; color:#dbe5f4; background:transparent; border:0; outline:0; font:inherit; font-size:.72rem; }
.sidebar-search input::placeholder { color:#61708a; }
.sidebar-search kbd { padding:.05rem .3rem; color:#64748b; background:#111d32; border:1px solid #273650; border-radius:4px; font:600 .58rem var(--font); }
.sidebar-search-empty { display:none; padding:.65rem; color:#64748b; font-size:.7rem; text-align:center; }
.sidebar-search-empty.visible { display:block; }

.sidebar-section {
  padding: .8rem .7rem .15rem;
}
.sidebar-section-title {
  padding: 0 .65rem .35rem;
  font-size: .59rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #53627a;
}
.sidebar-section-title.is-collapsible { position:relative; padding-right:1.6rem; cursor:pointer; user-select:none; }
.sidebar-section-title.is-collapsible::after { content:'›'; position:absolute; right:.65rem; top:-.2rem; color:#53627a; font-size:1rem; transform:rotate(90deg); transition:transform .18s; }
.sidebar-section.is-collapsed .sidebar-section-title::after { transform:rotate(0); }
.sidebar-section.is-collapsed > .sidebar-nav { display:none; }
.sidebar-subtitle { margin:.7rem .65rem .3rem; padding-top:.65rem; color:#53627a; border-top:1px solid rgba(148,163,184,.08); font-size:.57rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }

.sidebar-nav a {
  display: flex;
  align-items: center;
  gap: .7rem;
  min-height: 40px;
  padding: .58rem .7rem;
  color: var(--sidebar-text);
  border-radius: 9px;
  font-size: .82rem;
  transition: background .16s, color .16s, transform .16s;
  text-decoration: none;
  position: relative;
}
.sidebar-nav a:hover {
  background: var(--sidebar-hover);
  color: #f1f5f9;
  transform: translateX(2px);
}
.sidebar-nav a.active {
  background: linear-gradient(90deg,rgba(37,99,235,.28),rgba(37,99,235,.13));
  color: #dbeafe;
  font-weight: 600;
  box-shadow: inset 0 0 0 1px rgba(96,165,250,.12), 0 5px 14px rgba(2,6,23,.16);
}
.sidebar-nav a.active::before {
  content: '';
  position: absolute;
  left: -1px; top: 9px; bottom: 9px;
  width: 3px;
  background: #60a5fa;
  border-radius: 99px;
}
.sidebar-nav svg { width:30px; height:30px; padding:5.5px; flex-shrink:0; color:var(--nav-icon,#8ba0be); background:color-mix(in srgb,var(--nav-icon,#8ba0be) 11%,transparent); border:0; border-radius:9px; stroke-width:1.65; transition:color .16s,background .16s,transform .16s; }
.sidebar-nav a:nth-child(6n+1) { --nav-icon:#60a5fa; }
.sidebar-nav a:nth-child(6n+2) { --nav-icon:#a78bfa; }
.sidebar-nav a:nth-child(6n+3) { --nav-icon:#34d399; }
.sidebar-nav a:nth-child(6n+4) { --nav-icon:#fbbf24; }
.sidebar-nav a:nth-child(6n+5) { --nav-icon:#fb7185; }
.sidebar-nav a:nth-child(6n+6) { --nav-icon:#22d3ee; }
.sidebar-nav a:hover svg { color:var(--nav-icon); background:color-mix(in srgb,var(--nav-icon) 18%,transparent); transform:scale(1.06); }
.sidebar-nav a.active svg { color:#fff; background:var(--nav-icon,#3b82f6); box-shadow:0 5px 14px color-mix(in srgb,var(--nav-icon,#3b82f6) 30%,transparent); }
.sidebar-nav a > span:not(.sidebar-badge) { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

.sidebar-badge {
  margin-left: auto;
  background: var(--danger);
  color: white;
  font-size: .61rem;
  font-weight: 700;
  padding: .1rem .45rem;
  border-radius: 99px;
  min-width: 19px;
  box-shadow:0 3px 8px rgba(239,68,68,.22);
  text-align: center;
}

.sidebar-user-wrap { position:relative; margin-top:.25rem; }
.sidebar-user {
  margin-top: .25rem;
  padding: 1rem 1.25rem;
  border-top: 1px solid #1e293b;
  display: flex;
  align-items: center;
  gap: .75rem;
  width:100%;
  color:inherit;
  background:transparent;
  border-right:0; border-bottom:0; border-left:0;
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.sidebar-user:hover { background:rgba(148,163,184,.06); }
.sidebar-user .avatar {
  width: 34px; height: 34px;
  background: var(--primary);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: white;
  font-weight: 700;
  font-size: .85rem;
  flex-shrink: 0;
}
.sidebar-user .user-info { display:flex; flex:1; flex-direction:column; min-width:0; }
.sidebar-user .user-name {
  font-size: .8rem;
  font-weight: 600;
  color: #e2e8f0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sidebar-user .user-role {
  font-size: .7rem;
  color: var(--sidebar-text);
}
.user-menu-arrow { display:grid; place-items:center; margin-left:auto; color:#64748b; transition:transform .18s; }
.user-menu-arrow svg { width:14px; height:14px; transform:rotate(-90deg); }
.sidebar-user[aria-expanded="true"] .user-menu-arrow { transform:rotate(180deg); }
.sidebar-user-menu { position:absolute; left:.7rem; right:.7rem; bottom:calc(100% + 8px); z-index:20; padding:.4rem; overflow:hidden; background:#fff; border:1px solid #dbe3ef; border-radius:13px; box-shadow:0 18px 40px rgba(2,6,23,.28); }
.sidebar-user-menu[hidden] { display:none; }
.user-menu-heading { display:flex; flex-direction:column; padding:.55rem .65rem .65rem; margin-bottom:.3rem; border-bottom:1px solid #e2e8f0; }
.user-menu-heading strong { color:#0f172a; font-size:.78rem; }
.user-menu-heading small { color:#64748b; font-size:.66rem; overflow:hidden; text-overflow:ellipsis; }
.sidebar-user-menu a { display:flex; align-items:center; gap:.55rem; padding:.55rem .6rem; color:#334155; border-radius:8px; font-size:.73rem; text-decoration:none; }
.sidebar-user-menu a:hover { color:#1d4ed8; background:#eff6ff; }
.sidebar-user-menu a.is-danger { color:#b91c1c; }
.sidebar-user-menu a.is-danger:hover { background:#fef2f2; }
.sidebar-user-menu svg { width:16px; height:16px; }
.sidebar-utility { padding:.2rem .7rem; }
.sidebar-utility.sidebar-public-link { margin-top:auto; }
.sidebar-utility a { display:flex; align-items:center; gap:.6rem; min-height:36px; padding:.45rem .65rem; color:#7f91ad; border-radius:8px; font-size:.73rem; text-decoration:none; }
.sidebar-utility a:hover { color:#dbeafe; background:rgba(148,163,184,.08); }
.sidebar-utility svg { width:16px; height:16px; }
.sidebar-logout { display:flex; margin-left:auto; padding:.4rem; color:#64748b; border-radius:8px; }
.sidebar-logout:hover { color:#fca5a5; background:rgba(239,68,68,.08); }

/* Main content */
.main-wrap {
  margin-left: var(--sidebar-width);
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

/* Sidebar compacte */
body.sidebar-collapsed { --sidebar-width:78px; }
body.sidebar-collapsed .sidebar-logo { justify-content:center; padding:1rem .7rem; }
body.sidebar-collapsed .sidebar-brand-copy,
body.sidebar-collapsed .sidebar-search-wrap,
body.sidebar-collapsed .sidebar-section-title,
body.sidebar-collapsed .sidebar-subtitle,
body.sidebar-collapsed .sidebar-nav a > span,
body.sidebar-collapsed .sidebar-badge,
body.sidebar-collapsed .sidebar-user .user-info,
body.sidebar-collapsed .sidebar-user .user-menu-arrow,
body.sidebar-collapsed .sidebar-utility a span { display:none; }
body.sidebar-collapsed .sidebar-collapse-btn { position:absolute; top:55px; right:8px; width:23px; height:23px; background:#17233a; border-color:#283957; z-index:2; }
body.sidebar-collapsed .sidebar-collapse-btn svg { transform:rotate(0); }
body.sidebar-collapsed .sidebar-section { padding:.5rem .65rem .1rem; }
body.sidebar-collapsed .sidebar-section.is-collapsed > .sidebar-nav { display:block; }
body.sidebar-collapsed .sidebar-nav a { justify-content:center; min-height:43px; padding:.65rem; transform:none; }
body.sidebar-collapsed .sidebar-nav svg { width:34px; height:34px; padding:6.5px; }
body.sidebar-collapsed .sidebar-user { justify-content:center; padding:.9rem .5rem; }
body.sidebar-collapsed .sidebar-user-menu { left:calc(100% + 10px); right:auto; bottom:.4rem; width:230px; }
body.sidebar-collapsed .sidebar-utility { padding:.2rem .65rem; }
body.sidebar-collapsed .sidebar-utility a { justify-content:center; padding:.65rem; }
.sidebar-tooltip { position:fixed; z-index:1500; padding:.42rem .65rem; color:#f8fafc; background:#111827; border:1px solid #334155; border-radius:7px; box-shadow:0 8px 22px rgba(2,6,23,.24); font-size:.7rem; font-weight:600; white-space:nowrap; opacity:0; pointer-events:none; transform:translateY(-50%) translateX(-4px); transition:opacity .12s,transform .12s; }
.sidebar-tooltip::before { content:''; position:absolute; right:100%; top:50%; border:5px solid transparent; border-right-color:#334155; transform:translateY(-50%); }
.sidebar-tooltip.visible { opacity:1; transform:translateY(-50%) translateX(0); }

/* Top header */
.topbar {
  height: var(--header-h);
  background: var(--card);
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  padding: 0 1.5rem;
  gap: 1rem;
  position: sticky;
  top: 0;
  z-index: 50;
}
.topbar-title {
  font-weight: 600;
  font-size: 1rem;
  color: var(--text);
  flex: 1;
}
.topbar-search {
  display: flex;
  align-items: center;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: .35rem .75rem;
  gap: .5rem;
  max-width: 280px;
  width: 100%;
}
.topbar-search input {
  border: none;
  background: transparent;
  outline: none;
  font-size: .85rem;
  width: 100%;
  color: var(--text);
}
.topbar-search svg { width: 16px; height: 16px; flex-shrink: 0; color: var(--text-muted); }
.topbar-actions { display: flex; align-items: center; gap: .5rem; }

.btn-icon {
  width: 36px; height: 36px;
  border-radius: var(--radius);
  border: none;
  background: transparent;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  color: var(--text-muted);
  transition: background .15s;
}
.btn-icon:hover { background: var(--bg); color: var(--text); }
.btn-icon svg { width: 18px; height: 18px; }

/* ---- Page content -------------------------------------------- */
.page-content {
  padding: 1.5rem;
  flex: 1;
}

.page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
  gap: .75rem;
}
.page-header h1 {
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--text);
}
.page-header .breadcrumb {
  font-size: .8rem;
  color: var(--text-muted);
  margin-top: .1rem;
}
.page-header .breadcrumb a { color: var(--text-muted); }
.page-header .breadcrumb span { margin: 0 .35rem; }

/* ---- Cards ---------------------------------------------------- */
.card {
  background: var(--card);
  border-radius: var(--radius-lg);
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
}
.card-header {
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
}
.card-header h2, .card-header h3 {
  font-size: .95rem;
  font-weight: 600;
  color: var(--text);
}
.card-body { padding: 1.25rem; }
.card-footer {
  padding: .75rem 1.25rem;
  border-top: 1px solid var(--border);
  background: var(--bg);
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
}

/* ---- Stat cards (dashboard) ----------------------------------- */
.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.stat-card {
  background: var(--card);
  border-radius: var(--radius-lg);
  border: 1px solid var(--border);
  padding: 1.1rem 1.25rem;
  display: flex;
  flex-direction: column;
  gap: .35rem;
  position: relative;
  overflow: hidden;
  box-shadow: var(--shadow);
}
.stat-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
}
.stat-card.blue::before   { background: var(--primary); }
.stat-card.red::before    { background: var(--danger); }
.stat-card.green::before  { background: var(--success); }
.stat-card.orange::before { background: var(--warning); }
.stat-card.purple::before { background: #8b5cf6; }
.stat-card.teal::before   { background: #14b8a6; }
.stat-card.gray::before   { background: var(--text-muted); }

.stat-card .stat-label {
  font-size: .75rem;
  font-weight: 500;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: .04em;
}
.stat-card .stat-value {
  font-size: 2rem;
  font-weight: 800;
  line-height: 1;
  color: var(--text);
}
.stat-card .stat-icon {
  position: absolute;
  right: 1rem; top: 50%;
  transform: translateY(-50%);
  opacity: .08;
  font-size: 3.5rem;
}
.stat-card .stat-sub {
  font-size: .75rem;
  color: var(--text-muted);
}

/* ---- Buttons -------------------------------------------------- */
.btn {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .5rem 1rem;
  border-radius: var(--radius);
  font-size: .875rem;
  font-weight: 500;
  border: 1px solid transparent;
  cursor: pointer;
  transition: background .15s, border-color .15s, box-shadow .15s;
  text-decoration: none;
  white-space: nowrap;
}
.btn:hover { text-decoration: none; }
.btn svg { width: 16px; height: 16px; flex-shrink: 0; }

.btn-primary  { background: var(--primary);  color: white; border-color: var(--primary); }
.btn-primary:hover  { background: var(--primary-dark); border-color: var(--primary-dark); }
.btn-success  { background: var(--success);  color: white; border-color: var(--success); }
.btn-danger   { background: var(--danger);   color: white; border-color: var(--danger); }
.btn-warning  { background: var(--warning);  color: white; border-color: var(--warning); }
.btn-outline  { background: white; color: var(--text); border-color: var(--border); }
.btn-outline:hover { background: var(--bg); }
.btn-ghost    { background: transparent; color: var(--text-muted); border-color: transparent; }
.btn-ghost:hover { background: var(--bg); color: var(--text); }
.btn-sm { padding: .3rem .7rem; font-size: .8rem; }
.btn-lg { padding: .7rem 1.4rem; font-size: .95rem; }

/* ---- Badges / statuts ---------------------------------------- */
.badge {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: .2rem .6rem;
  border-radius: 99px;
  font-size: .72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.badge-nouveau      { background: #eff6ff; color: #2563eb; }
.badge-assigné      { background: #f0fdf4; color: #16a34a; }
.badge-en_cours     { background: #fefce8; color: #d97706; }
.badge-en_attente   { background: #faf5ff; color: #7c3aed; }
.badge-terminé      { background: #f0fdf4; color: #15803d; }
.badge-facturé      { background: #ecfdf5; color: #059669; }
.badge-annulé       { background: #fef2f2; color: #dc2626; }
.badge-ouvert       { background: #eff6ff; color: #2563eb; }
.badge-urgent       { background: #fef2f2; color: #dc2626; }
.badge-semi-urgent  { background: #fffbeb; color: #d97706; }
.badge-non-urgent   { background: #f8fafc; color: #64748b; }
.badge-disponible   { background: #f0fdf4; color: #16a34a; }
.badge-occupé       { background: #fefce8; color: #d97706; }
.badge-absent       { background: #fef2f2; color: #dc2626; }
.badge-vacances     { background: #f0f9ff; color: #0369a1; }
.badge-critique     { background: #fef2f2; color: #dc2626; }
.badge-haute        { background: #fff7ed; color: #c2410c; }
.badge-normale      { background: #eff6ff; color: #2563eb; }
.badge-basse        { background: #f8fafc; color: #64748b; }

/* ---- Tables --------------------------------------------------- */
.table-wrap {
  overflow-x: auto;
  border-radius: var(--radius-lg);
  border: 1px solid var(--border);
  background: var(--card);
}
table {
  width: 100%;
  border-collapse: collapse;
  font-size: .875rem;
}
thead th {
  background: #f8fafc;
  padding: .75rem 1rem;
  text-align: left;
  font-size: .75rem;
  font-weight: 600;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: .05em;
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
}
tbody td {
  padding: .75rem 1rem;
  border-bottom: 1px solid var(--border);
  color: var(--text);
  vertical-align: middle;
}
tbody tr:last-child td { border-bottom: none; }
tbody tr:hover { background: #fafbfc; }
.td-actions { display: flex; gap: .35rem; align-items: center; }

/* ---- Formulaires --------------------------------------------- */
.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
.form-grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
.form-grid.cols-1 { grid-template-columns: 1fr; }
.col-span-2 { grid-column: span 2; }
.col-span-3 { grid-column: span 3; }

.form-group { display: flex; flex-direction: column; gap: .35rem; }
.form-group label {
  font-size: .8rem;
  font-weight: 600;
  color: var(--text);
}
.form-group label .req { color: var(--danger); margin-left: .2rem; }

.form-control {
  padding: .5rem .75rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  font-size: .875rem;
  color: var(--text);
  background: white;
  transition: border-color .15s, box-shadow .15s;
  width: 100%;
  font-family: var(--font);
}
.form-control:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(37,99,235,.1);
}
.form-control::placeholder { color: #94a3b8; }
textarea.form-control { resize: vertical; min-height: 90px; }
select.form-control { appearance: none; cursor: pointer; }

.form-hint { font-size: .75rem; color: var(--text-muted); }

.form-check {
  display: flex; align-items: center; gap: .5rem;
  font-size: .875rem; cursor: pointer;
}
.form-check input[type=checkbox] { width: 16px; height: 16px; cursor: pointer; }

/* Urgence selector */
.urgence-selector { display: flex; gap: .5rem; }
.urgence-btn {
  flex: 1;
  padding: .6rem;
  border: 2px solid var(--border);
  border-radius: var(--radius);
  text-align: center;
  cursor: pointer;
  font-size: .8rem;
  font-weight: 600;
  transition: all .15s;
}
.urgence-btn.urgent    { border-color: #fca5a5; color: var(--danger); background: #fef2f2; }
.urgence-btn.semi      { border-color: #fde68a; color: #d97706;       background: #fffbeb; }
.urgence-btn.non       { border-color: var(--border); color: var(--text-muted); }
.urgence-btn.selected.urgent { background: var(--danger);  color: white; border-color: var(--danger); }
.urgence-btn.selected.semi   { background: var(--warning); color: white; border-color: var(--warning); }
.urgence-btn.selected.non    { background: var(--text-muted); color: white; }

/* ---- Alerts / Flash ------------------------------------------ */
.alert {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  padding: .85rem 1rem;
  border-radius: var(--radius);
  border-left: 4px solid;
  margin-bottom: 1rem;
  font-size: .875rem;
}
.alert svg { width: 18px; height: 18px; flex-shrink: 0; margin-top: .1rem; }
.alert-success { background: #f0fdf4; border-color: var(--success); color: #15803d; }
.alert-error   { background: #fef2f2; border-color: var(--danger);  color: #dc2626; }
.alert-warning { background: #fffbeb; border-color: var(--warning); color: #d97706; }
.alert-info    { background: #eff6ff; border-color: var(--info);    color: #2563eb; }

/* ---- Pagination ---------------------------------------------- */
.pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .75rem 1rem;
  border-top: 1px solid var(--border);
  font-size: .8rem;
  color: var(--text-muted);
}
.pagination-links { display: flex; gap: .25rem; }
.page-link {
  width: 32px; height: 32px;
  display: flex; align-items: center; justify-content: center;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  color: var(--text);
  font-size: .8rem;
  transition: background .15s;
  text-decoration: none;
}
.page-link:hover { background: var(--bg); text-decoration: none; }
.page-link.active { background: var(--primary); color: white; border-color: var(--primary); }
.page-link.disabled { opacity: .4; pointer-events: none; }

/* ---- Filters bar --------------------------------------------- */
.filters-bar {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .75rem 1rem;
  border-bottom: 1px solid var(--border);
  background: #f8fafc;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  flex-wrap: wrap;
}
.filter-group { display: flex; align-items: center; gap: .4rem; }
.filter-group label { font-size: .75rem; color: var(--text-muted); font-weight: 500; white-space: nowrap; }
.filter-select {
  padding: .3rem .6rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  font-size: .8rem;
  background: white;
  color: var(--text);
  cursor: pointer;
}
.filter-input {
  padding: .3rem .7rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  font-size: .8rem;
  background: white;
  color: var(--text);
  width: 200px;
}
.filter-input:focus, .filter-select:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 2px rgba(37,99,235,.1);
}

/* ---- Sections / Grilles -------------------------------------- */
.section-title {
  font-size: .85rem;
  font-weight: 600;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: .05em;
  margin-bottom: .75rem;
}

.two-col { display: grid; grid-template-columns: 2fr 1fr; gap: 1.25rem; align-items: start; }
.three-col { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }

/* ---- Detail panels ------------------------------------------- */
.detail-list { display: flex; flex-direction: column; gap: .6rem; }
.detail-item { display: flex; gap: .5rem; font-size: .875rem; }
.detail-label { color: var(--text-muted); min-width: 120px; font-size: .8rem; flex-shrink: 0; }
.detail-value { color: var(--text); font-weight: 500; }

/* ---- Employe statut card ------------------------------------- */
.employe-card {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .75rem 1rem;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  cursor: pointer;
  transition: border-color .15s, box-shadow .15s;
}
.employe-card:hover { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(37,99,235,.08); }
.employe-card.selected { border-color: var(--primary); background: var(--primary-light); }
.employe-avatar {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--primary);
  display: flex; align-items: center; justify-content: center;
  color: white;
  font-weight: 700;
  font-size: .875rem;
  flex-shrink: 0;
}
.employe-info .name { font-weight: 600; font-size: .875rem; }
.employe-info .sub  { font-size: .75rem; color: var(--text-muted); }

/* ---- Score indicator ----------------------------------------- */
.score-bar {
  height: 5px;
  background: var(--border);
  border-radius: 99px;
  overflow: hidden;
  margin-top: .25rem;
}
.score-fill {
  height: 100%;
  background: var(--primary);
  border-radius: 99px;
  transition: width .4s;
}

/* ---- Toast --------------------------------------------------- */
#toast-container {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  z-index: 999;
  display: flex;
  flex-direction: column;
  gap: .5rem;
}
.toast {
  background: var(--text);
  color: white;
  padding: .75rem 1.1rem;
  border-radius: var(--radius);
  font-size: .85rem;
  box-shadow: var(--shadow-md);
  animation: slideIn .25s ease;
  max-width: 320px;
}
.toast.success { background: var(--success); }
.toast.error   { background: var(--danger); }
@keyframes slideIn {
  from { transform: translateX(20px); opacity: 0; }
  to   { transform: translateX(0);    opacity: 1; }
}

/* ---- Login ---------------------------------------------------- */
.auth-page {
  position:relative;
  overflow:hidden;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background:radial-gradient(circle at 18% 18%,rgba(211,153,32,.17),transparent 28%),radial-gradient(circle at 82% 78%,rgba(37,99,235,.13),transparent 30%),linear-gradient(135deg,#071727 0%,#102a43 52%,#081827 100%);
  padding: 1.5rem;
}
.auth-card {
  position:relative;
  z-index:1;
  overflow:hidden;
  background: white;
  border-radius: var(--radius-lg);
  padding: 2.5rem;
  width: 100%;
  max-width: 450px;
  border:1px solid rgba(255,255,255,.7);
  box-shadow:0 28px 70px rgba(0,0,0,.34);
}
.auth-card:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,#a86d07,#e7b348,#b8790b)}
.auth-logo {
  text-align: center;
  margin-bottom: 2rem;
}
.auth-logo .icon {
  width: 56px; height: 56px;
  background: var(--primary);
  border-radius: var(--radius-lg);
  margin: 0 auto .75rem;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.75rem;
}
.auth-logo h1 { font-size: 1.4rem; font-weight: 800; }
.auth-logo p  { color:#64748b;font-size:.82rem;margin-top:.15rem;letter-spacing:.01em }
.auth-brand-logo{display:block;width:min(330px,100%);max-height:190px;margin:-13px auto 0;object-fit:contain}
.auth-form .form-group { margin-bottom: 1rem; }

/* ---- Printer ------------------------------------------------- */
@media print {
  .sidebar, .topbar, .no-print, .filters-bar, .pagination { display: none !important; }
  .main-wrap { margin-left: 0 !important; }
  body { background: white; }
  .card { box-shadow: none; border: 1px solid #ccc; }
}

/* ---- Responsive ---------------------------------------------- */
.sidebar-toggle {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--text);
  padding: .4rem;
}
.sidebar-toggle svg { width: 22px; height: 22px; }

@media (max-width: 1024px) {
  .two-col { grid-template-columns: 1fr; }
  .three-col { grid-template-columns: repeat(2,1fr); }
  .form-grid.cols-3 { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 768px) {
  :root { --sidebar-width: 260px; }

  .sidebar {
    transform: translateX(-100%);
  }
  .sidebar.open {
    transform: translateX(0);
    box-shadow: 4px 0 20px rgba(0,0,0,.3);
  }
  .sidebar-toggle { display: flex; }
  .sidebar-toggle { position:fixed; left:.75rem; bottom:.75rem; z-index:95; align-items:center; justify-content:center; width:42px; height:42px; color:#fff; background:var(--primary); border-radius:12px; box-shadow:0 8px 22px rgba(37,99,235,.3); }
  .sidebar-collapse-btn { display:none; }
  body.sidebar-collapsed { --sidebar-width:260px; }
  body.sidebar-collapsed .sidebar-brand-copy { display:block; }
  body.sidebar-collapsed .sidebar-search-wrap { display:block; }
  body.sidebar-collapsed .sidebar-section-title { display:block; }
  body.sidebar-collapsed .sidebar-subtitle { display:block; }
  body.sidebar-collapsed .sidebar-nav a > span { display:inline; }
  body.sidebar-collapsed .sidebar-badge { display:inline-block; }
  body.sidebar-collapsed .sidebar-user .user-info { display:block; }
  body.sidebar-collapsed .sidebar-user .user-menu-arrow { display:grid; }
  body.sidebar-collapsed .sidebar-utility a span { display:inline; }
  body.sidebar-collapsed .sidebar-nav a { justify-content:flex-start; padding:.58rem .7rem; }
  .main-wrap { margin-left: 0; }

  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .form-grid  { grid-template-columns: 1fr; }
  .form-grid .col-span-2 { grid-column: span 1; }
  .three-col { grid-template-columns: 1fr; }

  .table-wrap thead th:nth-child(n+4) { display: none; }
  .table-wrap td:nth-child(n+4)       { display: none; }

  .filters-bar { overflow-x: auto; flex-wrap: nowrap; }
  .page-content { padding: 1rem; }
}

@media (max-width: 480px) {
  .stats-grid { grid-template-columns: 1fr 1fr; }
  .stat-card .stat-value { font-size: 1.6rem; }
  .auth-card { padding: 1.75rem; }
  .page-header { flex-direction: column; align-items: flex-start; }
}

/* ---- Overlay mobile sidebar ---------------------------------- */
.sidebar-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.5);
  z-index: 99;
}
.sidebar-overlay.visible { display: block; }

/* ---- Divers -------------------------------------------------- */
.text-muted { color: var(--text-muted); }
.text-sm    { font-size: .8rem; }
.text-right { text-align: right; }
.text-center{ text-align: center; }
.fw-bold    { font-weight: 700; }
.mt-1 { margin-top: .5rem; }
.mt-2 { margin-top: 1rem; }
.mt-3 { margin-top: 1.5rem; }
.mb-1 { margin-bottom: .5rem; }
.mb-2 { margin-bottom: 1rem; }
.d-flex { display: flex; }
.align-center { align-items: center; }
.justify-between { justify-content: space-between; }
.gap-1 { gap: .5rem; }
.gap-2 { gap: 1rem; }
.hidden { display: none !important; }
.loading { opacity: .5; pointer-events: none; }

/* Indicateur de chargement */
.spinner {
  width: 20px; height: 20px;
  border: 2px solid var(--border);
  border-top-color: var(--primary);
  border-radius: 50%;
  animation: spin .6s linear infinite;
  flex-shrink: 0;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* ---- Chart container ----------------------------------------- */
.chart-container {
  position: relative;
  height: 220px;
  width: 100%;
}

/* ---- Dashboard opérationnel ---------------------------------- */
.dashboard-heading {
  position:relative; overflow:hidden; margin-bottom:1.25rem; padding:1.35rem 1.5rem;
  color:#fff; border-radius:18px;
  background:linear-gradient(125deg,#172554 0%,#1e3a8a 48%,#2563eb 100%);
  box-shadow:0 14px 30px rgba(30,64,175,.18);
}
.dashboard-heading::after {
  content:''; position:absolute; right:12%; top:-90px; width:260px; height:260px;
  border:45px solid rgba(255,255,255,.055); border-radius:50%; pointer-events:none;
}
.dashboard-heading > * { position:relative; z-index:1; }
.dashboard-heading h1 { margin:.15rem 0 .2rem; color:#fff; font-size:1.65rem; }
.dashboard-heading .breadcrumb { color:rgba(255,255,255,.72); }
.dashboard-heading .dashboard-eyebrow { color:#bfdbfe; }
.dashboard-heading .btn-outline { color:#fff; background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.28); }
.dashboard-heading .btn-outline:hover { background:rgba(255,255,255,.18); }
.dashboard-eyebrow, .card-kicker, .attention-kicker, .dashboard-section-heading span {
  color: var(--text-muted); font-size: .7rem; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase;
}
.dashboard-actions { display: flex; gap: .5rem; }
.refresh-control { display:flex; flex-direction:column; align-items:flex-end; gap:.2rem; }
.refresh-control small { color:rgba(255,255,255,.62); font-size:.62rem; }
.stat-updated { animation:statPulse .55s ease-out; }
@keyframes statPulse { 0% { color:var(--primary); transform:scale(1); } 45% { color:#16a34a; transform:scale(1.12); } 100% { transform:scale(1); } }
.quick-actions { display:flex; align-items:stretch; gap:.55rem; margin-bottom:1.25rem; padding:.55rem; overflow-x:auto; background:rgba(255,255,255,.75); border:1px solid var(--border); border-radius:14px; box-shadow:0 4px 14px rgba(15,23,42,.04); scrollbar-width:thin; }
.quick-actions-label { display:flex; flex-direction:column; align-items:center; justify-content:center; min-width:auto; width:28px; padding:.3rem .4rem; border-right:1px solid var(--border); gap:.4rem; }
.quick-actions-label span { color:var(--text); font-size:.65rem; font-weight:800; writing-mode:vertical-rl; text-orientation:mixed; transform:rotate(180deg); white-space:nowrap; letter-spacing:.04em; }
.btn-pin-config { display:inline-flex; align-items:center; justify-content:center; padding:.25rem; background:none; border:1px solid var(--border); border-radius:6px; color:var(--text-muted); cursor:pointer; transition:background .15s,color .15s; }
.btn-pin-config:hover { background:var(--bg); color:var(--text); }
.gear-3d-wrap { display:flex; align-items:center; justify-content:center; }
.gear-3d-svg { width:20px; height:20px; animation:gearSpin 7s linear infinite; filter:drop-shadow(0 1px 2px rgba(0,0,0,.4)) drop-shadow(0 -1px 1px rgba(255,255,255,.3)); }
.btn-pin-config:hover .gear-3d-svg { animation-duration:1.2s; filter:drop-shadow(0 2px 4px rgba(0,0,0,.5)) drop-shadow(0 -1px 1px rgba(255,255,255,.4)); }
@keyframes gearSpin { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }
.btn-pin-add { background:none; border:none; color:var(--primary,#1a2744); font-size:.78rem; font-weight:600; cursor:pointer; padding:0; }
.quick-actions-empty { display:flex; align-items:center; gap:.6rem; padding:.45rem .6rem; color:var(--text-muted); font-size:.78rem; flex:1; }
.quick-action-item { display:flex; align-items:center; gap:.55rem; min-width:165px; padding:.45rem .6rem; color:var(--text); border-radius:10px; text-decoration:none; transition:background .15s,transform .15s; }
.quick-action-item:hover { background:#f8fafc; transform:translateY(-1px); text-decoration:none; }
.quick-action-item > span:last-child { display:flex; flex-direction:column; }
.quick-action-item strong { font-size:.75rem; white-space:nowrap; }
.quick-action-item small { color:var(--text-muted); font-size:.64rem; white-space:nowrap; }
.quick-actions > a { display:flex; align-items:center; gap:.55rem; min-width:165px; padding:.45rem .6rem; color:var(--text); border-radius:10px; text-decoration:none; transition:background .15s,transform .15s; }
.quick-actions > a:hover { background:#f8fafc; transform:translateY(-1px); text-decoration:none; }
.quick-actions > a > span:last-child { display:flex; flex-direction:column; }
.quick-actions > a strong { font-size:.75rem; white-space:nowrap; }
.quick-actions > a small { color:var(--text-muted); font-size:.64rem; white-space:nowrap; }
.quick-icon { display:grid; place-items:center; width:32px; height:32px; flex-shrink:0; border-radius:9px; }
.quick-icon svg { width:15px; height:15px; }
.quick-icon.primary { color:#2563eb; background:#dbeafe; }
.quick-icon.success { color:#059669; background:#d1fae5; }
.quick-icon.purple { color:#7c3aed; background:#ede9fe; }
.quick-icon.orange { color:#d97706; background:#fef3c7; }
.quick-icon.slate { color:#475569; background:#e2e8f0; }
.attention-panel {
  padding: 0; margin-bottom: 1.5rem; overflow: hidden;
  background: var(--card); border: 1px solid var(--border);
  border-radius: 16px; box-shadow: 0 8px 24px rgba(15,23,42,.06);
}
.attention-header { display:flex; align-items:center; justify-content:space-between; padding:1rem 1.2rem; color:#fff; background:linear-gradient(100deg,#7f1d1d,#b91c1c); border-bottom:0; }
.attention-header h2, .dashboard-section-heading h2 { font-size:1.05rem; margin-top:.1rem; }
.attention-header .attention-kicker { color:#fecaca; }
.attention-header h2 { color:#fff; }
.attention-count { display:grid; place-items:center; min-width:34px; height:34px; padding:0 .55rem; border-radius:999px; background:#fff; color:#b91c1c; font-weight:800; box-shadow:0 3px 10px rgba(69,10,10,.22); }
.attention-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.attention-item { display:flex; align-items:center; gap:.8rem; padding:1rem 1.1rem; color:var(--text); text-decoration:none; border-bottom:1px solid var(--border); transition:background .15s,transform .15s; }
.attention-item:nth-child(odd) { border-right:1px solid var(--border); }
.attention-item:hover { background:#f8fafc; text-decoration:none; transform:translateX(2px); }
.attention-icon { display:grid; place-items:center; width:34px; height:34px; border-radius:9px; flex-shrink:0; }
.attention-icon svg { width:18px; height:18px; }
.is-critical .attention-icon { background:#fee2e2; color:#dc2626; }
.is-warning .attention-icon { background:#fef3c7; color:#d97706; }
.is-info .attention-icon { background:#dbeafe; color:#2563eb; }
.attention-copy { display:flex; flex-direction:column; flex:1; min-width:0; }
.attention-copy strong { font-size:.85rem; }
.attention-copy small { color:var(--text-muted); font-size:.74rem; }
.attention-action { color:var(--primary); font-size:.76rem; font-weight:700; white-space:nowrap; }
.dashboard-section-heading { display:flex; justify-content:space-between; align-items:end; margin:1.4rem 0 .75rem; }
.stats-grid-primary { grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); margin-bottom:.75rem; }
.stats-grid-primary .stat-card { color:inherit; text-decoration:none; min-height:132px; padding:1.2rem 1.25rem; border:0; box-shadow:0 6px 18px rgba(15,23,42,.07); transition:transform .18s,box-shadow .18s; }
.stats-grid-primary .stat-card::before { height:4px; }
.stats-grid-primary .stat-card:hover { transform:translateY(-4px); box-shadow:0 14px 28px rgba(15,23,42,.12); text-decoration:none; }
.stat-top { display:flex; align-items:center; justify-content:space-between; gap:.5rem; }
.stat-mini-icon { display:grid; place-items:center; width:34px; height:34px; color:var(--primary); background:#eff6ff; border-radius:10px; opacity:1; }
.stat-card.red .stat-mini-icon { color:#dc2626; background:#fef2f2; }
.stat-card.orange .stat-mini-icon { color:#d97706; background:#fffbeb; }
.stat-card.green .stat-mini-icon, .stat-card.teal .stat-mini-icon { color:#059669; background:#ecfdf5; }
.stat-mini-icon svg { width:17px; height:17px; }
.secondary-metrics { display:flex; flex-wrap:wrap; gap:.6rem; margin-bottom:1.5rem; }
.secondary-metrics a { display:flex; align-items:baseline; gap:.4rem; padding:.5rem .8rem; border:1px solid #dbe3ef; border-radius:999px; background:rgba(255,255,255,.72); color:var(--text-muted); text-decoration:none; font-size:.75rem; box-shadow:0 2px 6px rgba(15,23,42,.03); }
.secondary-metrics strong { color:var(--text); font-size:.95rem; }
.dashboard-grid { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(280px,.8fr); gap:1.25rem; align-items:start; }
.dashboard-grid.single-column { grid-template-columns:1fr; }
.dashboard-grid .card, #baux-renouveler { border:0; border-radius:16px; box-shadow:0 7px 22px rgba(15,23,42,.07); overflow:hidden; }
.dashboard-grid .card-header, #baux-renouveler .card-header { padding:1rem 1.2rem; background:linear-gradient(180deg,#fff,#fbfdff); }
.card-header > div h3 { margin-top:.08rem; }
.operations-list, .team-list, .lease-list { padding:.45rem; }
.operations-overview { display:grid; grid-template-columns:repeat(3,1fr); gap:.65rem; padding:.8rem 1rem; background:#f8fafc; border-bottom:1px solid var(--border); }
.operations-overview a { display:flex; align-items:center; gap:.6rem; padding:.6rem .7rem; color:var(--text); background:#fff; border:1px solid var(--border); border-radius:10px; text-decoration:none; }
.operations-overview a:hover { border-color:#bfdbfe; box-shadow:0 3px 10px rgba(37,99,235,.07); }
.operations-overview a.needs-attention { border-color:#fed7aa; background:#fffaf5; }
.operations-overview a > span:last-child { display:flex; flex-direction:column; }
.operations-overview strong { font-size:1rem; line-height:1.1; }
.operations-overview small { color:var(--text-muted); font-size:.68rem; }
.overview-icon { display:grid; place-items:center; width:30px; height:30px; border-radius:8px; }
.overview-icon svg { width:15px; height:15px; }
.overview-icon.blue { color:#2563eb; background:#dbeafe; }
.overview-icon.orange { color:#d97706; background:#fef3c7; }
.overview-icon.green { color:#059669; background:#d1fae5; }
.operation-row { display:grid; grid-template-columns:8px minmax(170px,1.3fr) minmax(120px,.8fr) auto 72px; align-items:center; gap:.7rem; padding:.75rem .65rem; border-radius:var(--radius); color:var(--text); text-decoration:none; }
.operation-row:hover, .team-row:hover { background:var(--bg); text-decoration:none; }
.operation-row.is-unassigned { background:#fffaf5; }
.operation-row.is-unassigned:hover { background:#fff7ed; }
.operation-status { width:8px; height:8px; border-radius:50%; background:var(--warning); }
.status-en_cours { background:var(--primary); } .status-terminé { background:var(--success); }
.operation-main, .team-name { display:flex; flex-direction:column; min-width:0; }
.operation-main strong, .team-name strong { font-size:.82rem; }
.operation-main small, .team-name small { color:var(--text-muted); font-size:.73rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.operation-assignee { color:var(--text-muted); font-size:.76rem; white-space:nowrap; }
.operation-assignee svg { width:13px; height:13px; vertical-align:-2px; }
.operation-assignee em { color:var(--danger); font-style:normal; font-weight:600; }
.operation-action { color:var(--primary); font-size:.72rem; font-weight:700; text-align:right; white-space:nowrap; }
.dashboard-empty { display:flex; flex-direction:column; align-items:center; gap:.4rem; padding:1.8rem; color:var(--text-muted); background:linear-gradient(180deg,#fff,#f8fafc); }
.dashboard-empty > svg { width:36px; height:36px; padding:8px; color:var(--success); background:#dcfce7; border-radius:50%; }
.dashboard-empty strong { color:var(--text); }
.dashboard-empty .btn { margin-top:.45rem; }
.chart-legend { display:flex; gap:1rem; color:var(--text-muted); font-size:.75rem; }
.chart-controls { display:flex; align-items:center; gap:1rem; }
.period-selector { display:flex; padding:2px; background:var(--bg); border:1px solid var(--border); border-radius:8px; }
.period-selector a { padding:.2rem .48rem; border-radius:6px; color:var(--text-muted); font-size:.7rem; font-weight:700; text-decoration:none; }
.period-selector a.active { background:var(--card); color:var(--primary); box-shadow:var(--shadow); }
.chart-legend span::before { content:''; display:inline-block; width:8px; height:8px; margin-right:.35rem; border-radius:50%; }
.chart-legend .created::before { background:#2563eb; } .chart-legend .completed::before { background:#16a34a; }
.chart-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin:0 1.2rem; border:1px solid var(--border); border-radius:11px; overflow:hidden; background:var(--border); }
.chart-summary > div { display:flex; align-items:baseline; gap:.35rem; padding:.55rem .75rem; background:#f8fafc; }
.chart-summary strong { color:var(--text); font-size:1rem; }
.chart-summary span { color:var(--text-muted); font-size:.7rem; }
.chart-body { padding-top:.85rem; }
.chart-empty { height:180px; display:flex; flex-direction:column; align-items:center; justify-content:center; color:var(--text-muted); text-align:center; }
.chart-empty > span { display:grid; place-items:center; width:42px; height:42px; margin-bottom:.5rem; color:#64748b; background:#f1f5f9; border-radius:12px; }
.chart-empty svg { width:21px; height:21px; }
.chart-empty strong { color:var(--text); font-size:.85rem; }
.chart-empty small { margin-top:.2rem; font-size:.72rem; }
.team-row { display:flex; align-items:center; gap:.65rem; padding:.6rem .45rem; border-radius:var(--radius); color:var(--text); text-decoration:none; }
.team-row .employe-avatar { width:34px; height:34px; font-size:.75rem; flex-shrink:0; }
.team-name { flex:1; }
.team-load { display:block; width:100%; max-width:110px; height:3px; margin-top:.35rem; overflow:hidden; background:#e2e8f0; border-radius:999px; }
.team-load i { display:block; height:100%; background:linear-gradient(90deg,#60a5fa,#2563eb); border-radius:inherit; }
.lease-row { display:grid; grid-template-columns:minmax(220px,1.5fr) 100px 100px 115px auto; align-items:center; gap:1rem; padding:.75rem; border-bottom:1px solid var(--border); font-size:.8rem; }
.lease-row:last-child { border-bottom:0; }
.lease-row > div:first-child { display:flex; flex-direction:column; }
.lease-row small { color:var(--text-muted); }
.lease-delay { width:max-content; padding:.25rem .55rem; border-radius:999px; background:var(--bg); font-weight:700; }
.lease-delay.warning { background:#fef3c7; color:#92400e; } .lease-delay.critical { background:#fee2e2; color:#b91c1c; }
.lease-actions { display:flex; justify-content:flex-end; gap:.35rem; }
.dashboard-modal { position:fixed; inset:0; z-index:1200; display:none; align-items:center; justify-content:center; padding:1rem; }
.dashboard-modal.open { display:flex; }
.dashboard-modal-backdrop { position:absolute; inset:0; width:100%; height:100%; padding:0; border:0; background:rgba(15,23,42,.58); backdrop-filter:blur(3px); cursor:default; }
.dashboard-modal-card { position:relative; z-index:1; width:min(520px,100%); max-height:min(720px,90vh); overflow:hidden; background:#fff; border-radius:18px; box-shadow:0 30px 70px rgba(15,23,42,.3); animation:dashboardModalIn .18s ease-out; }
@keyframes dashboardModalIn { from { opacity:0; transform:translateY(10px) scale(.98); } to { opacity:1; transform:none; } }
.dashboard-modal-header { display:flex; justify-content:space-between; align-items:flex-start; padding:1.1rem 1.2rem; border-bottom:1px solid var(--border); }
.dashboard-modal-header h3 { margin:.12rem 0; font-size:1.05rem; }
.dashboard-modal-header small { color:var(--text-muted); }
.modal-close { display:grid; place-items:center; width:34px; height:34px; padding:0; color:var(--text-muted); background:var(--bg); border:0; border-radius:9px; cursor:pointer; }
.modal-close:hover { color:var(--text); background:#e2e8f0; }
.employee-choice-list { max-height:430px; padding:.7rem; overflow-y:auto; }
.employee-choice { display:flex; align-items:center; gap:.7rem; margin-bottom:.35rem; padding:.7rem; border:1px solid transparent; border-radius:11px; cursor:pointer; transition:background .15s,border-color .15s; }
.employee-choice:hover { background:#f8fafc; border-color:var(--border); }
.employee-choice:has(input:checked) { background:#eff6ff; border-color:#93c5fd; }
.employee-choice input { accent-color:var(--primary); }
.employee-choice .employe-avatar { width:34px; height:34px; font-size:.75rem; }
.employee-choice > span:nth-of-type(2) { display:flex; flex:1; flex-direction:column; min-width:0; }
.employee-choice strong { font-size:.8rem; }
.employee-choice small { color:var(--text-muted); font-size:.7rem; }
.employee-choice em { color:#047857; font-size:.68rem; font-style:normal; font-weight:700; }
.employee-choice.is-off { opacity:.5; cursor:not-allowed; }
.employee-choice.is-off em { color:var(--text-muted); }
.dashboard-modal-footer { display:flex; justify-content:flex-end; gap:.55rem; padding:.9rem 1.2rem; background:#f8fafc; border-top:1px solid var(--border); }

@media (max-width:1100px) {
  .stats-grid-primary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dashboard-grid { grid-template-columns:1fr; }
}
@media (max-width:768px) {
  .quick-actions-label { min-width:120px; }
  .quick-actions > a { min-width:145px; }
  .attention-list { grid-template-columns:1fr; }
  .attention-item:nth-child(odd) { border-right:0; }
  .attention-action { display:none; }
  .operation-row { grid-template-columns:8px minmax(0,1fr) auto; }
  .operation-assignee, .operation-action { display:none; }
  .operations-overview { grid-template-columns:1fr 1fr 1fr; padding:.65rem; gap:.4rem; }
  .operations-overview a { flex-direction:column; align-items:flex-start; gap:.35rem; padding:.55rem; }
  .lease-row { grid-template-columns:minmax(0,1fr) auto; }
  .lease-row > span:nth-of-type(1), .lease-row > span:nth-of-type(2) { display:none; }
  .lease-actions { grid-column:1/-1; justify-content:flex-start; }
}
@media (max-width:480px) {
  .dashboard-actions { width:100%; }
  .dashboard-actions .btn { flex:1; justify-content:center; }
  .refresh-control { flex:1; }
  .refresh-control .btn { width:100%; }
  .stats-grid-primary { grid-template-columns:1fr 1fr; }
  .stats-grid-primary .stat-card { min-height:112px; padding:.9rem; }
  .secondary-metrics { display:grid; grid-template-columns:1fr; }
  .secondary-metrics a { border-radius:var(--radius); }
  .chart-legend { display:none; }
  .chart-summary { margin:0 .8rem; }
  .chart-summary > div { flex-direction:column; gap:0; padding:.5rem; }
  .dashboard-modal { align-items:flex-end; padding:0; }
  .dashboard-modal-card { width:100%; max-height:88vh; border-radius:18px 18px 0 0; }
}

/* Work orders — operational list */
.page-eyebrow { display:block; margin-bottom:.22rem; color:var(--primary); font-size:.68rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.workorders-header h1 { display:flex; align-items:center; gap:.55rem; }
.workorders-header h1 svg { width:25px; height:25px; color:var(--primary); }
.workorder-stats { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:.7rem; margin-bottom:1rem; }
.workorder-stat { display:flex; align-items:center; gap:.7rem; min-width:0; padding:.85rem; color:var(--text); background:#fff; border:1px solid var(--border); border-radius:13px; box-shadow:0 1px 2px rgba(15,23,42,.04); text-decoration:none; transition:transform .15s,box-shadow .15s,border-color .15s; }
.workorder-stat:hover { transform:translateY(-2px); border-color:#cbd5e1; box-shadow:0 8px 20px rgba(15,23,42,.08); }
.workorder-stat-icon { display:grid; place-items:center; width:38px; height:38px; flex:0 0 38px; border-radius:10px; }
.workorder-stat-icon svg { width:19px; height:19px; }
.workorder-stat div { min-width:0; }
.workorder-stat strong,.workorder-stat span:last-child { display:block; }
.workorder-stat strong { font-size:1.25rem; line-height:1.1; }
.workorder-stat div span { margin-top:.18rem; overflow:hidden; color:var(--text-muted); font-size:.68rem; font-weight:600; text-overflow:ellipsis; white-space:nowrap; }
.stat-blue .workorder-stat-icon { color:#2563eb; background:#dbeafe; }.stat-violet .workorder-stat-icon { color:#7c3aed; background:#ede9fe; }.stat-cyan .workorder-stat-icon { color:#0891b2; background:#cffafe; }.stat-orange .workorder-stat-icon { color:#ea580c; background:#ffedd5; }.stat-red .workorder-stat-icon { color:#dc2626; background:#fee2e2; }.stat-green .workorder-stat-icon { color:#16a34a; background:#dcfce7; }
.workorders-card { overflow:hidden; }
.workorder-filters { display:grid; grid-template-columns:minmax(260px,1fr) 165px 190px 165px auto auto; align-items:center; gap:.55rem; padding:1rem; border-bottom:none; background:#fff; }
.semaine-nav { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; padding:.75rem 0; margin-bottom:.75rem; }
.semaine-nav__label { flex:1; min-width:200px; text-align:center; font-size:.95rem; }
@media print {
  .sidebar, .page-header, .schedules-page__actions, .semaine-nav, .schedule-add,
  .schedules-page__stats, #vue-calendar, #vue-accordion, .ticket-view-tabs,
  .btn, nav, header, .sidebar-section { display:none !important; }
  #vue-compare { display:block !important; }
  .schedule-compare { page-break-inside:avoid; }
  body { background:#fff !important; color:#000 !important; }
  .card { box-shadow:none !important; border:1px solid #ccc !important; }
}
.status-chips-bar { display:flex; flex-wrap:wrap; gap:.4rem; padding:.65rem 1rem; border-bottom:1px solid var(--border); background:#fff; }
.status-chip { padding:.3rem .85rem; border-radius:20px; font-size:.78rem; font-weight:500; text-decoration:none; border:1px solid var(--border); color:var(--text-muted); background:#f8fafc; transition:all .15s; }
.status-chip:hover { border-color:#93c5fd; color:#2563eb; background:#eff6ff; }
.status-chip.is-active { font-weight:600; }
.chip-ouvert.is-active { background:#dbeafe; border-color:#93c5fd; color:#1d4ed8; }
.chip-en_cours.is-active { background:#fef9c3; border-color:#fde047; color:#92400e; }
.chip-en_attente.is-active { background:#fef3c7; border-color:#fcd34d; color:#78350f; }
.chip-terminé.is-active { background:#dcfce7; border-color:#86efac; color:#166534; }
.chip-annulé.is-active { background:#f3f4f6; border-color:#9ca3af; color:#374151; }
.chip-non_assignes.is-active { background:#f5f3ff; border-color:#c4b5fd; color:#6d28d9; }
.workorder-search { position:relative; }
.workorder-search svg { position:absolute; top:50%; left:.8rem; width:17px; height:17px; color:var(--text-muted); transform:translateY(-50%); pointer-events:none; }
.workorder-search input { width:100%; height:39px; padding:0 .8rem 0 2.35rem; color:var(--text); background:#f8fafc; border:1px solid var(--border); border-radius:9px; outline:0; }
.workorder-search input:focus { background:#fff; border-color:#93c5fd; box-shadow:0 0 0 3px #dbeafe; }
.active-filter-line { display:flex; align-items:center; gap:.55rem; padding:.55rem 1rem; color:#1d4ed8; background:#eff6ff; border-bottom:1px solid #dbeafe; font-size:.75rem; }
.active-filter-line span { display:flex; align-items:center; gap:.35rem; font-weight:700; }.active-filter-line svg { width:14px;height:14px; }.active-filter-line small { color:#64748b; }
.workorders-table-wrap { border:0; border-radius:0; }
.workorders-table th { padding:.72rem 1rem; color:#64748b; background:#f8fafc; font-size:.68rem; letter-spacing:.05em; text-transform:uppercase; }
.workorders-table td { padding:.85rem 1rem; vertical-align:middle; }
.workorder-row { position:relative; }
.workorder-row td:first-child { border-left:3px solid transparent; }
.workorder-row.priority-urgent td:first-child { border-left-color:#ef4444; }.workorder-row.priority-haute td:first-child { border-left-color:#f97316; }.workorder-row.priority-normale td:first-child { border-left-color:#3b82f6; }.workorder-row.priority-basse td:first-child { border-left-color:#94a3b8; }
.workorder-main { display:flex; flex-direction:column; min-width:200px; max-width:340px; }
.workorder-number { width:max-content; color:#2563eb; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.78rem; font-weight:800; text-decoration:none; }
.workorder-main > span { margin:.2rem 0; overflow:hidden; font-size:.79rem; font-weight:650; text-overflow:ellipsis; white-space:nowrap; }.workorder-main small,.workorder-location small,.workorder-date small { color:var(--text-muted); font-size:.67rem; }
.workorder-location,.workorder-date,.workorder-assignee { display:flex; align-items:center; gap:.55rem; }
.workorder-location > span,.workorder-date > svg { color:#64748b; }.workorder-location svg,.workorder-date svg { width:17px;height:17px;flex:0 0 17px; }
.workorder-location div,.workorder-date div { display:flex; flex-direction:column; }.workorder-location strong,.workorder-date strong,.workorder-assignee strong { font-size:.76rem; }
.workorder-date.is-late,.workorder-mobile-meta .is-late { color:#dc2626; }.workorder-date.is-late svg,.workorder-date.is-late small { color:#dc2626; }
.workorder-assignee .employe-avatar { width:30px;height:30px;flex:0 0 30px;font-size:.7rem; }.workorder-unassigned { display:flex;align-items:center;gap:.35rem;color:var(--text-muted);font-size:.73rem; }.workorder-unassigned svg { width:15px;height:15px; }
.workorder-badges { display:flex; flex-wrap:wrap; gap:.3rem; }.workorder-actions { justify-content:flex-end; }
.workorders-empty { display:flex; flex-direction:column; align-items:center; padding:4rem 1rem; text-align:center; }.workorders-empty > span { display:grid;place-items:center;width:52px;height:52px;color:#64748b;background:#f1f5f9;border-radius:15px; }.workorders-empty svg { width:25px;height:25px; }.workorders-empty h3 { margin:.8rem 0 .2rem; }.workorders-empty p { margin:0 0 1rem;color:var(--text-muted);font-size:.82rem; }
.workorder-mobile-list { display:none; }

@media (max-width:1300px) { .workorder-stats { grid-template-columns:repeat(3,1fr); }.workorder-filters { grid-template-columns:minmax(240px,1fr) 155px 180px; }.workorder-filters .btn { justify-content:center; } }
@media (max-width:900px) { .workorder-stats { grid-template-columns:repeat(2,1fr); }.workorder-filters { grid-template-columns:1fr 1fr; }.workorder-search { grid-column:1/-1; }.workorders-table-wrap { display:none; }.workorder-mobile-list { display:grid; gap:.7rem; padding:.8rem; background:#f8fafc; }.workorder-mobile-card { padding:.9rem; background:#fff; border:1px solid var(--border); border-left:4px solid #94a3b8; border-radius:12px; box-shadow:0 1px 2px rgba(15,23,42,.04); }.workorder-mobile-card.priority-urgent { border-left-color:#ef4444; }.workorder-mobile-card.priority-haute { border-left-color:#f97316; }.workorder-mobile-card.priority-normale { border-left-color:#3b82f6; }.workorder-mobile-top,.workorder-mobile-meta,.workorder-mobile-footer { display:flex;align-items:center;justify-content:space-between;gap:.7rem; }.workorder-mobile-top > a { color:#2563eb;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;font-weight:800;text-decoration:none; }.workorder-mobile-card h3 { margin:.7rem 0 .45rem;font-size:.87rem; }.workorder-mobile-card p { display:flex;align-items:center;gap:.35rem;margin:0;color:var(--text-muted);font-size:.74rem; }.workorder-mobile-card p svg,.workorder-mobile-meta svg { width:14px;height:14px; }.workorder-mobile-meta { margin:.75rem 0;padding:.65rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);font-size:.72rem; }.workorder-mobile-footer .workorder-assignee { font-size:.73rem; } }
@media (max-width:560px) { .workorders-header { align-items:flex-start; }.workorders-header .btn { padding:.55rem .7rem;font-size:.72rem; }.workorder-stats { grid-template-columns:1fr 1fr;gap:.5rem; }.workorder-stat { padding:.65rem; }.workorder-stat-icon { width:34px;height:34px;flex-basis:34px; }.workorder-filters { grid-template-columns:1fr;padding:.75rem; }.workorder-search { grid-column:auto; }.workorder-filters .btn { width:100%; }.workorder-mobile-footer { align-items:flex-end; }.workorder-mobile-footer .workorder-assignee { max-width:55%; }.workorder-mobile-footer .workorder-assignee:not(:has(.employe-avatar)) { font-size:.68rem; } }

/* Tickets / bons de travail — page principale */
.ticket-summary { grid-template-columns:repeat(5,minmax(0,1fr)); }
.ticket-view-tabs { display:flex; gap:.35rem; margin-bottom:.8rem; padding:.3rem; width:max-content; max-width:100%; overflow-x:auto; background:#e8eef7; border-radius:11px; }
.ticket-view-tabs a { display:flex; align-items:center; gap:.4rem; padding:.52rem .85rem; color:#64748b; border-radius:8px; font-size:.75rem; font-weight:700; text-decoration:none; white-space:nowrap; transition:background .15s,color .15s,box-shadow .15s; }
.ticket-view-tabs a:hover { color:var(--text); background:rgba(255,255,255,.55); }
.ticket-view-tabs a.active { color:#1d4ed8; background:#fff; box-shadow:0 2px 7px rgba(15,23,42,.1); }
.ticket-view-tabs svg { width:16px;height:16px; }
.ticket-filters { grid-template-columns:minmax(250px,1fr) 155px 165px minmax(260px,auto) auto auto; }
.ticket-date-range { display:flex; align-items:center; gap:.35rem; color:var(--text-muted); font-size:.7rem; }
.ticket-date-range input { width:128px; }
.tickets-modern-table .workorder-main small { max-width:310px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ticket-tenant { display:flex; align-items:center; gap:.4rem; font-size:.74rem; }.ticket-tenant svg { width:15px;height:15px;color:#64748b; }
.ticket-created { display:flex; flex-direction:column; font-size:.73rem; }.ticket-created small { margin-top:.15rem;color:var(--text-muted); }
@media (max-width:1300px) { .ticket-summary { grid-template-columns:repeat(5,minmax(150px,1fr)); overflow-x:auto; }.ticket-filters { grid-template-columns:minmax(240px,1fr) 155px 165px; }.ticket-date-range { justify-content:flex-start; }.ticket-date-range input { flex:1;width:auto; } }
@media (max-width:900px) { .ticket-summary { grid-template-columns:repeat(2,1fr); overflow:visible; }.ticket-summary .workorder-stat:last-child { grid-column:1/-1; }.ticket-view-tabs { width:100%; }.ticket-view-tabs a { flex:1; justify-content:center; }.ticket-filters { grid-template-columns:1fr 1fr; }.ticket-filters .workorder-search { grid-column:1/-1; } }
@media (max-width:560px) { .ticket-view-tabs a span { display:none; }.ticket-view-tabs a { min-width:42px; }.ticket-filters { grid-template-columns:1fr; }.ticket-filters .workorder-search { grid-column:auto; }.ticket-date-range { display:grid;grid-template-columns:1fr auto 1fr; }.ticket-summary .workorder-stat:last-child { grid-column:1/-1; } }

.ticket-display-switch { display:flex; align-items:center; justify-content:flex-end; gap:.3rem; margin:-3rem 0 .8rem auto; width:max-content; padding:.25rem; background:#e8eef7; border-radius:9px; }
.ticket-display-switch > span { padding:0 .45rem; color:var(--text-muted); font-size:.66rem; font-weight:700; text-transform:uppercase; }
.ticket-display-switch a { display:flex; align-items:center; gap:.35rem; padding:.42rem .65rem; color:#64748b; border-radius:7px; font-size:.7rem; font-weight:700; text-decoration:none; }
.ticket-display-switch a.active { color:#1d4ed8; background:#fff; box-shadow:0 1px 4px rgba(15,23,42,.12); }.ticket-display-switch svg { width:14px;height:14px; }
.ticket-kanban { display:grid; grid-template-columns:repeat(5,minmax(235px,1fr)); gap:.65rem; padding:.8rem; overflow-x:auto; background:#f1f5f9; }
.ticket-kanban-column { min-height:420px; overflow:hidden; background:#e8edf5; border-radius:12px; }
.ticket-kanban-column > header { display:flex; align-items:center; justify-content:space-between; padding:.8rem; border-top:3px solid #64748b; }
.ticket-kanban-column.column-nouveau > header { border-color:#3b82f6; }.ticket-kanban-column.column-assigné > header { border-color:#8b5cf6; }.ticket-kanban-column.column-en_cours > header { border-color:#f59e0b; }.ticket-kanban-column.column-en_attente > header { border-color:#ef4444; }.ticket-kanban-column.column-termine > header { border-color:#22c55e; }
.ticket-kanban-column h3 { margin:0; font-size:.78rem; }.ticket-kanban-column header small { color:var(--text-muted); font-size:.62rem; }.ticket-kanban-column header strong { display:grid;place-items:center;min-width:25px;height:25px;color:#475569;background:#fff;border-radius:999px;font-size:.69rem; }
.ticket-kanban-stack { display:flex; flex-direction:column; gap:.55rem; padding:0 .55rem .65rem; }
.ticket-kanban-card { position:relative; display:block; padding:.75rem; color:var(--text); background:#fff; border:1px solid #dbe2eb; border-left:3px solid #3b82f6; border-radius:9px; box-shadow:0 1px 2px rgba(15,23,42,.05); text-decoration:none; transition:transform .15s,box-shadow .15s; }.ticket-kanban-card:hover { transform:translateY(-2px);box-shadow:0 7px 16px rgba(15,23,42,.1); }.ticket-kanban-card.priority-urgent { border-left-color:#ef4444; }.ticket-kanban-card.priority-haute { border-left-color:#f97316; }
.ticket-kanban-card-top,.ticket-kanban-card footer { display:flex; align-items:center; justify-content:space-between; gap:.5rem; }.ticket-kanban-card-top > span { color:#2563eb;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.65rem;font-weight:800; }.ticket-kanban-card-top i { font-style:normal; }.ticket-kanban-card h4 { margin:.65rem 0 .45rem;font-size:.75rem;line-height:1.35; }.ticket-kanban-card p { display:flex;align-items:flex-start;gap:.3rem;margin:0 0 .7rem;color:#64748b;font-size:.66rem;line-height:1.35; }.ticket-kanban-card p svg { width:13px;height:13px;flex:0 0 13px; }.ticket-kanban-card footer { padding-top:.6rem;border-top:1px solid #eef2f7;color:#64748b;font-size:.62rem; }.ticket-kanban-card footer span { display:flex;align-items:center;gap:.25rem;max-width:80%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }.ticket-kanban-card footer svg { width:12px;height:12px; }.ticket-kanban-empty { display:grid;place-items:center;height:90px;color:#94a3b8;border:1px dashed #cbd5e1;border-radius:9px;font-size:.68rem; }
@media (max-width:900px) { .ticket-display-switch { margin:0 0 .8rem auto; }.ticket-kanban { grid-template-columns:repeat(5,260px); } }

.ticket-assign-trigger { display:flex; align-items:center; gap:.5rem; max-width:190px; padding:.28rem .4rem; color:var(--text); background:transparent; border:0; border-radius:8px; text-align:left; cursor:pointer; }
.ticket-assign-trigger:hover { background:#eff6ff; }.ticket-assign-trigger > span:not(.employe-avatar) { display:flex;flex-direction:column;min-width:0; }.ticket-assign-trigger strong { overflow:hidden;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap; }.ticket-assign-trigger small { color:var(--text-muted);font-size:.59rem; }.ticket-assign-trigger > svg { width:25px;height:25px;padding:5px;color:#2563eb;background:#dbeafe;border-radius:7px; }.ticket-assign-trigger.is-empty strong { color:#2563eb; }
.ticket-assign-current { margin:.75rem 1.2rem 0;padding:.6rem .75rem;color:#475569;background:#f1f5f9;border-radius:8px;font-size:.72rem; }
.ticket-kanban-card-top > a { color:#2563eb;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.65rem;font-weight:800;text-decoration:none; }
.ticket-kanban-card footer button { display:flex;align-items:center;gap:.25rem;max-width:80%;padding:0;overflow:hidden;color:#64748b;background:none;border:0;font-size:.62rem;text-overflow:ellipsis;white-space:nowrap;cursor:pointer; }.ticket-kanban-card footer button:hover { color:#2563eb; }.ticket-kanban-card footer button svg { width:12px;height:12px;flex:0 0 12px; }
.ticket-completed-label { display:flex;align-items:center;gap:.35rem;color:#15803d;font-size:.7rem;font-weight:700; }.ticket-completed-label svg { width:15px;height:15px; }
.ticket-quick-status { margin:0; }
.ticket-quick-status select { height:27px; max-width:112px; padding:0 1.55rem 0 .5rem; color:#334155; background:#f8fafc; border:1px solid #dbe2eb; border-radius:999px; font-size:.63rem; font-weight:800; outline:0; cursor:pointer; }
.ticket-quick-status select:hover { color:#1d4ed8; border-color:#93c5fd; }.ticket-quick-status select:focus { border-color:#60a5fa;box-shadow:0 0 0 3px #dbeafe; }
.ticket-kanban-card .ticket-quick-status { margin:0 0 .6rem; }.ticket-kanban-card .ticket-quick-status select { width:100%;max-width:none;height:30px;border-radius:7px; }

/* Ticket detail — modern operational header */
.ticket-detail-hero { position:relative; display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem; margin-bottom:.75rem; padding:1.25rem 1.35rem; overflow:hidden; background:linear-gradient(135deg,#fff 0%,#f8fafc 100%); border:1px solid var(--border); border-left:4px solid #3b82f6; border-radius:16px; box-shadow:0 4px 16px rgba(15,23,42,.055); }
.ticket-detail-hero.priority-urgent { border-left-color:#ef4444; }.ticket-detail-hero.priority-semi-urgent { border-left-color:#f59e0b; }.ticket-detail-hero.priority-non-urgent { border-left-color:#22c55e; }
.ticket-detail-heading { min-width:0; }.ticket-detail-kicker { display:flex;align-items:center;gap:.45rem;margin-bottom:.75rem;color:var(--text-muted);font-size:.68rem; }.ticket-detail-kicker a { display:flex;align-items:center;gap:.3rem;color:#2563eb;font-weight:700;text-decoration:none; }.ticket-detail-kicker svg { width:14px;height:14px; }
.ticket-detail-title { display:flex;align-items:center;gap:.8rem; }.ticket-detail-icon { display:grid;place-items:center;width:46px;height:46px;flex:0 0 46px;color:#2563eb;background:#dbeafe;border-radius:13px; }.ticket-detail-icon svg { width:23px;height:23px; }.ticket-detail-title h1 { margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.32rem;letter-spacing:-.03em; }.ticket-detail-title p { margin:.2rem 0 0;overflow:hidden;color:#475569;font-size:.82rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap; }
.ticket-detail-badges { display:flex;align-items:center;gap:.4rem;margin-top:.85rem; }.ticket-locked { display:flex;align-items:center;gap:.3rem;padding:.25rem .55rem;color:#15803d;background:#dcfce7;border-radius:999px;font-size:.66rem;font-weight:800; }.ticket-locked svg { width:13px;height:13px; }
.ticket-detail-actions { display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.45rem; }.ticket-detail-actions .btn { white-space:nowrap; }
.ticket-detail-summary { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;margin-bottom:1.15rem; }.ticket-detail-summary-item { display:flex;align-items:center;gap:.7rem;min-width:0;padding:.8rem .9rem;color:var(--text);background:#fff;border:1px solid var(--border);border-radius:12px;text-decoration:none; }.ticket-detail-summary-item > span { display:grid;place-items:center;width:35px;height:35px;flex:0 0 35px;color:#2563eb;background:#eff6ff;border-radius:9px; }.ticket-detail-summary-item > span svg { width:17px;height:17px; }.ticket-detail-summary-item > div { display:flex;flex-direction:column;min-width:0; }.ticket-detail-summary-item small { color:var(--text-muted);font-size:.6rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase; }.ticket-detail-summary-item strong,.ticket-detail-summary-item em { overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }.ticket-detail-summary-item strong { margin:.12rem 0;font-size:.76rem; }.ticket-detail-summary-item em { color:var(--text-muted);font-size:.64rem;font-style:normal; }.ticket-detail-summary-item[href]:hover { border-color:#93c5fd;box-shadow:0 4px 12px rgba(37,99,235,.08); }
@media (max-width:1050px) { .ticket-detail-summary { grid-template-columns:1fr 1fr; } }
@media (max-width:720px) { .ticket-detail-hero { align-items:stretch;flex-direction:column;padding:1rem; }.ticket-detail-actions { justify-content:flex-start; }.ticket-detail-title p { white-space:normal; }.ticket-detail-summary { grid-template-columns:1fr; }.ticket-detail-summary-item { padding:.7rem; } }

.ticket-request-card { overflow:hidden; }.ticket-section-header > div:first-child { display:flex;align-items:center;gap:.65rem; }.ticket-section-icon { display:grid;place-items:center;width:34px;height:34px;color:#2563eb;background:#eff6ff;border-radius:9px; }.ticket-section-icon svg { width:17px;height:17px; }.ticket-section-header h3 { margin:0;font-size:.9rem; }.ticket-section-header small { color:var(--text-muted);font-size:.65rem; }.ticket-request-age { display:flex;align-items:center;gap:.3rem;color:var(--text-muted);font-size:.68rem; }.ticket-request-age svg { width:14px;height:14px; }
.ticket-request-meta { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin-bottom:.8rem; }.ticket-request-meta > div { display:grid;grid-template-columns:18px 1fr;align-items:center;column-gap:.45rem;padding:.65rem;background:#f8fafc;border:1px solid #eef2f7;border-radius:9px; }.ticket-request-meta svg,.ticket-category-dot { grid-row:1/3;width:16px;height:16px;color:#64748b; }.ticket-category-dot { width:9px;height:9px;margin-left:3px;border-radius:999px; }.ticket-request-meta small { color:var(--text-muted);font-size:.58rem;font-weight:800;text-transform:uppercase; }.ticket-request-meta strong { overflow:hidden;font-size:.7rem;text-overflow:ellipsis;white-space:nowrap; }
.ticket-description-block,.ticket-internal-note { display:flex;align-items:flex-start;gap:.7rem;padding:.85rem 1rem;border-radius:10px; }.ticket-description-block { background:#f8fafc;border:1px solid var(--border); }.ticket-description-block > span,.ticket-internal-note > span { display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;border-radius:8px; }.ticket-description-block > span { color:#2563eb;background:#dbeafe; }.ticket-description-block svg,.ticket-internal-note svg { width:15px;height:15px; }.ticket-description-block small,.ticket-internal-note small { color:var(--text-muted);font-size:.6rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase; }.ticket-description-block p,.ticket-internal-note p { margin:.3rem 0 0;font-size:.8rem;line-height:1.6; }.ticket-internal-note { margin-top:.7rem;background:#fffbeb;border:1px solid #fde68a; }.ticket-internal-note > span { color:#b45309;background:#fef3c7; }.ticket-internal-note small { color:#92400e; }
.ticket-photo-section { margin-top:.9rem; }.ticket-photo-title,.ticket-photo-title > div { display:flex;align-items:center;justify-content:space-between;gap:.55rem; }.ticket-photo-title > div > span { display:grid;place-items:center;width:30px;height:30px;color:#7c3aed;background:#ede9fe;border-radius:8px; }.ticket-photo-title svg { width:15px;height:15px; }.ticket-photo-title strong,.ticket-photo-title small { display:block; }.ticket-photo-title strong { font-size:.75rem; }.ticket-photo-title small { color:var(--text-muted);font-size:.61rem; }
.ticket-photo-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(105px,1fr));gap:.55rem;margin-top:.6rem; }.ticket-photo-grid a { position:relative;display:block;overflow:hidden;aspect-ratio:4/3;background:#f1f5f9;border:1px solid var(--border);border-radius:10px; }.ticket-photo-grid img { width:100%;height:100%;object-fit:cover;transition:transform .2s; }.ticket-photo-grid a:hover img { transform:scale(1.04); }.ticket-photo-grid a > span { position:absolute;right:.4rem;bottom:.4rem;display:grid;place-items:center;width:25px;height:25px;color:#fff;background:rgba(15,23,42,.72);border-radius:7px;opacity:0;transition:opacity .15s; }.ticket-photo-grid a:hover > span { opacity:1; }.ticket-photo-grid a > span svg { width:13px;height:13px; }
@media (max-width:700px) { .ticket-request-meta { grid-template-columns:1fr; }.ticket-request-age { display:none; }.ticket-photo-grid { grid-template-columns:repeat(2,1fr); } }

.ticket-consultation-card { overflow:hidden;border-left:3px solid #f59e0b; }.ticket-consultation-header { background:linear-gradient(90deg,#fffbeb,#fff); }.ticket-consultation-header h3 { display:flex;align-items:center;gap:.35rem;color:#92400e; }.ticket-consultation-header h3 svg { width:17px;height:17px; }
.consultation-note { padding:.55rem .65rem;border-radius:9px; }.consultation-note.has-content { background:#fff;border:1px solid #fde68a;box-shadow:0 1px 2px rgba(146,64,14,.04); }.consultation-note.is-empty { background:#f8fafc;border:1px solid #e5e7eb; }
.ticket-assignment-card { overflow:hidden; }.ticket-assignment-list { display:flex;flex-direction:column;gap:.45rem;margin-bottom:.8rem; }.ticket-assignment-person { display:flex;align-items:center;justify-content:space-between;padding:.55rem .65rem;border:1px solid;border-radius:10px; }.ticket-assignment-person.is-principal { background:#eff6ff;border-color:#bfdbfe; }.ticket-assignment-person.is-follower { background:#f0fdf4;border-color:#bbf7d0; }.ticket-assignment-person > div:first-child { display:flex;align-items:center;gap:.55rem; }.ticket-assignment-avatar { display:grid;place-items:center;width:31px;height:31px;border:2px solid;border-radius:50%;font-size:.72rem;font-weight:800; }.is-principal .ticket-assignment-avatar { color:#2563eb;background:#dbeafe;border-color:#60a5fa; }.is-follower .ticket-assignment-avatar { color:#15803d;background:#dcfce7;border-color:#4ade80; }.ticket-assignment-person strong,.ticket-assignment-person small { display:block; }.ticket-assignment-person strong { font-size:.76rem; }.ticket-assignment-person small { color:#64748b;font-size:.63rem; }.ticket-assignment-person .btn-icon { display:grid;place-items:center;width:28px;height:28px;padding:0;background:rgba(255,255,255,.65);border:0;border-radius:7px;cursor:pointer; }.ticket-assignment-person .btn-icon:hover { background:#fee2e2; }.ticket-assignment-person .btn-icon svg { width:14px;height:14px; }
.ticket-assignment-empty { display:flex;align-items:center;gap:.65rem;margin-bottom:.8rem;padding:.75rem;color:#64748b;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:10px; }.ticket-assignment-empty > span { display:grid;place-items:center;width:34px;height:34px;color:#64748b;background:#e2e8f0;border-radius:9px; }.ticket-assignment-empty svg { width:17px;height:17px; }.ticket-assignment-empty strong,.ticket-assignment-empty small { display:block; }.ticket-assignment-empty strong { color:#334155;font-size:.75rem; }.ticket-assignment-empty small { font-size:.64rem; }
.ticket-self-actions { display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:.75rem; }.ticket-assigned-confirm { display:flex;align-items:center;gap:.35rem;margin:0 0 .7rem;padding:.55rem .65rem;color:#15803d;background:#f0fdf4;border-radius:8px;font-size:.7rem;font-weight:700; }.ticket-assigned-confirm svg { width:15px;height:15px; }
.ticket-admin-assign { display:grid;grid-template-columns:minmax(130px,1fr) 105px auto;align-items:end;gap:.4rem;padding-top:.75rem;border-top:1px solid var(--border); }.ticket-admin-assign label { font-size:.65rem!important;font-weight:700;color:#64748b!important; }.ticket-admin-assign .btn { height:34px; }
@media (max-width:600px) { .ticket-admin-assign { grid-template-columns:1fr 1fr; }.ticket-admin-assign .btn { grid-column:1/-1;width:100%;justify-content:center; } }

.ticket-work-card { overflow:hidden; }.ticket-section-icon.work-icon { color:#7c3aed;background:#ede9fe; }.ticket-work-header-actions { display:flex;gap:.25rem; }.ticket-work-body { padding:.75rem!important; }.ticket-work-status { display:flex;align-items:center;justify-content:space-between;gap:.7rem;margin-bottom:.65rem; }.ticket-work-status > div { display:flex;gap:.35rem; }.ticket-work-status > a { display:flex;align-items:center;gap:.3rem;color:#2563eb;font-size:.66rem;font-weight:700;text-decoration:none; }.ticket-work-status > a svg { width:13px;height:13px; }
.ticket-work-overview { display:grid;grid-template-columns:1fr 1fr;gap:.45rem; }.ticket-work-overview > div { display:grid;grid-template-columns:28px 1fr;align-items:center;column-gap:.5rem;padding:.55rem;background:#f8fafc;border:1px solid #eef2f7;border-radius:9px; }.ticket-work-overview > div > span { grid-row:1/3;display:grid;place-items:center;width:28px;height:28px;color:#64748b;background:#e9eef5;border-radius:7px; }.ticket-work-overview svg { width:14px;height:14px; }.ticket-work-overview small { color:var(--text-muted);font-size:.56rem;font-weight:800;text-transform:uppercase; }.ticket-work-overview strong { overflow:hidden;font-size:.68rem;text-overflow:ellipsis;white-space:nowrap; }
.ticket-resource-title { display:flex;align-items:center;gap:.55rem;margin:.85rem -.75rem .65rem;padding:.7rem .75rem;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:#fafbfc; }.ticket-resource-title > span { display:grid;place-items:center;width:30px;height:30px;color:#0f766e;background:#ccfbf1;border-radius:8px; }.ticket-resource-title svg { width:15px;height:15px; }.ticket-resource-title strong,.ticket-resource-title small { display:block; }.ticket-resource-title strong { font-size:.72rem; }.ticket-resource-title small { color:var(--text-muted);font-size:.61rem; }
.ticket-detail-layout { grid-template-columns:minmax(0,1.45fr) minmax(390px,1fr); }
.ticket-resource-title { width:calc(100% + 1.5rem);text-align:left;cursor:pointer; }.ticket-resource-title > div { flex:1; }.ticket-resource-title > i { display:grid;place-items:center;width:28px;height:28px;color:#64748b;background:#eef2f7;border-radius:7px;font-style:normal;transition:transform .18s; }.ticket-resource-title > i svg { width:14px;height:14px; }.ticket-resource-title:hover { background:#f1f5f9; }.ticket-resource-title.open > i { transform:rotate(90deg); }.ticket-resource-controls[hidden] { display:none!important; }.ticket-resource-controls { animation:resourceControlsIn .18s ease-out; }@keyframes resourceControlsIn { from { opacity:0;transform:translateY(-5px); } to { opacity:1;transform:none; } }
@media (max-width:500px) { .ticket-work-overview { grid-template-columns:1fr; }.ticket-work-status { align-items:flex-start;flex-direction:column; } }
@media (max-width:1024px) { .ticket-detail-layout { grid-template-columns:1fr; } }

.ticket-expenses-section { margin-top:1.25rem; }.ticket-expenses-card { overflow:hidden; }.ticket-expenses-header { padding:.9rem 1rem; }.ticket-expenses-title { display:flex;align-items:center;gap:.65rem; }.ticket-expenses-title > span { display:grid;place-items:center;width:35px;height:35px;color:#2563eb;background:#dbeafe;border-radius:9px; }.ticket-expenses-title svg { width:17px;height:17px; }.ticket-expenses-title h3,.ticket-expenses-title small { display:block;margin:0; }.ticket-expenses-title h3 { font-size:.9rem; }.ticket-expenses-title small { color:var(--text-muted);font-size:.63rem; }.ticket-expenses-title > strong { display:grid;place-items:center;min-width:25px;height:25px;margin-left:.35rem;color:#475569;background:#f1f5f9;border-radius:999px;font-size:.68rem; }
.ticket-expense-totals { display:flex;gap:.55rem;padding:.65rem 1rem;background:#f8fafc;border-top:1px solid var(--border);border-bottom:1px solid var(--border); }.ticket-expense-totals > span { display:grid;grid-template-columns:26px auto;align-items:center;column-gap:.45rem;padding:.4rem .6rem;background:#fff;border:1px solid var(--border);border-radius:8px; }.ticket-expense-totals svg { grid-row:1/3;width:16px;height:16px; }.ticket-expense-totals small,.ticket-expense-totals strong { display:block; }.ticket-expense-totals small { color:var(--text-muted);font-size:.57rem;text-transform:uppercase; }.ticket-expense-totals strong { font-size:.72rem; }.ticket-expense-totals .material svg,.ticket-expense-totals .material strong { color:#1d4ed8; }.ticket-expense-totals .mileage svg,.ticket-expense-totals .mileage strong { color:#047857; }
.ticket-expenses-body { padding:0!important;overflow-x:auto; }.ticket-expenses-table { width:100%;min-width:850px;border-collapse:collapse;font-size:.78rem; }.ticket-expenses-table thead tr { background:#f8fafc!important;border-bottom:1px solid var(--border)!important; }.ticket-expenses-table th { color:#64748b;font-size:.63rem!important;letter-spacing:.04em;text-transform:uppercase; }.ticket-expenses-table tbody tr { transition:background .15s; }.ticket-expenses-table tbody tr:hover { background:#fafcff; }.ticket-expenses-table td { vertical-align:middle; }
.ticket-expense-empty { display:flex;flex-direction:column;align-items:center;padding:2rem;text-align:center; }.ticket-expense-empty > span { display:grid;place-items:center;width:43px;height:43px;margin-bottom:.55rem;color:#64748b;background:#f1f5f9;border-radius:12px; }.ticket-expense-empty svg { width:20px;height:20px; }.ticket-expense-empty strong { font-size:.8rem; }.ticket-expense-empty small { margin-top:.15rem;color:var(--text-muted);font-size:.66rem; }
.ticket-expense-form-wrap { padding:1rem;background:#fbfcfe;border-top:1px solid var(--border); }.ticket-expense-form-title { display:flex;align-items:center;gap:.55rem;margin-bottom:.8rem; }.ticket-expense-form-title > span { display:grid;place-items:center;width:29px;height:29px;color:#2563eb;background:#dbeafe;border-radius:8px; }.ticket-expense-form-title svg { width:15px;height:15px; }.ticket-expense-form-title strong,.ticket-expense-form-title small { display:block; }.ticket-expense-form-title strong { font-size:.75rem; }.ticket-expense-form-title small { color:var(--text-muted);font-size:.61rem; }.ticket-expense-form-grid { display:flex;align-items:flex-end;flex-wrap:wrap;gap:.65rem; }.ticket-expense-form-grid label { font-size:.66rem!important;font-weight:700;color:#64748b!important; }
@media (max-width:700px) { .ticket-expense-totals { overflow-x:auto; }.ticket-expense-totals > span { min-width:130px; }.ticket-expense-form-grid > div { width:100%;min-width:0!important; }.ticket-expense-form-grid .btn { width:100%;justify-content:center; } }

.ticket-interventions-section { display:flex;flex-direction:column;gap:1.25rem;margin-top:1.25rem; }.ticket-timeline-card { overflow:hidden; }.ticket-timeline-header { display:flex;align-items:center;justify-content:space-between;gap:.75rem; }.ticket-timeline-title { display:flex;align-items:center;gap:.6rem; }.ticket-timeline-title > span { display:grid;place-items:center;width:35px;height:35px;color:#2563eb;background:#dbeafe;border-radius:9px; }.ticket-timeline-title svg { width:17px;height:17px; }.ticket-timeline-title h3,.ticket-timeline-title small { display:block;margin:0; }.ticket-timeline-title h3 { font-size:.9rem; }.ticket-timeline-title small { color:var(--text-muted);font-size:.62rem; }.ticket-timeline-title > strong { display:grid;place-items:center;min-width:25px;height:25px;margin-left:.25rem;color:#475569;background:#f1f5f9;border-radius:999px;font-size:.68rem; }
.ticket-timeline-body { padding:0!important; }.ticket-timeline { position:relative;padding:.3rem 0; }.ticket-timeline-line { position:absolute;top:0;bottom:0;left:2.08rem;width:2px;background:#dbe4ef; }.ticket-timeline-item { position:relative;display:flex;gap:.85rem;padding:.9rem 1rem;border-bottom:1px solid var(--border); }.ticket-timeline-item:last-child { border-bottom:0; }.ticket-timeline-item > div:last-child { flex:1;min-width:0; }.ticket-timeline-avatar { position:relative;z-index:1;display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;color:#2563eb;background:#dbeafe;border:2px solid #60a5fa;border-radius:50%;font-size:.76rem;font-weight:800;box-shadow:0 0 0 4px #fff; }.ticket-timeline-item.is-closed .ticket-timeline-avatar { color:#15803d;background:#dcfce7;border-color:#4ade80; }
.ticket-timeline-meta { display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;margin-bottom:.4rem; }.ticket-timeline-meta > span:first-child { font-size:.78rem!important; }.ticket-timeline-description { padding:.65rem .75rem;background:#f8fafc;border:1px solid var(--border);border-radius:9px;font-size:.78rem;line-height:1.6; }.ticket-work-remaining { margin-top:.5rem;padding:.6rem .75rem;background:#fffbeb;border:1px solid #fde68a;border-radius:9px;font-size:.75rem;line-height:1.5; }.ticket-work-remaining > span { display:flex;align-items:center;gap:.3rem;color:#92400e;font-weight:700; }.ticket-work-remaining svg { width:14px;height:14px; }
.ticket-timeline-empty { display:flex;flex-direction:column;align-items:center;padding:2.2rem;text-align:center; }.ticket-timeline-empty > span { display:grid;place-items:center;width:44px;height:44px;margin-bottom:.55rem;color:#64748b;background:#f1f5f9;border-radius:12px; }.ticket-timeline-empty svg { width:21px;height:21px; }.ticket-timeline-empty strong { font-size:.8rem; }.ticket-timeline-empty small { margin-top:.15rem;color:var(--text-muted);font-size:.65rem; }.ticket-intervention-form-card { overflow:hidden; }.ticket-intervention-form-card textarea:focus,.ticket-intervention-form-card input:focus { border-color:#60a5fa;box-shadow:0 0 0 3px #dbeafe; }
@media (max-width:650px) { .ticket-timeline-header { align-items:flex-start;flex-direction:column; }.ticket-timeline-header > .no-print { width:100%; }.ticket-timeline-header > .no-print .btn { flex:1;justify-content:center; }.ticket-timeline-line { left:1.72rem; }.ticket-timeline-item { gap:.65rem;padding:.8rem .7rem; }.ticket-timeline-avatar { width:32px;height:32px;flex-basis:32px; } }

.ticket-documents-section { margin-top:1.25rem; }.ticket-documents-card { overflow:hidden; }.ticket-documents-header { display:flex;align-items:center;justify-content:space-between;gap:.75rem; }.ticket-documents-title { display:flex;align-items:center;gap:.6rem; }.ticket-documents-title > span { display:grid;place-items:center;width:35px;height:35px;color:#7c3aed;background:#ede9fe;border-radius:9px; }.ticket-documents-title svg { width:17px;height:17px; }.ticket-documents-title h3,.ticket-documents-title small { display:block;margin:0; }.ticket-documents-title h3 { font-size:.9rem; }.ticket-documents-title small { color:var(--text-muted);font-size:.62rem; }.ticket-documents-title > strong { display:grid;place-items:center;min-width:25px;height:25px;margin-left:.25rem;color:#475569;background:#f1f5f9;border-radius:999px;font-size:.68rem; }
.ticket-documents-body { padding:0!important;overflow-x:auto; }.ticket-documents-table { width:100%;border-collapse:collapse;font-size:.76rem; }.ticket-documents-table thead { background:#f8fafc;border-bottom:1px solid var(--border); }.ticket-documents-table th { padding:.55rem .75rem!important;color:#64748b;font-size:.62rem!important;letter-spacing:.05em;text-transform:uppercase; }.ticket-documents-table tbody tr { border-bottom:1px solid var(--border);transition:background .15s; }.ticket-documents-table tbody tr:last-child { border-bottom:0; }.ticket-documents-table tbody tr:hover { background:#fafcff; }.ticket-documents-table td { padding:.55rem .75rem!important;vertical-align:middle; }.ticket-document-name { display:flex;align-items:center;gap:.55rem;min-width:230px; }.ticket-document-icon { display:grid;place-items:center;width:30px;height:30px;flex:0 0 30px;color:#7c3aed;background:#f5f3ff;border-radius:8px; }.ticket-document-icon svg { width:15px;height:15px; }.ticket-document-name > div { display:flex;flex-direction:column;min-width:0; }.ticket-document-name a,.ticket-document-name > div > span { overflow:hidden;color:var(--text);font-size:.72rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap; }.ticket-document-name small { overflow:hidden;max-width:320px;color:var(--text-muted);font-size:.62rem;text-overflow:ellipsis;white-space:nowrap; }.ticket-document-actions { white-space:nowrap; }.ticket-document-actions .btn { width:29px;height:29px;padding:0; }
@media (max-width:700px) { .ticket-documents-header { align-items:flex-start; }.ticket-documents-title small { display:none; }.ticket-documents-table thead { display:none; }.ticket-documents-table,.ticket-documents-table tbody,.ticket-documents-table tr,.ticket-documents-table td { display:block;width:100%; }.ticket-documents-table tr { position:relative;padding:.75rem; }.ticket-documents-table td { padding:.25rem 0!important;border:0; }.ticket-document-name { padding-right:72px!important; }.ticket-documents-table td:nth-child(2),.ticket-documents-table td:nth-child(3),.ticket-documents-table td:nth-child(4) { display:inline-block;width:auto;margin-right:.45rem;color:#64748b; }.ticket-document-actions { position:absolute;top:.75rem;right:.65rem;width:auto!important; } }

.ticket-action-modal { position:fixed;inset:0;z-index:1200;align-items:center;justify-content:center;padding:1rem;background:rgba(15,23,42,.62);backdrop-filter:blur(4px); }.ticket-action-modal-card { width:min(560px,100%);max-height:90vh;margin:0;overflow-y:auto;border:0;border-radius:17px;box-shadow:0 28px 70px rgba(15,23,42,.3);animation:dashboardModalIn .18s ease-out; }.ticket-action-modal-header { position:sticky;top:0;z-index:2;background:#fff; }.ticket-action-modal-header > div { display:flex;align-items:center;gap:.65rem; }.ticket-action-modal-header > div > span { display:grid;place-items:center;width:36px;height:36px;color:#2563eb;background:#dbeafe;border-radius:10px; }.ticket-action-modal-header > div > span.close-icon { color:#15803d;background:#dcfce7; }.ticket-action-modal-header svg { width:18px;height:18px; }.ticket-action-modal-header h3,.ticket-action-modal-header small { display:block;margin:0; }.ticket-action-modal-header h3 { font-size:.95rem; }.ticket-action-modal-header small { color:var(--text-muted);font-size:.63rem; }.ticket-action-modal-header .modal-close { flex:0 0 34px; }.ticket-action-modal-body { padding:1rem 1.1rem; }.ticket-action-modal-body label { display:flex;align-items:center;gap:.3rem;color:#475569;font-size:.7rem;font-weight:700; }.ticket-action-modal-body label svg { width:14px;height:14px; }.ticket-action-modal-body .form-control { background:#f8fafc; }.ticket-action-modal-body .form-control:focus { background:#fff;border-color:#60a5fa;box-shadow:0 0 0 3px #dbeafe; }.ticket-action-form-grid { gap:.75rem; }.ticket-action-modal-footer { position:sticky;bottom:0;z-index:2;display:flex;justify-content:flex-end;gap:.5rem;padding:.8rem 1.1rem;background:#f8fafc;border-top:1px solid var(--border); }
@media (max-width:560px) { .ticket-action-modal { align-items:flex-end;padding:0; }.ticket-action-modal-card { width:100%;max-height:92vh;border-radius:17px 17px 0 0; }.ticket-action-modal-body .form-grid.cols-2 { grid-template-columns:1fr; }.ticket-action-modal-body .form-grid.cols-2 > div:empty { display:none; }.ticket-action-modal-footer .btn { flex:1;justify-content:center; } }
.ticket-resource-title { color:inherit;font:inherit;border-left:0;border-right:0; }

/* Ticket detail final polish */
.ticket-detail-primary,.ticket-detail-sidebar { min-width:0; }.ticket-detail-primary .ticket-expenses-section,.ticket-detail-sidebar .ticket-interventions-section { width:100%;margin-top:0; }.ticket-detail-sidebar .ticket-timeline-header { align-items:flex-start;flex-direction:column; }.ticket-detail-sidebar .ticket-timeline-header > .no-print { width:100%; }.ticket-detail-sidebar .ticket-timeline-header > .no-print .btn { flex:1;justify-content:center; }
.ticket-suggestions { margin-bottom:.8rem;padding:.65rem;background:#f8fafc;border:1px solid var(--border);border-radius:10px; }.ticket-suggestions-title { display:flex;align-items:center;gap:.35rem;margin-bottom:.45rem;color:#64748b;font-size:.62rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase; }.ticket-suggestions-title svg { width:14px;height:14px; }.ticket-suggestion-row { display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.35rem;padding:.5rem .6rem;background:#fff;border:1px solid;border-radius:8px; }.ticket-suggestion-row:last-child { margin-bottom:0; }.ticket-suggestion-row.is-available { border-color:#bbf7d0; }.ticket-suggestion-row.is-busy { border-color:#fde68a; }.ticket-suggestion-row .btn { background:#fff; }
.ticket-resource-controls { margin-top:-.65rem;padding-top:.65rem; }.ticket-resource-controls > form,.ticket-resource-controls > div { padding:.55rem;background:#f8fafc;border:1px solid #eef2f7;border-radius:8px; }.ticket-resource-controls > div { margin-bottom:.45rem!important; }.ticket-resource-controls label { display:flex!important;align-items:center;gap:.3rem;margin-bottom:.35rem!important;color:#475569!important;font-size:.65rem!important;font-weight:800; }.ticket-resource-controls label svg { width:14px;height:14px; }.ticket-resource-controls select { background:#fff; }
.ticket-estimate-card { overflow:hidden;font-size:.76rem; }.ticket-estimate-body { display:grid!important;grid-template-columns:1fr 1fr;gap:.75rem!important;padding:.75rem!important; }.ticket-estimate-body > div { min-width:0;padding:.6rem;background:#f8fafc;border:1px solid #eef2f7;border-radius:9px; }.ticket-estimate-body > div > div:first-child { color:#475569!important; }
.ticket-before-after-card { overflow:hidden; }.ticket-before-after-grid { display:grid;grid-template-columns:1fr 1fr;gap:.55rem;padding:.7rem; }.ticket-before-after-grid > div { position:relative;overflow:hidden;min-height:120px;background:#f1f5f9;border:1px solid var(--border);border-radius:9px; }.ticket-before-after-grid > div > span { position:absolute;top:.4rem;left:.4rem;z-index:1;padding:.2rem .45rem;color:#fff;background:rgba(15,23,42,.72);border-radius:6px;font-size:.59rem;font-weight:800;text-transform:uppercase; }.ticket-before-after-grid a,.ticket-before-after-grid img { display:block;width:100%;height:100%; }.ticket-before-after-grid img { min-height:120px;object-fit:cover;transition:transform .2s; }.ticket-before-after-grid a:hover img { transform:scale(1.04); }.ticket-before-after-grid .is-empty { display:grid;place-items:center; }.ticket-before-after-grid .is-empty p { display:flex;align-items:center;gap:.3rem;margin:0;color:#94a3b8;font-size:.65rem; }.ticket-before-after-grid .is-empty svg { width:15px;height:15px; }
@media (max-width:1200px) { .ticket-estimate-body { grid-template-columns:1fr!important; } }
@media (max-width:1024px) { .ticket-detail-primary .ticket-expenses-section,.ticket-detail-sidebar .ticket-interventions-section { margin-top:1.25rem; }.ticket-detail-sidebar .ticket-timeline-header { align-items:center;flex-direction:row; }.ticket-detail-sidebar .ticket-timeline-header > .no-print { width:auto; } }
@media print { .ticket-resource-controls[hidden],.ticket-resource-title { display:none!important; }.ticket-detail-primary .ticket-expenses-section,.ticket-detail-sidebar .ticket-interventions-section { margin-top:.75rem!important; } }

/* Buildings list */
.buildings-header h1 { display:flex;align-items:center;gap:.55rem; }.buildings-header h1 svg { width:25px;height:25px;color:#2563eb; }.building-stats { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin-bottom:1rem; }.building-stats > div { display:flex;align-items:center;gap:.7rem;padding:.85rem 1rem;background:#fff;border:1px solid var(--border);border-radius:13px;box-shadow:0 1px 2px rgba(15,23,42,.04); }.building-stats > div > span { display:grid;place-items:center;width:39px;height:39px;border-radius:10px; }.building-stats svg { width:19px;height:19px; }.building-stats .blue { color:#2563eb;background:#dbeafe; }.building-stats .violet { color:#7c3aed;background:#ede9fe; }.building-stats .green { color:#15803d;background:#dcfce7; }.building-stats strong,.building-stats small { display:block; }.building-stats strong { font-size:1.25rem;line-height:1.05; }.building-stats small { margin-top:.2rem;color:var(--text-muted);font-size:.66rem;font-weight:700; }
.buildings-card { overflow:hidden; }.building-filters { display:grid;grid-template-columns:minmax(260px,1fr) 180px 210px auto auto;gap:.55rem;padding:1rem;border-bottom:1px solid var(--border); }.building-filters .btn { justify-content:center; }.buildings-table-wrap { overflow-x:auto; }.buildings-table { width:100%;border-collapse:collapse; }.buildings-table thead { background:#f8fafc;border-bottom:1px solid var(--border); }.buildings-table th { padding:.65rem .85rem;text-align:left;font-size:.63rem;letter-spacing:.05em;text-transform:uppercase; }.buildings-table th a { display:inline-flex;align-items:center;gap:.25rem;color:#475569;text-decoration:none; }.buildings-table th a:hover { color:#2563eb; }.buildings-table th a span { color:#94a3b8; }.buildings-table td { padding:.75rem .85rem;border-bottom:1px solid var(--border);vertical-align:middle;font-size:.75rem; }.buildings-table tbody tr:hover { background:#fafcff; }.building-address { display:flex;align-items:center;gap:.55rem;min-width:220px;color:var(--text);text-decoration:none; }.building-address > span { display:grid;place-items:center;width:33px;height:33px;flex:0 0 33px;color:#2563eb;background:#eff6ff;border-radius:8px; }.building-address svg { width:16px;height:16px; }.building-address div { display:flex;flex-direction:column; }.building-address strong { font-size:.76rem; }.building-address small { color:var(--text-muted);font-size:.62rem; }.building-city,.building-owner { display:flex;align-items:center;gap:.35rem;white-space:nowrap; }.building-city svg,.building-owner svg { width:14px;height:14px;color:#64748b; }.building-units { display:inline-flex;align-items:baseline;gap:.25rem;padding:.25rem .5rem;color:#475569;background:#f1f5f9;border-radius:999px;font-size:.62rem;white-space:nowrap; }.building-units strong { color:#1d4ed8;font-size:.76rem; }.building-notes { max-width:310px;margin:0;overflow:hidden;color:var(--text-muted);font-size:.69rem;text-overflow:ellipsis;white-space:nowrap; }.buildings-empty { display:flex;flex-direction:column;align-items:center;padding:3.5rem 1rem;text-align:center; }.buildings-empty > span { display:grid;place-items:center;width:50px;height:50px;color:#64748b;background:#f1f5f9;border-radius:14px; }.buildings-empty svg { width:23px;height:23px; }.buildings-empty h3 { margin:.75rem 0 .2rem; }.buildings-empty p { margin:0 0 1rem;color:var(--text-muted);font-size:.76rem; }.building-mobile-list { display:none; }
@media (max-width:1000px) { .building-filters { grid-template-columns:1fr 1fr; }.building-filters .workorder-search { grid-column:1/-1; }.buildings-table-wrap { display:none; }.building-mobile-list { display:grid;gap:.7rem;padding:.8rem;background:#f8fafc; }.building-mobile-card { padding:.85rem;background:#fff;border:1px solid var(--border);border-radius:11px; }.building-mobile-top { display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:.55rem; }.building-mobile-top > span:first-child { display:grid;place-items:center;width:36px;height:36px;color:#2563eb;background:#eff6ff;border-radius:9px; }.building-mobile-top svg { width:17px;height:17px; }.building-mobile-top > div { display:flex;flex-direction:column;min-width:0; }.building-mobile-top a { overflow:hidden;color:var(--text);font-size:.78rem;font-weight:750;text-overflow:ellipsis;white-space:nowrap;text-decoration:none; }.building-mobile-top small { color:var(--text-muted);font-size:.63rem; }.building-mobile-meta { margin:.7rem 0;padding:.6rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border); }.building-mobile-meta > span { display:flex;align-items:center;gap:.35rem;color:#475569;font-size:.68rem; }.building-mobile-meta svg { width:14px;height:14px; }.building-mobile-meta p { margin:.45rem 0 0;color:var(--text-muted);font-size:.66rem; }.building-mobile-actions { display:flex;justify-content:flex-end;gap:.35rem; } }
@media (max-width:600px) { .building-stats { grid-template-columns:1fr; }.building-filters { grid-template-columns:1fr;padding:.75rem; }.building-filters .workorder-search { grid-column:auto; }.building-filters .btn { width:100%; }.buildings-header .btn { padding:.55rem .7rem;font-size:.7rem; } }
/* Building detail */
.building-detail{display:flex;flex-direction:column;gap:18px}.building-detail__topbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.building-detail__back,.building-detail__map{display:inline-flex;align-items:center;gap:7px;font-size:.82rem;font-weight:700}.building-detail__back{color:var(--text-muted)}.building-detail__back:hover{color:var(--primary)}.building-detail__back svg,.building-detail__map svg{width:16px;height:16px}.building-detail__actions{display:flex;gap:9px}.building-detail__hero{position:relative;display:flex;align-items:center;gap:18px;padding:24px 26px;overflow:hidden;border:1px solid #dbe5f1;border-radius:16px;background:linear-gradient(120deg,#fff 20%,#f0f6ff);box-shadow:0 4px 14px rgba(15,23,42,.05)}.building-detail__hero:after{content:"";position:absolute;right:-60px;top:-100px;width:260px;height:260px;border-radius:50%;background:rgba(37,99,235,.055)}.building-detail__hero-icon{z-index:1;display:grid;place-items:center;width:58px;height:58px;flex:0 0 58px;border-radius:15px;color:#fff;background:linear-gradient(145deg,#2563eb,#4f46e5);box-shadow:0 9px 20px rgba(37,99,235,.22)}.building-detail__hero-icon svg{width:28px;height:28px}.building-detail__identity{z-index:1;min-width:0}.building-detail__eyebrow{display:block;margin-bottom:4px;color:#64748b;font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.building-detail__identity h1{margin:0;color:#0f172a;font-size:1.55rem}.building-detail__identity p{display:flex;align-items:center;gap:5px;margin:7px 0 0;color:#64748b;font-size:.87rem}.building-detail__identity p svg{width:15px;height:15px}.building-detail__map{z-index:1;margin-left:auto;padding:9px 12px;border:1px solid #dbe5f1;border-radius:9px;background:#fff;color:#2563eb}.building-detail__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.building-detail__stat{display:flex;align-items:center;gap:12px;padding:16px;border:1px solid #dbe5f1;border-radius:13px;background:#fff;box-shadow:0 2px 7px rgba(15,23,42,.04)}.building-detail__stat>span{display:grid;place-items:center;width:39px;height:39px;border-radius:10px;color:#2563eb;background:#eaf2ff}.building-detail__stat>span svg{width:20px;height:20px}.building-detail__stat div,.building-unit__rent{display:flex;flex-direction:column}.building-detail__stat strong{color:#0f172a;font-size:1.18rem}.building-detail__stat small{margin-top:3px;color:#64748b;font-size:.72rem}.building-detail__stat.is-green>span{color:#059669;background:#e8faf3}.building-detail__stat.is-amber>span{color:#d97706;background:#fff7df}.building-detail__stat.is-purple>span{color:#7c3aed;background:#f1ebff}.building-detail__layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;align-items:start;gap:16px}.building-units,.building-info-card,.building-notes{overflow:hidden;border:1px solid #dbe5f1;border-radius:14px;box-shadow:0 3px 10px rgba(15,23,42,.04)}.building-units__header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid #e5ebf3}.building-units__header h2{margin:0;color:#0f172a;font-size:1.1rem}.building-units__header>span{padding:5px 9px;border-radius:99px;color:#475569;background:#f1f5f9;font-size:.72rem;font-weight:700}.building-unit{display:grid;grid-template-columns:42px minmax(0,1fr) 105px auto;align-items:center;gap:13px;padding:15px 18px;border-bottom:1px solid #edf1f6}.building-unit:last-child{border-bottom:0}.building-unit:hover{background:#f8fbff}.building-unit__door{display:grid;place-items:center;width:39px;height:39px;border-radius:10px;color:#2563eb;background:#edf4ff}.building-unit__door svg{width:19px;height:19px}.building-unit__title{display:flex;align-items:center;gap:9px}.building-unit__title>a{color:#172033;font-size:.88rem;font-weight:750}.building-unit__tenant{display:flex;align-items:center;gap:5px;margin-top:5px;color:#64748b;font-size:.76rem}.building-unit__tenant svg{width:14px;height:14px}.building-unit__rent{text-align:right}.building-unit__rent strong{font-size:.86rem}.building-unit__rent small{color:#94a3b8;font-size:.66rem}.building-unit__actions{display:flex}.building-units__empty{padding:48px 20px;text-align:center;color:#64748b}.building-units__empty>.app-icon{width:36px;height:36px;color:#2563eb}.building-units__empty h3{margin:10px 0 0;color:#172033}.building-units__empty p{margin:6px 0 17px}.building-detail__sidebar{display:flex;flex-direction:column;gap:14px}.building-info-card__header{display:flex;align-items:center;gap:9px;padding:16px 17px;border-bottom:1px solid #e7edf4}.building-info-card__header>span{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;color:#2563eb;background:#edf4ff}.building-info-card__header svg{width:16px;height:16px}.building-info-card__header h3{margin:0;font-size:.9rem}.building-info-card dl{margin:0;padding:5px 17px 10px}.building-info-card dl>div{padding:11px 0;border-bottom:1px solid #edf1f5}.building-info-card dl>div:last-child{border:0}.building-info-card dt{margin-bottom:3px;color:#94a3b8;font-size:.65rem;font-weight:800;text-transform:uppercase}.building-info-card dd{margin:0;color:#273449;font-size:.82rem;font-weight:600}.building-notes>p{margin:0;padding:15px 17px;color:#475569;font-size:.8rem;line-height:1.6}.building-notes>p.is-empty{color:#94a3b8;font-style:italic}.building-notes>a{display:flex;align-items:center;gap:6px;padding:11px 17px;border-top:1px solid #edf1f5;color:#2563eb;font-size:.75rem;font-weight:700}.building-notes>a svg{width:14px;height:14px}
@media(max-width:900px){.building-detail__stats{grid-template-columns:repeat(2,1fr)}.building-detail__layout{grid-template-columns:1fr}.building-detail__sidebar{display:grid;grid-template-columns:1fr 1fr}}
@media(max-width:620px){.building-detail__topbar{align-items:flex-start;flex-direction:column}.building-detail__actions{width:100%}.building-detail__actions .btn{flex:1}.building-detail__hero{padding:19px}.building-detail__hero-icon{width:46px;height:46px;flex-basis:46px}.building-detail__identity h1{font-size:1.2rem}.building-detail__map{display:none}.building-detail__stats{gap:8px}.building-detail__stat{padding:12px 10px}.building-detail__stat>span{width:34px;height:34px}.building-detail__sidebar{grid-template-columns:1fr}.building-unit{grid-template-columns:38px minmax(0,1fr) auto;padding:13px 12px}.building-unit__rent{grid-column:2;text-align:left}.building-unit__actions{grid-column:3;grid-row:1/3}.building-unit__title{align-items:flex-start;flex-direction:column;gap:5px}}

/* Building create / edit form */
.building-form__header{display:flex;align-items:center;justify-content:space-between;max-width:930px;margin-bottom:18px;padding:22px 24px;border:1px solid #dbe5f1;border-radius:16px;background:linear-gradient(120deg,#fff,#f2f7ff);box-shadow:0 4px 14px rgba(15,23,42,.05)}.building-form__header .building-detail__back{margin-bottom:18px}.building-form__header h1{margin:0;color:#0f172a;font-size:1.55rem}.building-form__header p{margin:6px 0 0;color:#64748b;font-size:.85rem}.building-form__header-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:15px;color:#fff;background:linear-gradient(145deg,#2563eb,#4f46e5);box-shadow:0 9px 20px rgba(37,99,235,.2)}.building-form__header-icon svg{width:28px;height:28px}.building-form{max-width:930px}.building-form__card{overflow:hidden;border:1px solid #dbe5f1;border-radius:16px;box-shadow:0 5px 18px rgba(15,23,42,.06)}.building-form__section-head{display:flex;align-items:center;gap:12px;padding:17px 21px;border-bottom:1px solid #e5ebf3;background:#f8fafc}.building-form__section-head:not(:first-child){border-top:1px solid #dfe7f1}.building-form__section-head>span{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;color:#2563eb;background:#e6efff}.building-form__section-head svg{width:18px;height:18px}.building-form__section-head h2,.building-form__section-head p{margin:0}.building-form__section-head h2{color:#172033;font-size:.94rem}.building-form__section-head p{margin-top:3px;color:#7b8a9f;font-size:.7rem}.building-form__body{padding:21px}.building-form__body .form-grid{gap:17px 19px}.building-form__body .form-group label{display:flex;align-items:center;gap:5px;color:#475569;font-size:.72rem;font-weight:750}.building-form__body .form-group label svg{width:14px;height:14px;color:#64748b}.building-form__body .form-control{min-height:41px;border-color:#d8e1ec;background:#fbfdff}.building-form__body .form-control:focus{border-color:#60a5fa;background:#fff;box-shadow:0 0 0 3px #dbeafe}.building-form__body textarea.form-control{min-height:105px;line-height:1.5}.building-form__body .text-muted{line-height:1.4}.building-doors{margin-top:22px;padding:15px;border:1px solid #dfe7f0;border-radius:12px;background:#f8fafc;overflow-x:auto}.building-doors__labels,.building-door-row{display:grid;grid-template-columns:2rem minmax(110px,1fr) 60px 60px 60px 100px;gap:7px;align-items:center}.building-doors__labels{min-width:475px;margin-bottom:7px;padding:0 3px}.building-doors__labels span{color:#7b8a9f!important;font-size:.65rem!important;font-weight:800!important;letter-spacing:.05em;text-transform:uppercase}.building-doors__grid{display:flex;min-width:475px;flex-direction:column;gap:6px}.building-door-row>span{padding-right:3px;color:#94a3b8!important;font-size:.7rem!important;font-weight:700;text-align:right!important}.building-door-row .form-control{min-height:36px;background:#fff}.building-form__footer{display:flex;justify-content:flex-end;gap:9px;padding:15px 21px;border-top:1px solid #dfe7f1;background:#f8fafc}
@media(max-width:620px){.building-form__header{padding:18px}.building-form__header-icon{display:none}.building-form__header h1{font-size:1.25rem}.building-form__body{padding:16px}.building-form__footer{position:sticky;bottom:0;z-index:3}.building-form__footer .btn{flex:1}.building-doors{margin-left:-4px;margin-right:-4px}}

/* Apartments list */
.units-page{display:flex;flex-direction:column;gap:17px}.units-page__header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.units-page__eyebrow{color:#2563eb;font-size:.68rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.units-page__header h1{margin:3px 0 0;color:#0f172a;font-size:1.65rem}.units-page__header p{margin:6px 0 0;color:#64748b;font-size:.84rem}.units-page__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.units-stat{display:flex;align-items:center;gap:12px;padding:15px 16px;border:1px solid #dbe5f1;border-radius:13px;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.04)}.units-stat>span{display:grid;place-items:center;width:39px;height:39px;border-radius:10px;color:#2563eb;background:#eaf2ff}.units-stat>span svg{width:20px;height:20px}.units-stat>div{display:flex;min-width:0;flex-direction:column}.units-stat strong{overflow:hidden;color:#172033;font-size:1.16rem;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.units-stat small{margin-top:3px;color:#64748b;font-size:.7rem}.units-stat.is-green>span{color:#059669;background:#e8faf3}.units-stat.is-amber>span{color:#d97706;background:#fff7df}.units-stat.is-purple>span{color:#7c3aed;background:#f1ebff}.units-filters{display:grid;grid-template-columns:minmax(230px,1fr) 160px 150px 150px auto auto;align-items:center;gap:9px;padding:13px;border:1px solid #dbe5f1;border-radius:13px;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.04)}.units-filters__search{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 12px;border:1px solid #d8e1ec;border-radius:9px;background:#f8fafc}.units-filters__search:focus-within{border-color:#60a5fa;box-shadow:0 0 0 3px #dbeafe;background:#fff}.units-filters__search svg{width:17px;height:17px;color:#789}.units-filters__search input{width:100%;border:0;outline:0;background:transparent;color:#172033;font:inherit;font-size:.8rem}.units-filters .form-control{min-height:40px;background:#f8fafc;font-size:.76rem}.units-list{overflow:hidden;border:1px solid #dbe5f1;border-radius:14px;box-shadow:0 3px 11px rgba(15,23,42,.045)}.units-list__heading{display:flex;align-items:center;justify-content:space-between;padding:16px 19px;border-bottom:1px solid #e5ebf3}.units-list__heading h2,.units-list__heading p{margin:0}.units-list__heading h2{color:#172033;font-size:.95rem}.units-list__heading p{margin-top:3px;color:#7b8a9f;font-size:.7rem}.units-table-wrap{overflow-x:auto}.units-table{width:100%;min-width:1020px;border-collapse:collapse}.units-table th{padding:11px 14px;color:#64748b;background:#f8fafc;font-size:.64rem;letter-spacing:.055em;text-transform:uppercase}.units-table td{padding:13px 14px;border-top:1px solid #edf1f5;color:#334155;font-size:.77rem;vertical-align:middle}.units-table tbody tr{transition:background .15s}.units-table tbody tr:hover{background:#f8fbff}.units-table__address{display:flex;align-items:center;gap:10px}.units-table__address>span{display:grid;place-items:center;width:35px;height:35px;flex:0 0 35px;border-radius:9px;color:#2563eb;background:#edf4ff}.units-table__address>span svg{width:17px;height:17px}.units-table__address div,.units-table__tenant{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:3px}.units-table__address a{max-width:240px;overflow:hidden;color:#172033;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.units-table__address small,.units-table__tenant small,.units-table__meta{display:block;color:#7b8a9f;font-size:.68rem}.units-table__type{display:block;font-size:.76rem}.units-table__date{color:#64748b;font-size:.73rem}.units-list__empty{padding:52px 20px;text-align:center;color:#7b8a9f}.units-list__empty>.app-icon{width:34px;height:34px;color:#94a3b8}.units-list__empty h3{margin:11px 0 0;color:#334155}.units-list__empty p{margin:6px 0 16px;font-size:.8rem}
@media(max-width:1050px){.units-filters{grid-template-columns:minmax(240px,1fr) repeat(2,minmax(130px,160px)) auto auto}.units-filters select[name="type"]{display:none}}
@media(max-width:760px){.units-page__stats{grid-template-columns:1fr 1fr}.units-filters{grid-template-columns:1fr 1fr}.units-filters__search{grid-column:1/-1}.units-filters select[name="type"]{display:block}.units-filters .btn{justify-content:center}.units-page__header{align-items:flex-start;flex-direction:column}.units-page__header .btn{width:100%;justify-content:center}}
@media(max-width:480px){.units-page__stats{gap:8px}.units-stat{padding:11px 9px}.units-stat>span{width:34px;height:34px;flex:0 0 34px}.units-stat strong{font-size:1rem}.units-filters{grid-template-columns:1fr}.units-filters__search{grid-column:auto}.units-filters .btn{width:100%}}

/* Tenants list */
.tenants-page{display:flex;flex-direction:column;gap:17px}.tenants-page__header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.tenants-page__eyebrow{color:#2563eb;font-size:.68rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.tenants-page__header h1{margin:3px 0 0;color:#0f172a;font-size:1.65rem}.tenants-page__header p{margin:6px 0 0;color:#64748b;font-size:.84rem}.tenants-page__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.tenants-stat{display:flex;align-items:center;gap:12px;padding:15px 16px;border:1px solid #dbe5f1;border-radius:13px;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.04)}.tenants-stat>span{display:grid;place-items:center;width:39px;height:39px;border-radius:10px;color:#2563eb;background:#eaf2ff}.tenants-stat>span svg{width:20px;height:20px}.tenants-stat>div{display:flex;flex-direction:column}.tenants-stat strong{color:#172033;font-size:1.16rem}.tenants-stat small{margin-top:3px;color:#64748b;font-size:.7rem}.tenants-stat.is-green>span{color:#059669;background:#e8faf3}.tenants-stat.is-gray>span{color:#64748b;background:#eef2f6}.tenants-stat.is-red>span{color:#dc2626;background:#feecec}.tenants-filters{display:grid;grid-template-columns:minmax(230px,1fr) 150px 160px 145px auto auto;align-items:center;gap:9px;padding:13px;border:1px solid #dbe5f1;border-radius:13px;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.04)}.tenants-filters__search{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 12px;border:1px solid #d8e1ec;border-radius:9px;background:#f8fafc}.tenants-filters__search:focus-within{border-color:#60a5fa;background:#fff;box-shadow:0 0 0 3px #dbeafe}.tenants-filters__search svg{width:17px;height:17px;color:#789}.tenants-filters__search input{width:100%;border:0;outline:0;background:transparent;font:inherit;font-size:.8rem}.tenants-filters .form-control{min-height:40px;background:#f8fafc;font-size:.76rem}.tenants-list{overflow:hidden;border:1px solid #dbe5f1;border-radius:14px;box-shadow:0 3px 11px rgba(15,23,42,.045)}.tenants-list__heading{padding:16px 19px;border-bottom:1px solid #e5ebf3}.tenants-list__heading h2,.tenants-list__heading p{margin:0}.tenants-list__heading h2{font-size:.95rem}.tenants-list__heading p{margin-top:3px;color:#7b8a9f;font-size:.7rem}.tenants-table-wrap{overflow-x:auto}.tenants-table{width:100%;min-width:1100px;border-collapse:collapse}.tenants-table th{padding:11px 14px;color:#64748b;background:#f8fafc;font-size:.64rem;letter-spacing:.055em;text-transform:uppercase}.tenants-table td{padding:13px 14px;border-top:1px solid #edf1f5;color:#334155;font-size:.76rem;vertical-align:middle}.tenants-table tbody tr:hover{background:#f8fbff}.tenants-table tr.is-inactive{opacity:.58}.tenant-person{display:flex;align-items:center;gap:10px}.tenant-person>span{display:grid;place-items:center;width:35px;height:35px;flex:0 0 35px;border-radius:50%;color:#2563eb;background:#eaf2ff;font-size:.78rem;font-weight:800}.tenant-person>div{display:flex;flex-direction:column;align-items:flex-start;gap:3px}.tenant-person a{color:#172033;font-weight:750}.tenant-person small{color:#94a3b8;font-size:.65rem}.tenant-person small.tenant-tal{padding:2px 6px;border-radius:99px;color:#b91c1c;background:#fee2e2;font-weight:750}.tenant-contact{display:flex;max-width:210px;flex-direction:column;gap:5px}.tenant-contact a{display:flex;align-items:center;gap:5px;overflow:hidden;color:#475569;font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}.tenant-contact svg{width:13px;height:13px;flex:0 0 13px}.tenant-contact small{color:#94a3b8}.tenant-unit{display:flex;align-items:center;gap:8px}.tenant-unit>span{display:grid;place-items:center;width:31px;height:31px;flex:0 0 31px;border-radius:8px;color:#2563eb;background:#edf4ff}.tenant-unit>span svg{width:15px;height:15px}.tenant-unit>div{display:flex;max-width:230px;flex-direction:column;gap:3px}.tenant-unit strong{overflow:hidden;color:#334155;font-size:.73rem;text-overflow:ellipsis;white-space:nowrap}.tenant-unit small,.tenant-no-unit{color:#94a3b8;font-size:.66rem}.tenant-no-unit{font-style:italic}.tenant-lease{display:flex;flex-direction:column;gap:3px}.tenant-lease strong{font-size:.72rem}.tenant-lease small{color:#64748b;font-size:.64rem}.tenant-lease.is-soon strong,.tenant-lease.is-soon small{color:#b45309}.tenant-lease.is-expired strong,.tenant-lease.is-expired small{color:#dc2626}.tenant-rating{display:inline-flex;padding:4px 8px;border-radius:99px;font-size:.65rem;font-weight:750;white-space:nowrap}.tenant-rating.is-excellent,.tenant-rating.is-good{color:#047857;background:#dff8ed}.tenant-rating.is-neutral{color:#64748b;background:#f1f5f9}.tenant-rating.is-warning{color:#a16207;background:#fef3c7}.tenant-rating.is-danger{color:#b91c1c;background:#fee2e2}.tenants-list__empty{padding:52px 20px;text-align:center;color:#7b8a9f}.tenants-list__empty>.app-icon{width:34px;height:34px;color:#94a3b8}.tenants-list__empty h3{margin:11px 0 0;color:#334155}.tenants-list__empty p{margin:6px 0 16px;font-size:.8rem}
@media(max-width:980px){.tenants-filters{grid-template-columns:minmax(230px,1fr) 150px 160px auto auto}.tenants-filters select[name="tal"]{display:none}}
@media(max-width:720px){.tenants-page__stats{grid-template-columns:1fr 1fr}.tenants-page__header{align-items:flex-start;flex-direction:column}.tenants-page__header .btn{width:100%;justify-content:center}.tenants-filters{grid-template-columns:1fr 1fr}.tenants-filters__search{grid-column:1/-1}.tenants-filters select[name="tal"]{display:block}.tenants-filters .btn{justify-content:center}}
@media(max-width:480px){.tenants-page__stats{gap:8px}.tenants-stat{padding:11px 9px}.tenants-stat>span{width:34px;height:34px;flex:0 0 34px}.tenants-filters{grid-template-columns:1fr}.tenants-filters__search{grid-column:auto}.tenants-filters .btn{width:100%}}

/* Tenant detail */
.tenant-detail{display:flex;flex-direction:column;gap:17px}.tenant-detail__topbar{display:flex;align-items:center;justify-content:space-between;gap:15px}.tenant-detail__actions{display:flex;flex-wrap:wrap;gap:8px}.tenant-detail__hero{display:flex;align-items:center;gap:17px;padding:22px 24px;border:1px solid #dbe5f1;border-radius:16px;background:linear-gradient(120deg,#fff 25%,#f1f6ff);box-shadow:0 4px 14px rgba(15,23,42,.05)}.tenant-detail__avatar{display:grid;place-items:center;width:60px;height:60px;flex:0 0 60px;border-radius:50%;color:#fff;background:linear-gradient(145deg,#2563eb,#4f46e5);box-shadow:0 9px 20px rgba(37,99,235,.2);font-size:1.35rem;font-weight:800}.tenant-detail__identity{min-width:0}.tenant-detail__identity h1{margin:3px 0 8px;color:#0f172a;font-size:1.45rem}.tenant-detail__badges{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.tenant-detail__rating,.tenant-detail__tal{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:99px;font-size:.66rem;font-weight:750}.tenant-detail__tal{color:#b91c1c;background:#fee2e2}.tenant-detail__tal svg{width:12px;height:12px}.tenant-detail__home-link{display:flex;align-items:center;gap:10px;min-width:280px;margin-left:auto;padding:11px 12px;border:1px solid #dbe5f1;border-radius:11px;background:#fff;color:#334155}.tenant-detail__home-link>.app-icon:first-child{width:19px;height:19px;color:#2563eb}.tenant-detail__home-link>.app-icon:last-child{width:15px;height:15px;margin-left:auto;color:#94a3b8}.tenant-detail__home-link>span{display:flex;min-width:0;flex-direction:column}.tenant-detail__home-link small{color:#94a3b8;font-size:.63rem;font-weight:700;text-transform:uppercase}.tenant-detail__home-link strong{max-width:250px;margin-top:3px;overflow:hidden;font-size:.75rem;text-overflow:ellipsis;white-space:nowrap}.tenant-detail__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.tenant-detail__stats>div{display:grid;grid-template-columns:37px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:10px;padding:14px 15px;border:1px solid #dbe5f1;border-radius:12px;background:#fff}.tenant-detail__stats>div>span{display:grid;grid-row:1/3;place-items:center;width:37px;height:37px;border-radius:9px;color:#2563eb;background:#edf4ff}.tenant-detail__stats svg{width:18px;height:18px}.tenant-detail__stats strong{overflow:hidden;color:#172033;font-size:.83rem;text-overflow:ellipsis;white-space:nowrap}.tenant-detail__stats small{color:#7b8a9f;font-size:.65rem}.tenant-detail__stats>div.is-warning>span{color:#d97706;background:#fff3d6}.tenant-detail__stats>div.is-warning strong,.tenant-detail__stats>div.is-warning small{color:#b45309}.tenant-detail__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(390px,.9fr);align-items:start;gap:16px}.tenant-detail__grid .card{overflow:hidden;border:1px solid #dbe5f1;border-radius:14px;box-shadow:0 3px 10px rgba(15,23,42,.04)}.tenant-detail__grid .card-header{min-height:52px;padding:14px 17px;background:#f8fafc;border-bottom:1px solid #e5ebf3}.tenant-detail__grid .card-header h3{display:flex;align-items:center;margin:0;color:#172033;font-size:.86rem}.tenant-detail__grid .card-header h3 svg{width:16px;height:16px;color:#2563eb}.tenant-detail__grid .card-body{padding:16px 17px}.tenant-detail__grid .detail-item{padding:9px 0;border-bottom:1px solid #edf1f5}.tenant-detail__grid .detail-item:last-child{border:0}.tenant-detail__grid .detail-label{color:#7b8a9f;font-size:.68rem;font-weight:700}.tenant-detail__grid .detail-value{font-size:.78rem}.tenant-detail__grid table th{background:#f8fafc;font-size:.64rem}.tenant-detail__grid table td{font-size:.75rem}
@media(max-width:980px){.tenant-detail__hero{align-items:flex-start;flex-wrap:wrap}.tenant-detail__home-link{width:100%;margin-left:0}.tenant-detail__stats{grid-template-columns:1fr 1fr}.tenant-detail__grid{grid-template-columns:1fr}}
@media(max-width:620px){.tenant-detail__topbar{align-items:flex-start;flex-direction:column}.tenant-detail__actions{display:grid;width:100%;grid-template-columns:1fr 1fr}.tenant-detail__actions .btn{justify-content:center}.tenant-detail__actions .btn:last-child:nth-child(odd){grid-column:1/-1}.tenant-detail__hero{padding:17px}.tenant-detail__avatar{width:48px;height:48px;flex-basis:48px}.tenant-detail__identity h1{font-size:1.15rem}.tenant-detail__home-link{min-width:0}.tenant-detail__stats{gap:8px}.tenant-detail__stats>div{padding:11px 9px}.tenant-detail__grid .card-body{padding:14px}}

/* Tenant create / edit form */
.tenant-form__header{display:flex;align-items:center;justify-content:space-between;max-width:960px;margin-bottom:18px;padding:22px 24px;border:1px solid #dbe5f1;border-radius:16px;background:linear-gradient(120deg,#fff,#f2f7ff);box-shadow:0 4px 14px rgba(15,23,42,.05)}.tenant-form__header .building-detail__back{margin-bottom:18px}.tenant-form__header h1{margin:3px 0 0;color:#0f172a;font-size:1.55rem}.tenant-form__header p{margin:6px 0 0;color:#64748b;font-size:.84rem}.tenant-form__header-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:15px;color:#fff;background:linear-gradient(145deg,#2563eb,#4f46e5);box-shadow:0 9px 20px rgba(37,99,235,.2)}.tenant-form__header-icon svg{width:28px;height:28px}.tenant-form{max-width:960px}.tenant-form__layout{display:grid;grid-template-columns:minmax(0,1fr) 315px;align-items:start;gap:16px}.tenant-form__main,.tenant-form__side{display:flex;flex-direction:column;gap:16px}.tenant-form__card,.tenant-form__submit{overflow:hidden;border:1px solid #dbe5f1;border-radius:14px;box-shadow:0 3px 11px rgba(15,23,42,.045)}.tenant-form__section-head{display:flex;align-items:center;gap:11px;padding:16px 18px;border-bottom:1px solid #e5ebf3;background:#f8fafc}.tenant-form__section-head>span{display:grid;place-items:center;width:35px;height:35px;border-radius:9px;color:#2563eb;background:#e7f0ff}.tenant-form__section-head svg{width:17px;height:17px}.tenant-form__section-head h2,.tenant-form__section-head p{margin:0}.tenant-form__section-head h2{color:#172033;font-size:.9rem}.tenant-form__section-head p{margin-top:3px;color:#7b8a9f;font-size:.67rem}.tenant-form__body{padding:19px}.tenant-form__body .form-grid{gap:17px}.tenant-form__body .form-group label{display:flex;align-items:center;gap:5px;color:#475569;font-size:.72rem;font-weight:750}.tenant-form__body .form-group label svg{width:14px;height:14px;color:#64748b}.tenant-form__body .form-control{min-height:41px;border-color:#d8e1ec;background:#fbfdff}.tenant-form__body .form-control:focus{border-color:#60a5fa;background:#fff;box-shadow:0 0 0 3px #dbeafe}.tenant-form__body textarea.form-control{min-height:96px;line-height:1.5}.tenant-form__body .form-hint{margin-top:4px;color:#94a3b8;font-size:.65rem}.tenant-form__toggle{padding:11px 12px;border:1px solid #dbe5f1;border-radius:9px;background:#f8fafc}.tenant-form__toggle label{cursor:pointer}.tenant-form__toggle input{accent-color:#2563eb}.tenant-form__side{position:sticky;top:18px}.tenant-form__submit{display:grid;grid-template-columns:38px minmax(0,1fr);gap:11px;padding:17px;background:#fff}.tenant-form__submit-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;color:#2563eb;background:#e7f0ff}.tenant-form__submit-icon svg{width:18px;height:18px}.tenant-form__submit strong{display:block;color:#172033;font-size:.8rem}.tenant-form__submit p{margin:4px 0 0;color:#7b8a9f;font-size:.67rem;line-height:1.4}.tenant-form__submit-actions{display:flex;grid-column:1/-1;flex-direction:column;gap:8px;margin-top:3px}.tenant-form__submit-actions .btn{justify-content:center}
@media(max-width:800px){.tenant-form__layout{grid-template-columns:1fr}.tenant-form__side{position:static;display:grid;grid-template-columns:1fr 1fr}.tenant-form__submit{align-self:stretch}}
@media(max-width:560px){.tenant-form__header{padding:18px}.tenant-form__header-icon{display:none}.tenant-form__header h1{font-size:1.25rem}.tenant-form__body{padding:16px}.tenant-form__side{display:flex}.tenant-form__submit-actions{flex-direction:row}.tenant-form__submit-actions .btn{flex:1}}

/* Owners list */
.owners-page{display:flex;flex-direction:column;gap:17px}.owners-page__header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.owners-page__eyebrow{color:#2563eb;font-size:.68rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.owners-page__header h1{margin:3px 0 0;color:#0f172a;font-size:1.65rem}.owners-page__header p{margin:6px 0 0;color:#64748b;font-size:.84rem}.owners-page__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.owners-stat{display:flex;align-items:center;gap:12px;padding:15px 16px;border:1px solid #dbe5f1;border-radius:13px;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.04)}.owners-stat>span{display:grid;place-items:center;width:39px;height:39px;border-radius:10px;color:#2563eb;background:#eaf2ff}.owners-stat>span svg{width:20px;height:20px}.owners-stat>div{display:flex;min-width:0;flex-direction:column}.owners-stat strong{overflow:hidden;color:#172033;font-size:1.16rem;text-overflow:ellipsis;white-space:nowrap}.owners-stat small{margin-top:3px;color:#64748b;font-size:.7rem}.owners-stat.is-green>span{color:#059669;background:#e8faf3}.owners-stat.is-blue>span{color:#0284c7;background:#e7f6ff}.owners-stat.is-purple>span{color:#7c3aed;background:#f1ebff}.owners-search{display:flex;align-items:center;gap:9px;padding:13px;border:1px solid #dbe5f1;border-radius:13px;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.04)}.owners-search label{display:flex;align-items:center;gap:8px;min-height:40px;max-width:580px;flex:1;padding:0 12px;border:1px solid #d8e1ec;border-radius:9px;background:#f8fafc}.owners-search label:focus-within{border-color:#60a5fa;background:#fff;box-shadow:0 0 0 3px #dbeafe}.owners-search label svg{width:17px;height:17px;color:#789}.owners-search input{width:100%;border:0;outline:0;background:transparent;font:inherit;font-size:.8rem}.owners-list{overflow:hidden;border:1px solid #dbe5f1;border-radius:14px;box-shadow:0 3px 11px rgba(15,23,42,.045)}.owners-list__heading{padding:16px 19px;border-bottom:1px solid #e5ebf3}.owners-list__heading h2,.owners-list__heading p{margin:0}.owners-list__heading h2{font-size:.95rem}.owners-list__heading p{margin-top:3px;color:#7b8a9f;font-size:.7rem}.owners-table-wrap{overflow-x:auto}.owners-table{width:100%;min-width:1030px;border-collapse:collapse}.owners-table th{padding:11px 14px;color:#64748b;background:#f8fafc;font-size:.64rem;letter-spacing:.055em;text-transform:uppercase}.owners-table td{padding:13px 14px;border-top:1px solid #edf1f5;color:#334155;font-size:.76rem;vertical-align:middle}.owners-table tbody tr:hover{background:#f8fbff}.owner-person{display:flex;align-items:center;gap:10px}.owner-person>span{display:grid;place-items:center;width:35px;height:35px;flex:0 0 35px;border-radius:10px;color:#2563eb;background:#eaf2ff;font-size:.78rem;font-weight:800}.owner-person>div,.owner-contact,.owner-count,.owner-rent{display:flex;flex-direction:column;gap:3px}.owner-person a{color:#172033;font-weight:750}.owner-person small,.owner-contact small,.owner-count small,.owner-rent small{color:#94a3b8;font-size:.65rem}.owner-contact{max-width:220px;gap:5px}.owner-contact a{display:flex;align-items:center;gap:5px;overflow:hidden;color:#475569;font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}.owner-contact svg{width:13px;height:13px;flex:0 0 13px}.owner-count strong,.owner-rent strong{color:#263348;font-size:.8rem}.owner-rent strong{color:#047857}.owner-billing{display:inline-flex;padding:4px 8px;border-radius:99px;color:#475569;background:#f1f5f9;font-size:.66rem;font-weight:700}.owners-list__empty{padding:52px 20px;text-align:center;color:#7b8a9f}.owners-list__empty>.app-icon{width:34px;height:34px;color:#94a3b8}.owners-list__empty h3{margin:11px 0 0;color:#334155}.owners-list__empty p{margin:6px 0 16px;font-size:.8rem}
@media(max-width:720px){.owners-page__stats{grid-template-columns:1fr 1fr}.owners-page__header{align-items:flex-start;flex-direction:column}.owners-page__header .btn{width:100%;justify-content:center}.owners-search{display:grid;grid-template-columns:1fr 1fr}.owners-search label{max-width:none;grid-column:1/-1}.owners-search .btn{justify-content:center}}
@media(max-width:480px){.owners-page__stats{gap:8px}.owners-stat{padding:11px 9px}.owners-stat>span{width:34px;height:34px;flex:0 0 34px}.owners-search{grid-template-columns:1fr}.owners-search label{grid-column:auto}}

/* Owner detail */
.owner-detail{display:flex;flex-direction:column;gap:17px}.owner-detail__topbar{display:flex;align-items:center;justify-content:space-between;gap:15px}.owner-detail__actions{display:flex;flex-wrap:wrap;gap:8px}.owner-detail__hero{display:flex;align-items:center;gap:16px;padding:22px 24px;border:1px solid #dbe5f1;border-radius:16px;background:linear-gradient(120deg,#fff 25%,#f2f7ff);box-shadow:0 4px 14px rgba(15,23,42,.05)}.owner-detail__avatar{display:grid;place-items:center;width:58px;height:58px;flex:0 0 58px;border-radius:14px;color:#fff;background:linear-gradient(145deg,#2563eb,#4f46e5);box-shadow:0 9px 20px rgba(37,99,235,.2);font-size:1.3rem;font-weight:800}.owner-detail__hero>div:nth-child(2){min-width:0}.owner-detail__hero h1{margin:3px 0 6px;color:#0f172a;font-size:1.45rem}.owner-detail__hero p{display:flex;align-items:center;gap:5px;margin:0;color:#64748b;font-size:.75rem}.owner-detail__hero p svg{width:14px;height:14px}.owner-detail__hero>.badge{margin-left:auto}.owner-detail__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.owner-detail__stats>div{display:grid;grid-template-columns:37px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:10px;padding:14px 15px;border:1px solid #dbe5f1;border-radius:12px;background:#fff}.owner-detail__stats>div>span{display:grid;grid-row:1/3;place-items:center;width:37px;height:37px;border-radius:9px;color:#2563eb;background:#edf4ff}.owner-detail__stats svg{width:18px;height:18px}.owner-detail__stats strong{overflow:hidden;color:#172033;font-size:.86rem;text-overflow:ellipsis;white-space:nowrap}.owner-detail__stats small{overflow:hidden;color:#7b8a9f;font-size:.64rem;text-overflow:ellipsis;white-space:nowrap}.owner-detail__stats>div.is-green>span{color:#059669;background:#e8faf3}.owner-detail__stats>div.is-purple>span{color:#7c3aed;background:#f1ebff}.owner-detail__layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;align-items:start;gap:16px}.owner-portfolio,.owner-info,.owner-buildings,.owner-notes{overflow:hidden;border:1px solid #dbe5f1;border-radius:14px;box-shadow:0 3px 10px rgba(15,23,42,.04)}.owner-section-head{display:flex;align-items:center;gap:10px;padding:15px 17px;border-bottom:1px solid #e5ebf3;background:#f8fafc}.owner-section-head>span{display:grid;place-items:center;width:33px;height:33px;flex:0 0 33px;border-radius:9px;color:#2563eb;background:#e7f0ff}.owner-section-head svg{width:16px;height:16px}.owner-section-head h2,.owner-section-head p{margin:0}.owner-section-head h2{color:#172033;font-size:.87rem}.owner-section-head p{margin-top:3px;color:#7b8a9f;font-size:.65rem}.owner-units{display:flex;flex-direction:column}.owner-unit{display:grid;grid-template-columns:36px minmax(170px,1fr) minmax(115px,.7fr) 90px 15px;align-items:center;gap:11px;padding:14px 16px;border-bottom:1px solid #edf1f5;color:#334155}.owner-unit:last-child{border:0}.owner-unit:hover{background:#f8fbff}.owner-unit__icon{display:grid;place-items:center;width:35px;height:35px;border-radius:9px;color:#2563eb;background:#edf4ff}.owner-unit__icon svg{width:17px;height:17px}.owner-unit__address,.owner-unit__tenant,.owner-unit__rent{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:3px}.owner-unit__address strong{overflow:hidden;max-width:100%;font-size:.75rem;text-overflow:ellipsis;white-space:nowrap}.owner-unit small{color:#7b8a9f;font-size:.64rem}.owner-unit__rent{align-items:flex-end}.owner-unit__rent strong{font-size:.76rem}.owner-unit>.app-icon{width:15px;height:15px;color:#94a3b8}.owner-empty{padding:48px 20px;text-align:center;color:#7b8a9f}.owner-empty>.app-icon{width:34px;height:34px;color:#94a3b8}.owner-empty h3{margin:10px 0 0;color:#334155}.owner-empty p{margin:5px 0;font-size:.75rem}.owner-detail__side{display:flex;flex-direction:column;gap:14px}.owner-info dl{margin:0;padding:5px 17px 10px}.owner-info dl>div{padding:10px 0;border-bottom:1px solid #edf1f5}.owner-info dl>div:last-child{border:0}.owner-info dt{margin-bottom:3px;color:#94a3b8;font-size:.63rem;font-weight:800;text-transform:uppercase}.owner-info dd{margin:0;overflow-wrap:anywhere;color:#334155;font-size:.75rem;font-weight:600}.owner-buildings>a{display:flex;align-items:center;gap:9px;padding:11px 14px;border-bottom:1px solid #edf1f5;color:#334155}.owner-buildings>a:last-child{border:0}.owner-buildings>a>span{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;color:#2563eb;background:#edf4ff}.owner-buildings>a>span svg{width:15px;height:15px}.owner-buildings>a>div{display:flex;min-width:0;flex:1;flex-direction:column}.owner-buildings>a strong{overflow:hidden;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.owner-buildings>a small{margin-top:3px;color:#7b8a9f;font-size:.62rem}.owner-buildings>a>.app-icon{width:14px;height:14px;color:#94a3b8}.owner-buildings__empty,.owner-notes>p{margin:0;padding:14px 17px;color:#7b8a9f;font-size:.72rem}.owner-buildings__empty,.owner-notes>p.is-empty{font-style:italic}.owner-notes>p{color:#475569;line-height:1.55}
@media(max-width:950px){.owner-detail__stats{grid-template-columns:1fr 1fr}.owner-detail__layout{grid-template-columns:1fr}.owner-detail__side{display:grid;grid-template-columns:1fr 1fr}.owner-info{grid-row:span 2}}
@media(max-width:620px){.owner-detail__topbar{align-items:flex-start;flex-direction:column}.owner-detail__actions{display:grid;width:100%;grid-template-columns:1fr 1fr}.owner-detail__actions .btn{justify-content:center}.owner-detail__actions .btn:last-child:nth-child(odd){grid-column:1/-1}.owner-detail__hero{padding:17px}.owner-detail__avatar{width:48px;height:48px;flex-basis:48px}.owner-detail__hero h1{font-size:1.15rem}.owner-detail__stats{gap:8px}.owner-detail__stats>div{padding:11px 9px}.owner-detail__side{display:flex}.owner-unit{grid-template-columns:35px minmax(0,1fr) 15px}.owner-unit__tenant,.owner-unit__rent{grid-column:2}.owner-unit__rent{align-items:flex-start}.owner-unit>.app-icon{grid-column:3;grid-row:1/4}}

/* Owner create / edit form */
.owner-form__header{display:flex;align-items:center;justify-content:space-between;max-width:960px;margin-bottom:18px;padding:22px 24px;border:1px solid #dbe5f1;border-radius:16px;background:linear-gradient(120deg,#fff,#f2f7ff);box-shadow:0 4px 14px rgba(15,23,42,.05)}.owner-form__header .building-detail__back{margin-bottom:18px}.owner-form__header h1{margin:3px 0 0;color:#0f172a;font-size:1.55rem}.owner-form__header p{margin:6px 0 0;color:#64748b;font-size:.84rem}.owner-form__header-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:15px;color:#fff;background:linear-gradient(145deg,#2563eb,#4f46e5);box-shadow:0 9px 20px rgba(37,99,235,.2)}.owner-form__header-icon svg{width:28px;height:28px}.owner-form{max-width:960px}.owner-form__layout{display:grid;grid-template-columns:minmax(0,1fr) 315px;align-items:start;gap:16px}.owner-form__main,.owner-form__side{display:flex;flex-direction:column;gap:16px}.owner-form__card,.owner-form__submit{overflow:hidden;border:1px solid #dbe5f1;border-radius:14px;box-shadow:0 3px 11px rgba(15,23,42,.045)}.owner-form__section-head{display:flex;align-items:center;gap:11px;padding:16px 18px;border-bottom:1px solid #e5ebf3;background:#f8fafc}.owner-form__section-head>span{display:grid;place-items:center;width:35px;height:35px;flex:0 0 35px;border-radius:9px;color:#2563eb;background:#e7f0ff}.owner-form__section-head svg{width:17px;height:17px}.owner-form__section-head h2,.owner-form__section-head p{margin:0}.owner-form__section-head h2{color:#172033;font-size:.9rem}.owner-form__section-head p{margin-top:3px;color:#7b8a9f;font-size:.67rem}.owner-form__body{padding:19px}.owner-form__body .form-grid{gap:17px}.owner-form__body .form-group label{display:flex;align-items:center;gap:5px;color:#475569;font-size:.72rem;font-weight:750}.owner-form__body .form-group label svg{width:14px;height:14px;color:#64748b}.owner-form__body .form-control{min-height:41px;border-color:#d8e1ec;background:#fbfdff}.owner-form__body .form-control:focus{border-color:#60a5fa;background:#fff;box-shadow:0 0 0 3px #dbeafe}.owner-form__body textarea.form-control{min-height:116px;line-height:1.5}.owner-form__body .form-hint{margin-top:4px;color:#94a3b8;font-size:.65rem;line-height:1.4}.owner-form__side{position:sticky;top:18px}.owner-form__submit{display:grid;grid-template-columns:38px minmax(0,1fr);gap:11px;padding:17px;background:#fff}.owner-form__submit-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;color:#2563eb;background:#e7f0ff}.owner-form__submit-icon svg{width:18px;height:18px}.owner-form__submit strong{display:block;color:#172033;font-size:.8rem}.owner-form__submit p{margin:4px 0 0;color:#7b8a9f;font-size:.67rem;line-height:1.4}.owner-form__submit-actions{display:flex;grid-column:1/-1;flex-direction:column;gap:8px;margin-top:3px}.owner-form__submit-actions .btn{justify-content:center}
@media(max-width:800px){.owner-form__layout{grid-template-columns:1fr}.owner-form__side{position:static;display:grid;grid-template-columns:1fr 1fr}.owner-form__submit{align-self:stretch}}
@media(max-width:560px){.owner-form__header{padding:18px}.owner-form__header-icon{display:none}.owner-form__header h1{font-size:1.25rem}.owner-form__body{padding:16px}.owner-form__side{display:flex}.owner-form__submit-actions{flex-direction:row}.owner-form__submit-actions .btn{flex:1}}

/* Employees list */
.employees-page{display:flex;flex-direction:column;gap:17px}.employees-page__header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.employees-page__eyebrow{color:#2563eb;font-size:.68rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.employees-page__header h1{margin:3px 0 0;color:#0f172a;font-size:1.65rem}.employees-page__header p{margin:6px 0 0;color:#64748b;font-size:.84rem}.employees-page__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.employee-stat{display:flex;align-items:center;gap:12px;padding:15px 16px;border:1px solid #dbe5f1;border-radius:13px;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.04)}.employee-stat>span{display:grid;place-items:center;width:39px;height:39px;border-radius:10px;color:#2563eb;background:#eaf2ff}.employee-stat>span svg{width:20px;height:20px}.employee-stat>div,.employee-rate{display:flex;min-width:0;flex-direction:column}.employee-stat strong{color:#172033;font-size:1.16rem}.employee-stat small{margin-top:3px;color:#64748b;font-size:.7rem}.employee-stat.is-green>span{color:#059669;background:#e8faf3}.employee-stat.is-amber>span{color:#d97706;background:#fff3d6}.employee-stat.is-gray>span{color:#64748b;background:#eef2f6}.employees-filters{display:grid;grid-template-columns:minmax(240px,1fr) 170px auto auto;align-items:center;gap:9px;padding:13px;border:1px solid #dbe5f1;border-radius:13px;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.04)}.employees-filters__search{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 12px;border:1px solid #d8e1ec;border-radius:9px;background:#f8fafc}.employees-filters__search:focus-within{border-color:#60a5fa;background:#fff;box-shadow:0 0 0 3px #dbeafe}.employees-filters__search svg{width:17px;height:17px;color:#789}.employees-filters__search input{width:100%;border:0;outline:0;background:transparent;font:inherit;font-size:.8rem}.employees-filters .form-control{min-height:40px;background:#f8fafc;font-size:.76rem}.employees-list{overflow:hidden;border:1px solid #dbe5f1;border-radius:14px;box-shadow:0 3px 11px rgba(15,23,42,.045)}.employees-list__heading{padding:16px 19px;border-bottom:1px solid #e5ebf3}.employees-list__heading h2,.employees-list__heading p{margin:0}.employees-list__heading h2{font-size:.95rem}.employees-list__heading p{margin-top:3px;color:#7b8a9f;font-size:.7rem}.employees-table-wrap{overflow-x:auto}.employees-table{width:100%;min-width:1110px;border-collapse:collapse}.employees-table th{padding:11px 14px;color:#64748b;background:#f8fafc;font-size:.64rem;letter-spacing:.055em;text-transform:uppercase}.employees-table td{padding:13px 14px;border-top:1px solid #edf1f5;color:#334155;font-size:.76rem;vertical-align:middle}.employees-table tbody tr:hover{background:#f8fbff}.employee-person{display:flex;align-items:center;gap:10px}.employee-person>span{display:grid;place-items:center;width:35px;height:35px;flex:0 0 35px;border-radius:50%;color:#fff;background:linear-gradient(145deg,#2563eb,#4f46e5);font-size:.78rem;font-weight:800}.employee-person>div{display:flex;min-width:0;flex-direction:column;gap:3px}.employee-person a{color:#172033;font-weight:750}.employee-person small{max-width:190px;overflow:hidden;color:#94a3b8;font-size:.65rem;text-overflow:ellipsis;white-space:nowrap}.employee-status{max-width:125px;padding:5px 8px;border:0;border-radius:99px;outline:0;font-size:.66rem;font-weight:750;cursor:pointer}.employee-status.is-disponible{color:#047857;background:#dcfce7}.employee-status.is-occupe{color:#b45309;background:#fef3c7}.employee-status.is-absent{color:#b91c1c;background:#fee2e2}.employee-status.is-vacances{color:#475569;background:#e8edf3}.employee-sector,.employee-skills{display:block;max-width:170px;overflow:hidden;color:#475569;font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}.employee-skills{color:#64748b}.employee-workload{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:99px;color:#b45309;background:#fff3d6;font-size:.65rem}.employee-workload strong{font-size:.75rem}.employee-free{display:inline-flex;align-items:center;gap:4px;color:#059669;font-size:.68rem;font-weight:700}.employee-free svg{width:14px;height:14px}.employee-rate{align-items:flex-start;gap:2px}.employee-rate strong{font-size:.74rem}.employee-rate small{color:#94a3b8;font-size:.62rem}.employee-account{display:inline-flex;align-items:center;gap:4px;color:#2563eb;font-size:.68rem;font-weight:700}.employee-account svg{width:14px;height:14px}.employees-list__empty{padding:52px 20px;text-align:center;color:#7b8a9f}.employees-list__empty>.app-icon{width:34px;height:34px;color:#94a3b8}.employees-list__empty h3{margin:11px 0 0;color:#334155}.employees-list__empty p{margin:6px 0 16px;font-size:.8rem}
@media(max-width:720px){.employees-page__stats{grid-template-columns:1fr 1fr}.employees-page__header{align-items:flex-start;flex-direction:column}.employees-page__header .btn{width:100%;justify-content:center}.employees-filters{grid-template-columns:1fr 1fr}.employees-filters__search{grid-column:1/-1}.employees-filters .btn{justify-content:center}}
@media(max-width:480px){.employees-page__stats{gap:8px}.employee-stat{padding:11px 9px}.employee-stat>span{width:34px;height:34px;flex:0 0 34px}.employees-filters{grid-template-columns:1fr}.employees-filters__search{grid-column:auto}}

/* Employee detail */
.employee-detail{display:flex;flex-direction:column;gap:17px}.employee-detail__topbar{display:flex;align-items:center;justify-content:space-between;gap:15px}.employee-detail__actions{display:flex;flex-wrap:wrap;gap:8px}.employee-detail__hero{display:flex;align-items:center;gap:16px;padding:22px 24px;border:1px solid #dbe5f1;border-radius:16px;background:linear-gradient(120deg,#fff 25%,#f2f7ff);box-shadow:0 4px 14px rgba(15,23,42,.05)}.employee-detail__avatar{display:grid;place-items:center;width:58px;height:58px;flex:0 0 58px;border-radius:50%;color:#fff;background:linear-gradient(145deg,#2563eb,#4f46e5);box-shadow:0 9px 20px rgba(37,99,235,.2);font-size:1.3rem;font-weight:800}.employee-detail__hero>div:nth-child(2){min-width:0}.employee-detail__hero h1{margin:3px 0 6px;color:#0f172a;font-size:1.45rem}.employee-detail__hero p{display:flex;align-items:center;gap:5px;margin:0;color:#64748b;font-size:.75rem}.employee-detail__hero p svg{width:14px;height:14px}.employee-detail__status{margin-left:auto;padding:6px 10px;border-radius:99px;font-size:.68rem;font-weight:800}.employee-detail__status.is-disponible{color:#047857;background:#dcfce7}.employee-detail__status.is-occupe{color:#b45309;background:#fef3c7}.employee-detail__status.is-absent{color:#b91c1c;background:#fee2e2}.employee-detail__status.is-vacances{color:#475569;background:#e8edf3}.employee-detail__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.employee-detail__stats>div{display:grid;grid-template-columns:37px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:10px;padding:14px 15px;border:1px solid #dbe5f1;border-radius:12px;background:#fff}.employee-detail__stats>div>span{display:grid;grid-row:1/3;place-items:center;width:37px;height:37px;border-radius:9px;color:#2563eb;background:#edf4ff}.employee-detail__stats svg{width:18px;height:18px}.employee-detail__stats strong{overflow:hidden;color:#172033;font-size:.86rem;text-overflow:ellipsis;white-space:nowrap}.employee-detail__stats small{overflow:hidden;color:#7b8a9f;font-size:.64rem;text-overflow:ellipsis;white-space:nowrap}.employee-detail__stats .is-blue>span{color:#0284c7;background:#e7f6ff}.employee-detail__stats .is-green>span{color:#059669;background:#e8faf3}.employee-detail__stats .is-purple>span{color:#7c3aed;background:#f1ebff}.employee-detail__layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:16px}.employee-jobs,.employee-info,.employee-skills-card,.employee-schedule{overflow:hidden;border:1px solid #dbe5f1;border-radius:14px;box-shadow:0 3px 10px rgba(15,23,42,.04)}.employee-section-head{display:flex;align-items:center;gap:10px;padding:15px 17px;border-bottom:1px solid #e5ebf3;background:#f8fafc}.employee-section-head>span{display:grid;place-items:center;width:33px;height:33px;flex:0 0 33px;border-radius:9px;color:#2563eb;background:#e7f0ff}.employee-section-head svg{width:16px;height:16px}.employee-section-head h2,.employee-section-head p{margin:0}.employee-section-head h2{color:#172033;font-size:.87rem}.employee-section-head p{margin-top:3px;color:#7b8a9f;font-size:.65rem}.employee-jobs__list{display:flex;flex-direction:column}.employee-job{display:grid;grid-template-columns:36px minmax(170px,1fr) auto 70px 15px;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid #edf1f5;color:#334155}.employee-job:last-child{border:0}.employee-job:hover{background:#f8fbff}.employee-job__icon{display:grid;place-items:center;width:35px;height:35px;border-radius:9px;color:#2563eb;background:#edf4ff}.employee-job__icon svg{width:17px;height:17px}.employee-job__main{display:flex;min-width:0;flex-direction:column;gap:3px}.employee-job__main strong{font-family:monospace;font-size:.73rem}.employee-job__main small{overflow:hidden;color:#7b8a9f;font-size:.64rem;text-overflow:ellipsis;white-space:nowrap}.employee-job__badges{display:flex;gap:4px}.employee-job__date{color:#64748b;font-size:.66rem}.employee-job>.app-icon{width:15px;height:15px;color:#94a3b8}.employee-empty{padding:48px 20px;text-align:center;color:#7b8a9f}.employee-empty>.app-icon{width:34px;height:34px;color:#94a3b8}.employee-empty h3{margin:10px 0 0;color:#334155}.employee-empty p{margin:5px 0;font-size:.75rem}.employee-detail__side{display:flex;flex-direction:column;gap:14px}.employee-info dl{margin:0;padding:5px 17px 10px}.employee-info dl>div{padding:10px 0;border-bottom:1px solid #edf1f5}.employee-info dl>div:last-child{border:0}.employee-info dt{margin-bottom:3px;color:#94a3b8;font-size:.63rem;font-weight:800;text-transform:uppercase}.employee-info dd{margin:0;overflow-wrap:anywhere;color:#334155;font-size:.75rem;font-weight:600}.employee-skills-card__list{padding:4px 15px 8px}.employee-skill{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #edf1f5}.employee-skill:last-child{border:0}.employee-skill>span:first-child{display:flex;min-width:0;flex-direction:column}.employee-skill strong{font-size:.72rem}.employee-skill small{margin-top:3px;color:#7b8a9f;font-size:.62rem}.employee-skill__level{display:flex;gap:3px}.employee-skill__level i{width:8px;height:8px;border-radius:50%;background:#dbe3ed}.employee-skill__level i.is-on{background:#2563eb}.employee-card-empty{margin:0;padding:15px 17px;color:#94a3b8;font-size:.72rem;font-style:italic}.employee-schedule__list{padding:4px 15px 8px}.employee-schedule__list>div{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid #edf1f5}.employee-schedule__list>div:last-child{border:0}.employee-schedule__list strong{font-size:.68rem}.employee-schedule__list span{color:#334155;font-size:.67rem;font-weight:650}.employee-schedule__list small{color:#94a3b8;font-size:.64rem}
@media(max-width:950px){.employee-detail__stats{grid-template-columns:1fr 1fr}.employee-detail__layout{grid-template-columns:1fr}.employee-detail__side{display:grid;grid-template-columns:1fr 1fr}.employee-info{grid-row:span 2}}
@media(max-width:620px){.employee-detail__topbar{align-items:flex-start;flex-direction:column}.employee-detail__actions{display:grid;width:100%;grid-template-columns:1fr 1fr}.employee-detail__actions .btn{justify-content:center}.employee-detail__actions .btn:last-child:nth-child(odd){grid-column:1/-1}.employee-detail__hero{padding:17px}.employee-detail__avatar{width:48px;height:48px;flex-basis:48px}.employee-detail__hero h1{font-size:1.15rem}.employee-detail__stats{gap:8px}.employee-detail__stats>div{padding:11px 9px}.employee-detail__side{display:flex}.employee-job{grid-template-columns:35px minmax(0,1fr) 15px}.employee-job__badges,.employee-job__date{grid-column:2}.employee-job>.app-icon{grid-column:3;grid-row:1/4}}

/* Employee create / edit form */
.employee-form__header{display:flex;align-items:center;justify-content:space-between;max-width:1040px;margin-bottom:18px;padding:22px 24px;border:1px solid #dbe5f1;border-radius:16px;background:linear-gradient(120deg,#fff,#f2f7ff);box-shadow:0 4px 14px rgba(15,23,42,.05)}.employee-form__header .building-detail__back{margin-bottom:18px}.employee-form__header h1{margin:3px 0 0;color:#0f172a;font-size:1.55rem}.employee-form__header p{margin:6px 0 0;color:#64748b;font-size:.84rem}.employee-form__header-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:15px;color:#fff;background:linear-gradient(145deg,#2563eb,#4f46e5);box-shadow:0 9px 20px rgba(37,99,235,.2)}.employee-form__header-icon svg{width:28px;height:28px}.employee-form{max-width:1040px}.employee-form__layout{display:grid;grid-template-columns:minmax(0,1fr) 390px;align-items:start;gap:16px}.employee-form__main,.employee-form__side{display:flex;flex-direction:column;gap:16px}.employee-form__card,.employee-form__submit{overflow:hidden;border:1px solid #dbe5f1;border-radius:14px;box-shadow:0 3px 11px rgba(15,23,42,.045)}.employee-form__section-head{display:flex;align-items:center;gap:11px;padding:16px 18px;border-bottom:1px solid #e5ebf3;background:#f8fafc}.employee-form__section-head>span{display:grid;place-items:center;width:35px;height:35px;flex:0 0 35px;border-radius:9px;color:#2563eb;background:#e7f0ff}.employee-form__section-head svg{width:17px;height:17px}.employee-form__section-head h2,.employee-form__section-head p{margin:0}.employee-form__section-head h2{color:#172033;font-size:.9rem}.employee-form__section-head p{margin-top:3px;color:#7b8a9f;font-size:.67rem}.employee-form__body{padding:19px}.employee-form__body .form-grid{gap:17px}.employee-form__body .form-group label{display:flex;align-items:center;gap:5px;color:#475569;font-size:.72rem;font-weight:750}.employee-form__body .form-group label svg{width:14px;height:14px;color:#64748b}.employee-form__body .form-control{min-height:41px;border-color:#d8e1ec;background:#fbfdff}.employee-form__body .form-control:focus{border-color:#60a5fa;background:#fff;box-shadow:0 0 0 3px #dbeafe}.employee-form__body textarea.form-control{min-height:105px;line-height:1.5}.employee-form__money{position:relative}.employee-form__money input{padding-right:45px}.employee-form__money>span{position:absolute;right:12px;top:50%;color:#64748b;font-size:.7rem;font-weight:700;transform:translateY(-50%)}.employee-form__side{position:sticky;top:18px}.employee-form__skills{max-height:470px;overflow-y:auto;padding:7px 13px}.employee-form__skill{padding:9px 3px;border-bottom:1px solid #edf1f5}.employee-form__skill:last-child{border:0}.employee-form__skill>label{display:flex;align-items:center;gap:8px;cursor:pointer}.employee-form__skill>label input{width:15px;height:15px;accent-color:#2563eb}.employee-form__skill>label>span{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;color:#64748b;background:#f1f5f9}.employee-form__skill>label svg{width:14px;height:14px}.employee-form__skill>label strong{color:#475569;font-size:.72rem}.employee-form__skill.is-selected>label>span{color:#2563eb;background:#e7f0ff}.employee-form__skill.is-selected>label strong{color:#172033}.employee-form__skill-fields{display:none;grid-template-columns:minmax(0,1fr) 90px;align-items:end;gap:8px;margin:9px 0 2px;padding-left:36px}.employee-form__skill.is-selected .employee-form__skill-fields{display:grid}.employee-form__skill-fields .form-control{min-height:35px;padding:6px 8px;font-size:.68rem}.employee-form__skill-fields>label>span{display:block;margin-bottom:4px;color:#7b8a9f;font-size:.6rem;font-weight:700}.employee-form__skill-fields>label>div{position:relative}.employee-form__skill-fields>label input{padding-right:30px}.employee-form__skill-fields>label small{position:absolute;right:7px;top:50%;color:#94a3b8;font-size:.59rem;transform:translateY(-50%)}.employee-form__empty{margin:0;padding:16px 18px;color:#94a3b8;font-size:.72rem;font-style:italic}.employee-form__submit{display:grid;grid-template-columns:38px minmax(0,1fr);gap:11px;padding:17px;background:#fff}.employee-form__submit-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;color:#2563eb;background:#e7f0ff}.employee-form__submit-icon svg{width:18px;height:18px}.employee-form__submit strong{font-size:.8rem}.employee-form__submit p{margin:4px 0 0;color:#7b8a9f;font-size:.67rem}.employee-form__submit-actions{display:flex;grid-column:1/-1;flex-direction:column;gap:8px}.employee-form__submit-actions .btn{justify-content:center}
@media(max-width:850px){.employee-form__layout{grid-template-columns:1fr}.employee-form__side{position:static}.employee-form__skills{max-height:none}}
@media(max-width:560px){.employee-form__header{padding:18px}.employee-form__header-icon{display:none}.employee-form__header h1{font-size:1.25rem}.employee-form__body{padding:16px}.employee-form__skill-fields{grid-template-columns:1fr;padding-left:0}.employee-form__submit-actions{flex-direction:row}.employee-form__submit-actions .btn{flex:1}}

/* Schedules */
.schedules-page{display:flex;flex-direction:column;gap:17px}.schedules-page__header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.schedules-page__eyebrow{color:#2563eb;font-size:.68rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.schedules-page__header h1{margin:3px 0 0;color:#0f172a;font-size:1.65rem}.schedules-page__header p{margin:6px 0 0;color:#64748b;font-size:.84rem}.schedules-page__actions{display:flex;align-items:center;gap:8px}.schedules-page__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.schedules-page__stats>div{display:grid;grid-template-columns:37px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:10px;padding:14px 15px;border:1px solid #dbe5f1;border-radius:12px;background:#fff}.schedules-page__stats>div>span{display:grid;grid-row:1/3;place-items:center;width:37px;height:37px;border-radius:9px;color:#2563eb;background:#edf4ff}.schedules-page__stats svg{width:18px;height:18px}.schedules-page__stats strong{color:#172033;font-size:.88rem}.schedules-page__stats small{overflow:hidden;color:#7b8a9f;font-size:.64rem;text-overflow:ellipsis;white-space:nowrap}.schedules-page__stats .is-green>span{color:#059669;background:#e8faf3}.schedules-page__stats .is-blue>span{color:#0284c7;background:#e7f6ff}.schedules-page__stats .is-purple>span{color:#7c3aed;background:#f1ebff}.schedule-add{margin:0!important;overflow:hidden;border:1px solid #dbe5f1;border-radius:14px;box-shadow:0 3px 10px rgba(15,23,42,.04)}.schedule-add__header{display:flex;align-items:center;gap:10px;padding:14px 17px;background:#f8fafc;cursor:pointer;user-select:none}.schedule-add__header>span:first-child{display:grid;place-items:center;width:33px;height:33px;border-radius:9px;color:#2563eb;background:#e7f0ff}.schedule-add__header svg{width:16px;height:16px}.schedule-add__header>div{display:flex;flex:1;flex-direction:column}.schedule-add__header strong{font-size:.8rem}.schedule-add__header small{margin-top:3px;color:#7b8a9f;font-size:.64rem}.schedule-add__form{display:flex;align-items:flex-end;flex-wrap:wrap;gap:11px}.schedule-add__form label{color:#64748b;font-size:.68rem;font-weight:750}.schedule-add__form .form-control,.schedule-add__form .form-select{min-height:39px;border-color:#d8e1ec;background:#fbfdff}.schedule-employee{margin:0 0 9px!important;overflow:hidden;border:1px solid #dbe5f1;border-radius:13px;box-shadow:0 2px 8px rgba(15,23,42,.04)}.schedule-employee>.card-header{padding:14px 17px;background:#fff}.schedule-employee>.card-header:hover{background:#f8fbff}.schedule-employee table th{padding:10px 14px;background:#f8fafc;color:#64748b;font-size:.64rem;text-transform:uppercase}.schedule-employee table td{padding:11px 14px;font-size:.74rem}.schedule-compare>.card{overflow:hidden;border:1px solid #dbe5f1;border-radius:14px;box-shadow:0 3px 10px rgba(15,23,42,.04)}.schedule-compare>.card>.card-header{padding:15px 17px;background:#f8fafc}.schedule-compare table th{background:#f8fafc!important;color:#64748b;font-size:.64rem;text-transform:uppercase}.schedule-compare table td{font-size:.72rem}#btn-accordion.active,#btn-compare.active{background:#2563eb!important;color:#fff!important;border-color:#2563eb!important}
@media(max-width:850px){.schedules-page__header{align-items:flex-start;flex-direction:column}.schedules-page__actions{width:100%}.schedules-page__actions .btn{flex:1;justify-content:center}.schedules-page__stats{grid-template-columns:1fr 1fr}.schedule-add__form>div{flex:1;min-width:145px}.schedule-add__form>div[style*="border-left"]{width:100%;flex-basis:100%;border-left:0!important;padding-left:0!important}.schedule-add__form>div[style*="border-left"]>div{flex:1}.schedule-add__form input,.schedule-add__form select{width:100%!important}}
@media(max-width:520px){.schedules-page__actions{display:grid;grid-template-columns:1fr 1fr}.schedules-page__actions .btn:last-child{grid-column:1/-1}.schedules-page__stats{gap:8px}.schedules-page__stats>div{padding:11px 9px}.schedule-add__form{display:grid;grid-template-columns:1fr}.schedule-add__form>div{min-width:0}.schedule-add__form>div[style*="border-left"]{display:grid!important;grid-template-columns:1fr 1fr}.schedule-add__form button{width:100%;justify-content:center}}

/* Modern weekly calendar */
.weekly-calendar{overflow:hidden;border:1px solid #dbe5f1;border-radius:15px;background:#fff;box-shadow:0 4px 14px rgba(15,23,42,.05)}.weekly-calendar__toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 17px;border-bottom:1px solid #e5ebf3;background:#f8fafc}.weekly-calendar__toolbar>div:first-child{display:flex;align-items:center;gap:10px}.weekly-calendar__toolbar>div:first-child>span{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;color:#2563eb;background:#e7f0ff}.weekly-calendar__toolbar svg{width:17px;height:17px}.weekly-calendar__toolbar>div:first-child>div{display:flex;flex-direction:column}.weekly-calendar__toolbar strong{font-size:.82rem}.weekly-calendar__toolbar small{margin-top:3px;color:#7b8a9f;font-size:.64rem}.weekly-calendar__legend{display:flex;gap:13px}.weekly-calendar__legend span{display:flex;align-items:center;gap:5px;color:#64748b;font-size:.63rem;font-weight:650}.weekly-calendar__legend i{width:8px;height:8px;border-radius:50%;background:#2563eb}.weekly-calendar__legend i.is-today{background:#059669}.weekly-calendar__legend i.is-break{background:#f59e0b}.weekly-calendar__scroll{overflow-x:auto}.weekly-calendar__grid{display:grid;grid-template-columns:repeat(7,minmax(155px,1fr));min-width:1085px}.weekly-day{min-height:445px;border-right:1px solid #e8edf4;background:#fbfcfe}.weekly-day:last-child{border-right:0}.weekly-day.is-today{background:linear-gradient(180deg,#effbf7,#fbfefd 130px)}.weekly-day>header{position:relative;display:flex;flex-direction:column;align-items:center;padding:12px 7px;border-bottom:1px solid #e5ebf3;background:rgba(248,250,252,.9)}.weekly-day.is-today>header:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:#10b981}.weekly-day>header>span{display:none}.weekly-day>header strong{color:#334155;font-size:.72rem}.weekly-day.is-today>header strong{color:#047857}.weekly-day>header small{margin-top:3px;color:#94a3b8;font-size:.59rem}.weekly-day__body{display:flex;flex-direction:column;gap:8px;padding:9px}.weekly-day__empty{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;height:115px;color:#a0aec0;font-size:.63rem}.weekly-day__empty svg{width:20px;height:20px}.weekly-shift{position:relative;padding:9px 9px 9px 12px;overflow:hidden;border:1px solid #dfe7f1;border-radius:10px;background:#fff;box-shadow:0 2px 5px rgba(15,23,42,.04);cursor:pointer;transition:transform .15s,box-shadow .15s}.weekly-shift:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--shift-accent)}.weekly-shift:hover{z-index:2;transform:translateY(-2px);box-shadow:0 6px 14px rgba(15,23,42,.1)}.weekly-shift__top{display:grid;grid-template-columns:25px minmax(0,1fr) 13px;align-items:center;gap:6px}.weekly-shift__top>span{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;color:#fff;background:var(--shift-accent);font-size:.58rem;font-weight:800}.weekly-shift__top strong{overflow:hidden;color:#263348;font-size:.65rem;text-overflow:ellipsis;white-space:nowrap}.weekly-shift__top>.app-icon{width:12px;height:12px;color:#94a3b8}.weekly-shift__time{display:flex;align-items:center;gap:4px;margin-top:8px;color:#334155;font-size:.61rem}.weekly-shift__time svg{width:12px;height:12px;color:var(--shift-accent)}.weekly-shift__time span{color:#94a3b8}.weekly-shift__meta{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-top:7px;padding-top:6px;border-top:1px dashed #e4eaf1}.weekly-shift__meta>span{color:#7b8a9f;font-size:.55rem}.weekly-shift__meta .is-break{display:flex;align-items:center;gap:2px;color:#b45309}.weekly-shift__meta svg{width:10px;height:10px}#btn-calendar.active{color:#fff!important;background:#2563eb!important;border-color:#2563eb!important}
@media(max-width:700px){.weekly-calendar__toolbar{align-items:flex-start;flex-direction:column}.weekly-calendar__scroll{scroll-snap-type:x mandatory}.weekly-calendar__grid{display:flex;min-width:0}.weekly-day{width:86%;min-height:330px;flex:0 0 86%;border-right:1px solid #e8edf4;scroll-snap-align:start}.weekly-day>header>span{display:block;margin-bottom:2px;color:#64748b;font-size:.58rem;font-weight:800;text-transform:uppercase}.weekly-day.is-today>header>span{color:#059669}.weekly-calendar__legend{width:100%;justify-content:space-between}.weekly-day.is-today>header>span:before{content:"Aujourd'hui · "}}

/* Simple daily agenda */
.daily-agenda{overflow:hidden;border:1px solid #dbe5f1;border-radius:15px;background:#fff;box-shadow:0 4px 14px rgba(15,23,42,.05)}.daily-agenda__header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px 18px;border-bottom:1px solid #e5ebf3;background:#f8fafc}.daily-agenda__header>div:first-child{display:flex;align-items:center;gap:10px}.daily-agenda__header>div:first-child>span{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;color:#059669;background:#e1f8ef}.daily-agenda__header svg{width:18px;height:18px}.daily-agenda__header>div:first-child>div{display:flex;flex-direction:column}.daily-agenda__header strong{font-size:.84rem}.daily-agenda__header small{margin-top:3px;color:#7b8a9f;font-size:.65rem}.daily-agenda__summary{display:flex;gap:8px}.daily-agenda__summary>span{padding:6px 9px;border:1px solid #dbe5f1;border-radius:8px;color:#64748b;background:#fff;font-size:.63rem}.daily-agenda__summary strong{margin-right:3px;color:#172033;font-size:.72rem}.daily-agenda__list{padding:8px 18px 14px}.daily-shift{display:grid;grid-template-columns:62px 18px 38px minmax(150px,1fr) minmax(110px,.45fr) 70px 16px;align-items:center;gap:10px;min-height:70px;padding:8px 3px;border-bottom:1px solid #edf1f5;cursor:pointer;transition:background .15s}.daily-shift:last-child{border:0}.daily-shift:hover{background:#f8fbff}.daily-shift>time{display:flex;flex-direction:column;align-items:flex-end}.daily-shift>time strong{color:#172033;font-size:.76rem}.daily-shift>time span{margin-top:4px;color:#94a3b8;font-size:.63rem}.daily-shift__line{position:relative;align-self:stretch}.daily-shift__line:before{content:"";position:absolute;left:50%;top:-9px;bottom:-9px;width:1px;background:#dbe3ed}.daily-shift:first-child .daily-shift__line:before{top:50%}.daily-shift:last-child .daily-shift__line:before{bottom:50%}.daily-shift__line i{position:absolute;z-index:1;left:50%;top:50%;width:9px;height:9px;border:2px solid #fff;border-radius:50%;background:#94a3b8;box-shadow:0 0 0 2px #cbd5e1;transform:translate(-50%,-50%)}.daily-shift.is-active .daily-shift__line i{background:#10b981;box-shadow:0 0 0 3px #a7f3d0}.daily-shift.is-upcoming .daily-shift__line i{background:#2563eb;box-shadow:0 0 0 3px #bfdbfe}.daily-shift__avatar{display:grid;place-items:center;width:37px;height:37px;border-radius:10px;color:#fff;background:var(--avatar-color);font-size:.7rem;font-weight:800}.daily-shift__person{display:flex;min-width:0;flex-direction:column}.daily-shift__person strong{overflow:hidden;color:#263348;font-size:.77rem;text-overflow:ellipsis;white-space:nowrap}.daily-shift__person span{margin-top:4px;color:#7b8a9f;font-size:.64rem}.daily-shift__break{display:flex;align-items:center;gap:6px;color:#7b8a9f;font-size:.62rem}.daily-shift__break svg{width:14px;height:14px;color:#d97706}.daily-shift__break strong{font-size:.63rem}.daily-shift__state{justify-self:end;padding:4px 8px;border-radius:99px;color:#64748b;background:#eef2f6;font-size:.61rem;font-weight:750}.daily-shift.is-active .daily-shift__state{color:#047857;background:#dcfce7}.daily-shift.is-upcoming .daily-shift__state{color:#1d4ed8;background:#dbeafe}.daily-shift>.app-icon{width:14px;height:14px;color:#94a3b8}.daily-agenda__empty{padding:50px 20px;text-align:center;color:#7b8a9f}.daily-agenda__empty>.app-icon{width:34px;height:34px;color:#94a3b8}.daily-agenda__empty h3{margin:10px 0 0;color:#334155}.daily-agenda__empty p{margin:6px 0;font-size:.75rem}
@media(max-width:700px){.daily-agenda__header{align-items:flex-start;flex-direction:column}.daily-agenda__summary{width:100%}.daily-agenda__summary>span{flex:1}.daily-agenda__list{padding:6px 12px 12px}.daily-shift{grid-template-columns:48px 14px 34px minmax(0,1fr) 65px;gap:7px}.daily-shift__avatar{width:33px;height:33px}.daily-shift__break{grid-column:4}.daily-shift__state{grid-column:5;grid-row:1/3}.daily-shift>.app-icon{display:none}}

/* Employee expenses / payroll */
.payroll-page{display:flex;flex-direction:column;gap:17px}.payroll-page__header{display:flex;align-items:center;justify-content:space-between;gap:20px}.payroll-page__eyebrow{color:#2563eb;font-size:.68rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.payroll-page__header h1{margin:3px 0 0;color:#0f172a;font-size:1.65rem}.payroll-page__header p{margin:6px 0 0;color:#64748b;font-size:.84rem}.payroll-page__paydate{display:flex;align-items:center;gap:10px;padding:10px 13px;border:1px solid #b9ead5;border-radius:11px;background:#effbf6}.payroll-page__paydate>span{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;color:#059669;background:#d8f5e9}.payroll-page__paydate svg{width:17px;height:17px}.payroll-page__paydate>div{display:flex;flex-direction:column}.payroll-page__paydate small{color:#047857;font-size:.61rem;font-weight:750;text-transform:uppercase}.payroll-page__paydate strong{margin-top:3px;color:#065f46;font-size:.76rem}.payroll-page__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.payroll-page__stats>div{display:grid;grid-template-columns:37px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:10px;padding:14px 15px;border:1px solid #dbe5f1;border-radius:12px;background:#fff}.payroll-page__stats>div>span{display:grid;grid-row:1/3;place-items:center;width:37px;height:37px;border-radius:9px;color:#2563eb;background:#edf4ff}.payroll-page__stats svg{width:18px;height:18px}.payroll-page__stats strong{overflow:hidden;color:#172033;font-size:.87rem;text-overflow:ellipsis;white-space:nowrap}.payroll-page__stats small{overflow:hidden;color:#7b8a9f;font-size:.64rem;text-overflow:ellipsis;white-space:nowrap}.payroll-page__stats .is-blue>span{color:#0284c7;background:#e7f6ff}.payroll-page__stats .is-green>span{color:#059669;background:#e8faf3}.payroll-page__stats .is-purple>span{color:#7c3aed;background:#f1ebff}.payroll-week{margin:0!important;overflow:hidden;border:1px solid #dbe5f1;border-radius:14px;box-shadow:0 3px 10px rgba(15,23,42,.04)}.payroll-week>div{padding:14px 17px!important}.payroll-week__paydate{padding:7px 11px!important;border:1px solid #b9ead5!important;border-radius:9px!important;background:#effbf6!important}.payroll-week__inline-totals{display:none!important}.payroll-rate{margin:0!important;overflow:hidden;border:1px solid #dbe5f1!important;border-radius:14px;box-shadow:0 3px 10px rgba(15,23,42,.04)}.payroll-rate>div{padding:13px 17px!important}.payroll-rate svg{width:17px;height:17px;color:#2563eb}.payroll-employee{margin:0!important;overflow:hidden;border:1px solid #dbe5f1;border-radius:14px;box-shadow:0 3px 10px rgba(15,23,42,.04)}.payroll-employee>div:first-child{padding:14px 17px!important;background:#fff;transition:background .15s}.payroll-employee>div:first-child:hover{background:#f8fbff}.payroll-employee>div:first-child>div:first-child>div:first-child{box-shadow:0 0 0 3px #dbeafe}.payroll-employee>div[id^="emp-"]{background:#fbfcfe}.payroll-employee>div[id^="emp-"]>div:first-child>div{padding:13px 15px!important}.payroll-employee>div[id^="emp-"]>div:first-child>div>div:first-child{color:#475569!important;font-size:.7rem!important}.payroll-grand-total{overflow:hidden;border:1px solid #93b4fa!important;border-radius:14px;box-shadow:0 5px 16px rgba(37,99,235,.1)}.payroll-grand-total>div{padding:16px 19px!important;background:linear-gradient(120deg,#eff6ff,#f5f3ff)!important}.payroll-grand-total>div>div:first-child{color:#1d4ed8!important}.payroll-page .card{margin-bottom:0}
@media(max-width:900px){.payroll-page__stats{grid-template-columns:1fr 1fr}.payroll-week>div:first-child{align-items:flex-start!important;flex-direction:column}.payroll-employee>div[id^="emp-"]>div:first-child{grid-template-columns:1fr!important}.payroll-employee>div[id^="emp-"]>div:first-child>div{border-right:0!important;border-bottom:1px solid #e5ebf3}.payroll-employee>div[id^="emp-"]>div:first-child>div:last-child{border-bottom:0}.payroll-grand-total>div{align-items:flex-start!important;flex-direction:column}}
@media(max-width:620px){.payroll-page__header{align-items:flex-start;flex-direction:column}.payroll-page__paydate{width:100%}.payroll-page__stats{gap:8px}.payroll-page__stats>div{padding:11px 9px}.payroll-week>div:first-child>div:first-child{width:100%;display:grid!important;grid-template-columns:1fr 1.6fr 1fr}.payroll-week>div:first-child>div:first-child .btn{justify-content:center;padding-left:6px;padding-right:6px}.payroll-week>div:first-child>div:first-child>div{min-width:0!important}.payroll-week__paydate{display:none!important}.payroll-rate>div{align-items:flex-start!important;flex-direction:column}.payroll-employee>div:first-child{align-items:flex-start!important;flex-direction:column}.payroll-employee>div:first-child>div:last-child{width:100%;justify-content:space-between}.payroll-grand-total>div>div:last-child{gap:9px!important}.payroll-grand-total>div>div:last-child>div:last-child{width:100%;text-align:center}}
.payroll-today{display:inline-flex;align-items:center;gap:5px;color:#1d4ed8!important;border:1px solid #bfdbfe!important;background:#eff6ff!important;font-weight:750}.payroll-today svg{width:14px;height:14px}.payroll-today:hover{background:#dbeafe!important}.payroll-today.is-current{color:#64748b!important;border-color:#e2e8f0!important;background:#f1f5f9!important;cursor:default;opacity:.75}
.payroll-tools{display:flex;align-items:center;gap:10px;padding:11px;border:1px solid #dbe5f1;border-radius:13px;background:#fff;box-shadow:0 3px 10px rgba(15,23,42,.04)}.payroll-tools__search{display:flex;align-items:center;gap:8px;min-width:220px;flex:1;padding:0 11px;border:1px solid #dbe5f1;border-radius:9px;background:#f8fafc}.payroll-tools__search:focus-within{border-color:#93b4fa;box-shadow:0 0 0 3px #dbeafe}.payroll-tools__search svg{width:16px;height:16px;color:#64748b}.payroll-tools__search input{width:100%;height:36px;border:0;outline:0;background:transparent;color:#172033;font-size:.76rem}.payroll-tools__filters{display:flex;gap:3px;padding:3px;border-radius:9px;background:#eef2f7}.payroll-tools__filters button{height:30px;padding:0 10px;border:0;border-radius:7px;color:#64748b;background:transparent;cursor:pointer;font-size:.67rem;font-weight:700;white-space:nowrap}.payroll-tools__filters button:hover{color:#1d4ed8}.payroll-tools__filters button.is-active{color:#1d4ed8;background:#fff;box-shadow:0 1px 4px rgba(15,23,42,.1)}.payroll-tools__sort{display:flex;align-items:center;gap:7px;color:#64748b;font-size:.66rem;font-weight:700}.payroll-tools__sort select{height:36px;padding:0 28px 0 9px;border:1px solid #dbe5f1;border-radius:9px;color:#334155;background:#fff;font-size:.69rem}.payroll-tools__toggle{display:inline-flex;align-items:center;gap:5px;height:36px;padding:0 10px;border:1px solid #bfdbfe;border-radius:9px;color:#1d4ed8;background:#eff6ff;cursor:pointer;font-size:.68rem;font-weight:750;white-space:nowrap}.payroll-tools__toggle svg{width:14px;height:14px}.payroll-tools__count{color:#7b8a9f;font-size:.65rem;white-space:nowrap}.payroll-no-results{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;padding:38px;border:1px dashed #cbd5e1;border-radius:13px;color:#64748b;background:#f8fafc}.payroll-no-results svg{width:25px;height:25px}.payroll-no-results strong{color:#334155;font-size:.82rem}.payroll-no-results span{font-size:.7rem}#payroll-employees{display:flex;flex-direction:column;gap:17px}.payroll-employee[hidden]{display:none!important}
@media(max-width:1050px){.payroll-tools{align-items:stretch;flex-wrap:wrap}.payroll-tools__search{flex-basis:100%}.payroll-tools__filters{flex:1}.payroll-tools__count{align-self:center}}
@media(max-width:620px){.payroll-tools__filters{width:100%;overflow-x:auto;flex:none}.payroll-tools__sort{flex:1}.payroll-tools__sort span{display:none}.payroll-tools__sort select{width:100%}.payroll-tools__count{width:100%;text-align:right}}
.payroll-validation{display:flex;align-items:flex-start;gap:16px;padding:14px 15px;border:1px solid #a7e5cc;border-radius:13px;background:#f0fdf8}.payroll-validation.has-issues{border-color:#f8d38b;background:#fffaf0}.payroll-validation__status{display:flex;align-items:center;gap:10px;min-width:270px}.payroll-validation__status>span{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:10px;color:#059669;background:#d9f7e9}.payroll-validation.has-issues .payroll-validation__status>span{color:#d97706;background:#ffedc8}.payroll-validation__status svg{width:19px;height:19px}.payroll-validation__status>div{display:flex;flex-direction:column}.payroll-validation__status strong{color:#065f46;font-size:.78rem}.payroll-validation.has-issues .payroll-validation__status strong{color:#92400e}.payroll-validation__status small{margin-top:3px;color:#648075;font-size:.65rem}.payroll-validation.has-issues .payroll-validation__status small{color:#9a6b32}.payroll-validation__issues{display:flex;gap:7px;overflow-x:auto;padding-bottom:2px}.payroll-validation__issues button{display:grid;grid-template-columns:18px minmax(130px,1fr) 14px;align-items:center;gap:7px;min-width:210px;padding:8px 9px;border:1px solid #f4d7a1;border-radius:9px;color:#92400e;background:#fff;cursor:pointer;text-align:left}.payroll-validation__issues button:hover{border-color:#f59e0b;background:#fffbeb}.payroll-validation__issues button>svg{width:14px;height:14px;color:#d97706}.payroll-validation__issues button>span{display:flex;min-width:0;flex-direction:column;font-size:.61rem}.payroll-validation__issues button strong{overflow:hidden;margin-bottom:2px;color:#78350f;font-size:.67rem;text-overflow:ellipsis;white-space:nowrap}.payroll-employee__warning{display:flex;align-items:center;gap:4px;margin-top:4px;color:#b45309;font-size:.63rem;font-weight:700}.payroll-employee__warning svg{width:12px;height:12px}.payroll-employee[data-has-issues="1"]{border-color:#f3cf8b}.payroll-employee.is-highlighted{animation:payroll-highlight 1.5s ease}@keyframes payroll-highlight{0%,100%{box-shadow:0 3px 10px rgba(15,23,42,.04)}35%{box-shadow:0 0 0 4px rgba(245,158,11,.28),0 8px 20px rgba(15,23,42,.1)}}
@media(max-width:800px){.payroll-validation{flex-direction:column}.payroll-validation__status{min-width:0}.payroll-validation__issues{width:100%}}
.payroll-page__actions{display:flex;align-items:center;gap:9px}.payroll-export{display:flex;align-items:center;gap:8px;padding:9px 11px;border:1px solid #bcd0fa;border-radius:10px;color:#1d4ed8;background:#f3f7ff;text-decoration:none}.payroll-export:hover{border-color:#8eb0f5;background:#eaf1ff}.payroll-export>svg{width:17px;height:17px}.payroll-export>span{display:flex;flex-direction:column}.payroll-export strong{font-size:.7rem}.payroll-export small{margin-top:2px;color:#64748b;font-size:.57rem}.payroll-export.has-warning{border-color:#f2cf8b;color:#b45309;background:#fff9ed}.payroll-export.has-warning:hover{border-color:#f59e0b;background:#fff4d8}.payroll-export.has-warning small{color:#9a6b32}
@media(max-width:620px){.payroll-page__actions{width:100%;align-items:stretch;flex-direction:column}.payroll-export{justify-content:center}.payroll-page__actions .payroll-page__paydate{width:100%}}
.payroll-process{display:flex;align-items:center;gap:11px;padding:13px 15px;border:1px solid #bcd0fa;border-radius:13px;background:#f3f7ff}.payroll-process>span{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:10px;color:#2563eb;background:#dfeaff}.payroll-process>span svg{width:19px;height:19px}.payroll-process__copy{display:flex;min-width:0;flex:1;flex-direction:column}.payroll-process__copy strong,.payroll-process>div strong{color:#1e3a8a;font-size:.78rem}.payroll-process__copy small,.payroll-process>div small{display:block;margin-top:3px;color:#64748b;font-size:.65rem}.payroll-process form{margin-left:auto}.payroll-process button{display:inline-flex;align-items:center;gap:6px;padding:8px 11px;border:0;border-radius:9px;color:#fff;background:#2563eb;cursor:pointer;font-size:.68rem;font-weight:750}.payroll-process button svg{width:14px;height:14px}.payroll-process button:disabled{color:#94a3b8;background:#e2e8f0;cursor:not-allowed}.payroll-process.is-done{border-color:#9de0c2;background:#effbf6}.payroll-process.is-done>span{color:#047857;background:#d7f5e8}.payroll-process.is-done .payroll-process__copy strong{color:#065f46}.payroll-process.is-done button{color:#065f46;border:1px solid #a7e5cc;background:#fff}.payroll-process.is-migration{border-color:#f3cf8b;background:#fff9ed}.payroll-process.is-migration>span{color:#b45309;background:#ffedc8}.payroll-process.is-migration>div{display:flex;flex-direction:column}.payroll-process.is-migration>div strong{color:#92400e}.payroll-process-change{display:flex;align-items:center;gap:9px;padding:10px 13px;border:1px solid #fecaca;border-radius:10px;color:#991b1b;background:#fff1f2}.payroll-process-change>svg{width:17px;height:17px;flex:0 0 17px}.payroll-process-change>span{display:flex;flex-direction:column;font-size:.66rem}.payroll-process-change strong{margin-bottom:2px;font-size:.71rem}.payroll-page.is-processed .payroll-validation{opacity:.8}.payroll-history{overflow:hidden;border:1px solid #dbe5f1;border-radius:14px;background:#fff;box-shadow:0 3px 10px rgba(15,23,42,.04)}.payroll-history>header{padding:13px 16px;border-bottom:1px solid #e5ebf3;background:#f8fafc}.payroll-history>header>div{display:flex;align-items:center;gap:9px}.payroll-history>header>div>span{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;color:#2563eb;background:#e7f0ff}.payroll-history>header svg{width:17px;height:17px}.payroll-history>header div div{display:flex;flex-direction:column}.payroll-history>header strong{font-size:.76rem}.payroll-history>header small{margin-top:2px;color:#7b8a9f;font-size:.62rem}.payroll-history__table{overflow-x:auto}.payroll-history__row{display:grid;grid-template-columns:1.4fr .6fr .7fr .8fr .7fr 1fr;align-items:center;min-width:720px;padding:10px 16px;border-bottom:1px solid #edf1f5;color:#475569;text-decoration:none;font-size:.68rem}.payroll-history__row:last-child{border:0}.payroll-history__row:not(.is-head):hover{background:#f8fbff}.payroll-history__row.is-head{color:#7b8a9f;background:#fbfcfe;font-size:.59rem;font-weight:750;text-transform:uppercase}.payroll-history__row>span:first-child{display:flex;flex-direction:column}.payroll-history__row small{margin-top:2px;color:#94a3b8;font-size:.58rem}.payroll-history__row i{display:inline-flex;width:max-content;padding:4px 7px;border-radius:99px;font-size:.59rem;font-style:normal;font-weight:750}.payroll-history__row i.is-done{color:#047857;background:#dcfce7}.payroll-history__row i.is-open{color:#b45309;background:#fef3c7}
@media(max-width:620px){.payroll-process{align-items:flex-start;flex-wrap:wrap}.payroll-process form{width:100%;margin:0}.payroll-process button{width:100%;justify-content:center}}
/* Cartes entreprise — tableau de contrôle */
.enterprise-cards-header{align-items:flex-end;margin-bottom:20px}.enterprise-cards-header h1{margin:.25rem 0 .35rem;font-size:clamp(1.7rem,2.6vw,2.35rem);letter-spacing:-.035em}.enterprise-cards-eyebrow{display:flex;align-items:center;gap:7px;color:#2563eb;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.enterprise-cards-eyebrow svg{width:15px;height:15px}.enterprise-card-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.enterprise-stat{display:flex;align-items:center;gap:13px;min-width:0;padding:17px 18px;border:1px solid #dce5f0;border-radius:16px;background:#fff;box-shadow:0 5px 18px rgba(15,32,54,.045)}.enterprise-stat-icon{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:12px}.enterprise-stat-icon svg{width:20px;height:20px}.enterprise-stat-icon.is-blue{color:#2563eb;background:#eaf2ff}.enterprise-stat-icon.is-green{color:#059669;background:#e7f8f1}.enterprise-stat-icon.is-amber{color:#d97706;background:#fff4dd}.enterprise-stat-icon.is-violet{color:#7c3aed;background:#f1eafe}.enterprise-stat div{display:flex;min-width:0;flex-direction:column}.enterprise-stat strong{color:#10233e;font-size:1.45rem;line-height:1}.enterprise-stat span:last-child{margin-top:5px;color:#718096;font-size:.72rem;font-weight:650}.enterprise-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;padding:10px;border:1px solid #dce5f0;border-radius:16px;background:#fff}.enterprise-search{display:flex;align-items:center;gap:9px;min-width:260px;flex:1;max-width:420px;padding:0 12px;color:#7b8ca5}.enterprise-search svg{width:18px;height:18px}.enterprise-search input{width:100%;height:38px;border:0;outline:0;background:transparent;color:#152842;font:inherit;font-size:.84rem}.enterprise-filters{display:flex;gap:5px;flex-wrap:wrap}.enterprise-filters button{display:flex;align-items:center;gap:7px;padding:9px 11px;border:0;border-radius:10px;color:#687991;background:transparent;font-size:.75rem;font-weight:700;cursor:pointer}.enterprise-filters button span{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:99px;background:#edf2f8;font-size:.65rem}.enterprise-filters button:hover{color:#1f5bd8;background:#f3f7fd}.enterprise-filters button.is-active{color:#fff;background:#173f72;box-shadow:0 5px 12px rgba(23,63,114,.2)}.enterprise-filters button.is-active span{color:#173f72;background:#fff}.enterprise-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(480px,1fr));gap:18px}.enterprise-card-item{overflow:hidden;border:1px solid #dce5f0;border-radius:20px;background:#fff;box-shadow:0 9px 28px rgba(15,32,54,.07);transition:transform .2s ease,box-shadow .2s ease}.enterprise-card-item:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(15,32,54,.11)}.enterprise-card-item[hidden]{display:none}.enterprise-card-shell{padding:18px}.enterprise-card-top{display:grid;grid-template-columns:235px minmax(0,1fr);gap:19px;align-items:center}.enterprise-credit-card{position:relative;overflow:hidden;min-height:142px;padding:17px;border-radius:17px;color:#fff;background:radial-gradient(circle at 85% 15%,rgba(94,181,255,.7),transparent 26%),linear-gradient(145deg,#071d38,#174e86 58%,#0a294a);box-shadow:0 14px 24px rgba(9,39,73,.24)}.enterprise-credit-card:before{content:"";position:absolute;width:150px;height:150px;right:-76px;bottom:-98px;border:1px solid rgba(255,255,255,.18);border-radius:50%;box-shadow:0 0 0 20px rgba(255,255,255,.035),0 0 0 42px rgba(255,255,255,.025)}.state-assigned .enterprise-credit-card{background:radial-gradient(circle at 85% 15%,rgba(255,190,78,.46),transparent 28%),linear-gradient(145deg,#2d210b,#8a5512 62%,#50330e)}.state-mission .enterprise-credit-card{background:radial-gradient(circle at 85% 15%,rgba(180,132,255,.53),transparent 28%),linear-gradient(145deg,#1d1239,#55359a 62%,#311b66)}.enterprise-credit-head,.enterprise-credit-foot{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between}.enterprise-credit-head{font-size:.65rem;font-weight:800;letter-spacing:.13em}.enterprise-credit-head svg{width:18px;height:18px;transform:rotate(90deg);opacity:.75}.enterprise-chip{position:relative;z-index:1;width:32px;height:24px;margin-top:14px;border-radius:6px;background:linear-gradient(135deg,#f9df9b,#b98a35);box-shadow:inset 0 0 0 1px rgba(83,54,4,.22)}.enterprise-card-number{position:relative;z-index:1;margin-top:10px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.83rem;font-weight:650;letter-spacing:.08em}.enterprise-credit-foot{margin-top:10px}.enterprise-credit-foot>span:first-child{display:flex;max-width:160px;flex-direction:column;overflow:hidden;font-size:.65rem;font-weight:750;white-space:nowrap;text-overflow:ellipsis}.enterprise-credit-foot small{margin-bottom:2px;font-size:.45rem;font-weight:500;letter-spacing:.09em;opacity:.65}.enterprise-card-circles{display:flex}.enterprise-card-circles i{display:block;width:19px;height:19px;border-radius:50%;background:#f59e0b}.enterprise-card-circles i+ i{margin-left:-7px;background:#ef4444;opacity:.9}.enterprise-card-summary{min-width:0}.enterprise-card-summary h2{margin:12px 0 5px;color:#142842;font-size:1.05rem;letter-spacing:-.015em}.enterprise-card-summary p{display:-webkit-box;overflow:hidden;margin:0;color:#718096;font-size:.76rem;line-height:1.5;-webkit-line-clamp:2;-webkit-box-orient:vertical}.enterprise-status{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border-radius:99px;font-size:.65rem;font-weight:800}.enterprise-status svg{width:13px;height:13px}.status-available{color:#047857;background:#e5f8ef}.status-assigned{color:#a35605;background:#fff1d2}.status-mission{color:#6941c6;background:#f0eaff}.enterprise-card-context{display:flex;align-items:center;gap:11px;min-height:66px;margin-top:17px;padding:11px 13px;border:1px solid #e4ebf3;border-radius:13px;background:#f8fafc}.enterprise-owner-avatar{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:11px;color:#a35605;background:#fff0cd;font-size:.85rem;font-weight:850}.enterprise-owner-avatar.is-available{color:#047857;background:#ddf6eb}.enterprise-owner-avatar.is-mission{color:#6941c6;background:#ece5ff}.enterprise-owner-avatar svg{width:18px;height:18px}.enterprise-owner-copy{display:flex;min-width:0;flex-direction:column}.enterprise-owner-copy small{margin-bottom:2px;color:#7b8ca5;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.045em}.enterprise-owner-copy strong,.enterprise-owner-copy a{color:#19304e;font-size:.82rem;font-weight:800}.enterprise-owner-copy a{display:flex;align-items:center;gap:5px;color:#5d36bd}.enterprise-owner-copy a svg{width:13px;height:13px}.enterprise-owner-copy span{margin-top:2px;color:#8492a6;font-size:.68rem}.enterprise-card-actions{display:flex;align-items:center;gap:8px;margin-top:15px;padding-top:15px;border-top:1px solid #e5ebf2}.enterprise-card-actions form{margin:0}.enterprise-card-actions .enterprise-delete{margin-left:auto;color:#a2adbc}.enterprise-card-actions .enterprise-delete:hover{color:#dc2626;background:#fef2f2}
@media(max-width:1000px){.enterprise-card-stats{grid-template-columns:repeat(2,1fr)}.enterprise-toolbar{align-items:stretch;flex-direction:column}.enterprise-search{max-width:none}.enterprise-cards-grid{grid-template-columns:1fr}}
@media(max-width:620px){.enterprise-card-stats{grid-template-columns:1fr 1fr;gap:9px}.enterprise-stat{padding:13px}.enterprise-stat-icon{width:36px;height:36px;flex-basis:36px}.enterprise-filters{display:grid;grid-template-columns:1fr 1fr}.enterprise-card-top{grid-template-columns:1fr}.enterprise-credit-card{max-width:280px}.enterprise-card-actions{align-items:stretch;flex-direction:column}.enterprise-card-actions form,.enterprise-card-actions button,.enterprise-card-actions a{width:100%;justify-content:center}.enterprise-card-actions .enterprise-delete{margin-left:0}.enterprise-cards-header{align-items:flex-start}}

/* Historique d'une carte entreprise */
.enterprise-history-header h1{margin:.25rem 0 .35rem;font-size:clamp(1.6rem,2.3vw,2.15rem);letter-spacing:-.035em}.enterprise-history-layout{display:grid;grid-template-columns:290px minmax(0,1fr);gap:20px;align-items:start}.enterprise-history-card{position:sticky;top:20px;padding:18px;border:1px solid #dce5f0;border-radius:20px;background:#fff;box-shadow:0 9px 28px rgba(15,32,54,.07)}.enterprise-history-card .enterprise-credit-card{min-height:154px}.enterprise-history-meta{display:flex;align-items:center;justify-content:space-between;margin-top:17px;padding:13px 4px 10px;border-bottom:1px solid #e5ebf2}.enterprise-history-meta span{color:#718096;font-size:.72rem;font-weight:700}.enterprise-history-meta strong{color:#173f72;font-size:1.35rem}.enterprise-history-card>p{margin:12px 4px 2px;color:#718096;font-size:.76rem;line-height:1.55}.enterprise-timeline-panel{overflow:hidden;border:1px solid #dce5f0;border-radius:20px;background:#fff;box-shadow:0 9px 28px rgba(15,32,54,.06)}.enterprise-timeline-title{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;border-bottom:1px solid #e5ebf2}.enterprise-timeline-title span{color:#718096;font-size:.66rem;font-weight:750;letter-spacing:.07em;text-transform:uppercase}.enterprise-timeline-title h2{margin:3px 0 0;color:#142842;font-size:1.05rem}.enterprise-timeline-title>svg{width:22px;height:22px;color:#8fa0b5}.enterprise-timeline{padding:23px 23px 6px}.enterprise-timeline-entry{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr);gap:14px;padding-bottom:22px}.enterprise-timeline-entry:not(:last-child):before{content:"";position:absolute;top:36px;bottom:0;left:17px;width:2px;background:#e3eaf2}.enterprise-timeline-dot{position:relative;z-index:1;display:grid;place-items:center;width:36px;height:36px;border:4px solid #fff;border-radius:50%;color:#5f718a;background:#e9eef5;box-shadow:0 0 0 1px #dbe4ee}.enterprise-timeline-dot svg{width:14px;height:14px}.enterprise-timeline-entry.is-current .enterprise-timeline-dot{color:#fff;background:#d58a12;box-shadow:0 0 0 4px #fff1d7}.enterprise-timeline-content{padding:14px 16px;border:1px solid #e1e8f0;border-radius:14px;background:#fbfcfe}.enterprise-timeline-entry.is-current .enterprise-timeline-content{border-color:#f0d8a8;background:#fffbf3}.enterprise-timeline-entry-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.enterprise-timeline-entry-head small{color:#8492a6;font-size:.61rem;font-weight:750;text-transform:uppercase;letter-spacing:.05em}.enterprise-timeline-entry-head h3{margin:3px 0 0;color:#19304e;font-size:.9rem}.enterprise-timeline-entry-head>span{padding:5px 8px;border-radius:8px;color:#52647b;background:#edf2f7;font-size:.67rem;font-weight:800;white-space:nowrap}.enterprise-timeline-dates{display:flex;gap:18px;flex-wrap:wrap;margin-top:12px;padding-top:11px;border-top:1px dashed #dde5ee}.enterprise-timeline-dates span{display:flex;align-items:center;gap:5px;color:#74849a;font-size:.7rem}.enterprise-timeline-dates svg{width:13px;height:13px}.enterprise-timeline-dates strong{color:#30445f}.enterprise-timeline-content>p{display:flex;align-items:flex-start;gap:6px;margin:10px 0 0;color:#64758b;font-size:.72rem;line-height:1.5}.enterprise-timeline-content>p svg{width:13px;height:13px;flex:0 0 13px;margin-top:2px}.enterprise-timeline-empty{display:flex;align-items:center;flex-direction:column;padding:55px 20px;color:#8492a6;text-align:center}.enterprise-timeline-empty svg{width:30px;height:30px;margin-bottom:12px}.enterprise-timeline-empty strong{color:#31445e}.enterprise-timeline-empty span{margin-top:4px;font-size:.75rem}
@media(max-width:850px){.enterprise-history-layout{grid-template-columns:1fr}.enterprise-history-card{position:static;display:grid;grid-template-columns:minmax(220px,290px) minmax(0,1fr);gap:16px}.enterprise-history-meta{align-self:start;margin-top:0}.enterprise-history-card>p{grid-column:2}}
@media(max-width:560px){.enterprise-history-card{display:block}.enterprise-history-meta{margin-top:17px}.enterprise-history-card>p{grid-column:auto}.enterprise-timeline{padding:17px 14px 2px}.enterprise-timeline-entry{grid-template-columns:30px minmax(0,1fr);gap:9px}.enterprise-timeline-dot{width:30px;height:30px}.enterprise-timeline-entry:not(:last-child):before{top:30px;left:14px}.enterprise-timeline-entry-head{flex-direction:column;gap:7px}.enterprise-timeline-dates{flex-direction:column;gap:7px}}

/* Véhicules — centre de contrôle de la flotte */
.fleet-eyebrow{display:flex;align-items:center;gap:7px;color:#2563eb;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.fleet-eyebrow svg{width:15px;height:15px}.fleet-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px}.fleet-stat{display:flex;align-items:center;gap:11px;padding:15px;border:1px solid #dce5f0;border-radius:15px;background:#fff;box-shadow:0 5px 18px rgba(15,32,54,.045)}.fleet-stat-icon{display:grid;place-items:center;width:39px;height:39px;flex:0 0 39px;border-radius:11px}.fleet-stat-icon svg{width:19px;height:19px}.fleet-stat-icon.is-navy{color:#173f72;background:#e8eff8}.fleet-stat-icon.is-green{color:#07865f;background:#e3f7ef}.fleet-stat-icon.is-blue{color:#2563eb;background:#e9f1ff}.fleet-stat-icon.is-amber{color:#c87505;background:#fff1d5}.fleet-stat-icon.is-red{color:#c43b46;background:#fdebed}.fleet-stat>div{display:flex;min-width:0;flex-direction:column}.fleet-stat strong{color:#132945;font-size:1.32rem;line-height:1}.fleet-stat span:last-child{overflow:hidden;margin-top:5px;color:#74849a;font-size:.68rem;font-weight:700;white-space:nowrap;text-overflow:ellipsis}.fleet-filter-card{margin-bottom:18px;border-radius:16px;box-shadow:0 5px 18px rgba(15,32,54,.045)}.fleet-filter-card .filters-bar{padding:12px}.fleet-filter-card .filter-input{flex:1;min-width:220px}.fleet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(520px,1fr));gap:18px}.fleet-vehicle{display:grid;grid-template-columns:180px minmax(0,1fr);overflow:hidden;border:1px solid #dce5f0;border-radius:20px;background:#fff;box-shadow:0 9px 28px rgba(15,32,54,.07);transition:transform .2s ease,box-shadow .2s ease}.fleet-vehicle:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(15,32,54,.11)}.fleet-vehicle-visual{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;min-height:250px;color:#fff;background:linear-gradient(155deg,#0d2947,#1c568b)}.fleet-vehicle.state-en_mission .fleet-vehicle-visual{background:linear-gradient(155deg,#18376c,#2d68b6)}.fleet-vehicle.state-maintenance .fleet-vehicle-visual{background:linear-gradient(155deg,#4d3210,#b56a0a)}.fleet-vehicle.state-hors_service .fleet-vehicle-visual{background:linear-gradient(155deg,#3b1d25,#8c3442)}.fleet-vehicle-orbit{position:absolute;width:190px;height:190px;border:1px solid rgba(255,255,255,.12);border-radius:50%;box-shadow:0 0 0 28px rgba(255,255,255,.035),0 0 0 60px rgba(255,255,255,.02)}.fleet-vehicle-icon{position:relative;z-index:1;filter:drop-shadow(0 9px 14px rgba(0,0,0,.25))}.fleet-vehicle-icon svg{width:76px;height:76px;stroke-width:1.25}.fleet-type{position:absolute;top:14px;left:14px;padding:5px 8px;border:1px solid rgba(255,255,255,.18);border-radius:99px;background:rgba(5,20,35,.25);font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.fleet-plate{position:absolute;right:14px;bottom:14px;padding:5px 9px;border:2px solid #ced8e4;border-radius:5px;color:#152842;background:#f7fafc;box-shadow:0 4px 10px rgba(0,0,0,.2);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.69rem;font-weight:900;letter-spacing:.08em}.fleet-vehicle-body{display:flex;min-width:0;flex-direction:column;padding:18px}.fleet-vehicle-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.fleet-vehicle-heading h2{margin:0;font-size:1.05rem}.fleet-vehicle-heading h2 a{color:#142842}.fleet-vehicle-heading p{margin:4px 0 0;color:#7a899d;font-size:.72rem}.fleet-status{padding:6px 8px;border-radius:99px;font-size:.62rem;font-weight:800;white-space:nowrap}.fleet-status.status-disponible{color:#047857;background:#e4f8ef}.fleet-status.status-en_mission{color:#1d5fc3;background:#e8f1ff}.fleet-status.status-maintenance{color:#a95c02;background:#fff0d0}.fleet-status.status-hors_service{color:#b52f3d;background:#fdebed}.fleet-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:15px}.fleet-facts>div{display:flex;align-items:center;gap:7px;min-width:0;padding:9px;border:1px solid #e5ebf2;border-radius:10px;background:#f8fafc}.fleet-facts svg{width:16px;height:16px;flex:0 0 16px;color:#6480a2}.fleet-facts span{display:flex;min-width:0;flex-direction:column;color:#8694a7;font-size:.56rem;font-weight:700;text-transform:uppercase}.fleet-facts strong{overflow:hidden;margin-top:3px;color:#30445f;font-size:.65rem;text-transform:none;white-space:nowrap;text-overflow:ellipsis}.fleet-equipment{display:flex;align-items:center;gap:6px;overflow:hidden;margin-top:11px;color:#75859a}.fleet-equipment svg{width:15px;height:15px;flex:0 0 15px}.fleet-equipment span{padding:4px 7px;border-radius:7px;color:#52647b;background:#edf2f7;font-size:.62rem;white-space:nowrap}.fleet-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:auto;padding-top:14px}.fleet-status-control{margin-left:auto}.fleet-status-control select{max-width:135px;border-color:#dbe4ee;background:#f8fafc;font-size:.7rem;font-weight:750}.fleet-empty{display:flex;align-items:center;flex-direction:column;padding:60px 20px;border:1px dashed #cad6e4;border-radius:18px;color:#8795a8;background:#fff;text-align:center}.fleet-empty svg{width:38px;height:38px}.fleet-empty h2{margin:12px 0 4px;color:#31445e;font-size:1rem}.fleet-empty p{margin:0;font-size:.75rem}
@media(max-width:1100px){.fleet-stats{grid-template-columns:repeat(3,1fr)}.fleet-grid{grid-template-columns:1fr}}
@media(max-width:700px){.fleet-stats{grid-template-columns:1fr 1fr}.fleet-vehicle{grid-template-columns:1fr}.fleet-vehicle-visual{min-height:185px}.fleet-facts{grid-template-columns:1fr 1fr}.fleet-status-control{width:100%;margin-left:0}.fleet-status-control select{width:100%;max-width:none}.fleet-actions .btn{flex:1;justify-content:center}}
@media(max-width:430px){.fleet-stats{grid-template-columns:1fr}.fleet-facts{grid-template-columns:1fr}.fleet-vehicle-heading{flex-direction:column}}

/* Affichage dense — cartes entreprise et véhicules */
.display-switch{display:flex;flex:0 0 auto;gap:3px;padding:3px;border:1px solid #dce5f0;border-radius:11px;background:#f3f6fa}.display-switch button{display:flex;align-items:center;gap:6px;height:32px;padding:0 9px;border:0;border-radius:8px;color:#718096;background:transparent;font-size:.68rem;font-weight:750;cursor:pointer}.display-switch button svg{width:14px;height:14px}.display-switch button.is-active{color:#173f72;background:#fff;box-shadow:0 2px 7px rgba(15,32,54,.12)}
.enterprise-cards-grid.view-compact{grid-template-columns:1fr;gap:9px}.enterprise-cards-grid.view-compact .enterprise-card-item{border-radius:14px;box-shadow:0 3px 12px rgba(15,32,54,.045)}.enterprise-cards-grid.view-compact .enterprise-card-item:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(15,32,54,.08)}.enterprise-cards-grid.view-compact .enterprise-card-shell{display:grid;grid-template-columns:minmax(280px,1.45fr) minmax(210px,1fr) auto;align-items:center;gap:15px;padding:10px 12px}.enterprise-cards-grid.view-compact .enterprise-card-top{grid-template-columns:92px minmax(0,1fr);gap:13px}.enterprise-cards-grid.view-compact .enterprise-credit-card{min-height:58px;padding:9px;border-radius:10px}.enterprise-cards-grid.view-compact .enterprise-credit-head{font-size:.48rem}.enterprise-cards-grid.view-compact .enterprise-credit-head svg,.enterprise-cards-grid.view-compact .enterprise-chip,.enterprise-cards-grid.view-compact .enterprise-credit-foot{display:none}.enterprise-cards-grid.view-compact .enterprise-card-number{position:absolute;right:9px;bottom:8px;margin:0;font-size:.58rem}.enterprise-cards-grid.view-compact .enterprise-card-summary h2{margin:6px 0 0;font-size:.85rem}.enterprise-cards-grid.view-compact .enterprise-card-summary p{font-size:.68rem;-webkit-line-clamp:1}.enterprise-cards-grid.view-compact .enterprise-status{padding:4px 7px;font-size:.57rem}.enterprise-cards-grid.view-compact .enterprise-card-context{min-height:52px;margin:0;padding:7px 9px}.enterprise-cards-grid.view-compact .enterprise-owner-avatar{width:31px;height:31px;flex-basis:31px;border-radius:9px;font-size:.72rem}.enterprise-cards-grid.view-compact .enterprise-owner-copy small{font-size:.54rem}.enterprise-cards-grid.view-compact .enterprise-owner-copy strong,.enterprise-cards-grid.view-compact .enterprise-owner-copy a{font-size:.72rem}.enterprise-cards-grid.view-compact .enterprise-owner-copy span{font-size:.6rem}.enterprise-cards-grid.view-compact .enterprise-card-actions{justify-content:flex-end;margin:0;padding:0;border:0}.enterprise-cards-grid.view-compact .enterprise-card-actions .btn{white-space:nowrap}.enterprise-cards-grid.view-compact .enterprise-card-actions .enterprise-delete{margin-left:0}
.fleet-viewbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:12px}.fleet-viewbar>div:first-child{display:flex;flex-direction:column}.fleet-viewbar strong{color:#263b57;font-size:.8rem}.fleet-viewbar span{margin-top:2px;color:#8a98aa;font-size:.64rem}.fleet-grid.view-compact{grid-template-columns:1fr;gap:9px}.fleet-grid.view-compact .fleet-vehicle{grid-template-columns:105px minmax(0,1fr);border-radius:14px;box-shadow:0 3px 12px rgba(15,32,54,.045)}.fleet-grid.view-compact .fleet-vehicle:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(15,32,54,.08)}.fleet-grid.view-compact .fleet-vehicle-visual{min-height:112px}.fleet-grid.view-compact .fleet-vehicle-orbit{width:92px;height:92px;box-shadow:0 0 0 15px rgba(255,255,255,.03)}.fleet-grid.view-compact .fleet-vehicle-icon svg{width:42px;height:42px}.fleet-grid.view-compact .fleet-type{top:7px;left:7px;padding:3px 5px;font-size:.48rem}.fleet-grid.view-compact .fleet-plate{right:7px;bottom:7px;padding:3px 5px;font-size:.52rem}.fleet-grid.view-compact .fleet-vehicle-body{display:grid;grid-template-columns:minmax(170px,.9fr) minmax(290px,1.3fr) auto;align-items:center;gap:14px;padding:10px 12px}.fleet-grid.view-compact .fleet-vehicle-heading{min-width:0}.fleet-grid.view-compact .fleet-vehicle-heading h2{font-size:.85rem}.fleet-grid.view-compact .fleet-vehicle-heading p{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.fleet-grid.view-compact .fleet-status{padding:4px 6px;font-size:.54rem}.fleet-grid.view-compact .fleet-facts{margin:0}.fleet-grid.view-compact .fleet-facts>div{padding:7px}.fleet-grid.view-compact .fleet-equipment{display:none}.fleet-grid.view-compact .fleet-actions{justify-content:flex-end;min-width:300px;margin:0;padding:0}.fleet-grid.view-compact .fleet-actions .btn-ghost{display:none}.fleet-grid.view-compact .fleet-status-control{margin-left:0}.fleet-grid.view-compact .fleet-status-control select{height:34px}
@media(max-width:1100px){.enterprise-toolbar{align-items:stretch;flex-direction:column}.enterprise-toolbar .display-switch{align-self:flex-end}.enterprise-cards-grid.view-compact .enterprise-card-shell{grid-template-columns:minmax(270px,1fr) minmax(190px,.8fr)}.enterprise-cards-grid.view-compact .enterprise-card-actions{grid-column:1/-1;justify-content:flex-start;padding-top:8px;border-top:1px solid #e8edf3}.fleet-grid.view-compact .fleet-vehicle-body{grid-template-columns:minmax(180px,.8fr) 1.2fr}.fleet-grid.view-compact .fleet-actions{grid-column:1/-1;justify-content:flex-start;min-width:0;padding-top:7px;border-top:1px solid #e8edf3}}
@media(max-width:700px){.enterprise-toolbar .display-switch,.fleet-viewbar .display-switch{display:none}.enterprise-cards-grid.view-compact .enterprise-card-shell{display:block;padding:18px}.enterprise-cards-grid.view-compact .enterprise-card-top{grid-template-columns:1fr}.enterprise-cards-grid.view-compact .enterprise-credit-card{min-height:142px;padding:17px;border-radius:17px}.enterprise-cards-grid.view-compact .enterprise-credit-head,.enterprise-cards-grid.view-compact .enterprise-credit-foot{display:flex}.enterprise-cards-grid.view-compact .enterprise-chip{display:block}.enterprise-cards-grid.view-compact .enterprise-card-number{position:relative;right:auto;bottom:auto;margin-top:10px;font-size:.83rem}.enterprise-cards-grid.view-compact .enterprise-card-summary h2{font-size:1.05rem}.enterprise-cards-grid.view-compact .enterprise-card-context{margin-top:17px}.enterprise-cards-grid.view-compact .enterprise-card-actions{justify-content:stretch;margin-top:15px;padding-top:15px}.fleet-grid.view-compact .fleet-vehicle{grid-template-columns:1fr}.fleet-grid.view-compact .fleet-vehicle-visual{min-height:185px}.fleet-grid.view-compact .fleet-vehicle-body{display:flex;padding:18px}.fleet-grid.view-compact .fleet-equipment{display:flex}.fleet-grid.view-compact .fleet-actions{padding-top:14px;border:0}}

/* Fiche détaillée d'un véhicule */
.vehicle-detail-page{--vehicle-border:#dce5f0;--vehicle-ink:#142842}.vehicle-detail-header{align-items:flex-end}.vehicle-detail-header .page-title{margin:.25rem 0 .3rem;font-size:clamp(1.7rem,2.7vw,2.35rem);letter-spacing:-.04em}.vehicle-detail-page>.alert{max-width:none;border-radius:12px;box-shadow:none}.vehicle-identity{display:grid;grid-template-columns:220px minmax(0,1fr);overflow:hidden;margin:15px 0 20px;border:1px solid var(--vehicle-border);border-radius:21px;background:#fff;box-shadow:0 10px 30px rgba(15,32,54,.075)}.vehicle-identity-visual{position:relative;display:grid;place-items:center;overflow:hidden;min-height:225px;color:#fff;background:linear-gradient(150deg,#0d2947,#1d578c)}.vehicle-identity.state-en_mission .vehicle-identity-visual{background:linear-gradient(150deg,#18376c,#2d68b6)}.vehicle-identity.state-maintenance .vehicle-identity-visual{background:linear-gradient(150deg,#4d3210,#b56a0a)}.vehicle-identity.state-hors_service .vehicle-identity-visual{background:linear-gradient(150deg,#3b1d25,#8c3442)}.vehicle-identity-visual>svg{position:relative;z-index:1;width:92px;height:92px;stroke-width:1.2;filter:drop-shadow(0 10px 16px rgba(0,0,0,.25))}.vehicle-identity-rings{position:absolute;width:205px;height:205px;border:1px solid rgba(255,255,255,.13);border-radius:50%;box-shadow:0 0 0 30px rgba(255,255,255,.035),0 0 0 65px rgba(255,255,255,.02)}.vehicle-detail-plate{position:absolute;right:17px;bottom:16px;padding:6px 10px;border:2px solid #d4dde7;border-radius:6px;color:#142842;background:#f8fafc;box-shadow:0 5px 12px rgba(0,0,0,.22);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.72rem;font-weight:900;letter-spacing:.1em}.vehicle-identity-main{display:flex;min-width:0;flex-direction:column;padding:22px}.vehicle-identity-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.vehicle-identity-title>div>span{color:#73849a;font-size:.62rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.vehicle-identity-title h2{margin:4px 0 3px;color:var(--vehicle-ink);font-size:1.25rem;letter-spacing:-.025em}.vehicle-identity-title p{margin:0;color:#7c8ca0;font-size:.75rem}.vehicle-detail-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:18px}.vehicle-detail-kpis>div{display:flex;align-items:center;gap:9px;min-width:0;padding:11px;border:1px solid #e3eaf2;border-radius:12px;background:#f8fafc}.vehicle-detail-kpis svg{width:18px;height:18px;flex:0 0 18px;color:#53759b}.vehicle-detail-kpis span{display:flex;min-width:0;flex-direction:column;color:#8593a6;font-size:.55rem;font-weight:750;letter-spacing:.03em;text-transform:uppercase}.vehicle-detail-kpis strong{overflow:hidden;margin-top:4px;color:#2b405c;font-size:.72rem;text-transform:none;white-space:nowrap;text-overflow:ellipsis}.vehicle-quick-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:17px}.vehicle-detail-grid{display:grid;grid-template-columns:minmax(320px,.82fr) minmax(470px,1.18fr);gap:18px}.vehicle-detail-grid>div{gap:18px!important}.vehicle-detail-grid .card,.vehicle-work-history{overflow:hidden;border-color:var(--vehicle-border);border-radius:17px;box-shadow:0 7px 22px rgba(15,32,54,.055)}.vehicle-detail-grid .card-header,.vehicle-work-history .card-header{min-height:55px;padding:13px 16px;background:linear-gradient(180deg,#fff,#fbfcfe)}.vehicle-detail-grid .card-header strong,.vehicle-work-history .card-header strong{display:flex;align-items:center;gap:7px;color:#203652;font-size:.82rem}.vehicle-detail-grid .detail-item{grid-template-columns:22px minmax(105px,.8fr) minmax(0,1.2fr);padding:.7rem 0}.vehicle-detail-grid .detail-item>svg{width:17px;height:17px;color:#6c86a5}.vehicle-detail-grid .section-title{color:#6f8095;font-size:.65rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.vehicle-detail-grid .table-wrap table,.vehicle-work-history table{font-size:.78rem}.vehicle-detail-grid .table-wrap th,.vehicle-work-history th{padding:.62rem .72rem;color:#708096;font-size:.61rem;letter-spacing:.045em;text-transform:uppercase}.vehicle-detail-grid .table-wrap td,.vehicle-work-history td{padding:.68rem .72rem}.vehicle-work-history{margin-top:18px}.vehicle-work-history .card-header{display:flex;align-items:center;justify-content:space-between}.vehicle-detail-page [id^="form-"]{background:#f7f9fc!important}.vehicle-detail-page [id^="form-"] form{padding:3px}.vehicle-detail-page [id^="form-"] .form-control,.vehicle-detail-page [id^="form-"] .form-select{background:#fff}.vehicle-detail-page .card-body>div[style*="grid-template-columns:1fr 1fr"]>div{border-radius:12px!important;background:#f7f9fc!important}
@media(max-width:1050px){.vehicle-detail-kpis{grid-template-columns:1fr 1fr}.vehicle-detail-grid{grid-template-columns:1fr}.vehicle-detail-grid>div:first-child{display:grid!important;grid-template-columns:1fr 1fr;align-items:start}.vehicle-detail-grid>div:first-child .card:first-child{grid-column:1/-1}}
@media(max-width:720px){.vehicle-identity{grid-template-columns:1fr}.vehicle-identity-visual{min-height:180px}.vehicle-identity-main{padding:18px}.vehicle-detail-grid>div:first-child{display:flex!important}.vehicle-detail-header{align-items:flex-start}.vehicle-detail-header>div:last-child{width:100%}.vehicle-detail-header>div:last-child .btn{flex:1;justify-content:center}.vehicle-detail-page [id^="form-"] form>div[style*="grid-template-columns"]{grid-template-columns:1fr!important}}
@media(max-width:480px){.vehicle-identity-title{flex-direction:column}.vehicle-detail-kpis{grid-template-columns:1fr}.vehicle-quick-actions .btn{width:100%;justify-content:center}}
.vehicle-section-toggle{display:flex;align-items:center;gap:6px;margin-left:auto;padding:5px 7px;border:0;border-radius:7px;color:#75859a;background:#eef3f8;font-size:.58rem;font-weight:750;cursor:pointer}.vehicle-section-toggle b{font-size:.8rem}.vehicle-section-toggle:hover{color:#245da7;background:#e4edf8}.vehicle-detail-grid .card.is-collapsed>:not(.card-header),.vehicle-work-history.is-collapsed>:not(.card-header){display:none!important}.vehicle-detail-grid .card.is-collapsed .card-header,.vehicle-work-history.is-collapsed .card-header{border-bottom:0}.vehicle-detail-grid .card-header>div+.vehicle-section-toggle{margin-left:5px}
.fleet-vehicle-photo{position:absolute;z-index:1;inset:0;width:100%;height:100%;object-fit:cover}.fleet-vehicle:has(.fleet-vehicle-photo) .fleet-vehicle-visual:after{content:"";position:absolute;z-index:2;inset:0;background:linear-gradient(180deg,rgba(5,20,35,.18),transparent 42%,rgba(5,20,35,.38));pointer-events:none}.fleet-vehicle:has(.fleet-vehicle-photo) .fleet-type,.fleet-vehicle:has(.fleet-vehicle-photo) .fleet-plate{z-index:3}.vehicle-photo-input{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:15px;padding:12px;border:1px solid #dfe7f0;border-radius:13px;background:#f8fafc}.vehicle-photo-preview{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;overflow:hidden;width:150px;height:95px;border:1px dashed #bdcada;border-radius:10px;color:#8190a3;background:#eaf0f6;font-size:.68rem}.vehicle-photo-preview svg{width:24px;height:24px}.vehicle-photo-preview img{width:100%;height:100%;object-fit:cover}.vehicle-photo-input small{display:block;margin-top:6px;line-height:1.4}@media(max-width:600px){.vehicle-photo-input{grid-template-columns:1fr}.vehicle-photo-preview{width:100%;height:160px}}
.fleet-demo-note{position:absolute;z-index:3;right:7px;top:7px;padding:3px 5px;border:1px solid rgba(255,255,255,.35);border-radius:99px;color:#fff;background:rgba(7,25,39,.64);backdrop-filter:blur(5px);font-size:.43rem;font-weight:750;text-transform:uppercase;letter-spacing:.035em}.fleet-grid:not(.view-compact) .fleet-demo-note{right:12px;top:12px;padding:5px 7px;font-size:.5rem}

/* Vignette photo simplifiée en affichage compact */
.fleet-grid.view-compact .fleet-vehicle{grid-template-columns:150px minmax(0,1fr)}.fleet-grid.view-compact .fleet-vehicle-visual{min-height:108px}.fleet-grid.view-compact .fleet-type,.fleet-grid.view-compact .fleet-demo-note{display:none}.fleet-grid.view-compact .fleet-plate{right:8px;bottom:7px;padding:2px 5px;border-width:1px;font-size:.48rem;opacity:.92}.fleet-vehicle-photo{object-position:center}
@media(max-width:700px){.fleet-grid.view-compact .fleet-vehicle{grid-template-columns:1fr}.fleet-grid.view-compact .fleet-vehicle-visual{min-height:185px}.fleet-grid.view-compact .fleet-type{display:block}.fleet-grid.view-compact .fleet-demo-note{display:block}}
.vehicle-identity-photo{position:absolute;z-index:1;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.vehicle-identity-visual:has(.vehicle-identity-photo):after{content:"";position:absolute;z-index:2;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(5,20,35,.35));pointer-events:none}.vehicle-identity-visual:has(.vehicle-identity-photo) .vehicle-detail-plate{z-index:3}

/* Formulaire véhicule */
.vehicle-form-header{align-items:flex-end}.vehicle-form-header .page-title{margin:.25rem 0 .3rem;font-size:clamp(1.7rem,2.5vw,2.2rem);letter-spacing:-.035em}.vehicle-form-header p{margin:0;color:#75859a;font-size:.78rem}.vehicle-form-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}.vehicle-editor-form{display:flex;flex-direction:column;gap:16px}.vehicle-form-section{overflow:hidden;margin:0!important;border-color:#dce5f0;border-radius:18px;box-shadow:0 7px 22px rgba(15,32,54,.055)}.vehicle-form-section{scroll-margin-top:18px}.vehicle-form-section .card-header{display:flex;align-items:center;gap:11px;min-height:60px;padding:12px 16px;background:linear-gradient(180deg,#fff,#fafcfe)}.vehicle-form-step{display:grid;place-items:center;width:31px;height:31px;flex:0 0 31px;border-radius:9px;color:#fff;background:#1d5fc3;box-shadow:0 5px 10px rgba(29,95,195,.2);font-size:.72rem;font-weight:850}.vehicle-form-section .card-header>div{display:flex;flex-direction:column}.vehicle-form-section .card-header strong{color:#203652;font-size:.83rem}.vehicle-form-section .card-header small{margin-top:3px;color:#8795a7;font-size:.62rem}.vehicle-form-section .card-body{padding:18px}.vehicle-form-section .form-label{color:#415570;font-size:.7rem;font-weight:750}.vehicle-form-section .form-label small{font-weight:500}.vehicle-form-section .form-control,.vehicle-form-section .form-select{border-color:#d8e2ed;background:#fbfcfe}.vehicle-form-section .form-control:focus,.vehicle-form-section .form-select:focus{background:#fff;box-shadow:0 0 0 3px rgba(37,99,235,.09)}.vehicle-form-submitbar{position:sticky;z-index:10;bottom:12px;display:flex;align-items:center;gap:9px;padding:12px 14px;border:1px solid #d7e1ec;border-radius:15px;background:rgba(255,255,255,.94);box-shadow:0 12px 34px rgba(15,32,54,.15);backdrop-filter:blur(12px)}.vehicle-form-submitbar>div{display:flex;min-width:0;flex:1;flex-direction:column}.vehicle-form-submitbar>div strong{color:#263b57;font-size:.74rem}.vehicle-form-submitbar>div span{margin-top:2px;color:#8492a5;font-size:.61rem}.vehicle-form-aside{position:sticky;top:18px;display:flex;flex-direction:column;gap:12px}.vehicle-form-summary{display:grid;grid-template-columns:92px minmax(0,1fr);gap:12px;align-items:center;overflow:hidden;padding:10px;border:1px solid #dce5f0;border-radius:16px;background:#fff;box-shadow:0 7px 22px rgba(15,32,54,.06)}.vehicle-form-summary-visual{display:grid;place-items:center;overflow:hidden;width:92px;height:76px;border-radius:11px;color:#fff;background:linear-gradient(145deg,#0d2947,#1d578c)}.vehicle-form-summary-visual svg{width:36px;height:36px}.vehicle-form-summary-visual img{width:100%;height:100%;object-fit:cover}.vehicle-form-summary>div:last-child{display:flex;min-width:0;flex-direction:column}.vehicle-form-summary span{color:#7f8da0;font-size:.55rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.vehicle-form-summary strong{overflow:hidden;margin-top:4px;color:#18304e;font-size:.8rem;white-space:nowrap;text-overflow:ellipsis}.vehicle-form-summary small{overflow:hidden;margin-top:3px;color:#8492a5;font-size:.62rem;white-space:nowrap;text-overflow:ellipsis}.vehicle-form-nav{display:flex;overflow:hidden;flex-direction:column;border:1px solid #dce5f0;border-radius:15px;background:#fff}.vehicle-form-nav button{display:grid;grid-template-columns:27px minmax(0,1fr) 16px;align-items:center;gap:9px;padding:11px 12px;border:0;border-bottom:1px solid #e7edf3;color:#52647b;background:#fff;text-align:left;cursor:pointer}.vehicle-form-nav button:last-child{border-bottom:0}.vehicle-form-nav button:hover{background:#f5f8fc}.vehicle-form-nav button>span{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;color:#245da7;background:#e9f1fc;font-size:.65rem;font-weight:850}.vehicle-form-nav button>div{display:flex;min-width:0;flex-direction:column}.vehicle-form-nav strong{color:#30445f;font-size:.7rem}.vehicle-form-nav small{margin-top:2px;color:#8b98a9;font-size:.57rem}.vehicle-form-nav svg{width:14px;height:14px;color:#9ba7b6}.vehicle-form-guide{overflow:hidden;border-color:#dce5f0;border-radius:15px;box-shadow:none}.vehicle-form-guide .card-header{padding:11px 13px}.vehicle-form-guide .card-body{padding:13px}.vehicle-form-guide p{color:#697a90;font-size:.68rem;line-height:1.55}.vehicle-form-guide p:last-child{margin-bottom:0}
@media(max-width:1050px){.vehicle-form-layout{grid-template-columns:1fr}.vehicle-form-aside{position:static;display:grid;grid-template-columns:1fr 1fr}.vehicle-form-nav{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr)}.vehicle-form-nav button{border-right:1px solid #e7edf3;border-bottom:0}.vehicle-form-nav button:last-child{border-right:0}}
@media(max-width:700px){.vehicle-form-aside{display:flex}.vehicle-form-nav{display:flex}.vehicle-form-nav button{border-right:0;border-bottom:1px solid #e7edf3}.vehicle-form-submitbar{align-items:stretch;flex-wrap:wrap}.vehicle-form-submitbar>div{width:100%;flex-basis:100%}.vehicle-form-submitbar .btn{flex:1;justify-content:center}.vehicle-form-section .card-body>div[style*="grid-template-columns"]{grid-template-columns:1fr!important}.vehicle-form-section label[style*="display:flex"]{align-items:flex-start!important;flex-wrap:wrap}}

/* Outils et coffres — inventaire */
.inventory-eyebrow{display:flex;align-items:center;gap:7px;color:#2563eb;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.inventory-eyebrow svg{width:15px;height:15px}.inventory-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:17px}.inventory-stat{display:flex;align-items:center;gap:11px;padding:14px 15px;border:1px solid #dce5f0;border-radius:15px;background:#fff;box-shadow:0 5px 18px rgba(15,32,54,.045)}.inventory-stat-icon{display:grid;place-items:center;width:39px;height:39px;flex:0 0 39px;border-radius:11px}.inventory-stat-icon svg{width:18px;height:18px}.inventory-stat-icon.is-navy{color:#173f72;background:#e7eef7}.inventory-stat-icon.is-blue{color:#2563eb;background:#e8f1ff}.inventory-stat-icon.is-violet{color:#7142c5;background:#f0eafe}.inventory-stat-icon.is-amber{color:#c87505;background:#fff0d2}.inventory-stat-icon.is-red{color:#c33845;background:#fdebed}.inventory-stat>div{display:flex;min-width:0;flex-direction:column}.inventory-stat>div>div:first-child{color:#142842!important;font-size:1.3rem!important;line-height:1}.inventory-stat>div>div:last-child{margin-top:5px;font-size:.67rem}.inventory-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:15px;padding:9px;border:1px solid #dce5f0;border-radius:15px;background:#fff;box-shadow:0 4px 15px rgba(15,32,54,.035)}.inventory-toolbar>label{display:flex;align-items:center;gap:8px;min-width:260px;max-width:470px;flex:1;padding:0 10px;color:#7d8da1}.inventory-toolbar>label svg{width:17px;height:17px}.inventory-toolbar input{width:100%;height:37px;border:0;outline:0;color:#263b57;background:transparent;font:inherit;font-size:.78rem}.inventory-tabs{display:flex;gap:4px}.inventory-tabs button{padding:8px 10px;border:0;border-radius:9px;color:#708096;background:transparent;font-size:.68rem;font-weight:750;cursor:pointer}.inventory-tabs button:hover{color:#235caa;background:#f1f5fa}.inventory-tabs button.is-active{color:#fff;background:#173f72;box-shadow:0 4px 10px rgba(23,63,114,.2)}.inventory-section{overflow:hidden;margin-bottom:15px!important;border-color:#dce5f0;border-radius:17px;box-shadow:0 7px 22px rgba(15,32,54,.055)}.inventory-section[hidden]{display:none}.inventory-section>.card-header{min-height:54px;padding:12px 15px;background:linear-gradient(180deg,#fff,#fafcfe)}.inventory-section>.card-header h3{display:flex;align-items:center;gap:5px;color:#203652;font-size:.8rem}.inventory-section>.card-header h3 svg{width:17px;height:17px;color:#55779e}.inventory-coffres-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:9px;padding:12px;background:#f7f9fc}.inventory-coffre{position:relative;min-height:100px;padding:13px 14px!important;border:1px solid #dce5f0!important;border-left:4px solid var(--coffre-color)!important;border-radius:12px!important;background:#fff;box-shadow:0 2px 8px rgba(15,32,54,.035);transition:transform .15s ease,box-shadow .15s ease!important}.inventory-coffre:hover{transform:translateY(-2px);box-shadow:0 7px 17px rgba(15,32,54,.09)!important}.inventory-coffre[hidden]{display:none}.inventory-coffre.has-issue{background:linear-gradient(90deg,#fff9f9,#fff)}.inventory-coffre>div:first-child>div{color:#263b57;font-size:.82rem!important}.inventory-coffre>div:first-child>span{font-size:.61rem!important}.inventory-coffre .text-sm{font-size:.67rem}.inventory-tools-table{border:0!important}.inventory-tools-table table{font-size:.77rem}.inventory-tools-table thead{background:#f7f9fc}.inventory-tools-table th{padding:.68rem .8rem;border-bottom:1px solid #dce5f0}.inventory-tools-table th a{color:#526a88!important;font-size:.61rem!important;font-weight:800!important;letter-spacing:.045em;text-transform:uppercase}.inventory-tools-table td{padding:.72rem .8rem}.inventory-tools-table tbody tr{transition:background .12s}.inventory-tools-table tbody tr:hover{background:#f7faff}.inventory-tools-table tbody tr.has-issue{box-shadow:inset 3px 0 #dc5965;background:#fffafa}.inventory-tools-table tbody tr[hidden]{display:none}.inventory-tools-table td:first-child a{color:#1e4f8f}.inventory-tools-table .badge{font-size:.61rem}.inventory-tools-table .btn svg{width:15px;height:15px}
@media(max-width:1050px){.inventory-stats{grid-template-columns:repeat(3,1fr)}.inventory-toolbar{align-items:stretch;flex-direction:column}.inventory-toolbar>label{max-width:none}.inventory-tabs{overflow-x:auto}}
@media(max-width:650px){.inventory-stats{grid-template-columns:1fr 1fr}.inventory-coffres-grid{grid-template-columns:1fr}.inventory-toolbar{padding:8px}.inventory-tabs button{flex:0 0 auto}.inventory-tools-table{overflow-x:auto}.inventory-tools-table table{min-width:720px}}
@media(max-width:420px){.inventory-stats{grid-template-columns:1fr}}

/* Explorateur d'inventaire hiérarchique */
.inventory-header h1{margin:.25rem 0 .3rem;font-size:clamp(1.65rem,2.3vw,2.15rem);letter-spacing:-.035em}.inventory-header-actions{display:flex;gap:8px}.inventory-summary-strip{display:flex;align-items:center;gap:22px;margin-bottom:14px;padding:13px 17px;border:1px solid #dce5f0;border-radius:15px;background:#fff;box-shadow:0 5px 18px rgba(15,32,54,.04)}.inventory-summary-strip>div{display:grid;grid-template-columns:34px auto;grid-template-rows:auto auto;column-gap:10px;align-items:center}.inventory-summary-strip>div>span{display:grid;grid-row:1/3;place-items:center;width:34px;height:34px;border-radius:10px;color:#315f95;background:#eaf1f9}.inventory-summary-strip svg{width:16px;height:16px}.inventory-summary-strip strong{color:#1b324f;font-size:1rem;line-height:1}.inventory-summary-strip small{margin-top:3px;color:#8492a5;font-size:.61rem}.inventory-summary-strip>i{width:1px;height:31px;background:#e4eaf1}.inventory-summary-strip .is-attention>span{color:#ad6408;background:#fff0d5}.inventory-summary-strip .is-danger>span{color:#c23b48;background:#fdebed}.inventory-commandbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:11px;padding:8px;border:1px solid #dce5f0;border-radius:14px;background:#fff}.inventory-commandbar>label{display:flex;align-items:center;gap:8px;min-width:280px;max-width:520px;flex:1;padding:0 10px;color:#7f8ea2}.inventory-commandbar>label svg{width:17px;height:17px}.inventory-commandbar input{width:100%;height:38px;border:0;outline:0;color:#253a56;background:transparent;font:inherit;font-size:.77rem}.inventory-commandbar kbd{padding:2px 6px;border:1px solid #d8e1eb;border-radius:5px;color:#8b98a8;background:#f5f7fa;font:600 .6rem inherit}.inventory-commandbar .inventory-tabs button{display:flex;align-items:center;gap:5px}.inventory-commandbar .inventory-tabs svg{width:13px;height:13px}.inventory-explorer{overflow:hidden;border:1px solid #d8e2ed;border-radius:16px;background:#fff;box-shadow:0 8px 25px rgba(15,32,54,.055)}.inventory-explorer-head,.inventory-tree-row{display:grid;grid-template-columns:minmax(300px,1.5fr) minmax(150px,.75fr) minmax(150px,.75fr) 115px 65px;align-items:center;gap:10px}.inventory-explorer-head{min-height:41px;padding:0 14px;color:#7b8b9f;background:#f4f7fa;border-bottom:1px solid #dce5ee;font-size:.57rem;font-weight:850;letter-spacing:.065em;text-transform:uppercase}.inventory-tree-group[hidden],.inventory-loose-group[hidden]{display:none}.inventory-tree-row{position:relative;min-height:63px;padding:8px 14px;border-bottom:1px solid #e5ebf2;transition:background .12s}.inventory-tree-parent{cursor:pointer}.inventory-tree-parent:hover{background:#f8fafd}.inventory-tree-group.has-issue>.inventory-tree-parent{box-shadow:inset 3px 0 #db5663;background:#fffafa}.inventory-tree-name{display:flex;align-items:center;gap:10px;min-width:0}.inventory-tree-name>div{display:flex;min-width:0;flex-direction:column}.inventory-tree-name strong,.inventory-tree-name a{overflow:hidden;color:#213a59;font-size:.76rem;font-weight:800;white-space:nowrap;text-overflow:ellipsis}.inventory-tree-name small{overflow:hidden;margin-top:3px;color:#8795a8;font-size:.59rem;white-space:nowrap;text-overflow:ellipsis}.inventory-tree-toggle{display:grid;place-items:center;width:25px;height:25px;flex:0 0 25px;border:0;border-radius:7px;color:#738399;background:#edf2f7;cursor:pointer;transition:transform .15s}.inventory-tree-toggle svg{width:14px;height:14px}.inventory-tree-group.is-open .inventory-tree-toggle{transform:rotate(90deg);color:#245da7;background:#e5eef9}.inventory-object-icon,.inventory-tool-icon{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:9px}.inventory-object-icon{color:var(--object-color);background:color-mix(in srgb,var(--object-color) 12%,white);box-shadow:inset 3px 0 var(--object-color)}.inventory-object-icon svg,.inventory-tool-icon svg{width:17px;height:17px}.inventory-tool-icon{color:#5f7693;background:#edf2f7}.inventory-cell{display:flex;align-items:center;gap:6px;min-width:0;color:#63758c;font-size:.67rem}.inventory-cell svg{width:14px;height:14px;flex:0 0 14px;color:#8a9aab}.inventory-cell span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.inventory-state{display:inline-flex;padding:5px 8px;border-radius:99px;font-size:.58rem;font-weight:850;white-space:nowrap}.inventory-state.good{color:#08795b;background:#e3f7ef}.inventory-state.assigned{color:#245fb0;background:#e7f0fd}.inventory-state.wear{color:#a75c04;background:#fff0d2}.inventory-state.repair{color:#ac4c0b;background:#ffeadc}.inventory-state.offline{color:#b43240;background:#fdebed}.inventory-row-actions{display:flex;justify-content:flex-end;gap:2px}.inventory-row-actions .btn{padding:5px}.inventory-row-actions svg{width:15px;height:15px}.inventory-tree-children{display:none;background:#fafbfd}.inventory-tree-group.is-open .inventory-tree-children{display:block}.inventory-tool-row{min-height:54px;padding-left:50px}.inventory-tool-row:hover{background:#f3f7fc}.inventory-tool-row.has-issue{background:#fffafa}.inventory-tool-row[hidden]{display:none}.inventory-child-line{width:17px;height:25px;margin-top:-24px;border-left:1px solid #cdd8e4;border-bottom:1px solid #cdd8e4;border-radius:0 0 0 6px}.inventory-divider{display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:0 15px;border-bottom:1px solid #dfe7ef;color:#536982;background:#edf2f7}.inventory-divider span{display:flex;align-items:center;gap:7px;font-size:.66rem;font-weight:850;text-transform:uppercase;letter-spacing:.045em}.inventory-divider svg{width:15px;height:15px}.inventory-divider small{font-size:.6rem}.inventory-loose-tool{padding-left:50px}.inventory-group-empty{padding:18px 58px;border-bottom:1px solid #e5ebf2;color:#8b98a8;font-size:.67rem}.inventory-no-results{display:flex;align-items:center;flex-direction:column;padding:55px 20px;color:#8795a7;text-align:center}.inventory-no-results svg{width:28px;height:28px}.inventory-no-results strong{margin-top:10px;color:#334a66}.inventory-no-results span{margin-top:3px;font-size:.68rem}
@media(max-width:1000px){.inventory-explorer-head,.inventory-tree-row{grid-template-columns:minmax(270px,1.5fr) minmax(140px,.8fr) 110px 55px}.inventory-explorer-head>span:nth-child(3),.inventory-tree-row>:nth-child(3){display:none}.inventory-commandbar{align-items:stretch;flex-direction:column}.inventory-commandbar>label{max-width:none}.inventory-summary-strip{gap:14px}}
@media(max-width:700px){.inventory-header-actions{width:100%}.inventory-header-actions .btn{flex:1;justify-content:center}.inventory-summary-strip{display:grid;grid-template-columns:1fr 1fr;gap:9px}.inventory-summary-strip>i{display:none}.inventory-summary-strip>div{padding:7px}.inventory-explorer-head{display:none}.inventory-tree-row{grid-template-columns:minmax(0,1fr) auto;padding:11px}.inventory-tree-row>:nth-child(2),.inventory-tree-row>:nth-child(3){display:none}.inventory-tree-row>:nth-child(4){grid-column:2;grid-row:1}.inventory-tree-row>:nth-child(5){grid-column:2;grid-row:1;margin-top:34px}.inventory-tool-row,.inventory-loose-tool{padding-left:23px}.inventory-child-line{display:none}.inventory-commandbar .inventory-tabs{overflow-x:auto}.inventory-commandbar .inventory-tabs button{flex:0 0 auto}}

/* Fiche détaillée d'un coffre */
.toolbox-detail-header h1{margin:.25rem 0 .3rem;font-size:clamp(1.7rem,2.5vw,2.25rem);letter-spacing:-.04em}.toolbox-header-actions{display:flex;gap:8px}.toolbox-hero{display:grid;grid-template-columns:210px minmax(0,1fr);overflow:hidden;margin-bottom:18px;border:1px solid #dce5f0;border-radius:20px;background:#fff;box-shadow:0 9px 28px rgba(15,32,54,.07)}.toolbox-hero-visual{position:relative;display:grid;place-items:center;overflow:hidden;min-height:205px;color:#fff;background:linear-gradient(145deg,color-mix(in srgb,var(--toolbox-accent) 72%,#10243c),color-mix(in srgb,var(--toolbox-accent) 45%,#071b31))}.toolbox-hero-visual>svg{position:relative;z-index:1;width:78px;height:78px;stroke-width:1.25;filter:drop-shadow(0 8px 14px rgba(0,0,0,.25))}.toolbox-hero-visual>span{position:absolute;z-index:2;left:14px;bottom:13px;padding:5px 8px;border:1px solid rgba(255,255,255,.2);border-radius:99px;background:rgba(5,20,35,.25);font-size:.56rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.toolbox-hero-rings{position:absolute;width:180px;height:180px;border:1px solid rgba(255,255,255,.12);border-radius:50%;box-shadow:0 0 0 27px rgba(255,255,255,.035),0 0 0 57px rgba(255,255,255,.02)}.toolbox-hero-content{display:flex;min-width:0;flex-direction:column;padding:21px}.toolbox-hero-title{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.toolbox-hero-title>div>span{color:#7c8ca0;font-size:.59rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.toolbox-hero-title h2{margin:4px 0;color:#19304e;font-size:1.2rem}.toolbox-hero-title p{overflow:hidden;max-width:650px;margin:0;color:#7b8a9d;font-size:.72rem;white-space:nowrap;text-overflow:ellipsis}.toolbox-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:auto;padding-top:17px}.toolbox-kpis>div{display:flex;align-items:center;gap:8px;min-width:0;padding:9px;border:1px solid #e3eaf2;border-radius:10px;background:#f8fafc}.toolbox-kpis>div.has-warning{border-color:#f3d5a4;background:#fff9ee}.toolbox-kpis svg{width:16px;height:16px;flex:0 0 16px;color:#5a799c}.toolbox-kpis span{display:flex;min-width:0;flex-direction:column;color:#8795a7;font-size:.52rem;font-weight:750;text-transform:uppercase}.toolbox-kpis strong{overflow:hidden;margin-top:3px;color:#30445f;font-size:.65rem;text-transform:none;white-space:nowrap;text-overflow:ellipsis}.toolbox-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:17px;align-items:start}.toolbox-inventory-card,.toolbox-health,.toolbox-assignment,.toolbox-notes{overflow:hidden;border:1px solid #dce5f0;border-radius:17px;background:#fff;box-shadow:0 7px 22px rgba(15,32,54,.05)}.toolbox-inventory-card>header{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:65px;padding:11px 15px;border-bottom:1px solid #dfe7ef}.toolbox-inventory-card>header>div{display:flex;flex-direction:column}.toolbox-inventory-card>header span{color:#8190a3;font-size:.56rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.toolbox-inventory-card>header h2{margin:3px 0 0;color:#263c58;font-size:.83rem}.toolbox-inventory-card>header label{display:flex;align-items:center;gap:7px;min-width:260px;padding:0 10px;border:1px solid #dce5ee;border-radius:10px;color:#8291a3;background:#f8fafc}.toolbox-inventory-card>header label svg{width:15px;height:15px}.toolbox-inventory-card>header input{width:100%;height:34px;border:0;outline:0;background:transparent;font:inherit;font-size:.69rem}.toolbox-list-head,.toolbox-tool{display:grid;grid-template-columns:minmax(260px,1.4fr) minmax(120px,.65fr) 105px 68px;align-items:center;gap:9px}.toolbox-list-head{min-height:37px;padding:0 14px;color:#8190a3;background:#f4f7fa;border-bottom:1px solid #dce5ee;font-size:.54rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.toolbox-tool{min-height:61px;padding:7px 14px;border-bottom:1px solid #e5ebf2;transition:background .12s}.toolbox-tool:last-of-type{border-bottom:0}.toolbox-tool:hover{background:#f8fafd}.toolbox-tool.has-issue{box-shadow:inset 3px 0 #d95662;background:#fffafa}.toolbox-tool[hidden]{display:none}.toolbox-tool-name{display:flex;align-items:center;gap:9px;min-width:0}.toolbox-tool-name>span{display:grid;place-items:center;width:32px;height:32px;flex:0 0 32px;border-radius:9px;color:#5f7693;background:#edf2f7}.toolbox-tool-name svg{width:16px;height:16px}.toolbox-tool-name>div{display:flex;min-width:0;flex-direction:column}.toolbox-tool-name a{overflow:hidden;color:#214d83;font-size:.73rem;font-weight:800;white-space:nowrap;text-overflow:ellipsis}.toolbox-tool-name small{overflow:hidden;margin-top:3px;color:#8492a5;font-size:.58rem;white-space:nowrap;text-overflow:ellipsis}.toolbox-category{overflow:hidden;color:#66778e;font-size:.66rem;white-space:nowrap;text-overflow:ellipsis}.toolbox-sidebar{position:sticky;top:17px;display:flex;flex-direction:column;gap:12px}.toolbox-health,.toolbox-assignment,.toolbox-notes{padding:15px}.toolbox-health>header{display:flex;align-items:center;justify-content:space-between}.toolbox-health>header span,.toolbox-notes>span{color:#7f8ea2;font-size:.58rem;font-weight:800;letter-spacing:.055em;text-transform:uppercase}.toolbox-health>header strong{color:#08795b;font-size:.69rem}.toolbox-health-bar{overflow:hidden;height:7px;margin:12px 0;border-radius:99px;background:#e9eef4}.toolbox-health-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#12a37b,#45c99e)}.toolbox-health-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.toolbox-health-grid>div{display:flex;flex-direction:column;padding:9px;border-radius:9px;background:#f6f8fb}.toolbox-health-grid strong{color:#2c425e;font-size:.82rem}.toolbox-health-grid span{margin-top:2px;color:#8795a7;font-size:.56rem}.toolbox-assignment>header{display:flex;align-items:center;gap:9px;padding-bottom:12px;border-bottom:1px solid #e6ebf1}.toolbox-assignment>header>svg{width:19px;height:19px;color:#56789e}.toolbox-assignment>header>div{display:flex;flex-direction:column}.toolbox-assignment>header span{color:#8492a5;font-size:.56rem;font-weight:750;text-transform:uppercase}.toolbox-assignment>header strong{margin-top:3px;color:#2a405c;font-size:.74rem}.toolbox-assignment form{margin-top:12px}.toolbox-assignment select{margin-bottom:9px}.toolbox-notes p{margin:8px 0 0;color:#65768c;font-size:.66rem;line-height:1.55}.toolbox-empty{display:flex;align-items:center;flex-direction:column;padding:50px 20px;color:#8795a7;text-align:center}.toolbox-empty svg{width:27px;height:27px}.toolbox-empty strong{margin-top:9px;color:#334a66}.toolbox-empty span{margin-top:3px;font-size:.65rem}
@media(max-width:1050px){.toolbox-kpis{grid-template-columns:repeat(3,1fr)}.toolbox-detail-layout{grid-template-columns:1fr}.toolbox-sidebar{position:static;display:grid;grid-template-columns:1fr 1fr}.toolbox-notes{grid-column:1/-1}}
@media(max-width:750px){.toolbox-header-actions{width:100%}.toolbox-header-actions .btn{flex:1;justify-content:center}.toolbox-hero{grid-template-columns:1fr}.toolbox-hero-visual{min-height:165px}.toolbox-kpis{grid-template-columns:1fr 1fr}.toolbox-inventory-card>header{align-items:stretch;flex-direction:column}.toolbox-inventory-card>header label{min-width:0}.toolbox-list-head{display:none}.toolbox-tool{grid-template-columns:minmax(0,1fr) auto;padding:11px}.toolbox-tool>:nth-child(2){display:none}.toolbox-tool>:nth-child(3){grid-column:2;grid-row:1}.toolbox-tool>:nth-child(4){grid-column:2;grid-row:1;margin-top:34px}.toolbox-sidebar{display:flex}}

/* Fiche détaillée d'un outil */
.tool-detail-header h1{margin:.25rem 0 .3rem;font-size:clamp(1.7rem,2.5vw,2.25rem);letter-spacing:-.04em}.tool-condition-alert{display:flex;align-items:center;gap:11px;margin-bottom:13px;padding:11px 14px;border:1px solid #eed5a9;border-radius:12px;color:#9a5a08;background:#fff8eb}.tool-condition-alert.state-repair,.tool-condition-alert.state-offline{border-color:#efc5ca;color:#a93642;background:#fff3f4}.tool-condition-alert>svg{width:19px;height:19px}.tool-condition-alert>div{display:flex;flex-direction:column}.tool-condition-alert strong{font-size:.73rem}.tool-condition-alert span{margin-top:2px;font-size:.62rem}.tool-profile{display:grid;grid-template-columns:205px minmax(0,1fr);overflow:hidden;margin-bottom:17px;border:1px solid #dce5f0;border-radius:20px;background:#fff;box-shadow:0 9px 28px rgba(15,32,54,.07)}.tool-profile-visual{position:relative;display:grid;place-items:center;overflow:hidden;min-height:195px;color:#fff;background:linear-gradient(145deg,#173f72,#0b2541)}.tool-profile.state-wear .tool-profile-visual{background:linear-gradient(145deg,#9d620d,#49300d)}.tool-profile.state-repair .tool-profile-visual,.tool-profile.state-offline .tool-profile-visual{background:linear-gradient(145deg,#863540,#3a1c23)}.tool-profile-visual>div{position:absolute;width:170px;height:170px;border:1px solid rgba(255,255,255,.12);border-radius:50%;box-shadow:0 0 0 26px rgba(255,255,255,.035),0 0 0 55px rgba(255,255,255,.02)}.tool-profile-visual>svg{position:relative;z-index:1;width:76px;height:76px;stroke-width:1.25;filter:drop-shadow(0 8px 14px rgba(0,0,0,.25))}.tool-profile-visual>span{position:absolute;z-index:2;left:13px;bottom:12px;padding:5px 8px;border:1px solid rgba(255,255,255,.2);border-radius:99px;background:rgba(5,20,35,.25);font-size:.55rem;font-weight:800;text-transform:uppercase}.tool-profile-content{display:flex;min-width:0;flex-direction:column;padding:20px}.tool-profile-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.tool-profile-title>div>span{color:#8090a3;font-size:.58rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.tool-profile-title h2{margin:4px 0;color:#19304e;font-size:1.18rem}.tool-profile-title p{margin:0;color:#7c8c9f;font-size:.7rem}.tool-profile-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:auto;padding-top:17px}.tool-profile-kpis>div{display:flex;align-items:center;gap:8px;min-width:0;padding:10px;border:1px solid #e3eaf2;border-radius:10px;background:#f8fafc}.tool-profile-kpis svg{width:16px;height:16px;flex:0 0 16px;color:#5b789a}.tool-profile-kpis span{display:flex;min-width:0;flex-direction:column;color:#8795a7;font-size:.52rem;font-weight:750;text-transform:uppercase}.tool-profile-kpis strong{overflow:hidden;margin-top:3px;color:#30445f;font-size:.64rem;text-transform:none;white-space:nowrap;text-overflow:ellipsis}.tool-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:16px;align-items:start}.tool-information-card,.tool-location-card{overflow:hidden;border:1px solid #dce5f0;border-radius:17px;background:#fff;box-shadow:0 7px 22px rgba(15,32,54,.05)}.tool-information-card>header{display:flex;align-items:center;justify-content:space-between;padding:15px;border-bottom:1px solid #e4eaf1}.tool-information-card>header>div{display:flex;flex-direction:column}.tool-information-card>header span{color:#8291a4;font-size:.56rem;font-weight:800;text-transform:uppercase}.tool-information-card>header h2{margin:3px 0 0;color:#293f5b;font-size:.82rem}.tool-information-card>header>svg{width:20px;height:20px;color:#8092a7}.tool-information-grid{display:grid;grid-template-columns:1fr 1fr}.tool-information-grid>div{display:flex;flex-direction:column;padding:15px;border-right:1px solid #e7ecf2;border-bottom:1px solid #e7ecf2}.tool-information-grid>div:nth-child(even){border-right:0}.tool-information-grid span,.tool-notes>span{color:#8492a5;font-size:.56rem;font-weight:750;text-transform:uppercase}.tool-information-grid strong{margin-top:5px;color:#30445f;font-size:.72rem}.tool-information-grid .is-mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.04em}.tool-notes{padding:15px}.tool-notes p{margin:7px 0 0;color:#65768c;font-size:.68rem;line-height:1.55}.tool-location-card{position:sticky;top:17px;padding:15px}.tool-location-card>header{display:flex;align-items:center;gap:10px;padding-bottom:13px;border-bottom:1px solid #e5ebf2}.tool-location-icon{display:grid;place-items:center;width:39px;height:39px;border-radius:11px;color:#235fab;background:#e8f1fd}.tool-location-icon.is-inventaire{color:#08795b;background:#e4f8ef}.tool-location-icon.is-employe{color:#a45c04;background:#fff0d4}.tool-location-icon svg{width:19px;height:19px}.tool-location-card>header>div{display:flex;min-width:0;flex-direction:column}.tool-location-card>header small{color:#8795a7;font-size:.56rem;font-weight:750;text-transform:uppercase}.tool-location-card>header strong{overflow:hidden;margin-top:3px;color:#2b415d;font-size:.75rem;white-space:nowrap;text-overflow:ellipsis}.tool-location-card>header a{display:flex;align-items:center;gap:4px;margin-top:3px;color:#245da7;font-size:.61rem}.tool-location-card>header a svg{width:12px;height:12px}.tool-location-card form{margin-top:13px}.tool-assignment-separator{display:flex;align-items:center;margin:-2px 0 10px;color:#97a3b2;font-size:.58rem}.tool-assignment-separator:before,.tool-assignment-separator:after{content:"";height:1px;flex:1;background:#e4eaf1}.tool-assignment-separator span{padding:0 7px}.tool-location-actions{display:flex;gap:7px;flex-wrap:wrap}
@media(max-width:950px){.tool-profile-kpis{grid-template-columns:1fr 1fr}.tool-detail-layout{grid-template-columns:1fr}.tool-location-card{position:static}}
@media(max-width:650px){.tool-profile{grid-template-columns:1fr}.tool-profile-visual{min-height:160px}.tool-profile-title{flex-direction:column}.tool-information-grid{grid-template-columns:1fr}.tool-information-grid>div{border-right:0}.tool-location-actions .btn{flex:1;justify-content:center}}

/* Formulaires outils et coffres */
.inventory-form-header h1{margin:.25rem 0 .3rem;font-size:clamp(1.65rem,2.3vw,2.1rem);letter-spacing:-.035em}.inventory-form-layout{display:grid;grid-template-columns:minmax(0,760px) 275px;gap:18px;align-items:start}.inventory-editor-card{overflow:hidden;max-width:none!important;border-color:#dce5f0;border-radius:18px;box-shadow:0 8px 25px rgba(15,32,54,.06)}.inventory-editor-card .card-body{gap:.8rem!important;padding:18px!important}.inventory-editor-card .form-label{color:#405570;font-size:.69rem;font-weight:750}.inventory-editor-card .form-control{border-color:#d8e2ed;background:#fafcfe}.inventory-editor-card .form-control:focus{background:#fff;box-shadow:0 0 0 3px rgba(37,99,235,.09)}.inventory-editor-card .card-footer{position:sticky;z-index:5;bottom:0;padding:12px 15px!important;background:rgba(255,255,255,.94);backdrop-filter:blur(10px)}.inventory-form-preview{position:sticky;top:18px;display:flex;align-items:center;overflow:hidden;flex-direction:column;padding:22px 17px;border:1px solid #dce5f0;border-radius:18px;background:#fff;box-shadow:0 8px 25px rgba(15,32,54,.06);text-align:center}.inventory-form-preview:before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:var(--preview-color,#173f72)}.inventory-preview-icon{display:grid;place-items:center;width:72px;height:72px;margin-bottom:15px;border-radius:20px;color:#fff;background:linear-gradient(145deg,var(--preview-color,#173f72),color-mix(in srgb,var(--preview-color,#173f72) 60%,#091c31));box-shadow:0 12px 24px color-mix(in srgb,var(--preview-color,#173f72) 24%,transparent)}.inventory-preview-icon svg{width:34px;height:34px}.inventory-form-preview>span{color:#8795a7;font-size:.56rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.inventory-form-preview>strong{max-width:100%;overflow:hidden;margin-top:6px;color:#213956;font-size:.9rem;white-space:nowrap;text-overflow:ellipsis}.inventory-form-preview>small{max-width:100%;overflow:hidden;margin-top:4px;color:#7d8da1;font-size:.64rem;white-space:nowrap;text-overflow:ellipsis}.inventory-form-preview>i{margin-top:11px;font-style:normal}.inventory-form-preview>p{margin:16px 0 0;padding-top:14px;border-top:1px solid #e6ebf1;color:#718197;font-size:.65rem;line-height:1.55}.coffre-preview .inventory-preview-icon{background:linear-gradient(145deg,var(--preview-color),color-mix(in srgb,var(--preview-color) 55%,#091c31))}
@media(max-width:900px){.inventory-form-layout{grid-template-columns:1fr}.inventory-form-preview{position:static;display:grid;grid-template-columns:72px minmax(0,1fr);column-gap:14px;text-align:left}.inventory-form-preview .inventory-preview-icon{grid-row:1/5;margin:0}.inventory-form-preview>p{grid-column:1/-1;text-align:left}}
@media(max-width:650px){.inventory-editor-card .card-body>div[style*="grid-template-columns"]{grid-template-columns:1fr!important}.inventory-editor-card .card-footer{flex-wrap:wrap}.inventory-editor-card .card-footer .btn{flex:1;justify-content:center}.inventory-form-preview{display:flex;text-align:center}.inventory-form-preview .inventory-preview-icon{margin-bottom:12px}.inventory-form-preview>p{text-align:center}}

.pin-modal-overlay { display:none; position:fixed; inset:0; z-index:9999; background:rgba(0,0,0,.5); align-items:center; justify-content:center; }
.pin-modal-box { background:var(--card); border:1px solid var(--border); border-radius:16px; width:min(420px,94vw); max-height:82vh; display:flex; flex-direction:column; box-shadow:0 24px 64px rgba(0,0,0,.25); overflow:hidden; }
.pin-modal-head { display:flex; align-items:flex-start; justify-content:space-between; padding:1.25rem 1.25rem .75rem; border-bottom:1px solid var(--border); flex-shrink:0; }
.pin-modal-eyebrow { font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--text-muted); margin-bottom:.2rem; }
.pin-modal-title { margin:0; font-size:1rem; font-weight:800; }
.pin-modal-close { background:none; border:none; cursor:pointer; color:var(--text-muted); font-size:1.3rem; line-height:1; padding:.2rem; border-radius:6px; transition:background .15s; }
.pin-modal-close:hover { background:var(--bg); }
.pin-modal-hint { font-size:.78rem; color:var(--text-muted); margin:0; padding:.6rem 1.25rem; flex-shrink:0; }
.pin-modal-list { overflow-y:auto; padding:.4rem .75rem .6rem; display:flex; flex-direction:column; gap:.25rem; flex:1; background:var(--card); }
.pin-modal-footer { display:flex; gap:.5rem; justify-content:flex-end; padding:.9rem 1.25rem; border-top:1px solid var(--border); flex-shrink:0; }
.pin-btn-reset { padding:.4rem .9rem; background:none; border:1px solid var(--border); border-radius:8px; font-size:.8rem; cursor:pointer; color:var(--text-muted); }
.pin-btn-reset:hover { background:var(--bg); }
.pin-btn-save { padding:.4rem 1.1rem; background:#1a2744; color:#fff; border:none; border-radius:8px; font-size:.8rem; font-weight:600; cursor:pointer; }
.pin-btn-save:hover { background:#243563; }
.pin-row { display:flex; align-items:center; gap:.65rem; padding:.55rem .75rem; border-radius:9px; cursor:pointer; transition:background .12s; border:none; background:var(--card); }
.pin-row:hover { background:var(--bg); }
.pin-row-checked { background:rgba(26,39,68,.08); }
.pin-check { width:15px; height:15px; accent-color:#1a2744; cursor:pointer; flex-shrink:0; }
.pin-row-text strong { font-size:.83rem; display:block; font-weight:600; }
.pin-row-text small { color:var(--text-muted); font-size:.72rem; }

/* Fournisseurs — répertoire compact */
.supplier-page-header h1{margin:.22rem 0 .25rem;letter-spacing:-.035em}.supplier-eyebrow{display:flex;align-items:center;gap:7px;color:#2563eb;font-size:.69rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase}.supplier-eyebrow svg{width:15px;height:15px}.supplier-summary-strip{display:flex;align-items:center;gap:18px;margin-bottom:14px;padding:12px 16px;border:1px solid #dce5f0;border-radius:14px;background:#fff;box-shadow:0 4px 16px rgba(15,32,54,.04)}.supplier-summary-strip>div{display:flex;align-items:baseline;gap:7px;min-width:0}.supplier-summary-strip strong{color:#18314f;font-size:1.05rem}.supplier-summary-strip span{color:#7b8ba0;font-size:.65rem;font-weight:700;white-space:nowrap}.supplier-summary-strip i{width:1px;height:25px;background:#e4eaf1}.supplier-summary-strip .has-warning strong,.supplier-summary-strip .has-warning span{color:#b86805}.supplier-filter-panel{display:grid;grid-template-columns:minmax(250px,1fr) 190px 160px 145px auto auto;gap:8px;align-items:center;margin-bottom:14px;padding:10px;border:1px solid #dce5f0;border-radius:14px;background:#fff;box-shadow:0 4px 16px rgba(15,32,54,.04)}.supplier-filter-panel .form-control{height:38px;font-size:.69rem}.supplier-search{display:flex;align-items:center;gap:8px;height:38px;padding:0 11px;border:1px solid #d8e2ed;border-radius:9px;color:#7890aa;background:#f9fbfd}.supplier-search:focus-within{border-color:#8eb6ed;box-shadow:0 0 0 3px rgba(37,99,235,.08)}.supplier-search svg{width:16px;height:16px;flex:0 0 16px}.supplier-search input{width:100%;border:0;outline:0;color:#263b56;background:transparent;font:inherit;font-size:.7rem}.supplier-directory{overflow:hidden;border:1px solid #d9e3ed;border-radius:16px;background:#fff;box-shadow:0 7px 22px rgba(15,32,54,.05)}.supplier-directory-head,.supplier-row{display:grid;grid-template-columns:minmax(235px,1.25fr) minmax(130px,.7fr) minmax(190px,1fr) 90px 145px 115px 34px;align-items:center;gap:12px}.supplier-directory-head{min-height:39px;padding:0 14px;border-bottom:1px solid #dce5ee;color:#7e8ea2;background:#f4f7fa;font-size:.53rem;font-weight:850;letter-spacing:.065em;text-transform:uppercase}.supplier-row{position:relative;min-height:76px;padding:8px 14px;border-bottom:1px solid #e5ebf2;transition:background .15s}.supplier-row:last-child{border-bottom:0}.supplier-row:hover{background:#f8fafd}.supplier-row.has-warning{box-shadow:inset 3px 0 #e89924}.supplier-row.is-inactive{opacity:.58}.supplier-identity{display:flex;align-items:center;gap:10px;min-width:0}.supplier-avatar{display:grid;place-items:center;width:39px;height:39px;flex:0 0 39px;border-radius:11px;color:var(--supplier-accent);background:color-mix(in srgb,var(--supplier-accent) 12%,white);font-size:.82rem;font-weight:900}.supplier-identity>div{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;min-width:0}.supplier-identity a{overflow:hidden;color:#203b5c;font-size:.74rem;font-weight:850;white-space:nowrap;text-overflow:ellipsis}.supplier-identity small{grid-column:1/-1;overflow:hidden;margin-top:3px;color:#7e8da0;font-size:.6rem;white-space:nowrap;text-overflow:ellipsis}.supplier-status{margin-left:7px;padding:3px 6px;border-radius:99px;color:#07805d;background:#e3f7ef;font-size:.5rem;font-style:normal;font-weight:850;text-transform:uppercase}.supplier-status.is-offline{color:#a6404b;background:#fdebed}.supplier-specialty{display:inline-flex;padding:5px 8px;border-radius:99px;color:var(--supplier-accent);background:color-mix(in srgb,var(--supplier-accent) 10%,white);font-size:.59rem;font-weight:800}.supplier-contact{display:flex;min-width:0;flex-direction:column;gap:3px}.supplier-contact a,.supplier-contact span{display:flex;align-items:center;gap:5px;overflow:hidden;color:#60738c;font-size:.6rem;white-space:nowrap;text-overflow:ellipsis}.supplier-contact a{color:#285c99}.supplier-contact svg{width:12px;height:12px;flex:0 0 12px}.supplier-rate{color:#29435f;font-size:.69rem;font-weight:800}.supplier-activity{display:flex;min-width:0;flex-direction:column}.supplier-activity strong{color:#344a64;font-size:.66rem}.supplier-activity span{margin-top:2px;color:#8190a3;font-size:.58rem}.supplier-activity em{display:flex;align-items:center;gap:3px;margin-top:3px;color:#b86a06;font-size:.55rem;font-style:normal;font-weight:750}.supplier-activity em svg{width:11px;height:11px}.supplier-rating{display:flex;flex-direction:column}.supplier-rating>span{color:#f0a11a;font-size:.67rem;letter-spacing:.03em;white-space:nowrap}.supplier-rating>span i{color:#dce3ea;font-style:normal}.supplier-rating small{margin-top:2px;color:#8997a9;font-size:.53rem}.supplier-open{display:grid;place-items:center;width:29px;height:29px;border-radius:8px;color:#557393;background:#f0f4f8;transition:.15s}.supplier-open:hover{color:#fff;background:#2563eb;transform:translateX(2px)}.supplier-open svg{width:15px;height:15px}.supplier-empty{display:flex;align-items:center;flex-direction:column;padding:55px 20px;border:1px dashed #cbd7e4;border-radius:16px;color:#8594a7;background:#fff;text-align:center}.supplier-empty>svg{width:30px;height:30px}.supplier-empty strong{margin-top:10px;color:#30465f}.supplier-empty span{margin-top:4px;font-size:.67rem}
@media(max-width:1180px){.supplier-summary-strip{overflow-x:auto}.supplier-filter-panel{grid-template-columns:minmax(230px,1fr) repeat(3,minmax(130px,.55fr)) auto auto}.supplier-directory-head,.supplier-row{grid-template-columns:minmax(220px,1.2fr) minmax(120px,.7fr) minmax(170px,1fr) 125px 105px 30px}.supplier-directory-head>:nth-child(4),.supplier-row>:nth-child(4){display:none}}
@media(max-width:900px){.supplier-filter-panel{grid-template-columns:1fr 1fr}.supplier-search{grid-column:1/-1}.supplier-directory-head,.supplier-row{grid-template-columns:minmax(210px,1.2fr) minmax(120px,.7fr) 130px 30px}.supplier-directory-head>:nth-child(3),.supplier-row>:nth-child(3),.supplier-directory-head>:nth-child(6),.supplier-row>:nth-child(6){display:none}}
@media(max-width:620px){.supplier-filter-panel{grid-template-columns:1fr}.supplier-search{grid-column:auto}.supplier-summary-strip{gap:12px;padding:10px}.supplier-summary-strip>div{flex-direction:column;align-items:flex-start;gap:1px}.supplier-directory-head{display:none}.supplier-row{grid-template-columns:minmax(0,1fr) auto 30px;gap:8px;padding:12px}.supplier-row>:nth-child(2){grid-column:2}.supplier-row>:nth-child(5){grid-column:1/3}.supplier-row>:nth-child(7){grid-column:3;grid-row:1}.supplier-page-header .btn{width:100%;justify-content:center}}

/* Fournisseurs — tri et colonne ville */
.supplier-directory-head,.supplier-row{grid-template-columns:minmax(200px,1.15fr) minmax(115px,.65fr) minmax(105px,.55fr) minmax(165px,.9fr) 82px 125px 100px 32px}.supplier-directory-head a{display:flex;align-items:center;height:100%;color:inherit;text-decoration:none;transition:color .15s}.supplier-directory-head a:hover{color:#2563eb}.supplier-city{display:flex;align-items:center;gap:5px;min-width:0;color:#60738c;font-size:.62rem}.supplier-city svg{width:13px;height:13px;flex:0 0 13px}.supplier-city span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
@media(max-width:1180px){.supplier-directory-head,.supplier-row{grid-template-columns:minmax(200px,1.15fr) minmax(115px,.65fr) minmax(100px,.55fr) minmax(155px,.9fr) 120px 95px 30px}.supplier-directory-head>:nth-child(5),.supplier-row>:nth-child(5){display:none}}
@media(max-width:900px){.supplier-directory-head,.supplier-row{grid-template-columns:minmax(200px,1.2fr) minmax(110px,.65fr) minmax(100px,.55fr) 120px 30px}.supplier-directory-head>:nth-child(3),.supplier-row>:nth-child(3),.supplier-directory-head>:nth-child(6),.supplier-row>:nth-child(6){display:flex}.supplier-directory-head>:nth-child(4),.supplier-row>:nth-child(4),.supplier-directory-head>:nth-child(7),.supplier-row>:nth-child(7){display:none}.supplier-directory-head>:nth-child(8),.supplier-row>:nth-child(8){display:grid}}
@media(max-width:620px){.supplier-row{grid-template-columns:minmax(0,1fr) auto 30px}.supplier-row>:nth-child(2){grid-column:2}.supplier-row>:nth-child(3){display:flex;grid-column:1/3}.supplier-row>:nth-child(5),.supplier-row>:nth-child(7){display:none}.supplier-row>:nth-child(6){display:flex;grid-column:1/3}.supplier-row>:nth-child(8){grid-column:3;grid-row:1}}

/* Fournisseurs — fiche partenaire */
.supplier-detail-header h1{margin:.22rem 0 .25rem;letter-spacing:-.04em}.supplier-detail-actions{display:flex;gap:7px;flex-wrap:wrap}.supplier-profile{display:grid;grid-template-columns:190px minmax(0,1fr);overflow:hidden;margin-bottom:16px;border:1px solid #dce5f0;border-radius:20px;background:#fff;box-shadow:0 9px 28px rgba(15,32,54,.07)}.supplier-profile-visual{position:relative;display:grid;place-items:center;overflow:hidden;min-height:185px;color:#fff;background:linear-gradient(145deg,color-mix(in srgb,var(--supplier-accent) 72%,#10243c),color-mix(in srgb,var(--supplier-accent) 42%,#071b31))}.supplier-profile-visual>div{position:absolute;width:155px;height:155px;border:1px solid rgba(255,255,255,.13);border-radius:50%;box-shadow:0 0 0 24px rgba(255,255,255,.035),0 0 0 52px rgba(255,255,255,.02)}.supplier-profile-visual strong{position:relative;z-index:1;font-size:3.15rem;line-height:1;filter:drop-shadow(0 7px 12px rgba(0,0,0,.2))}.supplier-profile-visual span{position:absolute;z-index:2;bottom:13px;padding:5px 9px;border:1px solid rgba(255,255,255,.2);border-radius:99px;background:rgba(5,20,35,.25);font-size:.55rem;font-weight:850;text-transform:uppercase}.supplier-profile-body{display:flex;min-width:0;flex-direction:column;padding:20px}.supplier-profile-body>header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.supplier-profile-body>header>div>span{color:#8190a3;font-size:.59rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.supplier-profile-body h2{margin:4px 0;color:#19304e;font-size:1.25rem}.supplier-profile-rating{display:flex;align-items:center;gap:7px}.supplier-profile-rating b{color:#f0a11a;font-size:.78rem;letter-spacing:.04em}.supplier-profile-rating b i{color:#dce3ea;font-style:normal}.supplier-profile-rating small{color:#8795a7;font-size:.58rem}.supplier-profile-facts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:auto;padding-top:16px}.supplier-profile-facts>div{display:flex;align-items:center;gap:8px;min-width:0;padding:9px;border:1px solid #e3eaf2;border-radius:10px;background:#f8fafc}.supplier-profile-facts>div.has-warning{border-color:#f0d29d;background:#fff8eb}.supplier-profile-facts svg{width:16px;height:16px;flex:0 0 16px;color:#5b789a}.supplier-profile-facts span{display:flex;min-width:0;flex-direction:column;color:#8795a7;font-size:.52rem;font-weight:750;text-transform:uppercase}.supplier-profile-facts strong{overflow:hidden;margin-top:3px;color:#30445f;font-size:.65rem;text-transform:none;white-space:nowrap;text-overflow:ellipsis}.supplier-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:15px;align-items:start}.supplier-main-column,.supplier-detail-sidebar{display:flex;flex-direction:column;gap:14px}.supplier-panel,.supplier-cost-card,.supplier-contact-card,.supplier-notes-card{overflow:hidden;border:1px solid #dce5f0;border-radius:17px;background:#fff;box-shadow:0 6px 20px rgba(15,32,54,.05)}.supplier-panel>header{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:63px;padding:11px 15px;border-bottom:1px solid #dfe7ef}.supplier-panel>header>div{display:flex;flex-direction:column}.supplier-panel>header span{color:#8291a4;font-size:.55rem;font-weight:800;letter-spacing:.065em;text-transform:uppercase}.supplier-panel>header h2{margin:3px 0 0;color:#293f5b;font-size:.82rem}.supplier-panel>header>strong{color:#6f8197;font-size:.61rem}.supplier-contract-form{padding:15px;border-bottom:1px solid #dde6ef;background:#f7f9fc}.supplier-contract-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.supplier-contract-fields label{display:flex;flex-direction:column;gap:5px;color:#405570;font-size:.63rem;font-weight:750}.supplier-contract-fields .wide{grid-column:1/-1}.supplier-contract-fields .supplier-renew{align-items:center;flex-direction:row;padding-top:22px}.supplier-form-actions{display:flex;gap:7px;margin-top:12px}.supplier-table-wrap{overflow-x:auto}.supplier-data-table{width:100%;border-collapse:collapse;font-size:.66rem}.supplier-data-table thead{color:#7f8fa2;background:#f4f7fa;font-size:.52rem;text-transform:uppercase;letter-spacing:.06em}.supplier-data-table th{padding:10px 12px;text-align:left;white-space:nowrap}.supplier-data-table td{padding:10px 12px;border-top:1px solid #e5ebf2;color:#52657d;vertical-align:middle}.supplier-data-table tr.has-warning{box-shadow:inset 3px 0 #e89924;background:#fffbf3}.supplier-data-table td>strong,.supplier-data-table td>a{display:block;color:#28415e;font-size:.69rem;font-weight:800}.supplier-data-table td>a{color:#245fa8}.supplier-data-table td>span{display:block;margin-top:3px;color:#8795a7;font-size:.56rem}.supplier-data-table td>span em{color:#b96b06;font-style:normal;font-weight:800}.supplier-contract-status{display:inline-flex!important;margin:0!important;padding:4px 7px;border-radius:99px;color:#66778d!important;background:#edf2f7;font-size:.53rem!important;font-weight:850;text-transform:uppercase}.supplier-contract-status.is-actif{color:#08795b!important;background:#e4f8ef}.supplier-contract-status.is-en_attente{color:#a75e04!important;background:#fff0d4}.supplier-contract-status.is-expire{color:#b53643!important;background:#fdebed}.supplier-delete{display:grid;place-items:center;width:28px;height:28px;border:0;border-radius:8px;color:#ac4a55;background:transparent;cursor:pointer}.supplier-delete:hover{background:#fdebed}.supplier-delete svg{width:14px;height:14px}.supplier-panel-empty{padding:38px;color:#8795a7;font-size:.68rem;text-align:center}.supplier-detail-sidebar{position:sticky;top:16px}.supplier-cost-card{padding:17px;background:linear-gradient(145deg,#102f50,#164d79);color:#fff}.supplier-cost-card>span{font-size:.55rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;opacity:.7}.supplier-cost-card>strong{display:block;margin-top:7px;font-size:1.7rem;letter-spacing:-.04em}.supplier-cost-card>small{display:block;margin-top:2px;font-size:.59rem;opacity:.72}.supplier-cost-card>div{display:flex;align-items:center;justify-content:space-between;margin-top:15px;padding-top:12px;border-top:1px solid rgba(255,255,255,.15)}.supplier-cost-card>div b{font-size:.74rem}.supplier-cost-card>div span{font-size:.56rem;opacity:.72}.supplier-contact-card{padding:14px}.supplier-contact-card header{display:flex;align-items:center;gap:9px;padding-bottom:12px;border-bottom:1px solid #e5ebf2}.supplier-contact-card header>svg{width:18px;height:18px;color:#56789e}.supplier-contact-card header div{display:flex;flex-direction:column}.supplier-contact-card header span,.supplier-notes-card>span{color:#8593a5;font-size:.55rem;font-weight:800;text-transform:uppercase}.supplier-contact-card header strong{margin-top:2px;color:#2b425f;font-size:.7rem}.supplier-contact-card>a,.supplier-contact-card>div{display:flex;align-items:center;gap:9px;padding:10px 2px;border-bottom:1px solid #edf1f5;color:#58708c}.supplier-contact-card>a:last-child,.supplier-contact-card>div:last-child{border-bottom:0}.supplier-contact-card>a>svg,.supplier-contact-card>div>svg{width:15px;height:15px;flex:0 0 15px}.supplier-contact-card>a>span,.supplier-contact-card>div>span{display:flex;min-width:0;flex-direction:column;color:#8896a8;font-size:.52rem}.supplier-contact-card strong{overflow:hidden;margin-top:3px;color:#30445f;font-size:.62rem;white-space:nowrap;text-overflow:ellipsis}.supplier-notes-card{padding:15px}.supplier-notes-card p{margin:8px 0 0;color:#65768c;font-size:.64rem;line-height:1.55}.supplier-toggle{width:100%;justify-content:center;color:#8f4b54}.supplier-work-table .supplier-open{display:grid}
@media(max-width:1080px){.supplier-profile-facts{grid-template-columns:repeat(3,1fr)}.supplier-detail-layout{grid-template-columns:1fr}.supplier-detail-sidebar{position:static;display:grid;grid-template-columns:1fr 1fr}.supplier-detail-sidebar form{grid-column:1/-1}.supplier-notes-card{grid-column:1/-1}}
@media(max-width:720px){.supplier-detail-actions{width:100%}.supplier-detail-actions .btn{flex:1;justify-content:center}.supplier-profile{grid-template-columns:1fr}.supplier-profile-visual{min-height:145px}.supplier-profile-facts{grid-template-columns:1fr 1fr}.supplier-contract-fields{grid-template-columns:1fr}.supplier-contract-fields .wide{grid-column:auto}.supplier-detail-sidebar{display:flex}.supplier-data-table th,.supplier-data-table td{padding:9px}.supplier-work-table th:nth-child(2),.supplier-work-table td:nth-child(2){display:none}}
.supplier-cost-card>.supplier-cost-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px}.supplier-cost-metrics>div{display:flex;align-items:flex-start;flex-direction:column;gap:3px;padding:8px 9px;border-radius:9px;background:rgba(255,255,255,.08)}.supplier-cost-metrics>div b{font-size:.76rem}.supplier-cost-metrics>div span{font-size:.54rem}

/* Fournisseurs — formulaire et aperçu */
.supplier-form-header h1{margin:.22rem 0 .25rem;letter-spacing:-.035em}.supplier-editor-layout{display:grid;grid-template-columns:minmax(0,780px) 285px;gap:18px;align-items:start}.supplier-editor{display:flex;min-width:0;flex-direction:column;gap:13px}.supplier-form-section{overflow:hidden;border:1px solid #dce5f0;border-radius:17px;background:#fff;box-shadow:0 6px 20px rgba(15,32,54,.05)}.supplier-form-section>header{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid #e2e9f0}.supplier-form-section>header>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;color:#285fa2;background:#eaf1fb}.supplier-form-section>header>span svg{width:17px;height:17px}.supplier-form-section>header>div{display:flex;flex-direction:column}.supplier-form-section>header small{color:#8997a9;font-size:.53rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.supplier-form-section>header h2{margin:3px 0 0;color:#2a405b;font-size:.78rem}.supplier-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px}.supplier-form-grid>label{display:flex;min-width:0;flex-direction:column;gap:6px}.supplier-form-grid>label>span,.supplier-rating-field>span{color:#405570;font-size:.63rem;font-weight:750}.supplier-form-grid>label>span b{color:#d04a56}.supplier-form-grid .wide{grid-column:1/-1}.supplier-form-grid .form-control{border-color:#d8e2ed;background:#fafcfe}.supplier-form-grid .form-control:focus{background:#fff;box-shadow:0 0 0 3px rgba(37,99,235,.09)}.supplier-specialty-preview{display:block;height:4px;border-radius:99px;background:#64748b;transition:background .2s}.supplier-rating-field{display:flex;flex-direction:column;gap:7px}.supplier-rating-field>div{display:flex;align-items:center;gap:12px}.supplier-stars{display:flex;gap:2px}.supplier-stars button{padding:0;border:0;color:#d6dee7;background:transparent;font-size:1.55rem;line-height:1;cursor:pointer;transition:color .1s,transform .1s}.supplier-stars button:hover{transform:translateY(-1px)}.supplier-stars button.is-active{color:#efa018}.supplier-rating-field strong{color:#728399;font-size:.62rem}.supplier-notes-field{padding:16px}.supplier-notes-field textarea{resize:vertical}.supplier-notes-field small{display:block;margin-top:6px;color:#8b98a9;font-size:.57rem}.supplier-editor-actions{position:sticky;z-index:5;bottom:0;display:flex;justify-content:flex-end;gap:8px;padding:12px 14px;border:1px solid #dce5f0;border-radius:14px;background:rgba(255,255,255,.94);box-shadow:0 8px 24px rgba(15,32,54,.08);backdrop-filter:blur(10px)}.supplier-live-preview{position:sticky;top:17px;display:flex;align-items:center;overflow:hidden;flex-direction:column;padding:20px 16px;border:1px solid #dce5f0;border-radius:19px;background:#fff;box-shadow:0 8px 25px rgba(15,32,54,.07);text-align:center}.supplier-live-preview:before{content:"";position:absolute;inset:0 0 auto;height:5px;background:var(--preview-color)}.supplier-preview-label{color:#8997a9;font-size:.54rem;font-weight:850;letter-spacing:.075em;text-transform:uppercase}.supplier-preview-avatar{position:relative;display:grid;place-items:center;overflow:hidden;width:76px;height:76px;margin-top:15px;border-radius:22px;color:#fff;background:linear-gradient(145deg,var(--preview-color),color-mix(in srgb,var(--preview-color) 50%,#0b2037));box-shadow:0 12px 23px color-mix(in srgb,var(--preview-color) 23%,transparent)}.supplier-preview-avatar i{position:absolute;width:55px;height:55px;border:1px solid rgba(255,255,255,.16);border-radius:50%}.supplier-preview-avatar strong{position:relative;z-index:1;font-size:1.8rem}.supplier-live-preview h2{max-width:100%;overflow:hidden;margin:13px 0 0;color:#223a57;font-size:.92rem;white-space:nowrap;text-overflow:ellipsis}.supplier-live-preview>p{max-width:100%;overflow:hidden;margin:4px 0 0;color:#7c8c9f;font-size:.63rem;white-space:nowrap;text-overflow:ellipsis}.supplier-preview-specialty{margin-top:10px;padding:5px 8px;border-radius:99px;color:var(--preview-color);background:color-mix(in srgb,var(--preview-color) 10%,white);font-size:.56rem;font-weight:850}.supplier-preview-facts{width:100%;margin-top:17px;border-top:1px solid #e4eaf1}.supplier-preview-facts>div{display:flex;align-items:center;gap:9px;padding:10px 2px;border-bottom:1px solid #edf1f5;text-align:left}.supplier-preview-facts svg{width:15px;height:15px;flex:0 0 15px;color:#6883a2}.supplier-preview-facts span{display:flex;min-width:0;flex-direction:column;color:#8997a8;font-size:.52rem}.supplier-preview-facts strong{overflow:hidden;margin-top:3px;color:#30445f;font-size:.62rem;white-space:nowrap;text-overflow:ellipsis}.supplier-preview-hint{display:flex;align-items:flex-start;gap:6px;margin-top:14px;color:#8997a8;font-size:.55rem;line-height:1.45;text-align:left}.supplier-preview-hint svg{width:13px;height:13px;flex:0 0 13px}
@media(max-width:950px){.supplier-editor-layout{grid-template-columns:1fr}.supplier-live-preview{position:static;display:grid;grid-template-columns:76px minmax(0,1fr);column-gap:14px;text-align:left}.supplier-preview-label{grid-column:1/-1;margin-bottom:12px}.supplier-preview-avatar{grid-row:2/6;margin:0}.supplier-live-preview h2,.supplier-live-preview>p{margin-top:2px}.supplier-preview-specialty{justify-self:start;margin-top:5px}.supplier-preview-facts{grid-column:1/-1}.supplier-preview-hint{grid-column:1/-1}}
@media(max-width:620px){.supplier-form-grid{grid-template-columns:1fr}.supplier-form-grid .wide{grid-column:auto}.supplier-editor-actions{flex-wrap:wrap}.supplier-editor-actions .btn{flex:1;justify-content:center}.supplier-live-preview{display:flex;text-align:center}.supplier-preview-avatar{margin-top:12px}.supplier-preview-hint{text-align:center}}

/* Clés — registre compact */
.key-page-header h1{margin:.22rem 0 .25rem;letter-spacing:-.04em}.key-eyebrow{display:flex;align-items:center;gap:7px;color:#2563eb;font-size:.69rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase}.key-eyebrow svg{width:15px;height:15px}.key-header-actions{display:flex;gap:7px}.key-summary-strip{display:flex;align-items:center;gap:15px;margin-bottom:13px;padding:11px 15px;border:1px solid #dce5f0;border-radius:14px;background:#fff;box-shadow:0 4px 16px rgba(15,32,54,.04)}.key-summary-strip>div{display:grid;grid-template-columns:34px auto;grid-template-rows:auto auto;align-items:center;column-gap:9px;min-width:120px}.key-summary-strip>div>span{display:grid;grid-row:1/3;place-items:center;width:34px;height:34px;border-radius:10px}.key-summary-strip svg{width:17px;height:17px}.key-summary-strip strong{color:#1d3654;font-size:.97rem;line-height:1}.key-summary-strip small{margin-top:3px;color:#7f8fa2;font-size:.57rem}.key-summary-strip>i{width:1px;height:28px;background:#e4eaf1}.key-summary-strip .is-navy{color:#173f72;background:#e8eff8}.key-summary-strip .is-green{color:#08795b;background:#e4f8ef}.key-summary-strip .is-blue{color:#2563eb;background:#e8f1ff}.key-summary-strip .is-orange{color:#b96a06;background:#fff0d4}.key-summary-strip .is-red{color:#b93c48;background:#fdebed}.key-summary-strip .has-alert strong,.key-summary-strip .has-alert small{color:#b23744}.key-commandbar{display:grid;grid-template-columns:minmax(270px,1fr) 170px 150px 155px auto auto;gap:8px;align-items:center;margin-bottom:11px;padding:10px;border:1px solid #dce5f0;border-radius:14px;background:#fff;box-shadow:0 4px 16px rgba(15,32,54,.04)}.key-commandbar .form-control{height:38px;font-size:.68rem}.key-search{display:flex;align-items:center;gap:8px;height:38px;padding:0 11px;border:1px solid #d8e2ed;border-radius:9px;color:#7890aa;background:#f9fbfd}.key-search:focus-within{border-color:#8eb6ed;box-shadow:0 0 0 3px rgba(37,99,235,.08)}.key-search svg{width:16px;height:16px}.key-search input{width:100%;border:0;outline:0;background:transparent;font:inherit;font-size:.68rem}.key-city-legend{display:flex;align-items:center;gap:7px;overflow-x:auto;margin-bottom:11px;padding:0 2px;white-space:nowrap}.key-city-legend>span{color:#8493a5;font-size:.55rem;font-weight:800;text-transform:uppercase}.key-city-legend i{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:99px;color:#65768c;background:#f3f6f9;font-size:.55rem;font-style:normal}.key-city-legend b{width:7px;height:7px;border-radius:50%;background:var(--city-color)}.key-registry{overflow:hidden;border:1px solid #d9e3ed;border-radius:16px;background:#fff;box-shadow:0 7px 22px rgba(15,32,54,.05)}.key-registry-head,.key-registry-row{display:grid;grid-template-columns:minmax(145px,.75fr) minmax(120px,.65fr) minmax(210px,1.15fr) minmax(105px,.55fr) minmax(180px,1fr) 105px 65px;align-items:center;gap:11px}.key-registry-head{min-height:39px;padding:0 14px;color:#7e8ea2;background:#f4f7fa;font-size:.52rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.key-registry-head a{display:flex;align-items:center;height:100%;color:inherit}.key-registry-head a:hover{color:#2563eb}.key-registry-row{position:relative;min-height:69px;padding:7px 14px;border-top:1px solid #e5ebf2;transition:background .14s}.key-registry-row:hover{background:#f8fafd}.key-registry-row.status-perdue{box-shadow:inset 3px 0 #d64c58;background:#fffafb}.key-identity{display:flex;align-items:center;gap:9px;min-width:0}.key-identity>span{display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;border-radius:10px;color:var(--key-color);background:color-mix(in srgb,var(--key-color) 11%,white)}.key-identity svg{width:18px;height:18px}.key-identity>div,.key-location,.key-holder>div{display:flex;min-width:0;flex-direction:column}.key-identity a{overflow:hidden;color:#214b7f;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.69rem;font-weight:850;white-space:nowrap;text-overflow:ellipsis}.key-identity small,.key-location span,.key-holder small{margin-top:3px;color:#8a98aa;font-size:.53rem}.key-type{display:inline-flex;padding:5px 7px;border-radius:99px;color:var(--key-color);background:color-mix(in srgb,var(--key-color) 10%,white);font-size:.55rem;font-weight:800}.key-location a,.key-location strong{overflow:hidden;color:#304761;font-size:.65rem;font-weight:800;white-space:nowrap;text-overflow:ellipsis}.key-city{display:flex;align-items:center;gap:6px;min-width:0;color:#60738c;font-size:.6rem}.key-city i{width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:var(--city-color)}.key-city span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.key-holder{display:flex;align-items:center;gap:8px;min-width:0}.key-holder>span{display:grid;place-items:center;width:30px;height:30px;flex:0 0 30px;border-radius:9px;color:#5d7695;background:#edf2f7}.key-holder.is-none>span{color:#07805d;background:#e4f8ef}.key-holder svg{width:15px;height:15px}.key-holder a,.key-holder strong{overflow:hidden;color:#2d4b6c;font-size:.62rem;font-weight:800;white-space:nowrap;text-overflow:ellipsis}.key-status{display:inline-flex;padding:5px 7px;border-radius:99px;color:#52657c;background:#edf2f7;font-size:.53rem;font-weight:850;text-transform:uppercase}.key-status.is-disponible{color:#08795b;background:#e4f8ef}.key-status.is-attribuee{color:#255fa9;background:#e8f1ff}.key-status.is-perdue{color:#b53643;background:#fdebed}.key-status.is-copie{color:#a85e04;background:#fff0d4}.key-row-actions{display:flex;justify-content:flex-end;gap:4px}.key-row-actions a{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;color:#607b9a;background:#f1f5f8}.key-row-actions a:hover{color:#fff;background:#2563eb}.key-row-actions svg{width:14px;height:14px}.key-empty{display:flex;align-items:center;flex-direction:column;padding:55px 20px;border:1px dashed #cbd7e4;border-radius:16px;color:#8594a7;background:#fff;text-align:center}.key-empty>svg{width:32px;height:32px}.key-empty strong{margin-top:10px;color:#30465f}.key-empty span{margin:4px 0 13px;font-size:.65rem}
@media(max-width:1100px){.key-summary-strip{overflow-x:auto}.key-commandbar{grid-template-columns:minmax(230px,1fr) repeat(3,minmax(125px,.55fr)) auto auto}.key-registry-head,.key-registry-row{grid-template-columns:minmax(140px,.75fr) minmax(110px,.6fr) minmax(190px,1fr) minmax(165px,.9fr) 100px 60px}.key-registry-head>:nth-child(4),.key-registry-row>:nth-child(4){display:none}}
@media(max-width:820px){.key-commandbar{grid-template-columns:1fr 1fr}.key-search{grid-column:1/-1}.key-registry-head,.key-registry-row{grid-template-columns:minmax(140px,.8fr) minmax(175px,1fr) minmax(150px,.8fr) 60px}.key-registry-head>:nth-child(2),.key-registry-row>:nth-child(2),.key-registry-head>:nth-child(6),.key-registry-row>:nth-child(6){display:none}}
@media(max-width:580px){.key-header-actions{width:100%}.key-header-actions .btn{flex:1;justify-content:center}.key-commandbar{grid-template-columns:1fr}.key-search{grid-column:auto}.key-summary-strip>div{min-width:105px}.key-registry-head{display:none}.key-registry-row{grid-template-columns:minmax(0,1fr) auto 60px;gap:8px;padding:11px}.key-registry-row>:nth-child(3){grid-column:1/3}.key-registry-row>:nth-child(5){grid-column:1/3}.key-registry-row>:nth-child(7){grid-column:3;grid-row:1}.key-city-legend{display:none}}

/* Clés — fiche détaillée */
.key-detail-header h1{margin:.22rem 0 .25rem;letter-spacing:-.04em}.key-detail-actions{display:flex;gap:7px}.key-profile{display:grid;grid-template-columns:185px minmax(0,1fr);overflow:hidden;margin-bottom:15px;border:1px solid #dce5f0;border-radius:20px;background:#fff;box-shadow:0 9px 28px rgba(15,32,54,.07)}.key-profile-visual{position:relative;display:grid;place-items:center;overflow:hidden;min-height:175px;color:#fff;background:linear-gradient(145deg,color-mix(in srgb,var(--key-color) 72%,#10243c),color-mix(in srgb,var(--city-color) 45%,#071b31))}.key-profile.status-perdue .key-profile-visual{background:linear-gradient(145deg,#9c3542,#421d24)}.key-profile-visual>i{position:absolute;width:150px;height:150px;border:1px solid rgba(255,255,255,.13);border-radius:50%;box-shadow:0 0 0 24px rgba(255,255,255,.035),0 0 0 50px rgba(255,255,255,.02)}.key-profile-visual>svg{position:relative;z-index:1;width:66px;height:66px;stroke-width:1.3;filter:drop-shadow(0 8px 13px rgba(0,0,0,.25))}.key-profile-visual>span{position:absolute;z-index:2;bottom:12px;padding:5px 8px;border:1px solid rgba(255,255,255,.2);border-radius:99px;background:rgba(5,20,35,.25);font-size:.54rem;font-weight:850;text-transform:uppercase}.key-profile-body{display:flex;min-width:0;flex-direction:column;padding:19px}.key-profile-body>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.key-profile-body>header small{color:#8795a7;font-size:.54rem;font-weight:800;text-transform:uppercase}.key-profile-body h2{margin:4px 0;color:#19304e;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1.25rem}.key-profile-facts{display:grid;grid-template-columns:1.4fr .7fr 1fr .7fr;gap:8px;margin-top:auto;padding-top:15px}.key-profile-facts>div{display:flex;align-items:center;gap:8px;min-width:0;padding:9px;border:1px solid #e3eaf2;border-radius:10px;background:#f8fafc}.key-profile-facts svg{width:16px;height:16px;flex:0 0 16px;color:#5b789a}.key-profile-facts span{display:flex;min-width:0;flex-direction:column;color:#8795a7;font-size:.51rem;font-weight:750;text-transform:uppercase}.key-profile-facts strong{overflow:hidden;margin-top:3px;color:#30445f;font-size:.63rem;text-transform:none;white-space:nowrap;text-overflow:ellipsis}.key-duration-alert{display:flex;align-items:center;gap:11px;margin-bottom:13px;padding:11px 14px;border:1px solid #eed5a9;border-radius:12px;color:#9a5a08;background:#fff8eb}.key-duration-alert>svg{width:18px;height:18px}.key-duration-alert>div{display:flex;flex-direction:column}.key-duration-alert strong{font-size:.7rem}.key-duration-alert span{margin-top:2px;font-size:.59rem}.key-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 295px;gap:15px;align-items:start}.key-detail-main,.key-operation-panel{display:flex;flex-direction:column;gap:13px}.key-history-panel,.key-notes-panel,.key-current-holder,.key-action-card{overflow:hidden;border:1px solid #dce5f0;border-radius:17px;background:#fff;box-shadow:0 6px 20px rgba(15,32,54,.05)}.key-history-panel>header{display:flex;align-items:center;justify-content:space-between;min-height:62px;padding:11px 15px;border-bottom:1px solid #e2e9f0}.key-history-panel>header>div{display:flex;flex-direction:column}.key-history-panel>header span,.key-notes-panel>span{color:#8492a5;font-size:.54rem;font-weight:800;text-transform:uppercase}.key-history-panel>header h2{margin:3px 0 0;color:#293f5b;font-size:.8rem}.key-history-panel>header>strong{color:#72849a;font-size:.59rem}.key-timeline{padding:8px 16px}.key-timeline article{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;padding:10px 0}.key-timeline article:not(:last-child):before{content:"";position:absolute;top:43px;bottom:-10px;left:16px;width:1px;background:#dfe6ee}.key-timeline-dot{z-index:1;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;color:#6d829d;background:#edf2f7}.key-timeline article.is-current .key-timeline-dot{color:#fff;background:#2563eb}.key-timeline-dot svg{width:16px;height:16px}.key-timeline article>div{min-width:0;padding:2px 0 8px;border-bottom:1px solid #edf1f5}.key-timeline article:last-child>div{border-bottom:0}.key-timeline article header{display:flex;align-items:center;justify-content:space-between;gap:10px}.key-timeline article header strong{color:#2c425d;font-size:.69rem}.key-timeline article header em{padding:4px 7px;border-radius:99px;color:#255fa9;background:#e8f1ff;font-size:.5rem;font-style:normal;font-weight:800}.key-timeline p{display:flex;align-items:center;gap:13px;margin:7px 0 0;color:#718298;font-size:.57rem}.key-timeline p span{display:flex;align-items:center;gap:4px}.key-timeline p svg{width:12px;height:12px}.key-timeline p b{margin-left:auto;color:#4b617b}.key-timeline article small{display:block;margin-top:7px;color:#8493a5;font-size:.58rem}.key-panel-empty{padding:42px;color:#8795a7;font-size:.65rem;text-align:center}.key-notes-panel{padding:15px}.key-notes-panel p{margin:8px 0 0;color:#65768c;font-size:.64rem;line-height:1.55}.key-operation-panel{position:sticky;top:16px}.key-current-holder>header{display:flex;align-items:center;gap:9px;padding:13px;border-bottom:1px solid #e4eaf1}.key-current-holder>header>span{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;color:#2563eb;background:#e8f1ff}.key-current-holder.is-office>header>span{color:#08795b;background:#e4f8ef}.key-current-holder>header svg{width:17px;height:17px}.key-current-holder>header>div{display:flex;flex-direction:column}.key-current-holder>header small{color:#8795a7;font-size:.51rem;font-weight:800;text-transform:uppercase}.key-current-holder>header h2{margin:3px 0 0;color:#2b425e;font-size:.7rem}.key-holder-record{display:flex;flex-direction:column;padding:14px}.key-holder-record>span{color:#8795a7;font-size:.52rem;font-weight:750;text-transform:uppercase}.key-holder-record>a,.key-holder-record>strong{margin-top:5px;color:#245c9f;font-size:.72rem;font-weight:850}.key-holder-record>small{margin-top:4px;color:#8392a5;font-size:.58rem}.key-holder-record>.key-contact-link{display:flex;align-items:center;gap:5px;margin-top:11px;padding-top:10px;border-top:1px solid #e8edf2;color:#4c6888;font-size:.6rem}.key-contact-link svg{width:13px;height:13px}.key-action-card>header{display:flex;flex-direction:column;padding:13px;border-bottom:1px solid #e5ebf2}.key-action-card>header span{color:#8795a7;font-size:.51rem;font-weight:800;text-transform:uppercase}.key-action-card>header strong{margin-top:3px;color:#2c425e;font-size:.69rem}.key-action-card form{display:flex;flex-direction:column;gap:9px;padding:13px}.key-action-card label{display:flex;flex-direction:column;gap:5px;color:#52677f;font-size:.58rem;font-weight:700}.key-action-card .form-control{height:36px;font-size:.63rem}.key-action-card button{justify-content:center}.key-lost-action{width:100%;justify-content:center;color:#aa3d49;background:#fff}
@media(max-width:980px){.key-profile-facts{grid-template-columns:1fr 1fr}.key-detail-layout{grid-template-columns:1fr}.key-operation-panel{position:static;display:grid;grid-template-columns:1fr 1fr}.key-operation-panel>form{grid-column:1/-1}}
@media(max-width:650px){.key-detail-actions{width:100%}.key-detail-actions .btn{flex:1;justify-content:center}.key-profile{grid-template-columns:1fr}.key-profile-visual{min-height:145px}.key-profile-facts{grid-template-columns:1fr 1fr}.key-operation-panel{display:flex}.key-timeline p{align-items:flex-start;flex-direction:column;gap:5px}.key-timeline p b{margin-left:0}}

/* Clés — filtres rapides par ville */
/* Clés — formulaire et aperçu */
.key-form-header h1{margin:.22rem 0 .25rem;letter-spacing:-.04em}.key-editor-layout{display:grid;grid-template-columns:minmax(0,780px) 285px;gap:18px;align-items:start}.key-editor-main{display:flex;min-width:0;flex-direction:column;gap:13px}.key-form-section{overflow:hidden;border:1px solid #dce5f0;border-radius:17px;background:#fff;box-shadow:0 6px 20px rgba(15,32,54,.05)}.key-form-section>header{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid #e2e9f0}.key-form-section>header>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;color:#285fa2;background:#eaf1fb}.key-form-section>header>span svg{width:17px;height:17px}.key-form-section>header>div{display:flex;flex-direction:column}.key-form-section>header small{color:#8997a9;font-size:.53rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.key-form-section>header h2{margin:3px 0 0;color:#2a405b;font-size:.78rem}.key-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;padding:16px}.key-form-grid>label{display:flex;min-width:0;flex-direction:column;gap:6px}.key-form-grid>label>span,.key-type-field>span,.key-color-field>div:first-child>span{color:#405570;font-size:.63rem;font-weight:750}.key-form-grid>label>span b,.key-type-field>span b{color:#cf4653}.key-form-grid>label>small{color:#8a98aa;font-size:.55rem;line-height:1.4}.key-form-grid .wide{grid-column:1/-1}.key-form-grid .form-control{border-color:#d8e2ed;background:#fafcfe}.key-number-input{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-weight:850;letter-spacing:.04em}.key-type-field{display:flex;flex-direction:column;gap:8px}.key-type-options{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.key-type-options label{display:flex;align-items:center;gap:8px;min-width:0;padding:9px;border:1px solid #dce5ee;border-radius:10px;color:#738398;background:#fafcfe;cursor:pointer;transition:.15s}.key-type-options label:hover{border-color:color-mix(in srgb,var(--type-color) 50%,#dce5ee)}.key-type-options label.is-selected{border-color:var(--type-color);color:var(--type-color);background:color-mix(in srgb,var(--type-color) 8%,white);box-shadow:0 2px 7px color-mix(in srgb,var(--type-color) 12%,transparent)}.key-type-options input{position:absolute;opacity:0;pointer-events:none}.key-type-options i{display:grid;place-items:center;width:27px;height:27px;flex:0 0 27px;border-radius:8px;background:#edf2f7;font-style:normal}.key-type-options .is-selected i{background:color-mix(in srgb,var(--type-color) 13%,white)}.key-type-options svg{width:14px;height:14px}.key-type-options strong{overflow:hidden;font-size:.58rem;white-space:nowrap;text-overflow:ellipsis}.key-color-field{padding:12px;border:1px solid #e1e8f0;border-radius:12px;background:#f8fafc}.key-color-field>div:first-child{display:flex;align-items:center;justify-content:space-between}.key-color-field>div:first-child small{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#7c8c9f;font-size:.58rem}.key-color-controls{display:flex;align-items:center;gap:10px;margin-top:10px}.key-color-controls>input{width:42px;height:34px;padding:2px;border:1px solid #d5dfe9;border-radius:8px;background:#fff;cursor:pointer}.key-color-palette{display:flex;gap:6px;flex-wrap:wrap}.key-color-palette button{width:22px;height:22px;padding:0;border:2px solid #fff;border-radius:50%;outline:1px solid transparent;background:var(--swatch);cursor:pointer;transition:.12s}.key-color-palette button:hover{transform:scale(1.13)}.key-color-palette button.is-selected{outline-color:var(--swatch);transform:scale(1.08)}.key-color-field>p{display:flex;align-items:center;gap:5px;margin:10px 0 0;color:#718298;font-size:.56rem}.key-color-field>p svg{width:13px;height:13px}.key-notes-editor{padding:16px}.key-notes-editor textarea{resize:vertical}.key-notes-editor small{display:block;margin-top:6px;color:#8997a9;font-size:.55rem}.key-editor-actions{position:sticky;z-index:5;bottom:0;display:flex;justify-content:flex-end;gap:8px;padding:12px 14px;border:1px solid #dce5f0;border-radius:14px;background:rgba(255,255,255,.94);box-shadow:0 8px 24px rgba(15,32,54,.08);backdrop-filter:blur(10px)}.key-live-preview{position:sticky;top:17px;display:flex;align-items:center;overflow:hidden;flex-direction:column;padding:20px 16px;border:1px solid #dce5f0;border-radius:19px;background:#fff;box-shadow:0 8px 25px rgba(15,32,54,.07);text-align:center}.key-live-preview:before{content:"";position:absolute;inset:0 0 auto;height:5px;background:var(--preview-color)}.key-live-preview>span{color:#8997a9;font-size:.54rem;font-weight:850;text-transform:uppercase;letter-spacing:.07em}.key-preview-visual{position:relative;display:grid;place-items:center;overflow:hidden;width:82px;height:82px;margin-top:15px;border-radius:23px;color:#fff;background:linear-gradient(145deg,var(--preview-color),color-mix(in srgb,var(--preview-color) 48%,#0a2037));box-shadow:0 12px 23px color-mix(in srgb,var(--preview-color) 23%,transparent)}.key-preview-visual i{position:absolute;width:61px;height:61px;border:1px solid rgba(255,255,255,.16);border-radius:50%}.key-preview-visual svg{position:relative;z-index:1;width:37px;height:37px}.key-live-preview h2{max-width:100%;overflow:hidden;margin:13px 0 0;color:#223a57;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.9rem;white-space:nowrap;text-overflow:ellipsis}.key-live-preview>em{margin-top:7px;padding:5px 8px;border-radius:99px;color:var(--preview-color);background:color-mix(in srgb,var(--preview-color) 10%,white);font-size:.54rem;font-style:normal;font-weight:800}.key-preview-details{width:100%;margin-top:16px;border-top:1px solid #e4eaf1}.key-preview-details>div{display:flex;align-items:center;gap:9px;padding:10px 2px;border-bottom:1px solid #edf1f5;text-align:left}.key-preview-details svg{width:15px;height:15px;flex:0 0 15px;color:#6883a2}.key-preview-details span{display:flex;min-width:0;flex-direction:column;color:#8997a8;font-size:.51rem}.key-preview-details strong{overflow:hidden;margin-top:3px;color:#30445f;font-size:.61rem;white-space:nowrap;text-overflow:ellipsis}.key-live-preview>p{display:flex;align-items:flex-start;gap:5px;margin:14px 0 0;color:#8493a5;font-size:.54rem;line-height:1.45;text-align:left}.key-live-preview>p svg{width:13px;height:13px;flex:0 0 13px}
@media(max-width:950px){.key-editor-layout{grid-template-columns:1fr}.key-live-preview{position:static;display:grid;grid-template-columns:82px minmax(0,1fr);column-gap:14px;text-align:left}.key-live-preview>span{grid-column:1/-1;margin-bottom:12px}.key-preview-visual{grid-row:2/5;margin:0}.key-live-preview h2{margin-top:3px}.key-live-preview>em{justify-self:start}.key-preview-details,.key-live-preview>p{grid-column:1/-1}}
@media(max-width:620px){.key-form-grid{grid-template-columns:1fr}.key-form-grid .wide{grid-column:auto}.key-type-options{grid-template-columns:1fr 1fr}.key-editor-actions{flex-wrap:wrap}.key-editor-actions .btn{flex:1;justify-content:center}.key-live-preview{display:flex;text-align:center}.key-preview-visual{margin-top:12px}.key-live-preview>p{text-align:center}}
.key-association-choice{display:flex;flex-direction:column;gap:8px}.key-association-choice>span{color:#405570;font-size:.63rem;font-weight:750}.key-association-choice>div{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.key-association-choice label{display:grid;grid-template-columns:28px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:8px;padding:10px;border:1px solid #dce5ee;border-radius:11px;color:#6c7e94;background:#fafcfe;cursor:pointer;transition:.15s}.key-association-choice label:hover{border-color:#9db8d8}.key-association-choice label.is-selected{border-color:#2563eb;color:#245da6;background:#eef5ff;box-shadow:0 2px 8px rgba(37,99,235,.1)}.key-association-choice input{position:absolute;opacity:0}.key-association-choice svg{grid-row:1/3;width:19px;height:19px}.key-association-choice strong{font-size:.62rem}.key-association-choice small{margin-top:2px;color:#8997a8;font-size:.51rem}.key-association-select[hidden]{display:none}
@media(max-width:620px){.key-association-choice>div{grid-template-columns:1fr}.key-association-choice label{min-height:54px}}
.key-city-legend a{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border:1px solid transparent;border-radius:99px;color:#65768c;background:#f3f6f9;font-size:.56rem;text-decoration:none;transition:background .15s,border-color .15s,color .15s}.key-city-legend a b{width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:var(--city-color)}.key-city-legend a:hover{border-color:color-mix(in srgb,var(--city-color) 40%,#d7e0e9);color:#304862;background:color-mix(in srgb,var(--city-color) 8%,white)}.key-city-legend a.is-active{border-color:var(--city-color);color:color-mix(in srgb,var(--city-color) 72%,#10243c);background:color-mix(in srgb,var(--city-color) 13%,white);font-weight:850;box-shadow:0 2px 7px color-mix(in srgb,var(--city-color) 17%,transparent)}.key-city-legend .key-city-clear{color:#52677f;background:#fff;border-color:#dce5ee}.key-city-clear svg{width:12px;height:12px}
