.contract-plan-form { color:#344054; }
.contract-plan-form h3 { margin:0 0 16px; font-size:var(--ui-font-16, 16px); color:#182230; }
.contract-plan-form section + section { margin-top:24px; padding-top:24px; border-top:1px solid #eaecf0; }
.contract-plan-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.contract-plan-field { display:flex; flex-direction:column; gap:7px; font-size:var(--ui-font-13, 13px); min-width:0; }
.contract-plan-field .form-control { min-width:0; width:100%; box-sizing:border-box; margin:0; }
.contract-plan-note,.contract-plan-message { color:#667085; font-size:var(--ui-font-13, 13px); line-height:1.7; }
.contract-plan-preview-actions { display:flex; justify-content:space-between; gap:16px; align-items:center; margin-top:24px; }
.contract-plan-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; background:#f6f5fb; padding:16px; margin:16px 0; border-radius:12px; font-size:var(--ui-font-13, 13px); }
.contract-plan-summary span { display:flex; flex-direction:column; gap:6px; }
.contract-plan-summary strong { color:#344054; font-size:var(--ui-font-16, 16px); }
.contract-plan-table-wrap { overflow-x:auto; border:1px solid #e4e7ec; border-radius:10px; }
.contract-plan-table { width:100%; border-collapse:collapse; font-size:var(--ui-font-13, 13px); white-space:nowrap; }
.contract-plan-table th,.contract-plan-table td { text-align:left; padding:12px; border-bottom:1px solid #eaecf0; }
.contract-plan-table th { background:#f9fafb; color:#667085; font-weight:500; }
.contract-plan-table small { display:block; color:#a15c12; margin-top:5px; }
.contract-plan-form [hidden] { display:none!important; }
.contract-workflow-overlay { position:fixed; inset:0; z-index:2000; background:rgba(16,24,40,.45); display:flex; align-items:center; justify-content:center; padding:24px; box-sizing:border-box; }
.contract-lifecycle-dialog { background:white; width:min(880px,100%); max-height:calc(100vh - 48px); display:flex; flex-direction:column; border-radius:18px; box-shadow:0 20px 70px #10182830; }
.contract-lifecycle-dialog > header { padding:22px 26px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid #eaecf0; }
.contract-lifecycle-dialog h2 { margin:5px 0 0; font-size:var(--ui-font-23, 23px); color:#182230; }
.contract-workflow-eyebrow { color:#8064a8; font-size:var(--ui-font-12, 12px); }
.contract-workflow-close { border:0; background:transparent; color:#667085; font-size:var(--ui-font-25, 25px); cursor:pointer; }
.contract-lifecycle-body { overflow:auto; padding:20px 26px; }
.contract-lifecycle-notice { border:1px solid #dfd8ec; background:#f9f7fd; color:#694f8e; border-radius:10px; padding:12px; font-size:var(--ui-font-13, 13px); line-height:1.7; }
.contract-lifecycle-form { margin-top:20px; }
.contract-lifecycle-check { display:block; margin:22px 0 12px; font-size:var(--ui-font-14, 14px); color:#344054; }
.contract-lifecycle-dialog > footer { display:flex; gap:12px; align-items:center; padding:18px 26px; border-top:1px solid #eaecf0; }
.contract-lifecycle-message { flex:1; color:#b54708; font-size:var(--ui-font-13, 13px); line-height:1.6; }
.contract-lifecycle-review { color:#475467; font-size:var(--ui-font-13, 13px); line-height:1.8; }
.contract-lifecycle-warning { color:#b54708; }
.contract-lifecycle-plan { margin-top:24px; }
.contract-lifecycle-dialog [hidden] { display:none!important; }
@media(max-width:600px) { .contract-plan-grid { grid-template-columns:1fr; } .contract-plan-preview-actions { flex-direction:column; align-items:stretch; } .contract-plan-preview-actions .btn { width:100%; } }
@media(max-width:600px) { .contract-workflow-overlay { padding:10px; } .contract-lifecycle-dialog { max-height:calc(100dvh - 20px); } .contract-lifecycle-body { padding:16px; } .contract-lifecycle-dialog > header { padding:16px; } .contract-lifecycle-dialog > footer { flex-wrap:wrap; padding:16px; } .contract-lifecycle-message { flex-basis:100%; } .contract-lifecycle-dialog > footer .btn { flex:1; } }

.contract-owner-filter { padding:16px; font-size:var(--ui-font-13, 13px); color:#667085; background:#fcfaf6; border-bottom:1px solid #eee7dc; }
.contract-owner-filter[hidden] { display:none; }
.contract-owner-heading { display:flex; align-items:center; flex-wrap:wrap; gap:6px 12px; margin-bottom:12px; }
.contract-owner-heading strong { font-size:var(--ui-font-13, 13px); color:#685b4c; }
.contract-owner-heading span { font-size:var(--ui-font-11, 11px); color:#81776c; }
.contract-owner-buttons { display:flex; flex-wrap:wrap; gap:10px; min-width:0; }
.contract-owner-button { --owner-bg:#f2eeea; --owner-ink:#655848; --owner-line:#ddd0c5; box-sizing:border-box; display:flex; align-items:center; gap:10px; flex:1 1 180px; min-width:146px; min-height:54px; max-width:100%; padding:12px 15px; border:1px solid var(--owner-line); border-radius:12px; background:var(--owner-bg); color:var(--owner-ink); font:inherit; font-size:var(--ui-font-14, 14px); font-weight:650; line-height:1.5; text-align:left; cursor:pointer; }
.contract-owner-button[data-owner-name=""] { flex-basis:100%; justify-content:center; }
.contract-owner-button[data-owner-name=""] .contract-owner-count { margin-left:0; }
.contract-owner-button[data-owner-tone] { --owner-bg:hsl(var(--owner-hue) 62% 95%); --owner-ink:hsl(var(--owner-hue) 40% 32%); --owner-line:hsl(var(--owner-hue) 40% 81%); }
.contract-owner-button:hover { border-color:var(--owner-ink); }
.contract-owner-button[aria-pressed="true"] { border-color:var(--owner-ink); box-shadow:inset 0 0 0 1px var(--owner-ink),0 3px 8px #5b463312; }
.contract-owner-button:focus-visible,.contract-owner-retry:focus-visible { outline:3px solid #76569b; outline-offset:3px; }
.contract-owner-mark { flex:0 0 14px; visibility:hidden; font-size:var(--ui-font-15, 15px); }
.contract-owner-button[aria-pressed="true"] .contract-owner-mark { visibility:visible; }
.contract-owner-name { min-width:0; overflow-wrap:anywhere; }
.contract-owner-count { flex:0 0 auto; min-width:26px; padding:2px 7px; margin-left:auto; border-radius:8px; background:#ffffffb8; text-align:center; font-size:var(--ui-font-12, 12px); font-variant-numeric:tabular-nums; }
.contract-owner-message { margin:4px 0; color:#81776c; }
.contract-owner-retry { margin-top:8px; padding:8px 12px; border:1px solid #d6c8e9; border-radius:8px; background:#f0ebfa; color:#65458d; cursor:pointer; }
@media(max-width:600px) { .contract-owner-filter { padding:14px 12px; } .contract-owner-buttons { gap:8px; } .contract-owner-button { flex:1 1 calc(50% - 8px); min-width:0; max-width:100%; padding:11px 10px; gap:7px; font-size:var(--ui-font-13, 13px); } .contract-owner-button.is-long { flex-basis:100%; } }

.contract-wizard { width:min(1120px,100%); max-height:calc(100dvh - 48px); background:#fff; border-radius:20px; display:flex; flex-direction:column; box-shadow:0 24px 80px #18223035; color:#344054; }
.contract-wizard > header { display:flex; align-items:center; justify-content:space-between; padding:24px 28px; border-bottom:1px solid #eaecf0; }
.contract-wizard h2 { margin:7px 0 0; font-size:var(--ui-font-24, 24px); color:#182230; }
.contract-wizard h3 { font-size:var(--ui-font-16, 16px); margin:0 0 18px; color:#182230; }
.contract-wizard p { color:#667085; font-size:var(--ui-font-13, 13px); line-height:1.8; }
.contract-wizard [hidden] { display:none!important; }
.contract-wizard-steps { display:flex; gap:8px; padding:18px 28px; background:#faf9fc; overflow:auto; flex-shrink:0; }
.contract-wizard-steps button { border:0; background:none; display:flex; align-items:center; gap:8px; white-space:nowrap; padding:4px 8px; color:#667085; font-size:var(--ui-font-12, 12px); cursor:pointer; }
.contract-wizard-steps b { display:grid; place-items:center; border-radius:50%; background:#eae7ef; width:25px; height:25px; font-weight:500; }
.contract-wizard-steps .active { color:#7149a1; font-weight:600; }
.contract-wizard-steps .active b { background:#8060aa; color:white; }
.contract-wizard-steps button.has-error { color:#a72b3b; font-weight:600; }
.contract-wizard-steps button.has-error b { background:#f6e5e7; color:#a72b3b; }
.contract-wizard-steps button.has-error.active b { background:#a72b3b; color:#fff; }
.contract-wizard .contract-plan-field.has-error { color:#a72b3b; }
.contract-wizard .contract-plan-field.has-error .form-control { border-color:#c84f60; background:#f9f2f3; box-shadow:0 0 0 1px #c84f6030; }
.contract-wizard-field-error { color:#a72b3b; font-size:var(--ui-font-12, 12px); line-height:1.5; font-weight:600; }
.contract-wizard-body { padding:24px 28px; overflow:auto; overscroll-behavior:contain; }
.contract-wizard-drafts { display:flex; align-items:end; gap:12px; padding-bottom:22px; margin-bottom:24px; border-bottom:1px solid #eaecf0; }
.contract-wizard-drafts label { display:grid; gap:6px; font-size:var(--ui-font-12, 12px); color:#667085; }
.contract-wizard-drafts .form-control { margin:0; min-width:210px; }
.contract-wizard > footer { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:18px 28px; border-top:1px solid #eaecf0; }
.contract-wizard-status { color:#80623e; font-size:var(--ui-font-13, 13px); line-height:1.7; }
.contract-wizard-actions { display:flex; gap:10px; flex-shrink:0; flex-wrap:wrap; }
.contract-wizard-actions [data-confirm-save] { white-space:normal; flex:0 1 auto; }
.contract-wizard-plan section + section { margin:0; border:0; padding:0; }
.contract-wizard-vehicle { margin-top:20px; padding:20px; background:#f5f3fa; border-radius:12px; font-size:var(--ui-font-18, 18px); font-weight:600; color:#695580; }
.contract-wizard-files { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-bottom:24px; }
.contract-wizard-file { border:1px dashed #c8badb; background:#fcfaff; border-radius:12px; padding:14px; min-width:0; display:flex; flex-direction:column; gap:10px; }
.contract-wizard-file label { display:grid; gap:10px; font-size:var(--ui-font-13, 13px); }
.contract-wizard-file label span,.contract-wizard-file small { font-size:var(--ui-font-12, 12px); color:#806f91; overflow-wrap:anywhere; }
.contract-wizard-file input { width:100%; font-size:var(--ui-font-12, 12px); }
.contract-wizard-file img { width:100%; max-height:130px; object-fit:contain; border-radius:8px; }
.contract-wizard-preview-title { padding:26px; border-radius:16px; background:linear-gradient(135deg,#f0eaf8,#f8f5fc); margin-bottom:22px; }
.contract-wizard-preview-title > span { font-size:var(--ui-font-12, 12px); color:#8a729e; }
.contract-wizard-summary { border:1px solid #e4e7ec; border-radius:12px; padding:20px; margin-bottom:18px; }
.contract-wizard-summary header { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.contract-wizard-summary h3 { margin:0; }
.contract-wizard-summary dl { margin:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.contract-wizard-summary dt { font-size:var(--ui-font-12, 12px); color:#98a2b3; margin-bottom:6px; }
.contract-wizard-summary dd { margin:0; font-size:var(--ui-font-14, 14px); overflow-wrap:anywhere; color:#344054; }
.contract-wizard-template { margin:24px 0; padding:24px; background:#f9fafb; border-radius:12px; }
.contract-wizard-progress { display:flex; align-items:center; gap:14px; margin:28px 0; font-size:var(--ui-font-14, 14px); }
.contract-wizard-progress progress { width:100%; accent-color:#8060aa; }
.contract-wizard-document > .btn { margin:8px 8px 8px 0; }
@media(max-width:700px) { .contract-wizard { max-height:calc(100dvh - 20px); } .contract-wizard > header,.contract-wizard-body { padding:18px; } .contract-wizard h2 { font-size:var(--ui-font-21, 21px); } .contract-wizard-steps { padding:14px; } .contract-wizard-files,.contract-wizard-summary dl { grid-template-columns:1fr; } .contract-wizard-drafts { flex-wrap:wrap; } .contract-wizard-drafts label,.contract-wizard-drafts select { width:100%; min-width:0; } .contract-wizard > footer { display:block; padding:14px; } .contract-wizard-status { margin-bottom:10px; } .contract-wizard-actions { flex-wrap:wrap; } .contract-wizard-actions .btn { flex:1; min-width:80px; padding:10px; } }

.workflow-record-head { display:flex; align-items:start; justify-content:space-between; gap:18px; flex-wrap:wrap; }
.workflow-record-head h3 { margin:0; font-size:var(--ui-font-16, 16px); }
.workflow-record-head p,.workflow-record-status { color:#667085; font-size:var(--ui-font-13, 13px); line-height:1.7; }
.workflow-record-head select { width:auto; max-width:100%; }
.workflow-record-actions { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
#contract-workflow-files { border:1px solid #e4dcee; border-radius:12px; padding:20px; margin-bottom:20px; background:#fcfaff; }
.contract-material-page { width:min(1220px,100%); height:calc(100dvh - 48px); background:#fff; border-radius:18px; display:flex; flex-direction:column; }
.contract-material-page > header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 28px; border-bottom:1px solid #eaecf0; }
.contract-material-page h2 { margin:8px 0 0; color:#182230; font-size:var(--ui-font-24, 24px); }
.contract-material-page-body { padding:24px 28px; overflow:auto; }
.contract-material-page > footer { display:flex; gap:12px; align-items:center; padding:16px 24px; margin-top:auto; border-top:1px solid #eaecf0; }
.contract-material-page-status { flex:1; color:#80623e; font-size:var(--ui-font-13, 13px); line-height:1.6; }
@media(max-width:700px){ .contract-material-page { height:calc(100dvh - 20px); } .contract-material-page > header,.contract-material-page-body { padding:16px; } .contract-material-page h2 { font-size:var(--ui-font-20, 20px); } .contract-material-page > footer { flex-wrap:wrap; padding:14px; } .contract-material-page-status { flex-basis:100%; } .contract-material-page > footer .btn { flex:1; } }

.contract-wizard-end-date { padding:12px; border-radius:10px; background:#f5f2fa; color:#694f8e!important; }
.contract-wizard-template-pages { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; max-height:500px; overflow:auto; margin-top:12px; }
.contract-wizard-template-pages img { width:100%; border:1px solid #e4e7ec; }
.contract-video-record { margin:0 0 18px; }
.contract-video-record video { display:block; width:100%; max-width:680px; max-height:420px; margin-bottom:10px; background:#101828; border-radius:10px; }

.contract-wizard-primary-files { grid-template-columns:repeat(2,minmax(0,1fr)); }
.contract-wizard-cert { margin-top:24px; padding:20px; border:1px solid #e5deed; border-radius:12px; background:#fbf9fd; }
.contract-wizard-cert > .contract-plan-field,.contract-wizard-cert > [data-cert-dates],.contract-wizard-cert > [data-cert-progress] { margin-bottom:18px; }
.contract-wizard-cert-image .contract-wizard-file { background:#fff; }
.contract-wizard-cert [data-cert-hint] { margin:0; align-self:center; }
@media(max-width:700px) { .contract-wizard-primary-files { grid-template-columns:1fr; } .contract-wizard-cert { padding:14px; } }

/* HX183: A standing labels and white material surfaces, without changing workflow state. */
@media screen {
 :is(.contract-wizard,.contract-lifecycle-dialog,.contract-material-page){color:var(--hx-ui-ink,#243f48);background:var(--hx-ui-surface,#fff)}
 :is(.contract-wizard,.contract-lifecycle-dialog,.contract-material-page)>header,:is(.contract-wizard,.contract-lifecycle-dialog,.contract-material-page)>footer{border-color:var(--hx-ui-line,#dbe6e2)}
 .contract-plan-field:not(.has-error)>span,.contract-wizard-summary dt{color:var(--hx-ui-muted,#48636e)}
 .contract-plan-field>span,.contract-wizard-file label{font-weight:600}
 .contract-plan-note,.contract-plan-message,.workflow-record-head p,.workflow-record-status{color:var(--hx-ui-muted,#48636e)}
 .contract-plan-summary,.contract-wizard-steps,.contract-wizard-template{background:var(--hx-ui-soft,#f2f7f5)}
 .contract-wizard-file,.contract-wizard-cert,#contract-workflow-files{background:var(--hx-ui-surface,#fff);border-color:var(--hx-ui-line,#cbded8)}
 .contract-wizard-file label span,.contract-wizard-file small{color:var(--hx-ui-muted,#48636e);white-space:normal;overflow-wrap:anywhere}
 .contract-wizard-steps button.active:not(.has-error){color:var(--hx-ui-accent,#176d70);background:var(--hx-ui-soft,#eaf3ef);border-radius:7px}
 .contract-wizard-steps button.active:not(.has-error) b{background:var(--hx-ui-accent,#176d70);color:#fff}
 .contract-wizard-steps button{transition:background-color .16s,color .16s}
 :is(.contract-wizard,.contract-lifecycle-dialog,.contract-material-page) :is(button,a,input,select,textarea):focus-visible{outline:2px solid var(--hx-ui-focus,#187b82);outline-offset:2px}
 .contract-wizard-summary dd,.contract-plan-summary strong{font-variant-numeric:tabular-nums}
}
@media screen and (prefers-reduced-motion:reduce){.contract-wizard-steps button{transition:none}}
@media screen and (forced-colors:active){:is(.contract-wizard,.contract-lifecycle-dialog,.contract-material-page,.contract-wizard-file,.contract-wizard-cert,.contract-plan-summary,.contract-wizard-steps,.contract-wizard-template){background:Canvas;color:CanvasText;box-shadow:none}.contract-wizard-steps button.active{outline:2px solid Highlight;outline-offset:-2px}.contract-wizard-steps button.active:not(.has-error) b{background:Highlight;color:HighlightText}}
