:root{
    --ink:#163d4d;
    --muted:#647b84;
    --line:#dbe5e8;
    --soft:#f4f8f9;
    --white:#fff;
    --accent:#087f86;
    --accent-dark:#05636a;
    --orange:#ee8a22;
    --danger:#b4473f;
    --shadow:0 12px 32px rgba(20,61,77,.08);
}

*{
    box-sizing:border-box;
}

body{
    margin:0;
    font-family:Arial,Helvetica,sans-serif;
    color:var(--ink);
    background:var(--soft);
}

a{
    color:inherit;
}

.eyebrow{
    color:var(--accent);
    font-size:11px;
    font-weight:800;
    letter-spacing:.13em;
    text-transform:uppercase;
}


/* LOGIN */

.trade-login-body{
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:30px;
    background:
        linear-gradient(
            135deg,
            #eef6f7 0%,
            #f8fafb 55%,
            #edf4f5 100%
        );
}

.trade-login-shell{
    width:100%;
    max-width:950px;
    display:grid;
    grid-template-columns:1fr 430px;
    background:#fff;
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 24px 60px rgba(20,61,77,.14);
}

.trade-login-brand{
    padding:64px 58px;
    background:#163d4d;
    color:#fff;
}

.trade-login-brand img{
    width:230px;
    max-width:100%;
    background:#fff;
    padding:14px;
    border-radius:12px;
    margin-bottom:45px;
}

.trade-login-brand .eyebrow{
    color:#9bd4d7;
}

.trade-login-brand h1{
    font-size:42px;
    margin:10px 0 14px;
}

.trade-login-brand p{
    max-width:390px;
    color:#d7e6e9;
    line-height:1.6;
}

.trade-login-card{
    padding:55px 45px;
}

.trade-login-card h2{
    margin:0 0 8px;
    font-size:30px;
}

.muted{
    color:var(--muted);
    line-height:1.55;
}

.trade-login-card label{
    display:block;
    margin-top:22px;
    font-size:13px;
    font-weight:800;
}

.trade-login-card input{
    width:100%;
    margin-top:8px;
    padding:13px 14px;
    border:1px solid #cbdadd;
    border-radius:8px;
    font:inherit;
}

.trade-login-card input:focus{
    outline:2px solid rgba(8,127,134,.18);
    border-color:var(--accent);
}

.trade-btn{
    display:inline-flex;
    justify-content:center;
    align-items:center;
    border:0;
    border-radius:8px;
    padding:13px 18px;
    font-weight:800;
    cursor:pointer;
}

.trade-btn-primary{
    width:100%;
    margin-top:24px;
    color:#fff;
    background:var(--accent);
}

.trade-btn-primary:hover{
    background:var(--accent-dark);
}

.trade-login-help{
    margin-top:30px;
    padding-top:22px;
    border-top:1px solid var(--line);
    text-align:center;
}

.trade-login-help p{
    color:var(--muted);
    margin:0 0 7px;
}

.trade-login-help a{
    color:var(--accent);
    font-weight:800;
    text-decoration:none;
}


/* PORTAL */

.trade-layout{
    min-height:100vh;
    display:grid;
    grid-template-columns:245px 1fr;
}

.trade-sidebar{
    background:#153d4c;
    color:#fff;
    display:flex;
    flex-direction:column;
    min-height:100vh;
}

.trade-brand{
    padding:25px 22px;
    border-bottom:1px solid rgba(255,255,255,.12);
}

.trade-brand img{
    display:block;
    width:175px;
    max-width:100%;
    background:#fff;
    border-radius:8px;
    padding:8px;
}

.trade-brand span{
    display:block;
    margin-top:14px;
    color:#9bcfd3;
    font-size:9px;
    font-weight:800;
    letter-spacing:.12em;
}

.trade-nav{
    padding:18px 12px;
    flex:1;
}

.trade-nav a,
.trade-nav-disabled{
    display:block;
    margin:4px 0;
    padding:12px 13px;
    border-radius:7px;
    text-decoration:none;
    color:#dce8ea;
    font-size:13px;
    font-weight:700;
}

.trade-nav a.active{
    background:#087f86;
    color:#fff;
}

.trade-nav-disabled{
    opacity:.55;
}

.trade-nav-disabled small{
    display:block;
    margin-top:3px;
    font-size:9px;
    font-weight:400;
}

.trade-sidebar-footer{
    padding:20px;
    border-top:1px solid rgba(255,255,255,.12);
}

.trade-sidebar-footer strong,
.trade-sidebar-footer span{
    display:block;
}

