:root{
  --bg:#f3f5f8;
  --card:#ffffff;
  --text:#1f2937;
  --muted:#6b7280;
  --line:#d9dee7;
  --line-soft:#e8ebf1;
  --primary:#1f4f82;
  --primary-dark:#183e66;
  --primary-soft:#e8f0f8;
  --success:#16794c;
  --danger:#b42318;
  --warning:#a15c07;
  --sidebar:#263342;
  --sidebar-dark:#1f2935;
  --header:#ffffff;
  --radius:10px;
  --shadow:0 1px 3px rgba(15,23,42,.08);
  --shadow-card:0 6px 18px rgba(15,23,42,.06);
}

*{box-sizing:border-box}

html,body{min-height:100%}

body{
  margin:0;
  font-family:Arial, Helvetica, sans-serif;
  background:var(--bg);
  color:var(--text);
  font-size:15px;
}

a{color:inherit;text-decoration:none}

hr{
  border:0;
  border-top:1px solid var(--line-soft);
  margin:24px 0;
}

.fd-topbar{
  background:var(--header);
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:12px 28px;
  min-height:68px;
}

.fd-brand,.fd-sidebar-brand{
  display:flex;
  align-items:center;
  gap:10px;
}

.fd-brand strong{
  display:block;
  font-size:18px;
  color:#111827;
}

.fd-brand small{
  display:block;
  color:var(--muted);
  font-size:12px;
  margin-top:2px;
}

.fd-logo{
  width:38px;
  height:38px;
  border-radius:8px;
  background:#263342;
  color:white;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:800;
  letter-spacing:0;
}

.fd-nav{
  display:flex;
  align-items:center;
  gap:4px;
  flex-wrap:wrap;
}

.fd-nav a{
  padding:9px 11px;
  border-radius:7px;
  color:#374151;
  font-weight:700;
  font-size:14px;
}

.fd-nav a:hover,.fd-admin-link{
  background:var(--primary-soft);
  color:var(--primary);
}

.fd-shell{
  width:min(1180px, calc(100% - 32px));
  margin:0 auto;
  padding:26px 0 44px;
}

.fd-page-head{
  background:#fff;
  border:1px solid var(--line);
  border-left:5px solid var(--primary);
  border-radius:var(--radius);
  padding:20px 22px;
  box-shadow:var(--shadow);
  margin-bottom:20px;
}

.fd-page-head h1{
  margin:0;
  font-size:28px;
  letter-spacing:0;
}

.fd-page-head p{
  margin:6px 0 0;
  color:var(--muted);
  line-height:1.5;
}

.fd-hero{
  background:#fff;
  border:1px solid var(--line);
  border-left:5px solid var(--primary);
  color:var(--text);
  border-radius:var(--radius);
  padding:26px;
  box-shadow:var(--shadow);
}

.fd-kicker{
  color:var(--primary);
  text-transform:uppercase;
  letter-spacing:0;
  font-size:12px;
  font-weight:800;
  margin:0 0 8px;
}

.fd-hero h1{
  margin:0;
  font-size:38px;
  line-height:1.08;
  letter-spacing:0;
}

.fd-hero p{
  max-width:760px;
  color:#4b5563;
  font-size:16px;
  line-height:1.55;
}

.fd-grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:16px;
}

.fd-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:20px;
}

.fd-tool-card{
  grid-column:span 3;
  min-height:150px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  transition:.15s ease;
}

.fd-tool-card:hover{
  border-color:#9fb7d0;
  box-shadow:var(--shadow-card);
}

.fd-tool-card h3{
  margin:0 0 8px;
  font-size:18px;
  color:#111827;
}

.fd-tool-card p{
  margin:0;
  color:var(--muted);
  line-height:1.45;
}

.fd-tool-card strong{
  margin-top:14px;
  color:var(--primary);
  font-size:14px;
}

.fd-icon{
  display:none;
}

.fd-section-title{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:16px;
  margin:28px 0 14px;
}

.fd-section-title h2{
  margin:0;
  font-size:22px;
  letter-spacing:0;
}

.fd-section-title p{
  margin:5px 0 0;
  color:var(--muted);
}

.fd-form{
  max-width:1040px;
  margin:0 auto;
}

.fd-form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}

.fd-form-grid.three{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.fd-field.full{grid-column:1/-1}

.fd-form-card{
  margin-bottom:16px;
}

.fd-form-card h2,.fd-form-card h3{
  margin:0 0 6px;
  font-size:19px;
  color:#111827;
}

.fd-form-card > p{
  margin:0 0 18px;
  color:var(--muted);
  line-height:1.45;
}

.fd-subsection{
  background:#f8fafc;
  border:1px solid var(--line-soft);
  border-radius:9px;
  padding:14px;
  margin:16px 0;
}

.fd-subsection-title{
  font-weight:800;
  color:#111827;
  margin-bottom:10px;
}

label{
  display:block;
  font-weight:700;
  margin-bottom:6px;
  color:#1f2937;
  font-size:14px;
}

.fd-help{
  color:var(--muted);
  font-size:13px;
  margin-top:-5px;
  margin-bottom:12px;
  line-height:1.4;
}

input,textarea{
  width:100%;
  border:1px solid #cfd6df;
  background:white;
  border-radius:8px;
  padding:11px 12px;
  font:inherit;
  outline:none;
  transition:.12s ease;
}

select{
  width:100%;
  border:1px solid #cfd6df;
  background-color:white;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23555' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 12px center;
  background-size:18px;
  border-radius:8px;
  padding:11px 40px 11px 12px;
  font:inherit;
  outline:none;
  appearance:none;
  -webkit-appearance:none;
  cursor:pointer;
  transition:.12s ease;
}

textarea{min-height:112px;resize:vertical}

input:focus,select:focus,textarea:focus{
  border-color:#668db7;
  box-shadow:0 0 0 3px rgba(31,79,130,.12);
}

select:hover{
  border-color:#a0aec0;
}

.fd-check-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px 14px;
}

.fd-check{
  display:flex;
  align-items:flex-start;
  gap:8px;
  background:#fff;
  border:1px solid var(--line-soft);
  border-radius:8px;
  padding:10px;
  font-weight:700;
  color:#374151;
}

.fd-check input{
  width:auto;
  margin-top:2px;
}

.fd-day-check-grid{
  grid-template-columns:repeat(7,minmax(0,1fr));
}

.fd-table-check-form{
  margin:0;
}

.fd-table-region-form{
  margin:0;
  min-width:190px;
}

.fd-table-region-form select{
  width:100%;
  min-height:36px;
  padding:7px 9px;
  font-size:13px;
  font-weight:800;
  background:#fff;
}

.fd-table-check{
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin:0;
  font-size:13px;
  font-weight:900;
  color:#344252;
  white-space:nowrap;
}

.fd-table-check input{
  width:auto;
  margin:0;
}

.fd-actions{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
  margin-top:20px;
}

.fd-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:1px solid #cfd6df;
  border-radius:8px;
  padding:10px 14px;
  font-weight:800;
  cursor:pointer;
  background:#fff;
  color:#243244;
}

.fd-btn:hover{
  background:#f8fafc;
}

.fd-btn-primary{
  background:var(--primary);
  border-color:var(--primary);
  color:#fff;
}

.fd-btn-primary:hover{
  background:var(--primary-dark);
}

.fd-btn-danger{
  background:#fff5f5;
  border-color:#fecaca;
  color:#991b1b;
}

.fd-btn-sm{
  padding:7px 10px;
  font-size:13px;
}

.fd-alert{
  border-radius:8px;
  padding:12px 14px;
  margin-bottom:16px;
  border:1px solid var(--line);
  background:white;
  font-weight:700;
}

