/* Platform shell on top of the Pricing Studio styles. */
.boot-note { padding: 3rem; text-align: center; color: var(--muted); }
#toasts { position: fixed; right: 1rem; bottom: 1rem; z-index: 2000; display: grid; gap: .5rem; max-width: min(420px, 92vw); }
.toast { padding: .75rem 1rem; border-radius: 16px; background: var(--fervo-graphite); color: #fff; font-size: .88rem; box-shadow: var(--shadow); }
.toast.error { background: var(--danger); }
.toast.ok { background: var(--fervo-deep); }

.login-wrap { position: relative; z-index: 1; min-height: 100vh; display: grid; place-items: center; padding: 1rem; }
.login-card { width: min(420px, 100%); padding: 1.6rem; border-radius: var(--radius-xl); background: rgba(255,255,255,.9); box-shadow: var(--shadow); display: grid; gap: .9rem; }
.login-card h1 { margin: 0; font-size: 1.5rem; color: var(--fervo-graphite); }
.brand-mark { display: inline-grid; place-items: center; width: 3rem; height: 3rem; border-radius: 16px; background: var(--fervo-deep); color: var(--fervo-lime); font-weight: 900; font-size: 1.5rem; }
.brand-card.plain { grid-template-columns: auto 1fr; align-items: center; gap: .75rem; }
.brand-card.plain h1 { font-size: 1.05rem; }
.side-panel .main-nav { overflow-y: auto; }
.side-panel .nav-item { width: 100%; }
.nav-group-label { margin: .7rem .4rem .2rem; color: var(--muted); font-size: .66rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.user-card { margin-top: auto; padding: .8rem; border: 1px solid var(--line); border-radius: 20px; background: rgba(255,255,255,.7); font-size: .82rem; display: grid; gap: .35rem; }
.user-card strong { color: var(--fervo-graphite); }
.user-card .muted { color: var(--muted); font-size: .76rem; }
.user-card .row { display: flex; gap: .4rem; flex-wrap: wrap; }
.offline-badge { display: none; padding: .3rem .6rem; border-radius: 999px; background: var(--warning); color: #7a5b00; font-size: .74rem; font-weight: 800; }
body.is-offline .offline-badge { display: inline-block; }
.mobile-bar, .menu-overlay { display: none; }

.page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin: .3rem .2rem 1rem; }
.page-head h2 { margin: .1rem 0 0; color: var(--fervo-graphite); font-size: clamp(1.3rem, 2.2vw, 1.8rem); }
.page-head p { margin: .3rem 0 0; color: var(--muted); max-width: 62ch; }
.page-head .actions { display: flex; gap: .5rem; flex-wrap: wrap; }
.panel + .panel { margin-top: 1rem; }
.toolbar { display: flex; gap: .6rem; flex-wrap: wrap; align-items: center; margin-bottom: .8rem; }
.toolbar .input, .toolbar .select { width: auto; min-width: 150px; }

.table-wrap { overflow-x: auto; }
table.grid { width: 100%; border-collapse: collapse; font-size: .88rem; }
table.grid th { text-align: left; padding: .55rem .6rem; color: var(--muted); font-size: .68rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; border-bottom: 1px solid var(--line-strong); white-space: nowrap; }
table.grid td { padding: .6rem; border-bottom: 1px solid var(--line); vertical-align: top; }
table.grid tr:hover td { background: rgba(5,154,163,.04); }
table.grid td.actions { white-space: nowrap; text-align: right; }
table.grid td.actions .btn { margin-left: .25rem; }
table.grid .sub { display: block; color: var(--muted); font-size: .78rem; }
.num { text-align: right; font-variant-numeric: tabular-nums; }

.badge { display: inline-block; padding: .16rem .6rem; border-radius: 999px; font-size: .72rem; font-weight: 800; background: var(--teal-soft); color: var(--fervo-deep); white-space: nowrap; }
.badge.new { background: var(--warning); color: #7a5b00; }
.badge.refused, .badge.inactive, .badge.failed { background: rgba(186,47,47,.12); color: var(--danger); }
.badge.assigned { background: var(--lime-soft); color: #5c6600; }
.badge.accepted, .badge.in_progress { background: var(--teal-soft); color: #04727a; }
.badge.surveyed, .badge.quoted, .badge.active { background: var(--success-soft); color: #2f6b1f; }
.role-tag { display: inline-block; margin: 0 .25rem .2rem 0; padding: .1rem .5rem; border-radius: 8px; background: rgba(81,85,81,.08); font-size: .72rem; font-weight: 700; }

.form-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-section { grid-column: 1 / -1; margin: .6rem 0 -.2rem; color: var(--fervo-deep); font-size: .72rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.checks { display: flex; flex-wrap: wrap; gap: .45rem; }
.check { display: inline-flex; align-items: center; gap: .4rem; padding: .42rem .7rem; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,255,255,.75); font-size: .85rem; cursor: pointer; }
.check input { accent-color: var(--fervo-deep); }
.check:has(input:checked) { border-color: rgba(19,50,77,.5); background: var(--success-soft); }
.modal-card.wide { width: min(980px, 96vw); }
.modal-card { max-height: min(90vh, 900px); }
.form-error { margin: .6rem 0 0; padding: .55rem .75rem; border-radius: 12px; background: rgba(186,47,47,.1); color: var(--danger); font-size: .86rem; white-space: pre-line; }
.hint { color: var(--muted); font-size: .78rem; line-height: 1.35; }
.note-box { padding: .7rem .9rem; border-radius: 16px; background: var(--warning); color: var(--fervo-graphite); font-size: .86rem; line-height: 1.4; }
.note-box.info { background: var(--teal-soft); }
pre.creds { padding: .8rem; border-radius: 14px; background: #f1f5f3; font-size: .9rem; white-space: pre-wrap; }

/* calendar */
.cal-head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .6rem; }
.cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.cal-dow { padding: .3rem; color: var(--muted); font-size: .68rem; font-weight: 850; text-transform: uppercase; text-align: center; }
.cal-day { min-height: 92px; padding: .3rem; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.7); font-size: .74rem; }
.cal-day.other { opacity: .45; }
.cal-day.today { border-color: var(--fervo-deep); box-shadow: inset 0 0 0 1px var(--fervo-deep); }
.cal-day .d { font-weight: 800; color: var(--fervo-graphite); }
.cal-job { display: block; width: 100%; margin-top: 3px; padding: .2rem .35rem; border: 0; border-radius: 8px; background: var(--teal-soft); color: #04616a; text-align: left; font: inherit; font-size: .7rem; line-height: 1.25; cursor: pointer; overflow: hidden; }
.cal-job.assigned { background: var(--lime-soft); color: #4e5700; }
.cal-job.surveyed, .cal-job.quoted { background: var(--success-soft); color: #2f6b1f; }
.cal-job b { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* job cards (surveyor) */
.job-list { display: grid; gap: .8rem; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.job-card { padding: 1rem; border: 1px solid var(--line); border-radius: 22px; background: rgba(255,255,255,.88); display: grid; gap: .5rem; }
.job-card h4 { margin: 0; color: var(--fervo-graphite); font-size: 1.02rem; }
.job-card dl { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: .2rem .7rem; font-size: .85rem; }
.job-card dt { color: var(--muted); }
.job-card dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.job-card .row { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: .3rem; }

/* survey form */
.survey-bar { position: sticky; top: .5rem; z-index: 20; display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; padding: .7rem .9rem; margin-bottom: 1rem; border-radius: 20px; background: rgba(255,255,255,.95); box-shadow: 0 10px 30px rgba(44,64,53,.14); }
.survey-bar .grow { flex: 1; min-width: 140px; font-size: .84rem; color: var(--muted); }
.survey-bar .grow strong { display: block; color: var(--fervo-graphite); font-size: .98rem; }
.btn.start { background: var(--fervo-deep); color: #fff; border-color: transparent; font-size: 1rem; padding: .7rem 1.4rem; }
.btn.stop { background: var(--danger); color: #fff; border-color: transparent; font-size: 1rem; padding: .7rem 1.4rem; }
.sv-block { margin-bottom: 1rem; }
.sv-block > .panel-heading { display: flex; align-items: center; justify-content: space-between; gap: .6rem; flex-wrap: wrap; }
.sv-block h3 { margin: 0; }
.sv-group { grid-column: 1 / -1; margin-top: .5rem; padding-top: .6rem; border-top: 1px dashed var(--line-strong); color: var(--fervo-deep); font-size: .74rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.sv-remind { margin-top: .8rem; padding: .65rem .85rem; border-radius: 14px; background: var(--teal-soft); font-size: .82rem; line-height: 1.45; }
.sv-remind ul { margin: .3rem 0 0; padding-left: 1.1rem; }
.seg { display: inline-flex; flex-wrap: wrap; gap: .3rem; }
.seg label { padding: .42rem .8rem; border: 1px solid var(--line-strong); border-radius: 999px; background: #fff; font-size: .85rem; cursor: pointer; text-transform: none; letter-spacing: 0; color: var(--ink); font-weight: 600; }
.seg input { position: absolute; opacity: 0; pointer-events: none; }
.seg label:has(input:checked) { background: var(--fervo-deep); border-color: var(--fervo-deep); color: #fff; }
.photo-grid { display: grid; gap: .7rem; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
.photo-card { border: 1px solid var(--line); border-radius: 18px; background: #fff; overflow: hidden; display: grid; }
.photo-card img { width: 100%; height: 170px; object-fit: cover; background: #e8eeeb; cursor: zoom-in; }
.photo-card .body { padding: .6rem; display: grid; gap: .4rem; }
.photo-card .meta { display: flex; justify-content: space-between; align-items: center; gap: .4rem; font-size: .72rem; color: var(--muted); }
.need-list { display: flex; flex-wrap: wrap; gap: .4rem; margin: .5rem 0; }
.need { padding: .3rem .7rem; border-radius: 999px; font-size: .78rem; font-weight: 800; background: rgba(186,47,47,.1); color: var(--danger); }
.need.done { background: var(--success-soft); color: #2f6b1f; }
.lightbox { position: fixed; inset: 0; z-index: 1500; background: rgba(10,15,13,.9); display: grid; place-items: center; cursor: zoom-out; }
.lightbox img { max-width: 96vw; max-height: 94vh; }

/* audit */
.diff { width: 100%; border-collapse: collapse; font-size: .8rem; }
.diff th, .diff td { padding: .35rem .5rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.diff td.old { background: rgba(186,47,47,.07); }
.diff td.new { background: rgba(116,184,89,.12); }

/* products admin */
.prod-thumb { width: 54px; height: 54px; object-fit: contain; border-radius: 10px; background: #fff; border: 1px solid var(--line); }
.prod-thumb.empty { display: inline-grid; place-items: center; color: var(--muted); font-size: .6rem; }
.line-nano-preview img, .nano-product-media img { object-fit: contain; background: #fff; }
.price-warn { color: var(--danger); font-size: .76rem; font-weight: 700; }

@media (max-width: 1260px) {
  .side-panel .main-nav { grid-template-columns: 1fr !important; }
  .side-panel .nav-item { justify-content: flex-start !important; }
}
@media (max-width: 900px) {
  .app-shell { display: block !important; padding: .6rem !important; }
  .mobile-bar { position: sticky; top: 0; z-index: 60; display: flex; align-items: center; gap: .6rem; padding: .55rem .7rem; margin: -.6rem -.6rem .7rem; background: rgba(255,255,255,.94); box-shadow: 0 6px 18px rgba(44,64,53,.1); }
  .mobile-bar strong { flex: 1; color: var(--fervo-graphite); }
  .menu-btn { width: 2.5rem; height: 2.5rem; border: 1px solid var(--line); border-radius: 12px; background: #fff; font-size: 1.2rem; }
  .side-panel { position: fixed !important; inset: 0 auto 0 0; z-index: 80; width: min(300px, 86vw); height: 100vh !important; border-radius: 0 24px 24px 0 !important; transform: translateX(-105%); transition: transform .2s ease; display: flex !important; background: #fff !important; overflow-y: auto; }
  body.menu-open .side-panel { transform: none; }
  body.menu-open .menu-overlay { display: block; position: fixed; inset: 0; z-index: 70; background: rgba(23,33,30,.4); }
  .form-grid.two { grid-template-columns: 1fr; }
  .cal-day { min-height: 64px; }
  .survey-bar { top: 3.6rem; }
}
@media print {
  .mobile-bar, #toasts, .page-head .actions, .survey-bar { display: none !important; }
}

/* costing */
.internal-only { display: none !important; }
body.show-internal .internal-only { display: revert !important; }
body.show-internal span.internal-only { display: contents !important; }
.ro-value { padding: .5rem 0; font-weight: 600; }
.excel-table td.num { text-align: right; font-variant-numeric: tabular-nums; }
.page-head .actions .select { min-height: 2.6rem; }
.economic-group-card, .economic-lines { align-content: start; }

/* keep short pages at the top instead of stretching to the full height */
.content-area { align-content: start; }

/* ---- left menu: compact so it fits without a scrollbar; any overflow scrolls invisibly */
.side-panel { gap: .7rem !important; }
.side-panel .main-nav { gap: .15rem; margin-top: 0; overflow-x: hidden; overflow-y: auto; scrollbar-width: none; -ms-overflow-style: none; min-height: 0; align-content: start; }
.side-panel .main-nav::-webkit-scrollbar { display: none; }
.side-panel .nav-item { padding: .42rem .6rem; gap: .6rem; border-radius: 14px; font-size: .92rem; min-width: 0; }
.side-panel .nav-item span:last-child { min-width: 0; overflow-wrap: anywhere; line-height: 1.2; }
.side-panel .nav-icon { width: 1.75rem; height: 1.75rem; border-radius: 10px; font-size: .7rem; flex: 0 0 auto; }
.side-panel .nav-item:hover { transform: none; }
.side-panel .user-card { flex: 0 0 auto; }
.brand-logo-img { width: 3rem; height: 3rem; object-fit: contain; border-radius: 12px; background: #fff; }
.logo-preview { display: flex; align-items: center; gap: 1rem; margin-top: .8rem; }
.logo-preview img { max-width: 220px; max-height: 90px; object-fit: contain; border: 1px solid var(--line); border-radius: 12px; background: #fff; padding: .4rem; }

/* ---- list view: every column fits the available width, long text wraps */
.sheet-wrap { max-height: none; overflow-x: hidden; }
.excel-table.compact { width: 100%; min-width: 0; table-layout: fixed; font-size: .72rem; }
.excel-table.compact th, .excel-table.compact td { height: auto; min-height: 1.5rem; padding: .16rem .22rem; white-space: normal; overflow-wrap: break-word; line-height: 1.2; vertical-align: top; }
/* internal columns are only sent to costing staff and admins, so the list view always shows them */
.excel-table.compact .internal-col { display: table-cell !important; }
.excel-table.compact thead th { position: static; font-size: .66rem; }
.excel-table.compact tbody th { font-size: .62rem; color: var(--muted); background: #ecf3f1; text-align: right; }
@media (max-width: 1100px) { .sheet-wrap { overflow-x: auto; } .excel-table.compact { min-width: 980px; } }

/* ---- printable offer (A4) */
#printDoc { display: none; }
@media print {
  @page { size: A4 portrait; margin: 12mm 12mm 12mm 12mm; }
  body.printing { background: #fff !important; }
  body.printing > *:not(#printDoc) { display: none !important; }
  body.printing #printDoc { display: block; font-family: var(--font); color: #1b2a36; font-size: 8.5pt; }
  #printDoc .pd-frame { width: 100%; border-collapse: collapse; }
  #printDoc .pd-frame > tbody > tr > td, #printDoc .pd-frame > tfoot > tr > td { padding: 0; border: 0; }
  #printDoc .pd-foot-space { height: 16mm; }
  #printDoc .pd-footer { position: fixed; left: 0; right: 0; bottom: 0; max-height: 14mm; overflow: hidden; padding-top: 2mm; border-top: .3mm solid #9aa5a0; font-size: 7pt; line-height: 1.3; color: #4f6070; text-align: center; }
  #printDoc .pd-footer:empty { display: none; }
  #printDoc .pd-letterhead { display: flex; justify-content: space-between; align-items: flex-start; gap: 8mm; padding-bottom: 3mm; border-bottom: .6mm solid #2E9441; }
  #printDoc .pd-letterhead img { max-height: 22mm; max-width: 60mm; object-fit: contain; }
  #printDoc .pd-company { margin-left: auto; text-align: right; display: grid; gap: .6mm; font-size: 8pt; color: #4f6070; }
  #printDoc .pd-company strong { font-size: 12pt; color: #1b2a36; }
  #printDoc .pd-header-text { margin: 2.5mm 0 0; font-size: 8.5pt; color: #4f6070; }
  #printDoc .pd-title { margin: 5mm 0 3mm; font-size: 15pt; color: #13324D; letter-spacing: .02em; }
  #printDoc .pd-info { display: grid; grid-template-columns: 1.6fr 1fr; gap: 6mm; margin-bottom: 4mm; }
  #printDoc .pd-info div div { display: grid; grid-template-columns: 26mm 1fr; gap: 2mm; padding: .7mm 0; }
  #printDoc .pd-info span { color: #6e7773; }
  #printDoc .pd-narrative { margin-bottom: 4mm; }
  #printDoc .pd-narrative h2 { margin: 0 0 1mm; font-size: 9pt; color: #13324D; text-transform: uppercase; letter-spacing: .06em; }
  #printDoc .pd-narrative p { margin: 0; line-height: 1.4; }
  #printDoc .pd-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
  #printDoc .pd-table td { border: .2mm solid #cfd6d2; padding: 1mm 1.2mm; vertical-align: top; overflow-wrap: break-word; line-height: 1.25; }
  #printDoc .pd-table tr { break-inside: avoid; }
  #printDoc .pd-table tr.gap td { border: 0; height: 2.5mm; padding: 0; }
  #printDoc .pd-table td.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
  #printDoc .pd-table td.subheader-cell { background: #e8f3ef !important; font-weight: 700; }
  #printDoc .pd-table td.section-cell { background: #2E9441 !important; color: #fff; font-weight: 700; }
  #printDoc .pd-table td.subtotal-cell { background: #eef6f7 !important; font-weight: 700; }
  #printDoc .pd-table td.header-cell { background: #515551 !important; color: #fff; font-weight: 700; }
  #printDoc .pd-table td.total-cell { background: #eef3c4 !important; font-weight: 800; }
  #printDoc .pd-sign { display: grid; grid-template-columns: 1fr 1fr; gap: 12mm; margin-top: 8mm; break-inside: avoid; }
  #printDoc .pd-sign h3 { margin: 0 0 1mm; font-size: 8.5pt; }
  #printDoc .pd-sign p { margin: 0; min-height: 4mm; color: #4f6070; }
  #printDoc .pd-sign .pd-line { margin-top: 12mm; padding-top: 1mm; border-top: .3mm solid #1b2a36; font-size: 7.5pt; }
  #printDoc * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* ---- search box on list pages */
.search-box { position: relative; display: inline-flex; align-items: center; }
.search-box > span { position: absolute; left: .75rem; color: var(--muted); font-size: 1.05rem; pointer-events: none; }
.search-box input { width: min(260px, 60vw); min-height: 2.6rem; padding-left: 2rem; border-radius: 999px; }
.search-box .search-count { position: absolute; right: .9rem; color: var(--muted); font-size: .72rem; pointer-events: none; }
.search-hide { display: none !important; }
@media print { .search-box { display: none !important; } }
.survey-ref summary { cursor: pointer; display: flex; flex-wrap: wrap; gap: .3rem .8rem; align-items: baseline; }
.survey-ref ul { margin: .6rem 0 0; padding-left: 1.2rem; font-size: .88rem; line-height: 1.6; }
.page-head .actions .badge { align-self: center; }

/* costing: add-row bar, "+ Add CTs", freshly added row */
.add-row-bar { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .75rem; }
.add-row-bar .add-row-btn { margin-top: 0; }
.line-grid.other-acc { margin-top: .9rem; }
.line-card.just-added { outline: 2px solid var(--accent, #2f7d5b); outline-offset: 2px; }
.economic-note-line { opacity: .75; font-style: italic; }
@media print { #printDoc .pd-subtitle { margin: 5mm 0 2mm; font-size: 10pt; color: #13324D; text-transform: uppercase; letter-spacing: .06em; } }

/* ===================== EnerView theme: green = sustainability, dark blue = engineering and trust ===================== */
body {
  background:
    radial-gradient(circle at 6% 0%, rgba(98, 170, 53, .16) 0, transparent 30rem),
    radial-gradient(circle at 100% 0%, rgba(30, 110, 140, .12) 0, transparent 28rem),
    linear-gradient(160deg, #f8fafb 0%, var(--bg) 55%, #eef4f1 100%);
}
h1, h2, h3, h4, h5 { color: var(--ev-navy); }
.eyebrow, .form-section, .sv-group { color: var(--ev-green) !important; }
.btn.primary, .btn.start { background: linear-gradient(135deg, var(--ev-green), #3a9f3c); color: #fff; border-color: transparent; box-shadow: 0 8px 20px rgba(46, 148, 65, .22); }
.btn.primary:hover, .btn.start:hover { background: linear-gradient(135deg, #278a3a, var(--ev-green)); }
.btn.primary:disabled { opacity: .55; box-shadow: none; }
.btn.ghost { color: var(--ev-navy); border-color: rgba(19, 50, 77, .16); }
.btn.ghost:hover { border-color: var(--ev-blue); }
.nav-item { color: var(--ev-navy); }
.nav-item.active { background: linear-gradient(135deg, var(--ev-navy), var(--ev-navy-2)); border-color: transparent; box-shadow: 0 12px 26px rgba(19, 50, 77, .24), inset 4px 0 0 var(--ev-green-2); }
.nav-item.active .nav-icon { color: var(--ev-navy); }
.nav-icon { color: var(--ev-navy); background: rgba(19, 50, 77, .06); }
.tab-btn.active { background: var(--ev-navy); }
.toast.ok { background: var(--ev-green); }
.toast { background: var(--ev-navy); }
.badge { color: var(--ev-navy); }
.seg label:has(input:checked) { background: var(--ev-green); border-color: var(--ev-green); }
.check input, .switch-row input { accent-color: var(--ev-green); }
.input:focus, .select:focus, .textarea:focus { border-color: var(--ev-blue); box-shadow: 0 0 0 3px rgba(30, 110, 140, .14); outline: none; }
.role-tag { background: rgba(46, 148, 65, .12); color: #23753a; }
.excel-table td.header-cell { background: var(--ev-navy); }
.excel-table td.section-cell { background: var(--ev-green); }
.excel-table td.subheader-cell { background: rgba(19, 50, 77, .07); color: var(--ev-navy); }
.cal-day.today { border-color: var(--ev-green); box-shadow: inset 0 0 0 1px var(--ev-green); }
.line-card.just-added { outline-color: var(--ev-green); }

/* sidebar brand */
.brand-card.ev-brand { display: grid; grid-template-columns: 1fr; gap: .55rem; padding: .9rem .9rem .8rem; background: #fff; }
.ev-logo { display: block; width: 100%; max-width: 220px; height: auto; }
.ev-tenant { display: flex; align-items: center; gap: .55rem; padding-top: .55rem; border-top: 1px solid var(--line); }
.ev-tenant h1 { margin: 0; font-size: .98rem; color: var(--ev-navy); }
.ev-tenant .brand-logo-img { width: 2.2rem; height: 2.2rem; border-radius: 9px; border: 1px solid var(--line); }
.mobile-logo { height: 1.9rem; width: auto; flex: 1; object-fit: contain; object-position: left center; }

/* login */
.login-wrap { min-height: 100vh; padding: 1.25rem; background:
  radial-gradient(circle at 12% 10%, rgba(98, 170, 53, .28) 0, transparent 26rem),
  radial-gradient(circle at 88% 92%, rgba(30, 110, 140, .45) 0, transparent 30rem),
  linear-gradient(145deg, #0f2a42 0%, var(--ev-navy) 45%, #17405f 100%); }
.login-split { width: min(1040px, 100%); display: grid; grid-template-columns: 1.15fr 1fr; border-radius: 28px; overflow: hidden; background: #fff; box-shadow: 0 30px 80px rgba(5, 18, 30, .45); }
.login-brand { display: flex; flex-direction: column; justify-content: center; gap: 1.6rem; padding: 3rem 2.6rem; background: linear-gradient(160deg, #ffffff 0%, #f3f8f4 100%); border-right: 1px solid rgba(19, 50, 77, .08); }
.login-logo { width: 100%; max-width: 430px; height: auto; }
.login-lead { margin: 0; max-width: 30rem; color: #3d5266; font-size: .98rem; line-height: 1.55; }
.login-steps { width: 100%; max-width: 440px; height: auto; opacity: .95; }
.login-card { width: 100%; padding: 3rem 2.6rem; border-radius: 0; background: #fff; box-shadow: none; display: grid; align-content: center; gap: 1rem; }
.login-card h1 { margin: 0; font-size: 1.6rem; color: var(--ev-navy); letter-spacing: -.01em; }
.login-card .eyebrow { margin-bottom: .25rem; }
.login-btn { min-height: 3rem; font-size: 1rem; margin-top: .2rem; }
.login-foot { margin: .2rem 0 0; color: var(--muted); font-size: .8rem; }
.login-logo-mobile { display: none; width: 210px; height: auto; margin-bottom: .2rem; }
@media (max-width: 820px) {
  .login-split { grid-template-columns: 1fr; max-width: 440px; }
  .login-brand { display: none; }
  .login-card { padding: 2rem 1.5rem; }
  .login-logo-mobile { display: block; }
}