.trade-sidebar-footer span{
    color:#a9c5ca;
    font-size:12px;
    margin-top:4px;
}

.trade-sidebar-footer button{
    margin-top:15px;
    padding:0;
    border:0;
    background:none;
    color:#fff;
    text-decoration:underline;
    cursor:pointer;
}

.trade-main{
    padding:0 35px 45px;
    min-width:0;
}

.trade-topbar{
    min-height:100px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    border-bottom:1px solid var(--line);
    margin-bottom:30px;
}

.trade-topbar h1{
    margin:4px 0 0;
    font-size:28px;
}

.trade-emergency{
    padding:10px 14px;
    border:1px solid #e0b6ad;
    border-radius:8px;
    color:#963c34;
    background:#fff;
    font-size:12px;
    font-weight:800;
    text-decoration:none;
}

.trade-welcome{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:25px;
    padding:27px;
    border-radius:12px;
    background:#fff;
    box-shadow:var(--shadow);
}

.trade-welcome h2{
    margin:7px 0 7px;
    font-size:27px;
}

.trade-welcome p{
    margin:0;
    color:var(--muted);
}

.partner-status{
    min-width:150px;
    padding:16px;
    border:1px solid var(--line);
    border-radius:9px;
}

.partner-status span,
.partner-status strong{
    display:block;
}

.status-label{
    color:var(--muted);
    font-size:11px;
    margin-bottom:5px;
}

.status-approved{
    color:var(--accent);
}

.trade-stats{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
    margin:20px 0;
}

.trade-stat{
    padding:20px;
    background:#fff;
    border-radius:10px;
    box-shadow:var(--shadow);
}

.trade-stat span,
.trade-stat small{
    display:block;
    color:var(--muted);
}

.trade-stat span{
    font-size:12px;
    font-weight:700;
}

.trade-stat strong{
    display:block;
    margin:7px 0;
    font-size:29px;
}

.trade-stat small{
    font-size:11px;
}

.trade-stat.attention{
    border-left:4px solid var(--danger);
}

.trade-grid{
    display:grid;
    grid-template-columns:2fr 1fr;
    gap:20px;
}

.trade-panel{
    padding:24px;
    background:#fff;
    border-radius:11px;
    box-shadow:var(--shadow);
}

.trade-panel-heading{
    display:flex;
    justify-content:space-between;
    margin-bottom:18px;
}

.trade-panel h3{
    margin:5px 0 0;
}

.sm8-card,
.portal-work-card{
    padding:18px;
    border-radius:9px;
    background:#edf8f8;
    border:1px solid #c9e4e5;
}

.sm8-card strong,
.sm8-card p,
.sm8-card span,
.portal-work-card strong,
.portal-work-card p,
.portal-work-card span{
    display:block;
}

.sm8-card p,
.portal-work-card p{
    margin:8px 0;
}

.sm8-card span,
.portal-work-card span{
    color:var(--muted);
    font-size:12px;
    line-height:1.5;
}

.trade-empty{
    margin-top:18px;
    padding:20px;
    border:1px dashed #c8d7da;
    border-radius:8px;
    color:var(--muted);
    text-align:center;
}

.trade-job-list{
    margin-top:16px;
}

.trade-job{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:15px;
    padding:14px 0;
    border-bottom:1px solid var(--line);
}

.trade-job strong,
.trade-job span{
    display:block;
}

.trade-job div span{
    margin-top:4px;
    color:var(--muted);
    font-size:11px;
}

.job-status{
    padding:6px 9px;
    border-radius:20px;
    background:#edf6f6;
    color:var(--accent);
    font-size:10px;
    font-weight:800;
}

.overview-list>div{
    display:flex;
    justify-content:space-between;
    gap:15px;
    padding:13px 0;
    border-bottom:1px solid var(--line);
}

.overview-list span{
    color:var(--muted);
    font-size:12px;
}

.overview-list strong{
    text-align:right;
    font-size:12px;
}

.trade-next-actions{
    margin-top:20px;
}

.setup-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:14px;
}

.setup-grid>div{
    padding:16px;
    border:1px solid var(--line);
    border-radius:8px;
}

.setup-grid strong,
.setup-grid span{
    display:block;
}

.setup-grid span{
    margin-top:7px;
    color:var(--muted);
    font-size:11px;
    line-height:1.45;
}

.trade-alert{
    margin:15px 0;
    padding:12px 14px;
    border-radius:7px;
    background:#edf6f6;
}

.trade-alert.error{
    color:#873c36;
    background:#fbeeed;
}