.fd-alert-success{border-color:#b7e4ca;background:#f0fdf4;color:#166534}
.fd-alert-error{border-color:#f3b7b2;background:#fff5f5;color:#991b1b}
.fd-alert-info{border-color:#b9d7ee;background:#eff8ff;color:#1d4f73}

.fd-footer{
  border-top:1px solid var(--line);
  color:var(--muted);
  display:flex;
  justify-content:center;
  gap:18px;
  flex-wrap:wrap;
  padding:20px 16px 30px;
  font-size:13px;
  background:#fff;
}

.fd-admin-body{background:#eef2f6}

.fd-admin-layout{
  display:grid;
  grid-template-columns:250px 1fr;
  min-height:100vh;
}

.fd-sidebar{
  background:var(--sidebar);
  color:#cbd5e1;
  padding:16px;
  position:sticky;
  top:0;
  height:100vh;
  overflow:auto;
  border-right:1px solid rgba(255,255,255,.08);
}

.fd-sidebar a{
  display:flex;
  align-items:center;
  gap:10px;
  padding:11px 12px;
  border-radius:8px;
  font-weight:700;
  margin-bottom:4px;
}

.fd-sidebar a:hover,
.fd-sidebar a.is-active{
  background:rgba(255,255,255,.08);
  color:white;
}

.fd-sidebar-brand{
  color:white!important;
  margin-bottom:16px!important;
  background:rgba(255,255,255,.05);
}

.fd-sidebar-divider{
  border:none;
  border-top:1px solid rgba(255,255,255,.12);
  margin:6px 0;
}

.fd-carrier-tabs{
  display:flex;
  gap:8px;
  margin-bottom:16px;
  flex-wrap:wrap;
}
.fd-carrier-tab{
  display:inline-flex;
  align-items:center;
  padding:8px 20px;
  border-radius:var(--radius);
  background:var(--card);
  border:1.5px solid var(--line);
  color:var(--muted);
  font-size:14px;
  font-weight:600;
  text-decoration:none;
  cursor:pointer;
  transition:background .15s,color .15s,border-color .15s,box-shadow .15s;
}
.fd-carrier-tab:hover{
  background:var(--primary-soft);
  color:var(--primary);
  border-color:var(--primary);
}
.fd-carrier-tab.is-active{
  background:var(--primary);
  color:#fff;
  border-color:var(--primary);
  box-shadow:0 2px 8px rgba(21,108,103,.25);
}

.fd-admin-main{
  padding:24px;
}

.fd-admin-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:16px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:18px 20px;
  box-shadow:var(--shadow);
}

.fd-admin-top h1{
  margin:0;
  font-size:25px;
}

.fd-admin-top-actions{
  margin-top:0;
  justify-content:flex-end;
}

.fd-stat{
  grid-column:span 3;
}

.fd-stat strong{
  display:block;
  font-size:30px;
  letter-spacing:0;
  color:#111827;
}

.fd-stat span{
  color:var(--muted);
  font-weight:700;
}

.fd-attention-card{
  grid-column:span 3;
  border-left:4px solid var(--accent);
  background:#fffaf2;
}

.fd-attention-card strong{
  display:block;
  font-size:28px;
  color:#111827;
}

.fd-attention-card span{
  color:#4b5563;
  font-weight:900;
}

.fd-dashboard-snapshot{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin-bottom:16px;
}

.fd-snapshot-card{
  display:block;
  min-height:112px;
  background:#ffffff;
  border:1px solid var(--line);
  border-left:4px solid var(--primary);
  border-radius:8px;
  box-shadow:var(--shadow);
  padding:16px 18px;
  transition:border-color .14s ease, box-shadow .14s ease, transform .14s ease;
}

.fd-snapshot-card:hover{
  border-color:#8cb8b3;
  box-shadow:var(--shadow-card);
  transform:translateY(-1px);
}

.fd-snapshot-card.is-primary{
  background:linear-gradient(180deg,#ffffff 0,#edf9f6 100%);
  border-color:#92c7c1;
  border-left-color:var(--primary);
}

.fd-snapshot-card span{
  display:block;
  color:var(--muted);
  font-size:13px;
  font-weight:900;
}

.fd-snapshot-card strong{
  display:block;
  margin-top:8px;
  color:#111827;
  font-size:32px;
  line-height:1;
}

.fd-snapshot-card em{
  display:block;
  margin-top:8px;
  color:#536575;
  font-size:13px;
  font-style:normal;
  font-weight:700;
}

.fd-dashboard-panels{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);
  gap:16px;
  align-items:start;
  margin-bottom:24px;
}

.fd-dashboard-stats-strip{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin:-4px 0 16px;
}

.fd-stats-mini-card{
  border:1px solid var(--line);
  border-radius:8px;
  background:#ffffff;
  box-shadow:var(--shadow);
  padding:12px 14px;
  min-height:88px;
}

.fd-stats-mini-card span,
.fd-stats-mini-card strong,
.fd-stats-mini-card em{
  display:block;
}

.fd-stats-mini-card span{
  color:#536575;
  font-size:12px;
  font-weight:900;
}

.fd-stats-mini-card strong{
  margin-top:7px;
  color:#111827;
  font-size:24px;
  line-height:1;
}

.fd-stats-mini-card em{
  margin-top:7px;
  color:#607080;
  font-size:12px;
  font-style:normal;
  font-weight:800;
}

.fd-dashboard-panel{
  background:#ffffff;
  border:1px solid var(--line);
  border-radius:8px;
  box-shadow:var(--shadow);
  padding:16px;
}

.fd-dashboard-panel-head{
  margin-bottom:12px;
}

.fd-dashboard-panel-head h2{
  margin:0;
  color:#111827;
  font-size:20px;
}

.fd-dashboard-panel-head p{
  margin:4px 0 0;
  color:var(--muted);
  font-size:13px;
}

.fd-dashboard-link-list{
  display:grid;
  gap:8px;
}

.fd-dashboard-tool-list{
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.fd-dashboard-link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:62px;
  border:1px solid var(--line-soft);
  border-radius:8px;
  background:#f9fbfb;
  padding:10px 12px;
  transition:border-color .14s ease, background .14s ease;
}

.fd-dashboard-link:hover{
  border-color:#aac7c3;
  background:#ffffff;
}

.fd-dashboard-link strong,
.fd-dashboard-link em{
  display:block;
}

.fd-dashboard-link strong{
  color:#17212b;
  font-size:15px;
}

.fd-dashboard-link em{
  margin-top:3px;
  color:var(--muted);
  font-size:12px;
  font-style:normal;
  line-height:1.35;
}

.fd-dashboard-link b{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:5px 9px;
  border-radius:999px;
  background:var(--primary-soft);
  color:var(--primary-dark);
  font-size:12px;
  white-space:nowrap;
}

.fd-dashboard-section-title{
  margin-top:24px;
}

.fd-stats-panels{
  grid-template-columns:minmax(0,1fr) minmax(320px,.75fr);
}

.fd-stats-upload-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);
  gap:18px;
  align-items:end;
  margin-bottom:16px;
}

.fd-stats-upload-card h2{
  margin:0 0 6px;
  color:#111827;
  font-size:20px;
}

.fd-stats-upload{
  display:grid;
  gap:12px;
}

.fd-stats-upload .fd-btn{
  justify-self:start;
}

.fd-stats-notes{
  display:grid;
  gap:8px;
}

.fd-stats-notes span{
  border:1px solid var(--line-soft);
  border-radius:8px;
  background:#f8fafc;
  padding:10px 12px;
  color:#344252;
  font-weight:800;
  font-size:13px;
}

.fd-stats-filter{
  margin-bottom:16px;
}

.fd-stats-day-links{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid var(--line-soft);
}

.fd-stats-snapshot{
  grid-template-columns:repeat(4,minmax(0,1fr));
}

.fd-stats-table tfoot th{
  background:#edf4f7;
  color:#17212b;
  border-top:2px solid #cbd6df;
}

.fd-muted-inline{
  color:var(--muted);
  font-size:12px;
  font-weight:700;
}

.fd-small-cell{
  color:#344252;
  font-size:12px;
  line-height:1.45;
}

.fd-duplicate-panel{
  margin-bottom:16px;
}

.fd-duplicate-panel-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:12px;
}

.fd-duplicate-panel-head h2{
  margin:0 0 4px;
  color:#111827;
  font-size:20px;
}

.fd-duplicate-panel-head form{
  margin:0;
}

.fd-duplicate-list{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:10px;
}

.fd-duplicate-item{
  border:1px solid var(--line-soft);
  border-radius:8px;
  background:#fffaf2;
  padding:10px 12px;
}

.fd-duplicate-item strong,
.fd-duplicate-item span,
.fd-duplicate-item em{
  display:block;
}

.fd-duplicate-item strong{
  color:#111827;
}

.fd-duplicate-item span,
.fd-duplicate-item em{
  margin-top:4px;
  color:#536575;
  font-size:12px;
  font-style:normal;
  font-weight:800;
}

.fd-week-details{
  border:1px solid var(--line);
  border-radius:8px;
  background:#ffffff;
  box-shadow:var(--shadow);
  margin-bottom:12px;
  overflow:hidden;
}

.fd-month-details{
  border:1px solid #cbd6df;
  border-radius:9px;
  background:#f8fafc;
  box-shadow:var(--shadow);
  margin-bottom:14px;
  overflow:hidden;
}

.fd-month-details > summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:15px 16px;
  cursor:pointer;
  background:#dde9ee;
  color:#142f3b;
  list-style:none;
}

.fd-month-details > summary::-webkit-details-marker{
  display:none;
}

.fd-month-details > summary:before{
  content:"+";
  width:25px;
  height:25px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  border-radius:999px;
  background:#ffffff;
  color:var(--primary-dark);
  font-weight:900;
  border:1px solid #b8c8d4;
}

.fd-month-details[open] > summary:before{
  content:"-";
}

.fd-month-details > summary span{
  display:grid;
  gap:3px;
  margin-right:auto;
}

.fd-month-details > summary strong{
  color:#142f3b;
  font-size:17px;
}

.fd-month-details > summary em{
  color:#536575;
  font-size:12px;
  font-style:normal;
  font-weight:800;
}

.fd-month-details > summary b{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  padding:5px 10px;
  border-radius:999px;
  background:#ffffff;
  color:var(--primary-dark);
  font-size:12px;
  white-space:nowrap;
}

.fd-month-body{
  padding:12px;
}

.fd-week-details summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:14px 16px;
  cursor:pointer;
  background:#eef7f5;
  color:#143f3c;
  list-style:none;
}

.fd-week-details summary::-webkit-details-marker{
  display:none;
}

.fd-week-details summary:before{
  content:"+";
  width:24px;
  height:24px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  border-radius:999px;
  background:#ffffff;
  color:var(--primary-dark);
  font-weight:900;
  border:1px solid #c8e4df;
}

.fd-week-details[open] summary:before{
  content:"-";
}

.fd-week-details summary span{
  display:grid;
  gap:3px;
  margin-right:auto;
}

.fd-week-details summary strong{
  color:#143f3c;
  font-size:16px;
}

.fd-week-details summary em{
  color:#536575;
  font-size:12px;
  font-style:normal;
  font-weight:800;
}

.fd-week-export-btn{
  display:inline-flex;
  align-items:center;
  margin-left:10px;
  padding:3px 10px;
  font-size:12px;
  font-weight:600;
  background:#fff;
  border:1px solid #ccd5dc;
  border-radius:6px;
  color:#1a3a52;
  text-decoration:none;
  vertical-align:middle;
  white-space:nowrap;
  cursor:pointer;
  transition:background 0.12s,border-color 0.12s;
}
.fd-week-export-btn:hover{
  background:#f0f4f7;
  border-color:#9aadb8;
}

.fd-week-details summary b{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  padding:5px 10px;
  border-radius:999px;
  background:#ffffff;
  color:var(--primary-dark);
  font-size:12px;
  white-space:nowrap;
}

.fd-week-table{
  border:0;
  border-top:1px solid var(--line);
  border-radius:0;
  box-shadow:none;
}

.fd-table-wrap{
  overflow:auto;
  background:white;
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}

table{
  width:100%;
  border-collapse:collapse;
  min-width:760px;
}

th,td{
  text-align:left;
  padding:12px 13px;
  border-bottom:1px solid var(--line-soft);
  vertical-align:top;
}

th{
  color:#475569;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:0;
  background:#f8fafc;
}

.fd-week-row td{
  background:#eef7f5;
  border-top:1px solid #c8e4df;
  border-bottom:1px solid #c8e4df;
  color:#143f3c;
}

.fd-week-row strong,
.fd-week-row span{
  display:inline-flex;
  align-items:center;
}

.fd-week-row span{
  margin-left:10px;
  color:#536575;
  font-size:12px;
  font-weight:900;
}

.fd-day-row td{
  background:#f8fafb;
  border-top:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft);
  color:#344252;
  padding:9px 13px;
}

.fd-day-row strong,
.fd-day-row span{
  display:inline-flex;
  align-items:center;
}

.fd-day-row strong{
  font-size:13px;
}

