:root{
  --tfn-navy:#0b1f3a;
  --tfn-navy-2:#12345b;
  --tfn-aqua:#26c6b8;
  --tfn-aqua-soft:rgba(38,198,184,.14);
  --tfn-cyan:#8be9df;
  --tfn-sand:#f6c98f;
  --tfn-bg:#06101d;
  --tfn-panel:rgba(10,20,36,.86);
  --tfn-panel-strong:#0f223d;
  --tfn-card:#122946;
  --tfn-card-soft:rgba(18,41,70,.92);
  --tfn-border:rgba(255,255,255,.10);
  --tfn-border-strong:rgba(139,233,223,.22);
  --tfn-text:#f4f8fc;
  --tfn-muted:#9eb1c7;
  --tfn-danger:#ff6d84;
  --tfn-warning:#ffb661;
  --tfn-success:#7ce6b1;
  --tfn-shadow:0 22px 60px rgba(0,0,0,.32);
  --tfn-radius:24px;
  --tfn-radius-sm:16px;
  --tfn-font-display:"Space Grotesk","Segoe UI",sans-serif;
  --tfn-font-body:"IBM Plex Sans","Segoe UI",sans-serif;
}

*{
  box-sizing:border-box;
}

html,
body{
  min-height:100%;
}

body{
  margin:0;
  color:var(--tfn-text);
  font-family:var(--tfn-font-body);
  background:
    radial-gradient(circle at top left, rgba(38,198,184,.18), transparent 28%),
    radial-gradient(circle at bottom right, rgba(246,201,143,.10), transparent 24%),
    linear-gradient(135deg, #04101d 0%, #071425 38%, #0c1e36 100%);
}

a{
  color:inherit;
}

.form-control,
.form-select{
  min-height:48px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.06);
  color:var(--tfn-text);
}

.form-control::placeholder{
  color:rgba(244,248,252,.52);
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus,
.page-link:focus{
  border-color:var(--tfn-cyan);
  box-shadow:0 0 0 4px rgba(139,233,223,.14);
  background:rgba(255,255,255,.08);
  color:var(--tfn-text);
}

.form-select option{
  color:#10253f;
}

.form-check-input{
  background-color:rgba(255,255,255,.05);
  border-color:rgba(255,255,255,.16);
}

.form-check-input:checked{
  background-color:var(--tfn-aqua);
  border-color:var(--tfn-aqua);
}

.form-label{
  margin-bottom:.45rem;
  font-weight:600;
  color:var(--tfn-text);
}

.alert{
  border:none;
  border-radius:18px;
}

.btn{
  border-radius:14px;
  font-weight:600;
}

.btn-outline-light{
  border-color:rgba(255,255,255,.18);
  color:var(--tfn-text);
  background:rgba(255,255,255,.03);
}

.btn-outline-light:hover{
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.28);
  color:#fff;
}

.btn-outline-danger{
  border-color:rgba(255,109,132,.35);
  color:#ffd4db;
}

.btn-outline-danger:hover{
  background:rgba(255,109,132,.16);
  color:#fff;
}

.tfn-primary-btn{
  border:none;
  background:linear-gradient(135deg, var(--tfn-aqua) 0%, var(--tfn-cyan) 100%);
  color:#04233b;
  box-shadow:0 18px 36px rgba(38,198,184,.24);
}

.tfn-primary-btn:hover{
  color:#04233b;
  transform:translateY(-1px);
  background:linear-gradient(135deg, #39d9ca 0%, #b0fff6 100%);
}

.tfn-body{
  overflow-x:hidden;
}

.tfn-shell{
  min-height:100vh;
  display:grid;
  grid-template-columns:300px minmax(0, 1fr);
}

.tfn-sidebar{
  position:sticky;
  top:0;
  min-height:100vh;
  padding:28px 22px;
  background:
    linear-gradient(180deg, rgba(3,11,20,.98) 0%, rgba(7,18,33,.96) 100%);
  border-right:1px solid var(--tfn-border);
  display:flex;
  flex-direction:column;
  gap:28px;
}

.tfn-brand{
  display:flex;
  align-items:center;
  gap:14px;
  text-decoration:none;
}

.tfn-brand-mark{
  width:54px;
  height:54px;
  border-radius:18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  font-family:var(--tfn-font-display);
  letter-spacing:.08em;
  color:#07233e;
  background:linear-gradient(135deg, var(--tfn-cyan) 0%, var(--tfn-sand) 100%);
  box-shadow:0 16px 32px rgba(0,0,0,.18);
}

.tfn-brand-kicker,
.tfn-eyebrow,
.tfn-section-kicker,
.tfn-foot-label,
.tfn-readiness-label{
  display:block;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:.72rem;
  color:var(--tfn-muted);
  font-weight:700;
}

.tfn-brand-title,
.tfn-page-title,
.tfn-hero h2,
.tfn-list-header h2,
.tfn-form-heading h3,
.tfn-panel-head h3{
  font-family:var(--tfn-font-display);
  font-weight:700;
}

.tfn-brand-title{
  display:block;
  font-size:1.15rem;
}

.tfn-sidebar-copy{
  font-size:.95rem;
  line-height:1.7;
  color:var(--tfn-muted);
}

.tfn-nav{
  display:grid;
  gap:10px;
}

.tfn-nav-link{
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 16px;
  border-radius:18px;
  text-decoration:none;
  color:var(--tfn-muted);
  border:1px solid transparent;
  transition:.18s ease;
}

.tfn-nav-link:hover,
.tfn-nav-link.active{
  color:#fff;
  background:rgba(255,255,255,.06);
  border-color:var(--tfn-border-strong);
  box-shadow:inset 0 0 0 1px rgba(139,233,223,.08);
}

.tfn-nav-link i{
  width:18px;
  text-align:center;
}

.tfn-sidebar-footer{
  margin-top:auto;
  padding:18px;
  border-radius:20px;
  background:rgba(255,255,255,.04);
  border:1px solid var(--tfn-border);
}

.tfn-foot-value{
  margin-top:6px;
  font-size:1rem;
  font-weight:600;
}

.tfn-main{
  min-width:0;
  padding:24px;
}

.tfn-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:18px 22px;
  border-radius:24px;
  background:rgba(255,255,255,.05);
  border:1px solid var(--tfn-border);
  backdrop-filter:blur(16px);
  box-shadow:var(--tfn-shadow);
}

