/* ============================================================
   BUFAL · Design System v7.0
   Identidad Búfalo: negro búfalo + ámbar ruta + grises acero
   Light por defecto · Dark con data-theme="dark"
   ============================================================ */

/* 1. FUENTES
   ------------------------------------------------------------ */
/*
@font-face{font-family:'TT Autonomous';src:url('/fonts/TTAutonomous-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'TT Autonomous';src:url('/fonts/TTAutonomous-DemiBold.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'TT Autonomous';src:url('/fonts/TTAutonomous-Bold.woff2') format('woff2');font-weight:700;font-display:swap}
*/

/* 2. DESIGN TOKENS — LIGHT (default)
   ------------------------------------------------------------ */
:root{
  /* Ámbar BUFAL — acento principal */
  --tf-yellow-500:#F59E0B;
  --tf-yellow-600:#D97706;
  --tf-yellow-050:#FEF3C7;

  /* Rojo — solo para danger */
  --tf-red-500:#EF4444;
  --tf-red-600:#DC2626;
  --tf-red-400:#F87171;
  --tf-red-050:#FEF2F2;

  /* Blanco */
  --tf-white:#FFFFFF;
  --tf-white-soft:#FAFBFC;
  --tf-white-overlay:rgba(255,255,255,.60);

  /* Escala acero / grafito */
  --tf-gray-050:#F9FAFB;
  --tf-gray-100:#F3F4F6;
  --tf-gray-150:#E5E7EB;
  --tf-gray-200:#E5E7EB;
  --tf-gray-300:#D1D5DB;
  --tf-gray-400:#9CA3AF;
  --tf-gray-500:#6B7280;
  --tf-gray-600:#4B5563;
  --tf-gray-700:#374151;
  --tf-gray-800:#1F2937;
  --tf-gray-900:#111827;
  --tf-gray-950:#0B0F14;

  /* Semánticos */
  --tf-success:#10B981;
  --tf-success-600:#059669;
  --tf-success-bg:#D1FAE5;
  --tf-warning:#F59E0B;
  --tf-warning-bg:#FEF3C7;
  --tf-info:#3B82F6;
  --tf-info-bg:#DBEAFE;
  --tf-danger:var(--tf-red-500);
  --tf-danger-bg:var(--tf-red-050);

  /* Superficies */
  --tf-bg:#F3F4F6;
  --tf-surface:#FFFFFF;
  --tf-surface-2:#F9FAFB;
  --tf-surface-3:#F3F4F6;
  --tf-surface-overlay:rgba(255,255,255,.94);
  --tf-overlay:rgba(11,15,20,.55);

  /* Texto */
  --tf-text:#0B0F14;
  --tf-text-muted:#4B5563;
  --tf-text-subtle:#9CA3AF;
  --tf-text-invert:#FFFFFF;

  /* Bordes */
  --tf-border:#E5E7EB;
  --tf-border-strong:#D1D5DB;
  --tf-border-white:rgba(255,255,255,.75);
  --tf-border-focus:var(--tf-yellow-500);

  /* Tipografía */
  --tf-font-display:'TT Autonomous','Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --tf-font-body:'TT Autonomous','Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --tf-font-mono:'JetBrains Mono',ui-monospace,'SFMono-Regular',Menlo,monospace;

  --tf-fs-xs:.75rem;--tf-fs-sm:.8125rem;--tf-fs-base:.9375rem;--tf-fs-md:1.0625rem;
  --tf-fs-lg:1.25rem;--tf-fs-xl:1.5rem;--tf-fs-2xl:1.875rem;--tf-fs-3xl:2.25rem;

  --tf-fw-regular:400;--tf-fw-medium:500;--tf-fw-semibold:600;--tf-fw-bold:700;
  --tf-lh-tight:1.2;--tf-lh-base:1.5;--tf-lh-loose:1.65;
  --tf-tracking-wide:.04em;--tf-tracking-tight:-.01em;

  --tf-space-1:.25rem;--tf-space-2:.5rem;--tf-space-3:.75rem;--tf-space-4:1rem;
  --tf-space-5:1.25rem;--tf-space-6:1.5rem;--tf-space-8:2rem;--tf-space-10:2.5rem;--tf-space-12:3rem;

  --tf-radius-xs:4px;--tf-radius-sm:6px;--tf-radius-md:10px;--tf-radius-lg:14px;--tf-radius-pill:999px;

  --tf-shadow-xs:0 1px 2px rgba(11,15,20,.06);
  --tf-shadow-sm:0 1px 2px rgba(11,15,20,.06),0 1px 3px rgba(11,15,20,.04);
  --tf-shadow-md:0 2px 4px rgba(11,15,20,.05),0 4px 12px rgba(11,15,20,.08);
  --tf-shadow-lg:0 8px 24px rgba(11,15,20,.10),0 2px 6px rgba(11,15,20,.06);
  --tf-shadow-red:0 6px 18px rgba(245,158,11,.28);
  --tf-focus-ring:0 0 0 4px rgba(245,158,11,.22);
  --tf-focus-ring-ok:0 0 0 4px rgba(16,185,129,.22);

  --tf-ease:cubic-bezier(.22,1,.36,1);
  --tf-dur-fast:140ms;--tf-dur:220ms;--tf-dur-slow:380ms;

  /* Gradientes */
  --tf-gradient-red:linear-gradient(135deg,#FBBF24 0%,#F59E0B 55%,#B45309 100%);
  --tf-gradient-danger:linear-gradient(135deg,#F87171 0%,#EF4444 55%,#991B1B 100%);
  --tf-gradient-metal:linear-gradient(180deg,#FFFFFF 0%,#F3F4F6 100%);
  --tf-gradient-dark:linear-gradient(180deg,#1F2937 0%,#0B0F14 100%);
  --tf-gradient-highway:linear-gradient(90deg,#0B0F14 0%,#F59E0B 100%);

  --tf-aside-width:340px;
  --tf-gap:1.75rem;
}

/* 3. DESIGN TOKENS — DARK (data-theme="dark" o toggle)
   ------------------------------------------------------------ */
[data-theme="dark"]{
  --tf-bg:#0B0F14;
  --tf-surface:#101A1D;
  --tf-surface-2:#172326;
  --tf-surface-3:#1F2937;
  --tf-surface-overlay:rgba(16,26,29,.85);
  --tf-overlay:rgba(0,0,0,.65);

  --tf-white:#FFFFFF;
  --tf-white-soft:#E8ECEE;
  --tf-white-overlay:rgba(255,255,255,.06);

  --tf-gray-050:#172326;
  --tf-gray-100:#101A1D;
  --tf-gray-200:#1A282C;
  --tf-gray-300:#243438;
  --tf-gray-400:#3A4D51;
  --tf-gray-500:#5C7075;
  --tf-gray-600:#8A9C9F;
  --tf-gray-700:#B5C3C5;
  --tf-gray-800:#D5DEDF;
  --tf-gray-900:#E8EEEF;
  --tf-gray-950:#F4F7F7;

  --tf-text:#E8EEEF;
  --tf-text-muted:#8A9C9F;
  --tf-text-subtle:#5C7075;
  --tf-text-invert:#0B0F14;

  --tf-border:#1F2937;
  --tf-border-strong:#2A3D41;
  --tf-border-white:rgba(255,255,255,.10);

  --tf-success-bg:rgba(16,185,129,.18);
  --tf-warning-bg:rgba(245,158,11,.18);
  --tf-info-bg:rgba(59,130,246,.18);
  --tf-danger-bg:rgba(239,68,68,.18);
  --tf-red-050:rgba(239,68,68,.14);
  --tf-yellow-050:rgba(245,158,11,.14);

  --tf-shadow-xs:0 1px 2px rgba(0,0,0,.5);
  --tf-shadow-sm:0 1px 3px rgba(0,0,0,.55);
  --tf-shadow-md:0 4px 14px rgba(0,0,0,.6);
  --tf-shadow-lg:0 12px 32px rgba(0,0,0,.65);

  --tf-gradient-metal:linear-gradient(180deg,#1A282C 0%,#101A1D 100%);
  --tf-gradient-highway:linear-gradient(90deg,#F59E0B 0%,#FBBF24 100%);
}

/* 4. BASE / RESET
   ------------------------------------------------------------ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;font-family:var(--tf-font-body);font-size:var(--tf-fs-base);
  line-height:var(--tf-lh-base);color:var(--tf-text);min-height:100vh;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  background:var(--tf-bg);transition:background-color var(--tf-dur) var(--tf-ease),color var(--tf-dur) var(--tf-ease);
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:linear-gradient(rgba(11,15,20,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(11,15,20,.02) 1px,transparent 1px);
  background-size:48px 48px;
  mask-image:radial-gradient(circle at 50% 40%,#000 30%,transparent 75%);
  -webkit-mask-image:radial-gradient(circle at 50% 40%,#000 30%,transparent 75%);
}
[data-theme="dark"] body::before{
  background-image:linear-gradient(rgba(255,255,255,.015) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.015) 1px,transparent 1px);
}
body>*{position:relative;z-index:1}

h1,h2,h3,h4,h5,h6{font-family:var(--tf-font-display);font-weight:var(--tf-fw-semibold);letter-spacing:var(--tf-tracking-tight);color:var(--tf-text);margin:0 0 var(--tf-space-3);line-height:var(--tf-lh-tight)}
h1{font-size:var(--tf-fs-3xl)}h2{font-size:var(--tf-fs-2xl)}h3{font-size:var(--tf-fs-xl)}
h4,h5{font-size:var(--tf-fs-lg)}h6{font-size:var(--tf-fs-md)}

p{margin:0 0 var(--tf-space-3)}
a{color:var(--tf-yellow-600);text-decoration:none;transition:color var(--tf-dur-fast) var(--tf-ease)}
a:hover{color:var(--tf-yellow-500)}
[data-theme="dark"] a{color:var(--tf-yellow-500)}
[data-theme="dark"] a:hover{color:var(--tf-yellow-600)}

::selection{background:var(--tf-yellow-500);color:var(--tf-gray-950)}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:var(--tf-surface-2)}
::-webkit-scrollbar-thumb{background:var(--tf-gray-400);border-radius:var(--tf-radius-pill);border:2px solid var(--tf-surface-2)}
::-webkit-scrollbar-thumb:hover{background:var(--tf-gray-500)}
:focus-visible{outline:2px solid var(--tf-yellow-500);outline-offset:2px;border-radius:var(--tf-radius-xs)}

/* 5. LAYOUT
   ------------------------------------------------------------ */
.container,.tf-container{width:100%;max-width:1200px;margin-inline:auto;padding-inline:var(--tf-space-4)}
.container{padding-block:var(--tf-space-6)}
.bf-app{background:var(--tf-bg)}
.bf-body{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:calc(100vh - 66px)}
.bf-main{min-width:0;padding:0 clamp(1rem,3vw,3rem)}
.bf-main>.container{max-width:1480px;padding-inline:0;padding-block:clamp(1.5rem,3vw,3rem)}
.bf-sidebar{position:sticky;top:66px;height:calc(100vh - 66px);display:flex;flex-direction:column;padding:1.35rem 1rem 1rem;background:var(--tf-surface);border-right:1px solid var(--tf-border);z-index:3}
.bf-sidebar__header{padding:.25rem .7rem 1.25rem;border-bottom:1px solid var(--tf-border);margin-bottom:.75rem}
.bf-sidebar__eyebrow{display:block;color:var(--tf-yellow-600);font-size:.65rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.bf-sidebar__title{display:block;margin-top:.35rem;font-size:1rem;color:var(--tf-text)}
.bf-sidebar__nav{display:flex;flex-direction:column;gap:.25rem}
.bf-sidebar__link{display:flex;align-items:center;gap:.75rem;padding:.7rem .75rem;border-radius:10px;color:var(--tf-text-muted);font-weight:600;font-size:.86rem;transition:background-color var(--tf-dur-fast),color var(--tf-dur-fast),transform var(--tf-dur-fast)}
.bf-sidebar__link:hover{background:var(--tf-yellow-050);color:var(--tf-text);transform:translateX(2px)}
[data-theme="dark"] .bf-sidebar__link:hover{background:rgba(245,158,11,.12)}
.bf-sidebar__link[aria-current="page"]{background:var(--tf-yellow-500);color:#17120a;box-shadow:0 6px 14px rgba(245,158,11,.18)}
.bf-sidebar__icon{width:1.25rem;text-align:center;color:var(--tf-yellow-600)}
.bf-sidebar__link[aria-current="page"] .bf-sidebar__icon{color:#17120a}
.bf-sidebar__divider{width:100%;border:0;border-top:1px solid var(--tf-border);margin:1rem 0}
.bf-sidebar__status{display:flex;align-items:center;gap:.5rem;margin-top:auto;padding:.8rem .75rem;color:var(--tf-text-subtle);font-size:.72rem;font-weight:600}
.bf-status-dot{width:7px;height:7px;border-radius:50%;background:var(--tf-success);box-shadow:0 0 0 4px var(--tf-success-bg)}
.bf-footer{display:flex;justify-content:space-between;gap:1rem;padding:1rem clamp(1rem,3vw,3rem);border-top:1px solid var(--tf-border);color:var(--tf-text-subtle);font-size:.72rem;background:var(--tf-surface)}
.bf-footer span:first-child{font-weight:800;letter-spacing:.12em;color:var(--tf-text)}
.tf-password-field{position:relative}.tf-password-field .form-control{padding-right:3rem}.tf-password-toggle{position:absolute;right:.35rem;top:50%;transform:translateY(-50%);width:2.25rem;height:2.25rem;border:0;background:transparent;color:var(--tf-text-subtle);border-radius:8px;cursor:pointer}.tf-password-toggle:hover{background:var(--tf-gray-100);color:var(--tf-text)}
[data-theme="dark"] .tf-password-toggle:hover{background:var(--tf-surface-3)}
.btn{box-shadow:none!important;transform:none!important;border-radius:9px}.btn::before,.btn::after{display:none}.btn:hover{transform:translateY(-1px)!important;box-shadow:0 4px 10px rgba(11,15,20,.1)!important}
/* home.html conserva su composición histórica; el shell base aporta la navegación. */
.bf-main>.container>.bf-body{display:block;min-height:0}
.bf-main>.container>.bf-body>.bf-sidebar{display:none}
.bf-main>.container>.bf-body>.bf-main{padding:0}
@media (max-width:900px){.bf-body{grid-template-columns:1fr}.bf-sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid var(--tf-border);padding:.75rem}.bf-sidebar__header,.bf-sidebar__status{display:none}.bf-sidebar__nav{flex-direction:row;overflow-x:auto}.bf-sidebar__link{white-space:nowrap}.bf-sidebar__label{display:none}.bf-sidebar__icon{width:auto}.bf-main{padding:0 1rem}.bf-footer{flex-wrap:wrap}}

/* 35. BUFALO CONTROL ROOM REFRESH
   ------------------------------------------------------------ */
:root{
  --tf-bg:#eef1f3;
  --tf-surface:#ffffff;
  --tf-surface-2:#f7f8f9;
  --tf-surface-3:#e8edef;
  --tf-text:#152126;
  --tf-text-muted:#52636a;
  --tf-text-subtle:#74858c;
  --tf-border:#dbe2e5;
  --tf-border-strong:#c4d0d4;
  --tf-radius-sm:8px;
  --tf-radius-md:12px;
  --tf-radius-lg:16px;
  --tf-shadow-xs:0 1px 2px rgba(21,33,38,.04);
  --tf-shadow-sm:0 3px 12px rgba(21,33,38,.06);
  --tf-shadow-md:0 8px 24px rgba(21,33,38,.08);
  --tf-font-display:'Arial Narrow','Aptos Display','Segoe UI',sans-serif;
  --tf-font-body:'Aptos','Segoe UI',sans-serif;
}
[data-theme="dark"]{
  --tf-bg:#10181b;--tf-surface:#162125;--tf-surface-2:#1b2a2e;--tf-surface-3:#223439;
  --tf-text:#eaf0f1;--tf-text-muted:#a1b2b6;--tf-text-subtle:#71878c;--tf-border:#2a3d42;--tf-border-strong:#3b5157;
}
body{background:var(--tf-bg);font-size:.94rem;letter-spacing:.002em}
body::before{opacity:.45;background-size:64px 64px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.55),transparent 60%)}
.bf-topbar{height:66px;padding:0 1.25rem;border-bottom:1px solid var(--tf-border);background:color-mix(in srgb,var(--tf-surface) 94%,transparent);box-shadow:0 1px 0 rgba(21,33,38,.03);backdrop-filter:blur(12px)}
.bf-skip-link{position:fixed;left:1rem;top:-4rem;z-index:100;padding:.65rem .9rem;border-radius:8px;background:var(--tf-yellow-500);color:#17120a;font-weight:700;transition:top 150ms ease}.bf-skip-link:focus{top:1rem}
.bf-topnav{display:none}
.bf-topbar__right{order:1;justify-content:flex-start;gap:.7rem}.bf-topbar__left{order:3;justify-content:flex-end}.bf-brand{order:1;padding:.25rem .65rem;border-left:3px solid var(--tf-yellow-500)}.bf-brand img{width:82px;height:auto}.bf-theme-toggle{order:2;margin-left:.25rem}
.bf-user-btn{border:1px solid var(--tf-border);background:var(--tf-surface-2);border-radius:10px;padding:.4rem .65rem}.bf-user-btn:hover{border-color:var(--tf-yellow-500);background:var(--tf-surface)}
.bf-body{grid-template-columns:236px minmax(0,1fr);min-height:calc(100dvh - 66px)}
.bf-sidebar{top:66px;background:var(--tf-surface);padding:1.1rem .8rem;border-right:1px solid var(--tf-border)}
.bf-sidebar__link{border:1px solid transparent}.bf-sidebar__link[aria-current="page"]{border-color:rgba(245,158,11,.35);box-shadow:none;font-weight:700}
.bf-main{padding:0 clamp(1.1rem,3vw,3.5rem)}
.bf-main>.container{padding-block:clamp(1.4rem,2.5vw,2.5rem);max-width:1600px}
.bf-main__header{margin-bottom:2rem;padding-bottom:1.25rem;border-bottom:1px solid var(--tf-border)}
.bf-main__title{font-size:clamp(1.8rem,3vw,2.6rem);letter-spacing:-.045em}
.bf-main__subtitle{color:var(--tf-text-muted);max-width:65ch}
.bf-section{margin-bottom:2rem}.bf-section__title{font-size:.76rem;text-transform:uppercase;letter-spacing:.11em;color:var(--tf-text-muted);font-weight:800;display:flex;align-items:center;gap:.5rem}.bf-section__title i{color:var(--tf-yellow-600)}
.tf-home-stats{gap:.85rem}.tf-home-stat{border:1px solid var(--tf-border);box-shadow:var(--tf-shadow-xs);border-radius:var(--tf-radius-md);background:var(--tf-surface);padding:1rem 1.1rem}.tf-home-stat:hover{border-color:var(--tf-border-strong);box-shadow:var(--tf-shadow-sm)}
.tf-action-tile,.tf-load-mini,.card{border:1px solid var(--tf-border);box-shadow:var(--tf-shadow-xs);border-radius:var(--tf-radius-md);background:var(--tf-surface)}
.tf-action-tile:hover,.tf-load-mini:hover,.card:hover{border-color:var(--tf-yellow-500);box-shadow:var(--tf-shadow-sm)}
.tf-action-tile--primary{background:var(--tf-yellow-500);border-color:var(--tf-yellow-600);color:#17120a}.tf-action-tile--primary small{color:#43300a}
.table,.tf-table{border-collapse:separate;border-spacing:0;background:var(--tf-surface);border:1px solid var(--tf-border);border-radius:var(--tf-radius-md);overflow:hidden}.table th,.tf-table th{background:var(--tf-surface-2);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--tf-text-muted)}
.form-control,.form-select{min-height:44px;border-color:var(--tf-border-strong);border-radius:9px;background:var(--tf-surface);color:var(--tf-text)}.form-control:focus,.form-select:focus{border-color:var(--tf-yellow-600);box-shadow:0 0 0 3px rgba(245,158,11,.18)}
.btn{min-height:42px;padding-inline:1rem;font-weight:700;letter-spacing:.01em}.btn-primary{background:var(--tf-yellow-500);border-color:var(--tf-yellow-600);color:#17120a}.btn-primary:hover{background:var(--tf-yellow-600);color:#fff}.btn-secondary{background:var(--tf-surface-2);border-color:var(--tf-border-strong);color:var(--tf-text)}
.alert{border-radius:10px;border-left-width:4px;box-shadow:none}
.tf-empty{min-height:230px;border:1px dashed var(--tf-border-strong);background:var(--tf-surface-2);border-radius:var(--tf-radius-md)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
.tf-container-narrow{max-width:880px}
.tf-container-wide{max-width:1440px}
.row.justify-content-center{justify-content:center!important}
.row.justify-content-center>[class*="col-"]{margin-inline:auto}

/* 6. CARDS
   ------------------------------------------------------------ */
.card{
  background:var(--tf-surface-overlay);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:1px solid var(--tf-border);border-radius:var(--tf-radius-md);
  box-shadow:0 4px 24px rgba(11,15,20,.08),0 1px 3px rgba(11,15,20,.05);
  overflow:hidden;transition:box-shadow var(--tf-dur) var(--tf-ease),transform var(--tf-dur) var(--tf-ease),border-color var(--tf-dur) var(--tf-ease);
}
.card:hover{box-shadow:0 12px 40px rgba(11,15,20,.12),0 2px 6px rgba(11,15,20,.06)}
[data-theme="dark"] .card{background:var(--tf-surface-overlay);border-color:var(--tf-border);box-shadow:0 8px 32px rgba(0,0,0,.55),0 2px 6px rgba(0,0,0,.35)}

.card-header{
  background:linear-gradient(180deg,var(--tf-white-overlay) 0%,rgba(255,255,255,.05) 100%);
  border-bottom:1px solid var(--tf-border);padding:var(--tf-space-4) var(--tf-space-6);
  display:flex;align-items:center;justify-content:center;gap:var(--tf-space-3);
  flex-wrap:wrap;text-align:center;position:relative;
}
.card-header:has(>:nth-child(2)){justify-content:space-between;text-align:left}
.card-header::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--tf-gradient-highway);opacity:.9}
.card-header h5{margin:0;font-weight:var(--tf-fw-semibold);display:inline-flex;align-items:center;justify-content:center;gap:var(--tf-space-2);color:var(--tf-text);letter-spacing:var(--tf-tracking-tight)}
.card-header h5 i{color:var(--tf-yellow-500)}
.card-body{padding:var(--tf-space-6);background:transparent}
.card-body>h3{text-align:center}

/* 7. SECTION TITLE
   ------------------------------------------------------------ */
.section-title{
  display:flex;align-items:center;justify-content:center;text-align:center;
  font-family:var(--tf-font-display);font-size:var(--tf-fs-xs);font-weight:var(--tf-fw-semibold);
  text-transform:uppercase;letter-spacing:var(--tf-tracking-wide);color:var(--tf-text-muted);
  margin:var(--tf-space-6) auto var(--tf-space-4);padding-bottom:var(--tf-space-2);
  border-bottom:1px dashed var(--tf-border);position:relative;max-width:100%;
}
.section-title::before{content:"";display:inline-block;width:3px;height:14px;background:var(--tf-yellow-500);border-radius:2px;margin-right:var(--tf-space-2)}
.section-title i{font-size:1rem}
.section-title:first-child{margin-top:0}
.section-title.tf-left{justify-content:flex-start;text-align:left}

/* 8. FORM CONTROLS
   ------------------------------------------------------------ */
.form-label{display:block;font-size:var(--tf-fs-sm);font-weight:var(--tf-fw-medium);color:var(--tf-text-muted);margin-bottom:var(--tf-space-1);letter-spacing:.01em;text-align:left}

.form-control,.form-select{
  background:var(--tf-surface);border:1px solid var(--tf-border-strong);border-radius:var(--tf-radius-sm);
  color:var(--tf-text);font-family:var(--tf-font-body);font-size:var(--tf-fs-base);
  padding:.55rem .85rem;width:100%;text-align:left;
  transition:border-color var(--tf-dur-fast) var(--tf-ease),box-shadow var(--tf-dur-fast) var(--tf-ease),background-color var(--tf-dur-fast) var(--tf-ease);
}
[data-theme="dark"] .form-control,[data-theme="dark"] .form-select{background:var(--tf-surface-2);border-color:var(--tf-border-strong)}
.form-control::placeholder{color:var(--tf-text-subtle)}
.form-control:hover,.form-select:hover{border-color:var(--tf-gray-400)}
.form-control:focus,.form-select:focus{outline:none;border-color:var(--tf-yellow-500);box-shadow:var(--tf-focus-ring);background:var(--tf-surface);color:var(--tf-text)}
[data-theme="dark"] .form-control:focus,[data-theme="dark"] .form-select:focus{background:var(--tf-surface-2)}
.form-control:disabled,.form-select:disabled{background:var(--tf-surface-3);opacity:.7;cursor:not-allowed}
textarea.form-control{resize:vertical;min-height:80px}
.form-control-sm,.form-select-sm{font-size:var(--tf-fs-sm);padding:.4rem .65rem}
input[type="number"],input[type="datetime-local"]{font-variant-numeric:tabular-nums}

/* 9. BUTTONS — Industrial
   ------------------------------------------------------------ */
.btn{
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.65rem 1.35rem;font-family:var(--tf-font-body);font-size:var(--tf-fs-base);
  font-weight:var(--tf-fw-bold);letter-spacing:.02em;line-height:1.15;text-align:center;
  white-space:nowrap;user-select:none;cursor:pointer;
  border-radius:var(--tf-radius-sm);border:1px solid transparent;outline:none;
  overflow:hidden;isolation:isolate;
  transition:transform var(--tf-dur-fast) var(--tf-ease),box-shadow var(--tf-dur) var(--tf-ease),background-color var(--tf-dur) var(--tf-ease),border-color var(--tf-dur) var(--tf-ease),color var(--tf-dur) var(--tf-ease);
}
.btn::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:currentColor;opacity:.55;z-index:0;pointer-events:none;transition:opacity var(--tf-dur) var(--tf-ease)}
.btn:hover::before{opacity:1}
.btn::after{content:"";position:absolute;inset:-50%;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.22) 50%,transparent 65%);transform:translateX(-100%);transition:transform 620ms var(--tf-ease);pointer-events:none;z-index:0}
.btn:hover::after{transform:translateX(100%)}
.btn>*{position:relative;z-index:1}
.btn:active{transform:translateY(1px)}
.btn:focus-visible{outline:2px solid var(--tf-yellow-500);outline-offset:3px}
.btn-sm{padding:.4rem .85rem;font-size:var(--tf-fs-sm);gap:.35rem}
.btn-sm::before{height:2px}
.btn-lg{padding:.9rem 1.85rem;font-size:var(--tf-fs-md);gap:.55rem}
.btn i{font-size:1.05em;line-height:1}

/* Primary — Ámbar BUFAL */
.btn-primary{
  color:var(--tf-gray-950);background:var(--tf-gradient-red);border-color:var(--tf-yellow-600);
  box-shadow:0 6px 18px rgba(245,158,11,.32),inset 0 1px 0 rgba(255,255,255,.35);
}
.btn-primary::before{background:var(--tf-gray-950);opacity:.9}
.btn-primary i{color:var(--tf-gray-950)}
.btn-primary:hover{
  background:linear-gradient(135deg,#FCD34D 0%,#F59E0B 100%);
  box-shadow:0 10px 26px rgba(245,158,11,.48),inset 0 1px 0 rgba(255,255,255,.45);
  transform:translateY(-2px);color:var(--tf-gray-950);
}
.btn-primary:active{box-shadow:0 4px 12px rgba(245,158,11,.38),inset 0 2px 6px rgba(0,0,0,.15)}

/* Secondary — Grafito */
.btn-secondary{
  color:var(--tf-white);background:linear-gradient(180deg,var(--tf-gray-700) 0%,var(--tf-gray-800) 100%);
  border-color:var(--tf-gray-900);box-shadow:0 4px 12px rgba(11,15,20,.25),inset 0 1px 0 rgba(255,255,255,.10);
}
.btn-secondary::before{background:var(--tf-yellow-500);opacity:.9}
.btn-secondary i{color:var(--tf-yellow-500)}
.btn-secondary:hover{background:linear-gradient(180deg,var(--tf-gray-600) 0%,var(--tf-gray-700) 100%);box-shadow:0 8px 20px rgba(11,15,20,.35),inset 0 1px 0 rgba(255,255,255,.14);transform:translateY(-2px);color:var(--tf-white)}

/* Success — Verde */
.btn-success{
  color:var(--tf-white);background:linear-gradient(135deg,#10B981 0%,#059669 100%);
  border-color:#047857;box-shadow:0 6px 18px rgba(16,185,129,.32),inset 0 1px 0 rgba(255,255,255,.18);
}
.btn-success::before{background:#6EE7B7;opacity:1}
.btn-success i{color:#6EE7B7}
.btn-success:hover{background:linear-gradient(135deg,#34D399 0%,#10B981 100%);box-shadow:0 10px 26px rgba(16,185,129,.48),inset 0 1px 0 rgba(255,255,255,.24);transform:translateY(-2px);color:var(--tf-white)}
.btn-success:focus-visible{outline-color:#6EE7B7;box-shadow:var(--tf-focus-ring-ok)}

/* Danger — Rojo */
.btn-danger{
  color:#FEF3C7;background:var(--tf-gradient-danger);border-color:#991B1B;
  box-shadow:0 6px 18px rgba(239,68,68,.42),inset 0 1px 0 rgba(255,255,255,.12);
}
.btn-danger::before{background:var(--tf-yellow-500);opacity:1}
.btn-danger i{color:var(--tf-yellow-500)}
.btn-danger:hover{
  color:#FEF3C7;background:linear-gradient(135deg,#EF4444 0%,#B91C1C 100%);
  box-shadow:0 10px 26px rgba(239,68,68,.58),inset 0 1px 0 rgba(255,255,255,.18);
  transform:translateY(-2px);
}

/* Warning — Ámbar (mismo que primary en semántica, contraste máximo) */
.btn-warning{
  color:var(--tf-gray-950);background:linear-gradient(135deg,#FCD34D 0%,#F59E0B 100%);
  border-color:var(--tf-yellow-600);box-shadow:0 6px 18px rgba(245,158,11,.35),inset 0 1px 0 rgba(255,255,255,.35);
}
.btn-warning::before{background:var(--tf-gray-950);opacity:.7}
.btn-warning i{color:var(--tf-gray-950)}
.btn-warning:hover{background:linear-gradient(135deg,#FDE68A 0%,#FBBF24 100%);box-shadow:0 10px 26px rgba(245,158,11,.55),inset 0 1px 0 rgba(255,255,255,.45);transform:translateY(-2px)}
.btn-warning:focus-visible{outline-color:var(--tf-gray-950)}

/* Light — Blanco */
.btn-light{
  color:var(--tf-text);background:linear-gradient(180deg,#FFFFFF 0%,#F3F4F6 100%);
  border-color:var(--tf-border-strong);box-shadow:0 4px 12px rgba(11,15,20,.14),inset 0 1px 0 rgba(255,255,255,.95);
}
.btn-light::before{background:var(--tf-yellow-500);opacity:.9}
.btn-light i{color:var(--tf-yellow-600)}
.btn-light:hover{background:linear-gradient(180deg,#FFFFFF 0%,#E5E7EB 100%);box-shadow:0 8px 20px rgba(11,15,20,.22),inset 0 1px 0 rgba(255,255,255,1);transform:translateY(-2px)}

/* Dark — Negro búfalo */
.btn-dark{
  color:var(--tf-yellow-500);background:linear-gradient(180deg,#1F2937 0%,#0B0F14 100%);
  border-color:#000;box-shadow:0 6px 18px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.06);
}
.btn-dark::before{background:var(--tf-yellow-500);opacity:1}
.btn-dark i{color:var(--tf-yellow-500)}
.btn-dark:hover{background:linear-gradient(180deg,#374151 0%,#1F2937 100%);box-shadow:0 10px 26px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.10);transform:translateY(-2px)}

/* Outlines */
.btn-outline-primary{color:var(--tf-yellow-600);background:transparent;border-color:var(--tf-yellow-500)}
.btn-outline-primary::before{background:var(--tf-yellow-500);opacity:1}
.btn-outline-primary i{color:var(--tf-yellow-500)}
.btn-outline-primary:hover{color:var(--tf-gray-950);background:var(--tf-gradient-red);box-shadow:0 8px 22px rgba(245,158,11,.42),inset 0 1px 0 rgba(255,255,255,.35);transform:translateY(-2px)}
.btn-outline-primary:hover i{color:var(--tf-gray-950)}

.btn-outline-secondary{color:var(--tf-text-muted);background:transparent;border-color:var(--tf-border-strong)}
.btn-outline-secondary::before{background:var(--tf-yellow-500);opacity:.7}
.btn-outline-secondary i{color:var(--tf-text-muted)}
.btn-outline-secondary:hover{color:var(--tf-white);background:linear-gradient(180deg,var(--tf-gray-600) 0%,var(--tf-gray-700) 100%);border-color:var(--tf-gray-700);box-shadow:0 8px 20px rgba(11,15,20,.30),inset 0 1px 0 rgba(255,255,255,.10);transform:translateY(-2px)}
.btn-outline-secondary:hover i{color:var(--tf-yellow-500)}

.btn-outline-success{color:var(--tf-success);background:transparent;border-color:var(--tf-success)}
.btn-outline-success::before{background:#6EE7B7;opacity:1}
.btn-outline-success i{color:var(--tf-success)}
.btn-outline-success:hover{color:var(--tf-white);background:linear-gradient(135deg,#10B981 0%,#059669 100%);border-color:#047857;box-shadow:0 8px 22px rgba(16,185,129,.42),inset 0 1px 0 rgba(255,255,255,.18);transform:translateY(-2px)}
.btn-outline-success:hover i{color:#6EE7B7}

.btn-outline-danger{color:var(--tf-red-500);background:transparent;border-color:var(--tf-red-500)}
.btn-outline-danger::before{background:var(--tf-yellow-500);opacity:1}
.btn-outline-danger i{color:var(--tf-red-500)}
.btn-outline-danger:hover{color:#FEF3C7;background:var(--tf-gradient-danger);border-color:#991B1B;box-shadow:0 8px 22px rgba(239,68,68,.48),inset 0 1px 0 rgba(255,255,255,.12);transform:translateY(-2px)}
.btn-outline-danger:hover i{color:var(--tf-yellow-500)}

.btn-outline-warning{color:var(--tf-warning);background:transparent;border-color:var(--tf-yellow-500)}
.btn-outline-warning::before{background:var(--tf-warning);opacity:1}
.btn-outline-warning i{color:var(--tf-warning)}
.btn-outline-warning:hover{color:var(--tf-gray-950);background:linear-gradient(135deg,#FCD34D 0%,#F59E0B 100%);border-color:var(--tf-yellow-600);box-shadow:0 8px 22px rgba(245,158,11,.48),inset 0 1px 0 rgba(255,255,255,.35);transform:translateY(-2px)}
.btn-outline-warning:hover i{color:var(--tf-gray-950)}

.btn-outline-light{color:var(--tf-white);background:transparent;border-color:rgba(255,255,255,.5)}
.btn-outline-light::before{background:var(--tf-white);opacity:1}
.btn-outline-light i{color:var(--tf-white)}
.btn-outline-light:hover{color:var(--tf-gray-900);background:var(--tf-white);border-color:var(--tf-white);box-shadow:0 8px 22px rgba(0,0,0,.30),inset 0 1px 0 rgba(255,255,255,.95);transform:translateY(-2px)}
.btn-outline-light:hover i{color:var(--tf-yellow-600)}

.btn-ghost{padding:.55rem .9rem;color:var(--tf-text-muted);background:transparent;border-color:transparent;font-weight:var(--tf-fw-semibold);box-shadow:none}
.btn-ghost i{color:inherit;transition:color var(--tf-dur-fast) var(--tf-ease)}
.btn-ghost::before{content:"";position:absolute;inset:auto 12px 6px 12px;height:2px;background:var(--tf-yellow-500);border-radius:var(--tf-radius-pill);transform:scaleX(0);transform-origin:left center;opacity:1;transition:transform var(--tf-dur) var(--tf-ease);z-index:1}
.btn-ghost::after{display:none}
.btn-ghost:hover{color:var(--tf-text);background:transparent;box-shadow:none}
.btn-ghost:hover::before{transform:scaleX(1)}
.btn-ghost:hover i{color:var(--tf-yellow-500)}

.tf-actions{display:flex;justify-content:space-between;align-items:center;gap:var(--tf-space-3);margin-top:var(--tf-space-6);padding-top:var(--tf-space-4);border-top:1px solid var(--tf-border);flex-wrap:wrap}
.tf-actions.tf-actions-center{justify-content:center}
.tf-actions>.tf-actions-end{display:flex;gap:var(--tf-space-2);flex-wrap:wrap;justify-content:flex-end}

/* 10. BADGES
   ------------------------------------------------------------ */
.badge{
  font-family:var(--tf-font-body);font-size:.72rem;font-weight:var(--tf-fw-semibold);
  letter-spacing:.02em;padding:.35em .75em;border-radius:var(--tf-radius-pill);
  display:inline-flex;align-items:center;justify-content:center;gap:.35em;
  border:1px solid transparent;line-height:1.1;text-transform:uppercase;
  vertical-align:middle;white-space:nowrap;
}
.badge i{font-size:.9em}
.badge.bg-success{background:var(--tf-success-bg)!important;color:var(--tf-success)!important;border-color:rgba(16,185,129,.35)}
.badge.bg-warning{background:var(--tf-warning-bg)!important;color:var(--tf-warning)!important;border-color:rgba(245,158,11,.35)}
.badge.bg-info{background:var(--tf-info-bg)!important;color:var(--tf-info)!important;border-color:rgba(59,130,246,.35)}
.badge.bg-primary{background:var(--tf-yellow-050)!important;color:var(--tf-yellow-600)!important;border-color:rgba(245,158,11,.35)}
.badge.bg-danger{background:var(--tf-danger-bg)!important;color:var(--tf-danger)!important;border-color:rgba(239,68,68,.35)}
.badge.bg-light{background:var(--tf-surface-3)!important;color:var(--tf-text-muted)!important;border-color:var(--tf-border)}

/* 11. ALERTS
   ------------------------------------------------------------ */
.alert{
  border-radius:var(--tf-radius-sm);border:1px solid var(--tf-border);
  padding:var(--tf-space-3) var(--tf-space-4);font-size:var(--tf-fs-sm);font-weight:var(--tf-fw-medium);
  display:flex;align-items:center;justify-content:center;gap:var(--tf-space-2);text-align:center;
  animation:tf-slide-down var(--tf-dur-slow) var(--tf-ease);
  position:relative;overflow:hidden;margin-bottom:var(--tf-space-4);
}
.alert::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px}
.alert-success{background:var(--tf-success-bg);color:var(--tf-success);border-color:rgba(16,185,129,.3)}
.alert-success::before{background:var(--tf-success)}
.alert-danger{background:var(--tf-danger-bg);color:var(--tf-red-600);border-color:rgba(239,68,68,.3)}
.alert-danger::before{background:var(--tf-red-500)}

/* 12. TABLES
   ------------------------------------------------------------ */
.table-responsive{border-radius:var(--tf-radius-sm);border:1px solid var(--tf-border);overflow:auto;background:var(--tf-surface)}
.table{width:100%;margin:0;border-collapse:separate;border-spacing:0;font-size:var(--tf-fs-sm);color:var(--tf-text);background:transparent}
.table thead th{background:var(--tf-surface-2);color:var(--tf-text-muted);font-size:var(--tf-fs-xs);font-weight:var(--tf-fw-semibold);text-transform:uppercase;letter-spacing:var(--tf-tracking-wide);padding:var(--tf-space-3) var(--tf-space-4);border-bottom:1px solid var(--tf-border);text-align:left;white-space:nowrap;position:sticky;top:0;z-index:1}
.table tbody td{padding:var(--tf-space-3) var(--tf-space-4);border-bottom:1px solid var(--tf-border);vertical-align:middle;color:var(--tf-text);transition:background-color var(--tf-dur-fast) var(--tf-ease);text-align:left}
.table tbody tr:last-child td{border-bottom:none}
.table-hover tbody tr:hover td{background:var(--tf-yellow-050)}
.table tbody tr td:first-child{font-family:var(--tf-font-mono);font-weight:var(--tf-fw-semibold);color:var(--tf-text-muted);font-size:var(--tf-fs-xs);text-align:center}
.table td:has(.badge),.table th:has(+td .badge){text-align:center}
.table tbody td[colspan]{text-align:center!important;padding:var(--tf-space-12) var(--tf-space-4)!important}
.table tbody td[colspan] i{color:var(--tf-text-subtle);opacity:.5;display:block;margin-bottom:var(--tf-space-2)}
.table tbody td[colspan] p{color:var(--tf-text-muted);margin:var(--tf-space-3) 0 0;text-align:center}
.table .rate-amount{color:var(--tf-success);font-weight:var(--tf-fw-bold);font-variant-numeric:tabular-nums}

/* 13. PAGINATION
   ------------------------------------------------------------ */
.pagination{display:flex;gap:var(--tf-space-1);padding:0;margin:var(--tf-space-6) 0 0;list-style:none;justify-content:center;flex-wrap:wrap}
.page-link{
  display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 var(--tf-space-2);
  border-radius:var(--tf-radius-sm);border:1px solid var(--tf-border);background:var(--tf-surface);
  color:var(--tf-text-muted);font-size:var(--tf-fs-sm);font-weight:var(--tf-fw-medium);
  transition:all var(--tf-dur-fast) var(--tf-ease);text-decoration:none;
}
[data-theme="dark"] .page-link{background:var(--tf-surface-2)}
.page-link:hover{border-color:var(--tf-yellow-500);color:var(--tf-yellow-600);background:var(--tf-yellow-050)}
.page-item.active .page-link{background:var(--tf-gradient-red);border-color:var(--tf-yellow-600);color:var(--tf-gray-950);box-shadow:var(--tf-shadow-red)}

/* 14. COMPONENTES CUSTOM
   ------------------------------------------------------------ */
.address-block{
  background:var(--tf-surface);border:1px solid var(--tf-border);border-left:3px solid var(--tf-yellow-500);
  border-radius:var(--tf-radius-sm);padding:var(--tf-space-4);height:100%;text-align:center;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  transition:box-shadow var(--tf-dur) var(--tf-ease),transform var(--tf-dur) var(--tf-ease);
}
.address-block:hover{box-shadow:var(--tf-shadow-md);transform:translateY(-2px)}
.address-block h6{margin:0 0 var(--tf-space-2);font-size:var(--tf-fs-sm);font-weight:var(--tf-fw-semibold);text-transform:uppercase;letter-spacing:var(--tf-tracking-wide);color:var(--tf-text-muted);display:flex;align-items:center;justify-content:center;gap:var(--tf-space-2)}
.address-block h6 i{font-size:1.1rem}
.address-block p{margin:0 0 var(--tf-space-1);color:var(--tf-text);text-align:center}
.address-block p:last-child{margin-bottom:0}

.address-date{color:var(--tf-text-muted)!important;font-size:var(--tf-fs-sm);font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;justify-content:center;gap:var(--tf-space-1);margin-top:var(--tf-space-2)!important}

.field-label{display:block;font-size:var(--tf-fs-xs);font-weight:var(--tf-fw-semibold);text-transform:uppercase;letter-spacing:var(--tf-tracking-wide);color:var(--tf-text-subtle);margin-bottom:var(--tf-space-1);text-align:center}
.field-value{margin:0;font-size:var(--tf-fs-md);font-weight:var(--tf-fw-medium);color:var(--tf-text);font-variant-numeric:tabular-nums;text-align:center}
.rate-amount{color:var(--tf-success);font-weight:var(--tf-fw-bold);font-variant-numeric:tabular-nums;font-size:var(--tf-fs-md);letter-spacing:-.01em;text-align:center}
.empty-value{color:var(--tf-text-subtle);font-style:italic}

/* 15. DASHBOARD SHELL
   ------------------------------------------------------------ */
.tf-shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh;width:100%}
.tf-sidebar{background:var(--tf-gradient-dark);color:var(--tf-white);padding:var(--tf-space-6) var(--tf-space-4);border-right:1px solid rgba(255,255,255,.06);position:sticky;top:0;height:100vh;overflow-y:auto}
.tf-sidebar .tf-logo{font-family:var(--tf-font-display);font-weight:var(--tf-fw-bold);font-size:var(--tf-fs-lg);letter-spacing:-.02em;display:flex;align-items:center;justify-content:center;gap:var(--tf-space-2);margin-bottom:var(--tf-space-8);padding-bottom:var(--tf-space-4);border-bottom:1px solid rgba(255,255,255,.08);color:var(--tf-white)}
.tf-logo-mark{width:32px;height:32px;border-radius:var(--tf-radius-sm);background:var(--tf-gradient-red);display:grid;place-items:center;box-shadow:var(--tf-shadow-red);flex-shrink:0}
.tf-logo-mark i{color:var(--tf-gray-950);font-size:1rem}

.tf-nav{list-style:none;padding:0;margin:0;display:grid;gap:2px}
.tf-nav a{display:flex;align-items:center;justify-content:flex-start;gap:var(--tf-space-3);padding:.65rem var(--tf-space-3);color:rgba(255,255,255,.72);border-radius:var(--tf-radius-sm);font-size:var(--tf-fs-sm);font-weight:var(--tf-fw-medium);transition:all var(--tf-dur-fast) var(--tf-ease);border-left:2px solid transparent}
.tf-nav a:hover{background:rgba(255,255,255,.05);color:var(--tf-white)}
.tf-nav a.is-active{background:linear-gradient(90deg,rgba(245,158,11,.22),transparent);color:var(--tf-white);border-left-color:var(--tf-yellow-500)}
.tf-nav a i{font-size:1.05rem;opacity:.9}

.tf-main{display:flex;flex-direction:column;min-width:0;width:100%}
.tf-topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--tf-space-4);padding:var(--tf-space-4) var(--tf-space-6);background:var(--tf-surface-overlay);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--tf-border);position:sticky;top:0;z-index:5;flex-wrap:wrap}
.tf-topbar__toggle,.tf-topbar__theme{background:transparent;border:1px solid var(--tf-border);color:var(--tf-text);width:38px;height:38px;border-radius:var(--tf-radius-sm);display:none;align-items:center;justify-content:center;cursor:pointer;transition:all var(--tf-dur-fast) var(--tf-ease)}
.tf-topbar__toggle:hover,.tf-topbar__theme:hover{background:var(--tf-surface-3);border-color:var(--tf-yellow-500);color:var(--tf-yellow-600)}
.tf-topbar__theme{display:inline-flex}
.tf-topbar__user{display:inline-flex;align-items:center;gap:var(--tf-space-2);margin-left:auto;font-size:var(--tf-fs-sm);color:var(--tf-text-muted)}
@media (max-width:991.98px){.tf-topbar__toggle{display:inline-flex}}
.tf-content{padding:var(--tf-space-6);flex:1;width:100%;max-width:1280px;margin-inline:auto}

/* 16. LOGIN
   ------------------------------------------------------------ */
.tf-login{min-height:100vh;width:100%;display:flex;align-items:center;justify-content:center;padding:var(--tf-space-6);background:transparent}
.tf-login-card{
  width:100%;max-width:420px;background:var(--tf-surface-overlay);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border:1px solid var(--tf-border);border-radius:var(--tf-radius-lg);
  padding:var(--tf-space-10) var(--tf-space-8);
  box-shadow:0 24px 60px rgba(0,0,0,.15),0 8px 24px rgba(0,0,0,.10);
  animation:tf-scale-in var(--tf-dur-slow) var(--tf-ease);
  position:relative;overflow:hidden;text-align:center;
}
.tf-login-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--tf-gradient-highway)}
.tf-login-card h2{font-family:var(--tf-font-display);font-size:var(--tf-fs-2xl);text-align:center;margin-bottom:var(--tf-space-2)}
.tf-login-card p.tf-sub{text-align:center;color:var(--tf-text-muted);font-size:var(--tf-fs-sm);margin-bottom:var(--tf-space-6)}
.tf-login-card .form-label{text-align:left}
.tf-login-card .btn{width:100%;margin-top:var(--tf-space-2)}

/* 17. ANIMACIONES
   ------------------------------------------------------------ */
@keyframes tf-fade-in{from{opacity:0}to{opacity:1}}
@keyframes tf-slide-down{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@keyframes tf-scale-in{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
@keyframes tf-slide-up{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes tf-shine{0%{background-position:-200% 0}100%{background-position:200% 0}}

.card{animation:tf-slide-up var(--tf-dur-slow) var(--tf-ease) both}
.row>[class*="col-"]:nth-child(1) .card{animation-delay:0ms}
.row>[class*="col-"]:nth-child(2) .card{animation-delay:60ms}
.row>[class*="col-"]:nth-child(3) .card{animation-delay:120ms}
.tf-skeleton{background:linear-gradient(90deg,var(--tf-surface-3) 25%,var(--tf-surface-2) 50%,var(--tf-surface-3) 75%);background-size:200% 100%;animation:tf-shine 1.4s linear infinite;border-radius:var(--tf-radius-sm)}

/* 18. RESPONSIVE BASE
   ------------------------------------------------------------ */
@media (max-width:991.98px){
  .tf-shell{grid-template-columns:1fr}
  .tf-sidebar{position:fixed;left:0;top:0;bottom:0;width:260px;transform:translateX(-100%);transition:transform var(--tf-dur) var(--tf-ease);z-index:50}
  .tf-sidebar.is-open{transform:translateX(0);box-shadow:var(--tf-shadow-lg)}
  .tf-content{padding:var(--tf-space-4)}
  .card-body{padding:var(--tf-space-4)}
  .card-header{padding:var(--tf-space-3) var(--tf-space-4)}
}
@media (max-width:767.98px){
  .section-title{font-size:.72rem}
  .tf-actions{flex-direction:column-reverse;align-items:stretch}
  .tf-actions>*,.tf-actions>.tf-actions-end{width:100%}
  .tf-actions>.tf-actions-end{justify-content:stretch}
  .tf-actions .btn{width:100%}
}
@media (max-width:575.98px){
  body{font-size:.9rem}
  .tf-login-card{padding:var(--tf-space-6) var(--tf-space-5)}
  .tf-login-card h2{font-size:var(--tf-fs-xl)}
  .btn{padding:.5rem .9rem}
  .table{font-size:var(--tf-fs-xs)}
  .card-body{padding:var(--tf-space-3)}
  .tf-content{padding:var(--tf-space-3)}
}

/* 19. UTILIDADES
   ------------------------------------------------------------ */
.tf-center{display:flex;align-items:center;justify-content:center}
.tf-center-col{display:flex;flex-direction:column;align-items:center;justify-content:center}
.tf-text-center{text-align:center!important}
.tf-text-left{text-align:left!important}
.tf-text-right{text-align:right!important}
.tf-mx-auto{margin-inline:auto!important}
.tf-my-auto{margin-block:auto!important}
.tf-divider{height:1px;background:var(--tf-border);margin:var(--tf-space-6) auto;border:0;max-width:100%}
.tf-divider.tf-divider-short{max-width:80px}
.tf-text-muted{color:var(--tf-text-muted)!important}
.tf-text-mono{font-family:var(--tf-font-mono);font-variant-numeric:tabular-nums}
.tf-tabular{font-variant-numeric:tabular-nums}

.tf-grid{display:grid;gap:var(--tf-space-4)}
.tf-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.tf-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.tf-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.tf-grid--auto{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.tf-grid--form{grid-template-columns:repeat(12,minmax(0,1fr))}

.tf-col-12{grid-column:span 12}
.tf-col-6{grid-column:span 6}
.tf-col-4{grid-column:span 4}
.tf-col-3{grid-column:span 3}

.tf-flex{display:flex;gap:var(--tf-space-3);align-items:center}
.tf-flex--between{display:flex;gap:var(--tf-space-3);align-items:center;justify-content:space-between;flex-wrap:wrap}
.tf-flex--center{display:flex;gap:var(--tf-space-3);align-items:center;justify-content:center}
.tf-flex--end{display:flex;gap:var(--tf-space-3);align-items:center;justify-content:flex-end}
.tf-flex--col{flex-direction:column;align-items:stretch}

.tf-mt-2{margin-top:var(--tf-space-2)}.tf-mt-4{margin-top:var(--tf-space-4)}.tf-mt-6{margin-top:var(--tf-space-6)}
.tf-mb-2{margin-bottom:var(--tf-space-2)}.tf-mb-4{margin-bottom:var(--tf-space-4)}.tf-mb-6{margin-bottom:var(--tf-space-6)}
.tf-p-4{padding:var(--tf-space-4)}.tf-p-6{padding:var(--tf-space-6)}.tf-w-full{width:100%}
.tf-field{display:flex;flex-direction:column;gap:var(--tf-space-1)}

/* 20. PAGE HEADER
   ------------------------------------------------------------ */
.tf-page-header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--tf-space-4);flex-wrap:wrap;margin-bottom:var(--tf-space-6)}
.tf-page-header>div:first-child{display:flex;flex-direction:column;gap:var(--tf-space-1);min-width:0}
.tf-page-header h1{font-family:var(--tf-font-display);font-size:var(--tf-fs-2xl);font-weight:var(--tf-fw-bold);letter-spacing:-.02em;line-height:1.15;color:var(--tf-text);margin:0;display:inline-flex;align-items:center;gap:var(--tf-space-3);flex-wrap:wrap}
.tf-page-header h1 i{color:var(--tf-yellow-500);font-size:1.1em;filter:drop-shadow(0 2px 6px rgba(245,158,11,.35))}
.tf-page-header p{margin:0;font-size:var(--tf-fs-sm);color:var(--tf-text-muted);line-height:1.4}
.tf-page-header>.btn{flex-shrink:0}
.tf-page-header__id{font-family:var(--tf-font-mono);font-size:.85em;color:var(--tf-yellow-600);background:var(--tf-yellow-050);border:1px solid rgba(245,158,11,.35);padding:2px 10px;border-radius:var(--tf-radius-pill);margin-left:var(--tf-space-2);vertical-align:middle}
[data-theme="dark"] .tf-page-header__id{color:var(--tf-yellow-500)}
@media (max-width:991.98px){.tf-page-header h1{font-size:var(--tf-fs-xl)}}
@media (max-width:575.98px){.tf-page-header{flex-direction:column;align-items:flex-start;margin-bottom:var(--tf-space-4)}.tf-page-header h1{font-size:var(--tf-fs-lg)}}

/* 21. FORM PAGE
   ------------------------------------------------------------ */
.tf-form-page{display:grid;grid-template-columns:minmax(0,1fr) var(--tf-aside-width);gap:var(--tf-gap);align-items:start;width:100%}
@media (max-width:1100px){.tf-form-page{grid-template-columns:minmax(0,1fr)}}
.tf-form-page__main{display:flex;flex-direction:column;gap:var(--tf-space-5);min-width:0}
.tf-form-page__aside{display:flex;flex-direction:column;gap:var(--tf-space-4);position:sticky;top:var(--tf-space-6);align-self:start}
@media (max-width:1100px){.tf-form-page__aside{position:static;top:auto}}
.tf-form-card{background:var(--tf-surface-overlay);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--tf-border);border-radius:var(--tf-radius-md);box-shadow:var(--tf-shadow-md);overflow:hidden}

/* Layout A: bloques numerados */
.tf-form-section{background:var(--tf-surface-overlay);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--tf-border);border-radius:var(--tf-radius-md);box-shadow:var(--tf-shadow-sm);overflow:hidden;transition:box-shadow var(--tf-dur) var(--tf-ease),border-color var(--tf-dur) var(--tf-ease)}
.tf-form-section:hover{box-shadow:var(--tf-shadow-md);border-color:var(--tf-border-strong)}
.tf-form-section__header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--tf-space-4);padding:var(--tf-space-4) var(--tf-space-5);border-bottom:1px solid var(--tf-border);background:linear-gradient(180deg,var(--tf-white-overlay),transparent);position:relative}
.tf-form-section__header::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--tf-gradient-highway);opacity:.85}
.tf-form-section__num{width:38px;height:38px;border-radius:var(--tf-radius-sm);background:var(--tf-gradient-red);color:var(--tf-gray-950);display:grid;place-items:center;font-family:var(--tf-font-mono);font-size:var(--tf-fs-sm);font-weight:var(--tf-fw-bold);letter-spacing:.02em;box-shadow:var(--tf-shadow-red);flex-shrink:0}
.tf-form-section__title-wrap{display:flex;flex-direction:column;gap:2px;min-width:0}
.tf-form-section__title-wrap h3{font-family:var(--tf-font-display);font-size:var(--tf-fs-md);font-weight:var(--tf-fw-semibold);color:var(--tf-text);margin:0;line-height:1.2}
.tf-form-section__title-wrap p{margin:0;font-size:var(--tf-fs-xs);color:var(--tf-text-muted)}
.tf-form-section__icon{color:var(--tf-text-subtle);font-size:1.4rem;flex-shrink:0}
.tf-form-section__body{padding:var(--tf-space-5)}

/* Layout B: bloques */
.tf-form-block{padding:var(--tf-space-6);border-bottom:1px solid var(--tf-border);position:relative}
.tf-form-block--last,.tf-form-block:last-child{border-bottom:none}
.tf-form-block__head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--tf-space-3);align-items:start;margin-bottom:var(--tf-space-5)}
.tf-form-block__icon{display:grid;place-items:center;width:38px;height:38px;border-radius:var(--tf-radius-sm);background:var(--tf-yellow-050);color:var(--tf-yellow-600);font-size:1.05rem;flex-shrink:0}
[data-theme="dark"] .tf-form-block__icon{color:var(--tf-yellow-500)}
.tf-form-block__text h2{font-family:var(--tf-font-display);font-size:var(--tf-fs-md);font-weight:var(--tf-fw-semibold);color:var(--tf-text);margin:0 0 2px;line-height:1.2;letter-spacing:-.01em}
.tf-form-block__text p{margin:0;font-size:var(--tf-fs-xs);color:var(--tf-text-muted);line-height:1.4}
.tf-form-block__body{padding-left:calc(38px + var(--tf-space-3))}
.tf-form-block--status .tf-form-block__icon{background:var(--tf-gradient-red);color:var(--tf-gray-950);box-shadow:0 6px 18px rgba(245,158,11,.28)}

@media (max-width:575.98px){
  .tf-form-block{padding:var(--tf-space-4)}
  .tf-form-block__body{padding-left:0}
  .tf-form-block__icon{display:none}
  .tf-form-block__head{grid-template-columns:1fr}
  .tf-form-section__header{padding:var(--tf-space-3) var(--tf-space-4);gap:var(--tf-space-3)}
  .tf-form-section__body{padding:var(--tf-space-4)}
  .tf-form-section__num{width:34px;height:34px;font-size:var(--tf-fs-xs)}
  .tf-form-section__icon{display:none}
}

.tf-form-row{display:grid;gap:var(--tf-space-4);grid-template-columns:repeat(12,minmax(0,1fr))}
.tf-form-row+.tf-form-row{margin-top:var(--tf-space-4)}
.tf-form-row .tf-col-12{grid-column:span 12}
.tf-form-row .tf-col-6{grid-column:span 6}
.tf-form-row .tf-col-4{grid-column:span 4}
.tf-form-row .tf-col-3{grid-column:span 3}
.tf-form-row .tf-col-8{grid-column:span 8}
@media (max-width:767.98px){
  .tf-form-row .tf-col-6,.tf-form-row .tf-col-4,.tf-form-row .tf-col-3,.tf-form-row .tf-col-8{grid-column:span 12}
}

.tf-form-section .form-label,.tf-form-page .form-label{display:inline-flex;align-items:center;gap:4px;font-size:var(--tf-fs-sm);font-weight:var(--tf-fw-semibold);color:var(--tf-text);text-transform:none;letter-spacing:.005em;margin-bottom:var(--tf-space-2)}
.tf-form-section .form-label .req,.tf-form-page .form-label .req{color:var(--tf-red-500);font-weight:var(--tf-fw-bold);line-height:1}
.tf-form-section .form-label .opt,.tf-form-page .form-label .opt{margin-left:auto;padding:2px 8px;font-size:.65rem;font-weight:var(--tf-fw-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--tf-text-subtle);background:var(--tf-surface-3);border:1px solid var(--tf-border);border-radius:var(--tf-radius-pill)}

.tf-field-hint{font-size:var(--tf-fs-xs);color:var(--tf-text-subtle);line-height:1.4;margin-top:2px}
.tf-field-error{display:inline-block;font-size:var(--tf-fs-xs);color:var(--tf-red-500);font-weight:var(--tf-fw-medium);margin-top:2px;line-height:1.3}
.tf-form-page .form-control.is-invalid,.tf-form-page .form-select.is-invalid{border-color:var(--tf-red-500)}

.tf-form-page .form-control,.tf-form-page .form-select{background:var(--tf-surface-2);border:1px solid var(--tf-border-strong);color:var(--tf-text);padding:.6rem .85rem;border-radius:var(--tf-radius-sm);transition:border-color var(--tf-dur-fast) var(--tf-ease),box-shadow var(--tf-dur-fast) var(--tf-ease),background-color var(--tf-dur-fast) var(--tf-ease)}
.tf-form-page .form-control::placeholder{color:var(--tf-text-subtle)}
.tf-form-page .form-control:hover,.tf-form-page .form-select:hover{border-color:var(--tf-gray-400)}
.tf-form-page .form-control:focus,.tf-form-page .form-select:focus{outline:none;border-color:var(--tf-yellow-500);box-shadow:var(--tf-focus-ring);background:var(--tf-surface-2)}

.tf-input-unit{display:flex;align-items:stretch;border:1px solid var(--tf-border-strong);border-radius:var(--tf-radius-sm);background:var(--tf-surface-2);overflow:hidden;transition:border-color var(--tf-dur-fast) var(--tf-ease),box-shadow var(--tf-dur-fast) var(--tf-ease)}
.tf-input-unit:focus-within{border-color:var(--tf-yellow-500);box-shadow:var(--tf-focus-ring)}
.tf-input-unit .form-control{border:none!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;padding:.55rem .75rem}
.tf-input-unit .form-control:focus{box-shadow:none!important;outline:none}
.tf-input-unit__prefix,.tf-input-unit__suffix{display:grid;place-items:center;padding:0 .75rem;font-size:var(--tf-fs-sm);font-weight:var(--tf-fw-semibold);color:var(--tf-text-muted);background:var(--tf-surface-3);flex-shrink:0;min-width:42px}
.tf-input-unit__prefix{border-inline-end:1px solid var(--tf-border)}
.tf-input-unit__suffix{border-inline-start:1px solid var(--tf-border)}

.tf-input-icon,.tf-input-icon-wrap{position:relative;display:flex;align-items:center;width:100%}
.tf-input-icon>i,.tf-input-icon-wrap>i{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);color:var(--tf-text-subtle);font-size:1rem;pointer-events:none;z-index:1;transition:color var(--tf-dur-fast) var(--tf-ease)}
.tf-input-icon .form-control,.tf-input-icon-wrap .form-control{padding-left:2.5rem}
.tf-input-icon:focus-within>i,.tf-input-icon-wrap:focus-within>i{color:var(--tf-yellow-500)}
.tf-input-icon-wrap--action .form-control{padding-right:2.75rem}
.tf-input-icon-btn{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:var(--tf-radius-xs);border:none;background:transparent;color:var(--tf-text-muted);cursor:pointer;display:grid;place-items:center;font-size:.95rem;transition:background-color var(--tf-dur-fast) var(--tf-ease),color var(--tf-dur-fast) var(--tf-ease)}
.tf-input-icon-btn:hover{background:var(--tf-surface-3);color:var(--tf-text)}
.tf-input-icon-btn:focus-visible{outline:2px solid var(--tf-yellow-500);outline-offset:2px}

.tf-form-aside-card{background:var(--tf-surface-overlay);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--tf-border);border-radius:var(--tf-radius-md);box-shadow:var(--tf-shadow-sm);padding:var(--tf-space-5);display:flex;flex-direction:column;gap:var(--tf-space-3);transition:box-shadow var(--tf-dur) var(--tf-ease),border-color var(--tf-dur) var(--tf-ease)}
.tf-form-aside-card:hover{box-shadow:var(--tf-shadow-md);border-color:var(--tf-border-strong)}
.tf-form-aside-card__title{display:flex;align-items:center;gap:var(--tf-space-2);font-family:var(--tf-font-display);font-size:var(--tf-fs-sm);font-weight:var(--tf-fw-semibold);text-transform:uppercase;letter-spacing:var(--tf-tracking-wide);color:var(--tf-text-muted);margin:0}
.tf-form-aside-card__title i{color:var(--tf-yellow-500);font-size:1rem}
.tf-form-aside-card__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--tf-space-2)}
.tf-form-aside-card__list li{display:flex;align-items:center;gap:var(--tf-space-2);font-size:var(--tf-fs-sm);color:var(--tf-text-muted);line-height:1.4}
.tf-form-aside-card__list li i{color:var(--tf-success);font-size:1rem;flex-shrink:0}
.tf-form-aside-card__list li .bi-1-circle,.tf-form-aside-card__list li .bi-2-circle,.tf-form-aside-card__list li .bi-3-circle,.tf-form-aside-card__list li .bi-4-circle,.tf-form-aside-card__list li .bi-5-circle,.tf-form-aside-card__list li .bi-6-circle,.tf-form-aside-card__list li .bi-7-circle{color:var(--tf-yellow-500)}
.tf-form-aside-card__hint{font-size:var(--tf-fs-xs);color:var(--tf-text-subtle);line-height:1.5;margin:0;padding-top:var(--tf-space-2);border-top:1px dashed var(--tf-border)}
.tf-form-aside-actions{display:flex;flex-direction:column;gap:var(--tf-space-2)}
.tf-form-aside-actions .btn{width:100%;justify-content:center}
.tf-form-aside-actions .btn-lg{padding:.85rem 1.5rem;font-size:var(--tf-fs-base)}

.tf-rail-card{background:var(--tf-surface-overlay);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--tf-border);border-radius:var(--tf-radius-md);box-shadow:var(--tf-shadow-sm);padding:var(--tf-space-4);display:flex;flex-direction:column;gap:var(--tf-space-3)}
.tf-rail-card--actions{gap:var(--tf-space-2)}
.tf-rail-card__head{display:flex;align-items:center;gap:var(--tf-space-2);font-family:var(--tf-font-display);font-size:var(--tf-fs-xs);font-weight:var(--tf-fw-semibold);text-transform:uppercase;letter-spacing:var(--tf-tracking-wide);color:var(--tf-text-muted)}
.tf-rail-card__head i{color:var(--tf-yellow-500);font-size:1rem}
.tf-rail-card__hint{font-size:var(--tf-fs-xs);color:var(--tf-text-subtle);line-height:1.4;margin:4px 0 0;padding-top:var(--tf-space-2);border-top:1px dashed var(--tf-border)}
.tf-rail-card__hint .req{color:var(--tf-red-500);font-weight:700}

.tf-rail-card--user{gap:var(--tf-space-4)}
.tf-rail-user{display:flex;align-items:center;gap:var(--tf-space-3)}
.tf-rail-user__avatar{width:48px;height:48px;border-radius:50%;background:var(--tf-gradient-red);color:var(--tf-gray-950);display:grid;place-items:center;font-size:1.35rem;box-shadow:var(--tf-shadow-red);flex-shrink:0}
.tf-rail-user__info{display:flex;flex-direction:column;gap:2px;min-width:0}
.tf-rail-user__info strong{font-family:var(--tf-font-display);font-size:var(--tf-fs-base);font-weight:var(--tf-fw-semibold);color:var(--tf-text);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tf-rail-user__role{font-size:var(--tf-fs-xs);color:var(--tf-text-muted);text-transform:uppercase;letter-spacing:var(--tf-tracking-wide);font-weight:var(--tf-fw-semibold)}
.tf-rail-card--user .tf-rail-card__hint{display:flex;align-items:flex-start;gap:var(--tf-space-2)}
.tf-rail-card--user .tf-rail-card__hint i{color:var(--tf-success);font-size:1rem;flex-shrink:0;margin-top:1px}

.tf-progress{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.tf-progress__step{display:flex;align-items:center;gap:var(--tf-space-3);padding:.5rem .6rem;border-radius:var(--tf-radius-sm);font-size:var(--tf-fs-sm);color:var(--tf-text-muted);transition:background-color var(--tf-dur-fast) var(--tf-ease),color var(--tf-dur-fast) var(--tf-ease)}
.tf-progress__dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--tf-border-strong);background:transparent;flex-shrink:0;position:relative;transition:all var(--tf-dur-fast) var(--tf-ease)}
.tf-progress__label{line-height:1.2}
.tf-progress__step.is-current{background:var(--tf-yellow-050);color:var(--tf-text);font-weight:var(--tf-fw-semibold)}
.tf-progress__step.is-current .tf-progress__dot{border-color:var(--tf-yellow-500);box-shadow:0 0 0 4px rgba(245,158,11,.15)}
.tf-progress__step.is-complete{color:var(--tf-text-muted)}
.tf-progress__step.is-complete .tf-progress__dot{background:var(--tf-success);border-color:var(--tf-success)}
.tf-progress__step.is-complete .tf-progress__dot::after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}

.tf-route{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--tf-space-4);align-items:start}
@media (max-width:767.98px){.tf-route{grid-template-columns:1fr}}
.tf-route__point{display:flex;flex-direction:column;gap:var(--tf-space-4);padding:var(--tf-space-4);background:var(--tf-surface-2);border:1px solid var(--tf-border);border-radius:var(--tf-radius-sm)}
.tf-route__point--pickup{border-top:3px solid var(--tf-success)}
.tf-route__point--dropoff{border-top:3px solid var(--tf-yellow-500)}
.tf-route__point-head{display:flex;align-items:center;gap:var(--tf-space-2)}
.tf-route__point-head h3{font-family:var(--tf-font-display);font-size:var(--tf-fs-sm);font-weight:var(--tf-fw-semibold);text-transform:uppercase;letter-spacing:var(--tf-tracking-wide);color:var(--tf-text);margin:0}
.tf-route__dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.tf-route__dot--pickup{background:var(--tf-success);box-shadow:0 0 0 4px var(--tf-success-bg)}
.tf-route__dot--dropoff{background:var(--tf-yellow-500);box-shadow:0 0 0 4px var(--tf-yellow-050)}
.tf-route__fields{display:flex;flex-direction:column;gap:var(--tf-space-3)}
.tf-route__pair{display:grid;grid-template-columns:1fr 1fr;gap:var(--tf-space-2)}
.tf-route__connector{display:grid;place-items:center;align-self:center;width:40px;height:40px;border-radius:50%;background:var(--tf-surface-3);color:var(--tf-text-muted);border:1px solid var(--tf-border);font-size:1.1rem}
@media (max-width:767.98px){.tf-route__connector{transform:rotate(90deg);margin-inline:auto}}

.tf-summary{display:flex;flex-direction:column;gap:var(--tf-space-2);margin:0}
.tf-summary__row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--tf-space-3);padding:4px 0;border-bottom:1px dashed var(--tf-border)}
.tf-summary__row:last-child{border-bottom:none}
.tf-summary dt{font-size:var(--tf-fs-xs);font-weight:var(--tf-fw-semibold);text-transform:uppercase;letter-spacing:var(--tf-tracking-wide);color:var(--tf-text-subtle)}
.tf-summary dd{margin:0;font-size:var(--tf-fs-sm);font-weight:var(--tf-fw-medium);color:var(--tf-text);text-align:right;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tf-summary__row--highlight dd{color:var(--tf-success);font-weight:var(--tf-fw-bold);font-size:var(--tf-fs-md)}

/* 22. VISTA "MIS CARGAS"
   ------------------------------------------------------------ */
.tf-loads-page{width:100%;max-width:1400px;margin-inline:auto;padding:var(--tf-space-6);display:flex;flex-direction:column;gap:var(--tf-space-6)}
.tf-loads-header{display:flex;align-items:center;justify-content:space-between;gap:var(--tf-space-4);flex-wrap:wrap}
.tf-loads-header__left{display:flex;align-items:center;gap:var(--tf-space-4)}
.tf-loads-header__icon{width:52px;height:52px;border-radius:var(--tf-radius-md);background:var(--tf-gradient-red);color:var(--tf-gray-950);display:grid;place-items:center;font-size:1.5rem;box-shadow:var(--tf-shadow-red);flex-shrink:0}
.tf-loads-header h1{font-family:var(--tf-font-display);font-size:var(--tf-fs-2xl);font-weight:var(--tf-fw-bold);letter-spacing:-.02em;margin:0;color:var(--tf-text);line-height:1.15}
.tf-loads-header p{margin:4px 0 0;font-size:var(--tf-fs-sm);color:var(--tf-text-muted)}

.tf-filters{background:var(--tf-surface-overlay);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--tf-border);border-radius:var(--tf-radius-md);box-shadow:var(--tf-shadow-md);overflow:hidden}
.tf-filters__header{display:flex;align-items:center;justify-content:space-between;gap:var(--tf-space-3);padding:var(--tf-space-3) var(--tf-space-5);border-bottom:1px solid var(--tf-border);cursor:pointer;user-select:none;transition:background-color var(--tf-dur-fast) var(--tf-ease)}
.tf-filters__header:hover{background:rgba(245,158,11,.06)}
.tf-filters__title{display:inline-flex;align-items:center;gap:var(--tf-space-2);font-family:var(--tf-font-display);font-size:var(--tf-fs-sm);font-weight:var(--tf-fw-semibold);text-transform:uppercase;letter-spacing:var(--tf-tracking-wide);color:var(--tf-text-muted);margin:0}
.tf-filters__title i{color:var(--tf-yellow-500);font-size:1rem}
.tf-filters__toggle{background:transparent;border:none;color:var(--tf-text-muted);font-size:1.1rem;cursor:pointer;padding:0;transition:transform var(--tf-dur) var(--tf-ease)}
.tf-filters.is-collapsed .tf-filters__toggle{transform:rotate(-90deg)}
.tf-filters.is-collapsed .tf-filters__body{display:none}
.tf-filters__body{padding:var(--tf-space-5)}
.tf-filters__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--tf-space-3);margin-bottom:var(--tf-space-4)}
.tf-filters__actions{display:flex;justify-content:center;gap:var(--tf-space-2);padding-top:var(--tf-space-4);border-top:1px dashed var(--tf-border);flex-wrap:wrap}
.tf-filters__actions .btn{min-width:140px}

.tf-table-card{background:var(--tf-surface-overlay);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--tf-border);border-radius:var(--tf-radius-md);box-shadow:var(--tf-shadow-md);overflow:hidden}
.tf-table-card__header{display:flex;align-items:center;justify-content:space-between;gap:var(--tf-space-3);padding:var(--tf-space-4) var(--tf-space-5);border-bottom:1px solid var(--tf-border);background:linear-gradient(180deg,var(--tf-white-overlay),transparent);position:relative;flex-wrap:wrap}
.tf-table-card__header::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--tf-gradient-highway);opacity:.9}
.tf-table-card__title{display:inline-flex;align-items:center;gap:var(--tf-space-2);font-family:var(--tf-font-display);font-size:var(--tf-fs-md);font-weight:var(--tf-fw-semibold);color:var(--tf-text);margin:0}
.tf-table-card__title i{color:var(--tf-yellow-500)}
.tf-table-card__count{font-size:var(--tf-fs-sm);font-weight:var(--tf-fw-medium);color:var(--tf-text-muted);background:var(--tf-surface-3);padding:.35em .85em;border-radius:var(--tf-radius-pill);border:1px solid var(--tf-border)}

.tf-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--tf-fs-sm);color:var(--tf-text)}
.tf-table thead th{background:var(--tf-surface-2);color:var(--tf-text-muted);font-size:var(--tf-fs-xs);font-weight:var(--tf-fw-semibold);text-transform:uppercase;letter-spacing:var(--tf-tracking-wide);padding:var(--tf-space-3);border-bottom:1px solid var(--tf-border);text-align:center;white-space:nowrap;position:sticky;top:0;z-index:2}
.tf-table tbody td{padding:var(--tf-space-3);border-bottom:1px solid var(--tf-border);vertical-align:middle;color:var(--tf-text);text-align:center;transition:background-color var(--tf-dur-fast) var(--tf-ease)}
.tf-table tbody tr:last-child td{border-bottom:none}
.tf-table tbody tr:hover td{background:rgba(245,158,11,.06)}
.tf-table td.tf-cell-id{font-family:var(--tf-font-mono);font-weight:var(--tf-fw-semibold);color:var(--tf-yellow-600);font-size:var(--tf-fs-sm);white-space:nowrap}
[data-theme="dark"] .tf-table td.tf-cell-id{color:var(--tf-yellow-500)}
.tf-table td.tf-cell-title{text-align:left;font-weight:var(--tf-fw-semibold);color:var(--tf-text);max-width:200px}
.tf-table td.tf-cell-address{line-height:1.35}
.tf-table td.tf-cell-address small{display:block;color:var(--tf-text-subtle);font-size:var(--tf-fs-xs);margin-top:2px;font-variant-numeric:tabular-nums}
.tf-table td.tf-cell-num{font-variant-numeric:tabular-nums;white-space:nowrap}
.tf-table td.tf-cell-num strong{font-weight:var(--tf-fw-semibold);color:var(--tf-text)}
.tf-table td.tf-cell-num .rate-amount{color:var(--tf-success);font-weight:var(--tf-fw-bold);font-size:var(--tf-fs-md)}
.tf-table td.tf-cell-actions{white-space:nowrap;text-align:center}

