@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&display=swap');

:root { --neq-navy: #071e27; --neq-gold: #f28f00; --neq-ink: #14272f; --neq-muted: #64747a; }
.client-portal { margin: 0; background: #f4f5f3; color: var(--neq-ink); font: 14px/1.6 'Montserrat', Arial, sans-serif; }
.client-portal *, .client-portal *::before, .client-portal *::after { box-sizing: border-box; }
.client-portal a { color: #875000; text-underline-offset: 4px; }
.client-portal button, .client-portal input, .client-portal select, .client-portal textarea { font: inherit; }
.brand-strip { background: var(--neq-gold); padding: 7px 20px; font-size: 9px; letter-spacing: .16em; font-weight: 800; text-transform: uppercase; text-align: center; }
.portal-header { background: var(--neq-navy); border-bottom: 1px solid #ffffff15; }
.header-inner { max-width: 1220px; min-height: 86px; padding: 16px 30px; margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand-link { display: flex; align-items: center; gap: 22px; text-decoration: none; }
.brand-link img { width: 124px; height: 46px; object-fit: contain; }
.brand-label { color: #c3cdd0; font-size: 10px; letter-spacing: .16em; text-transform: uppercase; border-left: 1px solid #ffffff30; padding-left: 22px; }
.portal-nav { display: flex; gap: 26px; align-items: center; }
.portal-nav a { color: #d0d9db; text-decoration: none; font-size: 11px; font-weight: 600; }
.portal-nav a:hover, .portal-nav a[aria-current=page] { color: var(--neq-gold); }
.portal-nav a.nav-cta { border: 1px solid #ffffff3a; border-radius: 7px; padding: 9px 17px; }
.portal-nav form { margin: 0; }
.client-portal button, .client-portal .button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 12px 20px; border: 1px solid transparent; border-radius: 7px; background: var(--neq-gold); color: #172125; font-weight: 700; text-decoration: none; cursor: pointer; transition: background .18s, transform .18s; }
.client-portal button:hover, .client-portal .button:hover { background: #ff9f19; transform: translateY(-1px); }
.client-portal button:focus-visible, .client-portal a:focus-visible { outline: 3px solid #c87900; outline-offset: 4px; }
.client-portal .portal-nav button { background: transparent; border-color: #ffffff30; color: white; font-size: 11px; padding: 8px 16px; }
.portal-main { max-width: 1220px; margin: 42px auto 64px; padding: 0 30px; min-height: 55vh; }
.client-portal h1 { font-size: clamp(26px, 3vw, 36px); line-height: 1.25; letter-spacing: -.045em; font-weight: 800; margin: 0 0 12px; }
.client-portal h2 { font-size: 18px; line-height: 1.4; letter-spacing: -.025em; margin: 0 0 14px; }
.client-portal .muted { color: var(--neq-muted); }
.client-portal .card, .client-portal fieldset { background: white; border: 1px solid #dfe5e5; border-radius: 12px; padding: 26px; margin: 24px 0; box-shadow: 0 5px 18px #071e2704; min-width: 0; }
.client-portal legend { font-weight: 700; font-size: 15px; padding: 0 8px; }
.client-portal label { display: block; color: #30434b; font-size: 12px; font-weight: 600; margin: 16px 0 7px; }
.client-portal input:not([type=checkbox]), .client-portal select, .client-portal textarea { width: 100%; min-height: 45px; background: #fafbfb; border: 1px solid #dce2e3; border-radius: 6px; padding: 11px 13px; color: var(--neq-ink); outline: none; transition: border-color .18s, box-shadow .18s; }
.client-portal input::placeholder, .client-portal textarea::placeholder { color: #89969c; font-size: 11px; }
.client-portal input:focus, .client-portal select:focus, .client-portal textarea:focus { border-color: #d58000; box-shadow: 0 0 0 3px #f28f0019; background: white; }
.client-portal input[type=checkbox] { accent-color: #bd6d00; margin: 0 7px 0 0; vertical-align: middle; width: 16px; height: 16px; }
.client-portal select[multiple] { min-height: 140px; }
.client-portal textarea { min-height: 90px; resize: vertical; }
.client-portal .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px; }
.client-portal .grid .card { border-top: 3px solid var(--neq-gold); }
.client-portal .table-wrap { overflow-x: auto; }
.client-portal table { width: 100%; border-collapse: collapse; font-size: 12px; }
.client-portal th, .client-portal td { text-align: left; padding: 17px 12px; border-bottom: 1px solid #e8eded; }
.client-portal th { font-size: 10px; color: var(--neq-muted); text-transform: uppercase; letter-spacing: .08em; background: #f7f9f8; }
.client-portal .status { background: #fff2dc; color: #865200; padding: 6px 11px; border-radius: 5px; display: inline-block; font-weight: 600; font-size: 11px; }
.client-portal .success, .client-portal .errors { padding: 16px 20px; border-radius: 8px; margin: 0 0 22px; }
.client-portal .success { background: #e5f4eb; color: #24613f; border: 1px solid #c4e5d1; }
.client-portal .errors { background: #fff0ec; color: #912f23; border: 1px solid #f2cec5; }
.client-portal .errors ul { margin: 0; padding-left: 18px; }
.client-portal .timeline { list-style: none; padding-left: 20px; border-left: 2px solid #f2d3a4; }
.client-portal .timeline li { position: relative; margin: 22px 0; }
.client-portal .timeline li::before { content: ''; position: absolute; width: 10px; height: 10px; background: var(--neq-gold); border: 2px solid white; border-radius: 50%; left: -26px; top: 7px; }
.client-portal .details { white-space: pre-wrap; }
.client-portal .repeat-row { border-bottom: 1px solid #dfe5e5; padding-bottom: 20px; margin-bottom: 20px; }
.portal-footer { max-width: 1160px; margin: auto; padding: 22px 0 30px; border-top: 1px solid #dce2e2; display: flex; justify-content: space-between; gap: 20px; color: #77858b; font-size: 10px; }
.portal-footer a { color: #4d646e; text-decoration: none; }
.auth-shell { display: grid; grid-template-columns: .9fr 1.1fr; border: 1px solid #dfe5e5; border-radius: 16px; overflow: hidden; background: white; box-shadow: 0 20px 60px #071e2709; }
.auth-intro { position: relative; padding: 46px 40px; background: radial-gradient(ellipse at 90% 100%, #1a4553, transparent 65%), var(--neq-navy); color: white; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; }
.auth-intro::after { content: ''; position: absolute; width: 400px; height: 400px; border: 1px solid #ffffff09; border-radius: 50%; bottom: -180px; right: -160px; box-shadow: 0 0 0 65px #ffffff03, 0 0 0 130px #ffffff02; pointer-events: none; }
.auth-intro > * { position: relative; z-index: 1; }
.eyebrow { font-size: 9px; letter-spacing: .16em; font-weight: 700; text-transform: uppercase; color: #ad6b08; }
.auth-intro .eyebrow { display: inline-flex; align-items: center; gap: 9px; color: var(--neq-gold); }
.auth-intro .eyebrow::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--neq-gold); }
.client-portal .intro-heading { font-size: clamp(34px, 3.7vw, 49px); line-height: 1.14; letter-spacing: -.055em; margin: 25px 0 20px; color: white; }
.intro-heading span { color: var(--neq-gold); }
.intro-description { color: #b5c7cc; font-size: 12px; line-height: 1.9; max-width: 340px; }
.service-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 26px 0 40px; }
.service-tags span { font-size: 9px; color: #d7e1e4; border: 1px solid #ffffff22; padding: 6px 10px; border-radius: 5px; }
.intro-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 22px; }
.intro-steps li { display: flex; gap: 14px; align-items: flex-start; }
.step-number { display: flex; align-items: center; justify-content: center; flex: 0 0 32px; height: 32px; font-size: 10px; font-weight: 700; color: var(--neq-gold); border: 1px solid #f28f0040; border-radius: 7px; background: #f28f0009; }
.intro-steps strong { display: block; font-size: 11px; font-weight: 600; margin-bottom: 3px; }
.intro-steps p { font-size: 10px; color: #95aeb7; margin: 0; max-width: 300px; }
.intro-bottom { margin-top: 42px; padding-top: 23px; border-top: 1px solid #ffffff1a; font-size: 9px; letter-spacing: .08em; color: #c9d6da; }
.intro-bottom span { display: block; font-size: 9px; color: #7996a2; margin-top: 4px; letter-spacing: .02em; }
.auth-panel { padding: 36px 42px; }
.auth-panel .auth-heading { font-size: 27px; margin: 8px 0 9px; }
.auth-description { color: var(--neq-muted); font-size: 12px; margin: 0 0 25px; }
.auth-description a { color: #885000; font-weight: 600; text-decoration: none; }
.form-section { border-top: 1px solid #edf0f0; padding-top: 17px; margin-top: 20px; }
.form-section-title { color: #718088; text-transform: uppercase; letter-spacing: .1em; font-size: 9px; font-weight: 700; margin: 0 0 13px; display: flex; align-items: center; gap: 8px; }
.form-section-title span { color: #ae6e0b; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px 18px; }
.auth-panel label { margin-top: 0; font-size: 11px; }
.client-portal .field-full { grid-column: 1 / -1; }
.auth-panel input { font-size: 12px; }
.auth-panel .submit-button { width: 100%; margin-top: 24px; min-height: 46px; font-size: 12px; }
.submit-button svg { width: 16px; height: 16px; margin-left: auto; }
.submit-button span { margin-left: auto; }
.auth-note { color: #829096; font-size: 10px; text-align: center; margin: 12px 0 0; }
.google-button { display: flex; justify-content: center; align-items: center; gap: 10px; border: 1px solid #dce2e3; color: #32464f !important; border-radius: 7px; text-decoration: none; padding: 11px; font-size: 12px; font-weight: 600; }
.google-button svg { width: 18px; height: 18px; }
.auth-divider { display: flex; gap: 12px; align-items: center; margin: 20px 0; font-size: 10px; color: #87959b; }
.auth-divider::before, .auth-divider::after { content: ''; height: 1px; flex: 1; background: #e8ecec; }
.auth-panel .remember { margin: 20px 0 0; font-weight: 400; }
.auth-panel .auth-switch { margin: 24px 0 0; text-align: center; }
@media (max-width: 900px) { .auth-intro { padding: 34px 28px; } .auth-panel { padding: 30px; } .header-inner { padding: 16px 24px; } .portal-main { padding: 0 24px; } .portal-footer { margin: 0 24px; } .brand-label { display: none; } }
@media (max-width: 700px) { .brand-strip { font-size: 8px; letter-spacing: .07em; } .header-inner { min-height: 74px; padding: 14px 20px; gap: 14px; flex-wrap: wrap; } .brand-link img { width: 100px; height: 36px; } .portal-nav { gap: 16px; } .portal-nav a { font-size: 10px; } .portal-nav .website-link { display: none; } .portal-nav a.nav-cta { padding: 7px 11px; } .portal-main { margin-top: 24px; padding: 0 16px; margin-bottom: 36px; } .auth-shell { grid-template-columns: 1fr; } .auth-intro { padding: 28px; } .client-portal .intro-heading { font-size: 35px; margin-top: 18px; } .intro-description { max-width: none; margin-bottom: 0; } .service-tags { margin: 20px 0 0; } .intro-steps, .intro-bottom { display: none; } .auth-panel { padding: 28px 24px; } .form-grid { grid-template-columns: 1fr; gap: 16px; } .portal-footer { flex-direction: column; gap: 8px; margin: 0 16px; } .client-portal .card, .client-portal fieldset { padding: 20px; } }
@media (prefers-reduced-motion: reduce) { .client-portal button, .client-portal .button { transition: none; } }

.page-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.company-filters { display:grid; grid-template-columns:2fr 1fr auto; align-items:end; gap:20px; }
.company-filters label { margin-top:0; }
.role-options { display:flex; flex-wrap:wrap; gap:20px; }
.client-portal .secondary-button { background:#f0f3f3; color:#52636b; margin-top:14px; }
@media(max-width:700px) { .page-heading { flex-direction:column; align-items:flex-start; } .company-filters { grid-template-columns:1fr; } .portal-nav { flex-wrap:wrap; } }

.client-portal .undertaking { white-space: pre-line; padding: 1.25rem; margin-bottom: 1.25rem; border: 1px solid #dce3e7; background: #f7f9fa; border-radius: 8px; line-height: 1.8; }
.client-portal [hidden] { display: none !important; }
.client-portal input:disabled { background: #f1f4f6; color: #57636b; }

/* Application workspace */
.application-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:28px; }
.application-heading h1 { margin-top:9px; font-size:32px; }
.application-heading p { margin:0; font-size:12px; }
.back-link { font-size:11px; font-weight:600; white-space:nowrap; text-decoration:none; }
.application-steps { display:flex; gap:40px; border-bottom:1px solid #dce4e5; padding-bottom:22px; margin-bottom:30px; font-size:11px; color:#64747a; }
.application-steps span { display:flex; align-items:center; gap:10px; }
.application-steps b { color:#875000; background:#fff0d8; border-radius:6px; padding:5px 9px; font-size:10px; }
.client-portal .application-form > fieldset { padding:28px 32px 32px; margin:0 0 28px; border-color:#e1e7e8; box-shadow:0 5px 20px #071e2705; }
.application-form legend { color:#112e3a; font-size:16px; }
.application-form fieldset > p { margin:0 0 12px; color:#74838b; font-size:11px; }
.application-form .form-grid { gap:22px 28px; align-items:start; }
.application-form label { margin-top:8px; }
.application-form label input, .application-form label textarea, .application-form label select { display:block; margin-top:8px; }
.application-form label input[type=checkbox] { display:inline-block; margin-top:0; }
.application-form small, .field-hint { display:block; color:#7a8990; font-size:10px; font-weight:400; margin-top:8px; }
.required-mark { color:#dc2626; }
.client-portal .field-validation-error { color:#b91c1c; font-size:12px; font-weight:400; margin:6px 0 0; line-height:1.5; }
.client-portal input[aria-invalid=true], .client-portal textarea[aria-invalid=true], .client-portal select[aria-invalid=true], .client-portal .select-trigger[aria-invalid=true] { border-color:#dc2626; }
.client-portal .form-validation-summary { margin:0 0 18px; }
.client-portal .form-validation-summary button { padding:3px 0; background:transparent; border:0; color:#b91c1c; font-size:13px; text-align:left; text-decoration:underline; box-shadow:none; transform:none; }
.company-control { display:flex; gap:8px; align-items:start; }
.company-control .search-select { flex:1; min-width:0; }
.client-portal .add-company-button { flex:0 0 46px; height:46px; padding:0; font-size:23px; background:#fff5e6; color:#a96300; border-color:#f4dbb5; }
.search-select { position:relative; width:100%; margin-top:8px; }
.company-control .search-select { margin-top:0; }
.client-portal .native-select { position:absolute; width:1px; height:1px; min-height:0; opacity:0; padding:0; border:0; pointer-events:none; }
.client-portal .select-trigger { width:100%; min-height:46px; padding:11px 38px 11px 14px; position:relative; text-align:left; justify-content:flex-start; background:#fff; border:1px solid #d5dfe2; color:#839099; font-size:12px; font-weight:400; transform:none; }
.select-trigger::after { content:''; position:absolute; right:18px; top:50%; width:7px; height:7px; border-right:1.5px solid #617780; border-bottom:1.5px solid #617780; transform:translateY(-70%) rotate(45deg); pointer-events:none; }
.client-portal .select-trigger.has-value { color:#1b3540; font-weight:500; }
.client-portal .select-trigger[aria-expanded=true] { border-color:#d28b25; box-shadow:0 0 0 3px #f28f0012; }
.select-panel { position:absolute; z-index:20; top:calc(100% + 6px); width:100%; min-width:240px; padding:10px; background:white; border:1px solid #dce4e6; border-radius:9px; box-shadow:0 12px 35px #071e2720; }
.search-select:has(.selected-chips:not(:empty)) .select-panel { top:52px; }
.client-portal .select-panel input { min-height:39px; margin:0 0 8px; font-size:11px; background:#f7f9fa; }
.select-options { max-height:230px; overflow:auto; }
.client-portal .select-option { width:100%; padding:10px; margin:2px 0; border-radius:5px; background:white; color:#28434e; text-align:left; justify-content:space-between; font-size:11px; font-weight:500; transform:none; }
.client-portal .select-option:hover, .client-portal .select-option:focus-visible { background:#fff4e3; }
.client-portal .select-option[aria-pressed=true] { background:#fff3de; color:#8b5506; }
.option-check { flex-shrink:0; min-width:15px; font-weight:700; }
.select-empty { font-size:11px; color:#71848d; padding:5px 8px; }
.selected-chips { display:flex; flex-wrap:wrap; gap:7px; margin-top:9px; }
.selected-chips:empty { margin:0; }
.selected-chip { display:inline-flex; align-items:center; gap:7px; max-width:100%; padding:5px 8px 5px 10px; background:#edf3f5; color:#264651; border:1px solid #dce6e9; border-radius:6px; font-size:10px; }
.selected-chip span { overflow-wrap:anywhere; }
.client-portal .selected-chip button { background:transparent; color:#516c76; border:0; padding:0 3px; font-size:15px; transform:none; }
.application-form .repeat-row { border:1px solid #e1e8eb; background:#fbfcfc; border-radius:9px; padding:20px; }
.application-form [data-add], .application-form [data-clone], .application-form [data-remove] { font-size:11px; padding:8px 13px; background:#edf2f4; color:#48616b; border:1px solid #dce5e8; }
.application-form [data-remove] { margin-top:16px; color:#927064; }
.client-portal .application-form .undertaking { font-size:11px; line-height:1.9; padding:22px; border-radius:8px; background:#f8fafb; }
.application-submit { display:flex; align-items:center; justify-content:space-between; gap:20px; border-top:1px solid #dce4e6; padding-top:24px; }
.application-submit p { font-size:11px; color:#48616b; margin:0; }
.application-submit small { margin-top:3px; }
.client-portal dialog { width:min(800px, calc(100% - 32px)); max-height:90vh; padding:28px; border:1px solid #dce5e7; border-radius:14px; box-shadow:0 25px 100px #071e2740; color:var(--neq-ink); }
.client-portal dialog::backdrop { background:#071e2780; backdrop-filter:blur(3px); }
.dialog-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.dialog-heading h2 { font-size:23px; margin:6px 0 0; }
.client-portal .dialog-heading button { background:#f0f4f5; color:#61747e; padding:2px 12px; font-size:24px; }
.client-portal dialog > p { font-size:11px; }
.client-portal dialog fieldset { box-shadow:none; padding:20px; }
.dialog-actions { display:flex; justify-content:flex-end; align-items:center; gap:12px; position:sticky; bottom:-28px; background:white; padding:18px 0; border-top:1px solid #e3e9eb; }
.dialog-actions .secondary-button { margin:0; }
.client-portal button:disabled { opacity:.55; cursor:wait; transform:none; }
@media(max-width:700px) {
 .application-heading { flex-direction:column; align-items:flex-start; gap:12px; }
 .application-heading h1 { font-size:26px; }
 .application-steps { gap:12px; justify-content:space-between; font-size:9px; }
 .application-steps span { flex-direction:column; align-items:flex-start; gap:7px; }
 .client-portal .application-form > fieldset { padding:22px 18px; }
 .application-form .form-grid { grid-template-columns:1fr; gap:16px; }
 .application-submit { flex-direction:column; align-items:stretch; }
 .client-portal dialog { padding:20px; }
 .client-portal dialog .form-grid { grid-template-columns:1fr; }
 .select-panel { min-width:0; }
}

.client-portal .native-select { display:none; }
.company-address-preview { margin-top:12px; padding:14px; border:1px solid #e3e9eb; border-radius:8px; background:#f6f9fa; font-size:12px; }
.company-address-preview p { white-space:pre-line; margin:10px 0 0; line-height:1.6; }
.edit-company-address { float:right; color:#875000; font-size:12px; font-weight:600; text-decoration:underline; text-underline-offset:3px; }
@media(max-width:700px) { .edit-company-address { float:none; display:block; margin-top:8px; } }
.application-information.three-columns .form-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
@media(max-width:900px) { .application-information.three-columns .form-grid { grid-template-columns:1fr; } }

.client-portal .pc-heading { background:#102e39; color:#fff; border-radius:16px; padding:32px; border-top:4px solid #e0a500; margin-bottom:24px; }
.pc-heading .eyebrow { color:#f5c766; letter-spacing:1.5px; }
.client-portal .pc-heading h1 { color:#fff; font-size:32px; margin:10px 0; }
.pc-heading .muted { color:#d0dce1; max-width:600px; font-size:14px; line-height:1.7; }
.pc-heading .back-link { color:#fff; border:1px solid #54717b; border-radius:8px; padding:10px 14px; white-space:nowrap; }
.pc-steps { justify-content:space-between; gap:18px; padding:0 4px 14px; margin-bottom:16px; font-size:12px; }
.pc-steps b { background:#102e39; color:#fff; border-radius:50%; width:30px; height:30px; display:grid; place-items:center; padding:0; }
.client-portal .pc-application-form > fieldset { background:#fff; border-radius:14px; padding:16px 22px 18px; margin-bottom:14px; box-shadow:0 4px 16px #102e3906; }
.pc-application-form legend { font-size:18px; font-weight:600; padding:0 10px; }
.pc-section-number { color:#a56c00; font-size:12px; letter-spacing:1px; margin-right:10px; }
.pc-application-form fieldset > p { font-size:13px; line-height:1.5; margin-bottom:10px; }
.pc-application-form .form-grid { gap:12px 20px; }
.pc-application-form label { margin-top:4px; }
.pc-application-form .field-hint, .pc-application-form small { margin-top:5px; }
.pc-application-form label, .pc-application-form .company-field > label { font-size:13px; font-weight:600; color:#29454f; }
.pc-application-form textarea { min-height:88px; background:#fcfdfd; border-radius:8px; font-size:14px; padding:12px; }
.pc-application-form .field-hint, .pc-application-form small { font-size:12px; line-height:1.5; }
.pc-application-form .company-address-preview { border-left:3px solid #dba62e; background:#f7f9fa; padding:16px; font-size:13px; }
.pc-standard-panel { background:#f6f9fa; border:1px solid #e1e8eb; border-radius:10px; padding:16px; margin:12px 0 16px; }
.pc-standard-panel h2, .pc-subheading h2 { color:#183945; font-size:16px; margin:0 0 12px; }
.pc-subheading p { font-size:12px; color:#6a7d85; margin:0 0 18px; line-height:1.6; }
.pc-application-form .repeat-row { padding:16px; margin-bottom:12px; background:#fff; border-radius:10px; border-top:3px solid #dbe5e9; }
.pc-document-types { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:16px 0; }
.pc-document-types label { display:flex; align-items:center; gap:10px; padding:14px; margin:0; border:1px solid #dce5e8; border-radius:8px; background:#fbfcfd; cursor:pointer; }
.pc-document-types label:has(input:checked) { border-color:#b88b29; background:#fffaf0; }
.pc-application-form .pc-document-types input[type=checkbox] { flex:0 0 auto; margin:0; accent-color:#a57916; }
.pc-upload-card { padding:18px; margin-top:14px; border:1px dashed #bdcdd3; border-radius:10px; background:#f8fafb; }
.pc-upload-card input[type=file] { padding:12px; background:#fff; }
.upload-file-row { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:10px; padding:10px 12px; border:1px solid #c9e4d7; border-radius:8px; background:#f2faf6; color:#24583e; font-size:13px; overflow-wrap:anywhere; }
.upload-file-row button { flex:0 0 auto; padding:6px 10px; border:1px solid #c5d2d6; border-radius:6px; background:#fff; color:#24434d; }
.upload-file-row.upload-file-failed { border-color:#efc7be; background:#fff4f1; color:#912f23; }
.application-attachments input[type=file] { padding:12px; background:#fff; }
.client-upload-dropzone { position:relative; display:flex; min-height:64px; align-items:center; justify-content:center; padding:14px 20px; border:1px solid #d7dfe1; border-radius:8px; background:#fff; color:#667078; text-align:center; cursor:pointer; }
.client-upload-dropzone strong { color:#a45a18; font-weight:600; }
.client-upload-dropzone:hover, .client-upload-dropzone.is-dragging { border-color:#ad7d24; background:#fffaf0; }
.client-upload-dropzone input[type=file] { position:absolute; inset:0; width:100%; height:100%; padding:0; opacity:0; cursor:pointer; }
.upload-file-row.upload-file-pending { display:grid; grid-template-columns:minmax(0,1fr) minmax(100px,220px) auto auto; border-color:#d7dfe1; background:#f6f8f8; color:#344d56; }
.upload-file-progress { height:7px; overflow:hidden; border-radius:8px; background:#dce4e3; }
.upload-file-progress span { display:block; width:0; height:100%; border-radius:inherit; background:#b8872e; transition:width .15s ease; }
.upload-file-status { font-size:12px; white-space:nowrap; }
.upload-file-row.upload-file-complete { display:grid; grid-template-columns:minmax(0,1fr) auto auto; border-color:#567463; background:#567463; color:#fff; }
.upload-file-complete .upload-file-progress { display:none; }
.upload-file-complete .upload-file-status { font-weight:600; }
.upload-file-complete button { border-color:#456454; background:#456454; color:#fff; }
.upload-file-row.upload-file-failed { grid-template-columns:minmax(0,1fr) auto auto; }
.pc-application-form .application-submit { background:#f1f5f6; border:1px solid #dbe5e9; border-radius:12px; padding:22px; }
.pc-application-form .application-submit p { font-size:13px; line-height:1.6; }
.pc-application-form .application-submit button { padding:14px 24px; border-radius:8px; }
@media(max-width:700px) {
 .client-portal .pc-heading { padding:24px 20px; }
 .client-portal .pc-heading h1 { font-size:26px; }
 .pc-steps { font-size:10px; }
 .client-portal .pc-application-form > fieldset { padding:14px 16px; }
 .pc-standard-panel { padding:16px; }
 .pc-document-types { grid-template-columns:1fr; }
}
