/* ConstructNav v0.9.2.84 — subcontractor onboarding and secure external portals */
.cn-subagreement{display:grid;gap:18px}
.cn-subagreement h3,.cn-subagreement h4,.cn-subagreement p{margin:0}
.cn-subagreement-template,.cn-subagreement-workspace{border:1px solid #d5e0eb;border-radius:15px;background:#fff}
.cn-subagreement-template{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:18px 20px;background:linear-gradient(135deg,#f6faff 0%,#fff 62%)}
.cn-subagreement-template p{margin-top:6px;color:#0a2947}
.cn-subagreement-template small{display:block;margin-top:5px;color:#657a90}
.cn-subagreement-eyebrow{display:block;margin-bottom:5px;color:#2878ad;font-size:.7rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
.cn-subagreement-workspace{padding:20px}
.cn-subagreement-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:22px}
.cn-subagreement-heading p{max-width:680px;margin-top:5px;color:#657a90}
.cn-subagreement-heading label{display:grid;gap:6px;min-width:min(360px,100%);color:#4b6176;font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.cn-subagreement-heading select{width:100%;min-height:42px;border:1px solid #c7d6e5;border-radius:9px;background:#fff;color:#0a2947;font-size:.92rem;text-transform:none;letter-spacing:0}
.cn-subagreement-summary{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:10px;margin:18px 0}
.cn-subagreement-summary>div{display:grid;gap:6px;min-height:67px;padding:11px 13px;border:1px solid #dce5ee;border-radius:10px;background:#f8fafc}
.cn-subagreement-summary span:first-child{color:#6b7f93;font-size:.69rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.cn-subagreement-summary strong{color:#102f4e;font-size:.8rem}
.cn-subagreement-status{display:inline-flex!important;align-items:center;width:max-content;padding:4px 9px;border-radius:999px;font-size:.72rem!important;font-weight:900;text-transform:uppercase}
.cn-subagreement-status.is-missing{background:#eef2f6;color:#596b7c}
.cn-subagreement-status.is-draft{background:#e7f1fb;color:#145d93}
.cn-subagreement-status.is-sent{background:#fff3d8;color:#8c5b00}
.cn-subagreement-status.is-signed{background:#dff5e9;color:#087543}
.cn-subagreement-status.is-expired{background:#fde7e9;color:#a52635}
.cn-subagreement-status.is-declined,.cn-subagreement-status.is-cancelled{background:#fde7e9;color:#a52635}
.cn-subagreement-status.is-current,.cn-subagreement-status.is-complete,.cn-subagreement-status.is-received,.cn-subagreement-status.is-info-complete,.cn-subagreement-status.is-not-applicable{background:#dff5e9;color:#087543}
.cn-subagreement-status.is-action-required{background:#fff3d8;color:#8c5b00}
.cn-subagreement-current{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px;border:1px solid #d8e3ed;border-radius:11px}
.cn-subagreement-current h4{color:#092c4d;font-size:1rem}
.cn-subagreement-current p{margin-top:4px;color:#536b82}
.cn-subagreement-current small{display:block;margin-top:6px;color:#718398}
.cn-subagreement-current .actions,.cn-subagreement-template .actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.cn-subagreement-audit{margin-top:12px;border:1px solid #dce5ee;border-radius:10px;background:#fbfcfe}
.cn-subagreement-audit summary{padding:11px 14px;color:#173b5b;font-weight:800;cursor:pointer}
.cn-subagreement-audit>div{padding:0 14px 12px}
.cn-subagreement-audit-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(130px,.7fr) minmax(175px,.8fr);gap:12px;padding:8px 0;border-top:1px solid #e6edf3;color:#52697f;font-size:.8rem}
.cn-subagreement-audit-row span:first-child{color:#153b5c;font-weight:700}
.cn-subagreement-audit-row time{text-align:right}
.cn-subagreement-empty{color:#718398}
.cn-subagreement-no-trades{margin-top:18px;padding:22px;border:1px dashed #c7d6e5;border-radius:10px;text-align:center}
.cn-subagreement-note{padding:11px 13px;border-radius:9px;background:#eff7ff;color:#3c5f7b;font-size:.82rem;line-height:1.45}
.cn-subagreement-dialog{width:min(720px,calc(100vw - 28px));max-height:calc(100vh - 28px);border:0;border-radius:16px;padding:0;box-shadow:0 24px 70px rgba(7,35,61,.28)}
.cn-subagreement-dialog::backdrop{background:rgba(4,25,45,.55)}
.cn-onboarding-summary{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px;padding:16px;border:1px solid #b9d7eb;border-radius:12px;background:linear-gradient(135deg,#f2f9ff,#fff)}
.cn-onboarding-summary p{margin-top:5px;color:#526b82}
.cn-onboarding-summary small{display:block;margin-top:6px;color:#718398}
.cn-onboarding-summary .actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}
.cn-compliance-checklist{display:grid;gap:8px;margin-top:12px}
.cn-compliance-check-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid #dce5ee;border-radius:10px;background:#fff}
.cn-compliance-check-row strong,.cn-compliance-check-row small{display:block}
.cn-compliance-check-row strong{color:#153b5c}
.cn-compliance-check-row small{margin-top:4px;color:#657a90;line-height:1.35}
.cn-compliance-check-actions{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-end;gap:7px}
.cn-agreement-divider{margin-top:22px;padding-top:18px;border-top:1px solid #dce5ee}
.cn-subcontractor-intake-dialog{width:min(980px,calc(100vw - 28px));height:min(900px,calc(100vh - 28px));overflow:hidden}
.cn-subcontractor-intake-dialog form{display:grid;height:100%;grid-template-rows:auto minmax(0,1fr) auto}
.cn-subcontractor-intake-dialog .modal-head>div{display:grid;gap:3px}
.cn-subcontractor-intake-dialog .modal-head small{color:#647b91;font-weight:500}
.cn-intake-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:18px 20px}
.cn-intake-section{padding:16px;border:1px solid #d8e3ed;border-radius:12px;background:#fff}
.cn-intake-section+.cn-intake-section{margin-top:14px}
.cn-intake-section h4{margin:0 0 13px;color:#0a2947}
.cn-intake-document{padding:13px;border:1px solid #e0e8ef;border-radius:10px;background:#f9fbfd}
.cn-intake-document+.cn-intake-document{margin-top:10px}
.cn-intake-document-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;color:#153b5c}
.cn-intake-document-title span,.cn-intake-section input[type=file]+small{color:#6a7f93;font-size:.74rem}
html.cn-external-guest .app{display:block;min-height:100vh;background:#f2f6fa}
html.cn-external-guest .app>aside,
html.cn-external-guest main>.topbar,
html.cn-external-guest main .page-heading{display:none!important}
html.cn-external-guest main{margin:0!important;width:100%!important}
html.cn-external-guest main .content{max-width:1180px;margin:0 auto;padding:20px}
html.cn-external-guest-blocked .app{display:none!important}

html.cn-customer-guest main .view:not(#customerportal){display:none!important}
html.cn-customer-guest #customerportal{display:block!important}
html.cn-customer-guest #customerportal>.section-head select{display:none!important}
html.cn-customer-guest #customerportal>.section-head{align-items:flex-start}

html.cn-trade-guest main .view:not(#tradeportal){display:none!important}
html.cn-trade-guest #tradeportal{display:block!important}
html.cn-trade-guest #tradeportal>.section-head select{display:none!important}
html.cn-trade-guest .cn-subagreement-template{display:none!important}
html.cn-trade-work-guest #tradeportal [data-pane="trade-bids"],
html.cn-trade-work-guest #trade-bids{display:none!important}
html.cn-trade-bid-guest #tradeportal [data-pane]:not([data-pane="trade-bids"]),
html.cn-trade-bid-guest #tradeportal>.cnx-pane:not(#trade-bids){display:none!important}
html.cn-trade-bid-guest #trade-bids{display:block!important}

.cn-external-guest-session{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px;padding:12px 14px;border:1px solid #173f62;border-radius:12px;background:#092c4d;color:#fff;box-shadow:0 5px 16px rgba(7,35,61,.14)}
.cn-external-guest-session>div{display:grid;gap:2px}
.cn-external-guest-session span{color:#e0ae43;font-size:.68rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.cn-external-guest-session strong{font-size:.9rem}
.cn-external-guest-session .btn{flex:0 0 auto;border-color:#cbd9e5;background:#fff;color:#092c4d}
.cn-external-guest-session .btn:hover{background:#f2f7fb}
.cn-external-guest-blocker{position:fixed;inset:0;z-index:30000;display:grid;place-items:center;padding:18px;background:#eef4f9}
.cn-external-guest-blocker>div{width:min(620px,100%);padding:28px;border:1px solid #cfdae5;border-radius:18px;background:#fff;box-shadow:0 24px 70px rgba(7,35,61,.2)}
.cn-external-guest-blocker h2{margin:0;color:#092c4d}
.cn-external-guest-blocker p{margin:12px 0;color:#9b2734;font-weight:750}
.cn-external-guest-blocker small{display:block;color:#61778b;line-height:1.5}
.cn-external-guest-blocker-actions{display:flex;flex-wrap:wrap;gap:8px}
.cn-external-guest-blocker .btn{margin-top:16px}
@media(max-width:980px){
  .cn-subagreement-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cn-subagreement-heading,.cn-subagreement-template,.cn-subagreement-current{align-items:stretch;flex-direction:column}
  .cn-onboarding-summary{align-items:stretch;flex-direction:column}
  .cn-onboarding-summary .actions{justify-content:flex-start}
  .cn-subagreement-heading label{min-width:0}
  .cn-subagreement-current .actions,.cn-subagreement-template .actions{justify-content:flex-start}
}
@media(max-width:620px){
  .cn-subagreement-workspace{padding:14px}
  .cn-subagreement-summary{grid-template-columns:1fr}
  .cn-subagreement-audit-row{grid-template-columns:1fr;gap:3px}
  .cn-subagreement-audit-row time{text-align:left}
  .cn-subagreement-current .actions .btn,.cn-subagreement-template .actions .btn{flex:1 1 100%}
  .cn-compliance-check-row{align-items:flex-start;flex-direction:column}
  .cn-compliance-check-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}
  .cn-subcontractor-intake-dialog{width:calc(100vw - 14px);height:calc(100vh - 14px);max-height:calc(100vh - 14px)}
  .cn-external-guest-session{align-items:stretch;flex-direction:column}
  .cn-external-guest-session .btn{width:100%}
}