.fd-day-row span{
  margin-left:10px;
  color:#607080;
  font-size:12px;
  font-weight:900;
}

.fd-inline-flags{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:6px;
}

.fd-badge{
  display:inline-flex;
  border-radius:6px;
  padding:4px 8px;
  background:#e8f0f8;
  color:#1f4f82;
  font-size:12px;
  font-weight:800;
}

/* ── Quick Access strip ─────────────────────────────────────────── */
.fd-quick-access-wrap{
  background:var(--primary-soft);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:16px;
  margin-bottom:20px;
}
.fd-quick-access-label{
  display:flex;
  align-items:baseline;
  gap:10px;
  margin-bottom:12px;
}
.fd-quick-access-label span{
  font-size:14px;
  font-weight:700;
  color:var(--text);
}
.fd-quick-access-label small{
  font-size:12px;
  color:var(--muted);
}
.fd-quick-access-grid{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.fd-qa-card{
  display:flex;
  align-items:center;
  gap:12px;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:10px 14px;
}
.fd-qa-icon{
  font-size:20px;
  flex-shrink:0;
  width:28px;
  text-align:center;
}
.fd-qa-body{
  flex:1;
  min-width:0;
}
.fd-qa-title{
  font-size:14px;
  font-weight:600;
  color:var(--text);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.fd-qa-cat{
  font-size:11px;
  color:var(--muted);
  margin-top:1px;
}
.fd-qa-btn{
  flex-shrink:0;
  display:inline-flex;
  align-items:center;
  padding:7px 14px;
  background:var(--primary);
  color:#fff;
  border-radius:var(--radius);
  font-size:12px;
  font-weight:600;
  text-decoration:none;
  margin-left:4px;
  white-space:nowrap;
  transition:background .15s;
}
.fd-qa-btn:hover{
  background:var(--primary-dark);
}

/* ── Training section collapsible headers ───────────────────────── */
.fd-training-section{
  margin-bottom:12px;
}
.fd-training-section-header{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  background:var(--primary-soft);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:12px 16px;
  cursor:pointer;
  font:inherit;
  text-align:left;
  transition:background .12s;
  margin-bottom:8px;
}
.fd-training-section-header:hover{
  background:#d4e9e7;
}
.fd-training-section-title{
  flex:1;
  font-size:15px;
  font-weight:600;
  color:var(--text);
}
.fd-training-section-count{
  font-size:12px;
  color:var(--muted);
  background:var(--card);
  border:1px solid var(--line);
  border-radius:20px;
  padding:2px 10px;
}
.fd-training-section-chevron{
  font-size:14px;
  color:var(--muted);
  transition:transform .2s;
}
.fd-training-section-header.is-collapsed .fd-training-section-chevron{
  transform:rotate(-90deg);
}
.fd-training-section-body{
  overflow:hidden;
}
.fd-training-section-body.is-collapsed{
  display:none;
}

/* Carrier tag on individual cards */
.fd-training-carrier-tag{
  display:inline-block;
  font-size:10px;
  font-weight:700;
  letter-spacing:.5px;
  text-transform:uppercase;
  padding:2px 8px;
  border-radius:4px;
  margin-bottom:6px;
}
.fd-training-carrier-mediacom{
  background:#e8f0fe;
  color:#1a56db;
}
.fd-training-carrier-cspire{
  background:#fce8ff;
  color:#7e22ce;
}

.fd-training-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:16px;
}

.fd-training-card h3{margin-top:0}
.fd-training-meta{color:var(--muted);font-size:13px;font-weight:700;margin-bottom:10px}
.fd-training-copy,
.fd-training-description{
  color:#253142;
  line-height:1.45;
  font-size:14px;
}

.fd-app-download-card{
  border-color:#9ecdc7;
  background:linear-gradient(180deg,#ffffff 0,#f1fbf8 100%);
}

.fd-app-kicker{
  display:inline-flex;
  align-items:center;
  min-height:26px;
  border-radius:999px;
  padding:4px 9px;
  margin-bottom:10px;
  background:var(--primary-soft);
  color:var(--primary-dark);
  font-size:12px;
  font-weight:900;
}

.fd-app-download-card .fd-actions{
  gap:8px;
}

.fd-training-description summary{
  display:grid;
  gap:8px;
  cursor:pointer;
  list-style:none;
}

.fd-training-description summary::-webkit-details-marker{
  display:none;
}

.fd-training-preview{
  display:-webkit-box;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.fd-training-full{
  display:none;
  margin-top:8px;
}

.fd-training-description[open] .fd-training-preview{
  display:none;
}

.fd-training-description[open] .fd-training-full{
  display:block;
}

.fd-more-toggle{
  justify-self:start;
  color:var(--primary);
  font-weight:900;
  font-size:13px;
}

.fd-more-close{display:none}
.fd-training-description[open] .fd-more-open{display:none}
.fd-training-description[open] .fd-more-close{display:inline}

.fd-contact-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(245px,1fr));
  gap:10px;
  align-items:start;
}

.fd-contact-card{
  display:flex;
  flex-direction:column;
  gap:9px;
  padding:14px;
}

.fd-contact-top{
  display:flex;
  justify-content:space-between;
  gap:12px;
}

.fd-contact-card h2{
  margin:0;
  font-size:17px;
  color:#111827;
  line-height:1.2;
}

.fd-contact-card p{
  margin:4px 0 0;
  color:var(--muted);
  line-height:1.45;
  font-size:13px;
}

.fd-contact-meta{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  align-items:center;
  color:var(--primary);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  margin-bottom:5px;
}

.fd-contact-meta span{
  border:1px solid #d8b35d;
  background:#fff8e6;
  color:#583b00;
  border-radius:6px;
  padding:2px 6px;
  text-transform:none;
}

.fd-contact-lines{
  display:grid;
  gap:6px;
}

.fd-contact-line{
  border:1px solid var(--line-soft);
  background:#f8fafc;
  border-radius:7px;
  padding:7px 8px;
}

.fd-contact-line span{
  display:block;
  color:var(--muted);
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  margin-bottom:2px;
}

.fd-contact-line strong{
  display:block;
  color:#111827;
  font-size:13px;
  overflow-wrap:anywhere;
}

.fd-contact-copy,
.fd-contact-note{
  border-top:1px solid var(--line-soft);
  padding-top:8px;
}

.fd-contact-note{
  color:#344252!important;
}

.fd-muted-inline{
  display:block;
  color:var(--muted);
  font-size:12px;
  margin-top:3px;
}

.fd-priority-contacts{
  position:sticky;
  top:0;
  z-index:20;
  border:1px solid #d8b35d;
  border-left:5px solid #a15c07;
  background:#fff8e6;
  border-radius:10px;
  box-shadow:0 8px 18px rgba(15,23,42,.08);
  padding:10px;
  margin:12px 0;
}

.fd-priority-head{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
  margin-bottom:8px;
}

.fd-priority-head span{
  color:#583b00;
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
}

.fd-priority-head strong{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:26px;
  height:24px;
  border-radius:999px;
  background:#ffffff;
  color:#583b00;
  font-size:12px;
}

.fd-priority-strip{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:8px;
  max-height:220px;
  overflow:auto;
  padding-right:2px;
}

.fd-priority-contact{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  border:1px solid #e9c46f;
  background:#ffffff;
  border-radius:8px;
  padding:9px 10px;
}

.fd-priority-contact span{
  display:block;
  color:#8a4a00;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  margin-bottom:2px;
}

.fd-priority-contact h2{
  margin:0;
  font-size:15px;
  color:#111827;
}

.fd-priority-contact p{
  margin:2px 0 0;
  color:var(--muted);
  font-size:12px;
}

.fd-priority-actions{
  display:grid;
  gap:6px;
  justify-items:end;
}

.fd-priority-actions strong{
  font-size:12px;
  white-space:nowrap;
}

.fd-priority-actions div{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

@media (max-width:900px){
  .fd-tool-card,.fd-stat,.fd-attention-card{grid-column:span 6}
  .fd-admin-layout{grid-template-columns:1fr}
  .fd-sidebar{
    position:relative;
    height:auto;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:700px){
  .fd-topbar{align-items:flex-start;flex-direction:column;padding:12px 16px}
  .fd-nav{width:100%;margin-top:10px}
  .fd-nav a{background:#f8fafc}
  .fd-tool-card,.fd-stat,.fd-attention-card{grid-column:1/-1}
  .fd-form-grid,.fd-form-grid.three{grid-template-columns:1fr}
  .fd-check-grid{grid-template-columns:1fr}
  .fd-hero,.fd-page-head{padding:20px}
  .fd-admin-main{padding:16px}
  .fd-priority-contacts{top:0}
  .fd-priority-contact{grid-template-columns:1fr}
  .fd-priority-actions{justify-items:start}
  .fd-priority-actions div{justify-content:flex-start}
}


.fd-required-active input{
  border-color:#a15c07;
  background:#fffdf7;
}

.fd-map-helper{
  background:#f8fafc;
  border:1px solid var(--line);
  border-left:4px solid var(--primary);
  border-radius:9px;
  padding:14px;
  margin-bottom:16px;
}

.fd-map-helper ol{
  margin:8px 0 0 20px;
  padding:0;
  color:#374151;
  line-height:1.55;
}

.fd-map-helper strong{
  color:#111827;
}


.fd-notice{
  border:1px solid #d8b35d;
  background:#fff8e6;
  color:#583b00;
  border-left:5px solid #a15c07;
  border-radius:8px;
  padding:14px 16px;
  margin-bottom:16px;
  line-height:1.45;
}

.fd-notice strong{
  color:#3f2b00;
}

.fd-pin{
  display:inline-flex;
  align-items:center;
  border-radius:6px;
  padding:4px 8px;
  background:#fff8e6;
  border:1px solid #d8b35d;
  color:#583b00;
  font-size:12px;
  font-weight:800;
  margin-bottom:8px;
}


/* Drop Bury spacing + signature polish */
.fd-form-card{
  padding:24px;
}

.fd-form-card hr{
  margin:28px 0 24px;
}

.fd-form-grid.three{
  align-items:start;
}

.fd-field{
  min-width:0;
}

.fd-field .fd-help{
  margin-bottom:0;
}

.fd-map-helper .fd-actions{
  margin-top:12px;
}

.fd-signature-wrap{
  border:1px solid #cfd6df;
  background:#fff;
  border-radius:9px;
  overflow:hidden;
}

.fd-signature-pad{
  display:block;
  width:100%;
  height:220px;
  background:#fff;
  touch-action:none;
  cursor:crosshair;
}

.fd-signature-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border-top:1px solid var(--line-soft);
  background:#f8fafc;
  color:var(--muted);
  font-size:13px;
}

.fd-signature-error{
  display:none;
  margin-top:8px;
  color:#991b1b;
  font-weight:700;
  font-size:13px;
}

.fd-signature-error.show{
  display:block;
}

@media (max-width:700px){
  .fd-form-card{
    padding:18px;
  }
  .fd-signature-pad{
    height:190px;
  }
}


/* Desktop polish pass */
.fd-form-card{
  overflow:hidden;
}

.fd-form-grid{
  row-gap:14px;
}

.fd-field{
  margin:0;
}

.fd-field label{
  margin-bottom:7px;
}

.fd-field input,
.fd-field select,
.fd-field textarea{
  display:block;
}

.fd-field .fd-help{
  margin-top:5px;
  margin-bottom:0;
  min-height:0;
}

.fd-compact-help{
  min-height:18px;
}

.fd-upload-box{
  border:1px solid var(--line-soft);
  background:#f8fafc;
  border-radius:9px;
  padding:12px;
}

.fd-upload-box input[type="file"]{
  background:#fff;
  padding:10px;
}

.fd-file-preview{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:8px;
  margin-top:10px;
}

.fd-file-preview-item,
.fd-file-preview-more{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:42px;
  border:1px solid var(--line-soft);
  background:#fff;
  border-radius:8px;
  padding:8px;
  color:#344252;
  font-size:13px;
  font-weight:800;
  overflow-wrap:anywhere;
}

.fd-file-preview-item img{
  width:34px;
  height:34px;
  object-fit:cover;
  border-radius:6px;
  border:1px solid var(--line);
}

.fd-map-helper{
  margin-top:2px;
}

.fd-map-helper .fd-actions{
  margin-bottom:0;
}

.fd-signature-wrap{
  border:1px solid #9aa8b7;
  background:#fff;
  border-radius:9px;
  overflow:hidden;
  width:100%;
}

canvas.fd-signature-pad{
  display:block !important;
  width:100% !important;
  height:210px !important;
  min-height:210px !important;
  background:
    linear-gradient(#fff,#fff) padding-box,
    repeating-linear-gradient(0deg, transparent, transparent 34px, rgba(31,41,55,.035) 35px) border-box;
  touch-action:none;
  cursor:crosshair;
}

.fd-signature-footer{
  min-height:48px;
}

.fd-signature-status{
  font-weight:800;
  color:var(--muted);
}

.fd-signature-status.signed{
  color:var(--success);
}

.fd-form-card h3 + p{
  margin-bottom:16px;
}

.fd-file-grid-fix{
  display:block;
}

.fd-qc-photo-checklist{
  display:grid;
  gap:14px;
}

.fd-qc-photo-empty{
  border:1px dashed #bfd0cb;
  border-radius:8px;
  background:#f7fbf9;
  color:#526273;
  font-weight:800;
  padding:14px;
}

.fd-qc-photo-set{
  display:grid;
  gap:12px;
}

.fd-qc-photo-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.fd-qc-photo-field{
  margin:0;
}

.fd-qc-photo-field label{
  color:#111827;
}

.fd-qc-extra-upload{
  margin-top:14px;
}

@media (max-width:700px){
  canvas.fd-signature-pad{
    height:185px !important;
    min-height:185px !important;
  }
}


/* GIG homepage rework - compact operations hub */
.fd-home-head{
  display:flex;
  justify-content:space-between;
  align-items:stretch;
  gap:16px;
  background:#fff;
  border:1px solid var(--line);
  border-left:5px solid var(--primary);
  border-radius:var(--radius);
  padding:20px 22px;
  box-shadow:var(--shadow);
  margin-bottom:16px;
}

.fd-home-head h1{
  margin:0;
  font-size:31px;
  letter-spacing:0;
  color:#111827;
}

.fd-home-head p{
  margin:6px 0 0;
  color:var(--muted);
  line-height:1.45;
  max-width:680px;
}

.fd-section-kicker{
  display:block;
  color:var(--primary);
  text-transform:uppercase;
  letter-spacing:0;
  font-size:11px;
  font-weight:900;
  margin-bottom:5px;
}



.fd-home-status strong{
  color:#111827;
  font-size:16px;
}

.fd-home-status span{
  color:var(--muted);
  font-size:13px;
  margin-top:4px;
  line-height:1.4;
}

.fd-tool-list{
  display:grid;
  gap:10px;
  margin-bottom:16px;
}

.fd-tool-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  padding:15px 16px;
  box-shadow:var(--shadow);
  transition:.12s ease;
}

.fd-tool-row:hover{
  border-color:#9fb7d0;
  box-shadow:var(--shadow-card);
}

.fd-tool-row strong{
  display:block;
  font-size:17px;
  color:#111827;
}

.fd-tool-row span{
  display:block;
  margin-top:4px;
  color:var(--muted);
  line-height:1.4;
}

.fd-tool-row em{
  flex:0 0 auto;
  font-style:normal;
  font-weight:900;
  color:var(--primary);
  background:var(--primary-soft);
  border-radius:8px;
  padding:8px 10px;
  font-size:13px;
}











@media(max-width:800px){
  .fd-home-head{
    flex-direction:column;
  }
  .fd-tool-row{
    align-items:flex-start;
    flex-direction:column;
  }

  .fd-home-grid{
    grid-template-columns:1fr;
  }
}


/* Admin submission detail cleanup */
.fd-submission-detail{
  display:grid;
  gap:16px;
}

.fd-submission-card h2{
  margin:0 0 14px;
  font-size:20px;
  color:#111827;
}

.fd-detail-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}

.fd-detail-item{
  border:1px solid var(--line-soft);
  background:#f8fafc;
  border-radius:8px;
  padding:11px 12px;
}

.fd-detail-item span{
  display:block;
  color:var(--muted);
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:0;
  margin-bottom:5px;
}

.fd-detail-item strong{
  display:block;
  color:#111827;
  font-size:15px;
  line-height:1.35;
}

.fd-admin-fields{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.fd-admin-field.full{
  grid-column:1/-1;
}

.fd-admin-field label{
  display:block;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:0;
  color:#4b5563;
  margin-bottom:6px;
}

.fd-valuebox,
.fd-readbox{
  border:1px solid var(--line-soft);
  background:#fff;
  border-radius:8px;
  padding:10px 11px;
  min-height:42px;
  color:#111827;
  line-height:1.45;
}

.fd-readbox{
  white-space:normal;
}

.fd-admin-field pre{
  white-space:pre-wrap;
  overflow:auto;
  border:1px solid var(--line-soft);
  background:#f8fafc;
  border-radius:8px;
  padding:10px;
  margin:0;
}

.fd-upload-list{
  display:grid;
  gap:14px;
}

.fd-upload-group{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,420px));
  justify-content:start;
  align-items:start;
  gap:12px;
}

.fd-upload-group h3{
  grid-column:1/-1;
  margin:0 0 8px;
  font-size:16px;
}

.fd-upload-link{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  border:1px solid var(--line-soft);
  background:#f8fafc;
  border-radius:8px;
  padding:10px 12px;
  margin-bottom:8px;
}

.fd-upload-link span{
  font-weight:700;
  color:#111827;
}

.fd-upload-link strong{
  color:var(--primary);
}

.fd-signature-admin{
  border:1px solid var(--line);
  background:#fff;
  border-radius:8px;
  padding:12px;
  max-width:760px;
}

.fd-signature-admin img{
  display:block;
  max-width:100%;
  height:auto;
}

@media(max-width:900px){
  .fd-detail-grid,
  .fd-admin-fields{
    grid-template-columns:1fr;
  }
}

@media print{
  .fd-sidebar,
  .fd-admin-top .fd-actions,
  .fd-admin-filters,
  .fd-print-quiet,
  .fd-btn{
    display:none!important;
  }

  .fd-admin-layout{
    display:block!important;
  }

  .fd-admin-main{
    padding:0!important;
  }

  body{
    background:#fff!important;
  }

  .fd-card{
    box-shadow:none!important;
    break-inside:avoid;
  }

  .fd-stats-admin-page .fd-admin-top,
  .fd-stats-admin-page .fd-print-quiet{
    display:none!important;
  }

  .fd-stats-admin-page .fd-dashboard-snapshot{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:6px!important;
    margin-bottom:8px!important;
  }

  .fd-stats-admin-page .fd-snapshot-card{
    min-height:0!important;
    padding:8px 10px!important;
    box-shadow:none!important;
  }

  .fd-stats-admin-page .fd-snapshot-card strong{
    font-size:22px!important;
    margin-top:4px!important;
  }

  .fd-stats-admin-page .fd-snapshot-card em{
    margin-top:4px!important;
    font-size:10px!important;
  }

  .fd-stats-admin-page .fd-dashboard-section-title{
    margin:8px 0 6px!important;
  }

  .fd-stats-admin-page .fd-dashboard-section-title h2{
    font-size:18px!important;
  }

  .fd-stats-admin-page .fd-dashboard-section-title p{
    font-size:11px!important;
  }

  .fd-stats-admin-page .fd-table-wrap{
    overflow:visible!important;
    box-shadow:none!important;
    border-color:#b8c2cc!important;
  }

  .fd-stats-admin-page .fd-stats-table table{
    min-width:0!important;
    font-size:10px!important;
  }

  .fd-stats-admin-page .fd-stats-table th,
  .fd-stats-admin-page .fd-stats-table td{
    padding:4px 5px!important;
  }

  .fd-stats-admin-page .fd-status{
    padding:2px 5px!important;
    font-size:10px!important;
  }
}


.fd-image-preview-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,420px));
  justify-content:start;
  align-items:start;
  gap:12px;
}

