:root{
  --p4:#313a46;
  --p4-dark:#232a33;
  --p4-soft:#eef1f4;
  --p4-accent:#b03a2e;
  --ink:#1f2937;
  --muted:#64748b;
  --bs-primary:#313a46;
  --bs-primary-rgb:49,58,70;
  --bs-link-color:#313a46;
  --bs-link-hover-color:#b03a2e;
  --bs-btn-bg:#313a46;
  --bs-btn-border-color:#313a46;
}
body{background:#f5f7fb;color:var(--ink)}
a{color:var(--p4)}
a:hover{color:var(--p4-accent)}
.p4-nav{background:linear-gradient(105deg,var(--p4-dark),var(--p4))}
.brand-lockup{display:flex;align-items:center;gap:.75rem;text-decoration:none}
.brand-logo{width:42px!important;height:42px!important;max-width:42px!important;max-height:42px!important;object-fit:contain;display:block;flex:0 0 42px}
.brand-text{display:flex;flex-direction:column;line-height:1.05}
.brand-title{font-size:1rem;font-weight:800;letter-spacing:.01em;color:#fff}
.brand-subtitle{font-size:.72rem;color:rgba(255,255,255,.75);font-weight:600}
.hero{background:linear-gradient(135deg,var(--p4-dark),var(--p4) 60%, var(--p4-accent));color:#fff;border-radius:28px;overflow:hidden;box-shadow:0 16px 38px rgba(22,30,40,.14)}
.hero .lead{color:rgba(255,255,255,.83)}
.hero-badge{display:inline-block;padding:.55rem .95rem;border:1px solid rgba(255,255,255,.55);border-radius:999px;background:rgba(255,255,255,.14);color:#fff;font-weight:700;letter-spacing:.01em}
.feature-card,.portal-card,.step-card{border:0;border-radius:18px;box-shadow:0 10px 28px rgba(15,35,65,.07)}
.step-card{background:#fff;margin-bottom:1rem}
.step-card .card-header{background:#fff;border-bottom:1px solid #eef2f7;font-weight:750;padding:1rem 1.15rem}
.step-pill{display:flex;align-items:center;gap:.55rem;padding:.7rem .8rem;border-radius:12px;color:var(--muted);background:#fff;border:1px solid #e6ebf2;text-decoration:none}
.step-pill.active{background:var(--p4);border-color:var(--p4);color:#fff}
.step-pill.done{background:#eafaf5;border-color:#bcebdc;color:#08785e}
.form-label{font-weight:650;font-size:.9rem}
.required::after{content:' *';color:#dc3545}
.section-note{font-size:.86rem;color:var(--muted)}
.status-box{border-radius:16px;background:var(--p4-soft);padding:1rem}
.review-banner{border-left:4px solid #f0ad4e;background:#fff8e6;padding:1rem;border-radius:10px}
.table>:not(caption)>*>*{vertical-align:middle}
.map-box{height:320px;background:#e9eef5;border-radius:16px;overflow:hidden;border:1px solid #dfe6ee}
#pp-map{height:100%;width:100%}
.nav-steps{position:sticky;top:1rem}
.btn-primary{--bs-btn-bg:var(--p4);--bs-btn-border-color:var(--p4);--bs-btn-hover-bg:var(--p4-dark);--bs-btn-hover-border-color:var(--p4-dark);--bs-btn-active-bg:var(--p4-dark);--bs-btn-active-border-color:var(--p4-dark)}
.btn-outline-primary{--bs-btn-color:var(--p4);--bs-btn-border-color:var(--p4);--bs-btn-hover-bg:var(--p4);--bs-btn-hover-border-color:var(--p4);--bs-btn-active-bg:var(--p4-dark);--bs-btn-active-border-color:var(--p4-dark);--bs-btn-active-color:#fff}
.text-primary{color:var(--p4)!important}
.bg-primary{background-color:var(--p4)!important}
.badge-accent,.text-bg-primary{background-color:var(--p4)!important;color:#fff!important}
.accent-text{color:var(--p4-accent)!important}
.btn-accent{--bs-btn-color:#fff;--bs-btn-bg:var(--p4-accent);--bs-btn-border-color:var(--p4-accent);--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#952f24;--bs-btn-hover-border-color:#952f24;--bs-btn-active-bg:#7f281f;--bs-btn-active-border-color:#7f281f}
@media(max-width:991px){.nav-steps{position:static}.map-box{height:240px}.brand-logo{height:36px}.brand-subtitle{display:none}}


.form-control,.form-select{border-radius:.85rem;padding:.75rem .95rem;border-color:#d8e0ea}
.form-control:focus,.form-select:focus{border-color:rgba(49,58,70,.5);box-shadow:0 0 0 .2rem rgba(49,58,70,.12)}
.btn{border-radius:.85rem;font-weight:650}
.btn-lg{padding:.85rem 1.1rem}
.portal-card-dark{background:linear-gradient(160deg,var(--p4-dark),var(--p4));color:#fff;border:0;border-radius:22px;box-shadow:0 18px 40px rgba(18,26,35,.18)}
.portal-card-dark p,.portal-card-dark .text-muted,.portal-card-dark .small{color:rgba(255,255,255,.78)!important}
.portal-card-dark .list-group-item{background:transparent;color:#fff;border-color:rgba(255,255,255,.12)}
.auth-shell{min-height:calc(100vh - 180px)}
.auth-brand{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}
.auth-brand img{height:64px;width:auto;display:block}
.auth-card{border-radius:22px;overflow:hidden}
.auth-side-list{display:grid;gap:.85rem;margin-top:1.4rem}
.auth-side-item{display:flex;gap:.85rem;align-items:flex-start;padding:.85rem 1rem;border-radius:16px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.08)}
.auth-side-icon{flex:0 0 38px;height:38px;display:grid;place-items:center;border-radius:12px;background:rgba(255,255,255,.14);font-weight:800}
.auth-tips{background:#f7f9fc;border:1px solid #e8edf4;border-radius:16px;padding:1rem}
.section-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}
.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.metric-card{background:#fff;border-radius:18px;padding:1.05rem 1.1rem;box-shadow:0 10px 28px rgba(15,35,65,.07)}
.metric-card .label{font-size:.82rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700}
.metric-card .value{font-size:1.8rem;font-weight:800;line-height:1.1;margin-top:.35rem;color:var(--p4)}
.metric-card .sub{font-size:.86rem;color:var(--muted)}
.review-shell{background:linear-gradient(150deg,#26303b,#313a46);border-radius:24px;color:#fff;padding:1.5rem;box-shadow:0 16px 38px rgba(18,26,35,.18)}
.review-shell .text-muted,.review-shell .small{color:rgba(255,255,255,.75)!important}
.review-shell a:not(.btn){color:#fff}
.review-toolbar .btn-group{background:#fff;border-radius:14px;padding:.25rem;box-shadow:0 10px 28px rgba(15,35,65,.07)}
.review-toolbar .btn-group .btn{border-radius:10px}
.queue-table thead th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b}
.subtle-chip{display:inline-flex;align-items:center;gap:.45rem;padding:.38rem .65rem;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.14);font-size:.8rem;font-weight:700}
.info-list{display:grid;gap:.85rem}
.info-row{display:flex;justify-content:space-between;gap:1rem;padding:.85rem 0;border-top:1px solid #edf2f7}
.info-row:first-child{border-top:0;padding-top:0}
.info-row .label{font-size:.82rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700}
.info-row .value{text-align:right;font-weight:600}
.footer-brand{display:flex;align-items:center;gap:.85rem}
.footer-brand>img{width:42px!important;height:42px!important;max-width:42px!important;max-height:42px!important;object-fit:contain;display:block;flex:0 0 42px}
.footer-wrap{display:flex;justify-content:space-between;align-items:center;gap:1.25rem;flex-wrap:wrap}
@media(max-width:991px){.metric-grid{grid-template-columns:1fr}.auth-shell{min-height:auto}.review-shell{padding:1.2rem}}

@media print{
  .brand-logo{width:30px!important;height:30px!important;max-width:30px!important;max-height:30px!important;flex-basis:30px!important}
  .footer-brand>img{width:30px!important;height:30px!important;max-width:30px!important;max-height:30px!important;flex-basis:30px!important}
  footer{break-inside:avoid;page-break-inside:avoid}
  .footer-wrap{break-inside:avoid;page-break-inside:avoid}
}


/* --- Full-height application layout --- */
html,body{min-height:100%}
body{min-height:100vh;display:flex;flex-direction:column}
body>nav{flex:0 0 auto}
body>main{flex:1 0 auto;width:100%}
body>footer{flex:0 0 auto;margin-top:auto!important}

/* --- Public pre-plan help system --- */
.preplan-help-intro{border:1px solid #dfe5ec;background:linear-gradient(135deg,#f8fafc,#eef1f4);border-radius:16px;padding:1rem 1.1rem;margin-bottom:1rem;display:flex;gap:.9rem;align-items:flex-start}
.preplan-help-intro .help-mark{width:38px;height:38px;flex:0 0 38px;border-radius:12px;background:var(--p4);color:#fff;display:grid;place-items:center;font-weight:800}
.preplan-help-intro p{margin:0;color:var(--muted);font-size:.9rem}
.section-help-strip{margin:-.15rem 0 1.15rem;padding:.8rem .95rem;border-radius:12px;background:#f7f9fb;border-left:4px solid var(--p4-accent);font-size:.88rem;color:#536172;line-height:1.45}
.section-help-strip strong{color:var(--ink)}
.step-card>.card-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.section-help-btn,.field-help-btn{appearance:none;border:1px solid #cfd7e1;background:#fff;color:var(--p4);font-weight:800;cursor:pointer;transition:.15s ease}
.section-help-btn:hover,.field-help-btn:hover{background:var(--p4);border-color:var(--p4);color:#fff}
.section-help-btn{border-radius:999px;padding:.3rem .65rem;font-size:.74rem;line-height:1.1;white-space:nowrap}
.field-help-btn{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;font-size:.72rem;line-height:1;padding:0;margin-left:.4rem;vertical-align:1px}
.field-help-btn:focus,.section-help-btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(49,58,70,.15)}
.help-offcanvas{width:min(430px,92vw)!important}
.help-offcanvas .offcanvas-header{background:var(--p4);color:#fff}
.help-offcanvas .btn-close{filter:invert(1) grayscale(100%) brightness(200%)}
.help-kicker{text-transform:uppercase;letter-spacing:.07em;font-size:.72rem;font-weight:800;color:var(--p4-accent);margin-bottom:.35rem}
.help-block{border-radius:14px;background:#f7f9fb;border:1px solid #e5eaf0;padding:1rem;margin-bottom:1rem}
.help-block h6{font-weight:800;margin-bottom:.4rem}
.help-block p{color:#536172;margin:0;line-height:1.5}
.help-unknown{border-left:4px solid #d5a021;background:#fff8e5;border-radius:12px;padding:.8rem .9rem;color:#675218;font-size:.86rem}
.help-guide-list{padding-left:1.15rem;margin-bottom:0}
.help-guide-list li{margin-bottom:.55rem;color:#536172}
.help-guide-list li:last-child{margin-bottom:0}
.help-sidebar-btn{border-radius:12px}
.status-guide{display:flex;flex-wrap:wrap;gap:.65rem 1.1rem;align-items:center}
.status-guide-item{display:flex;align-items:center;gap:.45rem;font-size:.86rem;color:var(--muted)}
.status-dot{width:9px;height:9px;border-radius:50%;background:var(--p4)}
@media print{.section-help-btn,.field-help-btn,.preplan-help-intro,.help-sidebar-btn,.offcanvas{display:none!important}}


/* --- Review workflow / user notes --- */
.workflow-alert{border-radius:14px;border-width:1px;padding:1rem 1.1rem}
.status-guide-flow{gap:.55rem}
.status-arrow{color:#a6afba;font-weight:800}
.reviewer-notes-card{background:#fff;border:1px solid #dfe5ec;border-left:5px solid var(--p4);border-radius:18px;padding:1.1rem 1.15rem;box-shadow:0 10px 28px rgba(15,35,65,.07)}
.reviewer-notes-card.changes-requested{border-left-color:#d5a021;background:#fffdf7}
.reviewer-notes-card.approved{border-left-color:#198754}
.reviewer-notes-kicker{text-transform:uppercase;letter-spacing:.07em;font-size:.7rem;font-weight:800;color:var(--p4-accent);margin-bottom:.25rem}
.reviewer-notes-card.changes-requested .reviewer-notes-kicker{color:#8a6813}
.reviewer-notes-card h5{font-weight:800;margin-bottom:.65rem}
.reviewer-notes-text{color:#465363;line-height:1.55;white-space:normal}
.reviewer-notes-action{margin-top:.85rem;padding:.75rem .8rem;border-radius:12px;background:#fff5d8;color:#6b5517;font-size:.85rem}
@media(max-width:767px){.status-guide-flow{align-items:flex-start}.status-arrow{display:none}.status-guide-flow{display:grid;grid-template-columns:1fr 1fr;gap:.55rem 1rem}}
@media print{.reviewer-notes-card{break-inside:avoid;page-break-inside:avoid}}

/* --- Stronger navigation and review actions --- */
.nav-action-btn{min-height:40px;padding:.55rem .9rem;display:inline-flex;align-items:center;justify-content:center;font-size:.92rem}
.back-nav-btn{min-height:44px;padding:.65rem .95rem;font-weight:750;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;box-shadow:0 6px 16px rgba(15,35,65,.06)}
.review-actions{display:flex;justify-content:flex-end;align-items:center;gap:.5rem;white-space:nowrap}
.review-main-btn,.review-tab-btn{min-height:42px;padding:.62rem .85rem;font-size:.9rem;display:inline-flex;align-items:center;justify-content:center;gap:.35rem}
.review-main-btn{min-width:82px}
.review-tab-btn{min-width:104px}
@media(max-width:767px){.review-actions{flex-direction:column;align-items:stretch;min-width:116px}.review-main-btn,.review-tab-btn{width:100%}.nav-action-btn{width:100%;margin:.2rem 0!important}}
@media print{.back-nav-btn,.review-actions,.nav-action-btn{display:none!important}}

/* --- Review button contrast fixes --- */
.review-shell .btn-light{color:var(--p4)!important;background:#fff!important;border-color:#fff!important}
.review-shell .btn-light:hover{color:#fff!important;background:var(--p4-accent)!important;border-color:var(--p4-accent)!important}
.review-shell .btn-outline-primary{color:var(--p4)!important;background:#fff!important;border-color:var(--p4)!important}
.review-shell .btn-outline-primary:hover,.review-shell .btn-outline-primary.active{color:#fff!important;background:var(--p4)!important;border-color:var(--p4)!important}
.review-preplan-btn{min-height:46px;padding:.72rem 1rem;font-weight:750;display:flex;align-items:center;justify-content:center;gap:.45rem}


/* --- Global important-message modal --- */
.p4-message-modal .modal-dialog{max-width:520px}
.p4-message-modal .modal-content{border:0;border-radius:22px;box-shadow:0 24px 70px rgba(16,24,40,.28);overflow:hidden}
.p4-message-modal .modal-body{border-top:6px solid var(--p4)}
.p4-message-modal[data-message-type="success"] .modal-body{border-top-color:#198754}
.p4-message-modal[data-message-type="danger"] .modal-body{border-top-color:#dc3545}
.p4-message-modal[data-message-type="warning"] .modal-body{border-top-color:#d5a021}
.p4-message-modal[data-message-type="info"] .modal-body{border-top-color:var(--p4)}
.p4-message-mark{width:54px;height:54px;margin:0 auto 1rem;border-radius:50%;background:var(--p4-soft);position:relative}
.p4-message-mark::after{content:'!';position:absolute;inset:0;display:grid;place-items:center;font-size:1.65rem;font-weight:900;color:var(--p4)}
.p4-message-modal[data-message-type="success"] .p4-message-mark{background:#e8f5ee}
.p4-message-modal[data-message-type="success"] .p4-message-mark::after{content:'✓';color:#198754}
.p4-message-modal[data-message-type="danger"] .p4-message-mark{background:#fdecec}
.p4-message-modal[data-message-type="danger"] .p4-message-mark::after{content:'!';color:#dc3545}
.p4-message-modal[data-message-type="warning"] .p4-message-mark{background:#fff6d9}
.p4-message-modal[data-message-type="warning"] .p4-message-mark::after{content:'!';color:#8a6813}
.p4-message-copy{font-size:1.02rem;line-height:1.55;color:#354052;font-weight:600}
.p4-message-modal .modal-backdrop.show{opacity:.58}
@media(max-width:575px){.p4-message-modal .modal-dialog{margin:1rem}.p4-message-modal .modal-body{padding:1.5rem!important}}
@media print{.p4-message-modal{display:none!important}}


/* --- v11 review filters: independent, colored pills --- */
.review-filter-tabs{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;padding:.3rem;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:16px}
.review-filter{min-height:42px;padding:.62rem 1rem;border-radius:11px!important;display:inline-flex;align-items:center;justify-content:center;text-decoration:none!important;font-weight:800;line-height:1;border:2px solid transparent;background:#fff;box-shadow:0 3px 10px rgba(12,20,30,.08);transition:transform .14s ease,box-shadow .14s ease,background .14s ease,color .14s ease}
.review-filter:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(12,20,30,.14)}
.review-filter.filter-open{color:#9a3228!important;border-color:#b03a2e;background:#fff6f4}
.review-filter.filter-open:hover,.review-filter.filter-open.active{color:#fff!important;background:#b03a2e;border-color:#b03a2e}
.review-filter.filter-approved{color:#157347!important;border-color:#198754;background:#f0faf5}
.review-filter.filter-approved:hover,.review-filter.filter-approved.active{color:#fff!important;background:#198754;border-color:#198754}
.review-filter.filter-all{color:#313a46!important;border-color:#8b96a3;background:#f5f7f9}
.review-filter.filter-all:hover,.review-filter.filter-all.active{color:#fff!important;background:#596573;border-color:#596573}

/* --- v11 pre-plan workspace modernization --- */
.preplan-page{max-width:1780px;margin:0 auto}
.preplan-page-hero{position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:1.55rem 1.7rem;border-radius:24px;background:linear-gradient(120deg,#232a33 0%,#313a46 64%,#74362f 100%);color:#fff;box-shadow:0 16px 38px rgba(22,30,40,.16)}
.preplan-page-hero::after{content:'';position:absolute;width:230px;height:230px;border-radius:50%;right:-70px;top:-120px;border:36px solid rgba(255,255,255,.055);pointer-events:none}
.preplan-hero-copy{position:relative;z-index:1;min-width:0}
.preplan-eyebrow{text-transform:uppercase;letter-spacing:.11em;font-size:.72rem;font-weight:850;color:#f0b8b1;margin-bottom:.45rem}
.preplan-page-hero h1{font-size:clamp(1.55rem,2.4vw,2.35rem);line-height:1.12;font-weight:850;margin:0 0 .5rem;letter-spacing:-.025em}
.preplan-page-hero p{max-width:850px;margin:0;color:rgba(255,255,255,.78);line-height:1.55}
.preplan-hero-meta{position:relative;z-index:1;min-width:190px;padding:1rem 1.05rem;border-radius:17px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(7px)}
.preplan-meta-label{text-transform:uppercase;letter-spacing:.08em;font-size:.67rem;font-weight:800;color:rgba(255,255,255,.62)}
.preplan-meta-id{font-weight:800;margin:.18rem 0 .55rem;word-break:break-word;font-size:.88rem}
.preplan-status-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.42rem .68rem;border-radius:999px;font-size:.76rem;font-weight:850;background:#fff;color:#313a46}
.preplan-status-chip::before{content:'';width:8px;height:8px;border-radius:50%;background:#6c757d}
.preplan-status-chip.status-submitted::before{background:#0d6efd}.preplan-status-chip.status-under-review::before{background:#0dcaf0}.preplan-status-chip.status-changes-requested::before{background:#d5a021}.preplan-status-chip.status-approved::before{background:#198754}.preplan-status-chip.status-rejected::before{background:#dc3545}.preplan-status-chip.status-draft::before{background:#6c757d}.preplan-status-chip.status-imported::before{background:#212529}

.preplan-sidebar{padding:1rem;border:1px solid #e3e8ef;border-radius:20px;background:#fff;box-shadow:0 12px 30px rgba(15,35,65,.06)}
.preplan-side-label{text-transform:uppercase;letter-spacing:.07em;font-size:.69rem;font-weight:850;color:#778392}
.preplan-progress-text{font-size:.72rem;font-weight:700;color:#7c8794;white-space:nowrap}
.preplan-progress-track{height:7px;border-radius:999px;background:#e8edf2;overflow:hidden}
.preplan-progress-bar{height:100%;border-radius:999px;background:linear-gradient(90deg,#b03a2e,#d1685d);transition:width .22s ease}
.preplan-submission-box{border:1px solid #e4e9ef;background:#f8fafc}
#stepNav{gap:.55rem!important}
.step-pill{min-height:48px;gap:.72rem;padding:.55rem .65rem;border-radius:13px;border:1px solid #e4e9ef;background:#fafbfc;color:#53606f;font-weight:700;box-shadow:none}
.step-pill strong{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;border-radius:9px;background:#e9edf2;color:#64707e;font-size:.78rem;transition:.16s ease}
.step-pill span{min-width:0}
.step-pill:hover{border-color:#c7d0da;background:#fff;color:#313a46;transform:translateX(2px)}
.step-pill.active{background:#313a46;border-color:#313a46;color:#fff;box-shadow:0 8px 18px rgba(49,58,70,.18)}
.step-pill.active strong{background:#b03a2e;color:#fff}
.help-sidebar-btn{min-height:46px;box-shadow:0 8px 18px rgba(176,58,46,.16)}

.workflow-alert{box-shadow:0 7px 18px rgba(15,35,65,.05);border-left-width:5px}
.preplan-help-intro{border:1px solid #dfe5ec;background:#fff;border-radius:18px;padding:1.05rem 1.15rem;box-shadow:0 9px 22px rgba(15,35,65,.045)}
.preplan-help-intro .help-mark{background:#b03a2e;box-shadow:0 6px 14px rgba(176,58,46,.18)}

.step-card{position:relative;border:1px solid #e5e9ee!important;border-radius:20px!important;box-shadow:0 12px 30px rgba(15,35,65,.055)!important;overflow:hidden;margin-bottom:1.25rem}
.step-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:#313a46;opacity:.92;z-index:2}
#step1.step-card::before,#step4.step-card::before{background:#b03a2e}
#step3.step-card::before,#step6.step-card::before{background:#596573}
.step-card>.card-header{min-height:74px;padding:1rem 1.2rem 1rem 1.35rem!important;background:linear-gradient(90deg,#fff,#f8fafc)!important;border-bottom:1px solid #e8edf2!important}
.section-heading{display:flex;align-items:center;gap:.85rem;min-width:0}
.section-number{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border-radius:12px;background:#313a46;color:#fff;font-weight:900;font-size:.9rem;box-shadow:0 6px 14px rgba(49,58,70,.17)}
#step1 .section-number,#step4 .section-number{background:#b03a2e;box-shadow:0 6px 14px rgba(176,58,46,.17)}
.section-title{font-size:1.03rem;font-weight:850;color:#26313d;line-height:1.2}
.section-subtitle{font-size:.76rem;color:#7a8694;font-weight:550;margin-top:.18rem}
.step-card>.card-body{padding:1.35rem!important;background:#fff}
.section-help-strip{margin:0 0 1.3rem;padding:.85rem 1rem;background:#f7f9fb;border-left-width:3px}
.section-help-btn{border-color:#d9dfe6;background:#fff;color:#596573;padding:.38rem .72rem}
.section-help-btn:hover{background:#b03a2e;border-color:#b03a2e}
.form-label{color:#303b47;font-weight:750;font-size:.86rem;margin-bottom:.42rem}
.form-control,.form-select{min-height:46px;background-color:#fbfcfd;border:1px solid #d9e0e7;border-radius:11px;padding:.72rem .85rem;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}
.form-control:hover:not(:disabled),.form-select:hover:not(:disabled){border-color:#b9c4d0;background:#fff}
.form-control:focus,.form-select:focus{background:#fff;border-color:#596573;box-shadow:0 0 0 .2rem rgba(49,58,70,.1)}
.form-control:disabled,.form-select:disabled,.form-control[readonly]{opacity:1;background:#f1f4f7;color:#56616e;border-color:#e0e5ea}
.form-text{color:#87919d;font-size:.76rem;margin-top:.38rem}
.field-help-btn{border-color:#d5dce4;background:#f8fafc;color:#596573}
.field-help-btn:hover{background:#b03a2e;border-color:#b03a2e}
.accordion{--bs-accordion-border-color:#e1e6ec;--bs-accordion-btn-focus-box-shadow:0 0 0 .2rem rgba(49,58,70,.09)}
.accordion-item{border-radius:13px!important;overflow:hidden;margin-bottom:.65rem;border:1px solid #e2e7ed!important}
.accordion-button{font-weight:800;color:#45515e;background:#fafbfc;padding:.9rem 1rem}
.accordion-button:not(.collapsed){color:#fff;background:#596573;box-shadow:none}
.accordion-button:not(.collapsed)::after{filter:brightness(0) invert(1)}

.preplan-map-card{overflow:hidden;border-radius:20px;background:#fff;border:1px solid #e3e8ee;box-shadow:0 12px 30px rgba(15,35,65,.065)}
.preplan-map-head{min-height:68px;padding:.95rem 1.05rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;border-bottom:1px solid #e8edf2;background:linear-gradient(90deg,#fff,#f8fafc)}
.preplan-map-head h5{font-weight:850;color:#2c3743}
.preplan-map-kicker{text-transform:uppercase;letter-spacing:.08em;font-size:.66rem;font-weight:850;color:#b03a2e;margin-bottom:.15rem}
.preplan-map-dot{width:12px;height:12px;border-radius:50%;background:#b03a2e;box-shadow:0 0 0 5px rgba(176,58,46,.10)}
.preplan-map-card .map-box{border:0;border-radius:0;height:340px}
.reviewer-notes-card{box-shadow:0 12px 30px rgba(15,35,65,.06)}

.preplan-action-bar{position:relative;overflow:hidden;border:1px solid #e1e6eb!important;border-left:5px solid #b03a2e!important;box-shadow:0 14px 32px rgba(15,35,65,.07)!important}
.preplan-action-bar::after{content:'';position:absolute;right:-40px;bottom:-70px;width:145px;height:145px;border-radius:50%;background:rgba(176,58,46,.045);pointer-events:none}
.preplan-action-bar strong{font-size:.98rem;color:#293440}
.preplan-action-bar .btn{min-height:44px;padding:.65rem 1rem}

@media(max-width:1199px){
  .preplan-page-hero{align-items:flex-start}
  .preplan-map-card .map-box{height:280px}
}
@media(max-width:991px){
  .preplan-page-hero{padding:1.3rem;flex-direction:column;gap:1rem}
  .preplan-hero-meta{width:100%;min-width:0;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
  .preplan-meta-id{margin:0}
  .preplan-sidebar{position:static!important}
  #stepNav{grid-template-columns:repeat(2,minmax(0,1fr))!important;display:grid!important}
  .step-pill:hover{transform:none}
}
@media(max-width:575px){
  .preplan-page{padding-left:.75rem!important;padding-right:.75rem!important}
  .preplan-page-hero{border-radius:18px}
  .preplan-page-hero h1{font-size:1.55rem}
  .preplan-sidebar{padding:.8rem;border-radius:16px}
  #stepNav{grid-template-columns:1fr!important}
  .step-card{border-radius:16px!important}
  .step-card>.card-header{align-items:flex-start;padding:1rem!important}
  .section-heading{gap:.65rem}
  .section-number{width:35px;height:35px;flex-basis:35px;border-radius:10px}
  .section-subtitle{font-size:.72rem}
  .step-card>.card-body{padding:1rem!important}
  .preplan-map-card .map-box{height:240px}
  .preplan-action-bar .d-flex{width:100%;flex-direction:column}
  .preplan-action-bar .btn{width:100%}
  .review-filter-tabs{width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}
  .review-filter{min-width:0;padding:.62rem .5rem}
}
@media print{
  .preplan-page-hero{background:#fff!important;color:#000!important;box-shadow:none;border:1px solid #ddd}
  .preplan-page-hero p,.preplan-eyebrow,.preplan-meta-label{color:#555!important}
  .preplan-sidebar,.preplan-action-bar{display:none!important}
  .step-card,.preplan-map-card{box-shadow:none!important}
}


/* --- v12 compact pre-plan header + refreshed user dashboard --- */
.preplan-page-hero.preplan-page-hero-compact{padding:.9rem 1.15rem;border-radius:17px;gap:1rem;min-height:0}
.preplan-page-hero.preplan-page-hero-compact::after{width:150px;height:150px;right:-48px;top:-88px;border-width:24px}
.preplan-page-hero-compact .preplan-eyebrow{font-size:.63rem;margin-bottom:.2rem;letter-spacing:.1em}
.preplan-page-hero-compact h1{font-size:clamp(1.2rem,1.8vw,1.65rem);margin-bottom:.18rem;line-height:1.1}
.preplan-page-hero-compact p{font-size:.82rem;line-height:1.35;color:rgba(255,255,255,.72)}
.preplan-hero-meta.preplan-hero-meta-compact{min-width:0;padding:.55rem .7rem;border-radius:12px;display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}
.preplan-meta-inline{display:flex;align-items:center;gap:.48rem;min-width:0;white-space:nowrap}
.preplan-hero-meta-compact .preplan-meta-label{font-size:.62rem}
.preplan-hero-meta-compact .preplan-meta-id{font-size:.76rem;margin:0;color:#fff}
.preplan-hero-meta-compact .preplan-status-chip{padding:.3rem .55rem;font-size:.7rem}
.help-sidebar-btn{font-size:.86rem}

.abandon-preplan-modal .modal-content{border-radius:22px;box-shadow:0 24px 70px rgba(15,23,32,.28)}
.abandon-modal-mark{width:52px;height:52px;margin:0 auto 1rem;display:grid;place-items:center;border-radius:50%;background:#fff1ef;color:#b03a2e;font-size:1.45rem;font-weight:900;border:1px solid #f0ccc7}

.dashboard-page{max-width:1500px}
.dashboard-hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.35rem 1.5rem;border-radius:20px;background:linear-gradient(120deg,#232a33,#313a46 65%,#6f342e);color:#fff;box-shadow:0 15px 36px rgba(22,30,40,.14)}
.dashboard-hero::after{content:'';position:absolute;right:-55px;top:-90px;width:190px;height:190px;border-radius:50%;border:30px solid rgba(255,255,255,.05);pointer-events:none}
.dashboard-hero>div,.dashboard-add-btn{position:relative;z-index:1}
.dashboard-eyebrow,.dashboard-section-kicker{text-transform:uppercase;letter-spacing:.1em;font-size:.66rem;font-weight:850;color:#b03a2e;margin-bottom:.3rem}
.dashboard-hero .dashboard-eyebrow{color:#f0b8b1}
.dashboard-hero h1{font-size:clamp(1.45rem,2vw,2rem);font-weight:850;letter-spacing:-.025em}
.dashboard-hero p{font-size:.9rem;line-height:1.45;color:rgba(255,255,255,.76);max-width:820px}
.dashboard-add-btn{white-space:nowrap;box-shadow:0 10px 22px rgba(176,58,46,.24)}

.dashboard-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.85rem}
.dashboard-metric{position:relative;overflow:hidden;padding:1rem 1.05rem;border:1px solid #e4e9ef;border-radius:16px;background:#fff;box-shadow:0 9px 23px rgba(15,35,65,.05)}
.dashboard-metric::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:#313a46}
.dashboard-metric.metric-draft::before{background:#7b8795}.dashboard-metric.metric-review::before{background:#1d7d9e}.dashboard-metric.metric-action::before{background:#c58d14}.dashboard-metric.metric-approved::before{background:#198754}
.dashboard-metric-label{text-transform:uppercase;letter-spacing:.07em;font-size:.65rem;font-weight:850;color:#7c8794}
.dashboard-metric-value{font-size:1.7rem;line-height:1;font-weight:900;color:#293440;margin:.35rem 0}
.dashboard-metric-sub{font-size:.75rem;line-height:1.3;color:#89939f}

.dashboard-workflow-card{display:grid;grid-template-columns:minmax(0,.9fr) minmax(520px,1.3fr);gap:1.5rem;align-items:center;padding:1.25rem 1.35rem;border:1px solid #e2e7ed;border-radius:20px;background:#fff;box-shadow:0 11px 28px rgba(15,35,65,.055)}
.dashboard-workflow-copy h4{font-weight:850;color:#293440;margin-bottom:.45rem}
.dashboard-workflow-copy p{margin:0;font-size:.84rem;line-height:1.55;color:#687482}
.dashboard-status-flow{display:flex;align-items:stretch;gap:.42rem;min-width:0}
.dashboard-flow-step{flex:1;min-width:0;display:flex;align-items:center;gap:.55rem;padding:.7rem .65rem;border-radius:13px;border:1px solid #e2e7ed;background:#f8fafc}
.dashboard-flow-step>span{width:27px;height:27px;flex:0 0 27px;display:grid;place-items:center;border-radius:8px;background:#313a46;color:#fff;font-size:.72rem;font-weight:900}
.dashboard-flow-step strong{display:block;font-size:.76rem;color:#303b47;line-height:1.15}
.dashboard-flow-step small{display:block;font-size:.65rem;color:#88929e;margin-top:.16rem;line-height:1.15}
.dashboard-flow-step.flow-review>span{background:#1d7d9e}.dashboard-flow-step.flow-changes>span{background:#c58d14}.dashboard-flow-step.flow-approved>span{background:#198754}
.dashboard-flow-arrow{display:grid;place-items:center;color:#9aa4af;font-size:1rem;font-weight:800}

.dashboard-list-head{display:flex;align-items:end;justify-content:space-between;gap:1rem}
.dashboard-list-head h3{font-size:1.25rem;font-weight:850;color:#293440}
.dashboard-submission-card{position:relative;overflow:hidden;display:flex;flex-direction:column;padding:1.15rem;border:1px solid #e1e6ec;border-radius:18px;background:#fff;box-shadow:0 10px 26px rgba(15,35,65,.05);transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease}
@media(hover:hover) and (pointer:fine){.dashboard-submission-card:hover{transform:translateY(-2px);box-shadow:0 15px 34px rgba(15,35,65,.09);border-color:#cbd3dc}}
.dashboard-submission-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:#6c757d}
.dashboard-submission-card.status-submitted::before{background:#313a46}.dashboard-submission-card.status-under-review::before{background:#1d7d9e}.dashboard-submission-card.status-changes-requested::before{background:#c58d14}.dashboard-submission-card.status-approved::before{background:#198754}.dashboard-submission-card.status-rejected::before{background:#dc3545}
.dashboard-submission-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.dashboard-submission-id{text-transform:uppercase;letter-spacing:.07em;font-size:.62rem;font-weight:800;color:#929ba6;margin-bottom:.25rem}
.dashboard-submission-card h4{font-size:1.05rem;font-weight:850;color:#293440;margin:0 0 .25rem}
.dashboard-submission-address{font-size:.82rem;color:#7c8794;line-height:1.35}
.dashboard-status-chip{flex:0 0 auto;padding:.38rem .58rem;border-radius:999px;background:#f0f2f4;color:#56616d;font-size:.67rem;font-weight:850;white-space:nowrap}
.dashboard-status-chip.status-submitted{background:#edf0f4;color:#313a46}.dashboard-status-chip.status-under-review{background:#e6f5fa;color:#176a87}.dashboard-status-chip.status-changes-requested{background:#fff4d9;color:#876311}.dashboard-status-chip.status-approved{background:#e9f7ef;color:#146c43}.dashboard-status-chip.status-rejected{background:#fdeceb;color:#a52828}
.dashboard-review-note{margin-top:1rem;padding:.8rem .9rem;border-radius:12px;background:#fff7e5;border:1px solid #f1dfac;color:#6e551a;font-size:.78rem;line-height:1.45}
.dashboard-review-note strong{display:block;margin-bottom:.2rem;color:#6b4f0d}
.dashboard-submission-footer{margin-top:auto;padding-top:1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.dashboard-submission-footer .btn{min-height:40px}
.dashboard-empty-state{text-align:center;padding:3rem 1.5rem;border:1px dashed #d2d9e1;border-radius:20px;background:#fff;box-shadow:0 10px 25px rgba(15,35,65,.04)}
.dashboard-empty-mark{width:58px;height:58px;margin:0 auto 1rem;display:grid;place-items:center;border-radius:17px;background:#313a46;color:#fff;font-size:1.6rem;font-weight:900;box-shadow:0 9px 20px rgba(49,58,70,.2)}
.dashboard-empty-state h4{font-weight:850;color:#293440}

@media(max-width:1199px){
  .dashboard-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
  .dashboard-workflow-card{grid-template-columns:1fr}
}
@media(max-width:991px){
  .preplan-page-hero.preplan-page-hero-compact{padding:.85rem 1rem;gap:.7rem}
  .preplan-hero-meta.preplan-hero-meta-compact{width:auto;align-self:stretch}
  .dashboard-hero{align-items:flex-start;flex-direction:column;padding:1.2rem}
  .dashboard-add-btn{width:100%}
  .dashboard-status-flow{display:grid;grid-template-columns:1fr;gap:.35rem}
  .dashboard-flow-arrow{transform:rotate(90deg);height:18px}
}
@media(max-width:767px){
  .dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-status-flow{grid-template-columns:1fr}
  .dashboard-flow-arrow{transform:rotate(90deg);height:18px}
  .dashboard-submission-top,.dashboard-submission-footer{align-items:flex-start;flex-direction:column}
  .dashboard-submission-footer .btn{width:100%}
}
@media(max-width:575px){
  .preplan-page-hero.preplan-page-hero-compact{border-radius:15px}
  .preplan-hero-meta.preplan-hero-meta-compact{display:grid;grid-template-columns:1fr;padding:.5rem .65rem}
  .preplan-meta-inline{justify-content:space-between}
  .dashboard-metrics{grid-template-columns:1fr 1fr}
  .dashboard-metric{padding:.85rem}
  .dashboard-metric-value{font-size:1.45rem}
}

.dashboard-submission-top>div{min-width:0}


/* v13 — readability and wide-screen spacing */
.dashboard-page{font-size:1.025rem}
.dashboard-hero p{font-size:.98rem;line-height:1.55}
.dashboard-eyebrow,.dashboard-section-kicker{font-size:.7rem}
.dashboard-metric-label{font-size:.7rem}
.dashboard-metric-sub{font-size:.82rem;line-height:1.4}
.dashboard-workflow-copy p{font-size:.92rem;line-height:1.65}
.dashboard-flow-step{padding:.78rem .72rem}
.dashboard-flow-step strong{font-size:.82rem}
.dashboard-flow-step small{font-size:.7rem;line-height:1.25}
.dashboard-list-head h3{font-size:1.35rem}
.dashboard-submission-card{padding:1.3rem}
.dashboard-submission-id{font-size:.67rem}
.dashboard-submission-card h4{font-size:1.16rem;line-height:1.25}
.dashboard-submission-address{font-size:.9rem;line-height:1.5}
.dashboard-status-chip{padding:.46rem .74rem;font-size:.72rem;line-height:1.15}
.dashboard-review-note{font-size:.86rem;line-height:1.55}
.dashboard-submission-footer .small{font-size:.82rem}

.admin-queue-page,.admin-review-page{max-width:1800px;margin-inline:auto}
.admin-queue-page .review-shell{padding:1.65rem 1.8rem}
.admin-queue-page .review-shell p{font-size:.98rem;line-height:1.55}
.admin-queue-page .metric-card{padding:1.2rem 1.3rem}
.admin-queue-page .metric-card .sub{font-size:.9rem;line-height:1.4}
.queue-table{font-size:.96rem}
.queue-table thead th{padding:1rem 1.25rem;font-size:.8rem;white-space:nowrap}
.queue-table tbody td{padding:1.15rem 1.25rem;line-height:1.5}
.queue-table tbody td strong{font-size:1.02rem}
.queue-table tbody .small{font-size:.84rem;line-height:1.45}
.queue-table .queue-status-pill{padding:.5rem .78rem;border-radius:999px;font-size:.76rem;font-weight:800;line-height:1.15;white-space:nowrap}
.queue-table .review-actions{gap:.55rem;flex-wrap:nowrap}
.queue-table .review-main-btn,.queue-table .review-tab-btn{padding:.58rem .85rem;white-space:nowrap}

.admin-review-page .review-shell{padding:1.55rem 1.7rem}
.admin-review-page .portal-card{font-size:.97rem}
.admin-review-page .info-row{padding:1rem 0}
.admin-review-page .info-row .label{font-size:.86rem}
.admin-review-page .info-row .value{font-size:.98rem}

@media(max-width:991px){
  .dashboard-page{font-size:1rem}
  .queue-table thead th,.queue-table tbody td{padding:.9rem 1rem}
}


/* v14 — admin header alignment and stronger warning states */
.admin-nav-container{max-width:1800px;margin-inline:auto;width:100%}
.admin-nav-container .navbar-brand{margin-right:1.25rem}
.admin-nav-container .navbar-collapse{min-width:0}
.admin-nav-container .navbar-nav{display:flex;align-items:center;gap:.45rem}
.admin-user-name{display:inline-flex;align-items:center;min-height:38px;padding:.35rem .2rem;color:rgba(255,255,255,.9)!important;font-size:.92rem!important;font-weight:700;line-height:1}
.admin-signout-btn{min-height:38px;display:inline-flex;align-items:center;justify-content:center;padding:.45rem .8rem;border-width:1.5px}

/* Changes Requested / warning: deeper amber with readable white text */
.text-bg-warning,.badge.text-bg-warning,.queue-status-pill.text-bg-warning{background-color:#8f6500!important;color:#fff!important}
.dashboard-status-chip.status-changes-requested{background:#8f6500!important;color:#fff!important}
.preplan-status-chip.status-changes-requested{background:#8f6500!important;color:#fff!important}
.preplan-status-chip.status-changes-requested::before{background:#fff!important}

@media(max-width:991px){
  .admin-nav-container .navbar-nav{align-items:stretch;gap:.4rem;padding-top:.65rem}
  .admin-user-name{padding:.45rem 0;min-height:auto}
  .admin-signout-btn{width:100%;min-height:42px}
}


/* v15 — user header alignment + high-contrast pre-plan metadata */
.user-nav-container{max-width:1500px;margin-inline:auto;width:100%}
.user-nav-container .navbar-brand{margin-right:1.25rem}
.user-nav-container .navbar-collapse{min-width:0}
.user-nav-container .navbar-nav{display:flex;align-items:center;gap:.45rem}
.user-nav-container .admin-user-name{color:rgba(255,255,255,.92)!important}

/* The submission/status strip sits inside a dark hero, so use a light surface for clarity. */
.preplan-hero-meta.preplan-hero-meta-compact{
  background:rgba(255,255,255,.96);
  border:1px solid rgba(255,255,255,.72);
  box-shadow:0 8px 22px rgba(17,24,32,.14);
  color:#293440;
  padding:.62rem .8rem;
  gap:.9rem;
}
.preplan-hero-meta-compact .preplan-meta-label{color:#697582!important;font-weight:850;opacity:1;letter-spacing:.075em}
.preplan-hero-meta-compact .preplan-meta-id{color:#293440!important;font-size:.78rem;font-weight:900;letter-spacing:.025em}
.preplan-hero-meta-compact .preplan-meta-inline + .preplan-meta-inline{padding-left:.9rem;border-left:1px solid #dfe5eb}
.preplan-hero-meta-compact .preplan-status-chip{padding:.42rem .72rem!important;font-size:.72rem!important;font-weight:850!important;box-shadow:none}
.preplan-hero-meta-compact .preplan-status-chip.status-draft{background:#6c757d!important;color:#fff!important}
.preplan-hero-meta-compact .preplan-status-chip.status-submitted{background:#313a46!important;color:#fff!important}
.preplan-hero-meta-compact .preplan-status-chip.status-under-review{background:#1d7d9e!important;color:#fff!important}
.preplan-hero-meta-compact .preplan-status-chip.status-changes-requested{background:#8f6500!important;color:#fff!important}
.preplan-hero-meta-compact .preplan-status-chip.status-approved{background:#198754!important;color:#fff!important}
.preplan-hero-meta-compact .preplan-status-chip.status-rejected{background:#b02a37!important;color:#fff!important}
.preplan-hero-meta-compact .preplan-status-chip::before{background:#fff!important}

/* Normalize public dashboard status pills, including Approved. */
.dashboard-status-chip,
.dashboard-status-chip.status-submitted,
.dashboard-status-chip.status-under-review,
.dashboard-status-chip.status-changes-requested,
.dashboard-status-chip.status-approved,
.dashboard-status-chip.status-rejected{
  padding:.5rem .82rem!important;
  line-height:1.15;
}
.dashboard-status-chip.status-approved{background:#198754!important;color:#fff!important}

@media(max-width:991px){
  .user-nav-container .navbar-nav{align-items:stretch;gap:.4rem;padding-top:.65rem}
  .user-nav-container .admin-user-name{padding:.45rem 0;min-height:auto}
  .user-nav-container .admin-signout-btn{width:100%;min-height:42px}
}
@media(max-width:575px){
  .preplan-hero-meta-compact .preplan-meta-inline + .preplan-meta-inline{padding-left:0;border-left:0;border-top:1px solid #dfe5eb;padding-top:.5rem}
}


/* v16 — one application width everywhere */
:root{--p4-app-max:1760px;--p4-app-gutter:1.5rem}
.p4-shell{
  width:min(calc(100% - (var(--p4-app-gutter) * 2)),var(--p4-app-max));
  margin-inline:auto;
}
.p4-nav-shell{
  display:flex;
  align-items:center;
  flex-wrap:inherit;
  justify-content:space-between;
  min-height:58px;
}
.p4-nav-shell .navbar-brand{margin-right:1.25rem}
.p4-nav-shell .navbar-collapse{min-width:0}
.p4-nav-shell .navbar-nav{display:flex;align-items:center;gap:.45rem}

/* Remove the accumulated role/page-specific width differences. */
.preplan-page,
.dashboard-page,
.admin-queue-page,
.admin-review-page,
.admin-nav-container,
.user-nav-container{
  max-width:none;
}

/* Keep major page surfaces aligned to the same outer grid. */
.dashboard-page,
.preplan-page,
.admin-queue-page,
.admin-review-page,
.auth-shell{margin-inline:auto}

@media(max-width:991px){
  :root{--p4-app-gutter:1rem}
  .p4-nav-shell{padding-block:.35rem}
  .p4-nav-shell .navbar-nav{align-items:stretch;gap:.4rem;padding-top:.65rem}
  .p4-nav-shell .admin-user-name{padding:.45rem 0;min-height:auto}
  .p4-nav-shell .admin-signout-btn{width:100%;min-height:42px}
}
@media(max-width:575px){
  :root{--p4-app-gutter:.75rem}
}

/* v17 — home hero separation from the global navbar */
.home-hero-wrap{padding-top:1.35rem}
.home-hero{width:100%}
.home-hero-inner{width:100%;margin:0 auto}
@media(max-width:991px){.home-hero-wrap{padding-top:1rem}.home-hero{border-radius:22px}}
@media(max-width:575px){.home-hero-wrap{padding-top:.75rem}.home-hero{border-radius:18px}.home-hero-inner{padding-left:1.15rem!important;padding-right:1.15rem!important}}


/* v18 — professional home page refresh */
.home-hero-pro{position:relative;isolation:isolate}
.home-hero-pro::before{
  content:'';
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:
    linear-gradient(90deg, rgba(255,255,255,.075) 1px, transparent 1px) 0 0/42px 42px,
    linear-gradient(rgba(255,255,255,.075) 1px, transparent 1px) 0 0/42px 42px,
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px) 0 0/14px 14px,
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px) 0 0/14px 14px;
  opacity:.32;
  pointer-events:none;
}
.home-hero-pro::after{
  content:'';
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:
    radial-gradient(circle at 88% 18%, rgba(255,255,255,.12) 0 2px, transparent 2px 100%),
    radial-gradient(circle at 82% 24%, rgba(255,255,255,.10) 0 2px, transparent 2px 100%),
    linear-gradient(115deg, transparent 0 72%, rgba(255,255,255,.08) 72% 72.4%, transparent 72.4% 100%),
    linear-gradient(25deg, transparent 0 66%, rgba(255,255,255,.07) 66% 66.35%, transparent 66.35% 100%);
  opacity:.55;
  pointer-events:none;
}
.home-hero-pro .row,
.home-hero-pro .home-hero-inner{position:relative;z-index:1}
.home-hero-highlights{display:flex;flex-wrap:wrap;gap:.8rem}
.home-highlight-pill{display:inline-flex;align-items:center;gap:.55rem;padding:.68rem .9rem;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);color:#fff;font-weight:650;font-size:.93rem;backdrop-filter:blur(4px)}
.home-highlight-dot{width:9px;height:9px;border-radius:50%;background:#fff;opacity:.95;flex:0 0 9px}
.home-process-card{background:rgba(255,255,255,.96);border:1px solid rgba(255,255,255,.4);border-radius:22px;box-shadow:0 16px 36px rgba(18,26,35,.16)}
.home-card-eyebrow{text-transform:uppercase;letter-spacing:.09em;font-size:.72rem;font-weight:800;color:var(--p4-accent);margin-bottom:.35rem}
.home-process-card h5{color:#24313c}
.home-process-list{display:grid;gap:.95rem}
.home-process-item{display:flex;align-items:flex-start;gap:.95rem}
.home-process-num{width:32px;height:32px;flex:0 0 32px;border-radius:10px;background:var(--p4);color:#fff;display:grid;place-items:center;font-weight:850;box-shadow:0 8px 16px rgba(49,58,70,.15)}
.home-process-item strong{display:block;color:#24313c;font-size:.97rem;line-height:1.25}
.home-process-item span{display:block;color:#6d7784;font-size:.9rem;line-height:1.45;margin-top:.14rem}
.home-section-heading{max-width:860px}
.home-section-kicker{display:inline-block;margin-bottom:.45rem;text-transform:uppercase;letter-spacing:.09em;font-size:.72rem;font-weight:800;color:var(--p4-accent)}
.home-feature-card{position:relative;padding-top:1.2rem!important;border:1px solid #e7ecf2;transition:transform .16s ease, box-shadow .16s ease}
.home-feature-card:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(15,35,65,.09)}
.home-feature-card h5{margin:.95rem 0 .55rem;color:#25323e}
.home-feature-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,var(--p4),var(--p4-accent));color:#fff;box-shadow:0 10px 18px rgba(49,58,70,.14)}
.home-feature-icon svg{width:25px;height:25px;display:block}
@media(max-width:991px){
  .home-hero-highlights{gap:.65rem}
  .home-highlight-pill{font-size:.88rem;padding:.62rem .82rem}
  .home-process-card{margin-top:.2rem}
}
@media(max-width:575px){
  .home-highlight-pill{width:100%;justify-content:flex-start}
  .home-process-item{gap:.8rem}
  .home-process-num{width:30px;height:30px;flex-basis:30px}
}


/* v20 — simplify authentication screens on mobile */
@media(max-width:767.98px){
  .auth-shell .portal-card-dark.auth-card{display:none!important}
  .auth-shell{padding-top:1.25rem!important;padding-bottom:1.25rem!important}
  .auth-shell .portal-card.bg-white{padding:1.35rem!important;border-radius:18px}
}


/* v21 — participating-region registration gate */
.region-register-card{max-width:780px;margin-inline:auto}
.region-check-heading{display:flex;align-items:flex-start;gap:.9rem}
.region-check-step{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:12px;background:var(--p4);color:#fff;font-weight:900;box-shadow:0 7px 16px rgba(49,58,70,.16)}
.region-check-result{padding:1rem 1.05rem;border-radius:14px;font-size:.95rem;line-height:1.45}
.region-check-denied{background:#fff1f0;border:1px solid #efc3bd;color:#75271f}
.region-approved-box{display:flex;align-items:flex-start;gap:.9rem;padding:1rem 1.05rem;border-radius:16px;background:#eef9f3;border:1px solid #bfe3cf}
.region-approved-mark{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;border-radius:50%;background:#198754;color:#fff;font-size:1.2rem;font-weight:900}
.region-approved-title{font-size:1.08rem;font-weight:850;color:#145c3b}
.region-approved-copy{color:#315d49;margin-top:.08rem}
@media(max-width:767.98px){
  .region-register-card{padding:1.35rem!important}
  .region-check-heading{gap:.7rem}
  .region-check-step{width:34px;height:34px;flex-basis:34px;border-radius:10px}
  .region-approved-box{flex-wrap:wrap}
  .region-approved-box form{width:100%;margin-left:0!important}
  .region-approved-box form .btn{width:100%}
}


/* v22 — registration polish */
@media(min-width:768px){
  .auth-info-panel{
    position:sticky;
    top:1.2rem;
    align-self:flex-start;
    margin-bottom:1.2rem;
  }
  .register-guide-card{
    position:static;
    height:auto!important;
  }
}
.region-change-address{
  white-space:nowrap!important;
  flex-wrap:nowrap!important;
  border:1px solid #9fcab0!important;
  background:#fff!important;
  color:#17603d!important;
  border-radius:999px!important;
  padding:.48rem .82rem!important;
  font-weight:800!important;
  line-height:1.1!important;
  box-shadow:0 3px 9px rgba(25,135,84,.08);
}
.region-change-address:hover,
.region-change-address:focus{
  background:#17603d!important;
  border-color:#17603d!important;
  color:#fff!important;
}
@media(max-width:767.98px){
  .region-approved-box form .region-change-address{
    width:auto!important;
    min-width:140px;
  }
}
