/* ============================================================
   Nexora light theme skin for the TecniForge portal.
   Loaded AFTER app.css so it overrides the earlier polish.
   Clean / flat / neutral with brand-blue accent. Light mode focus.
   ============================================================ */

/* ---- tokens (light only; dark theme keeps Shreyu defaults) ---- */
:root:not([data-bs-theme="dark"]){
  --bs-primary:#2663c9;
  --bs-primary-rgb:38,99,201;
  --bs-body-bg:#ffffff;
  --bs-main-body-bg:#f6f7f9;
  --bs-body-color:#2b2d33;
  --bs-emphasis-color:#16181d;
  --bs-secondary-color:#737887;
  --bs-border-color:#e6e7eb;
  --bs-border-radius:10px;
  --bs-topbar-bg:#ffffff;
  --bs-menu-bg:#fafafb;
  --bs-dark:#16181d;
  --bs-menu-item-color:#51566a;
  --bs-menu-item-active-color:#2663c9;
  --bs-menu-item-active-bg:rgba(38,99,201,.09);
  --bs-menu-item-hover-color:#2663c9;
  --tf-border:#e6e7eb;
}

body{font-family:'Geist Variable','Geist',Inter,-apple-system,Segoe UI,Roboto,sans-serif}
:root:not([data-bs-theme="dark"]) body{background:#f6f7f9!important;color:#2b2d33}

/* ---- flatten the previous "polish" into clean Nexora cards ---- */
.tf-card{border:1px solid var(--bs-border-color);border-radius:12px;box-shadow:0 1px 2px rgba(16,24,40,.05);transition:border-color .15s ease, box-shadow .15s ease}
.tf-card:hover{box-shadow:0 1px 3px rgba(16,24,40,.07)}
:root:not([data-bs-theme="dark"]) .tf-card{background:#fff}
.tf-card .hd{background:transparent;border-bottom:1px solid var(--bs-border-color);border-radius:12px 12px 0 0;padding:.9rem 1.4rem}
.tf-card .hd h5,.tf-card .hd h6{font-weight:600;letter-spacing:-.01em;color:var(--bs-emphasis-color)}
.tf-card .bd{padding:1.35rem 1.4rem}

.tf-stat{border:1px solid var(--bs-border-color);border-radius:12px;box-shadow:0 1px 2px rgba(16,24,40,.05)}
.tf-stat:hover{transform:none;box-shadow:0 1px 3px rgba(16,24,40,.07)}
.tf-stat .val{letter-spacing:-.02em}
.tf-stat .ic{box-shadow:none;border-radius:11px}

/* buttons: solid, flat, 8px radius */
.btn,.btn-sm{border-radius:8px;font-weight:500}
.btn-gold{background:var(--bs-primary);border:1px solid var(--bs-primary);color:#fff;box-shadow:none}
.btn-gold:hover{background:#1f54ad;border-color:#1f54ad;color:#fff;box-shadow:none}
.btn-navy{background:#16181d;border:1px solid #16181d;color:#fff;box-shadow:none}
.btn-navy:hover{background:#000;filter:none;color:#fff}
.btn-light.border{background:#fff;border-color:var(--bs-border-color)!important}
.btn-light.border:hover{background:#f6f7f9}

/* inputs + Tom Select */
.form-control,.form-select,.ts-control{border-radius:9px;border-color:var(--bs-border-color)}
.form-control:focus,.form-select:focus,.ts-wrapper.focus .ts-control{box-shadow:0 0 0 3px rgba(38,99,201,.14);border-color:#2663c9}
.form-label{font-weight:500;font-size:13px;color:#51566a}

/* tables */
:root:not([data-bs-theme="dark"]) .table thead th{background:#f7f8fa;color:#6b7280;font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--bs-border-color)}
:root:not([data-bs-theme="dark"]) .table tbody tr:hover td{background:rgba(38,99,201,.035)}
.table td,.table th{border-color:var(--bs-border-color)}

/* top chrome: crisp, minimal */
.tf-topbar{box-shadow:none;border-bottom:1px solid var(--bs-border-color)}
.tf-topnav{box-shadow:none;border-bottom:1px solid var(--bs-border-color)}
.tf-top-link{font-weight:500}
.tf-top-link.active{border-bottom-width:2px}

/* sidebar */
.tf-nav a{border-radius:8px;font-weight:500}
.tf-nav a.active{box-shadow:none;font-weight:600}

/* ribbon / hero -> clean solid card instead of glowy gradient */
.tf-ribbon{background:linear-gradient(120deg,#1f2a44,#16181d);box-shadow:0 1px 2px rgba(16,24,40,.06)}

/* profile tabs */
.tf-cp-tabs .nav-link{border-radius:8px 8px 0 0;font-weight:500}
.tf-cp-tabs .nav-link.active{color:#2663c9;box-shadow:0 -2px 0 #2663c9 inset;border-color:var(--bs-border-color)}

.badge{border-radius:7px;font-weight:600;letter-spacing:.2px}

/* ============================================================
   Auth pages (login / signup) — Nexora split layout
   ============================================================ */
.nx-auth{min-height:100vh;display:flex;flex-direction:column;background:#fff;position:relative;overflow:hidden;
  font-family:'Geist Variable','Geist',Inter,-apple-system,Segoe UI,sans-serif;color:#16181d}
.nx-auth .dots{position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(120,124,135,.38) 1px,transparent 1px);background-size:16px 16px;
  -webkit-mask-image:radial-gradient(680px circle at 50% 42%,#000,transparent);mask-image:radial-gradient(680px circle at 50% 42%,#000,transparent)}
.nx-auth .hdr{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:22px 30px;flex-wrap:wrap;gap:10px}
.nx-auth .brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:15px;color:#16181d;text-decoration:none}
.nx-auth .brand .mk{width:34px;height:34px;border-radius:9px;background:#16181d;color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px}
.nx-auth .hdr .alt{font-size:13.5px;color:#737887}
.nx-auth .hdr .alt a{color:#16181d;font-weight:500;text-decoration:underline;text-underline-offset:3px}
.nx-auth .hdr .alt a:hover{color:#2663c9}
.nx-auth .wrap{position:relative;z-index:2;flex:1;display:flex;align-items:center;justify-content:center;padding:20px}
.nx-auth .grid{width:100%;max-width:1000px;display:grid;grid-template-columns:1fr 400px;gap:60px;align-items:center}
.nx-auth .lead .pill{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--bs-border-color);border-radius:999px;padding:6px 13px;font-size:12px;color:#737887;background:rgba(255,255,255,.7)}
.nx-auth .lead .pill .d{width:7px;height:7px;border-radius:50%;background:#2663c9}
.nx-auth .lead h1{font-size:46px;line-height:1.03;font-weight:600;letter-spacing:-.025em;color:#16181d;margin:20px 0 0;max-width:580px}
.nx-auth .lead h1 .ac{color:#2663c9}
.nx-auth .lead p{color:#737887;font-size:16px;line-height:1.7;max-width:490px;margin-top:20px}
.nx-auth .lead .trust{margin-top:52px}
.nx-auth .lead .trust .t{font-size:13px;color:#8b8f9c;font-weight:500;margin-bottom:14px}
.nx-auth .lead .trust .row2{display:flex;flex-wrap:wrap;gap:26px;color:#9aa0ad;font-weight:600;font-size:15px}
.nx-auth .card2{background:rgba(255,255,255,.96);border:1px solid var(--bs-border-color);border-radius:18px;padding:32px;box-shadow:0 24px 60px rgba(16,24,40,.09);backdrop-filter:blur(6px)}
.nx-auth .card2 h2{font-size:21px;font-weight:600;letter-spacing:-.01em;color:#16181d;margin:0}
.nx-auth .card2 .sub{color:#737887;font-size:13.5px;margin:7px 0 24px}
.nx-auth .card2 label{font-weight:500;font-size:13px;color:#51566a;margin-bottom:6px}
.nx-auth .card2 .form-control{border-radius:10px;padding:.6rem .8rem;border-color:var(--bs-border-color)}
.nx-auth .card2 .btn-primary{background:#16181d;border:none;border-radius:10px;padding:.65rem;font-weight:600;width:100%}
.nx-auth .card2 .btn-primary:hover{background:#000}
.nx-auth .ft{position:relative;z-index:2;text-align:center;padding:16px;color:#9aa0ad;font-size:12px}
@media(max-width:860px){.nx-auth .grid{grid-template-columns:1fr;max-width:410px;gap:0}.nx-auth .lead{display:none}}

/* hero/ribbon text stays white on the dark banner */
.tf-ribbon, .tf-ribbon h1, .tf-ribbon h2, .tf-ribbon h3, .tf-ribbon h4, .tf-ribbon p, .tf-ribbon .crown{color:#fff!important}
.tf-ribbon p{opacity:.8}

/* ============================================================
   Full theme coverage — every common component, Nexora style
   ============================================================ */
:root:not([data-bs-theme="dark"]){ --tf-soft:#f6f7f9; --tf-soft2:#f1f3f7; }

/* links */
a{color:#2663c9}
a:hover{color:#1f54ad}

/* ---- Topbar ---- */
.tf-topbar .title{font-weight:600;letter-spacing:-.01em;color:#16181d}
.tf-icon-btn{border-radius:9px}
.tf-icon-btn:hover{background:var(--tf-soft);color:#2663c9}
.tf-logobox{border-right-color:var(--bs-border-color)}

/* ---- Sidebar ---- */
.tf-sidebar{background:#fff;border-right-color:var(--bs-border-color)}
.tf-nav .cat{font-size:10.5px;letter-spacing:.09em;color:#9aa0ad;font-weight:700;text-transform:uppercase;padding:14px 18px 6px}
.tf-nav a{color:#51566a;padding:8px 14px;margin:2px 8px}
.tf-nav a i{opacity:.8}
.tf-nav a:hover{background:var(--tf-soft);color:#2663c9}
.tf-nav a.active{background:rgba(38,99,201,.09);color:#2663c9}
.tf-nav a.active i{color:#2663c9;opacity:1}

/* ---- Dropdown menus ---- */
.dropdown-menu{border:1px solid var(--bs-border-color);border-radius:12px;box-shadow:0 12px 34px rgba(16,24,40,.12);padding:6px}
.dropdown-item{border-radius:8px;padding:8px 12px;font-size:14px}
.dropdown-item:hover,.dropdown-item:focus{background:var(--tf-soft);color:#2663c9}
.dropdown-divider{border-color:var(--bs-border-color)}

/* ---- Modals ---- */
.modal-content{border:1px solid var(--bs-border-color);border-radius:16px;box-shadow:0 24px 60px rgba(16,24,40,.18);overflow:hidden}
.modal-header,.modal-footer{border-color:var(--bs-border-color)}
.modal-title{font-weight:600;letter-spacing:-.01em}

/* ---- Alerts (soft tinted) ---- */
.alert{border-radius:11px;border:1px solid transparent;font-size:14px}
:root:not([data-bs-theme="dark"]) .alert-success{background:#eafaf1;border-color:#bfead2;color:#1a7f4b}
:root:not([data-bs-theme="dark"]) .alert-danger{background:#fdeded;border-color:#f6c9c9;color:#b4232a}
:root:not([data-bs-theme="dark"]) .alert-warning{background:#fff8e8;border-color:#f3e2b0;color:#9a7a16}
:root:not([data-bs-theme="dark"]) .alert-info{background:#eaf2fe;border-color:#c5dafb;color:#1f54ad}

/* ---- Badges (soft) ---- */
:root:not([data-bs-theme="dark"]) .badge.bg-success,:root:not([data-bs-theme="dark"]) .bg-success-subtle{background:#eafaf1!important;color:#1a7f4b!important}
:root:not([data-bs-theme="dark"]) .badge.bg-danger,:root:not([data-bs-theme="dark"]) .bg-danger-subtle{background:#fdeded!important;color:#b4232a!important}
:root:not([data-bs-theme="dark"]) .badge.bg-warning,:root:not([data-bs-theme="dark"]) .bg-warning-subtle{background:#fff8e8!important;color:#9a7a16!important}
:root:not([data-bs-theme="dark"]) .badge.bg-secondary,:root:not([data-bs-theme="dark"]) .bg-secondary-subtle{background:#eef0f4!important;color:#51566a!important}
:root:not([data-bs-theme="dark"]) .badge.bg-info,:root:not([data-bs-theme="dark"]) .bg-info-subtle{background:#eaf2fe!important;color:#1f54ad!important}

/* ---- Pagination ---- */
.pagination{gap:4px}
.page-link{border:1px solid var(--bs-border-color);border-radius:8px!important;color:#51566a;font-size:14px}
.page-link:hover{background:var(--tf-soft);color:#2663c9}
.page-item.active .page-link{background:#2663c9;border-color:#2663c9}

/* ---- Buttons: outline + secondary ---- */
.btn-outline-secondary,.btn-outline-primary{border-radius:8px}
.btn-primary{background:#2663c9;border-color:#2663c9}
.btn-primary:hover{background:#1f54ad;border-color:#1f54ad}
.btn-success{background:#1a9f57;border-color:#1a9f57}
.btn-danger{background:#dc3b43;border-color:#dc3b43}

/* ---- Form switches/checks (profile toggles) ---- */
.form-check-input{border-radius:6px;border-color:var(--bs-border-color)}
.form-switch .form-check-input{border-radius:999px}
.form-check-input:checked{background-color:#2663c9;border-color:#2663c9}
.form-check-input:focus{box-shadow:0 0 0 3px rgba(38,99,201,.14);border-color:#2663c9}
.input-group-text{border-radius:9px;border-color:var(--bs-border-color);background:var(--tf-soft);color:#51566a}

/* ---- Generic nav-tabs ---- */
.nav-tabs{border-bottom-color:var(--bs-border-color)}
.nav-tabs .nav-link{border:none;color:#737887;font-weight:500;border-radius:8px 8px 0 0}
.nav-tabs .nav-link:hover{color:#2663c9;background:var(--tf-soft)}
.nav-tabs .nav-link.active{color:#2663c9;background:transparent;box-shadow:0 -2px 0 #2663c9 inset}

/* ---- Breadcrumb / page heading ---- */
.breadcrumb{font-size:13px}
.breadcrumb-item a{color:#737887}

/* ---- list-group ---- */
.list-group-item{border-color:var(--bs-border-color)}

/* ---- muted / text helpers ---- */
.text-muted{color:#737887!important}
hr{border-color:var(--bs-border-color);opacity:1}

/* scrollbars */
.tf-sidebar::-webkit-scrollbar-thumb{background:rgba(120,124,135,.25)}

/* ============================================================
   VIP colorful layer (keeps Nexora base, adds vibrancy)
   ============================================================ */
:root:not([data-bs-theme="dark"]){ --tf-g1:#2663c9; --tf-g2:#f0a52b; --tf-g3:#ef4d6b; --tf-g4:#16b8a6; --tf-g5:#7c3aed; }

/* vibrant primary buttons */
.btn-gold,.btn-primary{background:linear-gradient(135deg,#3b6fe0,#2663c9);border:none;box-shadow:0 6px 16px rgba(38,99,201,.28)}
.btn-gold:hover,.btn-primary:hover{background:linear-gradient(135deg,#3366db,#1f54ad);box-shadow:0 9px 22px rgba(38,99,201,.38)}

/* VIP hero */
.tf-ribbon{background:linear-gradient(120deg,#4f46e5 0%,#2663c9 55%,#7c3aed 100%)!important;box-shadow:0 14px 34px rgba(79,70,229,.3)}

/* colorful stat tiles: accent bar on top + glow on icon */
.tf-stat{position:relative;overflow:hidden}
.tf-stat::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--tf-g1)}
.tf-stat.g2::before{background:var(--tf-g2)} .tf-stat.g3::before{background:var(--tf-g3)} .tf-stat.g4::before{background:var(--tf-g4)} .tf-stat.g5::before{background:var(--tf-g5)}
.tf-stat .ic{box-shadow:0 8px 18px rgba(38,99,201,.22)}
.tf-stat.g2 .ic{box-shadow:0 8px 18px rgba(240,165,43,.28)} .tf-stat.g3 .ic{box-shadow:0 8px 18px rgba(239,77,107,.28)}
.tf-stat.g4 .ic{box-shadow:0 8px 18px rgba(22,184,166,.28)} .tf-stat.g5 .ic{box-shadow:0 8px 18px rgba(124,58,237,.28)}

/* colorful top category menu */
.tf-topnav{background:linear-gradient(180deg,#ffffff,#fbfcfe)}
.tf-top-link.active{color:#2663c9;border-bottom:3px solid transparent;border-image:linear-gradient(90deg,#4f46e5,#2663c9) 1}
.tf-top-link:hover{color:#4f46e5}

/* colorful sidebar active pill + gradient */
.tf-nav a.active{background:linear-gradient(90deg,rgba(79,70,229,.14),rgba(38,99,201,.04));color:#2663c9;box-shadow:inset 3px 0 0 #4f46e5}
.tf-nav a.active i{color:#4f46e5}
.tf-nav .cat{color:#8b5cf6cc}

/* card header icons get brand tint */
.tf-card .hd i.text-muted{color:#6d7cf0!important}

/* colored section accents on key buttons */
.btn-navy{background:linear-gradient(135deg,#1f2a44,#0f1b33)}

/* profile tabs: gradient active underline */
.tf-cp-tabs .nav-link.active{color:#2663c9;box-shadow:0 -2px 0 transparent inset;border-bottom:2px solid transparent;border-image:linear-gradient(90deg,#4f46e5,#2663c9) 1}

/* soft tinted page for a touch of life */
:root:not([data-bs-theme="dark"]) body{background:#f4f6fc!important}

/* links a touch more vivid */
a{color:#2f5fe0}
a:hover{color:#4f46e5}

/* login marketing solution chips */
.nx-auth .sols{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:30px;max-width:520px}
.nx-auth .sol{display:flex;align-items:center;gap:11px;border:1px solid var(--bs-border-color);border-radius:12px;padding:11px 13px;background:rgba(255,255,255,.75);transition:.15s}
.nx-auth .sol:hover{border-color:#c7d4f7;box-shadow:0 6px 16px rgba(38,99,201,.1);transform:translateY(-1px)}
.nx-auth .sol .si{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:15px;flex:none}
.nx-auth .sol .st{font-weight:600;font-size:13.5px;color:#16181d;line-height:1.1}
.nx-auth .sol .ss{font-size:11px;color:#8b8f9c}
@media(max-width:560px){.nx-auth .sols{grid-template-columns:1fr}}

/* fix: ensure top chrome is solid + correctly stacked (no overlap on scroll) */
:root:not([data-bs-theme="dark"]) .tf-topbar{background:#ffffff!important}
:root:not([data-bs-theme="dark"]) .tf-topnav{background:#ffffff!important}
.tf-topbar{z-index:1002}
.tf-topnav{z-index:1001}
