/* SessioneBuilder — Design System v2 */
:root {
  --blue:   #2563eb; --blue-h: #1d4ed8; --blue-s: #dbeafe; --blue-t: #eff6ff;
  --gray-0: #f9fafb; --gray-1: #f3f4f6; --gray-2: #e5e7eb; --gray-3: #d1d5db;
  --gray-5: #6b7280; --gray-7: #374151; --gray-8: #1f2937; --gray-9: #111827;
  --green-s:#dcfce7; --green:  #166534;
  --red-s:  #fee2e2; --red:    #dc2626; --red-h:  #fef2f2;
  --amber:  #f59e0b; --amber-s:#fef3c7;
  --radius: 8px; --shadow: 0 1px 3px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.04);
  --shadow-md: 0 4px 12px rgba(0,0,0,.1),0 2px 4px rgba(0,0,0,.06);
  --shadow-xl: 0 20px 40px rgba(0,0,0,.13),0 8px 16px rgba(0,0,0,.07);
}
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { -webkit-text-size-adjust:100%; }
body { font-family:system-ui,-apple-system,'Segoe UI',sans-serif; background:var(--gray-0); color:var(--gray-8); font-size:.9375rem; line-height:1.5; min-height:100vh; }
a { color:inherit; }
button { font-family:inherit; }
input,select,textarea { font-family:inherit; font-size:inherit; }
img { display:block; max-width:100%; }
[x-cloak] { display:none !important; }

/* ── Layout ─────────────────────────────────────── */
.page-wrap   { max-width:72rem; margin:0 auto; padding:2rem 1.25rem; }
.page-narrow { max-width:38rem; margin:0 auto; padding:2rem 1.25rem; }
.flex        { display:flex; }
.flex-col    { flex-direction:column; }
.flex-wrap   { flex-wrap:wrap; }
.flex-1      { flex:1; }
.flex-shrink-0 { flex-shrink:0; }
.items-center  { align-items:center; }
.items-start   { align-items:flex-start; }
.justify-between { justify-content:space-between; }
.justify-end     { justify-content:flex-end; }
.justify-center  { justify-content:center; }
.gap-1  { gap:.25rem; } .gap-2  { gap:.5rem; }  .gap-3  { gap:.75rem; }
.gap-4  { gap:1rem; }   .gap-6  { gap:1.5rem; } .gap-8  { gap:2rem; }
.min-w-0 { min-width:0; }
.w-full  { width:100%; }
.grid { display:grid; }
.grid-2 { grid-template-columns:repeat(2,1fr); }
.grid-3 { grid-template-columns:repeat(3,1fr); }
.grid-4 { grid-template-columns:repeat(4,1fr); }
@media(max-width:768px){ .md-grid-1 { grid-template-columns:1fr !important; } .md-hidden { display:none; } }

/* Spacing helpers */
.mt-1{margin-top:.25rem} .mt-2{margin-top:.5rem} .mt-3{margin-top:.75rem}
.mt-4{margin-top:1rem}   .mt-5{margin-top:1.25rem} .mt-6{margin-top:1.5rem}
.mb-1{margin-bottom:.25rem} .mb-2{margin-bottom:.5rem} .mb-3{margin-bottom:.75rem}
.mb-4{margin-bottom:1rem} .mb-6{margin-bottom:1.5rem}
.ml-auto{margin-left:auto} .mr-auto{margin-right:auto}
.p-4{padding:1rem} .p-5{padding:1.25rem} .p-6{padding:1.5rem}
.px-4{padding-left:1rem;padding-right:1rem}
.py-3{padding-top:.75rem;padding-bottom:.75rem}
.py-8{padding-top:2rem;padding-bottom:2rem}
.pt-3{padding-top:.75rem} .pb-3{padding-bottom:.75rem}

/* Stack spacing */
.stack-2>*+* { margin-top:.5rem; }
.stack-3>*+* { margin-top:.75rem; }
.stack-4>*+* { margin-top:1rem; }
.stack-6>*+* { margin-top:1.5rem; }