.fd-image-preview{
  border:1px solid var(--line-soft);
  background:#f8fafc;
  border-radius:8px;
  padding:10px;
  margin-bottom:0;
  max-width:420px;
}

.fd-image-preview img{
  display:block;
  width:auto;
  max-width:100%;
  max-height:360px;
  height:auto;
  object-fit:contain;
  border-radius:6px;
  border:1px solid var(--line);
  background:#fff;
}

.fd-image-title{
  font-weight:800;
  color:#111827;
  margin-bottom:8px;
  font-size:14px;
}


/* 2026 product polish pass */
:root{
  --bg:#f5f7f6;
  --card:#ffffff;
  --text:#17212b;
  --muted:#607080;
  --line:#d7dedc;
  --line-soft:#e8eeeb;
  --primary:#156c67;
  --primary-dark:#0f4f4b;
  --primary-soft:#e6f4f1;
  --accent:#b86412;
  --accent-soft:#fff2df;
  --success:#14784f;
  --danger:#b42318;
  --warning:#a15c07;
  --sidebar:#18242d;
  --sidebar-dark:#101a21;
  --header:#ffffff;
  --radius:8px;
  --shadow:0 1px 2px rgba(15,23,42,.06);
  --shadow-card:0 12px 24px rgba(15,23,42,.08);
}