.trade-alert.warning{
    color:#735b21;
    background:#fff6d9;
}

.trade-alert.success{
    color:#24663e;
    background:#eaf6ee;
}


/* RESPONSIVE */

@media(max-width:1050px){

    .trade-stats{
        grid-template-columns:repeat(2,1fr);
    }

    .setup-grid{
        grid-template-columns:repeat(2,1fr);
    }

}

@media(max-width:820px){

    .trade-login-shell{
        grid-template-columns:1fr;
    }

    .trade-login-brand{
        padding:35px;
    }

    .trade-login-brand img{
        margin-bottom:25px;
    }

    .trade-layout{
        display:block;
    }

    .trade-sidebar{
        min-height:auto;
    }

    .trade-nav{
        display:grid;
        grid-template-columns:repeat(2,1fr);
    }

    .trade-main{
        padding:0 18px 35px;
    }

    .trade-grid{
        grid-template-columns:1fr;
    }

}

@media(max-width:560px){

    .trade-login-body{
        padding:15px;
    }

    .trade-login-card{
        padding:30px 22px;
    }

    .trade-login-brand h1{
        font-size:34px;
    }

    .trade-topbar,
    .trade-welcome{
        align-items:flex-start;
        flex-direction:column;
    }

    .trade-stats,
    .setup-grid{
        grid-template-columns:1fr;
    }

    .trade-nav{
        grid-template-columns:1fr;
    }

}

/* ===== V1.8B BUSINESS PROFILE / EMPLOYEES ===== */

.trade-two-col{
    display:grid;
    grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);
    gap:20px;
}

.trade-form{
    display:grid;
    gap:14px;
    margin-top:20px;
}

.trade-form label{
    display:grid;
    gap:6px;
    font-size:13px;
    font-weight:700;
}

.trade-form input,
.trade-form select,
.trade-form textarea{
    width:100%;
    box-sizing:border-box;
    border:1px solid #cbdde2;
    border-radius:8px;
    background:#fff;
    padding:11px 12px;
    font:inherit;
}

.trade-form input:disabled{
    background:#eef3f4;
    color:#607780;
}

.trade-primary{
    border:0;
    border-radius:8px;
    padding:12px 16px;
    cursor:pointer;
    font-weight:800;
}

.trade-muted{
    opacity:.72;
}

.trade-subsection{
    margin-top:24px;
}

.trade-tags{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.trade-tags span,
.trade-pill{
    display:inline-flex;
    align-items:center;
    border:1px solid #c8dfe3;
    border-radius:999px;
    padding:5px 9px;
    font-size:12px;
    font-weight:700;
}

.trade-status-list>div{
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding:13px 0;
    border-bottom:1px solid #dce8eb;
}

.trade-worker-list{
    display:grid;
    gap:10px;
    margin-top:18px;
}

.trade-worker-card{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    padding:15px;
    border:1px solid #d7e5e8;
    border-radius:9px;
    text-decoration:none;
    color:inherit;
}

.trade-worker-card strong,
.trade-worker-card span,
.trade-worker-card small{
    display:block;
}

.trade-worker-card span{
    margin-top:3px;
}

.trade-worker-card small{
    margin-top:3px;
    opacity:.7;
}

.trade-empty{
    margin-top:18px;
    padding:24px;
    border:1px dashed #cbdde2;
    border-radius:9px;
    text-align:center;
    opacity:.75;
}

.trade-narrow{
    max-width:760px;
}

.trade-check{
    display:flex !important;
    grid-template-columns:none !important;
    align-items:center;
    gap:9px !important;
}

.trade-check input{
    width:auto;
}

@media(max-width:900px){
    .trade-two-col{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   V1.8B - CONTRACTOR COMPLIANCE
   ========================================================= */

.compliance-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 22px;
}

.compliance-info-panel {
    margin-bottom: 22px;
}

.compliance-company-status {
    display: grid;
    grid-template-columns: minmax(180px, 0.35fr) 1fr;
    gap: 28px;
    align-items: start;
}

.compliance-company-status strong {
    display: block;
    margin-top: 5px;
    font-size: 1.1rem;
}

.trade-file-field {
    display: grid;
    gap: 8px;
    margin-top: 18px;
}

.trade-file-field input[type="file"] {
    width: 100%;
}

.compliance-record-list {
    display: grid;
    gap: 18px;
}

.compliance-record {
    border: 1px solid rgba(15, 23, 42, 0.12);
    border-radius: 14px;
    padding: 20px;
    background: #fff;
}

.compliance-record-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
    margin-bottom: 18px;
}

.compliance-record-header h3 {
    margin: 3px 0 5px;
}

.compliance-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 110px;
    padding: 7px 11px;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 700;
    white-space: nowrap;
    background: #eef2f7;
}