/* ── Typography ─────────────────────────────────── */
.text-xs   { font-size:.75rem; }
.text-sm   { font-size:.8125rem; }
.text-base { font-size:.9375rem; }
.text-lg   { font-size:1.0625rem; }
.text-xl   { font-size:1.25rem; }
.text-2xl  { font-size:1.5rem; }
.font-medium  { font-weight:500; }
.font-semibold{ font-weight:600; }
.font-bold    { font-weight:700; }
.text-muted   { color:var(--gray-5); }
.text-primary { color:var(--blue); }
.text-danger  { color:var(--red); }
.text-center  { text-align:center; }
.truncate     { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.italic       { font-style:italic; }

/* ── Navbar ────────────────────────────────────────────────── */
.navbar {
  background:#fff; border-bottom:1px solid var(--gray-2);
  padding:0 1rem; height:52px;
  display:flex; align-items:center; gap:8px;
  position:sticky; top:0; z-index:50;
  box-shadow:0 1px 4px rgba(0,0,0,.06);
}
.navbar-brand {
  font-size:1rem; font-weight:800; color:var(--blue);
  text-decoration:none; display:flex; align-items:center; gap:6px;
  letter-spacing:-.3px; flex-shrink:0; margin-right:8px;
}
.navbar-brand::before { content:''; display:inline-block; width:8px; height:8px; background:var(--blue); border-radius:2px; transform:rotate(45deg); }
.navbar-right {
  display:flex; align-items:center; gap:6px;
  margin-left:auto; flex-shrink:0;
}
.navbar-username { font-size:.8125rem; color:var(--gray-5); }

/* Hamburger — nascosto su desktop (display:none base), mostrato solo su mobile via @media */
.nav-hamburger {
  display:none; align-items:center; justify-content:center;
  width:40px; height:40px; border:none; background:transparent;
  font-size:1.3rem; color:var(--blue); cursor:pointer; border-radius:8px;
  flex-shrink:0;
}
.nav-hamburger:hover { background:var(--blue-t); }

/* Link orizzontali desktop — nascosti su mobile via @media */
.nav-links-desktop { display:flex; align-items:center; gap:2px; flex:1; min-width:0; }
.nav-link {
  display:inline-flex; align-items:center; gap:5px;
  padding:5px 10px; border-radius:6px;
  font-size:.8125rem; font-weight:500;
  color:var(--gray-7); text-decoration:none;
  transition:background .12s,color .12s; white-space:nowrap;
}
.nav-link:hover { background:var(--gray-1); color:var(--gray-9); }
.nav-link.active { background:var(--blue-t); color:var(--blue); font-weight:600; }
.nav-link .icon  { font-size:.9rem; opacity:.8; }

/* Pannello menu mobile — display controllato interamente da JS */
#mobile-menu {
  background:#fff;
  border-top:1px solid var(--gray-2);
  border-bottom:3px solid var(--blue);
  box-shadow:0 6px 20px rgba(0,0,0,.10);
}
.mobile-menu-item {
  display:flex; align-items:center; gap:1rem;
  padding:1rem 1.5rem;
  text-decoration:none; color:var(--gray-8);
  font-size:1.0625rem; font-weight:500;
  border-bottom:1px solid var(--gray-1);
  transition:background .1s, color .1s;
}
.mobile-menu-item:last-of-type { border-bottom:none; }
.mobile-menu-item:hover  { background:var(--gray-0); }
.mobile-menu-item.active { background:var(--blue-t); color:var(--blue); font-weight:700; }
.mobile-menu-icon  { font-size:1.625rem; width:38px; text-align:center; flex-shrink:0; }
.mobile-menu-label { flex:1; }
.mobile-menu-footer {
  display:flex; align-items:center; justify-content:space-between;
  padding:.875rem 1.5rem;
  background:var(--gray-0); border-top:2px solid var(--blue-s);
}
.mobile-menu-user { font-size:.85rem; font-weight:600; color:var(--gray-6); }

