﻿/* ============================================
   Admin Panel CSS
   ============================================ */

.admin-body {
    display: flex;
    min-height: 100vh;
    background: #f4f6f8;
}

/* Sidebar */
.admin-sidebar {
    width: 260px;
    background: var(--brand-navy);
    color: #fff;
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    overflow-y: auto;
    transition: transform 0.3s ease;
    z-index: 1000;
}

.admin-brand {
    padding: 1.25rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    align-items: flex-start;
}

    .admin-brand img {
        height: 40px;
    }

    .admin-brand span {
        font-weight: 700;
        font-size: 1rem;
        color: var(--brand-cyan);
    }

.admin-nav {
    padding: 1rem 0;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.admin-nav-group { display:flex; flex-direction:column; margin-bottom:.45rem; }
.admin-nav-label { padding:.8rem 1.25rem .28rem; color:rgba(255,255,255,.48); font-size:.67rem; font-weight:800; letter-spacing:.11em; line-height:1.25; text-transform:uppercase; }
.admin-permissions { min-width:0; margin:1rem 0; padding:1rem; border:1px solid #dce5ee; border-radius:12px; background:#f8fafc; }
.admin-permissions legend { padding:0 .45rem; color:var(--brand-navy); font-weight:800; }
.admin-permissions>p { margin:.1rem 0 1rem; color:#68798c; font-size:.9rem; }
.admin-permission-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; }
.admin-permission-option { display:flex; align-items:flex-start; gap:.65rem; min-width:0; padding:.85rem; border:1px solid #dfe7ef; border-radius:9px; background:#fff; cursor:pointer; }
.admin-permission-option input { flex:0 0 auto; width:18px; height:18px; margin:.1rem 0 0; accent-color:#087f8d; }
.admin-permission-option span { display:grid; gap:.25rem; min-width:0; }
.admin-permission-option strong { color:#253c55; font-size:.9rem; }
.admin-permission-option small { color:#718096; font-weight:400; line-height:1.4; }
.admin-permissions [hidden] { display:none!important; }

    .admin-nav a {
        padding: 0.62rem 1.25rem;
        color: rgba(255, 255, 255, 0.8);
        font-size: 0.9rem;
        display: flex;
        align-items: center;
        gap: 0.5rem;
        border-left: 3px solid transparent;
        transition: all 0.2s;
    }

        .admin-nav a:hover {
            background: rgba(255, 255, 255, 0.07);
            color: #fff;
        }

        .admin-nav a.active {
            background: rgba(24, 185, 239, 0.13);
            color: #fff;
            border-left-color: var(--brand-cyan);
        }

.admin-logout {
    background: rgba(222, 32, 16, 0.1);
    color: #ff6b6b;
    border: none;
    padding: 0.75rem 1.25rem;
    text-align: left;
    cursor: pointer;
    font-size: 0.9rem;
    width: 100%;
    transition: all 0.2s;
}

    .admin-logout:hover {
        background: rgba(222, 32, 16, 0.25);
        color: #fff;
    }

/* Main content */
.admin-main {
    margin-left: 260px;
    flex: 1;
    min-width: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.admin-header {
    background: #fff;
    flex-wrap: wrap;
    padding: 1rem 1.5rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
    position: sticky;
    top: 0;
    z-index: 100;
}

    .admin-header h1 {
        font-size: 1.25rem;
        margin: 0;
        flex: 1;
    }

.admin-user {
    color: #6C757D;
    font-size: 0.9rem;
}

.admin-toggle {
    display: none;
    background: none;
    border: none;
    font-size: 1.5rem;
    cursor: pointer;
    color: var(--brand-blue);
}

.admin-content {
    padding: 2rem 1.5rem;
    flex: 1;
    min-width: 0;
}

/* Stats */
.stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1.25rem;
    margin-bottom: 2rem;
}

.stat-card {
    background: #fff;
    border-radius: 10px;
    padding: 1.25rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
    border-left: 4px solid var(--brand-blue);
}

.stat-icon {
    font-size: 2rem;
}

.stat-card h3 {
    font-size: 1.75rem;
    margin: 0;
    color: var(--brand-blue);
}

.stat-card p {
    margin: 0;
    color: #6C757D;
    font-size: 0.85rem;
}

/* Tables: keep wide data inside its own scroll region on narrow screens. */
.admin-table-wrapper,
.admin-table-wrap,
.table-responsive,
.boq-table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
}

.admin-table-wrapper,
.admin-table-wrap,
.table-responsive {
    border-radius: 10px;
}

/* Tables */
.admin-table {
    width: 100%;
    min-width: 680px;
    max-width: 100%;
    background: #fff;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
    border-collapse: collapse;
}

    .admin-table th, .admin-table td {
        padding: 0.85rem 1rem;
        text-align: left;
        border-bottom: 1px solid #E0E6ED;
        font-size: 0.9rem;
        overflow-wrap: anywhere;
    }

    .admin-table th {
        background: #F4F6F8;
        font-weight: 600;
        color: #333;
        text-transform: uppercase;
        font-size: 0.75rem;
        letter-spacing: 0.5px;
    }

    .admin-table tr:last-child td {
        border-bottom: none;
    }

.admin-table tr:hover {
        background: #FAFBFC;
    }

.system-health-page { max-width: 1320px; margin: 0 auto; }
.system-health-summary { display:flex; align-items:center; gap:1rem; margin:0 0 1.25rem; padding:1rem 1.15rem; border:1px solid; border-radius:12px; }
.system-health-summary.is-healthy { color:#17633c; background:#edf9f1; border-color:#b8e2c7; }
.system-health-summary.has-issues { color:#8b342e; background:#fff2f0; border-color:#f1c1ba; }
.system-health-summary-icon { display:grid; place-items:center; flex:0 0 2.5rem; height:2.5rem; border-radius:50%; color:#fff; font-size:1.25rem; font-weight:900; }
.system-health-summary.is-healthy .system-health-summary-icon { background:#17633c; }
.system-health-summary.has-issues .system-health-summary-icon { background:#8b342e; }
.system-health-summary strong { display:block; font-size:1.02rem; }
.system-health-summary p { margin:.2rem 0 0; font-size:.88rem; opacity:.84; }
.system-health-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); gap:1rem; }
.system-health-card,.system-health-runtime { min-width:0; padding:1.2rem; border:1px solid #e1e8f0; border-radius:12px; background:#fff; box-shadow:0 3px 12px rgba(16,42,67,.04); }
.system-health-card-heading { display:flex; align-items:center; justify-content:space-between; gap:.75rem; }
.system-health-card h2,.system-health-runtime h2 { margin:0; color:var(--brand-navy); font-size:1.08rem; }
.system-health-card>p { color:#5e6e81; line-height:1.55; overflow-wrap:anywhere; }
.system-health-badge { flex:0 0 auto; padding:.25rem .6rem; border-radius:999px; font-size:.76rem; font-weight:800; }
.system-health-badge.healthy { color:#17633c; background:#e4f5ea; }
.system-health-badge.unhealthy { color:#8b342e; background:#ffebe8; }
.system-health-details { display:grid; grid-template-columns:minmax(100px,.7fr) minmax(0,1.3fr); gap:.55rem .8rem; margin:1rem 0; font-size:.88rem; }
.system-health-details dt { color:#68798c; font-weight:700; }
.system-health-details dd { min-width:0; margin:0; color:#263d55; overflow-wrap:anywhere; }
.system-health-runtime { margin-top:1rem; }
.system-health-muted { color:#718096!important; font-size:.84rem; }
@media(max-width:600px) {
    .system-health-page { padding:1rem .8rem; }
    .system-health-page .admin-page-header { align-items:flex-start; flex-direction:column; }
    .system-health-summary { align-items:flex-start; padding:.85rem; }
    .system-health-grid { grid-template-columns:1fr; }
    .system-health-details { grid-template-columns:1fr; gap:.2rem; }
    .system-health-details dd { margin-bottom:.5rem; }
}

.actions {
    display: flex;
    gap: 0.35rem;
    flex-wrap: wrap;
}

/* Forms */
.admin-form {
    background: #fff;
    padding: 1.75rem;
    border-radius: 10px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
    max-width: 900px;
}

    .admin-form .form-group {
        margin-bottom: 1.25rem;
    }

    .admin-form label {
        display: block;
        font-weight: 600;
        margin-bottom: 0.4rem;
        font-size: 0.85rem;
        color: #333;
    }

    .admin-form input[type="text"],
    .admin-form input[type="email"],
    .admin-form input[type="password"],
    .admin-form input[type="number"],
    .admin-form input[type="date"],
    .admin-form input[type="datetime-local"],
    .admin-form select,
    .admin-form textarea {
        width: 100%;
        padding: 0.65rem 0.85rem;
        border: 1px solid #E0E6ED;
        border-radius: 6px;
        font-size: 0.9rem;
        font-family: inherit;
        transition: border-color 0.2s;
    }

        .admin-form input:focus, .admin-form select:focus, .admin-form textarea:focus {
            outline: none;
            border-color: var(--brand-blue);
            box-shadow: 0 0 0 3px rgba(7, 85, 181, 0.12);
        }

    .admin-form h3 {
        margin-top: 1.5rem;
        padding-top: 1.25rem;
        border-top: 1px solid #E0E6ED;
    }

.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.form-check {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

    .form-check input {
        width: auto;
    }

/* Toolbar */
.admin-toolbar {
    margin-bottom: 1.25rem;
    display: flex;
    gap: 0.5rem;
}

/* Panel */
.admin-panel {
    background: #fff;
    border-radius: 10px;
    padding: 1.5rem;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}

.quick-actions {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-top: 1rem;
}

/* Detail panel */
.detail-panel {
    background: #fff;
    border-radius: 10px;
    padding: 1.75rem;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
    max-width: 900px;
}

    .detail-panel p {
        margin-bottom: 0.75rem;
    }

/* Image grid */
.image-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin: 1rem 0;
}

.image-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
}

    .image-item img {
        width: 120px;
        height: 120px;
        object-fit: cover;
        border-radius: 8px;
    }

    .image-item label {
        font-size: 0.8rem;
        color: #DE2010;
    }

/* Alerts */
.alert {
    padding: 0.85rem 1.25rem;
    border-radius: 8px;
    margin-bottom: 1.25rem;
    font-size: 0.9rem;
}

.alert-success {
    background: #e8f2fc;
    color: #063b80;
    border-left: 4px solid var(--brand-blue);
}

.alert-error {
    background: #FDE8E8;
    color: #B01808;
    border-left: 4px solid #DE2010;
}

.rfq-admin-filters {
    display: flex;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
    margin-bottom: 1.25rem;
    padding: 1rem;
    border: 1px solid var(--zm-border);
    border-radius: var(--zm-radius);
    background: var(--zm-white);
}

.rfq-admin-filters .form-group {
    flex: 1 1 220px;
    margin: 0;
}

.rfq-table-subline {
    display: block;
    margin-top: 0.25rem;
    color: var(--zm-gray-medium);
    font-size: 0.82rem;
}

.rfq-empty-row {
    padding: 2rem !important;
    color: var(--zm-gray-medium);
    text-align: center;
}

.application-filter-form { display: flex; flex-wrap: wrap; align-items: end; gap: .9rem; margin: 0 0 1.25rem; padding: 1rem; border: 1px solid var(--zm-border); border-radius: var(--zm-radius); background: #fff; }
.application-filter-form label { display: grid; gap: .35rem; min-width: 210px; font-weight: 600; }
.application-filter-form select { min-height: 42px; padding: .5rem .7rem; border: 1px solid var(--zm-border); border-radius: 6px; background: #fff; }
.job-application-review-layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr); gap: 1.25rem; align-items: start; }
.job-application-review-layout .detail-panel { max-width: none; }
.job-application-heading { display: flex; justify-content: space-between; align-items: start; gap: 1rem; }
.job-application-heading h2 { margin-top: 0; }
.job-application-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem 1rem; margin: 1.25rem 0; }
.job-application-facts div { min-width: 0; }
.job-application-facts dt { color: #65748b; font-size: .82rem; font-weight: 600; }
.job-application-facts dd { margin: .2rem 0 0; overflow-wrap: anywhere; }
.job-application-letter { margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--zm-border); }
.application-pagination { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: 1rem; }
.application-pagination a { min-width: 2.2rem; padding: .45rem .65rem; border: 1px solid var(--zm-border); border-radius: 5px; text-align: center; text-decoration: none; }
.application-pagination a.active { color: #fff; background: var(--brand-blue); border-color: var(--brand-blue); }
.badge-blue { display: inline-block; padding: .25rem .55rem; border-radius: 999px; color: #0a4778; background: #e4f2fb; font-size: .82rem; font-weight: 600; }

@media (max-width: 760px) {
    .job-application-review-layout { grid-template-columns: 1fr; }
    .job-application-facts { grid-template-columns: 1fr; }
    .admin-table-wrapper, .admin-table-wrap, .table-responsive { overflow-x: auto; }
}

.rfq-detail-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.rfq-detail-heading h2 {
    margin: 0;
    color: var(--brand-navy);
}

.rfq-detail-heading p {
    margin: 0.25rem 0 0;
    color: var(--zm-gray-medium);
}

.rfq-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    align-items: start;
    gap: 1.25rem;
}

.rfq-detail-card,
.rfq-management-form {
    padding: 1.4rem;
    border: 1px solid var(--zm-border);
    border-radius: var(--zm-radius);
    background: var(--zm-white);
    box-shadow: var(--zm-shadow);
}

.rfq-detail-card h3,
.rfq-management-form h3 {
    margin-bottom: 1rem;
    color: var(--brand-navy);
}

.rfq-management-form h3:not(:first-of-type) {
    margin-top: 1.5rem;
}

.rfq-data-list {
    display: grid;
    grid-template-columns: minmax(115px, 0.45fr) minmax(0, 1fr);
    gap: 0.75rem 1rem;
    margin: 0;
}

.rfq-data-list dt {
    color: var(--zm-gray-medium);
    font-size: 0.88rem;
    font-weight: 700;
}

.rfq-data-list dd {
    min-width: 0;
    margin: 0;
    overflow-wrap: anywhere;
}

.rfq-long-text {
    white-space: pre-line;
}

.rfq-email-link {
    display: inline-block;
    margin-bottom: 1rem;
}

.rfq-management-form .validation-summary-valid {
    display: none;
}

@media (max-width: 850px) {
    .rfq-detail-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .rfq-detail-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .rfq-data-list {
        grid-template-columns: 1fr;
        gap: 0.25rem;
    }

    .rfq-data-list dd:not(:last-child) {
        margin-bottom: 0.5rem;
    }
}

/* Login */
.login-body {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    background: linear-gradient(125deg, var(--brand-navy) 0%, #0a3b78 58%, var(--brand-blue) 100%);
    padding: 1rem;
}

.login-card {
    background: #fff;
    border-radius: 16px;
    padding: 2.5rem;
    width: 100%;
    max-width: 420px;
    max-height: calc(100vh - 2rem);
    overflow-y: auto;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
}

.user-list-avatar,
.user-details-avatar {
    display: inline-grid;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid #dbe3ed;
    border-radius: 50%;
    background: #e8f2fc;
    color: var(--brand-blue);
    font-weight: 700;
    object-fit: cover;
}

.user-list-avatar-fallback {
    display: inline-grid;
    vertical-align: middle;
}

.user-details-avatar {
    width: 7rem;
    height: 7rem;
    margin-top: .5rem;
}

.admin-user-profile {
    display: flex;
    align-items: center;
    gap: .65rem;
    min-width: 0;
    color: #334155;
    text-decoration: none;
}

.admin-user-profile > img,
.admin-user-avatar {
    display: grid;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    flex: 0 0 2.5rem;
    border: 1px solid #dbe3ed;
    border-radius: 50%;
    background: #e8f2fc;
    color: var(--brand-blue);
    font-size: 1rem;
    font-weight: 700;
    object-fit: cover;
}

.admin-user-details {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.25;
}

.admin-user-details strong,
.admin-user-details small {
    overflow: hidden;
    max-width: 14rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-user-details strong {
    font-size: .85rem;
}

.admin-user-details small {
    color: #64748b;
    font-size: .72rem;
}

.login-brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin-bottom: 2rem;
    color: var(--brand-navy);
    text-decoration: none;
}

    .login-brand img {
        display: block;
        width: min(100%, 260px);
        max-height: 150px;
        object-fit: contain;
        margin-bottom: .75rem;
        border-radius: 6px;
    }

    .login-brand span {
        color: var(--brand-blue);
        font-size: 1.2rem;
        font-weight: 700;
    }

    .login-brand small {
        color: #64748b;
        font-size: .85rem;
    }

    .login-brand p {
        color: #6C757D;
        font-size: 0.85rem;
    }

.login-card .form-group {
    margin-bottom: 1.25rem;
}

.login-card label {
    display: block;
    font-weight: 600;
    margin-bottom: 0.4rem;
    font-size: 0.85rem;
}

.login-card input[type="email"], .login-card .password-input-wrap input {
    width: 100%;
    padding: 0.75rem 1rem;
    border: 1px solid #E0E6ED;
    border-radius: 8px;
    font-size: 0.9rem;
}

.password-input-wrap {
    position: relative;
}

.password-input-wrap input {
    padding-right: 3.25rem !important;
}

.password-toggle {
    position: absolute;
    top: 50%;
    right: .55rem;
    display: grid;
    place-items: center;
    width: 2.25rem;
    height: 2.25rem;
    padding: .35rem;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #52647a;
    cursor: pointer;
    transform: translateY(-50%);
}

.password-toggle:hover,
.password-toggle:focus-visible {
    background: #e8f2fc;
    color: var(--brand-blue);
    outline: 2px solid transparent;
}

.password-toggle svg {
    width: 1.25rem;
    height: 1.25rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.password-eye-closed,
.password-toggle.is-showing .password-eye-open {
    display: none;
}

.password-toggle.is-showing .password-eye-closed {
    display: block;
}

.login-options {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin: .25rem 0 1.25rem;
    font-size: .85rem;
}

.login-options .form-check {
    display: flex;
    align-items: center;
    gap: .45rem;
    margin: 0;
}

.login-options .form-check label {
    margin: 0;
    font-weight: 400;
}

.login-options a,
.account-secondary-link a {
    color: var(--brand-blue);
    font-weight: 600;
}

.login-submit {
    display: block;
    width: 100%;
    text-align: center;
}

.account-form-heading {
    margin: 0 0 1.25rem;
    color: var(--brand-navy);
    font-size: 1.2rem;
    font-weight: 700;
    text-align: center;
}

.account-form-copy {
    margin-bottom: 1.25rem;
    color: #52647a;
    font-size: .92rem;
}

.account-page-card {
    max-width: 760px;
}

.account-page-card > p:first-child {
    color: #52647a;
}

.account-page-card .admin-form {
    margin-top: 1rem;
}

.account-page-card small {
    color: #64748b;
}

.profile-image-editor {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.profile-image-preview,
.profile-image-placeholder {
    width: 112px;
    height: 112px;
    flex: 0 0 112px;
    border: 1px solid #dbe3ed;
    border-radius: 50%;
    object-fit: cover;
}

.profile-image-placeholder {
    display: grid;
    place-items: center;
    background: #e8f2fc;
    color: var(--brand-blue);
    font-size: 2.5rem;
    font-weight: 700;
}

.profile-image-controls {
    display: grid;
    gap: .45rem;
    min-width: min(100%, 320px);
    flex: 1;
}

.profile-image-remove {
    display: flex !important;
    align-items: center;
    gap: .5rem;
    margin-top: .35rem;
    font-weight: 500 !important;
}

.account-secondary-link {
    margin-top: 1.25rem;
}

.field-validation-error,
.validation-summary-errors {
    display: block;
    margin-top: .35rem;
    color: #a52222;
    font-size: .85rem;
}

.validation-summary-errors ul {
    margin: 0 0 1rem;
    padding-left: 1.25rem;
}

.login-footer {
    text-align: center;
    margin-top: 1.5rem;
    font-size: 0.85rem;
}

/* Responsive */
@media (max-width: 900px) {
    .admin-sidebar {
        transform: translateX(-100%);
    }

        .admin-sidebar.open {
            transform: translateX(0);
        }

    .admin-main {
        margin-left: 0;
    }

    .admin-toggle {
        display: block;
    }

    .form-row {
        grid-template-columns: 1fr;
    }

    .stats-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 600px) {
    .stats-grid {
        grid-template-columns: 1fr;
    }

    .admin-content {
        padding: 1rem;
    }

    .admin-table {
        font-size: 0.8rem;
    }

        .admin-table th, .admin-table td {
            padding: 0.6rem;
        }
}
.boq-page { display: flex; flex-direction: column; gap: 1.25rem; max-width: 1500px; margin: 0 auto; color: var(--brand-navy, #112749); }
.boq-intro, .boq-page-heading, .boq-detail-heading { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; }
.boq-intro h2, .boq-page-heading h2, .boq-detail-heading h2 { margin: .25rem 0; color: var(--brand-navy, #112749); font-size: clamp(1.55rem, 3vw, 2.15rem); }
.boq-intro p, .boq-page-heading p, .boq-detail-heading p { margin: .35rem 0 0; color: #69788b; }
.boq-detail-heading p span { padding: 0 .3rem; color: #a1adba; }
.boq-detail-actions, .boq-bottom-actions { display: flex; flex-wrap: wrap; gap: .55rem; }
.boq-detail-actions form { margin: 0; }
.boq-revision-link { display: inline-block; margin-top: .35rem; color: #738196; }
.boq-revision-link a { color: #1764ad; font-weight: 700; text-decoration: none; }
.boq-stat-grid, .boq-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .85rem; }
.boq-stat, .boq-summary-card { display: flex; min-height: 88px; flex-direction: column; justify-content: center; gap: .45rem; padding: 1rem 1.1rem; border: 1px solid #e1e8f0; border-radius: 12px; background: #fff; box-shadow: 0 5px 18px rgba(17,39,73,.045); }
.boq-stat span, .boq-summary-card span { color: #708095; font-size: .82rem; }
.boq-stat strong, .boq-summary-card strong { color: var(--brand-navy, #112749); font-size: 1.2rem; font-variant-numeric: tabular-nums; }
.boq-summary-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.boq-total-card { border-color: #cbdcf2; background: linear-gradient(135deg, #f2f7fd, #fff); }
.boq-import-panel { display: grid; grid-template-columns: minmax(210px, 1fr) minmax(260px, 2fr) auto; align-items: center; gap: .85rem; padding: 1rem 1.2rem; border: 1px solid #dbe6f2; border-radius: 14px; background: #f4f8fc; }
.boq-import-panel div { display: grid; gap: .2rem; }
.boq-import-panel small { color: #708095; line-height: 1.4; }
.boq-import-panel select, .boq-form select { min-height: 42px; }
.boq-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-top: .5rem; }
.boq-section-heading h3 { margin: 0; color: var(--brand-navy, #112749); font-size: 1.25rem; }
.boq-section-heading p { margin: .25rem 0 0; color: #77869a; font-size: .9rem; }
.boq-table-wrap { overflow-x: auto; border: 1px solid #e1e8f0; border-radius: 12px; background: #fff; }
.boq-table { min-width: 960px; margin: 0; }
.boq-table th { white-space: nowrap; }
.boq-table td small { display: block; margin-top: .25rem; color: #8290a1; }
.boq-money, .boq-number { font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.boq-status { display: inline-flex; padding: .3rem .62rem; border-radius: 999px; background: #eef2f6; color: #556579; font-size: .78rem; font-weight: 700; white-space: nowrap; }
.boq-status-draft { background: #edf2f7; color: #56677b; }
.boq-status-review { background: #fff2d9; color: #916000; }
.boq-status-approved { background: #e6f5ee; color: #187146; }
.boq-status-issued { background: #eaf1ff; color: #245ba9; }
.boq-empty { display: grid; justify-items: center; gap: .65rem; padding: 3rem 1.25rem; border: 1px dashed #cbd8e5; border-radius: 16px; background: #fbfcfe; text-align: center; }
.boq-empty > span { display: grid; width: 52px; height: 52px; place-items: center; border-radius: 50%; background: #eaf2fb; color: #1764ad; font-size: 1.8rem; }
.boq-empty h3, .boq-empty p { margin: 0; }
.boq-empty p { max-width: 520px; color: #728195; }
.boq-empty-compact { padding: 1.5rem; border-radius: 0; border: 0; background: #f8fafc; }
.boq-form { padding: clamp(1rem, 3vw, 1.75rem); }
.boq-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem 1.1rem; }
.boq-form-grid .span-two { grid-column: 1 / -1; }
.boq-import-note, .boq-lock-notice { margin-bottom: 1.1rem; padding: .85rem 1rem; border: 1px solid #cfe0f2; border-radius: 10px; background: #f2f7fc; color: #315477; }
.boq-lock-notice { border-color: #f1d7a4; background: #fff8e9; color: #775409; }
.boq-form .admin-form-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; }
.boq-scope-card, .boq-section-card { overflow: hidden; border: 1px solid #e0e7ef; border-radius: 14px; background: #fff; box-shadow: 0 5px 18px rgba(17,39,73,.04); }
.boq-scope-card { padding: 1.2rem 1.4rem; }
.boq-scope-card h3 { margin: 0 0 .5rem; font-size: 1rem; }
.boq-scope-card p { margin: 0; color: #627187; white-space: pre-wrap; }
.boq-section-card { margin: .9rem 0; }
.boq-section-title { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.2rem; border-bottom: 1px solid #e6ebf1; background: linear-gradient(100deg, #f2f7fc, #fff); }
.boq-section-title > div:first-child > span { color: #1764ad; font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.boq-section-title h3 { margin: .15rem 0; font-size: 1.1rem; }
.boq-section-title p { margin: .25rem 0 0; color: #738196; font-size: .88rem; }
.boq-section-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: end; gap: .5rem; }
.boq-section-actions > strong { margin-right: .4rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.boq-section-actions form, .boq-row-actions form { display: inline; margin: 0; }
.boq-line-table { width: 100%; min-width: 800px; border-collapse: collapse; }
.boq-line-table th, .boq-line-table td { padding: .75rem .8rem; border-bottom: 1px solid #edf0f4; vertical-align: top; }
.boq-line-table th { background: #fff; color: #68788d; font-size: .74rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.boq-line-table td { color: #34445a; font-size: .9rem; }
.boq-line-table .boq-description { min-width: 320px; white-space: pre-wrap; }
.boq-line-table .boq-line-amount { color: #172b4d; font-weight: 700; }
.boq-row-actions { white-space: nowrap; text-align: right; }
.boq-row-actions a, .boq-row-actions button { padding: 0; border: 0; background: none; color: #1764ad; font: inherit; text-decoration: none; cursor: pointer; }
.boq-row-actions form { margin-left: .55rem; }
.boq-row-actions form button { color: #a33737; }
.boq-no-items { padding: 1.1rem 1.25rem; color: #77869a; font-size: .9rem; }
.boq-section-total { display: flex; justify-content: space-between; padding: .75rem 1.2rem; border-top: 1px solid #e7edf3; background: #fafbfd; color: #617087; font-size: .88rem; }
.boq-section-total strong { color: #20395d; font-variant-numeric: tabular-nums; }
.boq-grand-summary { align-self: end; width: min(100%, 440px); padding: 1rem 1.2rem; border: 1px solid #dbe4ef; border-radius: 12px; background: #fff; }
.boq-grand-summary > div { display: flex; justify-content: space-between; gap: 1rem; padding: .45rem 0; color: #617087; }
.boq-grand-summary strong { color: #263c5c; font-variant-numeric: tabular-nums; text-align: right; }
.boq-grand-summary .boq-grand-total { margin-top: .45rem; padding-top: .8rem; border-top: 1px solid #dbe4ef; color: #112749; font-size: 1.05rem; font-weight: 800; }
.boq-grand-summary .boq-grand-total strong { color: #112749; font-size: 1.2rem; }
.boq-item-preview { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .25rem .75rem; margin-top: 1.2rem; padding: 1rem 1.1rem; border-radius: 10px; background: #f2f7fc; }
.boq-item-preview span { color: #718197; }
.boq-item-preview strong { color: #112749; font-size: 1.25rem; }
.boq-item-preview small { grid-column: 1 / -1; color: #8793a2; }
.boq-block-estimator { margin-top: 1rem; padding: 1rem; border: 1px solid #cbdced; border-radius: 12px; background: #f7faff; }
.boq-block-toggle { display: flex; align-items: flex-start; gap: .7rem; cursor: pointer; }
.boq-block-toggle input { margin-top: .3rem; accent-color: #1260a8; }
.boq-block-toggle span, .boq-block-toggle small { display: block; }
.boq-block-toggle strong { color: #112749; }
.boq-block-toggle small, .boq-block-note { margin-top: .25rem; color: #63748a; font-size: .88rem; }
.boq-block-fields { margin-top: 1rem; }
.boq-block-fields[hidden] { display: none !important; }
.boq-block-result { display: flex; flex-direction: column; justify-content: center; padding: .9rem 1rem; border-radius: 9px; background: #e8f2fc; color: #35516f; }
.boq-block-result strong { margin: .15rem 0; color: #0c4f8c; font-size: 1.25rem; }
.boq-block-result small { color: #63748a; }
.boq-block-note { margin-bottom: 0; }
.boq-block-summary { color: #0c4f8c; font-weight: 600; }
.boq-bottom-actions { margin: .5rem 0 1rem; }
@media (max-width: 900px) {
    .boq-stat-grid, .boq-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .boq-import-panel { grid-template-columns: 1fr auto; }
    .boq-import-panel div { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
    .boq-intro, .boq-detail-heading, .boq-section-title { align-items: flex-start; flex-direction: column; }
    .boq-detail-actions { width: 100%; }
    .boq-stat-grid, .boq-summary-grid { grid-template-columns: 1fr 1fr; gap: .55rem; }
    .boq-stat, .boq-summary-card { min-height: 78px; padding: .8rem; }
    .boq-stat strong, .boq-summary-card strong { font-size: 1rem; }
    .boq-import-panel { grid-template-columns: 1fr; }
    .boq-form-grid { grid-template-columns: 1fr; }
    .boq-form-grid .span-two { grid-column: auto; }
    .boq-section-actions { justify-content: flex-start; }
    .boq-section-heading { align-items: flex-start; flex-direction: column; }
}

.boq-template-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1rem; }
.boq-template-grid > .boq-section-card { margin: 0; padding: 1.25rem; }
.boq-template-grid h3 { margin: .5rem 0; color: #173b67; }
.boq-template-grid p { color: #627187; }
.boq-template-grid form { margin-top: 1rem; }
.boq-page .admin-form { margin: 1rem 0; }
.boq-scope-card .boq-table-wrap { margin: 1rem -1.4rem; }
@media (max-width: 640px) { .boq-template-grid { grid-template-columns: 1fr; } }
.analytics-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.analytics-heading h2,
.analytics-panel h3 {
    margin: 0 0 .4rem;
}

.analytics-heading p {
    margin: 0;
    color: #64748b;
}

.analytics-range-form {
    display: flex;
    align-items: center;
    gap: .6rem;
}

.analytics-range-form select {
    min-width: 140px;
}

.analytics-stat-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

.analytics-stat-card,
.analytics-panel {
    padding: 1.1rem;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 4px 14px rgba(15, 23, 42, .04);
}

.analytics-stat-card span {
    display: block;
    color: #64748b;
    font-size: .9rem;
}

.analytics-stat-card strong {
    display: block;
    margin-top: .35rem;
    color: #123c70;
    font-size: 1.8rem;
}

.analytics-stat-card .analytics-stat-page {
    overflow-wrap: anywhere;
    font-size: 1.05rem;
}

.analytics-panel {
    margin-bottom: 1rem;
}

.analytics-chart {
    display: flex;
    align-items: end;
    gap: .35rem;
    min-height: 220px;
    margin-top: 1rem;
    overflow-x: auto;
    border-bottom: 1px solid #dce4ec;
}

.analytics-chart-column {
    display: flex;
    flex: 1 0 22px;
    flex-direction: column;
    align-items: center;
    justify-content: end;
    min-width: 22px;
    height: 200px;
}

.analytics-chart-value,
.analytics-chart-date {
    min-height: 1rem;
    color: #64748b;
    font-size: .68rem;
    white-space: nowrap;
}

.analytics-chart-bar {
    width: min(100%, 28px);
    min-height: 2px;
    border-radius: 5px 5px 0 0;
    background: linear-gradient(180deg, #22a6a1, #1463a5);
}

.analytics-chart-date {
    margin-top: .35rem;
}

.analytics-breakdown-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
    gap: 1rem;
}

.analytics-source-list {
    display: grid;
    gap: .5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.analytics-source-list li {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .55rem 0;
    border-bottom: 1px solid #edf1f5;
    overflow-wrap: anywhere;
}

@media (max-width: 640px) {
    .analytics-heading {
        align-items: stretch;
        flex-direction: column;
    }
}


/* BOQ PDF take-off workspace */
.takeoff-shell { max-width: 1500px; margin: 1.5rem auto; padding: 0 1rem; }
.takeoff-bar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.takeoff-bar > .d-flex { flex-wrap: wrap; }
.takeoff-tools { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0; }
.takeoff-tools button.active { background: #0752ad; color: #fff; }
.pdf-frame { position: relative; display: flex; justify-content: center; min-height: 65vh; overflow: auto; padding: 1rem; background: #20252b; }
.pdf-page { position: relative; flex: 0 0 auto; background: #fff; box-shadow: 0 4px 22px #0008; }
.pdf-page canvas { display: block; }
.pdf-page svg { position: absolute; inset: 0; width: 100%; height: 100%; touch-action: none; }
.takeoff-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 330px); gap: 1rem; min-width: 0; }
.takeoff-panel { min-width: 0; padding: 1rem; border: 1px solid #dce3eb; border-radius: .5rem; background: #f7f9fc; }
.measure-row { padding: .6rem 0; border-bottom: 1px solid #dce3eb; overflow-wrap: anywhere; }
.measure-row:last-child { border-bottom: 0; }
.takeoff-status { min-height: 1.5rem; color: #0752ad; overflow-wrap: anywhere; }
.takeoff-help { color: #576574; font-size: .9rem; }

.ai-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)) !important; }
.ai-report-header { flex-wrap: wrap; }
.ai-data { min-width: 680px; }
.ai-data th, .ai-data td { overflow-wrap: anywhere; }

@media (max-width: 900px) {
    .takeoff-layout { grid-template-columns: minmax(0, 1fr); }
    .pdf-frame { min-height: 52vh; }
    .takeoff-panel { order: 2; }
}
@media (max-width: 600px) {
    .takeoff-shell { padding: 0 .75rem; }
    .takeoff-bar { align-items: flex-start; }
    .takeoff-bar > .d-flex { width: 100%; gap: .4rem !important; }
    .takeoff-bar > .d-flex button { flex: 1 1 auto; }
    .pdf-frame { min-height: 45vh; padding: .5rem; }
    .ai-page { padding: 0 .75rem; }
}
/* Customer relationship management */
.crm-heading { display:flex; align-items:center; justify-content:space-between; gap:1.25rem; margin:0 0 1.25rem; }
.crm-heading h2 { margin:.2rem 0 .35rem; color:var(--brand-navy); font-size:clamp(1.45rem,2.5vw,2rem); }
.crm-heading p { margin:0; color:#66758a; }
.crm-eyebrow { color:#0789a0!important; font-size:.72rem; font-weight:800; letter-spacing:.11em; }
.crm-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin-bottom:1rem; }
.crm-stat { background:#fff; border:1px solid #e1e8f0; border-radius:12px; padding:1rem 1.2rem; box-shadow:0 4px 16px rgba(16,42,67,.04); }
.crm-stat span { display:block; color:#617287; font-size:.88rem; }.crm-stat strong { display:block; margin-top:.2rem; color:var(--brand-navy); font-size:1.8rem; }.crm-stat-alert { border-color:#f1c7a6; background:#fffaf6; }
.crm-filters { display:flex; flex-wrap:wrap; gap:.65rem; align-items:center; margin:1rem 0; padding:1rem; border:1px solid #e1e8f0; border-radius:12px; background:#fff; }
.crm-filters input { flex:1 1 260px; }.crm-filters select { flex:0 1 210px; }
.crm-filters input,.crm-filters select,.crm-form input,.crm-form select,.crm-form textarea,.crm-activity-form input,.crm-activity-form select,.crm-activity-form textarea { min-height:42px; width:100%; padding:.65rem .8rem; border:1px solid #cbd6e2; border-radius:8px; background:#fff; color:#1b2d42; font:inherit; }
.crm-table-wrap { width:100%; overflow-x:auto; border:1px solid #e1e8f0; border-radius:12px; background:#fff; }.crm-table { width:100%; border-collapse:collapse; min-width:850px; }
.crm-table th,.crm-table td { padding:.85rem 1rem; border-bottom:1px solid #e9eef3; text-align:left; vertical-align:middle; }.crm-table th { color:#65758a; background:#f8fafc; font-size:.75rem; letter-spacing:.04em; text-transform:uppercase; }.crm-table tr:last-child td { border-bottom:0; }.crm-table td small { display:block; margin-top:.15rem; color:#76869a; overflow-wrap:anywhere; }
.crm-customer-link { color:var(--brand-navy); font-weight:750; }.crm-empty,.crm-muted { padding:1.2rem; color:#738296; }
.crm-stage { display:inline-block; padding:.28rem .58rem; border-radius:999px; color:#35536d; background:#eef3f8; font-size:.76rem; font-weight:750; white-space:nowrap; }
.crm-stage-lead { color:#795000; background:#fff3d2; }.crm-stage-prospect { color:#075985; background:#e1f3fc; }.crm-stage-customer { color:#12633f; background:#def5e9; }.crm-stage-inactive { color:#687386; background:#edf0f4; }
.crm-form { max-width:980px; }.crm-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.9rem 1rem; }.crm-form .form-group { margin-bottom:1rem; }.crm-form label,.crm-activity-form label { display:block; margin-bottom:.35rem; color:#253c55; font-weight:700; }.crm-form textarea,.crm-activity-form textarea { min-height:auto; }.crm-form span.field-validation-error,.crm-form .validation-summary-errors { color:#b42318; font-size:.85rem; }.crm-form-actions { display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1rem; }
.crm-profile-grid,.crm-history-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-bottom:1rem; }.crm-card { min-width:0; }.crm-card-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:.8rem; margin-bottom:1rem; }.crm-card-heading h3 { margin:0; color:var(--brand-navy); font-size:1.1rem; }.crm-card-heading span { color:#758499; font-size:.82rem; text-align:right; }
.crm-details { display:grid; grid-template-columns:minmax(105px,.7fr) minmax(0,1.3fr); gap:.65rem .8rem; margin:0; }.crm-details dt { color:#78869a; font-size:.88rem; }.crm-details dd { margin:0; color:#24394f; font-weight:600; overflow-wrap:anywhere; }.crm-notes { margin-top:1.2rem; padding:1rem; border-radius:9px; background:#f5f8fb; color:#405369; white-space:pre-wrap; }.crm-notes p { margin:.4rem 0 0; }
.policy-admin-page { max-width:1180px; }.policy-admin-heading,.policy-edit-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin:0 0 1.25rem; }.policy-admin-heading h2,.policy-edit-heading h2 { margin:.25rem 0 .35rem; color:var(--brand-navy); font-size:clamp(1.5rem,2.7vw,2.15rem); }.policy-admin-heading p,.policy-edit-heading p { margin:0; max-width:720px; color:#66758a; line-height:1.6; }.policy-admin-notice { display:flex; flex-direction:column; gap:.25rem; margin-bottom:1rem; padding:1rem 1.1rem; border:1px solid #cce3f4; border-radius:10px; background:#f1f8fd; color:#31516a; }.policy-admin-notice strong { color:var(--brand-navy); }.policy-admin-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }.policy-admin-card { display:flex; flex-direction:column; min-width:0; padding:1.2rem; border:1px solid #e1e8f0; border-radius:12px; background:#fff; box-shadow:0 4px 16px rgba(16,42,67,.035); }.policy-admin-card-top { display:flex; align-items:center; justify-content:space-between; gap:.5rem; }.policy-admin-icon { display:grid; place-items:center; width:2.5rem; height:2.5rem; border-radius:9px; background:#eef5fa; font-size:1.2rem; }.policy-admin-updated { color:#748399; font-size:.78rem; text-align:right; }.policy-admin-card h3 { margin:1rem 0 .4rem; color:var(--brand-navy); font-size:1.15rem; }.policy-admin-card p { flex:1; color:#66758a; line-height:1.55; }.policy-admin-actions { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.65rem; }.policy-admin-empty { grid-column:1/-1; padding:2rem; border:1px dashed #b9c8d8; border-radius:12px; background:#fff; }.policy-admin-empty h3 { margin-top:0; }.policy-edit-heading { align-items:flex-end; }.policy-edit-back { display:block; margin-bottom:1rem; color:#087f8d; font-weight:700; }.policy-edit-form { max-width:1000px; padding:1.2rem; }.policy-edit-form textarea { min-height:420px; }
.crm-form-section { padding:1.1rem 0; border-bottom:1px solid #e7edf3; }.crm-form-section:first-of-type { padding-top:.2rem; }.crm-form-section:last-of-type { border-bottom:0; }.crm-form-section h3 { margin:0 0 .8rem; color:var(--brand-navy); font-size:1.05rem; }.crm-form-section>.crm-muted { margin:-.25rem 0 .85rem; }.crm-form-section small { color:#748399; font-weight:400; }
.crm-product-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.45rem; max-height:230px; overflow:auto; padding:.7rem; border:1px solid #d7e0e9; border-radius:9px; background:#fbfcfd; }.crm-product-option { display:flex!important; align-items:flex-start; gap:.55rem; margin:0!important; padding:.45rem; border-radius:6px; font-weight:500!important; cursor:pointer; }.crm-product-option:hover { background:#eef4f8; }.crm-product-option input { flex:0 0 auto; width:1rem!important; min-height:1rem!important; margin:.2rem 0 0; accent-color:var(--brand-green); }.crm-other-products { margin-top:1rem; }.crm-interest-block { margin-top:1.15rem; }.crm-interest-block>strong { display:block; margin-bottom:.55rem; color:#253c55; }.crm-interest-tags { display:flex; flex-wrap:wrap; gap:.4rem; }.crm-interest-tags span { padding:.32rem .65rem; border:1px solid #d8e8df; border-radius:999px; background:#f0f8f3; color:#176238; font-size:.85rem; }.crm-profile-actions { display:flex; align-items:center; flex-wrap:wrap; gap:.55rem; }.crm-profile-actions form { margin:0; }
.crm-activity-form { display:grid; gap:.75rem; }.crm-activity-form label { margin:0; }.crm-activity-form button { justify-self:start; }.crm-timeline { position:relative; display:grid; gap:.8rem; }.crm-timeline-item { position:relative; display:grid; grid-template-columns:18px minmax(0,1fr); gap:.65rem; }.crm-timeline-dot { width:11px; height:11px; margin-top:.35rem; border:3px solid #d4eef2; border-radius:50%; background:#087b88; }.crm-timeline-content { padding:0 0 1rem; border-bottom:1px solid #e9eef3; min-width:0; }.crm-timeline-item:last-child .crm-timeline-content { border:0; padding-bottom:0; }
.crm-timeline-top { display:flex; justify-content:space-between; gap:1rem; }.crm-timeline-top h4 { margin:.18rem 0; color:#20364e; }.crm-timeline-top time { color:#7a899b; font-size:.82rem; white-space:nowrap; }.crm-activity-type { color:#07899b; font-size:.75rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }.crm-timeline-content p { margin:.45rem 0; color:#53657a; white-space:pre-wrap; overflow-wrap:anywhere; }
.crm-followup { display:inline-block; padding:.3rem .55rem; border-radius:7px; background:#e8f5fb; color:#12526c; font-size:.8rem; font-weight:700; }.crm-followup.is-overdue { color:#9b2c21; background:#fde9e7; }.crm-followup.is-complete { color:#24613d; background:#e2f4e8; }.crm-activity-by { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem; margin-top:.55rem; color:#8390a1; font-size:.8rem; }.crm-inline-form { display:inline-flex; }.btn-sm { padding:.38rem .65rem; font-size:.8rem; }
.crm-related-list { display:grid; gap:.55rem; }.crm-related-list a { display:grid; gap:.16rem; padding:.7rem .8rem; border:1px solid #e9eef3; border-radius:8px; color:inherit; }.crm-related-list a:hover { border-color:#8acbd2; background:#f7fcfd; }.crm-related-list strong { color:var(--brand-navy); }.crm-related-list span { color:#64768a; font-size:.85rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.crm-related-list small { color:#8592a1; }.crm-back { display:inline-block; margin-bottom:.65rem; color:#087f8d; font-weight:700; }
.crm-pagination { display:flex; align-items:center; justify-content:center; gap:.8rem; margin:1rem 0; color:#718096; }
@media(max-width:800px) { .crm-profile-grid,.crm-history-grid { grid-template-columns:1fr; } }
@media(max-width:900px) { .policy-admin-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .crm-heading { align-items:flex-start; flex-direction:column; }.crm-heading>.btn { width:100%; text-align:center; }.crm-profile-actions,.crm-profile-actions>* { width:100%; }.crm-profile-actions form .btn { width:100%; }.crm-stats { grid-template-columns:1fr; gap:.6rem; }.crm-form-grid { grid-template-columns:1fr; gap:0; }.crm-product-options { grid-template-columns:1fr; }.crm-filters>* { flex-basis:100%!important; }.crm-timeline-top { flex-direction:column; gap:.2rem; }.crm-card-heading { flex-direction:column; }.crm-card-heading span { text-align:left; }.policy-admin-grid { grid-template-columns:1fr; }.policy-admin-heading,.policy-edit-heading { align-items:flex-start; flex-direction:column; }.policy-edit-heading>.btn { width:100%; text-align:center; }.policy-admin-actions { flex-direction:column; }.policy-admin-actions .btn { width:100%; text-align:center; }.policy-edit-form { padding:.8rem; }.policy-edit-form textarea { min-height:320px; } }
/* Supplier directory and profiles */
.supplier-page { display:grid; gap:1rem; }
.supplier-heading { display:flex; align-items:center; justify-content:space-between; gap:1.2rem; }
.supplier-heading h1 { margin:.2rem 0 .35rem; color:var(--brand-navy); font-size:clamp(1.5rem,2.8vw,2.1rem); }
.supplier-heading p { margin:0; color:#66758a; }
.supplier-actions { display:flex; flex-wrap:wrap; gap:.5rem; }
.supplier-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.8rem; }
.supplier-metrics article { display:grid; gap:.28rem; padding:1rem 1.15rem; border:1px solid #e1e8f0; border-radius:12px; background:#fff; box-shadow:0 4px 16px rgba(16,42,67,.04); }
.supplier-metrics span { color:#718096; font-size:.84rem; }.supplier-metrics strong { color:var(--brand-navy); font-size:1.7rem; }
.supplier-filters { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem; padding:.9rem; border:1px solid #e1e8f0; border-radius:11px; background:#fff; }
.supplier-filters input,.supplier-filters select { min-height:42px; padding:.6rem .75rem; border:1px solid #cbd6e2; border-radius:8px; background:#fff; font:inherit; color:#24394f; }.supplier-filters input { flex:1 1 260px; }.supplier-filters select { flex:0 1 210px; }
.supplier-table-wrap { width:100%; overflow:auto; border:1px solid #e1e8f0; border-radius:11px; background:#fff; }.supplier-table { width:100%; min-width:940px; border-collapse:collapse; }.supplier-table th,.supplier-table td { padding:.85rem .9rem; border-bottom:1px solid #e9eef3; text-align:left; vertical-align:middle; }.supplier-table th { background:#f8fafc; color:#65758a; font-size:.73rem; letter-spacing:.04em; text-transform:uppercase; }.supplier-table tr:last-child td { border-bottom:0; }.supplier-table td small { display:block; margin-top:.18rem; color:#78879a; }.supplier-name { color:var(--brand-navy); font-weight:800; }.supplier-preferred { display:inline-block; margin-left:.4rem; padding:.18rem .42rem; border-radius:99px; color:#745000; background:#fff0cb; font-size:.68rem; font-weight:800; }.supplier-status { display:inline-block; padding:.25rem .55rem; border-radius:99px; font-size:.75rem; font-weight:750; }.supplier-status.is-active { color:#17653f; background:#def5e9; }.supplier-status.is-inactive { color:#687386; background:#edf0f4; }.supplier-empty { padding:1.2rem!important; color:#738296; text-align:center!important; }.supplier-empty-panel,.supplier-empty-inline { padding:1.4rem; border:1px dashed #c9d8e2; border-radius:11px; background:#fbfdff; color:#617287; }.supplier-empty-panel h3,.supplier-empty-inline h3 { color:var(--brand-navy); }.supplier-empty-panel p,.supplier-empty-inline p { margin:.3rem 0 1rem; }
.supplier-pagination { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:.7rem; color:#718096; }.supplier-back { color:#087f8d; font-weight:700; }.supplier-form { display:grid; gap:1rem; }.supplier-form fieldset { min-width:0; padding:1rem; border:1px solid #e1e8f0; border-radius:10px; }.supplier-form legend { padding:0 .4rem; color:var(--brand-navy); font-weight:800; }.supplier-form .form-group input:not([type=checkbox]),.supplier-form .form-group select,.supplier-form .form-group textarea { max-width:100%; }.supplier-check label { display:flex; align-items:center; gap:.45rem; }.supplier-check label input { width:auto; min-height:0; }.supplier-check small { display:block; margin:.3rem 0 0 1.45rem; color:#758499; }
.supplier-form-hint { grid-column:1/-1; margin:-.35rem 0 .5rem; color:#617287; font-size:.9rem; }.supplier-form .form-group>small { display:block; margin-top:.35rem; color:#758499; }.supplier-capabilities ul { margin:.5rem 0 0; padding-left:1.25rem; }.supplier-capabilities li { margin:.2rem 0; }
.supplier-profile-grid { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(260px,.8fr); gap:1rem; }.supplier-card { min-width:0; padding:1.2rem; border:1px solid #e1e8f0; border-radius:12px; background:#fff; box-shadow:0 4px 16px rgba(16,42,67,.035); }.supplier-card h2 { margin:0; color:var(--brand-navy); font-size:1.15rem; }.supplier-card-title { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:1rem; }.supplier-card-title span { color:#79889a; font-size:.82rem; white-space:nowrap; }.supplier-card-title p { margin:.3rem 0 0; color:#748399; font-size:.88rem; }.supplier-details { display:grid; grid-template-columns:minmax(120px,.65fr) minmax(0,1.35fr); gap:.7rem .8rem; margin:0; }.supplier-details dt { color:#78869a; font-size:.88rem; }.supplier-details dd { margin:0; color:#24394f; font-weight:600; overflow-wrap:anywhere; }.supplier-notes { margin-top:1rem; padding:1rem; border-radius:9px; background:#f5f8fb; color:#42566d; white-space:pre-wrap; }.supplier-notes p { margin:.4rem 0 0; }.supplier-action-card { display:flex; flex-direction:column; align-items:flex-start; gap:.8rem; }.supplier-action-card p { color:#617287; line-height:1.6; }.supplier-action-card a { width:100%; text-align:center; }

/* Dedicated social profile settings */
.social-links-page { max-width:1050px; margin:0 auto; }
.social-links-intro { display:flex; align-items:center; justify-content:space-between; gap:1.25rem; margin:0 0 1.25rem; padding:1.25rem; border:1px solid #dce7f0; border-radius:14px; background:linear-gradient(115deg,#fff,#f2f7fc); }
.social-links-intro h2 { margin:.15rem 0 .4rem; color:var(--brand-navy); font-size:clamp(1.35rem,2.4vw,1.8rem); }
.social-links-intro p { max-width:650px; margin:0; color:#64758a; line-height:1.55; }
.social-links-eyebrow { color:#087f8d!important; font-size:.7rem; font-weight:850; letter-spacing:.13em; }
.social-links-form { display:grid; gap:.85rem; }
.social-link-card { display:grid; grid-template-columns:52px minmax(0,1fr) auto; align-items:center; gap:1rem; min-width:0; padding:1.1rem; border:1px solid #e0e8f0; border-radius:13px; background:#fff; box-shadow:0 4px 16px rgba(16,42,67,.035); }
.social-link-icon { display:grid; place-items:center; width:46px; height:46px; border-radius:12px; color:#fff; font-size:1.4rem; font-weight:850; }
.social-link-icon.facebook { background:#1877f2; }.social-link-icon.linkedin { background:#0a66c2; font-size:1.05rem; }.social-link-icon.x-social { background:#111; }
.social-link-fields { display:grid; min-width:0; gap:.35rem; }
.social-link-fields label { color:#253c55; font-weight:750; }
.social-link-fields input { width:100%; min-height:43px; padding:.6rem .75rem; border:1px solid #cbd6e2; border-radius:8px; color:#24394f; font:inherit; }
.social-link-fields input:focus { outline:3px solid rgba(8,127,141,.16); border-color:#087f8d; }
.social-link-fields small { color:#78889b; overflow-wrap:anywhere; }
.social-link-state { padding:.34rem .62rem; border-radius:999px; color:#65758a; background:#f0f3f6; font-size:.76rem; font-weight:750; white-space:nowrap; }
.social-link-card:has(input:not(:placeholder-shown)) .social-link-state { color:#17653f; background:#def5e9; }
.social-links-actions { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:.25rem; padding:1rem 0; }
.social-links-actions p { margin:0; color:#718096; font-size:.9rem; }
@media(max-width:650px) {
    .social-links-intro { align-items:flex-start; flex-direction:column; }
    .social-links-intro>.btn { width:100%; text-align:center; }
    .social-link-card { grid-template-columns:44px minmax(0,1fr); gap:.75rem; padding:.85rem; }
    .social-link-icon { width:40px; height:40px; }
    .social-link-state { grid-column:2; justify-self:start; }
    .social-links-actions { align-items:stretch; flex-direction:column; }
    .social-links-actions .btn { width:100%; }
}
@media(max-width:850px) { .supplier-profile-grid { grid-template-columns:1fr; }.supplier-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .supplier-heading { align-items:flex-start; flex-direction:column; }.supplier-heading>.btn,.supplier-actions { width:100%; }.supplier-actions a { flex:1; text-align:center; }.supplier-metrics { grid-template-columns:1fr 1fr; gap:.5rem; }.supplier-metrics article { padding:.75rem; }.supplier-metrics strong { font-size:1.4rem; }.supplier-filters>* { flex-basis:100%!important; }.supplier-details { grid-template-columns:1fr; gap:.2rem; }.supplier-details dd { margin-bottom:.55rem; }.supplier-card-title { flex-direction:column; }.supplier-card-title span { white-space:normal; } }
@media(max-width:650px) { .admin-permission-grid { grid-template-columns:1fr; }.admin-permission-option { padding:.7rem; } }