*{
  letter-spacing:0!important;
}

body{
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  background:
    linear-gradient(180deg, #ffffff 0, #f5f7f6 240px);
}

.fd-topbar{
  position:sticky;
  top:0;
  z-index:20;
  padding:12px 28px;
  backdrop-filter:saturate(1.2) blur(12px);
  background:rgba(255,255,255,.94);
}

.fd-logo{
  border-radius:8px;
  background:#17212b;
}

.fd-nav a{
  border-radius:8px;
}

.fd-nav a:hover,
.fd-nav a.is-active,
.fd-admin-link{
  background:var(--primary-soft);
  color:var(--primary-dark);
}

.fd-shell{
  width:min(1200px, calc(100% - 32px));
  padding:24px 0 48px;
}

.fd-card,
.fd-page-head,
.fd-home-hero,
.fd-tool-tile,
.fd-form-card,
.fd-table-wrap,
.fd-admin-top,
.fd-alert,
.fd-notice,
.fd-upload-box,
.fd-subsection,
.fd-map-helper,
.fd-signature-wrap,
input,
select,
textarea,
.fd-btn{
  border-radius:8px;
}

.fd-page-head,
.fd-form-card,
.fd-admin-top,
.fd-table-wrap,
.fd-card{
  box-shadow:var(--shadow);
}

.fd-page-head{
  border-left:0;
  padding:22px;
}

.fd-page-head h1,
.fd-home-hero h1,
.fd-admin-top h1{
  letter-spacing:0;
}

.fd-section-kicker,
.fd-kicker,
th,
.fd-detail-item span,
.fd-admin-field label{
  letter-spacing:0;
}

.fd-home-hero{
  display:flex;
  flex-direction:column;
  gap:6px;
  background:linear-gradient(135deg,#ffffff 0,#f0fbf8 100%);
  border:1px solid #b8d9d5;
  border-left:5px solid var(--primary);
  padding:28px 28px 24px;
  margin-bottom:20px;
  position:relative;
  overflow:hidden;
}

.fd-home-hero::after{
  content:'';
  position:absolute;
  right:-20px;
  top:-20px;
  width:180px;
  height:180px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(21,108,103,.06) 0,transparent 70%);
  pointer-events:none;
}

.fd-home-hero h1{
  margin:4px 0 0;
  color:#111827;
  font-size:36px;
  line-height:1.08;
}

.fd-home-hero p{
  max-width:640px;
  margin:8px 0 0;
  color:var(--muted);
  font-size:16px;
  line-height:1.5;
}

.fd-home-metrics{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}

.fd-home-metrics a{
  min-height:86px;
  border:1px solid var(--line-soft);
  background:#f8fafc;
  border-radius:8px;
  padding:14px;
  transition:border-color .14s ease, background .14s ease, transform .14s ease;
}

.fd-home-metrics a:hover{
  border-color:#8cb8b3;
  background:#effaf7;
  transform:translateY(-1px);
}

.fd-home-metrics strong{
  display:block;
  color:var(--primary-dark);
  font-size:23px;
  line-height:1;
}

.fd-home-metrics span{
  display:block;
  margin-top:8px;
  color:#526273;
  font-size:12px;
  line-height:1.25;
  font-weight:900;
}

.fd-home-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:12px;
  align-items:stretch;
}

.fd-home-priority-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-bottom:20px;
}

.fd-feature-action{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:16px;
  min-height:176px;
  padding:22px;
  background:#ffffff;
  border:1px solid var(--line);
  border-radius:8px;
  box-shadow:var(--shadow);
  transition:border-color .14s ease, box-shadow .14s ease, transform .14s ease;
}

.fd-feature-action:hover{
  border-color:#8cb8b3;
  box-shadow:var(--shadow-card);
  transform:translateY(-1px);
}

.fd-feature-action .fd-tool-icon{
  width:50px;
  height:50px;
  font-size:15px;
}

.fd-feature-action strong{
  display:block;
  color:#111827;
  font-size:28px;
  line-height:1.05;
  margin:3px 0 8px;
}

.fd-feature-action p{
  max-width:520px;
  margin:0;
  color:var(--muted);
  line-height:1.45;
}

.fd-feature-action em{
  display:inline-flex;
  margin-top:18px;
  color:var(--primary-dark);
  font-style:normal;
  font-weight:900;
}