/* ── Buttons ─────────────────────────────────────── */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:5px;
  padding:5px 13px; border-radius:6px;
  font-size:.8125rem; font-weight:500;
  cursor:pointer; border:none; text-decoration:none;
  transition:background .12s, box-shadow .12s, transform .08s;
  white-space:nowrap;
}
.btn:active { transform:scale(.97); }
.btn-primary { background:var(--blue); color:#fff; }
.btn-primary:hover { background:var(--blue-h); }
.btn-secondary { background:var(--gray-1); color:var(--gray-7); border:1px solid var(--gray-2); }
.btn-secondary:hover { background:var(--gray-2); }
.btn-danger { background:var(--red-h); color:var(--red); border:1px solid #fecaca; }
.btn-danger:hover { background:var(--red-s); }
.btn-ghost { background:transparent; color:var(--gray-5); border:1px solid var(--gray-2); }
.btn-ghost:hover { background:var(--gray-1); color:var(--gray-7); }
.btn-sm { padding:3px 9px; font-size:.75rem; }
.btn-lg { padding:9px 20px; font-size:.9375rem; }
.btn:disabled { opacity:.5; cursor:not-allowed; }

/* ── Cards ─────────────────────────────────────── */
.card {
  background:#fff; border-radius:var(--radius);
  border:1px solid var(--gray-2); box-shadow:var(--shadow);
}
.card-header {
  display:flex; align-items:center; justify-content:space-between;
  padding:.75rem 1.125rem; border-bottom:1px solid var(--gray-2);
  background:var(--gray-0); border-radius:var(--radius) var(--radius) 0 0;
}
.card-header-title { font-size:.875rem; font-weight:600; color:var(--gray-8); }
.card-body { padding:1rem 1.125rem; }
.card-list-item {
  display:flex; align-items:center; justify-content:space-between;
  padding:.75rem 1.125rem; border-bottom:1px solid var(--gray-1);
}
.card-list-item:last-child { border-bottom:none; }
.card-list-item:hover { background:var(--gray-0); }
.card-grid { padding:1rem; display:grid; gap:.75rem; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); }

/* ── Forms ─────────────────────────────────────── */
.form-label { display:block; font-size:.75rem; font-weight:600; color:var(--gray-5); margin-bottom:3px; letter-spacing:.02em; text-transform:uppercase; }
.form-input {
  display:block; width:100%; border-radius:6px;
  border:1.5px solid var(--gray-3); padding:6px 10px;
  font-size:.8125rem; color:var(--gray-8); background:#fff;
  transition:border-color .12s, box-shadow .12s;
}
.form-input:focus { outline:none; border-color:var(--blue); box-shadow:0 0 0 3px rgba(37,99,235,.12); }
.form-select {
  display:block; width:100%; border-radius:6px;
  border:1.5px solid var(--gray-3); padding:6px 10px;
  font-size:.8125rem; color:var(--gray-8); background:#fff;
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7280' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 8px center;
  padding-right:26px;
}
.form-select:focus { outline:none; border-color:var(--blue); }
textarea.form-input { resize:vertical; min-height:64px; }
.form-group { margin-bottom:.875rem; }
.form-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }

/* ── Badges ─────────────────────────────────────── */
.badge {
  display:inline-flex; align-items:center; gap:3px;
  padding:2px 8px; border-radius:9999px;
  font-size:.7rem; font-weight:600; letter-spacing:.02em;
}
.badge-blue  { background:var(--blue-s); color:var(--blue-h); }
.badge-gray  { background:var(--gray-1); color:var(--gray-7); border:1px solid var(--gray-2); }
.badge-green { background:var(--green-s); color:var(--green); }
.badge-red   { background:var(--red-s); color:var(--red); }
.badge-amber { background:var(--amber-s); color:#92400e; }

/* ── Modal ─────────────────────────────────────── */
.modal-overlay {
  position:fixed; inset:0; z-index:100;
  display:flex; align-items:center; justify-content:center;
  background:rgba(17,24,39,.45); backdrop-filter:blur(2px);
  padding:1rem;
}
.modal-box {
  background:#fff; border-radius:12px; box-shadow:var(--shadow-xl);
  width:100%; max-width:420px; max-height:90vh; overflow-y:auto;
  padding:1.5rem;
}
.modal-box.wide { max-width:560px; }
.modal-title { font-size:1.0625rem; font-weight:700; color:var(--gray-9); margin-bottom:1.125rem; }
.modal-footer { display:flex; justify-content:flex-end; gap:.5rem; margin-top:1.25rem; padding-top:1rem; border-top:1px solid var(--gray-2); }

/* ── Page header ─────────────────────────────────── */
.page-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.5rem; }
.page-title { font-size:1.375rem; font-weight:800; color:var(--gray-9); letter-spacing:-.3px; }

