/* ============================================================
   Villa Plumbing Field Portal — Fleet Management (foundation)
   Build marker: Fleet Management Foundation May 14

   Empty-shell module styles. Active-looking elements must route or
   explain; passive items render flat / muted so users don't mistake
   them for live controls.
   ============================================================ */

#vFleetManagement{
  display:none;
  padding:18px 14px 80px;
  max-width:1100px;
  margin:0 auto;
  color:var(--tx, #1a2e2b);
}
#vFleetManagement.fm-show{display:block;}

/* When the Fleet working area is active, make sure no peer view shows
   behind it. Mirrors the data-fm-active body flag the shell sets on
   open() and clears on close(). */
body[data-fm-active="1"] #vHome,
body[data-fm-active="1"] #vPlanHub,
body[data-fm-active="1"] #vService,
body[data-fm-active="1"] #vScheduler,
body[data-fm-active="1"] #vProjects,
body[data-fm-active="1"] #vCategory{
  display:none !important;
}

/* Sticky working-area bar — pins a clear "Fleet Management" label and
   a Back to Home action above the hero so the user always knows they
   are inside a dedicated working area, not an inline placeholder. */
.fm-workarea-bar{
  position:sticky;
  top:0;
  z-index:5;
  display:flex;
  align-items:center;
  gap:12px;
  background:var(--white, #fff);
  border:1px solid var(--bd, #d8e8e5);
  border-radius:12px;
  padding:8px 10px;
  margin-bottom:10px;
  box-shadow:0 2px 10px rgba(20,19,16,.06);
}
.fm-workarea-title{
  font-family:'Barlow Condensed', sans-serif;
  font-size:13px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--navy, #141310);
  font-weight:700;
}
.fm-back-btn{
  background:var(--navy, #141310);
}
.fm-back-btn:hover{background:var(--navy-md, #1A1916);}

/* Section nav — three active jump buttons that scroll/expand each
   active foundation panel. Sits directly under the hero so the user's
   first interaction lands on real work, not a passive "Coming next"
   list. */
.fm-section-nav{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:14px;
}
.fm-section-jump{
  flex:1 1 220px;
  justify-content:center;
}
[data-fm-highlighted="1"]{
  outline:3px solid var(--amber, #e9c46a);
  outline-offset:2px;
  transition:outline-color .3s ease;
}

.fm-hero{
  background:linear-gradient(135deg, var(--navy, #141310), var(--navy-md, #1A1916));
  color:#fff;
  border-radius:18px;
  padding:22px 22px 24px;
  margin-bottom:18px;
  box-shadow:0 8px 24px rgba(20,19,16,.12);
}
.fm-hero-eyebrow{
  display:inline-block;
  font-family:'Barlow Condensed', sans-serif;
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  background:rgba(233,196,106,.18);
  color:#e9c46a;
  padding:4px 10px;
  border-radius:999px;
  margin-bottom:10px;
}
.fm-hero h1{
  font-family:'Barlow Condensed', sans-serif;
  font-size:28px;
  font-weight:700;
  margin:0 0 6px;
  letter-spacing:.01em;
}
.fm-hero p{
  font-size:14px;
  line-height:1.55;
  color:#cfe2dd;
  margin:0 0 4px;
  max-width:760px;
}

.fm-section{
  background:var(--white, #fff);
  border:1px solid var(--bd, #d8e8e5);
  border-radius:14px;
  padding:16px 18px;
  margin-bottom:14px;
}
.fm-section h2{
  font-family:'Barlow Condensed', sans-serif;
  font-size:18px;
  font-weight:700;
  margin:0 0 8px;
  color:var(--navy, #141310);
}
.fm-section p{
  font-size:13px;
  line-height:1.55;
  color:var(--tx-md, #4a6b65);
  margin:0 0 6px;
}

/* Passive item — preview-only, not a button. Deliberately flat. */
.fm-passive-row{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:10px 12px;
  border:1px dashed var(--bd, #d8e8e5);
  border-radius:10px;
  background:var(--bd-lt, #eef4f3);
  color:var(--tx-md, #4a6b65);
  margin:6px 0;
  cursor:default;
  user-select:text;
}
.fm-passive-row[aria-disabled="true"]{opacity:.85;}
.fm-passive-ic{
  font-size:18px;
  line-height:1;
  flex:0 0 auto;
}
.fm-passive-body{flex:1 1 auto;}
.fm-passive-title{
  font-weight:600;
  font-size:13.5px;
  color:var(--navy, #141310);
  margin-bottom:2px;
}
.fm-passive-note{
  font-size:12px;
  color:var(--tx-md, #4a6b65);
}
.fm-passive-tag{
  display:inline-block;
  font-family:'Barlow Condensed', sans-serif;
  font-size:10px;
  letter-spacing:.14em;
  text-transform:uppercase;
  background:#fff;
  border:1px solid var(--bd, #d8e8e5);
  color:var(--tx-lt, #8aada8);
  padding:2px 8px;
  border-radius:999px;
  margin-left:8px;
}

/* Active control — used only for the explicit "Back to Home" button. */
.fm-active-btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:var(--teal, #FF6B00);
  color:#fff;
  font-family:'Barlow Condensed', sans-serif;
  font-size:14px;
  font-weight:700;
  border:none;
  border-radius:10px;
  padding:10px 16px;
  cursor:pointer;
  transition:background .15s;
}
.fm-active-btn:hover{background:var(--teal-dk, #D95A00);}

.fm-future-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:10px;
  margin-top:8px;
}

/* Insurance & Driver Compliance — foundation panel. */
.fm-secondary-btn{
  background:var(--navy, #141310);
}
.fm-secondary-btn:hover{
  background:var(--navy-md, #1A1916);
}
.fm-compliance-panel{
  margin-top:14px;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.fm-compliance-panel[hidden]{display:none;}
.fm-compliance-block{
  border:1px solid var(--bd, #d8e8e5);
  border-radius:12px;
  padding:12px 14px;
  background:var(--bd-lt, #eef4f3);
}
.fm-compliance-block h3{
  font-family:'Barlow Condensed', sans-serif;
  font-size:15px;
  font-weight:700;
  margin:0 0 4px;
  color:var(--navy, #141310);
}
.fm-compliance-note{
  font-size:12.5px;
  line-height:1.5;
  color:var(--tx-md, #4a6b65);
  margin:0 0 8px;
}
.fm-compliance-list{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.fm-compliance-footer{
  font-size:11.5px;
  line-height:1.5;
  color:var(--tx-lt, #8aada8);
  margin:4px 0 0;
}
[data-fm-advisory="1"]{
  background:rgba(233,196,106,.16);
  border-left:3px solid var(--amber, #e9c46a);
  padding:8px 10px;
  border-radius:0 8px 8px 0;
  font-size:12.5px;
  color:var(--tx, #1a2e2b);
}

/* Maintenance, Repair & Downtime — foundation panel. */
.fm-maintenance-panel{
  margin-top:14px;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.fm-maintenance-panel[hidden]{display:none;}
.fm-maintenance-block{
  border:1px solid var(--bd, #d8e8e5);
  border-radius:12px;
  padding:12px 14px;
  background:var(--bd-lt, #eef4f3);
}
.fm-maintenance-block h3{
  font-family:'Barlow Condensed', sans-serif;
  font-size:15px;
  font-weight:700;
  margin:0 0 4px;
  color:var(--navy, #141310);
}
.fm-maintenance-note{
  font-size:12.5px;
  line-height:1.5;
  color:var(--tx-md, #4a6b65);
  margin:0 0 8px;
}
.fm-maintenance-list{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.fm-maintenance-footer{
  font-size:11.5px;
  line-height:1.5;
  color:var(--tx-lt, #8aada8);
  margin:4px 0 0;
}

/* Fuel & Mileage Monitoring — foundation panel. */
.fm-fuel-panel{
  margin-top:14px;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.fm-fuel-panel[hidden]{display:none;}
.fm-fuel-block{
  border:1px solid var(--bd, #d8e8e5);
  border-radius:12px;
  padding:12px 14px;
  background:var(--bd-lt, #eef4f3);
}
.fm-fuel-block h3{
  font-family:'Barlow Condensed', sans-serif;
  font-size:15px;
  font-weight:700;
  margin:0 0 4px;
  color:var(--navy, #141310);
}
.fm-fuel-note{
  font-size:12.5px;
  line-height:1.5;
  color:var(--tx-md, #4a6b65);
  margin:0 0 8px;
}
.fm-fuel-list{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.fm-fuel-footer{
  font-size:11.5px;
  line-height:1.5;
  color:var(--tx-lt, #8aada8);
  margin:4px 0 0;
}

/* Fleet Analyzer & Truck Scorecard — foundation panel. */
.fm-analyzer-panel{
  margin-top:14px;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.fm-analyzer-panel[hidden]{display:none;}
.fm-analyzer-block{
  border:1px solid var(--bd, #d8e8e5);
  border-radius:12px;
  padding:12px 14px;
  background:var(--bd-lt, #eef4f3);
}
.fm-analyzer-block h3{
  font-family:'Barlow Condensed', sans-serif;
  font-size:15px;
  font-weight:700;
  margin:0 0 4px;
  color:var(--navy, #141310);
}
.fm-analyzer-note{
  font-size:12.5px;
  line-height:1.5;
  color:var(--tx-md, #4a6b65);
  margin:0 0 8px;
}
.fm-analyzer-list{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.fm-analyzer-footer{
  font-size:11.5px;
  line-height:1.5;
  color:var(--tx-lt, #8aada8);
  margin:4px 0 0;
}
.fm-analyzer-readiness-note{
  margin-top:4px;
  font-style:italic;
}

/* Vehicle & Driver Records — foundation entry workflows. */
.fm-records-panel{
  margin-top:14px;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.fm-records-panel[hidden]{display:none;}
.fm-records-block{
  border:1px solid var(--bd, #d8e8e5);
  border-radius:12px;
  padding:12px 14px;
  background:var(--bd-lt, #eef4f3);
}
.fm-records-block h3{
  font-family:'Barlow Condensed', sans-serif;
  font-size:15px;
  font-weight:700;
  margin:0 0 4px;
  color:var(--navy, #141310);
}
.fm-records-note{
  font-size:12.5px;
  line-height:1.5;
  color:var(--tx-md, #4a6b65);
  margin:0 0 8px;
}
.fm-records-form{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));
  gap:8px 10px;
  background:#fff;
  border:1px solid var(--bd, #d8e8e5);
  border-radius:10px;
  padding:10px 12px;
  margin-bottom:10px;
}
.fm-records-label{
  display:flex;
  flex-direction:column;
  gap:4px;
  font-size:12px;
  color:var(--tx-md, #4a6b65);
}
.fm-records-label-wide{
  grid-column:1 / -1;
}
.fm-records-label-checkbox{
  flex-direction:row;
  align-items:center;
  gap:8px;
}
.fm-records-label input[type="text"],
.fm-records-label input[type="number"],
.fm-records-label input[type="date"],
.fm-records-label select,
.fm-records-label textarea{
  border:1px solid var(--bd, #d8e8e5);
  border-radius:6px;
  padding:6px 8px;
  font:inherit;
  background:#fff;
  color:var(--tx, #1a2e2b);
}
.fm-records-label em{
  color:var(--teal, #FF6B00);
  font-style:normal;
}
.fm-records-form-actions{
  grid-column:1 / -1;
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.fm-records-form-msg{
  font-size:12px;
  color:var(--tx-md, #4a6b65);
}
.fm-records-form-msg[data-fm-records-state="ok"]{
  color:var(--teal-dk, #D95A00);
}
.fm-records-form-msg[data-fm-records-state="error"]{
  color:#a14040;
}
.fm-records-list{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.fm-records-empty{
  font-size:12px;
  color:var(--tx-lt, #8aada8);
  padding:8px 10px;
  border:1px dashed var(--bd, #d8e8e5);
  border-radius:8px;
  background:#fff;
}
.fm-records-row{
  display:flex;
  gap:10px;
  padding:10px 12px;
  border:1px solid var(--bd, #d8e8e5);
  border-radius:10px;
  background:#fff;
}
.fm-records-row-ic{
  font-size:18px;
  line-height:1;
  flex:0 0 auto;
}
.fm-records-row-body{flex:1 1 auto;}
.fm-records-row-title{
  font-weight:600;
  font-size:13.5px;
  color:var(--navy, #141310);
  margin-bottom:6px;
}
.fm-records-tag{
  display:inline-block;
  font-family:'Barlow Condensed', sans-serif;
  font-size:10px;
  letter-spacing:.14em;
  text-transform:uppercase;
  background:var(--bd-lt, #eef4f3);
  border:1px solid var(--bd, #d8e8e5);
  color:var(--tx-lt, #8aada8);
  padding:2px 8px;
  border-radius:999px;
  margin-left:8px;
}
.fm-records-row-toggle{
  padding:4px 10px;
  font-size:12px;
}
.fm-records-details{
  margin-top:6px;
  padding:8px 10px;
  border:1px dashed var(--bd, #d8e8e5);
  border-radius:8px;
  background:var(--bd-lt, #eef4f3);
  font-size:12.5px;
  color:var(--tx, #1a2e2b);
  display:flex;
  flex-direction:column;
  gap:3px;
}
.fm-records-details[hidden]{display:none;}
.fm-records-details-note{
  margin-top:4px;
  font-style:italic;
  color:var(--tx-lt, #8aada8);
}
.fm-records-footer{
  font-size:11.5px;
  line-height:1.5;
  color:var(--tx-lt, #8aada8);
  margin:4px 0 0;
}

/* Lily Fleet Intake + Insurance dropzone + intake cards. */
.fm-dropzone{
  border:2px dashed var(--teal, #FF6B00);
  border-radius:10px;
  padding:14px;
  background:#f6fbfa;
  display:flex;
  flex-direction:column;
  gap:8px;
  align-items:flex-start;
}
.fm-dropzone[data-fm-dragover="1"]{
  background:#e0f3ee;
  border-color:var(--teal-dk, #D95A00);
}
.fm-dropzone-prompt{
  font-size:13px;
  line-height:1.5;
  color:var(--tx, #1a2e2b);
}
.fm-dropzone-status{
  font-size:12px;
  color:var(--tx-md, #4a6b65);
}
.fm-dropzone-status[data-fm-records-state="ok"]{
  color:var(--teal-dk, #D95A00);
}
.fm-intake-card{
  border-left:3px solid var(--teal, #FF6B00);
}
.fm-intake-card-heading{
  margin:0 0 4px 0;
  font-size:14px;
  line-height:1.3;
}
.fm-intake-terminal-note{
  margin:6px 0 0 0;
  font-size:12px;
  line-height:1.5;
  color:#5a5a5a;
}
.fm-intake-actions[data-fm-intake-terminal-state="1"] .fm-active-btn[disabled]{
  opacity:0.55;
  cursor:not-allowed;
}
.fm-intake-action-msg{
  margin-left:6px;
  font-size:12px;
}
.fm-intake-action-msg[data-fm-records-state="ok"]{ color:#D95A00; }
.fm-intake-action-msg[data-fm-records-state="error"]{ color:#b2362d; }
.fm-intake-action-msg[data-fm-records-state="info"]{ color:#555; }
.fm-intake-card[data-fm-intake-review="applied"]{
  border-left-color:#3b8f3b;
}
.fm-intake-card[data-fm-intake-review="needs_correction"]{
  border-left-color:#c97a1a;
}
.fm-intake-card[data-fm-intake-review="discarded"]{
  border-left-color:#9aaba8;
  opacity:.7;
}
.fm-intake-actions{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:6px;
}
.fm-intake-missing{
  margin:6px 0 0;
  padding-left:18px;
  font-size:12px;
  color:var(--tx-md, #4a6b65);
}
.fm-intake-next-step{
  margin-top:6px;
  font-size:11.5px;
  font-style:italic;
  color:var(--tx-lt, #8aada8);
}
