:root{
  --sa-navy:#0a4eaa;
  --sa-blue:#0b6fd3;
  --sa-blue-2:#1689df;
  --sa-cyan:#08a0c9;
  --sa-cyan-soft:#e9f9fd;
  --sa-bg:#f4f7fb;
  --sa-card:#ffffff;
  --sa-card-soft:#f8fbff;
  --sa-text:#0b1f33;
  --sa-muted:#63748a;
  --sa-border:#d8e3ef;
  --sa-border-strong:#c6d6e6;
  --sa-success:#0e9f6e;
  --sa-warning:#d99a11;
  --sa-danger:#d84b5f;
  --sa-shadow:0 10px 28px rgba(16,56,96,.08),0 2px 8px rgba(16,56,96,.04);
  --sa-shadow-lg:0 18px 45px rgba(15,67,124,.12),0 4px 14px rgba(15,67,124,.06);
  --sa-radius:18px;
  --sa-radius-sm:12px;
}

*{box-sizing:border-box}
html,body{min-height:100%}
body{
  margin:0;
  background:
    radial-gradient(circle at 92% 0%,rgba(13,164,206,.09),transparent 24rem),
    radial-gradient(circle at 0% 24%,rgba(15,111,211,.06),transparent 26rem),
    var(--sa-bg)!important;
  color:var(--sa-text)!important;
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}