.status-verified {
    background: #e8f7ee;
}

.status-pending {
    background: #fff4d6;
}

.status-expiring_soon {
    background: #fff0df;
}

.status-expired,
.status-rejected {
    background: #fde8e8;
}

.compliance-details-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.compliance-details-grid > div {
    padding: 12px;
    border-radius: 10px;
    background: #f7f8fa;
}

.compliance-details-grid span {
    display: block;
    margin-bottom: 5px;
    font-size: 0.76rem;
    color: #667085;
}

.compliance-details-grid strong {
    font-size: 0.9rem;
}

.compliance-rejection {
    margin: 15px 0;
    padding: 14px;
    border-radius: 10px;
    background: #fff1f1;
}

.compliance-rejection p {
    margin: 6px 0 0;
}

.compliance-documents {
    padding-top: 16px;
    border-top: 1px solid rgba(15, 23, 42, 0.09);
}

.compliance-document-list {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 9px;
}

.compliance-document-link {
    display: inline-flex;
    padding: 7px 10px;
    border-radius: 8px;
    background: #f2f4f7;
    text-decoration: none;
    font-size: 0.85rem;
}

.compliance-resubmit {
    display: flex;
    align-items: end;
    gap: 14px;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid rgba(15, 23, 42, 0.09);
}

.compliance-resubmit label {
    display: grid;
    gap: 7px;
    flex: 1;
}

@media (max-width: 1050px) {
    .compliance-summary-grid,
    .compliance-details-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .compliance-summary-grid,
    .compliance-details-grid,
    .compliance-company-status {
        grid-template-columns: 1fr;
    }

    .compliance-record-header,
    .compliance-resubmit {
        flex-direction: column;
        align-items: stretch;
    }

    .compliance-status {
        align-self: flex-start;
    }
}

/* V1.9 operational portal */
.v19-panel{margin-bottom:20px}.v19-card{border:1px solid #dbe3e5;border-radius:12px;padding:18px;margin:14px 0;background:#fff}.v19-card-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.v19-card-head span,.v19-job-row span{display:block;color:#667085;margin-top:5px}.v19-status{display:inline-flex;padding:7px 10px;border-radius:999px;background:#eef2f4;white-space:nowrap}.v19-status.ok{background:#e8f7ee}.v19-status.warn{background:#fff4d6}.agreement-content{padding:16px;background:#f7f9fa;border-radius:10px;margin:14px 0;line-height:1.55}.v19-form{display:grid;gap:12px;max-width:760px}.v19-form label{display:grid;gap:6px}.v19-form input,.v19-form select,.v19-form textarea,.v19-inline input{padding:10px 12px;border:1px solid #cbd9dc;border-radius:8px;font:inherit}.v19-form textarea{min-height:90px}.v19-form button,.v19-actions button{width:max-content;border:0;border-radius:8px;padding:10px 15px;background:#f88a2b;color:white;font-weight:700;cursor:pointer}.v19-actions button.danger{background:#a7443d}.v19-job-list{display:grid;gap:10px}.v19-job-row{display:flex;justify-content:space-between;gap:18px;padding:16px;border:1px solid #dbe3e5;border-radius:10px;text-decoration:none;color:inherit}.v19-detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}.v19-detail-grid>div{background:#f7f9fa;padding:12px;border-radius:9px}.v19-detail-grid span{display:block;color:#667085;font-size:.8rem;margin-bottom:4px}.v19-contact,.v19-notice,.v19-danger{padding:13px;border-radius:9px;margin-top:12px;background:#f2f7f8}.v19-danger{background:#fff1f1}.v19-actions{display:flex;gap:10px;flex-wrap:wrap}.v19-inline{display:flex;gap:8px}.v19-two{display:grid;grid-template-columns:1fr 1fr;gap:20px}.v19-update{border-top:1px solid #e3e8ea;padding:12px 0}.v19-update small{display:block;color:#667085}.v19-file{display:block;padding:10px 0;border-bottom:1px solid #e3e8ea}.check{display:flex;gap:8px;align-items:flex-start;margin:12px 0}@media(max-width:800px){.v19-detail-grid,.v19-two{grid-template-columns:1fr}.v19-card-head,.v19-job-row{flex-direction:column}.v19-inline{flex-direction:column}}