.tf-action-group{display:inline-flex;align-items:center;gap:6px;padding:4px;background:var(--tf-surface-3);border-radius:var(--tf-radius-sm);border:1px solid var(--tf-border)}
.tf-action-group .btn{width:32px;height:32px;padding:0;border-radius:var(--tf-radius-xs);display:inline-flex;align-items:center;justify-content:center;font-size:.85rem;border:1px solid transparent;background:transparent;transition:all var(--tf-dur-fast) var(--tf-ease)}
.tf-action-group .btn:hover{background:var(--tf-surface);border-color:var(--tf-border);transform:translateY(-1px);box-shadow:var(--tf-shadow-xs)}
.tf-action-group .btn-outline-primary{color:var(--tf-yellow-600);border-color:transparent}
.tf-action-group .btn-outline-primary:hover{background:var(--tf-yellow-500);color:var(--tf-gray-950);border-color:var(--tf-yellow-500)}
.tf-action-group .btn-outline-secondary{color:var(--tf-text-muted)}
.tf-action-group .btn-outline-secondary:hover{background:var(--tf-gray-500);color:var(--tf-white);border-color:var(--tf-gray-500)}
.tf-action-group .btn-outline-danger{color:var(--tf-red-500)}
.tf-action-group .btn-outline-danger:hover{background:var(--tf-red-500);color:var(--tf-white);border-color:var(--tf-red-500)}