.fd-feature-action-primary{
  border-color:#92c7c1;
  background:linear-gradient(180deg,#ffffff 0,#edf9f6 100%);
}

.fd-feature-action-primary .fd-tool-icon{
  background:var(--primary);
}

.fd-feature-action-accent{
  border-color:#eed1a8;
  background:linear-gradient(180deg,#ffffff 0,#fff7eb 100%);
}

.fd-feature-action-accent .fd-tool-icon{
  background:#8a4a00;
}

/* Mobile: stack feature action icon+text vertically */
@media (max-width:600px){
  .fd-feature-action{
    grid-template-columns:1fr;
    min-height:0;
    padding:18px;
    gap:12px;
  }

  .fd-feature-action strong{
    font-size:22px;
  }

  .fd-home-grid-forms,
  .fd-home-grid-reference{
    grid-template-columns:1fr;
  }

  .fd-home-section-title h2{
    font-size:18px;
  }
}

.fd-home-section-title{
  margin-top:18px;
  margin-bottom:10px;
}

.fd-home-grid-forms,
.fd-home-grid-reference{
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-bottom:20px;
}

.fd-tool-tile{
  min-height:184px;
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:18px;
  background:#ffffff;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  transition:border-color .14s ease, box-shadow .14s ease, transform .14s ease;
}

.fd-tool-tile:hover{
  border-color:#8cb8b3;
  box-shadow:var(--shadow-card);
  transform:translateY(-1px);
}

.fd-tool-tile-primary{
  border-color:#9fcac5;
  background:linear-gradient(180deg,#ffffff 0,#f0fbf8 100%);
}

.fd-tool-tile-reference{
  background:linear-gradient(180deg,#ffffff 0,#fbfcfd 100%);
}

.fd-tool-tile-reference:hover{
  border-color:#9fb7d0;
}

.fd-tool-icon{
  width:40px;
  height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  background:#17212b;
  color:#ffffff;
  font-size:13px;
  font-weight:900;
}

.fd-tool-tile strong{
  display:block;
  color:#111827;
  font-size:18px;
  line-height:1.15;
}

.fd-tool-tile span:not(.fd-tool-icon){
  color:var(--muted);
  line-height:1.42;
}

.fd-tool-tile em{
  margin-top:auto;
  font-style:normal;
  font-weight:900;
  color:var(--primary-dark);
}

.fd-home-support{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
  margin-top:2px;
}

.fd-home-panel h2{
  margin:0 0 10px;
  font-size:20px;
}

.fd-home-panel p{
  margin:0 0 14px;
  color:var(--muted);
  line-height:1.5;
}

.fd-home-panel-accent{
  border-color:#efd0a8;
  background:var(--accent-soft);
}

.fd-checklist{
  display:grid;
  gap:8px;
  margin:0;
  padding:0;
  list-style:none;
}

.fd-checklist li{
  position:relative;
  padding-left:24px;
  color:#344252;
  line-height:1.45;
}

.fd-checklist li:before{
  content:"";
  position:absolute;
  left:0;
  top:.35em;
  width:14px;
  height:14px;
  border-radius:4px;
  background:var(--primary);
}

.fd-stepper{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:8px;
  margin-bottom:10px;
}

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

.fd-step{
  border:1px solid var(--line);
  background:#f8faf9;
  color:#435363;
  border-radius:8px;
  min-height:54px;
  padding:8px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-weight:900;
  cursor:pointer;
}

.fd-step span{
  width:24px;
  height:24px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:#e8eeeb;
  color:#263342;
  font-size:12px;
}

.fd-step.is-active{
  border-color:#81b9b3;
  background:var(--primary-soft);
  color:var(--primary-dark);
}

.fd-step.is-complete span,
.fd-step.is-active span{
  background:var(--primary);
  color:#ffffff;
}

.fd-progress-bar{
  height:6px;
  background:#e8eeeb;
  border-radius:999px;
  overflow:hidden;
  margin-bottom:22px;
}

.fd-progress-bar span{
  display:block;
  width:20%;
  height:100%;
  background:var(--primary);
  transition:width .18s ease;
}

.fd-step-panel{
  display:none;
}

.fd-step-panel.is-active{
  display:block;
}

.fd-step-actions{
  position:sticky;
  bottom:0;
  z-index:10;
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  margin:24px -24px -24px;
  padding:14px 24px;
  border-top:1px solid var(--line-soft);
  background:rgba(255,255,255,.96);
  backdrop-filter:saturate(1.2) blur(10px);
}

.fd-step-actions [disabled]{
  opacity:.5;
  cursor:not-allowed;
}

[hidden]{
  display:none!important;
}

.fd-btn{
  min-height:40px;
}

.fd-btn-primary{
  background:var(--primary);
  border-color:var(--primary);
}

.fd-btn-primary:hover{
  background:var(--primary-dark);
}

.fd-badge{
  border-radius:999px;
  background:var(--primary-soft);
  color:var(--primary-dark);
}

.fd-status{
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:4px 9px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  background:#eef2f4;
  color:#3e4c59;
}

.fd-status-new{background:#eaf2ff;color:#1f4f82}
.fd-status-info{background:#edf7f6;color:#156c67}
.fd-status-warning{background:#fff4df;color:#8a4a00}
.fd-status-success{background:#eefaf3;color:#146c43}
.fd-status-muted{background:#eef0f2;color:#596673}
.fd-status-danger{background:#fff1f2;color:#9f1239}

.fd-aging-badges{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
}

.fd-aging-notes{
  margin-top:10px;
  display:grid;
  gap:7px;
}

.fd-aging-notes p{
  margin:0;
  color:#344252;
  line-height:1.45;
  font-size:13px;
}

.fd-qc-tracker{
  margin-bottom:16px;
}

.fd-qc-tracker-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
}

.fd-qc-tracker-head h2{
  margin:5px 0 6px;
}

.fd-qc-date-form{
  display:grid;
  grid-template-columns:minmax(150px,1fr) auto;
  gap:8px;
  align-items:end;
}

.fd-qc-date-form label{
  grid-column:1/-1;
  margin-bottom:-2px;
}

.fd-qc-tracker-note{
  border:1px solid var(--line-soft);
  background:#f9fbfb;
  border-radius:8px;
  padding:10px 12px;
  margin-bottom:10px;
  color:#344252;
  font-size:13px;
  font-weight:800;
  line-height:1.4;
}

.fd-progress-row{
  display:grid;
  grid-template-columns:150px 1fr 52px;
  gap:12px;
  align-items:center;
  padding:10px 0;
  border-top:1px solid var(--line-soft);
}

.fd-progress-row strong,
.fd-progress-row span,
.fd-progress-row em{
  display:block;
}

.fd-progress-row strong{
  font-size:18px;
  color:#111827;
}

.fd-progress-row span{
  color:var(--muted);
  font-weight:700;
  font-size:12px;
}

.fd-progress-row em{
  color:#344252;
  font-style:normal;
  font-weight:900;
  text-align:right;
}

.fd-progress{
  height:12px;
  border-radius:999px;
  overflow:hidden;
  background:#e6edf1;
}

.fd-progress span{
  height:100%;
  display:block;
  background:var(--primary);
}

.fd-qc-tracker-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:12px;
}

.fd-qc-tracker-grid h3{
  margin:0 0 8px;
}

.fd-qc-tech-row{
  display:grid;
  grid-template-columns:64px minmax(0,1fr) auto auto;
  gap:8px;
  align-items:center;
  border:1px solid var(--line-soft);
  border-radius:8px;
  padding:8px 10px;
  margin-bottom:7px;
  background:#fff;
}

.fd-qc-tech-row strong{
  font-size:16px;
  color:#111827;
}

.fd-qc-tech-row span{
  color:#344252;
  font-weight:800;
}

.fd-qc-tech-row em{
  color:var(--muted);
  font-style:normal;
  font-weight:800;
  font-size:12px;
  white-space:nowrap;
}

.fd-qc-tech-row form{
  margin:0;
}

.fd-qc-tech-row small{
  color:var(--muted);
  font-size:11px;
  font-weight:800;
  line-height:1.25;
  text-align:right;
}

.fd-qc-tech-row.is-done{
  border-color:#b7e4ca;
  background:#f0fdf4;
}

.fd-qc-tech-row.is-missing{
  border-color:#f1d18d;
  background:#fffaf0;
}

.fd-qc-tech-row.is-off{
  border-color:#d7dee4;
  background:#f7f8fa;
}

.fd-release-body{
  background:#eef2f6;
}

.fd-release-shell{
  width:min(940px, calc(100% - 28px));
  margin:0 auto;
  padding:24px 0 44px;
}

.fd-release-brand{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:16px;
}

.fd-release-brand strong,
.fd-release-brand span{
  display:block;
}

.fd-release-brand strong{
  color:#111827;
  font-size:18px;
}

.fd-release-brand span{
  color:var(--muted);
  font-size:13px;
  margin-top:2px;
}

.fd-release-intro{
  border-left:5px solid var(--primary);
}

.fd-release-intro h1{
  margin:0;
  max-width:820px;
  font-size:30px;
  line-height:1.15;
  color:#111827;
}

.fd-release-intro p{
  color:var(--muted);
  line-height:1.5;
  max-width:780px;
}

.fd-legal-text{
  display:grid;
  gap:12px;
}

.fd-legal-section{
  border:1px solid var(--line-soft);
  background:#fff;
  border-radius:8px;
  padding:13px 14px;
}

.fd-legal-section h3{
  margin:0 0 7px;
  font-size:15px;
  color:#111827;
}

.fd-legal-section p{
  margin:0;
  color:#344252;
  line-height:1.55;
}

.fd-admin-filters{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:flex-end;
  margin-bottom:14px;
}

.fd-admin-filters .fd-field{
  flex:1;
  min-width:180px;
  max-width:400px;
  margin:0;
}

.fd-admin-filters .fd-field:first-child{
  flex:2;
  min-width:240px;
}

.fd-admin-filters .fd-actions{
  margin:0;
  flex-shrink:0;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:flex-end;
}

.fd-form-grid > .fd-actions{
  grid-column:1/-1;
  margin-top:0;
}

.fd-table-tools{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.fd-admin-note{
  border-left:4px solid var(--accent);
  background:#fffaf2;
}

.fd-confirmation-card{
  display:grid;
  gap:18px;
}

.fd-confirmation-top{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}

.fd-confirmation-top div{
  border:1px solid var(--line-soft);
  background:#f8fafc;
  border-radius:8px;
  padding:12px;
}

.fd-confirmation-top span{
  display:block;
  color:var(--muted);
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
}

.fd-confirmation-top strong{
  display:block;
  margin-top:5px;
  overflow-wrap:anywhere;
}

.fd-timeline{
  display:grid;
  gap:10px;
}

.fd-timeline-item{
  border:1px solid var(--line-soft);
  background:#f8fafc;
  border-radius:8px;
  padding:12px;
}

.fd-timeline-item strong{
  display:block;
  margin-top:8px;
  color:#344252;
  font-size:13px;
}

.fd-timeline-item p{
  margin:8px 0 0;
  color:#344252;
  line-height:1.45;
}

.fd-review-strip{
  margin-bottom:14px;
  padding:14px;
}

.fd-review-form{
  display:grid;
  grid-template-columns:minmax(190px,240px) minmax(0,1fr) minmax(0,1fr) auto;
  gap:12px;
  align-items:end;
}

.fd-review-form .fd-actions{
  margin-top:0;
}

.fd-review-notes textarea{
  min-height:72px;
}

.fd-submission-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,360px);
  gap:16px;
  align-items:start;
}

.fd-submission-main{
  min-width:0;
}

.fd-submission-side{
  display:grid;
  gap:14px;
  position:sticky;
  top:86px;
}

.fd-compact-stat-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:10px;
  margin-bottom:14px;
}

.fd-compact-stat{
  min-height:76px;
  padding:12px 14px;
}

.fd-compact-stat strong{
  display:block;
  font-size:24px;
  line-height:1;
  color:#111827;
}

.fd-compact-stat span{
  display:block;
  margin-top:7px;
  color:#536575;
  font-size:12px;
  font-weight:900;
}

@media (max-width:980px){
  .fd-review-form,
  .fd-submission-layout{
    grid-template-columns:1fr;
  }

  .fd-submission-side{
    position:static;
  }

  .fd-home-priority-actions{
    grid-template-columns:1fr;
  }

  .fd-dashboard-snapshot{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .fd-dashboard-stats-strip{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .fd-dashboard-panels{
    grid-template-columns:1fr;
  }

  .fd-stats-upload-card{
    grid-template-columns:1fr;
  }

  .fd-home-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .fd-admin-filters{
    gap:8px;
  }

  .fd-admin-filters .fd-field{
    min-width:140px;
  }

  .fd-qc-tracker-head,
  .fd-qc-tracker-grid{
    grid-template-columns:1fr;
    display:grid;
  }

  .fd-progress-row{
    grid-template-columns:1fr;
  }

  .fd-progress-row em{
    text-align:left;
  }
}

@media (max-width:760px){
  .fd-topbar{
    position:relative;
    padding:12px 16px;
  }

  .fd-home-hero,
  .fd-home-support,
  .fd-home-grid{
    grid-template-columns:1fr;
  }

  .fd-home-hero{
    padding:20px;
  }

  .fd-home-hero h1{
    font-size:28px;
  }

  .fd-home-hero p{
    font-size:15px;
  }

  .fd-dashboard-snapshot,
  .fd-dashboard-stats-strip,
  .fd-dashboard-tool-list{
    grid-template-columns:1fr;
  }

  .fd-admin-top-actions{
    justify-content:flex-start;
  }

  .fd-duplicate-panel-head{
    flex-direction:column;
  }

  .fd-week-details summary,
  .fd-month-details > summary{
    align-items:flex-start;
    flex-wrap:wrap;
  }

  .fd-tool-tile{
    min-height:0;
  }

  .fd-stepper{
    grid-template-columns:1fr;
  }

  .fd-step{
    justify-content:flex-start;
  }

  .fd-step-actions{
    margin:22px -18px -18px;
    padding:12px 18px;
    justify-content:stretch;
  }

  .fd-step-actions .fd-btn{
    flex:1 1 140px;
  }

  .fd-qc-photo-grid{
    grid-template-columns:1fr;
  }

  .fd-admin-filters{
    flex-direction:column;
  }

  .fd-admin-filters .fd-field,
  .fd-admin-filters .fd-field:first-child{
    min-width:0;
    max-width:100%;
    width:100%;
  }

  .fd-confirmation-top{
    grid-template-columns:1fr;
  }
}

.fd-survey-qr-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(240px,340px);
  gap:24px;
  align-items:center;
}

.fd-survey-qr-copy h2{
  margin:6px 0 10px;
  color:#111827;
  font-size:30px;
}

.fd-survey-link-text{
  margin-top:16px;
  border:1px solid var(--line-soft);
  background:#f8fafc;
  border-radius:8px;
  padding:12px;
  color:#0f4f4b;
  font-weight:800;
  overflow-wrap:anywhere;
}

.fd-survey-qr-box{
  border:1px solid #b7d8d4;
  background:#f1fbf8;
  border-radius:8px;
  padding:18px;
  text-align:center;
}

.fd-survey-qr-box img{
  display:block;
  width:100%;
  max-width:300px;
  height:auto;
  margin:0 auto 14px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  padding:10px;
}

.fd-survey-qr-box strong,
.fd-survey-qr-box span{
  display:block;
  color:#111827;
  font-weight:900;
}

.fd-survey-context{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:18px;
}

.fd-survey-context span{
  border:1px solid #b7d8d4;
  background:#effaf7;
  border-radius:999px;
  color:#0f4f4b;
  font-size:13px;
  font-weight:900;
  padding:7px 10px;
}

.fd-survey-rating-grid,
.fd-survey-rating-detail-grid,
.fd-survey-score-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:14px;
  margin-bottom:18px;
}

.fd-survey-rating-field{
  border:1px solid var(--line-soft);
  background:#fbfcfd;
  border-radius:8px;
  padding:12px;
}

.fd-inline-check{
  display:flex;
  gap:10px;
  align-items:flex-start;
  color:#1f2937;
  font-weight:800;
}

.fd-inline-check input{
  width:auto;
  margin-top:2px;
}

.fd-muted-field{
  opacity:.55;
}

.fd-survey-score-card{
  display:flex;
  min-height:150px;
  flex-direction:column;
  justify-content:space-between;
}

.fd-dashboard-survey-grid{
  margin-bottom:24px;
}

.fd-survey-score-head,
.fd-survey-detail-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}

.fd-survey-score-head h3,
.fd-survey-detail-head h2{
  margin:4px 0 0;
  color:#111827;
}

.fd-survey-score-head strong,
.fd-survey-detail-head strong{
  color:#0f4f4b;
  font-size:26px;
  line-height:1;
  white-space:nowrap;
}

.fd-score-bar{
  height:10px;
  overflow:hidden;
  border-radius:999px;
  background:#e5e7eb;
}

.fd-score-bar span{
  display:block;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg,#156c67,#2f9a8d);
}

.fd-survey-score-meta{
  display:flex;
  justify-content:space-between;
  gap:10px;
  color:#536575;
  font-size:13px;
  font-weight:800;
}

.fd-survey-rating-detail{
  min-height:112px;
}

.fd-survey-rating-detail span{
  display:block;
  color:#536575;
  font-weight:900;
  margin-bottom:8px;
}

.fd-survey-rating-detail strong{
  display:block;
  color:#111827;
  font-size:28px;
  margin-bottom:12px;
}

.fd-prewrap{
  white-space:pre-wrap;
}

.fd-qc-report-hero{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
  margin-bottom:16px;
}

.fd-qc-report-hero h2{
  margin:4px 0 8px;
  color:#111827;
  font-size:28px;
}

.fd-qc-report-hero p{
  margin:0;
  color:#536575;
  line-height:1.45;
}

.fd-qc-report-hero strong{
  color:#0f4f4b;
  font-size:44px;
  line-height:1;
}

@media(max-width:760px){
  .fd-survey-qr-card,
  .fd-survey-score-head,
  .fd-survey-detail-head,
  .fd-qc-report-hero{
    grid-template-columns:1fr;
    display:grid;
  }

  .fd-survey-score-head strong,
  .fd-survey-detail-head strong{
    white-space:normal;
  }
}

@media print{
  .fd-topbar,
  .fd-print-quiet,
  .fd-alert{
    display:none!important;
  }

  .fd-shell{
    max-width:none!important;
    padding:0!important;
  }

  .fd-survey-qr-card{
    box-shadow:none!important;
    grid-template-columns:1fr;
    min-height:100vh;
    align-content:center;
  }
}

/* ── Billing type tab bar ─────────────────────── */
.fd-tab-bar{
  display:flex;
  gap:8px;
  margin-bottom:16px;
  flex-wrap:wrap;
}
.fd-tab{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 18px;
  font-size:13px;
  font-weight:500;
  color:#536575;
  text-decoration:none;
  border-radius:6px;
  border:1.5px solid #d0d8e0;
  background:#fff;
  transition:background 0.12s,color 0.12s,border-color 0.12s;
  cursor:pointer;
}
.fd-tab:hover{
  background:#f0f4f7;
  border-color:#9aadb8;
  color:#1a3a52;
}
.fd-tab.is-active{
  background:#1a3a52;
  border-color:#1a3a52;
  color:#fff;
  font-weight:600;
}
.fd-tab-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:20px;
  padding:1px 7px;
  font-size:11px;
  font-weight:700;
  background:rgba(0,0,0,0.15);
  color:inherit;
  border-radius:999px;
}
.fd-tab.is-active .fd-tab-count{
  background:rgba(255,255,255,0.25);
  color:#fff;
}


/* ── Mobile nav polish ─────────────────────────────────────────── */
@media (max-width:760px){
  .fd-nav{
    gap:4px;
  }
  .fd-nav a{
    padding:8px 10px;
    font-size:13px;
    background:#f4f6f5;
    border:1px solid var(--line-soft);
  }
  .fd-nav a:hover,
  .fd-nav a.is-active{
    background:var(--primary-soft);
    border-color:#b0d4d0;
  }
}

/* ── Section title polish ─────────────────────────────────────── */
.fd-home-section-title h2{
  font-size:20px;
  color:#17212b;
}

.fd-home-section-title p{
  font-size:14px;
}

/* ── Feature action refined ───────────────────────────────────── */
.fd-feature-action strong{
  font-size:26px;
}

/* ── Tool tile refined ────────────────────────────────────────── */
.fd-tool-tile strong{
  font-size:17px;
}

.fd-tool-tile{
  min-height:160px;
}

/* ── Training Filter Bar (single unified row) ─────────────────────── */
.fd-training-filterbar {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 8px 12px;
  margin-bottom: 16px;
  box-shadow: var(--shadow);
  flex-wrap: nowrap;
}
.fd-filterbar-tabs {
  display: flex;
  gap: 6px;
  flex-shrink: 0;
}
.fd-filterbar-tabs .fd-carrier-tab {
  padding: 6px 14px;
  font-size: 13px;
}
.fd-filterbar-divider {
  width: 1px;
  height: 28px;
  background: var(--line);
  flex-shrink: 0;
  margin: 0 4px;
}
.fd-filterbar-search {
  position: relative;
  flex: 1;
  min-width: 0;
}
.fd-filterbar-icon {
  position: absolute;
  left: 9px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 13px;
  pointer-events: none;
}
.fd-filterbar-search input {
  width: 100%;
  padding: 7px 28px 7px 30px;
  border: 1px solid var(--line);
  border-radius: 7px;
  font: inherit;
  font-size: 13px;
  background: #f8fafc;
  box-sizing: border-box;
  transition: border-color .15s, box-shadow .15s;
}
.fd-filterbar-search input:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(31,79,130,.1);
  background: #fff;
}
.fd-filterbar-clear {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 12px;
  color: var(--muted);
  text-decoration: none;
  line-height: 1;
}
.fd-filterbar-select {
  padding: 7px 10px;
  border: 1px solid var(--line);
  border-radius: 7px;
  font: inherit;
  font-size: 13px;
  background: #f8fafc;
  flex-shrink: 0;
  max-width: 160px;
}
@media (max-width: 700px) {
  .fd-training-filterbar {
    flex-wrap: wrap;
    gap: 8px;
  }
  .fd-filterbar-tabs { width: 100%; }
  .fd-filterbar-divider { display: none; }
  .fd-filterbar-search { width: 100%; }
  .fd-filterbar-select { width: 100%; max-width: 100%; }
}

/* ── Training Hero Header ─────────────────────────────────────────── */
.fd-training-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  background: #fff;
  border: 1px solid var(--line);
  border-left: 5px solid var(--primary);
  border-radius: var(--radius);
  padding: 22px 26px;
  box-shadow: var(--shadow);
  margin-bottom: 14px;
}
.fd-training-hero h1 {
  margin: 0;
  font-size: 26px;
  color: #111827;
}
.fd-training-hero p {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.5;
}
.fd-training-hero-stats {
  display: flex;
  gap: 10px;
  flex-shrink: 0;
}
.fd-training-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: var(--primary-soft);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 10px 16px;
  min-width: 60px;
}
.fd-training-stat strong {
  font-size: 22px;
  font-weight: 800;
  color: var(--primary);
  line-height: 1;
}
.fd-training-stat span {
  font-size: 11px;
  color: var(--muted);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .4px;
  margin-top: 3px;
  white-space: nowrap;
}

/* ── Onboarding Banner ────────────────────────────────────────────── */
.fd-onboard-banner {
  display: flex;
  align-items: center;
  gap: 8px;
  background: linear-gradient(135deg, #f0f7ff 0%, #e8f0f8 100%);
  border: 1px solid #c3d9f0;
  border-left: 5px solid var(--primary);
  border-radius: var(--radius);
  padding: 14px 18px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}
.fd-onboard-step {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 180px;
}
.fd-onboard-num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--primary);
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  flex-shrink: 0;
}
.fd-onboard-step div {
  display: flex;
  flex-direction: column;
}
.fd-onboard-step strong {
  font-size: 13px;
  color: #111827;
  font-weight: 700;
}
.fd-onboard-step span {
  font-size: 12px;
  color: var(--muted);
  margin-top: 1px;
}
.fd-onboard-divider {
  font-size: 16px;
  color: #9ca3af;
  flex-shrink: 0;
  padding: 0 2px;
}

