:root {
    --cts-navy: #0b3b91;
    --cts-blue: #00a1df;
    --cts-red: #e60035;
    --bs-primary: #0b3b91;
    --bs-primary-rgb: 11, 59, 145;
    --bs-danger: #d7193f;
    --bs-body-color: #16243c;
    --bs-body-bg: #f4f7fb;
}

body { background: #f4f7fb; color: #16243c; }
.fsr-bulk-page,.fsr-bulk-page input,.fsr-bulk-page button,.fsr-bulk-page select,.fsr-bulk-page textarea { font-family: "Arial Narrow",Arial,sans-serif; }
.fsr-bulk-page,.fsr-bulk-page .table,.fsr-bulk-page .form-control,.fsr-bulk-page .btn { font-size: 9pt; }
.fsr-bulk-page .progress { height: 24px; }
.btn-primary { --bs-btn-bg: var(--cts-navy); --bs-btn-border-color: var(--cts-navy); --bs-btn-hover-bg: #0d56c6; --bs-btn-hover-border-color: #0d56c6; }
.text-bg-success { background-color: var(--cts-navy) !important; }
.brand-logo { width: 42px; height: 46px; object-fit: contain; flex: 0 0 auto; }
.logo-tile { width: 54px; height: 58px; padding: 5px; border-radius: 13px; display: grid; place-items: center; background: #fff; box-shadow: 0 5px 18px rgba(0,0,0,.12); }
.logo-tile .brand-logo { width: 100%; height: 100%; }
.navbar-brand { gap: .7rem; }
.navbar-brand .brand-logo { width: 38px; height: 42px; }
.navbar .nav-link { color: #546078; font-weight: 600; border-radius: .5rem; padding-inline: .8rem !important; }
.navbar .nav-link:hover { color: var(--cts-navy); background: #eef4ff; }
.auth-shell { grid-template-columns:60% 40%; }
.auth-story { isolation:isolate; background:#061e4d; padding:clamp(32px,5vw,72px); }
.auth-story::before, .auth-story::after { display:none; }
.auth-story-video { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.auth-story-overlay { position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,rgba(3,18,48,.88) 0%,rgba(5,31,76,.68) 52%,rgba(5,30,70,.28) 100%),linear-gradient(0deg,rgba(3,17,43,.62),transparent 58%); }
.auth-story > .brand,.auth-story > .story-copy,.auth-story > .story-foot { position:relative; z-index:1; }
.auth-story .story-copy { max-width:680px; padding:clamp(24px,4vw,48px) 0; }
.auth-story .story-copy h1 { max-width:680px; margin-bottom:22px; color:#fff; font-size:clamp(38px,4.8vw,72px); line-height:1.02; text-shadow:0 4px 24px rgba(0,0,0,.38); }
.auth-story .story-copy p { max-width:620px; margin:0; color:rgba(255,255,255,.9); font-size:clamp(16px,1.35vw,21px); line-height:1.55; text-shadow:0 2px 12px rgba(0,0,0,.5); }
.auth-story .eyebrow { color:#7fdcff; }
.auth-story .story-foot { color:rgba(255,255,255,.82); }
.auth-panel { padding:clamp(24px,3vw,50px); }
.auth-panel .auth-card { width:100%; max-width:460px; padding:clamp(26px,2.5vw,44px); }
@media(max-width:900px){.auth-shell{grid-template-columns:1fr}.auth-story-video{object-position:center}.auth-story-overlay{background:rgba(3,24,59,.67)}.auth-story .story-copy{padding:18px 0}.auth-story .story-copy h1{font-size:clamp(30px,8vw,44px);margin-bottom:12px}.auth-story .story-copy p{display:block;font-size:14px;line-height:1.4}}
.eyebrow, a, .quiet-link { color: var(--cts-navy); }
.metric-icon, .avatar-fallback, .status-pill { background: #e8f2ff; color: var(--cts-navy); }
.metric-icon.amber { background: #ffe8ee; color: var(--cts-red); }
.metric-icon.violet { background: #e2f7ff; color: #007cae; }
.privilege-mark, .stat-strip { background: #08275e; }
.form-control:focus, .form-select:focus { border-color: #5ba7ed; box-shadow: 0 0 0 .25rem rgba(11,59,145,.13); }
.card, .panel, .auth-card { border-color: #dfe5ee; box-shadow: 0 10px 32px rgba(8,39,94,.06); }
.toast-container .toast { position: static; padding: 0; border-radius: var(--bs-toast-border-radius); box-shadow: var(--bs-toast-box-shadow); animation: none; }
.table > :not(caption) > * > * { padding: 1rem 1.1rem; }
.modal { --bs-modal-width: 760px; }
.track-modal-dialog { max-width: 650px; }
.track-timeline { padding: .25rem .25rem .25rem .5rem; }
.track-step { position: relative; display: grid; grid-template-columns: 32px 1fr; gap: .8rem; padding-bottom: 1.15rem; }
.track-step:not(:last-child)::after { content: ""; position: absolute; left: 15px; top: 28px; bottom: 0; width: 2px; background: #dce3ec; }
.track-dot { position: relative; z-index: 1; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; font-weight: 800; background: #eef1f5; color: #7b879a; }
.track-step.is-complete .track-dot { background: #198754; color: #fff; }
.track-copy { padding-top: .15rem; }
.track-copy small { display: block; margin-top: .2rem; color: #7b879a; }
.track-copy p { margin: .35rem 0 0; color: #53627b; font-size: .86rem; }

/* Bootstrap modal containers must cover the viewport. The legacy native-dialog
   styles in style.css otherwise constrain them to a 760px-wide strip. */
div.modal {
    width: 100%;
    max-width: none;
    height: 100%;
    max-height: none;
    padding: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

/* The user editor is a native dialog; these rules isolate it from Bootstrap's .modal display rules. */
dialog.modal:not([open]) { display: none; }
dialog.modal[open] {
    display: block;
    position: fixed;
    inset: 0;
    border: 0;
    padding: 0;
    border-radius: 1.25rem;
    width: min(760px, calc(100% - 30px));
    max-width: 760px;
    max-height: 90vh;
    height: auto;
    overflow: auto;
    color: #16243c;
    background: #fff;
    box-shadow: 0 30px 100px rgba(0,0,0,.25);
}
dialog.modal::backdrop { background: rgba(8,25,55,.62); backdrop-filter: blur(3px); }

@media (max-width: 991.98px) {
    .navbar .user-copy { display: grid; }
    .installation-management-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .trend-row { grid-template-columns:1fr; gap:.25rem; }
}

.fsr-shell { max-width: 1500px; }
.fsr-tabs { display: grid; grid-template-columns: repeat(auto-fit,minmax(190px,1fr)); gap: .45rem; width: 100%; }
.fsr-tabs .nav-item { min-width: 0; }
.fsr-tabs .nav-link { display: grid; place-items: center; width: 100%; min-height: 52px; color: #53627b; font-size: .78rem; font-weight: 700; line-height: 1.25; text-align: center; padding: .7rem .85rem; white-space: normal; }
.fsr-tabs .nav-link.active { background: var(--cts-navy); }
.section-band { display: flex; align-items: center; gap: 1rem; padding: 1.15rem 1.5rem; color: #fff; background: linear-gradient(100deg, #0b3b91, #166ebc); border-radius: 1rem 1rem 0 0; }
.section-band > span { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: .65rem; background: rgba(255,255,255,.17); font: 800 1rem Manrope,sans-serif; }
.section-band h2 { font-size: 1rem; margin: 0 0 .15rem; text-transform: uppercase; letter-spacing: .035em; }
.section-band p { color: rgba(255,255,255,.73); font-size: .78rem; margin: 0; }
.site-card { overflow: hidden; }
.site-card-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.2rem 1.5rem; background: #f7f9fd; border-bottom: 1px solid #dfe5ee; }
.site-number { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: .75rem; color: #fff; background: var(--cts-navy); font-weight: 800; }
.site-section-title { display: flex; align-items: baseline; gap: .75rem; margin-bottom: 1rem; }
.site-section-title span { color: var(--cts-navy); font-weight: 800; text-transform: uppercase; letter-spacing: .07em; font-size: .8rem; }
.site-section-title small { color: #7b879a; }
.cost-breakdown { border: 1px solid #dfe5ee; border-radius: .85rem; overflow: hidden; }
.cost-row { display: grid; grid-template-columns: minmax(150px,1fr) minmax(140px,.65fr) minmax(190px,.8fr); align-items: center; gap: 1rem; padding: .8rem 1rem; border-top: 1px solid #e8ecf2; }
.cost-row:first-child { border-top: 0; }
.cost-row-head { color: #fff; background: #173d6d; font-size: .75rem; text-transform: uppercase; letter-spacing: .045em; }
.site-cost-summary > label,.site-cost-summary > div { margin-bottom:0; }
.site-cost-summary .form-control { width:100%; }
.summary-card { height: 100%; padding: 1.4rem; background: #fff; border: 1px solid #dfe5ee; border-radius: 1rem; box-shadow: 0 10px 30px rgba(8,39,94,.06); }
.summary-card small { display: block; color: #6b778a; margin-bottom: .55rem; }
.summary-card strong { display: block; font: 800 1.3rem Manrope,sans-serif; color: #14223b; }
.summary-card .summary-status { color: var(--cts-navy); font-size: 1rem; }
.commercial-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.commercial-grid > div,.commercial-grid > label { padding: 1rem; margin: 0; border: 1px solid #e1e6ee; border-radius: .75rem; background: #f8faff; }
.commercial-grid small { display: block; color: #6b778a; margin-bottom: .45rem; }
.commercial-grid strong { font: 700 1rem Manrope,sans-serif; }
.sticky-save { position: sticky; z-index: 10; bottom: 1rem; display: flex; align-items: end; justify-content: space-between; gap: 1rem; width: 100%; margin: 2rem 0 0; padding: 1rem; border: 1px solid #dfe5ee; border-radius: 1rem; background: rgba(255,255,255,.95); box-shadow: 0 16px 45px rgba(8,39,94,.16); backdrop-filter: blur(8px); }
.sticky-save .form-select { min-width: 220px; }
.fsr-shell textarea[readonly],.fsr-shell input[readonly] { background-color: #f1f4f8; color: #586579; }
.fsr-shell .fsr-tabs .nav-link,
.fsr-shell .section-band p,
.fsr-shell .site-card-head h3,
.fsr-shell .site-card-head small,
.fsr-shell .site-section-title small,
.fsr-shell .tab-pane > .d-flex h2,
.fsr-shell .tab-pane > .d-flex p { text-transform: uppercase; }
.fsr-shell label:has(> textarea[name="commercial_note"]) { display:block; width:100%; }
.fsr-shell textarea[name="commercial_note"] { display:block; width:100%; height:200px; min-height:200px; resize:vertical; }
.fsr-status-badge { background-color: var(--status-color)!important; color: var(--status-text)!important; border: 1px solid rgba(0,0,0,.12); }
.page-shell h1 { text-transform: uppercase; }
.page-shell.fsr-list-shell { width:min(1600px,calc(100% - 56px)); max-width:1600px; }
@media(max-width:900px){.page-shell.fsr-list-shell{width:min(1600px,calc(100% - 30px))}}
.status-chart-label { display: inline-block; width: fit-content; padding: .3rem .55rem; border-radius: .5rem; background-color: var(--status-color)!important; color: var(--status-text)!important; border: 1px solid rgba(0,0,0,.12); font-weight: 700; }
.survey-table thead { display: none; }
.survey-table tbody { display:grid; gap:.65rem; padding:.7rem; background:#f4f7fb; }
.survey-table tr[data-survey-row] { position:relative; display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:.55rem .7rem; padding:2.55rem .85rem .8rem; border:1px solid #dfe5ee; border-radius:.75rem; background:#fff; box-shadow:0 5px 16px rgba(8,39,94,.045); }
.survey-table .survey-field { display: block; padding: 0; border: 0; }
.survey-table .survey-field::before { content:attr(data-label); display:block; margin-bottom:.25rem; color:#33415c; font-size:.68rem; font-weight:700; text-transform:uppercase; }
.survey-table .survey-span-1 { grid-column: span 1; }
.survey-table .survey-span-2 { grid-column: span 2; }
.survey-table .survey-span-3 { grid-column: span 3; }
.survey-table .survey-span-4 { grid-column: span 4; }
.survey-table .survey-span-6 { grid-column: span 6; }
.survey-table .survey-span-11 { grid-column: span 11; }
.survey-table .survey-span-1:last-child { position:absolute; top:.65rem; right:.85rem; display:flex; gap:.4rem; width:auto; }
.survey-table .form-control,.survey-table .form-select { min-height:32px!important; padding:.3rem .5rem; font-size:.78rem; }
.survey-table textarea { min-height:54px!important; resize:vertical; }
.survey-table .survey-word-counter { margin-top:.15rem!important; font-size:.62rem; }
.survey-upload-note { display:flex; align-items:center; gap:.7rem; padding:.65rem .8rem; border:1px solid #d9e2ef; border-radius:.55rem; background:#f7f9fc; color:#667085; font-size:.78rem; }
.survey-upload-note strong { color:var(--cts-navy); white-space:nowrap; }
.survey-not-required { display:flex; align-items:center; gap:.5rem; padding:.65rem .8rem; border:1px solid #cdd8e8; border-radius:.55rem; background:#fff; }
.survey-excel-guide { padding:.85rem; border:1px solid #cdd8e8; border-radius:.65rem; background:#f7f9fc; }
.survey-excel-guide code { display:block; padding:.6rem; border-radius:.4rem; background:#e8eef8; color:#17345f; white-space:normal; }
.survey-view-item { display: grid; grid-template-columns: minmax(150px,220px) 1fr; gap: 1rem; padding: .85rem 0; border-bottom: 1px solid #e5e9f0; }
.survey-view-item:last-child { border-bottom: 0; }
.survey-view-item strong { color: var(--cts-navy); }
.survey-view-item span { white-space: pre-wrap; overflow-wrap: anywhere; }
fieldset:disabled .survey-document-action.btn {
    pointer-events: auto !important;
    opacity: 1 !important;
    cursor: pointer;
    position: relative;
    z-index: 2;
}
.listing-number { display:grid; grid-template-columns:1.5rem 32px 32px; align-items:center; justify-content:start; column-gap:.5rem; row-gap:.55rem; width:100%; min-width:120px; }
.listing-number > strong { min-width:1.5rem; text-align:center; line-height:32px; }
.listing-number > .btn { margin:0; align-self:center; justify-self:start; }
.listing-number > .listing-business-status { grid-column:1 / -1; }
.hod-reviewed-form { position:static; width:32px; min-width:32px; height:32px; margin:0; }
.ami-shell .metric-grid.ami-metrics { grid-template-columns: repeat(4, 1fr); }
.ami-filter { flex-wrap: wrap; }
.ami-filter .search-field { width: min(380px, 100%); }
.ami-filter .form-select { width: 180px; }
.ami-table th, .ami-table td { border-left: 1px solid #edf1ef; }
.ami-table th:first-child, .ami-table td:first-child { border-left: 0; }
.ami-status { display: inline-flex; align-items: center; gap: .4rem; border-radius: 999px; padding: .3rem .6rem; font-size: .68rem; font-weight: 800; letter-spacing: .05em; }
.ami-status i { width: .55rem; height: .55rem; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 .2rem rgba(255,255,255,.8); }
.ami-online { color: #087a43; background: #dff7e9; }
.ami-offline { color: #b42318; background: #fff0ef; }
#ami-map { min-height: 680px; width: 100%; }
.ami-map-dot { display: inline-block; width: .75rem; height: .75rem; border-radius: 50%; margin-right: .35rem; vertical-align: -1px; }
.ami-map-dot.online, .ami-marker-online { background: #18a058; border: 2px solid #fff; box-shadow: 0 0 0 2px rgba(24,160,88,.35); border-radius: 50%; }
.ami-map-dot.offline, .ami-marker-offline { background: #d92d20; border: 2px solid #fff; box-shadow: 0 0 0 2px rgba(217,45,32,.35); border-radius: 50%; }
.ami-marker { width: 16px !important; height: 16px !important; }
.ami-column-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.45rem .75rem; padding:.75rem; border:1px solid #dde5e1; border-radius:.9rem; background:#f8fafc; max-height:220px; overflow:auto; align-items:start; }
.ami-column-grid .form-check { display:grid; grid-template-columns:18px minmax(0,1fr); align-items:center; column-gap:.45rem; min-width:0; margin:0; padding:.18rem .2rem; font-size:.78rem; line-height:1.25; }
.ami-column-grid .form-check-input { position:static; width:16px!important; height:16px!important; min-width:16px; min-height:16px!important; margin:0!important; padding:0!important; flex:0 0 16px; }
.ami-column-grid .form-check-label { display:block; min-width:0; overflow-wrap:anywhere; word-break:normal; color:#26364d; }
.ami-column-grid .form-check:has(.form-check-input:checked) .form-check-label { font-weight:700; }
.ami-column-grid .form-check:hover { background:#eef4ff; border-radius:.45rem; }
.ami-new-data-check { display:flex; align-items:center; gap:.55rem; padding:.55rem .7rem; border:1px solid #dde5e1; border-radius:.65rem; background:#f8fafc; margin:0; }
.ami-new-data-check .form-check-input { width:18px!important; height:18px!important; min-height:18px!important; margin:0!important; padding:0!important; flex:0 0 18px; }
.ami-new-data-check .form-check-label { font-weight:700; color:#26364d; }
#ami-meter-modal .modal-dialog { max-width: 1180px; }
#ami-meter-modal .modal-header { padding: .8rem 1rem .65rem; }
#ami-meter-modal .modal-title { font-size: 1rem; margin-top: .25rem!important; line-height: 1.25; }
#ami-meter-modal .eyebrow { font-size: .62rem; letter-spacing: .18em; }
#ami-meter-modal .btn-close { transform: scale(.82); }
#ami-meter-modal .ami-meter-body { padding: .7rem 1rem; max-height: 70vh; }
#ami-meter-modal .modal-footer { padding: .65rem 1rem; }
.ami-meter-field { margin:0; font-size:.68rem; font-weight:800; color:#26364d; letter-spacing:.02em; }
.ami-meter-field .form-control { min-height:31px!important; height:31px; padding:.28rem .5rem; font-size:.8rem; border-radius:.45rem; }
.ami-meter-field textarea.form-control { height:auto; min-height:54px!important; line-height:1.3; }
.gantt-shell .welcome-row h1 { max-width: 900px; }
.gantt-task-table th,.gantt-task-table td { padding:.45rem .5rem; }
.gantt-task-table th { font-size:.62rem; }
.gantt-task-table .form-control,.gantt-task-table .form-select { min-height:30px; padding:.22rem .4rem; font-size:.76rem; }
.gantt-task-table .form-control-color { width:44px; min-width:44px; padding:.15rem; }
.gantt-chart-wrap { padding:1.2rem; background:#fff; overflow:auto; }
.gantt-date-row,.gantt-row { display:grid; grid-template-columns:260px minmax(760px,1fr); gap:1rem; align-items:center; }
.gantt-date-row { color:#667085; font-size:.75rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; padding-bottom:.65rem; }
.gantt-scale-form .form-select { min-width:140px; }
.gantt-date-scale { position:relative; display:block; min-height:92px; padding-top:.25rem; }
.gantt-date-scale b { position:absolute; top:2.1rem; transform:translateX(-50%) rotate(-90deg); transform-origin:center; color:#344054; font-size:.6rem; line-height:1; white-space:nowrap; }
.gantt-timeline-area { position:relative; overflow:visible; }
.gantt-row { min-height:52px; border-bottom:1px solid #edf2f7; align-items:start; padding:.45rem 0; }
.gantt-label { display:grid; min-width:0; align-content:center; gap:.18rem; }
.gantt-label strong { font-size:.88rem; white-space:normal; overflow:visible; text-overflow:clip; overflow-wrap:anywhere; line-height:1.2; }
.gantt-label small { color:#667085; font-size:.72rem; white-space:normal; overflow:visible; text-overflow:clip; overflow-wrap:anywhere; line-height:1.25; }
.gantt-lane { position:relative; height:30px; background:repeating-linear-gradient(90deg,#f7f9fc 0,#f7f9fc 10%,#fff 10%,#fff 20%); border-radius:999px; overflow:hidden; }
.gantt-bar { position:absolute; top:4px; bottom:4px; border-radius:999px; color:#fff; overflow:hidden; box-shadow:0 6px 14px rgba(16,24,40,.12); }
.gantt-bar i { position:absolute; inset:0 auto 0 0; background:rgba(255,255,255,.25); }
.gantt-bar em { position:relative; z-index:1; display:block; text-align:center; font-style:normal; font-size:.7rem; font-weight:800; line-height:22px; text-shadow:0 1px 2px rgba(0,0,0,.25); }
.gantt-overdue { background:#dc3545!important; }
.gantt-today-header { position:absolute; top:auto; bottom:-.15rem; transform:translate(-50%,100%); padding:.22rem .38rem; border-radius:.4rem; background:#dc3545; color:#fff; font-size:.58rem; font-weight:900; line-height:1.15; white-space:nowrap; letter-spacing:.04em; z-index:30; box-shadow:0 6px 14px rgba(220,53,69,.28); }
.gantt-today-header:after { content:none; }
.gantt-today-overlay { position:absolute; inset:0; display:grid; grid-template-columns:260px minmax(760px,1fr); gap:1rem; pointer-events:none; z-index:25; }
.gantt-today-overlay span { grid-column:2; position:relative; display:block; width:0; height:100%; }
.gantt-today-overlay span:before { content:""; position:absolute; top:-1px; bottom:-1px; left:0; border-left:3px dashed #dc3545; transform:translateX(-1px); filter:drop-shadow(0 0 3px rgba(220,53,69,.35)); }
.gantt-today-overlay span em { position:absolute; top:calc(100% + .35rem); left:0; transform:translateX(-50%); padding:.22rem .38rem; border-radius:.4rem; background:#dc3545; color:#fff; font-size:.58rem; font-weight:900; line-height:1.15; white-space:nowrap; letter-spacing:.04em; font-style:normal; box-shadow:0 6px 14px rgba(220,53,69,.28); }
.gantt-risk-export { padding:1.2rem; border-top:1px solid #e6edf5; background:#fff; }
.gantt-risk-export h3 { font-size:1rem; margin:0 0 .75rem; text-transform:uppercase; letter-spacing:.04em; }
.gantt-risk-export table { width:100%; border-collapse:collapse; white-space:normal; }
.gantt-risk-export th,.gantt-risk-export td { border:1px solid #d9e2ec; padding:.45rem .55rem; font-size:.75rem; vertical-align:top; }
.gantt-risk-export th { background:#f3f7fb; color:#24364b; text-transform:uppercase; letter-spacing:.04em; font-size:.65rem; }
.gantt-management-report { background:#fff; border:1px solid #d7e1ef; box-shadow:0 18px 45px rgba(8,39,94,.10); }
.gantt-management-report > .section-band { display:none; }
.gantt-report-cover { display:flex; align-items:flex-start; justify-content:space-between; gap:1.5rem; padding:1.55rem 1.65rem; color:#fff; background:linear-gradient(120deg,#092c68 0%,#184f9d 58%,#20a6df 100%); }
.gantt-report-eyebrow { display:block; margin-bottom:.35rem; color:#aeeaff; font-size:.68rem; font-weight:900; letter-spacing:.18em; text-transform:uppercase; }
.gantt-report-cover h2 { margin:0; font-size:1.42rem; font-weight:900; letter-spacing:.02em; text-transform:uppercase; }
.gantt-report-cover p { margin:.35rem 0 0; color:rgba(255,255,255,.78); font-size:.82rem; }
.gantt-report-meta { display:flex; flex-wrap:wrap; gap:.55rem; margin-top:.8rem; }
.gantt-report-meta span { padding:.32rem .55rem; border:1px solid rgba(255,255,255,.22); border-radius:999px; background:rgba(255,255,255,.10); color:rgba(255,255,255,.82); font-size:.68rem; }
.gantt-report-meta strong { color:#fff; }
.gantt-report-right { display:grid; justify-items:end; gap:.65rem; min-width:150px; }
.gantt-report-right img { width:68px; height:68px; object-fit:contain; padding:.35rem; border-radius:.8rem; background:#fff; box-shadow:0 8px 20px rgba(0,0,0,.18); }
.gantt-report-status { display:inline-flex; align-items:center; justify-content:center; min-width:132px; padding:.42rem .7rem; border-radius:999px; font-size:.7rem; font-weight:900; text-transform:uppercase; letter-spacing:.05em; background:#eef2f7; color:#1d2939; }
.gantt-report-status-success { background:#d1fadf; color:#05603a; }
.gantt-report-status-warning { background:#fff4cc; color:#8a5a00; }
.gantt-report-status-danger { background:#ffe4e8; color:#b42318; }
.gantt-report-status-secondary { background:#edf2f7; color:#344054; }
.gantt-report-kpis { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:.75rem; padding:1rem 1.2rem; background:linear-gradient(180deg,#f8fbff,#fff); border-bottom:1px solid #e2eaf4; }
.gantt-kpi { min-height:94px; padding:.85rem; border:1px solid #dfe8f4; border-radius:.9rem; background:#fff; box-shadow:0 8px 18px rgba(16,24,40,.045); }
.gantt-kpi small { display:block; color:#667085; font-size:.62rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.gantt-kpi strong { display:block; margin:.22rem 0; color:#102a55; font-size:1.45rem; line-height:1; }
.gantt-kpi span { display:block; color:#667085; font-size:.66rem; line-height:1.25; }
.gantt-kpi-primary { border-color:#a9c7ff; background:linear-gradient(135deg,#eef5ff,#fff); }
.gantt-kpi-primary strong { color:#0b3b91; }
.gantt-kpi-danger { border-color:#ffc9cf; background:#fff5f6; }
.gantt-kpi-danger strong { color:#b42318; }
.gantt-kpi-warning { border-color:#ffe0a3; background:#fffaf0; }
.gantt-kpi-warning strong { color:#a15c00; }
.gantt-report-section-title { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.2rem .3rem; }
.gantt-report-section-title > div:first-child { display:flex; align-items:center; gap:.65rem; }
.gantt-report-section-title span { display:grid; place-items:center; width:2rem; height:2rem; border-radius:.65rem; background:#0b3b91; color:#fff; font-size:.7rem; font-weight:900; }
.gantt-report-section-title h3 { margin:0; color:#102a55; font-size:.9rem; font-weight:900; text-transform:uppercase; letter-spacing:.06em; }
.gantt-legend { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:.55rem; color:#667085; font-size:.68rem; font-weight:800; }
.gantt-legend i { width:.72rem; height:.72rem; border-radius:999px; display:inline-block; margin-left:.25rem; }
.legend-not-started { background:#8a94a6; }
.legend-active { background:#fd7e14; }
.legend-complete { background:#0f7b3f; }
.legend-overdue { background:#dc3545; }
.legend-today { background:#dc3545; border-radius:0!important; width:.25rem!important; }
.gantt-management-report .gantt-chart-wrap { padding:1rem 1.2rem 3rem; }
.gantt-management-report .gantt-date-row,.gantt-management-report .gantt-row { grid-template-columns:250px minmax(760px,1fr); }
.gantt-management-report .gantt-today-overlay { grid-template-columns:250px minmax(760px,1fr); }
.gantt-management-report .gantt-date-row { background:#f8fafd; border:1px solid #e1e9f3; border-bottom:0; border-radius:.75rem .75rem 0 0; padding:.65rem .75rem .25rem; }
.gantt-management-report .gantt-timeline-area { border:1px solid #e1e9f3; border-top:0; border-radius:0 0 .75rem .75rem; overflow:visible; }
.gantt-management-report .gantt-row { min-height:48px; border-bottom:1px solid #eef2f7; align-items:start; }
.gantt-management-report .gantt-label strong { color:#102a55; font-size:.82rem; }
.gantt-management-report .gantt-label small { font-size:.68rem; }
.gantt-management-report .gantt-lane { height:28px; border:1px solid #edf2f7; background:repeating-linear-gradient(90deg,#f5f8fc 0,#f5f8fc 10%,#fff 10%,#fff 20%); }
.gantt-management-report .gantt-bar { top:3px; bottom:3px; }
.gantt-risk-export { padding:1rem 1.2rem 1.35rem; background:#fbfdff; }
.gantt-risk-export h3 { font-size:.9rem; }
.gantt-risk-export table { overflow:hidden; border-radius:.85rem; background:#fff; box-shadow:0 8px 18px rgba(16,24,40,.045); }
.gantt-risk-export th { background:#0b3b91; color:#fff; border-color:#214f99; }
.gantt-risk-export td { background:#fff; }
.gantt-report-footer { display:flex; justify-content:space-between; align-items:center; padding:.7rem 1.2rem; border-top:1px solid #e2eaf4; background:#f8fbff; color:#667085; font-size:.66rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.gantt-timeline-export { background:#fff; }
.gantt-image-export { border-radius:0!important; box-shadow:none!important; }
.gantt-image-export .gantt-chart-wrap { overflow:visible!important; }
.gantt-image-export .gantt-risk-export table { white-space:normal; }
.installation-progress-table-wrap { max-height:70vh; overflow:auto; }
.installation-progress-table { min-width:1200px; font-size:.78rem; }
.installation-progress-table th { white-space:nowrap; background:#f8fafd; color:#102a55; font-size:.68rem; text-transform:uppercase; vertical-align:middle; }
.installation-progress-table td { min-width:64px; }
.installation-progress-table th.date-column,.installation-progress-table td.date-cell,.installation-progress-table .day-balance { min-width:46px; max-width:52px; width:50px; padding-left:.18rem!important; padding-right:.18rem!important; }
.installation-progress-table th:first-child,.installation-progress-table td:first-child { min-width:220px; position:sticky; left:0; z-index:2; background:#fff; }
.installation-progress-table th:nth-child(2),.installation-progress-table td:nth-child(2) { min-width:130px; }
.installation-progress-table th:nth-child(3),.installation-progress-table td:nth-child(3) { min-width:100px; }
.installation-progress-table thead th { position:sticky; top:0; z-index:3; }
.installation-progress-table thead th:first-child { z-index:4; background:#f8fafd; }
.installation-progress-table tfoot td { position:sticky; bottom:0; background:#f8fafd; z-index:2; }
.installation-progress-table .form-control-sm { min-height:30px; font-size:.72rem; padding:.2rem .35rem; }
.installation-progress-table .qty-input { min-width:40px; padding:.16rem .18rem; text-align:center!important; }
.installation-progress-table th.date-column { font-size:.58rem; letter-spacing:0; text-align:center; }
.installation-management-view { border:1px solid #d7e1ef; box-shadow:0 18px 45px rgba(8,39,94,.10); }
.installation-management-cover { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding:1.4rem 1.6rem; color:#fff; background:linear-gradient(120deg,#092c68 0%,#184f9d 58%,#20a6df 100%); }
.installation-management-cover h2 { margin:.25rem 0; font-size:1.35rem; font-weight:900; text-transform:uppercase; letter-spacing:.03em; }
.installation-management-cover p { margin:0; color:rgba(255,255,255,.78); font-size:.82rem; }
.installation-progress-ring { display:grid; place-items:center; width:118px; height:118px; flex:0 0 118px; border:8px solid rgba(255,255,255,.26); border-radius:50%; background:rgba(255,255,255,.12); box-shadow:inset 0 0 0 1px rgba(255,255,255,.18); }
.installation-progress-ring strong { display:block; color:#fff; font-size:1.55rem; line-height:1; }
.installation-progress-ring span { display:block; color:rgba(255,255,255,.8); font-size:.62rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.installation-management-kpis { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.8rem; padding:1rem 1.2rem; background:linear-gradient(180deg,#f8fbff,#fff); border-bottom:1px solid #e2eaf4; }
.installation-management-kpis article { min-height:92px; padding:.85rem; border:1px solid #dfe8f4; border-radius:.9rem; background:#fff; box-shadow:0 8px 18px rgba(16,24,40,.045); }
.installation-management-kpis small { display:block; color:#667085; font-size:.62rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.installation-management-kpis strong { display:block; margin:.22rem 0; color:#0b3b91; font-size:1.4rem; line-height:1; }
.installation-management-kpis span { display:block; color:#667085; font-size:.66rem; line-height:1.25; }
.installation-management-kpis .status-completed { border-color:#9ee4b8; background:#f0fff5; }
.installation-management-kpis .status-completed strong { color:#198754; font-size:1.05rem; }
.installation-management-kpis .status-on-track { border-color:#a9c7ff; background:#eef5ff; }
.installation-management-kpis .status-on-track strong { color:#0b3b91; font-size:1.05rem; }
.installation-management-kpis .status-behind { border-color:#ffc9cf; background:#fff5f6; }
.installation-management-kpis .status-behind strong { color:#dc3545; font-size:1.05rem; }
.installation-overall-remark { padding:1rem; border:1px solid #dfe8f4; border-left:5px solid #0b3b91; border-radius:.8rem; background:#f8fbff; }
.installation-overall-remark strong { display:block; margin-bottom:.35rem; color:#102a55; text-transform:uppercase; letter-spacing:.05em; font-size:.72rem; }
.installation-overall-remark p { margin:0; color:#344054; }
.installation-progress-table .installation-remark-row td { background:#fffaf0; color:#102a55; font-weight:700; }
.installation-progress-table .installation-remark-row input { min-width:120px; background:#fff; }
.installation-management-table { border:1px solid #b9c9dd; color:#102a55; }
.installation-management-table th { background:#0b3b91!important; color:#fff!important; border:1px solid #214f99!important; font-size:.68rem; text-transform:uppercase; letter-spacing:.04em; vertical-align:middle; }
.installation-management-table td { border:1px solid #cfd9e8!important; vertical-align:middle; background:#fff; color:#102a55; }
.installation-management-table tbody tr:nth-child(even) td { background:#f8fbff; }
.installation-management-table td:nth-child(5) { min-width:360px; white-space:normal; line-height:1.35; color:#24364b; }
.installation-management-table td.text-center { font-weight:800; color:#0b3b91; text-align:center!important; }
.balance-value { text-align:center!important; font-weight:900!important; }
.balance-negative { color:#198754!important; }
.balance-zero { color:#344054!important; }
.balance-positive { color:#dc3545!important; }
.installation-dashboard-card { padding:1rem; border:1px solid #dfe8f4; border-radius:.9rem; background:#fff; box-shadow:0 8px 18px rgba(16,24,40,.045); }
.dashboard-card-title { display:flex; align-items:center; gap:.65rem; margin-bottom:.8rem; }
.dashboard-card-title span { display:grid; place-items:center; width:1.85rem; height:1.85rem; border-radius:.55rem; background:#0b3b91; color:#fff; font-size:.68rem; font-weight:900; }
.dashboard-card-title h4 { margin:0; color:#102a55; font-size:.82rem; font-weight:900; text-transform:uppercase; letter-spacing:.06em; }
.installation-trend-bars { display:grid; gap:.55rem; }
.trend-row { display:grid; grid-template-columns:minmax(120px,220px) 1fr 52px; align-items:center; gap:.65rem; color:#102a55; font-size:.76rem; }
.trend-row strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.trend-track { height:12px; border-radius:999px; background:#eef2f7; overflow:hidden; }
.trend-track i { display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,#0b3b91,#20a6df); }
.trend-row span { text-align:right; font-weight:900; color:#0b3b91; }
.attention-good { color:#198754; font-weight:800; }
.attention-danger { color:#dc3545; font-weight:800; }
.attention-normal { color:#0b3b91; font-weight:800; }
.compact-privilege-section .compact-section-band { padding:.72rem 1rem; gap:.75rem; border-radius:.8rem .8rem 0 0; }
.compact-privilege-section .compact-section-band > span { width:1.75rem; height:1.75rem; border-radius:.5rem; font-size:.78rem; }
.compact-privilege-section .compact-section-band h2 { font-size:.82rem; margin-bottom:.05rem; letter-spacing:.025em; }
.compact-privilege-section .compact-section-band p { font-size:.68rem; }
.compact-privilege-matrix { font-size:.72rem; margin-bottom:.65rem; }
.compact-privilege-matrix > :not(caption) > * > * { padding:.42rem .48rem; }
.compact-privilege-matrix th { font-size:.62rem; letter-spacing:.04em; vertical-align:middle; }
.compact-privilege-matrix th small { font-size:.55rem; line-height:1.1; max-width:70px; white-space:normal; margin-inline:auto; }
.compact-privilege-matrix td:first-child,.compact-privilege-matrix th:first-child { min-width:145px; position:sticky; left:0; z-index:1; background:#fff; }
.compact-privilege-matrix thead th:first-child { background:#f7f9f8; z-index:2; }
.compact-privilege-matrix .form-check-input { width:15px!important; height:15px!important; min-height:15px!important; margin:0!important; padding:0!important; }
.compact-privilege-section form { font-size:.78rem; }
.compact-email-notification-section .compact-section-band { padding:.72rem 1rem; gap:.75rem; border-radius:.8rem .8rem 0 0; }
.compact-email-notification-section .compact-section-band > span { width:1.75rem; height:1.75rem; border-radius:.5rem; font-size:.78rem; }
.compact-email-notification-section .compact-section-band h2 { font-size:.82rem; margin-bottom:.05rem; letter-spacing:.025em; }
.compact-email-notification-section .compact-section-band p { font-size:.68rem; }
.compact-email-notification-section form { font-size:.76rem; }
.compact-email-notification-matrix { font-size:.72rem; margin-bottom:.55rem; }
.compact-email-notification-matrix > :not(caption) > * > * { padding:.38rem .45rem; }
.compact-email-notification-matrix th { font-size:.58rem; letter-spacing:.04em; vertical-align:middle; }
.compact-email-notification-matrix th small { display:block; max-width:72px; margin-inline:auto; color:#35445a; font-size:.55rem; line-height:1.08; white-space:normal; }
.compact-email-notification-matrix td:first-child,.compact-email-notification-matrix th:first-child { min-width:210px; position:sticky; left:0; z-index:1; background:#fff; }
.compact-email-notification-matrix thead th:first-child { background:#f7f9fc; z-index:2; }
.compact-email-notification-matrix tbody td:first-child strong { font-size:.72rem; }
.compact-email-notification-matrix .form-check-input { width:15px!important; height:15px!important; min-width:15px!important; min-height:15px!important; margin:0!important; padding:0!important; border-radius:.25rem; }
.compact-email-notification-section .table-responsive { max-height:430px; border:1px solid #e3eaf3; border-radius:.75rem; }
.compact-email-notification-section .btn { font-size:.72rem; padding:.45rem .8rem; }
.weekly-recipient-card{display:flex;align-items:flex-start;gap:.55rem;border:1px solid #e3eaf3;border-radius:.75rem;padding:.55rem .65rem;background:#f8fbff;min-height:58px}
.weekly-recipient-card .form-check-input{width:15px!important;height:15px!important;min-width:15px!important;min-height:15px!important;margin-top:.16rem!important;padding:0!important}
.weekly-recipient-card strong{display:block;font-size:.82rem;line-height:1.1;color:#14213d}
.weekly-recipient-card small{display:block;font-size:.68rem;line-height:1.15;color:#617083}
@page{size:A4 portrait;margin:8mm}
@media print{
    html,body{background:#fff!important}
    nav,.welcome-row,.gantt-project-editor,.gantt-task-editor,.toast,.modal,.alert{display:none!important}
    .page-shell{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
    .gantt-shell{font-family:Arial,Helvetica,sans-serif!important}
    .gantt-export-area{display:block!important;width:194mm!important;max-width:194mm!important;min-width:0!important;border:1px solid #cfd9e8!important;border-radius:0!important;box-shadow:none!important;break-inside:auto!important}
    .gantt-management-report{background:#fff!important}
    .gantt-report-cover{padding:1rem 1.15rem!important;background:linear-gradient(120deg,#07275f 0%,#144a9a 58%,#1c9ed6 100%)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
    .gantt-report-cover h2{font-size:1.15rem!important}
    .gantt-report-cover p,.gantt-report-meta span{font-size:.58rem!important}
    .gantt-report-right img{width:48px!important;height:48px!important}
    .gantt-report-status{font-size:.56rem!important;min-width:105px!important;padding:.32rem .5rem!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
    .gantt-report-kpis{grid-template-columns:repeat(3,1fr)!important;gap:.45rem!important;padding:.65rem .8rem!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
    .gantt-kpi{min-height:62px!important;padding:.5rem!important;border-radius:.55rem!important;box-shadow:none!important}
    .gantt-kpi small{font-size:.48rem!important}
    .gantt-kpi strong{font-size:1rem!important}
    .gantt-kpi span{font-size:.5rem!important}
    .gantt-report-section-title{padding:.65rem .8rem .2rem!important}
    .gantt-report-section-title span{width:1.45rem!important;height:1.45rem!important;border-radius:.4rem!important;font-size:.55rem!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
    .gantt-report-section-title h3{font-size:.7rem!important}
    .gantt-legend{font-size:.5rem!important;gap:.35rem!important}
    .gantt-chart-wrap{overflow:visible!important;padding:.65rem .8rem 1.4rem!important}
    .gantt-date-row,.gantt-row{grid-template-columns:38mm minmax(0,1fr)!important;gap:2mm!important}
    .gantt-today-overlay{grid-template-columns:38mm minmax(0,1fr)!important}
    .gantt-date-row{padding:.45rem .5rem .18rem!important}
    .gantt-date-scale{height:4.6rem!important}
    .gantt-date-scale b{font-size:.42rem!important;top:1.75rem!important}
    .gantt-row{min-height:34px!important;padding:.22rem 0!important}
    .gantt-label strong{font-size:.58rem!important;line-height:1.12!important}
    .gantt-label small{font-size:.48rem!important;line-height:1.12!important}
    .gantt-lane{height:20px!important}
    .gantt-bar{top:2px!important;bottom:2px!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
    .gantt-bar em{font-size:.5rem!important}
    .gantt-today-overlay span{border-left-width:2px!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
    .gantt-today-overlay span em{font-size:.43rem!important;top:calc(100% + .2rem)!important}
    .gantt-risk-export{padding:.65rem .8rem!important;break-before:auto!important}
    .gantt-risk-export h3{font-size:.68rem!important;margin-bottom:.35rem!important}
    .gantt-risk-export table{box-shadow:none!important;border-radius:0!important;white-space:normal!important}
    .gantt-risk-export th,.gantt-risk-export td{padding:.28rem .35rem!important;font-size:.48rem!important;white-space:normal!important}
    .gantt-risk-export th{background:#0b3b91!important;color:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
    .gantt-report-footer{font-size:.48rem!important;padding:.45rem .8rem!important}
    .section-band{display:none!important}
}
@media(max-width: 1000px){.ami-shell .metric-grid.ami-metrics{grid-template-columns:repeat(2,1fr)}#ami-map{min-height:560px}}
@media(max-width: 560px){.ami-shell .metric-grid.ami-metrics{grid-template-columns:1fr}.ami-filter .form-select{width:100%}.ami-column-grid{grid-template-columns:1fr}}
.hod-reviewed-form label { position:relative; display:grid; place-items:center; width:32px; height:32px; margin:0; padding:0; border:1px solid #8ea0b8; border-radius:.45rem; background:#fff; color:#50627a; cursor:pointer; }
.hod-reviewed-form .form-check-input { position:absolute!important; width:1px!important; height:1px!important; min-height:0!important; margin:0!important; padding:0!important; opacity:0; pointer-events:none; }
.hod-reviewed-form label span { width:18px; height:18px; overflow:hidden; font-size:0; }
.hod-reviewed-form label span::before { content:'✓'; display:grid; place-items:center; width:18px; height:18px; border:2px solid currentColor; border-radius:50%; font-size:11px; font-weight:900; line-height:1; }
.hod-reviewed-form label:has(.form-check-input:checked) { border-color:#198754; background:#198754; color:#fff; box-shadow:0 0 0 2px rgba(25,135,84,.12); }
.listing-business-status { display:flex; align-items:flex-start; gap:.45rem; max-width:175px; line-height:1.15; }
.listing-business-status .business-indicator { flex:0 0 auto; width:11px; height:11px; margin-top:.15rem; border-radius:50%; background:var(--business-color); box-shadow:inset 0 0 0 1px rgba(0,0,0,.08); }
.listing-business-status span:last-child { display:grid; gap:.15rem; }
.listing-business-status small { color:#7b879a; font-size:.58rem; font-weight:800; letter-spacing:.06em; }
.listing-business-status strong { font-size:.72rem; overflow-wrap:anywhere; }
.listing-business-status em { color:#657187; font-size:.67rem; font-style:normal; }
.fsr-request-list { width:100%; min-width:1460px; table-layout:fixed; }
.fsr-request-list > :not(caption) > * > * { padding:.85rem .75rem; vertical-align:middle; }
.fsr-request-list th:nth-child(1),.fsr-request-list td:nth-child(1){width:230px}
.fsr-request-list th:nth-child(2),.fsr-request-list td:nth-child(2){width:145px}
.fsr-request-list th:nth-child(3),.fsr-request-list td:nth-child(3){width:260px;white-space:normal}
.fsr-request-list th:nth-child(4),.fsr-request-list td:nth-child(4){width:65px;text-align:center}
.fsr-request-list th:nth-child(5),.fsr-request-list td:nth-child(5){width:175px}
.fsr-request-list th:nth-child(6),.fsr-request-list td:nth-child(6){width:265px}
.fsr-request-list th:nth-child(7),.fsr-request-list td:nth-child(7){width:105px;white-space:nowrap}
.fsr-request-list th:nth-child(8),.fsr-request-list td:nth-child(8){width:215px}
.fsr-request-list td:nth-child(2) strong,.fsr-request-list td:nth-child(3) strong,.fsr-request-list td:nth-child(3) small{overflow-wrap:anywhere}
.fsr-request-list thead tr { border-bottom:2px solid #cbd5e1; }
.fsr-request-list tbody tr { border-bottom:1px solid #d8e0ea; }
.fsr-request-list tbody tr:last-child { border-bottom:0; }
.fsr-request-list th,.fsr-request-list td { border-right:1px solid #d8e0ea; }
.fsr-request-list th:last-child,.fsr-request-list td:last-child { border-right:0; }
.financial-stack,.status-stack { display: grid; align-content: start; justify-items: start; gap: .55rem; min-width: 220px; }
.status-line { display: flex; align-items: center; gap: .5rem; white-space: nowrap; }
.status-line > strong { min-width: 72px; color: #111827; font-size: .75rem; }
.financial-stack span { display: grid; font-weight: 700; line-height: 1.2; }
.financial-stack small { color: #7b879a; font-size: .67rem; font-weight: 800; letter-spacing: .06em; }
.listing-actions,.table td > .d-flex.flex-wrap.gap-1 { display: flex; flex-wrap: wrap; gap: .35rem; min-width: 150px; }
.table thead th { color: #526078; font-size: .72rem; letter-spacing: .045em; text-transform: uppercase; white-space: nowrap; }
.prf-section-nav { position: sticky; z-index: 9; top: 76px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .45rem; margin-bottom: 1rem; padding: .55rem; border: 1px solid #dfe5ee; border-radius: 1rem; background: rgba(255,255,255,.96); box-shadow: 0 8px 24px rgba(8,39,94,.08); backdrop-filter: blur(8px); }
.prf-section-nav a { display: flex; align-items: center; justify-content: center; gap: .5rem; min-height: 44px; padding: .55rem .7rem; border-radius: .7rem; color: #42516a; background: #f3f6fa; font-size: .78rem; font-weight: 800; text-align: center; text-transform: uppercase; text-decoration: none; }
.prf-section-nav a:hover { color: #fff; background: var(--cts-navy); }
.prf-section-nav span { color: var(--cts-navy); }
.prf-section-nav a:hover span { color: #fff; }
.prf-form-section { scroll-margin-top: 150px; overflow: hidden; }
.prf-form-page fieldset > .border,.prf-form-page article.border { border-color: #dfe5ee!important; background: #f8faff; }
.hod-kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.hod-kpi { padding:1.25rem; border:1px solid #dfe5ee; border-radius:1rem; background:var(--theme-panel-bg,#fff); box-shadow:0 10px 30px rgba(8,39,94,.06); }
.hod-kpi small,.hod-kpi span { display:block; color:#6b778a; }
.hod-kpi strong { display:block; margin:.4rem 0; color:var(--cts-navy); font-size:1.55rem; }
.hod-kpi-emphasis { border:2px solid var(--cts-navy); background:linear-gradient(135deg,#eef4ff,#fff); }
.performance-table th,.performance-table td { vertical-align:middle; }
.performance-score { min-width:130px; }
.performance-score strong { display:block; color:var(--cts-navy,#123); margin-bottom:.35rem; }
.performance-score i { display:block; height:8px; border-radius:999px; background:#edf2f7; overflow:hidden; }
.performance-score b { display:block; height:100%; border-radius:999px; }
.hod-commercial-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem 1.5rem; }
.hod-commercial-grid > div { display:grid; grid-template-columns:12px minmax(165px,1fr) 2fr 28px; align-items:center; gap:.55rem; }
.hod-commercial-grid > div > span:nth-child(2) { font-size:.78rem; font-weight:700; }
.hod-commercial-grid i:not(.hod-commercial-dot) { height:8px; overflow:hidden; border-radius:99px; background:#e7ecf3; }
.hod-commercial-grid b { display:block; height:100%; border-radius:99px; }
.hod-commercial-dot,.hod-portfolio-status > i,.hod-business-badge > i { width:10px; height:10px; border-radius:50%; background:var(--status-color); box-shadow:inset 0 0 0 1px rgba(0,0,0,.08); }
.hod-portfolio-status { display:flex; align-items:center; gap:.6rem; }
.hod-portfolio-status > i { width:14px; height:14px; }
.hod-portfolio-status span,.hod-business-badge { display:grid; }
.hod-portfolio-status small,.hod-business-badge small { color:#6b778a; font-size:.7rem; }
.hod-business-badge { grid-template-columns:12px 1fr; align-items:center; gap:.25rem .45rem; min-width:155px; font-weight:700; white-space:normal; }
.hod-business-badge small { grid-column:2; }
.hod-bars { display:grid; gap:.8rem; }
.hod-bars > div { display:grid; grid-template-columns:minmax(150px,1fr) 3fr 36px; align-items:center; gap:.75rem; }
.hod-bars span { font-size:.8rem; font-weight:700; }
.hod-bars i { height:10px; overflow:hidden; border-radius:99px; background:#e7ecf3; }
.hod-bars b { display:block; height:100%; border-radius:99px; background:linear-gradient(90deg,var(--cts-navy),var(--cts-blue)); }
.gantt-months { display:grid; grid-template-columns:220px repeat(12,1fr); gap:0; margin-bottom:.5rem; color:#6b778a; font-size:.65rem; text-align:center; }
.hod-gantt { display:grid; gap:.45rem; }
.gantt-row { display:grid; grid-template-columns:220px 1fr; align-items:start; min-height:42px; }
.gantt-row a { display:grid; padding-right:1rem; }
.gantt-row small { overflow:visible; color:#6b778a; text-overflow:clip; white-space:normal; overflow-wrap:anywhere; }
.gantt-track { position:relative; height:28px; background:repeating-linear-gradient(90deg,#f3f5f8 0,#f3f5f8 calc(8.333% - 1px),#dce3ec calc(8.333% - 1px),#dce3ec 8.333%); border-radius:.4rem; overflow:hidden; }
.gantt-track i { position:absolute; top:6px; height:16px; min-width:5px; border-radius:99px; background:linear-gradient(90deg,#0b3b91,#00a1df); }

@media (max-width: 767.98px) {
    .fsr-tabs { display: grid; grid-template-columns: 1fr; }
    .commercial-grid { grid-template-columns: 1fr; }
    .sticky-save { width: 100%; align-items: stretch; flex-direction: column; }
    .sticky-save .btn { width: 100%; }
    .cost-row { grid-template-columns: 1fr; gap: .45rem; }
    .survey-table tr[data-survey-row] { grid-template-columns: 1fr; }
    .survey-table .survey-field { grid-column: 1 / -1; }
    .survey-view-item { grid-template-columns: 1fr; gap: .25rem; }
    .fsr-shell textarea[name="commercial_note"] { height:200px; min-height:200px; }
    .prf-section-nav { position: static; grid-template-columns: repeat(2,minmax(0,1fr)); }
    .hod-kpi-grid { grid-template-columns:1fr; }
    .hod-commercial-grid { grid-template-columns:1fr; }
    .gantt-months { display:none; }
    .gantt-row { grid-template-columns:1fr; gap:.35rem; }
}
.fsr-action-icon { width:32px; height:32px; padding:6px; display:inline-flex; align-items:center; justify-content:center; }
.fsr-action-icon svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.commercial-grid .commercial-net-revenue { border:2px solid var(--cts-navy); background:#eaf1ff; }
.commercial-grid .commercial-net-revenue small { font-weight:800; font-size:1rem; }
.commercial-grid .commercial-net-revenue strong { font-size:1.45rem; font-weight:800; }
.commercial-assessment { display:grid; grid-template-columns:110px minmax(190px,.8fr) minmax(280px,2fr); border:1px solid #dce3ed; border-radius:.75rem; overflow:hidden; background:#fff; }
.commercial-assessment > div { padding:1rem; border-right:1px solid #e1e6ee; }
.commercial-assessment > div:last-child { border-right:0; }
.commercial-assessment small { display:block; margin-bottom:.4rem; color:#6b778a; font-weight:700; }
.commercial-assessment strong { color:var(--cts-navy); }
@media(max-width:767px){.commercial-assessment{grid-template-columns:1fr}.commercial-assessment>div{border-right:0;border-bottom:1px solid #e1e6ee}.commercial-assessment>div:last-child{border-bottom:0}}