/* App frame */
.container-fluid,.container{position:relative}
.sa-topbar{
  position:relative;
  overflow:hidden;
  margin:-1.5rem -1.5rem 2rem;
  padding:20px 28px;
  min-height:96px;
  background:linear-gradient(112deg,#094aa6 0%,#0b67c5 48%,#0b98c6 100%);
  box-shadow:0 10px 30px rgba(8,73,153,.17);
  color:#fff;
  border-bottom:1px solid rgba(255,255,255,.16);
}
.sa-topbar::before{
  content:"";
  position:absolute;
  width:440px;height:440px;border-radius:50%;
  right:-180px;top:-310px;
  background:radial-gradient(circle,rgba(255,255,255,.18),rgba(255,255,255,0) 66%);
  pointer-events:none;
}
.sa-topbar::after{
  content:"";
  position:absolute;
  width:260px;height:260px;border-radius:50%;
  left:34%;bottom:-230px;
  background:radial-gradient(circle,rgba(75,206,240,.24),rgba(75,206,240,0) 68%);
  pointer-events:none;
}
.sa-topbar>*{position:relative;z-index:1}
.sa-brand{display:flex;align-items:center;gap:14px;color:#fff;text-decoration:none;min-width:280px}
.sa-brand:hover{color:#fff}
.sa-brand-badge{
  width:58px;height:58px;border-radius:17px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.15);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 5px 14px rgba(3,41,88,.12);
  font-size:22px;font-weight:900;letter-spacing:.5px
}
.sa-brand-title{font-size:1.48rem;font-weight:850;line-height:1.05;letter-spacing:-.025em}
.sa-brand-sub{font-size:.9rem;color:rgba(255,255,255,.78);margin-top:5px;font-weight:500}
.sa-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sa-nav a{
  display:inline-flex;align-items:center;gap:4px;
  color:rgba(255,255,255,.83);text-decoration:none;
  padding:11px 15px;border-radius:13px;font-weight:650;
  transition:all .18s ease;
}
.sa-nav a:hover,.sa-nav a.active{color:#fff;background:rgba(255,255,255,.16);box-shadow:inset 0 0 0 1px rgba(255,255,255,.05)}
.sa-nav .sa-cta{
  margin-left:8px;background:#fff;color:#0759b4!important;
  padding:12px 18px;box-shadow:0 8px 20px rgba(0,43,90,.16)
}
.sa-nav .sa-cta:hover{background:#f8fcff;color:#064f9f!important;transform:translateY(-1px)}

/* Page title */
.sa-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap;margin:0 0 1.35rem}
.sa-page-title{font-size:clamp(1.8rem,3vw,2.35rem);line-height:1.05;margin:0;color:#071d32!important;font-weight:850!important;letter-spacing:-.04em}
.sa-page-sub{color:var(--sa-muted);font-size:1rem;margin-top:7px;max-width:850px}
h1,h2,h3,h4,h5,h6,.sheet-title{color:var(--sa-text)!important;font-weight:800!important;letter-spacing:-.02em}
.text-muted,.small-muted,.form-text,.formula{color:var(--sa-muted)!important}

/* KPI cards */
.sa-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:1.6rem}
.sa-kpi{
  position:relative;overflow:hidden;
  min-height:145px;padding:24px 26px;
  border:1px solid var(--sa-border);border-radius:22px;background:rgba(255,255,255,.96);
  box-shadow:var(--sa-shadow);display:flex;align-items:center;gap:20px
}
.sa-kpi::after{content:"";position:absolute;width:120px;height:120px;right:-65px;top:-60px;border-radius:50%;background:rgba(11,111,211,.04)}
.sa-kpi-icon{flex:0 0 60px;width:60px;height:60px;border-radius:18px;background:linear-gradient(145deg,#eef5ff,#e3effc);color:#0867c7;display:flex;align-items:center;justify-content:center;font-size:1.65rem;border:1px solid #e2edf8}
.sa-kpi-label{text-transform:uppercase;letter-spacing:.08em;color:#65758b;font-size:.82rem;font-weight:750}
.sa-kpi-value{margin-top:7px;color:#071d32;font-size:2rem;line-height:1;font-weight:850;font-variant-numeric:tabular-nums;white-space:nowrap}
.sa-kpi-note{font-size:.76rem;color:#8a98aa;margin-top:7px}

/* Cards */
.card{
  border:1px solid var(--sa-border)!important;
  border-radius:var(--sa-radius)!important;
  background:rgba(255,255,255,.98)!important;
  box-shadow:var(--sa-shadow)!important;
  overflow:hidden;
}
.card:hover{box-shadow:var(--sa-shadow-lg)!important}
.card-body{padding:1.45rem!important}
.sa-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;border-bottom:1px solid #edf2f7;background:linear-gradient(180deg,#fff,#fbfdff)}
.sa-card-title{font-size:1rem;font-weight:800;color:#183957}
.sa-card-sub{font-size:.82rem;color:var(--sa-muted);margin-top:3px}
.super-card{background:linear-gradient(145deg,#ffffff 0%,#f2f8ff 100%)!important;border-color:#cfe0f2!important}
.summary-card{background:linear-gradient(145deg,#ffffff 0%,#fbfdff 100%)!important}

/* Form controls */
.form-label{font-weight:700;color:#304a64;font-size:.86rem;margin-bottom:.45rem}
.form-control,.form-select{
  min-height:44px;border:1px solid #cbd8e5;border-radius:11px;
  color:#11283e;background:#fff;box-shadow:0 1px 2px rgba(16,44,72,.02);
  transition:border-color .15s,box-shadow .15s,background-color .15s
}
.form-control:hover,.form-select:hover{border-color:#afc4d9}
.form-control:focus,.form-select:focus{border-color:#4f9fe8;box-shadow:0 0 0 .22rem rgba(14,112,207,.11);background:#fff}
.input-blue{background:#f0f7ff!important;border-color:#add0ef!important}
.readonly{background:#f5f7fa!important;color:#526579!important}
.manual-field{box-shadow:inset 0 0 0 2px #f1b93a!important}
textarea.form-control{min-height:100px}
.input-group-text{background:#eef5fc;border-color:#cbd8e5;color:#54708c}

/* Buttons */
.btn{border-radius:11px;font-weight:750;padding:.56rem .95rem;transition:transform .15s,box-shadow .15s,filter .15s}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:linear-gradient(135deg,#0761c5,#078fd3)!important;border-color:#0865c4!important;box-shadow:0 7px 16px rgba(7,96,193,.18)}
.btn-primary:hover{filter:brightness(.98);box-shadow:0 9px 19px rgba(7,96,193,.23)}
.btn-success{background:linear-gradient(135deg,#07877f,#06a095)!important;border-color:#07877f!important;box-shadow:0 7px 16px rgba(7,135,127,.14)}
.btn-warning{background:#f7c94e!important;border-color:#efbd38!important;color:#443300!important}
.btn-danger{background:#db5164!important;border-color:#d8475a!important}
.btn-secondary{background:#63758a!important;border-color:#63758a!important}
.btn-outline-primary{border-color:#9bc6eb!important;color:#075db7!important;background:#fff!important}
.btn-outline-primary:hover{background:#edf6ff!important;color:#064d97!important;border-color:#75b3e8!important}
.btn-outline-secondary{border-color:#ccd8e5!important;color:#4a6075!important;background:#fff!important}
.btn-outline-secondary:hover{background:#f4f7fa!important;color:#24384b!important}
.btn-outline-success{border-color:#94d4ca!important;color:#087b73!important;background:#fff!important}
.btn-outline-success:hover{background:#effbf9!important}
.btn-lg{padding:.72rem 1.15rem;border-radius:13px}

/* Search and utility bar */
.sa-filter-card{border-radius:16px!important}
.sa-filter-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.sa-search{position:relative;flex:1 1 360px}
.sa-search i{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:#75879a;font-size:1.1rem}
.sa-search input{padding-left:44px;height:48px;border-radius:13px}

/* Tables */
.table{--bs-table-bg:transparent;--bs-table-striped-bg:#f8fbfe;color:var(--sa-text);margin-bottom:0}
.table-responsive{scrollbar-width:thin;scrollbar-color:#b8cadd transparent}
.table-bordered>:not(caption)>*>*{border-color:#dce6ef!important}
.table thead th,.table-dark th,.table-primary th{
  background:linear-gradient(180deg,#edf5fd,#e7f1fb)!important;
  color:#1b4d79!important;border-color:#d5e2ee!important;
  font-size:.78rem;font-weight:850!important;text-transform:uppercase;letter-spacing:.045em;
  vertical-align:middle
}
.table-dark{--bs-table-bg:#eaf3fc!important;--bs-table-color:#194e7c!important}
.table th,.table td{padding:13px 14px!important}
.table tbody td{color:#263f56}
.table tbody tr{transition:background .12s ease}
.table tbody tr:hover{background:#f4f9ff!important}
.sa-table-card .card-body{padding:0!important}
.sa-table-card .table th,.sa-table-card .table td{padding:15px 18px!important}
.table code{color:#0a65bc;background:#eef6ff;padding:.2rem .38rem;border-radius:6px}

/* Badges */
.badge{border-radius:999px;padding:.47em .72em;font-weight:750;letter-spacing:.01em}
.text-bg-success{background:#e8f8f1!important;color:#087a58!important;border:1px solid #c9eadc}
.text-bg-secondary{background:#eef2f6!important;color:#5a6b7d!important;border:1px solid #dae3ec}
.text-bg-danger{background:#fff0f2!important;color:#bc3e51!important;border:1px solid #f4ced5}

/* Sheet */
.toolbar{
  position:sticky;top:0;z-index:20;
  margin:0 0 14px;padding:14px 16px!important;
  background:rgba(244,247,251,.91)!important;
  backdrop-filter:blur(13px);-webkit-backdrop-filter:blur(13px);
  border:1px solid rgba(210,224,238,.9);border-radius:15px;
  box-shadow:0 5px 18px rgba(23,64,105,.05)
}
.section-title{display:flex;align-items:center;gap:9px;color:#15548d!important;font-weight:850;font-size:1rem}
.section-title i{width:33px;height:33px;border-radius:10px;background:#e9f4ff;display:inline-flex;align-items:center;justify-content:center;color:#0870cd}
.metric{border-color:#d6e4f1!important;box-shadow:0 2px 7px rgba(37,99,235,.04)}
.requirement-row td{background:linear-gradient(90deg,#fbfdff,#f6faff)!important}

/* Alerts */
.alert{border-radius:13px;border-width:1px;box-shadow:0 3px 12px rgba(28,62,96,.04)}
.alert-success{background:#effbf6;border-color:#ccebdd;color:#11674f}
.alert-danger{background:#fff2f3;border-color:#f3d0d5;color:#9e3041}
.alert-info{background:#eef8ff;border-color:#cce7f8;color:#225b7f}
.alert-warning{background:#fff8e9;border-color:#f0dfb4;color:#7d5d13}

/* Simple info strip */
.sa-info-strip{display:flex;gap:10px;align-items:flex-start;padding:13px 15px;border:1px solid #d8e7f4;border-radius:13px;background:#f7fbff;color:#36546e}
.sa-info-strip i{color:#0871ce;font-size:1.05rem;margin-top:1px}

/* Footer */
.sa-site-footer{margin:28px 0 4px;text-align:center;color:#8a98a8;font-size:.78rem}

@media (max-width:1199.98px){
  .sa-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:991.98px){
  .sa-topbar{margin:-1rem -1rem 1.4rem;padding:16px 18px;min-height:auto}
  .sa-brand{min-width:auto}
  .sa-brand-sub{display:none}
  .sa-nav{width:100%;margin-top:12px;gap:6px}
  .sa-nav a{padding:9px 11px}
  .sa-nav .sa-cta{margin-left:0}
}
@media (max-width:767.98px){
  .sa-kpi-grid{grid-template-columns:1fr}
  .sa-kpi{min-height:118px;padding:19px 20px}
  .sa-kpi-value{font-size:1.65rem}
  .sa-page-head{align-items:flex-start}
  .sa-page-head>.btn,.sa-page-head>div:last-child{width:100%}
  .sa-page-head>.btn{display:flex;justify-content:center}
  .card-body{padding:1.1rem!important}
  .sa-nav{overflow-x:auto;flex-wrap:nowrap;padding-bottom:3px}
  .sa-nav a{white-space:nowrap}
}