/* ── Category Nav Pills ───────────────────────────────────────────── */
.fd-training-cat-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
}
.fd-training-cat-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 13px;
  background: #fff;
  border: 1.5px solid var(--cat-accent, var(--line));
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  color: var(--cat-accent, var(--text));
  text-decoration: none;
  transition: background .12s, color .12s;
  white-space: nowrap;
}
.fd-training-cat-pill:hover {
  background: var(--cat-accent, var(--primary));
  color: #fff;
}
.fd-training-cat-pill-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  border-radius: 999px;
  background: rgba(0,0,0,.1);
  font-size: 11px;
  font-weight: 700;
  padding: 0 4px;
}

/* ── Section Headers ──────────────────────────────────────────────── */
.fd-training-section {
  margin-bottom: 12px;
  scroll-margin-top: 80px;
}
.fd-training-section-header {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  background: #fff;
  border: 1px solid var(--line);
  border-left: 4px solid var(--cat-accent, var(--primary));
  border-radius: var(--radius);
  padding: 13px 16px;
  cursor: pointer;
  font: inherit;
  text-align: left;
  transition: background .12s;
  box-shadow: 0 1px 3px rgba(15,23,42,.04);
}
.fd-training-section-header:hover { background: #f8fafc; }
.fd-training-section-icon { font-size: 17px; flex-shrink: 0; }
.fd-training-section-title {
  font-size: 15px;
  font-weight: 700;
  color: #111827;
  flex-shrink: 0;
}
.fd-training-section-desc {
  flex: 1;
  font-size: 12px;
  color: var(--muted);
  font-weight: 400;
  padding-left: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.fd-training-section-count {
  font-size: 12px;
  color: var(--muted);
  background: #f1f5f9;
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: 2px 10px;
  font-weight: 600;
  flex-shrink: 0;
}
.fd-training-section-chevron {
  font-size: 13px;
  color: var(--muted);
  transition: transform .2s;
  flex-shrink: 0;
}
.fd-training-section-header.is-collapsed .fd-training-section-chevron { transform: rotate(-90deg); }
.fd-training-section-body { overflow: hidden; padding-top: 10px; }
.fd-training-section-body.is-collapsed { display: none; }

/* ── Training Cards ───────────────────────────────────────────────── */
.fd-training-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 12px;
}
.fd-training-card {
  display: flex;
  flex-direction: column;
  padding: 15px 16px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: 0 1px 3px rgba(15,23,42,.05);
  transition: box-shadow .15s, border-color .15s;
}
.fd-training-card:hover {
  box-shadow: 0 4px 12px rgba(15,23,42,.09);
  border-color: #c3d4e8;
}
.fd-training-card--pinned {
  border-color: #d8b35d;
  background: linear-gradient(180deg, #fffef8 0%, #fff 100%);
}
.fd-training-card-top { margin-bottom: 8px; }
.fd-training-card-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  align-items: center;
}
.fd-training-card-title {
  margin: 0 0 8px;
  font-size: 14px;
  font-weight: 700;
  color: #111827;
  line-height: 1.35;
}
.fd-type-badge {
  display: inline-flex;
  align-items: center;
  border-radius: 5px;
  padding: 3px 8px;
  font-size: 11px;
  font-weight: 700;
}
.fd-training-copy,
.fd-training-description {
  color: #374151;
  line-height: 1.5;
  font-size: 13px;
  margin-bottom: 10px;
  flex: 1;
}
.fd-training-actions {
  margin-top: auto;
  padding-top: 10px;
  border-top: 1px solid #f1f5f9;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.fd-btn-video    { background: #7c3aed; border-color: #7c3aed; color: #fff; }
.fd-btn-video:hover { background: #6d28d9; }
.fd-btn-download { background: #0f766e; border-color: #0f766e; color: #fff; }
.fd-btn-download:hover { background: #0d6660; }

/* ── Results Notice ───────────────────────────────────────────────── */
.fd-training-results-notice {
  font-size: 13px;
  color: var(--muted);
  padding: 6px 0 4px;
  margin-bottom: 8px;
}
.fd-training-results-notice strong { color: var(--text); }
.fd-training-results-notice em { color: var(--primary); font-style: normal; font-weight: 600; }

/* ── Responsive ───────────────────────────────────────────────────── */
@media (max-width: 700px) {
  .fd-training-hero { flex-direction: column; align-items: flex-start; gap: 14px; }
  .fd-training-hero-stats { width: 100%; justify-content: space-between; }
  .fd-onboard-banner { flex-direction: column; }
  .fd-onboard-divider { transform: rotate(90deg); align-self: center; }
  .fd-training-section-desc { display: none; }
  .fd-training-grid { grid-template-columns: 1fr; }
}

/* ── Survey Detail — Print / Save PDF (single page) ──────────────── */
@media print {
  /* Hide all chrome */
  .fd-topbar,
  .fd-footer,
  .fd-admin-top,
  .fd-alert,
  .fd-print-quiet,
  .fd-btn,
  .fd-actions {
    display: none !important;
  }

  /* Remove shell padding/max-width so content fills the page */
  body { background: #fff !important; margin: 0 !important; }
  .fd-shell { max-width: none !important; padding: 6px 12px !important; }

  /* Tighten cards */
  .fd-card {
    box-shadow: none !important;
    border: 1px solid #d1d5db !important;
    break-inside: avoid;
    margin-bottom: 8px !important;
    padding: 10px 12px !important;
  }

  /* Header card: put name + score side by side, reduce font */
  .fd-survey-detail-head {
    padding: 8px 0 !important;
    gap: 8px !important;
  }
  .fd-survey-detail-head h2 { font-size: 16px !important; margin: 0 !important; }
  .fd-survey-detail-head strong { font-size: 18px !important; }
  .fd-section-kicker { font-size: 10px !important; }

  /* Rating grid: force 3 columns and shrink cards */
  .fd-survey-rating-detail-grid {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 6px !important;
    margin-bottom: 8px !important;
  }
  .fd-survey-rating-detail {
    min-height: 0 !important;
    padding: 8px 10px !important;
  }
  .fd-survey-rating-detail span {
    font-size: 10px !important;
    margin-bottom: 4px !important;
  }
  .fd-survey-rating-detail strong {
    font-size: 18px !important;
    margin-bottom: 6px !important;
  }
  .fd-score-bar { height: 6px !important; }

  /* Customer feedback: 2-column detail grid, compact */
  .fd-detail-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 6px 16px !important;
  }
  .fd-detail-grid div strong { font-size: 10px !important; }
  .fd-detail-grid div span  { font-size: 12px !important; }

  /* Section headings */
  h2 { font-size: 13px !important; margin: 0 0 6px !important; }
  h3 { font-size: 12px !important; margin: 6px 0 4px !important; }
  hr { margin: 6px 0 !important; }
  p  { font-size: 12px !important; margin: 0 !important; }
}

/* ═══════════════════════════════════════════════════════════════════
   SURVEY PRINT DOCUMENT
═══════════════════════════════════════════════════════════════════ */

/* Hide print doc on screen, show screen cards normally */
.fd-survey-print-doc { display: none; }
/* fd-print-hide: visible on screen by default (no rule needed), hidden only in print */

@media print {
  /* Hide everything except the print doc */
  .fd-topbar,
  .fd-footer,
  .fd-admin-top,
  .fd-alert,
  .fd-print-hide { display: none !important; }

  .fd-shell { max-width: none !important; padding: 0 !important; margin: 0 !important; }
  body { background: #fff !important; margin: 0 !important; }

  /* Show the print doc */
  .fd-survey-print-doc {
    display: block !important;
    font-family: 'Helvetica Neue', Arial, sans-serif;
    font-size: 11px;
    color: #111827;
    padding: 18px 22px;
    max-width: 100%;
  }

  /* ── Branded header ── */
  .fd-svp-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 3px solid #1f4f82;
    padding-bottom: 10px;
    margin-bottom: 12px;
  }
  .fd-svp-header-brand { display: flex; align-items: center; gap: 10px; }
  .fd-svp-logo {
    width: 38px; height: 38px;
    background: #1f4f82;
    color: #fff;
    font-size: 13px;
    font-weight: 900;
    display: flex; align-items: center; justify-content: center;
    border-radius: 6px;
    letter-spacing: -0.5px;
  }
  .fd-svp-company { font-size: 13px; font-weight: 800; color: #111827; }
  .fd-svp-doc-title { font-size: 10px; color: #6b7280; margin-top: 1px; text-transform: uppercase; letter-spacing: .5px; }
  .fd-svp-header-meta { display: flex; gap: 20px; }
  .fd-svp-header-meta div { display: flex; flex-direction: column; align-items: flex-end; }
  .fd-svp-header-meta span { font-size: 9px; text-transform: uppercase; color: #9ca3af; letter-spacing: .4px; }
  .fd-svp-header-meta strong { font-size: 11px; color: #111827; margin-top: 1px; }

  /* ── Tech + Score row ── */
  .fd-svp-tech-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 10px 14px;
    margin-bottom: 12px;
  }
  .fd-svp-tech-label { font-size: 9px; text-transform: uppercase; color: #9ca3af; letter-spacing: .4px; margin-bottom: 2px; }
  .fd-svp-tech-name  { font-size: 16px; font-weight: 800; color: #111827; }
  .fd-svp-tech-sub   { font-size: 10px; color: #6b7280; margin-top: 2px; }
  .fd-svp-score-badge {
    text-align: center;
    background: #fff;
    border: 2px solid var(--score-color, #1f4f82);
    border-radius: 10px;
    padding: 8px 18px;
  }
  .fd-svp-score-num  { font-size: 22px; font-weight: 900; color: var(--score-color, #1f4f82); line-height: 1; }
  .fd-svp-score-sub  { font-size: 9px; text-transform: uppercase; color: #9ca3af; letter-spacing: .4px; margin-top: 3px; }

  /* ── Section title ── */
  .fd-svp-section-title {
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .6px;
    color: #1f4f82;
    border-bottom: 1px solid #e5e7eb;
    padding-bottom: 4px;
    margin-bottom: 8px;
  }

  /* ── Ratings ── */
  .fd-svp-ratings { margin-bottom: 14px; }
  .fd-svp-rating-item { margin-bottom: 6px; }
  .fd-svp-rating-label {
    font-size: 10px;
    font-weight: 700;
    color: #374151;
    margin-bottom: 3px;
  }
  .fd-svp-rating-row {
    display: flex;
    align-items: center;
    gap: 8px;
  }
  .fd-svp-rating-bar-wrap {
    flex: 1;
    height: 8px;
    background: #f3f4f6;
    border-radius: 999px;
    overflow: hidden;
  }
  .fd-svp-rating-bar {
    height: 100%;
    border-radius: 999px;
    transition: none;
  }
  .fd-svp-rating-val {
    font-size: 13px;
    font-weight: 900;
    width: 16px;
    text-align: right;
    flex-shrink: 0;
  }
  .fd-svp-rating-opt {
    font-size: 10px;
    color: #6b7280;
    width: 56px;
    flex-shrink: 0;
  }

  /* ── Bottom: customer + comments side by side ── */
  .fd-svp-bottom {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-bottom: 14px;
  }
  .fd-svp-customer-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px 12px;
  }
  .fd-svp-field span {
    display: block;
    font-size: 9px;
    text-transform: uppercase;
    color: #9ca3af;
    letter-spacing: .4px;
    margin-bottom: 1px;
  }
  .fd-svp-field strong {
    display: block;
    font-size: 11px;
    color: #111827;
    font-weight: 600;
  }
  .fd-svp-comments-body {
    font-size: 11px;
    color: #374151;
    line-height: 1.5;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 8px 10px;
    min-height: 50px;
  }
  .fd-svp-no-comments { color: #9ca3af; font-style: italic; }

  /* ── Footer ── */
  .fd-svp-footer {
    display: flex;
    justify-content: space-between;
    border-top: 1px solid #e5e7eb;
    padding-top: 6px;
    font-size: 8px;
    color: #9ca3af;
  }
}