.tf-empty{padding:var(--tf-space-12) var(--tf-space-4);text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--tf-space-3)}
.tf-empty__icon{width:88px;height:88px;border-radius:50%;background:var(--tf-surface-3);display:grid;place-items:center;color:var(--tf-text-subtle);font-size:2.5rem;margin-bottom:var(--tf-space-2);position:relative}
.tf-empty__icon::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:1px dashed var(--tf-border);opacity:.6}
.tf-empty h4{font-family:var(--tf-font-display);font-size:var(--tf-fs-lg);font-weight:var(--tf-fw-semibold);color:var(--tf-text);margin:0}
.tf-empty p{color:var(--tf-text-muted);font-size:var(--tf-fs-sm);margin:0;max-width:380px}

.tf-pagination-wrap{display:flex;flex-direction:column;align-items:center;padding:var(--tf-space-5) var(--tf-space-4);border-top:1px solid var(--tf-border);background:var(--tf-white-overlay)}
.tf-pagination{display:flex;gap:6px;padding:0;margin:0;list-style:none;flex-wrap:wrap;justify-content:center}
.tf-pagination .page-item{display:inline-flex}
.tf-pagination .page-link{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0 10px;border-radius:var(--tf-radius-sm);border:1px solid var(--tf-border);background:var(--tf-surface);color:var(--tf-text-muted);font-size:var(--tf-fs-sm);font-weight:var(--tf-fw-medium);text-decoration:none;transition:all var(--tf-dur-fast) var(--tf-ease)}
[data-theme="dark"] .tf-pagination .page-link{background:var(--tf-surface-2)}
.tf-pagination .page-link:hover{border-color:var(--tf-yellow-500);color:var(--tf-yellow-600);background:var(--tf-yellow-050);transform:translateY(-1px)}
.tf-pagination .page-item.active .page-link{background:var(--tf-gradient-red);border-color:var(--tf-yellow-600);color:var(--tf-gray-950);box-shadow:var(--tf-shadow-red)}