.tfn-page-title{
  margin:.35rem 0 0;
  font-size:2rem;
}

.tfn-userbar{
  display:flex;
  align-items:center;
  gap:16px;
}

.tfn-usercopy{
  display:grid;
  gap:3px;
  text-align:right;
}

.tfn-usercopy span{
  color:var(--tfn-muted);
  font-size:.9rem;
}

.tfn-content{
  margin-top:24px;
  display:grid;
  gap:22px;
}

.tfn-message-stack{
  display:grid;
  gap:12px;
}

.tfn-alert{
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.06);
  color:var(--tfn-text);
}

.tfn-hero,
.tfn-panel-card,
.tfn-form-card{
  border-radius:var(--tfn-radius);
  background:var(--tfn-panel);
  border:1px solid var(--tfn-border);
  box-shadow:var(--tfn-shadow);
}

.tfn-hero{
  display:grid;
  grid-template-columns:minmax(0, 1.4fr) minmax(300px, .8fr);
  gap:24px;
  padding:28px;
}

.tfn-hero h2{
  margin:.5rem 0 .85rem;
  font-size:2.15rem;
  line-height:1.08;
}

.tfn-hero p,
.tfn-list-header p,
.tfn-panel-note,
.tfn-helper-text,
.tfn-table-sub{
  color:var(--tfn-muted);
}

.tfn-chip-row{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:1.25rem;
}

.tfn-chip,
.tfn-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  border-radius:999px;
  padding:.5rem .8rem;
  font-size:.82rem;
  font-weight:600;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.06);
}

.tfn-readiness-card{
  padding:24px;
  border-radius:22px;
  background:
    radial-gradient(circle at top right, rgba(139,233,223,.18), transparent 34%),
    linear-gradient(180deg, rgba(17,42,69,.98) 0%, rgba(10,25,44,.92) 100%);
  border:1px solid var(--tfn-border-strong);
}

.tfn-readiness-score{
  margin-top:12px;
  font-size:4.3rem;
  line-height:1;
  font-family:var(--tfn-font-display);
  font-weight:700;
}

.tfn-readiness-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
  margin-top:20px;
}

.tfn-readiness-grid div{
  padding:14px;
  border-radius:18px;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.08);
}

.tfn-readiness-grid strong{
  display:block;
  font-size:1.3rem;
  margin-top:3px;
}

.tfn-stats-grid{
  display:grid;
  grid-template-columns:repeat(6, minmax(0, 1fr));
  gap:16px;
}

.tfn-stats-grid-compact{
  grid-template-columns:repeat(5, minmax(0, 1fr));
}

.tfn-stat-card{
  padding:20px;
  border-radius:22px;
  background:var(--tfn-card-soft);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:var(--tfn-shadow);
}

.tfn-stat-card span{
  display:block;
  color:var(--tfn-muted);
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:700;
}

.tfn-stat-card strong{
  display:block;
  margin:12px 0 8px;
  font-size:2rem;
  font-family:var(--tfn-font-display);
}

.tfn-stat-card small{
  color:var(--tfn-muted);
  display:block;
  line-height:1.55;
}

.tfn-panel-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:22px;
}

.tfn-panel-card{
  padding:24px;
}

.tfn-panel-head,
.tfn-list-header,
.tfn-form-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
}

.tfn-panel-head h3,
.tfn-list-header h2,
.tfn-form-heading h3{
  margin:.4rem 0 0;
  font-size:1.4rem;
}

.tfn-list-header{
  padding:0 2px;
}