/* ── Stat cards ─────────────────────────────────── */
.stat-card { background:#fff; border:1px solid var(--gray-2); border-radius:var(--radius); padding:1rem 1.125rem; box-shadow:var(--shadow); }
.stat-label { font-size:.7rem; font-weight:600; color:var(--gray-5); text-transform:uppercase; letter-spacing:.05em; }
.stat-value { font-size:1.625rem; font-weight:800; color:var(--blue); margin-top:2px; line-height:1.2; }
.stat-sub   { font-size:.75rem; color:var(--gray-5); margin-top:2px; }

/* ── Empty state ─────────────────────────────────── */
.empty-state { text-align:center; padding:3.5rem 1rem; color:var(--gray-5); }
.empty-state .icon { font-size:2.5rem; margin-bottom:.75rem; opacity:.5; }
.empty-state p { font-size:.875rem; }

/* ── Divider ─────────────────────────────────────── */
.divider { border:none; border-top:1px solid var(--gray-2); margin:.75rem 0; }

/* ── Progress ─────────────────────────────────────── */
.progress { background:var(--gray-1); border-radius:9999px; height:5px; overflow:hidden; }
.progress-bar { background:var(--blue); height:100%; border-radius:9999px; transition:width .3s; }

/* ── Table ─────────────────────────────────────── */
.table-wrap { overflow-x:auto; }
table { width:100%; border-collapse:collapse; font-size:.8125rem; }
th { text-align:left; padding:.5rem .875rem; font-size:.7rem; font-weight:700; color:var(--gray-5); text-transform:uppercase; letter-spacing:.05em; border-bottom:2px solid var(--gray-2); background:var(--gray-0); }
td { padding:.625rem .875rem; border-bottom:1px solid var(--gray-1); color:var(--gray-8); vertical-align:middle; }
tr:last-child td { border-bottom:none; }
tr:hover td { background:var(--gray-0); }

/* ── Station map ─────────────────────────────────── */
.station-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; }
.station-dot {
  border-radius:7px; padding:6px 4px;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  font-size:.65rem; font-weight:700; text-align:center; cursor:default;
  border:1.5px solid; min-height:50px; transition:all .15s;
}
.station-dot.free     { background:#f0fdf4; border-color:#bbf7d0; color:#166534; }
.station-dot.used     { background:var(--blue-t); border-color:#93c5fd; color:var(--blue); }
.station-dot.conflict { background:var(--red-s); border-color:#fca5a5; color:var(--red); }

/* ── Loading spinner ─────────────────────────────── */
.spinner {
  display:inline-block; width:20px; height:20px;
  border:2px solid var(--gray-2); border-top-color:var(--blue);
  border-radius:50%; animation:spin .7s linear infinite;
}
@keyframes spin { to { transform:rotate(360deg); } }
.loading-row { display:flex; align-items:center; justify-content:center; gap:.625rem; padding:2.5rem; color:var(--gray-5); font-size:.875rem; }

/* ── Search ─────────────────────────────────────── */
.search-wrap { position:relative; max-width:280px; }
.search-wrap .form-input { padding-left:30px; }
.search-wrap::before { content:'🔍'; position:absolute; left:9px; top:50%; transform:translateY(-50%); font-size:.8rem; pointer-events:none; }

/* ── Dashboard widgets ─────────────────────────────── */
.session-row { display:flex; align-items:center; justify-content:space-between; padding:.625rem 1.125rem; border-bottom:1px solid var(--gray-1); }
.session-row:last-child { border-bottom:none; }
.session-row:hover { background:var(--gray-0); }
.skill-row { display:flex; align-items:center; justify-content:space-between; margin-bottom:.625rem; }

/* ── Exercise card ─────────────────────────────────── */
.ex-card { background:#fff; border:1px solid var(--gray-2); border-radius:var(--radius); padding:.75rem 1rem; box-shadow:var(--shadow); transition:border-color .15s; }
.ex-card:hover { border-color:#93c5fd; }

/* ── Skill card ─────────────────────────────────────── */
.skill-card { background:#fff; border:1px solid var(--gray-2); border-radius:var(--radius); padding:.875rem 1rem; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:.625rem; }

/* ── Rooms ─────────────────────────────────────── */
.room-card { background:#fff; border:1px solid var(--gray-2); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden; }
.room-header { display:flex; align-items:center; justify-content:space-between; padding:.75rem 1.125rem; background:linear-gradient(90deg,var(--blue-t),#fff); border-bottom:1px solid var(--gray-2); }
.room-title { font-weight:700; color:var(--blue); font-size:.9375rem; }
.stations-list { padding:.875rem 1.125rem; display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:.5rem; }
.station-item { display:flex; align-items:center; justify-content:space-between; padding:.5rem .75rem; border-radius:6px; border:1px solid var(--gray-2); font-size:.8125rem; background:var(--gray-0); }
.station-code { font-weight:700; color:var(--blue); font-size:.8rem; background:var(--blue-t); padding:2px 7px; border-radius:4px; }

/* ── Toggle switch ─────────────────────────────────── */
.toggle { position:relative; display:inline-flex; align-items:center; cursor:pointer; gap:6px; font-size:.8125rem; color:var(--gray-7); }
.toggle input { position:absolute; opacity:0; width:0; height:0; }
.toggle-track {
  width:34px; height:18px; background:var(--gray-3); border-radius:9px;
  transition:background .2s; flex-shrink:0; position:relative;
}
.toggle input:checked + .toggle-track { background:var(--blue); }
.toggle-track::after {
  content:''; position:absolute; top:2px; left:2px;
  width:14px; height:14px; background:#fff; border-radius:50%;
  transition:transform .2s; box-shadow:0 1px 3px rgba(0,0,0,.2);
}
.toggle input:checked + .toggle-track::after { transform:translateX(16px); }

/* ── Utilities ─────────────────────────────────────── */
.hidden   { display:none !important; }
.sr-only  { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0; }
.relative { position:relative; }
.fixed    { position:fixed; }
.inset-0  { inset:0; }
.z-50     { z-index:50; }
.overflow-hidden { overflow:hidden; }
.overflow-y-auto { overflow-y:auto; }
.cursor-pointer  { cursor:pointer; }
.select-none     { user-select:none; }
.rounded-full    { border-radius:9999px; }
.border-0        { border:none; }
.bg-transparent  { background:transparent; }
.outline-none    { outline:none; }
.italic          { font-style:italic; }
.opacity-50      { opacity:.5; }
.line-clamp-2    { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }

/* Builder-specific */
.builder-col-header { display:flex; align-items:center; justify-content:space-between; padding:.625rem 1rem; font-size:.8125rem; font-weight:600; color:var(--gray-7); background:var(--gray-0); border-bottom:1px solid var(--gray-2); }
.ex-lib-card { background:#fff; border:1.5px solid var(--gray-2); border-radius:7px; padding:.625rem .875rem; margin-bottom:.375rem; cursor:pointer; transition:border-color .12s,background .12s; }
.ex-lib-card:hover,.ex-lib-card.selected { border-color:#93c5fd; background:var(--blue-t); }
.block-card { background:#fff; border:1px solid var(--gray-2); border-radius:var(--radius); margin-bottom:.75rem; overflow:hidden; box-shadow:var(--shadow); }
.block-header { display:flex; align-items:center; gap:.5rem; padding:.5rem .875rem; background:var(--gray-0); border-bottom:1px solid var(--gray-2); }
.block-body   { padding:.625rem; }
.ex-item { border-radius:6px; border:1.5px solid var(--gray-2); padding:.625rem .75rem; margin-bottom:.375rem; background:#fff; font-size:.8rem; }
.ex-item.conflict { border-color:#fca5a5; background:#fff5f5; }
.ex-field-grid { display:grid; grid-template-columns:1fr 1fr; gap:.375rem; margin-top:.5rem; }

/* Login */
.login-wrap { min-height:100vh; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,var(--blue-t) 0%,#f0f9ff 50%,var(--gray-0) 100%); padding:1rem; }
.login-card { background:#fff; border-radius:14px; box-shadow:var(--shadow-xl); width:100%; max-width:360px; padding:2.25rem; }
.login-logo  { text-align:center; margin-bottom:1.75rem; }
.login-logo-icon { font-size:2rem; background:var(--blue); color:#fff; width:52px; height:52px; border-radius:12px; display:inline-flex; align-items:center; justify-content:center; margin-bottom:.625rem; box-shadow:0 4px 12px rgba(37,99,235,.3); }
.login-logo h1 { font-size:1.375rem; font-weight:800; color:var(--gray-9); letter-spacing:-.3px; }
.login-logo p  { font-size:.8125rem; color:var(--gray-5); margin-top:2px; }
.alert-error { background:var(--red-s); color:var(--red); border:1px solid #fecaca; border-radius:6px; padding:.625rem .875rem; font-size:.8125rem; margin-bottom:1rem; }

/* ── Mobile Responsive ────────────────────────────────────── */

/* PT list row — desktop layout */
.pt-list-row         { display:flex; align-items:center; gap:.75rem; padding:.875rem 1.25rem; border-bottom:1px solid var(--gray-2); }
.pt-list-row:last-child { border-bottom:none; }
.pt-list-row-date    { flex-shrink:0; min-width:60px; }
.pt-list-row-info    { flex:1; min-width:0; }
.pt-list-row-badge   { flex-shrink:0; }
.pt-list-row-actions { display:flex; gap:.375rem; flex-shrink:0; flex-wrap:wrap; }

@media (max-width:767px){
  /* ── Nav mobile */
  .nav-hamburger { display:inline-flex !important; }
  .nav-links-desktop { display:none !important; }

  .page-wrap,.page-narrow { padding:1rem .875rem; }
  .page-title  { font-size:1.1rem; }
  .page-header { flex-wrap:wrap; gap:.625rem; margin-bottom:1rem; }
  .navbar { flex-wrap:nowrap; padding:0 .5rem; height:48px; }
  .navbar-brand { padding:0 .375rem; height:48px; display:flex; align-items:center; flex-shrink:0; }
  .navbar-right { padding-right:.75rem; height:48px; }
  .navbar-username { display:none; }
  /* Stack list items vertically on mobile */
  .card-list-item { flex-direction:column; align-items:flex-start; gap:.375rem; padding:.75rem 1rem; }
  .card-list-item > *:last-child { align-self:flex-end; }
  /* Skill card on mobile */
  .skill-card { padding:.75rem 1rem; }
  /* Prevent any fixed-width element from overflowing */
  .card, .card-list-item, .page-wrap, .page-narrow { max-width:100%; }
  .modal-overlay { align-items:flex-end; padding:0; }
  .modal-box { max-width:100%; border-radius:16px 16px 0 0; position:fixed; bottom:0; left:0; right:0; max-height:92vh; margin:0; padding:1.25rem 1rem; }
  .modal-footer { flex-direction:column-reverse; gap:.5rem; }
  .modal-footer .btn { width:100%; justify-content:center; padding:.65rem; }
  .form-grid-2 { grid-template-columns:1fr; }
  .card-grid   { grid-template-columns:1fr; padding:.75rem; }
  .grid-2,.grid-3,.grid-4 { grid-template-columns:1fr; }
  .table-wrap  { overflow-x:auto; -webkit-overflow-scrolling:touch; }
  table { min-width:520px; }
  .btn     { padding:6px 12px; }
  .btn-sm  { padding:5px 10px; font-size:.75rem; }
  .btn-lg  { padding:10px 18px; }
  .stat-card { padding:.875rem; }
  .stat-value { font-size:1.375rem; }
  .search-wrap { max-width:100%; }
}