@media (max-width:991.98px){
  .tf-loads-page{padding:var(--tf-space-4)}
  .tf-loads-header h1{font-size:var(--tf-fs-xl)}
  .tf-loads-header__icon{width:44px;height:44px;font-size:1.25rem}
  .tf-filters__grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
}
@media (max-width:575.98px){
  .tf-loads-header{flex-direction:column;align-items:flex-start}
  .tf-filters__grid{grid-template-columns:1fr 1fr}
  .tf-filters__actions{flex-direction:column}
  .tf-filters__actions .btn{width:100%}
}

/* 23. HOME v2 — Quicknav + tiles
   ------------------------------------------------------------ */
.tf-home{width:100%;max-width:1400px;margin-inline:auto;padding:var(--tf-space-6);display:flex;flex-direction:column;gap:var(--tf-space-6)}

.tf-quicknav{display:flex;align-items:center;gap:var(--tf-space-4);padding:var(--tf-space-2) var(--tf-space-3);margin-bottom:var(--tf-space-6);background:var(--tf-surface-overlay);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);border:1px solid var(--tf-border);border-radius:var(--tf-radius-md);box-shadow:var(--tf-shadow-sm);position:sticky;top:var(--tf-space-3);z-index:20;flex-wrap:wrap}
.tf-quicknav__brand{display:inline-flex;align-items:center;gap:var(--tf-space-2);padding:var(--tf-space-2) var(--tf-space-3);border-radius:var(--tf-radius-sm);text-decoration:none;transition:background var(--tf-dur-fast) var(--tf-ease);flex-shrink:0}
.tf-quicknav__brand:hover{background:var(--tf-surface-3)}
.tf-quicknav__logo{width:32px;height:32px;border-radius:var(--tf-radius-sm);background:var(--tf-gradient-red);color:var(--tf-gray-950);display:grid;place-items:center;font-size:.95rem;box-shadow:var(--tf-shadow-red);flex-shrink:0}
.tf-quicknav__name{font-family:var(--tf-font-display);font-size:var(--tf-fs-base);font-weight:var(--tf-fw-bold);letter-spacing:-.02em;color:var(--tf-text)}
.tf-quicknav__links{display:flex;align-items:center;gap:2px;flex-wrap:wrap;flex:1;min-width:0;padding-left:var(--tf-space-2);border-left:1px solid var(--tf-border)}
.tf-quicknav__link{display:inline-flex;align-items:center;gap:var(--tf-space-2);padding:.55rem .9rem;border-radius:var(--tf-radius-sm);font-size:var(--tf-fs-sm);font-weight:var(--tf-fw-medium);color:var(--tf-text-muted);text-decoration:none;transition:background var(--tf-dur-fast) var(--tf-ease),color var(--tf-dur-fast) var(--tf-ease);white-space:nowrap}
.tf-quicknav__link i{font-size:1rem;color:var(--tf-text-subtle);transition:color var(--tf-dur-fast) var(--tf-ease)}
.tf-quicknav__link:hover{background:var(--tf-surface-3);color:var(--tf-text)}
.tf-quicknav__link:hover i{color:var(--tf-yellow-500)}
.tf-quicknav__link[aria-current="page"]{background:var(--tf-yellow-050);color:var(--tf-yellow-600)}
[data-theme="dark"] .tf-quicknav__link[aria-current="page"]{color:var(--tf-yellow-500)}
.tf-quicknav__link[aria-current="page"] i{color:var(--tf-yellow-500)}
.tf-quicknav__logout{display:inline-flex;align-items:center;gap:var(--tf-space-2);padding:.55rem .9rem;border-radius:var(--tf-radius-sm);font-size:var(--tf-fs-sm);font-weight:var(--tf-fw-semibold);color:var(--tf-text-muted);border:1px solid var(--tf-border);background:transparent;text-decoration:none;transition:all var(--tf-dur-fast) var(--tf-ease);flex-shrink:0}
.tf-quicknav__logout i{color:var(--tf-text-subtle)}
.tf-quicknav__logout:hover{color:var(--tf-red-500);border-color:var(--tf-red-500);background:var(--tf-red-050)}
.tf-quicknav__logout:hover i{color:var(--tf-red-500)}
@media (max-width:767.98px){
  .tf-quicknav{padding:var(--tf-space-2);gap:var(--tf-space-2)}
  .tf-quicknav__name{display:none}
  .tf-quicknav__links{padding-left:var(--tf-space-1);gap:0}
  .tf-quicknav__link span,.tf-quicknav__logout span{display:none}
  .tf-quicknav__link,.tf-quicknav__logout{padding:.55rem;min-width:40px;justify-content:center}
}

.tf-home__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--tf-space-4);flex-wrap:wrap;margin-bottom:var(--tf-space-6)}
.tf-home__greeting h1{font-family:var(--tf-font-display);font-size:var(--tf-fs-2xl);font-weight:var(--tf-fw-bold);letter-spacing:-.02em;color:var(--tf-text);margin:0 0 4px;line-height:1.15}
.tf-home__greeting p{margin:0;font-size:var(--tf-fs-sm);color:var(--tf-text-muted)}
.tf-home__role-badge{flex-shrink:0}

.tf-role-tag{display:inline-flex;align-items:center;gap:var(--tf-space-2);padding:.4rem .85rem;border-radius:var(--tf-radius-pill);font-family:var(--tf-font-display);font-size:var(--tf-fs-xs);font-weight:var(--tf-fw-bold);text-transform:uppercase;letter-spacing:var(--tf-tracking-wide);background:var(--tf-surface-3);border:1px solid var(--tf-border);align-self:flex-start}
.tf-role-tag i{font-size:1rem}
.tf-role-tag--admin{color:var(--tf-red-500);border-color:rgba(239,68,68,.35);background:var(--tf-red-050)}
.tf-role-tag--admin i{color:var(--tf-red-500)}
.tf-role-tag--broker{color:var(--tf-warning);border-color:rgba(245,158,11,.35);background:var(--tf-warning-bg)}
.tf-role-tag--broker i{color:var(--tf-warning)}
.tf-role-tag--carrier{color:var(--tf-success);border-color:rgba(16,185,129,.35);background:var(--tf-success-bg)}
.tf-role-tag--carrier i{color:var(--tf-success)}

.tf-home__grid{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:var(--tf-space-6);align-items:start}
.tf-home__main,.tf-home__aside{display:flex;flex-direction:column;gap:var(--tf-space-5);min-width:0}

.tf-home__section{display:flex;flex-direction:column;gap:var(--tf-space-4)}
.tf-home__section-title{display:flex;align-items:center;gap:var(--tf-space-2);font-family:var(--tf-font-display);font-size:var(--tf-fs-sm);font-weight:var(--tf-fw-semibold);text-transform:uppercase;letter-spacing:var(--tf-tracking-wide);color:var(--tf-text-muted);margin:0}
.tf-home__section-title i{color:var(--tf-yellow-500);font-size:1rem}

.tf-user-card{display:flex;align-items:center;gap:var(--tf-space-4);padding:var(--tf-space-5);background:var(--tf-surface-overlay);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--tf-border);border-radius:var(--tf-radius-md);box-shadow:var(--tf-shadow-sm);position:relative;overflow:hidden}
.tf-user-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--tf-gradient-highway)}
.tf-user-card__avatar{width:56px;height:56px;border-radius:50%;background:var(--tf-gradient-red);color:var(--tf-gray-950);display:grid;place-items:center;font-size:1.5rem;box-shadow:var(--tf-shadow-red);flex-shrink:0}
.tf-user-card__info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.tf-user-card__info h2{font-family:var(--tf-font-display);font-size:var(--tf-fs-lg);font-weight:var(--tf-fw-bold);letter-spacing:-.02em;color:var(--tf-text);margin:0;line-height:1.2}
.tf-user-card__email{font-size:var(--tf-fs-sm);color:var(--tf-text-muted);display:inline-flex;align-items:center;gap:var(--tf-space-1);margin:0;word-break:break-all}
.tf-user-card__meta{text-align:right;display:flex;flex-direction:column;gap:2px;flex-shrink:0}
.tf-user-card__meta small{font-size:var(--tf-fs-xs);color:var(--tf-text-subtle);text-transform:uppercase;letter-spacing:var(--tf-tracking-wide);font-weight:var(--tf-fw-semibold)}
.tf-user-card__meta strong{font-family:var(--tf-font-mono);font-size:var(--tf-fs-sm);font-weight:var(--tf-fw-bold);color:var(--tf-yellow-600)}
[data-theme="dark"] .tf-user-card__meta strong{color:var(--tf-yellow-500)}

.tf-home-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--tf-space-3)}
.tf-home-stats--3{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.tf-home-stat{background:var(--tf-surface-overlay);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--tf-border);border-radius:var(--tf-radius-md);padding:var(--tf-space-4);display:flex;align-items:center;gap:var(--tf-space-3);box-shadow:var(--tf-shadow-sm);transition:box-shadow var(--tf-dur) var(--tf-ease),transform var(--tf-dur) var(--tf-ease)}
.tf-home-stat:hover{box-shadow:var(--tf-shadow-md);transform:translateY(-2px)}
.tf-home-stat__icon{width:44px;height:44px;border-radius:var(--tf-radius-sm);display:grid;place-items:center;font-size:1.25rem;flex-shrink:0}
.tf-home-stat__icon--primary{background:var(--tf-yellow-050);color:var(--tf-yellow-600)}
[data-theme="dark"] .tf-home-stat__icon--primary{color:var(--tf-yellow-500)}
.tf-home-stat__icon--success{background:var(--tf-success-bg);color:var(--tf-success)}
.tf-home-stat__icon--warning{background:var(--tf-warning-bg);color:var(--tf-warning)}
.tf-home-stat__icon--info{background:var(--tf-info-bg);color:var(--tf-info)}
.tf-home-stat__body{display:flex;flex-direction:column;min-width:0}
.tf-home-stat__label{font-size:var(--tf-fs-xs);font-weight:var(--tf-fw-semibold);text-transform:uppercase;letter-spacing:var(--tf-tracking-wide);color:var(--tf-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tf-home-stat__value{font-family:var(--tf-font-display);font-size:var(--tf-fs-2xl);font-weight:var(--tf-fw-bold);letter-spacing:-.02em;color:var(--tf-text);line-height:1.1;margin:2px 0 0;font-variant-numeric:tabular-nums}

.tf-home-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--tf-space-3)}
.tf-action-tile{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--tf-space-4);padding:var(--tf-space-4);background:var(--tf-surface-overlay);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--tf-border);border-radius:var(--tf-radius-md);box-shadow:var(--tf-shadow-sm);text-decoration:none;overflow:hidden;isolation:isolate;transition:transform var(--tf-dur-fast) var(--tf-ease),box-shadow var(--tf-dur) var(--tf-ease),border-color var(--tf-dur) var(--tf-ease)}
.tf-action-tile::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--tf-gradient-highway);opacity:.75;transition:opacity var(--tf-dur) var(--tf-ease)}
.tf-action-tile:hover::before{opacity:1}
.tf-action-tile:hover{transform:translateY(-2px);box-shadow:var(--tf-shadow-md);border-color:var(--tf-border-strong)}
.tf-action-tile--primary{background:var(--tf-gradient-red);border-color:var(--tf-yellow-600);box-shadow:var(--tf-shadow-red)}
.tf-action-tile--primary .tf-action-tile__icon{background:rgba(11,15,20,.18);color:var(--tf-gray-950)}
.tf-action-tile--primary .tf-action-tile__body strong{color:var(--tf-gray-950)}
.tf-action-tile--primary .tf-action-tile__body small{color:rgba(11,15,20,.75)}
.tf-action-tile--primary .tf-action-tile__arrow{color:var(--tf-gray-950)}
.tf-action-tile--primary::before{background:var(--tf-gray-950);opacity:.9}
.tf-action-tile--primary:hover{box-shadow:0 12px 32px rgba(245,158,11,.45)}
.tf-action-tile__icon{width:44px;height:44px;border-radius:var(--tf-radius-sm);display:grid;place-items:center;font-size:1.2rem;background:var(--tf-yellow-050);color:var(--tf-yellow-600);flex-shrink:0;transition:transform var(--tf-dur) var(--tf-ease)}
[data-theme="dark"] .tf-action-tile__icon{color:var(--tf-yellow-500)}
.tf-action-tile:hover .tf-action-tile__icon{transform:scale(1.06)}
.tf-action-tile__body{display:flex;flex-direction:column;gap:2px;min-width:0}
.tf-action-tile__body strong{font-family:var(--tf-font-display);font-size:var(--tf-fs-base);font-weight:var(--tf-fw-semibold);color:var(--tf-text);line-height:1.2}
.tf-action-tile__body small{font-size:var(--tf-fs-xs);color:var(--tf-text-muted);line-height:1.35}
.tf-action-tile__arrow{color:var(--tf-text-subtle);font-size:1.1rem;transition:transform var(--tf-dur) var(--tf-ease),color var(--tf-dur-fast) var(--tf-ease)}
.tf-action-tile:hover .tf-action-tile__arrow{transform:translateX(4px);color:var(--tf-yellow-500)}
.tf-action-tile--primary:hover .tf-action-tile__arrow{color:var(--tf-gray-950)}

.tf-avail{background:var(--tf-surface-overlay);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--tf-border);border-radius:var(--tf-radius-md);box-shadow:var(--tf-shadow-md);overflow:hidden;position:sticky;top:var(--tf-space-6)}
.tf-avail__header{display:flex;align-items:center;justify-content:space-between;gap:var(--tf-space-3);padding:var(--tf-space-4) var(--tf-space-5);border-bottom:1px solid var(--tf-border);background:linear-gradient(180deg,var(--tf-white-overlay),transparent);position:relative}
.tf-avail__header::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--tf-gradient-highway);opacity:.9}
.tf-avail__title{display:inline-flex;align-items:center;gap:var(--tf-space-2);font-family:var(--tf-font-display);font-size:var(--tf-fs-md);font-weight:var(--tf-fw-semibold);color:var(--tf-text);margin:0}
.tf-avail__title i{color:var(--tf-yellow-500)}
.tf-avail__count{font-size:var(--tf-fs-sm);font-weight:var(--tf-fw-medium);color:var(--tf-text-muted);background:var(--tf-surface-3);padding:.3em .75em;border-radius:var(--tf-radius-pill);border:1px solid var(--tf-border)}
.tf-avail__body{padding:var(--tf-space-4);max-height:620px;overflow-y:auto}
.tf-avail__list{display:flex;flex-direction:column;gap:var(--tf-space-3)}
.tf-load-mini{background:var(--tf-surface);border:1px solid var(--tf-border);border-radius:var(--tf-radius-sm);padding:var(--tf-space-3);display:flex;flex-direction:column;gap:var(--tf-space-2);transition:border-color var(--tf-dur-fast) var(--tf-ease),box-shadow var(--tf-dur-fast) var(--tf-ease),transform var(--tf-dur-fast) var(--tf-ease)}
[data-theme="dark"] .tf-load-mini{background:var(--tf-surface-2)}
.tf-load-mini:hover{border-color:var(--tf-yellow-500);box-shadow:var(--tf-shadow-sm);transform:translateY(-1px)}
.tf-load-mini__top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--tf-space-2)}
.tf-load-mini__title{font-family:var(--tf-font-display);font-size:var(--tf-fs-sm);font-weight:var(--tf-fw-semibold);color:var(--tf-text);margin:0;line-height:1.25;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.tf-load-mini__id{font-family:var(--tf-font-mono);font-size:var(--tf-fs-xs);color:var(--tf-yellow-600);font-weight:var(--tf-fw-semibold);white-space:nowrap}
[data-theme="dark"] .tf-load-mini__id{color:var(--tf-yellow-500)}
.tf-load-mini__route{display:flex;flex-direction:column;gap:4px;font-size:var(--tf-fs-xs);color:var(--tf-text-muted)}
.tf-load-mini__route span{display:inline-flex;align-items:center;gap:var(--tf-space-1);line-height:1.3}
.tf-load-mini__route i{color:var(--tf-text-subtle);flex-shrink:0}
.tf-load-mini__route small{color:var(--tf-text-subtle);font-variant-numeric:tabular-nums;margin-left:4px}
.tf-load-mini__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--tf-space-2);padding-top:var(--tf-space-2);border-top:1px dashed var(--tf-border)}
.tf-load-mini__meta{display:inline-flex;align-items:center;gap:var(--tf-space-3);font-size:var(--tf-fs-xs);color:var(--tf-text-muted);font-variant-numeric:tabular-nums}
.tf-load-mini__meta strong{color:var(--tf-text);font-weight:var(--tf-fw-semibold)}
.tf-load-mini__rate{color:var(--tf-success);font-weight:var(--tf-fw-bold);font-size:var(--tf-fs-sm)}
.tf-load-mini .btn-aceptar{padding:.35rem .7rem;font-size:var(--tf-fs-xs);border-radius:var(--tf-radius-xs)}
.tf-avail__empty{padding:var(--tf-space-8) var(--tf-space-3);text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--tf-space-2)}
.tf-avail__empty i{font-size:2.5rem;color:var(--tf-text-subtle);opacity:.5}
.tf-avail__empty p{color:var(--tf-text-muted);font-size:var(--tf-fs-sm);margin:0;max-width:240px}

.tf-load-mini__interest{border-top:1px dashed var(--tf-border);padding-top:var(--tf-space-2);margin-top:var(--tf-space-2)}
.tf-load-mini__interest>summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:var(--tf-space-2);font-size:var(--tf-fs-xs);font-weight:var(--tf-fw-semibold);color:var(--tf-text-muted);user-select:none;padding:4px 0;transition:color var(--tf-dur-fast) var(--tf-ease)}
.tf-load-mini__interest>summary::-webkit-details-marker{display:none}
.tf-load-mini__interest>summary::before{content:"▸";color:var(--tf-yellow-500);transition:transform var(--tf-dur) var(--tf-ease)}
.tf-load-mini__interest[open]>summary::before{transform:rotate(90deg)}
.tf-load-mini__interest>summary:hover{color:var(--tf-text)}
.tf-load-mini__interest form{display:flex;flex-direction:column;gap:var(--tf-space-2);margin-top:var(--tf-space-2);animation:tf-slide-down var(--tf-dur) var(--tf-ease)}

.tf-cta-card{background:linear-gradient(135deg,rgba(245,158,11,.08) 0%,rgba(245,158,11,.04) 100%);border:1px dashed var(--tf-border-strong);border-radius:var(--tf-radius-md);padding:var(--tf-space-8) var(--tf-space-5);text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--tf-space-3)}
.tf-cta-card__icon{width:64px;height:64px;border-radius:50%;background:var(--tf-yellow-050);color:var(--tf-yellow-600);display:grid;place-items:center;font-size:1.75rem}
[data-theme="dark"] .tf-cta-card__icon{color:var(--tf-yellow-500)}
.tf-cta-card h3{font-family:var(--tf-font-display);font-size:var(--tf-fs-md);font-weight:var(--tf-fw-semibold);color:var(--tf-text);margin:0}
.tf-cta-card p{color:var(--tf-text-muted);font-size:var(--tf-fs-sm);margin:0;max-width:300px}

@media (max-width:1100px){.tf-home__grid{grid-template-columns:1fr}.tf-avail{position:static}.tf-avail__body{max-height:none}.tf-home-actions{grid-template-columns:1fr}}
@media (max-width:991.98px){.tf-home{padding:var(--tf-space-4)}.tf-home__greeting h1{font-size:var(--tf-fs-xl)}.tf-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}.tf-grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:767.98px){.tf-grid--form{grid-template-columns:repeat(6,minmax(0,1fr))}.tf-col-6{grid-column:span 6}.tf-col-4{grid-column:span 6}.tf-col-3{grid-column:span 3}}
@media (max-width:575.98px){.tf-user-card{flex-direction:row;text-align:left;padding:var(--tf-space-4)}.tf-user-card__avatar{width:48px;height:48px;font-size:1.25rem}.tf-user-card__meta{text-align:right}.tf-grid--4,.tf-grid--3,.tf-grid--2{grid-template-columns:1fr}.tf-grid--form{grid-template-columns:1fr}.tf-col-12,.tf-col-6,.tf-col-4,.tf-col-3{grid-column:span 1}}

/* 24. PROFILE VIEW
   ------------------------------------------------------------ */
.tf-profile{width:100%;max-width:1100px;margin-inline:auto;padding:var(--tf-space-6);display:flex;flex-direction:column;gap:var(--tf-space-6)}
@media (max-width:991.98px){.tf-profile{padding:var(--tf-space-4)}}
@media (max-width:575.98px){.tf-profile{padding:var(--tf-space-3);gap:var(--tf-space-4)}}