.tfn-action-row{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

.tfn-table{
  color:var(--tfn-text);
  margin-bottom:0;
}

.tfn-table thead th{
  border-bottom-color:rgba(255,255,255,.10);
  color:var(--tfn-muted);
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:700;
  padding:.95rem .85rem;
}

.tfn-table tbody td{
  border-top-color:rgba(255,255,255,.08);
  background:transparent;
  padding:1rem .85rem;
}

.tfn-table tbody tr:hover td{
  background:rgba(255,255,255,.03);
}

.tfn-empty-cell{
  color:var(--tfn-muted);
  text-align:center;
  padding:1rem;
}

.tfn-monitoring-healthy{
  background:rgba(124,230,177,.14);
  color:#d3ffe8;
}

.tfn-monitoring-watch{
  background:rgba(255,182,97,.16);
  color:#ffe2bf;
}

.tfn-monitoring-alert{
  background:rgba(255,109,132,.16);
  color:#ffd5dd;
}

.tfn-monitoring-unmonitored{
  background:rgba(158,177,199,.12);
  color:#d9e5f2;
}

.tfn-criticality-mission_critical,
.tfn-renewal-high{
  background:rgba(255,109,132,.18);
  color:#ffd9e0;
}

.tfn-criticality-high,
.tfn-renewal-medium{
  background:rgba(255,182,97,.18);
  color:#ffe7c7;
}

.tfn-criticality-medium,
.tfn-renewal-low{
  background:rgba(38,198,184,.16);
  color:#cffff6;
}

.tfn-criticality-low{
  background:rgba(255,255,255,.08);
}

.tfn-form-shell{
  display:grid;
  gap:22px;
}

.tfn-form-card{
  padding:24px;
}

.tfn-form-grid{
  display:grid;
  gap:18px;
}

.tfn-form-section{
  padding:22px;
  border-radius:22px;
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.08);
}

.tfn-form-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:20px;
}

.tfn-inline-check{
  min-height:48px;
  display:flex;
  align-items:center;
  gap:12px;
}

.tfn-auth-body{
  min-height:100vh;
}

.tfn-auth-shell{
  min-height:100vh;
  display:grid;
  grid-template-columns:minmax(0, 1.1fr) minmax(420px, .9fr);
}

.tfn-auth-story{
  display:flex;
  align-items:flex-end;
  padding:48px;
  background:
    radial-gradient(circle at top left, rgba(139,233,223,.22), transparent 26%),
    linear-gradient(145deg, #08111e 0%, #0c1a2f 54%, #143257 100%);
}

.tfn-auth-story-inner{
  max-width:540px;
}

.tfn-auth-story h1{
  margin:.55rem 0 1rem;
  font-family:var(--tfn-font-display);
  font-size:3.5rem;
  line-height:.95;
}

.tfn-auth-story p{
  color:#d4deea;
  font-size:1.05rem;
  line-height:1.8;
}

.tfn-auth-badges{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:1.4rem;
}

.tfn-auth-badges span{
  display:inline-flex;
  padding:.55rem .85rem;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  color:#e4eef8;
  font-size:.86rem;
}

.tfn-auth-panel{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:34px;
}

.tfn-auth-card{
  width:100%;
  max-width:460px;
  padding:28px;
  border-radius:28px;
  background:rgba(12,24,41,.88);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:var(--tfn-shadow);
}

.tfn-auth-brand{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:24px;
}

.tfn-auth-form{
  display:grid;
  gap:18px;
}

.tfn-auth-note{
  margin-top:18px;
  color:var(--tfn-muted);
  line-height:1.7;
}

.page-link{
  border-radius:12px;
  border-color:rgba(255,255,255,.12);
  background:rgba(255,255,255,.04);
  color:var(--tfn-text);
}

.page-item.active .page-link{
  border-color:var(--tfn-cyan);
  background:var(--tfn-aqua-soft);
  color:#fff;
}

@media (max-width: 1400px){
  .tfn-stats-grid{
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }

  .tfn-stats-grid-compact{
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 1180px){
  .tfn-shell{
    grid-template-columns:1fr;
  }

  .tfn-sidebar{
    position:relative;
    min-height:auto;
  }

  .tfn-panel-grid,
  .tfn-hero,
  .tfn-auth-shell{
    grid-template-columns:1fr;
  }

  .tfn-header{
    flex-direction:column;
    align-items:flex-start;
  }

  .tfn-userbar{
    width:100%;
    justify-content:space-between;
  }
}

@media (max-width: 768px){
  .tfn-main,
  .tfn-sidebar,
  .tfn-auth-panel,
  .tfn-auth-story{
    padding:18px;
  }

  .tfn-page-title{
    font-size:1.55rem;
  }

  .tfn-hero h2,
  .tfn-auth-story h1{
    font-size:2.35rem;
  }

  .tfn-stats-grid,
  .tfn-stats-grid-compact{
    grid-template-columns:1fr;
  }

  .tfn-form-actions,
  .tfn-action-row{
    flex-direction:column;
  }

  .tfn-form-actions .btn,
  .tfn-action-row .btn{
    width:100%;
  }
}
