/*
 * JM Hub interface system, 2026.
 * This deliberately sits after the legacy stylesheet so the whole product can
 * share one coherent visual language while legacy page-specific layouts remain
 * functional.
 */

:root {
    --jm-ink-950: #101827;
    --jm-ink-900: #172235;
    --jm-ink-800: #263449;
    --jm-ink-700: #3d4b60;
    --jm-ink-500: #66758a;
    --jm-ink-300: #a8b3c1;
    --jm-slate-100: #edf1f5;
    --jm-slate-50: #f6f8fa;
    --jm-canvas: #f2f4f7;
    --jm-surface: #ffffff;
    --jm-orange: #f36b21;
    --jm-orange-dark: #d9500b;
    --jm-orange-soft: #fff2e8;
    --jm-green: #138a5b;
    --jm-green-soft: #e9f8f1;
    --jm-red: #c43d37;
    --jm-red-soft: #fff0ef;
    --jm-amber: #b7790b;
    --jm-amber-soft: #fff7df;
    --jm-blue: #2867b2;
    --jm-blue-soft: #edf5ff;
    --jm-border: #dce2e9;
    --jm-radius-sm: 8px;
    --jm-radius: 12px;
    --jm-radius-lg: 17px;
    --jm-shadow-sm: 0 1px 2px rgba(16, 24, 39, .04), 0 5px 16px rgba(16, 24, 39, .035);
    --jm-shadow: 0 16px 38px rgba(16, 24, 39, .075);
    --ui-bg: var(--jm-canvas);
    --ui-card: var(--jm-surface);
    --ui-soft: var(--jm-slate-50);
    --ui-border: var(--jm-border);
    --ui-text: var(--jm-ink-900);
    --ui-muted: var(--jm-ink-500);
    --ui-orange: var(--jm-orange);
    --ui-orange-dark: var(--jm-orange-dark);
    --ui-shadow: var(--jm-shadow-sm);
    --brand-orange: var(--jm-orange);
    --brand-orange-dark: var(--jm-orange-dark);
    --line: var(--jm-border);
    --muted: var(--jm-ink-500);
}