.tf-profile__header{display:flex;align-items:center;justify-content:space-between;gap:var(--tf-space-4);flex-wrap:wrap;padding-bottom:var(--tf-space-4);border-bottom:1px solid var(--tf-border)}
.tf-profile__breadcrumb{display:inline-flex;align-items:center;gap:var(--tf-space-2);font-size:var(--tf-fs-sm);flex-wrap:wrap}
.tf-breadcrumb__link{display:inline-flex;align-items:center;gap:6px;color:var(--tf-text-muted);text-decoration:none;padding:4px 8px;border-radius:var(--tf-radius-xs);transition:all var(--tf-dur-fast) var(--tf-ease)}
.tf-breadcrumb__link:hover{color:var(--tf-text);background:var(--tf-surface-3)}
.tf-breadcrumb__link i{font-size:.9em;color:var(--tf-yellow-500)}
.tf-breadcrumb__sep{color:var(--tf-text-subtle);font-size:.75rem}
.tf-breadcrumb__current{color:var(--tf-text);font-weight:var(--tf-fw-semibold);padding:4px 8px}
.tf-profile__actions{display:inline-flex;gap:var(--tf-space-2);flex-shrink:0}

.tf-profile__hero{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--tf-space-5);padding:var(--tf-space-6);background:var(--tf-surface-overlay);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--tf-border);border-radius:var(--tf-radius-md);box-shadow:var(--tf-shadow-md);position:relative;overflow:hidden}
.tf-profile__hero::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--tf-gradient-highway)}
.tf-profile__avatar{position:relative;width:88px;height:88px;border-radius:50%;background:var(--tf-gradient-red);color:var(--tf-gray-950);display:grid;place-items:center;font-size:2.75rem;box-shadow:var(--tf-shadow-red),inset 0 2px 6px rgba(255,255,255,.25);flex-shrink:0}
.tf-profile__avatar-status{position:absolute;right:4px;bottom:4px;width:20px;height:20px;border-radius:50%;background:var(--tf-success);border:3px solid var(--tf-surface);box-shadow:0 0 0 3px rgba(16,185,129,.25)}
.tf-profile__identity{display:flex;flex-direction:column;gap:var(--tf-space-2);min-width:0}
.tf-profile__identity h1{font-family:var(--tf-font-display);font-size:var(--tf-fs-2xl);font-weight:var(--tf-fw-bold);letter-spacing:-.02em;color:var(--tf-text);margin:0;line-height:1.15}
.tf-profile__email{display:inline-flex;align-items:center;gap:var(--tf-space-2);font-size:var(--tf-fs-sm);color:var(--tf-text-muted);margin:0;word-break:break-all}
.tf-profile__email i{color:var(--tf-text-subtle)}
.tf-profile__id{display:flex;flex-direction:column;align-items:flex-end;gap:2px;padding:var(--tf-space-3) var(--tf-space-4);background:var(--tf-surface-3);border:1px solid var(--tf-border);border-radius:var(--tf-radius-sm);flex-shrink:0}
.tf-profile__id small{font-size:var(--tf-fs-xs);font-weight:var(--tf-fw-semibold);text-transform:uppercase;letter-spacing:var(--tf-tracking-wide);color:var(--tf-text-subtle)}
.tf-profile__id strong{font-family:var(--tf-font-mono);font-size:var(--tf-fs-lg);font-weight:var(--tf-fw-bold);color:var(--tf-yellow-600);line-height:1}
[data-theme="dark"] .tf-profile__id strong{color:var(--tf-yellow-500)}
@media (max-width:767.98px){.tf-profile__hero{grid-template-columns:1fr;text-align:center;padding:var(--tf-space-5)}.tf-profile__avatar{margin-inline:auto}.tf-profile__identity{align-items:center}.tf-profile__id{align-items:center;align-self:center}}

.tf-profile__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--tf-space-5)}
@media (max-width:900px){.tf-profile__grid{grid-template-columns:1fr}}

.tf-info-block{background:var(--tf-surface-overlay);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--tf-border);border-radius:var(--tf-radius-md);box-shadow:var(--tf-shadow-sm);overflow:hidden;transition:box-shadow var(--tf-dur) var(--tf-ease),border-color var(--tf-dur) var(--tf-ease)}
.tf-info-block:hover{box-shadow:var(--tf-shadow-md);border-color:var(--tf-border-strong)}
.tf-info-block__head{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:var(--tf-space-3);padding:var(--tf-space-4) var(--tf-space-5);border-bottom:1px solid var(--tf-border);background:linear-gradient(180deg,var(--tf-white-overlay),transparent);position:relative}
.tf-info-block__head::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--tf-gradient-highway);opacity:.75}
.tf-info-block__icon{display:grid;place-items:center;width:38px;height:38px;border-radius:var(--tf-radius-sm);background:var(--tf-yellow-050);color:var(--tf-yellow-600);font-size:1.05rem;flex-shrink:0}
[data-theme="dark"] .tf-info-block__icon{color:var(--tf-yellow-500)}
.tf-info-block__text{display:flex;flex-direction:column;gap:2px;min-width:0}
.tf-info-block__text h2{font-family:var(--tf-font-display);font-size:var(--tf-fs-md);font-weight:var(--tf-fw-semibold);color:var(--tf-text);margin:0;line-height:1.2}
.tf-info-block__text p{margin:0;font-size:var(--tf-fs-xs);color:var(--tf-text-muted)}
.tf-info-block__body{padding:var(--tf-space-5)}

.tf-info-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--tf-space-3) var(--tf-space-5);margin:0}
.tf-info-list__row{display:flex;flex-direction:column;gap:4px;min-width:0;padding-bottom:var(--tf-space-2);border-bottom:1px dashed var(--tf-border)}
.tf-info-list__row--full{grid-column:1 / -1}
.tf-info-list dt{display:inline-flex;align-items:center;gap:6px;font-size:var(--tf-fs-xs);font-weight:var(--tf-fw-semibold);text-transform:uppercase;letter-spacing:var(--tf-tracking-wide);color:var(--tf-text-subtle);margin:0}
.tf-info-list dt i{font-size:.95em}
.tf-info-list dd{margin:0;font-size:var(--tf-fs-base);font-weight:var(--tf-fw-medium);color:var(--tf-text);line-height:1.4;word-break:break-word}
@media (max-width:575.98px){.tf-info-list{grid-template-columns:1fr}}

.tf-value-unit{display:inline-flex;align-items:baseline;gap:4px}
.tf-value-unit strong{font-family:var(--tf-font-mono);font-size:var(--tf-fs-md);font-weight:var(--tf-fw-bold);color:var(--tf-text)}
.tf-value-unit em{font-style:normal;font-size:var(--tf-fs-xs);font-weight:var(--tf-fw-semibold);color:var(--tf-text-muted);text-transform:uppercase;letter-spacing:.04em}

.tf-chip-list{display:flex;flex-wrap:wrap;gap:var(--tf-space-2);margin-top:2px}
.tf-chip{display:inline-flex;align-items:center;padding:4px 12px;font-size:var(--tf-fs-xs);font-weight:var(--tf-fw-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--tf-yellow-600);background:var(--tf-yellow-050);border:1px solid rgba(245,158,11,.30);border-radius:var(--tf-radius-pill);transition:all var(--tf-dur-fast) var(--tf-ease)}
[data-theme="dark"] .tf-chip{color:var(--tf-yellow-500)}
.tf-chip:hover{background:var(--tf-yellow-500);color:var(--tf-gray-950);border-color:var(--tf-yellow-600)}

.tf-profile__footer{display:flex;justify-content:space-between;align-items:center;gap:var(--tf-space-3);padding-top:var(--tf-space-4);border-top:1px solid var(--tf-border);flex-wrap:wrap}
@media (max-width:575.98px){.tf-profile__footer{flex-direction:column-reverse;align-items:stretch}.tf-profile__footer .btn{width:100%;justify-content:center}}

/* 25. ADMIN · Crear usuario
   ------------------------------------------------------------ */
.tf-password-meter{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:6px;width:100%}
.tf-password-meter__bar{height:4px;background:var(--tf-surface-3);border-radius:var(--tf-radius-pill);transition:background-color var(--tf-dur) var(--tf-ease)}
.tf-password-meter[data-score="1"] .tf-password-meter__bar.is-active{background:var(--tf-red-500)}
.tf-password-meter[data-score="2"] .tf-password-meter__bar.is-active{background:var(--tf-warning)}
.tf-password-meter[data-score="3"] .tf-password-meter__bar.is-active{background:var(--tf-info)}
.tf-password-meter[data-score="4"] .tf-password-meter__bar.is-active{background:var(--tf-success)}

.tf-role-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--tf-space-3)}
@media (max-width:576px){.tf-role-grid{grid-template-columns:1fr}}
.tf-role-card{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--tf-space-3);padding:var(--tf-space-4);background:var(--tf-surface-2);border:1.5px solid var(--tf-border-strong);border-radius:var(--tf-radius-sm);cursor:pointer;transition:border-color var(--tf-dur-fast) var(--tf-ease),background-color var(--tf-dur-fast) var(--tf-ease),box-shadow var(--tf-dur-fast) var(--tf-ease),transform var(--tf-dur-fast) var(--tf-ease)}
.tf-role-card:hover{border-color:var(--tf-gray-400);transform:translateY(-1px);box-shadow:var(--tf-shadow-sm)}
.tf-role-card input[type="radio"]{position:absolute;opacity:0;pointer-events:none}
.tf-role-card__marker{width:42px;height:42px;border-radius:var(--tf-radius-sm);background:var(--tf-surface-3);color:var(--tf-text-muted);display:grid;place-items:center;font-size:1.15rem;flex-shrink:0;transition:all var(--tf-dur) var(--tf-ease)}
.tf-role-card__body{display:flex;flex-direction:column;gap:2px;min-width:0}
.tf-role-card__body strong{font-family:var(--tf-font-display);font-size:var(--tf-fs-base);font-weight:var(--tf-fw-semibold);color:var(--tf-text);line-height:1.2}
.tf-role-card__body small{font-size:var(--tf-fs-xs);color:var(--tf-text-muted);line-height:1.35}
.tf-role-card__check{font-size:1.25rem;color:transparent;transition:color var(--tf-dur-fast) var(--tf-ease),transform var(--tf-dur-fast) var(--tf-ease);transform:scale(.8)}
.tf-role-card.is-selected{background:var(--tf-surface);border-color:var(--tf-yellow-500);box-shadow:var(--tf-shadow-sm),0 0 0 4px rgba(245,158,11,.15)}
.tf-role-card.is-selected .tf-role-card__marker{background:var(--tf-gradient-red);color:var(--tf-gray-950);box-shadow:var(--tf-shadow-red)}
.tf-role-card.is-selected .tf-role-card__check{color:var(--tf-yellow-600);transform:scale(1)}
.tf-role-card:has(input:focus-visible){outline:2px solid var(--tf-yellow-500);outline-offset:2px}

.tf-user-preview{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--tf-space-3);padding:var(--tf-space-3);background:var(--tf-surface);border:1px solid var(--tf-border);border-radius:var(--tf-radius-sm)}
[data-theme="dark"] .tf-user-preview{background:var(--tf-surface-2)}
.tf-user-preview__avatar{width:44px;height:44px;border-radius:50%;background:var(--tf-surface-3);color:var(--tf-text-muted);display:grid;place-items:center;font-size:1.15rem;flex-shrink:0;transition:all var(--tf-dur) var(--tf-ease)}
.tf-user-preview:has([data-preview="role"][data-role="broker"]) .tf-user-preview__avatar,.tf-user-preview:has([data-preview="role"][data-role="carrier"]) .tf-user-preview__avatar{background:var(--tf-gradient-red);color:var(--tf-gray-950);box-shadow:var(--tf-shadow-red)}
.tf-user-preview__info{display:flex;flex-direction:column;gap:2px;min-width:0}
.tf-user-preview__info strong{font-family:var(--tf-font-display);font-size:var(--tf-fs-sm);font-weight:var(--tf-fw-semibold);color:var(--tf-text);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tf-user-preview__info span{font-size:var(--tf-fs-xs);color:var(--tf-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tf-user-preview__role{font-family:var(--tf-font-mono);font-size:var(--tf-fs-xs);font-weight:var(--tf-fw-semibold);text-transform:uppercase;letter-spacing:.04em;padding:4px 10px;border-radius:var(--tf-radius-pill);background:var(--tf-surface-3);color:var(--tf-text-subtle);border:1px solid var(--tf-border);white-space:nowrap;transition:all var(--tf-dur) var(--tf-ease)}
.tf-user-preview__role[data-role="broker"],.tf-user-preview__role[data-role="carrier"]{background:var(--tf-yellow-050);color:var(--tf-yellow-600);border-color:rgba(245,158,11,.35)}
[data-theme="dark"] .tf-user-preview__role[data-role="broker"],[data-theme="dark"] .tf-user-preview__role[data-role="carrier"]{color:var(--tf-yellow-500)}

.tf-role-info{animation:tf-fade-in var(--tf-dur) var(--tf-ease)}
.tf-role-info__hint{font-size:var(--tf-fs-xs);color:var(--tf-text-subtle);font-style:italic;margin:0;text-align:center;padding:var(--tf-space-3) 0}
.tf-role-info__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--tf-space-2)}
.tf-role-info__list li{display:flex;align-items:center;gap:var(--tf-space-2);font-size:var(--tf-fs-sm);color:var(--tf-text-muted);line-height:1.4}
.tf-role-info__list li i{font-size:.95rem;flex-shrink:0}
.tf-role-info__list li i.bi-check-circle-fill{color:var(--tf-success)}
.tf-role-info__list li i.bi-x-circle-fill{color:var(--tf-text-subtle)}

.tf-rail-tips{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--tf-space-2)}
.tf-rail-tips li{position:relative;padding-left:var(--tf-space-5);font-size:var(--tf-fs-sm);color:var(--tf-text-muted);line-height:1.45}
.tf-rail-tips li::before{content:"";position:absolute;left:0;top:.55em;width:8px;height:8px;border-radius:50%;background:var(--tf-yellow-500);box-shadow:0 0 0 3px var(--tf-yellow-050)}

/* 26. EDIT LOAD — status selector + rail
   ------------------------------------------------------------ */
.tf-status-selector{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--tf-space-3)}
.tf-status-option{position:relative;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:var(--tf-space-3);padding:var(--tf-space-3) var(--tf-space-4);background:var(--tf-surface-2);border:1.5px solid var(--tf-border-strong);border-radius:var(--tf-radius-sm);cursor:pointer;transition:border-color var(--tf-dur-fast) var(--tf-ease),background-color var(--tf-dur-fast) var(--tf-ease),box-shadow var(--tf-dur-fast) var(--tf-ease),transform var(--tf-dur-fast) var(--tf-ease)}
.tf-status-option:hover{border-color:var(--tf-gray-400);transform:translateY(-1px);box-shadow:var(--tf-shadow-sm)}
.tf-status-option input[type="radio"]{position:absolute;opacity:0;pointer-events:none}
.tf-status-option__dot{width:14px;height:14px;border-radius:50%;background:var(--dot,var(--tf-gray-400));box-shadow:0 0 0 4px rgba(0,0,0,.06);flex-shrink:0;transition:transform var(--tf-dur-fast) var(--tf-ease)}
.tf-status-option__body{display:flex;flex-direction:column;gap:2px;min-width:0}
.tf-status-option__body strong{font-family:var(--tf-font-display);font-size:var(--tf-fs-sm);font-weight:var(--tf-fw-semibold);color:var(--tf-text);line-height:1.2}
.tf-status-option__body small{font-size:var(--tf-fs-xs);color:var(--tf-text-muted);line-height:1.3}
.tf-status-option.is-selected{background:var(--tf-surface);border-color:var(--dot);box-shadow:var(--tf-shadow-sm),0 0 0 4px color-mix(in srgb,var(--dot) 18%,transparent);pointer-events:none;cursor:default}
.tf-status-option.is-selected .tf-status-option__dot{transform:scale(1.15)}
.tf-status-option:has(input:focus-visible){outline:2px solid var(--tf-yellow-500);outline-offset:2px}

.tf-rail-card--load{padding:var(--tf-space-4)}
.tf-load-rail{display:flex;align-items:center;gap:var(--tf-space-3)}
.tf-load-rail__id{font-family:var(--tf-font-mono);font-size:var(--tf-fs-sm);font-weight:var(--tf-fw-bold);color:var(--tf-gray-950);background:var(--tf-gradient-red);padding:8px 12px;border-radius:var(--tf-radius-sm);box-shadow:var(--tf-shadow-red);flex-shrink:0}
.tf-load-rail__title{display:flex;flex-direction:column;gap:2px;min-width:0}
.tf-load-rail__title strong{font-family:var(--tf-font-display);font-size:var(--tf-fs-sm);font-weight:var(--tf-fw-semibold);color:var(--tf-text);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tf-load-rail__title small{font-size:var(--tf-fs-xs);color:var(--tf-text-subtle)}

.tf-preview__status{display:inline-flex;align-items:center;gap:var(--tf-space-2);padding:6px 12px;font-family:var(--tf-font-display);font-size:var(--tf-fs-xs);font-weight:var(--tf-fw-semibold);text-transform:uppercase;letter-spacing:var(--tf-tracking-wide);color:var(--tf-text-muted);background:var(--tf-surface-3);border:1px solid var(--tf-border);border-radius:var(--tf-radius-pill);align-self:flex-start}
.tf-preview__status-dot{width:8px;height:8px;border-radius:50%;background:var(--tf-gray-400);transition:background var(--tf-dur) var(--tf-ease)}

/* 27. REGISTER — coherente con login
   ------------------------------------------------------------ */
.tf-login-card--register{max-width:480px;padding:var(--tf-space-8)}
.tf-login-card .form-label{display:inline-flex;align-items:center;gap:6px;font-size:var(--tf-fs-sm);font-weight:var(--tf-fw-semibold);color:var(--tf-text);margin-bottom:var(--tf-space-1)}
.tf-login-card .form-label i{color:var(--tf-yellow-500);font-size:.95rem}
.tf-login-card .form-control{background:var(--tf-surface);border-color:var(--tf-border-strong)}
[data-theme="dark"] .tf-login-card .form-control{background:var(--tf-surface-2)}
.tf-login-card .tf-field-hint{display:block;font-size:var(--tf-fs-xs);color:var(--tf-text-subtle);line-height:1.4;margin-top:4px;text-align:left}
.tf-check{display:flex;align-items:center;gap:var(--tf-space-2);font-size:var(--tf-fs-sm);color:var(--tf-text-muted)}
.tf-check input[type="checkbox"]{width:16px;height:16px;accent-color:var(--tf-yellow-500);cursor:pointer;flex-shrink:0}

/* 28. ACCESIBILIDAD · MOTION · PRINT
   ------------------------------------------------------------ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .card{animation:none!important}
  .btn:hover,.tf-form-section:hover,.tf-form-aside-card:hover,.tf-form-block:hover,.tf-home-stat:hover,.tf-load-mini:hover,.tf-action-tile:hover,.tf-info-block:hover,.address-block:hover,.tf-pagination .page-link:hover{transform:none!important}
}
@media print{
  body{background:#fff!important;color:#000!important}
  body::before{display:none!important}
  .tf-sidebar,.tf-topbar,.tf-page-header,.tf-quicknav,.tf-form-page__aside,.tf-profile__aside,.tf-actions,.tf-filters__actions,.tf-pagination-wrap,.tf-action-group{display:none!important}
  .tf-shell{grid-template-columns:1fr!important}
  .tf-form-page{grid-template-columns:1fr!important}
  .tf-home__grid,.tf-profile__grid{grid-template-columns:1fr!important}
  .card,.tf-form-section,.tf-form-block,.tf-table-card,.tf-info-block{box-shadow:none!important;border:1px solid #ccc!important;break-inside:avoid}
  .tf-form-section,.tf-form-block,.tf-info-block{break-inside:avoid;page-break-inside:avoid}
  a{color:#000!important;text-decoration:underline}
}

/* 29. DESTINATIONS · extras
   ------------------------------------------------------------ */
.tf-pagination__info{margin:var(--tf-space-3) 0 0;text-align:center;font-size:var(--tf-fs-xs);color:var(--tf-text-subtle);letter-spacing:.01em}
.tf-pagination__info strong{color:var(--tf-text);font-weight:var(--tf-fw-semibold)}

/* 30. LOAD MAP — NO TOCAR (usado por register/show) */
.tf-info-block__body--map{padding:0;overflow:hidden}
#route-map{width:100%;height:440px;background:var(--tf-surface-3);position:relative;z-index:1}
.tf-map-route-status{margin:0;padding:10px 14px;color:var(--tf-text-muted);font-size:var(--tf-fs-xs);background:var(--tf-surface-2);border-top:1px solid var(--tf-border)}
.tf-info-block__head .btn[data-map-recenter]{margin-left:auto;flex-shrink:0}
.tf-map-pin{position:relative;width:34px;height:34px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);display:grid;place-items:center;border:3px solid #fff;box-shadow:0 4px 12px rgba(0,0,0,.35);transition:transform var(--tf-dur) var(--tf-ease)}
.tf-map-pin:hover{transform:rotate(-45deg) scale(1.1)}
.tf-map-pin--pickup{background:linear-gradient(135deg,#34D399 0%,#059669 100%)}
.tf-map-pin--dropoff{background:var(--tf-gradient-red)}
.tf-map-pin>i{transform:rotate(45deg);color:#fff;font-size:.9rem}
.leaflet-popup-content-wrapper{background:var(--tf-surface-overlay);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);border:1px solid var(--tf-border);border-radius:var(--tf-radius-sm);color:var(--tf-text);box-shadow:var(--tf-shadow-md)}
.leaflet-popup-content{margin:10px 12px;font-family:var(--tf-font-body);font-size:var(--tf-fs-sm);line-height:1.4}
.leaflet-popup-content strong{font-family:var(--tf-font-display);font-weight:var(--tf-fw-semibold);display:block;margin-bottom:2px}
.leaflet-popup-content small{color:var(--tf-text-muted);font-size:var(--tf-fs-xs)}
.leaflet-popup-tip{background:var(--tf-surface-overlay);border:1px solid var(--tf-border);border-top:none;border-left:none}
.leaflet-container a.leaflet-popup-close-button{color:var(--tf-text-muted)}
.leaflet-container a.leaflet-popup-close-button:hover{color:var(--tf-yellow-500)}
.leaflet-bar a{background:var(--tf-surface-overlay);border-bottom-color:var(--tf-border);color:var(--tf-text);transition:background var(--tf-dur-fast) var(--tf-ease)}
.leaflet-bar a:hover{background:var(--tf-surface-3);color:var(--tf-yellow-500)}
.leaflet-bar a.leaflet-disabled{background:var(--tf-surface-2);color:var(--tf-text-subtle)}
.leaflet-container .leaflet-control-attribution{background:rgba(11,15,20,.55);color:rgba(255,255,255,.85);font-size:10px;padding:2px 6px;border-radius:var(--tf-radius-xs) 0 0 0}
.leaflet-container .leaflet-control-attribution a{color:var(--tf-yellow-500)}
.tf-map-empty{padding:var(--tf-space-10) var(--tf-space-5);text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--tf-space-3)}
.tf-map-empty i{font-size:2.5rem;color:var(--tf-text-subtle);opacity:.55}
.tf-map-empty h4{font-family:var(--tf-font-display);font-size:var(--tf-fs-md);font-weight:var(--tf-fw-semibold);color:var(--tf-text);margin:0}
.tf-map-empty p{color:var(--tf-text-muted);font-size:var(--tf-fs-sm);margin:0;max-width:380px}
@media (max-width:767.98px){#route-map{height:320px}}
@media (max-width:575.98px){#route-map{height:260px}.tf-info-block__head .btn[data-map-recenter] span{display:none}}

/* 31. MAP PICKER — NO TOCAR (usado por register) */
.tf-map-picker{display:flex;flex-direction:column;background:var(--tf-surface-2);border:1px solid var(--tf-border);border-radius:var(--tf-radius-sm);overflow:hidden;position:relative}
.tf-map-picker__search{position:relative;display:flex;align-items:center;padding:var(--tf-space-2) var(--tf-space-3);background:var(--tf-surface-overlay);border-bottom:1px solid var(--tf-border);z-index:20}
.tf-map-picker__search>i{color:var(--tf-text-subtle);margin-right:var(--tf-space-2);font-size:1rem;flex-shrink:0}
.tf-map-picker__search-input{flex:1;border:none;background:transparent;font-family:var(--tf-font-body);font-size:var(--tf-fs-base);color:var(--tf-text);outline:none;padding:var(--tf-space-2) 0}
.tf-map-picker__search-input::placeholder{color:var(--tf-text-subtle)}
.tf-map-picker__results{position:absolute;top:calc(100% + 4px);left:8px;right:8px;z-index:1000;background:var(--tf-surface-overlay);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);border:1px solid var(--tf-border);border-radius:var(--tf-radius-sm);box-shadow:var(--tf-shadow-lg);max-height:260px;overflow-y:auto;padding:4px}
.tf-map-picker__result{display:flex;align-items:flex-start;gap:var(--tf-space-2);padding:var(--tf-space-2) var(--tf-space-3);border-radius:var(--tf-radius-xs);cursor:pointer;font-size:var(--tf-fs-sm);color:var(--tf-text);line-height:1.35;transition:background var(--tf-dur-fast) var(--tf-ease);border:none;background:transparent;width:100%;text-align:left}
.tf-map-picker__result:hover{background:var(--tf-yellow-050);color:var(--tf-yellow-600)}
[data-theme="dark"] .tf-map-picker__result:hover{color:var(--tf-yellow-500)}
.tf-map-picker__result i{color:var(--tf-yellow-500);margin-top:3px;flex-shrink:0}
.tf-map-picker__result small{display:block;color:var(--tf-text-muted);font-size:var(--tf-fs-xs);margin-top:2px}
.tf-map-picker__empty{padding:var(--tf-space-3);text-align:center;font-size:var(--tf-fs-sm);color:var(--tf-text-muted)}
.tf-map-picker__map{width:100%;height:300px;background:var(--tf-surface-3);position:relative;z-index:1}
.tf-map-picker__footer{display:flex;justify-content:space-between;align-items:center;gap:var(--tf-space-3);padding:var(--tf-space-2) var(--tf-space-3);border-top:1px solid var(--tf-border);background:var(--tf-surface-overlay);font-size:var(--tf-fs-xs);flex-wrap:wrap}
.tf-map-picker__coords{display:inline-flex;align-items:center;gap:4px;font-family:var(--tf-font-mono);color:var(--tf-text);font-weight:var(--tf-fw-semibold);letter-spacing:.01em}
.tf-map-picker__coords i{color:var(--tf-yellow-500)}
.tf-map-picker__coords[data-empty="true"]{color:var(--tf-text-subtle);font-family:inherit;font-weight:var(--tf-fw-regular)}
.tf-map-picker__coords[data-empty="true"] i{color:var(--tf-text-subtle)}
.tf-map-picker__hint{display:inline-flex;align-items:center;gap:4px;color:var(--tf-text-muted);text-align:right;max-width:60%}
.tf-map-picker__hint i{color:var(--tf-success)}
.tf-map-pin--pickup-cursor{background:var(--tf-yellow-500)}
.tf-field-has-map input[type="number"]{background:var(--tf-surface-3)}
@media (max-width:575.98px){.tf-map-picker__map{height:240px}.tf-map-picker__footer{flex-direction:column;align-items:flex-start}.tf-map-picker__hint{max-width:100%;text-align:left}}

/* 32. ROLE SELECTOR — usado por register
   ------------------------------------------------------------ */
.tf-role-selector{display:grid;grid-template-columns:1fr 1fr;gap:var(--tf-space-3)}
.tf-role-option{position:relative;display:flex;align-items:center;gap:var(--tf-space-3);padding:var(--tf-space-3) var(--tf-space-4);background:var(--tf-surface-2);border:2px solid var(--tf-border);border-radius:var(--tf-radius-sm);cursor:pointer;transition:all var(--tf-dur-fast) var(--tf-ease);user-select:none}
.tf-role-option:hover{border-color:var(--tf-yellow-500);background:var(--tf-yellow-050)}
.tf-role-option input[type="radio"]{position:absolute;opacity:0;pointer-events:none}
.tf-role-option__icon{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--tf-surface-3);color:var(--tf-text-muted);flex-shrink:0;font-size:1.15rem;transition:all var(--tf-dur-fast) var(--tf-ease)}
.tf-role-option__body{display:flex;flex-direction:column;gap:2px;line-height:1.25;min-width:0}
.tf-role-option__body strong{font-size:var(--tf-fs-base);color:var(--tf-text);font-weight:var(--tf-fw-semibold)}
.tf-role-option__body small{font-size:var(--tf-fs-xs);color:var(--tf-text-muted)}
.tf-role-option__check{margin-left:auto;color:transparent;font-size:1.25rem;transition:color var(--tf-dur-fast) var(--tf-ease);flex-shrink:0}
.tf-role-option.is-selected{border-color:var(--tf-yellow-500);background:var(--tf-yellow-050);box-shadow:0 0 0 3px rgba(245,158,11,.18)}
.tf-role-option.is-selected .tf-role-option__icon{background:var(--tf-gradient-red);color:var(--tf-gray-950)}
.tf-role-option.is-selected .tf-role-option__check{color:var(--tf-yellow-600)}
.tf-role-option:focus-within{outline:2px solid var(--tf-yellow-500);outline-offset:2px}
@media (max-width:575.98px){.tf-role-selector{grid-template-columns:1fr}}

/* 33. EMPRESA mode — usado por register
   ------------------------------------------------------------ */
.tf-empresa-mode{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem}
.tf-mode-option{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:1px solid var(--tf-border);border-radius:999px;cursor:pointer;font-size:.875rem;transition:all .15s ease}
.tf-mode-option:hover{border-color:var(--tf-yellow-500)}
.tf-mode-option input[type="radio"]{display:none}
.tf-mode-option input[type="radio"]:checked+span{color:var(--tf-yellow-600);font-weight:600}
[data-theme="dark"] .tf-mode-option input[type="radio"]:checked+span{color:var(--tf-yellow-500)}
/* ============================================================
   BUFAL · App Shell v1.0
   Layout WordPress-style: Topbar (3 col) + Sidebar + Main
   ============================================================ */

/* ─── App root ─── */
.bf-app{
  min-height:100vh;
  display:flex;
  flex-direction:column;
  background:var(--tf-bg);
}

/* ─── TOPBAR ─── */
.bf-topbar{
  position:sticky;top:0;z-index:100;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:var(--tf-space-4);
  padding:var(--tf-space-2) var(--tf-space-4);
  min-height:64px;
  background:var(--tf-surface-overlay);
  backdrop-filter:blur(16px) saturate(1.2);
  -webkit-backdrop-filter:blur(16px) saturate(1.2);
  border-bottom:1px solid var(--tf-border);
  box-shadow:var(--tf-shadow-sm);
}
.bf-topbar__left{position:relative;justify-self:start}
.bf-topbar__right{
  display:inline-flex;
  align-items:center;
  gap:var(--tf-space-2);
  justify-self:end;
}

/* Final module pass: these rules intentionally sit last to normalize legacy overrides. */
.bf-body{grid-template-columns:224px minmax(0,1fr)}
.bf-sidebar{top:58px;height:calc(100vh - 58px);width:224px;padding:1rem .65rem;background:#fff;border-right:1px solid #e7e9ed}
.bf-sidebar__link{border-left:2px solid transparent;border-radius:7px;padding:.68rem .72rem;font-size:.82rem;gap:.65rem}
.bf-sidebar__link[aria-current="page"]{background:#fff4d2;color:#a85b00;box-shadow:none;border-left-color:#f59e0b}
.bf-sidebar__link:hover{transform:none;background:#fff8e8}
.bf-main{padding:1.5rem clamp(1rem,2.6vw,2.75rem);max-width:none}
.bf-main>.container{max-width:1280px;padding-block:0;padding-inline:0}
.tf-loads-page{max-width:1280px;padding:0;gap:1.25rem}
.tf-filters,.tf-table-card{border-radius:10px;box-shadow:0 2px 8px rgba(15,23,42,.06);backdrop-filter:none}
.tf-filters__header,.tf-table-card__header{padding:.8rem 1rem}
.tf-filters__body{padding:1rem}.tf-filters__grid{gap:1rem;margin-bottom:1rem}
.tf-filters__actions{justify-content:flex-end;padding-top:1rem}.tf-filters__actions .btn{min-width:0}
.tf-table-card__header::after{height:1px}.tf-table thead th{padding:.7rem .85rem;text-align:left;font-size:.68rem}
.tf-table tbody td{padding:.78rem .85rem;text-align:left;border-bottom:1px solid #edf0f3}
.tf-table tbody td:last-child,.tf-table thead th:last-child{text-align:right}
.tf-table tbody tr:hover td{background:#fffaf0}.tf-table td.tf-cell-actions{display:flex;justify-content:flex-end;gap:.35rem}
.tf-table .btn{width:30px;height:30px;padding:0;justify-content:center;border-radius:6px;box-shadow:none!important}
.badge{border-radius:999px;padding:.28rem .55rem;font-size:.68rem;font-weight:700;white-space:nowrap}
.btn{border-radius:7px;box-shadow:none!important;font-weight:700}.btn::before,.btn::after{display:none}.btn:hover{transform:translateY(-1px)!important}
.btn-primary{background:#f59e0b;color:#19120a;border:1px solid #dc8506}.btn-secondary{background:#334155;color:#fff;border:1px solid #273449}
.btn-outline-primary,.btn-outline-secondary,.btn-outline-danger{background:#fff;box-shadow:none!important}
.form-control,.form-select{min-height:38px;border-radius:7px}.form-label{margin-bottom:.35rem;font-size:.76rem;font-weight:700}
.tf-empty{padding:4.5rem 1rem}.tf-empty__icon{width:64px;height:64px}
@media (max-width:900px){.bf-sidebar{width:auto}.tf-table{min-width:760px}.tf-table-card .table-responsive{overflow-x:auto}}
.admin-users-filters{grid-template-columns:minmax(260px,2fr) minmax(160px,1fr) minmax(160px,1fr)}
.admin-users-page .tf-cell-actions form{display:inline-flex;margin:0}
.admin-users-footer{display:flex;justify-content:space-between;align-items:center;color:var(--tf-text-muted);font-size:.78rem;padding:.25rem .1rem}
@media (max-width:700px){.admin-users-filters{grid-template-columns:1fr}.admin-users-footer{align-items:flex-start;gap:.75rem;flex-direction:column}}

/* Correcciones de QA: acciones vacías y cabecera consistente en todos los módulos. */
.bf-brand{display:inline-flex;align-items:center;min-width:112px;min-height:42px;overflow:visible;padding:.2rem .7rem;border-left-width:3px}
.bf-brand img{display:block;width:92px;height:auto;max-width:none;object-fit:contain}
.bf-topbar__legacy-user{display:flex;align-items:center}
.bf-topbar__legacy-user .bf-user-btn{min-height:42px;white-space:nowrap}
.bf-user-btn__info{display:flex!important}
.tf-empty .btn{width:auto!important;height:auto!important;min-width:0!important;padding:.65rem 1rem!important;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;white-space:nowrap}
.tf-table td[colspan] .tf-empty{width:100%}
.tf-users-table{table-layout:auto}
.tf-users-table th:nth-child(1){min-width:180px}.tf-users-table th:nth-child(2){min-width:240px}
.tf-cell-email{color:var(--tf-text-muted);font-size:.86rem;white-space:nowrap}
@media (max-width:700px){.tf-users-table{min-width:900px}}
.tf-cell-email{color:var(--tf-text-muted);font-size:.86rem;white-space:nowrap}
.bf-loader{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}
.bf-loader__mark{width:104px;height:104px;flex:0 0 104px;z-index:0}
.bf-loader__mark img{position:relative;z-index:1;width:76px;max-height:68px;object-fit:contain}
.bf-loader__mark span{z-index:0;inset:2px;border-width:3px}
.bf-loader p{position:static;margin:0;font-size:.72rem;text-align:center}
.bf-footer__logo{width:34px;height:34px;object-fit:contain;display:block}
.bf-login-logo{display:block;width:min(280px,90%);height:auto;max-height:180px;object-fit:contain;margin:0 auto}
.bf-footer{display:grid;grid-template-columns:1.2fr auto 1.8fr;align-items:center;gap:2rem;padding:1.5rem 2.5rem 1.5rem 250px;margin-left:0;background:#152126;color:#dbe5e8;border-top:3px solid #f59e0b;min-height:104px;box-sizing:border-box}
.bf-footer__brand{display:flex;align-items:center;gap:.8rem}.bf-footer__logo{width:58px;height:58px;background:#fff;border-radius:10px;padding:4px}.bf-footer__brand strong{display:block;color:#fff;letter-spacing:.12em;font-size:1.05rem}.bf-footer__brand small{display:block;color:#9fb0b7;margin-top:.2rem}.bf-footer__links{display:flex;gap:1.1rem}.bf-footer__links a{color:#f8b33a;text-decoration:none;font-weight:700;font-size:.8rem}.bf-footer__links a:hover{color:#fff}.bf-footer__meta{display:flex;flex-direction:column;align-items:flex-end;gap:.22rem;color:#9fb0b7;font-size:.72rem}@media(max-width:900px){.bf-footer{margin-left:0;grid-template-columns:1fr;padding:1.25rem}.bf-footer__meta{align-items:flex-start}.bf-footer__links{flex-wrap:wrap}}
.bf-step-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;margin-bottom:1rem;background:var(--tf-surface);border:1px solid var(--tf-border);border-radius:10px;position:sticky;top:74px;z-index:8}.bf-step-actions span{font-size:.8rem;font-weight:800;color:var(--tf-text-muted)}.bf-step-actions .btn{min-width:110px}.bf-step-actions button:disabled{opacity:.45;cursor:not-allowed}.bf-step-hidden{display:none!important}
.bf-sidebar__link:nth-child(1) .bf-sidebar__icon{color:#64748b}.bf-sidebar__link:nth-child(2) .bf-sidebar__icon{color:#f59e0b}.bf-sidebar__link:nth-child(3) .bf-sidebar__icon{color:#10b981}.bf-sidebar__link:nth-child(4) .bf-sidebar__icon{color:#3b82f6}.bf-sidebar__link:nth-child(5) .bf-sidebar__icon{color:#8b5cf6}.bf-sidebar__link:nth-child(6) .bf-sidebar__icon{color:#ef4444}.bf-sidebar__link:nth-child(7) .bf-sidebar__icon{color:#06b6d4}.bf-sidebar__link:nth-child(8) .bf-sidebar__icon{color:#f97316}.bf-sidebar__link:hover .bf-sidebar__icon,.bf-sidebar__link[aria-current="page"] .bf-sidebar__icon{filter:saturate(1.35) brightness(.95)}
.bf-toast{display:flex;align-items:center;gap:.8rem;padding:.85rem 1rem;margin-bottom:1rem;border:1px solid #8be0be;border-left:4px solid #10b981;border-radius:10px;background:#ecfdf5;color:#14532d;box-shadow:0 8px 24px rgba(16,185,129,.12)}.bf-toast>i{font-size:1.3rem;color:#10b981}.bf-toast small{display:block;color:#4b7b65;margin-top:.15rem}.bf-toast .btn{margin-left:auto;white-space:nowrap}

/* Header final: una sola línea, sin desbordes ni controles flotando. */
.bf-topbar{height:64px!important;min-height:64px!important;box-sizing:border-box;display:grid!important;grid-template-columns:220px minmax(0,1fr) 220px!important;align-items:center!important;padding:0 16px!important;gap:16px!important;overflow:visible}
.bf-topbar__left{grid-column:1!important;grid-row:1!important;display:flex!important;align-items:center!important;height:100%!important;justify-self:start!important;min-width:0}
.bf-topbar__left .bf-brand{width:150px!important;height:52px!important;min-width:150px!important;box-sizing:border-box;display:flex!important;align-items:center!important;justify-content:flex-start!important;padding:4px 10px!important;overflow:hidden!important}
.bf-topbar__left .bf-brand img{width:116px!important;height:40px!important;max-height:40px!important;object-fit:contain!important;object-position:left center!important}
.bf-topnav{grid-column:2!important;grid-row:1!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:4px!important;height:100%!important;margin:0!important;padding:0 0 2px!important}
.bf-topnav__link{display:inline-flex!important;align-items:center!important;height:38px!important;padding:0 11px!important;margin:0!important;white-space:nowrap!important;border-radius:8px!important}
.bf-topbar__right{grid-column:3!important;grid-row:1!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:10px!important;height:100%!important;margin:0!important;padding:0!important}
.bf-topbar__right .bf-theme-toggle{width:40px!important;height:40px!important;margin:0!important;display:grid!important;place-items:center!important}
.bf-topbar__legacy-user{position:absolute!important;right:16px!important;top:0!important;display:flex!important;align-items:center!important;height:64px!important;z-index:5}
.bf-user-btn{height:44px!important;min-height:44px!important;box-sizing:border-box;display:inline-flex!important;align-items:center!important}
.bf-user-btn__avatar{width:32px!important;height:32px!important}
@media (max-width:900px){.bf-topbar{grid-template-columns:1fr auto!important}.bf-topnav{display:none!important}.bf-topbar__right{grid-column:2!important;padding-right:190px!important}.bf-topbar__left .bf-brand{width:130px!important;min-width:130px!important}}
.bf-topbar__left .bf-brand{width:188px!important;min-width:188px!important;height:60px!important;padding:2px 4px!important;border:0!important;background:transparent!important}
.bf-topbar__left .bf-brand img{width:174px!important;height:52px!important;max-height:52px!important;object-fit:contain!important;object-position:left center!important;filter:drop-shadow(0 3px 4px rgba(21,33,38,.16))}

/* Profundidad visual, movimiento sutil y carga de marca. */
.bf-app,.bf-public-page{position:relative;isolation:isolate;overflow-x:hidden}
.bf-app::before,.bf-public-page::before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(circle at 85% 12%,rgba(245,158,11,.12),transparent 30%),radial-gradient(circle at 8% 90%,rgba(47,115,143,.1),transparent 28%),linear-gradient(135deg,rgba(255,255,255,.25),transparent 42%);background-attachment:fixed}
.bf-app::after,.bf-public-page::after{content:"";position:fixed;inset:-20%;z-index:-1;pointer-events:none;opacity:.22;background-image:linear-gradient(115deg,transparent 0 48%,rgba(245,158,11,.08) 49%,transparent 50%),linear-gradient(25deg,transparent 0 48%,rgba(21,33,38,.06) 49%,transparent 50%);background-size:180px 180px;transform:rotate(-8deg);animation:bf-drift 24s linear infinite}
.bf-loader{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:#eef1f3;color:#152126;transition:opacity .4s ease,visibility .4s ease}.bf-loader.is-done{opacity:0;visibility:hidden}.bf-loader__mark{position:relative;display:grid;place-items:center;width:112px;height:112px}.bf-loader__mark img{width:92px;height:auto;animation:bf-pulse 1.5s ease-in-out infinite}.bf-loader__mark span{position:absolute;inset:0;border:2px solid #f59e0b;border-top-color:transparent;border-radius:50%;animation:bf-spin 1s linear infinite}.bf-loader p{position:absolute;margin-top:170px;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#687780}.bf-login-logo{animation:bf-float 4s ease-in-out infinite;filter:drop-shadow(0 12px 18px rgba(21,33,38,.14))}
@keyframes bf-spin{to{transform:rotate(360deg)}}@keyframes bf-pulse{50%{transform:scale(1.05)}}@keyframes bf-float{50%{transform:translateY(-5px)}}@keyframes bf-drift{to{transform:rotate(-8deg) translate3d(28px,18px,0)}}
@media (prefers-reduced-motion:reduce){.bf-app::after,.bf-loader__mark img,.bf-loader__mark span,.bf-login-logo{animation:none}}

/* Shell refinado: marca a la izquierda, contexto centrado y sesión a la derecha. */
.bf-topbar{grid-template-columns:1fr auto 1fr;min-height:58px;padding:.45rem 1.15rem}
.bf-topbar__left{grid-column:1;grid-row:1;z-index:2}
.bf-topbar__right{grid-column:3;grid-row:1;margin-right:180px}
.bf-topbar__legacy-user{position:absolute;right:1rem;top:.45rem;z-index:4}
.bf-topbar__legacy-user .bf-user-menu{left:auto;right:0}
.bf-topbar__right .bf-brand{display:none}
.bf-topbar__context{display:inline-flex;align-items:center;gap:.5rem;color:var(--tf-text-muted);font-size:.78rem;font-weight:700;letter-spacing:.03em}
.bf-topbar__context i{color:var(--tf-yellow-600)}
.bf-topbar__context small{font-weight:500;color:var(--tf-text-subtle)}
.bf-topnav__link{display:none}
.bf-body{grid-template-columns:224px minmax(0,1fr);min-height:calc(100vh - 58px)}
.bf-sidebar{top:58px;height:calc(100vh - 58px);padding:1rem .75rem}
.bf-main{padding:1.25rem clamp(1rem,2.4vw,2.25rem);max-width:none}
.bf-main>.container{max-width:1320px;padding-block:0;padding-inline:0}
.tf-loads-page{max-width:1320px;padding:0;gap:1rem}
.tf-filters,.tf-table-card{margin:0}
@media (max-width:900px){.bf-topbar__context{display:none}.bf-topbar__right{margin-right:0}.bf-topbar__legacy-user{right:.5rem}.bf-topbar__right{padding-right:3.5rem}}

/* Pantallas públicas y formularios: no heredan el chrome operativo. */
.bf-public-page{min-height:100vh;background:var(--tf-bg)}
.bf-public-shell{width:min(1180px,100%);margin:0 auto;padding:clamp(1.25rem,3vw,3rem)}
.bf-public-page .tf-login{min-height:100vh;padding:clamp(1rem,4vw,3rem)}
.bf-public-page .tf-login-card{max-width:430px;padding:2.5rem 2.25rem}
.bf-public-page .tf-login-card form{display:flex;flex-direction:column;gap:1.1rem!important}
.bf-public-page .tf-login-card .tf-field{gap:.45rem;margin:0}
.bf-public-page .tf-login-card .form-label{margin:0;font-size:.8rem}
.bf-public-page .tf-login-card .form-control{min-height:44px;padding:.7rem .85rem}
.bf-public-page .tf-login-card .tf-flex--between{margin-top:-.25rem}
.bf-public-page .tf-login-card .btn{margin-top:.25rem;min-height:44px}
.bf-public-page .tf-login-card .tf-text-center{margin-top:1.5rem}
.bf-public-page .tf-page-header{margin-bottom:1.5rem}
.bf-public-page .tf-form-card{box-shadow:var(--tf-shadow-md)}
.bf-public-page .tf-form-row{row-gap:1.15rem}
.bf-public-page .tf-field{gap:.45rem}
.bf-public-page .form-label{margin-bottom:.15rem}
.bf-public-page .tf-form-block{padding:clamp(1.25rem,2.5vw,2rem)}
.bf-public-page .tf-form-block__head{margin-bottom:1.25rem}
.bf-public-page .tf-form-block__body{padding-left:0}

/* Unificación visual de módulos */
.bf-sidebar{width:224px;background:#fff;border-right:1px solid #e7e9ed;padding:1rem .65rem}
.bf-sidebar__link{border-left:2px solid transparent;border-radius:7px;padding:.68rem .72rem;font-size:.82rem;gap:.65rem}
.bf-sidebar__link[aria-current="page"]{background:#fff4d2;color:#a85b00;box-shadow:none;border-left-color:#f59e0b}
.bf-sidebar__link:hover{transform:none;background:#fff8e8}
.bf-sidebar__icon{color:#98a1ae;width:1.15rem}.bf-sidebar__link[aria-current="page"] .bf-sidebar__icon{color:#d97706}
.bf-main{padding:1.5rem clamp(1rem,2.6vw,2.75rem)}
.bf-main>.container{max-width:1280px}
.tf-loads-page{max-width:1280px;gap:1.25rem}
.tf-loads-header{padding:.25rem 0 .35rem}.tf-loads-header__left{gap:.75rem}
.tf-loads-header__icon{width:44px;height:44px;border-radius:9px;box-shadow:none}
.tf-loads-header h1{font-size:1.65rem}.tf-loads-header p{font-size:.78rem}
.tf-filters,.tf-table-card{border-radius:10px;box-shadow:0 2px 8px rgba(15,23,42,.06);backdrop-filter:none}
.tf-filters__header,.tf-table-card__header{padding:.8rem 1rem}
.tf-filters__body{padding:1rem}.tf-filters__grid{gap:1rem;margin-bottom:1rem}
.tf-filters__actions{justify-content:flex-end;padding-top:1rem}.tf-filters__actions .btn{min-width:0}
.tf-table-card__header::after{height:1px}.tf-table-card__title{font-size:.95rem}
.tf-table thead th{padding:.7rem .85rem;text-align:left;font-size:.68rem}
.tf-table tbody td{padding:.78rem .85rem;text-align:left;border-bottom:1px solid #edf0f3}
.tf-table tbody td:last-child,.tf-table thead th:last-child{text-align:right}
.tf-table tbody tr:hover td{background:#fffaf0}.tf-table td.tf-cell-actions{display:flex;justify-content:flex-end;gap:.35rem}
.tf-table .btn{width:30px;height:30px;padding:0;justify-content:center;border-radius:6px;box-shadow:none!important}
.badge{border-radius:999px;padding:.28rem .55rem;font-size:.68rem;font-weight:700;white-space:nowrap}
.btn{border-radius:7px;box-shadow:none!important;font-weight:700;letter-spacing:0}.btn::before,.btn::after{display:none}.btn:hover{transform:translateY(-1px)!important}
.btn-primary{background:#f59e0b;color:#19120a;border:1px solid #dc8506}.btn-secondary{background:#334155;color:#fff;border:1px solid #273449}
.btn-outline-primary,.btn-outline-secondary,.btn-outline-danger{background:#fff;box-shadow:none!important}
.form-control,.form-select{min-height:38px;border-radius:7px}.form-label{margin-bottom:.35rem;font-size:.76rem;font-weight:700}
.tf-empty{padding:4.5rem 1rem}.tf-empty__icon{width:64px;height:64px}
@media (max-width:900px){.bf-sidebar{width:auto}.tf-table{min-width:760px}.tf-table-card .table-responsive{overflow-x:auto}}

/* ─── User button (topbar left) ─── */
.bf-user-btn{
  display:inline-flex;
  align-items:center;
  gap:var(--tf-space-2);
  padding:var(--tf-space-1) var(--tf-space-3) var(--tf-space-1) var(--tf-space-1);
  background:var(--tf-surface);
  border:1px solid var(--tf-border);
  border-radius:var(--tf-radius-pill);
  cursor:pointer;
  transition:all var(--tf-dur-fast) var(--tf-ease);
  font-family:inherit;
}
.bf-user-btn:hover{background:var(--tf-surface-2);border-color:var(--tf-yellow-500)}
.bf-user-btn[aria-expanded="true"]{border-color:var(--tf-yellow-500);box-shadow:0 0 0 3px rgba(245,158,11,.15)}
.bf-user-btn__avatar{
  width:36px;height:36px;
  border-radius:50%;
  background:var(--tf-gradient-red);
  color:var(--tf-gray-950);
  display:grid;place-items:center;
  font-size:1rem;
  box-shadow:var(--tf-shadow-red);
  flex-shrink:0;
}
.bf-user-btn__info{
  display:flex;flex-direction:column;align-items:flex-start;gap:1px;
  line-height:1.1;min-width:0;
}
.bf-user-btn__info strong{
  font-family:var(--tf-font-display);
  font-size:var(--tf-fs-sm);
  font-weight:var(--tf-fw-semibold);
  color:var(--tf-text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  max-width:140px;
}
.bf-user-btn__info small{
  font-size:.7rem;
  color:var(--tf-text-muted);
  text-transform:uppercase;
  letter-spacing:.04em;
  font-weight:var(--tf-fw-semibold);
}
.bf-user-btn__caret{
  color:var(--tf-text-subtle);
  font-size:.9rem;
  transition:transform var(--tf-dur-fast) var(--tf-ease);
}
.bf-user-btn[aria-expanded="true"] .bf-user-btn__caret{transform:rotate(180deg)}

/* ─── User dropdown ─── */
.bf-user-menu{
  position:absolute;
  top:calc(100% + 8px);
  left:0;
  min-width:220px;
  padding:6px;
  background:var(--tf-surface);
  border:1px solid var(--tf-border);
  border-radius:var(--tf-radius-md);
  box-shadow:var(--tf-shadow-lg);
  display:flex;flex-direction:column;gap:2px;
  z-index:200;
  animation:tf-slide-down var(--tf-dur) var(--tf-ease);
}
.bf-user-menu[hidden]{display:none}
.bf-user-menu a{
  display:flex;align-items:center;gap:var(--tf-space-2);
  padding:var(--tf-space-2) var(--tf-space-3);
  border-radius:var(--tf-radius-sm);
  color:var(--tf-text-muted);
  font-size:var(--tf-fs-sm);
  font-weight:var(--tf-fw-medium);
  text-decoration:none;
  transition:all var(--tf-dur-fast) var(--tf-ease);
}
.bf-user-menu a:hover{background:var(--tf-yellow-050);color:var(--tf-yellow-600)}
.bf-user-menu a i{font-size:1rem}
.bf-user-menu a.is-danger{color:var(--tf-red-500)}
.bf-user-menu a.is-danger:hover{background:var(--tf-red-050);color:var(--tf-red-600)}
.bf-user-menu hr{
  border:0;
  border-top:1px solid var(--tf-border);
  margin:4px 0;
}

/* ─── Topnav (centro) ─── */
.bf-topnav{
  display:flex;
  align-items:center;
  gap:2px;
  justify-self:center;
}
.bf-topnav__link{
  display:inline-flex;align-items:center;gap:var(--tf-space-2);
  padding:var(--tf-space-2) var(--tf-space-3);
  border-radius:var(--tf-radius-sm);
  font-size:var(--tf-fs-sm);
  font-weight:var(--tf-fw-medium);
  color:var(--tf-text-muted);
  text-decoration:none;
  white-space:nowrap;
  transition:all var(--tf-dur-fast) var(--tf-ease);
}
.bf-topnav__link i{
  font-size:1rem;
  color:var(--tf-text-subtle);
  transition:color var(--tf-dur-fast) var(--tf-ease);
}
.bf-topnav__link:hover{background:var(--tf-surface-2);color:var(--tf-text)}
.bf-topnav__link:hover i{color:var(--tf-yellow-500)}
.bf-topnav__link[aria-current="page"]{
  background:var(--tf-yellow-050);
  color:var(--tf-yellow-600);
  font-weight:var(--tf-fw-semibold);
}
.bf-topnav__link[aria-current="page"] i{color:var(--tf-yellow-500)}

/* ─── Theme toggle ─── */
.bf-theme-toggle{
  width:38px;height:38px;
  border-radius:var(--tf-radius-sm);
  border:1px solid var(--tf-border);
  background:transparent;
  color:var(--tf-text);
  display:grid;place-items:center;
  cursor:pointer;
  transition:all var(--tf-dur-fast) var(--tf-ease);
  font-size:1rem;
}
.bf-theme-toggle:hover{
  background:var(--tf-surface-2);
  border-color:var(--tf-yellow-500);
  color:var(--tf-yellow-600);
}

/* ─── Brand (topbar right) ─── */
.bf-brand{
  display:inline-flex;
  align-items:center;
  gap:var(--tf-space-2);
  padding:var(--tf-space-1) var(--tf-space-3);
  border-radius:var(--tf-radius-sm);
  text-decoration:none;
  transition:background var(--tf-dur-fast) var(--tf-ease);
}
.bf-brand:hover{background:var(--tf-surface-2)}
.bf-brand__mark{
  width:32px;height:32px;
  border-radius:var(--tf-radius-sm);
  background:var(--tf-gradient-red);
  color:var(--tf-gray-950);
  display:grid;place-items:center;
  font-size:1rem;
  box-shadow:var(--tf-shadow-red);
  flex-shrink:0;
}
.bf-brand__name{
  font-family:var(--tf-font-display);
  font-size:var(--tf-fs-base);
  font-weight:var(--tf-fw-bold);
  letter-spacing:-.02em;
  color:var(--tf-text);
}

/* ─── BODY: grid sidebar + main ─── */
.bf-body{
  flex:1;
  display:grid;
  grid-template-columns:260px minmax(0,1fr);
  min-height:0;
}

/* ─── SIDEBAR ─── */
.bf-sidebar{
  position:sticky;
  top:64px;
  height:calc(100vh - 64px);
  overflow-y:auto;
  padding:var(--tf-space-5) var(--tf-space-3);
  background:var(--tf-surface);
  border-right:1px solid var(--tf-border);
}
.bf-sidebar__header{
  padding:0 var(--tf-space-3) var(--tf-space-3);
  margin-bottom:var(--tf-space-3);
  border-bottom:1px solid var(--tf-border);
}
.bf-sidebar__title{
  font-family:var(--tf-font-display);
  font-size:.7rem;
  font-weight:var(--tf-fw-bold);
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--tf-text-subtle);
}
.bf-sidebar__nav{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.bf-sidebar__link{
  display:flex;
  align-items:center;
  gap:var(--tf-space-3);
  padding:var(--tf-space-2) var(--tf-space-3);
  border-radius:var(--tf-radius-sm);
  color:var(--tf-text-muted);
  font-size:var(--tf-fs-sm);
  font-weight:var(--tf-fw-medium);
  text-decoration:none;
  transition:all var(--tf-dur-fast) var(--tf-ease);
  border-left:3px solid transparent;
}
.bf-sidebar__link:hover{
  background:var(--tf-surface-2);
  color:var(--tf-text);
  border-left-color:var(--tf-yellow-500);
}
.bf-sidebar__link:hover .bf-sidebar__icon{color:var(--tf-yellow-500)}
.bf-sidebar__link[aria-current="page"]{
  background:var(--tf-yellow-050);
  color:var(--tf-yellow-600);
  font-weight:var(--tf-fw-semibold);
  border-left-color:var(--tf-yellow-500);
}
.bf-sidebar__link[aria-current="page"] .bf-sidebar__icon{color:var(--tf-yellow-500)}
.bf-sidebar__icon{
  width:22px;height:22px;
  display:grid;place-items:center;
  color:var(--tf-text-subtle);
  flex-shrink:0;
  transition:color var(--tf-dur-fast) var(--tf-ease);
  font-size:1rem;
}
.bf-sidebar__label{flex:1;min-width:0}
.bf-sidebar__divider{
  border:0;
  border-top:1px solid var(--tf-border);
  margin:var(--tf-space-3) var(--tf-space-2);
}

/* ─── MAIN ─── */
.bf-main{
  padding:var(--tf-space-6);
  display:flex;
  flex-direction:column;
  gap:var(--tf-space-6);
  max-width:1400px;
  width:100%;
  margin-inline:auto;
  min-width:0;
}
.bf-main__header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:var(--tf-space-4);
  flex-wrap:wrap;
}
.bf-main__title{
  font-family:var(--tf-font-display);
  font-size:var(--tf-fs-2xl);
  font-weight:var(--tf-fw-bold);
  letter-spacing:-.02em;
  color:var(--tf-text);
  margin:0 0 4px;
  line-height:1.15;
}
.bf-main__subtitle{
  margin:0;
  font-size:var(--tf-fs-sm);
  color:var(--tf-text-muted);
}

/* ─── Sections ─── */
.bf-section{
  display:flex;
  flex-direction:column;
  gap:var(--tf-space-4);
}
.bf-section__title{
  display:flex;
  align-items:center;
  gap:var(--tf-space-2);
  font-family:var(--tf-font-display);
  font-size:var(--tf-fs-sm);
  font-weight:var(--tf-fw-semibold);
  text-transform:uppercase;
  letter-spacing:var(--tf-tracking-wide);
  color:var(--tf-text-muted);
  margin:0;
}
.bf-section__title i{color:var(--tf-yellow-500);font-size:1rem}

/* ─── Loads grid inside main ─── */
.bf-loads-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
  gap:var(--tf-space-4);
}
.bf-load-card{
  display:flex;
  flex-direction:column;
  gap:var(--tf-space-3);
}

/* ─── RESPONSIVE ─── */
@media (max-width:991.98px){
  .bf-topbar{
    grid-template-columns:auto 1fr auto;
    gap:var(--tf-space-2);
  }
  .bf-user-btn__info{display:none}
  .bf-user-btn{padding:var(--tf-space-1)}
  .bf-user-btn__caret{display:none}

  .bf-topnav{
    overflow-x:auto;
    scrollbar-width:none;
    justify-self:stretch;
    -webkit-overflow-scrolling:touch;
  }
  .bf-topnav::-webkit-scrollbar{display:none}
  .bf-topnav__link span{display:none}
  .bf-topnav__link{
    padding:var(--tf-space-2);
    min-width:40px;
    justify-content:center;
    flex-shrink:0;
  }
  .bf-brand__name{display:none}

  .bf-body{grid-template-columns:1fr}
  .bf-sidebar{
    position:sticky;
    top:64px;
    height:auto;
    max-height:none;
    border-right:none;
    border-bottom:1px solid var(--tf-border);
    padding:var(--tf-space-2) var(--tf-space-3);
    overflow-x:auto;
    overflow-y:hidden;
  }
  .bf-sidebar__header{display:none}
  .bf-sidebar__nav{
    flex-direction:row;
    gap:var(--tf-space-2);
    overflow-x:auto;
    scrollbar-width:none;
  }
  .bf-sidebar__nav::-webkit-scrollbar{display:none}
  .bf-sidebar__link{
    flex-shrink:0;
    border-left:none;
    border-bottom:2px solid transparent;
    border-radius:0;
    padding:var(--tf-space-2) var(--tf-space-3);
  }
  .bf-sidebar__link:hover{
    background:transparent;
    border-left-color:transparent;
    border-bottom-color:var(--tf-border-strong);
  }
  .bf-sidebar__link[aria-current="page"]{
    background:transparent;
    border-left-color:transparent;
    border-bottom-color:var(--tf-yellow-500);
  }
  .bf-sidebar__label{display:none}
  .bf-sidebar__divider{display:none}

  .bf-main{padding:var(--tf-space-4)}
}

@media (max-width:575.98px){
  .bf-main{
    padding:var(--tf-space-3);
    gap:var(--tf-space-4);
  }
  .bf-main__title{font-size:var(--tf-fs-xl)}
  .bf-loads-grid{grid-template-columns:1fr}
}
.bf-sidebar__icon{color:#f59e0b!important}.bf-sidebar__link[aria-current="page"] .bf-sidebar__icon{color:#d97706!important}
.tf-pagination-wrap .tf-pagination{display:flex;align-items:center;justify-content:center;gap:.55rem;width:100%}
.tf-pagination__current{min-width:8rem;text-align:center;color:var(--tf-text-muted);font-size:var(--tf-fs-sm)}
.tf-pagination .is-disabled{opacity:.48;pointer-events:none;cursor:default}
.tf-table-card.is-loading{position:relative;pointer-events:none}
.tf-table-card.is-loading::after{content:"";position:absolute;inset:0;border-radius:inherit;background:rgba(255,255,255,.72);z-index:5}
.tf-table-card.is-loading::before{content:"";position:absolute;top:50%;left:50%;width:28px;height:28px;margin:-14px;border:3px solid #fcd34d;border-top-color:#f59e0b;border-radius:50%;animation:bf-spin .75s linear infinite;z-index:6}

/* Dashboard imagery: local asset with a readable overlay for operational copy. */
.bf-dashboard-hero{position:relative;min-height:220px;margin:.35rem 0 1.5rem;border-radius:16px;overflow:hidden;background-image:linear-gradient(90deg,rgba(21,33,38,.96) 0%,rgba(21,33,38,.74) 45%,rgba(21,33,38,.2) 100%),url('/img/dashboard-truck.png');background-size:cover;background-position:center;display:flex;align-items:center;box-shadow:0 14px 32px rgba(21,33,38,.14)}
.bf-dashboard-hero__content{max-width:430px;padding:2rem;color:#fff}
.bf-dashboard-hero__eyebrow{display:inline-flex;gap:.45rem;align-items:center;color:#fbbf24;text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;font-weight:800}
.bf-dashboard-hero h2{margin:.65rem 0 .45rem;color:#fff!important;font-size:clamp(1.55rem,3vw,2.35rem);line-height:1.05}
.bf-dashboard-hero p{margin:0;color:#d7e1e5;max-width:330px}
@media(max-width:700px){.bf-dashboard-hero{min-height:190px}.bf-dashboard-hero__content{padding:1.25rem}}

/* Keep the footer branded while giving it a subtle logistics texture. */
.bf-footer{position:relative;overflow:hidden;background-image:linear-gradient(90deg,rgba(21,33,38,.98),rgba(21,33,38,.82)),url('/img/dashboard-truck.png');background-position:center right;background-size:cover}
.bf-footer>*{position:relative;z-index:1}
/* Theme toggle flotante — siempre visible, abajo a la derecha */
.bf-theme-toggle{
  position: fixed !important;
  bottom: 24px !important;
  right: 24px !important;
  top: auto !important;
  left: auto !important;

  width: 52px !important;
  height: 52px !important;
  border-radius: 50% !important;

  display: grid !important;
  place-items: center !important;

  background: var(--tf-surface) !important;
  color: var(--tf-text) !important;
  border: 1px solid var(--tf-border) !important;
  box-shadow: 0 8px 24px rgba(15, 23, 42, .18),
              0 2px 6px rgba(15, 23, 42, .10) !important;

  cursor: pointer !important;
  font-size: 1.15rem !important;
  z-index: 9999 !important;

  transition: transform var(--tf-dur-fast) var(--tf-ease),
              box-shadow var(--tf-dur) var(--tf-ease),
              background-color var(--tf-dur-fast) var(--tf-ease),
              color var(--tf-dur-fast) var(--tf-ease) !important;
}

.bf-theme-toggle:hover{
  transform: translateY(-2px) !important;
  background: var(--tf-yellow-500) !important;
  color: #17120a !important;
  border-color: var(--tf-yellow-600) !important;
  box-shadow: 0 12px 28px rgba(245, 158, 11, .38),
              0 3px 8px rgba(15, 23, 42, .12) !important;
}

.bf-theme-toggle:active{
  transform: translateY(0) scale(.96) !important;
}

.bf-theme-toggle:focus-visible{
  outline: 2px solid var(--tf-yellow-500) !important;
  outline-offset: 3px !important;
}

/* Móvil: un poco más pegado al borde */
@media (max-width: 575.98px){
  .bf-theme-toggle{
    bottom: 16px !important;
    right: 16px !important;
    width: 46px !important;
    height: 46px !important;
    font-size: 1.05rem !important;
  }
}

/* Pantallas grandes: un poco más de aire */
@media (min-width: 1400px){
  .bf-theme-toggle{
    bottom: 32px !important;
    right: 32px !important;
  }
}

/* Facturación: formularios y acciones con jerarquía clara y adaptación móvil. */
.tf-invoice-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.25rem}
.tf-invoice-form label,.tf-invoice-payment label{display:flex;flex-direction:column;gap:.4rem;font-size:.88rem;font-weight:600;color:var(--tf-text)}
.tf-invoice-form input,.tf-invoice-form select,.tf-invoice-payment input{width:100%;min-height:42px;padding:.6rem .75rem;border:1px solid var(--tf-border-strong);border-radius:var(--tf-radius-sm);background:var(--tf-surface-2);color:var(--tf-text)}
.tf-invoice-form input:focus,.tf-invoice-form select:focus,.tf-invoice-payment input:focus{outline:none;border-color:var(--tf-yellow-500);box-shadow:var(--tf-focus-ring)}
.tf-invoice-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.tf-invoice-actions>p{flex:1 1 100%;margin:0;color:var(--tf-text-muted)}
.tf-invoice-actions form{margin:0}
.tf-invoice-payment{display:flex;align-items:end;gap:.75rem;flex:1 1 100%;max-width:720px}
.tf-invoice-payment label{flex:1}
.tf-invoice-payment button{white-space:nowrap}
.tf-pagination-wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;color:var(--tf-text-muted)}
.tf-loads-page .tf-empty p{margin:0;color:var(--tf-text-muted)}
@media (max-width:640px){.tf-invoice-form{grid-template-columns:1fr}.tf-invoice-payment{align-items:stretch;flex-direction:column}.tf-pagination-wrap{align-items:flex-start;flex-direction:column}}

/* Confirmación accesible al aceptar una carga. */
.tf-confirm-overlay[hidden]{display:none!important}
.tf-confirm-overlay{position:fixed;inset:0;z-index:10050;display:grid;place-items:center;padding:1rem;background:rgba(10,18,32,.62);backdrop-filter:blur(3px)}
.tf-confirm-dialog{width:min(100%,28rem);padding:1.75rem;border:1px solid var(--tf-border);border-radius:var(--tf-radius-lg,1rem);background:var(--tf-surface);color:var(--tf-text);box-shadow:0 24px 80px rgba(0,0,0,.28);text-align:center;animation:tf-confirm-in .16s ease-out}
.tf-confirm-dialog__icon{display:grid;place-items:center;width:3rem;height:3rem;margin:0 auto .85rem;border-radius:50%;background:rgba(34,197,94,.12);color:#16803c;font-size:1.35rem}
.tf-confirm-dialog h2{margin:0 0 .55rem;font-size:1.2rem;color:var(--tf-text)}
.tf-confirm-dialog p{margin:0;color:var(--tf-text-muted);line-height:1.55}
.tf-confirm-dialog__actions{display:flex;justify-content:center;gap:.75rem;margin-top:1.4rem}
.tf-confirm-dialog :focus-visible{outline:2px solid var(--tf-yellow-500);outline-offset:3px}
@keyframes tf-confirm-in{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}

/* Public HTTP status pages */
.bf-error-page{min-height:100vh;margin:0;padding:clamp(1rem,4vw,3rem);display:grid;place-items:center;box-sizing:border-box;background:radial-gradient(ellipse at 50% 0,#fff7df 0,transparent 52%),#eef1f3;color:#152126;font-family:inherit}
.bf-error-card{width:min(100%,650px);padding:clamp(1.25rem,5vw,3rem);box-sizing:border-box;border:1px solid #dce2e4;border-top:5px solid #f3aa27;border-radius:22px;background:#fff;box-shadow:0 24px 70px #15212616;text-align:center;animation:bf-error-enter .55s ease both}
.bf-error-art{min-height:220px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.1rem;overflow:hidden;margin:1.2rem 0 .7rem;border-radius:15px;background:linear-gradient(180deg,#f7fafb,#eef3f4)}.bf-error-art__brand{display:grid;place-items:center;width:min(78%,360px);min-height:100px;padding:1rem;text-decoration:none}.bf-error-art__brand img{display:block;width:100%;height:auto;max-height:100px;object-fit:contain;animation:bf-float 4s ease-in-out infinite;filter:drop-shadow(0 12px 18px rgba(21,33,38,.14))}.bf-error-art__status{display:grid;place-items:center;min-width:76px;min-height:42px;padding:.15rem 1rem;border:2px solid #152126;border-radius:999px;background:#fff;color:#152126;font-size:1rem;font-weight:900;letter-spacing:.08em;box-shadow:0 4px 0 #f3aa27}
.bf-error-login-art{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.bf-error-login-art .bf-loader__mark{width:112px;height:112px;flex:0 0 112px}.bf-error-login-art .bf-loader__mark img{position:relative;z-index:1;width:92px;height:auto;max-height:82px;object-fit:contain;animation:bf-pulse 1.5s ease-in-out infinite}.bf-error-login-art .bf-loader__mark span{position:absolute;inset:0;border:2px solid #f59e0b;border-top-color:transparent;border-radius:50%;animation:bf-spin 1s linear infinite}.bf-error-login-art>p{position:static;margin:0;color:#687780;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.bf-error-eyebrow{margin:1.3rem 0 .45rem;color:#9a650d;font-size:.7rem;font-weight:800;letter-spacing:.15em}.bf-error-card h1{margin:.2rem 0 .65rem;font-size:clamp(1.65rem,5vw,2.4rem);line-height:1.15}.bf-error-message{margin:.4rem 0;font-size:1.12rem;font-weight:700}.bf-error-detail{max-width:440px;margin:.5rem auto 1.4rem;color:#5e6c71;line-height:1.6}.bf-error-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:.7rem}.bf-error-actions .btn{display:inline-flex;align-items:center;justify-content:center;min-width:145px;min-height:44px;padding:.65rem 1rem;border:0;border-radius:10px;text-decoration:none;font:inherit;font-weight:800;cursor:pointer}.bf-error-actions .btn-primary{background:#f3aa27;color:#152126}.bf-error-actions .btn-secondary{background:#e8edef;color:#152126}.bf-error-code{display:block;margin-top:1.4rem;color:#879398;font-size:.72rem}
@keyframes bf-error-drive{0%,100%{transform:translate(-50%,0)}50%{transform:translate(calc(-50% + 8px),-4px)}}@keyframes bf-error-pulse{50%{transform:scale(1.08);box-shadow:0 0 0 12px #ffd77733}}@keyframes bf-error-cloud{to{translate:-35px 0}}@keyframes bf-error-road{to{background-position:-32px 0}}@keyframes bf-error-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.bf-error-card,.bf-error-art *{animation:none!important;scroll-behavior:auto!important}}
@media(max-width:420px){.tf-confirm-dialog{padding:1.25rem}.tf-confirm-dialog__actions{flex-direction:column-reverse}.tf-confirm-dialog__actions .btn{width:100%}}

/* Salud del sistema: disponibilidad, actividad e historial administrativo. */
.bf-health{padding:1rem 0 2rem;max-width:1500px;margin:auto}.bf-health__header{display:flex;justify-content:space-between;gap:1.5rem;align-items:center;margin-bottom:1.6rem}.bf-health__back{font-size:.8rem;color:var(--tf-text-muted)}.bf-health__header h1{font-size:clamp(1.6rem,3vw,2.3rem);letter-spacing:-.04em;margin:.5rem 0}.bf-health__header p,.bf-health__panel-head p{margin:.35rem 0 0;color:var(--tf-text-muted);font-size:.9rem}.bf-health__live{display:inline-flex;vertical-align:middle;letter-spacing:.08em;font-size:.6rem;padding:.4rem .55rem;background:var(--tf-success-bg);color:var(--tf-success-600);border-radius:4px;margin-left:.5rem}.bf-health__actions{display:flex;gap:.6rem;flex-wrap:wrap}.bf-health__banner{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;border:1px solid var(--tf-border);background:var(--tf-surface);border-radius:14px;margin-bottom:1.5rem}.bf-health__banner>i{font-size:1.8rem}.bf-health__banner>span{margin-left:auto;font-size:.8rem;white-space:nowrap}.bf-health__banner p{font-size:.8rem;margin:.3rem 0 0;color:var(--tf-text-muted)}.bf-health__banner.is-ok{border-left:4px solid var(--tf-success)}.bf-health__banner.is-degraded{border-left:4px solid var(--tf-warning)}.bf-health__cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1.5rem}.bf-health__card{padding:1.3rem;background:var(--tf-surface);border:1px solid var(--tf-border);border-radius:12px}.bf-health__card>div{display:flex;justify-content:space-between;align-items:center;color:var(--tf-text-muted);font-size:.8rem;font-weight:600}.bf-health__card>div>i{font-size:1.15rem;color:var(--tf-yellow-600)}.bf-health__card>strong{display:block;font-size:1.8rem;letter-spacing:-.04em;margin:.65rem 0 .3rem;font-weight:700}.bf-health__card>small{font-size:.75rem;color:var(--tf-text-muted)}.bf-health__card>.is-ok{color:var(--tf-success-600)}.bf-health__card>.is-degraded{color:var(--tf-red-500)}.bf-health__panel{padding:1.5rem;border:1px solid var(--tf-border);border-radius:14px;background:var(--tf-surface);margin-bottom:1.5rem;min-width:0}.bf-health__panel-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.4rem}.bf-health__panel-head h2{font-size:1.05rem;margin:0;font-weight:700}.bf-health__legend{display:flex;gap:1rem;font-size:.72rem;color:var(--tf-text-muted)}.bf-health__legend>span{display:flex;align-items:center;gap:.4rem}.bf-health__key{width:9px;height:9px;background:var(--tf-yellow-500);border-radius:2px}.bf-health__key--error{background:var(--tf-red-500)}.bf-health__chart{height:150px;display:flex;gap:4px;align-items:flex-end;border-bottom:1px solid var(--tf-border);background:repeating-linear-gradient(to top,transparent 0,transparent 49px,var(--tf-border) 50px);padding-top:5px}.bf-health__bar{flex:1;min-width:1px;background:var(--tf-yellow-500);border-radius:3px 3px 0 0;position:relative}.bf-health__bar>span{position:absolute;bottom:0;left:0;right:0;background:var(--tf-red-500);border-radius:2px}.bf-health__axis{display:flex;justify-content:space-between;color:var(--tf-text-muted);font-size:.7rem;margin-top:.6rem}.bf-health__note{color:var(--tf-text-muted);font-size:.75rem;line-height:1.7;margin:1rem 0 0}.bf-health__filters{display:flex;gap:.85rem;flex-wrap:wrap;align-items:end;margin-bottom:1rem}.bf-health__filters label{display:flex;flex-direction:column;gap:.3rem;color:var(--tf-text-muted);font-size:.7rem;font-weight:600}.bf-health__filters select,.bf-health__filters input{padding:.6rem .65rem;border:1px solid var(--tf-border);border-radius:7px;background:var(--tf-surface-2);color:var(--tf-text);font:inherit;font-size:.8rem;min-height:38px;max-width:100%}.bf-health__search{flex:1;min-width:180px}.bf-health__tabs{display:flex;align-self:end;padding:3px;background:var(--tf-surface-3);border-radius:8px;gap:3px}.bf-health__tabs button{padding:.55rem .8rem;color:var(--tf-text-muted);border:0;background:transparent;border-radius:6px;font-size:.8rem;cursor:pointer}.bf-health__tabs button.is-active{background:var(--tf-surface);box-shadow:var(--tf-shadow-sm);color:var(--tf-text);font-weight:600}.bf-health__count{padding:.4rem .65rem;border:1px solid var(--tf-border);border-radius:6px;font-size:.7rem;white-space:nowrap}.bf-health__table-wrap{overflow:auto;max-height:600px}.bf-health__table{width:100%;border-collapse:collapse;font-size:.8rem;white-space:nowrap}.bf-health__table th{background:var(--tf-surface-2);font-size:.7rem;font-weight:600;color:var(--tf-text-muted);text-align:left;padding:.8rem .65rem;position:sticky;top:0}.bf-health__table td{padding:.85rem .65rem;border-bottom:1px solid var(--tf-border)}.bf-health__route{font-family:var(--tf-font-mono);max-width:300px;overflow:hidden;text-overflow:ellipsis;font-size:.75rem}.bf-health__table .bf-health__empty{text-align:center;padding:3rem 1rem;color:var(--tf-text-muted);white-space:normal}.bf-health__code{font-family:var(--tf-font-mono);padding:.25rem .45rem;border-radius:5px;font-size:.7rem;background:var(--tf-surface-3)}.bf-health__code--2{background:var(--tf-success-bg);color:var(--tf-success-600)}.bf-health__code--4{background:var(--tf-warning-bg);color:var(--tf-yellow-600)}.bf-health__code--5{background:var(--tf-danger-bg);color:var(--tf-red-600)}.bf-health__pagination{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;color:var(--tf-text-muted);margin-top:1rem;gap:.5rem}.bf-health__pagination>div{display:flex;gap:.5rem}.bf-health__footer{display:flex;gap:1.5rem;flex-wrap:wrap;font-size:.75rem;color:var(--tf-text-muted)}.bf-health__sr{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.bf-health button:focus-visible,.bf-health select:focus-visible,.bf-health input:focus-visible{outline:2px solid var(--tf-yellow-500);outline-offset:3px}
@media(max-width:900px){.bf-health__cards{grid-template-columns:repeat(2,minmax(0,1fr))}.bf-health__header{align-items:start;flex-direction:column}.bf-health__banner{flex-wrap:wrap}.bf-health__banner>span{margin-left:0}.bf-health__panel-head{align-items:start;flex-wrap:wrap}}
@media(max-width:520px){.bf-health__cards{grid-template-columns:1fr}.bf-health__panel{padding:1rem}.bf-health__legend{flex-wrap:wrap;gap:.5rem}.bf-health__filters label{flex:1;min-width:120px}.bf-health__filters .bf-health__search{flex-basis:100%}.bf-health__chart{gap:2px}.bf-health__card>strong{font-size:1.6rem}}

.bf-interest-dialog{width:min(92vw,34rem);max-height:90vh;overflow:auto;border:1px solid var(--tf-border,#ddd);border-radius:16px;padding:24px;background:var(--tf-bg,#fff);color:var(--tf-text,#222)}
.bf-interest-dialog::backdrop{background:rgba(0,0,0,.55)}
.bf-interest-dialog textarea{width:100%;box-sizing:border-box;margin-top:8px;resize:vertical}
.bf-interest-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:20px}

.company-chat-page{max-width:980px;margin:0 auto}
.company-chat-eyebrow{margin:0 0 6px;color:var(--tf-text-muted);font-size:var(--tf-fs-sm)}
.company-chat-moderator{display:inline-flex;align-items:center;gap:6px;color:var(--tf-success);font-weight:600}
.company-chat-panel{overflow:hidden;border:1px solid var(--tf-border);border-radius:var(--tf-radius-lg);background:var(--tf-bg);box-shadow:var(--tf-shadow-sm)}
.company-chat-panel__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--tf-border)}
.company-chat-panel__header>div{display:flex;flex-direction:column;gap:3px}.company-chat-panel__header span{color:var(--tf-text-muted);font-size:var(--tf-fs-xs)}
.company-chat-live{display:inline-flex;align-items:center;gap:7px}.company-chat-live i{width:8px;height:8px;border-radius:50%;background:var(--tf-success)}
.company-chat-messages{display:flex;flex-direction:column;gap:12px;min-height:220px;max-height:min(58vh,620px);overflow:auto;margin:0;padding:20px;list-style:none}
.company-chat-message{align-self:flex-start;max-width:min(82%,680px);padding:12px 14px;border:1px solid var(--tf-border);border-radius:14px;background:var(--tf-bg-subtle,#f7f8fa);overflow-wrap:anywhere}
.company-chat-message--mine{align-self:flex-end;background:var(--tf-primary-soft,#eef4ff)}.company-chat-message--moderated{opacity:.8}
.company-chat-message__meta{display:flex;align-items:center;gap:12px;color:var(--tf-text-muted);font-size:var(--tf-fs-xs)}
.company-chat-message__meta strong{color:var(--tf-text)}.company-chat-message time{font-variant-numeric:tabular-nums}
.company-chat-message p{margin:7px 0 0;white-space:pre-wrap}.company-chat-message__moderate{margin-top:8px;padding:2px 0;border:0;background:none;color:var(--tf-danger,#b42318);font-size:var(--tf-fs-xs);cursor:pointer}
.company-chat-empty{display:flex;flex:1;min-height:180px;align-items:center;justify-content:center;gap:10px;color:var(--tf-text-muted)}
.company-chat-compose{display:grid;gap:8px;padding:16px 20px;border-top:1px solid var(--tf-border)}
.company-chat-compose textarea{width:100%;box-sizing:border-box;resize:vertical}.company-chat-compose__footer{display:flex;align-items:center;justify-content:space-between;gap:12px}
.company-chat-compose__footer small{color:var(--tf-text-muted)}
@media(max-width:600px){.company-chat-message{max-width:94%}.company-chat-panel__header,.company-chat-messages,.company-chat-compose{padding:14px}.company-chat-compose__footer{align-items:flex-end}}

/* Health exports print the same live dashboard layout shown on screen. */
@media print{
 @page{size:landscape;margin:12mm}
 body:has(#healthPage) .bf-loader,body:has(#healthPage) .bf-skip-link,body:has(#healthPage) .bf-topbar,body:has(#healthPage) .tf-topbar,body:has(#healthPage) .bf-topnav,body:has(#healthPage) .bf-sidebar,body:has(#healthPage) .tf-sidebar,body:has(#healthPage) .bf-main>header,body:has(#healthPage) .bf-health__actions,body:has(#healthPage) .bf-health__filters,body:has(#healthPage) .bf-health__pagination,body:has(#healthPage) .bf-health__footer,body:has(#healthPage) [data-print-hide]{display:none!important}
 body:has(#healthPage),body:has(#healthPage) .bf-main,body:has(#healthPage) .container{display:block!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;background:#fff!important;color:#17212b!important}
 body:has(#healthPage) .bf-health{max-width:none!important;padding:0!important}
 body:has(#healthPage) .bf-health__cards{grid-template-columns:repeat(3,minmax(0,1fr))!important;break-inside:avoid}
 body:has(#healthPage) .bf-health__panel,body:has(#healthPage) .bf-health__card,body:has(#healthPage) .bf-health__banner{background:#fff!important;color:#17212b!important;border-color:#aeb8c2!important;box-shadow:none!important;break-inside:avoid}
 body:has(#healthPage) .bf-health__table-wrap{overflow:visible!important;max-height:none!important}
 body:has(#healthPage) .bf-health__table th{position:static!important;background:#eef2f5!important;color:#17212b!important}
 body:has(#healthPage) .bf-health__table{white-space:normal!important;font-size:8pt!important}
 body:has(#healthPage) .bf-health__panel-head,body:has(#healthPage) .bf-health__panel-head p,body:has(#healthPage) .bf-health__note,body:has(#healthPage) .bf-health__card small{color:#34414d!important}
}

/* Invoice studio feature module: independent palette, canvas and print surface. */
.bf-invoice-template-select{display:flex;align-items:end;flex-wrap:wrap;gap:.75rem;margin:1rem 0;padding:1rem;border:1px solid var(--tf-border);border-radius:10px;background:var(--tf-surface)}.bf-invoice-template-select label{display:grid;gap:.35rem;min-width:min(100%,20rem);font-weight:600}.bf-invoice-template-select select{min-height:42px;padding:.45rem .65rem;border:1px solid var(--tf-border-strong);border-radius:7px;background:var(--tf-surface);color:var(--tf-text)}.bf-invoice-presentation-wrap{margin:1rem 0 1.5rem}.bf-invoice-presentation-wrap .bf-invoice-paper{max-width:900px;margin:1rem auto}.bf-invoice-paper__top{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-bottom:.8rem;border-bottom:2px solid var(--invoice-accent,#253746);color:var(--invoice-accent,#253746)}.bf-invoice-paper__top strong{font-size:14pt;letter-spacing:.1em}.bf-invoice-paper__top span{font-size:8pt;font-weight:700;text-transform:uppercase}.bf-studio__default{display:flex;align-items:center;gap:.5rem;margin-top:.7rem;font-size:.8rem;color:var(--tf-text-muted)}.bf-studio__default input{width:1rem;height:1rem;accent-color:var(--tf-yellow-600)}
.bf-invoice-studio{max-width:1600px;margin:auto;padding:1rem 0 2.5rem;color:var(--tf-text)}
.bf-studio__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.bf-studio__header h1{font-size:clamp(1.55rem,3vw,2.2rem);margin:.5rem 0}.bf-studio__header p{color:var(--tf-text-muted);max-width:720px}.bf-studio__badge{vertical-align:middle;border-radius:99px;background:var(--tf-warning-bg);color:var(--tf-yellow-700);font-size:.58rem;letter-spacing:.08em;padding:.4rem .6rem}.bf-studio__actions{display:flex;flex-wrap:wrap;gap:.5rem}
.bf-studio__notice{padding:.8rem 1rem;margin-bottom:1rem;border:1px solid var(--tf-border);border-left:4px solid var(--tf-yellow-500);border-radius:8px;background:var(--tf-surface);font-size:.85rem}.bf-studio__presets{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;padding:.7rem;margin-bottom:1rem;background:var(--tf-surface);border:1px solid var(--tf-border);border-radius:10px}.bf-studio__presets button{padding:.55rem .8rem;border:1px solid var(--tf-border);border-radius:7px;background:var(--tf-surface);color:var(--tf-text);cursor:pointer}.bf-studio__presets button.is-active{border-color:var(--tf-yellow-600);background:var(--tf-warning-bg);font-weight:700}.bf-studio__presets label,.bf-studio__properties label,.bf-studio__name{display:grid;gap:.35rem;font-size:.78rem;font-weight:600;color:var(--tf-text-muted)}.bf-studio__presets label{margin-left:auto}.bf-studio__presets select,.bf-studio__properties select,.bf-studio__name input{min-height:40px;padding:.5rem .65rem;border:1px solid var(--tf-border-strong);border-radius:7px;background:var(--tf-surface);color:var(--tf-text)}
.bf-studio__workspace{display:grid;grid-template-columns:minmax(205px,250px) minmax(400px,1fr) minmax(190px,235px);align-items:start;gap:1rem}.bf-studio__palette,.bf-studio__properties{position:sticky;top:1rem;padding:1rem;background:var(--tf-surface);border:1px solid var(--tf-border);border-radius:12px}.bf-studio__palette h2,.bf-studio__properties h2{font-size:1rem;margin:0 0 .45rem}.bf-studio__palette>p,.bf-studio__hint{font-size:.75rem;line-height:1.6;color:var(--tf-text-muted)}.bf-studio__blocks{display:grid;gap:.5rem;margin:1rem 0}.bf-studio__blocks button{display:grid;gap:.18rem;text-align:left;padding:.65rem .7rem;border:1px solid var(--tf-border);border-radius:8px;background:var(--tf-surface-2);color:var(--tf-text);cursor:grab}.bf-studio__blocks button:active{cursor:grabbing}.bf-studio__blocks button:disabled{opacity:.5;cursor:default}.bf-studio__blocks button span{font-size:.78rem;font-weight:700}.bf-studio__blocks button small{font-size:.68rem;color:var(--tf-text-muted)}.bf-studio__name{margin-top:1rem}.bf-studio__properties{display:grid;gap:1rem}.bf-studio__properties input[type=color]{height:42px;width:100%;padding:3px;border:1px solid var(--tf-border);border-radius:7px;background:var(--tf-surface)}.bf-studio__hint{margin:0}
.bf-studio__preview-wrap{min-width:0;padding:1rem;background:var(--tf-surface-2);border:1px solid var(--tf-border);border-radius:12px}.bf-studio__preview-head{display:flex;justify-content:space-between;gap:.5rem;margin:0 auto .75rem;max-width:210mm;font-size:.78rem;color:var(--tf-text-muted)}.bf-invoice-paper{--invoice-accent:#253746;width:min(100%,210mm);min-height:250mm;margin:0 auto;padding:15mm;background:#fff;color:#18232d;border:1px solid #d7dfe6;border-radius:3px;box-shadow:0 8px 30px rgba(26,39,51,.12);font:10pt/1.45 Arial,sans-serif}.bf-invoice-paper[data-format=letter]{width:min(100%,216mm)}.bf-invoice-paper[data-format=receipt]{width:min(100%,80mm);min-height:180mm;padding:7mm;font-size:8pt}.bf-invoice-paper__top{display:flex;justify-content:space-between;align-items:center;padding-bottom:5mm;border-bottom:2px solid var(--invoice-accent);color:var(--invoice-accent);font-size:9pt;letter-spacing:.1em}.bf-invoice-paper__top strong{font-size:16pt}.bf-invoice-paper__top span{font-size:7pt}.bf-invoice-paper__canvas{display:grid;gap:5mm;padding:5mm 0}.bf-paper-block{position:relative;padding:.35rem;border:1px dashed transparent;border-radius:5px}.bf-paper-block:hover,.bf-paper-block:focus-within{border-color:#a9bac8}.bf-paper-block__toolbar{position:absolute;z-index:1;right:0;top:0;display:flex;opacity:0;align-items:center;gap:.25rem;transform:translateY(-50%)}.bf-paper-block:hover .bf-paper-block__toolbar,.bf-paper-block:focus-within .bf-paper-block__toolbar{opacity:1}.bf-paper-block__toolbar span{display:flex;gap:.2rem;padding:.2rem;background:#fff;border:1px solid #d7dfe6;border-radius:6px}.bf-paper-block__toolbar button{min-width:28px;min-height:26px;border:0;border-radius:4px;background:#eef2f5;color:#263746;font-size:.67rem;cursor:pointer}.bf-paper-block__toolbar button:disabled{opacity:.4}.bf-paper-block__toolbar strong{position:absolute;right:0;top:-25px;padding:3px 6px;border-radius:4px;background:#253746;color:white;font-size:.65rem;white-space:nowrap}.bf-paper-content{min-width:0}.bf-paper-brand{display:flex;justify-content:space-between;align-items:center;gap:1rem;color:var(--invoice-accent)}.bf-paper-brand h2{font-size:15pt;margin:0}.bf-paper-brand p{margin:.2rem 0;color:#55636f;font-size:8pt}.bf-paper-brand>span{font-size:15pt;font-weight:800;letter-spacing:.08em}.bf-paper-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.bf-paper-grid section{display:grid;gap:.18rem}.bf-paper-grid small,.bf-paper-details small,.bf-paper-notes small{color:#65727d;font-size:7pt;letter-spacing:.08em}.bf-paper-grid strong{font-size:9pt}.bf-paper-grid span{color:#55636f;font-size:8pt}.bf-paper-details{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;padding:.8rem;background:#f3f6f8;border-radius:6px}.bf-paper-details>span{display:grid;gap:.15rem}.bf-paper-details strong{font-size:8pt}.bf-paper-items{width:100%;border-collapse:collapse;font-size:8pt}.bf-paper-items th{padding:.55rem .4rem;background:var(--invoice-accent);color:#fff;text-align:left}.bf-paper-items td{padding:.5rem .4rem;border-bottom:1px solid #e3e8ec}.bf-paper-items th:not(:first-child),.bf-paper-items td:not(:first-child){text-align:right}.bf-paper-totals{display:grid;gap:.35rem;max-width:65%;margin-left:auto}.bf-paper-totals span,.bf-paper-totals strong{display:flex;justify-content:space-between;gap:1rem}.bf-paper-totals strong{padding:.6rem;background:#f3f6f8;color:var(--invoice-accent);font-size:11pt}.bf-paper-payment,.bf-paper-notes{display:grid;gap:.3rem;padding:.7rem;border:1px solid #e1e7eb;border-radius:6px;font-size:8pt}.bf-paper-payment strong{color:var(--invoice-accent)}.bf-paper-notes p{margin:0;color:#485762}.bf-paper-signature{display:flex;justify-content:space-between;align-items:end;gap:1rem;padding-top:1rem}.bf-paper-signature span{width:42%;padding-top:1rem;border-top:1px solid #82909b;color:#596771;font-size:8pt}.bf-paper-signature strong{color:var(--invoice-accent)}.bf-invoice-paper__footer{padding-top:.7rem;border-top:1px solid #e1e7eb;text-align:center;color:#68757f;font-size:7pt}
.bf-invoice-studio button:focus-visible,.bf-invoice-studio select:focus-visible,.bf-invoice-studio input:focus-visible{outline:2px solid var(--tf-yellow-500);outline-offset:2px}
@media(max-width:1100px){.bf-studio__workspace{grid-template-columns:minmax(190px,240px) minmax(0,1fr)}.bf-studio__properties{position:static;grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end}.bf-studio__properties h2,.bf-studio__hint{grid-column:1/-1}}
@media(max-width:700px){.bf-studio__header{display:grid}.bf-studio__workspace{grid-template-columns:1fr}.bf-studio__palette,.bf-studio__properties{position:static}.bf-studio__blocks{grid-template-columns:repeat(2,minmax(0,1fr))}.bf-studio__properties{grid-column:auto;grid-template-columns:1fr}.bf-studio__properties h2,.bf-studio__hint{grid-column:auto}.bf-studio__presets label{margin:0;flex:1 1 100%}.bf-invoice-paper{padding:8mm}.bf-paper-details{grid-template-columns:repeat(2,minmax(0,1fr))}.bf-paper-totals{max-width:100%}.bf-paper-items{font-size:6.5pt}.bf-paper-signature{align-items:start;flex-direction:column}}
@media print{
 body:has(#invoicePresentation) *{visibility:hidden!important}body:has(#invoicePresentation) #invoicePresentation,body:has(#invoicePresentation) #invoicePresentation *{visibility:visible!important}body:has(#invoicePresentation) #invoicePresentationPrint,body:has(#invoicePresentation) .tf-table-card__header{display:none!important}body:has(#invoicePresentation) #invoicePresentation{position:absolute;left:0;top:0;width:100%;max-width:none;margin:0;padding:0;border:0;border-radius:0;box-shadow:none}body:has(#invoicePresentation) #invoicePresentation[data-format=letter]{page:invoiceLetter}body:has(#invoicePresentation) #invoicePresentation[data-format=receipt]{width:80mm;page:invoiceReceipt}
 body:has(#invoiceStudio) *{visibility:hidden!important}body:has(#invoiceStudio) #invoiceStudio,body:has(#invoiceStudio) #invoiceStudio *{visibility:visible!important}body:has(#invoiceStudio) .bf-studio__header,body:has(#invoiceStudio) .bf-studio__notice,body:has(#invoiceStudio) .bf-studio__presets,body:has(#invoiceStudio) .bf-studio__palette,body:has(#invoiceStudio) .bf-studio__properties,body:has(#invoiceStudio) .bf-studio__preview-head,body:has(#invoiceStudio) .bf-paper-block__toolbar{display:none!important}body:has(#invoiceStudio) .bf-studio__workspace,body:has(#invoiceStudio) .bf-studio__preview-wrap{display:block!important;margin:0!important;padding:0!important;border:0!important;background:#fff!important}body:has(#invoiceStudio) .bf-invoice-paper{width:100%!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important}body:has(#invoiceStudio) .bf-paper-block{border:0!important;padding:0!important;break-inside:avoid}
 body:has(#invoiceStudio) .bf-invoice-paper[data-format=letter]{page:invoiceLetter}body:has(#invoiceStudio) .bf-invoice-paper[data-format=receipt]{width:80mm!important;page:invoiceReceipt}@page{margin:10mm}@page invoiceLetter{size:letter portrait;margin:10mm}@page invoiceReceipt{size:80mm auto;margin:4mm}
}
.load-activity{list-style:none;padding:0;margin:0}.load-activity__item{display:flex;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--bs-border-color,#dee2e6)}.load-activity__item:last-child{border-bottom:0}.load-activity__state{align-self:flex-start;border-radius:999px;background:#eef2f7;padding:.2rem .65rem;font-size:.8rem;font-weight:700}.load-activity__item div{display:grid;gap:.25rem}.load-activity__item time{font-size:.85rem;color:var(--bs-secondary-color,#6c757d)}
.entity-view-toggle{display:inline-flex;gap:.35rem;margin-left:auto}.entity-view-toggle .btn{display:inline-flex;align-items:center;gap:.35rem}.entity-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:1rem;padding:1rem}.entity-card{display:flex;flex-direction:column;gap:.9rem;min-width:0;padding:1.1rem;border:1px solid var(--bs-border-color,#dee2e6);border-radius:1rem;background:var(--bs-body-bg,#fff);box-shadow:0 4px 16px rgba(20,32,48,.05)}.entity-card__identity{display:flex;align-items:center;gap:.85rem;min-width:0}.entity-card__identity>div:last-child{min-width:0}.entity-card__identity h3,.entity-card__identity h4{margin:0;font-size:1.05rem;font-weight:700;overflow-wrap:anywhere}.entity-card__identity p{margin:.2rem 0 0;color:var(--bs-secondary-color,#6c757d);font-size:.9rem;overflow-wrap:anywhere}.entity-card__avatar{display:grid;place-items:center;flex:0 0 3.5rem;width:3.5rem;height:3.5rem;border-radius:50%;overflow:hidden;background:#eef2f7;color:#536274;font-size:1.45rem}.entity-card__avatar img{width:100%;height:100%;object-fit:cover}.entity-card__badges{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem}.entity-card__rating{font-weight:700;color:#a16a00}.entity-card__meta{margin:0;color:var(--bs-secondary-color,#6c757d);font-size:.86rem}.entity-card__details{display:grid;gap:.65rem;margin:0}.entity-card__details>div{display:grid;grid-template-columns:6.5rem minmax(0,1fr);gap:.5rem}.entity-card__details dt{font-size:.82rem;color:var(--bs-secondary-color,#6c757d);font-weight:600}.entity-card__details dd{margin:0;overflow-wrap:anywhere}.entity-card__actions{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin-top:auto}.entity-card__actions form{display:inline-flex}.entity-table-user{display:inline-flex;align-items:center;gap:.6rem}.entity-table-user img{width:2rem;height:2rem;object-fit:cover;border-radius:50%}.entity-table-user i{font-size:1.5rem;color:#68778a}[data-view-table][hidden],[data-view-cards][hidden]{display:none!important}@media(max-width:575.98px){.entity-card-grid{grid-template-columns:1fr;padding:.75rem}.entity-card{padding:.9rem}.tf-table-card__header{flex-wrap:wrap}.entity-view-toggle{margin-left:0}}