.website-enquiry-list{display:grid;gap:1rem}.website-enquiry-card h2{margin:.55rem 0 .2rem}.website-enquiry-details{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1rem 0}.website-enquiry-details>div{display:grid;gap:.3rem;padding:1rem;border:1px solid var(--line);border-radius:10px;background:#f7f9fb}.website-enquiry-details small{color:#66758a;font-weight:850}.website-enquiry-description{margin:1rem 0;padding:1rem;border-left:4px solid var(--brand-orange);background:#fff8f3;white-space:pre-wrap}.website-enquiry-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.8rem;margin:1rem 0}.website-enquiry-photos a{display:grid;gap:.35rem;color:inherit}.website-enquiry-photos img{width:100%;height:140px;object-fit:cover;border-radius:8px}.website-enquiry-photos span{overflow:hidden;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}@media(max-width:700px){.website-enquiry-details{grid-template-columns:1fr}}

/* Internal communication centre */
.nav-icon-messages::before { content: "\2709"; font-size: 17px; }
.nav-message-link .message-count { min-width: 25px; background: #ff681f; color: #fff; border-color: transparent; }
.message-notification-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 13px; border: 1px solid #d8e0ea; border-radius: 12px; color: #25344a; text-decoration: none; font-weight: 800; background: #fff; }
.message-notification-link > span:first-child { font-size: 19px; }
.message-notification-link strong { display: grid; place-items: center; min-width: 24px; height: 24px; padding: 0 6px; border-radius: 999px; background: #ff681f; color: #fff; font-size: 12px; }
.message-notification-link.has-unread { border-color: #ffb58f; background: #fff6f0; color: #9f3306; }

.message-page-head { align-items: flex-end; }
.message-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 0 0 18px; }
.message-summary > button { display: grid; grid-template-columns: 1fr auto; gap: 3px 14px; min-height: 104px; padding: 18px 20px; text-align: left; color: #26364d; background: #fff; border: 1px solid #d8e1eb; border-radius: 17px; cursor: pointer; }
.message-summary > button small { grid-column: 1; font-weight: 800; color: #65758b; }
.message-summary > button strong { grid-column: 2; grid-row: 1 / 3; align-self: center; font-size: 30px; color: #10213c; }
.message-summary > button span { grid-column: 1; font-size: 14px; color: #65758b; }
.message-summary > button.active { border-color: #ff9c69; box-shadow: inset 4px 0 0 #ff681f; background: #fff8f4; }

.message-compose-panel { margin-bottom: 18px; padding: 0; overflow: hidden; }
.message-panel-head { display: flex; justify-content: space-between; gap: 20px; padding: 22px 24px; border-bottom: 1px solid #e1e7ef; }
.message-panel-head h2 { margin: 3px 0 4px; }
.message-panel-head p { margin: 0; color: #68788e; }
.message-compose-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(280px, .75fr); }
.message-compose-main { display: grid; gap: 15px; padding: 24px; }
.message-compose-main label, .message-list-head label, .message-reply-box label { display: grid; gap: 7px; font-weight: 800; color: #34445b; }
.message-compose-main input, .message-compose-main textarea, .message-compose-main select, .message-list-head input, .message-reply-box textarea { width: 100%; border: 1px solid #cfd9e5; border-radius: 12px; background: #fff; color: #14233b; }
.message-compose-main input, .message-compose-main select, .message-list-head input { min-height: 48px; padding: 10px 13px; }
.message-compose-main textarea, .message-reply-box textarea { padding: 13px; resize: vertical; }
.message-compose-options { display: grid; grid-template-columns: 220px 1fr; gap: 16px; align-items: end; }
.message-ack-option { min-height: 48px; margin: 0; padding: 10px 14px; border: 1px solid #dbe3ec; border-radius: 12px; background: #f7f9fc; }
.message-recipient-picker { min-width: 0; padding: 24px; border-left: 1px solid #e1e7ef; background: #f7f9fc; }
.message-recipient-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.message-recipient-head span { color: #66768c; font-size: 13px; font-weight: 800; }
.message-recipient-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 14px; }
.message-recipient-list { display: grid; gap: 8px; max-height: 330px; overflow: auto; }
.message-recipient-option { display: grid; grid-template-columns: auto 34px 1fr; gap: 10px; align-items: center; padding: 10px; border: 1px solid #dde5ee; border-radius: 12px; background: #fff; cursor: pointer; }
.message-recipient-option input { width: 17px; height: 17px; }
.message-recipient-option > span:last-child { display: grid; }
.message-recipient-option small { color: #748398; font-weight: 600; }
.profile-avatar.small { width: 34px; height: 34px; font-size: 11px; }
.message-compose-footer { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 16px 24px; border-top: 1px solid #e1e7ef; background: #fff; }
.message-compose-footer span { color: #68788e; font-size: 14px; }

.message-centre { display: grid; grid-template-columns: minmax(340px, .78fr) minmax(0, 1.35fr); min-height: 650px; padding: 0; overflow: hidden; }
.message-list-panel { min-width: 0; border-right: 1px solid #dfe6ee; background: #f8fafc; }
.message-list-head { display: flex; justify-content: space-between; gap: 12px; padding: 20px; border-bottom: 1px solid #dfe6ee; background: #fff; }
.message-list-head h2 { margin: 0 0 2px; font-size: 21px; }
.message-list-head span { color: #6f7f94; font-size: 13px; }
.message-list-head input { width: 170px; min-height: 42px; }
.message-list { max-height: 710px; overflow-y: auto; }
.message-list-item { position: relative; display: grid; grid-template-columns: 42px 1fr; gap: 12px; width: 100%; padding: 17px 18px; text-align: left; color: #26364d; background: transparent; border: 0; border-bottom: 1px solid #e3e9f0; cursor: pointer; }
.message-list-item:hover, .message-list-item.selected { background: #fff; }
.message-list-item.selected { box-shadow: inset 4px 0 0 #ff681f; }
.message-list-item.unread { background: #fff8f4; }
.message-sender-avatar { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 13px; background: #14233b; color: #fff; font-size: 12px; font-weight: 900; }
.message-list-copy { display: grid; min-width: 0; gap: 4px; }
.message-list-copy > span:first-child { display: flex; justify-content: space-between; gap: 10px; }
.message-list-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.message-list-copy time { flex: 0 0 auto; color: #7a899c; font-size: 12px; }
.message-list-copy b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #14233b; }
.message-list-copy > small { overflow: hidden; color: #69798e; text-overflow: ellipsis; white-space: nowrap; }
.message-list-flags { display: flex !important; justify-content: flex-start !important; flex-wrap: wrap; gap: 5px !important; margin-top: 3px; }
.message-list-flags em { padding: 3px 7px; border-radius: 999px; background: #eaf1ff; color: #335d9c; font-size: 10px; font-style: normal; font-weight: 900; text-transform: uppercase; }
.message-list-flags em.urgent { background: #fff0e8; color: #b13e08; }
.message-list-flags em.confirmed { background: #e8f7ef; color: #197642; }
.message-unread-dot { position: absolute; top: 20px; right: 8px; width: 8px; height: 8px; border-radius: 50%; background: #ff681f; }
.message-empty, .message-detail-empty { display: grid; place-items: center; align-content: center; min-height: 300px; padding: 30px; text-align: center; color: #718197; }
.message-empty strong, .message-detail-empty strong { color: #26364d; }
.message-detail-panel { display: flex; flex-direction: column; min-width: 0; background: #fff; }
.message-detail-empty { min-height: 610px; }
.message-detail-empty > span { display: grid; place-items: center; width: 64px; height: 64px; margin-bottom: 14px; border-radius: 20px; background: #f0f4f8; font-size: 28px; }
.message-detail-empty p { max-width: 320px; }
.message-detail-head { display: flex; justify-content: space-between; gap: 20px; padding: 25px 28px; border-bottom: 1px solid #e1e7ef; }
.message-detail-head h2 { margin: 5px 0; }
.message-detail-head time, .message-detail-meta { color: #6b7b90; font-size: 13px; }
.message-detail-badges { display: flex; align-items: flex-start; gap: 7px; }
.status-pill.urgent { border-color: #ffb58f; background: #fff0e8; color: #a63807; }
.message-thread { display: grid; gap: 13px; padding: 26px 28px; background: #f7f9fc; max-height: 430px; overflow-y: auto; }
.message-thread-item { max-width: 82%; padding: 17px 18px; border: 1px solid #dbe3ec; border-radius: 5px 17px 17px; background: #fff; box-shadow: 0 5px 16px rgba(26, 43, 69, .05); }
.message-thread-item.mine { justify-self: end; border-color: #ffd0b8; border-radius: 17px 5px 17px 17px; background: #fff7f2; }
.message-thread-item header { display: flex; justify-content: space-between; gap: 15px; color: #26364d; }
.message-thread-item time { color: #7c8a9c; font-size: 11px; }
.message-thread-item p { margin: 10px 0 0; color: #35455b; white-space: pre-wrap; line-height: 1.55; }
.message-thread-item footer { margin-top: 12px; padding-top: 10px; border-top: 1px solid #e4e9ef; color: #7a5a21; font-size: 12px; font-weight: 800; }
.message-confirmed { color: #197642; }
.message-acknowledge-callout { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin: 0 28px 18px; padding: 16px 18px; border: 1px solid #ffc49f; border-radius: 14px; background: #fff4eb; }
.message-acknowledge-callout > div { display: grid; gap: 2px; }
.message-acknowledge-callout span { color: #85532f; font-size: 13px; }
.message-delivery-panel { margin: 0 28px 18px; border: 1px solid #dce4ed; border-radius: 14px; overflow: hidden; }
.message-delivery-head { display: flex; justify-content: space-between; gap: 12px; padding: 12px 15px; background: #f2f5f9; }
.message-delivery-head span { color: #6c7b8f; font-size: 12px; font-weight: 800; }
.message-delivery-list { display: grid; max-height: 190px; overflow-y: auto; }
.message-delivery-list > div { display: grid; grid-template-columns: 34px 1fr auto; gap: 10px; align-items: center; padding: 11px 14px; border-top: 1px solid #e6ebf1; }
.message-delivery-list > div:first-child { border-top: 0; }
.message-delivery-list > div > span:nth-child(2), .delivery-state { display: grid; gap: 1px; }
.message-delivery-list small { color: #77869a; }
.delivery-state { min-width: 130px; text-align: right; }
.delivery-state b { color: #6b7b90; }
.delivery-state.confirmed b { color: #197642; }
.delivery-state.read b { color: #315f9e; }
.delivery-state.unread b { color: #a34b22; }
.message-reply-box { margin-top: auto; padding: 20px 28px 25px; border-top: 1px solid #dfe6ee; }
.message-reply-box > div { display: flex; justify-content: flex-end; gap: 9px; margin-top: 10px; }

.staff-message-banner { display: grid; grid-template-columns: 48px 1fr auto; gap: 14px; align-items: center; margin: 14px 0 18px; padding: 16px 18px; border: 1px solid #d9e2ec; border-radius: 16px; background: #fff; color: #26364d; text-decoration: none; }
.staff-message-banner.has-unread { border-color: #ffb58f; background: #fff7f2; box-shadow: inset 4px 0 0 #ff681f; }
.staff-message-icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; background: #14233b; color: #fff; font-size: 22px; }
.staff-message-banner > span:nth-child(2) { display: grid; gap: 3px; }
.staff-message-banner small { color: #708096; }
.staff-message-banner > b { color: #b33e08; }

@media (max-width: 1100px) {
    .message-centre { grid-template-columns: minmax(300px, .85fr) minmax(0, 1.15fr); }
    .message-compose-grid { grid-template-columns: 1fr; }
    .message-recipient-picker { border-top: 1px solid #e1e7ef; border-left: 0; }
    .message-recipient-list { grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: 260px; }
}

@media (max-width: 760px) {
    .message-notification-link > span:nth-child(2) { display: none; }
    .message-summary { grid-template-columns: 1fr; gap: 9px; }
    .message-summary > button { min-height: 80px; }
    .message-centre { display: block; min-height: 0; }
    .message-list-panel { border-right: 0; }
    .message-list { max-height: none; }
    .message-detail-panel { min-height: 520px; border-top: 1px solid #dfe6ee; }
    .message-detail-empty { min-height: 420px; }
    .message-list-head, .message-panel-head, .message-detail-head { align-items: stretch; flex-direction: column; }
    .message-list-head input { width: 100%; }
    .message-recipient-list { grid-template-columns: 1fr; }
    .message-compose-options { grid-template-columns: 1fr; }
    .message-compose-footer, .message-acknowledge-callout { align-items: stretch; flex-direction: column; }
    .message-thread { padding: 18px; }
    .message-thread-item { max-width: 94%; }
    .message-acknowledge-callout { margin: 0 18px 18px; }
    .message-delivery-panel { margin: 0 18px 18px; }
    .message-delivery-list > div { grid-template-columns: 34px 1fr; }
    .delivery-state { grid-column: 2; min-width: 0; text-align: left; }
    .message-reply-box { padding: 18px; }
    .staff-message-banner { grid-template-columns: 44px 1fr; }
    .staff-message-banner > b { grid-column: 2; }
}

/* Bank reconciliation */
.bank-page-head { align-items: flex-end; }
.sandbox-banner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 0 0 1rem; padding: 1rem 1.15rem; border: 1px solid #f5c88b; border-left: 5px solid #f97316; border-radius: 14px; background: #fff7ed; color: #7c2d12; }
.sandbox-banner div { display: grid; gap: .2rem; }
.sandbox-banner span { color: #9a3412; }
.sandbox-banner .status-pill { flex: 0 0 auto; padding: .42rem .7rem; border-radius: 999px; background: #ffedd5; font-weight: 900; font-size: .75rem; letter-spacing: .06em; }
.bank-connection-card { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; padding: 1.35rem; }
.bank-connection-main { display: flex; align-items: center; gap: 1rem; min-width: 0; }
.bank-icon { display: grid; place-items: center; width: 3.5rem; height: 3.5rem; flex: 0 0 auto; border-radius: 14px; background: #132038; color: #fff; font-size: 1.65rem; font-weight: 900; }
.bank-connection-main small { color: #f26522; font-weight: 900; letter-spacing: .06em; }
.bank-connection-main h2 { margin: .15rem 0 .3rem; }
.bank-connection-main p { margin: 0 0 .25rem; color: #52627a; }
.bank-connection-main span { color: #65748a; font-size: .9rem; }
.bank-actions { flex: 0 0 auto; }
.bank-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .9rem; margin: 1rem 0; }
.bank-kpis > div { display: grid; gap: .28rem; padding: 1rem 1.1rem; border: 1px solid #d9e1ec; border-left: 5px solid #94a3b8; border-radius: 14px; background: #fff; }
.bank-kpis > div.income { border-left-color: #16a34a; }
.bank-kpis > div.spend { border-left-color: #dc6b20; }
.bank-kpis > div.attention { border-left-color: #e0a008; }
.bank-kpis small { color: #5b6980; font-weight: 800; }
.bank-kpis strong { color: #0f1d35; font-size: 1.65rem; line-height: 1.1; }
.bank-kpis span { color: #7a8799; font-size: .85rem; }
.bank-register { padding: 0; overflow: hidden; }
.bank-register-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; padding: 1.25rem; }
.bank-register-head h2 { margin: 0 0 .25rem; }
.bank-register-head p { margin: 0; color: #65748a; }
.bank-filters { display: grid; grid-template-columns: minmax(220px, 1fr) 170px; gap: .65rem; min-width: min(100%, 470px); }
.bank-filters label { display: grid; gap: .3rem; color: #45546b; font-size: .8rem; font-weight: 800; }
.bank-filters input, .bank-filters select { min-height: 44px; }
.bank-table { min-width: 850px; }
.bank-table th { white-space: nowrap; }
.bank-table td strong, .bank-table td small { display: block; }
.bank-table td small { margin-top: .2rem; color: #7a8799; }
.bank-table .money { text-align: right; white-space: nowrap; }
.bank-table .income-value { color: #137a3a; font-weight: 800; }
.bank-table tr.removed { opacity: .55; }
.transaction-status { display: inline-flex; padding: .35rem .62rem; border: 1px solid #c7d7f7; border-radius: 999px; background: #edf4ff; color: #36557e; font-size: .78rem; font-weight: 900; white-space: nowrap; }
.transaction-status.pending { border-color: #f4d38e; background: #fff8e7; color: #8a5a00; }
.bank-empty { display: grid; place-items: center; gap: .35rem; min-height: 190px; padding: 2rem; border-top: 1px solid #e1e7ef; text-align: center; color: #66758b; }
.bank-empty strong { color: #15233b; font-size: 1.08rem; }

@media (max-width: 900px) {
    .bank-connection-card, .bank-register-head { align-items: stretch; flex-direction: column; }
    .bank-actions { width: 100%; }
    .bank-actions > * { flex: 1 1 auto; text-align: center; }
    .bank-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bank-filters { width: 100%; min-width: 0; }
}

@media (max-width: 560px) {
    .sandbox-banner { align-items: flex-start; }
    .sandbox-banner .status-pill { display: none; }
    .bank-connection-main { align-items: flex-start; }
    .bank-icon { width: 2.8rem; height: 2.8rem; }
    .bank-kpis, .bank-filters { grid-template-columns: 1fr; }
}

html { background: var(--jm-canvas); }

body {
    background:
        radial-gradient(circle at 88% -10%, rgba(243, 107, 33, .075), transparent 29rem),
        var(--jm-canvas);
    color: var(--jm-ink-900);
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 14px;
    line-height: 1.5;
}

::selection { background: #ffd5bd; color: var(--jm-ink-950); }

/* App frame */
.app-shell { min-height: 100dvh; }

.sidebar {
    background:
        radial-gradient(circle at 18% 0, rgba(243, 107, 33, .16), transparent 13rem),
        linear-gradient(180deg, #151f30 0%, #101827 100%);
    border-right: 1px solid rgba(255, 255, 255, .07);
    box-shadow: none;
    height: 100dvh;
    padding: 18px 14px;
    width: 258px;
}

.sidebar-head { align-items: center; }

.brand,
.login-brand {
    align-items: center;
    display: flex;
    gap: 11px;
    margin: 0 5px 20px;
    min-width: 0;
    text-align: left;
}

.brand-mark {
    align-items: center;
    background: var(--jm-orange);
    border-radius: 11px;
    box-shadow: 0 8px 20px rgba(243, 107, 33, .25);
    color: #fff;
    display: inline-flex;
    flex: 0 0 42px;
    font-size: 15px;
    font-weight: 900;
    height: 42px;
    justify-content: center;
    letter-spacing: -.05em;
}

.brand-copy { min-width: 0; }
.brand-main { color: #fff; font-size: 20px; letter-spacing: -.035em; line-height: 1; }
.brand-sub { color: #d8dee8; font-size: 9px; letter-spacing: .17em; margin-top: 4px; }
.brand-kicker { color: #8390a2; display: block; font-size: 9px; font-weight: 700; letter-spacing: .04em; margin-top: 2px; }

.nav { gap: 3px; }

.nav-section-label {
    color: #7f8b9d;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .15em;
    margin: 7px 12px 5px;
    text-transform: uppercase;
}

.nav > a,
.nav-group > summary {
    align-items: center;
    border: 1px solid transparent;
    border-left: 0;
    border-radius: 9px;
    color: #cbd3df;
    display: flex;
    font-size: 13px;
    font-weight: 720;
    gap: 10px;
    min-height: 40px;
    padding: 8px 10px;
    transform: none;
    transition: background-color 140ms ease, color 140ms ease, border-color 140ms ease;
}

.nav > a:hover,
.nav-group > summary:hover {
    background: rgba(255, 255, 255, .065);
    border-color: rgba(255, 255, 255, .035);
    color: #fff;
    transform: none;
}

.nav > a.active {
    background: linear-gradient(135deg, var(--jm-orange), #e95a11);
    border-color: rgba(255, 255, 255, .13);
    box-shadow: 0 7px 18px rgba(211, 76, 9, .2);
    color: #fff;
}

.nav-icon {
    align-items: center;
    color: #8391a5;
    display: inline-flex;
    flex: 0 0 22px;
    font-size: 14px;
    font-style: normal;
    height: 22px;
    justify-content: center;
}

.active > .nav-icon,
.nav a:hover > .nav-icon,
.nav-group > summary:hover > .nav-icon { color: #fff; }
.nav-icon-dashboard::before { content: "◆"; font-size: 11px; }
.nav-icon-actions::before { content: "✓"; font-weight: 900; }
.nav-icon-work::before { content: "▤"; }
.nav-icon-accounts::before { content: "£"; font-weight: 850; }
.nav-icon-costs::before { content: "▣"; }
.nav-icon-reports::before { content: "↗"; font-size: 17px; }
.nav-icon-team::before { content: "●"; font-size: 10px; }
.nav-icon-system::before { content: "⚙"; }

.nav-group { margin-top: 1px; }
.nav-group > summary { list-style: none; position: relative; }
.nav-group > summary::-webkit-details-marker { display: none; }
.nav-group > summary::after {
    color: #718096;
    content: "+";
    font-size: 16px;
    font-weight: 500;
    margin-left: auto;
}
.nav-group[open] > summary { color: #fff; }
.nav-group[open] > summary::after { content: "−"; }
.nav-group-links {
    border-left: 1px solid rgba(255, 255, 255, .095);
    margin: 2px 0 5px 21px;
    padding: 2px 0 2px 12px;
}
.nav-group-links a {
    border: 0;
    border-radius: 7px;
    color: #97a4b5;
    font-size: 12px;
    font-weight: 650;
    min-height: 32px;
    padding: 6px 9px;
}
.nav-group-links a:hover { background: rgba(255, 255, 255, .055); color: #fff; transform: none; }
.nav-group-links a.active { background: var(--jm-orange-soft); box-shadow: none; color: #b5440b; }

.main {
    overflow: visible;
    padding: 16px clamp(18px, 2.2vw, 34px) 42px;
}

.topbar {
    backdrop-filter: blur(16px);
    background: rgba(255, 255, 255, .86);
    border: 1px solid rgba(214, 221, 229, .9);
    border-radius: 14px;
    box-shadow: var(--jm-shadow-sm);
    gap: 12px;
    margin-bottom: 18px;
    min-height: 62px;
    padding: 9px 10px 9px 13px;
    top: 12px;
}

.global-search { max-width: 560px; }
.global-search-input-wrap {
    background: #f3f5f8;
    border: 1px solid transparent;
    border-radius: 10px;
    min-height: 42px;
    padding-left: 11px;
}
.global-search-input-wrap > span { color: #7d8998; font-size: 17px; }
.global-search-input-wrap input { color: var(--jm-ink-900); font-size: 13px; }
.global-search-input-wrap input::placeholder { color: #8995a5; }
.global-search-input-wrap:focus-within { border-color: #f3a071; box-shadow: 0 0 0 3px rgba(243, 107, 33, .12); }
.global-search-results { border-radius: 12px; box-shadow: var(--jm-shadow); }

.topbar-quick-links { background: transparent; border: 0; gap: 4px; padding: 0; }
.topbar-quick-links a {
    background: transparent;
    border: 0;
    color: var(--jm-ink-700);
    font-size: 11px;
    padding: 9px 10px;
}
.topbar-quick-links a:first-child { background: var(--jm-orange-soft); color: #aa400a; }
.topbar-quick-links a:hover { background: #edf1f5; border-color: transparent; color: var(--jm-ink-950); }

.topbar-account { gap: 8px; }
.topbar-account .account-switch-link {
    background: #edf1f5;
    color: var(--jm-ink-800);
    font-size: 11px;
    min-height: 40px;
    padding: 9px 11px;
}
.topbar-account .account-switch-link:hover { background: #e3e8ee; }

.profile-card {
    align-items: center;
    border-left: 1px solid var(--jm-border);
    display: flex;
    gap: 9px;
    margin-left: 2px;
    padding: 1px 2px 1px 11px;
}
.profile-avatar {
    align-items: center;
    background: var(--jm-ink-900);
    border-radius: 10px;
    color: #fff;
    display: inline-flex;
    flex: 0 0 34px;
    font-size: 10px;
    font-weight: 850;
    height: 34px;
    justify-content: center;
    letter-spacing: .04em;
}
.profile { line-height: 1.18; text-align: left; }
.profile strong { color: var(--jm-ink-900); font-size: 12px; }
.profile small { color: var(--jm-ink-500); font-size: 9px; margin-top: 3px; text-transform: uppercase; }
.logout-link {
    border: 1px solid var(--jm-border);
    border-radius: 8px;
    color: var(--jm-ink-700);
    font-size: 10px;
    margin: 0;
    padding: 7px 8px;
}
.logout-link:hover { background: var(--jm-red-soft); border-color: #f0c4c1; color: var(--jm-red); text-decoration: none; }

/* Type, page rhythm and shared surfaces */
.page-head { align-items: end; margin: 7px 0 17px; }
.page-head h1 {
    color: var(--jm-ink-950);
    font-size: clamp(25px, 2.3vw, 34px);
    font-weight: 790;
    letter-spacing: -.045em;
    line-height: 1.06;
}
.page-head p { color: var(--jm-ink-500); font-size: 13px; margin-top: 6px; }

.panel,
.kpi {
    background: var(--jm-surface);
    border: 1px solid var(--jm-border);
    border-radius: var(--jm-radius);
    box-shadow: var(--jm-shadow-sm);
}
.panel { margin-bottom: 14px; padding: 18px; }
.panel > h2:first-child,
.table-panel-head h2 { color: var(--jm-ink-950); font-size: 18px; letter-spacing: -.025em; }
.panel-note { color: var(--jm-ink-500); }

.kpis { gap: 11px; }
.kpi { border-left: 0; min-height: 104px; overflow: hidden; padding: 15px 16px; position: relative; }
.kpi::before { background: var(--jm-blue); content: ""; height: 3px; left: 0; position: absolute; right: 0; top: 0; }
.kpi.orange::before { background: var(--jm-orange); }
.kpi.amber::before { background: #d79a29; }
.kpi.green::before { background: var(--jm-green); }
.kpi.red::before { background: var(--jm-red); }
.kpi.purple::before { background: #805ad5; }
.kpi.teal::before { background: #168d93; }
.kpi small { color: var(--jm-ink-500); font-size: 10px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.kpi strong { color: var(--jm-ink-950); font-size: clamp(22px, 2vw, 30px); font-weight: 780; letter-spacing: -.035em; }
.kpi a { color: var(--jm-blue); font-size: 11px; font-weight: 750; }

.grid,
.record-workspace,
.quote-workspace { gap: 14px; }

/* Controls and forms */
label { color: var(--jm-ink-700); font-size: 12px; font-weight: 720; gap: 6px; }
input,
select,
textarea {
    background: #fff;
    border: 1px solid #cdd5df;
    border-radius: 9px;
    color: var(--jm-ink-900);
    min-height: 42px;
    padding: 9px 11px;
}
input::placeholder,
textarea::placeholder { color: #929dab; }
input:hover,
select:hover,
textarea:hover { border-color: #9da9b7; }
input:focus,
select:focus,
textarea:focus { border-color: #ef8a50; box-shadow: 0 0 0 3px rgba(243, 107, 33, .12); }

.primary,
.secondary,
.danger,
.secondary-link,
.action-menu summary {
    align-items: center;
    border-radius: 9px;
    display: inline-flex;
    font-size: 12px;
    font-weight: 780;
    justify-content: center;
    min-height: 40px;
    padding: 9px 13px;
    transform: none;
}
.primary { background: var(--jm-orange); border: 1px solid var(--jm-orange); box-shadow: 0 5px 12px rgba(217, 80, 11, .14); color: #fff; }
.primary:hover { background: var(--jm-orange-dark); border-color: var(--jm-orange-dark); box-shadow: 0 7px 16px rgba(217, 80, 11, .2); transform: translateY(-1px); }
.secondary,
.secondary-link { background: #fff; border: 1px solid #cfd7e1; color: var(--jm-ink-800); }
.secondary:hover,
.secondary-link:hover { background: var(--jm-slate-50); border-color: #aab5c2; color: var(--jm-ink-950); }
.danger { background: var(--jm-red-soft); border: 1px solid #efc4c1; color: var(--jm-red); }
.danger:hover { background: #ffe5e3; border-color: #e6aaa6; }
.small { min-height: 32px; padding: 6px 9px; }
.notice { background: var(--jm-orange-soft); border: 1px solid #f6c6a9; border-left: 4px solid var(--jm-orange); border-radius: 10px; color: #87350f; }

.entry-form-panel { border-top: 3px solid var(--jm-orange); max-width: 1100px; }
.open-form-card {
    background: linear-gradient(135deg, #fff 45%, var(--jm-orange-soft));
    border: 1px solid #efc7ae;
    border-left: 1px solid #efc7ae;
    border-radius: 11px;
    max-width: 360px;
    min-height: 68px;
}
.open-form-card:hover { border-color: #ed9b6b; box-shadow: 0 10px 24px rgba(199, 78, 12, .09); }

/* Registers and dense operational data */
.register-filter-bar,
.job-filter-bar {
    background: #f7f8fa;
    border: 1px solid var(--jm-border);
    border-radius: 11px;
    gap: 9px;
    padding: 9px;
}
.register-filter-bar label,
.job-filter-bar label { color: var(--jm-ink-500); font-size: 10px; letter-spacing: .025em; }
.register-filter-bar input,
.register-filter-bar select,
.job-filter-bar input,
.job-filter-bar select { background: #fff; }

.table-panel { border-radius: var(--jm-radius); padding-top: 15px; scrollbar-color: #aeb8c4 #edf1f5; }
.table-panel-head { margin-bottom: 12px; }
.export-actions { align-items: center; display: flex; flex: 0 0 auto; gap: 7px; }
.export-link::before { border-radius: 5px; display: inline-grid; font-size: 9px; font-weight: 900; height: 20px; margin-right: 7px; place-items: center; width: 20px; }
.export-link.excel::before { background: #e3f4ea; color: #147443; content: "X"; }
.export-link.csv::before { background: #e9eff8; color: #315f99; content: "C"; }
.data-table { border-collapse: separate; border-spacing: 0; }
.data-table th {
    background: #f4f6f8;
    border-bottom: 1px solid #d9e0e8;
    color: #536174;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .075em;
    padding: 10px 9px;
    text-transform: uppercase;
}
.data-table td { border-bottom-color: #e8ecf1; color: var(--jm-ink-700); font-size: 12px; padding: 10px 9px; }
.data-table tbody tr:nth-child(even) { background: #fbfcfd; }
.data-table tbody tr:hover { background: #fff7f1; }
.data-table td > strong:first-child { color: var(--jm-ink-900); }
.table-panel .data-table th:last-child { background: #f4f6f8; }
.table-panel .data-table tbody tr:nth-child(even) td:last-child { background: #fbfcfd; }
.table-panel .data-table tbody tr:hover td:last-child { background: #fff7f1; }
.status { border-radius: 999px; font-size: 10px; font-weight: 800; padding: 5px 8px; }
.action-menu summary { background: #fff; border: 1px solid var(--jm-border); color: var(--jm-ink-700); }
.action-menu-list { border: 1px solid var(--jm-border); box-shadow: var(--jm-shadow); }

/* Dashboard */
.dashboard-hero {
    align-items: end;
    display: flex;
    gap: 24px;
    justify-content: space-between;
    margin: 7px 2px 19px;
}
.dashboard-hero-eyebrow,
.login-eyebrow,
.office-action-eyebrow {
    color: var(--jm-orange-dark);
    display: block;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .12em;
    margin-bottom: 5px;
    text-transform: uppercase;
}
.dashboard-hero h1 { color: var(--jm-ink-950); font-size: clamp(27px, 2.6vw, 38px); letter-spacing: -.05em; line-height: 1.04; margin: 0; }
.dashboard-hero p { color: var(--jm-ink-500); font-size: 13px; margin: 7px 0 0; }
.dashboard-hero-actions { display: flex; flex: 0 0 auto; gap: 8px; }

.office-action-centre { border-top: 3px solid var(--jm-ink-900); padding: 17px; }
.office-action-head h2 { color: var(--jm-ink-950); font-size: 21px; letter-spacing: -.035em; }
.office-action-total { background: var(--jm-ink-900); border-radius: 999px; color: #fff; font-size: 11px; padding: 8px 11px; }
.office-action-grid { gap: 9px; }
.office-action-card {
    background: #f8f9fb;
    border: 1px solid var(--jm-border);
    border-left: 3px solid #9aa7b6;
    border-radius: 10px;
    min-height: 98px;
    padding: 11px 12px;
}
.office-action-card.urgent { background: var(--jm-red-soft); border-color: #efc9c6; border-left-color: var(--jm-red); }
.office-action-card.attention { background: var(--jm-amber-soft); border-color: #edd9a6; border-left-color: #d99a25; }
.office-action-card.ready { background: var(--jm-green-soft); border-color: #bfe4d3; border-left-color: var(--jm-green); }
.office-action-card:hover { box-shadow: 0 9px 22px rgba(16, 24, 39, .075); transform: translateY(-2px); }
.office-action-card > span { color: var(--jm-ink-700); font-size: 10px; font-weight: 800; letter-spacing: .025em; }
.office-action-card > strong { color: var(--jm-ink-950); font-size: 25px; letter-spacing: -.04em; }
.office-action-card > small { color: var(--jm-ink-500); font-size: 9px; }
.office-priority-list { border-top-color: var(--jm-border); }
.office-priority-columns a { border: 1px solid var(--jm-border); border-radius: 8px; }
.dashboard-financial-panel { border-top: 3px solid var(--jm-orange); }
.dashboard-financial-compact .financial-expense-breakdown { color: var(--jm-ink-500); }
.dashboard-dropdown > summary { color: var(--jm-ink-900); font-weight: 780; }
.dashboard-snapshot > summary::after { color: var(--jm-orange); }

/* Login */
.login-shell {
    background:
        radial-gradient(circle at 20% 10%, rgba(243, 107, 33, .25), transparent 24rem),
        radial-gradient(circle at 90% 85%, rgba(50, 79, 118, .3), transparent 28rem),
        var(--jm-ink-950);
    gap: 28px;
    overflow: hidden;
    position: relative;
}
.login-shell::before {
    border: 1px solid rgba(255, 255, 255, .055);
    border-radius: 50%;
    content: "";
    height: 38rem;
    left: -24rem;
    position: absolute;
    top: 28%;
    width: 38rem;
}
.login-brand { margin: 0; position: relative; }
.login-brand .brand-mark { flex-basis: 48px; height: 48px; }
.login-brand .brand-main { font-size: 24px; }
.login-brand .brand-sub { font-size: 10px; }
.login-panel {
    border: 1px solid rgba(255, 255, 255, .65);
    border-radius: 18px;
    box-shadow: 0 28px 70px rgba(0, 0, 0, .32);
    max-width: 430px;
    padding: 31px;
    position: relative;
}
.login-panel h1 { color: var(--jm-ink-950); font-size: 29px; letter-spacing: -.045em; }
.login-panel > p { font-size: 13px; margin-bottom: 23px; }
.login-panel label { font-size: 12px; }
.login-panel input { min-height: 46px; }
.login-panel .check-row { color: var(--jm-ink-500); flex-direction: row; font-size: 11px; }
.login-submit { margin-top: 4px; min-height: 47px; width: 100%; }
.login-panel .panel-note { border-top: 1px solid var(--jm-border); font-size: 10px; margin: 24px 0 0; padding-top: 17px; text-align: center; }

/* Responsive shell */
@media (max-width: 1180px) {
    .sidebar { width: 238px; }
    .topbar-quick-links { display: none; }
    .global-search { max-width: none; }
}

@media (max-width: 800px) {
    body { background: var(--jm-canvas); }
    .app-shell { display: block; }
    .sidebar {
        border-bottom: 1px solid rgba(255, 255, 255, .08);
        height: auto;
        padding: 9px 12px;
        position: sticky;
        top: 0;
        width: 100%;
        z-index: 80;
    }
    .sidebar-head { min-height: 48px; }
    .brand { gap: 9px; margin: 0; }
    .brand-mark { border-radius: 9px; flex-basis: 34px; font-size: 12px; height: 34px; }
    .brand-main { font-size: 16px; }
    .brand-sub { font-size: 7px; }
    .brand-kicker { display: none; }
    .mobile-nav-toggle { background: rgba(255, 255, 255, .075); border-radius: 9px; font-size: 11px; }
    .sidebar .nav {
        background: #111b2b;
        border: 1px solid rgba(255, 255, 255, .08);
        border-radius: 12px;
        box-shadow: 0 18px 35px rgba(0, 0, 0, .27);
        margin-top: 7px;
        max-height: calc(100dvh - 75px);
        padding: 8px;
    }
    .main { padding: 10px 10px 28px; }
    .topbar {
        border-radius: 11px;
        gap: 8px;
        margin-bottom: 13px;
        padding: 8px;
        position: static;
    }
    .global-search-results { left: 8px; right: 8px; top: 66px; }
    .topbar-account { align-items: center; display: flex; width: 100%; }
    .topbar-account .account-switch-link { flex: 1; width: auto; }
    .profile-card { border-left: 0; margin-left: auto; padding-left: 0; }
    .profile-card .profile { display: none; }
    .page-head { align-items: stretch; flex-direction: column; margin: 5px 3px 13px; }
    .page-head h1 { font-size: 26px; }
    .page-head > a,
    .page-head > button { width: 100%; }
    .dashboard-hero { align-items: stretch; flex-direction: column; gap: 13px; margin: 5px 3px 15px; }
    .dashboard-hero h1 { font-size: 29px; }
    .dashboard-hero-actions { display: grid; grid-template-columns: 1fr 1fr; }
    .panel { border-radius: 11px; margin-bottom: 10px; padding: 13px; }
    .office-action-centre { padding: 13px; }
    .office-action-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .office-action-card { min-height: 94px; }
    .register-filter-bar,
    .job-filter-bar { padding: 8px; }
    .table-panel { padding-left: 8px; padding-right: 8px; }
    .table-panel-head { align-items: stretch; flex-direction: column; }
    .export-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
    .export-actions .export-link { width: 100%; }
    .login-panel { padding: 25px 21px; }
}

/* Holiday and absence register */
.holiday-page-head { align-items: flex-end; }
.holiday-eyebrow,
.holiday-step { display: block; margin-bottom: 7px; color: #d94f0b; font-size: .76rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.holiday-summary-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 0 0 18px; }
.holiday-summary-grid > div { padding: 19px 21px; border: 1px solid #d8e1eb; border-radius: 16px; background: #fff; box-shadow: 0 6px 18px rgba(16, 36, 62, .05); }
.holiday-summary-grid span,
.holiday-summary-grid small { display: block; color: #667085; font-weight: 700; }
.holiday-summary-grid strong { display: block; margin: 5px 0 2px; color: #10213c; font-size: 2rem; line-height: 1; }
.holiday-entry-panel,
.holiday-balance-panel,
.holiday-register-panel,
.public-holiday-panel { margin-bottom: 20px; overflow: hidden; border: 1px solid #d8e1eb; border-radius: 18px; background: #fff; box-shadow: 0 8px 24px rgba(16, 36, 62, .06); }
.holiday-section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding: 25px 28px 20px; border-bottom: 1px solid #e3e9f0; }
.holiday-section-heading.compact { align-items: center; padding-bottom: 18px; }
.holiday-section-heading h2 { margin: 0 0 5px; color: #10213c; font-size: 1.4rem; }
.holiday-section-heading p { margin: 0; color: #667085; }
.holiday-day-total { flex: 0 0 auto; min-width: 175px; padding: 14px 17px; border: 1px solid #f4c49f; border-radius: 13px; color: #8b350a; background: #fff4eb; }
.holiday-day-total small,
.holiday-day-total strong { display: block; }
.holiday-day-total small { margin-bottom: 3px; font-weight: 700; }
.holiday-day-total strong { font-size: 1.2rem; }
.holiday-entry-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 17px; padding: 24px 28px; }
.holiday-entry-grid label { display: flex; flex-direction: column; gap: 7px; color: #253752; font-weight: 800; }
.holiday-entry-grid label.wide { grid-column: 1 / -1; }
.holiday-entry-grid input,
.holiday-entry-grid select,
.holiday-entry-grid textarea,
.holiday-year-select select { width: 100%; padding: 12px 13px; border: 1px solid #cbd7e4; border-radius: 10px; color: #10213c; background: #fff; font: inherit; }
.holiday-entry-grid label small { color: #667085; font-weight: 500; }
.holiday-entry-footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 17px 28px 23px; }
.holiday-entry-footer p { margin: 0; color: #5e6b7f; }
.holiday-balance-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; padding: 22px 28px 28px; }
.holiday-balance-grid article { padding: 17px; border: 1px solid #dde5ee; border-radius: 13px; background: #f9fbfd; }
.holiday-balance-grid article > div:first-child { display: flex; justify-content: space-between; gap: 12px; }
.holiday-balance-grid article > div:first-child span { color: #667085; }
.holiday-balance-numbers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 14px 0 12px; color: #667085; font-size: .8rem; }
.holiday-balance-numbers b { display: block; color: #10213c; font-size: 1.08rem; }
.holiday-progress { height: 7px; overflow: hidden; border-radius: 999px; background: #e3eaf1; }
.holiday-progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #f26a21, #ff9b57); }
.team-holiday-calendar-panel { margin-bottom: 20px; overflow: hidden; border: 1px solid #d8e1eb; border-radius: 18px; background: #fff; box-shadow: 0 8px 24px rgba(16, 36, 62, .06); }
.holiday-calendar-controls { display: flex; align-items: center; gap: 9px; }
.holiday-calendar-controls strong { min-width: 145px; color: #10213c; text-align: center; }
.holiday-calendar-legend { display: flex; flex-wrap: wrap; gap: 8px 16px; padding: 15px 28px; border-bottom: 1px solid #e3e9f0; background: #f9fbfd; }
.holiday-calendar-legend > span { display: inline-flex; align-items: center; gap: 7px; color: #43516a; font-size: .84rem; font-weight: 750; }
.holiday-calendar-legend i { width: 10px; height: 10px; border-radius: 50%; background: var(--holiday-colour); }
.holiday-calendar-scroll { overflow-x: auto; padding: 20px 28px 26px; }
.holiday-mini-calendar { display: grid; grid-template-columns: repeat(7, minmax(105px, 1fr)); min-width: 760px; overflow: hidden; border: 1px solid #d9e2ec; border-radius: 13px; background: #d9e2ec; gap: 1px; }
.holiday-calendar-weekday { padding: 9px 10px; color: #59677c; background: #edf2f7; font-size: .77rem; font-weight: 900; letter-spacing: .05em; text-align: center; text-transform: uppercase; }
.holiday-calendar-day { min-height: 108px; padding: 8px; background: #fff; }
.holiday-calendar-day.empty { background: #f5f7fa; }
.holiday-calendar-day.weekend { background: #f8fafc; }
.holiday-calendar-day.today { box-shadow: inset 0 0 0 2px #f26a21; background: #fffaf6; }
.holiday-calendar-date { display: flex; align-items: center; justify-content: space-between; min-height: 22px; margin-bottom: 5px; color: #344054; }
.holiday-calendar-date b { font-size: .9rem; }
.holiday-calendar-date span { padding: 2px 5px; border-radius: 999px; color: #a23f0e; background: #ffe9d8; font-size: .62rem; font-weight: 900; text-transform: uppercase; }
.holiday-calendar-person,
.holiday-calendar-public { display: block; overflow: hidden; margin-top: 4px; padding: 5px 7px; border-left: 3px solid var(--holiday-colour); border-radius: 6px; color: #253752; background: color-mix(in srgb, var(--holiday-colour) 14%, white); font-size: .72rem; font-weight: 800; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.holiday-calendar-public { --holiday-colour: #6c57c8; color: #4d388f; background: #eeeafd; }
.holiday-colour-0 { --holiday-colour: #dc5d24; }
.holiday-colour-1 { --holiday-colour: #2474b5; }
.holiday-colour-2 { --holiday-colour: #198754; }
.holiday-colour-3 { --holiday-colour: #9a4db0; }
.holiday-colour-4 { --holiday-colour: #c58a12; }
.holiday-colour-5 { --holiday-colour: #bc405e; }
.holiday-colour-6 { --holiday-colour: #16888b; }
.holiday-colour-7 { --holiday-colour: #60728b; }
.holiday-calendar-empty { margin: -8px 28px 24px; padding: 13px 15px; border-radius: 9px; color: #667085; background: #f4f7fa; }
.holiday-register-panel .table-scroll { overflow-x: auto; }
.holiday-register-table { margin: 0; }
.holiday-register-table td span { display: block; margin-top: 3px; color: #667085; }
.holiday-register-table textarea { min-width: 190px; }
.holiday-status-approved { color: #116c3d !important; background: #e8f8ef !important; }
.holiday-status-pending { color: #8a4d08 !important; background: #fff4dc !important; }
.holiday-status-declined { color: #9b2635 !important; background: #fdecef !important; }
.holiday-year-select { display: flex; align-items: center; gap: 10px; color: #43516a; font-weight: 800; }
.holiday-year-select select { min-width: 115px; }
.public-holiday-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 22px 28px; }
.public-holiday-grid article { display: flex; align-items: center; gap: 13px; min-height: 76px; padding: 12px; border: 1px solid #dde5ee; border-radius: 13px; background: #f9fbfd; }
.public-holiday-grid time { display: flex; flex: 0 0 50px; flex-direction: column; align-items: center; padding: 7px; border-radius: 9px; color: #fff; background: #17233b; }
.public-holiday-grid time b { font-size: 1.15rem; line-height: 1; }
.public-holiday-grid time span { margin-top: 3px; font-size: .73rem; font-weight: 800; text-transform: uppercase; }
.public-holiday-grid article div span { display: block; margin-top: 3px; color: #667085; }
.public-holiday-note { margin: 0; padding: 16px 28px 22px; color: #667085; }
.public-holiday-note a { color: #1759a8; font-weight: 800; }

@media (max-width: 900px) {
    .holiday-summary-grid,
    .holiday-entry-grid,
    .public-holiday-grid { grid-template-columns: 1fr; }
    .holiday-balance-grid { grid-template-columns: 1fr; }
    .holiday-entry-grid label.wide { grid-column: auto; }
}

@media (max-width: 650px) {
    .holiday-page-head,
    .holiday-section-heading,
    .holiday-entry-footer { align-items: stretch; flex-direction: column; }
    .holiday-day-total { min-width: 0; }
    .holiday-entry-grid,
    .holiday-balance-grid,
    .public-holiday-grid { padding-right: 18px; padding-left: 18px; }
    .holiday-section-heading { padding-right: 18px; padding-left: 18px; }
    .holiday-entry-footer { padding-right: 18px; padding-left: 18px; }
    .holiday-balance-numbers { grid-template-columns: 1fr; }
    .holiday-calendar-controls { flex-wrap: wrap; }
    .holiday-calendar-controls strong { order: -1; width: 100%; text-align: left; }
    .holiday-calendar-legend { padding-right: 18px; padding-left: 18px; }
    .holiday-calendar-scroll { padding-right: 14px; padding-left: 14px; }
}

/* Individual vehicle financial cost ledger */
.vehicle-cost-hero { margin-bottom: 20px; overflow: hidden; border: 1px solid #d7e1ec; border-radius: 18px; background: #fff; box-shadow: 0 8px 24px rgba(16, 36, 62, .06); }
.vehicle-cost-heading { display: grid; grid-template-columns: minmax(300px, 1fr) 190px 170px; align-items: end; gap: 16px; padding: 24px 27px 20px; border-bottom: 1px solid #e2e8f0; }
.vehicle-cost-heading > div > span,
.vehicle-fuel-label { display: block; margin-bottom: 5px; color: #d94f0b; font-size: .74rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.vehicle-cost-heading h2 { margin: 0 0 5px; color: #10213c; font-size: 1.45rem; }
.vehicle-cost-heading p { margin: 0; color: #667085; }
.vehicle-cost-heading label { display: flex; flex-direction: column; gap: 6px; color: #344054; font-weight: 800; }
.vehicle-cost-heading select,
.vehicle-cost-heading input { width: 100%; padding: 11px 12px; border: 1px solid #cad6e3; border-radius: 10px; background: #fff; font: inherit; }
.vehicle-cost-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: #e1e7ef; }
.vehicle-cost-metrics article { padding: 20px; background: #fff; }
.vehicle-cost-metrics article.non-fuel { box-shadow: inset 0 4px 0 #f26a21; }
.vehicle-cost-metrics article.fuel { box-shadow: inset 0 4px 0 #2780b8; }
.vehicle-cost-metrics small,
.vehicle-cost-metrics span { display: block; color: #667085; }
.vehicle-cost-metrics small { font-weight: 800; }
.vehicle-cost-metrics strong { display: block; margin: 8px 0 4px; color: #10213c; font-size: 1.48rem; }
.vehicle-cost-metrics span { font-size: .8rem; }
.fleet-cost-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin-bottom: 16px; }
.fleet-cost-summary article { display: flex; min-height: 126px; flex-direction: column; padding: 18px; border: 1px solid #dce4ee; border-radius: 14px; background: #fff; box-shadow: inset 0 4px 0 #8d6bc4; }
.fleet-cost-summary article.repairs { box-shadow: inset 0 4px 0 #e49b16; }
.fleet-cost-summary article.running { box-shadow: inset 0 4px 0 #f26a21; }
.fleet-cost-summary article.fuel { box-shadow: inset 0 4px 0 #2780b8; }
.fleet-cost-summary span { color: #59677a; font-weight: 800; }
.fleet-cost-summary strong { margin: 8px 0 5px; color: #10213c; font-size: 1.55rem; }
.fleet-cost-summary small { margin-top: auto; color: #758196; }
.vehicle-purchase-hero { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 14px; padding: 24px; border: 1px solid #d9e1ec; border-radius: 16px; background: linear-gradient(135deg,#fff 0%,#f7f3ff 100%); }
.vehicle-purchase-hero h2 { margin: 4px 0; color: #10213c; }
.vehicle-purchase-hero p { margin: 0; color: #667085; }
.vehicle-purchase-hero > strong { color: #5c3f91; font-size: clamp(1.8rem,4vw,2.65rem); white-space: nowrap; }
.vehicle-purchase-metrics { grid-template-columns: repeat(5,minmax(0,1fr)); border: 1px solid #e1e7ef; }
.vehicle-purchase-metrics article.purchase { box-shadow: inset 0 4px 0 #8d6bc4; }
.vehicle-purchase-metrics article.repairs { box-shadow: inset 0 4px 0 #e49b16; }

.login-activity-panel { margin-top: 18px; }
.login-activity-metrics { margin: 0 0 14px; }
.login-filter-bar { grid-template-columns: minmax(220px, 2fr) minmax(180px, 1fr) auto; }

/* Operations efficiency overhaul */
.nav-count { margin-left: auto; min-width: 24px; padding: 2px 7px; border-radius: 99px; background: rgba(242,106,33,.16); color: #ff8b4b; font-size: .72rem; font-weight: 900; text-align: center; }
.topbar-quick-links .today-quick-link { display: inline-flex; align-items: center; gap: 7px; }
.today-quick-link span { min-width: 23px; padding: 2px 6px; border-radius: 99px; background: #fff; color: #c8440b; font-size: .72rem; text-align: center; }
.create-menu { position: relative; }
.create-menu > summary { display: flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: 11px; background: #f26a21; color: #fff; cursor: pointer; font-weight: 900; list-style: none; }
.create-menu > summary::-webkit-details-marker { display: none; }
.create-menu > div { position: absolute; z-index: 50; top: calc(100% + 10px); right: 0; display: grid; width: 390px; grid-template-columns: 1fr 1fr; gap: 6px; padding: 10px; border: 1px solid #dbe3ec; border-radius: 14px; background: #fff; box-shadow: 0 18px 45px rgba(15,31,54,.18); }
.create-menu > div a { display: flex; min-height: 70px; flex-direction: column; align-items: flex-start; justify-content: center; gap: 3px; padding: 11px 13px; border-radius: 10px; color: #10213c; text-decoration: none; }
.create-menu > div a:hover { background: #f5f7fa; }
.create-menu > div small { color: #667085; font-size: .74rem; font-weight: 600; }

.operations-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin: 0 0 16px; padding: 28px 30px; border: 1px solid #dce4ee; border-radius: 18px; background: linear-gradient(135deg,#fff 0%,#f6f8fb 70%,#fff2e9 100%); }
.operations-hero h1 { margin: 5px 0 6px; color: #10213c; font-size: clamp(1.8rem,3vw,2.55rem); }
.operations-hero p { margin: 0; color: #667085; }
.operations-hero-actions { display: flex; gap: 10px; }
.operations-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin-bottom: 16px; }
.operations-summary article { display: flex; min-height: 128px; flex-direction: column; padding: 19px; border: 1px solid #dce4ee; border-radius: 14px; background: #fff; box-shadow: inset 0 4px 0 #2780b8; }
.operations-summary article.warning { box-shadow: inset 0 4px 0 #e9a314; }
.operations-summary article.healthy { box-shadow: inset 0 4px 0 #209c58; }
.operations-summary span { color: #667085; font-weight: 800; }
.operations-summary strong { margin: 6px 0; color: #10213c; font-size: 1.8rem; }
.operations-summary a { margin-top: auto; color: #c84d11; font-size: .82rem; font-weight: 900; }
.operations-section { margin-bottom: 15px; padding: 0; overflow: hidden; }
.operations-section > summary { display: flex; min-height: 76px; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 22px; cursor: pointer; list-style: none; }
.operations-section > summary::-webkit-details-marker { display: none; }
.operations-section > summary > span:first-child { display: flex; flex-direction: column; gap: 3px; }
.operations-section > summary strong { color: #10213c; font-size: 1.15rem; }
.operations-section > summary small,.operations-section > summary > span:last-child { color: #667085; }
.operations-section[open] > summary { border-bottom: 1px solid #e2e7ef; background: #fbfcfe; }
.health-overall,.issue-count { padding: 7px 11px; border-radius: 99px; font-size: .78rem; font-weight: 900; }
.health-overall.healthy { background: #e9f8ef; color: #187b44; }
.health-overall.warning,.issue-count { background: #fff2e7; color: #a94012; }
.health-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; padding: 18px 22px 22px; }
.health-card { display: grid; grid-template-columns: auto 1fr auto; align-items: start; gap: 12px; padding: 15px; border: 1px solid #e1e7ef; border-radius: 12px; }
.health-card .health-dot { width: 11px; height: 11px; margin-top: 5px; border-radius: 50%; background: #e9a314; box-shadow: 0 0 0 4px #fff3d5; }
.health-card.ready .health-dot { background: #209c58; box-shadow: 0 0 0 4px #e8f8ef; }
.health-card.needs-setup .health-dot { background: #d44736; box-shadow: 0 0 0 4px #fdecea; }
.health-card strong { color: #10213c; }
.health-card p { margin: 4px 0 0; color: #667085; font-size: .82rem; }
.health-card a { color: #c84d11; font-size: .78rem; font-weight: 900; white-space: nowrap; }
.operations-two-column { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; padding: 20px 22px 24px; }
.subsection-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.subsection-head h3 { margin: 0; color: #10213c; }
.subsection-head a { font-size: .8rem; font-weight: 800; }
.favourite-add-row { display: grid; grid-template-columns: 120px 1fr auto; gap: 7px; margin-bottom: 11px; }
.favourite-add-row select { min-width: 0; }
.favourite-list,.recent-activity-list { display: grid; gap: 7px; }
.favourite-list > div { display: grid; grid-template-columns: 1fr auto; border: 1px solid #e1e7ef; border-radius: 11px; overflow: hidden; }
.favourite-list a,.recent-activity-list a { display: flex; flex-direction: column; gap: 2px; padding: 11px 13px; color: #10213c; text-decoration: none; }
.favourite-list a:hover,.recent-activity-list a:hover { background: #f7f9fc; }
.favourite-list small { color: #e45e18; font-weight: 900; text-transform: uppercase; }
.favourite-list span,.recent-activity-list span { color: #667085; font-size: .78rem; }
.favourite-list button { border: 0; border-left: 1px solid #e1e7ef; background: #fff; color: #8993a4; font-size: 1.2rem; cursor: pointer; }
.recent-activity-list a { border-bottom: 1px solid #e8ecf2; }
.data-quality-grid,.archive-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; padding: 18px 22px 22px; }
.data-quality-grid a,.archive-grid a { display: flex; min-height: 120px; flex-direction: column; padding: 16px; border: 1px solid #e1e7ef; border-radius: 12px; color: #10213c; text-decoration: none; }
.data-quality-grid a:hover,.archive-grid a:hover { border-color: #f4a26f; background: #fffaf6; }
.data-quality-grid strong,.archive-grid strong { color: #f0641d; font-size: 1.55rem; }
.data-quality-grid span,.archive-grid span { margin: 5px 0; font-weight: 900; }
.data-quality-grid small,.archive-grid small { margin-top: auto; color: #667085; }
.month-end-toolbar { display: grid; grid-template-columns: minmax(180px,260px) 1fr auto; align-items: end; gap: 16px; padding: 18px 22px 10px; }
.month-end-toolbar label span { display: block; margin-bottom: 5px; color: #526075; font-size: .78rem; font-weight: 900; }
.month-end-progress { height: 11px; margin-bottom: 14px; overflow: hidden; border-radius: 99px; background: #edf0f5; }
.month-end-progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#f26a21,#209c58); }
.month-end-toolbar > strong { margin-bottom: 8px; color: #10213c; }
.month-end-list { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 10px 22px 24px; }
.month-end-list label { display: flex; align-items: flex-start; gap: 11px; padding: 13px; border: 1px solid #e1e7ef; border-radius: 11px; cursor: pointer; }
.month-end-list label.completed { border-color: #bfe5cf; background: #f2fbf6; }
.month-end-list label input { margin-top: 3px; }
.month-end-list label span { display: flex; flex-direction: column; gap: 3px; }
.month-end-list label strong { color: #10213c; }
.month-end-list label small { color: #667085; }
.document-rule-form { display: grid; grid-template-columns: 1fr 1.2fr 1fr 180px auto auto auto; align-items: end; gap: 9px; padding: 18px 22px; }
.document-rule-form label > span { display: block; margin-bottom: 5px; color: #526075; font-size: .76rem; font-weight: 900; }
.document-rule-form .check-row { min-height: 44px; }
.rule-list { display: grid; gap: 8px; padding: 0 22px 22px; }
.rule-list article { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 13px 15px; border: 1px solid #e1e7ef; border-radius: 11px; }
.rule-list article > div:first-child { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 6px 10px; }
.rule-list article p { grid-column: 1 / -1; margin: 0; color: #667085; font-size: .82rem; }
.rule-list article > div:last-child { display: flex; gap: 6px; }
.bulk-action-bar { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; padding: 10px 12px; border: 1px solid #dce4ee; border-radius: 11px; background: #f7f9fc; }
.bulk-action-bar strong { color: #10213c; font-size: .82rem; white-space: nowrap; }
.bulk-action-bar select { min-width: 170px; max-width: 270px; }
.bulk-select-all { display: flex; align-items: center; gap: 7px; margin-right: auto; color: #38475d; font-weight: 800; }
.action-row-select { display: inline-flex; }
.select-column { width: 44px; text-align: center; }

@media (max-width: 1100px) {
    .operations-summary,.data-quality-grid,.archive-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .document-rule-form { grid-template-columns: 1fr 1fr; }
    .health-grid,.operations-two-column { grid-template-columns: 1fr; }
    .fleet-cost-summary,.vehicle-purchase-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 720px) {
    .operations-hero { align-items: stretch; flex-direction: column; padding: 20px; }
    .operations-hero-actions,.bulk-action-bar { align-items: stretch; flex-direction: column; }
    .operations-summary,.data-quality-grid,.archive-grid,.month-end-list { grid-template-columns: 1fr; }
    .health-grid,.data-quality-grid,.archive-grid,.operations-two-column,.month-end-list,.rule-list { padding-left: 14px; padding-right: 14px; }
    .month-end-toolbar { grid-template-columns: 1fr; align-items: stretch; padding-left: 14px; padding-right: 14px; }
    .month-end-progress { margin: 0; }
    .favourite-add-row,.document-rule-form { grid-template-columns: 1fr; }
    .rule-list article { align-items: stretch; flex-direction: column; }
    .create-menu > div { position: fixed; top: 82px; right: 12px; left: 12px; width: auto; grid-template-columns: 1fr; max-height: calc(100vh - 110px); overflow: auto; }
    .bulk-select-all { margin-right: 0; }
    .fleet-cost-summary,.vehicle-purchase-metrics { grid-template-columns: 1fr; }
    .vehicle-purchase-hero { align-items: flex-start; flex-direction: column; }
}
.vehicle-cost-entry-panel { overflow: hidden; }
.vehicle-cost-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; padding: 22px 25px; }
.vehicle-cost-form label { display: flex; flex-direction: column; gap: 7px; color: #344054; font-weight: 800; }
.vehicle-cost-form label.wide { grid-column: span 2; }
.vehicle-cost-form input,
.vehicle-cost-form select,
.vehicle-cost-form textarea { width: 100%; padding: 12px 13px; border: 1px solid #ccd7e3; border-radius: 10px; color: #17233b; background: #fff; font: inherit; }
.vehicle-cost-entry-actions { display: flex; align-items: center; gap: 12px; padding: 0 25px 24px; }
.vehicle-cost-entry-actions .secondary-link { margin-left: auto; }
.vehicle-cost-category-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; background: #e3e8ef; }
.vehicle-cost-category-grid > div { padding: 17px; background: #fff; }
.vehicle-cost-category-grid span,
.vehicle-cost-category-grid strong,
.vehicle-cost-category-grid small { display: block; }
.vehicle-cost-category-grid span { color: #536176; font-weight: 800; }
.vehicle-cost-category-grid strong { margin: 6px 0 2px; color: #10213c; font-size: 1.1rem; }
.vehicle-cost-category-grid small { color: #7a8699; }
.vehicle-cost-type { display: inline-block; padding: 5px 8px; border-radius: 999px; color: #8f390e; background: #fff0e5; font-size: .78rem; font-weight: 850; white-space: nowrap; }
.vehicle-cost-row-actions { display: flex; gap: 7px; }
.vehicle-fuel-separate-panel { border-left: 5px solid #2780b8; }
.vehicle-fuel-summary { display: flex; align-items: baseline; gap: 12px; padding: 16px 24px; color: #667085; background: #edf7fc; }
.vehicle-fuel-summary strong { color: #125b86; font-size: 1.5rem; }

@media (max-width: 1050px) {
    .vehicle-cost-heading { grid-template-columns: 1fr 1fr; }
    .vehicle-cost-heading > div:first-child { grid-column: 1 / -1; }
    .vehicle-cost-metrics { grid-template-columns: repeat(2, 1fr); }
    .vehicle-cost-category-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 700px) {
    .vehicle-cost-heading,
    .vehicle-cost-form { grid-template-columns: 1fr; padding-right: 18px; padding-left: 18px; }
    .vehicle-cost-heading > div:first-child,
    .vehicle-cost-form label.wide { grid-column: auto; }
    .vehicle-cost-metrics,
    .vehicle-cost-category-grid { grid-template-columns: 1fr 1fr; }
    .vehicle-cost-entry-actions { align-items: stretch; flex-direction: column; padding-right: 18px; padding-left: 18px; }
    .vehicle-cost-entry-actions .secondary-link { margin-left: 0; text-align: center; }
    .vehicle-cost-row-actions { flex-direction: column; }
}

@media (max-width: 460px) {
    .vehicle-cost-metrics,
    .vehicle-cost-category-grid { grid-template-columns: 1fr; }
}

/* Employee job-card delivery and digital acknowledgement */
.job-card-delivery-panel { margin: 24px 30px 0; padding: 20px; border: 1px solid #dbe3ec; border-radius: 14px; background: #f8fafc; }
.job-card-recipient { display: grid; grid-template-columns: minmax(260px, 1.4fr) minmax(210px, 1fr) auto; align-items: center; gap: 18px; padding: 15px 0; border-top: 1px solid #e1e7ef; }
.job-card-recipient:first-of-type { border-top: 0; }
.job-card-recipient-person { display: flex; align-items: center; gap: 12px; min-width: 0; }
.job-card-recipient-person > span:last-child { min-width: 0; }
.job-card-recipient-person strong,
.job-card-recipient-person small,
.job-card-recipient-state strong,
.job-card-recipient-state small { display: block; }
.job-card-recipient-person small { overflow: hidden; color: #667085; text-overflow: ellipsis; white-space: nowrap; }
.job-card-recipient-avatar { display: grid; place-items: center; flex: 0 0 42px; height: 42px; border-radius: 12px; color: #fff; font-weight: 800; background: #172033; }
.job-card-recipient-state { padding: 10px 12px; border-radius: 10px; }
.job-card-recipient-state.waiting { color: #7a4215; background: #fff3e8; }
.job-card-recipient-state.signed { color: #116c3d; background: #eaf8f0; }
.job-card-recipient-state small { margin-top: 2px; color: inherit; opacity: .82; }
.job-card-recipient-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; justify-content: flex-end; }
.job-card-recipient-actions .whatsapp { border-color: #21a366; color: #11703f; }
.job-card-email-result { flex-basis: 100%; max-width: 28rem; text-align: right; line-height: 1.35; }
.job-card-email-result.success { color: #167342; }
.job-card-email-result.error { color: #a43b24; }
.job-card-signature-history { margin: 0 30px 30px; border: 1px solid #dbe3ec; border-radius: 12px; overflow: hidden; }
.job-card-signature-history > summary { padding: 15px 18px; cursor: pointer; font-weight: 800; background: #f4f7fa; }
.job-card-signature-record { display: grid; grid-template-columns: 1fr auto auto auto; align-items: center; gap: 16px; padding: 14px 18px; border-top: 1px solid #e1e7ef; }
.job-card-signature-record strong,
.job-card-signature-record small { display: block; }
.job-card-signature-record small { color: #667085; }
.job-card-signature-record code { padding: 6px 8px; border-radius: 7px; color: #344054; background: #eef2f6; }
.status.warning { color: #8a4a12; background: #fff1df; }

.staff-job-card-list { display: grid; gap: 18px; padding-top: 10px; }
.staff-job-card-item { overflow: hidden; border: 1px solid #d7e0eb; border-radius: 16px; background: #fff; box-shadow: 0 8px 24px rgba(23,32,51,.05); }
.staff-job-card-summary { display: flex; align-items: flex-start; justify-content: space-between; gap: 22px; padding: 22px; background: linear-gradient(135deg, #f7f9fc, #eef3f8); }
.staff-job-card-number { color: #d95316; font-size: .78rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.staff-job-card-summary h3 { margin: 4px 0; color: #172033; font-size: 1.25rem; }
.staff-job-card-summary p { margin: 0; color: #5d6b82; }
.staff-job-card-dates { display: flex; flex-direction: column; align-items: flex-end; gap: 5px; text-align: right; }
.staff-job-card-dates small { color: #667085; font-weight: 700; }
.staff-job-card-actions { display: flex; align-items: center; gap: 14px; padding: 14px 22px; border-top: 1px solid #e1e7ef; border-bottom: 1px solid #e1e7ef; }
.staff-job-card-actions span { color: #667085; font-size: .9rem; }
.staff-job-card-awaiting,
.staff-job-card-confirmed { display: flex; align-items: center; gap: 13px; margin: 18px 22px 22px; padding: 16px; border-radius: 12px; }
.staff-job-card-awaiting { color: #774215; background: #fff3e8; }
.staff-job-card-confirmed { color: #116c3d; background: #e8f8ef; }
.staff-job-card-confirmed > span { display: grid; place-items: center; flex: 0 0 36px; height: 36px; border-radius: 50%; color: #fff; font-size: 1.2rem; font-weight: 900; background: #17894d; }
.staff-job-card-awaiting strong,
.staff-job-card-awaiting span,
.staff-job-card-confirmed strong,
.staff-job-card-confirmed small { display: block; }
.staff-job-card-signature { display: grid; gap: 15px; margin: 18px 22px 22px; padding: 20px; border: 1px solid #f1c48d; border-radius: 13px; background: #fffaf3; }
.staff-job-card-signature p { margin: 4px 0 0; color: #667085; }
.staff-job-card-signature > label:not(.staff-job-card-declaration) { display: grid; gap: 7px; font-weight: 800; }
.staff-job-card-signature input[type="text"] { width: min(100%, 520px); }
.staff-job-card-declaration { display: grid; grid-template-columns: auto 1fr; align-items: flex-start; gap: 11px; padding: 14px; border-radius: 10px; color: #344054; background: #fff; }
.staff-job-card-declaration input { margin-top: 3px; }
.staff-job-card-signature > button { justify-self: start; }

@media (max-width: 800px) {
    .job-card-delivery-panel { margin: 20px; }
    .job-card-recipient { grid-template-columns: 1fr; }
    .job-card-recipient-actions { width: 100%; }
    .job-card-recipient-actions button { flex: 1; }
    .job-card-email-result { max-width: none; text-align: left; }
    .job-card-signature-history { margin: 0 20px 20px; }
    .job-card-signature-record { grid-template-columns: 1fr; gap: 8px; }
    .staff-job-card-summary { flex-direction: column; }
    .staff-job-card-dates { align-items: flex-start; text-align: left; }
    .staff-job-card-actions { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 520px) {
    .topbar-account { display: flex; grid-template-columns: none; }
    .topbar-account .account-switch-link { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .profile-avatar { display: none; }
    .logout-link { min-height: 38px; }
    .dashboard-hero-actions { grid-template-columns: 1fr; }
    .office-action-grid { grid-template-columns: 1fr 1fr; }
    .office-action-card > strong { font-size: 23px; }
    .login-shell { padding: 18px; }
}

/* Simple employee workspace */
.staff-home-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; margin-bottom: 22px; }
.staff-home-head h1 { margin: 4px 0 3px; font-size: clamp(2rem, 4vw, 3rem); letter-spacing: -.04em; }
.staff-home-head p { margin: 0; color: #667085; }
.staff-home-eyebrow,
.staff-home-section-head > div > span { color: #d84b0b; font-size: .75rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.staff-home-notice { position: sticky; top: 12px; z-index: 20; margin-bottom: 18px; }
.staff-home-overview { display: grid; grid-template-columns: minmax(280px, 2fr) repeat(3, minmax(150px, 1fr)); gap: 12px; margin-bottom: 16px; }
.staff-home-overview > div { display: flex; min-height: 116px; flex-direction: column; justify-content: center; padding: 20px; border: 1px solid #dbe3ec; border-radius: 16px; background: #fff; box-shadow: 0 8px 24px rgba(16, 32, 57, .05); }
.staff-home-overview .staff-home-next { border-color: #ffc79f; background: linear-gradient(135deg, #fff7f1, #fff); }
.staff-home-overview small { margin-bottom: 6px; color: #667085; font-weight: 800; }
.staff-home-overview strong { color: #14213a; font-size: 1.3rem; }
.staff-home-overview span { margin-top: 5px; color: #667085; font-size: .9rem; }
.staff-home-actions { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; margin-bottom: 26px; }
.staff-home-actions a { display: grid; min-height: 104px; align-content: center; padding: 14px; color: #14213a; text-decoration: none; border: 1px solid #dbe3ec; border-radius: 14px; background: #f7f9fc; transition: border-color .16s ease, transform .16s ease, background .16s ease; }
.staff-home-actions a:hover { transform: translateY(-2px); border-color: #f46a24; background: #fff7f1; }
.staff-home-actions a > span { color: #f46a24; font-size: .7rem; font-weight: 900; }
.staff-home-actions a strong { margin: 5px 0 2px; }
.staff-home-actions a small { color: #667085; line-height: 1.35; }
.staff-home-section { scroll-margin-top: 20px; margin-bottom: 22px; padding: 26px; border: 1px solid #dbe3ec; border-radius: 18px; background: #fff; box-shadow: 0 10px 30px rgba(16, 32, 57, .055); }
.staff-home-section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.staff-home-section-head h2 { margin: 3px 0 2px; color: #14213a; font-size: 1.55rem; }
.staff-home-section-head p { margin: 0; color: #667085; }
.staff-simple-empty { display: flex; flex-direction: column; padding: 22px; border-radius: 12px; background: #f5f7fa; }
.staff-simple-empty span { margin-top: 4px; color: #667085; }
.staff-all-confirmed { color: #116c3d; background: #eaf8f0; }
.staff-confirmed-job-cards { margin-top: 18px; border: 1px solid #dbe3ec; border-radius: 12px; overflow: hidden; }
.staff-confirmed-job-cards > summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 16px; cursor: pointer; color: #344054; font-weight: 800; background: #f5f7fa; }
.staff-confirmed-job-cards > summary small { color: #667085; font-weight: 700; }
.staff-confirmed-job-cards > div > article { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 16px; padding: 13px 16px; border-top: 1px solid #e6ebf1; }
.staff-confirmed-job-cards article > span { display: grid; }
.staff-confirmed-job-cards article > span:nth-child(2) { color: #116c3d; text-align: right; }
.staff-confirmed-job-cards article small { color: #667085; }
.staff-upcoming-list { display: grid; gap: 10px; }
.staff-upcoming-list article { display: grid; grid-template-columns: 62px minmax(0, 1fr) auto; align-items: center; gap: 16px; padding: 14px 16px; border: 1px solid #e2e7ee; border-radius: 13px; }
.staff-upcoming-date { display: grid; justify-items: center; padding: 8px; border-radius: 10px; color: #fff; background: #14213a; }
.staff-upcoming-date strong { font-size: 1.35rem; line-height: 1; }
.staff-upcoming-date span { font-size: .72rem; font-weight: 900; text-transform: uppercase; }
.staff-upcoming-copy { display: grid; min-width: 0; gap: 2px; }
.staff-upcoming-copy small { color: #d84b0b; font-weight: 900; }
.staff-upcoming-copy strong { color: #14213a; font-size: 1.05rem; }
.staff-upcoming-copy span { overflow: hidden; color: #667085; text-overflow: ellipsis; white-space: nowrap; }
.staff-simple-job-cards { padding-top: 0; }
.staff-home-two-column { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.staff-home-two-column .staff-home-section { min-width: 0; }
.staff-compact-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.staff-upload-choice { display: flex; flex-wrap: wrap; gap: 10px; margin: 12px 0; }
.staff-upload-choice label { display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.staff-upload-choice input[type="file"] { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.staff-file-ready { padding: 10px 12px; border-radius: 9px; color: #116c3d; background: #eaf8f0; }
.staff-mini-history { margin-top: 22px; padding-top: 16px; border-top: 1px solid #e2e7ee; }
.staff-mini-history h3 { margin-top: 0; }
.staff-mini-history > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 0; border-top: 1px solid #eef1f5; }
.staff-mini-history > div > span:first-child { display: grid; }
.staff-mini-history small { color: #667085; }
.staff-vehicle-list { display: grid; gap: 16px; }
.staff-vehicle-list > article { padding: 20px; border: 1px solid #dbe3ec; border-radius: 14px; background: #f9fafc; }
.staff-vehicle-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 16px; }
.staff-vehicle-title > div { display: grid; }
.staff-vehicle-title > div:first-child span { color: #d84b0b; font-weight: 900; }
.staff-vehicle-title > div:first-child strong { font-size: 1.2rem; }
.staff-vehicle-title > div:last-child { text-align: right; }
.staff-vehicle-title small { color: #667085; }
.staff-mileage-entry { display: flex; align-items: flex-end; gap: 12px; max-width: 520px; }
.staff-mileage-entry label { flex: 1; margin: 0; }
.staff-mileage-history { display: grid; margin-top: 18px; border-top: 1px solid #dbe3ec; }
.staff-mileage-history > div { display: grid; grid-template-columns: 110px 70px 150px 1fr; gap: 12px; padding: 9px 0; border-bottom: 1px solid #e8edf3; }
.staff-mileage-history small { color: #667085; text-align: right; }
.details-columns > div { min-width: 0; padding: 4px; }
.staff-app-accordions { display: grid; gap: 12px; margin-top: 20px; }
.staff-app-accordion { overflow: hidden; scroll-margin-top: 18px; border: 1px solid #d9e2ec; border-radius: 16px; background: #fff; box-shadow: 0 7px 22px rgba(16, 32, 57, .05); }
.staff-app-accordion > summary { display: grid; grid-template-columns: 46px minmax(0, 1fr) auto 22px; align-items: center; gap: 14px; min-height: 78px; padding: 13px 18px; cursor: pointer; list-style: none; color: #14213a; user-select: none; transition: background .16s ease, border-color .16s ease; }
.staff-app-accordion > summary::-webkit-details-marker { display: none; }
.staff-app-accordion > summary:hover { background: #f8fafc; }
.staff-app-accordion > summary:focus-visible { outline: 3px solid rgba(242, 106, 33, .28); outline-offset: -3px; }
.staff-app-accordion[open] { border-color: #efb38c; box-shadow: 0 10px 28px rgba(173, 72, 17, .08); }
.staff-app-accordion[open] > summary { border-bottom: 1px solid #e3e9f0; background: #fff8f3; }
.staff-accordion-number { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 11px; color: #fff; background: #17233b; font-size: .76rem; font-weight: 900; }
.staff-app-accordion[open] .staff-accordion-number { background: #f26a21; }
.staff-accordion-copy { display: grid; min-width: 0; gap: 2px; }
.staff-accordion-copy strong { font-size: 1.06rem; }
.staff-accordion-copy small { overflow: hidden; color: #667085; text-overflow: ellipsis; white-space: nowrap; }
.staff-accordion-count { padding: 5px 9px; border-radius: 999px; color: #47566d; background: #edf2f7; font-size: .76rem; font-weight: 850; white-space: nowrap; }
.staff-accordion-count.attention { color: #9b3e0e; background: #ffeadc; }
.staff-accordion-chevron { width: 10px; height: 10px; border-right: 2px solid #526177; border-bottom: 2px solid #526177; transform: rotate(45deg) translate(-2px, -2px); transition: transform .18s ease; }
.staff-app-accordion[open] .staff-accordion-chevron { transform: rotate(225deg) translate(-1px, -1px); }
.staff-accordion-body { padding: 22px; }
.staff-accordion-body > :first-child { margin-top: 0; }
.staff-accordion-body > :last-child { margin-bottom: 0; }

@media (max-width: 1100px) {
    .staff-home-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .staff-home-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 780px) {
    .staff-home-head { align-items: center; }
    .staff-home-overview,
    .staff-home-two-column { grid-template-columns: 1fr; }
    .staff-home-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .staff-home-section { padding: 20px; }
    .staff-upcoming-list article { grid-template-columns: 54px minmax(0, 1fr); }
    .staff-upcoming-list article button,
    .staff-upcoming-list article > a { grid-column: 1 / -1; width: 100%; }
    .staff-compact-fields { grid-template-columns: 1fr; }
    .staff-mileage-history > div { grid-template-columns: 1fr 1fr; }
    .staff-mileage-history small { text-align: left; }
    .staff-confirmed-job-cards > div > article { grid-template-columns: 1fr auto; }
    .staff-confirmed-job-cards article > span:nth-child(2) { text-align: left; }
    .staff-confirmed-job-cards article button,
    .staff-confirmed-job-cards article > a { grid-column: 1 / -1; width: 100%; }
}

@media (max-width: 480px) {
    .staff-home-actions { grid-template-columns: 1fr; }
    .staff-home-actions a { min-height: 82px; }
    .staff-home-overview { grid-template-columns: 1fr; }
    .staff-mileage-entry { align-items: stretch; flex-direction: column; }
    .staff-mileage-entry button { width: 100%; }
    .staff-app-accordion > summary { grid-template-columns: 40px minmax(0, 1fr) 18px; gap: 11px; min-height: 70px; padding: 11px 13px; }
    .staff-accordion-number { width: 36px; height: 36px; }
    .staff-accordion-count { grid-column: 2; justify-self: start; margin-top: 2px; }
    .staff-accordion-chevron { grid-column: 3; grid-row: 1 / span 2; }
    .staff-accordion-copy small { white-space: normal; }
    .staff-accordion-body { padding: 16px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
/* Employee job-card work pack */
.job-work-pack {
    grid-column: 1 / -1;
    padding: 0;
    overflow: hidden;
    border: 1px solid #dbe3ec;
}

.job-work-pack-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    padding: 28px 30px;
    color: #fff;
    background: linear-gradient(135deg, #13213a 0%, #1c3155 72%, #253f69 100%);
}

.job-work-pack-head h2 { margin: 5px 0 7px; color: #fff; font-size: clamp(1.45rem, 2vw, 2rem); }
.job-work-pack-head p { margin: 0; max-width: 760px; color: #d9e4f2; }
.job-work-pack-kicker { color: #ff9a5c; font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }

.job-work-pack-status {
    min-width: 230px;
    padding: 14px 16px;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 14px;
    background: rgba(255,255,255,.08);
}

.job-work-pack-status small,
.job-work-pack-status span { display: block; color: #cfdaea; }
.job-work-pack-status strong { display: block; margin: 3px 0; color: #fff; }
.job-work-pack-status.reviewed { border-color: rgba(63, 211, 129, .65); background: rgba(24, 154, 83, .2); }
.job-work-pack-status.draft { border-color: rgba(255, 171, 91, .65); }

.job-work-pack-source {
    display: grid;
    grid-template-columns: 2fr repeat(3, 1fr);
    gap: 1px;
    background: #dbe3ec;
    border-bottom: 1px solid #dbe3ec;
}

.job-work-pack-source > div { padding: 15px 18px; background: #f8fafc; }
.job-work-pack-source small,
.job-work-pack-source strong { display: block; }
.job-work-pack-source small { margin-bottom: 4px; color: #667085; font-weight: 700; }
.job-work-pack-source strong { color: #172033; }

.job-work-pack-warning {
    display: grid;
    grid-template-columns: minmax(210px, .7fr) 2fr;
    gap: 16px;
    margin: 22px 30px 0;
    padding: 16px 18px;
    border: 1px solid #f4c892;
    border-left: 5px solid #f26a21;
    border-radius: 12px;
    color: #6f3a10;
    background: #fff8ed;
}

.job-work-pack-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    padding: 24px 30px;
}

.job-work-pack-field { display: flex; flex-direction: column; gap: 9px; }
.job-work-pack-field.wide { grid-column: 1 / -1; }
.job-work-pack-field > span { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.job-work-pack-field small { color: #667085; font-weight: 500; text-align: right; }
.job-work-pack-field textarea {
    width: 100%;
    min-height: 150px;
    padding: 14px 15px;
    resize: vertical;
    border: 1px solid #cfd9e6;
    border-radius: 12px;
    color: #172033;
    background: #fff;
    line-height: 1.48;
}
.job-work-pack-field textarea:focus { outline: 3px solid rgba(242,106,33,.16); border-color: #f26a21; }

.job-work-pack-guidance-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin: 0 30px;
    padding: 15px 18px;
    border-radius: 12px;
    color: #344054;
    background: #eef3f8;
}
.job-work-pack-guidance-links a { color: #1a57a8; font-weight: 700; }

.job-work-pack-actions { display: flex; flex-wrap: wrap; gap: 12px; padding: 24px 30px 30px; }
.job-work-pack-actions .job-work-pack-review { margin-left: auto; border-color: #15864b; color: #116c3d; }

@media (max-width: 800px) {
    .job-work-pack-head { flex-direction: column; padding: 22px 20px; }
    .job-work-pack-status { width: 100%; min-width: 0; }
    .job-work-pack-source { grid-template-columns: repeat(2, 1fr); }
    .job-work-pack-warning { grid-template-columns: 1fr; margin: 18px 20px 0; }
    .job-work-pack-grid { grid-template-columns: 1fr; padding: 20px; }
    .job-work-pack-field.wide { grid-column: auto; }
    .job-work-pack-field > span { display: block; }
    .job-work-pack-field small { display: block; margin-top: 3px; text-align: left; }
    .job-work-pack-guidance-links { margin: 0 20px; }
    .job-work-pack-actions { padding: 20px; }
    .job-work-pack-actions .job-work-pack-review { margin-left: 0; }
}
/* Per-device web-push setup */
.push-setup-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 28px;
    align-items: center;
    margin-bottom: 18px;
    padding: 24px 26px;
    border-left: 5px solid #ff641f;
}

.push-setup-copy h2 { margin: 4px 0 6px; font-size: 1.25rem; }
.push-setup-copy p { margin: 0; color: #61708a; max-width: 760px; }
.push-setup-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; flex-wrap: wrap; max-width: 520px; }
.push-state-pill { display: inline-flex; align-items: center; padding: 9px 13px; border: 1px solid #d8e0eb; border-radius: 999px; background: #f5f7fa; color: #4d5d76; font-weight: 800; font-size: .85rem; }
.push-state-pill.enabled { border-color: #9ddbb9; background: #edf9f2; color: #167a43; }
.push-state-pill.unavailable { border-color: #f0c3c3; background: #fff2f2; color: #a62929; }
.push-install-steps { margin: 15px 0 0; padding-left: 22px; color: #34435a; }
.push-install-steps li { margin: 5px 0; }
.push-result { margin-top: 12px; padding: 10px 13px; border-radius: 10px; background: #edf9f2; color: #167a43; font-weight: 700; }
.push-result.error { background: #fff2f2; color: #a62929; }

@media (max-width: 800px) {
    .push-setup-panel { grid-template-columns: 1fr; padding: 20px; gap: 18px; }
    .push-setup-actions { justify-content: flex-start; max-width: none; }
    .push-setup-actions .primary, .push-setup-actions .secondary { width: 100%; }
}

/* Website and HomeCare analytics */
.analytics-head{align-items:flex-end}.analytics-range{display:flex;gap:.45rem;padding:.35rem;border:1px solid #dbe3ee;border-radius:14px;background:#fff}.analytics-range button{border:0;background:transparent;color:#52617a;padding:.65rem .9rem;border-radius:10px;font-weight:800;cursor:pointer}.analytics-range button.active{background:#13213a;color:#fff}.analytics-note{display:flex;gap:.7rem;align-items:center;margin:0 0 1rem;padding:.9rem 1rem;border:1px solid #cfe4df;border-radius:14px;background:#f0faf7;color:#24453d}.analytics-note strong{color:#08745d}.analytics-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.analytics-stat-grid article{padding:1.2rem;border:1px solid #dbe3ee;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(15,31,55,.05)}.analytics-stat-grid article.homecare{border-top:4px solid #fb641e}.analytics-stat-grid span,.analytics-stat-grid small{display:block;color:#64728a}.analytics-stat-grid strong{display:block;margin:.3rem 0;font-size:2rem;line-height:1;color:#10203a}.analytics-columns{display:grid;grid-template-columns:1.12fr .88fr;gap:1rem;margin-bottom:1rem}.analytics-panel,.analytics-empty{padding:1.25rem;border:1px solid #dbe3ee;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(15,31,55,.04)}.analytics-empty{text-align:center;padding:3rem 1rem}.analytics-empty strong{font-size:1.25rem}.analytics-empty p{color:#64728a}.analytics-panel-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:.8rem}.analytics-panel-head span{font-size:.76rem;letter-spacing:.12em;color:#fb641e;font-weight:900}.analytics-panel-head h2{margin:.15rem 0 0;font-size:1.25rem}.analytics-panel-head small{color:#738096}.analytics-page-list article,.analytics-action-list article{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 0;border-top:1px solid #e8edf4}.analytics-page-list article>div:first-child,.analytics-action-list article>div{min-width:0}.analytics-page-list strong,.analytics-action-list strong{display:block;margin:.25rem 0;color:#10203a}.analytics-page-list small,.analytics-action-list small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#738096}.analytics-area{display:inline-flex;padding:.18rem .45rem;border-radius:999px;font-size:.68rem!important;letter-spacing:.04em!important}.analytics-area.website{color:#315987!important;background:#edf5ff}.analytics-area.homecare{color:#a83b09!important;background:#fff0e8}.analytics-numbers{display:grid!important;grid-template-columns:repeat(3,2.4rem);gap:.25rem;text-align:center;flex:0 0 auto}.analytics-numbers strong,.analytics-numbers span{margin:0;padding:.35rem 0;border-radius:8px;background:#f3f6fa;font-size:.9rem!important;color:#10203a!important}.analytics-action-list article>b{display:grid;place-items:center;min-width:2.3rem;height:2.3rem;border-radius:50%;background:#fff0e8;color:#b5410a}.analytics-panel-empty{padding:2rem 0;color:#738096}.analytics-sources{margin-bottom:2rem}.analytics-source-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem}.analytics-source-grid article{display:flex;justify-content:space-between;gap:.5rem;padding:.85rem;border-radius:12px;background:#f4f7fb}.analytics-source-grid span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#4e5d74}.analytics-source-grid strong{color:#10203a}
@media(max-width:1000px){.analytics-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-columns{grid-template-columns:1fr}.analytics-source-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.analytics-head{align-items:stretch}.analytics-range{width:100%}.analytics-range button{flex:1}.analytics-note{align-items:flex-start;flex-direction:column}.analytics-stat-grid{grid-template-columns:1fr 1fr;gap:.65rem}.analytics-stat-grid article{padding:1rem}.analytics-stat-grid strong{font-size:1.65rem}.analytics-source-grid{grid-template-columns:1fr}.analytics-panel-head{align-items:flex-start;flex-direction:column}.analytics-page-list article,.analytics-action-list article{align-items:flex-start}}

/* Operations team calendar */
.ops-calendar-page-head{align-items:flex-end}.ops-calendar-eyebrow{display:block;margin-bottom:5px;color:#e65312;font-size:.75rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase}.ops-calendar-head-actions{display:flex;gap:9px;flex-wrap:wrap}.ops-calendar-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px}.ops-calendar-summary article{padding:17px 19px;border:1px solid #dbe3ed;border-radius:15px;background:#fff;box-shadow:0 6px 18px rgba(16,32,58,.045)}.ops-calendar-summary span,.ops-calendar-summary small{display:block;color:#68768c}.ops-calendar-summary span{font-size:.8rem;font-weight:850}.ops-calendar-summary strong{display:block;margin:5px 0 3px;color:#10203a;font-size:1.75rem;line-height:1}.ops-calendar-summary article.warning{border-color:#f1b3ae;background:#fff7f6}.ops-calendar-summary article.warning strong{color:#ba2e28}.ops-calendar-summary article.clear{border-color:#b8dec9;background:#f5fcf8}.ops-calendar-summary article.clear strong{color:#17804a}.ops-calendar-shell{padding:0;overflow:hidden}.ops-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid #e3e9f1}.ops-calendar-navigation,.ops-calendar-tools{display:flex;align-items:center;gap:8px}.icon-button{display:grid;place-items:center;width:39px;height:39px;padding:0;border:1px solid #ced8e5;border-radius:10px;background:#fff;color:#10203a;font-size:1.1rem;font-weight:900;cursor:pointer}.icon-button:hover{border-color:#fb641e;color:#d94f0b;background:#fff7f1}.ops-calendar-period{display:flex;flex-direction:column;min-width:205px;margin-left:5px}.ops-calendar-period strong{color:#10203a;font-size:1.05rem}.ops-calendar-period small{color:#748197}.ops-calendar-date-jump{width:150px!important;margin:0!important;padding:9px 11px!important}.segmented-control{display:flex;padding:3px;border:1px solid #d8e1ec;border-radius:11px;background:#f3f6f9}.segmented-control button{padding:8px 12px;border:0;border-radius:8px;background:transparent;color:#5b687e;font-weight:850;cursor:pointer}.segmented-control button.active{color:#fff;background:#10203a;box-shadow:0 2px 7px rgba(16,32,58,.18)}.ops-calendar-filter-row{display:flex;align-items:flex-end;gap:15px;padding:14px 20px;border-bottom:1px solid #e5eaf1;background:#f8fafc}.ops-calendar-staff-search{flex:0 0 225px;margin:0!important}.ops-calendar-staff-search span{display:block;margin-bottom:5px;color:#4c5b72;font-size:.72rem;font-weight:850}.ops-calendar-staff-search input{margin:0!important;padding:9px 11px!important}.ops-calendar-filters{display:flex;gap:6px;overflow-x:auto;padding-bottom:1px}.ops-filter{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;padding:8px 10px;border:1px solid #d8e1eb;border-radius:999px;background:#fff;color:#4e5c71;font-size:.78rem;font-weight:800;cursor:pointer}.ops-filter i{width:8px;height:8px;border-radius:50%;background:#8792a4}.ops-filter strong{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#eef2f6;color:#425067;font-size:.68rem}.ops-filter.active{border-color:#10203a;color:#fff;background:#10203a}.ops-filter.active strong{color:#10203a;background:#fff}.ops-filter.jobs i{background:#2878c8}.ops-filter.appointments i{background:#f26a21}.ops-filter.holidays i{background:#27935b}.ops-filter.college i{background:#8256ce}.ops-filter.vehicles i{background:#bf7a10}.ops-calendar-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:11px 20px;border-bottom:1px solid #e4eaf1;color:#5b687c;background:#fff;font-size:.73rem;font-weight:750}.ops-calendar-legend span{display:inline-flex;align-items:center;gap:6px}.ops-calendar-legend i{width:9px;height:9px;border-radius:3px}.ops-calendar-legend i.job{background:#2878c8}.ops-calendar-legend i.appointment{background:#f26a21}.ops-calendar-legend i.holiday{background:#27935b}.ops-calendar-legend i.college{background:#8256ce}.ops-calendar-legend i.vehicle{background:#bf7a10}.ops-calendar-legend .legend-note{margin-left:auto;color:#9b3c35}.team-week-scroll{overflow:auto;max-height:68vh}.team-week-board{display:grid;grid-template-columns:210px repeat(7,minmax(165px,1fr));min-width:1370px;background:#dfe6ee;gap:1px}.team-week-corner,.team-week-day-head{position:sticky;top:0;z-index:4;min-height:72px;border:0;background:#f3f6f9}.team-week-corner{left:0;z-index:6;display:flex;flex-direction:column;justify-content:center;padding:12px 16px}.team-week-corner strong{color:#10203a}.team-week-corner small{color:#748197}.team-week-day-head{display:flex;align-items:center;justify-content:center;flex-direction:column;color:#42516a;cursor:pointer}.team-week-day-head span{font-size:.72rem;font-weight:900;text-transform:uppercase}.team-week-day-head strong{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;font-size:1rem}.team-week-day-head small{color:#7c889a;font-size:.67rem}.team-week-day-head.today strong{color:#fff;background:#fb641e}.team-week-day-head.selected{box-shadow:inset 0 -3px #fb641e;background:#fff8f3}.team-week-person{position:sticky;left:0;z-index:3;display:flex;align-items:flex-start;gap:9px;min-height:116px;padding:13px 12px;background:#fff}.team-week-person.unassigned{background:#fff8f1}.team-avatar{display:grid;place-items:center;flex:0 0 34px;height:34px;border-radius:10px;color:#fff;background:#10203a;font-size:.72rem;font-weight:900}.team-week-person.unassigned .team-avatar{color:#9c3b0e;background:#ffe4d3}.team-week-person strong,.team-week-person small{display:block}.team-week-person strong{color:#10203a;font-size:.8rem;line-height:1.25}.team-week-person small{margin-top:3px;color:#728097;font-size:.69rem}.team-week-cell{position:relative;min-height:116px;padding:8px;background:#fff}.team-week-cell.today{background:#fffaf6}.team-week-cell.unassigned{background:#fffdf9}.team-week-cell.unavailable{background:repeating-linear-gradient(135deg,#faf8ff,#faf8ff 8px,#f5f1fc 8px,#f5f1fc 16px)}.team-week-cell.clash{box-shadow:inset 0 0 0 2px #dc4d45;background:#fff5f4}.team-cell-load{display:flex;align-items:center;justify-content:space-between;min-height:23px;margin-bottom:5px}.team-cell-load>span{color:#68768b;font-size:.65rem;font-weight:850}.team-cell-load>span.available{color:#2c8355}.team-cell-load>span.over{color:#ba2e28}.team-cell-load button,.team-cell-add{display:grid;place-items:center;width:23px;height:23px;padding:0;border:0;border-radius:7px;color:#7c899b;background:#edf1f5;font-weight:900;cursor:pointer}.team-cell-load button:hover,.team-cell-add:hover{color:#fff;background:#fb641e}.team-cell-add{position:absolute;right:8px;top:8px}.team-calendar-card{display:flex;width:100%;min-width:0;flex-direction:column;gap:2px;margin-top:5px;padding:7px 8px;border:1px solid transparent;border-left:4px solid #758399;border-radius:7px;color:#10203a;background:#f2f5f8;font:inherit;text-align:left;text-decoration:none;cursor:pointer}.team-calendar-card:hover{filter:brightness(.98);box-shadow:0 2px 7px rgba(16,32,58,.1)}.team-calendar-card span{font-size:.61rem;font-weight:900;text-transform:uppercase}.team-calendar-card strong{overflow:hidden;font-size:.72rem;line-height:1.22;text-overflow:ellipsis}.team-calendar-card small{overflow:hidden;color:#637087;font-size:.63rem;text-overflow:ellipsis;white-space:nowrap}.team-calendar-card.calendar-job,.ops-agenda-item.calendar-job{border-left-color:#2878c8;background:#edf5ff}.team-calendar-card.calendar-appointment,.ops-agenda-item.calendar-appointment{border-left-color:#f26a21;background:#fff4ea}.team-calendar-card.calendar-holiday,.ops-agenda-item.calendar-holiday{border-left-color:#27935b;background:#edf9f2}.team-calendar-card.calendar-college,.ops-agenda-item.calendar-college{border-left-color:#8256ce;background:#f3effc}.team-calendar-card.calendar-vehicle,.ops-agenda-item.calendar-vehicle{border-left-color:#bf7a10;background:#fff8e8}.ops-month-grid{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));gap:1px;min-width:840px;background:#dfe6ee}.ops-month-weekday{padding:10px;color:#526078;background:#f3f6f9;font-size:.72rem;font-weight:900;text-align:center;text-transform:uppercase}.ops-month-day{display:flex;min-height:118px;flex-direction:column;align-items:flex-start;gap:4px;padding:9px;border:0;color:#10203a;background:#fff;text-align:left;cursor:pointer}.ops-month-day:hover{background:#fff8f3}.ops-month-day.outside{color:#a2abb9;background:#f8fafc}.ops-month-day.today>strong{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;color:#fff;background:#fb641e}.ops-month-day.selected{box-shadow:inset 0 0 0 2px #fb641e}.month-count{display:block;width:100%;padding:3px 5px;border-radius:5px;font-size:.65rem;font-weight:800}.month-count.job{color:#215b96;background:#e5f1ff}.month-count.holiday{color:#1f7647;background:#e5f6ec}.month-count.college{color:#623aa3;background:#eee8fa}.month-count.appointment{color:#9b430f;background:#fff0e4}.ops-day-agenda{margin-top:16px;padding:0;overflow:hidden}.ops-day-agenda-head{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:19px 22px;border-bottom:1px solid #e3e9f1}.ops-day-agenda-head h2{margin:1px 0 3px;color:#10203a;font-size:1.3rem}.ops-day-agenda-head p{margin:0;color:#718096}.ops-calendar-empty{display:flex;flex-direction:column;align-items:center;padding:34px;color:#778397}.ops-calendar-empty strong{color:#35445b}.ops-agenda-list{padding:0 22px}.ops-agenda-item{display:grid;grid-template-columns:125px minmax(0,1fr) 165px 90px;align-items:center;gap:15px;margin:10px 0;padding:12px 14px;border-left:5px solid #758399;border-radius:10px}.ops-agenda-time strong,.ops-agenda-time span,.ops-agenda-main strong,.ops-agenda-main span,.ops-agenda-main small{display:block}.ops-agenda-time strong{color:#10203a;font-size:.78rem}.ops-agenda-time span{margin-top:3px;color:#6f7b8e;font-size:.66rem;font-weight:850;text-transform:uppercase}.ops-agenda-main strong{color:#10203a}.ops-agenda-main span,.ops-agenda-main small{overflow:hidden;margin-top:2px;color:#68758a;font-size:.75rem;text-overflow:ellipsis;white-space:nowrap}.ops-agenda-person{color:#34445b;font-size:.78rem;font-weight:800}.ops-appointment-form{margin-top:16px;padding:22px}.ops-appointment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.ops-appointment-grid label{display:flex;flex-direction:column;gap:6px;color:#35455c;font-size:.78rem;font-weight:850}.ops-appointment-grid label.wide{grid-column:1/-1}.ops-appointment-grid input,.ops-appointment-grid select,.ops-appointment-grid textarea{margin:0}.ops-repeat-choice span{display:flex;align-items:center;gap:8px;min-height:45px;padding:0 11px;border:1px solid #ccd7e4;border-radius:9px;background:#fff}.ops-repeat-choice input{width:auto!important}.calendar-upcoming-disclosure{margin-top:16px}
@media(max-width:1050px){.ops-calendar-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-calendar-toolbar,.ops-calendar-filter-row{align-items:stretch;flex-direction:column}.ops-calendar-tools{justify-content:space-between}.ops-calendar-staff-search{flex-basis:auto;width:100%}.ops-agenda-item{grid-template-columns:110px minmax(0,1fr) 120px}.ops-agenda-action{grid-column:3}.ops-agenda-person{grid-column:3;grid-row:1}}
@media(max-width:650px){.ops-calendar-page-head{align-items:stretch}.ops-calendar-head-actions>*{flex:1}.ops-calendar-summary{grid-template-columns:1fr 1fr;gap:8px}.ops-calendar-summary article{padding:13px}.ops-calendar-summary strong{font-size:1.4rem}.ops-calendar-toolbar{padding:14px}.ops-calendar-navigation{flex-wrap:wrap}.ops-calendar-period{order:-1;width:100%;margin:0}.ops-calendar-tools{align-items:stretch;flex-direction:column}.ops-calendar-date-jump{width:100%!important}.segmented-control button{flex:1}.ops-calendar-filter-row,.ops-calendar-legend{padding-left:14px;padding-right:14px}.team-week-scroll{max-height:62vh}.ops-month-grid{min-width:760px}.ops-day-agenda-head{align-items:stretch;flex-direction:column}.ops-agenda-list{padding:0 12px}.ops-agenda-item{grid-template-columns:1fr auto;gap:8px}.ops-agenda-time,.ops-agenda-main{grid-column:1}.ops-agenda-person,.ops-agenda-action{grid-column:2}.ops-agenda-person{grid-row:1;text-align:right}.ops-agenda-action{grid-row:2}.ops-appointment-grid{grid-template-columns:1fr}.ops-appointment-grid label.wide{grid-column:auto}}

/* Simple day-first dispatch view */
.ops-calendar-summary.simple article.available{border-color:#b9dfca;background:#f4fbf7}.ops-calendar-summary.simple article.available strong{color:#147c47}
.ops-day-strip{display:grid;grid-template-columns:repeat(7,minmax(105px,1fr));gap:1px;padding:0;border-bottom:1px solid #dfe6ee;background:#dfe6ee}.ops-day-strip button{display:flex;min-height:78px;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:10px 8px;border:0;color:#536179;background:#fff;cursor:pointer}.ops-day-strip button:hover{background:#fff8f3}.ops-day-strip button span{font-size:.7rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.ops-day-strip button strong{color:#10203a;font-size:.98rem}.ops-day-strip button small{color:#7a879a;font-size:.65rem}.ops-day-strip button.today strong{color:#e65312}.ops-day-strip button.selected{position:relative;color:#fff;background:#10203a}.ops-day-strip button.selected strong,.ops-day-strip button.selected small{color:#fff}.ops-day-strip button.selected::after{position:absolute;right:14px;bottom:0;left:14px;height:4px;border-radius:4px 4px 0 0;background:#fb641e;content:""}
.daily-dispatch-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:14px;padding:16px;background:#f3f6f9}.daily-team-plan,.daily-unassigned{min-width:0;overflow:hidden;border:1px solid #dce4ee;border-radius:14px;background:#fff;box-shadow:0 5px 16px rgba(16,32,58,.035)}.daily-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:62px;padding:12px 16px;border-bottom:1px solid #e5eaf1;background:#fafbfd}.daily-section-head>div{display:flex;flex-direction:column}.daily-section-head strong{color:#10203a;font-size:.95rem}.daily-section-head span{margin-top:2px;color:#768398;font-size:.7rem}.daily-person-row{display:grid;grid-template-columns:205px 112px minmax(0,1fr) 36px;align-items:center;gap:12px;min-height:82px;padding:10px 13px;border-bottom:1px solid #e7ecf2}.daily-person-row:last-child{border-bottom:0}.daily-person-row:hover{background:#fbfcfe}.daily-person-row.clash{box-shadow:inset 4px 0 #d5443e;background:#fff7f6}.daily-person-name{display:flex;align-items:center;min-width:0;gap:10px}.daily-person-name>div{min-width:0}.daily-person-name strong,.daily-person-name small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.daily-person-name strong{color:#10203a;font-size:.82rem}.daily-person-name small{margin-top:2px;color:#758298;font-size:.69rem}.daily-person-state{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:3px}.daily-person-state>span{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:.67rem;font-weight:900;white-space:nowrap}.daily-person-state>span.available{color:#147644;background:#e8f7ef}.daily-person-state>span.working{color:#195a96;background:#e8f2fc}.daily-person-state>span.holiday{color:#146a42;background:#dff3e8}.daily-person-state>span.college{color:#623ba1;background:#eee7fa}.daily-person-state small{color:#b02d27;font-size:.63rem;font-weight:850}.daily-person-bookings{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:6px;min-width:0}.daily-person-bookings .team-calendar-card{margin:0;min-height:53px}.daily-free-message{display:flex;align-items:center;min-height:44px;padding:0 12px;border:1px dashed #d7e0ea;border-radius:8px;color:#8290a2;background:#fafbfd;font-size:.72rem}.daily-row-add{display:grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid #d2dce8;border-radius:9px;color:#59687d;background:#fff;font-size:1.05rem;font-weight:900;cursor:pointer}.daily-row-add:hover{border-color:#fb641e;color:#fff;background:#fb641e}.daily-unassigned{align-self:start}.daily-unassigned>.team-calendar-card{width:calc(100% - 24px);margin:10px 12px}.daily-all-clear{display:flex;min-height:128px;flex-direction:column;align-items:center;justify-content:center;padding:20px;color:#6f7d91;text-align:center}.daily-all-clear::before{display:grid;place-items:center;width:38px;height:38px;margin-bottom:9px;border-radius:50%;color:#167848;background:#e7f7ee;content:"\2713";font-size:1.2rem;font-weight:900}.daily-all-clear strong{color:#234333}.daily-all-clear span{margin-top:3px;font-size:.75rem}
@media(max-width:1050px){.daily-dispatch-layout{grid-template-columns:1fr}.daily-unassigned{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.daily-unassigned .daily-section-head{grid-column:1/-1}.daily-unassigned>.team-calendar-card{width:auto;margin:10px}.daily-all-clear{grid-column:1/-1}.daily-person-row{grid-template-columns:195px 105px minmax(0,1fr) 34px}}
@media(max-width:700px){.ops-day-strip{display:flex;overflow-x:auto}.ops-day-strip button{flex:0 0 104px}.daily-dispatch-layout{padding:8px}.daily-person-row{grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:12px}.daily-person-state{grid-column:2;grid-row:1;align-items:flex-end}.daily-person-bookings{grid-column:1/-1}.daily-row-add{grid-column:1/-1;width:100%;height:35px}.daily-free-message{min-height:38px}.ops-calendar-legend .legend-note{width:100%;margin-left:0}}

/* Streamlined work planner */
.planner-schedule-panel{border-bottom:1px solid #dfe6ee;background:#fff}.planner-schedule-panel>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;cursor:pointer;list-style:none}.planner-schedule-panel>summary::-webkit-details-marker{display:none}.planner-schedule-panel>summary>span:first-child{display:flex;flex-direction:column}.planner-schedule-panel>summary strong{color:#10203a}.planner-schedule-panel>summary small{margin-top:2px;color:#6e7c91}.planner-summary-action{padding:7px 11px;border-radius:9px;color:#a33b0d;background:#fff0e7;font-size:.75rem;font-weight:900}.planner-schedule-form{display:grid;grid-template-columns:minmax(220px,1.6fr) minmax(180px,1fr) 145px 150px minmax(180px,1fr) auto;align-items:end;gap:10px;padding:4px 20px 12px}.planner-schedule-form label{display:flex;min-width:0;flex-direction:column;gap:5px;margin:0;color:#46556b;font-size:.7rem;font-weight:850}.planner-schedule-form input,.planner-schedule-form select{min-width:0;margin:0!important;padding:9px 10px!important}.planner-schedule-form button{min-height:43px;white-space:nowrap}.planner-help{margin:0;padding:0 20px 14px;color:#66758b;font-size:.72rem}.planner-help strong{color:#35465e}.planner-week-scroll{overflow-x:auto;padding:14px;background:#f2f5f8}.planner-week-board{display:grid;grid-template-columns:repeat(7,minmax(185px,1fr));gap:9px;min-width:1360px}.planner-day-lane{overflow:hidden;min-height:430px;border:1px solid #dbe3ed;border-radius:12px;background:#fff}.planner-day-lane.today{border-color:#f59b69;box-shadow:0 0 0 2px rgba(251,100,30,.09)}.planner-day-lane.selected{border-color:#fb641e}.planner-day-heading{display:flex;width:100%;min-height:74px;flex-direction:column;align-items:flex-start;padding:11px 13px;border:0;border-bottom:1px solid #e4eaf1;color:#59687d;background:#fafbfd;text-align:left;cursor:pointer}.planner-day-heading span{color:#e65312;font-size:.69rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.planner-day-heading strong{margin:2px 0;color:#10203a;font-size:1rem}.planner-day-heading small{color:#748197;font-size:.67rem}.planner-day-lane.today .planner-day-heading{background:#fff7f1}.planner-day-items{display:grid;align-content:start;gap:7px;padding:8px}.planner-item{display:flex;width:100%;min-width:0;flex-direction:column;gap:2px;padding:9px 10px;border:1px solid #dce5ef;border-left:4px solid #758399;border-radius:9px;color:#10203a;background:#f6f8fb;font:inherit;text-align:left;text-decoration:none;cursor:pointer}.planner-item:hover{border-color:#aebccd;box-shadow:0 4px 12px rgba(16,32,58,.09);transform:translateY(-1px)}.planner-item>span{color:#64738a;font-size:.61rem;font-weight:900;text-transform:uppercase}.planner-item>strong{overflow:hidden;font-size:.76rem;line-height:1.25;text-overflow:ellipsis}.planner-item>small{color:#10203a;font-size:.7rem;font-weight:850}.planner-item>em{overflow:hidden;color:#738096;font-size:.64rem;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.planner-item.calendar-job{border-left-color:#2878c8;background:#edf5ff}.planner-item.calendar-appointment{border-left-color:#f26a21;background:#fff4ea}.planner-item.calendar-holiday{border-left-color:#27935b;background:#edf9f2}.planner-item.calendar-college{border-left-color:#8256ce;background:#f3effc}.planner-item.calendar-vehicle{border-left-color:#bf7a10;background:#fff8e8}.planner-empty-day{display:flex;min-height:92px;width:100%;flex-direction:column;align-items:center;justify-content:center;border:1px dashed #d5dee9;border-radius:9px;color:#8290a3;background:#fbfcfd;cursor:pointer}.planner-empty-day strong{color:#526177;font-size:.75rem}.planner-empty-day span{margin-top:3px;color:#d85010;font-size:.7rem;font-weight:800}
@media(max-width:1250px){.planner-schedule-form{grid-template-columns:repeat(3,minmax(0,1fr))}.planner-schedule-form button{width:100%}}
@media(max-width:750px){.planner-schedule-panel>summary{padding:12px 14px}.planner-schedule-form{grid-template-columns:1fr;padding:4px 14px 12px}.planner-help{padding:0 14px 12px}.planner-week-scroll{padding:8px}.planner-week-board{grid-template-columns:repeat(7,82vw);min-width:calc(7 * 82vw + 54px)}.planner-day-lane{min-height:300px}}

/* One-path dashboard workflow */
.workflow-centre{overflow:hidden}.workflow-pipeline{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;margin:0 0 14px;border:1px solid #dfe6ee;border-radius:14px;overflow:hidden;background:#dfe6ee}.workflow-pipeline a{position:relative;display:flex;min-height:138px;flex-direction:column;padding:16px 16px 14px;color:#10203a;background:#fff;text-decoration:none}.workflow-pipeline a:hover{z-index:1;background:#fff8f3;box-shadow:inset 0 -4px #fb641e}.workflow-pipeline a>span{display:grid;place-items:center;width:26px;height:26px;margin-bottom:10px;border-radius:50%;color:#fff;background:#10203a;font-size:.7rem;font-weight:900}.workflow-pipeline a>small{color:#d85010;font-size:.67rem;font-weight:900;text-transform:uppercase}.workflow-pipeline a>strong{margin:3px 0 5px;font-size:1rem}.workflow-pipeline a>em{color:#6d7a8e;font-size:.72rem;font-style:normal;line-height:1.35}.workflow-pipeline a:not(:last-child)::after{position:absolute;top:50%;right:-8px;z-index:2;display:grid;place-items:center;width:16px;height:16px;border-radius:50%;color:#627087;background:#fff;content:"\203A";font-size:1.2rem;font-weight:900;transform:translateY(-50%)}.workflow-exceptions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.workflow-exceptions a{display:grid;grid-template-columns:1fr auto;gap:2px 8px;padding:11px 13px;border:1px solid #e1e7ef;border-radius:10px;color:#10203a;background:#f8fafc;text-decoration:none}.workflow-exceptions a>span{color:#66758a;font-size:.69rem;font-weight:850;text-transform:uppercase}.workflow-exceptions a>strong{text-align:right}.workflow-exceptions a>small{grid-column:1/-1;color:#778397;font-size:.69rem}.workflow-exceptions a.urgent{border-color:#efb6b2;background:#fff5f4}.workflow-exceptions a.attention{border-color:#f1cea9;background:#fff9f2}.workflow-exceptions a.clear strong{color:#17804a}
@media(max-width:1000px){.workflow-pipeline{grid-template-columns:repeat(3,minmax(0,1fr))}.workflow-pipeline a:not(:last-child)::after{display:none}.workflow-exceptions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.workflow-pipeline{grid-template-columns:1fr}.workflow-pipeline a{min-height:104px}.workflow-exceptions{grid-template-columns:1fr}}

/* Visual month work board */
.planner-schedule-form{display:block;padding:4px 20px 12px}.planner-schedule-main{display:grid;grid-template-columns:minmax(260px,1.55fr) minmax(220px,1.15fr) 170px 180px;align-items:end;gap:10px}.planner-schedule-finish{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;margin-top:10px}.planner-schedule-finish:has(.planner-hours){grid-template-columns:130px minmax(0,1fr) auto}.planner-allocate-button{min-width:150px}.ops-month-grid{grid-template-columns:repeat(7,minmax(158px,1fr));min-width:1120px}.ops-month-day.visual{display:block;min-height:190px;padding:0;overflow:hidden;cursor:default}.ops-month-day.visual:hover{background:#fff}.ops-month-day.visual.outside{background:#f7f9fc}.month-day-number{display:flex;width:100%;min-height:38px;align-items:center;justify-content:space-between;padding:7px 9px;border:0;border-bottom:1px solid #edf1f5;color:#10203a;background:transparent;text-align:left;cursor:pointer}.month-day-number:hover{background:#fff5ed}.month-day-number strong{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;font-size:.88rem}.month-day-number span{color:#8792a4;font-size:.61rem;font-weight:750}.ops-month-day.today .month-day-number strong{color:#fff;background:#fb641e}.ops-month-day.outside .month-day-number{color:#9ca7b6}.month-visual-items{display:grid;align-content:start;gap:5px;padding:6px}.month-visual-card{display:flex;width:100%;min-width:0;flex-direction:column;gap:2px;padding:6px 7px;border:1px solid transparent;border-left:4px solid #758399;border-radius:7px;color:#10203a;background:#f3f6f9;font:inherit;text-align:left;text-decoration:none;cursor:pointer}.month-visual-card:hover{filter:brightness(.98);box-shadow:0 2px 7px rgba(16,32,58,.1)}.month-visual-card strong,.month-visual-card span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.month-visual-card strong{font-size:.67rem;line-height:1.25}.month-visual-card span{color:#53637a;font-size:.6rem;font-weight:750}.month-visual-card.job{border-left-color:#2878c8;background:#eaf4ff}.month-visual-card.holiday{border-left-color:#27935b;background:#e8f7ef}.month-visual-card.college{border-left-color:#8256ce;background:#f1ebfb}.month-visual-card.appointment{border-left-color:#f26a21;background:#fff1e7}.month-more{width:100%;padding:4px 6px;border:0;color:#d85010;background:transparent;font-size:.64rem;font-weight:900;text-align:left;cursor:pointer}.ops-month-day.selected{position:relative;z-index:1;box-shadow:inset 0 0 0 2px #fb641e}.ops-day-agenda-head::after{align-self:center;padding:6px 9px;border-radius:999px;color:#49617d;background:#edf3fa;content:"Click any date above to see its complete team plan";font-size:.68rem;font-weight:800}
@media(max-width:1150px){.planner-schedule-main{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:750px){.planner-schedule-form{padding:4px 14px 12px}.planner-schedule-main,.planner-schedule-finish,.planner-schedule-finish:has(.planner-hours){grid-template-columns:1fr}.planner-allocate-button{width:100%}.ops-day-agenda-head::after{align-self:flex-start}}

/* Facebook and Instagram social inbox */
.social-inbox-head{align-items:flex-end}.social-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.social-stat{display:flex;min-height:92px;flex-direction:column;align-items:flex-start;justify-content:center;padding:16px 18px;border:1px solid #dae3ed;border-radius:14px;color:#10203a;background:#fff;text-align:left;cursor:pointer}.social-stat:hover,.social-stat.active{border-color:#fb641e;background:#fff7f1;box-shadow:0 7px 20px rgba(16,32,58,.06)}.social-stat strong{font-size:1.65rem}.social-stat span{color:#69778c;font-size:.76rem;font-weight:800}.social-filter-bar{display:grid;grid-template-columns:minmax(260px,2fr) repeat(2,minmax(150px,1fr)) auto;align-items:end;gap:12px;padding:16px;margin-bottom:14px}.social-filter-bar label{margin:0}.social-conversation-list{display:grid;gap:14px}.social-conversation{padding:0;overflow:hidden}.social-conversation.urgent{border-color:#e49b96;box-shadow:inset 4px 0 #d5443e}.social-conversation>header{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:start;gap:13px;padding:17px 18px;border-bottom:1px solid #e6ebf1;background:#fbfcfe}.social-avatar{display:grid;width:44px;height:44px;place-items:center;border-radius:12px;color:#fff;background:#1d70d6;font-size:.82rem;font-weight:950}.social-contact{min-width:0}.social-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.social-title-row h2{margin:0 5px 0 0;font-size:1.05rem}.social-contact>p{margin:6px 0 3px;color:#42516a}.social-contact>small{color:#7c899a}.badge.social-platform{color:#285e94;background:#e7f1fc}.badge.social-classification{color:#65418e;background:#f0eafa}.badge.social-new{color:#a83b0c;background:#fff0e6}.social-action-summary{display:flex;flex-direction:column;align-items:flex-end;gap:6px;text-align:right}.social-action-summary strong{font-size:.78rem}.social-action-summary .priority{padding:5px 9px;border-radius:999px;color:#526176;background:#edf1f5;font-size:.66rem;font-weight:900;text-transform:uppercase}.social-action-summary .priority.high{color:#99510a;background:#fff0d9}.social-action-summary .priority.urgent{color:#ad2c27;background:#fde7e5}.social-editor-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;padding:17px 18px}.social-editor-grid label{margin:0}.social-editor-grid .wide{grid-column:span 2}.social-thread{margin:0 18px 15px;border:1px solid #dde5ee;border-radius:10px;background:#f9fbfd}.social-thread summary{padding:11px 13px;cursor:pointer;font-size:.76rem;font-weight:900}.social-message{padding:11px 13px;border-top:1px solid #e2e8ef}.social-message small{color:#778397}.social-message p{margin:5px 0;white-space:pre-wrap}.social-conversation>footer{display:flex;flex-wrap:wrap;align-items:center;gap:9px;padding:14px 18px;border-top:1px solid #e5eaf0;background:#fbfcfd}.social-empty{text-align:center}.social-empty .primary-link{display:inline-flex;margin-top:8px}
.social-create-job{margin:0 18px 15px;padding:0 14px 14px;border:1px solid #f2c6ad;border-radius:12px;background:#fff8f3}.social-create-job summary{padding:13px 0;cursor:pointer;color:#9a390d;font-size:.82rem;font-weight:950}.social-create-job>p{margin:0 0 12px;color:#66758a}.social-create-job-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-bottom:12px}.social-create-job-grid label{margin:0}.social-create-job-grid .wide{grid-column:span 2}.social-editor-grid label small{display:block;margin-top:5px;color:#718096;font-size:.68rem;line-height:1.35}
.social-quote-detected{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,.75fr);gap:18px;margin:0 18px 15px;padding:16px;border:1px solid #f3b78f;border-radius:14px;background:linear-gradient(135deg,#fff7f0,#fff)}.social-quote-copy{min-width:0}.social-quote-copy>.eyebrow{display:block;margin-bottom:5px;color:#b74410}.social-quote-copy>strong{display:block;color:#10203a;font-size:1.65rem}.social-quote-copy>p{max-height:116px;margin:7px 0;overflow:auto;color:#34445d;white-space:pre-wrap}.social-quote-copy>small{color:#6d7889}.social-quote-controls{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:9px}.social-quote-controls label{margin:0}.social-quote-controls .secondary-link{justify-content:center;text-align:center}
.social-list-guidance{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 2px 10px;color:#65758a;font-size:.78rem}.social-list-guidance strong{color:#10203a}.social-conversation-summary{display:grid;grid-template-columns:48px minmax(0,1fr) auto 72px;align-items:center;gap:13px;padding:15px 18px;background:#fbfcfe;list-style:none;cursor:pointer}.social-conversation-summary::-webkit-details-marker{display:none}.social-conversation-summary:hover{background:#fff8f3}.social-conversation[open]>.social-conversation-summary{border-bottom:1px solid #e6ebf1;background:#fff8f3}.social-summary-meta{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:4px}.social-summary-meta small{color:#7c899a}.social-summary-chip{padding:3px 7px;border-radius:999px;font-size:.62rem;font-weight:900}.social-summary-chip.quote{color:#a83b0c;background:#fff0e6}.social-summary-chip.linked{color:#236944;background:#e5f5ec}.social-expand-cue{display:flex;align-items:center;justify-content:flex-end;gap:6px;color:#56677d;font-size:.72rem;font-weight:900}.social-expand-cue>span:last-child{font-size:1rem;transition:transform .18s ease}.social-expand-cue .open-label{display:none}.social-conversation[open] .social-expand-cue .closed-label{display:none}.social-conversation[open] .social-expand-cue .open-label{display:inline}.social-conversation[open] .social-expand-cue>span:last-child{transform:rotate(180deg)}.social-conversation-body{background:#fff}.social-conversation-body>footer{display:flex;flex-wrap:wrap;align-items:center;gap:9px;padding:14px 18px;border-top:1px solid #e5eaf0;background:#fbfcfd}
@media(max-width:1050px){.social-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.social-editor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.social-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.social-summary,.social-filter-bar,.social-editor-grid,.social-create-job-grid,.social-quote-detected{grid-template-columns:1fr}.social-editor-grid .wide,.social-create-job-grid .wide{grid-column:auto}.social-conversation>header{grid-template-columns:42px minmax(0,1fr)}.social-action-summary{grid-column:2;align-items:flex-start;text-align:left}.social-conversation>footer>*{width:100%;justify-content:center}.social-inbox-head{align-items:flex-start}}
@media(max-width:650px){.social-list-guidance{align-items:flex-start;flex-direction:column;gap:2px}.social-conversation-summary{grid-template-columns:42px minmax(0,1fr) 58px;padding:13px}.social-conversation-summary .social-action-summary{grid-column:2;align-items:flex-start;text-align:left}.social-expand-cue{grid-column:3;grid-row:1/3}.social-expand-cue .closed-label,.social-expand-cue .open-label{display:none!important}.social-conversation-body>footer>*{width:100%;justify-content:center}}
.public-policy-page{width:min(880px,calc(100% - 32px));margin:54px auto;padding:42px;border:1px solid #dfe6ee;border-radius:18px;color:#10203a;background:#fff;box-shadow:0 18px 50px rgba(16,32,58,.07)}.public-policy-page h1{margin:8px 0 12px;font-size:clamp(2rem,5vw,3.4rem)}.public-policy-page .lead{color:#53627a;font-size:1.06rem;line-height:1.65}.public-policy-page section{padding:18px 0;border-top:1px solid #e4e9ef}.public-policy-page h2{margin:0 0 7px;font-size:1.13rem}.public-policy-page p{margin:0;line-height:1.65}@media(max-width:650px){.public-policy-page{margin:24px auto;padding:24px}}

/* Job money control: a clear separation between sales, costs and result */
.job-money-board{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) minmax(0,.9fr);gap:14px;margin:14px 0 20px}.job-money-lane{padding:18px;border:1px solid #dce4ed;border-radius:16px;background:#fff;box-shadow:0 7px 22px rgba(16,32,58,.045)}.job-money-lane.income{border-top:4px solid #2878c8}.job-money-lane.costs{border-top:4px solid #f26a21}.job-money-lane.result{border-top:4px solid #24945a;background:#f7fcf9}.job-money-lane.result.loss{border-top-color:#c83732;background:#fff7f6}.job-money-lane h3{margin:0 0 3px;color:#10203a;font-size:1.05rem}.job-money-lane>p{margin:0 0 13px;color:#748197;font-size:.75rem}.job-money-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:9px 0;border-top:1px solid #e8edf3}.job-money-row span{color:#637187;font-size:.76rem}.job-money-row strong{color:#10203a;text-align:right}.job-money-row.total{margin-top:4px;padding-top:13px;border-top:2px solid #d7e0ea}.job-money-row.total span,.job-money-row.total strong{font-size:.9rem;font-weight:900}.job-money-profit{padding:14px 0 11px;border-top:1px solid #dce8e1}.job-money-profit span{display:block;color:#557063;font-size:.72rem;font-weight:850;text-transform:uppercase}.job-money-profit strong{display:block;margin:4px 0;color:#137b46;font-size:1.75rem;line-height:1}.job-money-lane.loss .job-money-profit strong{color:#b62e29}.job-money-profit small{color:#6e7d72}.job-finance-warning{margin:10px 0;padding:12px 14px;border:1px solid #f0bd99;border-radius:12px;color:#8c380f;background:#fff6ee;font-weight:750}.job-finance-warning.danger{border-color:#e7aaa6;color:#a32823;background:#fff3f2}
@media(max-width:1050px){.job-money-board{grid-template-columns:1fr 1fr}.job-money-lane.result{grid-column:1/-1}}
@media(max-width:680px){.job-money-board{grid-template-columns:1fr}.job-money-lane.result{grid-column:auto}.job-money-lane{padding:15px}}
