@font-face {
    font-family: "Newsreader";
    src: url("../fonts/newsreader-latin-ext-500-600.woff2") format("woff2");
    font-style: normal;
    font-weight: 500 600;
    font-display: swap;
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: "Newsreader";
    src: url("../fonts/newsreader-latin-500-600.woff2") format("woff2");
    font-style: normal;
    font-weight: 500 600;
    font-display: swap;
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
    --kp-bg: #F2F2EF;
    --kp-surface: #FFFFFF;
    --kp-ink: #16181D;
    --kp-navy: #142C4F;
    --kp-slate: #43608F;
    --kp-muted: #6B7078;
    --kp-border: #E2E1DA;
    --kp-hairline: #F1F0E9;
    --kp-gold: #D9A441;
    --kp-gold-soft: #FAF1DF;
    --kp-gold-ink: #A4661A;
    --kp-success: #2E7D5B;
    --kp-success-soft: #EAF4EF;
    --kp-error: #9F3A38;
    --kp-blue: var(--kp-navy);
    --kp-blue-dark: #0E2038;
    --kp-blue-soft: #EEF2F8;
    --kp-warning: var(--kp-gold-ink);
    --kp-white: var(--kp-surface);
    --kp-orange: var(--kp-gold-ink);
    --kp-radius: 10px;
    --kp-radius-sm: 8px;
    --kp-shadow: 0 1px 2px rgba(20, 25, 35, .04);
    --kp-font-ui: "Figtree", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --kp-font-display: "Newsreader", Georgia, serif;
    --kp-type-xs: 10.5px;
    --kp-type-sm: 12px;
    --kp-type-body: 13.5px;
    --kp-type-subhead: 15px;
    --kp-type-title: 22px;
    --font-primary: var(--kp-font-ui);
    --font-size-caption: var(--kp-type-xs);
    --font-size-nav: var(--kp-type-sm);
    --font-size-body: var(--kp-type-body);
    --font-size-heading: 18px;
    --font-size-page-title: 24px;
    --font-size-metric: 30px;
}

/* WL278i — compact integration navigation and an explicit registration
 * control. Settings should lead with the actual controls, not decorative
 * whitespace, and the public-registration state must look and act clickable. */
.kp-portal .kp-direct-tool-integrations .kp-content > .kp-page-header.kp-integrations-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-height: 0;
    margin-bottom: 8px;
    padding: 12px 18px;
    overflow: visible;
    border-radius: 10px;
    box-shadow: none;
}
.kp-portal .kp-direct-tool-integrations .kp-content > .kp-page-header.kp-integrations-header::before,
.kp-portal .kp-direct-tool-integrations .kp-content > .kp-page-header.kp-integrations-header::after { display: none; }
.kp-portal .kp-integrations-header h1 { font-size: 20px; }
.kp-portal .kp-integrations-header .kp-record-back { flex: 0 0 auto; margin: 0; }
.kp-portal .kp-direct-tool-integrations .kp-crm-nav { margin: 0 0 10px; }
.kp-portal .kp-registration-state {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 6px 12px;
    border: 1px solid #cbd5e1;
    border-radius: 999px;
    background: #f8fafc;
    color: #475569;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}
.kp-portal .kp-registration-state.is-open { border-color: #86efac; background: #f0fdf4; color: #166534; }
.kp-portal .kp-registration-state.is-closed { border-color: #fcd34d; background: #fffbeb; color: #92400e; }
.kp-portal .kp-registration-state:focus-visible { outline: 3px solid rgba(20, 44, 79,.22); outline-offset: 2px; }
@media (max-width: 720px) {
    .kp-portal .kp-direct-tool-integrations .kp-content > .kp-page-header.kp-integrations-header { align-items: flex-start; flex-direction: column; }
}

/* WL271 — courtesy title sits with the contact's name without crowding it. */
.kp-crm-formrow.kp-crm-name-row {
    grid-template-columns: minmax(8rem, .45fr) minmax(0, 1fr) minmax(0, 1fr);
}

@media (max-width: 760px) {
    .kp-crm-formrow.kp-crm-name-row {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* ===== WL269 - neutral referral and origination chains ===== */
.kp-portal .kp-origin-chain {
  grid-column: 1 / -1;
  display: grid;
  gap: 10px;
  margin-top: 4px;
}
.kp-portal .kp-origin-chain-toggle {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--kp-border, #dfe5ec);
  border-radius: 10px;
  background: var(--kp-surface, #fff);
  cursor: pointer;
}
.kp-portal .kp-origin-chain-toggle input {
  flex: 0 0 auto;
  margin-top: 3px;
}
.kp-portal .kp-origin-chain-toggle span {
  display: grid;
  gap: 2px;
}
.kp-portal .kp-origin-chain-toggle strong {
  color: var(--kp-navy, #12233f);
  font-size: 13px;
}
.kp-portal .kp-origin-chain-toggle small {
  color: var(--kp-muted, #667085);
  font-size: 11px;
  line-height: 1.45;
}
.kp-portal .kp-origin-chain-panel {
  display: grid;
  gap: 10px;
  padding-left: 28px;
}
.kp-portal .kp-origin-chain-panel[hidden] {
  display: none;
}
.kp-portal .kp-origin-chain-list {
  display: grid;
  gap: 12px;
  margin: 12px 0;
  counter-reset: kp-origin-row;
}
.kp-portal .kp-origin-chain-row {
  position: relative;
  display: grid;
  grid-template-columns: minmax(180px, 1.25fr) repeat(3, minmax(140px, 1fr)) auto;
  gap: 10px;
  align-items: end;
  padding: 14px 14px 14px 46px;
  border: 1px solid var(--kp-border, #dfe5ec);
  border-radius: 12px;
  background: var(--kp-surface, #fff);
  counter-increment: kp-origin-row;
}
.kp-portal .kp-origin-chain-order::before {
  content: counter(kp-origin-row);
  position: absolute;
  left: 14px;
  top: 16px;
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 999px;
  background: var(--kp-navy, #12233f);
  color: #fff;
  font-size: 12px;
  font-weight: 800;
}
.kp-portal .kp-origin-chain-note {
  grid-column: 1 / -2;
}
.kp-portal .kp-origin-chain-remove {
  grid-column: -2 / -1;
  justify-self: end;
  align-self: end;
}
@media (max-width: 900px) {
  .kp-portal .kp-origin-chain-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .kp-portal .kp-origin-chain-note {
    grid-column: 1 / -1;
  }
  .kp-portal .kp-origin-chain-remove {
    grid-column: 1 / -1;
  }
}
@media (max-width: 560px) {
  .kp-portal .kp-origin-chain-row {
    grid-template-columns: minmax(0, 1fr);
    padding-left: 44px;
  }
  .kp-portal .kp-origin-chain-note,
  .kp-portal .kp-origin-chain-remove {
    grid-column: 1;
  }
}

/* ===== WL252 — personal Account menu and focused Workspace settings ===== */
.kp-portal .kp-account-menu{position:relative;z-index:80}
.kp-portal button.kp-topbar-user{appearance:none;border:0;background:transparent;padding:5px 7px;min-height:44px;min-width:44px;border-radius:9px;cursor:pointer;font:inherit}
.kp-portal button.kp-topbar-user:hover,.kp-portal button.kp-topbar-user:focus-visible,.kp-portal .kp-account-menu.is-open button.kp-topbar-user{background:#eef3ff;color:#173f9f;outline:none}
.kp-portal button.kp-topbar-user>svg{width:15px;height:15px;fill:currentColor;transition:transform .15s ease}
.kp-portal .kp-account-menu.is-open button.kp-topbar-user>svg{transform:rotate(180deg)}
.kp-portal .kp-account-popover{position:absolute;right:0;top:calc(100% + 9px);width:min(260px,calc(100vw - 24px));padding:8px;background:#fff;border:1px solid #d9e1ee;border-radius:12px;box-shadow:0 18px 45px rgba(16,39,86,.18);z-index:120}
.kp-portal .kp-account-popover[hidden]{display:none!important}
.kp-portal .kp-account-popover-head{display:flex;flex-direction:column;padding:7px 9px 10px;border-bottom:1px solid #edf0f5;margin-bottom:5px;min-width:0}
.kp-portal .kp-account-popover-head strong,.kp-portal .kp-account-popover-head span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kp-portal .kp-account-popover-head strong{font-size:14px;color:#0c1d3d}
.kp-portal .kp-account-popover-head span{font-size:12px;color:#667085}
.kp-portal .kp-account-popover a[role="menuitem"]{display:flex;align-items:center;min-height:44px;padding:8px 10px;border-radius:8px;color:#1f3155;font-size:13px;font-weight:600;text-decoration:none}
.kp-portal .kp-account-popover a[role="menuitem"]:hover,.kp-portal .kp-account-popover a[role="menuitem"]:focus-visible{background:#eef3ff;color:#174bc4;outline:none}
.kp-portal .kp-account-popover-divider{display:block;height:1px;background:#edf0f5;margin:5px 4px}
.kp-portal .kp-sidebar-account{display:flex;align-items:center;gap:9px;color:inherit;text-decoration:none;min-height:44px;padding:5px 2px;border-radius:9px;min-width:0}
.kp-portal .kp-sidebar-account:hover,.kp-portal .kp-sidebar-account:focus-visible{color:var(--kp-blue);outline:none}
.kp-portal .kp-sidebar-account>span:last-child{display:flex;flex-direction:column;min-width:0}
.kp-portal .kp-sidebar-account small{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#7b8497}
.kp-portal .kp-sidebar-account strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kp-portal .kp-setpanel-group{display:block;padding:13px 12px 4px;color:#7b8497;font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.kp-portal .kp-account-workspace-link{display:flex;justify-content:space-between;align-items:center;min-height:44px;margin-top:14px;padding:9px 11px;border-top:1px solid #edf0f5;color:var(--kp-blue);font-size:12px;font-weight:700;text-decoration:none}
.kp-portal .kp-account-page-header{margin-bottom:14px}
.kp-portal .kp-preferences-form{display:grid;gap:18px}
.kp-portal .kp-preference-group{border:1px solid #dfe5ef;border-radius:12px;overflow:hidden;background:#fff}
.kp-portal .kp-preference-group>div{padding:15px 18px 10px}
.kp-portal .kp-preference-group h3{margin:0 0 3px;font-size:15px;color:#0c1d3d}
.kp-portal .kp-preference-group>div>p{margin:0;color:#667085;font-size:12px}
.kp-portal .kp-preference-group>label{display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,280px);align-items:center;gap:20px;padding:12px 18px;border-top:1px solid #edf0f5}
.kp-portal .kp-preference-group>label>span{display:flex;flex-direction:column;gap:2px}
.kp-portal .kp-preference-group>label small{font-size:12px;font-weight:400;color:#667085}
.kp-portal .kp-preference-group select,.kp-portal .kp-account-settings .kp-setpanel-lang select{width:100%;min-height:44px}
.kp-portal .kp-billing-demo-note,.kp-portal .kp-notification-channel-note{display:flex;flex-direction:column;gap:3px;margin:14px 0;padding:12px 14px;border:1px solid #bfd6ff;border-radius:10px;background:#f0f6ff;color:#214274}
.kp-portal .kp-billing-demo-note strong,.kp-portal .kp-notification-channel-note strong{color:#123477}
.kp-portal .kp-billing-demo-note span,.kp-portal .kp-notification-channel-note span{font-size:12px;line-height:1.45}
.kp-portal .kp-notification-settings{padding:22px}
.kp-portal .kp-notification-matrix{margin-top:16px;border:1px solid #dfe5ef;border-radius:12px;overflow:hidden}
.kp-portal .kp-notification-matrix__head,.kp-portal .kp-notification-matrix__row{display:grid;grid-template-columns:minmax(260px,1fr) 72px 82px minmax(135px,180px);align-items:center;gap:10px}
.kp-portal .kp-notification-matrix__head{padding:9px 14px;background:#f4f7fb;color:#64708a;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.kp-portal .kp-notification-matrix__category>h3{margin:0;padding:12px 14px 8px;background:#fff;color:#0c1d3d;font-size:13px;border-top:1px solid #e8edf4}
.kp-portal .kp-notification-matrix__category:first-of-type>h3{border-top:0}
.kp-portal .kp-notification-matrix__row{padding:11px 14px;border-top:1px solid #edf0f5;background:#fff}
.kp-portal .kp-notification-matrix__row>div:first-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.kp-portal .kp-notification-matrix__row>div:first-child>span{font-size:12px;line-height:1.4;color:#667085}
.kp-portal .kp-notification-matrix__row select{width:100%;min-height:44px}
.kp-portal .kp-notification-matrix__row input[type="checkbox"]{width:20px;height:20px}
.kp-portal .kp-notification-matrix__row>div[role="cell"]>label{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}
.kp-portal .kp-notification-delivery-settings{margin-top:22px}
.kp-portal .kp-notification-delivery-settings>.kp-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.kp-portal .kp-notification-delivery-settings label>span{display:block;margin-bottom:5px;font-size:12px;font-weight:600}
.kp-portal .kp-notification-delivery-settings select,.kp-portal .kp-notification-delivery-settings input[type="time"]{width:100%;min-height:44px}
.kp-portal .kp-notification-timezone{display:flex;min-height:44px;flex-direction:column;justify-content:center;padding:8px 10px;border:1px solid #dfe5ef;border-radius:9px;background:#f8fafc}
.kp-portal .kp-notification-timezone>span{font-size:12px;font-weight:600}.kp-portal .kp-notification-timezone>small{color:#667085;font-size:11px}
.kp-portal .kp-notification-delivery-settings fieldset{margin:18px 0 0;padding:14px;border:1px solid #dfe5ef;border-radius:10px}
.kp-portal .kp-notification-delivery-settings legend{padding:0 5px;font-weight:700}
.kp-portal .kp-notification-delivery-settings fieldset label{display:inline-flex;align-items:center;gap:6px;min-height:44px}
.kp-portal .kp-checkbox-row{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:10px}

@media (max-width:720px){
    .kp-portal .kp-preference-group>label{grid-template-columns:1fr;gap:8px;padding:12px 14px}
    .kp-portal .kp-account-settings .kp-setpanel-rail{position:static;padding:10px}
    .kp-portal .kp-account-settings nav.kp-setpanel-nav{flex-direction:row;overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
    .kp-portal .kp-account-settings nav.kp-setpanel-nav button{flex:0 0 auto;min-height:44px;scroll-snap-align:start;white-space:nowrap}
    .kp-portal .kp-notification-settings{padding:14px}
    .kp-portal .kp-notification-matrix__head{display:none}
    .kp-portal .kp-notification-matrix__row{grid-template-columns:minmax(0,1fr) 44px 44px;gap:8px;padding:12px}
    .kp-portal .kp-notification-matrix__row>div:nth-child(4){grid-column:1/-1}
    .kp-portal .kp-notification-delivery-settings>.kp-grid{grid-template-columns:1fr}
    .kp-portal .kp-setpanel-group{display:none}
}

.kp-portal,
.kp-portal * {
    box-sizing: border-box;
}

html:has(.kp-portal),
body:has(.kp-portal) {
    /* wl67 — this was overflow-x: hidden, which quietly turns the page into a
       scroll container and kills position: sticky everywhere inside it. That
       is why the Deals rail scrolled away instead of staying put: the copilot
       was sticky, and sticky against a scrolling ancestor does nothing.

       overflow: clip does the same job — no sideways scrollbar from a wide
       table — without creating a scroll container, so sticky works again.
       The hidden line stays first as the fallback for older engines. */
    overflow-x: hidden;
    overflow-x: clip;
}

.entry-content:has(.kp-portal),
.wp-block-post-content:has(.kp-portal),
.site-main:has(.kp-portal),
.content-area:has(.kp-portal),
.wp-site-blocks:has(.kp-portal) {
    max-width: none;
}

.kp-portal {
    position: relative;
    left: 50%;
    width: 100vw;
    max-width: 100vw;
    min-height: 760px;
    margin: 0 0 0 -50vw;
    color: var(--kp-navy);
    background: var(--kp-bg);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.kp-shell {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    min-height: 760px;
}

.kp-sidebar {
    position: sticky;
    top: 0;
    z-index: 20;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    padding: 22px 14px;
    color: var(--kp-white);
    background: linear-gradient(180deg, var(--kp-navy), #243954);
}

.kp-sidebar-header {
    padding: 6px 6px 24px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.kp-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    color: inherit;
    text-decoration: none;
}

.kp-brand:hover,
.kp-brand:focus {
    color: inherit;
    text-decoration: none;
}

.kp-brand-mark,
.kp-avatar,
.kp-login-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 46px;
    height: 46px;
    border-radius: 8px;
    color: var(--kp-navy);
    background: var(--kp-gold);
    font-weight: 800;
}

.kp-brand-mark img {
    display: block;
    width: 34px;
    height: 34px;
    object-fit: contain;
}

.kp-brand strong,
.kp-brand small {
    display: block;
    line-height: 1.25;
}

.kp-brand small {
    color: rgba(255, 255, 255, 0.7);
    font-size: 12px;
}

.kp-nav {
    display: grid;
    gap: 6px;
    padding: 24px 0;
}

.kp-nav-link {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 44px;
    padding: 10px 12px;
    border-radius: 8px;
    color: rgba(255, 255, 255, 0.78);
    text-decoration: none;
    transition: background 160ms ease, color 160ms ease;
}

.kp-nav-link:hover,
.kp-nav-link:focus,
.kp-nav-link.is-active {
    color: var(--kp-white);
    background: rgba(255, 255, 255, 0.1);
}

.kp-nav-link.is-active {
    box-shadow: inset 3px 0 0 var(--kp-gold);
}

.kp-nav-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    color: currentColor;
    opacity: 0.85;
}

.kp-nav-icon svg {
    display: block;
    width: 18px;
    height: 18px;
    fill: currentColor;
}

.kp-sidebar-footer {
    margin-top: auto;
    padding: 16px 12px 0;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    color: rgba(255, 255, 255, 0.72);
    font-size: 13px;
}

.kp-sidebar-footer strong {
    display: block;
    margin-top: 4px;
    color: var(--kp-white);
}

.kp-portal-home-link {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    margin-bottom: 14px;
    padding: 8px 10px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 8px;
    color: var(--kp-white);
    background: rgba(255, 255, 255, 0.08);
    font-size: 12px;
    font-weight: 800;
    text-align: center;
    text-decoration: none;
}

.kp-portal-home-link:hover,
.kp-portal-home-link:focus {
    color: var(--kp-navy);
    background: var(--kp-gold);
}

@media (min-width: 861px) {
    .kp-shell {
        grid-template-columns: 92px minmax(0, 1fr);
    }

    .kp-sidebar {
        align-items: center;
        padding: 0;
        color: #061D3B;
        background: #FFFFFF;
        border-right: 1px solid var(--kp-border);
        box-shadow: 8px 0 24px rgba(26, 44, 68, 0.04);
    }

    .kp-sidebar-header {
        display: flex;
        justify-content: center;
        width: 100%;
        padding: 10px 0 8px;
        border-bottom: 1px solid var(--kp-border);
        background: var(--kp-blue);
    }

    .kp-sidebar .kp-brand {
        justify-content: center;
        gap: 0;
    }

    .kp-sidebar .kp-brand span:not(.kp-brand-mark) {
        display: none;
    }

    .kp-sidebar .kp-brand-mark {
        width: 48px;
        height: 48px;
        border-radius: 12px;
        color: #FFFFFF;
        background: #061D3B;
        padding: 5px;
    }

    .kp-sidebar .kp-brand-mark img {
        width: 38px;
        height: 38px;
    }

    .kp-nav {
        width: 100%;
        gap: 2px;
        padding: 12px 0;
    }

    .kp-nav-link {
        flex-direction: column;
        justify-content: center;
        gap: 6px;
        min-height: 70px;
        padding: 8px 6px;
        border-radius: 8px;
        color: #061D3B;
        font-size: 12px;
        line-height: 1.15;
        text-align: center;
    }

    .kp-nav-link:hover,
    .kp-nav-link:focus {
        color: #061D3B;
        background: #EAF6FD;
    }

    .kp-nav-link.is-active {
        color: #061D3B;
        background: #FFFFFF;
        box-shadow: inset 0 0 0 1px var(--kp-blue);
    }

    .kp-nav-link.is-active .kp-nav-icon {
        color: #FFFFFF;
        background: var(--kp-blue);
        box-shadow: 0 8px 18px rgba(20, 44, 79, 0.25);
    }

    .kp-nav-icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 28px;
        height: 28px;
        border: 1px solid #D5E4F3;
        border-radius: 8px;
        color: #143960;
        background: #FFFFFF;
        opacity: 1;
    }

    .kp-nav-icon svg {
        width: 16px;
        height: 16px;
    }

    .kp-sidebar-footer {
        width: 100%;
        padding: 12px 0 18px;
        border-top: 1px solid var(--kp-border);
        color: #506C91;
        font-size: 0;
        text-align: center;
    }

    .kp-sidebar-footer span {
        display: none;
    }

    .kp-sidebar-footer strong {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 42px;
        height: 42px;
        margin: 0;
        overflow: hidden;
        border-radius: 50%;
        color: transparent;
        background: #E8F1FA;
    }

    .kp-sidebar-footer strong::first-letter {
        color: #143960;
        font-size: 15px;
    }
}

.kp-main {
    min-width: 0;
    padding: 16px;
}

.kp-page-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 14px;
}

.kp-page-header h1,
.kp-card h2 {
    margin: 0;
    color: var(--kp-navy);
    line-height: 1.15;
}

.kp-page-header h1 {
    font-size: clamp(22px, 2.2vw, 30px);
}

.kp-card h2 {
    font-size: 15px;
    font-weight: 600;
}

.kp-eyebrow {
    margin: 0 0 6px;
    color: var(--kp-gold);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: uppercase;
}

.kp-header-card,
.kp-card,
.kp-login-card {
    border: 1px solid var(--kp-border);
    border-radius: 8px;
    background: var(--kp-white);
    box-shadow: 0 4px 14px rgba(26, 44, 68, 0.035);
}

.kp-header-card {
    min-width: 190px;
    padding: 14px 16px;
}

.kp-header-card span,
.kp-header-card strong {
    display: block;
}

.kp-header-card span {
    color: var(--kp-muted);
    font-size: 13px;
}

.kp-content {
    display: grid;
    gap: 18px;
}

.kp-card {
    padding: 18px;
}

.kp-card p {
    margin: 10px 0 0;
    color: var(--kp-muted);
    line-height: 1.65;
}

.kp-welcome-card,
.kp-profile-summary,
.kp-section-heading,
.kp-card-topline,
.kp-file-row,
.kp-task-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.kp-welcome-card {
    align-items: flex-start;
}

.kp-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 10px 15px;
    border: 1px solid #B8D6EF;
    border-radius: 8px;
    color: var(--kp-navy);
    background: var(--kp-white);
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}

.kp-button-primary {
    border-color: var(--kp-blue-dark);
    color: var(--kp-white);
    background: var(--kp-blue-dark);
}

.kp-portal .kp-button.kp-button-primary,
.kp-portal button.kp-button.kp-button-primary,
.kp-portal a.kp-button.kp-button-primary {
    border-color: var(--kp-blue-dark) !important;
    color: var(--kp-white) !important;
    background: var(--kp-blue-dark) !important;
}

.kp-portal .kp-button.kp-button-primary:hover,
.kp-portal .kp-button.kp-button-primary:focus,
.kp-portal button.kp-button.kp-button-primary:hover,
.kp-portal button.kp-button.kp-button-primary:focus,
.kp-portal a.kp-button.kp-button-primary:hover,
.kp-portal a.kp-button.kp-button-primary:focus {
    border-color: #1F5F89 !important;
    color: var(--kp-white) !important;
    background: #1F5F89 !important;
}

.kp-button:disabled,
.kp-button[disabled] {
    cursor: not-allowed;
    opacity: 0.55;
}

.kp-metric-grid,
.kp-list-grid,
.kp-property-grid,
.kp-field-grid,
.kp-detail-grid {
    display: grid;
    gap: 16px;
}

.kp-metric-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.kp-list-grid,
.kp-property-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.kp-field-grid,
.kp-detail-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.kp-metric-card strong {
    display: block;
    margin: 8px 0;
    font-size: 34px;
    color: var(--kp-navy);
}

.kp-linked-card {
    color: inherit;
    text-decoration: none;
}

.kp-linked-card:hover,
.kp-linked-card:focus {
    border-color: rgba(200, 160, 77, 0.65);
    transform: translateY(-1px);
}

.kp-mini-row {
    display: grid;
    gap: 4px;
    padding: 12px 0;
    border-top: 1px solid var(--kp-border);
}

.kp-mini-row:first-of-type {
    border-top: 0;
}

.kp-mini-row strong {
    color: var(--kp-navy);
}

.kp-mini-row span {
    color: var(--kp-muted);
    font-size: 13px;
}

.kp-profile-form-actions {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 20px;
}

.kp-form-status {
    color: var(--kp-muted);
    font-size: 13px;
    font-weight: 700;
}

.kp-form-status.is-success {
    color: var(--kp-success);
}

.kp-form-status.is-error {
    color: var(--kp-error);
}

.kp-profile-card {
    border-color: #D5E4F3;
    background: #F8FBFE;
    box-shadow: none;
}

.kp-profile-summary {
    justify-content: flex-start;
    padding: 14px 16px;
}

.kp-profile-summary .kp-avatar {
    width: 48px;
    height: 48px;
    font-size: 15px;
}

.kp-profile-summary h2 {
    font-size: 16px;
    font-weight: 600;
}

.kp-profile-summary p {
    margin-top: 4px;
    line-height: 1.4;
}

.kp-profile-details-card,
.kp-completed-forms-card,
.kp-referral-link-card {
    padding: 16px;
}

.kp-profile-details-card .kp-section-heading,
.kp-completed-forms-card .kp-section-heading,
.kp-referral-link-card .kp-section-heading {
    margin-bottom: 12px;
}

.kp-referral-link-card p {
    margin: 0 0 12px;
    color: var(--kp-muted);
    font-size: 13px;
    line-height: 1.45;
}

.kp-referral-link-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
}

.kp-referral-link-row input {
    width: 100%;
    min-height: 38px;
    padding: 8px 10px;
    border: 1px solid var(--kp-border);
    border-radius: 8px;
    color: var(--kp-navy);
    background: #FFFFFF;
    font: inherit;
    font-size: 13px;
}

.kp-referral-modal {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 28px;
}

.kp-referral-modal.is-open {
    display: flex;
}

.kp-referral-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(6, 29, 59, 0.58);
    backdrop-filter: blur(3px);
}

.kp-referral-modal-panel {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    width: min(980px, 100%);
    height: min(820px, calc(100vh - 56px));
    border: 1px solid #CFE0EF;
    border-radius: 8px;
    background: #F8FBFE;
    box-shadow: 0 24px 70px rgba(6, 29, 59, 0.28);
    overflow: hidden;
}

.kp-referral-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 18px;
    border-bottom: 1px solid #DCEAF5;
    background: #FFFFFF;
}

.kp-referral-modal-header h2 {
    margin: 2px 0 0;
    color: var(--kp-navy);
    font-size: 19px;
}

.kp-referral-modal-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: 1px solid #CFE0EF;
    border-radius: 8px;
    background: #FFFFFF;
    color: var(--kp-navy);
    cursor: pointer;
    font-size: 24px;
    line-height: 1;
}

.kp-referral-modal-close:hover {
    background: #EEF6FC;
}

.kp-referral-modal iframe {
    width: 100%;
    height: 100%;
    border: 0;
    background: #F3F6FA;
}

html.kp-referral-modal-open,
html.kp-referral-modal-open body {
    overflow: hidden;
}

.kp-profile-details-card .kp-field-grid {
    gap: 12px;
}

.kp-profile-details-card .kp-field {
    gap: 5px;
}

.kp-profile-details-card .kp-field span {
    font-size: 12px;
}

.kp-profile-details-card .kp-field input,
.kp-profile-details-card .kp-field textarea {
    min-height: 36px;
    padding: 8px 10px;
    background: #FFFFFF;
}

.kp-profile-details-card .kp-field textarea {
    width: 100%;
    resize: vertical;
}

.kp-profile-details-card .kp-field select {
    width: 100%;
    min-height: 36px;
    padding: 8px 10px;
    border: 1px solid var(--kp-border);
    border-radius: 8px;
    color: var(--kp-navy);
    background: #FFFFFF;
    font: inherit;
}

.kp-profile-details-card .kp-field select[multiple] {
    min-height: 92px;
}

.kp-profile-details-card .kp-field.is-readonly input,
.kp-profile-details-card .kp-field.is-readonly textarea,
.kp-profile-details-card .kp-field.is-readonly select {
    color: #506C91;
    background: #EFF5FB;
}

.kp-checkbox-field {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 36px;
    padding: 7px 10px;
    border: 1px solid var(--kp-border);
    border-radius: 8px;
    background: #FFFFFF;
}

.kp-checkbox-field input {
    width: 16px;
    min-height: 16px;
}

.kp-checkbox-field small {
    color: var(--kp-navy);
    font-size: 12px;
    font-weight: 600;
}

.kp-profile-subsection {
    margin-top: 16px;
}

.kp-profile-subsection h3 {
    margin: 0 0 10px;
    color: var(--kp-navy);
    font-size: 14px;
    font-weight: 600;
}

.kp-profile-form-actions {
    margin-top: 14px;
}

.kp-profile-form-list {
    display: grid;
    gap: 10px;
}

.kp-profile-form-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid #BFDDF3;
    border-radius: 8px;
    background: #FFFFFF;
}

.kp-profile-form-row h3 {
    margin: 0;
    color: var(--kp-navy);
    font-size: 14px;
}

.kp-profile-form-row p {
    margin-top: 3px;
    line-height: 1.4;
    font-size: 12px;
}

.kp-profile-form-row .kp-button {
    min-height: 34px;
    padding: 7px 12px;
    font-size: 12px;
}

.kp-dashboard-schedule {
    display: grid;
    gap: 18px;
}

.kp-dashboard-schedule-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr);
    gap: 18px;
}

.kp-dashboard-schedule-grid h3 {
    margin: 0 0 10px;
    color: var(--kp-navy);
    font-size: 17px;
}

.kp-dashboard-timeline-item,
.kp-dashboard-meeting-item {
    display: grid;
    gap: 4px;
    padding: 12px 0;
    border-top: 1px solid var(--kp-border);
}

.kp-dashboard-timeline-item {
    color: inherit;
    text-decoration: none;
}

.kp-dashboard-timeline-item:hover strong,
.kp-dashboard-timeline-item:focus strong {
    color: #0077D9;
}

.kp-dashboard-timeline-item span,
.kp-dashboard-timeline-item small,
.kp-dashboard-meeting-item span,
.kp-dashboard-request-note {
    color: var(--kp-muted);
    font-size: 13px;
}

.kp-dashboard-timeline-item span {
    font-weight: 800;
}

.kp-dashboard-timeline-item strong,
.kp-dashboard-meeting-item strong {
    color: var(--kp-navy);
}

.kp-dashboard-request-note {
    margin: 14px 0 0;
}

.kp-dashboard-document-list {
    display: grid;
    gap: 0;
}

.kp-dashboard-document-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    padding: 13px 0;
    border-top: 1px solid var(--kp-border);
}

.kp-dashboard-document-item:first-child {
    border-top: 0;
}

.kp-dashboard-document-item strong,
.kp-dashboard-document-item span {
    display: block;
}

.kp-dashboard-document-item strong {
    color: var(--kp-navy);
}

.kp-dashboard-document-item div > span {
    margin-top: 3px;
    color: var(--kp-muted);
    font-size: 13px;
}

.kp-dashboard-document-item .kp-badge {
    flex: 0 0 auto;
    max-width: 44%;
    white-space: normal;
    text-align: center;
}

.kp-metric-card span,
.kp-field span,
.kp-detail-grid strong,
.kp-card-topline,
.kp-table th,
.kp-task-row time {
    color: var(--kp-muted);
    font-size: 13px;
    font-weight: 600;
}

.kp-badge {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    min-height: 26px;
    padding: 5px 9px;
    border-radius: 999px;
    color: var(--kp-slate);
    background: #F7F4EC;
    font-size: 12px;
    font-weight: 800;
}

.kp-badge-success {
    color: var(--kp-white);
    background: var(--kp-success);
}

.kp-badge-warning {
    color: var(--kp-white);
    background: var(--kp-warning);
}

.kp-message-panel {
    display: grid;
    gap: 14px;
    margin-top: 18px;
    padding: 18px;
    border: 1px solid var(--kp-border);
    border-radius: 8px;
    background: #FAF9F6;
}

.kp-message-row {
    display: flex;
}

.kp-message-row.is-client {
    justify-content: flex-end;
}

.kp-message-bubble {
    max-width: 72%;
    padding: 14px 16px;
    border-radius: 8px;
    color: var(--kp-navy);
    background: var(--kp-white);
    box-shadow: 0 6px 20px rgba(26, 44, 68, 0.08);
}

.kp-message-row.is-client .kp-message-bubble {
    color: var(--kp-white);
    background: var(--kp-slate);
}

.kp-message-bubble p {
    color: inherit;
}

.kp-message-bubble span {
    display: block;
    margin-top: 8px;
    font-size: 12px;
    opacity: 0.72;
}

.kp-message-input {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    margin-top: 16px;
}

.kp-message-portal {
    display: grid;
    gap: 16px;
}

.kp-message-hero,
.kp-message-setup,
.kp-message-workspace {
    border: 1px solid var(--kp-border);
    border-radius: 8px;
    background: var(--kp-white);
    box-shadow: 0 12px 32px rgba(26, 44, 68, 0.06);
}

.kp-message-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 16px 18px;
}

.kp-message-hero h2,
.kp-message-setup h3 {
    margin: 0;
    color: #061D3B;
}

.kp-message-hero h2 {
    font-size: 22px;
    line-height: 1.05;
}

.kp-message-hero p,
.kp-message-setup p {
    margin: 5px 0 0;
    color: #45638A;
}

.kp-message-setup {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 0.85fr);
    gap: 20px;
    padding: 22px;
}

.kp-message-source-list {
    display: grid;
    gap: 0;
    margin: 0;
}

.kp-message-source-list div {
    display: grid;
    grid-template-columns: 140px minmax(0, 1fr);
    gap: 14px;
    padding: 10px 0;
    border-bottom: 1px solid #E6EEF7;
}

.kp-message-source-list dt {
    color: #506C91;
    font-weight: 800;
}

.kp-message-source-list dd {
    margin: 0;
    color: #061D3B;
}

.kp-message-workspace {
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr);
    min-height: 660px;
    overflow: hidden;
}

.kp-message-workspace button {
    border-color: transparent;
    box-shadow: none;
}

.kp-portal .kp-message-workspace button {
    box-shadow: none !important;
    letter-spacing: 0 !important;
    text-decoration: none !important;
    text-transform: none !important;
}

.kp-message-mailboxes {
    display: grid;
    align-content: start;
    gap: 18px;
    padding: 16px;
    border-right: 1px solid var(--kp-border);
    background: var(--kp-white);
}

.kp-message-compose {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 10px 14px;
    border: 0 !important;
    border-radius: 8px;
    color: var(--kp-white);
    background: #19466A;
    font: inherit;
    font-weight: 800;
}

.kp-portal button.kp-message-compose {
    display: inline-flex !important;
    width: 100%;
    border: 0 !important;
    color: var(--kp-white) !important;
    background: #19466A !important;
}

.kp-message-compose:hover,
.kp-message-compose:focus {
    color: var(--kp-white);
    background: #143A58;
}

.kp-message-compose:disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

.kp-message-mailboxes nav,
.kp-message-custom-folders {
    display: grid;
    gap: 6px;
}

.kp-message-mailboxes nav button,
.kp-message-custom-folders button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 42px;
    padding: 10px 12px;
    border: 0;
    border-radius: 8px;
    color: #061D3B;
    background: transparent;
    font: inherit;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
}

.kp-message-mailboxes nav button:hover,
.kp-message-mailboxes nav button:focus,
.kp-message-custom-folders button:hover,
.kp-message-custom-folders button:focus,
.kp-message-mailboxes nav button.is-active,
.kp-message-custom-folders button.is-active {
    background: #E8F1FA;
}

.kp-message-mailboxes nav b,
.kp-message-custom-folders b {
    min-width: 22px;
    padding: 2px 6px;
    border-radius: 999px;
    color: #315B7A;
    background: #F3F8FD;
    font-size: 11px;
    font-weight: 700;
    text-align: center;
}

.kp-message-folder-create {
    min-height: 36px;
    padding: 8px 10px;
    border: 1px solid #B8D6EF !important;
    border-radius: 8px;
    color: #143960 !important;
    background: #FFFFFF !important;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}

.kp-message-folder-create:hover,
.kp-message-folder-create:focus {
    background: #EDF4FA !important;
}

.kp-message-inbox-main {
    min-width: 0;
    background: var(--kp-white);
}

.kp-message-thread-layout {
    display: grid;
    grid-template-columns: minmax(330px, 0.32fr) minmax(0, 1fr);
    min-height: 560px;
}

.kp-message-inbox-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-height: 58px;
    padding: 14px 22px;
    border-bottom: 1px solid var(--kp-border);
}

.kp-message-inbox-header div {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #061D3B;
    font-size: 17px;
}

.kp-message-inbox-header > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 26px;
    height: 26px;
    padding: 0 9px;
    border-radius: 999px;
    color: #45638A;
    background: #EFF5FB;
    font-size: 13px;
    font-weight: 800;
}

.kp-message-inbox-rows {
    display: grid;
    align-content: start;
    border-right: 1px solid var(--kp-border);
    background: #FFFFFF;
}

.kp-message-inbox-empty {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    padding: 16px;
    border-bottom: 1px solid var(--kp-border);
    color: #45638A;
}

.kp-message-inbox-empty strong {
    display: block;
    color: #061D3B;
    font-size: 14px;
}

.kp-message-inbox-empty span:not(.kp-message-avatar) {
    display: block;
    margin-top: 4px;
    font-size: 13px;
    line-height: 1.4;
}

.kp-message-inbox-row {
    position: relative;
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    min-height: 78px;
    width: 100%;
    padding: 12px 16px;
    border-bottom: 1px solid var(--kp-border);
    border-left: 0;
    border-right: 0;
    border-top: 0;
    color: inherit;
    background: transparent;
    font: inherit;
    text-align: left;
    cursor: pointer;
    appearance: none;
}

.kp-portal .kp-message-inbox-row {
    display: grid !important;
    grid-template-columns: 40px minmax(0, 1fr) 64px !important;
    align-items: center !important;
    width: 100% !important;
    min-height: 84px !important;
    padding: 13px 16px !important;
    border: 0 !important;
    border-bottom: 1px solid var(--kp-border) !important;
    border-radius: 0 !important;
    color: #061D3B !important;
    background: #FFFFFF !important;
    outline: 0;
    text-align: left !important;
}

.kp-message-inbox-row:hover,
.kp-message-inbox-row:focus,
.kp-message-inbox-row.is-active {
    background: #F3F8FC;
}

.kp-portal .kp-message-inbox-row:hover,
.kp-portal .kp-message-inbox-row:focus,
.kp-portal .kp-message-inbox-row.is-active {
    background: #F3F8FC !important;
}

.kp-message-inbox-row.is-active {
    box-shadow: inset 4px 0 0 var(--kp-blue);
}

.kp-portal .kp-message-inbox-row.is-active {
    box-shadow: inset 4px 0 0 var(--kp-blue) !important;
}

.kp-message-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    color: #174A73;
    background: #E8F1FA;
    font-size: 12px;
    font-weight: 800;
}

.kp-message-row-content {
    min-width: 0;
}

.kp-message-row-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-width: 0;
}

.kp-message-row-title strong,
.kp-message-row-subject,
.kp-message-row-preview {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.kp-message-row-title strong {
    color: #061D3B;
}

.kp-message-row-title span {
    display: inline-flex;
    align-items: center;
    min-height: 21px;
    padding: 2px 7px;
    border-radius: 999px;
    color: #506C91;
    background: #EFF5FB;
    font-size: 12px;
    font-weight: 800;
}

.kp-message-row-subject {
    display: block;
    margin-top: 3px;
    color: #061D3B;
    font-size: 13px;
    font-weight: 800;
}

.kp-message-row-preview {
    display: block;
    margin-top: 5px;
    color: #45638A;
    font-size: 13px;
}

.kp-message-inbox-row time {
    color: #506C91;
    font-size: 12px;
    text-align: right;
    white-space: nowrap;
}

.kp-message-thread-panels {
    min-width: 0;
    background: #F4F8FB;
}

.kp-message-thread-panel {
    display: none;
    min-height: 100%;
}

.kp-message-thread-panel.is-active {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
}

.kp-message-thread-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 20px;
    border-bottom: 1px solid var(--kp-border);
    background: var(--kp-white);
}

.kp-message-thread-identity {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    min-width: 0;
}

.kp-message-thread-header h3 {
    overflow: hidden;
    margin: 5px 0 3px;
    color: #061D3B;
    font-size: 19px;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.kp-message-thread-header p {
    overflow: hidden;
    margin: 0;
    color: #506C91;
    font-size: 13px;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.kp-message-thread-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.kp-message-thread-actions label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    color: #49637D;
    font-size: 12px;
    font-weight: 500;
}

.kp-message-thread-actions select,
.kp-message-thread-actions button {
    min-height: 34px;
    border: 1px solid #B8D6EF !important;
    border-radius: 7px;
    color: #143960 !important;
    background: #FFFFFF !important;
    font: inherit;
    font-size: 12px;
    font-weight: 600;
}

.kp-message-thread-actions select {
    max-width: 170px;
    padding: 6px 28px 6px 10px;
}

.kp-message-thread-actions button {
    padding: 6px 10px;
    cursor: pointer;
}

.kp-message-thread-actions button:hover,
.kp-message-thread-actions button:focus,
.kp-message-thread-actions select:hover,
.kp-message-thread-actions select:focus {
    background: #EDF4FA !important;
}

.kp-portal .kp-message-thread-header .kp-button,
.kp-portal .kp-message-modal-footer .kp-button {
    display: inline-flex !important;
    border-color: #B8D6EF !important;
    color: #143960 !important;
    background: #FFFFFF !important;
}

.kp-portal .kp-message-modal-footer .kp-button-primary {
    border-color: #19466A !important;
    color: #FFFFFF !important;
    background: #19466A !important;
}

.kp-message-conversation {
    display: grid;
    align-content: start;
    gap: 10px;
    padding: 18px 20px;
    background: #FFFFFF;
}

.kp-message-conversation-row {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    width: 100%;
    max-width: none;
    padding: 10px 14px;
    border: 1px solid #DCE8F3;
    border-radius: 8px;
    background: #FFFFFF;
}

.kp-message-conversation-row.is-client {
    grid-template-columns: 42px minmax(0, 1fr);
    justify-self: stretch;
}

.kp-message-conversation-row.is-pending {
    grid-template-columns: minmax(0, 1fr);
}

.kp-message-conversation-row.is-client .kp-message-conversation-bubble {
    grid-column: 2;
    grid-row: 1;
    color: #061D3B;
    background: transparent;
}

.kp-message-conversation-bubble {
    padding: 0;
    border: 0;
    border-radius: 0;
    color: #061D3B;
    background: transparent;
    box-shadow: none;
}

.kp-message-conversation-row.is-kerja .kp-message-conversation-bubble {
    border-top-left-radius: 0;
}

.kp-message-conversation-row.is-client .kp-message-conversation-bubble {
    border-top-right-radius: 0;
}

.kp-message-conversation-bubble strong {
    display: block;
    margin-bottom: 4px;
    font-size: 14px;
}

.kp-message-conversation-bubble div {
    color: inherit;
    font-size: 14px;
    line-height: 1.55;
}

.kp-message-conversation-bubble p {
    margin: 8px 0 0;
}

.kp-message-conversation-bubble time {
    display: block;
    margin-top: 5px;
    color: #7A8BA1;
    font-size: 11px;
    opacity: 1;
}

.kp-message-attachment-list {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 10px;
}

.kp-message-attachment-list a,
.kp-message-attachment-list span {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 9px;
    border: 1px solid #D5E4F3;
    border-radius: 999px;
    color: #143960;
    background: #FFFFFF;
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}

.kp-message-conversation-row.is-client .kp-message-attachment-list a,
.kp-message-conversation-row.is-client .kp-message-attachment-list span {
    border-color: #D5E4F3;
    color: #143960;
    background: #F8FBFE;
}

.kp-message-thread-footer {
    display: flex;
    justify-content: flex-start;
    padding: 14px 20px;
    border-top: 1px solid var(--kp-border);
    background: #FFFFFF;
}

.kp-portal .kp-message-thread-footer .kp-button {
    border-color: #B8D6EF !important;
    color: #143960 !important;
    background: #FFFFFF !important;
}

.kp-message-thread-reply::before {
    content: "+";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    margin-right: 8px;
    border-radius: 50%;
    color: #FFFFFF;
    background: #19466A;
    font-size: 13px;
    line-height: 1;
}

.kp-message-empty-thread {
    padding: 18px;
    border: 1px dashed #B8D6EF;
    border-radius: 8px;
    color: #45638A;
    background: var(--kp-white);
}

.kp-message-modal {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.kp-message-modal.is-open {
    display: flex;
}

.kp-message-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(26, 44, 68, 0.48);
}

.kp-message-modal-dialog {
    position: relative;
    z-index: 1;
    width: min(720px, 100%);
    max-height: min(760px, calc(100vh - 48px));
    overflow: hidden;
    border: 1px solid #B8D6EF;
    border-top: 4px solid var(--kp-blue);
    border-radius: 8px;
    background: var(--kp-white);
    box-shadow: 0 26px 70px rgba(26, 44, 68, 0.28);
}

.kp-message-modal-header,
.kp-message-modal-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 20px;
    border-bottom: 1px solid #DCE8F3;
}

.kp-message-modal-header h2 {
    margin: 0;
    color: #061D3B;
    font-size: 18px;
}

.kp-message-modal-header button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 8px;
    color: #506C91;
    background: transparent;
    font: inherit;
    font-size: 20px;
    cursor: pointer;
}

.kp-message-modal-header button:hover,
.kp-message-modal-header button:focus {
    background: #EFF5FB;
}

.kp-message-modal-body {
    display: grid;
    gap: 14px;
    max-height: calc(100vh - 220px);
    overflow-y: auto;
    padding: 18px 20px;
}

.kp-message-modal-row {
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr) auto;
    gap: 10px;
    align-items: start;
    margin: 0;
    color: #061D3B;
    font-size: 14px;
    font-weight: 700;
}

.kp-message-modal-row small {
    grid-column: 2 / -1;
    margin-top: -4px;
    color: #66798C;
    font-size: 12px;
    line-height: 1.35;
}

.kp-message-modal-row.is-hidden {
    display: none;
}

.kp-message-modal-row > span {
    padding-top: 10px;
}

.kp-message-modal-row b {
    color: var(--kp-error);
}

.kp-message-modal-row input,
.kp-message-modal-row select,
.kp-message-modal-row textarea {
    width: 100%;
    min-height: 42px;
    padding: 10px 12px;
    border: 1px solid #D5E4F3;
    border-radius: 8px;
    color: #061D3B;
    background: var(--kp-white);
    font: inherit;
    font-weight: 500;
}

.kp-message-modal-row select[multiple] {
    min-height: 96px;
    padding: 6px;
}

.kp-message-modal-row select[multiple] option {
    padding: 6px 8px;
}

.kp-message-modal-row input[readonly] {
    color: #061D3B;
    background: #F8FBFE;
}

.kp-message-modal-row button {
    min-height: 42px;
    border: 0;
    color: #19466A;
    background: transparent;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}

.kp-message-editor-row {
    align-items: stretch;
}

.kp-message-editor {
    grid-column: 2 / -1;
    border: 1px solid #D5E4F3;
    border-radius: 8px;
    overflow: hidden;
    background: var(--kp-white);
}

.kp-message-editor-toolbar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    min-height: 38px;
    padding: 6px 10px;
    border-bottom: 1px solid #D5E4F3;
    color: #3D526B;
    background: #FBFCFE;
    font-size: 13px;
}

.kp-message-editor-toolbar select {
    height: 28px;
    max-width: 104px;
    padding: 0 7px;
    border: 0;
    border-radius: 6px;
    color: #17334F;
    background: #EEF4FA;
    font: inherit;
    font-size: 12px;
    font-weight: 400;
}

.kp-message-editor-toolbar button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 28px;
    padding: 0 7px;
    border: 0;
    border-radius: 6px;
    color: #3D526B;
    background: transparent;
    font: inherit;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
}

.kp-message-editor-toolbar button:hover,
.kp-message-editor-toolbar button:focus {
    background: #EDF4FA;
}

.kp-message-rich-editor {
    display: block;
    min-height: 220px;
    max-height: 320px;
    overflow: auto;
    padding: 13px 15px;
    border: 0;
    border-radius: 0;
    color: #17334F;
    background: #FFFFFF;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.48;
    outline: none;
    cursor: text;
}

.kp-message-rich-editor:focus {
    box-shadow: inset 0 0 0 2px rgba(20, 44, 79, 0.14);
}

.kp-message-rich-editor:empty::before {
    color: #7C8EA2;
    content: attr(data-placeholder);
}

.kp-message-rich-editor ul,
.kp-message-rich-editor ol,
.kp-message-conversation-bubble ul,
.kp-message-conversation-bubble ol {
    margin: 8px 0 8px 22px;
    padding: 0;
}

.is-underline {
    text-decoration: underline;
}

.is-strike {
    text-decoration: line-through;
}

.kp-message-modal-footer {
    justify-content: flex-start;
    border-top: 1px solid #DCE8F3;
    border-bottom: 0;
    background: #F8FBFE;
}

.kp-message-modal-footer span {
    color: #506C91;
    font-size: 13px;
}

.kp-notes-portal {
    display: grid;
    gap: 16px;
}

.kp-notes-hero,
.kp-notes-filterbar,
.kp-note-timeline-card {
    border: 1px solid var(--kp-border);
    border-radius: 8px;
    background: var(--kp-white);
    box-shadow: 0 12px 32px rgba(26, 44, 68, 0.06);
}

.kp-notes-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 22px;
}

.kp-notes-hero h2 {
    margin: 0;
    color: #061D3B;
    font-size: 28px;
    line-height: 1.05;
}

.kp-notes-hero p {
    margin: 7px 0 0;
    color: #45638A;
}

.kp-notes-filterbar {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 14px;
}

.kp-notes-filterbar span {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 8px 12px;
    border: 1px solid #B8D6EF;
    border-radius: 999px;
    color: #143960;
    background: #FFFFFF;
    font-size: 13px;
    font-weight: 800;
}

.kp-notes-filterbar span.is-active {
    color: #06456E;
    background: var(--kp-blue-soft);
}

.kp-notes-timeline {
    position: relative;
    display: grid;
    gap: 14px;
}

.kp-notes-timeline::before {
    position: absolute;
    top: 10px;
    bottom: 10px;
    left: 18px;
    width: 2px;
    background: #D5E4F3;
    content: "";
}

.kp-note-timeline-card {
    position: relative;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 12px;
    padding: 16px 18px;
}

.kp-note-marker {
    position: relative;
    z-index: 1;
    width: 14px;
    height: 14px;
    margin: 8px auto 0;
    border: 3px solid #FFFFFF;
    border-radius: 50%;
    background: var(--kp-gold);
    box-shadow: 0 0 0 1px #D5E4F3;
}

.kp-note-card-main {
    min-width: 0;
}

.kp-note-card-main header,
.kp-note-card-main footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.kp-note-card-main header > div {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.kp-note-source,
.kp-note-card-main time,
.kp-note-card-main footer span {
    color: #506C91;
    font-size: 13px;
    font-weight: 800;
}

.kp-note-card-main h3 {
    margin: 13px 0 8px;
    color: #061D3B;
    font-size: 21px;
}

.kp-note-body {
    color: #45638A;
    line-height: 1.7;
}

.kp-note-body p {
    margin: 8px 0 0;
}

.kp-note-card-main footer {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid #E6EEF7;
}

.kp-note-replies {
    display: grid;
    gap: 12px;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid #E6EEF7;
}

.kp-note-reply-list {
    display: grid;
    gap: 10px;
}

.kp-note-reply {
    padding: 12px 14px;
    border: 1px solid #D6E4F2;
    border-radius: 8px;
    background: #F8FBFE;
}

.kp-note-reply strong {
    color: #061D3B;
    font-size: 13px;
}

.kp-note-reply span {
    margin-left: 8px;
    color: #607B9C;
    font-size: 12px;
}

.kp-note-reply p {
    margin: 6px 0 0;
    color: #1A2C44;
    font-size: 14px;
}

.kp-note-reply-form {
    display: grid;
    gap: 10px;
}

.kp-note-reply-form label {
    display: grid;
    gap: 6px;
    color: #45638A;
    font-size: 13px;
    font-weight: 750;
}

.kp-note-reply-form textarea {
    min-height: 86px;
    resize: vertical;
    border: 1px solid #C7DAEC;
    border-radius: 8px;
    padding: 10px 12px;
    color: #061D3B;
    background: #FFFFFF;
    font: inherit;
}

.kp-note-reply-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.kp-note-reply-actions span {
    color: #607B9C;
    font-size: 12px;
}

.kp-field {
    display: grid;
    gap: 8px;
}

.kp-field input,
.kp-message-input input {
    width: 100%;
    min-height: 42px;
    padding: 10px 12px;
    border: 1px solid var(--kp-border);
    border-radius: 8px;
    color: var(--kp-navy);
    background: #FAF9F6;
}

.kp-avatar {
    width: 64px;
    height: 64px;
    font-size: 20px;
}

.kp-table-wrap {
    width: 100%;
    overflow-x: auto;
}

.kp-table {
    width: 100%;
    min-width: 620px;
    border-collapse: collapse;
}

.kp-table th,
.kp-table td {
    padding: 14px 12px;
    border-bottom: 1px solid var(--kp-border);
    text-align: left;
}

.kp-property-card {
    padding: 0;
    overflow: hidden;
}

.kp-property-image {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 16 / 10;
    color: rgba(255, 255, 255, 0.88);
    background:
        linear-gradient(135deg, rgba(26, 44, 68, 0.86), rgba(61, 82, 107, 0.76)),
        repeating-linear-gradient(45deg, #3D526B 0 10px, #49617E 10px 20px);
    font-weight: 800;
}

.kp-property-image-large {
    margin-bottom: 20px;
    border-radius: 8px;
}

.kp-property-body {
    display: grid;
    gap: 14px;
    padding: 18px;
}

.kp-property-body dl {
    display: grid;
    gap: 10px;
    margin: 0;
}

.kp-mini-dl {
    display: grid;
    gap: 8px;
    margin: 14px 0 0;
}

.kp-mini-dl div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding-top: 8px;
    border-top: 1px solid var(--kp-border);
}

.kp-mini-dl dt {
    color: var(--kp-muted);
    font-weight: 800;
}

.kp-mini-dl dd {
    margin: 0;
    text-align: right;
}

.kp-property-body div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
}

.kp-property-body dt {
    color: var(--kp-muted);
    font-weight: 800;
}

.kp-property-body dd {
    margin: 0;
    text-align: right;
}

.kp-back-link {
    display: inline-flex;
    color: var(--kp-slate);
    font-weight: 800;
    text-decoration: none;
}

.kp-detail-grid span {
    display: grid;
    gap: 5px;
    padding: 14px;
    border: 1px solid var(--kp-border);
    border-radius: 8px;
    background: #FAF9F6;
}

.kp-property-portal,
.kp-property-detail {
    display: grid;
    gap: 16px;
}

.kp-print-brand,
.kp-print-footer {
    display: none;
}

.kp-property-detail-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    grid-column: 1 / -1;
    gap: 14px;
    padding: 2px 2px 4px;
}

.kp-property-hero,
.kp-property-list,
.kp-property-detail-hero {
    border: 1px solid var(--kp-border);
    border-radius: 8px;
    background: var(--kp-white);
    box-shadow: 0 12px 32px rgba(26, 44, 68, 0.06);
}

.kp-property-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 20px;
}

.kp-property-hero h2 {
    margin: 0;
    color: #061D3B;
    font-size: 24px;
    line-height: 1.1;
}

.kp-property-hero p {
    margin: 6px 0 0;
    color: #45638A;
}

.kp-property-list {
    display: grid;
    overflow: hidden;
}

.kp-property-listing {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    min-height: 172px;
    padding: 16px 18px;
    border-bottom: 1px solid var(--kp-border);
    color: #061D3B;
    text-decoration: none;
    transition: none;
}

.kp-property-listing:last-child {
    border-bottom: 0;
}

.kp-property-listing:hover,
.kp-property-listing:focus {
    background: transparent;
}

.kp-property-thumb {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 150px;
    overflow: hidden;
    border-radius: 0;
    color: rgba(255, 255, 255, 0.92);
    background:
        linear-gradient(135deg, rgba(26, 44, 68, 0.72), rgba(20, 44, 79, 0.42)),
        repeating-linear-gradient(45deg, #3D526B 0 12px, #49617E 12px 24px);
    font-size: 13px;
    font-weight: 800;
    text-align: center;
}

.kp-property-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.kp-property-listing-main {
    display: grid;
    grid-template-columns: minmax(300px, 0.62fr) minmax(0, 1fr);
    grid-template-rows: auto auto auto;
    gap: 6px 18px;
    align-content: center;
    align-items: center;
    min-width: 0;
}

.kp-property-listing-topline,
.kp-property-listing-main > strong,
.kp-property-asking-price,
.kp-property-location,
.kp-property-address {
    grid-column: 1;
}

.kp-property-listing-topline,
.kp-property-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.kp-property-listing-topline time,
.kp-property-location,
.kp-property-address,
.kp-property-meta span {
    color: #506C91;
    font-size: 13px;
    font-weight: 700;
}

.kp-property-asking-price {
    overflow: hidden;
    color: #061D3B;
    font-size: 15px;
    font-weight: 800;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.kp-property-listing-main strong {
    overflow: hidden;
    color: #061D3B;
    font-size: 21px;
    line-height: 1.18;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.kp-property-listing-info {
    display: grid;
    grid-column: 2;
    grid-row: 1 / 6;
    gap: 14px;
    align-items: center;
    align-self: center;
    padding-top: 2px;
}

.kp-property-listing-profile > span {
    display: grid;
    gap: 2px;
    min-width: 0;
    align-content: center;
}

.kp-property-listing-profile small {
    overflow: hidden;
    color: #506C91;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.2;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.kp-property-listing-profile b {
    overflow: hidden;
    color: #061D3B;
    font-size: 12px;
    font-weight: 650;
    line-height: 1.28;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.kp-property-meta span {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 6px 9px;
    border-radius: 999px;
    background: #EFF5FB;
}

.kp-property-listing-profile {
    display: grid;
    grid-template-columns: repeat(4, minmax(120px, 1fr));
    gap: 7px 14px;
    width: 100%;
}

.kp-property-listing-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 9px 13px;
    border: 1px solid #B8D6EF;
    border-radius: 8px;
    color: #143960;
    background: #FFFFFF;
    font-size: 13px;
    font-weight: 800;
    white-space: nowrap;
}

.kp-property-detail-hero {
    display: grid;
    grid-template-columns: minmax(460px, 0.56fr) minmax(360px, 0.44fr);
    gap: 16px;
    align-items: start;
    padding: 14px;
}

.kp-property-detail-hero .kp-property-image-large {
    min-height: 210px;
    margin-bottom: 0;
}

.kp-property-detail-summary {
    display: grid;
    align-content: start;
    gap: 10px;
    min-width: 0;
    padding: 4px 6px 4px 2px;
}

.kp-property-detail-summary h2 {
    margin: 0;
    color: #061D3B;
    font-size: clamp(25px, 2.4vw, 32px);
    line-height: 1.1;
}

.kp-property-detail-summary p {
    margin: 0;
    color: #45638A;
    font-size: 14px;
}

.kp-property-detail-summary .kp-property-detail-price {
    color: #061D3B;
    font-size: 18px;
    font-weight: 800;
}

.kp-property-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
    gap: 16px;
}

.kp-property-media-frame,
.kp-property-media-frame img,
.kp-property-media-collage {
    width: 100%;
    border-radius: 0;
}

.kp-property-media-frame {
    overflow: hidden;
    background: #E8F1FA;
}

.kp-property-media-frame img {
    display: block;
    height: 100%;
    object-fit: cover;
}

.kp-property-media-collage {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(150px, 1fr);
    gap: 4px;
    overflow: hidden;
    height: 280px;
    min-height: 0;
    background: transparent;
}

.kp-property-media-primary,
.kp-property-media-preview {
    display: block;
    width: 100%;
    min-width: 0;
    padding: 0;
    overflow: hidden;
    border: 0;
    outline: 0;
    color: inherit;
    background: transparent;
    cursor: pointer;
}

.kp-portal .kp-property-media-primary:hover,
.kp-portal .kp-property-media-primary:focus,
.kp-portal .kp-property-media-primary:active,
.kp-portal .kp-property-media-preview:hover,
.kp-portal .kp-property-media-preview:focus,
.kp-portal .kp-property-media-preview:active {
    border-color: transparent !important;
    color: inherit !important;
    background: transparent !important;
    box-shadow: none !important;
}

.kp-property-media-primary:focus-visible,
.kp-property-media-preview:focus-visible,
.kp-property-photo-count:focus-visible,
.kp-property-photo-header button:focus-visible,
.kp-property-photo-nav:focus-visible,
.kp-property-photo-thumbs button:focus-visible {
    outline: 2px solid var(--kp-navy);
    outline-offset: 2px;
}

.kp-property-media-primary img,
.kp-property-media-preview img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 180ms ease, filter 180ms ease;
}

.kp-property-media-primary:hover img,
.kp-property-media-primary:focus img,
.kp-property-media-preview:hover img,
.kp-property-media-preview:focus img {
    filter: none;
    transform: none;
}

.kp-property-media-previews {
    position: relative;
    display: grid;
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 4px;
    min-height: 0;
}

.kp-property-media-preview.is-empty {
    cursor: default;
}

.kp-property-photo-count {
    position: absolute;
    right: 12px;
    bottom: 12px;
    min-height: 38px;
    padding: 9px 15px;
    border: 1px solid #2D6F99;
    border-radius: 8px;
    color: #FFFFFF;
    background: #2D6F99;
    box-shadow: none;
    font-size: 12px;
    font-weight: 850;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    cursor: pointer;
}

.kp-portal .kp-property-photo-count,
.kp-portal .kp-property-media-primary,
.kp-portal .kp-property-media-preview,
.kp-portal .kp-property-photo-nav,
.kp-portal .kp-property-photo-header button,
.kp-portal .kp-property-photo-thumbs button {
    border-color: transparent;
    box-shadow: none;
}

.kp-portal .kp-property-photo-count {
    border-color: #2D6F99 !important;
    color: #FFFFFF !important;
    background: #2D6F99 !important;
}

.kp-portal .kp-property-photo-count:hover,
.kp-portal .kp-property-photo-count:focus,
.kp-portal .kp-property-photo-count:active {
    border-color: #255C80 !important;
    color: #FFFFFF !important;
    background: #255C80 !important;
}

.kp-portal .kp-property-photo-nav,
.kp-portal .kp-property-photo-nav:hover,
.kp-portal .kp-property-photo-nav:focus,
.kp-portal .kp-property-photo-nav:active {
    display: grid !important;
    border-color: transparent !important;
    color: #FFFFFF !important;
    background: rgba(6, 29, 59, 0.62) !important;
    box-shadow: none !important;
    opacity: 1 !important;
}

.kp-portal .kp-property-photo-nav:hover,
.kp-portal .kp-property-photo-nav:focus {
    background: rgba(6, 29, 59, 0.82) !important;
}

.kp-property-hero-profile {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
    gap: 7px 12px;
    margin: 4px 0 0;
    padding-top: 10px;
    border-top: 1px solid #DCE8F3;
}

.kp-property-hero-profile div {
    min-width: 0;
}

.kp-property-hero-profile dt {
    margin: 0 0 2px;
    color: #506C91;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.25;
    text-transform: uppercase;
}

.kp-property-hero-profile dd {
    margin: 0;
    overflow: hidden;
    color: #061D3B;
    font-size: 12px;
    font-weight: 650;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.kp-property-hero-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

.kp-property-hero-actions .kp-button {
    min-height: 36px;
    padding: 8px 12px;
    font-size: 12px;
}

.kp-property-photo-modal {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: none;
    color: #061D3B;
}

.kp-photo-modal-open {
    overflow: hidden;
}

.kp-property-photo-modal.is-open {
    display: block;
}

.kp-property-photo-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(6, 29, 59, 0.72);
}

.kp-property-photo-dialog {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    width: min(100vw - 32px, 1280px);
    height: min(100vh - 32px, 860px);
    margin: 16px auto;
    overflow: hidden;
    border-radius: 8px;
    background: #FFFFFF;
    box-shadow: 0 24px 80px rgba(6, 29, 59, 0.34);
}

.kp-property-photo-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 52px;
    padding: 12px 18px;
    border-bottom: 1px solid #DCE8F3;
    background: #FFFFFF;
}

.kp-property-photo-header strong {
    min-width: 0;
    overflow: hidden;
    font-size: 18px;
    font-weight: 750;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.kp-property-photo-header button {
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 50%;
    color: #506C91;
    background: transparent;
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
}

.kp-property-photo-stage {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 0;
    padding: 28px 72px;
    background: #F7F9FC;
}

.kp-property-photo-slide {
    display: none;
    width: 100%;
    height: 100%;
    margin: 0;
    place-items: center;
}

.kp-property-photo-slide.is-active {
    display: grid;
}

.kp-property-photo-slide img {
    display: block;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.kp-property-photo-nav {
    position: absolute;
    top: 50%;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 50%;
    color: #FFFFFF;
    background: rgba(6, 29, 59, 0.56);
    font-size: 38px;
    line-height: 1;
    transform: translateY(-50%);
    cursor: pointer;
}

.kp-property-photo-nav:hover,
.kp-property-photo-nav:focus {
    background: rgba(6, 29, 59, 0.76);
}

.kp-property-photo-nav.is-prev {
    left: 18px;
}

.kp-property-photo-nav.is-next {
    right: 18px;
}

.kp-property-photo-footer {
    display: grid;
    gap: 12px;
    padding: 14px 18px 18px;
    border-top: 1px solid #DCE8F3;
    background: #FFFFFF;
    text-align: center;
}

.kp-property-photo-footer > span {
    font-size: 16px;
    font-weight: 750;
}

.kp-property-photo-thumbs {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    padding-bottom: 2px;
}

.kp-property-photo-thumbs button {
    flex: 0 0 96px;
    height: 64px;
    padding: 0;
    overflow: hidden;
    border: 2px solid transparent;
    border-radius: 4px;
    background: #E8F1FA;
    cursor: pointer;
}

.kp-property-photo-thumbs button.is-active {
    border-color: var(--kp-blue, var(--kp-navy));
}

.kp-property-photo-thumbs img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.kp-property-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(300px, 0.65fr);
    gap: 12px;
    align-items: start;
}

.kp-property-section-stack,
.kp-property-side-stack {
    display: grid;
    gap: 12px;
}

.kp-property-detail-section h2,
.kp-property-description-card h2,
.kp-property-map-card h2,
.kp-property-note-card h2,
.kp-property-doc-card h2 {
    margin: 0;
    color: #061D3B;
    font-size: 17px;
}

.kp-property-detail-section,
.kp-property-description-card,
.kp-property-map-card,
.kp-property-note-card,
.kp-property-doc-card {
    padding: 16px;
}

.kp-property-description-body {
    margin: 10px 0 0;
    color: #203A58;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
}

.kp-property-description-body p,
.kp-property-description-body ul,
.kp-property-description-body ol {
    margin: 0 0 14px;
}

.kp-property-description-body p:last-child,
.kp-property-description-body ul:last-child,
.kp-property-description-body ol:last-child {
    margin-bottom: 0;
}

.kp-property-description-body ul,
.kp-property-description-body ol {
    padding-left: 22px;
}

.kp-property-description-body li {
    line-height: 1.35;
    margin: 0 0 2px;
}

.kp-property-description-body li p {
    margin: 0;
}

.kp-property-description-body strong,
.kp-property-description-body b {
    color: #061D3B;
    font-weight: 750;
}

.kp-property-detail-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 30px;
    margin: 10px 0 0;
}

.kp-property-detail-list div {
    display: grid;
    grid-template-columns: minmax(128px, 185px) minmax(0, 1fr);
    gap: 12px;
    align-items: baseline;
    padding: 8px 0;
    border-bottom: 1px solid #E6EEF7;
}

.kp-property-detail-list div:last-child {
    border-bottom: 0;
}

.kp-property-detail-list dt {
    color: #506C91;
    font-size: 12px;
    font-weight: 650;
    line-height: 1.25;
}

.kp-property-detail-list dd {
    margin: 0;
    color: #061D3B;
    font-size: 13px;
    font-weight: 550;
    line-height: 1.35;
    text-align: left;
    overflow-wrap: anywhere;
}

.kp-property-map-card iframe {
    width: 100%;
    height: 210px;
    margin-top: 10px;
    border: 0;
    border-radius: 8px;
    background: #E8F1FA;
}

.kp-property-note-item {
    padding-top: 10px;
    margin-top: 10px;
    border-top: 1px solid #E6EEF7;
}

.kp-property-note-item:first-of-type {
    margin-top: 0;
}

.kp-property-note-item strong {
    color: #061D3B;
    font-size: 13px;
    font-weight: 650;
}

.kp-property-note-item span {
    display: block;
    margin-top: 3px;
    color: #506C91;
    font-size: 11px;
    font-weight: 600;
}

.kp-property-note-item p {
    margin: 6px 0 0;
    color: #45638A;
    font-size: 13px;
    line-height: 1.45;
}

.kp-note-attachment-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}

.kp-note-attachment-list a {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 9px;
    border: 1px solid #D5E4F3;
    border-radius: 999px;
    color: #0E5F9F;
    background: #F8FBFE;
    font-size: 12px;
    font-weight: 650;
    text-decoration: none;
}

.kp-note-attachment-list a:hover,
.kp-note-attachment-list a:focus {
    background: #EAF6FD;
}

.kp-property-doc-list {
    display: grid;
    gap: 8px;
    margin-top: 10px;
}

.kp-property-doc-list div,
.kp-property-doc-list a {
    display: grid;
    gap: 3px;
    padding: 9px 10px;
    border: 1px solid #D5E4F3;
    border-radius: 8px;
    color: #061D3B;
    background: #F8FBFE;
    text-decoration: none;
}

.kp-property-doc-list a:hover,
.kp-property-doc-list a:focus {
    background: #EAF6FD;
}

.kp-property-doc-list span {
    color: #506C91;
    font-size: 12px;
    font-weight: 600;
}

.kp-attachment-modal {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: none;
    color: #061D3B;
}

.kp-attachment-modal-open {
    overflow: hidden;
}

.kp-attachment-modal.is-open {
    display: block;
}

.kp-attachment-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(6, 29, 59, 0.68);
}

.kp-attachment-dialog {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    width: min(100vw - 32px, 1120px);
    height: min(100vh - 32px, 780px);
    margin: 16px auto;
    overflow: hidden;
    border-radius: 8px;
    background: #FFFFFF;
    box-shadow: 0 24px 80px rgba(6, 29, 59, 0.34);
}

.kp-attachment-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 52px;
    padding: 12px 18px;
    border-bottom: 1px solid #DCE8F3;
}

.kp-attachment-header strong {
    min-width: 0;
    overflow: hidden;
    font-size: 16px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.kp-attachment-header button {
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 50%;
    color: #506C91;
    background: transparent;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
}

.kp-attachment-dialog iframe {
    width: 100%;
    height: 100%;
    border: 0;
    background: #F7F9FC;
}

.kp-file-list,
.kp-task-list,
.kp-faq-list {
    display: grid;
    gap: 12px;
}

.kp-resources-page-card {
    min-width: 0;
    overflow: visible;
}

.kp-elementor-content {
    color: var(--kp-navy);
    min-width: 0;
    width: 100%;
}

.kp-card .kp-elementor-content > * {
    margin-block-start: 0;
}

.kp-elementor-content .elementor {
    max-width: none;
}

.kp-elementor-content .elementor-section,
.kp-elementor-content .elementor-container,
.kp-elementor-content .elementor-widget-wrap {
    max-width: none;
}

.kp-resources-page-card .elementor p,
.kp-resources-page-card .elementor ul,
.kp-resources-page-card .elementor ol {
    color: inherit;
    font-size: inherit;
    line-height: inherit;
}

.kp-resources-page-card .elementor-2253 .elementor-element.elementor-element-bbb28cc {
    --justify-content: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 20px;
}

.kp-resources-page-card .elementor-2253 .elementor-element.elementor-element-bbb28cc > .elementor-element-de1cbb8,
.kp-resources-page-card .elementor-2253 .elementor-element.elementor-element-bbb28cc > .elementor-element-688aa2d {
    flex: 0 1 300px;
    width: 300px;
    max-width: 100%;
}

.kp-file-summary-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 16px;
}

.kp-files-intro-card h1 {
    margin: 0;
    color: var(--kp-navy);
    font-size: 28px;
    line-height: 1.15;
}

.kp-files-intro-card p:last-child {
    max-width: 760px;
    margin-top: 10px;
}

.kp-files-layout-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    align-items: start;
}

.kp-files-panel {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    min-height: 0;
    height: 360px;
    padding: 18px;
    overflow: hidden;
}

.kp-files-upload-panel {
    grid-template-rows: auto auto;
}

.kp-files-panel > .kp-section-heading {
    margin-bottom: 10px;
}

.kp-files-panel > p,
.kp-files-panel > .kp-file-list,
.kp-files-panel > .kp-file-group-list {
    min-height: 0;
    overflow: auto;
    padding-right: 4px;
}

.kp-files-panel > p {
    margin: 0;
}

.kp-files-panel .kp-section-heading h2 {
    font-size: 18px;
}

.kp-files-panel .kp-file-list {
    gap: 8px;
}

.kp-file-summary-card span {
    color: #506C91;
    font-size: 13px;
    font-weight: 800;
}

.kp-file-summary-card strong {
    display: block;
    margin-top: 8px;
    color: #061D3B;
    font-size: 32px;
}

.kp-file-group-list {
    display: grid;
    gap: 10px;
}

.kp-file-group {
    padding: 11px;
    border: 1px solid #D5E4F3;
    border-radius: 8px;
    background: #F8FBFE;
}

.kp-file-group header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
}

.kp-file-group h3 {
    margin: 0;
    color: #061D3B;
    font-size: 14px;
    line-height: 1.25;
}

.kp-file-group p {
    margin: 3px 0 0;
    color: #45638A;
    font-size: 12px;
}

.kp-upload-form {
    display: grid;
    gap: 10px;
    margin-top: 8px;
}

.kp-upload-form label {
    display: grid;
    gap: 7px;
    color: #506C91;
    font-size: 13px;
    font-weight: 800;
}

.kp-upload-form input,
.kp-upload-form textarea {
    width: 100%;
    padding: 9px 10px;
    border: 1px solid #D5E4F3;
    border-radius: 8px;
    color: #061D3B;
    background: #F8FBFE;
    font: inherit;
}

.kp-upload-actions {
    display: flex;
    align-items: center;
    gap: 14px;
}

.kp-upload-actions span {
    color: #506C91;
    font-size: 13px;
}

.kp-file-row,
.kp-task-row,
.kp-faq-item {
    padding: 10px 11px;
    border: 1px solid var(--kp-border);
    border-radius: 8px;
    background: #FAF9F6;
}

.kp-file-row h2 {
    margin: 0 0 3px;
    font-size: 14px;
    line-height: 1.25;
}

.kp-file-row p {
    margin: 0;
    font-size: 12px;
    line-height: 1.35;
}

.kp-files-panel .kp-file-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    border-color: #D5E4F3;
    background: #F8FBFE;
}

.kp-files-panel .kp-file-row .kp-button {
    min-height: 32px;
    padding: 7px 10px;
    font-size: 12px;
}

.kp-files-panel .kp-deal-line {
    padding: 7px 0;
    gap: 8px;
    font-size: 13px;
}

.kp-files-panel .kp-deal-line em {
    font-size: 11px;
}

.kp-task-row label {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    font-weight: 800;
}

.kp-task-row input {
    width: 18px;
    height: 18px;
}

.kp-task-row div {
    display: flex;
    align-items: center;
    gap: 10px;
}

.kp-task-description {
    width: 100%;
    margin: 8px 0 0;
    color: var(--kp-muted);
    font-size: 13px;
}

.kp-faq-item summary {
    cursor: pointer;
    color: var(--kp-navy);
    font-weight: 800;
}

.kp-login-gate {
    display: grid;
    place-items: center;
    min-height: 560px;
    padding: 36px 18px;
    background: var(--kp-bg);
}

.kp-login-card {
    width: min(520px, 100%);
    padding: 34px;
    text-align: center;
}

.kp-login-mark {
    margin: 0 auto 18px;
}

.kp-login-card h2 {
    margin: 0;
    color: var(--kp-navy);
    font-size: 30px;
    line-height: 1.15;
}

.kp-login-card p:not(.kp-eyebrow) {
    color: var(--kp-muted);
    line-height: 1.65;
}

.kp-mobile-bar,
.kp-bottombar,
.kp-sticky-primary,
.kp-overlay {
    display: none;
}

.kp-admin-diagnostic {
    border-color: rgba(184, 135, 43, 0.35);
    background: #FFFDF7;
}

.kp-diagnostic-output {
    max-height: 260px;
    margin: 14px 0 0;
    overflow: auto;
    padding: 14px;
    border: 1px solid var(--kp-border);
    border-radius: 8px;
    color: var(--kp-navy);
    background: #FAF9F6;
    font-size: 12px;
    line-height: 1.55;
    white-space: pre-wrap;
}

.kp-deal-portal,
.kp-docs-portal {
    display: grid;
    gap: 16px;
}

.kp-deal-hero,
.kp-docs-hero,
.kp-deal-stage-card,
.kp-deal-workspace,
.kp-doc-section {
    border: 1px solid var(--kp-border);
    border-radius: 8px;
    background: var(--kp-white);
    box-shadow: 0 12px 32px rgba(26, 44, 68, 0.06);
}

.kp-deal-hero,
.kp-docs-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 22px;
}

.kp-deal-hero {
    border-color: #D5E4F3;
    box-shadow: none;
}

.kp-deal-hero h2,
.kp-docs-hero h2 {
    margin: 0;
    color: #061D3B;
    font-size: 28px;
    line-height: 1.05;
}

.kp-deal-hero p,
.kp-docs-hero p {
    margin: 7px 0 0;
    color: #45638A;
}

.kp-deal-actions,
.kp-doc-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.kp-deal-stage-card {
    display: none;
    padding: 18px;
}

.kp-deal-stage-card.is-active {
    display: block;
}

.kp-deal-stage-dates {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
    color: #355075;
    font-size: 13px;
}

.kp-deal-stage-track {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 10px;
}

.kp-deal-stage-track span {
    position: relative;
    min-height: 36px;
    padding: 10px 8px;
    border-top: 1px solid var(--kp-border);
    border-bottom: 1px solid var(--kp-border);
    color: #143960;
    font-size: 12px;
    text-align: center;
}

.kp-deal-stage-track span.is-active {
    color: #06456E;
    background: var(--kp-blue-soft);
    font-weight: 800;
}

.kp-deal-workspace {
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    border-color: #D5E4F3;
    overflow: hidden;
    box-shadow: none;
}

.kp-deal-sidebar {
    display: grid;
    align-content: start;
    gap: 12px;
    padding: 16px;
    border-right: 1px solid var(--kp-border);
    background: #FBFCFE;
}

.kp-deal-selector {
    display: grid;
    gap: 5px;
    width: 100%;
    min-height: 92px;
    padding: 14px 16px;
    border: 1px solid #D5E4F3;
    border-radius: 8px;
    color: inherit;
    background: var(--kp-white);
    font: inherit;
    text-align: left;
}

.kp-deal-selector strong,
.kp-deal-selector small {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}

.kp-deal-selector strong {
    white-space: nowrap;
}

.kp-deal-selector small {
    line-height: 1.35;
}

.kp-deal-selector.is-active,
.kp-deal-selector:hover,
.kp-deal-selector:focus {
    border-color: #7CBCEB;
    background: #FFFFFF;
    outline: none;
}

button.kp-deal-selector {
    cursor: pointer;
}

.kp-deal-selector-note {
    cursor: default;
}

.kp-deal-selector span {
    color: #5D7796;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.25;
}

.kp-deal-selector strong {
    color: #071F3E;
    font-size: 16px;
    line-height: 1.25;
}

.kp-deal-selector small {
    color: #45638A;
}

.kp-deal-selector-counts {
    margin-top: 2px;
    overflow: hidden;
    color: #236F9F;
    font-size: 10px;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.kp-deal-main {
    min-width: 0;
}

.kp-deal-panel-set {
    display: none;
}

.kp-deal-panel-set.is-active {
    display: block;
}

.kp-deal-main-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 22px;
    border-bottom: 1px solid var(--kp-border);
}

.kp-deal-main-header h2,
.kp-deal-panel h3,
.kp-doc-section h3 {
    margin: 0;
    color: #061D3B;
}

.kp-deal-main-header p {
    margin: 5px 0 0;
    color: #45638A;
}

.kp-deal-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 14px 22px;
    border-bottom: 1px solid var(--kp-border);
    background: #F8FBFE;
}

.kp-deal-tabs button {
    display: inline-flex;
    min-height: 34px;
    align-items: center;
    padding: 8px 13px;
    border: 1px solid #B8D6EF;
    border-radius: 999px;
    color: #143960;
    background: var(--kp-white);
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
}

.kp-deal-tabs button.is-active {
    color: #06456E;
    background: var(--kp-blue-soft);
}

.kp-deal-tabs button span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    min-height: 20px;
    margin-left: 5px;
    padding: 2px 6px;
    border-radius: 999px;
    color: #236F9F;
    background: #EAF6FD;
    font-size: 11px;
}

.kp-deal-section {
    display: none;
    padding: 18px;
    background: #FBFCFE;
}

.kp-deal-section.is-active {
    display: block;
}

.kp-deal-panel-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.kp-deal-summary-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 14px;
}

.kp-deal-summary-strip div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 15px;
    border: 1px solid #D5E4F3;
    border-radius: 8px;
    background: #F8FBFE;
}

.kp-deal-summary-strip span {
    color: #506C91;
    font-size: 13px;
    font-weight: 800;
}

.kp-deal-summary-strip strong {
    color: #061D3B;
    font-size: 22px;
}

.kp-deal-panel {
    min-width: 0;
    padding: 16px;
    border: 1px solid #D5E4F3;
    border-radius: 8px;
    background: var(--kp-white);
}

.kp-deal-panel p {
    color: #45638A;
}

.kp-deal-info-list {
    display: grid;
    gap: 0;
    margin: 14px 0 0;
    max-height: 430px;
    overflow: auto;
}

.kp-deal-info-list div,
.kp-deal-line {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    padding: 11px 0;
    border-bottom: 1px solid #E6EEF7;
}

.kp-deal-info-list dt {
    color: #506C91;
}

.kp-deal-info-list dd {
    margin: 0;
    color: #061D3B;
    font-weight: 800;
    text-align: right;
}

.kp-deal-contact {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 16px;
}

.kp-deal-contact > span,
.kp-doc-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    color: #496582;
    background: #E8EEF5;
    font-weight: 800;
}

.kp-deal-contact small {
    display: block;
    color: #45638A;
}

.kp-deal-line button,
.kp-deal-line em,
.kp-doc-actions button {
    border: 0;
    color: #0077D9;
    background: transparent;
    font-style: normal;
    font-weight: 800;
}

.kp-deal-line span {
    min-width: 0;
}

.kp-deal-line span strong {
    display: block;
    color: #061D3B;
}

.kp-deal-line span a {
    color: #061D3B;
    font-weight: 800;
    text-decoration: none;
}

.kp-deal-line span a:hover,
.kp-deal-line span a:focus {
    color: #0077D9;
    text-decoration: underline;
}

.kp-deal-line span small {
    display: block;
    margin-top: 2px;
    color: #5D7796;
}

.kp-deal-note {
    margin-top: 12px;
    padding: 14px;
    border: 1px solid #D5E4F3;
    border-radius: 8px;
    background: #FFFFFF;
}

.kp-deal-note:first-of-type {
    margin-top: 0;
}

.kp-deal-note p {
    margin: 8px 0;
}

.kp-deal-note-compact {
    padding: 12px;
}

.kp-deal-note-compact p {
    font-size: 13px;
    line-height: 1.45;
}

.kp-deal-note small,
.kp-deal-latest-note span {
    color: #5D7796;
    font-size: 12px;
}

.kp-deal-source-note {
    margin: 0 0 14px;
    padding: 10px 12px;
    border: 1px solid #D6E4F2;
    border-radius: 8px;
    color: #45638A;
    background: #F8FBFE;
    font-size: 13px;
    line-height: 1.5;
}

.kp-deal-client-note {
    border-left-color: #19466A;
    background: #F8FBFE;
}

.kp-deal-client-comments {
    display: grid;
    gap: 14px;
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid #E6EEF7;
}

.kp-deal-client-comments > h3 {
    margin-bottom: 0;
}

.kp-deal-client-comments > p {
    margin: 0;
    color: #45638A;
    font-size: 14px;
}

.kp-deal-comment {
    background: #FFFFFF;
}

.kp-deal-latest-note {
    display: grid;
    gap: 4px;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid #E6EEF7;
}

.kp-deal-message-shell {
    display: grid;
    gap: 14px;
}

.kp-deal-message-bubble {
    max-width: 720px;
    padding: 16px;
    border: 1px solid #D5E4F3;
    border-radius: 16px 16px 16px 4px;
    background: #F8FBFE;
}

.kp-deal-message-bubble.is-client {
    justify-self: end;
    border-radius: 16px 16px 4px 16px;
    background: #EAF6FD;
}

.kp-deal-message-bubble span,
.kp-deal-message-bubble small {
    display: block;
    color: #5D7796;
    font-size: 12px;
}

.kp-deal-message-bubble span {
    margin-top: 4px;
    font-weight: 800;
}

.kp-deal-message-bubble p {
    margin: 9px 0;
    color: #183A5C;
}

.kp-deal-inline-status {
    margin: 0;
    color: #5D7796;
    font-size: 13px;
}

.kp-deal-task-description {
    margin: 10px 0 0;
    border-bottom: 1px solid #E6EEF7;
    color: #45638A;
    font-size: 13px;
}

.kp-deal-task-card {
    display: grid;
    gap: 12px;
    padding: 15px;
    border: 1px solid #D5E4F3;
    border-radius: 8px;
    background: #FFFFFF;
}

.kp-deal-task-card + .kp-deal-task-card {
    margin-top: 12px;
}

.kp-deal-task-main {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.kp-deal-task-main span {
    display: grid;
    gap: 5px;
    min-width: 0;
}

.kp-deal-task-main strong {
    color: #061D3B;
    font-size: 15px;
}

.kp-deal-task-main small {
    color: #5D7796;
    font-size: 12px;
    font-weight: 700;
}

.kp-deal-task-main em {
    flex: 0 0 auto;
    padding: 6px 10px;
    border-radius: 999px;
    color: #19466A;
    background: #EAF6FD;
    font-size: 12px;
    font-style: normal;
    font-weight: 850;
}

.kp-deal-task-main em.is-complete {
    color: #2F6F4E;
    background: #E6F4EC;
}

.kp-deal-task-notes,
.kp-deal-task-attachments {
    display: grid;
    gap: 10px;
    padding-top: 12px;
    border-top: 1px solid #E6EEF7;
}

.kp-deal-task-notes > strong,
.kp-deal-task-attachments > strong {
    color: #061D3B;
    font-size: 13px;
}

.kp-deal-note-attachments {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

.kp-deal-note-attachments a,
.kp-deal-note-attachments span {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 9px;
    border: 1px solid #D5E4F3;
    border-radius: 999px;
    color: #19466A;
    background: #F8FBFE;
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}

.kp-task-complete-form {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    padding-top: 12px;
    border-top: 1px solid #E6EEF7;
}

.kp-task-complete-form span {
    color: #5D7796;
    font-size: 12px;
}

.kp-client-task-board {
    padding: 20px;
}

.kp-client-task-list {
    display: grid;
    gap: 14px;
}

.kp-client-task-card {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 14px;
    padding: 16px;
    border: 1px solid #D5E4F3;
    border-radius: 8px;
    background: #FFFFFF;
}

.kp-client-task-check span {
    display: block;
    width: 16px;
    height: 16px;
    margin-top: 4px;
    border: 1px solid #BCD4EA;
    border-radius: 4px;
    background: #F8FBFE;
}

.kp-client-task-body {
    display: grid;
    gap: 12px;
    min-width: 0;
}

.kp-client-task-main {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.kp-client-task-main h3 {
    margin: 2px 0 0;
    color: #061D3B;
    font-size: 17px;
    line-height: 1.25;
}

.kp-client-task-label {
    margin: 0;
    color: #5D7796;
    font-size: 12px;
    font-weight: 700;
}

.kp-client-task-main em {
    flex: 0 0 auto;
    padding: 6px 10px;
    border-radius: 999px;
    color: #19466A;
    background: #EAF6FD;
    font-size: 12px;
    font-style: normal;
    font-weight: 850;
}

.kp-client-task-main em.is-complete {
    color: #2F6F4E;
    background: #E6F4EC;
}

.kp-client-task-description {
    margin: 0;
    color: #335175;
    font-size: 14px;
}

.kp-client-task-panel {
    display: grid;
    gap: 10px;
    padding: 12px;
    border: 1px solid #E6EEF7;
    border-radius: 8px;
    background: #F8FBFE;
}

.kp-client-task-panel > strong {
    color: #061D3B;
    font-size: 13px;
}

.kp-client-task-note {
    display: grid;
    gap: 4px;
    padding: 10px 0 0;
    border-top: 1px solid #E6EEF7;
}

.kp-client-task-note:first-of-type {
    padding-top: 0;
    border-top: 0;
}

.kp-client-task-note span {
    color: #061D3B;
    font-size: 13px;
    font-weight: 800;
}

.kp-client-task-note p {
    margin: 0;
    color: #335175;
    font-size: 13px;
}

.kp-client-task-note small {
    color: #7187A3;
    font-size: 12px;
}

.kp-task-comment-form {
    display: grid;
    gap: 10px;
    padding-top: 12px;
    border-top: 1px solid #E6EEF7;
}

.kp-task-comment-form label {
    display: grid;
    gap: 6px;
    color: #375A7F;
    font-size: 12px;
    font-weight: 800;
}

.kp-task-comment-form textarea,
.kp-task-comment-form input[type="file"] {
    width: 100%;
    border: 1px solid #D5E4F3;
    border-radius: 8px;
    color: #061D3B;
    background: #FFFFFF;
    font: inherit;
}

.kp-task-comment-form textarea {
    min-height: 82px;
    padding: 10px 12px;
    resize: vertical;
}

.kp-task-comment-form input[type="file"] {
    padding: 9px 10px;
}

.kp-task-comment-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.kp-task-comment-actions span {
    color: #5D7796;
    font-size: 12px;
}

.kp-task-list-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.kp-task-list-hero h2,
.kp-task-detail-hero h2,
.kp-task-detail-card h3 {
    margin: 0;
    color: #061D3B;
    letter-spacing: 0;
}

.kp-task-list-hero p,
.kp-task-detail-hero p,
.kp-muted-text {
    margin: 6px 0 0;
    color: #49698C;
}

.kp-task-list-modern {
    display: grid;
    gap: 12px;
}

.kp-task-list-item {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    padding: 16px 18px;
    border: 1px solid #D5E4F3;
    border-radius: 10px;
    color: inherit;
    background: #FFFFFF;
    box-shadow: 0 12px 28px rgba(26, 44, 68, 0.06);
    text-decoration: none;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.kp-task-list-item:hover,
.kp-task-list-item:focus-visible {
    border-color: #98C8F1;
    color: inherit;
    background: #FFFFFF;
    box-shadow: 0 16px 34px rgba(26, 44, 68, 0.1);
    transform: translateY(-1px);
}

.kp-task-checkmark {
    width: 22px;
    height: 22px;
    border: 2px solid #B6D3EC;
    border-radius: 7px;
    background: #F8FBFE;
}

.kp-task-checkmark.is-complete {
    border-color: #2F6F4E;
    background: #E6F4EC;
    position: relative;
}

.kp-task-checkmark.is-complete::after {
    content: "";
    position: absolute;
    left: 6px;
    top: 2px;
    width: 6px;
    height: 12px;
    border: solid #2F6F4E;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.kp-task-list-main {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.kp-task-list-main strong {
    color: #061D3B;
    font-size: 16px;
    line-height: 1.25;
}

.kp-task-list-main > span:not(.kp-task-list-kicker) {
    color: #49698C;
    font-size: 13px;
}

.kp-task-list-kicker {
    color: #5D7796;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.kp-task-list-meta {
    display: grid;
    justify-items: end;
    gap: 6px;
}

.kp-task-list-meta em,
.kp-task-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    padding: 6px 10px;
    border-radius: 999px;
    color: #19466A;
    background: #EAF6FD;
    font-size: 12px;
    font-style: normal;
    font-weight: 850;
}

.kp-task-list-meta em.is-progress,
.kp-task-status.is-progress {
    color: #8A5D0B;
    background: #FFF3D6;
}

.kp-task-list-meta em.is-complete,
.kp-task-status.is-complete {
    color: #2F6F4E;
    background: #E6F4EC;
}

.kp-task-list-meta small {
    color: #7187A3;
    font-size: 12px;
}

.kp-task-detail-shell {
    display: grid;
    gap: 16px;
}

.kp-task-detail-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.kp-task-back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 10px;
    color: #245F91;
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
}

.kp-task-back::before {
    content: "←";
}

.kp-task-hero-actions {
    display: grid;
    justify-items: end;
    gap: 10px;
    min-width: 190px;
}

.kp-task-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(320px, 0.85fr);
    gap: 16px;
    align-items: start;
}

.kp-task-detail-card {
    display: grid;
    gap: 16px;
}

.kp-task-meta-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 18px;
    margin: 0;
}

.kp-task-meta-grid div {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 10px;
    padding: 9px 0;
    border-bottom: 1px solid #E6EEF7;
}

.kp-task-meta-grid dt {
    color: #5D7796;
    font-size: 12px;
    font-weight: 800;
}

.kp-task-meta-grid dd {
    margin: 0;
    color: #061D3B;
    font-size: 13px;
    font-weight: 650;
}

.kp-task-description-box {
    display: grid;
    gap: 8px;
    padding: 14px;
    border: 1px solid #D5E4F3;
    border-radius: 10px;
    background: #F8FBFE;
}

.kp-task-description-box strong {
    color: #061D3B;
    font-size: 13px;
}

.kp-task-description-box p {
    margin: 0;
    color: #2C4A6D;
    font-size: 14px;
    line-height: 1.55;
}

.kp-task-file-list {
    display: grid;
    gap: 8px;
}

.kp-task-file-list.is-inline {
    display: flex;
    flex-wrap: wrap;
    margin-top: 8px;
}

.kp-task-file-pill {
    display: grid;
    gap: 3px;
    padding: 10px 12px;
    border: 1px solid #D5E4F3;
    border-radius: 9px;
    color: #061D3B;
    background: #FFFFFF;
    text-decoration: none;
}

.kp-task-file-pill:hover,
.kp-task-file-pill:focus-visible {
    border-color: #98C8F1;
    color: #061D3B;
    background: #F8FBFE;
}

.kp-task-file-pill span {
    font-size: 13px;
    font-weight: 800;
}

.kp-task-file-pill small {
    color: #7187A3;
    font-size: 12px;
}

.kp-task-timeline {
    display: grid;
    gap: 12px;
}

.kp-task-timeline-item {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 12px;
    padding: 14px;
    border: 1px solid #E6EEF7;
    border-radius: 10px;
    background: #FFFFFF;
}

.kp-task-avatar {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    color: #164466;
    background: #EAF3FB;
    font-size: 12px;
    font-weight: 850;
    text-transform: uppercase;
}

.kp-task-timeline-item header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 6px;
}

.kp-task-timeline-item strong {
    color: #061D3B;
    font-size: 14px;
}

.kp-task-timeline-item time {
    color: #7187A3;
    font-size: 12px;
}

.kp-task-timeline-item p {
    margin: 0;
    color: #335175;
    font-size: 13px;
    line-height: 1.5;
}

.kp-task-upload-button {
    position: relative;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0 14px;
    border: 1px solid #B6D3EC;
    border-radius: 8px;
    color: #17496E !important;
    background: #FFFFFF;
    cursor: pointer;
}

.kp-task-upload-button input {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

.kp-task-upload-button span {
    color: inherit !important;
    font-size: 13px !important;
    font-weight: 850 !important;
}

.kp-task-complete-form {
    justify-content: flex-end;
    border-top: 0;
    padding-top: 0;
}

.kp-task-complete-form span {
    max-width: 190px;
    text-align: right;
}

.kp-task-detail-card.kp-client-task-card {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 24px;
}

.kp-task-list-hero,
.kp-task-detail-hero {
    gap: 14px;
    padding: 18px 20px;
}

.kp-task-detail-hero h2 {
    font-size: 21px;
}

.kp-task-detail-card h3 {
    font-size: 15px;
}

.kp-task-list-hero p,
.kp-task-detail-hero p,
.kp-muted-text {
    margin-top: 4px;
    font-size: 13px;
}

.kp-task-list-modern {
    gap: 8px;
}

.kp-task-list-item {
    gap: 12px;
    padding: 12px 14px;
    border-radius: 8px;
    box-shadow: none;
}

.kp-task-list-item:hover,
.kp-task-list-item:focus-visible {
    box-shadow: 0 8px 18px rgba(26, 44, 68, 0.055);
    transform: none;
}

.kp-task-list-main strong {
    font-size: 14px;
}

.kp-task-list-main > span:not(.kp-task-list-kicker) {
    font-size: 12px;
}

.kp-task-list-kicker {
    font-size: 10px;
}

.kp-task-list-meta em,
.kp-task-status {
    min-height: 26px;
    padding: 5px 9px;
    font-size: 11px;
}

.kp-task-detail-shell,
.kp-task-detail-grid {
    gap: 10px;
}

.kp-task-back {
    margin-bottom: 8px;
    font-size: 12px;
}

.kp-task-back::before {
    content: "<";
}

.kp-task-detail-card,
.kp-task-detail-card.kp-client-task-card {
    gap: 12px;
    padding: 16px 18px;
}

.kp-task-meta-grid div {
    gap: 8px;
    padding: 7px 0;
}

.kp-task-meta-grid dt {
    font-size: 11px;
}

.kp-task-meta-grid dd {
    font-size: 12px;
    font-weight: 600;
}

.kp-task-description-box {
    gap: 6px;
    padding: 10px 12px;
}

.kp-task-description-box p {
    font-size: 13px;
    line-height: 1.45;
}

.kp-task-file-pill {
    padding: 8px 10px;
}

.kp-task-file-pill span,
.kp-task-timeline-item strong {
    font-size: 12px;
}

.kp-task-timeline {
    gap: 8px;
}

.kp-task-timeline-item {
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 10px;
    padding: 10px 12px;
    border-radius: 8px;
}

.kp-task-avatar {
    width: 30px;
    height: 30px;
}

.kp-task-timeline-item p,
.kp-client-task-note p {
    font-size: 12px;
}

.kp-task-list-hero,
.kp-task-detail-hero {
    gap: 12px;
    padding: 14px 16px;
}

.kp-task-detail-hero h2 {
    font-size: 19px;
}

.kp-task-detail-card h3 {
    font-size: 14px;
}

.kp-task-list-item {
    grid-template-columns: 28px minmax(0, 1fr) auto;
    gap: 10px;
    padding: 10px 12px;
}

.kp-task-list-main strong {
    font-size: 13px;
}

.kp-task-checkmark {
    width: 18px;
    height: 18px;
    border-width: 1px;
    border-radius: 5px;
}

.kp-task-checkmark.is-complete::after {
    left: 5px;
    top: 1px;
    width: 5px;
    height: 10px;
}

.kp-task-list-meta {
    gap: 4px;
}

.kp-task-list-meta em,
.kp-task-status {
    min-height: 23px;
    padding: 4px 8px;
    font-size: 10px;
    font-weight: 750;
}

.kp-task-detail-card,
.kp-task-detail-card.kp-client-task-card {
    gap: 10px;
    padding: 14px 16px;
}

.kp-task-meta-grid {
    gap: 0 14px;
}

.kp-task-meta-grid div {
    gap: 8px;
    padding: 6px 0;
}

.kp-task-description-box {
    gap: 6px;
    padding: 9px 10px;
}

.kp-task-file-pill {
    padding: 7px 9px;
}

.kp-task-timeline-item {
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 9px;
    padding: 9px 10px;
    border-radius: 8px;
}

.kp-task-avatar {
    width: 28px;
    height: 28px;
}

.kp-task-upload-button {
    min-height: 34px;
    padding: 0 12px;
}

.kp-task-comment-actions {
    gap: 8px;
}

.kp-message-workspace {
    grid-template-columns: 220px minmax(0, 1fr);
    min-height: 620px;
    box-shadow: 0 4px 16px rgba(26, 44, 68, 0.04);
}

.kp-message-thread-layout {
    grid-template-columns: minmax(300px, 0.34fr) minmax(0, 1fr);
}

.kp-message-inbox-row,
.kp-portal .kp-message-inbox-row {
    min-height: 74px !important;
    padding: 11px 14px !important;
}

.kp-message-row-subject {
    display: inline-flex;
    width: fit-content;
    max-width: 100%;
    min-height: 20px;
    align-items: center;
    margin-top: 4px;
    padding: 2px 7px;
    border-radius: 999px;
    color: #19466A;
    background: #EAF3FB;
    font-size: 11px;
    font-weight: 800;
}

.kp-message-row-title strong {
    font-size: 14px;
}

.kp-message-thread-panel.is-active {
    max-height: 620px;
}

.kp-message-conversation {
    overflow-y: auto;
    padding: 24px;
}

.kp-message-conversation-row {
    max-width: none;
}

.kp-message-thread-footer {
    position: static;
    display: flex;
    padding: 14px 20px;
    background: #FFFFFF;
}

.kp-message-thread-composer {
    display: grid;
    gap: 8px;
}

.kp-message-thread-composer label {
    display: grid;
    gap: 5px;
    margin: 0;
    color: #506C91;
    font-size: 12px;
    font-weight: 800;
}

.kp-message-thread-composer textarea {
    width: 100%;
    min-height: 78px;
    padding: 10px 12px;
    border: 1px solid #D5E4F3;
    border-radius: 8px;
    color: #061D3B;
    background: #FFFFFF;
    font: inherit;
    resize: vertical;
}

.kp-message-thread-composer textarea:disabled {
    color: #7187A3;
    background: #F8FBFE;
    cursor: not-allowed;
}

.kp-message-thread-composer button:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.kp-message-composer-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.kp-message-attach-button {
    position: relative;
    display: inline-flex !important;
    min-height: 36px;
    align-items: center;
    justify-content: center;
    padding: 0 12px;
    border: 1px solid #B8D6EF;
    border-radius: 8px;
    color: #143960 !important;
    background: #FFFFFF;
    cursor: pointer;
}

.kp-message-attach-button input {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

.kp-message-thread-composer small {
    color: #6B7280;
    font-size: 12px;
}

.kp-message-portal,
.kp-message-portal p,
.kp-message-portal span,
.kp-message-portal div,
.kp-message-portal button,
.kp-message-portal input,
.kp-message-portal textarea,
.kp-message-portal select {
    font-weight: 400;
}

.kp-message-portal strong,
.kp-message-portal h2,
.kp-message-portal h3 {
    font-weight: 600;
}

.kp-message-portal[data-kp-message-compose-mode="reply"] [data-kp-message-subject-row],
.kp-message-portal[data-kp-message-compose-mode="reply"] [data-kp-message-type-row] {
    display: none;
}

.kp-message-workspace {
    grid-template-columns: 220px minmax(0, 1fr);
    min-height: 700px;
    border: 1px solid #DDE6EF;
    border-radius: 8px;
    background: #FFFFFF;
}

.kp-message-mailboxes {
    padding: 14px 0;
    gap: 16px;
    background: #FFFFFF;
}

.kp-message-compose {
    width: calc(100% - 28px);
    margin: 0 14px;
    min-height: 42px;
    border-radius: 5px;
    font-weight: 600;
}

.kp-message-folder-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: 4px 14px 0;
    padding-top: 14px;
    border-top: 1px solid #DDE8F2;
    color: #8493A5;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: uppercase;
}

.kp-message-folder-heading button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    min-height: 24px;
    padding: 0;
    border: 0 !important;
    border-radius: 6px;
    color: #315B7A !important;
    background: transparent !important;
    font: inherit;
    font-size: 16px;
    line-height: 1;
    cursor: pointer;
}

.kp-message-folder-heading button:hover,
.kp-message-folder-heading button:focus {
    background: #EEF6FB !important;
}

.kp-message-mailboxes nav,
.kp-message-custom-folders {
    gap: 0;
}

.kp-message-mailboxes nav button,
.kp-message-custom-folders button {
    min-height: 44px;
    padding: 10px 18px;
    border-radius: 0;
    color: #17334F;
    font-size: 14px;
    font-weight: 400;
}

.kp-message-mailboxes nav button.is-active,
.kp-message-custom-folders button.is-active {
    background: #EEF6FB;
    color: #144763;
}

.kp-message-folder-create {
    width: calc(100% - 28px);
    margin: 0 14px;
    border-radius: 5px;
    font-weight: 500;
}

.kp-message-inbox-header {
    display: grid;
    grid-template-columns: minmax(95px, 1fr) minmax(120px, 0.8fr) auto auto;
    min-height: 78px;
    padding: 14px 18px;
    gap: 10px;
}

.kp-message-inbox-header div,
.kp-message-inbox-header strong {
    font-size: 15px;
    font-weight: 600;
}

.kp-message-inbox-header div {
    display: grid;
    gap: 2px;
}

.kp-message-inbox-header small {
    display: block;
    color: #8493A5;
    font-size: 11px;
    line-height: 1.1;
}

.kp-message-inbox-header strong {
    color: #061D3B;
    line-height: 1.15;
}

.kp-message-search {
    position: relative;
    display: flex;
    align-items: center;
    margin: 0;
}

.kp-message-search::before {
    content: "";
    width: 13px;
    height: 13px;
    margin-right: -24px;
    border: 1.6px solid #5E7894;
    border-radius: 50%;
    z-index: 1;
}

.kp-message-search::after {
    content: "";
    width: 6px;
    height: 1.5px;
    margin-left: -6px;
    background: #5E7894;
    transform: rotate(45deg) translate(1px, 7px);
    z-index: 1;
}

.kp-message-search input,
.kp-message-folder-select,
.kp-message-sort {
    min-height: 36px;
    border: 1px solid #D7E4F0 !important;
    border-radius: 7px;
    color: #17334F !important;
    background: #FFFFFF !important;
    font: inherit;
    font-size: 13px;
    font-weight: 400;
}

.kp-message-search input {
    width: 100%;
    padding: 7px 10px 7px 30px;
}

.kp-message-folder-select {
    min-width: 92px;
    padding: 7px 28px 7px 10px;
}

.kp-message-sort {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 38px;
    padding: 0;
    cursor: pointer;
}

.kp-message-sort.is-ascending {
    background: #EEF6FB !important;
}

.kp-message-thread-layout {
    grid-template-columns: minmax(300px, 0.32fr) minmax(0, 1fr);
}

.kp-message-inbox-row,
.kp-portal .kp-message-inbox-row {
    min-height: 76px !important;
    padding: 12px 14px !important;
}

.kp-message-row-title strong {
    font-size: 14px;
    font-weight: 600;
}

.kp-message-row-subject {
    color: #49637D;
    font-size: 12px;
    font-weight: 500;
}

.kp-message-row-preview {
    color: #7C8EA2;
    font-size: 13px;
    font-weight: 400;
}

.kp-message-thread-panels {
    background: #FFFFFF;
}

.kp-message-thread-header {
    min-height: 74px;
    padding: 14px 26px;
    background: #FFFFFF;
}

.kp-message-thread-header .kp-message-avatar {
    display: none;
}

.kp-message-thread-identity {
    display: block;
}

.kp-message-thread-header h3 {
    margin: 0 0 5px;
    font-size: 18px;
    font-weight: 500;
}

.kp-message-thread-header p {
    color: #8493A5;
    font-size: 13px;
    font-weight: 400;
}

.kp-message-thread-header .kp-badge {
    min-height: 20px;
    padding: 2px 7px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
}

.kp-message-conversation {
    gap: 12px;
    padding: 22px 24px;
    background: #FFFFFF;
}

.kp-message-conversation-row,
.kp-message-conversation-row.is-client {
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid #DCE4EC;
    border-radius: 8px;
    background: #FFFFFF;
}

.kp-message-conversation-row.is-pending {
    border-color: #B7D7E8;
    background: #FBFDFE;
}

.kp-message-avatar {
    width: 38px;
    height: 38px;
    color: #FFFFFF;
    background: #2184AC;
    font-size: 13px;
    font-weight: 500;
}

.kp-message-conversation-bubble strong {
    margin-bottom: 3px;
    color: #16324D;
    font-size: 14px;
    font-weight: 600;
}

.kp-message-conversation-bubble div {
    color: #24384D;
    font-size: 14px;
    line-height: 1.45;
}

.kp-message-conversation-bubble time {
    margin-top: 4px;
    color: #7E8FA2;
    font-size: 12px;
}

.kp-message-thread-footer {
    padding: 14px 20px;
    border-top: 1px solid #DCE4EC;
}

.kp-message-thread-reply {
    min-height: 38px;
    border-radius: 6px;
    font-weight: 500;
}

.kp-message-thread-reply::before {
    content: "\2190";
    width: auto;
    height: auto;
    margin-right: 8px;
    border-radius: 0;
    color: inherit;
    background: transparent;
    font-size: 15px;
}

.kp-message-conversation-row {
    position: relative;
}

.kp-message-row-actions {
    position: absolute;
    top: 14px;
    right: 14px;
    display: flex;
    gap: 6px;
    padding: 5px;
    border: 1px solid #DDE8F2;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 8px 22px rgba(20, 46, 70, 0.08);
    opacity: 0;
    pointer-events: none;
    transform: translateY(3px);
    transition: opacity 0.16s ease, transform 0.16s ease;
}

.kp-message-conversation-row:hover .kp-message-row-actions,
.kp-message-conversation-row:focus-within .kp-message-row-actions {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

.kp-message-row-actions button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    min-height: 26px;
    padding: 0;
    border: 0 !important;
    border-radius: 6px;
    color: #7890A8 !important;
    background: transparent !important;
    font-size: 13px;
    line-height: 1;
    cursor: pointer;
}

.kp-message-row-actions button:hover,
.kp-message-row-actions button:focus {
    color: #17334F !important;
    background: #EEF6FB !important;
}

.kp-message-meta {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin: 0 0 12px;
    padding-right: 78px;
}

.kp-message-meta strong {
    margin: 0;
}

.kp-message-meta-side {
    display: grid;
    justify-items: end;
    gap: 3px;
}

.kp-message-meta time {
    display: inline-block;
    margin-top: 0;
    color: #7E8FA2;
    font-size: 12px;
    white-space: nowrap;
}

.kp-message-meta small {
    color: #7E8FA2;
    font-size: 11px;
    line-height: 1.25;
    text-align: right;
    white-space: normal;
}

.kp-message-inline-reply {
    margin-top: 0;
    padding: 14px 0 0;
    border-top: 1px solid #DCE4EC;
}

.kp-message-inline-reply .kp-message-thread-reply {
    min-height: 38px;
    padding: 8px 16px;
}

.kp-message-modal-dialog {
    width: min(820px, 100%);
    border-color: #DCE4EC;
    border-top: 3px solid #2184AC;
}

.kp-message-modal-header h2 {
    font-size: 18px;
    font-weight: 500;
}

.kp-message-modal-row {
    font-size: 14px;
    font-weight: 400;
}

.kp-message-modal-row > span,
.kp-message-modal-row button,
.kp-message-modal-footer .kp-button,
.kp-message-attach-button {
    font-weight: 500;
}

.kp-message-modal-row small {
    font-weight: 400;
}

.kp-notes-hero,
.kp-notes-filterbar,
.kp-note-timeline-card {
    box-shadow: 0 4px 16px rgba(26, 44, 68, 0.035);
}

.kp-notes-hero {
    padding: 16px 18px;
}

.kp-notes-hero h2 {
    font-size: 22px;
}

.kp-notes-filterbar {
    gap: 8px;
    padding: 10px;
}

.kp-notes-filterbar button,
.kp-notes-filterbar span {
    min-height: 32px;
    padding: 7px 11px;
    border: 1px solid transparent;
    border-radius: 999px;
    color: #3D526B;
    background: transparent;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}

.kp-notes-filterbar button.is-active,
.kp-notes-filterbar span.is-active {
    border-color: #D7C28D;
    color: #061D3B;
    background: #FFF8E7;
}

.kp-note-timeline-card {
    grid-template-columns: 24px minmax(0, 1fr);
    gap: 12px;
    padding: 14px;
}

.kp-note-card-main {
    padding: 0;
    border: 0;
    box-shadow: none;
}

.kp-note-card-main h3 {
    margin: 8px 0 6px;
    font-size: 16px;
}

.kp-note-body {
    color: #2D4868;
    font-size: 13px;
    line-height: 1.55;
}

.kp-note-card-main footer {
    align-items: center;
    margin-top: 12px;
    padding-top: 10px;
}

.kp-note-replies,
.kp-note-reply-form,
.kp-note-reply-list {
    display: none !important;
}

.kp-portal .kp-notes-portal {
    gap: 18px;
}

.kp-portal .kp-notes-hero {
    display: block;
    padding: 18px 20px;
    border-color: #CFE0EF;
    background: #EAF4FC;
    box-shadow: 0 4px 16px rgba(26, 44, 68, 0.035);
}

.kp-portal .kp-notes-hero h2 {
    margin: 0;
    color: #061D3B;
    font-size: 22px;
    font-weight: 650;
    line-height: 1.2;
}

.kp-portal .kp-notes-hero p:not(.kp-eyebrow) {
    max-width: 920px;
    margin: 7px 0 0;
    color: #2D4868;
    font-size: 13px;
    line-height: 1.55;
}

.kp-portal .kp-notes-filterbar {
    display: none;
}

.kp-portal .kp-personal-notes-panel {
    display: grid;
    grid-template-columns: minmax(220px, 0.65fr) minmax(280px, 1fr);
    gap: 16px;
    padding: 16px;
    border: 1px solid #CFE0EF;
    border-radius: 8px;
    background: #F7FAFD;
    box-shadow: 0 4px 16px rgba(26, 44, 68, 0.035);
}

.kp-portal .kp-personal-notes-panel h3 {
    margin: 0;
    color: #061D3B;
    font-size: 16px;
    font-weight: 650;
}

.kp-portal .kp-personal-notes-panel p:not(.kp-eyebrow) {
    margin: 6px 0 0;
    color: #526B86;
    font-size: 12px;
    line-height: 1.5;
}

.kp-portal .kp-personal-note-form {
    display: grid;
    gap: 10px;
}

.kp-portal .kp-personal-note-form textarea {
    width: 100%;
    min-height: 84px;
    resize: vertical;
    border: 1px solid #CFE0EF;
    border-radius: 8px;
    background: #FFFFFF;
    color: #172A3A;
    font: inherit;
    font-size: 13px;
    line-height: 1.5;
    padding: 10px 12px;
}

.kp-portal .kp-personal-note-form .kp-button {
    justify-self: start;
}

.kp-portal .kp-personal-note-list {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: 12px;
}

.kp-portal .kp-personal-note {
    position: relative;
    min-height: 96px;
    padding: 14px 14px 38px;
    border: 1px solid rgba(194, 138, 32, 0.24);
    border-radius: 6px;
    background: #FFF7C9;
    color: #2D4868;
    box-shadow: 0 8px 18px rgba(26, 44, 68, 0.08);
}

.kp-portal .kp-personal-note p {
    margin: 0;
    white-space: pre-wrap;
    font-size: 13px;
    line-height: 1.5;
}

.kp-portal .kp-personal-note time {
    display: block;
    margin-top: 10px;
    color: #6B7280;
    font-size: 11px;
}

.kp-portal .kp-personal-note button {
    position: absolute;
    right: 10px;
    bottom: 9px;
    border: 0;
    background: transparent;
    color: #7A4E00;
    font: inherit;
    font-size: 12px;
    font-weight: 650;
    cursor: pointer;
}

.kp-portal .kp-personal-note-empty {
    grid-column: 1 / -1;
    margin: 0;
    color: #526B86;
    font-size: 12px;
}

.kp-portal .kp-notes-timeline {
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 16px;
}

.kp-portal .kp-notes-timeline::before,
.kp-portal .kp-note-marker {
    display: none;
}

.kp-portal .kp-note-timeline-card {
    display: block;
    min-height: 180px;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.kp-portal .kp-note-card-main {
    height: 100%;
    padding: 16px;
    border: 1px solid rgba(194, 138, 32, 0.26);
    border-radius: 6px;
    background: #FFF3B0;
    box-shadow: 0 10px 22px rgba(26, 44, 68, 0.1);
    transform: rotate(-0.35deg);
}

.kp-portal .kp-note-timeline-card:nth-child(2n) .kp-note-card-main {
    background: #EAF4FC;
    border-color: #CFE0EF;
    transform: rotate(0.35deg);
}

.kp-portal .kp-note-timeline-card:nth-child(3n) .kp-note-card-main {
    background: #F7FAFD;
    transform: rotate(-0.15deg);
}

.kp-portal .kp-note-card-main header {
    align-items: flex-start;
    margin-bottom: 10px;
}

.kp-portal .kp-note-card-main header .kp-badge {
    background: rgba(255, 255, 255, 0.58);
}

.kp-portal .kp-note-source,
.kp-portal .kp-note-card-main time {
    color: #526B86;
    font-size: 11px;
    font-weight: 500;
}

.kp-portal .kp-note-card-main h3 {
    margin: 8px 0 8px;
    color: #061D3B;
    font-size: 15px;
    font-weight: 650;
    line-height: 1.3;
}

.kp-portal .kp-note-body {
    color: #2D4868;
    font-size: 13px;
    line-height: 1.5;
}

.kp-portal .kp-note-card-main footer {
    display: none;
}

@media (max-width: 760px) {
    .kp-portal .kp-personal-notes-panel {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 920px) {
    .kp-task-detail-grid {
        grid-template-columns: 1fr;
    }

    .kp-task-detail-hero,
    .kp-task-list-hero {
        flex-direction: column;
    }

    .kp-task-hero-actions {
        justify-items: start;
        width: 100%;
    }

    .kp-task-complete-form {
        justify-content: flex-start;
    }

    .kp-task-complete-form span {
        text-align: left;
    }
}

@media (max-width: 680px) {
    .kp-task-list-item {
        grid-template-columns: 28px minmax(0, 1fr);
    }

    .kp-task-list-meta {
        grid-column: 2;
        justify-items: start;
    }

    .kp-task-meta-grid {
        grid-template-columns: 1fr;
    }

    .kp-task-meta-grid div {
        grid-template-columns: 105px minmax(0, 1fr);
    }
}

.kp-docs-hero {
    align-items: flex-start;
    border-color: #CFE0EF;
    background: #FFFFFF;
    box-shadow: none;
}

.kp-docs-hero > span {
    display: none;
}

.kp-doc-section-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 16px;
}

.kp-doc-section {
    overflow: hidden;
    border-color: #CFE0EF;
    box-shadow: none;
}

.kp-doc-section header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 15px 18px;
    border-bottom: 1px solid #E6EEF7;
    background: #FFFFFF;
}

.kp-doc-section header strong {
    color: #1F6F9F;
    font-size: 12px;
    font-weight: 650;
}

.kp-doc-section header strong.is-complete {
    color: #1F6F9F;
}

.kp-doc-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    padding: 14px 18px;
    border-bottom: 1px solid #E6EEF7;
    background: #FFFFFF;
}

.kp-doc-row.is-awaiting {
    background: #FFFFFF;
}

.kp-doc-row h4 {
    margin: 0;
    color: #061D3B;
    font-size: 14px;
    font-weight: 650;
}

.kp-doc-row p {
    margin: 4px 0 0;
    color: #45638A;
    font-size: 12px;
}

.kp-doc-row.is-awaiting .kp-doc-icon {
    border-radius: 8px;
    background: #EAF4FC;
}

.kp-doc-row.is-signed .kp-doc-icon {
    border-radius: 8px;
    background: #EAF4FC;
}

.kp-doc-status {
    display: inline-flex;
    margin-left: 8px;
    padding: 3px 7px;
    border-radius: 999px;
    color: #1F6F9F;
    background: #EAF4FC;
    font-size: 10px;
    font-weight: 650;
    text-transform: uppercase;
}

.kp-doc-row.is-signed .kp-doc-status {
    color: #1F6F9F;
    background: #EAF4FC;
}

.kp-doc-actions button,
.kp-doc-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 8px 14px;
    border: 1px solid #1F6F9F;
    border-radius: 8px;
    color: #1F6F9F;
    background: #FFFFFF;
    font-size: 12px;
    font-weight: 650;
    line-height: 1.2;
    text-decoration: none;
}

.kp-doc-section-grid .kp-doc-actions {
    grid-column: 2;
    justify-content: flex-start;
}

.kp-doc-row.is-awaiting .kp-doc-actions button:first-child,
.kp-doc-row.is-signed .kp-doc-actions button,
.kp-doc-row.is-signed .kp-doc-actions a {
    color: var(--kp-white);
    background: #1F6F9F;
}

.kp-doc-row.is-signed .kp-doc-actions button,
.kp-doc-row.is-signed .kp-doc-actions a {
    border-color: #1F6F9F;
    background: #1F6F9F;
}

.kp-doc-empty {
    padding: 18px 24px;
    color: #45638A;
}

@media (max-width: 1180px) {
    .kp-doc-section-grid {
        grid-template-columns: 1fr;
    }

    .kp-metric-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .kp-list-grid,
    .kp-property-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .kp-deal-workspace {
        grid-template-columns: 260px minmax(0, 1fr);
    }

    .kp-deal-stage-track {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .kp-property-listing {
        grid-template-columns: 180px minmax(0, 1fr);
    }

    .kp-property-listing-main {
        grid-template-columns: 1fr;
    }

    .kp-property-listing-info {
        grid-column: 1;
        grid-row: auto;
    }

    .kp-property-listing-profile {
        grid-template-columns: repeat(2, minmax(120px, 1fr));
    }

    .kp-property-listing-action {
        grid-column: 2;
        justify-self: start;
    }
}

@media (max-width: 860px) {
    .kp-portal {
        min-height: 100vh;
    }

    .kp-mobile-bar {
        position: sticky;
        top: 0;
        z-index: 30;
        display: flex;
        align-items: center;
        justify-content: space-between;
        min-height: 68px;
        padding: 12px 18px;
        color: var(--kp-white);
        background: var(--kp-navy);
    }

    .kp-brand-mobile .kp-brand-mark {
        width: 38px;
        height: 38px;
    }

    .kp-menu-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        border: 1px solid rgba(255, 255, 255, 0.2);
        border-radius: 8px;
        background: transparent;
    }

    .kp-menu-lines,
    .kp-menu-lines::before,
    .kp-menu-lines::after {
        display: block;
        width: 20px;
        height: 2px;
        border-radius: 2px;
        background: var(--kp-white);
        content: "";
    }

    .kp-menu-lines::before {
        transform: translateY(-7px);
    }

    .kp-menu-lines::after {
        transform: translateY(5px);
    }

    .kp-shell {
        display: block;
        min-height: auto;
    }

    .kp-sidebar {
        position: fixed;
        inset: 0 auto 0 0;
        width: min(320px, 86vw);
        min-height: 100vh;
        transform: translateX(-104%);
        transition: transform 180ms ease;
    }

    .kp-portal.is-menu-open .kp-sidebar {
        transform: translateX(0);
    }

    .kp-overlay {
        position: fixed;
        inset: 0;
        z-index: 10;
        background: rgba(26, 44, 68, 0.45);
    }

    .kp-portal.is-menu-open .kp-overlay {
        display: block;
    }

    .kp-main {
        padding: 22px 16px 30px;
    }

    .kp-page-header,
    .kp-welcome-card,
    .kp-section-heading,
    .kp-profile-summary,
    .kp-file-row,
    .kp-task-row {
        align-items: flex-start;
        flex-direction: column;
    }

    .kp-header-card {
        width: 100%;
    }

    .kp-metric-grid,
    .kp-list-grid,
    .kp-property-grid,
    .kp-field-grid,
    .kp-detail-grid,
    .kp-file-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .kp-files-layout-grid {
        grid-template-columns: 1fr;
    }

    .kp-files-panel {
        height: 320px;
    }

    .kp-files-panel .kp-file-row {
        grid-template-columns: 1fr;
    }

    .kp-message-bubble {
        max-width: 88%;
    }

    .kp-message-input {
        grid-template-columns: 1fr;
    }

    .kp-referral-link-row {
        grid-template-columns: 1fr;
    }

    .kp-referral-link-row .kp-button {
        width: 100%;
    }

    .kp-referral-modal {
        padding: 10px;
    }

    .kp-referral-modal-panel {
        height: calc(100vh - 20px);
    }

    .kp-referral-modal-header {
        padding: 12px 14px;
    }

    .kp-task-row div {
        width: 100%;
        justify-content: space-between;
    }

    .kp-deal-hero,
    .kp-docs-hero,
    .kp-notes-hero,
    .kp-message-hero,
    .kp-deal-main-header,
    .kp-doc-section header {
        align-items: flex-start;
        flex-direction: column;
    }

    .kp-deal-actions,
    .kp-doc-actions {
        width: 100%;
        flex-wrap: wrap;
    }

    .kp-notes-hero .kp-button {
        width: 100%;
    }

    .kp-deal-workspace {
        grid-template-columns: 1fr;
    }

    .kp-message-setup,
    .kp-message-workspace {
        grid-template-columns: 1fr;
    }

    .kp-message-thread-layout {
        grid-template-columns: 1fr;
    }

    .kp-deal-sidebar {
        border-right: 0;
        border-bottom: 1px solid var(--kp-border);
    }

    .kp-message-mailboxes {
        border-right: 0;
        border-bottom: 1px solid var(--kp-border);
    }

    .kp-message-inbox-rows {
        border-right: 0;
        border-bottom: 1px solid var(--kp-border);
    }

    .kp-message-thread-panel {
        min-height: 420px;
    }

    .kp-message-mailboxes nav {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .kp-deal-panel-grid {
        grid-template-columns: 1fr;
    }

    .kp-deal-summary-strip {
        grid-template-columns: 1fr;
    }

    .kp-deal-stage-track {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .kp-doc-row {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .kp-doc-actions {
        grid-column: 1 / -1;
        padding-left: 58px;
    }

    .kp-property-detail-hero,
    .kp-property-detail-grid,
    .kp-property-detail-layout {
        grid-template-columns: 1fr;
    }

    .kp-property-media-collage {
        grid-template-columns: minmax(0, 1.4fr) minmax(140px, 0.8fr);
        height: 240px;
        min-height: 0;
    }

    .kp-property-detail-topbar {
        align-items: flex-start;
        flex-direction: column;
    }

    .kp-property-hero-actions {
        justify-content: flex-start;
    }
}

@media (max-width: 520px) {
    .kp-card,
    .kp-login-card {
        padding: 18px;
    }

    .kp-page-header h1 {
        font-size: 30px;
    }

    .kp-property-hero {
        flex-direction: column;
    }

    .kp-property-listing {
        grid-template-columns: 1fr;
    }

    .kp-property-thumb {
        height: 190px;
    }

    .kp-property-listing-profile {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .kp-property-listing-info {
        grid-template-columns: 1fr;
    }

    .kp-property-listing-action {
        grid-column: auto;
        width: 100%;
    }

    .kp-property-listing-main strong,
    .kp-property-address {
        white-space: normal;
    }

    .kp-property-body div {
        display: grid;
        gap: 4px;
    }

    .kp-mini-dl div {
        display: grid;
    }

    .kp-property-body dd {
        text-align: left;
    }

    .kp-mini-dl dd {
        text-align: left;
    }

    .kp-property-detail-list div {
        display: grid;
        gap: 5px;
    }

    .kp-property-detail-list {
        grid-template-columns: 1fr;
    }

    .kp-property-detail-list dd {
        text-align: left;
    }

    .kp-property-media-collage {
        grid-template-columns: 1fr;
        height: auto;
        min-height: auto;
    }

    .kp-property-hero-profile {
        grid-template-columns: 1fr;
    }

    .kp-property-hero-actions .kp-button {
        width: 100%;
    }

    .kp-property-media-primary {
        aspect-ratio: 16 / 10;
    }

    .kp-property-media-previews {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        min-height: 120px;
    }

    .kp-property-photo-dialog {
        width: 100vw;
        height: 100vh;
        margin: 0;
        border-radius: 0;
    }

    .kp-property-photo-stage {
        padding: 18px 52px;
    }

    .kp-property-photo-nav {
        width: 38px;
        height: 38px;
        font-size: 32px;
    }

    .kp-property-photo-nav.is-prev {
        left: 8px;
    }

    .kp-property-photo-nav.is-next {
        right: 8px;
    }

    .kp-property-photo-thumbs button {
        flex-basis: 76px;
        height: 52px;
    }

    .kp-deal-stage-track,
    .kp-deal-stage-dates,
    .kp-deal-info-list div,
    .kp-deal-line,
    .kp-message-source-list div {
        display: grid;
        grid-template-columns: 1fr;
    }

    .kp-message-mailboxes nav,
    .kp-message-inbox-row {
        grid-template-columns: 1fr;
    }

    .kp-message-inbox-row {
        gap: 8px;
    }

    .kp-message-inbox-row time {
        text-align: left;
    }

    .kp-message-thread-header {
        flex-direction: column;
    }

    .kp-message-thread-identity {
        width: 100%;
    }

    .kp-message-thread-header .kp-button {
        width: 100%;
    }

    .kp-message-thread-footer {
        justify-content: stretch;
    }

    .kp-message-thread-footer .kp-button {
        width: 100%;
    }

    .kp-message-conversation-row,
    .kp-message-conversation-row.is-client {
        grid-template-columns: 1fr;
        max-width: 100%;
    }

    .kp-message-conversation-row .kp-message-avatar,
    .kp-message-conversation-row.is-client .kp-message-avatar,
    .kp-message-conversation-row.is-client .kp-message-conversation-bubble {
        grid-column: auto;
        grid-row: auto;
    }

    .kp-message-modal {
        align-items: stretch;
        padding: 14px;
    }

    .kp-message-modal-row {
        grid-template-columns: 1fr;
    }

    .kp-message-modal-row > span {
        padding-top: 0;
    }

    .kp-message-editor {
        grid-column: auto;
    }

    .kp-message-modal-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .kp-message-row-title strong,
    .kp-message-row-subject,
    .kp-message-row-preview {
        white-space: normal;
    }

    .kp-deal-info-list dd {
        text-align: left;
    }

    .kp-notes-filterbar {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .kp-notes-filterbar span {
        justify-content: center;
    }

    .kp-notes-timeline::before {
        display: none;
    }

    .kp-note-timeline-card {
        grid-template-columns: 1fr;
    }

    .kp-note-marker {
        display: none;
    }

    .kp-note-card-main header,
    .kp-note-card-main footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .kp-doc-row {
        grid-template-columns: 1fr;
    }

    .kp-doc-actions {
        padding-left: 0;
    }

    .kp-doc-actions button {
        width: 100%;
    }
}

@media print {
    @page {
        margin: 0.55in 0.45in 0.7in;
    }

    body {
        background: #FFFFFF;
    }

    .kp-portal-shell {
        display: block;
        min-height: auto;
        background: #FFFFFF;
    }

    .kp-sidebar,
    .kp-mobile-bar,
    .kp-bottombar,
    .kp-sticky-primary,
    .kp-page-header,
    .kp-back-link,
    .kp-property-photo-modal,
    .kp-attachment-modal,
    .kp-property-photo-count,
    .kp-property-hero-actions,
    .kp-property-map-card iframe {
        display: none !important;
    }

    .kp-main {
        padding: 0;
    }

    .kp-property-detail {
        gap: 10px;
        padding-bottom: 24px;
    }

    .kp-print-brand {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 16px;
        padding: 0 0 10px;
        margin-bottom: 10px;
        border-bottom: 1px solid #D7D7D7;
        break-inside: avoid;
    }

    .kp-print-brand img {
        width: 54px;
        height: 54px;
        object-fit: contain;
    }

    .kp-print-brand div {
        display: grid;
        gap: 2px;
        text-align: right;
    }

    .kp-print-brand strong {
        color: #061D3B;
        font-size: 15px;
        line-height: 1.15;
    }

    .kp-print-brand span {
        color: #253C58;
        font-size: 10px;
        line-height: 1.2;
    }

    .kp-print-footer {
        position: fixed;
        right: 0;
        bottom: 0;
        left: 0;
        display: block;
        padding-top: 6px;
        border-top: 1px solid #D7D7D7;
        color: #506C91;
        background: #FFFFFF;
        font-size: 9px;
        line-height: 1.2;
        text-align: center;
    }

    .kp-property-detail-layout {
        grid-template-columns: 1fr;
        gap: 10px;
        box-shadow: none;
    }

    .kp-property-detail-hero {
        grid-template-columns: 132px minmax(0, 1fr);
        gap: 10px;
        box-shadow: none;
    }

    .kp-property-detail-hero,
    .kp-property-detail-section,
    .kp-property-description-card,
    .kp-property-map-card,
    .kp-property-note-card,
    .kp-property-doc-card {
        padding: 10px;
        border-color: #D7D7D7;
        box-shadow: none;
        break-inside: avoid;
    }

    .kp-property-media-frame,
    .kp-property-media-collage {
        width: 132px;
        height: 88px;
        min-height: 0;
        max-height: 88px;
    }

    .kp-property-media-collage {
        grid-template-columns: 1fr;
    }

    .kp-property-media-primary {
        height: 88px;
    }

    .kp-property-media-primary img {
        height: 88px;
        object-fit: cover;
    }

    .kp-property-media-previews {
        display: none;
    }

    .kp-property-detail-summary h2 {
        font-size: 24px;
    }

    .kp-property-detail-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0 16px;
    }

    .kp-property-detail-list div {
        padding: 5px 0;
    }

    .kp-property-detail-list dt,
    .kp-property-detail-list dd,
    .kp-property-description-body,
    .kp-property-note-item p,
    .kp-property-doc-list span {
        font-size: 11px;
    }

    .kp-property-detail-section h2,
    .kp-property-description-card h2,
    .kp-property-map-card h2,
    .kp-property-note-card h2,
    .kp-property-doc-card h2 {
        font-size: 15px;
    }
}

.kp-property-description-card,
.kp-property-description-body {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
}

.kp-property-description-body {
    display: block !important;
    white-space: normal;
}

.kp-portal .kp-card h2,
.kp-portal .kp-section-heading h2,
.kp-portal .kp-file-row h2,
.kp-portal .kp-deal-card h2,
.kp-portal .kp-property-card h2 {
    font-size: 15px;
    font-weight: 600;
}

.kp-portal .kp-eyebrow,
.kp-portal .kp-badge,
.kp-portal .kp-button,
.kp-portal .kp-field span,
.kp-portal .kp-card-topline,
.kp-portal .kp-table th {
    font-weight: 600;
}

.kp-page-dashboard .kp-welcome-card {
    padding: 14px 16px;
}

.kp-page-dashboard .kp-welcome-card h2 {
    font-size: 16px;
    font-weight: 500;
}

.kp-page-dashboard .kp-welcome-card p:not(.kp-eyebrow) {
    max-width: 920px;
    margin-top: 6px;
    line-height: 1.45;
}

.kp-page-dashboard .kp-metric-grid {
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 8px;
}

.kp-page-dashboard .kp-metric-card {
    min-height: 112px;
    padding: 11px 10px;
    border-color: #DCE8F3;
    background: #F8FBFE;
    box-shadow: none;
}

.kp-page-dashboard .kp-metric-card span {
    color: #506C91;
    font-size: 10px;
    font-weight: 500;
    line-height: 1.25;
}

.kp-page-dashboard .kp-metric-card strong {
    margin: 6px 0 4px;
    color: #17334F;
    font-size: 24px;
    font-weight: 500;
    line-height: 1;
}

.kp-page-dashboard .kp-metric-card p {
    margin-top: 0;
    color: #66798C;
    font-size: 11px;
    line-height: 1.35;
}

.kp-dashboard-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.kp-dashboard-card-grid .kp-card {
    min-height: 220px;
    padding: 14px;
    box-shadow: none;
}

.kp-dashboard-card-grid .kp-section-heading {
    gap: 10px;
    margin-bottom: 6px;
}

.kp-dashboard-card-grid .kp-section-heading h2 {
    color: #17334F;
    font-size: 14px;
    font-weight: 500;
}

.kp-dashboard-card-grid .kp-button {
    min-height: 32px;
    padding: 6px 10px;
    font-size: 12px;
    font-weight: 500;
}

.kp-page-dashboard .kp-dashboard-timeline-item,
.kp-page-dashboard .kp-dashboard-meeting-item,
.kp-page-dashboard .kp-dashboard-document-item,
.kp-page-dashboard .kp-mini-row {
    padding: 9px 0;
}

.kp-page-dashboard .kp-dashboard-document-list {
    margin-top: 2px;
}

.kp-page-dashboard .kp-dashboard-document-item {
    gap: 10px;
}

.kp-page-dashboard .kp-dashboard-document-item > div {
    min-width: 0;
}

.kp-page-dashboard .kp-dashboard-timeline-item span {
    color: #60758B;
    font-size: 11px;
    font-weight: 500;
}

.kp-page-dashboard .kp-dashboard-timeline-item strong,
.kp-page-dashboard .kp-dashboard-meeting-item strong,
.kp-page-dashboard .kp-dashboard-document-item strong,
.kp-page-dashboard .kp-mini-row strong {
    color: #17334F;
    font-size: 13px;
    font-weight: 500;
}

.kp-page-dashboard .kp-dashboard-timeline-item small,
.kp-page-dashboard .kp-dashboard-meeting-item span,
.kp-page-dashboard .kp-dashboard-document-item div > span,
.kp-page-dashboard .kp-mini-row span,
.kp-page-dashboard .kp-card p {
    color: #66798C;
    font-size: 12px;
    line-height: 1.4;
}

.kp-page-dashboard .kp-badge {
    min-height: 22px;
    padding: 3px 7px;
    font-size: 11px;
    font-weight: 500;
}

.kp-page-dashboard .kp-dashboard-document-item .kp-badge {
    min-height: 20px;
    padding: 2px 6px;
    font-size: 10px;
    line-height: 1.2;
}

.kp-portal .kp-card {
    padding: 14px 16px;
    box-shadow: none;
}

.kp-portal .kp-card h2,
.kp-portal .kp-section-heading h2,
.kp-portal .kp-file-row h2,
.kp-portal .kp-deal-card h2,
.kp-portal .kp-property-card h2,
.kp-portal .kp-task-detail-card h3,
.kp-portal .kp-client-task-main h3,
.kp-portal .kp-message-thread-header h3,
.kp-portal .kp-note-card-main h3,
.kp-portal .kp-file-group h3 {
    color: #17334F;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.3;
}

.kp-portal .kp-page-header h1,
.kp-portal .kp-files-intro-card h1 {
    color: #17334F;
    font-size: clamp(20px, 2vw, 26px);
    font-weight: 500;
    line-height: 1.2;
}

.kp-portal .kp-button,
.kp-portal .kp-badge,
.kp-portal .kp-eyebrow,
.kp-portal .kp-card-topline,
.kp-portal .kp-field span,
.kp-portal .kp-table th,
.kp-portal .kp-doc-status,
.kp-portal .kp-file-row-meta,
.kp-portal .kp-property-status {
    font-weight: 500;
}

.kp-portal .kp-card p,
.kp-portal .kp-mini-row span,
.kp-portal .kp-file-row p,
.kp-portal .kp-field input,
.kp-portal .kp-field textarea,
.kp-portal .kp-field select,
.kp-portal .kp-doc-row p,
.kp-portal .kp-dashboard-timeline-item small,
.kp-portal .kp-dashboard-meeting-item span,
.kp-portal .kp-dashboard-document-item div > span {
    color: #66798C;
    font-size: 12px;
    line-height: 1.4;
}

.kp-portal .kp-mini-row strong,
.kp-portal .kp-file-row strong,
.kp-portal .kp-doc-row h4,
.kp-portal .kp-dashboard-timeline-item strong,
.kp-portal .kp-dashboard-meeting-item strong,
.kp-portal .kp-dashboard-document-item strong {
    color: #17334F;
    font-size: 13px;
    font-weight: 500;
}

.kp-portal .kp-button {
    min-height: 32px;
    padding: 6px 10px;
    font-size: 12px;
}

.kp-portal .kp-badge {
    min-height: 22px;
    padding: 3px 7px;
    font-size: 11px;
}

@media (max-width: 1080px) {
    .kp-page-dashboard .kp-metric-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}


@media (max-width: 980px) {
    .kp-dashboard-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .kp-page-dashboard .kp-metric-grid,
    .kp-dashboard-card-grid {
        grid-template-columns: 1fr;
    }

    .kp-page-dashboard .kp-metric-card {
        min-height: auto;
    }
}

/* Final Notes board overrides. Keep at end so page-wide typography rules do not flatten the cards. */
.kp-portal .kp-notes-portal {
    display: block;
    padding: 0;
    background: transparent !important;
}

.kp-portal .kp-notes-hero,
.kp-portal .kp-notes-filterbar {
    display: none !important;
}

.kp-portal .kp-notes-callout {
    margin: 0 0 14px;
    padding: 16px 18px;
    border: 1px solid #CFE0EF;
    border-radius: 8px;
    background: #FFFFFF !important;
    box-shadow: none;
}

.kp-portal .kp-notes-callout .kp-eyebrow {
    margin: 0 0 4px;
    color: #5b55a6;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: uppercase;
}

.kp-portal .kp-notes-callout h2 {
    margin: 0 0 5px;
    color: #000000;
    font-size: 20px;
    font-weight: 650;
    line-height: 1.2;
}

.kp-portal .kp-notes-callout p:last-child {
    max-width: 860px;
    margin: 0;
    color: #294766;
    font-size: 13px;
    line-height: 1.45;
}

.kp-portal .kp-personal-notes-panel {
    display: block !important;
    margin: 0 0 18px;
    padding: 14px 16px;
    border: 1px solid #CFE0EF;
    border-radius: 8px;
    background: #FFFFFF !important;
    box-shadow: none;
}

.kp-portal .kp-personal-note-form {
    display: grid;
    grid-template-columns: auto minmax(220px, 420px) auto;
    align-items: center;
    justify-content: start;
    gap: 10px;
    margin: 0 0 12px;
}

.kp-portal .kp-personal-note-form label {
    color: #17334F;
    font-size: 13px;
    font-weight: 600;
}

.kp-portal .kp-personal-note-form textarea {
    min-height: 42px;
    max-height: 74px;
    padding: 9px 10px;
    border: 1px solid #CFE0EF;
    border-radius: 7px;
    background: #FFFFFF;
    color: #17334F;
    font-size: 12px;
    line-height: 1.35;
    resize: vertical;
}

.kp-portal .kp-personal-note-form .kp-button {
    min-height: 38px;
    padding: 8px 13px;
    font-size: 12px;
}

.kp-portal .kp-personal-note-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 160px));
    gap: 14px;
    margin: 0 0 18px;
}

.kp-portal .kp-personal-note-empty {
    margin: 0;
    color: #5A728D;
    font-size: 12px;
}

.kp-portal .kp-personal-note {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 150px;
    padding: 14px 13px 12px;
    border: 1px solid rgba(188, 134, 32, 0.22);
    border-radius: 4px;
    background: #F8F0C8;
    box-shadow: 0 8px 16px rgba(24, 43, 64, 0.1);
    transform: rotate(0.6deg);
}

.kp-portal .kp-personal-note::before {
    position: absolute;
    top: 8px;
    left: 50%;
    width: 30px;
    height: 8px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.52);
    content: "";
    transform: translateX(-50%);
}

.kp-portal .kp-personal-note p {
    margin: 12px 0 10px;
    color: #263F59;
    font-size: 12px;
    line-height: 1.42;
}

.kp-portal .kp-personal-note time {
    margin-top: auto;
    color: #7B6A36;
    font-size: 10px;
}

.kp-portal .kp-personal-note button {
    align-self: flex-start;
    margin-top: 8px;
    padding: 4px 7px;
    border: 1px solid rgba(23, 51, 79, 0.15);
    border-radius: 5px;
    background: rgba(255, 255, 255, 0.55);
    color: #17334F;
    font-size: 10px;
    cursor: pointer;
}

.kp-portal .kp-notes-timeline {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(180px, 180px));
    align-items: start;
    justify-content: start;
    gap: 18px;
    padding: 8px 4px 24px;
}

.kp-portal .kp-notes-timeline::before,
.kp-portal .kp-note-marker {
    display: none !important;
}

.kp-portal .kp-note-timeline-card {
    display: block !important;
    width: 180px;
    min-height: 180px;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.kp-portal .kp-note-card-main {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 180px;
    min-height: 180px;
    padding: 14px 14px 12px !important;
    border: 1px solid rgba(188, 134, 32, 0.26) !important;
    border-radius: 4px !important;
    background: #FFF1A8 !important;
    box-shadow: 0 10px 18px rgba(24, 43, 64, 0.12) !important;
    transform: rotate(-1deg);
}

.kp-portal .kp-note-timeline-card:nth-child(2n) .kp-note-card-main {
    background: #FFE7B8 !important;
    transform: rotate(0.8deg);
}

.kp-portal .kp-note-timeline-card:nth-child(3n) .kp-note-card-main {
    background: #EAF4FC !important;
    border-color: #CFE0EF !important;
    transform: rotate(-0.5deg);
}

.kp-portal .kp-note-timeline-card:nth-child(4n) .kp-note-card-main {
    background: #EAF7DC !important;
    border-color: #D3E7C1 !important;
    transform: rotate(1deg);
}

.kp-portal .kp-note-card-main::before {
    position: absolute;
    top: 8px;
    left: 50%;
    width: 34px;
    height: 9px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.48);
    box-shadow: 0 1px 4px rgba(24, 43, 64, 0.12);
    content: "";
    transform: translateX(-50%);
}

.kp-portal .kp-note-card-main header {
    display: block !important;
    margin: 12px 0 10px !important;
}

.kp-portal .kp-note-card-main header > div {
    display: block !important;
}

.kp-portal .kp-note-card-main .kp-badge,
.kp-portal .kp-note-source {
    display: none !important;
}

.kp-portal .kp-note-card-main time {
    display: block;
    margin: 0;
    color: #7B6A36 !important;
    font-size: 10px !important;
    font-weight: 500 !important;
    line-height: 1.2;
    text-align: right;
}

.kp-portal .kp-note-card-main h3 {
    margin: 0 0 8px !important;
    color: #17334F !important;
    font-size: 13px !important;
    font-weight: 650 !important;
    line-height: 1.25 !important;
}

.kp-portal .kp-note-body {
    overflow: hidden;
    color: #263F59 !important;
    font-size: 12px !important;
    line-height: 1.42 !important;
}

.kp-portal .kp-note-body p {
    margin: 0 0 6px !important;
}

.kp-portal .kp-note-attachment-list {
    margin-top: auto;
    padding-top: 8px;
}

.kp-portal .kp-note-attachment-list a,
.kp-portal .kp-note-attachment-list span {
    font-size: 11px !important;
}

@media (max-width: 680px) {
    .kp-portal .kp-personal-note-form {
        grid-template-columns: 1fr;
    }
}

/* Final Documents page color overrides. Keep this at the end to prevent legacy orange/tan document styles from bleeding through. */
.kp-portal .kp-docs-hero,
.kp-portal .kp-doc-section,
.kp-portal .kp-doc-section header,
.kp-portal .kp-doc-row,
.kp-portal .kp-doc-row.is-awaiting {
    background: #FFFFFF !important;
}

.kp-portal .kp-doc-section header strong,
.kp-portal .kp-doc-section header strong.is-complete,
.kp-portal .kp-doc-status,
.kp-portal .kp-doc-row.is-signed .kp-doc-status {
    color: #1F6F9F !important;
}

.kp-portal .kp-doc-status,
.kp-portal .kp-doc-row.is-signed .kp-doc-status,
.kp-portal .kp-doc-row.is-awaiting .kp-doc-icon,
.kp-portal .kp-doc-row.is-signed .kp-doc-icon {
    background: #EAF4FC !important;
}

.kp-portal .kp-doc-actions button,
.kp-portal .kp-doc-actions a {
    border-color: #1F6F9F !important;
    color: #1F6F9F !important;
    background: #FFFFFF !important;
    font-weight: 650 !important;
}

.kp-portal .kp-doc-row.is-awaiting .kp-doc-actions button:first-child,
.kp-portal .kp-doc-row.is-signed .kp-doc-actions button,
.kp-portal .kp-doc-row.is-signed .kp-doc-actions a {
    color: #FFFFFF !important;
    background: #1F6F9F !important;
}

/* Final Open Deals page typography and color normalization. */
.kp-portal .kp-deal-portal {
    gap: 14px;
}

.kp-portal .kp-deal-hero,
.kp-portal .kp-deal-stage-card,
.kp-portal .kp-deal-workspace,
.kp-portal .kp-deal-panel,
.kp-portal .kp-deal-task-card,
.kp-portal .kp-deal-note,
.kp-portal .kp-deal-message-bubble {
    border-color: #CFE0EF !important;
    border-radius: 8px !important;
    background: #FFFFFF !important;
    box-shadow: none !important;
}

.kp-portal .kp-deal-hero,
.kp-portal .kp-deal-main-header {
    padding: 16px 18px !important;
}

.kp-portal .kp-deal-hero h2,
.kp-portal .kp-deal-main-header h2 {
    margin: 0;
    color: #17334F !important;
    font-size: 20px !important;
    font-weight: 650 !important;
    line-height: 1.2 !important;
}

.kp-portal .kp-deal-hero p,
.kp-portal .kp-deal-main-header p,
.kp-portal .kp-deal-panel p,
.kp-portal .kp-deal-client-comments > p,
.kp-portal .kp-deal-source-note,
.kp-portal .kp-deal-inline-status,
.kp-portal .kp-deal-task-description {
    color: #5A728D !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    line-height: 1.45 !important;
}

.kp-portal .kp-deal-stage-card {
    padding: 14px 16px !important;
}

.kp-portal .kp-deal-stage-dates {
    margin-bottom: 10px !important;
    color: #5A728D !important;
    font-size: 11px !important;
    font-weight: 500 !important;
}

.kp-portal .kp-deal-stage-track {
    gap: 6px !important;
}

.kp-portal .kp-deal-stage-track span {
    min-height: 30px !important;
    padding: 7px 6px !important;
    border: 1px solid #DCE8F3 !important;
    border-radius: 6px !important;
    color: #5A728D !important;
    background: #F8FBFE !important;
    font-size: 10px !important;
    font-weight: 500 !important;
    line-height: 1.25 !important;
}

.kp-portal .kp-deal-stage-track span.is-active {
    color: #1F6F9F !important;
    background: #EAF4FC !important;
    font-weight: 650 !important;
}

.kp-portal .kp-deal-workspace {
    grid-template-columns: 280px minmax(0, 1fr);
}

.kp-portal .kp-deal-sidebar,
.kp-portal .kp-deal-tabs,
.kp-portal .kp-deal-section {
    background: #F8FBFE !important;
}

.kp-portal .kp-deal-sidebar {
    gap: 10px;
    padding: 14px;
}

.kp-portal .kp-deal-selector {
    min-height: 82px;
    padding: 12px 13px;
    border-color: #DCE8F3 !important;
    border-radius: 8px !important;
    background: #FFFFFF !important;
    box-shadow: none !important;
}

.kp-portal .kp-deal-selector.is-active,
.kp-portal .kp-deal-selector:hover,
.kp-portal .kp-deal-selector:focus {
    border-color: #1F6F9F !important;
    background: #F8FBFE !important;
}

.kp-portal .kp-deal-selector span,
.kp-portal .kp-deal-selector-counts {
    color: #66798C !important;
    font-size: 10px !important;
    font-weight: 500 !important;
    line-height: 1.3 !important;
}

.kp-portal .kp-deal-selector strong {
    color: #17334F !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1.25 !important;
}

.kp-portal .kp-deal-main-header {
    border-bottom-color: #DCE8F3 !important;
}

.kp-portal .kp-deal-tabs {
    gap: 6px;
    padding: 12px 16px;
    border-bottom-color: #DCE8F3 !important;
}

.kp-portal .kp-deal-tabs button {
    min-height: 32px !important;
    padding: 6px 10px !important;
    border-color: #CFE0EF !important;
    border-radius: 7px !important;
    color: #294766 !important;
    background: #FFFFFF !important;
    font-size: 12px !important;
    font-weight: 500 !important;
}

.kp-portal .kp-deal-tabs button.is-active {
    border-color: #1F6F9F !important;
    color: #1F6F9F !important;
    background: #EAF4FC !important;
}

.kp-portal .kp-deal-tabs button span {
    min-width: 18px;
    min-height: 18px;
    margin-left: 5px;
    padding: 1px 5px;
    color: #1F6F9F !important;
    background: #FFFFFF !important;
    font-size: 10px !important;
    font-weight: 600 !important;
}

.kp-portal .kp-deal-section {
    padding: 14px;
}

.kp-portal .kp-deal-panel-grid {
    gap: 12px;
}

.kp-portal .kp-deal-panel {
    padding: 14px !important;
}

.kp-portal .kp-deal-panel h3,
.kp-portal .kp-deal-client-comments > h3,
.kp-portal .kp-deal-task-notes > strong,
.kp-portal .kp-deal-task-attachments > strong {
    color: #17334F !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
}

.kp-portal .kp-deal-info-list {
    margin-top: 10px;
}

.kp-portal .kp-deal-info-list div,
.kp-portal .kp-deal-line {
    gap: 12px;
    padding: 9px 0;
    border-bottom-color: #E6EEF7 !important;
}

.kp-portal .kp-deal-info-list dt,
.kp-portal .kp-deal-line span small,
.kp-portal .kp-deal-note small,
.kp-portal .kp-deal-latest-note span,
.kp-portal .kp-deal-task-main small,
.kp-portal .kp-task-complete-form span {
    color: #66798C !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    line-height: 1.35 !important;
}

.kp-portal .kp-deal-info-list dd,
.kp-portal .kp-deal-line span strong,
.kp-portal .kp-deal-line span a,
.kp-portal .kp-deal-task-main strong,
.kp-portal .kp-deal-note strong {
    color: #17334F !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
}

.kp-portal .kp-deal-line button,
.kp-portal .kp-deal-line em {
    color: #1F6F9F !important;
    font-size: 12px !important;
    font-weight: 600 !important;
}

.kp-portal .kp-deal-note,
.kp-portal .kp-deal-task-card {
    padding: 12px !important;
}

.kp-portal .kp-deal-note p,
.kp-portal .kp-deal-note-compact p,
.kp-portal .kp-deal-message-bubble p {
    color: #5A728D !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
}

.kp-portal .kp-deal-source-note,
.kp-portal .kp-deal-client-note,
.kp-portal .kp-deal-message-bubble.is-client {
    background: #F8FBFE !important;
}

.kp-portal .kp-deal-message-bubble {
    border-radius: 8px !important;
}

.kp-portal .kp-deal-task-main em {
    color: #1F6F9F !important;
    background: #EAF4FC !important;
    font-size: 11px !important;
    font-weight: 600 !important;
}

.kp-portal .kp-deal-task-main em.is-complete {
    color: #2F6F4E !important;
    background: #E6F4EC !important;
}

.kp-portal .kp-deal-note-attachments a,
.kp-portal .kp-deal-note-attachments span {
    border-color: #CFE0EF !important;
    border-radius: 7px !important;
    color: #1F6F9F !important;
    background: #FFFFFF !important;
    font-size: 11px !important;
    font-weight: 600 !important;
}

@media (max-width: 980px) {
    .kp-portal .kp-deal-workspace {
        grid-template-columns: 1fr;
    }
}

.kp-portal .kp-property-detail-layout,
.kp-portal .kp-property-section-stack,
.kp-portal .kp-property-description-card,
.kp-portal .kp-property-description-body {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
}

.kp-portal .kp-property-description-card > h2 {
    font-size: 17px !important;
    line-height: 1.25 !important;
}

.kp-portal .kp-property-description-body {
    display: block !important;
    white-space: normal !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
}

.kp-portal .kp-property-description-body p,
.kp-portal .kp-property-description-body ul,
.kp-portal .kp-property-description-body ol {
    font-size: 16px !important;
    font-weight: 400 !important;
    margin-bottom: 14px !important;
}

.kp-portal .kp-property-description-body li {
    font-size: 16px !important;
    font-weight: 400 !important;
    line-height: 1.35 !important;
    margin: 0 0 2px !important;
}

.kp-portal .kp-property-description-body li p {
    margin: 0 !important;
}

.kp-public-introduction {
    min-height: 100vh;
    background: #F3F6FA;
    color: #061D3B;
    padding: 42px 18px;
}

.kp-public-introduction-card {
    width: min(900px, 100%);
    margin: 0 auto;
    background: #FFFFFF;
    border: 1px solid #CFE0EF;
    border-radius: 8px;
    padding: 26px;
    box-shadow: 0 18px 45px rgba(6, 29, 59, 0.08);
}

.kp-public-introduction-header {
    margin-bottom: 22px;
}

.kp-public-introduction-header h1 {
    margin: 4px 0 8px;
    color: #061D3B;
    font-size: 30px;
    line-height: 1.15;
}

.kp-public-introduction-header p {
    margin: 0;
    color: #5A728D;
    font-size: 15px;
    line-height: 1.5;
}

.kp-public-referrer {
    display: flex;
    gap: 8px;
    align-items: baseline;
    margin: 0 0 18px;
    padding: 10px 12px;
    background: #F8FBFE;
    border: 1px solid #DCEAF5;
    border-radius: 7px;
}

.kp-public-referrer span {
    color: #66798C;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

.kp-public-referrer strong {
    color: #17334F;
    font-size: 14px;
}

.kp-zoho-introduction-webform {
    border: 1px solid #DCEAF5;
    border-radius: 8px;
    background: #FFFFFF;
    overflow: hidden;
}

.kp-zoho-introduction-webform #webform7435433000001667112 {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 20px !important;
    background: #FFFFFF !important;
    color: #061D3B !important;
    box-sizing: border-box !important;
}

.kp-zoho-introduction-webform #webform7435433000001667112 * {
    box-sizing: border-box !important;
    font-family: inherit !important;
}

.kp-zoho-introduction-webform #crmWebToEntityForm.zcwf_lblLeft {
    padding: 18px !important;
}

.kp-zoho-introduction-webform .zcwf_title {
    color: #061D3B;
}

.kp-zoho-introduction-webform .zcwf_col_fld input[type=text],
.kp-zoho-introduction-webform .zcwf_col_fld textarea,
.kp-zoho-introduction-webform .zcwf_col_fld select {
    max-width: 100%;
}

.kp-zoho-introduction-webform #crmWebToEntityForm,
.kp-zoho-introduction-webform #crmWebToEntityForm * {
    font-family: inherit !important;
}

.kp-zoho-introduction-webform #crmWebToEntityForm.zcwf_lblLeft {
    width: 100% !important;
    margin: 0 !important;
    padding: 20px !important;
    background: #FFFFFF !important;
}

.kp-zoho-introduction-webform #webform7435433000001667112 .zcwf_title,
.kp-zoho-introduction-webform .zcwf_title {
    margin: 0 0 18px !important;
    padding: 0 0 14px !important;
    max-width: none !important;
    border-bottom: 1px solid #E6EEF7 !important;
    color: #061D3B !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
}

.kp-zoho-introduction-webform #webform7435433000001667112 .zcwf_row,
.kp-zoho-introduction-webform .zcwf_row {
    display: grid !important;
    grid-template-columns: minmax(160px, 0.32fr) minmax(0, 1fr) !important;
    gap: 10px 14px !important;
    align-items: start !important;
    margin: 0 !important;
    padding: 9px 0 !important;
    border-bottom: 1px solid #EEF4FA !important;
}

.kp-zoho-introduction-webform .zcwf_row:last-of-type {
    border-bottom: 0 !important;
}

.kp-zoho-introduction-webform #webform7435433000001667112 .zcwf_col_lab,
.kp-zoho-introduction-webform #webform7435433000001667112 .zcwf_col_fld,
.kp-zoho-introduction-webform .zcwf_col_lab,
.kp-zoho-introduction-webform .zcwf_col_fld {
    float: none !important;
    width: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.kp-zoho-introduction-webform .zcwf_col_lab {
    padding-top: 9px !important;
}

.kp-zoho-introduction-webform .zcwf_col_lab label,
.kp-zoho-introduction-webform .zcwf_col_lab,
.kp-zoho-introduction-webform #reCaptchaField {
    color: #385A7A !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
}

.kp-zoho-introduction-webform #webform7435433000001667112 .zcwf_col_fld input[type=text],
.kp-zoho-introduction-webform #webform7435433000001667112 .zcwf_col_fld input[type=password],
.kp-zoho-introduction-webform #webform7435433000001667112 .zcwf_col_fld textarea,
.kp-zoho-introduction-webform #webform7435433000001667112 .zcwf_col_fld select,
.kp-zoho-introduction-webform .zcwf_col_fld input[type=text],
.kp-zoho-introduction-webform .zcwf_col_fld input[type=password],
.kp-zoho-introduction-webform .zcwf_col_fld textarea,
.kp-zoho-introduction-webform .zcwf_col_fld select {
    float: none !important;
    width: 100% !important;
    min-height: 40px !important;
    margin: 0 !important;
    padding: 9px 11px !important;
    border: 1px solid #CFE0EF !important;
    border-radius: 7px !important;
    outline: 0 !important;
    background: #FFFFFF !important;
    color: #061D3B !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.35 !important;
    box-shadow: none !important;
}

.kp-zoho-introduction-webform .zcwf_col_fld textarea {
    min-height: 96px !important;
    resize: vertical !important;
}

.kp-zoho-introduction-webform .zcwf_col_fld select[multiple],
.kp-zoho-introduction-webform .zcwf_col_fld .zcwf_col_fld_slt[multiple] {
    min-height: 118px !important;
}

.kp-zoho-introduction-webform #webform7435433000001667112 .zcwf_col_help {
    display: none !important;
}

.kp-zoho-introduction-webform .zcwf_col_fld input[type=text]:focus,
.kp-zoho-introduction-webform .zcwf_col_fld textarea:focus,
.kp-zoho-introduction-webform .zcwf_col_fld select:focus {
    border-color: #1F6F9F !important;
    box-shadow: 0 0 0 3px rgba(31, 111, 159, 0.13) !important;
}

.kp-zoho-introduction-webform .wfrm_fld_dpNn {
    display: none !important;
}

.kp-zoho-introduction-webform .zcwf_row:has(#COBJ14CF17),
.kp-zoho-introduction-webform .zcwf_row:has(#COBJ14CF51),
.kp-zoho-introduction-webform .zcwf_row:has(#COBJ14CF18),
.kp-zoho-introduction-webform .zcwf_row:has(#COBJ14CF23) {
    display: none !important;
}

.kp-zoho-introduction-webform #imgid7435433000001667112 {
    display: block !important;
    max-width: 220px !important;
    margin-bottom: 8px !important;
    border: 1px solid #DCEAF5 !important;
    border-radius: 7px !important;
    background: #F8FBFE !important;
}

.kp-zoho-introduction-webform .zcwf_col_fld a[href^="javascript"] {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 30px !important;
    padding: 5px 9px !important;
    border: 1px solid #CFE0EF !important;
    border-radius: 7px !important;
    color: #1F6F9F !important;
    background: #F8FBFE !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
}

.kp-zoho-introduction-webform #captchaErr7435433000001667112 {
    position: static !important;
    padding: 6px 0 0 !important;
    color: #8A2D2D !important;
    font-size: 12px !important;
    font-weight: 600 !important;
}

.kp-zoho-introduction-webform .zcwf_col_fld:has(#formsubmit) {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    justify-content: flex-end !important;
}

.kp-zoho-introduction-webform .zcwf_button,
.kp-zoho-introduction-webform .formsubmit.zcwf_button {
    min-width: 110px !important;
    min-height: 40px !important;
    margin: 0 !important;
    padding: 9px 15px !important;
    border: 1px solid #1F6F9F !important;
    border-radius: 7px !important;
    cursor: pointer !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    text-align: center !important;
    box-shadow: none !important;
}

.kp-zoho-introduction-webform .formsubmit.zcwf_button {
    color: #FFFFFF !important;
    background: #1F6F9F !important;
}

.kp-zoho-introduction-webform .formsubmit.zcwf_button:hover {
    border-color: #17334F !important;
    background: #17334F !important;
}

.kp-zoho-introduction-webform input[type=reset].zcwf_button {
    border-color: #CFE0EF !important;
    color: #1F6F9F !important;
    background: #FFFFFF !important;
}

.kp-zoho-introduction-webform input[type=reset].zcwf_button:hover {
    background: #EEF6FC !important;
}

.kp-zoho-introduction-webform #wf_splash {
    border-radius: 8px !important;
    background: rgba(6, 29, 59, 0.76) !important;
}

.kp-zoho-introduction-webform #wf_splash_info {
    color: #FFFFFF !important;
    font-size: 15px !important;
    font-weight: 700 !important;
}

.kp-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.kp-public-introduction-form label,
.kp-form-full {
    display: grid;
    gap: 6px;
}

.kp-public-introduction-form label span,
.kp-form-full span {
    color: #385A7A;
    font-size: 12px;
    font-weight: 700;
}

.kp-public-introduction-form input,
.kp-public-introduction-form select,
.kp-public-introduction-form textarea {
    width: 100%;
    border: 1px solid #CFE0EF;
    border-radius: 7px;
    background: #FFFFFF;
    color: #061D3B;
    font: inherit;
    font-size: 15px;
    padding: 10px 11px;
}

.kp-form-full {
    margin-top: 14px;
}

.kp-public-form-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 18px;
}

.kp-form-notice {
    margin: 0 0 18px;
    padding: 12px 14px;
    border-radius: 7px;
    border: 1px solid #CFE0EF;
    background: #F8FBFE;
    color: #17334F;
    font-size: 14px;
    font-weight: 600;
}

.kp-form-notice.is-success {
    border-color: #B9DFC9;
    background: #ECF8F1;
    color: #2F6F4E;
}

.kp-form-notice.is-error {
    border-color: #F0C9C9;
    background: #FFF5F5;
    color: #8A2D2D;
}

.kp-honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    opacity: 0 !important;
}

@media (max-width: 720px) {
    .kp-public-introduction {
        padding: 20px 10px;
    }

    .kp-public-introduction-card {
        padding: 18px;
    }

    .kp-form-grid {
        grid-template-columns: 1fr;
    }

    .kp-zoho-introduction-webform #webform7435433000001667112 {
        padding: 14px !important;
    }

    .kp-zoho-introduction-webform #webform7435433000001667112 .zcwf_title,
    .kp-zoho-introduction-webform .zcwf_title {
        font-size: 18px !important;
    }

    .kp-zoho-introduction-webform #webform7435433000001667112 .zcwf_row,
    .kp-zoho-introduction-webform .zcwf_row {
        grid-template-columns: 1fr !important;
        gap: 6px !important;
        padding: 8px 0 !important;
    }

    .kp-zoho-introduction-webform .zcwf_col_lab {
        padding-top: 0 !important;
    }

    .kp-zoho-introduction-webform .zcwf_col_fld:has(#formsubmit) {
        justify-content: stretch !important;
    }

    .kp-zoho-introduction-webform .zcwf_button,
    .kp-zoho-introduction-webform .formsubmit.zcwf_button {
        width: 100% !important;
        max-width: none !important;
    }

    .kp-public-form-actions {
        justify-content: stretch;
    }

    .kp-public-form-actions .kp-button {
        width: 100%;
    }
}

/* ===== Account settings & inline login (v1.0.183) ===== */
.kp-login-form,
.kp-account-form {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin-top: 16px;
    text-align: left;
}
.kp-login-form label,
.kp-account-form label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    color: #374151;
}
.kp-login-form input[type="text"],
.kp-login-form input[type="password"],
.kp-account-form input[type="email"],
.kp-account-form input[type="password"] {
    width: 100%;
    padding: 11px 12px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    font-size: 15px;
    background: #fff;
    color: #111827;
    box-sizing: border-box;
}
.kp-login-form input:focus,
.kp-account-form input:focus {
    outline: none;
    border-color: #10131a;
    box-shadow: 0 0 0 3px rgba(16, 19, 26, 0.08);
}
.kp-login-remember {
    flex-direction: row !important;
    align-items: center;
    gap: 8px !important;
    font-weight: 500 !important;
}
.kp-login-remember input { width: auto; }
.kp-login-submit { width: 100%; justify-content: center; }
.kp-login-links { margin-top: 14px; font-size: 13px; }
.kp-login-links a { color: #4b5563; text-decoration: underline; }
.kp-login-intro { color: #6b7280; }
.kp-account-card .kp-account-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 28px;
    margin-top: 8px;
}
.kp-account-form h3 { margin: 0 0 4px; font-size: 15px; }
.kp-account-current { margin: 0; font-size: 13px; color: #6b7280; }
.kp-account-form .kp-button { align-self: flex-start; }
.kp-account-notice {
    margin: 12px 0 4px;
    padding: 10px 14px;
    border-radius: 8px;
    font-size: 14px;
}
.kp-account-notice--ok { background: #ecfdf5; color: #065f46; border: 1px solid #a7f3d0; }
.kp-account-notice--err { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
/* ===== Sign out (v1.0.184) ===== */
.kp-account-session {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 28px;
    padding-top: 20px;
    border-top: 1px solid #e5e7eb;
    flex-wrap: wrap;
}
.kp-account-session h3 { margin: 0 0 2px; font-size: 15px; }
.kp-account-session p { margin: 0; font-size: 13px; color: #6b7280; }
.kp-logout-button {
    background: #fff;
    color: #991b1b;
    border: 1px solid #fecaca;
    border-radius: 8px;
    padding: 10px 18px;
    font-weight: 600;
    text-decoration: none;
}
.kp-logout-button:hover { background: #fef2f2; border-color: #f87171; color: #7f1d1d; }
/* ===== Teaser opportunities (v1.0.187) ===== */
.kp-teaser-section { margin-top: 28px; }
.kp-teaser-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 18px; }
.kp-teaser-card { border: 1px dashed #cbd5e1; border-radius: 12px; padding: 18px 20px; background: #fafbfc; display: flex; flex-direction: column; gap: 8px; }
.kp-teaser-topline { display: flex; justify-content: space-between; align-items: center; }
.kp-teaser-flag { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #92700a; background: #fef6dd; border-radius: 20px; padding: 3px 10px; }
.kp-teaser-card h3 { margin: 2px 0 0; font-size: 16px; }
.kp-teaser-location { font-size: 13px; color: #6b7280; }
.kp-teaser-price { font-weight: 700; font-size: 14px; }
.kp-teaser-desc { margin: 4px 0 0; font-size: 13px; color: #374151; }
.kp-teaser-highlights { margin: 4px 0 0; padding-left: 18px; font-size: 13px; color: #374151; }
.kp-teaser-highlights li { margin-bottom: 2px; }
.kp-teaser-cta { margin-top: auto; align-self: flex-start; background: #10131a; color: #fff !important; border-radius: 8px; padding: 9px 16px; font-size: 13px; font-weight: 600; text-decoration: none; }
.kp-teaser-cta:hover { background: #232838; }
/* ===== iOS Safari dynamic viewport fix (v1.0.189) =====
   100vh on iOS includes the area behind browser chrome, pushing modal
   footers (message send button) off-screen in portrait. dvh tracks the
   real visible viewport; browsers without dvh ignore these and keep
   the vh fallbacks above. */
.kp-message-modal-dialog {
    max-height: min(760px, calc(100dvh - 40px));
    padding-bottom: env(safe-area-inset-bottom);
}
.kp-message-modal-body { max-height: calc(100dvh - 240px); }
.kp-referral-modal-panel { height: min(820px, calc(100dvh - 56px)); }
.kp-property-photo-dialog { height: min(100dvh - 32px, 860px); }
.kp-attachment-dialog { height: min(100dvh - 32px, 780px); }
@media (max-width: 860px) {
    .kp-portal { min-height: 100dvh; }
    .kp-sidebar { min-height: 100dvh; }
    .kp-referral-modal-panel { height: calc(100dvh - 20px); }
    .kp-property-photo-dialog { height: 100dvh; }
    .kp-message-modal-dialog { max-height: calc(100dvh - 16px); }
    .kp-message-modal-body { max-height: calc(100dvh - 200px); }
}
/* ===== Message thread two-tone bubbles (v1.0.195) ===== */
.kp-message-conversation-row { display: flex; flex-direction: column; max-width: 82%; margin-bottom: 12px; }
.kp-message-conversation-row.is-client { align-self: flex-end; margin-left: auto; align-items: flex-end; }
.kp-message-conversation-row.is-kerja { align-self: flex-start; margin-right: auto; align-items: flex-start; }
.kp-message-conversation-row.is-client .kp-message-bubble,
.kp-message-conversation-row.is-client > div:not([class]) { background: #10131a; color: #fff; border-radius: 14px 14px 4px 14px; }
.kp-message-conversation-row.is-kerja .kp-message-bubble,
.kp-message-conversation-row.is-kerja > div:not([class]) { background: #eef1f5; color: #1f2937; border-radius: 14px 14px 14px 4px; }
.kp-message-conversation-row.is-client .kp-message-bubble a { color: #cbd5e1; }
.kp-message-conversation-row .kp-message-bubble { padding: 10px 14px; border: none; }
/* ===== Messenger cleanup (v1.0.199): no avatars in thread view, tighter callouts ===== */
.kp-message-conversation-row .kp-message-avatar { display: none !important; }
.kp-message-conversation-row,
.kp-message-conversation-row.is-client {
    display: flex;
    flex-direction: column;
    max-width: 68%;
    gap: 0;
    padding: 10px 14px;
    border-radius: 10px;
}
.kp-message-conversation-row.is-kerja { background: #FFFFFF; border-color: #DCE4EC; }
.kp-message-conversation-row.is-client { background: #F4F8FC; border-color: #D3E2F0; }
.kp-message-conversation-bubble strong { margin-bottom: 2px; font-size: 13px; }
.kp-message-conversation-bubble div { font-size: 13.5px; line-height: 1.5; }
.kp-message-conversation-bubble time { margin-top: 3px; font-size: 11px; }
.kp-message-meta { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.kp-message-meta-side { text-align: right; }
.kp-message-meta-side small { display: block; color: #8A99AC; font-size: 10.5px; }
.kp-message-row-actions { top: 8px; right: 8px; padding: 3px; }
@media (max-width: 860px) {
    .kp-message-conversation-row,
    .kp-message-conversation-row.is-client { max-width: 92%; }
}

/* Folder filtering: the hidden attribute must beat explicit display rules */
.kp-message-inbox-row[hidden],
.kp-message-thread-panel[hidden],
.kp-message-inbox-empty[hidden] {
    display: none !important;
}

/* Folder empty state */
.kp-message-inbox-empty[data-kp-message-folder-empty] {
    display: block;
    padding: 18px 16px;
}

.kp-message-inbox-empty[data-kp-message-folder-empty] strong {
    display: block;
    margin-bottom: 4px;
    white-space: normal;
}

.kp-message-inbox-empty[data-kp-message-folder-empty] span {
    display: block;
    color: #7A8BA1;
    font-size: 12px;
    white-space: normal;
}

.kp-message-row-title time {
    margin-left: auto;
    flex-shrink: 0;
    color: #506C91;
    font-size: 12px;
    white-space: nowrap;
}

.kp-message-chip-new {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    padding: 1px 8px;
    border-radius: 999px;
    background: #2D6D95;
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.kp-property-listing-main strong {
    font-weight: 400;
}

.kp-property-asking-price {
    font-weight: 400;
}

.kp-property-sortbar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin: 0 0 14px;
}

.kp-property-sortbar label {
    color: #506C91;
    font-size: 13px;
}

.kp-property-sortbar select {
    padding: 6px 10px;
    border: 1px solid #D5DEEA;
    border-radius: 8px;
    background: #fff;
    color: #061D3B;
    font-size: 13px;
}

.kp-property-location-card .kp-location-address {
    margin: 0;
    color: #061D3B;
    font-size: 15px;
    line-height: 1.5;
    white-space: pre-line;
    overflow-wrap: break-word;
}

.kp-property-location-card .kp-location-line {
    margin: 6px 0 0;
    color: #061D3B;
    font-size: 14px;
}

.kp-property-location-card .kp-location-line span {
    color: #506C91;
    margin-right: 6px;
}

.kp-doc-sign-now {
    background: #0B3D6E;
    color: #fff;
    border: 0;
    border-radius: 8px;
    padding: 8px 14px;
    cursor: pointer;
    font-weight: 600;
}

.kp-doc-sign-now:disabled {
    opacity: 0.6;
    cursor: wait;
}

/* === KP mobile messenger (single-pane flow) === */
@media (max-width: 860px) {
    .kp-message-workspace {
        display: block;
    }

    .kp-message-mailboxes {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        gap: 8px;
        padding: 10px 12px;
        border-right: 0;
        border-bottom: 1px solid var(--kp-border);
        align-items: center;
    }

    .kp-message-mailboxes .kp-message-folder-heading {
        display: none;
    }

    .kp-message-compose {
        flex: 0 0 auto;
        white-space: nowrap;
    }

    .kp-message-thread-layout {
        display: block;
        min-height: 0;
    }

    .kp-message-inbox-rows {
        border-right: 0;
    }

    .kp-message-inbox-row {
        padding: 14px 12px;
        min-height: 56px;
    }

    /* default state: list only */
    .kp-message-thread-panels {
        display: none;
    }

    /* thread open state: conversation only */
    .kp-mobile-view-thread .kp-message-inbox-rows,
    .kp-mobile-view-thread .kp-message-inbox-header,
    .kp-mobile-view-thread .kp-message-mailboxes {
        display: none;
    }

    .kp-mobile-view-thread .kp-message-thread-panels {
        display: block;
    }

    .kp-mobile-back-bar {
        display: flex;
        position: sticky;
        top: 0;
        z-index: 30;
        background: var(--kp-white);
        border-bottom: 1px solid var(--kp-border);
        padding: 10px 12px;
    }

    .kp-mobile-back-bar button {
        background: none;
        border: 0;
        color: #0B3D6E;
        font-size: 15px;
        font-weight: 600;
        cursor: pointer;
        padding: 6px 8px;
    }

    .kp-message-conversation {
        padding-bottom: 84px;
    }

    .kp-message-inline-reply {
        position: sticky;
        bottom: 0;
        z-index: 25;
        background: #F4F8FB;
        padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
        margin: 0;
        border-top: 1px solid var(--kp-border);
    }

    .kp-message-inline-reply .kp-message-thread-reply {
        display: block;
        width: 100%;
        padding: 13px 16px;
        font-size: 16px;
    }

    .kp-message-conversation-bubble {
        max-width: 88%;
    }

    /* compose + reply modal: full screen */
    .kp-message-modal-dialog {
        width: 100vw;
        max-width: 100vw;
        height: 100dvh;
        max-height: 100dvh;
        border-radius: 0;
        display: flex;
        flex-direction: column;
    }

    .kp-message-modal-body {
        flex: 1;
        overflow-x: hidden;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    .kp-message-rich-editor {
        min-height: 140px;
        font-size: 16px;
    }
}

@media (min-width: 861px) {
    .kp-mobile-back-bar {
        display: none;
    }
}
/* === KP Safari mobile fixes === */
@media (max-width: 860px) {
    /* header: search gets its own full-width row, no overlap */
    .kp-message-inbox-header {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 8px 10px;
        padding: 12px;
    }

    .kp-message-inbox-header > div {
        flex: 1 1 auto;
        min-width: 0;
    }

    .kp-message-search {
        flex: 1 1 100%;
        order: 5;
        min-width: 0;
    }

    .kp-message-search input {
        width: 100%;
        box-sizing: border-box;
        font-size: 16px;
    }

    .kp-message-folder-select {
        max-width: 42vw;
    }

    /* rows: stop Safari collapsing the title to one character per line */
    .kp-message-inbox-row {
        display: flex;
        align-items: flex-start;
        gap: 10px;
        width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    .kp-message-avatar {
        flex: 0 0 auto;
    }

    .kp-message-row-content {
        display: block;
        flex: 1 1 auto;
        min-width: 0;
    }

    .kp-message-row-title {
        display: flex;
        align-items: baseline;
        gap: 6px;
        min-width: 0;
    }

    .kp-message-row-title strong {
        flex: 1 1 auto;
        min-width: 0;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .kp-message-row-title time {
        flex: 0 0 auto;
        white-space: nowrap;
        font-size: 12px;
    }

    .kp-message-row-subject,
    .kp-message-row-preview {
        display: block;
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    /* conversation: no horizontal overflow, ever */
    .kp-message-portal,
    .kp-message-workspace {
        max-width: 100%;
        overflow-x: hidden;
    }

    .kp-message-thread-layout,
    .kp-message-thread-panels,
    .kp-message-thread-panel,
    .kp-message-conversation {
        max-width: 100%;
        min-width: 0;
    }

    .kp-message-conversation-row {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
        min-width: 0;
    }

    .kp-message-conversation-bubble {
        min-width: 0;
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    .kp-message-attachment-list {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
        max-width: 100%;
    }

    .kp-message-attachment-list a,
    .kp-message-attachment-list > div {
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    /* Safari sticky prefixes */
    .kp-mobile-back-bar {
        position: -webkit-sticky;
        position: sticky;
    }

    .kp-message-inline-reply {
        position: -webkit-sticky;
        position: sticky;
    }
}
/* === KP Safari bubble meta fix === */
@media (max-width: 860px) {
    /* action icons: own row above the bubble, never overlapping the meta */
    .kp-message-conversation-row {
        position: relative;
        padding-top: 0;
    }

    .kp-message-row-actions {
        position: static;
        display: flex;
        justify-content: flex-end;
        gap: 6px;
        margin: 0 0 6px;
        box-shadow: none;
        border: 0;
        background: transparent;
        padding: 0;
    }

    /* sender name: single line with ellipsis, date beside it */
    .kp-message-meta {
        display: flex;
        flex-wrap: nowrap;
        align-items: baseline;
        justify-content: space-between;
        gap: 8px;
        padding-right: 0;
        min-width: 0;
    }

    .kp-message-meta strong {
        flex: 1 1 auto;
        min-width: 0;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .kp-message-meta-side {
        flex: 0 0 auto;
        display: block;
        text-align: right;
        white-space: nowrap;
        font-size: 12px;
    }

    .kp-message-meta-side small {
        display: block;
        white-space: normal;
    }
}
.kp-native-intro-form { display: flex; flex-direction: column; gap: 14px; max-width: 560px; }
.kp-native-intro-form label { display: block; color: #506C91; font-size: 13px; }
.kp-native-intro-form input:not([type=radio]), .kp-native-intro-form select, .kp-native-intro-form textarea { display: block; width: 100%; box-sizing: border-box; margin-top: 5px; padding: 11px 12px; font-size: 16px; border: 1px solid #C9D6E5; border-radius: 8px; color: #061D3B; }
.kp-native-intro-form .kp-hp { position: absolute; left: -9999px; height: 1px; width: 1px; }
.kp-intro-mode { display: flex; gap: 8px; margin-bottom: 4px; }
.kp-intro-mode-tab { flex: 1; }
.kp-intro-mode-tab input { position: absolute; opacity: 0; }
.kp-intro-mode-tab span { display: block; text-align: center; padding: 11px 8px; border: 1px solid #C9D6E5; border-radius: 9px; color: #506C91; font-weight: 600; cursor: pointer; font-size: 14px; }
.kp-intro-mode-tab input:checked + span { background: #0B3D6E; border-color: #0B3D6E; color: #fff; }
.kp-intro-panel { display: flex; flex-direction: column; gap: 12px; }
.kp-intro-hint { margin: 4px 0 0; color: #7A8CA5; font-size: 12px; }
.kp-intro-submit { background: #0B3D6E; color: #fff; border: 0; border-radius: 9px; padding: 13px 18px; font-size: 16px; font-weight: 600; cursor: pointer; }

/* Compact signature panels on the Documents page: shrink to content, scroll if long. */
.kp-portal .kp-files-panel-compact {
    height: auto;
    max-height: 160px;
}
.kp-portal .kp-files-panel-compact > .kp-file-group-list {
    overflow: auto;
    min-height: 0;
}

/* Profile section navigation (v1.0.250) */
.kp-profile-section-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 1.5rem 0 0.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.kp-profile-section-nav .kp-section-toggle {
    background: transparent;
    border: 1px solid rgba(15, 23, 42, 0.18);
    color: inherit;
    border-radius: 999px;
    padding: 0.45rem 1.1rem;
    font-size: 0.85rem;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.kp-profile-section-nav .kp-section-toggle:hover,
.kp-profile-section-nav .kp-section-toggle:focus {
    border-color: rgba(15, 23, 42, 0.45);
}

.kp-profile-section-nav .kp-section-toggle.is-active {
    background: #0f172a;
    border-color: #0f172a;
    color: #ffffff;
}

.kp-profile-subsection.is-collapsed {
    display: none;
}

.kp-field-hint {
    display: block;
    margin-top: 0.25rem;
    opacity: 0.65;
    font-size: 0.75rem;
}

/* Compact profile fields (v1.0.252) */
.kp-profile-details-card .kp-field textarea {
    min-height: 44px;
    max-height: 96px;
    resize: vertical;
}

.kp-profile-details-card .kp-field select[multiple] {
    height: auto;
    max-height: 108px;
    padding: 6px 8px;
}

/* Three-across profile fields on desktop; uniform cells, no full-width stretch. */
@media (min-width: 1024px) {
    .kp-profile-details-card .kp-field-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .kp-profile-details-card .kp-field {
        grid-column: auto;
    }
}

/* Top-align field cells so tall controls (multiselects, textareas) never
   stretch their row neighbours into oversized inputs. */
.kp-profile-details-card .kp-field-grid {
    align-items: start;
}

.kp-profile-details-card .kp-field {
    align-content: start;
}

.kp-profile-details-card .kp-field input,
.kp-profile-details-card .kp-field select:not([multiple]) {
    height: 42px;
    min-height: 42px;
}

.kp-profile-details-card .kp-field select[multiple] {
    min-height: 96px;
}

/* Unify textarea styling with inputs/selects (v1.0.255) */
.kp-profile-details-card .kp-field textarea {
    border: 1px solid var(--kp-border);
    border-radius: 8px;
    color: var(--kp-navy);
    font: inherit;
}

.kp-profile-details-card .kp-field textarea:focus,
.kp-profile-details-card .kp-field select[multiple]:focus {
    outline: none;
    border-color: var(--kp-navy);
}

.kp-profile-details-card .kp-field select[multiple] {
    border-radius: 8px;
}

/* Resources video grid — layout independent of Elementor generated CSS (v1.0.256) */
.kp-resources-page-card .kp-video-grid {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: center;
    width: 100%;
}

.kp-resources-page-card .kp-video-grid {
    padding: 0 !important;
    gap: 0 !important;
}

.kp-resources-page-card .kp-video-card {
    display: flex !important;
    flex-direction: column !important;
    align-items: center;
    flex: 0 0 calc(50% - 8px) !important;
    width: calc(50% - 8px) !important;
    max-width: calc(50% - 8px);
    box-sizing: border-box;
    padding: 16px 12px;
    margin: 0 !important;
}

.kp-resources-page-card .kp-video-card iframe {
    max-width: 100%;
}

.kp-resources-page-card .kp-video-card .elementor-widget,
.kp-resources-page-card .kp-video-card .elementor-widget-container {
    width: auto;
    max-width: 100%;
}

@media (max-width: 900px) {
    .kp-resources-page-card .kp-video-card {
        width: 100% !important;
        max-width: 100%;
    }
}

/* NCND banner (v1.0.258) */
.kp-ncnd-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
    border-left: 4px solid #0f172a;
}

.kp-ncnd-banner-text h3 {
    margin: 0 0 4px;
}

.kp-ncnd-banner-text p {
    margin: 0;
}

/* Dashboard signed-documents card: explicit row separators + doc name links (v1.0.260) */
.kp-dashboard-documents .kp-dashboard-document-item {
    border-top: 0;
    border-bottom: 1px solid rgba(15, 23, 42, 0.1);
    padding: 13px 0;
}

.kp-dashboard-documents .kp-dashboard-document-item:last-child {
    border-bottom: 0;
}

.kp-doc-name-link {
    color: inherit;
    text-decoration: none;
    cursor: pointer;
}

.kp-doc-name-link:hover,
.kp-doc-name-link:focus {
    text-decoration: underline;
}

/* My Forms page (v1.0.263) */
.kp-forms-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 16px;
    margin-top: 8px;
}

.kp-form-card {
    border: 1px solid var(--kp-border);
    border-radius: 12px;
    padding: 18px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: #ffffff;
}

.kp-form-card h3 {
    margin: 0;
    font-size: 15px;
}

.kp-form-card p {
    margin: 0;
    flex: 1;
    color: #66798c;
    font-size: 13px;
}

.kp-form-card .kp-button {
    align-self: flex-start;
}

.kp-forms-completed-list {
    display: flex;
    flex-direction: column;
}

.kp-form-completed-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.kp-form-completed-row:last-child {
    border-bottom: 0;
}

.kp-form-check {
    color: #1e7f4f;
    font-weight: 700;
}

/* NCND-locked property view (v1.0.264) */
.kp-nda-locked-card .kp-nda-locked-location {
    color: #66798c;
    margin: -6px 0 12px;
}

.kp-nda-locked-card .kp-ncnd-banner {
    margin-top: 18px;
}

/* v273: portal language switcher */
.kp-locale-switcher{margin-bottom:10px}
.kp-locale-switcher select{width:100%;border:1px solid rgba(245,242,236,.25);border-radius:8px;padding:7px 10px;font:inherit;font-size:13px;color:#F5F2EC;background:rgba(245,242,236,.08);cursor:pointer}
.kp-locale-switcher select option{color:#1A2C44;background:#fff}

/* v275: sidebar layout refinements */
.kp-locale-switcher{margin:12px 0 0}
.kp-locale-switcher select{width:100%;border:1px solid rgba(245,242,236,.3);border-radius:8px;padding:8px 10px;font:inherit;font-size:14px;font-weight:600;color:#F5F2EC;background:rgba(245,242,236,.1);cursor:pointer}
.kp-locale-switcher select option{color:#1A2C44;background:#fff}
@media (min-width: 861px) {
    /* Wider rail so nav labels are never truncated */
    .kp-shell{grid-template-columns:128px minmax(0,1fr)}
    .kp-nav-link{padding:8px 8px}
    .kp-nav-link span:not(.kp-nav-icon){display:block;width:100%;white-space:normal;overflow-wrap:break-word;hyphens:auto}
    /* Language selector under the logo, legible on the light rail */
    .kp-sidebar-header{display:block;padding:10px 10px 12px}
    .kp-sidebar .kp-brand{margin-bottom:0}
    .kp-locale-switcher{width:100%;margin:10px 0 0}
    .kp-locale-switcher select{color:#143960;background:#FFFFFF;border:1px solid #D5E4F3;font-size:13px;font-weight:700;text-align:center;text-align-last:center;padding:7px 6px}
    /* Footer (home link + avatar circle) removed */
    .kp-sidebar-footer{display:none}
}
/* Re-assert dashboard card row separators (belt-and-braces vs CSS optimizers) */
.kp-dashboard-timeline-item,
.kp-dashboard-meeting-item{border-top:1px solid var(--kp-border, #E3EBF3)}
.kp-dashboard-documents .kp-dashboard-document-item{border-bottom:1px solid rgba(15,23,42,.1)}
.kp-dashboard-documents .kp-dashboard-document-item:last-child{border-bottom:0}

/* v276: consistent separator under dashboard card headings */
.kp-dashboard-card-grid .kp-card > .kp-section-heading{border-bottom:1px solid var(--kp-border, #E3EBF3);padding-bottom:12px;margin-bottom:12px}

/* ===== WL267 - professional, configurable CRM directory ===== */
.kp-portal .kp-crm-directory-form {
    min-width: 0;
}
.kp-portal .kp-crm-directory {
    position: relative;
    padding: 0;
    overflow: visible;
    border-color: #dbe4ee;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 9px 26px rgba(22, 43, 70, .06);
}
.kp-portal .kp-crm-directory-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 19px 21px 15px;
    border-bottom: 1px solid #e5ebf2;
}
.kp-portal .kp-crm-directory-heading h2 {
    margin: 2px 0 3px;
    color: #132f50;
    font-size: 19px;
    letter-spacing: -.018em;
}
.kp-portal .kp-crm-directory-heading .kp-console-meta {
    margin: 0;
}
.kp-portal .kp-crm-column-picker {
    position: relative;
    z-index: 7;
    flex: 0 0 auto;
}
.kp-portal .kp-crm-column-picker > summary {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-width: 104px;
    cursor: pointer;
    list-style: none;
}
.kp-portal .kp-crm-column-picker > summary::-webkit-details-marker {
    display: none;
}
.kp-portal .kp-crm-column-picker[open] > summary {
    border-color: #7ba4ee;
    background: #eef4ff;
    color: #174bb7;
}
.kp-portal .kp-crm-column-menu {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    display: grid;
    width: min(310px, calc(100vw - 44px));
    max-height: min(62vh, 520px);
    padding: 8px;
    overflow: auto;
    border: 1px solid #d7e0eb;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 18px 44px rgba(15, 35, 61, .18);
}
.kp-portal .kp-crm-column-menu-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 6px 8px 10px;
    border-bottom: 1px solid #e7edf4;
    color: #152f50;
}
.kp-portal .kp-crm-column-menu-head span {
    color: #71819a;
    font-size: 11px;
}
.kp-portal .kp-crm-column-menu label {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 36px;
    padding: 7px 8px;
    border-radius: 7px;
    color: #253b58;
    font-size: 12px;
    cursor: pointer;
}
.kp-portal .kp-crm-column-menu label:hover {
    background: #f3f7fb;
}
.kp-portal .kp-crm-column-menu label:has(input:disabled) {
    color: #71819a;
    cursor: default;
}
.kp-portal .kp-crm-column-menu [data-kp-crm-columns-reset] {
    justify-self: start;
    margin: 7px 8px 4px;
}
.kp-portal .kp-crm-directory > .kp-list-toolbar {
    margin: 0;
    padding: 10px 18px;
    border-bottom: 1px solid #e5ebf2;
    background: #f8fafc;
}
.kp-portal .kp-crm-directory > .kp-managed-list-viewport {
    max-height: min(64vh, 700px);
    margin: 0;
    overflow: auto;
    border: 0;
    border-radius: 0 0 14px 14px;
    background: #fff;
}
.kp-portal .kp-crm-directory-table {
    width: 100%;
    min-width: 1180px;
    border: 0;
    border-collapse: separate;
    border-spacing: 0;
    table-layout: auto;
    color: #24364d;
    font-family: var(--font-primary, "Figtree", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
    font-size: var(--font-size-nav, 12px);
    font-weight: var(--font-weight-medium, 500);
    line-height: 1.35;
}
.kp-portal .kp-crm-directory-table th,
.kp-portal .kp-crm-directory-table td {
    min-width: 112px;
    padding: 11px 13px;
    border-right: 0;
    border-bottom: 1px solid #e8edf3;
    background: #fff;
    text-align: left;
    vertical-align: middle;
    white-space: nowrap;
}
.kp-portal .kp-crm-directory-table th {
    position: sticky;
    z-index: 3;
    top: 0;
    padding-top: 10px;
    padding-bottom: 10px;
    background: #f4f7fa;
    color: #66758c;
    font-family: inherit;
    font-size: var(--font-size-caption, 11px);
    font-weight: 700;
    letter-spacing: .045em;
    text-transform: uppercase;
}
.kp-portal .kp-crm-directory-table tbody tr {
    cursor: pointer;
    transition: background-color 120ms ease, box-shadow 120ms ease;
}
.kp-portal .kp-crm-directory-table tbody tr:hover td,
.kp-portal .kp-crm-directory-table tbody tr:focus-within td {
    background: #f7faff;
}
.kp-portal .kp-crm-directory-table tbody tr:hover td:first-child {
    box-shadow: inset 3px 0 var(--kp-navy);
}
.kp-portal .kp-crm-directory-table tbody tr:last-child td {
    border-bottom: 0;
}
.kp-portal .kp-crm-directory-table [data-kp-crm-column][hidden] {
    display: none !important;
}
.kp-portal .kp-crm-directory-table .kp-crm-directory-select {
    width: 42px;
    min-width: 42px;
    max-width: 42px;
    padding-right: 8px;
    padding-left: 14px;
    text-align: center;
}
.kp-portal .kp-crm-directory-table .kp-crm-directory-name {
    min-width: 210px;
}
.kp-portal .kp-crm-directory-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    border: 1px solid #d9e4f0;
    border-radius: 50%;
    background: #eef4fb;
    color: #315578;
    font-size: 11px;
    font-weight: 700;
}
.kp-portal .kp-crm-directory-name > span:last-child {
    display: inline-grid;
    min-width: 0;
    margin-left: 10px;
    vertical-align: middle;
}
.kp-portal .kp-crm-directory-name strong {
    overflow: hidden;
    color: #152f50;
    font-family: inherit;
    font-size: var(--font-size-body, 14px);
    font-weight: var(--font-weight-bold, 700);
    text-overflow: ellipsis;
}
.kp-portal .kp-crm-directory-role {
    display: inline-block;
    max-width: 230px;
    padding: 0;
    overflow: hidden;
    border-radius: 0;
    background: transparent;
    color: inherit;
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    text-overflow: ellipsis;
}
.kp-portal .kp-crm-directory-table td > a:not(.kp-linklike) {
    color: #315f9d;
    text-decoration: none;
}
.kp-portal .kp-crm-directory-table td > a:not(.kp-linklike):hover {
    text-decoration: underline;
}
.kp-portal .kp-crm-directory-table .kp-crm-directory-action {
    position: sticky;
    right: 0;
    z-index: 4;
    width: 54px;
    min-width: 54px;
    max-width: 54px;
    overflow: visible;
    background: #fff;
    text-align: center;
}
.kp-portal .kp-crm-directory-table th.kp-crm-directory-action {
    z-index: 5;
    background: #f4f7fa;
}
.kp-portal .kp-crm-directory-table .kp-crm-directory-action.is-row-menu-open {
    z-index: 1000;
}
.kp-portal .kp-crm-row-menu {
    position: relative;
    display: inline-block;
    font-family: inherit;
}
.kp-portal .kp-crm-row-menu > summary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 30px;
    border: 1px solid #d9e3ee;
    border-radius: 7px;
    background: #fff;
    color: #315578;
    cursor: pointer;
    font-family: inherit;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 1px;
    list-style: none;
}
.kp-portal .kp-crm-row-menu > summary::-webkit-details-marker { display: none; }
.kp-portal .kp-crm-row-menu[open] > summary,
.kp-portal .kp-crm-row-menu > summary:hover,
.kp-portal .kp-crm-row-menu > summary:focus-visible {
    border-color: #9db8dc;
    background: #eef5ff;
    outline: none;
}
.kp-portal .kp-crm-row-menu-panel {
    position: absolute;
    z-index: 1001;
    top: calc(100% + 6px);
    right: 0;
    width: 224px;
    padding: 6px;
    border: 1px solid #d9e3ee;
    border-radius: 10px;
    background: #fff;
    opacity: 1;
    box-shadow: 0 14px 32px rgba(22, 44, 73, .18);
    text-align: left;
    white-space: normal;
}
.kp-portal .kp-crm-row-menu-panel > a,
.kp-portal .kp-crm-row-menu-panel > button,
.kp-portal .kp-crm-row-menu-panel > span.is-disabled {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 34px;
    margin: 0;
    padding: 8px 10px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: #24364d;
    cursor: pointer;
    font-family: inherit;
    font-size: var(--font-size-nav, 12px);
    font-weight: var(--font-weight-medium, 500);
    line-height: 1.3;
    text-align: left;
    text-decoration: none;
}
.kp-portal .kp-crm-row-menu-panel > a:hover,
.kp-portal .kp-crm-row-menu-panel > button:hover,
.kp-portal .kp-crm-row-menu-panel > a:focus-visible,
.kp-portal .kp-crm-row-menu-panel > button:focus-visible {
    background: #eef5ff;
    color: #123f78;
    outline: none;
}
.kp-portal .kp-crm-row-menu-panel > span.is-disabled {
    color: #9aa6b5;
    cursor: not-allowed;
}
.kp-portal .kp-crm-row-menu-panel > .is-danger { color: #b42318; }
.kp-portal .kp-crm-row-menu-panel > .is-danger:hover,
.kp-portal .kp-crm-row-menu-panel > .is-danger:focus-visible { background: #fff1f0; color: #8f1d14; }
.kp-portal .kp-crm-row-menu-separator {
    display: block;
    height: 1px;
    min-height: 1px;
    margin: 5px 7px;
    padding: 0;
    background: #e8edf3;
}
.kp-portal .kp-crm-row-external-form { display: none; }
.kp-portal .kp-crm-directory-table tbody tr:nth-last-child(-n+3) .kp-crm-row-menu-panel {
    top: auto;
    bottom: calc(100% + 6px);
}
@media (max-width: 720px) {
    .kp-portal .kp-crm-directory-heading {
        padding: 16px;
    }
    .kp-portal .kp-crm-directory-table {
        min-width: 980px;
    }
    .kp-portal .kp-crm-directory > .kp-managed-list-viewport {
        max-height: 66vh;
    }
}

/* v277: language selector below the blue logo block; unclipped active nav pill */
.kp-sidebar-header{display:flex}
@media (min-width: 861px) {
    .kp-sidebar-header{display:flex;justify-content:center;padding:10px 0 8px}
    .kp-locale-switcher{width:calc(100% - 16px);margin:10px 8px 0}
    .kp-nav{padding:12px 8px}
}

/* v278: Properties hero typography normalized to match other page headers */
.kp-property-hero h2{font-size:clamp(20px, 2vw, 26px);font-weight:500;color:#17334F;line-height:1.2}
.kp-property-hero p{font-size:14px;line-height:1.55}

/* v280: zoom-proof active nav pill outline (1px inset shadows drop edges at fractional zoom) */
@media (min-width: 861px) {
    .kp-nav-link{border:1px solid transparent}
    .kp-nav-link.is-active{border:1px solid var(--kp-blue);box-shadow:none}
}

/* v281: direct portal page — no theme container to break out of, so disable the
   100vw full-bleed hack. 100vw includes the scrollbar, which shifts the whole
   portal ~8px off-screen left on classic-scrollbar browsers (Edge). */
body.kp-direct-portal-page{margin:0}
body.kp-direct-portal-page .kp-portal{position:static;left:auto;width:100%;max-width:100%;margin:0}

/* v285: single separator under dashboard card headings (kill first row's top border) */
.kp-dashboard-card-grid .kp-card > .kp-section-heading + .kp-dashboard-timeline-item,
.kp-dashboard-card-grid .kp-card > .kp-section-heading + .kp-dashboard-meeting-item,
.kp-dashboard-card-grid .kp-card > .kp-section-heading + .kp-mini-row{border-top:0}

/* v292: deal-process education stepper on property pages */
.kp-deal-process{border:1px solid var(--kp-border, #E3EBF3);border-radius:12px;background:#fff;padding:16px 18px;margin:0 0 16px}
.kp-deal-process-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.kp-deal-process-head strong{color:#17334F;font-size:15px}
.kp-deal-badge{background:rgba(200,160,77,.16);color:#8a6a24;font-weight:700}
.kp-deal-steps{list-style:none;display:flex;flex-wrap:wrap;gap:6px 18px;margin:0 0 12px;padding:0}
.kp-deal-steps li{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;min-width:110px;flex:1;position:relative;opacity:.55}
.kp-deal-steps li.is-done,.kp-deal-steps li.is-current{opacity:1}
.kp-deal-step-marker{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:2px solid #D5E4F3;color:#3D526B;background:#fff;font-weight:700;font-size:13px}
.kp-deal-steps li.is-done .kp-deal-step-marker{background:#1A2C44;border-color:#1A2C44;color:#fff}
.kp-deal-steps li.is-current .kp-deal-step-marker{border-color:#C8A04D;color:#8a6a24;box-shadow:0 0 0 3px rgba(200,160,77,.2)}
.kp-deal-step-label{font-size:12.5px;font-weight:700;color:#17334F;line-height:1.2}
.kp-deal-steps li small{font-size:11px;color:#5c6b7d;line-height:1.35}
.kp-deal-process-note{margin:0;font-size:13px;color:#3D526B;line-height:1.55;border-top:1px solid var(--kp-border, #E3EBF3);padding-top:10px}
.kp-deal-pof-cta{margin-top:12px}
.kp-nda-locked-card .kp-deal-process{margin-top:16px}
@media print{.kp-deal-process{display:none}}

/* ---- v1.0.297 onboarding wizard ---- */
.kp-onboard-card { display: block; }
.kp-onboard-head h3 { margin: 4px 0 6px; }
.kp-onboard-head p { margin: 0 0 16px; color: #6b7280; }
.kp-onboard-steps { list-style: none; display: flex; gap: 14px; flex-wrap: wrap; margin: 0 0 18px; padding: 0; }
.kp-onboard-step { display: flex; align-items: center; gap: 10px; flex: 1 1 180px; min-width: 170px; padding: 10px 12px; border: 1px solid #e5e7eb; border-radius: 10px; background: #fafafa; }
.kp-onboard-step.is-done { border-color: #bbf7d0; background: #f0fdf4; }
.kp-onboard-step.is-current { border-color: #10131a; background: #fff; box-shadow: 0 4px 14px rgba(16,19,26,0.08); }
.kp-onboard-dot { width: 26px; height: 26px; border-radius: 50%; background: #e5e7eb; color: #374151; display: inline-flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; flex: 0 0 26px; }
.kp-onboard-step.is-done .kp-onboard-dot { background: #16a34a; color: #fff; }
.kp-onboard-step.is-current .kp-onboard-dot { background: #10131a; color: #fff; }
.kp-onboard-label { display: flex; flex-direction: column; line-height: 1.25; }
.kp-onboard-label small { color: #6b7280; }
.kp-onboard-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px 14px; margin-bottom: 14px; }
.kp-onboard-field { display: flex; flex-direction: column; gap: 5px; font-size: 13px; }
.kp-onboard-field span { font-weight: 600; color: #374151; }
.kp-onboard-field input, .kp-onboard-field select { border: 1px solid #d1d5db; border-radius: 8px; padding: 9px 11px; font-size: 14px; background: #fff; color: #111827; }
.kp-onboard-field input:focus, .kp-onboard-field select:focus { outline: 2px solid #10131a; outline-offset: 1px; }
.kp-onboard-actions { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.kp-onboard-status.is-error { color: #b91c1c; }
.kp-onboard-cta { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.kp-onboard-cta-note { margin: 0; color: #6b7280; font-size: 13px; }
@media (max-width: 720px) { .kp-onboard-steps { flex-direction: column; } .kp-onboard-step { flex: 1 1 auto; } }

/* ============================================================
   WL4 SKIN — BoldTrail-inspired visual language (2026-08-09)
   Appended override layer; brand colors stay var()-driven.
   ============================================================ */

@font-face {
    font-family: 'Figtree';
    font-style: normal;
    font-weight: 300 700;
    font-display: swap;
    src: url('../fonts/figtree-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Figtree';
    font-style: normal;
    font-weight: 300 700;
    font-display: swap;
    src: url('../fonts/figtree-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

.kp-portal, .kp-portal *,
.kp-direct-portal-page, .kp-direct-portal-page * {
    font-family: 'Figtree', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* Canvas: near-white with subtle brand-tinted wash */
.kp-portal, .kp-direct-portal-page, body.kp-direct-portal-page {
    background-color: #FDFDFE;
    background-image: radial-gradient(ellipse 900px 500px at 18% 0%,
        color-mix(in srgb, var(--kp-blue) 6%, #FDFDFE), #FDFDFE 65%);
    background-attachment: fixed;
}

/* Cards: flat, borderless, micro-shadow, roomier */
.kp-portal .kp-card,
.kp-portal .kp-login-card,
.kp-portal .kp-header-card,
.kp-portal .kp-files-panel {
    background: #FFFFFF;
    border: 1px solid #F0F1F4;
    border-radius: 12px;
    box-shadow: 0 2px 2px rgba(0, 0, 0, 0.04);
}

/* Sidebar: clean white rail, BoldTrail-style active chip */
.kp-portal .kp-sidebar {
    background: #FFFFFF;
    border-right: 1px solid #F0F1F4;
}
.kp-portal .kp-nav-link {
    border: none;
    border-radius: 10px;
    color: #5A6270;
    font-size: 11px;
    font-weight: 500;
    transition: color .15s ease;
}
.kp-portal .kp-nav-link:hover { background: #F5F7FA; color: var(--kp-navy); }
.kp-portal .kp-nav-link.is-active {
    background: transparent;
    border: none;
    box-shadow: none;
    color: var(--kp-navy);
    font-weight: 600;
    position: relative;
}
.kp-portal .kp-nav-link.is-active::before {
    content: '';
    position: absolute;
    left: 8px; right: 8px; top: 2px;
    height: 4px; border-radius: 3px;
    background: var(--kp-blue);
    opacity: 0;
}
.kp-portal .kp-nav-link.is-active .kp-nav-icon,
.kp-portal .kp-nav-link.is-active svg {
    color: #FFFFFF;
}
.kp-portal .kp-nav-link .kp-nav-icon,
.kp-portal .kp-nav-link svg {
    border-radius: 9px;
    padding: 6px;
    box-sizing: content-box;
}
.kp-portal .kp-nav-link.is-active .kp-nav-icon,
.kp-portal .kp-nav-link.is-active svg {
    background: var(--kp-blue);
}

/* Buttons: navy primary, soft radius, hairline shadow */
.kp-portal .kp-button,
.kp-portal button.kp-button {
    border-radius: 7px;
    font-weight: 500;
    letter-spacing: .01em;
    box-shadow: 0 2px 2px rgba(0, 0, 0, 0.05);
    transition: filter .15s ease, transform .05s ease;
}
.kp-portal .kp-button:hover { filter: brightness(1.08); }
.kp-portal .kp-button:active { transform: translateY(1px); }
.kp-portal .kp-button-primary { background: var(--kp-blue); border-color: var(--kp-blue); }

/* Status badges: solid squared mini-pills, white uppercase */
.kp-portal .kp-badge {
    border-radius: 4px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 3px 8px;
    background: var(--kp-blue);
    color: #FFFFFF;
    border: none;
}
.kp-portal .kp-badge-success { background: var(--kp-success); color: #fff; }
.kp-portal .kp-badge-warning { background: var(--kp-warning); color: #fff; }

/* Section headings: quieter, roomier */
.kp-portal .kp-section-heading {
    font-weight: 600;
    letter-spacing: .01em;
    color: var(--kp-navy);
}

/* Tables: gray header band, airy rows */
.kp-portal .kp-table thead th,
.kp-portal .kp-table th {
    background: #F4F5F8;
    color: #5A6270;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
    border-bottom: none;
    padding-top: 10px;
    padding-bottom: 10px;
}
.kp-portal .kp-table td {
    padding-top: 14px;
    padding-bottom: 14px;
    border-bottom: 1px solid #F0F1F4;
}
.kp-portal .kp-table tbody tr:hover { background: #FAFBFD; }

/* Page headers */
.kp-portal .kp-page-header h1,
.kp-portal .kp-page-header h2 {
    font-weight: 600;
    color: var(--kp-navy);
}

/* Login gate polish */
.kp-portal .kp-login-card { border-radius: 14px; }
.kp-portal .kp-login-mark {
    border-radius: 12px;
    background: var(--kp-blue);
    box-shadow: 0 6px 16px color-mix(in srgb, var(--kp-blue) 35%, transparent);
}

/* brand initials chip (no-logo default) */
.kp-portal .kp-brand-initials {
    display: inline-flex; align-items: center; justify-content: center;
    width: 40px; height: 40px; border-radius: 10px;
    background: var(--kp-blue); color: #fff;
    font-weight: 700; font-size: 16px; letter-spacing: .02em;
}

/* initials chip inside dark sidebar header: frosted variant */
.kp-portal .kp-sidebar-header .kp-brand-initials {
    background: rgba(255, 255, 255, 0.16);
    border: 1px solid rgba(255, 255, 255, 0.25);
    color: #FFFFFF;
    width: 44px; height: 44px; font-size: 17px;
}

/* ---- Operator Console (wl5) ---- */
.kp-portal .kp-console-metrics { margin-bottom: 18px; }
.kp-portal .kp-console-queue { margin-bottom: 18px; }
.kp-portal .kp-console-list { list-style: none; margin: 0; padding: 0; }
.kp-portal .kp-console-row {
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
    padding: 13px 2px; border-bottom: 1px solid #F0F1F4; flex-wrap: wrap;
}
.kp-portal .kp-console-row:last-child { border-bottom: none; }
.kp-portal .kp-console-row-main strong { display: block; color: var(--kp-navy); font-size: 14px; }
.kp-portal .kp-console-meta { color: var(--kp-muted); font-size: 12px; }
.kp-portal .kp-console-row-side { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.kp-portal .kp-console-when { color: var(--kp-muted); font-size: 11px; }
.kp-portal .kp-console-inline-form { display: flex; align-items: center; gap: 6px; margin: 0; }
.kp-portal .kp-console-input {
    width: 90px; padding: 6px 8px; border: 1px solid #E2E4E9; border-radius: 6px; font-size: 12px;
}
.kp-portal .kp-console-input-sm { width: 52px; }
.kp-portal .kp-console-btn { padding: 6px 12px; font-size: 12px; }
.kp-portal .kp-console-btn-deny { background: #fff; color: var(--kp-error); border: 1px solid #E8D8D8; }
.kp-portal .kp-console-zoho { font-size: 11.5px; color: var(--kp-blue); text-decoration: none; white-space: nowrap; }
.kp-portal .kp-console-empty { color: var(--kp-muted); }
.kp-portal .kp-console-error { color: var(--kp-error); }
.kp-portal .kp-console-notice { border-left: 3px solid var(--kp-success); margin-bottom: 14px; }
.kp-portal .kp-console-notice-error { border-left-color: var(--kp-error); }

/* ============================================================
   WL6 — BoldTrail depth pass: topbar, rail, card language v2
   ============================================================ */

/* --- Topbar (BoldTrail's defining element) --- */
.kp-portal .kp-topbar {
    display: flex; align-items: center; gap: 20px;
    background: #FFFFFF;
    border-bottom: 1px solid #EEF0F3;
    padding: 12px 26px;
    margin: 0 0 22px 0;
    border-radius: 0;
    position: sticky; top: 0; z-index: 40;
    box-shadow: 0 1px 3px rgba(15, 30, 70, 0.04);
}
.kp-portal .kp-topbar-brand { display: flex; align-items: center; gap: 10px; min-width: 0; }
.kp-portal .kp-topbar-brand img { height: 30px; width: auto; }
.kp-portal .kp-topbar-brand strong { color: var(--kp-navy); font-size: 16px; font-weight: 700; letter-spacing: -0.01em; white-space: nowrap; }
.kp-portal .kp-topbar-brand .kp-brand-initials { width: 32px; height: 32px; font-size: 14px; border-radius: 8px; background: var(--kp-blue); color: #fff; }
.kp-portal .kp-topbar-title { flex: 1; text-align: center; color: #8A90A0; font-size: 13px; font-weight: 500; letter-spacing: .02em; }
.kp-portal .kp-topbar-side { display: flex; align-items: center; gap: 14px; }
.kp-portal .kp-topbar-user { display: flex; align-items: center; gap: 8px; color: #444B5A; font-size: 12.5px; font-weight: 500; white-space: nowrap; }
.kp-portal .kp-topbar-avatar {
    width: 30px; height: 30px; border-radius: 50%;
    background: var(--kp-blue); color: #fff;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 13px; font-weight: 700;
}
.kp-portal .kp-locale-topbar select {
    border: 1px solid #E4E6EB; border-radius: 7px; background: #fff;
    color: #444B5A; font-size: 12px; padding: 6px 8px;
}
/* hide the old sidebar locale switcher on desktop (kept for mobile drawer) */
@media (min-width: 961px) {
    .kp-portal .kp-sidebar .kp-locale-switcher { display: none; }
    .kp-portal .kp-sidebar-footer { display: none; }
}
.kp-portal .kp-main { padding-top: 0; }
.kp-portal .kp-content { padding-top: 0; }

/* --- Sidebar: quiet white rail, flat gray icons, navy active chip --- */
.kp-portal .kp-sidebar { background: #FFFFFF; border-right: 1px solid #EEF0F3; }
.kp-portal .kp-sidebar-header {
    background: transparent; padding: 14px 8px 6px; display: flex; justify-content: center;
}
.kp-portal .kp-sidebar-header .kp-brand span:not(.kp-brand-mark) { display: none; }
.kp-portal .kp-sidebar-header .kp-brand-initials,
.kp-portal .kp-sidebar-header .kp-brand-mark img { width: 38px; height: 38px; }
.kp-portal .kp-sidebar-header .kp-brand-initials {
    background: var(--kp-blue); border: none; color: #fff; font-size: 15px; border-radius: 10px;
}
.kp-portal .kp-nav-link {
    display: flex; flex-direction: column; align-items: center; gap: 3px;
    padding: 9px 4px; margin: 2px 6px;
    color: #7A8194; font-size: 10.5px; font-weight: 500;
}
.kp-portal .kp-nav-link .kp-nav-icon,
.kp-portal .kp-nav-link svg {
    background: transparent; border: none; box-shadow: none;
    padding: 7px; border-radius: 10px;
    width: 20px; height: 20px;
    color: #7A8194; fill: currentColor;
    transition: background .15s ease, color .15s ease;
}
.kp-portal .kp-nav-link:hover { background: transparent; color: var(--kp-navy); }
.kp-portal .kp-nav-link:hover .kp-nav-icon, .kp-portal .kp-nav-link:hover svg { background: #F1F3F7; color: var(--kp-navy); }
.kp-portal .kp-nav-link.is-active { color: var(--kp-navy); font-weight: 600; }
.kp-portal .kp-nav-link.is-active .kp-nav-icon,
.kp-portal .kp-nav-link.is-active svg { background: var(--kp-blue); color: #FFFFFF; }

/* --- Canvas & cards v2 --- */
.kp-portal, .kp-direct-portal-page, body.kp-direct-portal-page {
    background-color: #F7F8FB;
    background-image: none;
}
.kp-portal .kp-card,
.kp-portal .kp-login-card,
.kp-portal .kp-header-card,
.kp-portal .kp-files-panel {
    border: none;
    border-radius: 10px;
    box-shadow: 0 1px 2px rgba(16, 30, 70, 0.06);
    padding: 22px 24px;
}
.kp-portal .kp-section-heading { border-bottom: 1px solid #F1F3F7; padding-bottom: 12px; margin-bottom: 14px; }
.kp-portal .kp-section-heading h2 { font-size: 14.5px; font-weight: 700; color: #2A3245; letter-spacing: -0.01em; }

/* action buttons inside card headers become quiet blue text links */
.kp-portal .kp-section-heading .kp-button:not(.kp-button-primary) {
    background: transparent; border: none; box-shadow: none;
    color: var(--kp-gold); font-weight: 600; font-size: 12.5px;
    padding: 2px 4px;
}
.kp-portal .kp-section-heading .kp-button:not(.kp-button-primary):hover { filter: none; text-decoration: underline; }

/* --- Metric tiles: BoldTrail big-number style --- */
.kp-portal .kp-metric-card { padding: 16px 18px; }
.kp-portal .kp-metric-card > span {
    display: block;
    font-size: 10.5px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase;
    color: #8A90A0; margin-bottom: 4px;
}
.kp-portal .kp-metric-card > strong {
    display: block; font-size: 32px; font-weight: 700; line-height: 1.1;
    color: var(--kp-navy); letter-spacing: -0.02em;
}
.kp-portal .kp-metric-card small, .kp-portal .kp-metric-card p { color: #A2A8B8; font-size: 11px; }

/* eyebrow labels */
.kp-portal .kp-eyebrow {
    font-size: 10.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #8A90A0;
}

/* mobile bar left untouched; ensure topbar hides on small screens */
@media (max-width: 860px) {
    .kp-portal .kp-topbar { display: none; }
}

/* --- wl6.1: nav icon sizing fix + admin nav + contacts page --- */
.kp-portal .kp-nav-link .kp-nav-icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 36px; height: 36px; padding: 0;
    border-radius: 10px; background: transparent;
    transition: background .15s ease, color .15s ease;
}
.kp-portal .kp-nav-link .kp-nav-icon svg {
    width: 19px; height: 19px; padding: 0; margin: 0;
    background: transparent !important; border-radius: 0;
    fill: currentColor;
}
.kp-portal .kp-nav-link:hover .kp-nav-icon { background: #F1F3F7; }
.kp-portal .kp-nav-link.is-active .kp-nav-icon { background: var(--kp-blue); color: #fff; }
.kp-portal .kp-nav-link.is-active .kp-nav-icon svg { color: #fff; }
.kp-portal .kp-nav-admin-divider { height: 1px; background: #EEF0F3; margin: 10px 14px; }
.kp-portal .kp-badge-muted { background: #E9EBF0; color: #7A8194; }
.kp-portal .kp-contacts-toolbar-card { padding: 14px 18px; margin-bottom: 16px; }
.kp-portal .kp-contacts-search { display: flex; gap: 10px; align-items: center; }
.kp-portal .kp-contacts-search-input {
    flex: 1; padding: 10px 16px; font-size: 13px;
    border: 1px solid #E4E6EB; border-radius: 20px; background: #FAFBFC;
    outline: none;
}
.kp-portal .kp-contacts-search-input:focus { border-color: var(--kp-blue); background: #fff; box-shadow: 0 0 0 3px color-mix(in srgb, var(--kp-blue) 12%, transparent); }
.kp-portal .kp-contacts-clear { font-size: 12px; color: var(--kp-muted); }
.kp-portal .kp-contacts-name { color: var(--kp-navy); }
.kp-portal .kp-contacts-table td { vertical-align: middle; }

/* fix: don't hide the initials chip inside the brand mark */
.kp-portal .kp-sidebar-header .kp-brand span.kp-brand-initials,
.kp-portal .kp-sidebar-header .kp-brand .kp-brand-mark span { display: inline-flex; }

/* ============================================================
   WL7 — energy pass: tinted canvas, gradient band, tab pills,
   card grid with bordered inner rows (BoldTrail card language)
   ============================================================ */

/* Canvas: soft brand-tinted gradient wash (BoldTrail lavender feel) */
.kp-portal, .kp-direct-portal-page, body.kp-direct-portal-page {
    background-color: #F7F8FC;
    background-image:
        radial-gradient(1100px 520px at 12% -5%, color-mix(in srgb, var(--kp-blue) 9%, transparent), transparent 70%),
        radial-gradient(900px 480px at 95% 8%, color-mix(in srgb, var(--kp-gold) 7%, transparent), transparent 65%),
        linear-gradient(180deg, #F3F4FA 0%, #F8F9FC 340px);
    background-attachment: fixed;
}
.kp-portal .kp-topbar { background: rgba(255,255,255,.92); backdrop-filter: blur(8px); }

/* Gradient section band (BoldTrail "DASHBOARD" bar) */
.kp-portal .kp-band {
    background: linear-gradient(95deg, var(--kp-navy) 0%, var(--kp-blue) 55%, var(--kp-gold) 130%);
    border-radius: 9px;
    padding: 11px 20px;
    margin: 6px 0 16px;
    box-shadow: 0 4px 14px color-mix(in srgb, var(--kp-navy) 22%, transparent);
}
.kp-portal .kp-band span {
    color: #FFFFFF; font-size: 13px; font-weight: 700;
    letter-spacing: .12em; text-transform: uppercase;
}

/* Tab pills */
.kp-portal .kp-console-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin: 2px 0 18px; }
.kp-portal .kp-tab-pill {
    display: inline-flex; align-items: center; gap: 7px;
    background: #FFFFFF; border: 1px solid #E4E6EE; border-radius: 8px;
    color: #5A6270; font-size: 12.5px; font-weight: 600;
    padding: 8px 14px; text-decoration: none;
    box-shadow: 0 1px 2px rgba(16,30,70,.05);
    transition: border-color .15s ease, color .15s ease, transform .08s ease;
}
.kp-portal .kp-tab-pill:hover { border-color: var(--kp-blue); color: var(--kp-navy); transform: translateY(-1px); }
.kp-portal .kp-tab-pill.is-active { background: var(--kp-blue); border-color: var(--kp-blue); color: #fff; }
.kp-portal .kp-tab-count {
    background: color-mix(in srgb, #ffffff 25%, transparent);
    border-radius: 10px; padding: 1px 7px; font-size: 11px;
}
.kp-portal .kp-tab-pill:not(.is-active) .kp-tab-count { background: var(--kp-gold); color: #fff; }

/* Queue card grid: across, then down */
.kp-portal .kp-console-grid {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(430px, 1fr));
    gap: 18px; align-items: start;
}
.kp-portal .kp-console-grid-single { grid-template-columns: 1fr; }
.kp-portal .kp-console-queue { margin-bottom: 0; }
.kp-portal .kp-queue-heading { border-bottom: none; padding-bottom: 6px; margin-bottom: 8px; }
.kp-portal .kp-queue-title { display: flex; align-items: center; gap: 10px; }
.kp-portal .kp-queue-icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 34px; height: 34px; border-radius: 9px;
    background: color-mix(in srgb, var(--kp-blue) 10%, #ffffff);
    color: var(--kp-blue);
}
.kp-portal .kp-queue-icon svg { width: 18px; height: 18px; fill: currentColor; }

/* Bordered tappable inner rows (BoldTrail "Build Your Pipeline >" style) */
.kp-portal .kp-qrows { display: flex; flex-direction: column; gap: 10px; }
.kp-portal .kp-qrow {
    display: flex; align-items: center; justify-content: space-between; gap: 14px;
    border: 1px solid #E7E9F0; border-radius: 10px;
    padding: 13px 16px;
    background: #FFFFFF;
    transition: border-color .15s ease, box-shadow .15s ease;
    flex-wrap: wrap;
}
.kp-portal .kp-qrow:hover { border-color: color-mix(in srgb, var(--kp-blue) 45%, #E7E9F0); box-shadow: 0 3px 10px rgba(16,30,70,.07); }
.kp-portal .kp-qrow-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.kp-portal .kp-qrow-main strong { color: var(--kp-navy); font-size: 13.5px; }
.kp-portal .kp-qrow-side { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }

/* joyful empty state */
.kp-portal .kp-queue-empty { display: flex; align-items: center; gap: 10px; padding: 14px 4px; color: var(--kp-muted); }
.kp-portal .kp-queue-empty-mark {
    display: inline-flex; align-items: center; justify-content: center;
    width: 28px; height: 28px; border-radius: 50%;
    background: color-mix(in srgb, var(--kp-success) 14%, #ffffff);
    color: var(--kp-success); font-weight: 700;
}

/* accent-first metric tile (BoldTrail red score tile energy, in brand hues) */
.kp-portal .kp-metric-accent { background: linear-gradient(135deg, var(--kp-blue), var(--kp-navy)); }
.kp-portal .kp-metric-accent > span { color: rgba(255,255,255,.75); }
.kp-portal .kp-metric-accent > strong { color: #FFFFFF; }
.kp-portal .kp-metric-card { transition: transform .1s ease, box-shadow .15s ease; }
.kp-portal .kp-metric-card:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(16,30,70,.10); }

/* wl7.1 — full-width header, single logo, bare rail */
.kp-portal .kp-topbar {
    margin: 0; border-radius: 0;
    padding: 11px 22px;
}
.kp-portal .kp-shell { min-height: calc(100vh - 55px); }
@media (min-width: 961px) {
    .kp-portal .kp-sidebar-header { display: none; }
    .kp-portal .kp-sidebar { padding-top: 10px; }
}

/* ============================================================
   WL7.2 — soft callouts (tints, not solid fills) + uniform grid
   ============================================================ */

/* badges: tinted chips with colored text (easier on the eyes) */
.kp-portal .kp-badge {
    background: color-mix(in srgb, var(--kp-blue) 11%, #ffffff);
    color: var(--kp-blue);
}
.kp-portal .kp-badge-success {
    background: color-mix(in srgb, var(--kp-success) 13%, #ffffff);
    color: var(--kp-success);
}
.kp-portal .kp-badge-warning {
    background: color-mix(in srgb, var(--kp-warning) 15%, #ffffff);
    color: #8a6a1c;
}
.kp-portal .kp-badge-muted { background: #EEF0F4; color: #7A8194; }

/* tab pills: active = soft highlight, not solid navy */
.kp-portal .kp-tab-pill.is-active {
    background: color-mix(in srgb, var(--kp-blue) 10%, #ffffff);
    border-color: color-mix(in srgb, var(--kp-blue) 55%, #E4E6EE);
    color: var(--kp-navy);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--kp-blue) 25%, transparent);
}
.kp-portal .kp-tab-pill.is-active .kp-tab-count { background: var(--kp-blue); color: #fff; }
.kp-portal .kp-tab-pill:not(.is-active) .kp-tab-count {
    background: color-mix(in srgb, var(--kp-gold) 18%, #ffffff);
    color: #8a6a1c;
}

/* KPI accent tile: white with accent edge instead of navy slab */
.kp-portal .kp-metric-accent {
    background: linear-gradient(135deg, color-mix(in srgb, var(--kp-blue) 7%, #ffffff), #ffffff 70%);
    border-left: 4px solid var(--kp-blue);
}
.kp-portal .kp-metric-accent > span { color: var(--kp-blue); }
.kp-portal .kp-metric-accent > strong { color: var(--kp-navy); }

/* rail active: tinted chip, navy glyph (was solid navy) */
.kp-portal .kp-nav-link.is-active .kp-nav-icon {
    background: color-mix(in srgb, var(--kp-blue) 13%, #ffffff);
    color: var(--kp-navy);
}
.kp-portal .kp-nav-link.is-active .kp-nav-icon svg { color: var(--kp-navy); }

/* band: keep the gradient identity but lighter hand */
.kp-portal .kp-band {
    background: linear-gradient(95deg, color-mix(in srgb, var(--kp-navy) 88%, #ffffff), color-mix(in srgb, var(--kp-blue) 82%, #ffffff) 60%, color-mix(in srgb, var(--kp-gold) 70%, #ffffff) 135%);
    box-shadow: 0 3px 10px color-mix(in srgb, var(--kp-navy) 14%, transparent);
    padding: 9px 18px;
}

/* queue count badge in headings: tint too */
.kp-portal .kp-queue-heading .kp-badge { min-width: 26px; justify-content: center; display: inline-flex; }

/* Console work queue: three equal columns on desktop, two on medium screens,
   and one on compact screens. The focused queue view always remains single. */
.kp-portal .kp-console-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
}
@media (max-width: 1400px) {
    .kp-portal .kp-console-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    .kp-portal .kp-console-grid { grid-template-columns: 1fr; }
}
.kp-portal .kp-console-grid .kp-console-queue { display: flex; flex-direction: column; min-height: 190px; }
.kp-portal .kp-console-grid .kp-qrows { flex: 1; }
.kp-portal .kp-console-grid-single { grid-template-columns: 1fr !important; }

/* a touch more type presence */
.kp-portal { font-size: 13.5px; }

/* ============================================================
   WL7.3 — BoldTrail type scale (sizes/weights/colors) + 5-up KPI
   Text is neutral gray; color is reserved for actions & accents.
   ============================================================ */
.kp-portal { font-size: 12.5px; color: #444444; }
.kp-portal .kp-page-header h1, .kp-portal .kp-console-header h1 {
    font-size: 20px; font-weight: 700; color: #444444; letter-spacing: -0.01em;
}
.kp-portal .kp-page-header p { color: #6E7484; font-size: 12.5px; }
.kp-portal .kp-eyebrow { color: #9AA0AF; }
.kp-portal .kp-section-heading h2 { font-size: 13.5px; font-weight: 700; color: #444444; }
.kp-portal .kp-qrow-main strong { color: #444444; font-size: 13px; font-weight: 600; }
.kp-portal .kp-console-meta { color: #8A90A0; font-size: 11.5px; }
.kp-portal .kp-console-when { color: #A2A8B8; font-size: 10.5px; }
.kp-portal .kp-topbar-brand strong { color: #444444; }
.kp-portal .kp-contacts-name { color: #444444; }

/* metric tiles: BoldTrail number treatment */
.kp-portal .kp-metric-card > span { color: #767B8A; font-size: 10.5px; }
.kp-portal .kp-metric-card > strong { color: #444444; font-size: 36px; font-weight: 600; }
.kp-portal .kp-metric-accent > span { color: var(--kp-blue); }
.kp-portal .kp-metric-accent > strong { color: var(--kp-blue); font-size: 44px; }
.kp-portal .kp-metric-lg small { display: block; margin-top: 2px; color: #9AA0AF; font-size: 11px; }
.kp-portal .kp-metric-current { outline: 2px solid color-mix(in srgb, var(--kp-blue) 35%, transparent); outline-offset: -2px; }

/* 5-up KPI row: large All tile + four queue tiles */
.kp-portal .kp-console-metrics-five {
    display: grid;
    grid-template-columns: 1.6fr repeat(4, 1fr);
    gap: 14px;
}
@media (max-width: 1250px) { .kp-portal .kp-console-metrics-five { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 800px) { .kp-portal .kp-console-metrics-five { grid-template-columns: repeat(2, 1fr); } }

/* ============================================================
   WL7.4 — EXACT BoldTrail type tokens (measured 2026-08-09)
   Light weights are the polish: base 300, titles 500, buttons 700.
   ============================================================ */
.kp-portal { font-size: 12px; font-weight: 300; color: #444444; }
.kp-portal strong, .kp-portal b { font-weight: 500; }
.kp-portal .kp-page-header h1, .kp-portal .kp-console-header h1 {
    font-size: 22px; font-weight: 500; color: #444444;
}
.kp-portal .kp-page-header p { font-size: 12px; font-weight: 300; color: #444444; }
.kp-portal .kp-section-heading h2 { font-size: 14px; font-weight: 500; color: #444444; }
.kp-portal .kp-qrow-main strong { font-size: 14px; font-weight: 500; color: #444444; }
.kp-portal .kp-console-meta { font-size: 12px; font-weight: 300; color: #444444; }
.kp-portal .kp-console-when { font-size: 11px; font-weight: 300; color: #8A90A0; }
.kp-portal .kp-nav-link { font-size: 12px; font-weight: 500; color: #444444; }
.kp-portal .kp-nav-link.is-active { font-weight: 500; }
.kp-portal .kp-eyebrow { font-weight: 500; color: #9AA0AF; }

/* links: BoldTrail blue #0066CC, 14/500 */
.kp-portal .kp-console-zoho,
.kp-portal .kp-contacts-clear,
.kp-portal .kp-section-heading .kp-button:not(.kp-button-primary) {
    color: #0066CC; font-size: 13px; font-weight: 500;
}

/* buttons: 700 weight like Add Contact */
.kp-portal .kp-button { font-weight: 700; font-size: 13px; }
.kp-portal .kp-console-btn { font-size: 12px; }

/* metric tiles: light numbers, equal five-up */
.kp-portal .kp-metric-card > span { font-size: 11px; font-weight: 500; color: #767B8A; }
.kp-portal .kp-metric-card > strong { font-size: 34px; font-weight: 400; color: #444444; }
.kp-portal .kp-metric-accent > strong { font-size: 34px; color: var(--kp-blue); font-weight: 500; }
.kp-portal .kp-console-metrics-five { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.kp-portal .kp-metric-lg small { font-size: 10.5px; font-weight: 300; }

/* band: 500 weight like their H3 */
.kp-portal .kp-band span { font-size: 14px; font-weight: 500; letter-spacing: .1em; }

/* badges stay 10px but 500 weight */
.kp-portal .kp-badge { font-weight: 500; }

/* table text */
.kp-portal .kp-table td { font-size: 13px; font-weight: 300; color: #444444; }
.kp-portal .kp-table thead th, .kp-portal .kp-table th { font-weight: 500; }
.kp-portal .kp-contacts-name { font-weight: 500; }

/* ---- wl8: in-portal record viewer ---- */
.kp-portal .kp-record-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 16px 28px;
}
.kp-portal .kp-record-field { display: flex; flex-direction: column; gap: 3px; padding: 10px 0; border-bottom: 1px solid #F3F4F8; }
.kp-portal .kp-record-field-wide { grid-column: 1 / -1; }
.kp-portal .kp-record-label { font-size: 11px; font-weight: 500; color: #9AA0AF; letter-spacing: .04em; text-transform: uppercase; }
.kp-portal .kp-record-value { font-size: 13.5px; font-weight: 300; color: #444444; word-break: break-word; }
.kp-portal .kp-record-back { color: #0066CC; font-weight: 500; text-decoration: none; font-size: 13px; }

/* ---- wl8.1: BoldTrail contacts layout (filters rail + table) ---- */
.kp-portal .kp-contacts-kpis { margin-bottom: 18px; }
.kp-portal .kp-contacts-layout { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 18px; align-items: start; }
@media (max-width: 1000px) { .kp-portal .kp-contacts-layout { grid-template-columns: 1fr; } }
.kp-portal .kp-contacts-filters { padding: 18px; }
.kp-portal .kp-filters-heading { font-size: 11px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: #767B8A; margin-bottom: 10px; }
.kp-portal .kp-filters-heading-gap { margin-top: 20px; }
.kp-portal .kp-filter-list { display: flex; flex-direction: column; gap: 2px; }
.kp-portal .kp-filter-link {
    padding: 8px 10px; border-radius: 7px; font-size: 13px; font-weight: 300;
    color: #444444; text-decoration: none;
}
.kp-portal .kp-filter-link:hover { background: #F4F5F9; }
.kp-portal .kp-filter-link.is-active { background: color-mix(in srgb, var(--kp-blue) 9%, #ffffff); color: var(--kp-navy); font-weight: 500; }
.kp-portal .kp-filter-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.kp-portal .kp-chip {
    font-size: 9.5px; font-weight: 500; letter-spacing: .05em;
    padding: 4px 9px; border-radius: 4px; text-decoration: none;
    background: #EDEFF3; color: #7A8194;
}
.kp-portal .kp-chip:hover { background: #E2E5EC; }
.kp-portal .kp-chip.is-active { background: color-mix(in srgb, var(--kp-blue) 14%, #ffffff); color: var(--kp-blue); }
.kp-portal .kp-contacts-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 12px; }
.kp-portal .kp-contacts-toolbar .kp-contacts-search { flex: 1; max-width: 420px; }
.kp-portal .kp-contacts-count { font-size: 12px; font-weight: 300; color: #8A90A0; white-space: nowrap; }
.kp-portal .kp-contacts-name-link { color: #0066CC; font-weight: 500; text-decoration: none; font-size: 13px; }
.kp-portal .kp-contacts-name-link:hover { text-decoration: underline; }

/* ============================================================
   WL9 — READABILITY & FOCUS PASS (low-vision friendly)
   Principle: soft backgrounds, STRONG foregrounds.
   Text ≥400 weight, solid badges, visible edges, clear anchors.
   ============================================================ */

/* text: readable weights and darker ink */
.kp-portal { font-size: 13px; font-weight: 400; color: #3B3F49; }
.kp-portal .kp-page-header p, .kp-portal .kp-console-meta, .kp-portal .kp-metric-lg small { font-weight: 400; color: #5F6572; }
.kp-portal .kp-page-header h1, .kp-portal .kp-console-header h1 { font-size: 23px; font-weight: 600; color: #23262E; }
.kp-portal .kp-section-heading h2 { font-size: 14.5px; font-weight: 600; color: #23262E; }
.kp-portal .kp-qrow-main strong { font-size: 14px; font-weight: 600; color: #23262E; }
.kp-portal .kp-console-when { font-weight: 400; color: #737A88; }
.kp-portal .kp-eyebrow { color: #737A88; }
.kp-portal .kp-metric-card > span { color: #5F6572; }
.kp-portal .kp-metric-card > strong { font-weight: 500; color: #23262E; }
.kp-portal .kp-table td { font-size: 13.5px; font-weight: 400; color: #3B3F49; }
.kp-portal .kp-record-value { font-weight: 400; color: #23262E; }
.kp-portal .kp-record-label { color: #737A88; }
.kp-portal .kp-filter-link { font-weight: 400; }
.kp-portal .kp-filter-link.is-active { font-weight: 600; }
.kp-portal .kp-contacts-count { font-weight: 400; }

/* visible surface edges — cards stop melting into the canvas */
.kp-portal .kp-card,
.kp-portal .kp-login-card,
.kp-portal .kp-header-card,
.kp-portal .kp-files-panel {
    border: 1px solid #DFE2E9;
    box-shadow: 0 1px 3px rgba(16, 30, 70, 0.07);
}
.kp-portal .kp-qrow { border-color: #DCDFE7; }
.kp-portal .kp-qrow:hover { border-color: var(--kp-blue); }

/* table header band: strong anchor like BoldTrail */
.kp-portal .kp-table thead th, .kp-portal .kp-table th {
    background: #E9EBF1; color: #3B3F49; font-weight: 600;
    border-bottom: 1px solid #D5D9E2;
}
.kp-portal .kp-table td { border-bottom: 1px solid #E5E8EF; }
.kp-portal .kp-table tbody tr:hover { background: #F1F4FA; }

/* SOLID badges with white text — instantly scannable (BoldTrail-style) */
.kp-portal .kp-badge {
    background: var(--kp-blue); color: #FFFFFF;
    font-size: 10px; font-weight: 700; letter-spacing: .05em;
    padding: 4px 9px; border-radius: 4px;
}
.kp-portal .kp-badge-success { background: #1E7A45; color: #FFFFFF; }
.kp-portal .kp-badge-warning { background: #6857d9; color: #FFFFFF; }
.kp-portal .kp-badge-muted { background: #6E7484; color: #FFFFFF; }

/* links: solid confident blue, underline on hover only */
.kp-portal .kp-console-zoho, .kp-portal .kp-contacts-name-link, .kp-portal .kp-record-back { color: #0059B3; font-weight: 600; }

/* buttons: bigger targets, unmistakable */
.kp-portal .kp-button { font-size: 13px; padding-top: 9px; padding-bottom: 9px; }
.kp-portal .kp-button-primary { background: var(--kp-navy); border-color: var(--kp-navy); }

/* nav rail: darker labels, active state obvious */
.kp-portal .kp-nav-link { color: #4A5060; font-weight: 500; }
.kp-portal .kp-nav-link.is-active { color: #23262E; font-weight: 700; }
.kp-portal .kp-nav-link.is-active .kp-nav-icon { background: var(--kp-navy); color: #fff; }
.kp-portal .kp-nav-link.is-active .kp-nav-icon svg { color: #fff; }

/* canvas: calmer, slightly more contrast against white cards */
.kp-portal, .kp-direct-portal-page, body.kp-direct-portal-page {
    background-color: #EFF1F6;
    background-image:
        radial-gradient(1100px 520px at 12% -5%, color-mix(in srgb, var(--kp-blue) 8%, transparent), transparent 70%),
        linear-gradient(180deg, #EBEEF5 0%, #F2F4F8 340px);
}

/* topbar: crisper edge */
.kp-portal .kp-topbar { border-bottom: 1px solid #D5D9E2; }

/* KPI current-view + accent tile: clear but not glaring */
.kp-portal .kp-metric-accent { border-left: 4px solid var(--kp-navy); }
.kp-portal .kp-metric-accent > strong { color: var(--kp-navy); font-weight: 600; }

/* focus visibility for keyboard/low-vision */
.kp-portal a:focus-visible, .kp-portal button:focus-visible, .kp-portal input:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--kp-blue) 55%, transparent);
    outline-offset: 2px;
}

/* ============================================================
   WL10 — SITE-WIDE: unified hero/type scale + wl9 readability
   applied to every page (client + admin). One heading system.
   ============================================================ */

/* ONE hero scale for every page hero variant */
.kp-portal .kp-page-header h1,
.kp-portal .kp-page-header h2,
.kp-portal .kp-message-hero h2,
.kp-portal .kp-notes-hero h2,
.kp-portal .kp-property-hero h2,
.kp-portal .kp-property-detail-hero h2,
.kp-portal .kp-deal-hero h2,
.kp-portal .kp-docs-hero h2,
.kp-portal .kp-task-list-hero h2,
.kp-portal .kp-task-detail-hero h2,
.kp-portal .kp-console-header h1 {
    font-size: 23px !important;
    font-weight: 600 !important;
    color: #23262E !important;
    line-height: 1.25 !important;
    letter-spacing: -0.01em;
}
.kp-portal .kp-page-header p,
.kp-portal .kp-message-hero p,
.kp-portal .kp-notes-hero p,
.kp-portal .kp-property-hero p,
.kp-portal .kp-property-detail-hero p,
.kp-portal .kp-deal-hero p,
.kp-portal .kp-docs-hero p,
.kp-portal .kp-task-list-hero p,
.kp-portal .kp-task-detail-hero p {
    font-size: 13px !important;
    font-weight: 400 !important;
    color: #5F6572 !important;
    line-height: 1.5 !important;
}

/* ONE card/section heading scale everywhere */
.kp-portal .kp-card h2,
.kp-portal .kp-section-heading h2 {
    font-size: 14.5px;
    font-weight: 600;
    color: #23262E;
}
.kp-portal .kp-card h3 {
    font-size: 13px;
    font-weight: 600;
    color: #23262E;
}

/* dashboard specifics inherit the system */
.kp-portal .kp-metric-card > strong { font-size: 32px; }
.kp-portal .kp-onboard-step strong, .kp-portal .kp-onboard-step b { font-weight: 600; color: #23262E; }

/* generic list/inbox rows on client pages: defined edges + readable text */
.kp-portal .kp-message-inbox-row,
.kp-portal .kp-doc-row,
.kp-portal .kp-file-row {
    border-color: #DCDFE7;
}
.kp-portal .kp-message-inbox-row:hover { background: #F1F4FA; }

/* labels/values in detail lists across pages */
.kp-portal .kp-field-grid dt, .kp-portal .kp-deal-info-list dt {
    font-size: 11px; font-weight: 500; color: #737A88;
    letter-spacing: .04em; text-transform: uppercase;
}
.kp-portal .kp-field-grid dd, .kp-portal .kp-deal-info-list dd {
    font-size: 13.5px; font-weight: 400; color: #23262E;
}

/* login gate readable */
.kp-portal .kp-login-card h1, .kp-portal .kp-login-card h2 { font-size: 20px; font-weight: 600; color: #23262E; }
.kp-portal .kp-login-card label { font-weight: 500; color: #3B3F49; }

/* ============================================================
   WL10.1 — SCALE UP: Jeroen calibration (bigger than measured
   BoldTrail tokens — his readability beats my pixel audit)
   ============================================================ */
.kp-portal { font-size: 14px; }
.kp-portal .kp-page-header p,
.kp-portal .kp-message-hero p, .kp-portal .kp-notes-hero p,
.kp-portal .kp-property-hero p, .kp-portal .kp-property-detail-hero p,
.kp-portal .kp-deal-hero p, .kp-portal .kp-docs-hero p,
.kp-portal .kp-task-list-hero p, .kp-portal .kp-task-detail-hero p { font-size: 14px !important; }
.kp-portal .kp-page-header h1, .kp-portal .kp-page-header h2,
.kp-portal .kp-message-hero h2, .kp-portal .kp-notes-hero h2,
.kp-portal .kp-property-hero h2, .kp-portal .kp-property-detail-hero h2,
.kp-portal .kp-deal-hero h2, .kp-portal .kp-docs-hero h2,
.kp-portal .kp-task-list-hero h2, .kp-portal .kp-task-detail-hero h2,
.kp-portal .kp-console-header h1 { font-size: 25px !important; }
.kp-portal .kp-card h2, .kp-portal .kp-section-heading h2 { font-size: 16px; }
.kp-portal .kp-card h3 { font-size: 14px; }
.kp-portal .kp-qrow-main strong { font-size: 15px; }
.kp-portal .kp-console-meta { font-size: 13px; }
.kp-portal .kp-console-when { font-size: 12px; }
.kp-portal .kp-table td { font-size: 14px; }
.kp-portal .kp-table thead th, .kp-portal .kp-table th { font-size: 12px; }
.kp-portal .kp-nav-link { font-size: 12.5px; }
.kp-portal .kp-button { font-size: 14px; }
.kp-portal .kp-console-btn { font-size: 13px; }
.kp-portal .kp-console-zoho, .kp-portal .kp-contacts-name-link, .kp-portal .kp-record-back { font-size: 14px; }
.kp-portal .kp-badge { font-size: 10.5px; }
.kp-portal .kp-metric-card > span { font-size: 11.5px; }
.kp-portal .kp-metric-card > strong { font-size: 34px; }
.kp-portal .kp-record-value { font-size: 14.5px; }
.kp-portal .kp-record-label { font-size: 11.5px; }
.kp-portal .kp-filter-link { font-size: 14px; }
.kp-portal .kp-filters-heading { font-size: 11.5px; }
.kp-portal .kp-contacts-search-input { font-size: 14px; }
.kp-portal .kp-contacts-count { font-size: 13px; }
.kp-portal .kp-topbar-brand strong { font-size: 17px; }
.kp-portal .kp-topbar-title { font-size: 14px; }
.kp-portal .kp-topbar-user { font-size: 13.5px; }
.kp-portal .kp-field-grid dd, .kp-portal .kp-deal-info-list dd { font-size: 14.5px; }
.kp-portal .kp-eyebrow { font-size: 11.5px; }

/* wl10.2 — page-hero cards (eyebrow + h2 as page title inside first card)
   get the full hero scale, matching every other page header */
.kp-portal .kp-card .kp-section-heading .kp-eyebrow + h2,
.kp-portal .kp-header-card h2,
.kp-portal .kp-card > .kp-section-heading:first-child h2 {
    font-size: 22px;
    font-weight: 600;
    color: #23262E;
}

/* ============================================================
   WL11 — CANONICAL TYPE SYSTEM (Jeroen's exact spec, 2026-08-09)
   Supersedes ALL prior type layers. Do not restyle type below
   without updating the spec doc.
   ============================================================ */
.kp-portal {
    --kp-text-xs: 11px;
    --kp-text-sm: 12px;
    --kp-text-base: 14px;
    --kp-text-lg: 18px;
    --kp-text-xl: 24px;
    --kp-text-hero: 35px;
    --kp-w-light: 300;
    --kp-w-regular: 400;
    --kp-w-medium: 500;
    --kp-w-semibold: 600;
    --kp-w-bold: 700;
    --kp-w-extrabold: 800;
}

/* Standard body text: 14/500 */
.kp-portal { font-size: var(--kp-text-base); font-weight: var(--kp-w-medium); }
.kp-portal p, .kp-portal td, .kp-portal dd, .kp-portal li,
.kp-portal .kp-console-meta, .kp-portal .kp-record-value,
.kp-portal .kp-page-header p,
.kp-portal .kp-message-hero p, .kp-portal .kp-notes-hero p,
.kp-portal .kp-property-hero p, .kp-portal .kp-property-detail-hero p,
.kp-portal .kp-deal-hero p, .kp-portal .kp-docs-hero p,
.kp-portal .kp-task-list-hero p, .kp-portal .kp-task-detail-hero p {
    font-size: var(--kp-text-base) !important;
    font-weight: var(--kp-w-medium) !important;
}

/* Main page titles: 24/500 */
.kp-portal .kp-page-header h1, .kp-portal .kp-page-header h2,
.kp-portal .kp-message-hero h2, .kp-portal .kp-notes-hero h2,
.kp-portal .kp-property-hero h2, .kp-portal .kp-property-detail-hero h2,
.kp-portal .kp-deal-hero h2, .kp-portal .kp-docs-hero h2,
.kp-portal .kp-task-list-hero h2, .kp-portal .kp-task-detail-hero h2,
.kp-portal .kp-console-header h1 {
    font-size: var(--kp-text-xl) !important;
    font-weight: var(--kp-w-medium) !important;
    line-height: 1.15 !important;
}
/* band = uppercase white 24/500 lh 24 (the true BoldTrail page title) */
.kp-portal .kp-band span {
    font-size: var(--kp-text-xl);
    font-weight: var(--kp-w-medium);
    line-height: 24px;
    letter-spacing: .02em;
}
.kp-portal .kp-band { padding: 10px 20px; }

/* Section headings & card titles: 18/700 */
.kp-portal .kp-card h2, .kp-portal .kp-section-heading h2,
.kp-portal .kp-card .kp-section-heading .kp-eyebrow + h2,
.kp-portal .kp-header-card h2,
.kp-portal .kp-card > .kp-section-heading:first-child h2 {
    font-size: var(--kp-text-lg) !important;
    font-weight: var(--kp-w-bold) !important;
    line-height: 1.2;
}
.kp-portal .kp-card h3 { font-size: var(--kp-text-base); font-weight: var(--kp-w-bold); }

/* Entity/card names: 18/700, blue when links */
.kp-portal .kp-qrow-main strong { font-size: var(--kp-text-lg); font-weight: var(--kp-w-bold); }
.kp-portal .kp-contacts-name-link { font-size: var(--kp-text-lg); font-weight: var(--kp-w-bold); color: #0066CC; }

/* Activity/status labels (badges): 14/700 */
.kp-portal .kp-badge {
    font-size: var(--kp-text-base);
    font-weight: var(--kp-w-bold);
    letter-spacing: 0;
    padding: 4px 10px;
    border-radius: 4px;
    text-transform: none;
}

/* Timestamps: 14/500 italic */
.kp-portal .kp-console-when,
.kp-portal .kp-contacts-count {
    font-size: var(--kp-text-base);
    font-weight: var(--kp-w-medium);
    font-style: italic;
}

/* Buttons: primary 14/700, secondary 14/500 */
.kp-portal .kp-button { font-size: var(--kp-text-base); font-weight: var(--kp-w-medium); }
.kp-portal .kp-button-primary { font-weight: var(--kp-w-bold); }
.kp-portal .kp-console-btn { font-size: var(--kp-text-base); }

/* Links & selects: 14/500 */
.kp-portal .kp-console-zoho, .kp-portal .kp-record-back, .kp-portal .kp-contacts-clear,
.kp-portal .kp-section-heading .kp-button:not(.kp-button-primary) {
    font-size: var(--kp-text-base); font-weight: var(--kp-w-medium);
}
.kp-portal select, .kp-portal .kp-locale-topbar select { font-size: var(--kp-text-base); font-weight: var(--kp-w-medium); }

/* Sidebar labels: 12/500. Sub-nav/chips: 12/300 */
.kp-portal .kp-nav-link { font-size: var(--kp-text-sm); font-weight: var(--kp-w-medium); }
.kp-portal .kp-nav-link.is-active { font-weight: var(--kp-w-bold); }
.kp-portal .kp-chip { font-size: var(--kp-text-sm); font-weight: var(--kp-w-light); letter-spacing: 0; padding: 4px 10px; }
.kp-portal .kp-chip.is-active { font-weight: var(--kp-w-medium); }
.kp-portal .kp-filter-link { font-size: var(--kp-text-base); }

/* metadata / labels: 12/500 */
.kp-portal .kp-eyebrow, .kp-portal .kp-filters-heading,
.kp-portal .kp-metric-card > span, .kp-portal .kp-record-label,
.kp-portal .kp-table thead th, .kp-portal .kp-table th,
.kp-portal .kp-field-grid dt, .kp-portal .kp-deal-info-list dt {
    font-size: var(--kp-text-sm) !important;
    font-weight: var(--kp-w-medium) !important;
}

/* Empty states: 12/300 */
.kp-portal .kp-console-empty, .kp-portal .kp-queue-empty p { font-size: var(--kp-text-sm); font-weight: var(--kp-w-light); }

/* KPI numbers stay display-size */
.kp-portal .kp-metric-card > strong { font-size: 34px; font-weight: var(--kp-w-medium); }

/* Footer: 11/300 */
.kp-portal .kp-sidebar-footer, .kp-portal .kp-mobile-bar small { font-size: var(--kp-text-xs); font-weight: var(--kp-w-light); }

/* ============================================================
   WL11.1 — final calibration (Jeroen audit, session close)
   1) primary actions 14/700  2) inputs 14/500  3) tracking kept
   ============================================================ */
.kp-portal {
    --font-primary: "Figtree", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --font-size-caption: 11px;
    --font-size-nav: 12px;
    --font-size-body: 14px;
    --font-size-brand: 17px;
    --font-size-heading: 18px;
    --font-size-page-title: 24px;
    --font-size-metric: 34px;
    --font-weight-regular: 400;
    --font-weight-medium: 500;
    --font-weight-bold: 700;
    --line-height-nav: 1.15;
    --line-height-body: 1.5;
    --line-height-heading: 1.2;
    --line-height-title: 1.15;
}

/* 1) primary actions bold — Verify, Approve, all .kp-button-primary */
.kp-portal .kp-button.kp-button-primary,
.kp-portal button.kp-button-primary,
.kp-portal .kp-console-btn.kp-button-primary {
    font-weight: var(--font-weight-bold) !important;
    line-height: 14px;
}
/* Deny stays 500 (secondary/destructive) */
.kp-portal .kp-console-btn-deny { font-weight: var(--font-weight-medium); }

/* 2) inputs join the 14px control language */
.kp-portal .kp-console-input,
.kp-portal input[type="text"],
.kp-portal input[type="search"],
.kp-portal input[type="email"] {
    font-size: var(--font-size-body);
    font-weight: var(--font-weight-medium);
}
.kp-portal .kp-console-input { width: 104px; }
.kp-portal .kp-console-input-sm { width: 58px; }

/* ============================================================
   WL12 — FULL-PORTAL TYPE ENFORCEMENT (every page, admin+client)
   Element-level token enforcement so no legacy 10–17px rule
   survives anywhere. Canonical spec: BOLDTRAIL_TYPE_TOKENS doc.
   ============================================================ */

/* body text everywhere: 14/500 lh1.5 */
.kp-portal p, .kp-portal td, .kp-portal dd, .kp-portal li,
.kp-portal span:not(.kp-badge):not(.kp-eyebrow):not(.kp-tab-count):not(.kp-brand-initials):not(.kp-topbar-avatar):not(.kp-queue-empty-mark),
.kp-portal label, .kp-portal legend, .kp-portal figcaption {
    font-size: var(--font-size-body);
    font-weight: var(--font-weight-medium);
    line-height: var(--line-height-body);
}
.kp-portal strong, .kp-portal b { font-weight: var(--font-weight-bold); }

/* headings everywhere (heroes keep their 24px !important rules) */
.kp-portal h1 { font-size: var(--font-size-page-title); font-weight: var(--font-weight-medium); line-height: var(--line-height-title); }
.kp-portal h2 { font-size: var(--font-size-heading); font-weight: var(--font-weight-bold); line-height: var(--line-height-heading); }
.kp-portal h3 { font-size: var(--font-size-body); font-weight: var(--font-weight-bold); line-height: var(--line-height-heading); }
.kp-portal h4, .kp-portal h5 { font-size: var(--font-size-nav); font-weight: var(--font-weight-medium); text-transform: uppercase; letter-spacing: .06em; color: #737A88; }

/* all controls: 14, buttons 500 (primary 700 per wl11.1) */
.kp-portal input, .kp-portal select, .kp-portal textarea, .kp-portal button {
    font-size: var(--font-size-body);
    font-weight: var(--font-weight-medium);
    font-family: var(--font-primary);
}

/* metadata smalls: 12/500 */
.kp-portal small, .kp-portal time,
.kp-portal dt,
.kp-portal .kp-brand small, .kp-portal .kp-header-card span {
    font-size: var(--font-size-nav);
    font-weight: var(--font-weight-medium);
}

/* known legacy component sweep — client pages */
.kp-portal .kp-message-inbox-row strong, .kp-portal .kp-message-hero h2 span,
.kp-portal .kp-doc-row strong, .kp-portal .kp-file-row strong,
.kp-portal .kp-property-card h3, .kp-portal .kp-property-listing-title,
.kp-portal .kp-deal-line strong, .kp-portal .kp-onboard-step strong,
.kp-portal .kp-profile-summary h2, .kp-portal .kp-notes-callout h2 {
    font-size: var(--font-size-heading) !important;
    font-weight: var(--font-weight-bold) !important;
}
.kp-portal .kp-property-hero-profile dt, .kp-portal .kp-deal-selector-counts,
.kp-portal .kp-property-listing-profile small {
    font-size: var(--font-size-nav) !important;
    font-weight: var(--font-weight-medium) !important;
}
.kp-portal .kp-message-conversation-bubble time, .kp-portal .kp-message-meta,
.kp-portal .kp-doc-row time, .kp-portal .kp-file-row time {
    font-size: var(--font-size-body) !important;
    font-weight: var(--font-weight-medium) !important;
    font-style: italic;
}
.kp-portal .kp-login-card h2 { font-size: var(--font-size-page-title) !important; font-weight: var(--font-weight-medium) !important; }
.kp-portal .kp-login-title { font-size: var(--font-size-page-title) !important; }
.kp-portal .kp-property-detail-section h2, .kp-portal .kp-dashboard-schedule-grid h3,
.kp-portal .kp-message-inbox-header div, .kp-portal .kp-files-intro-card h1,
.kp-portal .kp-deal-summary-strip strong {
    font-size: var(--font-size-heading) !important;
    font-weight: var(--font-weight-bold) !important;
}
/* keep functional icons/avatars/close buttons at their designed sizes */
.kp-portal .kp-avatar, .kp-portal .kp-message-avatar, .kp-portal .kp-referral-modal-close,
.kp-portal .kp-message-modal-header button, .kp-portal .kp-property-photo-header button,
.kp-portal .kp-attachment-header button { font-size: inherit; }
.kp-portal .kp-metric-card > strong { font-size: var(--font-size-metric) !important; font-weight: var(--font-weight-medium) !important; line-height: 1.1 !important; }
.kp-portal .kp-metric-card > span { font-size: var(--font-size-nav) !important; }

/* ============================================================
   WL12.1 — top-box & callout harmony (Jeroen's Edge review)
   Badges right-sized; top-card headings on one scale.
   ============================================================ */

/* status badges: compact chip scale (14px was chunky in card corners);
   full 14/700 stays ONLY in row/table contexts per the spec's
   "activity type labels" role */
.kp-portal .kp-badge {
    font-size: 12px;
    padding: 3px 8px;
    line-height: 1.3;
}
.kp-portal .kp-qrow .kp-badge,
.kp-portal .kp-table .kp-badge {
    font-size: var(--font-size-body);
    padding: 4px 10px;
}

/* top boxes: every card that opens a page (banner, welcome, status
   callouts) uses eyebrow 12/500 + title 18/700 + body 14/500 */
.kp-portal .kp-card .kp-eyebrow {
    font-size: var(--font-size-nav) !important;
    font-weight: var(--font-weight-medium) !important;
    letter-spacing: .08em;
}
.kp-portal .kp-onboard-banner h2,
.kp-portal .kp-card .kp-section-heading h2,
.kp-portal .kp-header-card h2 {
    font-size: var(--font-size-heading) !important;
    font-weight: var(--font-weight-bold) !important;
    line-height: var(--line-height-heading) !important;
}
.kp-portal .kp-onboard-step strong { font-size: var(--font-size-body) !important; }
.kp-portal .kp-onboard-step span, .kp-portal .kp-onboard-step small { font-size: var(--font-size-nav) !important; }

/* ===== WL13: Operator Inbox (portal-side admin messenger) + 6-up console metrics ===== */
.kp-portal .kp-console-metrics-six { grid-template-columns: repeat(6, minmax(0, 1fr)); }
@media (max-width: 1180px) { .kp-portal .kp-console-metrics-six { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 700px) { .kp-portal .kp-console-metrics-six { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.kp-portal .kp-msgadmin { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 18px; align-items: start; }
@media (max-width: 980px) { .kp-portal .kp-msgadmin { grid-template-columns: 1fr; } }

.kp-portal .kp-msgadmin-list { padding: 0; overflow: hidden; }
.kp-portal .kp-msgadmin-item { display: block; padding: 13px 16px; border-bottom: 1px solid #DFE2E9; text-decoration: none; }
.kp-portal .kp-msgadmin-item:last-child { border-bottom: 0; }
.kp-portal .kp-msgadmin-item:hover { background: #F4F7FB; }
.kp-portal .kp-msgadmin-item.is-active { background: #EAF1FA; box-shadow: inset 3px 0 0 var(--kp-blue, #1667d9); }
.kp-portal .kp-msgadmin-who { display: flex; align-items: center; gap: 8px; font-size: var(--font-size-body) !important; font-weight: var(--font-weight-bold) !important; color: #23262E; }
.kp-portal .kp-msgadmin-subject { display: block; margin-top: 2px; font-size: var(--font-size-body) !important; font-weight: var(--font-weight-medium) !important; color: #3B3F49; }
.kp-portal .kp-msgadmin-snippet { display: block; margin-top: 2px; font-size: var(--font-size-nav) !important; font-weight: var(--font-weight-medium) !important; color: #6B7280; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kp-portal .kp-msgadmin-unread { flex: 0 0 auto; }

.kp-portal .kp-msgadmin-thread { min-height: 320px; }
.kp-portal .kp-msgadmin-thread-head h2 { margin: 0; }
.kp-portal .kp-msgadmin-contact-link { display: inline-block; margin-top: 4px; font-size: var(--font-size-body) !important; font-weight: var(--font-weight-medium) !important; color: #0066CC; text-decoration: none; }
.kp-portal a.kp-msgadmin-contact-link:hover { text-decoration: underline; }

.kp-portal .kp-msgadmin-bubbles { display: flex; flex-direction: column; gap: 10px; margin: 16px 0 6px; }
.kp-portal .kp-msgadmin-bubble { max-width: 78%; padding: 11px 15px; border-radius: 12px; background: #F4F7FB; border: 1px solid #DFE2E9; color: #23262E; font-size: var(--font-size-body) !important; font-weight: var(--font-weight-medium) !important; }
.kp-portal .kp-msgadmin-bubble p { margin: 0 0 6px; font-size: var(--font-size-body) !important; }
.kp-portal .kp-msgadmin-bubble p:last-of-type { margin-bottom: 0; }
.kp-portal .kp-msgadmin-bubble.is-ours { margin-left: auto; background: var(--kp-navy, #0a1b40); border-color: var(--kp-navy, #0a1b40); color: #FFFFFF; }
.kp-portal .kp-msgadmin-bubble.is-ours a { color: #BFDBFE; }
.kp-portal .kp-msgadmin-meta { display: block; margin-top: 7px; font-size: var(--font-size-body) !important; font-weight: var(--font-weight-medium) !important; font-style: italic; opacity: .72; }

.kp-portal .kp-msgadmin-reply { margin-top: 16px; padding-top: 14px; border-top: 1px solid #DFE2E9; }
.kp-portal .kp-msgadmin-reply-label { display: block; margin-bottom: 6px; font-size: var(--font-size-body) !important; font-weight: var(--font-weight-bold) !important; color: #23262E; }
.kp-portal .kp-msgadmin-reply textarea { width: 100%; border: 1px solid #C9CFDA; border-radius: 8px; padding: 10px 12px; font-size: var(--font-size-body) !important; font-weight: var(--font-weight-medium) !important; font-family: inherit; color: #23262E; background: #FFFFFF; resize: vertical; }
.kp-portal .kp-msgadmin-reply textarea:focus-visible { outline: 2px solid var(--kp-blue, #1667d9); outline-offset: 1px; }
.kp-portal .kp-msgadmin-reply-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 10px; flex-wrap: wrap; }
.kp-portal .kp-msgadmin-reply-actions input[type="file"] { font-size: var(--font-size-nav) !important; }
.kp-portal .kp-msgadmin-pick { padding: 60px 20px; }

/* ===== WL13.1: Operator Inbox — New Message compose ===== */
.kp-portal .kp-msgadmin-hero-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.kp-portal .kp-msgadmin-compose-grid { display: grid; grid-template-columns: 1fr 220px; gap: 14px; margin-bottom: 4px; }
@media (max-width: 760px) { .kp-portal .kp-msgadmin-compose-grid { grid-template-columns: 1fr; } }
.kp-portal .kp-msgadmin-compose { border-top: 0; padding-top: 0; margin-top: 4px; }
.kp-portal .kp-msgadmin-compose select,
.kp-portal .kp-msgadmin-compose input[type="text"] { width: 100%; border: 1px solid #C9CFDA; border-radius: 8px; padding: 9px 12px; font-size: var(--font-size-body) !important; font-weight: var(--font-weight-medium) !important; font-family: inherit; color: #23262E; background: #FFFFFF; }
.kp-portal .kp-msgadmin-compose select:focus-visible,
.kp-portal .kp-msgadmin-compose input[type="text"]:focus-visible { outline: 2px solid var(--kp-blue, #1667d9); outline-offset: 1px; }
.kp-portal .kp-msgadmin-compose .kp-msgadmin-reply-label { margin-top: 12px; }
.kp-portal .kp-msgadmin-compose-grid .kp-msgadmin-reply-label { margin-top: 0; }

/* ===== WL13.2: Compose modal (BoldTrail-style) ===== */
.kp-portal .kp-compose-overlay { position: fixed; inset: 0; background: rgba(10, 27, 64, .45); z-index: 4000; display: none; align-items: flex-start; justify-content: center; padding: 48px 20px 20px; }
.kp-portal .kp-compose-overlay.is-open { display: flex; }
.kp-portal .kp-compose-modal { width: min(880px, 100%); max-height: calc(100vh - 70px); display: flex; flex-direction: column; background: #FFFFFF; border-radius: 10px; overflow: hidden; box-shadow: 0 24px 64px rgba(10, 27, 64, .35); }
.kp-portal .kp-compose-head { display: flex; align-items: center; justify-content: space-between; background: var(--kp-navy, #0a1b40); color: #FFFFFF; padding: 12px 18px; }
.kp-portal .kp-compose-head-title { display: inline-flex; align-items: center; gap: 10px; font-size: var(--font-size-body) !important; font-weight: var(--font-weight-bold) !important; letter-spacing: .08em; text-transform: uppercase; color: #FFFFFF; }
.kp-portal .kp-compose-head-title svg { width: 17px; height: 17px; fill: #FFFFFF; }
.kp-portal .kp-compose-close { background: none; border: 0; color: #FFFFFF; font-size: 16px; cursor: pointer; line-height: 1; padding: 4px 6px; border-radius: 6px; }
.kp-portal .kp-compose-close:hover { background: rgba(255, 255, 255, .14); }
.kp-portal .kp-compose-form { display: flex; flex-direction: column; padding: 16px 20px 18px; overflow-y: auto; }
.kp-portal .kp-compose-row { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid #EBEDF2; }
.kp-portal .kp-compose-row label { font-size: var(--font-size-body) !important; font-weight: var(--font-weight-bold) !important; color: #23262E; flex: 0 0 auto; }
.kp-portal .kp-compose-row-split { gap: 22px; }
.kp-portal .kp-compose-to { display: flex; align-items: center; gap: 10px; flex: 1 1 auto; min-width: 0; }
.kp-portal .kp-compose-type { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.kp-portal .kp-compose-row select, .kp-portal .kp-compose-row input[type="text"] { border: 0; background: transparent; flex: 1 1 auto; min-width: 0; padding: 6px 4px; font-size: var(--font-size-body) !important; font-weight: var(--font-weight-medium) !important; font-family: inherit; color: #23262E; }
.kp-portal .kp-compose-row select:focus-visible, .kp-portal .kp-compose-row input[type="text"]:focus-visible { outline: 2px solid var(--kp-blue, #1667d9); outline-offset: 1px; border-radius: 4px; }
.kp-portal .kp-compose-toolbar { display: flex; align-items: center; gap: 4px; margin-top: 12px; padding: 6px 8px; border: 1px solid #DFE2E9; border-bottom: 0; border-radius: 8px 8px 0 0; background: #F8F9FB; }
.kp-portal .kp-compose-toolbar button { border: 0; background: transparent; min-width: 30px; height: 28px; border-radius: 6px; cursor: pointer; font-size: var(--font-size-body) !important; color: #3B3F49; }
.kp-portal .kp-compose-toolbar button:hover { background: #E8EDF5; color: var(--kp-navy, #0a1b40); }
.kp-portal .kp-compose-toolbar-sep { width: 1px; height: 18px; background: #DFE2E9; margin: 0 4px; }
.kp-portal .kp-compose-editor { border: 1px solid #DFE2E9; border-radius: 0 0 8px 8px; min-height: 240px; max-height: 42vh; overflow-y: auto; padding: 12px 14px; font-size: var(--font-size-body) !important; font-weight: var(--font-weight-medium) !important; color: #23262E; background: #FFFFFF; }
.kp-portal .kp-compose-editor:focus-visible { outline: 2px solid var(--kp-blue, #1667d9); outline-offset: -1px; }
.kp-portal .kp-compose-editor-error { border-color: #C4453A; outline: 2px solid #C4453A; outline-offset: -1px; }
.kp-portal .kp-compose-editor p { margin: 0 0 8px; font-size: var(--font-size-body) !important; }
.kp-portal .kp-compose-attach-row { margin-top: 10px; }
.kp-portal .kp-compose-attach { display: inline-flex; align-items: center; gap: 7px; color: #0066CC; font-size: var(--font-size-body) !important; font-weight: var(--font-weight-medium) !important; cursor: pointer; }
.kp-portal .kp-compose-attach:hover span { text-decoration: underline; }
.kp-portal .kp-compose-attach svg { width: 15px; height: 15px; fill: #0066CC; }
.kp-portal .kp-compose-foot { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 16px; padding-top: 14px; border-top: 1px solid #EBEDF2; }
.kp-portal .kp-compose-signature { display: inline-flex; align-items: center; gap: 9px; font-size: var(--font-size-body) !important; font-weight: var(--font-weight-medium) !important; color: #23262E; cursor: pointer; }
.kp-portal .kp-compose-signature input { position: absolute; opacity: 0; pointer-events: none; }
.kp-portal .kp-compose-switch { width: 34px; height: 19px; border-radius: 10px; background: #C9CFDA; position: relative; transition: background .15s ease; flex: 0 0 auto; }
.kp-portal .kp-compose-switch::after { content: ""; position: absolute; top: 2px; left: 2px; width: 15px; height: 15px; border-radius: 50%; background: #FFFFFF; transition: left .15s ease; }
.kp-portal .kp-compose-signature input:checked + .kp-compose-switch { background: var(--kp-navy, #0a1b40); }
.kp-portal .kp-compose-signature input:checked + .kp-compose-switch::after { left: 17px; }
.kp-portal .kp-compose-signature input:focus-visible + .kp-compose-switch { outline: 2px solid var(--kp-blue, #1667d9); outline-offset: 2px; }
.kp-portal .kp-compose-send { display: inline-flex; align-items: center; gap: 8px; }
@media (max-width: 700px) { .kp-portal .kp-compose-overlay { padding: 12px; } .kp-portal .kp-compose-row-split { flex-direction: column; align-items: stretch; } .kp-portal .kp-compose-type { justify-content: flex-start; } }

/* ===== WL14: Three-pane Operator Inbox (widget parity) ===== */
.kp-portal .kp-inbox3 { display: grid; grid-template-columns: 210px 330px minmax(0, 1fr); gap: 16px; align-items: start; }
@media (max-width: 1180px) { .kp-portal .kp-inbox3 { grid-template-columns: 200px minmax(0, 1fr); } .kp-portal .kp-inbox-thread { grid-column: 1 / -1; } }
@media (max-width: 760px) { .kp-portal .kp-inbox3 { grid-template-columns: 1fr; } }

.kp-portal .kp-inbox-rail { padding: 14px; }
.kp-portal .kp-inbox-newbtn { display: block; width: 100%; text-align: center; margin-bottom: 14px; }
.kp-portal .kp-inbox-boxes { display: flex; flex-direction: column; gap: 2px; }
.kp-portal .kp-inbox-box { display: flex; align-items: center; gap: 9px; padding: 9px 10px; border-radius: 8px; text-decoration: none; border: 1px solid transparent; }
.kp-portal .kp-inbox-box svg { width: 15px; height: 15px; fill: #5F6572; flex: 0 0 auto; }
.kp-portal .kp-inbox-box span { flex: 1 1 auto; font-size: var(--font-size-body) !important; font-weight: var(--font-weight-medium) !important; color: #23262E; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kp-portal .kp-inbox-box b { font-size: var(--font-size-nav) !important; font-weight: var(--font-weight-bold) !important; color: #5F6572; background: #EEF1F6; border-radius: 10px; padding: 1px 8px; }
.kp-portal .kp-inbox-box:hover { background: #F4F7FB; }
.kp-portal .kp-inbox-box.is-active { background: #EAF1FA; border-color: #CFE0F5; }
.kp-portal .kp-inbox-box.is-active svg { fill: var(--kp-blue, #1667d9); }
.kp-portal .kp-inbox-folders-head { display: flex; align-items: center; justify-content: space-between; margin: 16px 2px 6px; }
.kp-portal .kp-inbox-folders-head span { font-size: var(--font-size-nav) !important; font-weight: var(--font-weight-bold) !important; letter-spacing: .08em; text-transform: uppercase; color: #5F6572; }
.kp-portal .kp-inbox-folder-add { border: 1px solid #C9CFDA; background: #FFFFFF; border-radius: 6px; width: 22px; height: 22px; line-height: 1; cursor: pointer; color: #3B3F49; font-size: 14px; }
.kp-portal .kp-inbox-folder-add:hover { background: #EAF1FA; border-color: var(--kp-blue, #1667d9); color: var(--kp-blue, #1667d9); }
.kp-portal .kp-inbox-folder-form { display: flex; gap: 6px; margin: 6px 0 8px; }
.kp-portal .kp-inbox-folder-form[hidden] { display: none; }
.kp-portal .kp-inbox-folder-form input { flex: 1 1 auto; min-width: 0; border: 1px solid #C9CFDA; border-radius: 7px; padding: 6px 9px; font-size: var(--font-size-nav) !important; font-weight: var(--font-weight-medium) !important; font-family: inherit; }

.kp-portal .kp-inbox-list { padding: 0; overflow: hidden; }
.kp-portal .kp-inbox-list-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; padding: 13px 14px 11px; border-bottom: 1px solid #DFE2E9; }
.kp-portal .kp-inbox-list-title .kp-eyebrow { margin: 0 0 1px; }
.kp-portal .kp-inbox-list-title h2 { margin: 0; }
.kp-portal .kp-inbox-search { display: flex; align-items: center; gap: 6px; }
.kp-portal .kp-inbox-search input[type="search"] { width: 120px; border: 1px solid #C9CFDA; border-radius: 7px; padding: 6px 9px; font-size: var(--font-size-nav) !important; font-weight: var(--font-weight-medium) !important; font-family: inherit; }
.kp-portal .kp-inbox-sort { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border: 1px solid #C9CFDA; border-radius: 7px; text-decoration: none; color: #3B3F49; font-size: 14px; }
.kp-portal .kp-inbox-sort:hover { background: #EAF1FA; border-color: var(--kp-blue, #1667d9); color: var(--kp-blue, #1667d9); }
.kp-portal .kp-inbox-items { max-height: 640px; overflow-y: auto; }
.kp-portal .kp-inbox-item { display: flex; gap: 10px; padding: 12px 14px; border-bottom: 1px solid #EEF0F4; text-decoration: none; }
.kp-portal .kp-inbox-item:hover { background: #F4F7FB; }
.kp-portal .kp-inbox-item.is-active { background: #EAF1FA; box-shadow: inset 3px 0 0 var(--kp-blue, #1667d9); }
.kp-portal .kp-inbox-avatar { flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%; background: #E3EBF6; color: #29415E; display: inline-flex; align-items: center; justify-content: center; font-size: var(--font-size-nav) !important; font-weight: var(--font-weight-bold) !important; }
.kp-portal .kp-inbox-avatar-brand { background: var(--kp-navy, #0a1b40); color: #FFFFFF; }
.kp-portal .kp-inbox-item-main { flex: 1 1 auto; min-width: 0; }
.kp-portal .kp-inbox-item-top { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.kp-portal .kp-inbox-item-who { font-size: var(--font-size-body) !important; font-weight: var(--font-weight-bold) !important; color: #23262E; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kp-portal .kp-inbox-item-date { flex: 0 0 auto; font-size: var(--font-size-nav) !important; font-weight: var(--font-weight-medium) !important; color: #6B7280; }
.kp-portal .kp-inbox-item-subject { display: block; margin-top: 1px; font-size: var(--font-size-body) !important; font-weight: var(--font-weight-bold) !important; color: #3B3F49; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kp-portal .kp-inbox-item-type { display: block; margin-top: 2px; font-size: var(--font-size-nav) !important; font-weight: var(--font-weight-medium) !important; color: #6B7280; }
.kp-portal .kp-inbox-newpill { display: inline-block; margin-left: 6px; background: #EAF1FA; color: var(--kp-blue, #1667d9); border-radius: 9px; padding: 1px 8px; font-size: 11px !important; font-weight: var(--font-weight-bold) !important; vertical-align: 1px; }

.kp-portal .kp-inbox-thread-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 12px; }
.kp-portal .kp-inbox-thread-head h2 { margin: 2px 0 4px; }
.kp-portal .kp-inbox-thread-meta { margin: 0; font-size: var(--font-size-body) !important; font-weight: var(--font-weight-medium) !important; color: #3B3F49; }
.kp-portal .kp-inbox-thread-meta a { color: #0066CC; text-decoration: none; }
.kp-portal .kp-inbox-thread-meta a:hover { text-decoration: underline; }
.kp-portal .kp-inbox-thread-tools { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.kp-portal .kp-inbox-convo { padding: 16px; }
.kp-portal .kp-inbox-msg { display: flex; gap: 11px; padding: 13px; border: 1px solid #DFE2E9; border-radius: 10px; background: #FFFFFF; margin-bottom: 10px; }
.kp-portal .kp-inbox-msg.is-ours { background: #F7FAFE; border-color: #CFE0F5; }
.kp-portal .kp-inbox-msg-body { flex: 1 1 auto; min-width: 0; }
.kp-portal .kp-inbox-msg-top { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 4px; }
.kp-portal .kp-inbox-msg-top strong { font-size: var(--font-size-body) !important; font-weight: var(--font-weight-bold) !important; color: #23262E; }
.kp-portal .kp-inbox-msg-date { font-size: var(--font-size-body) !important; font-weight: var(--font-weight-medium) !important; font-style: italic; color: #6B7280; }
.kp-portal .kp-inbox-msg-text, .kp-portal .kp-inbox-msg-text p { font-size: var(--font-size-body) !important; font-weight: var(--font-weight-medium) !important; color: #23262E; }
.kp-portal .kp-inbox-msg-text p { margin: 0 0 7px; }
.kp-portal .kp-inbox-msg-text p:last-child { margin-bottom: 0; }
.kp-portal .kp-inbox-msg-atts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 9px; }
.kp-portal .kp-inbox-att { display: inline-flex; align-items: center; gap: 6px; border: 1px solid #C9CFDA; border-radius: 8px; padding: 6px 11px; background: #F8F9FB; font-size: var(--font-size-nav) !important; font-weight: var(--font-weight-medium) !important; color: #23262E; text-decoration: none; }
.kp-portal .kp-inbox-att svg { width: 13px; height: 13px; fill: #5F6572; }
.kp-portal .kp-inbox-att:hover { border-color: var(--kp-blue, #1667d9); color: var(--kp-blue, #1667d9); }
.kp-portal .kp-inbox-actionbar { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding-top: 13px; margin-top: 4px; border-top: 1px solid #EBEDF2; }
.kp-portal .kp-inbox-move { display: flex; align-items: center; gap: 8px; }
.kp-portal .kp-inbox-move-label { font-size: var(--font-size-nav) !important; font-weight: var(--font-weight-medium) !important; color: #5F6572; }
.kp-portal .kp-inbox-move select { border: 1px solid #C9CFDA; border-radius: 7px; padding: 7px 9px; font-size: var(--font-size-body) !important; font-weight: var(--font-weight-medium) !important; font-family: inherit; }
.kp-portal .kp-inbox-delete { margin-left: auto; }
.kp-portal .kp-inbox-reply { margin-top: 14px; padding-top: 13px; border-top: 1px solid #EBEDF2; }
.kp-portal .kp-inbox-reply[hidden] { display: none; }
.kp-portal .kp-inbox-reply textarea { width: 100%; border: 1px solid #C9CFDA; border-radius: 8px; padding: 10px 12px; font-size: var(--font-size-body) !important; font-weight: var(--font-weight-medium) !important; font-family: inherit; color: #23262E; resize: vertical; }

/* ===== WL14.1: Compose modal upgrade (two-row toolbar, link row, templates) ===== */
.kp-portal .kp-compose-modal { width: min(960px, 100%); }
.kp-portal .kp-compose-toolbar select { border: 1px solid #C9CFDA; border-radius: 6px; padding: 4px 7px; background: #FFFFFF; font-size: var(--font-size-nav) !important; font-weight: var(--font-weight-medium) !important; font-family: inherit; color: #23262E; max-width: 130px; }
.kp-portal .kp-compose-toolbar-2 { margin-top: 0; border-radius: 0; border-top: 0; }
.kp-portal .kp-compose-toolbar { border-radius: 8px 8px 0 0; }
.kp-portal .kp-compose-toolbar + .kp-compose-toolbar-2 { border-radius: 0; }
.kp-portal .kp-compose-template { margin-left: auto; }
.kp-portal .kp-compose-linkrow { display: flex; gap: 8px; align-items: center; padding: 8px 10px; border: 1px solid #DFE2E9; border-top: 0; background: #F8F9FB; }
.kp-portal .kp-compose-linkrow[hidden] { display: none; }
.kp-portal .kp-compose-linkrow input { flex: 1 1 auto; min-width: 0; border: 1px solid #C9CFDA; border-radius: 7px; padding: 7px 10px; font-size: var(--font-size-body) !important; font-weight: var(--font-weight-medium) !important; font-family: inherit; }
.kp-portal .kp-compose-editor { border-radius: 0 0 8px 8px; min-height: 280px; }
.kp-portal .kp-compose-editor h2 { font-size: var(--font-size-heading, 18px) !important; font-weight: var(--font-weight-bold) !important; margin: 0 0 8px; }
.kp-portal .kp-compose-editor h3 { font-size: var(--font-size-body) !important; font-weight: var(--font-weight-bold) !important; margin: 0 0 6px; }
.kp-portal .kp-compose-editor blockquote { border-left: 3px solid #C9CFDA; margin: 0 0 8px; padding: 2px 12px; color: #5F6572; }
.kp-portal .kp-compose-editor a { color: #0066CC; }
.kp-portal .kp-compose-editor ul, .kp-portal .kp-compose-editor ol { margin: 0 0 8px 22px; }

/* ===== WL14.2: reply RTE + ajax loading state ===== */
.kp-portal .kp-inbox-reply-editor { min-height: 130px; }
.kp-portal .kp-inbox-reply .kp-compose-toolbar { margin-top: 0; }
.kp-portal [data-kp-thread-pane].is-loading { opacity: .45; pointer-events: none; transition: opacity .12s ease; }

/* ===== WL14.3: full RTE on replies + unread-only rail badge ===== */
.kp-portal .kp-inbox-unreadchip { background: var(--kp-blue, #1667d9) !important; color: #FFFFFF !important; }
.kp-portal .kp-inbox-reply .kp-compose-toolbar-2 { border-top: 0; }
.kp-portal .kp-inbox-reply .kp-compose-linkrow { border-top: 0; }
.kp-portal .kp-inbox-reply .kp-compose-editor { border-radius: 0 0 8px 8px; }
.kp-portal .kp-inbox-msg-text font[size="2"] { font-size: 12px !important; }
.kp-portal .kp-inbox-msg-text font[size="4"] { font-size: 17px !important; }
.kp-portal .kp-inbox-msg-text font[size="5"] { font-size: 21px !important; }
.kp-portal .kp-compose-editor font[size="2"] { font-size: 12px !important; }
.kp-portal .kp-compose-editor font[size="4"] { font-size: 17px !important; }
.kp-portal .kp-compose-editor font[size="5"] { font-size: 21px !important; }
.kp-portal .kp-inbox-msg-text h2 { font-size: 18px !important; font-weight: var(--font-weight-bold) !important; margin: 0 0 7px; }
.kp-portal .kp-inbox-msg-text h3 { font-size: 14px !important; font-weight: var(--font-weight-bold) !important; margin: 0 0 6px; }
.kp-portal .kp-inbox-msg-text blockquote { border-left: 3px solid #C9CFDA; margin: 0 0 8px; padding: 2px 12px; color: #5F6572; }
.kp-portal .kp-inbox-msg-text a { color: #0066CC; }
.kp-portal .kp-inbox-msg.is-ours .kp-inbox-msg-text a { color: #0066CC; }
.kp-portal .kp-inbox-msg-text ul, .kp-portal .kp-inbox-msg-text ol { margin: 0 0 8px 22px; }
.kp-portal .kp-inbox-msg-text hr { border: 0; border-top: 1px solid #DFE2E9; margin: 10px 0; }

/* ===== WL15: Multi-step Form Engine + console prequal queue ===== */
.kp-portal .kp-console-metrics-seven { grid-template-columns: repeat(7, minmax(0, 1fr)); }
@media (max-width: 1280px) { .kp-portal .kp-console-metrics-seven { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 760px) { .kp-portal .kp-console-metrics-seven { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.kp-portal .kp-fe-asbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 18px; margin-bottom: 14px; }
.kp-portal .kp-fe-asbar span { font-size: var(--font-size-body) !important; font-weight: var(--font-weight-medium) !important; color: #23262E; }
.kp-portal .kp-fe-asbar a { font-size: var(--font-size-body) !important; font-weight: var(--font-weight-medium) !important; color: #0066CC; text-decoration: none; }
.kp-portal .kp-fe-asbar a:hover { text-decoration: underline; }

.kp-portal .kp-fe-stepper { display: flex; align-items: center; gap: 8px; margin: 4px 0 16px; flex-wrap: wrap; }
.kp-portal .kp-fe-step { display: flex; align-items: center; gap: 8px; }
.kp-portal .kp-fe-step-dot { width: 28px; height: 28px; border-radius: 50%; background: #E3EBF6; color: #29415E; display: inline-flex; align-items: center; justify-content: center; font-size: var(--font-size-nav) !important; font-weight: var(--font-weight-bold) !important; flex: 0 0 auto; }
.kp-portal .kp-fe-step.is-current .kp-fe-step-dot { background: var(--kp-navy, #0a1b40); color: #FFFFFF; }
.kp-portal .kp-fe-step.is-done .kp-fe-step-dot { background: #1B7F4B; color: #FFFFFF; }
.kp-portal .kp-fe-step-label { font-size: var(--font-size-nav) !important; font-weight: var(--font-weight-medium) !important; color: #5F6572; }
.kp-portal .kp-fe-step.is-current .kp-fe-step-label { color: #23262E; font-weight: var(--font-weight-bold) !important; }
.kp-portal .kp-fe-step-line { flex: 1 1 24px; min-width: 18px; height: 2px; background: #DFE2E9; }
.kp-portal .kp-fe-step-line.is-done { background: #1B7F4B; }

.kp-portal .kp-fe-form { padding: 22px 24px; }
.kp-portal .kp-fe-step-title { margin: 0 0 14px; }
.kp-portal .kp-fe-grid { display: flex; flex-wrap: wrap; gap: 14px 18px; }
.kp-portal .kp-fe-field { flex: 1 1 100%; min-width: 0; }
.kp-portal .kp-fe-half { flex: 1 1 calc(50% - 9px); }
@media (max-width: 700px) { .kp-portal .kp-fe-half { flex-basis: 100%; } }
.kp-portal .kp-fe-label { display: block; margin-bottom: 5px; font-size: var(--font-size-body) !important; font-weight: var(--font-weight-bold) !important; color: #23262E; }
.kp-portal .kp-fe-req { color: #C4453A; }
.kp-portal .kp-fe-help { margin: -2px 0 6px; font-size: var(--font-size-nav) !important; font-weight: var(--font-weight-medium) !important; color: #6B7280; }
.kp-portal .kp-fe-field input[type="text"], .kp-portal .kp-fe-field input[type="email"], .kp-portal .kp-fe-field select, .kp-portal .kp-fe-field textarea { width: 100%; border: 1px solid #C9CFDA; border-radius: 8px; padding: 10px 12px; font-size: var(--font-size-body) !important; font-weight: var(--font-weight-medium) !important; font-family: inherit; color: #23262E; background: #FFFFFF; }
.kp-portal .kp-fe-field input:focus-visible, .kp-portal .kp-fe-field select:focus-visible, .kp-portal .kp-fe-field textarea:focus-visible { outline: 2px solid var(--kp-blue, #1667d9); outline-offset: 1px; }
.kp-portal .kp-fe-options { display: flex; flex-wrap: wrap; gap: 8px 14px; }
.kp-portal .kp-fe-opt { display: inline-flex; align-items: center; gap: 7px; border: 1px solid #C9CFDA; border-radius: 8px; padding: 8px 13px; font-size: var(--font-size-body) !important; font-weight: var(--font-weight-medium) !important; color: #23262E; cursor: pointer; background: #FFFFFF; }
.kp-portal .kp-fe-opt:hover { border-color: var(--kp-blue, #1667d9); }
.kp-portal .kp-fe-opt input { accent-color: var(--kp-navy, #0a1b40); }
.kp-portal .kp-fe-accept { display: flex; align-items: flex-start; gap: 10px; font-size: var(--font-size-body) !important; font-weight: var(--font-weight-medium) !important; color: #23262E; cursor: pointer; padding: 12px 14px; border: 1px solid #DFE2E9; border-radius: 8px; background: #F8F9FB; }
.kp-portal .kp-fe-accept input { margin-top: 3px; accent-color: var(--kp-navy, #0a1b40); }
.kp-portal .kp-fe-legal { border: 1px solid #DFE2E9; border-radius: 8px; background: #F8F9FB; padding: 14px 16px; max-height: 210px; overflow-y: auto; }
.kp-portal .kp-fe-legal p { font-size: var(--font-size-body) !important; color: #3B3F49; margin: 0 0 8px; }
.kp-portal .kp-fe-error { margin: 6px 0 0; font-size: var(--font-size-nav) !important; font-weight: var(--font-weight-bold) !important; color: #C4453A; }
.kp-portal .kp-fe-error-form { border: 1px solid #C4453A; background: #FCF1F0; border-radius: 8px; padding: 10px 14px; margin-bottom: 12px; }
.kp-portal .kp-fe-has-error input, .kp-portal .kp-fe-has-error select, .kp-portal .kp-fe-has-error textarea { border-color: #C4453A; }
.kp-portal .kp-fe-file-current { margin: 0 0 6px; font-size: var(--font-size-body) !important; font-weight: var(--font-weight-medium) !important; color: #1B7F4B; }
.kp-portal .kp-fe-file-current span { color: #6B7280; font-size: var(--font-size-nav) !important; }
.kp-portal .kp-fe-nav { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 20px; padding-top: 16px; border-top: 1px solid #EBEDF2; }
.kp-portal .kp-fe-nav-right { display: flex; align-items: center; gap: 10px; }
.kp-portal .kp-fe-thanks { text-align: center; padding: 48px 24px; }
.kp-portal .kp-fe-thanks h2 { margin: 12px 0 8px; }
.kp-portal .kp-fe-thanks .kp-button { margin-top: 16px; }

/* ===== WL15.1: verification action cards ===== */
.kp-portal .kp-fe-actioncard { border-left: 4px solid var(--kp-blue, #1667d9); margin-bottom: 16px; }
.kp-portal .kp-fe-actioncard-dash { margin-bottom: 16px; }
.kp-portal .kp-fe-actioncard p { font-size: var(--font-size-body) !important; color: #3B3F49; }

/* ===== WL15.3: verifications queue + 8-up metrics ===== */
.kp-portal .kp-console-metrics-eight { grid-template-columns: repeat(8, minmax(0, 1fr)); }
@media (max-width: 1400px) { .kp-portal .kp-console-metrics-eight { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 760px) { .kp-portal .kp-console-metrics-eight { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ===== WL16: AI document pre-screen ===== */
.kp-portal .kp-badge.kp-ps-green { background: #1B7F4B 
!important; color: #FFFFFF !important; }
.kp-portal .kp-badge.kp-ps-amber { background: #B97D10 !important; color: #FFFFFF !important; }
.kp-portal .kp-badge.kp-ps-red { background: #C4453A !important; color: #FFFFFF !important; }
.kp-portal .kp-badge.kp-ps-pending { background: #6B7280 !important; color: #FFFFFF !important; }
.kp-portal .kp-ps-note { font-size: var(--font-size-nav) !important; font-weight: var(--font-weight-medium) !important; color: #6B7280; margin: -4px 0 10px; }

/* ===== WL17: upload-time document precheck feedback ===== */
.kp-portal .kp-fe-precheck { margin-top: 8px; padding: 10px 13px; border-radius: 8px; font-size: var(--font-size-body) !important; font-weight: var(--font-weight-medium) !important; border: 1px solid #DFE2E9; }
.kp-portal .kp-fe-precheck.is-checking { background: #F4F7FB; color: #3B3F49; }
.kp-portal .kp-fe-precheck.is-checking::before { content: "⏳ "; }
.kp-portal .kp-fe-precheck.is-ok { background: #F0F8F3; border-color: #BFE3CD; color: #14603A; }
.kp-portal .kp-fe-precheck.is-ok::before { content: "✓ "; font-weight: 700; }
.kp-portal .kp-fe-precheck.is-warn { background: #FDF6EA; border-color: #EBD3A5; color: #7A5308; }
.kp-portal .kp-fe-precheck.is-warn::before { content: "⚠ "; }
.kp-portal .kp-fe-precheck.is-problem { background: #FCF1F0; border-color: #EFC2BD; color: #8F2F27; }
.kp-portal .kp-fe-precheck.is-problem::before { content: "✗ "; font-weight: 700; }

/* ===== WL17.1: submission view/edit + review doc list ===== */
.kp-portal .kp-fe-subrow { border-bottom: 1px solid #EEF0F4; }
.kp-portal .kp-fe-subrow summary { list-style: none; cursor: pointer; }
.kp-portal .kp-fe-subrow summary::-webkit-details-marker { display: none; }
.kp-portal .kp-fe-subrow-toggle { font-size: var(--font-size-nav) !important; font-weight: var(--font-weight-medium) !important; color: #0066CC; }
.kp-portal .kp-fe-subrow[open] .kp-fe-subrow-toggle { color: #5F6572; }
.kp-portal .kp-fe-subrow-body { padding: 4px 14px 16px; background: #FAFBFC; border-radius: 0 0 8px 8px; }
.kp-portal .kp-fe-subrow-actions { margin: 12px 0 0; }
.kp-portal .kp-fe-doclist { font-size: var(--font-size-body) !important; color: #3B3F49; }
.kp-portal .kp-fe-editbar { border-left: 4px solid #B97D10; }

/* ============ WL19 — native e-sign ceremony ============ */
.kp-esign { display: grid; grid-template-columns: 1.5fr 1fr; gap: 18px; align-items: start; }
.kp-esign-doc-card { min-width: 0; }
.kp-esign-doc {
    max-height: 560px; overflow-y: auto; padding: 18px 20px;
    border: 1px solid var(--kp-border, #e3e8f2); border-radius: 10px;
    background: #fbfcfe; font-size: 13.5px; line-height: 1.65;
}
.kp-esign-doc h2 { font-size: 14px; margin: 16px 0 6px; }
.kp-esign-doc p { margin: 0 0 10px; }
.kp-esign-sign-card { position: sticky; top: 16px; }
.kp-esign-field { display: block; margin: 14px 0; }
.kp-esign-label { display: block; font-size: 12px; font-weight: 600; margin-bottom: 6px; }
.kp-esign-field input[type="text"] {
    width: 100%; padding: 10px 12px; border: 1px solid var(--kp-border, #d5dcea);
    border-radius: 8px; font-size: 14px; box-sizing: border-box;
}
.kp-esign-fielderr { color: #b42318; font-size: 12px; display: block; margin-top: 4px; }
.kp-esign-preview {
    border: 1px dashed var(--kp-border, #c9d2e4); border-radius: 10px;
    padding: 12px 16px; margin: 12px 0; background: #fff;
}
.kp-esign-preview-label { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: 1px; color: #8a94ab; margin-bottom: 4px; }
.kp-esign-preview-name { font-size: 26px; font-style: italic; font-family: Georgia, 'Times New Roman', serif; color: #17233f; }
.kp-esign-draw { margin: 12px 0; }
.kp-esign-draw-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; }
.kp-esign-clear { background: none; border: 0; color: var(--kp-blue, #0e1f4b); font-size: 12px; cursor: pointer; text-decoration: underline; }
#kpEsignPad {
    width: 100%; height: 120px; border: 1px solid var(--kp-border, #d5dcea);
    border-radius: 10px; background: #fff; touch-action: none; display: block;
}
.kp-esign-check { display: flex; gap: 10px; align-items: flex-start; margin: 12px 0; font-size: 13px; line-height: 1.5; cursor: pointer; }
.kp-esign-check input { margin-top: 3px; }
.kp-esign-check.is-error span { color: #b42318; }
.kp-esign-submit { width: 100%; margin-top: 6px; }
.kp-esign-fine { font-size: 11.5px; color: #8a94ab; margin-top: 10px; line-height: 1.5; }
.kp-esign-error { background: #fdecea; border: 1px solid #f5c6c0; color: #b42318; border-radius: 8px; padding: 10px 14px; font-size: 13px; margin: 10px 0; }
.kp-esign-done { text-align: center; padding: 44px 28px; }
.kp-esign-done-mark {
    width: 58px; height: 58px; border-radius: 50%; margin: 0 auto 16px;
    display: flex; align-items: center; justify-content: center;
    background: #e8f7ef; color: #1a7f4b; font-size: 26px; font-weight: 700;
}
.kp-esign-done-actions { display: flex; gap: 10px; justify-content: center; margin-top: 18px; flex-wrap: wrap; }
.kp-esign-list .kp-doc-row { margin-top: 10px; }
@media (max-width: 900px) {
    .kp-esign { grid-template-columns: 1fr; }
    .kp-esign-sign-card { position: static; }
}

/* WL19.2 — agreements card in record view */
.kp-esign-reqrow { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--kp-border, #e3e8f2); }
.kp-esign-reqform { display: inline; }

/* ============ WL20 — acquisitions pipeline ============ */
.kp-acq-stagebar { grid-template-columns: repeat(10, 1fr); }
.kp-acq-layout { display: grid; grid-template-columns: 1.6fr 1fr; gap: 18px; align-items: start; }
.kp-acq-list { display: grid; gap: 12px; }
.kp-acq-deal summary { display: flex; justify-content: space-between; gap: 14px; cursor: pointer; list-style: none; align-items: flex-start; }
.kp-acq-deal summary::-webkit-details-marker { display: none; }
.kp-acq-deal-main { display: grid; gap: 3px; min-width: 0; }
.kp-acq-deal-side { display: flex; gap: 6px; flex-shrink: 0; align-items: center; }
.kp-acq-deal-body { border-top: 1px solid var(--kp-border, #e3e8f2); margin-top: 12px; padding-top: 12px; }
.kp-acq-verdict { font-weight: 600; font-size: 13.5px; margin: 0 0 8px; }
.kp-acq-verdict-green { color: #1a7f4b; }
.kp-acq-verdict-amber { color: #9a6a00; }
.kp-acq-verdict-red { color: #b42318; }
.kp-acq-reasons { margin: 0 0 10px; padding-left: 18px; font-size: 12.5px; line-height: 1.6; color: #4b586e; }
.kp-acq-facts { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 12px; color: #5b6880; margin-bottom: 10px; }
.kp-acq-facts b { color: #17233f; }
.kp-acq-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.kp-acq-actions select { padding: 6px 8px; border: 1px solid var(--kp-border, #d5dcea); border-radius: 7px; font-size: 12.5px; }
.kp-acq-add { position: sticky; top: 16px; }
.kp-acq-form { display: grid; gap: 10px; margin-top: 8px; }
.kp-acq-form label { display: grid; gap: 4px; font-size: 12px; font-weight: 600; }
/* wl76 — the client form classes are listed here, in the admin's own rule,
 * rather than given a parallel block of their own. One declaration set, two
 * form systems: they cannot drift apart again without someone editing this
 * line, which is the point. */
.kp-acq-form input, .kp-acq-form select, .kp-acq-form textarea,
.kp-crm-form input, .kp-crm-form select, .kp-crm-form textarea,
.kp-crm-rolegrid input, .kp-crm-rolegrid select, .kp-crm-rolegrid textarea {
    padding: 8px 10px; border: 1px solid var(--kp-border, #d5dcea); border-radius: 8px; font-size: 13px; width: 100%; box-sizing: border-box; font-weight: 400;
}
/* Checkboxes, radios and file pickers are controls, not fields — same carve-out
 * the admin forms already make for theirs. Kept at the same specificity as the
 * rule above so the two systems stay in step. */
.kp-crm-form input[type="checkbox"], .kp-crm-form input[type="radio"],
.kp-crm-rolegrid input[type="checkbox"], .kp-crm-rolegrid input[type="radio"] {
    width: auto; padding: 0; border-radius: 3px;
}
.kp-crm-form input[type="file"], .kp-crm-rolegrid input[type="file"] {
    padding: 6px 0; border: 0; border-radius: 0; font-size: 12.5px;
}
.kp-acq-form-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(90px, 1fr)); gap: 10px; }
@media (max-width: 1020px) {
    .kp-acq-layout { grid-template-columns: 1fr; }
    .kp-acq-add { position: static; }
    .kp-acq-stagebar { grid-template-columns: repeat(4, 1fr); }
}

/* ============ WL21 — borrower vault ============ */
.kp-vault-meter-card { margin-bottom: 16px; }
.kp-vault-meter-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 10px; }
.kp-vault-pct { font-size: 34px; font-weight: 800; letter-spacing: -1px; color: #9a6a00; }
.kp-vault-pct.is-full { color: #1a7f4b; }
.kp-vault-bar { height: 8px; border-radius: 999px; background: #edf1f8; overflow: hidden; }
.kp-vault-bar span { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--kp-blue, #0e1f4b), var(--kp-navy)); transition: width .4s ease; }
.kp-vault-cat { margin-bottom: 14px; }
.kp-vault-side { flex-wrap: wrap; justify-content: flex-end; }
.kp-vault-filelabel { position: relative; display: inline-block; cursor: pointer; }
.kp-vault-filelabel input[type="file"] { position: absolute; inset: 0; opacity: 0; width: 100%; cursor: pointer; }
.kp-vault-foot { margin: 4px 2px 0; }

/* ============ WL22 — lender links ============ */
.kp-lsend { border-top: 1px dashed var(--kp-border, #e3e8f2); margin-top: 12px; padding-top: 12px; }
.kp-lsend-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.kp-lsend-form select, .kp-lsend-form input[type="email"] { padding: 7px 9px; border: 1px solid var(--kp-border, #d5dcea); border-radius: 7px; font-size: 12.5px; }
.kp-lsend-check { font-size: 12px; display: inline-flex; gap: 5px; align-items: center; }
.kp-lsend-links { display: grid; gap: 8px; margin-top: 10px; }
.kp-lsend-link { display: flex; justify-content: space-between; gap: 10px; padding: 9px 12px; border: 1px solid var(--kp-border, #e3e8f2); border-radius: 9px; background: #fbfcfe; align-items: center; }
.kp-lsend-link.is-dead { opacity: .55; }
.kp-lsend-link-main { display: grid; gap: 2px; min-width: 0; }
.kp-lsend-link-side { display: flex; gap: 6px; align-items: center; flex-shrink: 0; }
.kp-lsend-url { width: 170px; font-size: 11px; padding: 6px 8px; border: 1px solid var(--kp-border, #d5dcea); border-radius: 6px; color: #5b6880; cursor: copy; }
.kp-lender-row { margin-bottom: 10px; }
/* public deal room */
.kp-lroom-wrap { max-width: 860px; margin: 40px auto; padding: 0 20px; }
.kp-lroom-head { margin-bottom: 18px; }
.kp-lroom-head h1 { font-size: 28px; letter-spacing: -.5px; margin: 4px 0; }
.kp-lroom-for { color: #5b6880; font-size: 13.5px; }
.kp-lroom-card { margin-bottom: 16px; }
.kp-lroom-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 14px; }
.kp-lroom-stats > div { display: grid; gap: 2px; }
.kp-lroom-stats span { font-size: 10.5px; text-transform: uppercase; letter-spacing: 1px; color: #8a94ab; font-weight: 700; }
.kp-lroom-stats b { font-size: 19px; letter-spacing: -.3px; }
.kp-lroom-foot { margin-top: 12px; }

/* WL22.1 — deal edit + segments */
.kp-acq-edit { margin-top: 12px; border-top: 1px dashed var(--kp-border, #e3e8f2); padding-top: 10px; }
.kp-acq-edit-toggle { cursor: pointer; font-size: 12.5px; font-weight: 600; color: var(--kp-blue, #0e1f4b); list-style: none; }
.kp-acq-edit-toggle::-webkit-details-marker { display: none; }
.kp-acq-edit-toggle::before { content: '✎ '; }
.kp-acq-editform { margin-top: 10px; max-width: 640px; }

/* ============ WL23 — photos + scope of work ============ */
.kp-acq-photos-toggle::before { content: '📷 '; }
.kp-acq-sow-toggle::before { content: '🔨 '; }
.kp-acq-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 8px; margin: 10px 0; }
.kp-acq-thumb { position: relative; border-radius: 8px; overflow: hidden; border: 1px solid var(--kp-border, #e3e8f2); aspect-ratio: 4/3; }
.kp-acq-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kp-acq-thumb-del { position: absolute; top: 4px; right: 4px; }
.kp-acq-thumb-del button { width: 20px; height: 20px; border-radius: 50%; border: 0; background: rgba(10, 15, 30, .65); color: #fff; font-size: 13px; line-height: 1; cursor: pointer; }
.kp-acq-photoform { margin-top: 8px; display: flex; gap: 8px; align-items: center; }
.kp-sow-summary { display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center; font-size: 12.5px; color: #5b6880; margin: 10px 0; }
.kp-sow-summary b { color: #17233f; }
.kp-sow-over { color: #b42318 !important; }
.kp-sow-under { color: #1a7f4b !important; }
.kp-sow-list { display: grid; gap: 6px; margin-bottom: 10px; }
.kp-sow-row { display: flex; justify-content: space-between; gap: 10px; align-items: center; padding: 8px 10px; border: 1px solid var(--kp-border, #e3e8f2); border-radius: 8px; background: #fbfcfe; flex-wrap: wrap; }
.kp-sow-row.kp-sow-complete { opacity: .65; }
.kp-sow-row.kp-sow-complete .kp-sow-main strong { text-decoration: line-through; }
.kp-sow-main { display: grid; gap: 2px; min-width: 180px; }
.kp-sow-fields { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.kp-sow-fields select, .kp-sow-fields input { padding: 6px 8px; border: 1px solid var(--kp-border, #d5dcea); border-radius: 6px; font-size: 12px; }
.kp-sow-fields input[name="contractor"] { width: 110px; }
.kp-sow-fields input[name="awarded_cost"], .kp-sow-fields input[name="actual_cost"] { width: 84px; }
.kp-sow-del { border: 0; background: none; color: #b42318; font-size: 16px; cursor: pointer; padding: 2px 6px; }
.kp-sow-addform { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin-top: 4px; }
.kp-sow-addform input[name="item"] { flex: 1; min-width: 180px; }
.kp-sow-addform input, .kp-sow-addform select { padding: 7px 9px; border: 1px solid var(--kp-border, #d5dcea); border-radius: 7px; font-size: 12.5px; }
.kp-sow-addform input[name="est_cost"] { width: 84px; }
.kp-sow-addform input[name="est_days"] { width: 70px; }
/* deal room gallery */
.kp-lroom-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.kp-lroom-gallery img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 9px; border: 1px solid var(--kp-border, #e3e8f2); }

/* ============ WL24 — bids, work files ============ */
.kp-sow-bid { display: block; font-size: 11.5px; color: #4b586e; background: #eef3fb; border: 1px solid #d8e2f3; border-radius: 6px; padding: 3px 8px; margin-top: 4px; }
.kp-sow-bid b { color: #0e1f4b; }
.kp-sow-award { border: 0; background: #0e1f4b; color: #fff; border-radius: 5px; padding: 2px 9px; font-size: 11px; cursor: pointer; margin-left: 6px; }
.kp-sow-bid em { color: #1a7f4b; font-style: normal; font-weight: 700; margin-left: 6px; }
.kp-acq-work-toggle::before { content: '🧾 '; }
.kp-worklist { display: grid; gap: 6px; margin: 10px 0; }
.kp-workrow { display: flex; gap: 10px; align-items: center; font-size: 12.5px; flex-wrap: wrap; }
.kp-workrow a { color: var(--kp-blue, #0e1f4b); font-weight: 600; text-decoration: none; }
.kp-work-kind { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .6px; padding: 2px 7px; border-radius: 999px; }
.kp-work-invoice { background: #fff4e0; color: #9a6a00; }
.kp-work-photo { background: #e8f2ff; color: #1e4fd6; }
.kp-work-other { background: #eef1f6; color: #5b6880; }
/* contractor room */
.kp-broom-bidrow, .kp-broom-workrow { flex-wrap: wrap; }
.kp-broom-bidfields { display: flex; gap: 6px; flex-wrap: wrap; }
.kp-broom-bidfields input { padding: 7px 9px; border: 1px solid var(--kp-border, #d5dcea); border-radius: 7px; font-size: 12.5px; }
.kp-broom-bidfields input[name^="bid["] { width: 110px; }
.kp-broom-bidfields input[name^="bid_days"] { width: 70px; }
.kp-broom-bidfields input[name^="bid_note"] { width: 160px; }
.kp-broom-submit { margin-top: 14px; }
.kp-broom-upform { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.kp-broom-upform select, .kp-broom-upform input[type="file"] { font-size: 12px; }

/* WL24.1 — bench edit */
.kp-bench-edit { width: 100%; order: 10; }

/* WL25 — plan banner */
.kp-plan-banner { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 14px; border-left: 4px solid var(--kp-navy); }
.kp-plan-banner-text { display: grid; gap: 2px; }
.kp-plan-banner-text span { font-size: 12.5px; color: #5b6880; }
.kp-plan-upgrade { border-left: 4px solid var(--kp-navy); }

/* WL25.1 — bench activity + docs */
.kp-bench-activity { width: 100%; order: 9; border-top: 1px dashed var(--kp-border, #e3e8f2); margin-top: 10px; padding-top: 8px; display: grid; gap: 6px; }
.kp-bench-activity-title { font-size: 10.5px; text-transform: uppercase; letter-spacing: 1px; color: #8a94ab; font-weight: 700; }
.kp-bench-actrow { display: grid; gap: 1px; font-size: 12.5px; }
.kp-bench-actrow a { color: var(--kp-blue, #0e1f4b); text-decoration: none; }
.kp-bench-docs-toggle::before { content: '📁 '; }

/* WL25.2 — bench jump links + target highlight */
.kp-bench-jump { color: var(--kp-blue, #0e1f4b); text-decoration: underline; text-decoration-style: dotted; text-underline-offset: 2px; }
.kp-lender-row:target { border-color: var(--kp-navy); box-shadow: 0 0 0 3px rgba(20, 44, 79, .18); animation: kpBenchFlash 1.6s ease; }
@keyframes kpBenchFlash { 0% { background: #eef3ff; } 100% { background: #fff; } }

/* WL25.4 — bench full cards */
.kp-bench-card { padding: 0; overflow: hidden; }
.kp-bench-summary { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 16px 20px; cursor: pointer; list-style: none; }
.kp-bench-summary::-webkit-details-marker { display: none; }
.kp-bench-card[open] .kp-bench-summary { border-bottom: 1px solid var(--kp-border, #e3e8f2); background: #fbfcfe; }
.kp-bench-who { display: grid; gap: 3px; min-width: 0; }
.kp-bench-who strong { font-size: 15px; }
.kp-bench-side { display: flex; gap: 8px; align-items: center; flex-shrink: 0; }
.kp-bench-chev { color: #8a94ab; transition: transform .2s ease; }
.kp-bench-card[open] .kp-bench-chev { transform: rotate(180deg); }
.kp-bench-body { padding: 18px 20px; }
.kp-bench-cols { display: grid; grid-template-columns: 1.1fr 1fr; gap: 26px; align-items: start; }
.kp-bench-col { display: grid; gap: 18px; }
.kp-bench-section h4 { font-size: 11px; text-transform: uppercase; letter-spacing: 1.2px; color: #8a94ab; margin: 0 0 8px; }
.kp-bench-kv { display: grid; gap: 6px; }
.kp-bench-kv span { display: grid; grid-template-columns: 70px 1fr; gap: 10px; font-size: 12.5px; color: #8a94ab; }
.kp-bench-kv b { color: #17233f; font-weight: 500; word-break: break-word; }
.kp-bench-kv a { color: var(--kp-blue, #0e1f4b); }
.kp-bench-upform { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin-top: 8px; }
.kp-bench-upform select, .kp-bench-upform input[type="text"] { padding: 7px 9px; border: 1px solid var(--kp-border, #d5dcea); border-radius: 7px; font-size: 12px; }
.kp-bench-upform input[type="file"] { font-size: 12px; }
.kp-bench-card:target { border-color: var(--kp-navy); box-shadow: 0 0 0 3px rgba(20, 44, 79, .18); }
@media (max-width: 900px) { .kp-bench-cols { grid-template-columns: 1fr; } }

/* wl25.5 — attachment viewer modal */
.kp-viewer { position: fixed; inset: 0; z-index: 12050; display: flex; align-items: center; justify-content: center; padding: 22px; }
.kp-viewer[hidden] { display: none; }
.kp-viewer-backdrop { position: absolute; inset: 0; background: rgba(9, 14, 26, .72); backdrop-filter: blur(3px); }
.kp-viewer-panel { position: relative; display: flex; flex-direction: column; overflow: hidden; width: min(980px, 96vw); height: min(86vh, 920px); background: #fff; border-radius: 14px; box-shadow: 0 24px 70px rgba(9, 14, 26, .45); }
.kp-viewer-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 16px; border-bottom: 1px solid var(--kp-border, #d5dcea); }
.kp-viewer-title { font-weight: 600; font-size: 13.5px; color: #17233c; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kp-viewer-actions { display: flex; align-items: center; gap: 10px; flex: none; }
/* wl75 — Save and Print sit beside the open-in-new-tab link. Same weight as
 * each other so neither reads as the primary thing to do; the primary thing
 * to do is read the document. */
.kp-viewer-act {
    display: inline-flex;
    align-items: center;
    padding: 5px 11px;
    border: 1px solid #cfd8e8;
    border-radius: 7px;
    background: #fff;
    color: #17233c;
    font-size: 12.5px;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
    font-family: inherit;
}
.kp-viewer-act:hover { border-color: var(--kp-navy); color: var(--kp-navy); }
.kp-viewer-open { font-size: 12.5px; font-weight: 600; color: var(--kp-navy); text-decoration: none; }
.kp-viewer-open:hover { text-decoration: underline; }
.kp-viewer-x { border: 0; background: transparent; font-size: 24px; line-height: 1; cursor: pointer; color: #5a6478; padding: 0 4px; }
.kp-viewer-x:hover { color: #17233c; }
/* wl76 — client legal identity & qualification pack. */
.kp-portal .kp-lg-status { border: 1px solid var(--kp-border, #d5dcea); border-left: 3px solid var(--kp-navy); border-radius: 10px; padding: 12px 14px; margin: 0 0 16px; background: #f8fafd; }
.kp-portal .kp-lg-status p { margin: 0 0 6px; font-size: 13.5px; }
.kp-portal .kp-lg-status p:last-child { margin-bottom: 0; }
.kp-portal .kp-lg-missing { margin: 4px 0 8px; padding-left: 18px; font-size: 13px; color: #344054; }
.kp-portal .kp-lg-missing li { margin: 2px 0; }
.kp-portal .kp-lg-note { border-top: 1px solid #e3e8f2; padding-top: 8px; margin-top: 10px !important; }
.kp-portal .kp-lg-form { margin-bottom: 6px; }
.kp-portal .kp-lg-docs { display: grid; gap: 10px; margin-top: 10px; }
.kp-portal .kp-lg-doc {
    display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: start;
    border: 1px solid var(--kp-border, #d5dcea); border-radius: 10px; padding: 12px 14px; background: #fff;
}
.kp-portal .kp-lg-doc.is-missing { border-style: dashed; background: #fcfdff; }
.kp-portal .kp-lg-doc-main { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.kp-portal .kp-lg-doc-main strong { font-size: 13.5px; color: #17233c; }
.kp-portal .kp-lg-doc-file { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; margin-top: 4px; }
.kp-portal .kp-lg-doc-file a { font-size: 13px; font-weight: 600; color: var(--kp-navy); text-decoration: none; }
.kp-portal .kp-lg-doc-file a:hover { text-decoration: underline; }
.kp-portal .kp-lg-doc-note { font-size: 12.5px; color: #b42318; margin-top: 4px; }
.kp-portal .kp-lg-doc-side { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.kp-portal .kp-lg-up { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.kp-portal .kp-lg-up input[type="file"] { font-size: 11.5px; max-width: 190px; }
.kp-portal .kp-lg-history { margin-top: 12px; font-size: 13px; }
.kp-portal .kp-lg-history summary { cursor: pointer; font-weight: 600; font-size: 12.5px; color: #5a6478; }
.kp-portal .kp-lg-history ul { margin: 8px 0 0; padding-left: 18px; }
.kp-portal .kp-lg-history li { margin: 4px 0; }
@media (max-width: 700px) {
    .kp-portal .kp-lg-doc { grid-template-columns: 1fr; }
    .kp-portal .kp-lg-doc-side { align-items: flex-start; }
    .kp-portal .kp-lg-up { justify-content: flex-start; }
}


/* Operator side. */
.kp-portal .kp-lgp-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 14px; }
.kp-portal .kp-lgp-head h3 { margin: 2px 0 4px; font-size: 18px; color: #17233c; }
.kp-portal .kp-lgp-sug { border-left: 3px solid var(--kp-navy); }
.kp-portal .kp-lgp-sug-level { margin: 4px 0 8px; font-size: 15px; color: #17233c; }
.kp-portal .kp-lgp-reasons { margin: 0 0 10px; padding-left: 18px; font-size: 13px; color: #344054; }
.kp-portal .kp-lgp-reasons li { margin: 3px 0; }
.kp-portal .kp-lgp-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 14px; }
.kp-portal .kp-lgp-docs { display: grid; gap: 8px; margin-top: 8px; }
.kp-portal .kp-lgp-doc {
    display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: center;
    border: 1px solid var(--kp-border, #d5dcea); border-radius: 10px; padding: 10px 12px;
}
.kp-portal .kp-lgp-doc-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.kp-portal .kp-lgp-doc-main a { font-size: 13px; font-weight: 600; color: var(--kp-navy); text-decoration: none; }
.kp-portal .kp-lgp-doc-main a:hover { text-decoration: underline; }
.kp-portal .kp-lgp-doc-act { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.kp-portal .kp-lgp-doc-act select, .kp-portal .kp-lgp-doc-act input[type="text"] {
    padding: 6px 8px; border: 1px solid var(--kp-border, #d5dcea); border-radius: 7px; font-size: 12.5px; font-family: inherit;
}
.kp-portal .kp-lgp-doc-act input[type="text"] { min-width: 180px; }
.kp-portal .kp-lgp-decide { margin-top: 14px; }
@media (max-width: 700px) {
    .kp-portal .kp-lgp-doc { grid-template-columns: 1fr; }
}

/* wl75 — the referral's location links out to a map. */
.kp-portal .kp-crm-refmap { margin-left: 8px; font-size: 11.5px; font-weight: 600; color: var(--kp-navy); text-decoration: none; white-space: nowrap; }
.kp-portal .kp-crm-refmap:hover { text-decoration: underline; }
@media (max-width: 640px) {
    .kp-viewer-actions { gap: 6px; }
    .kp-viewer-open { display: none; }
}
.kp-viewer-body { flex: 1; display: flex; align-items: center; justify-content: center; overflow: auto; background: #10182b; }
.kp-viewer-body img { max-width: 100%; max-height: 100%; object-fit: contain; }
.kp-viewer-body iframe { width: 100%; height: 100%; border: 0; background: #fff; }
body.kp-viewer-lock { overflow: hidden; }
@media (max-width: 700px) { .kp-viewer { padding: 8px; } .kp-viewer-panel { width: 100vw; height: 92vh; border-radius: 10px; } }

/* wl26 — copilot */
.kp-cop-fab { position: fixed; right: 22px; bottom: 22px; z-index: 1100; display: flex; align-items: center; gap: 8px; padding: 11px 18px; border: 0; border-radius: 999px; background: linear-gradient(135deg, var(--kp-navy), #7a3bff); color: #fff; font-weight: 700; font-size: 13.5px; cursor: pointer; box-shadow: 0 10px 28px rgba(20, 44, 79, .4); }
.kp-cop-fab:hover { transform: translateY(-1px); box-shadow: 0 14px 32px rgba(20, 44, 79, .5); }
.kp-cop-fab svg { width: 18px; height: 18px; fill: #fff; }
.kp-cop-panel { position: fixed; right: 22px; bottom: 78px; z-index: 1150; display: flex; flex-direction: column; width: min(400px, calc(100vw - 32px)); height: min(560px, calc(100vh - 120px)); background: #fff; border: 1px solid var(--kp-border, #d5dcea); border-radius: 16px; box-shadow: 0 24px 60px rgba(9, 14, 26, .3); overflow: hidden; }
.kp-cop-panel[hidden] { display: none; }
.kp-cop-head { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-bottom: 1px solid var(--kp-border, #d5dcea); background: #f6f8fd; }
.kp-cop-head strong { font-size: 14px; color: #17233c; }
.kp-cop-remaining { margin-left: auto; font-size: 11.5px; color: #5a6478; }
.kp-cop-msgs { flex: 1; overflow-y: auto; padding: 14px; display: flex; flex-direction: column; gap: 10px; background: #fbfcff; }
.kp-cop-msg { max-width: 88%; padding: 9px 12px; border-radius: 12px; font-size: 13px; line-height: 1.5; white-space: pre-wrap; word-wrap: break-word; }
.kp-cop-ai { align-self: flex-start; background: #eef2fb; color: #17233c; border-bottom-left-radius: 4px; }
.kp-cop-user { align-self: flex-end; background: var(--kp-navy); color: #fff; border-bottom-right-radius: 4px; }
.kp-cop-pending { opacity: .55; animation: kp-cop-pulse 1.2s ease-in-out infinite; }
@keyframes kp-cop-pulse { 50% { opacity: .25; } }
.kp-cop-form { display: flex; align-items: flex-end; gap: 8px; padding: 10px 12px; border-top: 1px solid var(--kp-border, #d5dcea); }
.kp-cop-form textarea { flex: 1; resize: none; border: 1px solid var(--kp-border, #d5dcea); border-radius: 10px; padding: 8px 10px; font-size: 13px; font-family: inherit; }
.kp-cop-attach { cursor: pointer; font-size: 17px; line-height: 1; position: relative; display: flex; flex-direction: column; align-items: center; }
.kp-cop-attach input[type="file"] { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; }
.kp-cop-filename { font-size: 9px; max-width: 54px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--kp-navy); font-style: normal; }
.kp-cop-disclaimer { margin: 0; padding: 6px 14px 10px; font-size: 10.5px; color: #8a93a6; text-align: center; }
@media (max-width: 700px) { .kp-cop-panel { right: 8px; bottom: 70px; } .kp-cop-fab { right: 14px; bottom: 14px; } }

/* wl27 — outbox + form fill */
.kp-out-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 18px; align-items: start; margin-bottom: 18px; }
@media (max-width: 1000px) { .kp-out-layout { grid-template-columns: 1fr; } }
.kp-out-attach { border: 1px solid var(--kp-border, #d5dcea); border-radius: 10px; padding: 8px 12px; margin: 6px 0; }
.kp-out-attach summary { cursor: pointer; font-weight: 600; font-size: 13px; }
.kp-out-attach-list { display: flex; flex-direction: column; gap: 4px; padding-top: 8px; max-height: 220px; overflow-y: auto; }
.kp-out-attach-list strong { font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: #5a6478; margin-top: 6px; }
.kp-out-attach-item { display: flex; gap: 7px; align-items: center; font-size: 12.5px; }
.kp-ff-table { width: 100%; border-collapse: collapse; margin: 10px 0; }
.kp-ff-table td { padding: 6px 8px; border-bottom: 1px solid #edf1f8; }
.kp-ff-name { width: 38%; font-weight: 600; font-size: 12.5px; color: #17233c; }
.kp-ff-table input[type="text"] { width: 100%; padding: 7px 9px; border: 1px solid var(--kp-border, #d5dcea); border-radius: 7px; font-size: 12.5px; }
.kp-ff-actions { display: flex; gap: 10px; align-items: center; margin-top: 4px; }

/* wl28 — documents tab + sent-mail viewer */
.kp-doc-grp { margin: 14px 0 6px; font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: #5a6478; }
.kp-maillist { display: flex; flex-direction: column; gap: 8px; }
.kp-mailrow { border: 1px solid var(--kp-border, #d5dcea); border-radius: 10px; background: #fff; }
.kp-mailrow > summary { display: flex; align-items: center; gap: 10px; padding: 10px 14px; cursor: pointer; list-style: none; }
.kp-mailrow > summary::-webkit-details-marker { display: none; }
.kp-mail-sub { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.kp-mailrow[open] > summary { border-bottom: 1px solid #edf1f8; }
.kp-mailrow[open] .kp-bench-chev { transform: rotate(180deg); }
.kp-mail-body { padding: 12px 16px 14px; }
.kp-mail-text { font-size: 13px; line-height: 1.55; color: #17233c; background: #fbfcff; border: 1px solid #edf1f8; border-radius: 8px; padding: 12px 14px; margin: 8px 0; white-space: normal; }

/* wl28.1 — email action on document rows + inline fill form */
.kp-doc-email { margin-left: auto; flex: none; font-size: 12px; font-weight: 600; color: var(--kp-navy); text-decoration: none; white-space: nowrap; }
.kp-doc-email:hover { text-decoration: underline; }
.kp-ff-inline .kp-acq-form-row { align-items: flex-end; }

/* wl31 — Integrations page (webhooks) */
.kp-portal .kp-button-small { padding: 6px 12px; font-size: 12px; }
.kp-portal .kp-badge-good { background: #DFF5E7; color: #157347; }
.kp-portal .kp-badge-bad { background: #FBE3E4; color: #B42318; }
.kp-wh-steps { margin: 12px 0; padding-left: 20px; }
.kp-wh-steps li { margin-bottom: 6px; }
.kp-wh-table td { vertical-align: top; }
.kp-wh-url { word-break: break-all; display: inline-block; max-width: 320px; }
.kp-wh-secret { font-size: 12px; word-break: break-all; display: inline-block; margin-right: 6px; }
.kp-wh-actions { white-space: nowrap; }
.kp-wh-actions form { display: inline-block; margin: 0 2px 4px 0; }
.kp-wh-danger { color: #B42318; }
.kp-wh-events { border: 1px solid #E4E7EC; border-radius: 10px; padding: 12px 16px; margin: 12px 0; }
.kp-wh-events legend { font-size: 13px; font-weight: 600; padding: 0 6px; }
.kp-wh-event { display: flex; gap: 8px; align-items: baseline; margin: 4px 0; font-size: 14px; }
.kp-wh-event code { font-size: 12px; color: #7A8194; }
.kp-wh-add { margin-top: 16px; border-top: 1px solid #E4E7EC; padding-top: 16px; }

/* wl33 — PWA install button in the sidebar */
.kp-install-app {
    display: flex; align-items: center; gap: 8px; width: calc(100% - 32px); margin: 10px 16px;
    padding: 10px 14px; border-radius: 10px; border: 1px solid rgba(20, 44, 79, 0.35);
    background: rgba(20, 44, 79, 0.08); color: var(--kp-navy); font-weight: 600; font-size: 13.5px;
    cursor: pointer; transition: all .2s ease;
}
.kp-install-app:hover { background: rgba(20, 44, 79, 0.15); border-color: var(--kp-navy); }
.kp-install-app[hidden] { display: none; }

/* wl34 — sending identity card */
.kp-sid-presets { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.kp-sid-actions { display: flex; gap: 8px; margin-top: 4px; }
.kp-sid-actions form { display: inline-block; }
.kp-sid-error { background: #FBE3E4; color: #B42318; border-radius: 10px; padding: 10px 14px; font-size: 13.5px; margin-bottom: 12px; word-break: break-word; }

/* wl34.1 — edition switcher (mirrors locale switcher, accent border) */
.kp-edition-switcher select { border-color: rgba(20, 44, 79, 0.4); font-weight: 600; }

/* wl34.2 — edition switcher in the desktop topbar (sidebar copy stays for the mobile drawer) */
.kp-portal .kp-edition-topbar select { border-color: rgba(20, 44, 79, 0.45); color: #143960; font-weight: 700; max-width: 240px; }

/* wl35 — Sign area + external ceremony */
.kp-sg-warn { background: #FFF6E5; border-left: 4px solid #E5A50A; }
.kp-sg-inputs { border: 1px solid #E4E7EC; border-radius: 10px; padding: 14px 16px; margin: 14px 0; }
.kp-sg-inputs legend { font-size: 13px; font-weight: 700; padding: 0 6px; }
.kp-sd-wrap { max-width: 860px; margin: 0 auto; padding: 24px 16px; }
.kp-sd-title { margin: 6px 0 4px; }
.kp-sd-doc { border: 1px solid #E4E7EC; border-radius: 12px; padding: 26px 30px; margin: 18px 0; max-height: 480px; overflow-y: auto; background: #fff; font-size: 14.5px; line-height: 1.65; }
.kp-sd-doc h2 { font-size: 15px; margin: 18px 0 6px; }
.kp-sd-form { display: flex; flex-direction: column; gap: 12px; }
.kp-sd-check { display: flex; gap: 10px; align-items: flex-start; font-size: 14.5px; cursor: pointer; }
.kp-sd-check input { margin-top: 3px; }
.kp-sd-check-err span { color: #B42318; }
.kp-sd-typed span { display: block; font-size: 13px; font-weight: 600; margin-bottom: 4px; }
.kp-sd-typed input { width: 100%; max-width: 380px; padding: 10px 12px; border: 1px solid #D0D5DD; border-radius: 8px; font-size: 18px; font-style: italic; }
.kp-sd-fielderr { display: block; color: #B42318; font-size: 12.5px; font-style: normal; margin-top: 3px; }
.kp-sd-submit { align-self: flex-start; padding: 12px 28px; }
.kp-sd-done { text-align: center; padding: 30px 0; }
.kp-sd-error { background: #FBE3E4; color: #B42318; border-radius: 10px; padding: 10px 14px; }

/* wl35.1 — recipient-completed inline fields in the ceremony */
.kp-sd-inline-input {
    display: inline-block; min-width: 160px; max-width: 100%; padding: 4px 8px;
    border: 1.5px solid var(--kp-navy); border-radius: 6px; background: #F0F5FF;
    font: inherit; font-size: 13.5px; color: #143960; margin: 0 2px;
}
.kp-sd-inline-input:focus { outline: 2px solid rgba(20, 44, 79, 0.3); background: #fff; }
.kp-sd-pending { background: #F0F5FF; border-left: 4px solid var(--kp-navy); border-radius: 8px; padding: 10px 14px; margin-bottom: 4px; font-size: 14px; }

/* wl35.3 — sealed-PDF inline preview on the ceremony done screen */
.kp-sd-preview { margin: 18px 0; border: 1px solid #E4E7EC; border-radius: 12px; overflow: hidden; }
.kp-sd-preview iframe { display: block; width: 100%; height: 520px; border: 0; }

/* wl36 — Settings page */
.kp-settings-fold summary { cursor: pointer; font-weight: 700; font-size: 14px; color: var(--kp-navy); padding: 6px 0; user-select: none; }
.kp-settings-fold[open] summary { margin-bottom: 8px; }
.kp-sid-pointer p a, .kp-sg-legal-summary p a { font-weight: 600; color: var(--kp-navy); text-decoration: none; white-space: nowrap; }
.kp-sid-pointer p a:hover, .kp-sg-legal-summary p a:hover { text-decoration: underline; }

/* wl36.1 — Settings profile panel */
.kp-setpanel { display: grid; grid-template-columns: 260px 1fr; gap: 20px; align-items: start; }
.kp-setpanel-rail { text-align: center; position: sticky; top: 20px; }
.kp-setpanel-avatar {
    width: 96px; height: 96px; border-radius: 50%; margin: 6px auto 12px;
    background: linear-gradient(135deg, var(--kp-navy) 0%, #1e4fd6 100%); color: #fff;
    display: flex; align-items: center; justify-content: center; font-size: 40px; font-weight: 700;
}
.kp-setpanel-who { display: flex; flex-direction: column; gap: 4px; align-items: center; margin-bottom: 16px; }
.kp-setpanel-who strong { font-size: 16px; }
.kp-setpanel-nav { display: flex; flex-direction: column; gap: 2px; text-align: left; }
.kp-setpanel-nav button {
    appearance: none; border: 0; background: transparent; text-align: left; cursor: pointer;
    padding: 10px 14px; border-radius: 8px; font: inherit; font-size: 14px; font-weight: 600; color: #444B5A;
}
.kp-setpanel-nav button:hover { background: #F2F5FB; }
.kp-setpanel-nav button.is-active { background: #EAF0FF; color: #1e4fd6; }
.kp-setpanel-section { display: none; }
.kp-setpanel-section.is-active { display: block; }
.kp-setpanel-sub { border-top: 1px solid #EEF0F3; margin-top: 18px; padding-top: 14px; }
.kp-setpanel-sub h3 { font-size: 14px; margin: 0 0 8px; }
.kp-setpanel-lang select { max-width: 260px; padding: 8px 10px; border: 1px solid #D0D5DD; border-radius: 8px; font: inherit; }
.kp-setpanel-security { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.kp-setpanel-session { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
@media (max-width: 960px) { .kp-setpanel { grid-template-columns: 1fr; } .kp-setpanel-rail { position: static; } .kp-setpanel-security { grid-template-columns: 1fr; } }

/* wl36.1 — Getting Started checklist */
.kp-gs-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.kp-gs-head h2 { margin: 0 0 4px; }
.kp-gs-progress { display: flex; align-items: center; gap: 12px; margin: 12px 0 4px; }
.kp-gs-bar { flex: 1; height: 8px; border-radius: 999px; background: #EEF0F3; overflow: hidden; }
.kp-gs-bar span { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--kp-navy), #33e0c8); transition: width .4s ease; }
.kp-gs-tour a { font-weight: 700; color: var(--kp-navy); text-decoration: none; }
.kp-gs-list { list-style: none; margin: 10px 0 0; padding: 0; }
.kp-gs-list li { display: flex; align-items: center; gap: 14px; padding: 13px 4px; border-top: 1px solid #F2F3F6; }
.kp-gs-check {
    width: 26px; height: 26px; border-radius: 50%; flex: none;
    border: 2px solid #D0D5DD; color: #fff; font-size: 14px; font-weight: 700;
    display: inline-flex; align-items: center; justify-content: center;
}
.kp-gs-list li.is-done .kp-gs-check { background: #12B76A; border-color: #12B76A; }
.kp-gs-list li.is-done .kp-gs-copy { opacity: .55; }
.kp-gs-list li.is-done .kp-gs-copy strong { text-decoration: line-through; }
.kp-gs-copy { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.kp-gs-copy span { font-size: 13.5px; color: #667085; }
.kp-gs-list .kp-button { flex: none; }

/* wl36.2 — Getting Started redesign: constrained width, tight rows, drawers */
.kp-gs-wrap { display: grid; grid-template-columns: minmax(0, 780px) 280px; gap: 20px; align-items: start; margin-bottom: 20px; }
@media (max-width: 1100px) { .kp-gs-wrap { grid-template-columns: 1fr; } .kp-gs-side { display: none; } }
.kp-gs { margin-bottom: 0; }
.kp-gs-x { appearance: none; border: 0; background: transparent; font-size: 22px; line-height: 1; color: #98A2B3; cursor: pointer; padding: 2px 6px; border-radius: 6px; }
.kp-gs-x:hover { color: #344054; background: #F2F4F7; }
.kp-gs-list li { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 12px 0; }
.kp-gs-check { appearance: none; cursor: pointer; background: #fff; padding: 0; }
.kp-gs-check span { opacity: 0; }
.kp-gs-list li.is-done .kp-gs-check span { opacity: 1; }
.kp-gs-check:hover { border-color: #12B76A; }
.kp-gs-cta { justify-self: end; min-width: 128px; text-align: center; }
.kp-gs-side .kp-card { margin-bottom: 14px; }
.kp-gs-tourcard h3, .kp-gs-helpcard h3 { margin: 4px 0 8px; font-size: 15px; }

/* slide-in drawer (Flowlu-style) */
.kp-gs-drawer-backdrop { position: fixed; inset: 0; background: rgba(10, 21, 48, 0.45); z-index: 9998; }
.kp-gs-drawer {
    position: fixed; top: 0; right: 0; bottom: 0; width: min(560px, 94vw); z-index: 9999;
    background: #fff; box-shadow: -18px 0 50px rgba(6, 13, 31, 0.25);
    transform: translateX(100%); transition: transform .25s ease; display: flex; flex-direction: column;
}
.kp-gs-drawer.is-open { transform: translateX(0); }
.kp-gs-drawer-bar { display: flex; justify-content: space-between; align-items: center; padding: 18px 24px; border-bottom: 1px solid #EEF0F3; }
.kp-gs-drawer-bar h2 { margin: 0; font-size: 18px; }
.kp-gs-drawer-body { padding: 20px 24px; overflow-y: auto; }
.kp-gs-drawer-body .kp-card { box-shadow: none; border: 0; padding: 0; }

/* wl36.4 — center the Getting Started experience on the page */
.kp-gs-wrap { justify-content: center; margin: 4vh auto 20px; max-width: 1080px; }

/* wl36.5 — trial period chip on the checklist (Flowlu-style) */
.kp-gs-head-side { display: flex; align-items: center; gap: 10px; }
.kp-gs-trial {
    display: inline-flex; align-items: center; gap: 8px; white-space: nowrap;
    border: 1px solid #E4E7EC; border-radius: 999px; padding: 7px 14px;
    font-size: 13px; font-weight: 600; color: #344054; background: #fff;
}
.kp-gs-trial i { width: 8px; height: 8px; border-radius: 50%; background: #12B76A; box-shadow: 0 0 0 3px rgba(18, 183, 106, 0.2); }

/* wl36.6 — completion pop-up (Flowlu-style "You're all set", upsell not discount) */
.kp-gs-pop-backdrop {
    position: fixed; inset: 0; z-index: 10000; background: rgba(10, 21, 48, 0.55);
    display: flex; align-items: center; justify-content: center; padding: 24px;
    opacity: 0; transition: opacity .25s ease;
}
.kp-gs-pop-backdrop[hidden],
.kp-gs-drawer-backdrop[hidden],
.kp-gs-drawer[hidden] { display: none !important; }
.kp-gs-pop-backdrop.is-open { opacity: 1; }
.kp-gs-pop {
    position: relative; display: flex; gap: 28px; align-items: center;
    width: min(660px, 100%); background: #fff; border-radius: 16px; padding: 36px 40px;
    box-shadow: 0 24px 64px rgba(6, 13, 31, 0.3);
    transform: translateY(16px) scale(.97); transition: transform .3s cubic-bezier(.2, .9, .3, 1.12);
}
.kp-gs-pop-backdrop.is-open .kp-gs-pop { transform: none; }
.kp-gs-pop > .kp-gs-x { position: absolute; top: 14px; right: 16px; }
.kp-gs-pop-main { min-width: 0; }
.kp-gs-pop-main h2 { margin: 0 0 8px; font-size: 24px; }
.kp-gs-pop-main > p { margin: 0 0 18px; color: #475467; }
.kp-gs-pop-offer { border: 1px solid #E4E7EC; background: #F8FAFC; border-radius: 12px; padding: 16px 18px; margin-bottom: 20px; }
.kp-gs-pop-offer .kp-eyebrow { margin: 0 0 2px; }
.kp-gs-pop-offer strong { display: block; margin: 0 0 6px; font-size: 15px; }
.kp-gs-pop-offer p { margin: 0; color: #475467; font-size: 14px; line-height: 1.55; }
.kp-gs-pop-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.kp-gs-pop-art {
    flex: 0 0 96px; height: 96px; border-radius: 20px;
    background: linear-gradient(135deg, #EAF0FF, #DDF7F1);
    display: flex; align-items: center; justify-content: center;
    font-size: 40px; color: var(--kp-navy);
}
@media (max-width: 640px) {
    .kp-gs-pop { padding: 28px 22px; }
    .kp-gs-pop-art { display: none; }
}

/* wl37 — Doc Studio: Documents redesign + Flowlu-style document editor */
.kp-docs-wrap { max-width: 1160px; margin: 0 auto; }
.kp-docs-wrap .kp-card { margin-bottom: 18px; }

/* template gallery */
.kp-tpl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; margin-top: 14px; }
.kp-tpl-card {
    display: flex; flex-direction: column; gap: 8px; align-items: flex-start;
    border: 1px solid #E4E7EC; border-radius: 12px; padding: 16px 18px; background: #FCFDFE;
    transition: box-shadow .15s ease, border-color .15s ease;
}
.kp-tpl-card:hover { border-color: #b9c6e4; box-shadow: 0 6px 18px rgba(16, 24, 40, 0.06); }
.kp-tpl-card h3 { margin: 0; font-size: 15px; line-height: 1.35; }
.kp-tpl-card p { margin: 0; font-size: 13px; color: #667085; flex: 1; }
.kp-tpl-card form { margin-top: 4px; }
.kp-tpl-kind { font-size: 11px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase; border-radius: 999px; padding: 3px 10px; }
.kp-tpl-kind-letter { background: #EAF0FF; color: var(--kp-navy); }
.kp-tpl-kind-guide { background: #E6F7F1; color: #0E9F6E; }
.kp-docs-disclaimer { margin-top: 14px; font-style: italic; }

/* created docs list */
.kp-docrow { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 12px; }
.kp-docrow-title { font-weight: 600; text-decoration: none; }
.kp-docrow-actions { display: flex; gap: 6px; }
.kp-doc-status, .kp-doce-status {
    font-size: 11px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase;
    border-radius: 6px; padding: 3px 9px; background: #EEF0F3; color: #475467;
}
.kp-doc-status.is-sent, .kp-doce-status.is-sent { background: #E6F7F1; color: #0E9F6E; }

/* two-column secondary band */
.kp-docs-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; align-items: start; }
@media (max-width: 900px) { .kp-docs-2col { grid-template-columns: 1fr; } }
.kp-ff-stack { display: flex; flex-direction: column; gap: 10px; margin-top: 8px; }
.kp-ff-stack label { display: flex; flex-direction: column; gap: 4px; font-weight: 600; font-size: 13.5px; }
.kp-up-stack { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }

/* editor */
.kp-doce-wrap { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 20px; align-items: start; max-width: 1160px; margin: 0 auto; }
@media (max-width: 1000px) { .kp-doce-wrap { grid-template-columns: 1fr; } }
.kp-doce-header, .kp-doce-notice { max-width: 1160px; margin-left: auto; margin-right: auto; }
.kp-doce-toolbar {
    position: sticky; top: 8px; z-index: 40; display: flex; align-items: center; gap: 4px;
    background: #fff; border: 1px solid #E4E7EC; border-radius: 10px; padding: 6px 10px;
    box-shadow: 0 4px 14px rgba(16, 24, 40, 0.06); margin-bottom: 12px;
}
.kp-doce-toolbar button {
    appearance: none; border: 0; background: transparent; cursor: pointer;
    min-width: 30px; height: 30px; border-radius: 6px; font-size: 14px; color: #344054;
}
.kp-doce-toolbar button:hover { background: #F2F4F7; }
.kp-doce-sep { width: 1px; height: 18px; background: #E4E7EC; margin: 0 4px; }
.kp-doce-hint { margin-left: auto; font-size: 12px; color: #98A2B3; }
@media (max-width: 700px) { .kp-doce-hint { display: none; } }
.kp-doce-paper {
    position: relative; background: #fff; border: 1px solid #E4E7EC; border-radius: 4px;
    box-shadow: 0 10px 30px rgba(16, 24, 40, 0.08); padding: 56px 64px; min-height: 640px;
}
@media (max-width: 700px) { .kp-doce-paper { padding: 28px 20px; } }
.kp-doce-status { position: absolute; top: 14px; left: 14px; }
.kp-doce-title {
    width: 100%; border: 0; border-bottom: 1px dashed transparent; font-size: 22px; font-weight: 700;
    color: #101828; padding: 0 0 6px; margin: 0 0 14px; background: transparent; font-family: inherit;
}
.kp-doce-title:hover, .kp-doce-title:focus { border-bottom-color: #D0D5DD; outline: none; }
.kp-doce-body { outline: none; line-height: 1.65; color: #1a2333; font-size: 15px; }
.kp-doce-body:focus { outline: none; }
.kp-doce-body h2 { font-size: 17px; margin: 22px 0 8px; }
.kp-doce-body table { width: 100%; border-collapse: collapse; font-size: 13.5px; margin: 0 0 14px; }
.kp-doce-body td, .kp-doce-body th { border: 1px solid #D9DEE8; padding: 8px 10px; text-align: left; vertical-align: top; }
.kp-doce-body th { background: #0e1f4b; color: #fff; }
.kp-doce-body .kp-callout { background: #F5F8FF; border: 1px solid #D9E2F5; border-radius: 8px; padding: 12px 14px; margin: 0 0 14px; }
.kp-doce-rail { display: flex; flex-direction: column; gap: 14px; }
.kp-doce-card { margin: 0; }
.kp-doce-card h3 { margin: 0 0 10px; font-size: 14px; }
.kp-doce-card label { display: flex; flex-direction: column; gap: 4px; font-weight: 600; font-size: 13px; margin-bottom: 10px; }
.kp-doce-send { width: 100%; margin-bottom: 8px; }
.kp-doce-save { width: 100%; }
.kp-doce-sendmeta { margin: 10px 0 0; }
.kp-doce-meta { display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; margin: 0 0 12px; font-size: 13px; }
.kp-doce-meta dt { color: #667085; }
.kp-doce-meta dd { margin: 0; font-weight: 600; }
.kp-doce-pdfrow { display: flex; gap: 8px; margin: 0 0 8px; }
.kp-doce-delform { max-width: 1160px; margin: 16px auto 0; text-align: right; }
.kp-doce-del { appearance: none; border: 0; background: transparent; color: #B42318; cursor: pointer; font-size: 13px; text-decoration: underline; }

/* wl37.1 — Resource Library (read-only, shareable platform docs) */
.kp-res-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 14px; }
.kp-res-copy { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.kp-res-copy .kp-console-meta { overflow: hidden; text-overflow: ellipsis; }
.kp-res-row .kp-docrow-actions { display: flex; gap: 6px; align-items: center; }
.kp-res-share { position: relative; }
.kp-res-share summary { list-style: none; cursor: pointer; display: inline-flex; }
.kp-res-share summary::-webkit-details-marker { display: none; }
.kp-res-share[open] summary { opacity: .6; }
.kp-res-share-form {
    position: absolute; right: 0; top: calc(100% + 6px); z-index: 60;
    display: flex; gap: 6px; align-items: center; background: #fff;
    border: 1px solid #E4E7EC; border-radius: 10px; padding: 8px 10px;
    box-shadow: 0 10px 30px rgba(16, 24, 40, 0.12); white-space: nowrap;
}
.kp-res-share-form input[type=email] { width: 210px; }
@media (max-width: 700px) {
    .kp-res-row { grid-template-columns: 1fr; }
    .kp-res-share-form { position: static; box-shadow: none; border: 0; padding: 6px 0 0; }
}

/* wl37.2 — Flowlu-style document thumbnail cards (Resource Library + gallery) */
.kp-thumb-group { margin: 22px 0 12px; font-size: 14.5px; color: #344054; }
.kp-thumb-grid { display: flex; flex-wrap: wrap; gap: 20px; align-items: flex-start; }
.kp-thumb-card { width: 186px; margin: 0; }
.kp-thumb { display: block; appearance: none; border: 0; background: transparent; padding: 0; cursor: pointer; text-decoration: none; width: 100%; text-align: left; }
.kp-thumb-page {
    display: block; position: relative; width: 186px; height: 244px; overflow: hidden;
    background: #fff; border: 1px solid #E4E7EC; border-radius: 8px;
    box-shadow: 0 1px 4px rgba(16, 24, 40, 0.05);
    transition: box-shadow .15s ease, border-color .15s ease, transform .15s ease;
}
.kp-thumb:hover .kp-thumb-page { border-color: #b9c6e4; box-shadow: 0 8px 22px rgba(16, 24, 40, 0.12); transform: translateY(-2px); }
.kp-thumb-inner {
    display: block; width: 744px; padding: 40px 48px;
    transform: scale(0.25); transform-origin: top left;
    font-size: 15px; line-height: 1.6; color: #1a2333; pointer-events: none;
    font-family: Inter, sans-serif;
}
.kp-thumb-brand { display: block; font-size: 21px; font-weight: 800; color: #0e1f4b; letter-spacing: .3px; border-bottom: 3px solid #0e1f4b; padding-bottom: 8px; margin-bottom: 16px; }
.kp-thumb-doctitle { display: block; font-size: 24px; font-weight: 700; color: #101828; margin-bottom: 14px; line-height: 1.25; }
.kp-thumb-inner h2 { font-size: 18px; margin: 18px 0 6px; color: #0e1f4b; }
.kp-thumb-inner p { margin: 0 0 10px; }
.kp-thumb-inner ul, .kp-thumb-inner ol { margin: 0 0 10px; padding-left: 20px; }
.kp-thumb-inner table { width: 100%; border-collapse: collapse; font-size: 13px; margin: 0 0 12px; }
.kp-thumb-inner td, .kp-thumb-inner th { border: 1px solid #D9DEE8; padding: 6px 8px; text-align: left; vertical-align: top; }
.kp-thumb-inner th { background: #0e1f4b; color: #fff; }
.kp-thumb-inner .kp-callout { display: block; background: #F5F8FF; border: 1px solid #D9E2F5; border-radius: 6px; padding: 10px 12px; margin: 0 0 12px; }
.kp-thumb-page::after { content: ""; position: absolute; inset: auto 0 0 0; height: 46px; background: linear-gradient(180deg, rgba(255,255,255,0), #fff 85%); pointer-events: none; }
.kp-thumb-name { margin: 9px 0 2px; font-size: 13.5px; font-weight: 600; color: #101828; line-height: 1.35; }
.kp-thumb-actions { margin: 0; font-size: 12px; color: #667085; display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.kp-thumb-actions a { color: var(--kp-navy); text-decoration: none; }
.kp-thumb-actions a:hover { text-decoration: underline; }
.kp-thumb-actions .kp-res-share { display: inline-block; }
.kp-thumb-actions .kp-res-share summary { color: var(--kp-navy); cursor: pointer; list-style: none; }
.kp-thumb-actions .kp-res-share summary::-webkit-details-marker { display: none; }
.kp-thumb-actions .kp-res-share-form { left: 0; right: auto; }
/* "+ New document" card */
.kp-thumb-new .kp-thumb-page { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; }
.kp-thumb-new .kp-thumb-page::after { display: none; }
.kp-thumb-plus {
    width: 46px; height: 46px; border-radius: 50%; background: #F2F4F7; color: #667085;
    display: flex; align-items: center; justify-content: center; font-size: 24px; font-weight: 400;
    transition: background .15s ease, color .15s ease;
}
.kp-thumb-new:hover .kp-thumb-plus { background: #EAF0FF; color: var(--kp-navy); }
.kp-thumb-newlabel { font-size: 13px; color: #475467; font-weight: 600; }

/* wl37.3 — Template Library + Your Templates */
.kp-thumb-useform { display: inline; }
.kp-thumb-useform button { appearance: none; border: 0; background: transparent; padding: 0; color: var(--kp-navy); cursor: pointer; font-size: 12px; font-family: inherit; }
.kp-thumb-useform button:hover { text-decoration: underline; }
.kp-thumb-file { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; }
.kp-thumb-file::after { display: none; }
.kp-thumb-fileicon { font-size: 34px; }
.kp-tplup { margin-top: 18px; }
.kp-doc-status.is-tpl, .kp-doce-status.is-tpl { background: #EAF0FF; color: var(--kp-navy); }

/* wl37.4 — Flowlu-style share panel */
.kp-linklike { appearance: none; border: 0; background: transparent; padding: 0; color: var(--kp-navy); cursor: pointer; font-size: 12px; font-family: inherit; }
.kp-linklike:hover { text-decoration: underline; }
.kp-share-form { display: flex; flex-direction: column; gap: 14px; }
.kp-share-form label { display: flex; flex-direction: column; gap: 5px; font-weight: 600; font-size: 13px; }
.kp-share-form input, .kp-share-form textarea { font-family: inherit; }
.kp-share-from { background: #F8FAFC; color: #667085; }
.kp-share-torow { display: grid; grid-template-columns: 1fr 1.4fr; gap: 12px; }
@media (max-width: 560px) { .kp-share-torow { grid-template-columns: 1fr; } }
.kp-share-form textarea { resize: vertical; line-height: 1.55; }
.kp-share-attach { margin: 0; font-size: 13px; color: #475467; background: #F8FAFC; border: 1px dashed #D0D5DD; border-radius: 8px; padding: 9px 12px; }
.kp-share-actions { display: flex; justify-content: flex-end; gap: 10px; border-top: 1px solid #EEF0F3; padding-top: 14px; }

/* wl38 — CRM area (Flowlu-style): sub-nav, tables, slide-over record panels */
.kp-crm-wrap { max-width: 1160px; margin: 0 auto; }
.kp-crm-wrap .kp-card { margin-bottom: 16px; }
.kp-crm-nav { display: flex; gap: 4px; border-bottom: 2px solid #EEF0F3; margin: 4px 0 18px; flex-wrap: wrap; }
.kp-crm-nav a {
    padding: 10px 16px; font-weight: 600; font-size: 14px; color: #475467; text-decoration: none;
    border-bottom: 2px solid transparent; margin-bottom: -2px;
}
.kp-crm-nav a:hover { color: #101828; }
.kp-crm-nav a.is-active { color: var(--kp-navy); border-bottom-color: var(--kp-navy); }
.kp-crm-nav a b { font-weight: 700; font-size: 12px; background: #EEF0F3; border-radius: 999px; padding: 1px 8px; margin-left: 4px; color: #475467; }
.kp-crm-nav a.is-active b { background: #EAF0FF; color: var(--kp-navy); }
.kp-crm-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.kp-crm-search { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.kp-crm-search input[type=search] { min-width: 280px; }
/* list table */
.kp-crm-table { display: flex; flex-direction: column; }
.kp-crm-tr {
    display: grid; grid-template-columns: 2fr 1.4fr 1.6fr 1.1fr 1fr; gap: 12px; align-items: center;
    padding: 11px 10px; border-top: 1px solid #F2F3F6; text-decoration: none; color: #1a2333; font-size: 14px;
}
a.kp-crm-tr:hover { background: #F8FAFC; }
.kp-crm-th { font-size: 12px; text-transform: uppercase; letter-spacing: .4px; color: #98A2B3; font-weight: 700; border-top: 0; }
.kp-crm-name { display: flex; align-items: center; gap: 10px; font-weight: 600; min-width: 0; }
.kp-crm-avatar {
    flex: none; width: 30px; height: 30px; border-radius: 50%; background: #EAF0FF; color: var(--kp-navy);
    display: inline-flex; align-items: center; justify-content: center; font-style: normal; font-weight: 700; font-size: 13px;
}
.kp-crm-avatar-org { background: #F2F4F7; font-size: 15px; }
.kp-crm-chip { font-style: normal; font-size: 11.5px; font-weight: 700; background: #EEF0F3; color: #475467; border-radius: 999px; padding: 3px 10px; white-space: nowrap; }
.kp-crm-chip-ok { background: #E6F7F1; color: #0E9F6E; }
.kp-crm-chip-src { background: #F5F8FF; color: var(--kp-navy); }
@media (max-width: 900px) { .kp-crm-tr { grid-template-columns: 1fr 1fr; } .kp-crm-th { display: none; } }
/* activities */
.kp-crm-actform { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.kp-crm-actform input[type=text] { flex: 1; min-width: 220px; }
.kp-crm-actrow { display: flex; align-items: flex-start; gap: 10px; }
.kp-crm-actrow.is-done .kp-crm-acttitle, .kp-crm-actrow.is-done .kp-crm-actbody strong { text-decoration: line-through; opacity: .6; }
.kp-crm-inline { display: inline; }
.kp-crm-check {
    appearance: none; cursor: pointer; width: 22px; height: 22px; border-radius: 50%; flex: none; margin-top: 2px;
    border: 2px solid #D0D5DD; background: #fff; color: #fff; font-size: 12px; font-weight: 700;
    display: inline-flex; align-items: center; justify-content: center; padding: 0;
}
.kp-crm-check span { opacity: 0; }
.kp-crm-check.is-on { background: #12B76A; border-color: #12B76A; }
.kp-crm-check.is-on span { opacity: 1; }
.kp-crm-check:hover { border-color: #12B76A; }
.kp-crm-acttype { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; background: #F2F4F7; color: #667085; border-radius: 6px; padding: 2px 8px; }
.kp-crm-acttitle { font-weight: 600; }
.kp-crm-ag-head { margin: 0 0 10px; font-size: 15px; }
.kp-crm-ag-head b { font-size: 12px; background: #EEF0F3; border-radius: 999px; padding: 1px 8px; margin-left: 6px; }
.kp-crm-ag-overdue { color: #B42318; }
.kp-crm-ag-today { color: var(--kp-navy); }
.kp-crm-ag-done { color: #667085; }
/* web form cards */
.kp-crm-forms { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; margin-top: 14px; }
.kp-crm-formcard { border: 1px solid #E4E7EC; border-radius: 12px; padding: 16px 18px; background: #FCFDFE; }
.kp-crm-formcard h3 { margin: 0 0 6px; font-size: 15px; }
.kp-crm-formlink input { width: 100%; font-size: 12px; color: #667085; background: #F8FAFC; }
/* slide-over record panel */
.kp-crm-panel { width: min(680px, 96vw); }
.kp-crm-backdrop { cursor: pointer; }
.kp-crm-meta { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 14px; }
.kp-crm-fields p { display: flex; gap: 12px; margin: 0 0 8px; font-size: 14px; }
.kp-crm-fields b { flex: 0 0 90px; color: #667085; font-weight: 600; }
.kp-crm-fields a { color: var(--kp-navy); text-decoration: none; }
.kp-crm-orgcard {
    display: flex; align-items: center; gap: 10px; border: 1px solid #E4E7EC; border-radius: 10px;
    padding: 12px 14px; margin: 12px 0; background: #FCFDFE;
}
.kp-crm-orgcard a { font-weight: 600; text-decoration: none; color: #101828; }
.kp-crm-notes { margin: 12px 0; }
.kp-crm-notes h3, .kp-crm-secthead { font-size: 13px; text-transform: uppercase; letter-spacing: .4px; color: #98A2B3; margin: 18px 0 8px; }
.kp-crm-notes p { font-size: 13.5px; color: #475467; background: #F8FAFC; border-radius: 8px; padding: 10px 12px; }
.kp-crm-actform-panel { flex-direction: column; align-items: stretch; border: 1px solid #E4E7EC; border-radius: 10px; padding: 12px; background: #FCFDFE; }
.kp-crm-actrow1 { display: flex; gap: 8px; }
.kp-crm-actrow1 input[type=text] { flex: 1; }
.kp-crm-timeline { display: flex; flex-direction: column; gap: 12px; margin-top: 14px; }
.kp-crm-actbody p { margin: 0 0 3px; }
.kp-crm-actdetail { white-space: pre-line; }
.kp-crm-editblock { margin-top: 20px; border-top: 1px solid #EEF0F3; padding-top: 12px; }
.kp-crm-editblock summary { cursor: pointer; font-weight: 700; color: var(--kp-navy); margin-bottom: 10px; }
.kp-crm-form { display: flex; flex-direction: column; gap: 10px; }
.kp-crm-form label { display: flex; flex-direction: column; gap: 4px; font-weight: 600; font-size: 13px; }
.kp-crm-formrow { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (max-width: 560px) { .kp-crm-formrow { grid-template-columns: 1fr; } }

/* wl76 — the client forms were not styled DIFFERENTLY from the admin's, they
 * were not styled at all: .kp-crm-form set the label and the row grid and then
 * stopped, so every input, select and textarea on the client portal rendered
 * as a browser default — square corners, native border, native font — next to
 * the admin's rounded fields. The shared declarations now live in the
 * .kp-acq-form block above; what follows is only what the admin's own forms
 * inherit from the portal cascade and the client's did not. */
.kp-portal .kp-crm-form select,
.kp-portal .kp-crm-form textarea,
.kp-portal .kp-crm-rolegrid select,
.kp-portal .kp-crm-rolegrid textarea {
    font-family: inherit;
    color: #17233c;
    background: #fff;
}
.kp-portal .kp-crm-form input:focus,
.kp-portal .kp-crm-form select:focus,
.kp-portal .kp-crm-form textarea:focus,
.kp-portal .kp-crm-rolegrid input:focus,
.kp-portal .kp-crm-rolegrid select:focus,
.kp-portal .kp-crm-rolegrid textarea:focus {
    outline: none;
    border-color: var(--kp-navy);
    box-shadow: 0 0 0 3px rgba(20, 44, 79, .12);
}
.kp-portal .kp-crm-form input::placeholder,
.kp-portal .kp-crm-form textarea::placeholder { color: #98a2b3; }
/* Labels match the admin's: 12px, uppercase-adjacent weight, tight to the field. */
.kp-portal .kp-crm-form label,
.kp-portal .kp-crm-rolegrid label { font-size: 12px; font-weight: 600; color: #344054; gap: 4px; }
.kp-portal .kp-crm-form label input,
.kp-portal .kp-crm-form label select,
.kp-portal .kp-crm-form label textarea { margin-top: 2px; }
/* A file input is a control, not a text field — it gets a frame, not a box. */

/* Checkbox rows stay horizontal; the column layout above would stack the box
 * on top of its own label. */
.kp-portal .kp-crm-form label.kp-client-check,
.kp-portal .kp-crm-form label.kp-crm-multiopt { flex-direction: row; align-items: flex-start; gap: 8px; font-weight: 400; font-size: 13px; }
.kp-portal .kp-crm-form label.kp-client-check input[type="checkbox"] { width: auto; margin-top: 2px; flex: 0 0 auto; }
/* The address fieldset reads like the admin's grouped blocks. */
.kp-portal .kp-crm-rolesec { border-color: var(--kp-border, #d5dcea); border-radius: 10px; }
.kp-portal .kp-crm-rolesec legend { color: #667085; }
.kp-crm-delform { margin-top: 14px; text-align: right; }
.kp-crm-people { display: flex; flex-direction: column; gap: 8px; }
.kp-crm-people a { display: flex; align-items: center; gap: 10px; text-decoration: none; color: #101828; font-weight: 600; padding: 8px 10px; border: 1px solid #EEF0F3; border-radius: 10px; }
.kp-crm-people a:hover { background: #F8FAFC; }
.kp-crm-people .kp-console-meta { font-weight: 400; }

/* wl38.1 — Flowlu record panel: left-aligned lists, 60% slide-over, in-panel tab strip */
.kp-crm-wrap { max-width: none; margin: 0; }
.kp-crm-wrap > .kp-card, .kp-crm-wrap .kp-page-header, .kp-crm-wrap .kp-crm-nav { max-width: 1240px; }
.kp-crm-panel { width: min(60vw, 1100px); min-width: 640px; }
@media (max-width: 1080px) { .kp-crm-panel { width: 94vw; min-width: 0; } }
.kp-crm-pbar h2 { font-size: 22px; font-weight: 800; }
.kp-crm-ptabs {
    display: flex; gap: 2px; padding: 0 24px; border-bottom: 1px solid #EEF0F3; background: #fff;
}
.kp-crm-ptabs a {
    padding: 10px 14px; font-size: 13.5px; font-weight: 600; color: #667085; text-decoration: none;
    border-bottom: 2px solid transparent; margin-bottom: -1px;
}
.kp-crm-ptabs a:hover { color: #101828; }
.kp-crm-ptabs a.is-active { color: var(--kp-navy); border-bottom-color: var(--kp-navy); }
.kp-crm-pbody { padding: 20px 24px; }
.kp-crm-metastrip {
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px;
    padding: 0 0 16px; border-bottom: 1px solid #F2F3F6; margin-bottom: 18px;
}
.kp-crm-metastrip span { display: block; font-size: 12px; color: #98A2B3; margin-bottom: 2px; }
.kp-crm-metastrip b { font-size: 13.5px; color: #344054; font-weight: 600; word-break: break-word; }
@media (max-width: 700px) { .kp-crm-metastrip { grid-template-columns: 1fr 1fr; } }
.kp-crm-pcols { display: grid; grid-template-columns: 1fr 1.1fr; gap: 28px; align-items: start; }
@media (max-width: 860px) { .kp-crm-pcols { grid-template-columns: 1fr; } }
.kp-crm-planned { border: 1px solid #EEF0F3; background: #F8FAFC; border-radius: 10px; padding: 14px 16px; font-size: 13.5px; color: #667085; text-align: center; }
.kp-crm-planned span { display: inline-block; background: #12B76A; color: #fff; font-size: 11px; font-weight: 700; border-radius: 6px; padding: 2px 10px; margin-right: 10px; }
.kp-crm-moreacts { font-size: 13px; font-weight: 600; color: var(--kp-navy); text-decoration: none; }

/* wl38.2 — role-based contact fields + deal links + emails tab */
.kp-crm-rolesec { border: 1px solid #E4E7EC; border-radius: 10px; padding: 12px 14px 14px; margin: 4px 0; }
.kp-crm-rolesec legend { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; color: #667085; padding: 0 6px; }
.kp-crm-rolegrid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; }
.kp-crm-rolegrid .kp-crm-rolewide { grid-column: 1 / -1; }
@media (max-width: 640px) { .kp-crm-rolegrid { grid-template-columns: 1fr; } }
.kp-crm-multi { display: flex; flex-wrap: wrap; gap: 6px 14px; font-weight: 400; }
.kp-crm-multiopt { display: inline-flex !important; flex-direction: row !important; align-items: center; gap: 6px !important; font-weight: 400 !important; font-size: 13px !important; }
.kp-crm-linkform { margin-top: 14px; }
.kp-crm-linkform select { min-width: 260px; }
.kp-crm-emailbar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 0 0 14px; }

/* wl38.4 — referrals: chain + fee tracking */
.kp-crm-navdue { background: #FEF3F2 !important; color: #B42318 !important; }
.kp-crm-reflist { display: flex; flex-direction: column; gap: 12px; margin-top: 10px; }
.kp-crm-refcard { border: 1px solid #E4E7EC; border-radius: 12px; padding: 14px 16px; background: #FCFDFE; }
.kp-crm-refcard.is-due { border-color: #FDA29B; background: #FFFBFA; }
.kp-crm-refcard.is-done { opacity: .75; }
.kp-crm-refhead { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.kp-crm-refwho { font-size: 14.5px; }
.kp-crm-refwho a { color: #101828; text-decoration: none; }
.kp-crm-refwho a:hover { color: var(--kp-navy); }
.kp-crm-refstatus {
    margin-left: auto; font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px;
    background: #EAF0FF; color: var(--kp-navy); border-radius: 999px; padding: 3px 10px; white-space: nowrap;
}
.kp-crm-refstatus.is-due { background: #FEF3F2; color: #B42318; }
.kp-crm-refstatus.is-done { background: #EEF0F3; color: #667085; }
.kp-crm-refdesc { margin: 8px 0 0; }
.kp-crm-reffee { margin: 8px 0 0; font-size: 13.5px; color: #344054; }
.kp-crm-reffee b { color: #667085; font-weight: 600; }
.kp-crm-refpaid { color: #0E9F6E; font-weight: 700; }
.kp-crm-refactions { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 10px; font-size: 12.5px; color: #98A2B3; }
.kp-crm-refdel { color: #B42318 !important; }
.kp-crm-refdate { margin-left: auto; }
.kp-crm-refedit summary { color: var(--kp-navy); cursor: pointer; font-weight: 600; list-style: none; display: inline; }
.kp-crm-refedit summary::-webkit-details-marker { display: none; }
.kp-crm-refedit[open] { display: block; width: 100%; }
.kp-crm-refform { border: 1px solid #E4E7EC; border-radius: 10px; padding: 12px; margin-top: 10px; background: #fff; }
.kp-crm-refformfoot { text-align: right; }
.kp-crm-reflog { background: #FCFDFE; }
.kp-crm-reflogbtn { justify-content: flex-end; }
.kp-crm-refby { background: #F5F8FF; border-color: #D9E2F5; }

/* wl38.5 — address/website, NCND status, portal access */
.kp-crm-metastrip-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 900px) { .kp-crm-metastrip-5 { grid-template-columns: 1fr 1fr; } }
.kp-crm-ncnd-ok { color: #0E9F6E !important; }
.kp-crm-ncnd-no { color: #B42318 !important; }
.kp-crm-ncnd-no a { color: var(--kp-navy); font-weight: 600; text-decoration: none; }
.kp-crm-portalbox { border: 1px solid #E4E7EC; border-radius: 10px; padding: 12px 14px; background: #FCFDFE; }
.kp-crm-portalbox p { margin: 0 0 10px; }

/* wl38.6 — structured addresses */
.kp-crm-addr .kp-crm-rolegrid { grid-template-columns: 1fr 1fr 1fr; }
.kp-crm-addr .kp-crm-rolewide { grid-column: 1 / -1; }
@media (max-width: 700px) { .kp-crm-addr .kp-crm-rolegrid { grid-template-columns: 1fr; } }
.kp-crm-statewrap select, .kp-crm-statewrap input { width: 100%; }
.kp-crm-addrblock { line-height: 1.5; }

/* wl38.7 — multi-role categories + conditional fields */
.kp-crm-catsec { background: #F8FAFC; }
/* wl77 — a client's roles are shown, not offered. Read as a statement of fact
 * rather than a control someone failed to enable. */
.kp-portal .kp-crm-multi-locked .kp-crm-multiopt { color: #344054; opacity: 1; cursor: default; }
.kp-portal .kp-crm-multi-locked input[disabled] { accent-color: #667085; cursor: default; }

/* wl78 — sub-tabs over the qualification sections. Same pill shape as the
 * property page's tab strip, so a tab row means the same thing everywhere. */
.kp-portal .kp-crm-subtabs {
    display: flex; flex-wrap: wrap; gap: 6px;
    margin: 6px 0 14px; padding: 0 0 12px;
    border-bottom: 1px solid var(--kp-border, #d5dcea);
}
.kp-portal .kp-crm-subtabs button {
    padding: 7px 14px;
    border: 1px solid var(--kp-border, #d5dcea);
    border-radius: 999px;
    background: #fff;
    color: #344054;
    font-size: 12.5px;
    font-weight: 600;
    font-family: inherit;
    line-height: 1.2;
    cursor: pointer;
    width: auto;
}
.kp-portal .kp-crm-subtabs button:hover { border-color: var(--kp-navy); color: var(--kp-navy); }
.kp-portal .kp-crm-subtabs button.is-active { background: #17233c; border-color: #17233c; color: #fff; }
/* A tabbed section is a panel, not a boxed fieldset — the strip above already
 * says where you are, so a second border around it is noise. */
.kp-portal .kp-crm-rolesec.is-tabbed { display: none; border: 0; padding: 0; margin: 0; background: transparent; }
.kp-portal .kp-crm-rolesec.is-tabbed.is-active { display: block; }
.kp-portal .kp-crm-rolesec.is-tabbed > legend { display: none; }
.kp-portal .kp-lg-readonly { margin: 0 0 4px; font-size: 14px; color: #17233c; }
.kp-crm-cathint { margin: 0 0 8px; }
.kp-crm-chiplist { display: flex; gap: 4px; flex-wrap: wrap; }
.kp-crm-rolesec[hidden], [data-kp-showif-field][hidden] { display: none !important; }

/* ============ wl39 — client onboarding gate + role-aware client portal ============ */
.kp-portal .kp-onboard-hero { margin-bottom: 18px; }
.kp-portal .kp-onboard-hero h2 { margin: 4px 0 8px; }
/* wl74 — the heading moved out to a real page header, so the steps are the
 * whole card now and no longer need to clear anything above them. */
.kp-portal .kp-onboard-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.kp-portal .kp-onboard-steps li { display: flex; align-items: center; gap: 10px; color: var(--kp-muted, #64748b); font-size: 14px; }
.kp-portal .kp-onboard-steps li.is-current { color: var(--kp-ink, #17233f); font-weight: 600; }
.kp-portal .kp-onboard-stepnum { width: 26px; height: 26px; border-radius: 50%; background: #e2e8f0; display: inline-flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; flex: 0 0 auto; }
.kp-portal .kp-onboard-steps li.is-current .kp-onboard-stepnum { background: var(--kp-accent, #1d4ed8); color: #fff; }

.kp-portal .kp-clienthome-hero { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 16px; }
.kp-portal .kp-clienthome-hero h2 { margin: 4px 0 8px; }
.kp-portal .kp-clienthome-roles { display: flex; gap: 6px; flex-wrap: wrap; margin: 0; }
.kp-portal .kp-clienthome-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin-bottom: 16px; }
.kp-portal .kp-clienthome-stat { text-align: center; padding: 16px 10px; }
.kp-portal .kp-clienthome-stat strong { display: block; font-size: 26px; line-height: 1.1; }
.kp-portal .kp-clienthome-stat span { font-size: 12.5px; color: var(--kp-muted, #64748b); }
.kp-portal .kp-clienthome-stat.is-due strong { color: #b91c1c; }
.kp-portal .kp-clienthome-reflist { list-style: none; margin: 0; padding: 0; }
.kp-portal .kp-clienthome-reflist li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 0; border-bottom: 1px solid #eef1f6; }
.kp-portal .kp-clienthome-reflist li:last-child { border-bottom: 0; }
.kp-portal .kp-clienthome-ctas { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin-top: 16px; }
.kp-portal .kp-clienthome-cta { display: block; text-decoration: none; color: inherit; transition: box-shadow .15s ease; }
.kp-portal .kp-clienthome-cta:hover { box-shadow: 0 6px 18px rgba(23, 35, 63, .10); }
.kp-portal .kp-clienthome-cta h4 { margin: 0 0 6px; }
.kp-portal .kp-clienthome-cta p { margin: 0; font-size: 13px; color: var(--kp-muted, #64748b); }

/* ============ wl155 — client Home is the live source-of-truth dashboard ============ */
.kp-portal .kp-clienthome-hero-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.kp-page-dashboard .kp-clienthome-metrics { grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); margin-bottom: 18px; }
.kp-portal .kp-clienthome-sectionhead { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.kp-portal .kp-clienthome-sectionhead h2 { margin: 2px 0 0; color: #17334f; font-size: 18px; font-weight: 600; }
.kp-portal .kp-clienthome-sectionhead p:not(.kp-eyebrow) { margin: 5px 0 0; color: #66798c; font-size: 12px; }
.kp-portal .kp-clienthome-notices,
.kp-portal .kp-clienthome-properties { margin: 0 0 18px; }
.kp-portal .kp-clienthome-noticegrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(265px, 1fr)); gap: 10px; }
.kp-portal .kp-clienthome-notice { display: grid; grid-template-columns: 5px minmax(0, 1fr) auto; align-items: center; gap: 11px; min-height: 76px; padding: 12px 14px; border: 1px solid #dce8f3; border-radius: 10px; background: #fff; color: #17334f; text-decoration: none; transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease; }
.kp-portal .kp-clienthome-notice:hover { border-color: #a9c5df; box-shadow: 0 8px 20px rgba(23, 51, 79, .08); transform: translateY(-1px); }
.kp-portal .kp-clienthome-notice-mark { align-self: stretch; border-radius: 999px; background: #2563eb; }
.kp-portal .kp-clienthome-notice.is-action .kp-clienthome-notice-mark { background: #d97706; }
.kp-portal .kp-clienthome-notice.is-message .kp-clienthome-notice-mark { background: #2563eb; }
.kp-portal .kp-clienthome-notice.is-document .kp-clienthome-notice-mark { background: #7c3aed; }
.kp-portal .kp-clienthome-notice.is-opportunity .kp-clienthome-notice-mark { background: #0d9488; }
.kp-portal .kp-clienthome-notice.is-deal .kp-clienthome-notice-mark { background: #0891b2; }
.kp-portal .kp-clienthome-notice-copy { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.kp-portal .kp-clienthome-notice-copy strong { font-size: 13px; font-weight: 600; }
.kp-portal .kp-clienthome-notice-copy > span { color: #66798c; font-size: 12px; line-height: 1.35; }
.kp-portal .kp-clienthome-notice-cta { color: #1d4ed8; font-size: 11px; font-weight: 600; white-space: nowrap; }
.kp-portal .kp-clienthome-allclear { display: flex; align-items: center; gap: 12px; min-height: 72px; padding: 13px 15px; border: 1px solid #cde8dc; border-radius: 10px; background: #f4fbf8; }
.kp-portal .kp-clienthome-allclear > span { display: inline-flex; width: 30px; height: 30px; align-items: center; justify-content: center; border-radius: 50%; background: #d9f4e8; color: #087a50; font-weight: 700; }
.kp-portal .kp-clienthome-allclear strong { color: #17334f; font-size: 13px; }
.kp-portal .kp-clienthome-allclear p { margin: 2px 0 0; color: #66798c; font-size: 12px; }
.kp-portal .kp-clienthome-properties { padding: 16px; border: 1px solid #d5e3f0; border-radius: 12px; background: linear-gradient(145deg, #f8fbff 0%, #eef7fb 100%); }
.kp-portal .kp-clienthome-propertygrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.kp-portal .kp-clienthome-property { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid #dce8f3; border-radius: 10px; background: #fff; color: #17334f; text-decoration: none; transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease; }
.kp-portal .kp-clienthome-property:hover { border-color: #8fb6d8; box-shadow: 0 10px 24px rgba(23, 51, 79, .10); transform: translateY(-2px); }
.kp-portal .kp-clienthome-propertymedia { display: block; height: 126px; overflow: hidden; background: #dce8f3; }
.kp-portal .kp-clienthome-propertymedia img { width: 100%; height: 100%; object-fit: cover; transition: transform .2s ease; }
.kp-portal .kp-clienthome-property:hover .kp-clienthome-propertymedia img { transform: scale(1.025); }
.kp-portal .kp-clienthome-propertyplaceholder { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, #d7e7f5, #edf4fa); }
.kp-portal .kp-clienthome-propertybody { display: flex; min-height: 150px; flex: 1; flex-direction: column; padding: 12px; }
.kp-portal .kp-clienthome-propertybody > strong { color: #17334f; font-size: 13px; font-weight: 600; line-height: 1.35; }
.kp-portal .kp-clienthome-propertylocation { margin-top: 4px; color: #66798c; font-size: 11px; line-height: 1.35; }
.kp-portal .kp-clienthome-propertymeta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 10px; color: #66798c; font-size: 11px; }
.kp-portal .kp-clienthome-propertymeta b { color: #17334f; font-size: 13px; font-weight: 600; }
.kp-portal .kp-clienthome-propertylink { margin-top: auto; padding-top: 11px; color: #1d4ed8; font-size: 11px; font-weight: 600; }
.kp-portal .kp-clienthome-propertyempty { padding: 18px; border: 1px dashed #b8cede; border-radius: 10px; background: rgba(255,255,255,.72); color: #66798c; font-size: 13px; }

@media (max-width: 1180px) {
    .kp-portal .kp-clienthome-propertygrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
    .kp-portal .kp-clienthome-sectionhead { align-items: flex-start; flex-direction: column; }
    .kp-portal .kp-clienthome-notice { grid-template-columns: 5px minmax(0, 1fr); }
    .kp-portal .kp-clienthome-notice-cta { grid-column: 2; }
    .kp-portal .kp-clienthome-propertygrid { grid-template-columns: 1fr; }
    .kp-portal .kp-clienthome-propertymedia { height: 170px; }
}

.kp-portal .kp-client-reflist { display: grid; gap: 12px; }
.kp-portal .kp-client-refcard { border: 1px solid #e5e9f0; border-radius: 10px; padding: 14px 16px; }
.kp-portal .kp-client-refcard.is-feedue { border-color: #fca5a5; background: #fff7f7; }
.kp-portal .kp-client-refhead { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.kp-portal .kp-crm-refkind { font-size: 11px; text-transform: uppercase; letter-spacing: .04em; background: #eef2ff; color: #3730a3; border-radius: 999px; padding: 2px 9px; font-weight: 700; }
.kp-portal .kp-client-refdesc { margin: 8px 0 0; font-size: 13.5px; color: var(--kp-muted, #475569); }
.kp-portal .kp-client-refmeta { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 10px; font-size: 13px; }
.kp-portal .kp-client-doclist { list-style: none; margin: 0 0 12px; padding: 0; }
.kp-portal .kp-client-doclist li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid #eef1f6; }
.kp-portal .kp-client-doclist li:last-child { border-bottom: 0; }
.kp-portal .kp-client-docname { display: flex; flex-direction: column; gap: 2px; }
.kp-portal .kp-client-profile { margin: 0 0 12px; display: grid; gap: 0; }
.kp-portal .kp-client-profile > div { display: grid; grid-template-columns: 160px 1fr; gap: 12px; padding: 9px 0; border-bottom: 1px solid #eef1f6; }
.kp-portal .kp-client-profile > div:last-child { border-bottom: 0; }
.kp-portal .kp-client-profile dt { color: var(--kp-muted, #64748b); font-size: 13px; }
.kp-portal .kp-client-profile dd { margin: 0; font-weight: 500; }
.kp-portal .kp-console-notice-ok { border-left: 3px solid var(--kp-success, #16a34a); }
.kp-portal .kp-client-refform .kp-console-meta { margin-top: 4px; }

/* ============ wl40 — client resources, native messages, referral diligence ============ */
.kp-portal .kp-client-resgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; margin-top: 14px; }
.kp-portal .kp-client-rescard { display: flex; gap: 12px; align-items: flex-start; border: 1px solid #e5e9f0; border-radius: 10px; padding: 14px; }
.kp-portal .kp-client-resicon { color: var(--kp-accent, #1d4ed8); flex: 0 0 auto; margin-top: 2px; }
.kp-portal .kp-client-resbody { flex: 1; min-width: 0; }
.kp-portal .kp-client-resbody p { margin: 4px 0 0; font-size: 12.5px; color: var(--kp-muted, #64748b); }
.kp-portal .kp-client-resactions { display: flex; flex-direction: column; gap: 6px; flex: 0 0 auto; }
.kp-portal .kp-client-msgthread { display: grid; gap: 10px; margin-bottom: 4px; }
.kp-portal .kp-client-msg { border-radius: 12px; padding: 12px 14px; max-width: 85%; }
.kp-portal .kp-client-msg.is-mine { background: #eef2ff; margin-left: auto; }
.kp-portal .kp-client-msg.is-theirs { background: #f4f6f9; margin-right: auto; }
.kp-portal .kp-client-msghead { display: flex; gap: 10px; align-items: baseline; justify-content: space-between; }
.kp-portal .kp-client-msgsubject { margin: 6px 0 0; font-weight: 600; }
.kp-portal .kp-client-msgbody { margin: 6px 0 0; font-size: 14px; }
.kp-portal .kp-client-msgcopy { border: 1px solid #e5e9f0; border-radius: 10px; padding: 12px 14px; margin: 10px 0; }
.kp-portal .kp-client-msgcopy legend { font-weight: 600; font-size: 13px; padding: 0 6px; }
.kp-portal .kp-client-msgcopylist { display: grid; gap: 8px; }
.kp-portal .kp-client-msgcopyrow { display: flex !important; align-items: center; justify-content: space-between; gap: 12px; }
.kp-portal .kp-client-msgcopyrow em { font-style: normal; }
.kp-portal .kp-client-msgcopyrow select { max-width: 130px; }
.kp-portal .kp-client-check { display: flex !important; align-items: flex-start; gap: 8px; margin: 8px 0 0; font-size: 13.5px; }
.kp-portal .kp-client-check input { margin-top: 3px; flex: 0 0 auto; }
.kp-portal .kp-client-diligence { margin-top: 14px; }
.kp-portal .kp-crm-msgthread { display: grid; gap: 8px; margin: 6px 0 12px; }
.kp-portal .kp-crm-msg { border: 1px solid #e5e9f0; border-radius: 10px; padding: 10px 12px; }
.kp-portal .kp-crm-msg.is-in { background: #f8fafc; }
.kp-portal .kp-crm-msg.is-out { background: #eef2ff; }
.kp-portal .kp-crm-msg p { margin: 2px 0; }
.kp-portal .kp-crm-msgreply { margin-bottom: 16px; }
.kp-portal .kp-crm-refdetails { margin: 6px 0; }
.kp-portal .kp-crm-refdetails summary { cursor: pointer; font-size: 13px; color: var(--kp-accent, #1d4ed8); }
.kp-portal .kp-crm-refdl { margin: 8px 0 0; }
.kp-portal .kp-crm-refdl > div { display: grid; grid-template-columns: 220px 1fr; gap: 10px; padding: 5px 0; border-bottom: 1px dashed #eef1f6; }
.kp-portal .kp-crm-refdl > div:last-child { border-bottom: 0; }
.kp-portal .kp-crm-refdl dt { color: var(--kp-muted, #64748b); font-size: 12.5px; }
.kp-portal .kp-crm-refdl dd { margin: 0; font-size: 13px; }

/* ============ wl41 — Kerja-design native messaging + colorful role-focused home ============ */
.kp-portal .kp-metric-card { position: relative; overflow: hidden; }
.kp-portal .kp-metric-card::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; border-radius: 0 4px 4px 0; background: var(--kp-accent, #1d4ed8); }
.kp-portal .kp-metric-a1::before { background: #2563eb; }
.kp-portal .kp-metric-a2::before { background: #7c3aed; }
.kp-portal .kp-metric-a3::before { background: #0891b2; }
.kp-portal .kp-metric-a4::before { background: #dc2626; }
.kp-portal .kp-metric-a5::before { background: #16a34a; }
.kp-portal .kp-metric-a6::before { background: #d97706; }
.kp-portal .kp-metric-a7::before { background: #0d9488; }
.kp-portal .kp-metric-a1 strong { color: #2563eb; }
.kp-portal .kp-metric-a2 strong { color: #7c3aed; }
.kp-portal .kp-metric-a3 strong { color: #0891b2; }
.kp-portal .kp-metric-a4 strong { color: #dc2626; }
.kp-portal .kp-metric-a5 strong { color: #16a34a; }
.kp-portal .kp-metric-a6 strong { color: #d97706; }
.kp-portal .kp-metric-a7 strong { color: #0d9488; }
.kp-portal .kp-clienthome-ctaband { display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; margin: 16px 0; background: linear-gradient(120deg, var(--kp-accent, #1d4ed8), #0e2a63); color: #fff; border: 0; }
.kp-portal .kp-clienthome-ctaband .kp-eyebrow { color: rgba(255, 255, 255, .75); }
.kp-portal .kp-clienthome-ctaband h3 { color: #fff; margin: 4px 0 6px; }
.kp-portal .kp-clienthome-ctaband p { color: rgba(255, 255, 255, .85); margin: 0; max-width: 640px; }
.kp-portal .kp-clienthome-ctaband .kp-button-primary { background: #fff; color: var(--kp-accent, #1d4ed8); border-color: #fff; }
.kp-portal .kp-crm-msgthreadbox { border: 1px solid #e5e9f0; border-radius: 10px; padding: 10px 14px; margin-bottom: 10px; }
.kp-portal .kp-crm-msgthreadbox > summary { cursor: pointer; display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; }
.kp-portal .kp-crm-msgthreadbox .kp-crm-msgthread { margin-top: 10px; }
.kp-portal .kp-crm-msgnew > summary { color: var(--kp-accent, #1d4ed8); }

/* ============ wl41.1 — message bubble uses the full callout; row titles stop over-truncating ============ */
.kp-portal .kp-message-conversation-row.is-client .kp-message-conversation-bubble,
.kp-portal .kp-message-conversation-row.is-kerja .kp-message-conversation-bubble { width: 100%; }
.kp-portal .kp-message-conversation-bubble > div:last-child { text-align: left; }
.kp-portal .kp-message-row-content { min-width: 0; flex: 1 1 auto; }
.kp-portal .kp-message-row-title strong { flex: 1 1 auto; min-width: 0; }
.kp-portal .kp-message-thread-actions form { display: inline-flex; align-items: center; gap: 6px; }

/* ============ wl43 — operator Sent/Trash/folders + unread nav badges ============ */
.kp-portal .kp-nav-badge { margin-left: auto; background: #dc2626; color: #fff; font-size: 11px; font-weight: 700; border-radius: 999px; padding: 1px 7px; line-height: 1.5; }
.kp-portal .kp-nav-link { display: flex; align-items: center; }

/* ============ wl44 — mobile pass + a11y fixes ============ */
/* The direct portal renders without theme CSS — define the SR utility here
   so hidden labels stop spilling into the header. */
.kp-portal .screen-reader-text,
body.kp-direct-portal-page .screen-reader-text {
    position: absolute !important;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
@media (max-width: 860px) {
    .kp-portal .kp-message-thread-layout { grid-template-columns: 1fr; display: block; }
    .kp-portal .kp-message-inbox-rows { max-height: 40vh; overflow-y: auto; border-bottom: 1px solid #e5e9f0; }
    .kp-portal .kp-message-thread-actions { flex-wrap: wrap; gap: 8px; }
    .kp-portal .kp-message-inbox-header { flex-wrap: wrap; gap: 8px; }
    .kp-portal .kp-crm-refdl > div { grid-template-columns: 1fr; gap: 2px; }
    .kp-portal .kp-clienthome-stats { grid-template-columns: 1fr 1fr; }
    .kp-portal .kp-metric-grid { grid-template-columns: 1fr 1fr; }
    .kp-portal .kp-clienthome-ctaband { padding: 16px; }
    .kp-portal .kp-message-mailboxes { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
    .kp-portal .kp-message-mailboxes nav { display: flex; flex-wrap: wrap; gap: 6px; }
    .kp-portal .kp-message-custom-folders { display: flex; flex-wrap: wrap; gap: 6px; }
}
@media (max-width: 640px) {
    .kp-portal .kp-message-modal-dialog { width: 100vw; height: 100dvh; max-height: 100dvh; border-radius: 0; }
    .kp-portal .kp-message-modal { align-items: stretch; }
    .kp-portal .kp-metric-grid { grid-template-columns: 1fr; }
    .kp-portal .kp-crm-panel { width: 100vw; }
    .kp-portal .kp-message-editor-toolbar { flex-wrap: wrap; }
    .kp-portal .kp-welcome-card { flex-direction: column; align-items: flex-start; }
}

/* ============ wl44.1 — mobile drawer: scrollable, compact row nav ============ */
@media (max-width: 900px) {
    .kp-portal .kp-sidebar {
        height: 100dvh;
        max-height: 100dvh;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        z-index: 30;
        padding-bottom: 48px;
    }
    .kp-portal .kp-nav-link {
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
        gap: 12px;
        min-height: 46px;
        padding: 10px 14px;
        margin: 2px 10px;
        font-size: 14.5px;
        text-align: left;
    }
    .kp-portal .kp-nav-link .kp-nav-icon { width: 22px; height: 22px; flex: 0 0 auto; }
    .kp-portal .kp-nav-link .kp-nav-icon svg,
    .kp-portal .kp-nav-link svg { width: 20px; height: 20px; }
    .kp-portal .kp-nav-link span:not(.kp-nav-icon) { width: auto; text-align: left; }
    .kp-portal .kp-sidebar .kp-sidebar-header { padding: 14px 16px 8px; }
    .kp-portal .kp-sidebar .kp-locale-switcher { margin: 4px 12px; }
    .kp-portal .kp-sidebar .kp-locale-switcher select { font-size: 14px; width: 100%; }
    .kp-portal .kp-sidebar .kp-brand-mark img,
    .kp-portal .kp-sidebar .kp-brand-mark { width: 34px; height: 34px; }
}

/* ============ wl46 — Leads folder ============ */
.kp-portal .kp-crm-leadrow.is-dismissed { opacity: .55; }
.kp-portal .kp-crm-leadactions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.kp-portal .kp-crm-leadstatus { font-size: 12.5px; border-radius: 999px; padding: 3px 10px; border: 1px solid #d6dde8; background: #fff; }
.kp-portal .kp-crm-leadstatus.is-new { border-color: #93c5fd; background: #eff6ff; color: #1d4ed8; font-weight: 600; }
.kp-portal .kp-crm-leadstatus.is-contacted { border-color: #fcd34d; background: #fffbeb; color: #92400e; }
.kp-portal .kp-crm-leadstatus.is-qualified { border-color: #86efac; background: #f0fdf4; color: #166534; }
.kp-portal .kp-crm-leadstatus.is-dismissed { color: #64748b; }

/* ============ wl47 — web form preview & integrate modal ============ */
.kp-portal .kp-wf-modal { position: fixed; inset: 0; z-index: 60; display: none; align-items: center; justify-content: center; }
.kp-portal .kp-wf-modal.is-open { display: flex; }
.kp-portal .kp-wf-backdrop { position: absolute; inset: 0; background: rgba(15, 26, 46, .55); }
.kp-portal .kp-wf-dialog { position: relative; width: min(860px, 94vw); max-height: 92dvh; background: #fff; border-radius: 14px; box-shadow: 0 24px 70px rgba(10, 20, 40, .35); display: flex; flex-direction: column; overflow: hidden; }
.kp-portal .kp-wf-head { display: flex; align-items: center; gap: 12px; padding: 18px 22px; border-bottom: 1px solid #e8ecf2; }
.kp-portal .kp-wf-head h2 { margin: 2px 0 0; font-size: 20px; }
.kp-portal .kp-wf-head > div { flex: 1; min-width: 0; }
.kp-portal .kp-wf-body { overflow-y: auto; padding: 20px 22px 28px; }
.kp-portal .kp-wf-integrate { border: 1px solid #e5e9f0; border-radius: 12px; padding: 16px 18px; margin-bottom: 22px; background: #f8fafc; }
.kp-portal .kp-wf-integrate h3, .kp-portal .kp-wf-preview h3 { margin: 0 0 10px; font-size: 15px; }
.kp-portal .kp-wf-snippet { margin-bottom: 12px; }
.kp-portal .kp-wf-snippet label { display: block; font-size: 12.5px; color: #5a6270; margin-bottom: 4px; }
.kp-portal .kp-wf-snippetrow { display: flex; gap: 8px; align-items: flex-start; }
.kp-portal .kp-wf-snippetrow input, .kp-portal .kp-wf-snippetrow textarea { flex: 1; min-width: 0; font-family: ui-monospace, monospace; font-size: 12px; padding: 8px 10px; border: 1px solid #d6dde8; border-radius: 8px; background: #fff; }
.kp-portal .kp-wf-step { border: 1px solid #e8ecf2; border-radius: 12px; padding: 14px 16px; margin-bottom: 14px; }
.kp-portal .kp-wf-steptitle { display: flex; align-items: center; gap: 10px; font-weight: 700; margin-bottom: 12px; }
.kp-portal .kp-wf-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.kp-portal .kp-wf-field { grid-column: span 2; }
.kp-portal .kp-wf-field.is-half { grid-column: span 1; }
.kp-portal .kp-wf-field > label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 4px; }
.kp-portal .kp-wf-field input[type="text"], .kp-portal .kp-wf-field select, .kp-portal .kp-wf-field textarea { width: 100%; padding: 8px 10px; border: 1px solid #dfe5ee; border-radius: 8px; background: #f8fafc; color: #64748b; font-size: 13.5px; }
.kp-portal .kp-wf-opts { margin: 5px 0 0; font-size: 11.5px; color: #8a99ac; line-height: 1.5; }
.kp-portal .kp-wf-checks { display: grid; gap: 6px; }
.kp-portal .kp-wf-check { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; font-weight: 400 !important; }
@media (max-width: 640px) {
    .kp-portal .kp-wf-dialog { width: 100vw; max-height: 100dvh; border-radius: 0; }
    .kp-portal .kp-wf-fields { grid-template-columns: 1fr; }
    .kp-portal .kp-wf-field.is-half { grid-column: span 1; }
    .kp-portal .kp-wf-snippetrow { flex-direction: column; }
}

/* ---- wl48: forms library additions ---- */
.kp-fe-sectionnote { margin: 4px 0 -6px; padding: 10px 14px; background: #f2f5f9; border-left: 3px solid #2c4a6e; border-radius: 6px; font-size: 0.92rem; color: #33475b; }
.kp-fe-field[hidden] { display: none !important; }
.kp-public-form { display: block; max-width: 1020px; margin: 0 auto; padding: 28px 20px 60px; }
@media (max-width: 640px) { .kp-public-form { padding: 16px 12px 40px; } }
/* wl48.1 — embed mode: bare form chrome for iframe/site embedding */
body.kp-embed { background: #fff; }
body.kp-embed .kp-public-form { max-width: 900px; padding: 10px 8px 32px; }
body.kp-embed .kp-console-hero { margin-bottom: 10px; }
body.kp-direct-portal-page .kp-public-form { max-width: 1020px; margin: 0 auto; }
body.kp-embed .kp-public-form { max-width: 900px; margin: 0 auto; }

/* ---- wl48.6: console queue cards scroll instead of stretching the page ---- */
.kp-portal .kp-console-grid .kp-qrows {
    max-height: 340px;
    overflow-y: auto;
    padding-right: 4px;
    scrollbar-width: thin;
    scrollbar-color: #C7CCD8 transparent;
    overscroll-behavior: contain;
}
.kp-portal .kp-console-grid .kp-qrows::-webkit-scrollbar { width: 8px; }
.kp-portal .kp-console-grid .kp-qrows::-webkit-scrollbar-track { background: transparent; }
.kp-portal .kp-console-grid .kp-qrows::-webkit-scrollbar-thumb { background: #C7CCD8; border-radius: 8px; }
.kp-portal .kp-console-grid .kp-qrows::-webkit-scrollbar-thumb:hover { background: #A9B0C2; }
.kp-portal .kp-console-grid .kp-console-queue { max-height: 470px; }
/* single-queue view (a filter chip is active) gets room to work */
.kp-portal .kp-console-grid-single .kp-qrows { max-height: 62vh; }
.kp-portal .kp-console-grid-single .kp-console-queue { max-height: none; }
.kp-portal .kp-qrows-more { margin: 8px 2px 0; font-size: 12px; color: #6B7280; }
@media (max-width: 640px) {
    .kp-portal .kp-console-grid .kp-qrows { max-height: 300px; }
}
/* wl48.6 — class renamed off the retired integration name; inherits the same look */
.kp-portal .kp-console-open { font-size: 11.5px; color: #0059B3; font-weight: 600; text-decoration: none; white-space: nowrap; }
.kp-portal .kp-console-open:hover { text-decoration: underline; }

/* ---- wl48.8: NCND column + signature actions ---- */
.kp-portal .kp-crm-tr-ncnd { grid-template-columns: 2fr 1.3fr 1.7fr 1.2fr 1.4fr; }
.kp-portal .kp-crm-ncndcell { display: flex; align-items: center; }
.kp-portal .kp-crm-ncndform { margin: 0; }
.kp-portal .kp-crm-ncndform .kp-button { white-space: nowrap; }
.kp-portal .kp-queue-bulk {
    display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
    margin: 0 0 12px; padding: 10px 12px; background: #F5F8FF;
    border: 1px solid #DCE6FA; border-radius: 10px;
}
.kp-portal .kp-queue-bulk .kp-console-meta { margin: 0; font-size: 12px; }
@media (max-width: 900px) { .kp-portal .kp-crm-tr-ncnd { grid-template-columns: 1fr 1fr; } }

/* ---- wl48.9: portal access column + revoke ---- */
.kp-portal .kp-crm-tr-ncnd { grid-template-columns: 1.9fr 1.2fr 1.6fr 1.1fr .8fr 1.3fr; }
.kp-portal .kp-crm-chip-off { background: #FDECEC; color: #B42318; }
.kp-portal .kp-crm-portalactions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.kp-portal .kp-button-danger { background: #FFF; color: #B42318; border: 1px solid #F3C6C2; }
.kp-portal .kp-button-danger:hover { background: #FDECEC; border-color: #E8A5A0; color: #93231A; }
@media (max-width: 1200px) { .kp-portal .kp-crm-tr-ncnd { grid-template-columns: 1.8fr 1.4fr 1fr 1.3fr; } .kp-portal .kp-crm-tr-ncnd > span:nth-child(2) { display: none; } }
@media (max-width: 900px) { .kp-portal .kp-crm-tr-ncnd { grid-template-columns: 1fr 1fr; } .kp-portal .kp-crm-tr-ncnd > span:nth-child(2) { display: block; } }
/* wl48.10 — last-requested stamp beside the NCND action */
.kp-portal .kp-crm-ncndcell { flex-wrap: wrap; gap: 6px; }
.kp-portal .kp-crm-reqdate { font-size: 11.5px; color: #6B7280; white-space: nowrap; }

/* ---- wl49.1: one-level rail — stage groups live in a hover flyout and on the page ---- */
.kp-portal .kp-nav-item { position: relative; }
.kp-portal .kp-nav-has-flyout > .kp-nav-link::after {
    content: '';
    position: absolute;
    right: 8px;
    width: 5px; height: 5px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(-45deg);
    opacity: .45;
}
.kp-portal .kp-nav-flyout {
    position: absolute;
    left: calc(100% - 4px);
    top: 0;
    z-index: 60;
    min-width: 200px;
    padding: 8px;
    background: #FFFFFF;
    border: 1px solid #E7E9F0;
    border-radius: 10px;
    box-shadow: 0 12px 30px rgba(16, 19, 26, 0.14);
    opacity: 0;
    visibility: hidden;
    transform: translateX(-6px);
    transition: opacity 140ms ease, transform 140ms ease, visibility 140ms;
}
.kp-portal .kp-nav-has-flyout:hover > .kp-nav-flyout,
.kp-portal .kp-nav-has-flyout:focus-within > .kp-nav-flyout {
    opacity: 1;
    visibility: visible;
    transform: translateX(0);
}
.kp-portal .kp-nav-flyout-head {
    display: block;
    padding: 2px 10px 6px;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .5px;
    text-transform: uppercase;
    color: #98A2B3;
}
.kp-portal .kp-nav-flyout-link {
    display: block;
    padding: 8px 10px;
    border-radius: 7px;
    font-size: 13px;
    font-weight: 500;
    color: #4A5060;
    text-decoration: none;
    white-space: nowrap;
}
.kp-portal .kp-nav-flyout-link:hover,
.kp-portal .kp-nav-flyout-link:focus { background: #F3F6FB; color: #23262E; }
.kp-portal .kp-nav-flyout-link.is-active { background: var(--kp-navy, #10131a); color: #fff; font-weight: 600; }

/* on-page stage-group nav (the primary way in) */
.kp-portal .kp-seg-nav { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.kp-portal .kp-seg-nav a {
    display: inline-flex; align-items: center; gap: 7px;
    padding: 7px 13px;
    border: 1px solid #DFE3EB;
    border-radius: 999px;
    background: #FFFFFF;
    font-size: 13px; font-weight: 600; color: #4A5060; text-decoration: none;
    transition: border-color 140ms ease, color 140ms ease, background 140ms ease;
}
.kp-portal .kp-seg-nav a:hover { border-color: #BCC6D8; color: #23262E; }
.kp-portal .kp-seg-nav a b { font-weight: 700; font-size: 11.5px; color: #98A2B3; }
.kp-portal .kp-seg-nav a.is-active { background: var(--kp-navy, #10131a); border-color: var(--kp-navy, #10131a); color: #fff; }
.kp-portal .kp-seg-nav a.is-active b { color: rgba(255,255,255,.7); }

@media (max-width: 900px) {
    /* no hover on touch: the flyout becomes an inline list under the parent */
    .kp-portal .kp-nav-flyout {
        position: static;
        opacity: 1; visibility: visible; transform: none;
        min-width: 0; margin: 2px 0 6px 30px; padding: 4px;
        border: 0; box-shadow: none; background: transparent;
    }
    .kp-portal .kp-nav-flyout-head { display: none; }
    .kp-portal .kp-nav-has-flyout > .kp-nav-link::after { display: none; }
}

/* ---- wl50: the checklist view (All Queues card now opens a real to-do list) ---- */
.kp-portal .kp-checklist { list-style: none; margin: 6px 0 0; padding: 0; counter-reset: kpcl; }
.kp-portal .kp-checklist-row {
    display: flex; align-items: center; gap: 14px;
    padding: 13px 4px;
    border-top: 1px solid #F0F2F6;
}
.kp-portal .kp-checklist-row:first-child { border-top: 0; }
.kp-portal .kp-checklist-box {
    flex: none; width: 18px; height: 18px;
    border: 2px solid #CBD3E1; border-radius: 5px;
}
.kp-portal .kp-checklist-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.kp-portal .kp-checklist-do { font-size: 14px; color: #4A5060; }
.kp-portal .kp-checklist-do strong { color: #16181D; }
.kp-portal .kp-checklist-side { display: flex; align-items: center; gap: 10px; flex: none; flex-wrap: wrap; justify-content: flex-end; }
.kp-portal .kp-cl-messages .kp-checklist-box { border-color: var(--kp-navy); }
.kp-portal .kp-cl-leads .kp-checklist-box { border-color: #0E9F6E; }
.kp-portal .kp-cl-referrals .kp-checklist-box { border-color: #B7791F; }
.kp-portal .kp-cl-fees .kp-checklist-box { border-color: #B42318; }
@media (max-width: 700px) {
    .kp-portal .kp-checklist-row { flex-wrap: wrap; }
    .kp-portal .kp-checklist-side { width: 100%; justify-content: flex-start; padding-left: 32px; }
}

/* ============================================================
   WL51 — property address line, essentials strip, mandate axis
   ============================================================ */

/* Full postal address, directly under the deal name. */
.kp-portal .kp-acq-address {
    display: block;
    font-size: 12.5px;
    line-height: 1.45;
    color: #4a5670;
    margin: 2px 0 2px;
}

/* The essentials strip: one scannable row of every basic the deal has.
   Auto-fit so a hotel with fifteen facts wraps into tidy columns while a
   thin land deal shows three and stops. */
.kp-portal .kp-acq-essentials {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(126px, 1fr));
    gap: 0;
    background: #FAFBFD;
    border: 1px solid #E6EAF2;
    border-radius: 10px;
    overflow: hidden;
    margin: 0 0 12px;
}
/* Separators live on the cells, not on grid gaps, so a partly-filled last
   row reads as empty space rather than a grey block. */
.kp-portal .kp-acq-ess {
    padding: 8px 10px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    border-right: 1px solid #E9EDF4;
    border-bottom: 1px solid #E9EDF4;
}
.kp-portal .kp-acq-ess-k {
    font-size: 10.5px;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #8A94A8;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.kp-portal .kp-acq-ess-v {
    font-size: 13.5px;
    font-weight: 600;
    color: #17233f;
    line-height: 1.3;
    overflow-wrap: anywhere;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
@media (max-width: 640px) {
    .kp-portal .kp-acq-essentials { grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); }
    .kp-portal .kp-acq-ess-v { font-size: 12.5px; }
}

/* Mandate filter row — a second axis under the stage groups. */
.kp-portal .kp-seg-nav-mandate { align-items: center; margin-top: -6px; }
.kp-portal .kp-seg-nav-label {
    font-size: 10.5px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #8A94A8;
    margin-right: 2px;
}
.kp-portal .kp-seg-nav a.kp-seg-alert { border-color: #E3B341; }
.kp-portal .kp-seg-nav a.kp-seg-alert b { color: #B07D13; }
.kp-portal .kp-seg-nav a.kp-seg-alert.is-active { background: #B07D13; border-color: #B07D13; }
.kp-portal .kp-seg-nav a.kp-seg-alert.is-active b { color: rgba(255,255,255,.8); }

.kp-portal .kp-badge-mandate { background: #EEF2FA; color: #33507F; border-color: #D3DDEF; }

/* Asset-class fact grid in the edit form. */
.kp-portal .kp-acq-form-legend {
    margin: 12px 0 6px;
    font-size: 11px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #8A94A8;
}
.kp-portal .kp-acq-form-facts {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 8px 12px;
    margin-bottom: 4px;
}

/* ============================================================
   WL52 — teasers, public listing page, client properties
   ============================================================ */

/* ---- operator: teaser builder ---- */
.kp-portal .kp-acq-teaser-toggle .kp-badge { margin-left: 8px; vertical-align: middle; }
.kp-portal .kp-acq-teaser-toggle .kp-console-meta { margin-left: 8px; font-size: 11.5px; }

.kp-portal .kp-teaser-blocks {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 6px 14px;
    margin: 0 0 10px;
}
/* .kp-acq-form label is a 1-col grid with full-width inputs, which stacks the
   checkbox above the text and stretches it. These blocks are checkbox-first
   rows, so the layout is re-declared at matching specificity. */
.kp-portal .kp-acq-form label.kp-teaser-block,
.kp-portal .kp-teaser-block {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 8px;
    padding: 7px 9px;
    border: 1px solid #E6EAF2;
    border-radius: 8px;
    background: #FAFBFD;
    cursor: pointer;
    font-size: 12.5px;
    font-weight: 400;
}
.kp-portal .kp-acq-form label.kp-teaser-block > input[type="checkbox"],
.kp-portal .kp-teaser-block > input[type="checkbox"] {
    width: 15px;
    min-width: 15px;
    flex: 0 0 15px;
    margin: 2px 0 0;
    padding: 0;
}
.kp-portal .kp-teaser-block > span { min-width: 0; }
.kp-portal .kp-teaser-block b { display: block; color: #17233f; font-weight: 600; }
.kp-portal .kp-teaser-block em { display: block; font-style: normal; color: #7C879C; font-size: 11.5px; line-height: 1.4; margin-top: 1px; }
/* Blocks that are off by default are the ones that identify the property. */
.kp-portal .kp-teaser-block.is-sensitive { border-color: #EBD9B4; background: #FDFAF3; }

.kp-portal .kp-teaser-photos { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 6px; }
.kp-portal .kp-teaser-photo { position: relative; cursor: pointer; display: block; }
.kp-portal .kp-teaser-photo img {
    width: 88px; height: 66px; object-fit: cover;
    border-radius: 7px; border: 2px solid transparent; display: block;
    opacity: .45; transition: opacity .12s, border-color .12s;
}
.kp-portal .kp-acq-form label.kp-teaser-photo,
.kp-portal .kp-teaser-photo { display: block; }
.kp-portal .kp-acq-form label.kp-teaser-photo > input[type="checkbox"],
.kp-portal .kp-teaser-photo > input[type="checkbox"] {
    position: absolute; top: 5px; left: 5px; z-index: 2;
    width: 15px; min-width: 15px; margin: 0; padding: 0;
}
.kp-portal .kp-teaser-photo input:checked + img { opacity: 1; border-color: var(--kp-navy, #10131a); }

.kp-portal .kp-teaser-ops { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 12px 0 4px; }
.kp-portal .kp-teaser-ttl { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: #5b6880; }
.kp-portal .kp-teaser-ttl input { width: 62px; }

.kp-portal .kp-teaser-targets { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.kp-portal .kp-teaser-target {
    display: inline-flex; align-items: center; gap: 4px;
    background: #EEF2FA; border: 1px solid #D3DDEF; border-radius: 999px;
    padding: 3px 6px 3px 10px; font-size: 12px; color: #33507F;
}
.kp-portal .kp-teaser-target button {
    background: none; border: 0; color: #7C879C; cursor: pointer;
    font-size: 15px; line-height: 1; padding: 0 3px;
}
.kp-portal .kp-teaser-target button:hover { color: #B4232A; }

.kp-portal .kp-teaser-req {
    display: flex; justify-content: space-between; align-items: center; gap: 10px;
    padding: 8px 10px; border: 1px solid #E6EAF2; border-radius: 8px;
    background: #FAFBFD; margin-bottom: 6px; flex-wrap: wrap;
}
.kp-portal .kp-teaser-req .kp-console-meta { display: block; font-size: 11.5px; }
.kp-portal .kp-teaser-req-actions { display: flex; gap: 6px; }

/* ---- public teaser page ---- */
.kp-portal .kp-teaser-wrap { max-width: 900px; margin: 0 auto; padding: 24px 18px 48px; }
.kp-portal .kp-teaser-head { margin-bottom: 16px; }
.kp-portal .kp-teaser-head h1 { margin: 2px 0 4px; }
.kp-portal .kp-teaser-loc { color: #5b6880; font-size: 14px; margin: 0; }
.kp-portal .kp-teaser-hero {
    border-radius: 14px; overflow: hidden; margin-bottom: 16px;
    box-shadow: 0 6px 24px rgba(16,19,26,.10);
}
.kp-portal .kp-teaser-hero img { width: 100%; height: 400px; object-fit: cover; display: block; }
.kp-portal .kp-teaser-card { margin-bottom: 16px; }
.kp-portal .kp-teaser-blurb { color: #33405c; line-height: 1.65; }
.kp-portal .kp-teaser-gallery {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px;
}
.kp-portal .kp-teaser-gallery img {
    width: 100%; height: 120px; object-fit: cover; border-radius: 9px; display: block;
}
.kp-portal .kp-teaser-cta {
    display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap;
}
.kp-portal .kp-teaser-cta h2 { margin: 0 0 4px; font-size: 17px; }
.kp-portal .kp-teaser-cta-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.kp-portal .kp-teaser-disclaimer {
    color: #8A94A8; font-size: 11.5px; line-height: 1.5; text-align: center; margin: 6px 0 0;
}
@media (max-width: 640px) {
    .kp-portal .kp-teaser-hero img { height: 220px; }
    .kp-portal .kp-teaser-cta { flex-direction: column; align-items: flex-start; }
}

/* ============================================================
   WL53 — compact property cards, detail page, mandate proof
   ============================================================ */

/* ---- client properties: horizontal listing rows ---- */
.kp-portal .kp-prop-list {
    border: 1px solid var(--kp-border, #E1E6F0);
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
}
.kp-portal .kp-prop-row {
    display: grid;
    grid-template-columns: 168px minmax(210px, 1.05fr) minmax(0, 2fr) auto;
    gap: 0 22px;
    align-items: center;
    padding: 14px 18px 14px 14px;
    border-bottom: 1px solid var(--kp-border, #E8ECF4);
    transition: background .12s ease;
}
.kp-portal .kp-prop-row:last-child { border-bottom: 0; }
.kp-portal .kp-prop-row:hover { background: #FAFBFE; }

.kp-portal .kp-prop-row-media {
    position: relative;
    display: block;
    width: 168px;
    height: 112px;
    border-radius: 9px;
    overflow: hidden;
    background: #E9EDF4;
}
/* Fixed frame, cropped fill — never a stretched image. */
.kp-portal .kp-prop-row-media img {
    width: 100%; height: 100%; object-fit: cover; display: block;
}
.kp-portal .kp-prop-row-media .kp-prop-nophoto { display: block; width: 100%; height: 100%; }
.kp-portal .kp-prop-row .kp-prop-flag {
    position: absolute; top: 6px; left: 6px;
    background: #1E7B4D; color: #fff; border-color: #1E7B4D;
    font-size: 10px; padding: 2px 6px;
}
.kp-portal .kp-prop-row .kp-prop-flag-pending { background: #B07D13; border-color: #B07D13; }

.kp-portal .kp-prop-row-head { min-width: 0; }
.kp-portal .kp-prop-row-head h2 {
    margin: 0 0 3px; font-size: 16px; font-weight: 600; line-height: 1.3;
}
.kp-portal .kp-prop-row-head h2 a { color: var(--kp-navy, #16233C); text-decoration: none; }
.kp-portal .kp-prop-row-head h2 a:hover { text-decoration: underline; }
.kp-portal .kp-prop-row-price {
    margin: 0 0 3px; font-size: 14.5px; font-weight: 600; color: #16233C;
}
.kp-portal .kp-prop-row-loc {
    margin: 0; font-size: 12.5px; font-weight: 500; color: #5C7091; line-height: 1.4;
}

.kp-portal .kp-prop-row-facts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(112px, 1fr));
    gap: 10px 18px;
    margin: 0;
    min-width: 0;
}
.kp-portal .kp-prop-row-facts > div { min-width: 0; }
.kp-portal .kp-prop-row-facts dt {
    font-size: 9.5px; letter-spacing: .06em; text-transform: uppercase;
    color: #8794AC; font-weight: 600; margin-bottom: 2px;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.kp-portal .kp-prop-row-facts dd {
    margin: 0; font-size: 12.5px; font-weight: 600; color: #1B2942; line-height: 1.35;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.kp-portal .kp-prop-row-cta { white-space: nowrap; }
.kp-portal .kp-prop-row-cta .kp-button { padding: 8px 16px; }

@media (max-width: 1100px) {
    .kp-portal .kp-prop-row {
        grid-template-columns: 140px minmax(0, 1fr) auto;
        grid-template-areas: "media head cta" "media facts facts";
        row-gap: 12px;
    }
    .kp-portal .kp-prop-row-media { grid-area: media; width: 140px; height: 96px; align-self: start; }
    .kp-portal .kp-prop-row-head { grid-area: head; }
    .kp-portal .kp-prop-row-facts { grid-area: facts; }
    .kp-portal .kp-prop-row-cta { grid-area: cta; align-self: start; }
}
@media (max-width: 640px) {
    .kp-portal .kp-prop-row {
        grid-template-columns: 1fr;
        grid-template-areas: "media" "head" "facts" "cta";
        padding: 14px;
    }
    .kp-portal .kp-prop-row-media { width: 100%; height: 170px; }
    .kp-portal .kp-prop-row-facts { grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); }
    .kp-portal .kp-prop-row-cta .kp-button { display: block; text-align: center; }
}

/* ---- submitted-opportunity vetting ---- */
.kp-portal .kp-acq-submission > summary .kp-badge { margin-left: 8px; vertical-align: middle; }
.kp-portal .kp-sub-who {
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
    padding: 9px 11px; border: 1px solid #E6EAF2; border-radius: 8px;
    background: #FAFBFD; margin-bottom: 10px;
}
.kp-portal .kp-sub-answers {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 8px 14px; margin-bottom: 6px;
}
.kp-portal .kp-sub-answer {
    padding: 7px 10px; border: 1px solid #E6EAF2; border-radius: 8px; background: #fff; min-width: 0;
}
.kp-portal .kp-sub-answer-k {
    display: block; font-size: 9.5px; letter-spacing: .05em; text-transform: uppercase;
    color: #8794AC; font-weight: 600; margin-bottom: 2px;
}
.kp-portal .kp-sub-answer-v { display: block; font-size: 12.5px; color: #1B2942; line-height: 1.4; }
.kp-portal .kp-sub-req {
    font-style: normal; font-size: 10px; text-transform: uppercase; letter-spacing: .05em;
    color: #B07D13; margin-left: 6px;
}
.kp-portal .kp-sub-approve {
    margin-top: 12px; padding-top: 10px; border-top: 1px dashed #E1E6F0;
    display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
}
.kp-portal .kp-sub-approve p { margin: 0; flex: 1 1 260px; }

/* ---- property detail page ---- */
.kp-portal .kp-propd-layout {
    display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 16px; align-items: start;
}
.kp-portal .kp-propd-main { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.kp-portal .kp-propd-hero { border-radius: 14px; overflow: hidden; box-shadow: 0 6px 24px rgba(16,19,26,.10); }
.kp-portal .kp-propd-hero img { width: 100%; height: 340px; object-fit: cover; display: block; }
.kp-portal .kp-propd-side { position: sticky; top: 16px; display: flex; flex-direction: column; gap: 10px; }
.kp-portal .kp-propd-actions { display: flex; flex-direction: column; gap: 10px; align-items: stretch; }
.kp-portal .kp-propd-actions h2 { margin: 0; font-size: 16px; }
.kp-portal .kp-propd-actions .kp-button { text-align: center; }
.kp-portal .kp-prop-blurb { color: #33405c; font-size: 13.5px; line-height: 1.65; }
.kp-portal .kp-prop-blurb p { margin: 0 0 8px; }
.kp-portal .kp-prop-full-notes { border-left: 3px solid #1E7B4D; padding-left: 12px; }
@media (max-width: 900px) {
    .kp-portal .kp-propd-layout { grid-template-columns: 1fr; }
    .kp-portal .kp-propd-side { position: static; }
    .kp-portal .kp-propd-hero img { height: 220px; }
}

/* ---- mandate proof ---- */
.kp-portal .kp-acq-mandate > summary .kp-badge { margin-left: 8px; vertical-align: middle; }
.kp-portal .kp-mandate-gap {
    border: 1px solid #EBD9B4; background: #FDFAF3; border-radius: 9px;
    padding: 10px 12px; margin: 0 0 12px; font-size: 12.5px; color: #6B5A2E;
}
.kp-portal .kp-mandate-gap p { margin: 0 0 6px; }
.kp-portal .kp-mandate-gap ul { margin: 0; padding-left: 18px; }
.kp-portal .kp-mandate-gap li { margin-bottom: 3px; }
.kp-portal .kp-mandate-doc {
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
    padding: 7px 10px; border: 1px solid #E6EAF2; border-radius: 8px;
    background: #FAFBFD; margin-bottom: 6px;
}
.kp-portal .kp-mandate-doc-name { flex: 1 1 220px; font-size: 12.5px; font-weight: 600; color: #17233f; min-width: 0; }
.kp-portal .kp-mandate-pick { margin-bottom: 10px; }
.kp-portal .kp-mandate-blocked { color: #B07D13; font-weight: 600; }
/* Same override as the teaser blocks: .kp-acq-form label is a stacked grid. */
.kp-portal .kp-acq-form label.kp-mandate-check,
.kp-portal .kp-mandate-check {
    display: flex; flex-direction: row; align-items: center; gap: 8px;
    font-size: 12.5px; font-weight: 400; margin: 4px 0 8px;
}
.kp-portal .kp-acq-form label.kp-mandate-check > input[type="checkbox"],
.kp-portal .kp-mandate-check > input[type="checkbox"] {
    width: 15px; min-width: 15px; flex: 0 0 15px; margin: 0; padding: 0;
}

/* wl55 — files carried over from a submission, filed as nothing yet */
.kp-portal .kp-mandate-doc-raw { border-style: dashed; background: #FCFDFF; }
.kp-portal .kp-mandate-doc-raw .kp-mandate-doc-name { color: #5C7091; font-weight: 500; }

/* wl209 — content-profile gatekeeper results stay readable inside compact slots. */
.kp-portal .kp-doc-gate-note {
    flex: 1 1 100%;
    margin-left: min(230px, 18vw);
    color: #5c6880;
    line-height: 1.45;
}
.kp-portal .kp-mandate-doc > .kp-ps-red { color: #b42318; border-color: #f5b7b1; background: #fff1f0; }
@media (max-width: 760px) {
    .kp-portal .kp-doc-gate-note { margin-left: 0; }
}

/* ============================================================
   WL56/57 — portfolio, counterparty desks, client control
   ============================================================ */
.kp-portal .kp-metric-row {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 12px; margin-bottom: 16px;
}

/* ---- client access & requirements tab ---- */
.kp-portal .kp-ca-block { margin-bottom: 18px; }
.kp-portal .kp-ca-row {
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
    padding: 8px 11px; border: 1px solid #E6EAF2; border-radius: 8px;
    background: #FAFBFD; margin-bottom: 6px;
}
.kp-portal .kp-ca-row-main { flex: 1 1 260px; min-width: 0; }
.kp-portal .kp-ca-row-main b { display: block; font-size: 13px; color: #17233f; }
.kp-portal .kp-ca-row-main .kp-console-meta { display: block; font-size: 11.5px; }
.kp-portal .kp-ca-assign { margin-top: 10px; }

/* ---- client management grid ---- */
.kp-portal .kp-clients-table { padding: 0; overflow: hidden; }
.kp-portal .kp-clients-tr {
    display: grid;
    grid-template-columns: 34px minmax(150px, 1.5fr) minmax(0, 1fr) 88px 88px 96px 116px 88px;
    gap: 14px; align-items: center;
    padding: 10px 14px; border-bottom: 1px solid #EDF1F7; font-size: 12.5px;
}
.kp-portal .kp-clients-tr:last-child { border-bottom: 0; }
.kp-portal .kp-clients-head {
    background: #F7F9FC; font-size: 9.5px; text-transform: uppercase;
    letter-spacing: .04em; color: #8794AC; font-weight: 600; line-height: 1.3;
}
.kp-portal .kp-clients-head > span { overflow: hidden; }
.kp-portal .kp-clients-tr:not(.kp-clients-head):hover { background: #FAFBFE; }
.kp-portal .kp-clients-name { min-width: 0; }
.kp-portal .kp-clients-name b { display: block; color: #17233f; }
.kp-portal .kp-clients-name em {
    display: block; font-style: normal; color: #8794AC; font-size: 11.5px;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.kp-portal .kp-clients-bulk {
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 14px;
}
.kp-portal .kp-clients-bulk select { max-width: 260px; }
/* Editions without the client-control layer render five columns, not seven. */
.kp-portal .kp-clients-table.is-plain .kp-clients-tr {
    grid-template-columns: 34px minmax(180px, 2fr) minmax(0, 1.2fr) 96px 96px 96px;
}
@media (max-width: 1000px) {
    .kp-portal .kp-clients-tr { grid-template-columns: 30px 1.6fr 1fr 84px 92px; }
    .kp-portal .kp-clients-tr > span:nth-child(6),
    .kp-portal .kp-clients-tr > span:nth-child(7) { display: none; }
}

/* wl58 — the card you were sent to, so it is obvious which one opened */
.kp-portal .kp-acq-deal.is-focused {
    outline: 2px solid var(--kp-navy, #10131a);
    outline-offset: -2px;
    scroll-margin-top: 84px;
}

/* wl59 — client access controls + merged people list */
.kp-portal .kp-ca-bulkbar {
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
    padding: 9px 11px; border: 1px solid #E1E6F0; border-radius: 8px;
    background: #F5F8FD; margin-bottom: 8px;
}
.kp-portal .kp-ca-bulkbar .kp-console-meta { flex: 1 1 auto; }
.kp-portal .kp-ca-hint { margin: 0 0 10px; font-size: 11.5px; }
.kp-portal .kp-clients-intro .kp-crm-toolbar { margin-top: 12px; }

/* wl61 — portfolio asset drawer. The shared drawer body strips card chrome,
   which suits a form panel but flattens metric tiles, so it is restored
   locally rather than by weakening the shared rule. */
.kp-portal .kp-asset-panel { width: min(760px, 96vw); }
.kp-portal .kp-asset-loc { margin: -4px 0 14px; font-size: 13px; }
.kp-portal .kp-asset-hero {
    border-radius: 12px; overflow: hidden; margin-bottom: 16px;
    box-shadow: 0 6px 20px rgba(16,19,26,.10);
}
.kp-portal .kp-asset-hero img { width: 100%; height: 240px; object-fit: cover; display: block; }
/* Seven-figure currency needs room; four across at 132px clipped it. */
.kp-portal .kp-asset-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 16px; }
/* The global metric type scale is locked with !important (see the
   --font-size-metric rule around line 10072), so a drawer-sized tile cannot
   opt out on specificity alone. Overriding in the same idiom rather than
   inventing a second mechanism. */
.kp-portal .kp-gs-drawer-body .kp-asset-metrics .kp-metric-card > strong {
    font-size: 21px !important;
    line-height: 1.15 !important;
    letter-spacing: -.01em;
}
@media (min-width: 720px) {
    .kp-portal .kp-asset-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .kp-portal .kp-gs-drawer-body .kp-asset-metrics .kp-metric-card > strong { font-size: 18px !important; }
}
.kp-portal .kp-gs-drawer-body .kp-asset-metrics .kp-card {
    border: 1px solid var(--kp-border, #E1E6F0); padding: 12px 14px; border-radius: 10px;
}
.kp-portal .kp-gs-drawer-body > .kp-card {
    border: 1px solid var(--kp-border, #E1E6F0);
    border-radius: 10px; padding: 14px 16px; margin-bottom: 14px;
}
.kp-portal .kp-gs-drawer-body > .kp-card .kp-section-heading h2 { font-size: 14px; }
.kp-portal .kp-asset-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 4px; }
@media (max-width: 900px) {
    .kp-portal .kp-asset-panel { width: 100vw; }
    .kp-portal .kp-asset-hero img { height: 170px; }
}

/* wl62 — deal card in a drawer, new-deal drawer, copilot-needs-key state */
.kp-portal .kp-acq-layout-wide { grid-template-columns: 1fr; }
.kp-portal .kp-acq-newbar { margin: 0 0 14px; }
.kp-portal .kp-newdeal-panel { width: min(620px, 96vw); }
.kp-portal .kp-newdeal-panel .kp-section-heading { display: none; }
/* Inside the drawer the card IS the content: no summary chrome, no border. */
.kp-portal .kp-asset-record { margin-top: 4px; }
/* Padding 0 put the right-aligned summary labels flush against the drawer
   edge, where nowrap text painted past its shrunk flex box. A little inline
   padding plus min-width:0 on the rows fixes it without touching the card as
   the pipeline renders it. */
.kp-portal .kp-acq-deal-bare { border: 0; box-shadow: none; padding: 0 2px; }
.kp-portal .kp-acq-deal-bare summary,
.kp-portal .kp-acq-deal-bare .kp-acq-edit-toggle { flex-wrap: wrap; min-width: 0; }
.kp-portal .kp-acq-deal-bare .kp-acq-edit-toggle > * { min-width: 0; }
.kp-portal .kp-acq-deal-bare > summary { display: none; }
.kp-portal .kp-asset-panel { width: min(900px, 96vw); }
.kp-portal .kp-cop-fab-off { opacity: .72; }
.kp-portal .kp-cop-fab-off:hover { opacity: 1; }

/* wl63 — AI engine status */
.kp-portal .kp-ai-card { margin-bottom: 16px; }
.kp-portal .kp-ai-status {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px 16px; margin: 12px 0 14px;
}
.kp-portal .kp-ai-status > div {
    padding: 9px 11px; border: 1px solid #E6EAF2; border-radius: 8px; background: #FAFBFD; min-width: 0;
}
.kp-portal .kp-ai-status span {
    display: block; font-size: 9.5px; letter-spacing: .05em; text-transform: uppercase;
    color: #8794AC; font-weight: 600; margin-bottom: 2px;
}
.kp-portal .kp-ai-status b { font-size: 13px; color: #17233f; word-break: break-word; }
.kp-portal .kp-ai-form { margin-top: 12px; }

/* ===================================================================
   wl64 — Deals rail: map, area statistics, docked copilot
   =================================================================== */

/* The pipeline keeps the wider column; the rail is fixed-width so the map
   and the copilot never squeeze the deal cards below a readable width. */
.kp-portal .kp-acq-layout-rail { grid-template-columns: minmax(0, 1fr) 384px; align-items: start; }
/* One column, one screen: the rail never scrolls as a whole, so the copilot
   stays in view at the bottom no matter how long the pipeline is. The map is
   fixed height; the area panel and the chat split what is left and scroll
   inside themselves. */
.kp-portal .kp-acq-rail { position: sticky; top: 16px; display: flex; flex-direction: column; gap: 12px; height: calc(100vh - 32px); }
.kp-portal .kp-rail-map-card { flex: 0 0 auto; }
.kp-portal .kp-rail-market-card { flex: 1 1 0; min-height: 112px; display: flex; flex-direction: column; overflow: hidden; }
.kp-portal .kp-rail-cop-card { flex: 3.2 1 0; min-height: 320px; display: flex; flex-direction: column; overflow: hidden; }
.kp-portal .kp-rail-card { padding: 12px 14px; margin: 0; }
.kp-portal .kp-rail-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.kp-portal .kp-rail-head .kp-eyebrow { margin: 0; }
.kp-portal .kp-rail-pick { max-width: 210px; font-size: 12px; padding: 3px 6px; border: 1px solid var(--kp-border, #d5dcea); border-radius: 8px; background: #fff; }

/* Map */
.kp-portal .kp-rail-map { height: 158px; border-radius: 12px; overflow: hidden; border: 1px solid var(--kp-border, #d5dcea); background: #eef2f8; }
.kp-portal .kp-rail-map-card { padding-bottom: 10px; }
.kp-portal .kp-rail-mapnote:empty { display: none; }
.kp-portal .kp-rail-mapnote { margin: 8px 0 0; font-size: 11.5px; }
/* Leaflet injects its own absolutely-positioned furniture; the portal's
   global img and a rules would otherwise reformat the tiles and controls. */
.kp-portal .kp-rail-map img { max-width: none; border-radius: 0; box-shadow: none; margin: 0; }
.kp-portal .kp-rail-map a { text-decoration: none; box-shadow: none; }
.kp-portal .kp-rail-map .leaflet-container { font: inherit; }
.kp-portal .kp-rail-map .leaflet-control-attribution { font-size: 9.5px; }
.kp-portal .kp-rail-map .leaflet-popup-content { font-size: 12px; line-height: 1.45; margin: 8px 10px; }

/* Area statistics */
.kp-portal .kp-rail-market-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.kp-portal .kp-mkt-head { display: flex; flex-direction: column; gap: 2px; margin-bottom: 10px; }
.kp-portal .kp-mkt-head strong { font-size: 13.5px; color: #17233c; }
.kp-portal .kp-mkt-head .kp-console-meta { font-size: 11.5px; }
.kp-portal .kp-mkt-note { margin: 6px 0; font-size: 12px; line-height: 1.5; }
.kp-portal .kp-mkt-block { padding: 10px 0; border-top: 1px solid var(--kp-border, #e3e8f2); }
.kp-portal .kp-mkt-block:first-of-type { border-top: 0; padding-top: 0; }
.kp-portal .kp-mkt-block .kp-eyebrow { margin: 0 0 2px; }
.kp-portal .kp-mkt-place { margin: 0 0 8px; font-size: 11.5px; color: #5a6478; }
.kp-portal .kp-mkt-figs { margin: 0; display: grid; gap: 0; }
.kp-portal .kp-mkt-figs > div { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 4px 0; border-bottom: 1px dotted #e3e8f2; }
.kp-portal .kp-mkt-figs > div:last-child { border-bottom: 0; }
.kp-portal .kp-mkt-figs dt { margin: 0; font-size: 11.5px; color: #5a6478; font-weight: 400; }
.kp-portal .kp-mkt-figs dd { margin: 0; font-size: 12.5px; font-weight: 700; color: #17233c; white-space: nowrap; }
.kp-portal .kp-mkt-figs dd.kp-mkt-up { color: #1c7a4a; }
.kp-portal .kp-mkt-figs dd.kp-mkt-down { color: #b3261e; }
.kp-portal .kp-mkt-more { margin-top: 8px; }
.kp-portal .kp-mkt-more > summary { cursor: pointer; font-size: 11.5px; color: var(--kp-navy); list-style: none; }
.kp-portal .kp-mkt-more > summary::-webkit-details-marker { display: none; }
.kp-portal .kp-mkt-more > summary::before { content: "▸ "; }
.kp-portal .kp-mkt-more[open] > summary::before { content: "▾ "; }
.kp-portal .kp-mkt-src { margin: 10px 0 0; font-size: 10.5px; color: #8a93a6; line-height: 1.45; }
.kp-portal .kp-rail-actions { flex: 0 0 auto; display: flex; gap: 8px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--kp-border, #e3e8f2); }
.kp-portal .kp-rail-actions .kp-button { flex: 1; }

/* Copilot, docked. Same panel as the floating one — repositioned, not
   reimplemented, so there is only ever one chat to maintain. */
.kp-portal .kp-rail-cop-card { padding-bottom: 0; }
.kp-portal .kp-cop-panel.is-docked { position: static; width: auto; flex: 1 1 auto; height: auto; min-height: 0; right: auto; bottom: auto; border: 0; border-radius: 0; box-shadow: none; margin: 0 -14px; }
.kp-portal .kp-cop-panel.is-docked .kp-cop-head { display: none; }
.kp-portal .kp-cop-panel.is-docked .kp-cop-head strong { display: none; }
.kp-portal .kp-cop-panel.is-docked [data-kp-cop-close] { display: none; }
.kp-portal .kp-cop-panel.is-docked .kp-cop-remaining { margin-left: 0; }
.kp-portal .kp-cop-panel.is-docked .kp-cop-msgs { background: #fbfcff; padding: 12px 14px; gap: 12px; border-top: 1px solid var(--kp-border, #e3e8f2); }
.kp-portal .kp-cop-panel.is-docked .kp-cop-msg { max-width: 92%; font-size: 13px; line-height: 1.55; }
.kp-portal .kp-cop-panel.is-docked .kp-cop-form { padding: 9px 12px; }
.kp-portal .kp-cop-panel.is-docked .kp-cop-disclaimer { padding: 4px 12px 8px; font-size: 10px; }

/* Full-height chat on demand. The map and the area figures are reference —
   once they have been read, the conversation is the work, and on a laptop
   screen it deserves the whole rail. Remembered per browser. */
.kp-portal .kp-cop-max { margin-left: auto; padding: 2px 7px; border: 1px solid var(--kp-border, #d5dcea); border-radius: 7px; background: #fff; color: #5a6478; font-size: 12px; line-height: 1.4; cursor: pointer; }
.kp-portal .kp-cop-max:hover { border-color: var(--kp-navy); color: var(--kp-navy); }
.kp-portal .kp-acq-rail.is-cop-max .kp-rail-map-card,
.kp-portal .kp-acq-rail.is-cop-max .kp-rail-market-card { display: none; }
.kp-portal .kp-acq-rail.is-cop-max .kp-rail-cop-card { flex: 1 1 auto; }

@media (max-width: 1180px) {
    .kp-portal .kp-acq-layout-rail { grid-template-columns: 1fr; }
    .kp-portal .kp-acq-rail { position: static; height: auto; }
    .kp-portal .kp-rail-market-card, .kp-portal .kp-rail-cop-card { flex: 0 0 auto; }
    .kp-portal .kp-acq-rail.is-cop-max .kp-rail-map-card,
    .kp-portal .kp-acq-rail.is-cop-max .kp-rail-market-card { display: block; }
    .kp-portal .kp-rail-market-body { max-height: 460px; }
    .kp-portal .kp-cop-panel.is-docked { height: 460px; flex: 0 0 auto; }
}

/* ===================================================================
   wl65 — deal card section bar (sections moved to the drawer)
   =================================================================== */

/* The old inline rows had an icon at the far left and a label that landed
   wherever the flex fell — right-aligned for one section, centred for the
   next. These are one shape: a pill, label then count, every row identical. */
.kp-portal .kp-acq-secbar { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--kp-border, #e3e8f2); }
.kp-portal .kp-acq-sec { display: inline-flex; align-items: center; gap: 8px; padding: 6px 11px; border: 1px solid var(--kp-border, #d5dcea); border-radius: 999px; background: #fff; font-size: 12.5px; line-height: 1.2; color: #17233c; text-decoration: none; box-shadow: none; transition: border-color .12s ease, background .12s ease; }
.kp-portal .kp-acq-sec:hover { border-color: var(--kp-navy); background: #f6f9ff; color: #17233c; text-decoration: none; }
.kp-portal .kp-acq-sec-label { font-weight: 600; }
.kp-portal .kp-acq-sec-meta { padding: 1px 7px; border-radius: 999px; background: #eef2fb; color: #5a6478; font-size: 11px; font-weight: 700; white-space: nowrap; }
.kp-portal .kp-acq-sec-meta.kp-acq-sec-amber { background: #fdf1dc; color: #8a5a06; }
.kp-portal .kp-acq-sec-meta.kp-acq-sec-green { background: #e2f4e9; color: #1c7a4a; }
.kp-portal .kp-acq-sec.is-primary { border-color: var(--kp-navy); color: var(--kp-navy); }
.kp-portal .kp-acq-sec.is-primary:hover { background: var(--kp-navy); color: #fff; }

/* The section drawer. Wider than the record drawers because the scope-of-work
   and teaser panels are working tables, not summaries. */
.kp-portal .kp-sec-panel { width: min(760px, 100vw); }
.kp-portal .kp-sec-forwhat { display: flex; flex-direction: column; gap: 2px; margin: 0 0 16px; padding-bottom: 12px; border-bottom: 1px solid var(--kp-border, #e3e8f2); font-weight: 700; color: #17233c; }
.kp-portal .kp-sec-forwhat .kp-console-meta { font-weight: 400; }
/* Inside the drawer a section is the whole subject, so it does not need to be
   an expander any more — it is open, and its own summary row is redundant. */
.kp-portal .kp-sec-panel .kp-acq-edit > summary { display: none; }
.kp-portal .kp-sec-panel .kp-acq-edit { border: 0; padding: 0; margin: 0; background: transparent; }

/* Stacked mode (portfolio asset drawer) keeps the expanders, since several
   sections share the panel there. */
.kp-portal .kp-asset-record .kp-acq-edit > summary { display: flex; }

/* ===================================================================
   wl66 — stage strip, and landing back on the deal you were working on
   =================================================================== */

/* Opening and closing a section drawer are both full page loads, so the
   browser lands at the top. The links carry #deal-N; this keeps the card off
   the very edge of the viewport when it jumps there. */
.kp-portal .kp-acq-deal { scroll-margin-top: 18px; }

/* Third filter tier: groups, then mandate, then stage. Same pill idiom as the
   two above it — this was eleven metric cards two rows deep. */
.kp-portal .kp-seg-nav-stage { align-items: center; margin-top: -6px; }
.kp-portal .kp-seg-nav-stage a { font-size: 12px; padding: 5px 11px; }
.kp-portal .kp-seg-nav-stage a b { font-size: 11px; }

/* ===================================================================
   wl67 — destructive actions
   =================================================================== */

/* Deletes are set apart rather than dropped in the button row: a delete that
   sits beside Save is a delete that gets clicked by accident. */
.kp-portal .kp-danger { margin-top: 20px; padding: 14px; border: 1px solid #f0d3d0; border-radius: 12px; background: #fdf7f6; }
.kp-portal .kp-danger-inline { margin-top: 14px; padding: 10px 12px; }
.kp-portal .kp-danger-head { margin: 0 0 4px; font-size: 13px; font-weight: 700; color: #a3231a; }
.kp-portal .kp-danger .kp-console-meta { margin: 0 0 10px; line-height: 1.5; }
.kp-portal .kp-danger-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; margin: 0; }
.kp-portal .kp-danger-form label { flex: 1 1 260px; margin: 0; font-size: 12px; }
.kp-portal .kp-button-danger { border-color: #d9534f; background: #fff; color: #b3261e; }
.kp-portal .kp-button-danger:hover { background: #b3261e; border-color: #b3261e; color: #fff; }
.kp-portal .kp-linklike-danger { color: #b3261e; }

/* ===================================================================
   wl68 — archive
   =================================================================== */

/* Archiving is routine, not destructive: the block keeps the set-apart shape
   of a danger zone but drops the red, so the two read differently at a glance. */
.kp-portal .kp-danger-soft { border-color: var(--kp-border, #d5dcea); background: #f7f9fd; }
.kp-portal .kp-danger-soft .kp-danger-head { color: #17233c; }

.kp-portal .kp-seg-nav a.kp-seg-archived { border-style: dashed; }
.kp-portal .kp-seg-nav a.kp-seg-archived.is-active { border-style: solid; background: #5a6478; border-color: #5a6478; }
.kp-portal .kp-seg-nav-clients { margin-top: 10px; }

.kp-portal .kp-arch-group + .kp-arch-group { margin-top: 6px; }
.kp-portal .kp-arch-list { display: grid; gap: 8px; }
.kp-portal .kp-arch-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 12px; border: 1px solid var(--kp-border, #e3e8f2); border-radius: 10px; background: #fff; }
.kp-portal .kp-arch-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.kp-portal .kp-arch-main strong { font-size: 13.5px; color: #17233c; }
.kp-portal .kp-arch-main .kp-console-meta,
.kp-portal .kp-arch-main .kp-console-when { font-size: 11.5px; }
.kp-portal .kp-arch-side { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.kp-portal .kp-arch-del button { font-size: 11.5px; }
@media (max-width: 700px) {
    .kp-portal .kp-arch-row { flex-direction: column; align-items: stretch; }
    .kp-portal .kp-arch-side { justify-content: flex-end; }
}

/* ===================================================================
   wl69 — quote comparison grid
   =================================================================== */

.kp-portal .kp-q-block { margin-top: 14px; }
.kp-portal .kp-q-block:first-child { margin-top: 0; }
.kp-portal .kp-q-scroll { overflow-x: auto; margin: 8px 0 0; }
.kp-portal .kp-q-grid { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.kp-portal .kp-q-grid th,
.kp-portal .kp-q-grid td { padding: 8px 10px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--kp-border, #e3e8f2); }
.kp-portal .kp-q-grid thead th { background: #f6f8fd; font-size: 11.5px; text-transform: none; white-space: nowrap; }
.kp-portal .kp-q-grid tbody th { font-weight: 600; color: #17233c; max-width: 240px; }
.kp-portal .kp-q-grid td b { font-size: 13px; color: #17233c; }
.kp-portal .kp-q-who { display: block; font-weight: 700; color: #17233c; }
.kp-portal .kp-q-meta { display: block; font-size: 10.5px; font-weight: 400; color: #8a93a6; line-height: 1.4; }
.kp-portal .kp-q-est { color: #5a6478; white-space: nowrap; }
/* The cheapest live number on a line, and the one that actually won. */
.kp-portal .kp-q-best { background: #f2f8f4; }
.kp-portal .kp-q-won { background: #e2f4e9; }
.kp-portal .kp-q-flag { display: block; font-size: 10.5px; font-weight: 700; color: #1c7a4a; text-transform: uppercase; letter-spacing: .3px; }
.kp-portal .kp-q-none { color: #c3cad8; }
.kp-portal .kp-q-award { margin-top: 3px; padding: 2px 8px; border: 1px solid var(--kp-navy); border-radius: 999px; background: #fff; color: var(--kp-navy); font-size: 10.5px; font-weight: 700; cursor: pointer; }
.kp-portal .kp-q-award:hover { background: var(--kp-navy); color: #fff; }
.kp-portal .kp-q-grid tfoot td,
.kp-portal .kp-q-grid tfoot th { border-bottom: 0; border-top: 2px solid var(--kp-border, #d5dcea); }
.kp-portal .kp-q-actions-row td { border-top: 0; padding-top: 0; }
.kp-portal .kp-q-actions-row .kp-console-inline-form { display: inline-block; margin-right: 6px; }
.kp-portal .kp-q-notes { margin-top: 12px; }
.kp-portal .kp-q-notes p { margin: 0 0 8px; font-size: 12px; }

.kp-portal .kp-q-orders { display: grid; gap: 8px; margin-top: 8px; }
.kp-portal .kp-q-order { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border: 1px solid #cfe6d9; border-radius: 10px; background: #f4fbf7; }
.kp-portal .kp-q-order strong { display: block; font-size: 13px; color: #17233c; }
.kp-portal .kp-q-order-side { display: flex; align-items: center; gap: 12px; white-space: nowrap; }
.kp-portal .kp-q-order-side b { font-size: 14px; color: #1c7a4a; }

/* Contractor record: everything they have going, across properties. */
.kp-portal .kp-ctr-book { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--kp-border, #e3e8f2); }
.kp-portal .kp-ctr-stats { display: flex; flex-wrap: wrap; gap: 18px; margin-bottom: 10px; }
.kp-portal .kp-ctr-stats > div { display: flex; flex-direction: column; }
.kp-portal .kp-ctr-stats span { font-size: 10.5px; text-transform: uppercase; letter-spacing: .4px; color: #8a93a6; }
.kp-portal .kp-ctr-stats b { font-size: 15px; color: #17233c; }
.kp-portal .kp-ctr-rows { display: grid; gap: 6px; }
.kp-portal .kp-ctr-row { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px dotted #e3e8f2; font-size: 12.5px; }
.kp-portal .kp-ctr-row:last-child { border-bottom: 0; }

/* ===================================================================
   wl70 — invoices, payments, draws
   =================================================================== */

.kp-portal .kp-inv-summary { display: flex; flex-wrap: wrap; gap: 22px; padding: 12px 14px; margin-bottom: 14px; border: 1px solid var(--kp-border, #e3e8f2); border-radius: 12px; background: #f7f9fd; }
.kp-portal .kp-inv-summary > div { display: flex; flex-direction: column; gap: 1px; }
.kp-portal .kp-inv-summary span { font-size: 10.5px; text-transform: uppercase; letter-spacing: .4px; color: #8a93a6; }
.kp-portal .kp-inv-summary b { font-size: 17px; color: #17233c; }
.kp-portal .kp-inv-summary b.kp-inv-amber { color: #8a5a06; }
.kp-portal .kp-inv-summary em { font-size: 11px; font-style: normal; color: #8a93a6; }
.kp-portal .kp-inv-note { margin: 0 0 12px; }

.kp-portal .kp-inv-list { display: grid; gap: 8px; }
.kp-portal .kp-inv-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 16px; padding: 11px 13px; border: 1px solid var(--kp-border, #e3e8f2); border-radius: 10px; background: #fff; }
.kp-portal .kp-inv-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.kp-portal .kp-inv-main strong { font-size: 13px; color: #17233c; }
.kp-portal .kp-inv-who { font-weight: 400; color: #5a6478; }
.kp-portal .kp-inv-main .kp-console-meta,
.kp-portal .kp-inv-main .kp-console-when { font-size: 11.5px; line-height: 1.5; }
.kp-portal .kp-inv-side { display: flex; align-items: center; gap: 10px; white-space: nowrap; }
.kp-portal .kp-inv-net { display: flex; flex-direction: column; align-items: flex-end; font-size: 14px; font-weight: 700; color: #17233c; }
.kp-portal .kp-inv-net em { font-size: 10px; font-style: normal; font-weight: 400; text-transform: uppercase; letter-spacing: .4px; color: #8a93a6; }
/* The action row spans both columns so a payment form can breathe. */
.kp-portal .kp-inv-acts { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.kp-portal .kp-inv-acts:empty { display: none; }
.kp-portal .kp-inv-acts input[type="text"],
.kp-portal .kp-inv-acts input[type="date"],
.kp-portal .kp-inv-acts select { padding: 4px 8px; border: 1px solid var(--kp-border, #d5dcea); border-radius: 8px; font-size: 12px; }
.kp-portal .kp-inv-acts input[name="amount"] { width: 110px; }
.kp-portal .kp-inv-acts input[name="reference"] { width: 110px; }
.kp-portal .kp-inv-reason { width: 150px; }
.kp-portal .kp-inv-payform { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }

.kp-portal .kp-inv-add { margin-top: 14px; }
.kp-portal .kp-inv-draws { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--kp-border, #e3e8f2); }
.kp-portal .kp-inv-draw { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 12px; margin-bottom: 6px; border: 1px solid #cfe0f2; border-radius: 10px; background: #f5f9fe; }
.kp-portal .kp-inv-draw strong { display: block; font-size: 13px; color: #17233c; }
.kp-portal .kp-inv-draw b { font-size: 14px; color: #17233c; white-space: nowrap; }
.kp-portal .kp-inv-drawform { margin-top: 10px; }
.kp-portal .kp-inv-pick { display: flex; align-items: center; gap: 10px; padding: 5px 0; font-size: 12.5px; border-bottom: 1px dotted #e3e8f2; }
.kp-portal .kp-inv-pick span { flex: 1; min-width: 0; }
.kp-portal .kp-inv-pick b { white-space: nowrap; }
.kp-portal .kp-inv-drawform .kp-button { margin-top: 10px; }
@media (max-width: 760px) {
    .kp-portal .kp-inv-row { grid-template-columns: 1fr; }
    .kp-portal .kp-inv-side { justify-content: flex-start; }
}

/* wl70 — a row that leads somewhere should look like it does. The attribute
   is set by the script only when a real link was found inside, so a row that
   goes nowhere never pretends otherwise. */
.kp-portal [data-kp-rowlink] { cursor: pointer; transition: border-color .12s ease, background .12s ease; }
.kp-portal [data-kp-rowlink]:hover { border-color: #b9c8e8; }
.kp-portal .kp-qrow[data-kp-rowlink]:hover,
.kp-portal .kp-inv-row[data-kp-rowlink]:hover,
.kp-portal .kp-arch-row[data-kp-rowlink]:hover,
.kp-portal .kp-clients-tr[data-kp-rowlink]:hover,
.kp-portal .kp-ctr-row[data-kp-rowlink]:hover { background: #f6f9ff; }
/* Controls inside a clickable row must stay obviously their own thing. */
.kp-portal [data-kp-rowlink] a,
.kp-portal [data-kp-rowlink] button,
.kp-portal [data-kp-rowlink] input,
.kp-portal [data-kp-rowlink] select { cursor: auto; }
.kp-portal [data-kp-rowlink] a,
.kp-portal [data-kp-rowlink] button { cursor: pointer; }
.kp-portal a.kp-inv-who { font-weight: 400; color: #5a6478; text-decoration: none; box-shadow: none; }
.kp-portal a.kp-inv-who:hover { color: var(--kp-navy); }

/* wl71 — quote documents, AI-read flag, and benches that stop shouting */
.kp-portal .kp-q-doc { display: block; font-size: 10.5px; font-weight: 600; color: var(--kp-navy); text-decoration: none; box-shadow: none; margin-top: 1px; }
.kp-portal .kp-q-doc:hover { text-decoration: underline; }
.kp-portal .kp-q-ai { display: inline-block; margin-top: 3px; padding: 1px 6px; border-radius: 999px; background: #fdf1dc; color: #8a5a06; font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px; cursor: help; }
.kp-portal .kp-q-intake { margin-top: 16px; }
/* The edit form on a bench card is a link now, not a wall. */
.kp-portal .kp-bench-edit > summary { cursor: pointer; }
.kp-portal .kp-bench-edit[open] > summary { margin-bottom: 8px; }

/* ===================================================================
   wl72 — the pipeline is a list; a property is a page
   =================================================================== */

/* List rows: scannable, one line of purpose each, no unfolding. */
/* wl85 — the listing form's field groups. ~55 fields per type is only
   workable if it is sectioned and most of it starts folded. */
.kp-portal .kp-fact-group { border: 1px solid var(--kp-border, #d5dcea); border-radius: 10px; margin: 0 0 10px; background: #fff; }
.kp-portal .kp-fact-group > summary { cursor: pointer; padding: 10px 12px; font-size: 12.5px; font-weight: 700; color: #17233c; list-style: none; display: flex; align-items: center; gap: 8px; }
.kp-portal .kp-fact-group > summary::-webkit-details-marker { display: none; }
.kp-portal .kp-fact-group > summary::before { content: "▸"; color: #7a8496; font-size: 11px; }
.kp-portal .kp-fact-group[open] > summary::before { content: "▾"; }
.kp-portal .kp-fact-count { margin-left: auto; font-size: 11px; font-weight: 600; color: #7a8496; background: #f2f5fa; border-radius: 10px; padding: 1px 8px; }
.kp-portal .kp-fact-group .kp-acq-form-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px 14px; padding: 4px 12px 14px; }
.kp-portal .kp-fact-field { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.kp-portal .kp-fact-field > span, .kp-portal .kp-fact-field > legend { font-size: 11.5px; font-weight: 600; color: #5a6478; }
.kp-portal .kp-fact-wide { grid-column: 1 / -1; }
.kp-portal .kp-fact-multi { grid-column: 1 / -1; border: 0; margin: 0; padding: 0; }
.kp-portal .kp-fact-checks { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 4px 12px; margin-top: 4px; }
.kp-portal .kp-fact-checks label { display: flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 400; color: #17233c; }
.kp-portal .kp-fact-checks input[type="checkbox"] { width: auto; margin: 0; }
.kp-portal .kp-newdeal-facts { margin: 6px 0 12px; }

/* wl83 — the pipeline filter bar. Replaces two rows of pills that expressed
   one axis between them, plus a third state hiding inside the second row. */
.kp-portal .kp-acq-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px 14px; margin: 0 0 14px; padding: 12px 14px; background: #fff; border: 1px solid var(--kp-border, #d5dcea); border-radius: 12px; }
.kp-portal .kp-acq-filter { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.kp-portal .kp-acq-filter > span { font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #7a8496; }
.kp-portal .kp-acq-filter select,
.kp-portal .kp-acq-filter input[type="search"] { padding: 8px 10px; border: 1px solid var(--kp-border, #d5dcea); border-radius: 8px; font-size: 13px; background: #fff; color: #17233c; max-width: 260px; }
.kp-portal .kp-acq-filter-search { flex: 1 1 220px; }
.kp-portal .kp-acq-filter-search input[type="search"] { width: 100%; max-width: none; }
.kp-portal .kp-acq-filter-go { padding: 8px 14px; border: 1px solid var(--kp-border, #d5dcea); border-radius: 8px; background: #f7f9fc; font-size: 13px; font-weight: 600; color: #17233c; cursor: pointer; }
.kp-portal .kp-acq-filter-go:hover { background: #eef2f9; }
.kp-portal .kp-acq-filter-clear { font-size: 12.5px; color: #5a6478; text-decoration: underline; align-self: center; box-shadow: none; }
.kp-portal .kp-acq-filter-count { margin-left: auto; align-self: center; font-size: 12.5px; color: #5a6478; white-space: nowrap; }
@media (max-width: 720px) {
    .kp-portal .kp-acq-filter select,
    .kp-portal .kp-acq-filter input[type="search"] { max-width: none; width: 100%; }
    .kp-portal .kp-acq-filter { flex: 1 1 100%; }
    .kp-portal .kp-acq-filter-count { margin-left: 0; }
}

/* wl82.2 — every row was its own grid, so `2.2fr 1fr auto` resolved against
   that row's own content and the money column landed at a different x on every
   line. Fixed track widths make the columns line up down the whole board. */
.kp-portal .kp-deal-row { display: grid; grid-template-columns: 60px minmax(0, 1fr) 200px 250px; align-items: center; gap: 8px 18px; padding: 12px 16px; margin: 0; }
.kp-portal .kp-deal-row-thumb { display: block; width: 60px; height: 46px; border-radius: 7px; overflow: hidden; background: #eef1f7; box-shadow: none; flex: 0 0 auto; }
.kp-portal .kp-deal-row-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kp-portal .kp-deal-row-thumb.is-empty { display: flex; align-items: center; justify-content: center; border: 1px dashed #d5dcea; background: #f7f9fc; }
.kp-portal .kp-deal-row-thumb svg { width: 20px; height: 20px; fill: #b3bccd; }
.kp-portal .kp-deal-row-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.kp-portal .kp-deal-row-title { font-size: 14.5px; font-weight: 700; color: #17233c; text-decoration: none; box-shadow: none; }
.kp-portal .kp-deal-row-title:hover { color: var(--kp-navy); }
.kp-portal .kp-deal-row-addr { font-size: 12.5px; color: #5a6478; }
.kp-portal .kp-deal-row-main .kp-console-meta { font-size: 11.5px; }
.kp-portal .kp-deal-row-money { display: flex; flex-direction: column; gap: 1px; white-space: nowrap; align-items: flex-start; }
.kp-portal .kp-deal-row-money > span:first-child { font-size: 13px; font-weight: 700; color: #17233c; }
.kp-portal .kp-deal-row-flags { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
@media (max-width: 900px) {
    .kp-portal .kp-deal-row { grid-template-columns: 60px minmax(0, 1fr); }
    .kp-portal .kp-deal-row-money,
    .kp-portal .kp-deal-row-flags { grid-column: 2; }
    .kp-portal .kp-deal-row-flags { justify-content: flex-start; }
}

/* The property page.
 *
 * wl73 — these were kp-deal-* and collided head-on with the client portal's
 * deal workspace, which owns .kp-deal-section { display: none } and only shows
 * the one carrying .is-active. Every tab but Overview and Area was rendering
 * its markup into a box the stylesheet had already hidden, which is exactly
 * what a blank page looks like. Namespaced to kp-pp-* (property page) so the
 * two features cannot reach each other again. */
.kp-portal .kp-pp-header { align-items: flex-start; }
.kp-portal .kp-pp-heading { display: flex; align-items: flex-start; gap: 14px; min-width: 0; }
.kp-portal .kp-pp-heading-text { min-width: 0; }
/* The way out is a control, not a breadcrumb. */
.kp-portal .kp-pp-back { flex: 0 0 auto; margin-top: 2px; white-space: nowrap; text-decoration: none; }
.kp-portal .kp-pp-back span { margin-right: 2px; }
.kp-portal .kp-pp-addr { margin: 4px 0 0; font-size: 13.5px; color: #5a6478; }
.kp-portal .kp-pp-flags { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.kp-portal .kp-pp-tabs { margin-top: 4px; }
.kp-portal .kp-pp-body { margin-top: 4px; }
.kp-portal .kp-pp-section { margin-bottom: 14px; }
/* On a page a section is the subject, so it is always open — but its summary
 * is not decoration, it is the section's title and carries its state badges.
 * wl72 hid it and left the Documents tab as two unlabelled upload forms. So
 * the summary becomes a static heading instead: no marker, no pencil, not
 * clickable, because collapsing the only thing on the tab is not a thing
 * anyone wants to do.
 *
 * Scoped to a DIRECT child that is actually open. Anything nested inside a
 * section — the optional intake and add forms — keeps its own summary and its
 * normal disclosure behaviour. */
.kp-portal .kp-pp-section > .kp-acq-edit { border: 0; padding: 0; margin: 0; background: transparent; }
.kp-portal .kp-pp-section > .kp-acq-edit[open] > summary {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin: 0 0 12px;
    padding: 0;
    color: #17233c;
    font-size: 15px;
    font-weight: 700;
    cursor: default;
    pointer-events: none;
    list-style: none;
}
.kp-portal .kp-pp-section > .kp-acq-edit[open] > summary::before { content: none; }
.kp-portal .kp-pp-section > .kp-acq-edit[open] > summary::marker { content: ''; }
.kp-portal .kp-pp-section > .kp-acq-edit[open] > summary::-webkit-details-marker { display: none; }
.kp-portal .kp-pp-money { display: flex; flex-wrap: wrap; gap: 24px; margin-bottom: 14px; }
.kp-portal .kp-pp-money > div { display: flex; flex-direction: column; }
.kp-portal .kp-pp-money span { font-size: 10.5px; text-transform: uppercase; letter-spacing: .4px; color: #8a93a6; }
.kp-portal .kp-pp-money b { font-size: 18px; color: #17233c; }
@media (max-width: 700px) {
    .kp-portal .kp-pp-heading { flex-direction: column; gap: 8px; }
}

/* Area, with the room it never had in the rail. */
.kp-portal .kp-area-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 14px; align-items: start; }
.kp-portal .kp-area-map { height: 420px; border-radius: 12px; overflow: hidden; border: 1px solid var(--kp-border, #d5dcea); background: #eef2f8; }
.kp-portal .kp-area-map img { max-width: none; border-radius: 0; box-shadow: none; margin: 0; }
.kp-portal .kp-area-map a { text-decoration: none; box-shadow: none; }
.kp-portal .kp-area-addr { margin: 8px 0 0; font-size: 11.5px; }
.kp-portal .kp-area-figs { max-height: none; }
/* Two geographies side by side is the comparison that matters. */
.kp-portal .kp-area-figs .kp-mkt-block { border-top: 0; padding-top: 0; }
.kp-portal .kp-area-figs .kp-mkt-block + .kp-mkt-block { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--kp-border, #e3e8f2); }
.kp-portal .kp-area-ask { margin-top: 14px; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.kp-portal .kp-area-ask p { margin: 0; flex: 1 1 340px; }
@media (max-width: 1000px) {
    .kp-portal .kp-area-grid { grid-template-columns: 1fr; }
    .kp-portal .kp-area-map { height: 320px; }
}


/* wl275 — the property uploader is a complete, full-width control rather than
   another cramped item in the action strip. It explains where every selected
   file goes before the operator commits a batch. */
.kp-portal .kp-acq-attach {
    box-sizing: border-box;
    flex: 1 1 100%;
    display: grid;
    grid-template-columns: minmax(280px, 1fr) minmax(220px, 340px) auto;
    align-items: center;
    gap: 10px 14px;
    width: 100%;
    margin: 2px 0;
    padding: 11px 12px;
    border: 1px solid var(--kp-border, #d8e0ec);
    border-radius: 10px;
    background: var(--kp-blue-soft, #f5f8ff);
}
.kp-acq-attach-copy { display: grid; gap: 2px; min-width: 0; color: var(--kp-slate, #1d2939); }
.kp-acq-attach-copy strong { font-size: 13px; line-height: 1.3; }
.kp-acq-attach-copy small { color: var(--kp-muted, #667085); font-size: 11.5px; line-height: 1.4; }
.kp-acq-attach-label { display: block; min-width: 0; color: var(--kp-muted, #667085); }
.kp-acq-attach-label input[type="file"] { box-sizing: border-box; width: 100%; max-width: none; font-size: 12px; }
.kp-acq-attach-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; white-space: nowrap; }
.kp-acq-file-count { color: var(--kp-muted, #667085); font-size: 11.5px; }
.kp-acq-file-count.is-error { color: var(--kp-danger, #b42318); font-weight: 600; white-space: normal; }
.kp-pp-document-row.is-primary { background: var(--kp-blue-soft, #f5f8ff); }
@media (max-width: 1100px) {
    .kp-portal .kp-acq-attach { grid-template-columns: minmax(0, 1fr) auto; }
    .kp-acq-attach-copy { grid-column: 1 / -1; }
}
@media (max-width: 680px) {
    .kp-portal .kp-acq-attach { grid-template-columns: minmax(0, 1fr); }
    .kp-acq-attach-actions { justify-content: space-between; white-space: normal; }
}

/* wl85.9 — outstanding mandate items on a listing the operator added
   themselves. A reminder, not a failure: no amber, no gap-panel treatment. */
.kp-mandate-todo { margin: 6px 0 10px; padding-left: 18px; color: #667085; font-size: 12px; }
.kp-mandate-todo li { margin: 2px 0; }

/* wl87.1 — inbound mailbox card */
.kp-mbx-tiles{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}
.kp-mbx-tile{border:1px solid var(--kp-border);background:var(--kp-white);border-radius:10px;padding:14px 18px;cursor:pointer;font:inherit;font-weight:var(--kp-w-medium);color:var(--kp-slate);min-width:120px;text-align:center;transition:border-color .15s,box-shadow .15s}
.kp-mbx-tile:hover{border-color:var(--kp-blue)}
.kp-mbx-tile.is-active{border-color:var(--kp-blue-dark);box-shadow:0 0 0 1px var(--kp-blue-dark) inset;color:var(--kp-navy)}
.kp-mbx-pane{margin-top:6px}
.kp-mbx-msapp{margin-top:14px}
.kp-mbx-msapp summary{cursor:pointer}
.kp-mbx-card code{word-break:break-all}

/* wl87.3 - mail client */
.kp-mailc-header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
.kp-mailc-header-actions{display:flex;gap:8px;align-items:center}
.kp-mailc-filters form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.kp-mailc-filters input[type=search]{min-width:220px}
.kp-mailc-list{padding:0}
.kp-mailc-row{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--kp-border);text-decoration:none;color:inherit}
.kp-mailc-row:hover{background:var(--kp-blue-soft)}
.kp-mailc-dot{width:8px;height:8px;border-radius:50%;flex:0 0 8px}
.kp-mailc-row.is-unread .kp-mailc-dot{background:var(--kp-blue)}
.kp-mailc-row.is-unread .kp-mailc-who,.kp-mailc-row.is-unread .kp-mailc-subject strong{font-weight:var(--kp-w-bold)}
.kp-mailc-who{flex:0 0 200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kp-mailc-subject{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kp-mailc-snippet{color:var(--kp-muted);margin-left:8px;font-size:var(--kp-text-sm)}
.kp-mailc-meta{display:flex;gap:8px;align-items:center;flex:0 0 auto;color:var(--kp-muted);font-size:var(--kp-text-sm)}
.kp-mailc-foot{display:flex;justify-content:space-between;align-items:center;padding:10px 16px}
.kp-mailc-pager{display:flex;gap:8px;align-items:center}
.kp-mailc-empty{padding:26px 16px}
.kp-mailc-body{border:1px solid var(--kp-border);border-radius:8px;padding:16px;margin:12px 0;overflow-x:auto}
.kp-mailc-msg-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.kp-mailc-linkform{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.kp-mailc-backdrop{position:fixed;inset:0;background:rgba(26,44,68,.45);z-index:9000}
.kp-mailc-drawer{position:fixed;top:0;right:0;bottom:0;width:min(860px,96vw);background:var(--kp-white);z-index:9001;transform:translateX(102%);transition:transform .25s ease;display:grid;grid-template-columns:1fr 240px;grid-template-rows:auto 1fr auto;box-shadow:-12px 0 40px rgba(26,44,68,.25)}
.kp-mailc-drawer.is-open{transform:translateX(0)}
.kp-mailc-drawer-head{grid-column:1/3;display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--kp-border)}
.kp-mailc-drawer-head h2{margin:0}
.kp-mailc-close{border:0;background:none;font-size:22px;cursor:pointer;color:var(--kp-muted)}
.kp-mailc-compose{display:contents}
.kp-mailc-compose-main{padding:16px 18px;overflow-y:auto}
.kp-mailc-compose-side{padding:16px;border-left:1px solid var(--kp-border);overflow-y:auto}
.kp-mailc-sidecard{border:1px solid var(--kp-border);border-radius:8px;padding:10px;margin-bottom:12px}
.kp-mailc-sidecard h3{margin:0 0 8px;font-size:var(--kp-text-base)}
.kp-mailc-sidecard select{width:100%}
.kp-mailc-field{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--kp-border);padding:6px 0;position:relative}
.kp-mailc-field>span{flex:0 0 56px;color:var(--kp-muted);font-size:var(--kp-text-sm)}
.kp-mailc-field input{flex:1;border:0;outline:none;background:transparent}
.kp-mailc-ccbtns{position:absolute;right:0;font-size:var(--kp-text-sm)}
.kp-mailc-ccbtns a{color:var(--kp-muted);margin-left:8px;text-decoration:none}
.kp-mailc-toolbar{display:flex;gap:6px;margin:12px 0 6px}
.kp-mailc-toolbar button{border:1px solid var(--kp-border);background:var(--kp-white);border-radius:6px;padding:4px 10px;cursor:pointer}
.kp-mailc-editor{min-height:260px;border:1px solid var(--kp-border);border-radius:8px;padding:12px;outline:none}
.kp-mailc-editor:focus{border-color:var(--kp-blue)}
.kp-mailc-attach{margin-top:12px}
.kp-mailc-attach summary{cursor:pointer}
.kp-mailc-attach-list{display:flex;flex-direction:column;gap:6px;max-height:180px;overflow-y:auto;margin-top:8px}
.kp-mailc-drawer-foot{grid-column:1/3;display:flex;gap:10px;padding:12px 18px;border-top:1px solid var(--kp-border)}
@media (max-width:820px){.kp-mailc-drawer{grid-template-columns:1fr}.kp-mailc-compose-side{display:none}}
/* wl87.3.1 - message slide-over + uploads */
.kp-mailc-msgdrawer{grid-template-columns:1fr 260px;grid-template-rows:auto 1fr;width:min(1000px,96vw)}
.kp-mailc-msg-main{padding:16px 18px;overflow-y:auto}
.kp-mailc-msg-side{padding:16px;border-left:1px solid var(--kp-border);overflow-y:auto}
.kp-mailc-meta-card{display:flex;justify-content:space-between;gap:12px;border:1px solid var(--kp-border);border-radius:8px;padding:12px}
.kp-mailc-meta-from{display:flex;gap:10px;align-items:flex-start}
.kp-mailc-avatar{width:36px;height:36px;border-radius:50%;background:var(--kp-blue-soft);color:var(--kp-blue-dark);display:inline-flex;align-items:center;justify-content:center;font-weight:var(--kp-w-bold);flex:0 0 36px}
.kp-mailc-msg-toolbar{margin:12px 0;align-items:center}
.kp-mailc-msg-toolbar form{display:inline}
.kp-mailc-backdrop-link{display:block}
.kp-mailc-upload{margin-top:12px}
.kp-mailc-sidecard label{display:block;margin-bottom:8px}
@media (max-width:900px){.kp-mailc-msgdrawer{grid-template-columns:1fr}.kp-mailc-msg-side{display:none}}

/* ============================================================
   wl88 — DealStrand design system (ratified 18 Aug 2026).
   Flowlu-derived visual language; tokens pixel-sampled from the
   reference screenshots. Scope: .kp-portal ONLY (operator app
   shell). Landing and sales pages are explicitly excluded and
   keep their own identity.
   Core tokens: primary var(--kp-navy) · fill #f3f4f9 · soft #f8f9fd ·
   hairline #e6e9f2 · title #333338 · body #2a2a2a · muted
   #9fa8bf · success #35d3ac · danger #ed6b75 · amber #ffb400.
   Rules: filled inputs (not outlined boxes) · one vivid blue,
   all other color as pastel chips · hairlines + whitespace, not
   nested boxes · hierarchy via weight/gray, not size · Inter.
   ============================================================ */
.kp-portal {
    --kp-bg: #f8f9fd;
    --kp-white: #ffffff;
    --kp-border: #e6e9f2;
    --kp-fill: #f3f4f9;
    --kp-fill-soft: #f8f9fd;
    --kp-blue: var(--kp-navy);
    --kp-blue-dark: #2f54d1;
    --kp-blue-soft: #eef2fe;
    --kp-navy: #333338;
    --kp-slate: #4a4f5e;
    --kp-muted: #9fa8bf;
    --kp-success: #35d3ac;
    --kp-warning: #6857d9;
    --kp-error: #ed6b75;
    --kp-gold: #ffb400;
    --kp-radius: 10px;
    --kp-radius-sm: 8px;
    --kp-focus-ring: 0 0 0 3px rgba(55, 97, 233, .14);
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    color: #2a2a2a;
    background: var(--kp-bg);
}
.kp-portal h1, .kp-portal h2, .kp-portal h3, .kp-portal h4 {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    color: var(--kp-navy);
    letter-spacing: 0;
}
.kp-portal h1 { font-size: 24px; font-weight: 600; }
.kp-portal h2 { font-size: 17px; font-weight: 600; }
.kp-portal h3 { font-size: 14px; font-weight: 600; }
.kp-portal .kp-eyebrow {
    text-transform: none;
    letter-spacing: 0;
    color: var(--kp-muted);
    font-weight: 500;
    font-size: 12px;
}

/* ---- cards: flat white, hairline, 10px radius, no shadows ---- */
.kp-portal .kp-card {
    background: var(--kp-white);
    border: 1px solid var(--kp-border);
    border-radius: var(--kp-radius);
    box-shadow: none;
}

/* ---- buttons ---- */
.kp-portal .kp-button {
    border: 1px solid var(--kp-border);
    background: var(--kp-white);
    color: var(--kp-slate);
    border-radius: var(--kp-radius-sm);
    font-weight: 500;
    font-family: inherit;
    padding: 8px 16px;
    transition: background .15s, border-color .15s, color .15s;
    text-decoration: none;
    box-shadow: none;
    text-transform: none;
    letter-spacing: 0;
}
.kp-portal .kp-button:hover { background: var(--kp-fill-soft); border-color: #d4dae8; color: var(--kp-navy); }
.kp-portal .kp-button-primary { background: var(--kp-blue); border-color: var(--kp-blue); color: #fff; }
.kp-portal .kp-button-primary:hover { background: var(--kp-blue-dark); border-color: var(--kp-blue-dark); color: #fff; }
.kp-portal .kp-button-small { padding: 6px 12px; font-size: 12px; }

/* ---- inputs: the filled Flowlu look ---- */
.kp-portal input[type="text"], .kp-portal input[type="email"], .kp-portal input[type="number"],
.kp-portal input[type="password"], .kp-portal input[type="search"], .kp-portal input[type="date"],
.kp-portal input[type="url"], .kp-portal input[type="tel"], .kp-portal input[type="time"],
.kp-portal select, .kp-portal textarea {
    background: var(--kp-fill);
    border: 1px solid transparent;
    border-radius: var(--kp-radius-sm);
    padding: 9px 12px;
    color: #2a2a2a;
    font-family: inherit;
    font-size: 14px;
    transition: background .15s, border-color .15s, box-shadow .15s;
}
.kp-portal input:focus, .kp-portal select:focus, .kp-portal textarea:focus {
    background: var(--kp-white);
    border-color: var(--kp-blue);
    box-shadow: var(--kp-focus-ring);
    outline: none;
}
.kp-portal input::placeholder, .kp-portal textarea::placeholder { color: var(--kp-muted); }
.kp-portal label > span { color: var(--kp-muted); font-size: 12px; font-weight: 500; }

/* ---- badges: pills; solid success, soft muted ---- */
.kp-portal .kp-badge {
    border-radius: 999px;
    padding: 3px 10px;
    font-size: 12px;
    font-weight: 500;
    border: 0;
    text-transform: none;
    letter-spacing: 0;
}
.kp-portal .kp-badge-good { background: var(--kp-success); color: #fff; }
.kp-portal .kp-badge-muted { background: var(--kp-fill); color: #707070; }

/* ---- tables + list rows ---- */
.kp-portal table th {
    background: var(--kp-fill);
    color: #707070;
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    border-color: var(--kp-border);
}
.kp-portal table td { border-color: var(--kp-border); }
.kp-portal tbody tr:hover td { background: var(--kp-fill-soft); }

/* ---- notices ---- */
.kp-portal .kp-console-notice { border: 1px solid var(--kp-border); border-radius: var(--kp-radius); box-shadow: none; }
.kp-portal .kp-sid-error { border-radius: var(--kp-radius-sm); }

/* ---- mail client: match the compose closeup exactly ---- */
.kp-portal .kp-mailc-field { border-bottom: 0; padding: 5px 0; }
.kp-portal .kp-mailc-field input {
    background: var(--kp-fill);
    border: 1px solid transparent;
    border-radius: var(--kp-radius-sm);
    padding: 10px 12px;
}
.kp-portal .kp-mailc-field input:focus { background: var(--kp-white); border-color: var(--kp-blue); box-shadow: var(--kp-focus-ring); }
.kp-portal .kp-mailc-field input[name="mail_subject"] { background: var(--kp-white); border: 1px solid var(--kp-border); }
.kp-portal .kp-mailc-field input[readonly] { color: var(--kp-slate); }
.kp-portal .kp-mailc-ccbtns { right: 8px; top: -18px; }
.kp-portal .kp-mailc-editor {
    background: var(--kp-fill);
    border: 1px solid transparent;
    border-radius: var(--kp-radius-sm);
    min-height: 300px;
}
.kp-portal .kp-mailc-editor:focus { background: var(--kp-white); border-color: var(--kp-blue); box-shadow: var(--kp-focus-ring); }
.kp-portal .kp-mailc-toolbar button[data-kp-cmd] {
    border: 0;
    background: transparent;
    color: #707070;
    border-radius: 6px;
    padding: 6px 10px;
}
.kp-portal .kp-mailc-toolbar button[data-kp-cmd]:hover { background: var(--kp-fill); color: var(--kp-navy); }
.kp-portal .kp-mailc-row { border-bottom: 1px solid var(--kp-border); }
.kp-portal .kp-mailc-row:hover { background: var(--kp-fill-soft); }
.kp-portal .kp-mailc-row.is-unread .kp-mailc-dot { background: var(--kp-blue); }
.kp-portal .kp-mailc-drawer { box-shadow: -18px 0 50px rgba(51, 51, 56, .16); }
.kp-portal .kp-mailc-close {
    width: 32px;
    height: 32px;
    border: 1px solid var(--kp-border);
    border-radius: 50%;
    background: var(--kp-white);
    color: var(--kp-slate);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 17px;
    line-height: 1;
    text-decoration: none;
    flex: 0 0 32px;
}
.kp-portal .kp-mailc-close:hover { background: var(--kp-fill-soft); }
.kp-portal .kp-mailc-popout {
    margin-left: auto;
    color: var(--kp-muted);
    text-decoration: none;
    font-size: 16px;
    border: 1px solid var(--kp-border);
    border-radius: var(--kp-radius-sm);
    padding: 4px 10px;
}
.kp-portal .kp-mailc-popout:hover { color: var(--kp-blue); border-color: var(--kp-blue); }
.kp-portal .kp-mailc-meta-card { border: 1px solid var(--kp-border); border-radius: var(--kp-radius); background: var(--kp-white); }
.kp-portal .kp-mailc-avatar { background: #fff1cc; color: #b47d00; }
.kp-portal .kp-mailc-sidecard { background: var(--kp-fill-soft); border: 1px solid var(--kp-border); border-radius: var(--kp-radius); }
.kp-portal .kp-mailc-body { border: 1px solid var(--kp-border); border-radius: var(--kp-radius); }

/* ---- popout: full-page variant of the message drawer (wl88) ---- */
.kp-portal .kp-mailc-msgdrawer.kp-is-full {
    position: static;
    transform: none;
    width: auto;
    box-shadow: none;
    border: 1px solid var(--kp-border);
    border-radius: var(--kp-radius);
    background: var(--kp-white);
    min-height: 70vh;
}

/* wl88.1 - compose parity, attach panel, clickable rows */
.kp-portal .kp-mailc-ccbtns{position:static;margin-left:auto;display:flex;gap:10px}
.kp-portal .kp-mailc-attachbar{display:flex;align-items:center;gap:10px;margin-top:14px;flex-wrap:wrap}
.kp-portal .kp-mailc-attachbtn{display:inline-flex;align-items:center;gap:6px}
.kp-portal .kp-mailc-attachpanel{border:1px solid var(--kp-border);border-radius:var(--kp-radius);padding:12px;margin-top:10px}
.kp-portal .kp-mailc-filelabel{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.kp-portal .kp-mailc-filelabel input[type=file]{display:none}
.kp-portal .kp-mailc-filechips{display:inline-flex;gap:6px;flex-wrap:wrap}
.kp-portal .kp-mailc-filechip{background:var(--kp-fill);border-radius:999px;padding:3px 10px;font-size:12px;color:var(--kp-slate)}
.kp-portal .kp-mailc-toolsep{width:1px;height:18px;background:var(--kp-border);margin:0 4px;display:inline-block}
.kp-portal .kp-mailc-attach-doclabel{margin:10px 0 6px}
.kp-portal .kp-rowlink{cursor:pointer}
.kp-portal .kp-clients-tr.kp-rowlink:hover{background:var(--kp-fill-soft)}

/* wl88.2 - rich editor (jodit) theme alignment */
.kp-portal .jodit-container:not(.jodit_inline){border:1px solid transparent;border-radius:var(--kp-radius-sm);background:var(--kp-fill)}
.kp-portal .jodit-container:not(.jodit_inline).jodit_focused{border-color:var(--kp-blue);box-shadow:var(--kp-focus-ring);background:var(--kp-white)}
.kp-portal .jodit-toolbar__box:not(:empty){background:transparent;border-bottom:1px solid var(--kp-border);border-radius:var(--kp-radius-sm) var(--kp-radius-sm) 0 0}
.kp-portal .jodit-ui-group__line{display:none}
.kp-portal .jodit-workplace{background:transparent}
.kp-portal .jodit-wysiwyg{background:transparent;padding:12px;font-family:'Inter',sans-serif;font-size:14px;color:#2a2a2a}
.kp-portal .jodit-toolbar-button__button:hover{background:var(--kp-fill)}
.kp-portal .kp-mailc-richsrc{width:100%}

/* wl88.3 - layering: record panels 61vw, compose drawer 60vw ABOVE them; jodit branding off */
.kp-portal .kp-gs-drawer{width:min(61vw,1250px)}
.kp-portal .kp-mailc-backdrop{z-index:10500}
.kp-portal .kp-mailc-drawer{z-index:10501;width:min(60vw,1150px)}
.kp-portal .kp-mailc-msgdrawer{width:min(60vw,1150px)}
@media (max-width:1100px){.kp-portal .kp-gs-drawer{width:96vw}.kp-portal .kp-mailc-drawer,.kp-portal .kp-mailc-msgdrawer{width:96vw}}
.kp-portal a.jodit-status-bar-link,.kp-portal .jodit-status-bar{display:none!important}

/* wl89 - tasks module */
.kp-portal .kp-taskd-backdrop{z-index:10600}
.kp-portal .kp-taskd-drawer{z-index:10601;width:min(58vw,1100px);grid-template-columns:1fr;grid-template-rows:auto 1fr auto}
.kp-portal .kp-taskd-main{padding:16px 18px;overflow-y:auto}
.kp-portal .kp-taskd-titlerow{display:grid;grid-template-columns:1fr 220px;gap:14px;margin-bottom:12px}
.kp-portal .kp-taskd-titlerow label{display:flex;flex-direction:column;gap:6px}
.kp-portal .kp-taskd-title input{background:var(--kp-white);border:1px solid var(--kp-border)}
.kp-portal .kp-taskd-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:16px}
.kp-portal .kp-taskd-grid label{display:flex;flex-direction:column;gap:6px}
.kp-portal .kp-taskd-openbtn{width:100%}
.kp-portal .kp-taskl-row{align-items:center}
.kp-portal .kp-taskl-row.is-done .kp-mailc-subject strong{text-decoration:line-through;color:var(--kp-muted)}
.kp-portal .kp-taskl-check{width:22px;height:22px;border-radius:50%;border:1px solid var(--kp-border);background:var(--kp-white);cursor:pointer;color:#fff;line-height:1;flex:0 0 22px}
.kp-portal .kp-taskl-check.is-checked{background:var(--kp-success);border-color:var(--kp-success)}
.kp-portal .kp-taskl-high{background:#fdecec;color:var(--kp-error)}
.kp-portal .kp-taskl-overdue{color:var(--kp-error);font-weight:600}
.kp-portal .kp-taskl-del{border:0;background:none;cursor:pointer;color:var(--kp-muted)}
.kp-portal .kp-taskl-del:hover{color:var(--kp-error)}
.kp-portal .kp-taskl-toggle{display:inline-flex}
@media (max-width:1100px){.kp-portal .kp-taskd-drawer{width:96vw}.kp-portal .kp-taskd-grid{grid-template-columns:1fr 1fr}}

/* wl90 - copilot rail */
.kp-portal .kp-coprail{display:flex;flex-direction:column;gap:8px}
.kp-portal .kp-coprail-actions{display:flex;flex-wrap:wrap;gap:6px}
.kp-portal .kp-coprail-thread{max-height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;background:var(--kp-white);border:1px solid var(--kp-border);border-radius:var(--kp-radius-sm);padding:10px}
.kp-portal .kp-coprail-b{font-size:13px;line-height:1.45;padding:8px 10px;border-radius:10px;white-space:pre-wrap}
.kp-portal .kp-coprail-b.is-user{background:var(--kp-blue-soft);color:var(--kp-navy);align-self:flex-end;max-width:92%}
.kp-portal .kp-coprail-b.is-ai{background:var(--kp-fill);align-self:flex-start;max-width:96%}
.kp-portal .kp-coprail-ask{display:flex;gap:6px}
.kp-portal .kp-coprail-ask input{flex:1;min-width:0}
.kp-portal .kp-coprail-insert{border:1px solid var(--kp-blue);color:var(--kp-blue);background:var(--kp-white);border-radius:6px;padding:3px 10px;margin-top:6px;cursor:pointer;font-size:12px}
.kp-portal .kp-coprail-insert:hover{background:var(--kp-blue-soft)}
.kp-portal .kp-taskd-form{display:flex;flex-direction:column;min-height:0}
.kp-portal .kp-taskd-main{flex:1}
.kp-portal .kp-taskd-coprail{padding:0 18px 12px}
.kp-portal .kp-taskd-coprail .kp-coprail{background:var(--kp-fill-soft)}

/* wl90.1 - CRM panel: compose on top, no full-width submit buttons */
.kp-portal .kp-crm-panel .kp-crm-form button[type=submit],.kp-portal .kp-crm-panel .kp-crm-msgreply button[type=submit]{width:auto;align-self:flex-start;justify-self:start}
.kp-portal .kp-crm-emailbar{display:flex;align-items:center;gap:10px;margin:0 0 14px}

/* wl87.4 — copilot mail suggestions */
.kp-portal .kp-mailc-sugs h3{margin:0 0 4px;font-size:14px;color:#333338}
.kp-portal .kp-mailc-sugrow{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid #e6e9f2}
.kp-portal .kp-mailc-sugs h3+.kp-mailc-sugrow{border-top:0}
.kp-portal .kp-mailc-sugtext{flex:1;font-size:13.5px;color:#2a2a2a}
.kp-portal .kp-mailc-sugacts{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.kp-portal .kp-mailc-sugacts form{display:inline-flex;margin:0}
.kp-portal .kp-mailc-sugcard p{margin:8px 0 4px}

/* wl90.3 — copilot rail on records */
.kp-portal .kp-crm-pcol-cop{grid-column:1/-1;order:99}
.kp-portal .kp-crm-pcol-cop .kp-coprail{max-width:640px}
.kp-portal .kp-ppcop{margin:14px 0}
.kp-portal .kp-ppcop .kp-coprail{max-width:640px}

/* wl87.5 — multi mailbox */
.kp-portal .kp-mbx-rows{display:flex;flex-direction:column;margin:6px 0 2px}
.kp-portal .kp-mbx-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid #e6e9f2}
.kp-portal .kp-mbx-row:first-child{border-top:0}
.kp-portal .kp-mbx-row-email{flex:1;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;min-width:0}
.kp-portal .kp-mbx-row-acts{display:flex;gap:6px}
.kp-portal .kp-mbx-row-acts form{margin:0}
.kp-portal .kp-mbx-row-err{color:#ed6b75;font-size:12.5px;font-weight:600}
.kp-portal .kp-mbx-addwrap{margin:12px 0 4px}
.kp-portal .kp-mbx-addpanel{margin-top:10px;border-top:1px solid #e6e9f2;padding-top:14px}
.kp-portal .kp-mbx-adv{margin:8px 0}
.kp-portal .kp-mailc-acct{text-transform:none}

/* wl87.6 — email settings drawer + collapsed SMTP */
.kp-portal .kp-mailset-body{padding:0 22px 24px;overflow-y:auto;flex:1}
.kp-portal .kp-mailset-drawer .kp-mbx-card{border:0;background:transparent;box-shadow:none;padding:6px 2px}
.kp-portal .kp-sid-fold{margin-top:6px}
.kp-portal .kp-sid-fold>summary{cursor:pointer;color:var(--kp-blue,var(--kp-navy));font-size:13.5px}

/* wl87.8 — signatures + reactive filters */
.kp-portal .kp-mailc-sigrow{display:flex;gap:8px;align-items:center;margin:8px 0 2px}
.kp-portal .kp-mailc-sigrow select{width:auto;min-width:160px}
.kp-portal .kp-sig-form{margin-top:10px;border-top:1px solid #e6e9f2;padding-top:12px}
.kp-portal .kp-sig-defwrap>span:last-child{display:inline-flex;align-items:center;gap:6px;padding-top:9px}
.kp-portal .kp-sig-src{width:100%}

/* wl87.8.1 — sortable column headers */
.kp-portal .kp-mailc-thead{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--kp-border);background:var(--kp-fill-soft)}
.kp-portal .kp-mailc-thead-dot{flex:0 0 8px}
.kp-portal .kp-mailc-thead-who{flex:0 0 200px}
.kp-portal .kp-mailc-thead-subject{flex:1;min-width:0;color:var(--kp-muted);font-size:var(--kp-text-sm);font-weight:600}
.kp-portal .kp-mailc-thead-meta{display:flex;gap:14px;align-items:center}
.kp-portal .kp-mailc-th{color:var(--kp-muted);font-size:var(--kp-text-sm);font-weight:600;text-decoration:none}
.kp-portal .kp-mailc-th:hover,.kp-portal .kp-mailc-th.is-active{color:var(--kp-navy)}
.kp-portal .kp-mailc-caret{color:var(--kp-blue)}

/* wl90.4 — wider slide-outs, roomier copilot rail */
@media (min-width:1100px){
.kp-portal .kp-gs-drawer{width:min(66vw,1350px)}
.kp-portal .kp-mailc-drawer{width:min(65vw,1280px);grid-template-columns:1fr 340px}
.kp-portal .kp-mailc-msgdrawer{width:min(65vw,1280px);grid-template-columns:1fr 340px}
.kp-portal .kp-taskd-drawer{width:min(62vw,1200px)}
.kp-portal .kp-mailset-drawer{width:min(64vw,1000px)}
}
.kp-portal .kp-coprail-thread{max-height:420px}
.kp-portal .kp-coprail-ask{align-items:stretch}
.kp-portal .kp-coprail-ask textarea{flex:1;min-width:0;min-height:70px;resize:vertical;font:inherit}
.kp-portal .kp-coprail-ask .kp-button{align-self:flex-end}

/* wl92.1 — portal visibility at scale */
.kp-portal .kp-vis-list{max-height:420px;overflow-y:auto}
.kp-portal .kp-vis-tools{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:2px 0 8px}
.kp-portal .kp-vis-search{max-width:240px}

/* wl93 — client property page, Kerja layout */
.kp-portal .kp-ppd-flowhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.kp-portal .kp-ppd-flowhead h2{margin:0;font-size:15px}
.kp-portal .kp-ppd-chip{background:#fff7e0;color:#8a6100;border:1px solid #f4e3ae}
.kp-portal .kp-ppd-steps{display:flex;align-items:flex-start;margin:14px 0 4px}
.kp-portal .kp-ppd-step{flex:1;text-align:center;position:relative;padding:0 8px}
.kp-portal .kp-ppd-step::before{content:"";position:absolute;top:14px;left:-50%;width:100%;height:2px;background:var(--kp-border);z-index:0}
.kp-portal .kp-ppd-step:first-child::before{display:none}
.kp-portal .kp-ppd-dot{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:2px solid var(--kp-border);background:var(--kp-white);color:var(--kp-muted);font-weight:600;font-size:13px}
.kp-portal .kp-ppd-step.is-done .kp-ppd-dot{background:var(--kp-navy);border-color:var(--kp-navy);color:#fff}
.kp-portal .kp-ppd-step.is-current .kp-ppd-dot{border-color:#ffb400;color:#b97f00}
.kp-portal .kp-ppd-step-label{display:block;margin-top:6px;font-weight:600;font-size:13px;color:var(--kp-navy)}
.kp-portal .kp-ppd-step-sub{display:block;font-size:11.5px;color:var(--kp-muted)}
.kp-portal .kp-ppd-step.is-future .kp-ppd-step-label{color:var(--kp-muted)}
.kp-portal .kp-ppd-flowfoot{display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid var(--kp-border);margin-top:12px;padding-top:12px;flex-wrap:wrap}
.kp-portal .kp-ppd-flowfoot p{margin:0}
.kp-portal .kp-ppd-topbar{display:flex;justify-content:space-between;align-items:center;margin:14px 0 10px}
.kp-portal .kp-ppd-actions{display:inline-flex;gap:8px}
.kp-portal .kp-ppd-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:20px}
.kp-portal .kp-ppd-hero-nophotos{grid-template-columns:1fr}
.kp-portal .kp-ppd-gallery{display:grid;grid-template-columns:2fr 1fr;grid-auto-rows:minmax(120px,1fr);gap:8px;position:relative;max-height:340px}
.kp-portal .kp-ppd-gallery-link{display:block;min-width:0;min-height:0;overflow:hidden;border-radius:10px;cursor:zoom-in}
.kp-portal .kp-ppd-gallery-link:focus-visible{outline:3px solid var(--kp-blue);outline-offset:2px}
.kp-portal .kp-ppd-gallery-link img{width:100%;height:100%;object-fit:cover;display:block}
.kp-portal .kp-ppd-gallery-link.kp-ppd-gal-main{grid-row:1/span 2}
.kp-portal .kp-ppd-gallery-extra[hidden]{display:none}
.kp-portal .kp-ppd-seeall{position:absolute;right:10px;bottom:10px;background:var(--kp-navy);color:#fff;border-radius:6px;padding:6px 12px;font-size:11.5px;font-weight:700;letter-spacing:.06em;text-decoration:none}
.kp-portal .kp-ppd-head h1{margin:0 0 2px;font-size:26px}
.kp-portal .kp-ppd-address{margin:2px 0 10px;color:var(--kp-slate);font-size:13.5px}
.kp-portal .kp-ppd-price{font-size:21px;font-weight:700;color:var(--kp-navy);margin:0 0 14px}
.kp-portal .kp-ppd-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 18px;border-top:1px solid var(--kp-border);padding-top:14px}
.kp-portal .kp-ppd-strip-k{display:block;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--kp-muted);margin-bottom:2px}
.kp-portal .kp-ppd-strip-v{font-weight:700;color:var(--kp-navy);font-size:13.5px}
.kp-portal .kp-ppd-summary{margin:16px 0;padding:16px 18px;border:1px solid var(--kp-border);border-left:3px solid var(--kp-blue);border-radius:10px;background:var(--kp-white)}
.kp-portal .kp-propd-main>.kp-ppd-summary{margin:0}
.kp-portal .kp-ppd-summary p{margin:7px 0 0;color:var(--kp-slate);font-size:13.5px;line-height:1.65}
.kp-portal .kp-ppd-finrows{display:grid;grid-template-columns:1fr 1fr;gap:0 44px}
.kp-portal .kp-ppd-finrow{display:flex;justify-content:space-between;gap:14px;border-bottom:1px solid var(--kp-fill);padding:9px 0;font-size:13.5px}
.kp-portal .kp-ppd-finrow b{color:var(--kp-navy);text-align:right}
.kp-portal .kp-ppd-map iframe{width:100%;height:220px;border:0;border-radius:8px;margin-top:6px}
@media (max-width:1100px){.kp-portal .kp-ppd-hero{grid-template-columns:1fr}.kp-portal .kp-ppd-steps{flex-wrap:wrap;gap:12px}.kp-portal .kp-ppd-step{flex:1 1 45%}.kp-portal .kp-ppd-step::before{display:none}.kp-portal .kp-ppd-finrows{grid-template-columns:1fr}}

/* wl93.1 — wider client rail + photos card + buyer copilot */
@media (min-width:1100px){.kp-portal .kp-propd-layout{grid-template-columns:minmax(0,1fr) 380px}}
.kp-portal .kp-ppimgs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:12px}
.kp-portal .kp-ppimgs-grid .kp-acq-thumb img{width:100%;height:110px;object-fit:cover;border-radius:8px}
.kp-portal .kp-acq-photoform{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

/* ---- wl96.1 — bench shortcut bar on the contact card ---- */
.kp-portal .kp-crm-benchbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 14px; }
.kp-portal .kp-crm-benchbar .kp-crm-inline { margin: 0; }

/* ============================================================
   wl97 — Tasks page rebuilt to the Flowlu To-Do reference:
   bucket rail + quick-add + priority-tinted rows, and the task
   drawer's checklist / subtasks / info-rail additions.
   ============================================================ */
.kp-portal .kp-tasks-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:14px;align-items:start}
.kp-portal .kp-tasks-rail{padding:8px}
.kp-portal .kp-tasks-rail-group{display:flex;flex-direction:column;padding:6px 0}
.kp-portal .kp-tasks-rail-group + .kp-tasks-rail-group{border-top:1px solid var(--kp-border)}
.kp-portal .kp-tasks-rail-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:8px;color:var(--kp-text);font-size:13px;font-weight:500;text-decoration:none}
.kp-portal .kp-tasks-rail-item b{color:var(--kp-muted);font-weight:500;font-size:12px}
.kp-portal .kp-tasks-rail-item:hover{background:var(--kp-fill-soft)}
.kp-portal .kp-tasks-rail-item.is-active{background:var(--kp-fill-soft);color:var(--kp-primary);font-weight:600}
.kp-portal .kp-tasks-rail-item.is-active b{color:var(--kp-primary)}
.kp-portal .kp-tasks-rail-alert b{color:var(--kp-error);font-weight:600}
.kp-portal .kp-tasks-main{display:flex;flex-direction:column;gap:12px;min-width:0}
.kp-portal .kp-tasks-quickadd{display:flex;align-items:center;gap:10px;padding:10px 12px}
.kp-portal .kp-tasks-quickadd input[type="text"]{flex:1;min-width:0}
.kp-portal .kp-tasks-quickadd select{max-width:200px}
.kp-portal .kp-tasks-quickadd .kp-button{flex:0 0 auto}
.kp-portal .kp-tasks-list{padding:4px 16px}
.kp-portal .kp-taskf-row{display:flex;align-items:flex-start;gap:12px;padding:12px 2px;border-bottom:1px solid var(--kp-border)}
.kp-portal .kp-taskf-row:last-of-type{border-bottom:0}
.kp-portal .kp-taskf-toggle{display:inline-flex;padding-top:2px}
.kp-portal .kp-taskf-check{width:20px;height:20px;flex:0 0 20px;border-radius:6px;border:2px solid var(--kp-border);background:var(--kp-white);cursor:pointer;color:#fff;font-size:12px;line-height:1;padding:0}
.kp-portal .kp-taskf-check.kp-prio-medium{border-color:#E8B931}
.kp-portal .kp-taskf-check.kp-prio-high{border-color:var(--kp-error)}
.kp-portal .kp-taskf-check.is-checked{background:var(--kp-success);border-color:var(--kp-success)}
.kp-portal .kp-taskf-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;color:inherit;text-decoration:none}
.kp-portal .kp-taskf-title{color:var(--kp-text);font-size:14px;font-weight:600;line-height:1.3;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.kp-portal .kp-taskf-row.is-done .kp-taskf-title{text-decoration:line-through;color:var(--kp-muted)}
.kp-portal .kp-taskf-meta{display:flex;gap:14px;flex-wrap:wrap;color:var(--kp-muted);font-size:12px}
.kp-portal .kp-taskf-overdue{color:var(--kp-error);font-weight:600}
.kp-portal .kp-taskf-link{color:var(--kp-muted);font-size:12px}
.kp-portal .kp-taskf-side{display:flex;align-items:center;gap:10px;flex:0 0 auto;padding-top:2px}
.kp-portal .kp-taskd-scroll{flex:1;min-width:0;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;display:flex;flex-direction:column}
.kp-portal .kp-taskd-drawer{display:flex;flex-direction:column}
.kp-portal .kp-taskd-scroll>.kp-taskd-form,.kp-portal .kp-taskd-scroll>.kp-taskd-extras{flex:0 0 auto;width:100%}
.kp-portal .kp-taskd-form{min-width:0;max-width:100%}
.kp-portal .kp-taskd-main{overflow:visible;flex:1;min-width:0;max-width:100%}
.kp-portal .kp-taskd-foot{border-top:1px solid var(--kp-border);margin-top:16px;padding-top:12px}
.kp-portal .kp-taskd-parentlink{text-decoration:none;margin-left:auto}
.kp-portal .kp-taskd-info{display:flex;flex-direction:column;gap:0;margin:0 0 12px;border:1px solid var(--kp-border);border-radius:10px;padding:6px 12px;background:var(--kp-white)}
.kp-portal .kp-taskd-inforow{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--kp-border);font-size:12px}
.kp-portal .kp-taskd-inforow:last-child{border-bottom:0}
.kp-portal .kp-taskd-inforow > span{color:var(--kp-muted);min-width:80px}
.kp-portal .kp-taskd-inforow b{color:var(--kp-text);font-weight:600}
.kp-portal .kp-taskd-progress{flex:1;height:6px;border-radius:999px;background:var(--kp-fill-soft);overflow:hidden}
.kp-portal .kp-taskd-progress i{display:block;height:100%;border-radius:999px;background:var(--kp-success)}
.kp-portal .kp-taskd-extras{min-width:0;max-width:100%;padding:0 18px 18px;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.kp-portal .kp-taskd-extra{min-width:0;max-width:100%;border:1px solid var(--kp-border);border-radius:10px;padding:12px 14px;background:var(--kp-white)}
.kp-portal .kp-taskd-checkrow{display:flex;align-items:center;gap:10px;padding:6px 0}
.kp-portal .kp-taskd-checkrow form{display:inline-flex;margin:0}
.kp-portal .kp-taskd-checkbtn{width:18px;height:18px;flex:0 0 18px;font-size:11px}
.kp-portal .kp-taskd-checktext{flex:1;min-width:0;color:var(--kp-text);font-size:13px;text-decoration:none}
.kp-portal .kp-taskd-checkrow.is-done .kp-taskd-checktext{text-decoration:line-through;color:var(--kp-muted)}
.kp-portal .kp-taskd-addrow{display:flex;align-items:center;gap:8px;margin-top:8px}
.kp-portal .kp-taskd-addrow input[type="text"]{flex:1;min-width:0}
.kp-portal .kp-taskd-status-sel.is-done{color:var(--kp-success)}
@media (min-width:1100px){
.kp-portal .kp-taskd-form{display:grid;grid-template-columns:minmax(0,1fr) 320px}
.kp-portal .kp-taskd-coprail{min-width:0;max-width:100%;padding:16px 18px 12px 0}
}
@media (max-width:900px){
.kp-portal .kp-tasks-layout{grid-template-columns:1fr}
.kp-portal .kp-taskd-extras{grid-template-columns:1fr}
.kp-portal .kp-tasks-quickadd{flex-wrap:wrap}
}

/* ---- wl98 -- operator property page: client-style hero + record slide-ins ---- */
.kp-portal .kp-pp-quick{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.kp-portal .kp-pp-herocard{margin-bottom:14px}
.kp-portal .kp-pp-stage-progress{display:grid;gap:5px;width:min(360px,100%);margin-top:10px}
.kp-portal .kp-pp-stage-progress>span:first-child{display:flex;justify-content:space-between;gap:12px;font-size:10.5px;line-height:1.2;color:#667085}
.kp-portal .kp-pp-stage-progress b{font-weight:700;color:#344054}
.kp-portal .kp-pp-stage-progress em{font-style:normal}
.kp-portal .kp-pp-stage-progress-track{display:block;height:4px;overflow:hidden;border-radius:999px;background:#e7edf5}
.kp-portal .kp-pp-stage-progress-track i{display:block;height:100%;border-radius:inherit;background:var(--kp-primary,var(--kp-navy))}
.kp-portal .kp-deal-tasks-drawer{width:min(520px,94vw)}
.kp-portal .kp-deal-tasks-drawer .kp-mailc-drawer-head{display:flex;align-items:center;gap:10px}
.kp-portal .kp-deal-tasks-drawer .kp-mailc-drawer-head h2{margin-right:auto}
.kp-portal .kp-deal-task-list{padding:4px 16px}
.kp-portal .kp-deal-task-row{display:flex;align-items:flex-start;gap:11px;padding:13px 2px;border-bottom:1px solid var(--kp-border,#dce4ed)}
.kp-portal .kp-deal-task-row:last-child{border-bottom:0}
.kp-portal .kp-deal-task-main{display:grid;gap:5px;min-width:0;flex:1;color:inherit;text-decoration:none}
.kp-portal .kp-deal-task-main strong{font-size:13px;line-height:1.35;color:#17233c}
.kp-portal .kp-deal-task-main span{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:10.5px;color:#667085}
.kp-portal .kp-deal-task-main span b{padding:2px 6px;border-radius:999px;background:#eef3ff;color:#2e46c6;font-size:9.5px}
.kp-portal .kp-deal-task-main span em{font-style:normal}
.kp-portal .kp-deal-task-row.is-done .kp-deal-task-main strong{text-decoration:line-through;color:#98a2b3}
.kp-portal .kp-dealroom-password{display:grid;gap:6px;margin:12px 0;padding:12px;border:1px solid var(--kp-border,#dce4ed);border-radius:8px;background:#fff}
.kp-portal .kp-dealroom-password[hidden]{display:none}
.kp-portal .kp-dealroom-password input{width:100%}

/* Record drawers preserve the property page as context. Compact information
   drawers stay below half the viewport; only form-heavy workspaces approach
   the 60% ceiling. */
.kp-portal .kp-recd-drawer{width:min(48vw,760px);max-width:760px}
.kp-portal .kp-recd-drawer[data-kp-area-drawer]{width:min(52vw,860px);max-width:860px}
.kp-portal .kp-recd-drawer[data-kp-scope-drawer],
.kp-portal .kp-recd-drawer[data-kp-money-drawer],
.kp-portal .kp-editd-drawer.kp-recd-drawer{width:min(60vw,1100px);max-width:1100px}
.kp-portal .kp-notesd-drawer.kp-recd-drawer,
.kp-portal .kp-histd-drawer.kp-recd-drawer{width:min(44vw,680px);max-width:680px}
.kp-portal .kp-teaserd-drawer.kp-recd-drawer{width:min(52vw,860px);max-width:860px}
.kp-portal .kp-deal-tasks-drawer.kp-recd-drawer{width:min(520px,94vw);max-width:520px}
.kp-portal .kp-mailc-drawer:not(.kp-recd-drawer):not(.kp-taskd-drawer){width:min(60vw,1050px)}
@media (max-width:900px){
    .kp-portal .kp-recd-drawer,
    .kp-portal .kp-recd-drawer[data-kp-area-drawer],
    .kp-portal .kp-recd-drawer[data-kp-scope-drawer],
    .kp-portal .kp-recd-drawer[data-kp-money-drawer],
    .kp-portal .kp-editd-drawer.kp-recd-drawer,
    .kp-portal .kp-notesd-drawer.kp-recd-drawer,
    .kp-portal .kp-histd-drawer.kp-recd-drawer,
    .kp-portal .kp-teaserd-drawer.kp-recd-drawer,
    .kp-portal .kp-mailc-drawer:not(.kp-taskd-drawer){width:94vw;max-width:94vw}
}
.kp-portal .kp-pp-notesbox{margin:10px 0;padding:10px 12px;border:1px solid var(--kp-border);border-radius:8px;background:var(--kp-fill-soft)}
.kp-portal .kp-pp-notesbox .kp-button{margin-top:6px}
.kp-portal .kp-notesd-backdrop{z-index:10600}
.kp-portal .kp-notesd-drawer{z-index:10601;display:flex;flex-direction:column}
.kp-portal .kp-notesd-form{flex:1;display:flex;flex-direction:column;padding:16px 18px;min-height:0}
.kp-portal .kp-notesd-form textarea{flex:1;min-height:300px;resize:vertical;font:inherit;border:1px solid var(--kp-border);border-radius:8px;padding:10px 12px;background:var(--kp-white)}
.kp-portal .kp-notesd-form .kp-mailc-drawer-foot{margin-top:12px;padding:12px 0 0;border-top:1px solid var(--kp-border)}
@media (min-width:1100px){
.kp-portal .kp-notesd-drawer{width:56vw}
}

/* ---- wl99 -- property record rail + Copilot / Teaser / History slide-outs ---- */
.kp-portal .kp-pp-shell{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:14px;align-items:start}
.kp-portal .kp-pp-content{min-width:0}
.kp-portal .kp-pp-rail{position:sticky;top:14px;display:flex;flex-direction:column;gap:8px;border:1px solid var(--kp-border);border-radius:10px;background:var(--kp-white);padding:10px}
.kp-portal .kp-pp-rail-btn{display:flex;align-items:center;gap:10px;width:100%;padding:9px 11px;border:1px solid var(--kp-border);border-radius:8px;background:var(--kp-white);cursor:pointer;font:inherit;font-size:13px;font-weight:600;color:var(--kp-text);text-decoration:none;text-align:left}
.kp-portal .kp-pp-rail-btn:hover{border-color:var(--kp-primary);color:var(--kp-primary)}
.kp-portal .kp-pp-rail-btn b{margin-left:auto;color:var(--kp-muted);font-weight:500;font-size:12px}
.kp-portal .kp-raild-body{flex:1;min-height:0;overflow-y:auto;padding:16px 18px}
.kp-portal .kp-copd-backdrop,.kp-portal .kp-teaserd-backdrop,.kp-portal .kp-histd-backdrop{z-index:10600}
.kp-portal .kp-copd-drawer,.kp-portal .kp-teaserd-drawer,.kp-portal .kp-histd-drawer{z-index:10601;display:flex;flex-direction:column}
.kp-portal .kp-copd-drawer .kp-coprail{background:var(--kp-fill-soft)}
.kp-portal .kp-hist-list{display:flex;flex-direction:column}
.kp-portal .kp-hist-row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;padding:9px 2px;border-bottom:1px solid var(--kp-border);font-size:13px}
.kp-portal .kp-hist-row:last-child{border-bottom:0}
.kp-portal .kp-hist-ts{color:var(--kp-muted);font-size:12px;white-space:nowrap}
.kp-portal .kp-hist-main{display:flex;flex-direction:column;gap:2px}
.kp-portal .kp-hist-main b{font-weight:600;color:var(--kp-text)}
@media (min-width:1100px){
.kp-portal .kp-copd-drawer{width:46vw}
.kp-portal .kp-teaserd-drawer{width:64vw}
.kp-portal .kp-histd-drawer{width:54vw}
}
@media (max-width:900px){
.kp-portal .kp-pp-shell{grid-template-columns:1fr}
.kp-portal .kp-pp-rail{position:static;flex-direction:row;flex-wrap:wrap}
.kp-portal .kp-pp-rail-btn{width:auto}
}

/* ---- wl99.1 -- property page tightened: identity in the hero, client-width rail, permanent map ---- */
.kp-portal .kp-pp-topbar{display:flex;align-items:center;margin:0 0 12px}
.kp-portal .kp-pp-shell{grid-template-columns:minmax(0,1fr) 380px}
.kp-portal .kp-pp-herohead{display:flex;flex-direction:column;justify-content:center;gap:6px;min-width:0}
.kp-portal .kp-pp-herohead .kp-eyebrow{margin:0}
.kp-portal .kp-pp-herohead h1{margin:0;font-size:22px;font-weight:600;line-height:1.2;color:var(--kp-text)}
.kp-portal .kp-pp-herohead .kp-pp-addr{margin:0;color:var(--kp-muted);font-size:13px}
.kp-portal .kp-pp-heroline{display:flex;align-items:center;gap:10px;margin:2px 0 4px}
.kp-portal .kp-pp-heroline .kp-ppd-price{margin:0}
.kp-portal .kp-pp-rail-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.kp-portal .kp-pp-rail-btn{justify-content:center;text-align:center;gap:6px}
.kp-portal .kp-pp-rail-map{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.kp-portal .kp-pp-rail-map .kp-ppd-map{margin:0}
.kp-portal .kp-pp-rail-map iframe{width:100%;height:280px;border:0;border-radius:8px;display:block}
.kp-portal .kp-pp-rail-maplinks{display:flex;justify-content:space-between;gap:10px}
.kp-portal .kp-pp-rail-maplinks a{text-decoration:none}
@media (max-width:900px){
.kp-portal .kp-pp-rail-actions{grid-template-columns:repeat(3,1fr)}
}


/* ============================================================
   wl99.2 — deal page: one pill row (tabs + tools drawn alike),
   rail reordered to map-then-copilot always open, edit slide-in,
   and the document viewer modal (packet / teaser one-pager).
   ============================================================ */
.kp-portal .kp-pp-pills{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:2px 0 16px}
.kp-portal .kp-pp-pills a,.kp-portal .kp-pp-pills button{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--kp-border);border-radius:999px;background:var(--kp-white);color:var(--kp-text);font:inherit;font-size:13px;font-weight:600;line-height:1;padding:9px 15px;text-decoration:none;cursor:pointer}
.kp-portal .kp-pp-pills a:hover,.kp-portal .kp-pp-pills button:hover{border-color:#BCC6D8;background:var(--kp-fill-soft)}
.kp-portal .kp-pp-pills a.is-active{background:var(--kp-navy,#10131a);border-color:var(--kp-navy,#10131a);color:#fff}
.kp-portal .kp-pp-pills button b{background:var(--kp-fill-soft);color:var(--kp-muted);border-radius:999px;font-size:11px;font-weight:700;padding:3px 7px;margin:-2px 0}
.kp-portal .kp-pp-pillsep{width:1px;height:20px;background:var(--kp-border);margin:0 4px;flex:0 0 auto}
.kp-portal .kp-pp-rail-map{margin-top:0}
.kp-portal .kp-pp-rail .kp-coprail{margin-bottom:0}
.kp-portal .kp-pp-rail .kp-coprail-thread{max-height:300px}
.kp-portal .kp-editd-backdrop{z-index:10600}
.kp-portal .kp-editd-drawer{z-index:10601}
.kp-portal .kp-pdfm-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:10700}
.kp-portal .kp-pdfm{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(1020px,94vw);height:min(880px,90vh);background:var(--kp-white);border-radius:14px;box-shadow:0 30px 80px rgba(0,0,0,.35);z-index:10701;display:none;flex-direction:column;overflow:hidden}
.kp-portal .kp-pdfm.is-open{display:flex}
.kp-portal .kp-pdfm-head{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--kp-border)}
.kp-portal .kp-pdfm-head b{flex:1;min-width:0;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kp-portal .kp-pdfm iframe{flex:1;border:0;width:100%}
@media (min-width:1100px){
.kp-portal .kp-editd-drawer{width:64vw;max-width:1100px}
}
@media (max-width:900px){
.kp-portal .kp-pp-rail{flex-direction:column}
}


/* ============================================================
   wl99.3 — deal page: pill row boxed into a card (level with the
   rail), every pill a ≥60% slide-out with the copilot docked open
   on its right (kp-recd-*), shared-thread copilot rail.
   ============================================================ */
.kp-portal .kp-pp-pillcard{padding:10px 14px;margin:0 0 14px}
.kp-portal .kp-pp-pillcard .kp-pp-pills{margin:0}
.kp-portal .kp-recd-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start}
.kp-portal .kp-recd-main{min-width:0;display:flex;flex-direction:column;gap:12px}
.kp-portal .kp-recd-cop .kp-coprail{margin-bottom:0;background:var(--kp-fill-soft)}
.kp-portal .kp-recd-backdrop{z-index:10600}
.kp-portal .kp-recd-drawer{z-index:10601}
.kp-portal button.kp-ppd-seeall{font:inherit;cursor:pointer}
.kp-portal .kp-linkbtn{background:none;border:0;padding:0;cursor:pointer;font:inherit;text-align:left}
.kp-portal .kp-notesd-form{display:flex;flex-direction:column;gap:10px}
.kp-portal .kp-notesd-form textarea{width:100%}
@media (min-width:1100px){
.kp-portal .kp-recd-grid{grid-template-columns:minmax(0,1fr) 340px}
.kp-portal .kp-recd-drawer{width:64vw;max-width:1500px}
.kp-portal .kp-notesd-drawer.kp-recd-drawer{width:64vw}
.kp-portal .kp-histd-drawer.kp-recd-drawer{width:64vw}
.kp-portal .kp-teaserd-drawer.kp-recd-drawer{width:64vw}
.kp-portal .kp-editd-drawer.kp-recd-drawer{width:64vw}
}
@media (max-width:900px){
.kp-portal .kp-pp-rail{flex-direction:column}
}


/* ============================================================
   wl99.4 — slide-out layout fix: the content owns the width,
   the copilot is a fixed 320px sidebar (sticky while scrolling);
   record drawers widen to 86vw. Threads are scope-keyed
   (per-property on deal pages) — no CSS impact beyond this.
   ============================================================ */
.kp-portal .kp-recd-cop{min-width:0}
@media (min-width:1100px){
.kp-portal .kp-recd-drawer{width:86vw;max-width:1720px}
.kp-portal .kp-recd-grid{grid-template-columns:minmax(0,1fr) 320px}
.kp-portal .kp-recd-cop{position:sticky;top:12px}
}


/* ============================================================
   wl99.5 — drawer layout hotfix. The base .kp-mailc-drawer is a
   GRID with a reserved right column (the mail compose sidebar);
   the older record drawers each overrode it to flex, but Edit and
   the wl99.3 four (area/scope/money/docs) did not — so the body
   was auto-placed into the grid and a dead 340px column sat on
   the right. All record drawers are now flex columns. Also: the
   edit form loses its 640px pipeline-era cap inside the drawer,
   and the empty copilot thread box no longer paints (its
   display:flex rule was overriding the hidden attribute).
   ============================================================ */
.kp-portal .kp-recd-drawer{display:flex;flex-direction:column}
.kp-portal .kp-recd-grid .kp-acq-editform{max-width:none}
.kp-portal .kp-coprail-thread[hidden]{display:none}

/* wl99.5b -- the wl99.3 per-drawer 64vw rules (3-class specificity) still beat
   the 86vw record-drawer width for edit/teaser/notes/history; match them. */
@media (min-width:1100px){
.kp-portal .kp-notesd-drawer.kp-recd-drawer,
.kp-portal .kp-histd-drawer.kp-recd-drawer,
.kp-portal .kp-teaserd-drawer.kp-recd-drawer,
.kp-portal .kp-editd-drawer.kp-recd-drawer{width:86vw;max-width:1720px}
}


/* ============================================================
   wl100 — Personalize guides: designed PDF masters in the
   Resource Library, browser fill+flatten drawer, real thumbnails.
   ============================================================ */
.kp-portal .kp-guides-personalize{display:flex;align-items:center;gap:12px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end}
.kp-portal .kp-thumb-img{display:flex;overflow:hidden}
.kp-portal .kp-thumb-img img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}
.kp-portal .kp-guidesd-backdrop{z-index:10600}
.kp-portal .kp-guidesd-drawer{z-index:10601;display:flex;flex-direction:column}
.kp-portal .kp-guidesd-label{display:block;margin:0 0 12px;font-size:12px;font-weight:600}
.kp-portal .kp-guidesd-label input{width:100%;margin-top:4px}
.kp-portal .kp-guidesd-list{border:1px solid var(--kp-border);border-radius:10px;padding:4px 12px;margin:6px 0 10px}
.kp-portal .kp-guidesd-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--kp-border);font-size:13px}
.kp-portal .kp-guidesd-row:last-child{border-bottom:0}
.kp-portal .kp-guidesd-row b{color:var(--kp-primary);font-weight:700}
.kp-portal .kp-guidesd-drawer .kp-mailc-drawer-foot{margin-top:auto;padding-top:12px;border-top:1px solid var(--kp-border)}
@media (min-width:1100px){
.kp-portal .kp-guidesd-drawer{width:540px}
}


/* ============================================================
   wl101 — Doc Studio template actions: inline delete/import forms
   sit level with the text links in a thumb-card action row.
   ============================================================ */
.kp-portal .kp-thumb-actions .kp-thumb-delform,
.kp-portal .kp-thumb-actions .kp-thumb-useform{display:inline;margin:0}
.kp-portal .kp-thumb-actions .kp-thumb-delform button,
.kp-portal .kp-thumb-actions .kp-thumb-useform button{background:none;border:0;padding:0;margin:0;cursor:pointer;font:inherit;color:var(--kp-blue);text-decoration:none}
.kp-portal .kp-thumb-actions .kp-thumb-delform button:hover,
.kp-portal .kp-thumb-actions .kp-thumb-useform button:hover{text-decoration:underline}
.kp-portal .kp-linklike-danger{color:var(--kp-error) !important}


/* ============================================================
   wl86.4 — split-screen login matched to the dealstrand.com
   homepage + Flowlu layout shape: content distributed top→bottom
   (logo+copy top, verification card middle, pills+copyright bottom),
   NOT centred with a dead void. Crisp bordered inputs. White-label
   name/logo via KP_Brand; the wordmark shows the clean product name.
   ============================================================ */
.kp-portal .kp-login-split,
.kp-login-split{display:grid;grid-template-columns:34% 66%;min-height:100vh;align-items:stretch;justify-items:stretch;background:#fff;padding:0}
/* Brand panel — inner stretches to full height, content distributed */
.kp-login-split .kp-login-brand{position:relative;overflow:hidden;box-sizing:border-box;color:#eef2fb;min-height:100vh;display:flex;align-items:stretch;justify-content:flex-start;padding:44px 48px;background:radial-gradient(900px 480px at 82% -12%,rgba(20, 44, 79,.24),transparent 60%),radial-gradient(680px 420px at 6% 112%,rgba(51,224,200,.12),transparent 62%),#060d1f}
.kp-login-split .kp-login-grid{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:54px 54px;-webkit-mask-image:radial-gradient(ellipse 92% 82% at 50% 30%,#000 30%,transparent 78%);mask-image:radial-gradient(ellipse 92% 82% at 50% 30%,#000 30%,transparent 78%)}
.kp-login-split .kp-login-panel-inner{position:relative;z-index:1;width:100%;max-width:100%;display:flex;flex-direction:column;justify-content:space-between;gap:28px}
.kp-login-split .kp-login-mid{display:flex;flex-direction:column;gap:18px}
/* top group: wordmark + hero copy */
.kp-login-split .kp-login-head{display:flex;flex-direction:column;gap:20px}
.kp-login-split .kp-login-wordmark{display:flex;align-items:center;gap:12px;color:#fff}
.kp-login-split .kp-login-mark{display:inline-flex;align-items:center;justify-content:center;margin:0;width:40px;height:40px;border-radius:11px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:#fff}
.kp-login-split .kp-login-mark svg{display:block}
.kp-login-split .kp-login-logo{max-height:40px;width:auto;display:block}
.kp-login-split .kp-login-brandname{font-size:20px;font-weight:700;letter-spacing:.2px;color:#fff}
.kp-login-split .kp-login-hero{display:flex;flex-direction:column;gap:10px}
.kp-login-split .kp-login-eyebrow{display:flex;align-items:center;gap:8px;margin:0;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#7fe6d6}
.kp-login-split .kp-login-eyebrow .kp-dot{width:7px;height:7px;border-radius:50%;background:#33E0C8;box-shadow:0 0 0 3px rgba(51,224,200,.18);flex:0 0 auto}
.kp-login-split .kp-login-headline{margin:0;font-size:33px;line-height:1.08;font-weight:800;letter-spacing:-.5px;color:#fff}
.kp-login-split .kp-login-headline .kp-grad{background:linear-gradient(100deg,#33E0C8 10%,#6ea8ff 90%);-webkit-background-clip:text;background-clip:text;color:transparent}
.kp-login-split .kp-login-sub{margin:0;font-size:14px;line-height:1.5;color:#aeb9d8;max-width:34ch}
/* verification-review mock card (the focal visual) */
.kp-login-split .kp-login-mock{border-radius:15px;overflow:hidden;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.kp-login-split .kp-login-mock-bar{display:flex;align-items:center;gap:7px;padding:12px 15px;border-bottom:1px solid rgba(255,255,255,.09)}
.kp-login-split .kp-login-mock-bar i{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.18);display:inline-block}
.kp-login-split .kp-login-mock-title{margin-left:8px;font-size:12px;color:#93a1c6;letter-spacing:.3px}
.kp-login-split .kp-login-mock-body{padding:5px 15px 11px}
.kp-login-split .kp-login-mock-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0}
.kp-login-split .kp-login-mock-row+.kp-login-mock-row{border-top:1px solid rgba(255,255,255,.06)}
.kp-login-split .kp-login-mock-doc{display:flex;align-items:center;gap:11px;min-width:0}
.kp-login-split .kp-login-mock-ico{font-size:20px;line-height:1;flex:0 0 auto}
.kp-login-split .kp-login-mock-doc strong{display:block;font-size:13.5px;color:#eef2ff;font-weight:600}
.kp-login-split .kp-login-mock-doc small{font-size:11px;color:#7d8bb0}
.kp-login-split .kp-chip{flex:0 0 auto;font-size:11px;font-weight:600;border-radius:999px;padding:3px 10px;white-space:nowrap}
.kp-login-split .kp-chip-green{background:rgba(46,213,137,.14);color:#46e3a0;border:1px solid rgba(46,213,137,.35)}
.kp-login-split .kp-chip-amber{background:rgba(255,184,46,.12);color:#ffc85e;border:1px solid rgba(255,184,46,.35)}
.kp-login-split .kp-chip-blue{background:rgba(110,168,255,.13);color:#8fb6ff;border:1px solid rgba(110,168,255,.35)}
.kp-login-split .kp-login-mock-foot{display:flex;align-items:center;justify-content:space-between;padding:11px 15px;border-top:1px solid rgba(255,255,255,.09);font-size:12px}
.kp-login-split .kp-login-mock-ai{display:flex;align-items:center;gap:6px;color:#7fe6d6;font-weight:700;letter-spacing:.04em}
.kp-login-split .kp-login-mock-ai svg{display:block}
.kp-login-split .kp-login-mock-verdict{color:#93a1c6}
.kp-login-split .kp-login-mock-verdict b{color:#ffc85e}
/* bottom group: feature pills + copyright */
.kp-login-split .kp-login-foot{display:flex;flex-direction:column;gap:16px}
.kp-login-split .kp-login-pills{display:flex;flex-wrap:wrap;gap:7px}
.kp-login-split .kp-login-pills span{font-size:11px;color:#c7d2ec;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.13);border-radius:999px;padding:5px 11px}
.kp-login-split .kp-login-copy{margin:0;font-size:11.5px;color:#6f7ea3}
/* Form column */
.kp-login-split .kp-login-formwrap{box-sizing:border-box;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px 40px}
.kp-login-split .kp-login-formwrap .kp-login-card{width:100%;max-width:388px;margin:0;box-shadow:none;border:0;background:transparent;padding:0}
/* Crisp, professional inputs (both forms) */
.kp-login-split .kp-login-form input[type=text],
.kp-login-split .kp-login-form input[type=email],
.kp-login-split .kp-login-form input[type=password]{width:100%;box-sizing:border-box;background:#fff;border:1px solid #d5dae6;border-radius:10px;padding:12px 14px;font-size:14px;color:#0f172a;transition:border-color .15s,box-shadow .15s}
.kp-login-split .kp-login-form input[type=text]:focus,
.kp-login-split .kp-login-form input[type=email]:focus,
.kp-login-split .kp-login-form input[type=password]:focus{outline:none;border-color:var(--kp-navy);box-shadow:0 0 0 3px rgba(20, 44, 79,.15)}
.kp-login-split .kp-login-form input::placeholder{color:#9aa4bd}
.kp-login-split .kp-login-divider{display:flex;align-items:center;gap:12px;margin:18px 0;color:#9ca3af;font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.kp-login-split .kp-login-divider span{flex:1;height:1px;background:#e5e7eb}
/* Mobile: brand panel → slim header, form takes over */
@media (max-width:860px){
  .kp-portal .kp-login-split,.kp-login-split{grid-template-columns:1fr}
  .kp-login-split .kp-login-brand,.kp-login-split .kp-login-formwrap{min-height:0}
  .kp-login-split .kp-login-brand{padding:26px 22px}
  .kp-login-split .kp-login-panel-inner{max-width:520px;margin:0 auto;justify-content:flex-start;gap:14px}
  .kp-login-split .kp-login-head{gap:12px}
  .kp-login-split .kp-login-headline{font-size:24px}
  .kp-login-split .kp-login-sub,
  .kp-login-split .kp-login-mock,
  .kp-login-split .kp-login-foot{display:none}
  .kp-login-split .kp-login-formwrap{padding:26px 22px 46px}
  .kp-login-split .kp-login-formwrap .kp-login-card{max-width:460px}
}


/* ============================================================
   wl102 — client-CRM Tasks tab: richer task composer card + priority pills
   ============================================================ */
.kp-portal .kp-taskcard{display:flex;flex-direction:column;gap:10px;background:#fff;border:1px solid #e2e6ef;border-radius:12px;padding:16px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.kp-portal .kp-taskcard-title{width:100%;box-sizing:border-box;border:1px solid #d5dae6;border-radius:8px;padding:10px 12px;font-size:15px;font-weight:600;color:#0f172a}
.kp-portal .kp-taskcard-meta{display:flex;flex-wrap:wrap;gap:12px}
.kp-portal .kp-taskcard-meta label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:#667085;font-weight:600;text-transform:uppercase;letter-spacing:.03em}
.kp-portal .kp-taskcard-meta select,.kp-portal .kp-taskcard-meta input{border:1px solid #d5dae6;border-radius:8px;padding:7px 10px;font-size:13px;color:#0f172a;font-weight:400;text-transform:none;letter-spacing:0}
.kp-portal .kp-taskcard-detail{width:100%;box-sizing:border-box;border:1px solid #d5dae6;border-radius:8px;padding:10px 12px;font-size:13px;resize:vertical;color:#0f172a}
.kp-portal .kp-taskcard-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.kp-portal .kp-crm-sharechk{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:#344054;cursor:pointer;text-transform:none;letter-spacing:0;font-weight:400}
.kp-portal .kp-prio{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:2px 8px;border-radius:999px;margin-left:6px;vertical-align:middle}
.kp-portal .kp-prio-high{background:rgba(220,38,38,.1);color:#b42318}
.kp-portal .kp-prio-medium{background:rgba(234,179,8,.14);color:#a16207}
.kp-portal .kp-prio-low{background:rgba(100,116,139,.12);color:#475569}

/* wl102.1 — CRM Tasks: active/completed subtabs + action footer */
.kp-portal .kp-crm-subtabs{display:flex;gap:6px;margin:14px 0 10px;border-bottom:1px solid #e5e7eb}
.kp-portal .kp-crm-subtabs a{padding:7px 12px;font-size:13px;font-weight:600;color:#667085;text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px}
.kp-portal .kp-crm-subtabs a.is-active{color:var(--kp-navy);border-bottom-color:var(--kp-navy)}
.kp-portal .kp-crm-actfoot{display:flex;align-items:center;gap:14px;margin-top:8px;flex-wrap:wrap}
.kp-portal .kp-crm-actrow.is-done .kp-crm-acttype,.kp-portal .kp-crm-actrow.is-done strong{opacity:.6}

/* wl104 — professional CRM Tasks: data table + collapsible new-task composer */
.kp-portal .kp-tasktable{width:100%;border-collapse:collapse;font-size:13.5px;margin-top:4px}
.kp-portal .kp-tasktable thead th{text-align:left;font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#98a2b3;padding:9px 14px;border-bottom:1px solid #e7eaf0;white-space:nowrap}
.kp-portal .kp-tasktable tbody td{padding:12px 14px;border-bottom:1px solid #f1f3f7;vertical-align:middle;color:#344256}
.kp-portal .kp-tasktable tbody tr:hover{background:#f8f9fb}
.kp-portal .kp-tt-task{width:58%}
.kp-portal .kp-tt-type{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#a3abba;margin-right:9px;vertical-align:middle}
.kp-portal .kp-tt-title{font-size:14px;font-weight:600;color:#1a2233;vertical-align:middle}
.kp-portal .kp-tasktable tr.is-done .kp-tt-title{text-decoration:line-through;color:#98a2b3;font-weight:500}
.kp-portal .kp-tt-detail{display:block;font-size:12.5px;color:#7a869a;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52ch}
.kp-portal .kp-tt-note{display:block;font-size:12px;color:var(--kp-navy);margin-top:3px}
.kp-portal .kp-tt-c-prio,.kp-portal .kp-tt-c-due,.kp-portal .kp-tt-c-share,.kp-portal .kp-tt-c-act{white-space:nowrap}
.kp-portal .kp-tt-prio{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:#475467;font-weight:500}
.kp-portal .kp-tt-prio i{width:8px;height:8px;border-radius:50%;background:#cbd2dc;flex:0 0 auto}
.kp-portal .kp-tt-prio-high i{background:#ef4444}
.kp-portal .kp-tt-prio-medium i{background:#f59e0b}
.kp-portal .kp-tt-prio-low i{background:#94a3b8}
.kp-portal .kp-tt-c-due{color:#667085;font-size:13px}
.kp-portal .kp-tt-sharebtn,.kp-portal .kp-tt-actbtn{background:none;border:0;padding:0;cursor:pointer;font:inherit;font-size:13px}
.kp-portal .kp-tt-actbtn{color:var(--kp-navy);font-weight:500}
.kp-portal .kp-tt-actbtn:hover{text-decoration:underline}
.kp-portal .kp-tt-sharebtn{color:#98a2b3}
.kp-portal .kp-tt-sharebtn:hover{color:#475467}
.kp-portal .kp-tt-sharebtn.is-shared{display:inline-flex;align-items:center;gap:6px;color:#12805c;font-weight:600}
.kp-portal .kp-tt-sharebtn.is-shared::before{content:"";width:7px;height:7px;border-radius:50%;background:#16a34a}
.kp-portal details.kp-tasknew{margin:2px 0 16px}
.kp-portal details.kp-tasknew>summary{list-style:none;display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:13.5px;font-weight:600;color:var(--kp-navy);padding:6px 0}
.kp-portal details.kp-tasknew>summary::-webkit-details-marker{display:none}
.kp-portal .kp-tasknew-plus{display:inline-flex;align-items:center;justify-content:center;width:21px;height:21px;border-radius:6px;background:#eaf0ff;color:var(--kp-navy);font-weight:700;font-size:15px;line-height:1}
.kp-portal .kp-tasknew-form{margin-top:10px;padding:16px;border:1px solid #e7eaf0;border-radius:12px;background:#fcfcfd;display:flex;flex-direction:column;gap:12px}
.kp-portal .kp-tasknew-title{width:100%;box-sizing:border-box;border:1px solid #d5dae6;border-radius:8px;padding:10px 12px;font-size:14px;font-weight:600;color:#1a2233}
.kp-portal .kp-tasknew-row{display:flex;gap:14px;flex-wrap:wrap}
.kp-portal .kp-tasknew-row label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#8a94a6}
.kp-portal .kp-tasknew-row select,.kp-portal .kp-tasknew-row input{border:1px solid #d5dae6;border-radius:8px;padding:8px 10px;font-size:13.5px;color:#1f2733;background:#fff}
.kp-portal .kp-tasknew-detail{width:100%;box-sizing:border-box;border:1px solid #d5dae6;border-radius:8px;padding:10px 12px;font-size:13.5px;color:#1f2733;resize:vertical}
.kp-portal .kp-tasknew-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}
.kp-portal .kp-tasknew-share{display:flex;align-items:center;gap:8px;font-size:13px;color:#475467;text-transform:none;letter-spacing:0;font-weight:500}
.kp-portal .kp-crm-subtabs{gap:2px;border-bottom:1px solid #e7eaf0}
/* wl105 — Copilot docked right on the CRM record card */
.kp-crm-panel--cop{width:min(1040px,96vw)}
.kp-portal .kp-crm-pbody.kp-has-cop{display:flex;gap:0;padding:0;align-items:stretch}
.kp-portal .kp-crm-pbody.kp-has-cop .kp-crm-pmain{flex:1 1 auto;min-width:0;padding:20px 24px;overflow-y:auto}
.kp-portal .kp-crm-pside{flex:0 0 336px;width:336px;box-sizing:border-box;border-left:1px solid #eceef2;background:#fbfbfd;padding:18px 16px;overflow-y:auto}
.kp-portal .kp-crm-pside .kp-coprail{margin:0;border:0;background:transparent;padding:0;box-shadow:none}
.kp-portal .kp-crm-pside .kp-coprail h3{margin-top:0;font-size:14px}
@media (max-width:960px){.kp-crm-panel--cop{width:96vw}.kp-portal .kp-crm-pbody.kp-has-cop{flex-direction:column}.kp-portal .kp-crm-pside{flex:none;width:auto;border-left:0;border-top:1px solid #eceef2}}
/* wl106 — record card: close X top-left, copilot actions in dock, single-column main */
.kp-portal .kp-crm-pbar{justify-content:flex-start;gap:14px}
.kp-portal .kp-crm-pbar .kp-gs-x{order:-1;font-size:24px}
.kp-portal .kp-crm-pcols > .kp-crm-pcol:only-child{grid-column:1 / -1}
/* wl107.1 — bigger close X hugging the card edge; no tab count badges */
.kp-portal .kp-crm-pbar{padding-left:12px;padding-right:14px}
.kp-portal .kp-crm-pbar .kp-gs-x{order:-1;font-size:28px;line-height:1;color:#475467;width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;padding:0}
.kp-portal .kp-crm-pbar .kp-gs-x:hover{background:#eef1f6;color:#0f172a}
/* wl107.2 — referrals: existing list first, "Log a referral" collapsible */
.kp-portal .kp-crm-secthead-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.kp-portal details.kp-crm-refnew{margin:16px 0 4px;border-top:1px solid #eef0f4;padding-top:14px}
.kp-portal details.kp-crm-refnew>summary{list-style:none;display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:13.5px;font-weight:600;color:var(--kp-navy);padding:6px 0}
.kp-portal details.kp-crm-refnew>summary::-webkit-details-marker{display:none}
.kp-portal details.kp-crm-refnew>summary span[aria-hidden]{display:inline-flex;align-items:center;justify-content:center;width:21px;height:21px;border-radius:6px;background:#eaf0ff;color:var(--kp-navy);font-weight:700;font-size:15px;line-height:1}
.kp-portal details.kp-crm-refnew[open]>summary{margin-bottom:8px}
.kp-portal details.kp-crm-refnew-global{margin:18px 0 20px;padding:14px 16px 16px;border:1px solid #dfe6ee;border-radius:12px;background:#f8fafc}
.kp-portal details.kp-crm-refnew-global>summary{padding:0}
.kp-portal details.kp-crm-refnew-global[open]>summary{padding-bottom:10px;border-bottom:1px solid #e5eaf0}

/* wl107.3 — inline editors in the record meta strip (category, portal toggle) */
.kp-portal .kp-crm-metaedit{position:relative}
.kp-portal .kp-meta-pop{display:block}
.kp-portal .kp-meta-pop>summary{list-style:none;display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.kp-portal .kp-meta-pop>summary::-webkit-details-marker{display:none}
.kp-portal .kp-meta-pop>summary b{font-size:13.5px;color:#344054;font-weight:600}
.kp-portal .kp-meta-pencil{font-style:normal;font-size:12px;color:#98A2B3;opacity:0;transition:opacity .12s}
.kp-portal .kp-crm-metaedit:hover .kp-meta-pencil,.kp-portal .kp-meta-pop[open] .kp-meta-pencil{opacity:1}
.kp-portal .kp-meta-popbody{position:absolute;z-index:40;top:calc(100% + 6px);left:0;min-width:230px;background:#fff;border:1px solid #e2e6ee;border-radius:12px;box-shadow:0 12px 30px rgba(16,24,40,.14);padding:12px}
.kp-portal .kp-meta-catopts{display:flex;flex-direction:column;gap:2px;max-height:260px;overflow:auto;margin-bottom:10px}
.kp-portal .kp-meta-catopt{display:flex;align-items:center;gap:8px;font-size:13px;color:#344054;padding:5px 6px;border-radius:7px;cursor:pointer}
.kp-portal .kp-meta-catopt:hover{background:#f5f7fb}
.kp-portal .kp-meta-catopt input{margin:0}
.kp-portal .kp-meta-portal{display:inline-flex}
.kp-portal .kp-meta-toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:13px}
.kp-portal .kp-meta-toggle input{margin:0;width:16px;height:16px;cursor:pointer}
.kp-portal .kp-meta-toggle.kp-is-disabled{cursor:not-allowed;opacity:.7}
.kp-portal .kp-meta-sublinkform{margin-top:5px}
.kp-portal .kp-meta-sublink{background:none;border:0;padding:0;margin:0;font-size:12px;color:var(--kp-navy);cursor:pointer;font-weight:500}
.kp-portal .kp-meta-sublink:hover{text-decoration:underline}
.kp-portal .kp-crm-metaedit .kp-crm-ncnd-no,.kp-portal .kp-crm-metaedit .kp-crm-ncnd-ok{display:block}

/* wl107.4 — linked deals: deep-link to the property + position badge/select */
.kp-portal .kp-linkedrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.kp-portal .kp-linkedrow .kp-docrow-title{flex:1 1 auto;min-width:140px}
.kp-portal .kp-linkrole-form{margin:0}
.kp-portal .kp-linkrole-select{font-size:12px;color:#475467;border:1px solid #d5dae6;border-radius:999px;padding:5px 12px;background:#fff;cursor:pointer;max-width:200px}
.kp-portal .kp-linkrole-select:hover{border-color:#b9c2d6}
.kp-portal .kp-crm-linkform select[name="link_role"]{min-width:170px}

/* wl107.5 — property visibility as a 3-tier segmented control */
.kp-portal .kp-ca-tier{display:inline-flex;align-items:stretch;border:1px solid #d5dae6;border-radius:9px;overflow:hidden;background:#fff}
.kp-portal .kp-ca-tier-form{margin:0;display:flex}
.kp-portal .kp-ca-tier-btn{border:0;background:#fff;color:#475467;font-size:12px;font-weight:600;padding:6px 12px;cursor:pointer;border-left:1px solid #eef0f4;white-space:nowrap}
.kp-portal .kp-ca-tier-form:first-child .kp-ca-tier-btn{border-left:0}
.kp-portal .kp-ca-tier-btn:hover{background:#f5f7fb}
.kp-portal .kp-ca-tier-btn.is-active{background:#eef2ff;color:#2e46c6;cursor:default}
.kp-portal .kp-ca-tier-btn.kp-ca-tier-full.is-active{background:#e7f7ee;color:#137a43}
.kp-portal .kp-ca-reqflag{margin-right:8px}

/* wl107.6 — Documents: send-a-document slide-in (Flowlu-style, JS-free) */
.kp-portal .kp-docbar{margin:0 0 16px;min-height:32px}
.kp-portal .kp-docsend-backdrop{position:fixed;inset:0;border:0;padding:0;cursor:pointer;background:rgba(16,24,40,.28);opacity:0;pointer-events:none;transition:opacity .2s;z-index:10000}
.kp-portal .kp-docsend-panel{position:fixed;top:0;right:0;height:100%;width:min(440px,94vw);background:#fff;box-shadow:-18px 0 50px rgba(6,13,31,.25);transform:translateX(100%);transition:transform .25s ease;z-index:10001;display:flex;flex-direction:column}
.kp-portal .kp-docsend-panel:target{transform:translateX(0)}
.kp-portal .kp-docsend-panel:target + .kp-docsend-backdrop{opacity:1;pointer-events:auto}
.kp-portal .kp-docsend-bar{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #eef0f3}
.kp-portal .kp-docsend-bar b{font-size:15px;color:#101828}
.kp-portal .kp-docsend-bar .kp-gs-x{cursor:pointer;font-size:26px;line-height:1;color:#475467;text-decoration:none;width:auto;height:auto}
.kp-portal .kp-docsend-body{padding:20px;overflow-y:auto}
.kp-portal .kp-docsend-field{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#8a94a6;margin-bottom:12px}
.kp-portal .kp-docsend-field select{border:1px solid #d5dae6;border-radius:8px;padding:9px 11px;font-size:14px;color:#1f2733;background:#fff;text-transform:none;font-weight:500;letter-spacing:0}
.kp-portal .kp-docsend-field input{border:1px solid #d5dae6;border-radius:8px;padding:9px 11px;font-family:inherit;font-size:14px;font-weight:500;line-height:1.4;color:#1f2733;background:#fff;text-transform:none;letter-spacing:0}
.kp-portal .kp-docsend-form .kp-console-meta{margin:0 0 16px}

/* wl107.7 — Emails tab, Flowlu-style list */
.kp-portal .kp-emailhead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px}
.kp-portal .kp-emailhead-t{display:flex;flex-direction:column;gap:2px}
.kp-portal .kp-emailhead-t b{font-size:15px;color:#101828}
.kp-portal .kp-emaillist{display:flex;flex-direction:column;border:1px solid #eef0f4;border-radius:12px;overflow:hidden;background:#fff}
.kp-portal details.kp-emailrow{border-bottom:1px solid #f2f3f6}
.kp-portal details.kp-emailrow:last-child{border-bottom:0}
.kp-portal .kp-emailrow-head{list-style:none;display:flex;align-items:center;gap:12px;padding:13px 16px;cursor:pointer}
.kp-portal .kp-emailrow-head::-webkit-details-marker{display:none}
.kp-portal details.kp-emailrow:hover .kp-emailrow-head{background:#fafbfc}
.kp-portal .kp-emailrow-av{width:34px;height:34px;flex:none;border-radius:50%;background:#eef2ff;color:#2e46c6;display:inline-flex;align-items:center;justify-content:center;font-size:15px}
.kp-portal .kp-emailrow-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.kp-portal .kp-emailrow-subj{font-size:14px;font-weight:600;color:#1a2233;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kp-portal .kp-emailrow-prev{font-size:12.5px;color:#8a94a6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kp-portal .kp-emailrow-meta{flex:none;display:flex;align-items:center;gap:10px;color:#98a2b3;font-size:12px}
.kp-portal .kp-emailrow-body{padding:2px 16px 16px 62px;font-size:13.5px;color:#344054}
.kp-portal .kp-emailrow-body p{margin:0 0 8px}
.kp-portal .kp-emailempty{text-align:center;padding:46px 20px;color:#98a2b3;border:1px dashed #e5e8ef;border-radius:12px}
.kp-portal .kp-emailempty span{font-size:34px;display:block;margin-bottom:10px;opacity:.5}
.kp-portal .kp-emailempty p{margin:2px 0}

/* wl107.8 — card Messages tab: Flowlu-style chat bubbles + cleaner composer */
.kp-portal .kp-crm-msgthread{display:flex;flex-direction:column;gap:10px;margin:12px 0 14px}
.kp-portal .kp-crm-msg{max-width:80%;border:0;border-radius:15px;padding:9px 13px}
.kp-portal .kp-crm-msg.is-in{align-self:flex-start;background:#f1f3f7;border-bottom-left-radius:4px}
.kp-portal .kp-crm-msg.is-out{align-self:flex-end;background:#e7efff;border-bottom-right-radius:4px}
.kp-portal .kp-crm-msg .kp-console-meta{font-size:11px;margin:0 0 3px;color:#8a94a6}
.kp-portal .kp-crm-msg > div{font-size:13.5px;color:#1f2733;line-height:1.5}
.kp-portal .kp-crm-msgthreadbox{border:1px solid #eef0f4;border-radius:14px;padding:14px 16px;margin-bottom:12px;background:#fff}
.kp-portal .kp-crm-msgthreadbox > summary{cursor:pointer;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;font-size:14px}
.kp-portal .kp-crm-msgthreadbox > summary strong{font-size:14px;color:#101828}
.kp-portal .kp-crm-msgreply{margin-top:6px;border-top:1px solid #f2f3f6;padding-top:12px}
.kp-portal .kp-crm-msgreply textarea{width:100%;box-sizing:border-box;border:1px solid #d5dae6;border-radius:12px;padding:10px 13px;font-size:13.5px;resize:vertical;font-family:inherit}
.kp-portal details.kp-crm-msgnew > summary strong{color:var(--kp-navy)}

/* wl107.9 — Messenger Customers | Team toggle + Team stub */
.kp-portal .kp-msgtoggle{display:inline-flex;gap:0;border:1px solid #e2e6ee;border-radius:10px;overflow:hidden;margin:0 0 18px;background:#fff}
.kp-portal .kp-msgtoggle-btn{padding:8px 20px;font-size:13.5px;font-weight:600;color:#475467;text-decoration:none;border-right:1px solid #e2e6ee}
.kp-portal .kp-msgtoggle-btn:last-child{border-right:0}
.kp-portal .kp-msgtoggle-btn:hover{background:#f5f7fb}
.kp-portal .kp-msgtoggle-btn.is-active{background:var(--kp-navy);color:#fff}
.kp-portal .kp-msg-teamstub{display:flex;align-items:center;justify-content:center;min-height:340px;border:1px dashed #dfe3ec;border-radius:16px;background:#fcfdff}
.kp-portal .kp-msg-teamstub-inner{max-width:440px;text-align:center;padding:32px}
.kp-portal .kp-msg-teamstub-ico{font-size:44px;display:block;margin-bottom:14px}
.kp-portal .kp-msg-teamstub-inner h3{margin:0 0 8px;font-size:19px;color:#101828}
.kp-portal .kp-msg-teamstub-inner p{margin:0 0 18px;font-size:14px;color:#667085;line-height:1.55}

/* wl107.10 — Team members (Settings → Team) */
.kp-portal .kp-team-intro{margin:-6px 0 16px}
.kp-portal .kp-team-list{display:flex;flex-direction:column;border:1px solid #eef0f4;border-radius:12px;overflow:hidden;background:#fff;margin-bottom:16px}
.kp-portal .kp-team-row{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid #f2f3f6}
.kp-portal .kp-team-row:last-child{border-bottom:0}
.kp-portal .kp-team-av{width:36px;height:36px;flex:none;border-radius:50%;background:#eef2ff;color:#2e46c6;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}
.kp-portal .kp-team-id{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.kp-portal .kp-team-id b{font-size:14px;color:#1a2233;font-weight:600;display:flex;align-items:center;gap:8px}
.kp-portal .kp-team-inline{margin:0;display:inline-flex}
.kp-portal .kp-team-roleselect{font-size:13px;border:1px solid #d5dae6;border-radius:8px;padding:6px 10px;background:#fff;color:#344054}
.kp-portal .kp-team-rolebadge{font-size:12px;font-weight:600;color:#475467;padding:6px 12px;border:1px solid #e5e8ef;border-radius:999px;background:#f7f8fb}
.kp-portal details.kp-team-invite{border:1px solid #e7eaf0;border-radius:12px;padding:14px 16px;background:#fcfcfd}
.kp-portal details.kp-team-invite>summary{list-style:none;display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:13.5px;font-weight:600;color:var(--kp-navy)}
.kp-portal details.kp-team-invite>summary::-webkit-details-marker{display:none}
.kp-portal details.kp-team-invite[open]>summary{margin-bottom:12px}
.kp-portal .kp-team-inviterow{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.kp-portal .kp-team-inviterow label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#8a94a6;flex:1;min-width:150px}
.kp-portal .kp-team-inviterow input,.kp-portal .kp-team-inviterow select{border:1px solid #d5dae6;border-radius:8px;padding:9px 11px;font-size:14px;color:#1f2733;background:#fff;font-weight:400;text-transform:none;letter-spacing:0}
.kp-portal .kp-team-roleblurbs{background:#f7f8fb;border-radius:10px;padding:12px 14px;margin-bottom:14px}
.kp-portal .kp-team-roleblurbs p{margin:0 0 5px}
.kp-portal .kp-team-roleblurbs p:last-child{margin-bottom:0}

/* wl107.11 — Team seats paywall upsell */
.kp-portal .kp-team-upsell{display:flex;gap:16px;align-items:flex-start;border:1px solid #e7eaf0;border-radius:14px;padding:20px;background:#fbfbfd}
.kp-portal .kp-team-upsell-ico{font-size:30px;line-height:1;flex:none}
.kp-portal .kp-team-upsell h3{margin:0 0 6px;font-size:16px;color:#101828}
.kp-portal .kp-team-upsell>div>p{margin:0 0 14px;font-size:13.5px;color:#667085;line-height:1.55;max-width:560px}
.kp-portal .kp-team-upsell .kp-team-roleblurbs{margin-bottom:16px}

/* ============================================================
   wl147 — Compact Resource Library
   Replace oversized paper previews and boxed resource cards with
   one calm, scan-friendly list for operators and clients.
   ============================================================ */
.kp-portal .kp-resource-library {
    padding: 0;
    overflow: hidden;
}

.kp-portal .kp-resource-library-head {
    align-items: center;
    padding: 17px 20px 14px;
    border-bottom: 1px solid #edf1f5;
}

.kp-portal .kp-resource-library-head .kp-eyebrow {
    margin-bottom: 4px;
}

.kp-portal .kp-resource-library-head h2 {
    font-size: 18px;
    font-weight: 650;
}

.kp-portal .kp-resource-total {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    margin-left: auto;
    padding: 4px 10px;
    border-radius: 999px;
    color: #52657a;
    background: #f1f5f9;
    font-size: 12px;
    font-weight: 650;
    white-space: nowrap;
}

.kp-portal .kp-resource-library > .kp-console-meta {
    margin: 0;
    padding: 12px 20px 0;
    font-size: 13px;
    line-height: 1.5;
}

.kp-portal .kp-resource-section {
    padding: 0 20px;
}

.kp-portal .kp-resource-section:last-child {
    padding-bottom: 16px;
}

.kp-portal .kp-resource-section-head {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-top: 16px;
    padding: 0 0 8px;
    border-bottom: 1px solid #dfe7ef;
}

.kp-portal .kp-resource-section-head h2,
.kp-portal .kp-resource-section-head h3 {
    margin: 0;
    color: var(--kp-navy);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0;
}

.kp-portal .kp-resource-section-head > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 7px;
    border-radius: 999px;
    color: #53657a;
    background: #eef3f8;
    font-size: 11px;
    font-weight: 700;
}

.kp-portal .kp-resource-list {
    display: flex;
    flex-direction: column;
}

.kp-portal .kp-resource-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    min-height: 65px;
    padding: 10px 2px;
    border-bottom: 1px solid #edf1f5;
}

.kp-portal .kp-resource-row:last-child {
    border-bottom: 0;
}

.kp-portal .kp-resource-main {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.kp-portal .kp-resource-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    border-radius: 9px;
    color: var(--kp-blue-dark);
    background: var(--kp-blue-soft);
}

.kp-portal .kp-resource-icon svg {
    width: 20px;
    height: 20px;
}

.kp-portal .kp-resource-copy {
    min-width: 0;
}

.kp-portal .kp-resource-title {
    display: inline;
    color: #172b43;
    font-size: 13.5px;
    font-weight: 700;
    line-height: 1.35;
    text-decoration: none;
}

.kp-portal .kp-resource-title:hover,
.kp-portal .kp-resource-title:focus {
    color: var(--kp-blue-dark);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.kp-portal .kp-resource-copy p,
.kp-portal .kp-card .kp-resource-copy p {
    margin: 3px 0 0;
    color: var(--kp-muted);
    font-size: 12.5px;
    line-height: 1.4;
}

.kp-portal .kp-resource-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 11px;
    flex: 0 0 auto;
}

.kp-portal .kp-resource-open,
.kp-portal .kp-button.kp-resource-open {
    min-height: 32px;
    padding: 6px 11px;
    border-color: #c7dcef;
    color: #174f7b;
    background: #f7fbfe;
    font-size: 12px;
}

.kp-portal .kp-resource-open:hover,
.kp-portal .kp-resource-open:focus {
    border-color: var(--kp-blue);
    background: var(--kp-blue-soft);
}

.kp-portal .kp-resource-text-action,
.kp-portal button.kp-resource-text-action {
    margin: 0;
    padding: 2px 0;
    border: 0;
    color: var(--kp-blue-dark);
    background: transparent;
    font: inherit;
    font-size: 12px;
    font-weight: 650;
    line-height: 1.3;
    text-decoration: none;
    cursor: pointer;
}

.kp-portal .kp-resource-text-action:hover,
.kp-portal .kp-resource-text-action:focus {
    text-decoration: underline;
    text-underline-offset: 2px;
}

.kp-portal .kp-resource-client-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 20px 12px;
    border-bottom: 1px solid #edf1f5;
    color: #44566b;
    font-size: 13px;
}

.kp-portal .kp-resource-client-summary strong {
    color: #52657a;
    font-size: 12px;
    white-space: nowrap;
}

@media (max-width: 780px) {
    .kp-portal .kp-resource-library-head {
        align-items: flex-start;
        flex-wrap: wrap;
        padding: 15px 15px 12px;
    }

    .kp-portal .kp-resource-library-head .kp-guides-personalize {
        width: 100%;
    }

    .kp-portal .kp-resource-library > .kp-console-meta,
    .kp-portal .kp-resource-client-summary {
        padding-left: 15px;
        padding-right: 15px;
    }

    .kp-portal .kp-resource-section {
        padding-right: 15px;
        padding-left: 15px;
    }

    .kp-portal .kp-resource-row {
        grid-template-columns: minmax(0, 1fr);
        gap: 7px;
        padding: 11px 0;
    }

    .kp-portal .kp-resource-actions {
        justify-content: flex-start;
        margin-left: 50px;
    }
}

@media (max-width: 480px) {
    .kp-portal .kp-resource-total {
        margin-left: 0;
    }

    .kp-portal .kp-resource-client-summary {
        align-items: flex-start;
        flex-direction: column;
        gap: 4px;
    }

    .kp-portal .kp-resource-actions {
        flex-wrap: wrap;
    }
}

/* wl148 — customer documents use the same in-portal viewer as resources. */
.kp-portal .kp-client-doctitle {
    color: inherit;
    text-decoration: none;
}

.kp-portal .kp-client-doctitle:hover,
.kp-portal .kp-client-doctitle:focus {
    color: var(--kp-blue-dark);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.kp-portal .kp-client-docactions {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 11px;
    flex: 0 0 auto;
}

/* ============================================================
   wl149 — Documents landing page and slide-in workspaces
   One calm home surface, a compact feature rail, and visual guide
   previews. Detailed tools stay out of sight until requested.
   ============================================================ */
.kp-portal .kp-docs-wrap.is-home {
    width: 100%;
    max-width: 1480px;
    margin: 0 auto;
}

.kp-portal .kp-docs-wrap.is-section {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 22px;
}

.kp-portal .kp-docs-home {
    overflow: hidden;
    border: 1px solid #dfe7f0;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 18px 52px rgba(15, 35, 61, .08);
}

.kp-portal .kp-docs-home-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 430px);
    min-height: 330px;
    overflow: hidden;
    background:
        radial-gradient(circle at 86% 20%, rgba(53, 190, 222, .18), transparent 29%),
        linear-gradient(120deg, #f9fbff 0%, #f1f7ff 57%, #edfaff 100%);
}

.kp-portal .kp-docs-home-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image: linear-gradient(rgba(32, 97, 168, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(32, 97, 168, .035) 1px, transparent 1px);
    background-size: 32px 32px;
    mask-image: linear-gradient(90deg, #000, transparent 78%);
}

.kp-portal .kp-docs-home-copy {
    position: relative;
    z-index: 1;
    align-self: center;
    max-width: 760px;
    padding: 54px 58px 50px;
}

.kp-portal .kp-docs-home-copy .kp-eyebrow {
    margin-bottom: 9px;
    color: #16719a;
}

.kp-portal .kp-docs-home-copy h1 {
    max-width: 720px;
    margin: 0 0 15px;
    color: #102440;
    font-size: clamp(34px, 3.1vw, 51px);
    font-weight: 750;
    letter-spacing: -.035em;
    line-height: 1.06;
}

.kp-portal .kp-docs-home-copy > p:not(.kp-eyebrow) {
    max-width: 690px;
    margin: 0;
    color: #4f6278;
    font-size: 16px;
    line-height: 1.65;
}

.kp-portal .kp-docs-home-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 26px;
}

.kp-portal .kp-docs-home-actions .kp-button {
    min-height: 42px;
    padding: 10px 17px;
    border-radius: 9px;
}

.kp-portal .kp-docs-sign-link {
    margin-left: 5px;
    color: #1d5d91;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.kp-portal .kp-docs-sign-link:hover,
.kp-portal .kp-docs-sign-link:focus {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.kp-portal .kp-docs-home-art {
    position: relative;
    min-height: 330px;
}

.kp-portal .kp-docs-paper {
    position: absolute;
    left: 50%;
    top: 50%;
    display: block;
    width: 226px;
    height: 282px;
    border: 1px solid rgba(62, 93, 132, .19);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 22px 48px rgba(20, 48, 81, .14);
}

.kp-portal .kp-docs-paper-back {
    transform: translate(-35%, -47%) rotate(13deg);
    background: linear-gradient(150deg, #d9e9ff, #eef6ff);
}

.kp-portal .kp-docs-paper-mid {
    padding: 34px 30px;
    transform: translate(-56%, -50%) rotate(-7deg);
}

.kp-portal .kp-docs-paper-mid i,
.kp-portal .kp-docs-paper-front i {
    display: block;
    height: 7px;
    margin: 0 0 12px;
    border-radius: 99px;
    background: #dbe5f0;
}

.kp-portal .kp-docs-paper-mid i:nth-child(2),
.kp-portal .kp-docs-paper-front i:nth-of-type(2) { width: 75%; }

.kp-portal .kp-docs-paper-front {
    padding: 31px 29px;
    transform: translate(-45%, -51%) rotate(2deg);
}

.kp-portal .kp-docs-paper-front b {
    display: block;
    margin-bottom: 5px;
    color: #14345a;
    font-size: 17px;
    line-height: 1.25;
}

.kp-portal .kp-docs-paper-front em {
    display: block;
    margin-bottom: 29px;
    color: #77889b;
    font-size: 10px;
    font-style: normal;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.kp-portal .kp-docs-paper-front strong {
    position: absolute;
    right: 25px;
    bottom: 25px;
    display: inline-flex;
    align-items: center;
    min-height: 29px;
    padding: 5px 10px;
    border-radius: 999px;
    color: #087955;
    background: #e7f8f1;
    font-size: 10px;
    font-weight: 750;
}

.kp-portal .kp-docs-home-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 1px solid #dfe8f1;
    border-bottom: 1px solid #e4eaf1;
    background: #fff;
}

.kp-portal .kp-docs-home-stats > span {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 66px;
    padding: 12px 20px;
    color: #65768a;
    font-size: 12.5px;
}

.kp-portal .kp-docs-home-stats > span + span {
    border-left: 1px solid #e4eaf1;
}

.kp-portal .kp-docs-home-stats strong {
    color: #163a63;
    font-size: 24px;
    line-height: 1;
}

.kp-portal .kp-docs-tool-area {
    padding: 38px 42px 8px;
}

.kp-portal .kp-docs-tool-heading,
.kp-portal .kp-docs-recent-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 28px;
}

.kp-portal .kp-docs-tool-heading h2,
.kp-portal .kp-docs-recent-head h2 {
    margin: 2px 0 0;
    color: #152a45;
    font-size: 21px;
    letter-spacing: -.015em;
}

.kp-portal .kp-docs-tool-heading > p {
    max-width: 400px;
    margin: 0;
    color: #75859a;
    font-size: 13px;
    text-align: right;
}

.kp-portal .kp-docs-toolrail {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    margin-top: 20px;
    overflow: hidden;
    border: 1px solid #dfe6ee;
    border-radius: 14px;
    background: #fbfcfe;
}

.kp-portal .kp-docs-toolrail > a {
    position: relative;
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 10px;
    min-height: 132px;
    padding: 19px 15px 17px;
    border-right: 1px solid #e3e9f0;
    color: inherit;
    text-decoration: none;
    transition: color .16s ease, background .16s ease, box-shadow .16s ease;
}

.kp-portal .kp-docs-toolrail > a:last-child { border-right: 0; }

.kp-portal .kp-docs-toolrail > a:hover,
.kp-portal .kp-docs-toolrail > a:focus-visible {
    z-index: 1;
    color: #164f80;
    background: #f1f8ff;
    box-shadow: inset 0 -3px 0 #3097dc;
    outline: none;
}

.kp-portal .kp-docs-tool-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    color: #2276ae;
    background: #e8f4fc;
}

.kp-portal .kp-docs-tool-icon svg { width: 19px; height: 19px; }

.kp-portal .kp-docs-tool-copy {
    display: block;
    min-width: 0;
    padding-top: 1px;
}

.kp-portal .kp-docs-tool-copy strong {
    display: block;
    color: #18324f;
    font-size: 13px;
    line-height: 1.3;
}

.kp-portal .kp-docs-tool-copy small {
    display: block;
    margin-top: 5px;
    color: #748397;
    font-size: 11px;
    line-height: 1.35;
}

.kp-portal .kp-docs-toolrail > a > b {
    grid-column: 1;
    align-self: end;
    color: #668096;
    font-size: 12px;
    font-weight: 700;
    text-align: center;
}

.kp-portal .kp-docs-tool-arrow {
    position: absolute;
    right: 13px;
    bottom: 12px;
    color: #8aa0b5;
    font-size: 16px;
    transition: transform .16s ease;
}

.kp-portal .kp-docs-toolrail > a:hover .kp-docs-tool-arrow,
.kp-portal .kp-docs-toolrail > a:focus-visible .kp-docs-tool-arrow {
    transform: translateX(3px);
}

.kp-portal .kp-docs-recent {
    margin: 34px 42px 0;
    padding: 30px 0 38px;
    border-top: 1px solid #e6ebf1;
}

.kp-portal .kp-docs-recent-head > a {
    color: #1c669d;
    font-size: 12.5px;
    font-weight: 700;
    text-decoration: none;
}

.kp-portal .kp-docs-recent-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
    margin-top: 20px;
}

.kp-portal .kp-docs-recent-list > a {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) auto;
    align-items: center;
    gap: 11px;
    min-width: 0;
    padding: 6px 4px;
    color: inherit;
    text-decoration: none;
}

.kp-portal .kp-docs-recent-list > a:hover strong,
.kp-portal .kp-docs-recent-list > a:focus strong { color: #176da6; }

.kp-portal .kp-docs-recent-icon {
    position: relative;
    width: 32px;
    height: 39px;
    margin-left: 2px;
    border: 1px solid #cbd8e5;
    border-radius: 5px;
    background: linear-gradient(135deg, #fff, #f4f8fc);
}

.kp-portal .kp-docs-recent-icon::after {
    content: "";
    position: absolute;
    left: 7px;
    right: 7px;
    top: 11px;
    height: 2px;
    background: #9fb3c8;
    box-shadow: 0 6px 0 #b1c2d2, 0 12px 0 #c2cfdb;
}

.kp-portal .kp-docs-recent-list strong,
.kp-portal .kp-docs-recent-list small { display: block; }
.kp-portal .kp-docs-recent-list strong { overflow: hidden; color: #1c324b; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.kp-portal .kp-docs-recent-list small { margin-top: 4px; color: #7b8999; font-size: 11px; }
.kp-portal .kp-docs-recent-list > a > b { padding: 4px 7px; border-radius: 999px; color: #53677a; background: #eef3f7; font-size: 10px; }

.kp-portal .kp-docs-recent-empty {
    display: flex;
    align-items: center;
    gap: 13px;
    min-height: 70px;
    margin-top: 16px;
    padding: 8px 0;
}
.kp-portal .kp-docs-recent-empty > span { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 38px; width: 38px; height: 38px; border-radius: 50%; color: #2279b1; background: #e8f5fd; font-size: 21px; }
.kp-portal .kp-docs-recent-empty p { margin: 0; color: #65768a; font-size: 13px; }
.kp-portal .kp-docs-recent-empty p strong { color: #253d58; }
.kp-portal .kp-docs-recent-empty > a { margin-left: auto; color: #1d679d; font-size: 12.5px; font-weight: 700; text-decoration: none; }

/* One reusable side workspace for every Documents feature. */
.kp-docsd-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1240;
    background: rgba(10, 23, 42, .48);
    backdrop-filter: blur(2px);
}

.kp-docsd-backdrop[hidden] { display: none !important; }

.kp-docsd {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 1250;
    display: flex;
    flex-direction: column;
    width: min(84vw, 1480px);
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
    visibility: hidden;
    background: #f5f8fc;
    box-shadow: -20px 0 55px rgba(8, 24, 43, .22);
    transform: translateX(102%);
    transition: transform .28s cubic-bezier(.22, .8, .28, 1), visibility 0s linear .28s;
}

.kp-docsd.is-open {
    visibility: visible;
    transform: translateX(0);
    transition-delay: 0s;
}

.kp-docsd-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    flex: 0 0 auto;
    min-height: 78px;
    padding: 14px 22px 13px 26px;
    border-bottom: 1px solid #dce4ed;
    background: rgba(255, 255, 255, .97);
}

.kp-docsd-head .kp-eyebrow { margin: 0 0 2px; }
.kp-docsd-head h2 { margin: 0; color: #172d48; font-size: 20px; }
.kp-docsd-tools { display: flex; align-items: center; gap: 16px; }
.kp-docsd-tools > a { color: #216897; font-size: 12px; font-weight: 700; text-decoration: none; }
.kp-docsd-tools > a:hover,
.kp-docsd-tools > a:focus { text-decoration: underline; text-underline-offset: 3px; }
.kp-docsd-tools > button { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 0 0 3px; border: 1px solid #d5dee7; border-radius: 50%; color: #536579; background: #fff; font: 400 28px/1 Arial, sans-serif; cursor: pointer; }
.kp-docsd-tools > button:hover,
.kp-docsd-tools > button:focus-visible { border-color: #91afd0; color: #194f7c; background: #f3f8fd; outline: 2px solid rgba(47, 133, 195, .18); outline-offset: 2px; }
.kp-docsd > iframe { display: block; flex: 1 1 auto; width: 100%; min-height: 0; border: 0; background: #f5f8fc; }

/* Section pages are deliberately flatter inside the workspace. */
.kp-portal .kp-docs-wrap.is-section > .kp-card {
    margin-bottom: 20px;
    border-color: #dce5ef;
    border-radius: 15px;
    box-shadow: 0 8px 26px rgba(18, 45, 74, .055);
}

.kp-portal .kp-docs-section-header {
    max-width: 1320px;
    margin: 0 auto 18px;
}

/* Preview-first resource cards. */
.kp-portal .kp-docs-wrap.is-section .kp-resource-library {
    max-width: 1380px;
    margin-right: auto;
    margin-left: auto;
    padding: 0 0 26px;
}

.kp-portal .kp-docs-wrap.is-section .kp-resource-library-head {
    padding: 22px 24px 17px;
}

.kp-portal .kp-docs-wrap.is-section .kp-resource-library > .kp-console-meta {
    max-width: 940px;
    padding: 15px 24px 0;
}

.kp-portal .kp-docs-wrap.is-section .kp-resource-section {
    padding: 0 24px;
}

.kp-portal .kp-docs-wrap.is-section .kp-resource-section-head {
    margin-top: 24px;
    padding-bottom: 10px;
}

.kp-portal .kp-doc-resource-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    gap: 20px;
    margin-top: 16px;
}

.kp-portal .kp-doc-resource-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #dce5ee;
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 6px 18px rgba(18, 43, 70, .06);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.kp-portal .kp-doc-resource-card:hover {
    border-color: #b5cbde;
    box-shadow: 0 13px 30px rgba(18, 43, 70, .11);
    transform: translateY(-2px);
}

.kp-portal .kp-doc-resource-preview {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 4 / 4.8;
    overflow: hidden;
    border-bottom: 1px solid #dfe7ee;
    background: linear-gradient(145deg, #edf3f9, #f8fafc);
    text-decoration: none;
}

.kp-portal .kp-doc-resource-preview .kp-thumb-page {
    width: 100%;
    height: 100%;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.kp-portal .kp-doc-resource-preview .kp-thumb-page::after {
    height: 38px;
    background: linear-gradient(180deg, rgba(255,255,255,0), rgba(255,255,255,.92));
}

.kp-portal .kp-doc-resource-preview .kp-thumb-inner {
    width: 744px;
    padding: 38px 45px;
    transform: scale(.33);
}

.kp-portal .kp-doc-resource-preview .kp-thumb-img img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
}

.kp-portal .kp-doc-resource-preview-action {
    position: absolute;
    right: 50%;
    bottom: 16px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 6px 12px;
    border: 1px solid rgba(255,255,255,.7);
    border-radius: 999px;
    color: #fff;
    background: rgba(18, 59, 92, .91);
    box-shadow: 0 5px 14px rgba(13, 42, 68, .2);
    font-size: 11px;
    font-weight: 750;
    opacity: 0;
    transform: translate(50%, 6px);
    transition: opacity .16s ease, transform .16s ease;
}

.kp-portal .kp-doc-resource-preview:hover .kp-doc-resource-preview-action,
.kp-portal .kp-doc-resource-preview:focus-visible .kp-doc-resource-preview-action {
    opacity: 1;
    transform: translate(50%, 0);
}

.kp-portal .kp-doc-resource-preview:focus-visible {
    outline: 3px solid rgba(47, 143, 207, .35);
    outline-offset: -3px;
}

.kp-portal .kp-doc-resource-copy {
    display: flex;
    flex-direction: column;
    min-height: 154px;
    padding: 15px 16px 14px;
}

.kp-portal .kp-doc-resource-kind {
    margin-bottom: 6px;
    color: #71849a;
    font-size: 9.5px;
    font-weight: 750;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.kp-portal .kp-doc-resource-copy .kp-resource-title {
    display: block;
    color: #18334f;
    font-size: 14px;
    line-height: 1.35;
}

.kp-portal .kp-doc-resource-copy > p,
.kp-portal .kp-card .kp-doc-resource-copy > p {
    display: -webkit-box;
    overflow: hidden;
    margin: 7px 0 13px;
    color: #718095;
    font-size: 11.5px;
    line-height: 1.45;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.kp-portal .kp-doc-resource-actions {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-top: auto;
    padding-top: 11px;
    border-top: 1px solid #edf1f5;
}

.kp-portal .kp-doc-resource-actions a,
.kp-portal .kp-doc-resource-actions .kp-linklike {
    color: #216c9f;
    font-size: 11px;
    font-weight: 700;
    text-decoration: none;
}

.kp-portal .kp-doc-resource-actions a:hover,
.kp-portal .kp-doc-resource-actions a:focus,
.kp-portal .kp-doc-resource-actions .kp-linklike:hover,
.kp-portal .kp-doc-resource-actions .kp-linklike:focus {
    text-decoration: underline;
    text-underline-offset: 2px;
}

@media (max-width: 1180px) {
    .kp-portal .kp-docs-toolrail { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .kp-portal .kp-docs-toolrail > a { border-bottom: 1px solid #e3e9f0; }
    .kp-portal .kp-docs-toolrail > a:nth-child(4n) { border-right: 0; }
    .kp-portal .kp-docs-toolrail > a:nth-child(n+5) { border-bottom: 0; }
    .kp-portal .kp-docs-toolrail > a:last-child { border-right: 1px solid #e3e9f0; }
}

@media (max-width: 900px) {
    .kp-portal .kp-docs-home-hero { grid-template-columns: minmax(0, 1fr) 270px; }
    .kp-portal .kp-docs-home-copy { padding: 42px 34px; }
    .kp-portal .kp-docs-home-art { min-height: 300px; transform: scale(.85); transform-origin: center; }
    .kp-portal .kp-docs-tool-area { padding-right: 26px; padding-left: 26px; }
    .kp-portal .kp-docs-recent { margin-right: 26px; margin-left: 26px; }
    .kp-portal .kp-docs-recent-list { grid-template-columns: 1fr; gap: 9px; }
    .kp-docsd { width: min(94vw, 1480px); }
}

@media (max-width: 720px) {
    .kp-portal .kp-docs-home { border-radius: 15px; }
    .kp-portal .kp-docs-home-hero { display: block; min-height: 0; }
    .kp-portal .kp-docs-home-copy { padding: 35px 24px 32px; }
    .kp-portal .kp-docs-home-copy h1 { font-size: 34px; }
    .kp-portal .kp-docs-home-art { display: none; }
    .kp-portal .kp-docs-home-stats { grid-template-columns: 1fr; }
    .kp-portal .kp-docs-home-stats > span { justify-content: flex-start; min-height: 54px; padding-right: 24px; padding-left: 24px; }
    .kp-portal .kp-docs-home-stats > span + span { border-top: 1px solid #e4eaf1; border-left: 0; }
    .kp-portal .kp-docs-tool-heading { align-items: flex-start; flex-direction: column; gap: 7px; }
    .kp-portal .kp-docs-tool-heading > p { text-align: left; }
    .kp-portal .kp-docs-toolrail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kp-portal .kp-docs-toolrail > a { min-height: 118px; border-right: 1px solid #e3e9f0; border-bottom: 1px solid #e3e9f0; }
    .kp-portal .kp-docs-toolrail > a:nth-child(2n) { border-right: 0; }
    .kp-portal .kp-docs-toolrail > a:nth-child(n+5) { border-bottom: 1px solid #e3e9f0; }
    .kp-portal .kp-docs-toolrail > a:last-child { border-right: 1px solid #e3e9f0; border-bottom: 0; }
    .kp-portal .kp-docs-toolrail > a:nth-last-child(2) { border-bottom: 0; }
    .kp-portal .kp-docs-recent-head { align-items: flex-start; flex-direction: column; gap: 8px; }
    .kp-portal .kp-docs-recent-empty { align-items: flex-start; flex-wrap: wrap; }
    .kp-portal .kp-docs-recent-empty > a { width: 100%; margin-left: 51px; }
    .kp-docsd { width: 100vw; }
    .kp-docsd-head { min-height: 69px; padding: 11px 14px 10px 18px; }
    .kp-docsd-head h2 { font-size: 17px; }
    .kp-docsd-tools > a { display: none; }
    .kp-portal .kp-docs-wrap.is-section { padding: 14px; }
    .kp-portal .kp-docs-wrap.is-section .kp-resource-library-head,
    .kp-portal .kp-docs-wrap.is-section .kp-resource-library > .kp-console-meta,
    .kp-portal .kp-docs-wrap.is-section .kp-resource-section { padding-right: 15px; padding-left: 15px; }
}

@media (max-width: 480px) {
    .kp-portal .kp-docs-home-actions { align-items: stretch; flex-direction: column; }
    .kp-portal .kp-docs-home-actions .kp-button { justify-content: center; width: 100%; }
    .kp-portal .kp-docs-sign-link { margin: 7px 0 0; text-align: center; }
    .kp-portal .kp-docs-tool-area { padding: 30px 17px 5px; }
    .kp-portal .kp-docs-toolrail { grid-template-columns: 1fr; }
    .kp-portal .kp-docs-toolrail > a { grid-template-columns: 36px minmax(0, 1fr); grid-template-rows: auto; min-height: 84px; border-right: 0 !important; border-bottom: 1px solid #e3e9f0 !important; }
    .kp-portal .kp-docs-toolrail > a:last-child { border-bottom: 0 !important; }
    .kp-portal .kp-docs-toolrail > a > b { position: absolute; right: 40px; top: 17px; }
    .kp-portal .kp-docs-recent { margin-right: 17px; margin-left: 17px; }
    .kp-portal .kp-doc-resource-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    .kp-docsd,
    .kp-portal .kp-doc-resource-card,
    .kp-portal .kp-doc-resource-preview-action,
    .kp-portal .kp-docs-tool-arrow { transition: none !important; }
}

/* ===== wl181 — compact tabbed pipeline ===== */
.kp-portal .kp-acq-board-header { align-items: center; margin-bottom: 10px; }
.kp-portal .kp-acq-board-header .kp-eyebrow,
.kp-portal .kp-acq-board-header .kp-console-meta,
.kp-portal .kp-acq-board-header .kp-record-back { display: none; }
.kp-portal .kp-acq-board-header h1 { display: flex; align-items: baseline; gap: 12px; margin: 0; font-size: 25px; letter-spacing: -.035em; }
.kp-portal .kp-acq-board-summary { font-size: 12px; font-weight: 500; letter-spacing: 0; color: #7a8496; }
.kp-portal .kp-acq-board-header .kp-acq-newbar { margin: 0; }

.kp-portal .kp-acq-list-workspace.is-board { background: #fff; border-color: #dde3eb; border-radius: 10px; box-shadow: none; }
.kp-portal .kp-acq-list-workspace.is-board > .kp-acq-filters { align-items: center; gap: 8px 10px; padding: 9px 10px; background: #fff; }
.kp-portal .kp-acq-filters.is-board .kp-acq-layout-toggle { order: 30; margin-left: auto; align-self: center; }
.kp-portal .kp-acq-filters.is-board .kp-acq-filter-count { order: 29; margin-left: 0; }
.kp-portal .kp-acq-filters.is-board .kp-acq-cardfields { align-self: center; }
.kp-portal .kp-acq-filters.is-board .kp-acq-filter-search { flex: 1 1 190px; max-width: 320px; }
.kp-portal .kp-acq-filters.is-board .kp-acq-filter > span:not(.screen-reader-text) { font-size: 10px; }
.kp-portal .kp-acq-filters.is-board .kp-acq-filter select,
.kp-portal .kp-acq-filters.is-board .kp-acq-filter input[type="search"] { min-height: 34px; padding: 7px 9px; }

.kp-portal .kp-bd { display: block; padding: 0 0 10px; background: #fff; }
.kp-portal .kp-bd-tabs { display: flex; align-items: flex-end; gap: 2px; min-height: 50px; padding: 0 14px; overflow-x: auto; border-bottom: 1px solid #dde3eb; background: #fff; }
.kp-portal .kp-bd-tab { position: relative; appearance: none; display: inline-flex; align-items: center; gap: 7px; min-height: 50px; padding: 4px 14px 2px; border: 0; background: transparent; color: #687386; font: inherit; font-size: 13px; font-weight: 500; white-space: nowrap; cursor: pointer; }
.kp-portal .kp-bd-tab::after { content: ""; position: absolute; left: 4px; right: 4px; bottom: -1px; height: 2px; border-radius: 2px 2px 0 0; background: transparent; }
.kp-portal .kp-bd-tab:hover { color: #17233c; }
.kp-portal .kp-bd-tab:focus-visible { outline: 2px solid var(--kp-direct-accent, var(--kp-navy)); outline-offset: -4px; border-radius: 6px; }
.kp-portal .kp-bd-tab.is-active { color: #101828; font-weight: 700; }
.kp-portal .kp-bd-tab.is-active::after { background: #101828; }
.kp-portal .kp-bd-tab-count { font-size: 11px; font-weight: 500; color: #98a2b3; }
.kp-portal .kp-bd-panel[hidden] { display: none; }
.kp-portal .kp-bd-panel { position: relative; padding-top: 14px; }
.kp-portal .kp-bd-panel.has-more::after { top: 14px; bottom: 12px; background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, .96)); }

.kp-portal .kp-bd-panel .kp-bd-lane { align-items: stretch; gap: 14px; padding: 0 14px 12px; }
.kp-portal .kp-bd-panel .kp-bd-col { flex: 1 0 214px; min-width: 214px; max-width: none; min-height: clamp(500px, calc(100vh - 325px), 760px); border: 0; border-radius: 0; background: transparent; }
.kp-portal .kp-bd-panel .kp-bd-col-head { min-height: 28px; gap: 7px; padding: 0 2px 8px; }
.kp-portal .kp-bd-panel .kp-bd-col-kind { display: none; }
.kp-portal .kp-bd-panel .kp-bd-col-title { font-size: 11.5px; font-weight: 500; letter-spacing: 0; text-transform: none; color: #3d526b; }
.kp-portal .kp-bd-panel .kp-bd-col-count { min-width: 19px; padding: 2px 6px; background: #f2f4f7; font-size: 10.5px; font-weight: 500; color: #98a2b3; }
.kp-portal .kp-bd-panel .kp-bd-col-total { display: none; }
.kp-portal .kp-bd-panel .kp-bd-col-body { align-content: start; grid-auto-rows: max-content; flex: 1 1 auto; min-height: 470px; padding: 7px; border: 1px dashed #e0e5ec; border-radius: 7px; background: #f8f9fb; }
.kp-portal .kp-bd-panel .kp-bd-col-empty { align-items: flex-start; justify-content: center; min-height: 70px; padding-top: 31px; border: 0; color: #c0c6d0; font-style: italic; }
.kp-portal .kp-bd-panel .kp-bd-col-body > .kp-bd-col-empty:only-child { display: flex; }
.kp-portal .kp-bd-panel .kp-bd-col.is-over { background: transparent; }
.kp-portal .kp-bd-panel .kp-bd-col.is-over .kp-bd-col-body { border-color: var(--kp-direct-accent, var(--kp-navy)); background: #f2f6ff; }
.kp-portal .kp-bd-panel .kp-bd-col-orphan .kp-bd-col-body { background: #fff8ef; border-color: #efd8b7; }

.kp-portal .kp-bd-panel .kp-bd-card { gap: 5px; padding: 11px 11px 10px; border-color: #dce2e9; border-radius: 7px; box-shadow: none; }
.kp-portal .kp-bd-panel .kp-bd-card:hover { border-color: #bcc7d5; box-shadow: 0 4px 12px rgba(20, 47, 76, .07); }
.kp-portal .kp-bd-panel .kp-bd-card-top { grid-template-columns: minmax(0, 1fr) 24px; gap: 6px; }
.kp-portal .kp-bd-panel .kp-bd-thumb { display: none; }
.kp-portal .kp-bd-panel .kp-bd-title { font-size: 13px; }
.kp-portal .kp-bd-panel .kp-bd-addr { margin-top: 3px; font-size: 11px; }
.kp-portal .kp-bd-panel .kp-bd-meta,
.kp-portal .kp-bd-panel .kp-bd-uw { font-size: 10.5px; }
.kp-portal .kp-bd-panel .kp-bd-ask { font-size: 12.5px; }
.kp-portal .kp-bd-panel .kp-bd-flags { margin-top: 2px; }

.kp-portal .kp-bd-tray { margin-top: 4px; border-top: 1px solid #e6ebf1; }
.kp-portal .kp-bd-tray .kp-bd-section-head { padding: 10px 14px 5px; }

@media (max-width: 900px) {
    .kp-portal .kp-acq-board-header h1 { font-size: 22px; }
    .kp-portal .kp-acq-filters.is-board .kp-acq-layout-toggle { margin-left: 0; }
    .kp-portal .kp-bd-tabs { padding-left: 8px; padding-right: 8px; }
    .kp-portal .kp-bd-panel .kp-bd-lane { padding-left: 10px; padding-right: 10px; }
    .kp-portal .kp-bd-panel .kp-bd-col { flex-basis: 220px; min-width: 220px; min-height: 520px; }
}

/* ===== wl183 — one Copilot, visible map, underwriting and local intelligence ===== */
.kp-portal .kp-pp-intel-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr);
    gap: 12px;
    align-items: stretch;
}
.kp-portal .kp-pp-intel-grid > .kp-card { margin: 0; }
.kp-portal .kp-pp-intel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 12px;
}
.kp-portal .kp-pp-intel-head .kp-eyebrow { margin: 0 0 4px; }
.kp-portal .kp-pp-intel-head h2 { margin: 0; font-size: 17px; line-height: 1.25; color: #17233c; }
.kp-portal .kp-pp-intel-head .kp-linkbtn { padding: 2px 0; font-size: 11.5px; font-weight: 700; white-space: nowrap; }
.kp-portal .kp-pp-ai-review { display: flex; flex-direction: column; min-width: 0; }
.kp-portal .kp-pp-ai-scroll {
    max-height: 280px;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    padding-right: 8px;
}
.kp-portal .kp-pp-ai-scroll:focus-visible { outline: 2px solid var(--kp-primary, var(--kp-navy)); outline-offset: 3px; border-radius: 4px; }
.kp-portal .kp-pp-ai-lead {
    margin: 0 0 12px;
    padding: 10px 12px;
    border-left: 3px solid var(--kp-primary, var(--kp-navy));
    border-radius: 0 8px 8px 0;
    background: #f1f5ff;
    font-size: 13px;
    font-weight: 650;
    line-height: 1.45;
    color: #223a68;
}
.kp-portal .kp-pp-ai-flags,
.kp-portal .kp-pp-ai-checks { margin-top: 8px; }
.kp-portal .kp-pp-ai-flags > strong,
.kp-portal .kp-pp-ai-checks > strong,
.kp-portal .kp-pp-market-signals > strong {
    display: block;
    margin-bottom: 6px;
    font-size: 10.5px;
    font-weight: 750;
    letter-spacing: .045em;
    text-transform: uppercase;
    color: #687386;
}
.kp-portal .kp-pp-ai-flags ul,
.kp-portal .kp-pp-ai-checks ul,
.kp-portal .kp-pp-market-signals ul { display: grid; gap: 6px; margin: 0; padding-left: 18px; }
.kp-portal .kp-pp-ai-flags li,
.kp-portal .kp-pp-ai-checks li,
.kp-portal .kp-pp-market-signals li { font-size: 12px; line-height: 1.45; color: #3d526b; }
.kp-portal .kp-pp-ai-flags li::marker { color: #d39018; }
.kp-portal .kp-pp-ai-checks li::marker,
.kp-portal .kp-pp-market-signals li::marker { color: var(--kp-primary, var(--kp-navy)); }
.kp-portal .kp-pp-ai-summary { margin-top: 11px; padding-top: 10px; border-top: 1px solid #e8edf3; }
.kp-portal .kp-pp-ai-summary summary { cursor: pointer; font-size: 11.5px; font-weight: 700; color: #3d526b; }
.kp-portal .kp-pp-ai-summary p { margin: 8px 0 0; font-size: 11.5px; line-height: 1.5; color: #5a6478; }
.kp-portal .kp-pp-ai-summary [data-kp-cop-saved-body] { white-space: pre-wrap; }
.kp-portal .kp-cop-save-review { margin-top: 8px; }
.kp-portal .kp-cop-save-status { display: inline-block; margin-top: 7px; color: var(--kp-success); font-size: 11px; font-weight: 700; }
.kp-portal .kp-pp-export-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.kp-portal .kp-pp-intel-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: auto; padding-top: 14px; }

.kp-portal .kp-pp-overview-map { display: flex; flex-direction: column; min-width: 0; }
.kp-portal .kp-pp-overview-map iframe {
    display: block;
    width: 100%;
    min-height: 250px;
    flex: 1 1 250px;
    border: 0;
    border-radius: 8px;
    background: #eef2f6;
}
.kp-portal .kp-pp-map-foot {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    margin-top: 9px;
    font-size: 10.5px;
    color: #687386;
}
.kp-portal .kp-pp-map-foot span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kp-portal .kp-pp-map-foot a { flex: 0 0 auto; font-weight: 700; text-decoration: none; }

.kp-portal .kp-pp-market-review { min-width: 0; }
.kp-portal .kp-pp-market-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(300px, .95fr); gap: 18px; }
.kp-portal .kp-pp-market-table { min-width: 0; overflow: hidden; border: 1px solid #e1e7ef; border-radius: 9px; }
.kp-portal .kp-pp-market-row { display: grid; grid-template-columns: minmax(145px, 1fr) minmax(90px, .65fr) minmax(90px, .65fr); align-items: center; min-height: 34px; border-top: 1px solid #edf0f4; }
.kp-portal .kp-pp-market-row:first-child { border-top: 0; }
.kp-portal .kp-pp-market-row > * { min-width: 0; padding: 7px 10px; overflow: hidden; font-size: 10.75px; color: #5a6478; text-overflow: ellipsis; white-space: nowrap; }
.kp-portal .kp-pp-market-row > :first-child { color: #3d526b; }
.kp-portal .kp-pp-market-row > strong { font-size: 11.5px; color: #17233c; font-variant-numeric: tabular-nums; }
.kp-portal .kp-pp-market-row.is-head { min-height: 30px; background: #f6f8fb; }
.kp-portal .kp-pp-market-row.is-head > * { font-size: 9.5px; font-weight: 750; letter-spacing: .035em; text-transform: uppercase; color: #7a8496; }
.kp-portal .kp-pp-market-signals { padding: 3px 0; }
.kp-portal .kp-pp-market-source { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; padding-top: 12px; border-top: 1px solid #e8edf3; }
.kp-portal .kp-pp-market-source > span { font-size: 10.5px; line-height: 1.4; color: #7a8496; }
.kp-portal .kp-pp-market-source .kp-button { flex: 0 0 auto; }
.kp-portal .kp-pp-market-empty { padding: 18px; border: 1px dashed #d5ddea; border-radius: 9px; background: #f8fafc; text-align: center; }
.kp-portal .kp-pp-market-empty p { margin: 0 0 10px; color: #5a6478; }
.kp-portal .kp-pp-record-controls .kp-pp-intel-head { margin-bottom: 4px; }
.kp-portal .kp-pp-linked-documents .kp-pp-intel-head { margin-bottom: 12px; }
.kp-portal .kp-pp-document-list { display: grid; gap: 7px; }
.kp-portal .kp-pp-document-row {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    min-height: 42px;
    padding: 8px 10px;
    border: 1px solid #dce3ef;
    border-radius: 8px;
    color: #17233c;
    text-decoration: none;
    background: #fff;
}
.kp-portal .kp-pp-document-row:hover { border-color: #9db4e8; background: #f7f9fe; }
.kp-portal .kp-pp-document-type { font-size: 10px; font-weight: 800; color: #3157a4; letter-spacing: .04em; }
.kp-portal .kp-pp-document-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 600; }
.kp-portal .kp-pp-document-open { padding: 0; border: 0; background: transparent; color: #17233c; text-align: left; cursor: pointer; }
.kp-portal .kp-pp-document-open:hover { color: #174ea6; text-decoration: underline; }
.kp-portal .kp-pp-document-actions { display: flex; align-items: center; gap: 6px; }
.kp-portal .kp-pp-document-actions form { margin: 0; }
.kp-portal .kp-pdfm-no-preview { padding: 64px 28px; text-align: center; color: #53627a; }
.kp-portal .kp-recd-drawer[data-kp-docs-drawer] { width: min(760px, 92vw); max-width: 760px; }
.kp-portal .kp-dealroom-drawer { width: min(60vw, 1100px); max-width: 1100px; }
.kp-portal .kp-dealroom-frame { display: block; flex: 1 1 auto; width: 100%; min-height: 0; border: 0; background: var(--kp-fill-soft, #f5f8fc); }
@media (max-width: 700px) {
    .kp-portal .kp-pp-document-row { grid-template-columns: 44px minmax(0, 1fr); }
    .kp-portal .kp-pp-document-actions { grid-column: 2; justify-content: flex-start; }
}
.kp-portal .kp-recd-grid.kp-recd-grid-single { grid-template-columns: minmax(0, 1fr); }

@media (max-width: 1260px) {
    .kp-portal .kp-pp-intel-grid,
    .kp-portal .kp-pp-market-grid { grid-template-columns: 1fr; }
    .kp-portal .kp-pp-overview-map iframe { min-height: 230px; }
}
@media (max-width: 700px) {
    .kp-portal .kp-pp-market-row { grid-template-columns: minmax(120px, 1fr) minmax(75px, .65fr) minmax(75px, .65fr); }
    .kp-portal .kp-pp-market-row > * { padding-left: 7px; padding-right: 7px; }
    .kp-portal .kp-pp-market-source { align-items: flex-start; flex-direction: column; }
}

/* ===== wl182 — useful pipeline hero, disciplined cards, richer property detail ===== */
.kp-portal .kp-main.kp-direct-tool-acquisitions .kp-page-header.kp-acq-board-header,
.kp-portal .kp-page-header.kp-acq-board-header {
    display: grid;
    grid-template-columns: auto minmax(360px, 1fr) auto;
    align-items: center;
    column-gap: 24px;
    min-height: 68px;
    padding: 11px 18px;
}
.kp-portal .kp-acq-board-heading { min-width: 130px; }
.kp-portal .kp-acq-board-header h1 { font-size: 23px; line-height: 1; }
.kp-portal .kp-acq-board-stats {
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    min-width: 0;
    margin: 0;
}
.kp-portal .kp-acq-board-stats > div {
    min-width: 94px;
    padding: 1px 20px;
    border-left: 1px solid #e5eaf0;
}
.kp-portal .kp-acq-board-stats dt {
    margin: 0 0 4px;
    font-size: 9.5px;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: .055em;
    text-transform: uppercase;
    color: #8a96a8;
    white-space: nowrap;
}
.kp-portal .kp-acq-board-stats dd {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.1;
    color: #17233c;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.kp-portal .kp-acq-board-header .kp-acq-newbar { justify-self: end; }

/* The toolbar is a single baseline. Labels remain available to assistive tech
   through the controls themselves, while the visible row stays compact. */
.kp-portal .kp-acq-list-workspace.is-board > .kp-acq-filters {
    min-height: 54px;
    align-items: center;
    gap: 8px;
    padding: 9px 10px;
}
.kp-portal .kp-acq-filters.is-board .kp-acq-filter { align-self: center; margin: 0; }
.kp-portal .kp-acq-filters.is-board .kp-acq-filter > span:not(.screen-reader-text) { display: none; }
.kp-portal .kp-acq-filters.is-board .kp-acq-filter input[type="search"],
.kp-portal .kp-acq-filters.is-board .kp-acq-filter select,
.kp-portal .kp-acq-filters.is-board > .kp-acq-filter-go,
.kp-portal .kp-acq-filters.is-board .kp-acq-cardfields > .kp-acq-filter-go {
    box-sizing: border-box;
    height: 34px;
    min-height: 34px;
    margin: 0;
}
.kp-portal .kp-acq-filters.is-board > .kp-acq-filter-go,
.kp-portal .kp-acq-filters.is-board .kp-acq-cardfields > .kp-acq-filter-go {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.kp-portal .kp-acq-filters.is-board .kp-acq-cardfields,
.kp-portal .kp-acq-filters.is-board .kp-acq-filter-count,
.kp-portal .kp-acq-filters.is-board .kp-acq-layout-toggle { align-self: center; margin-top: 0; margin-bottom: 0; }
.kp-portal .kp-acq-filters.is-board .kp-acq-filter-count { font-size: 11.5px; }
.kp-portal .kp-acq-filters.is-board .kp-acq-layout-toggle { min-height: 34px; box-sizing: border-box; }
.kp-portal .kp-acq-filters.is-board .kp-acq-layout-toggle a { min-height: 26px; box-sizing: border-box; }

/* Cards must always stay inside their lane—even when the address and money
   are long. The article handles drag/drop; clicking its open space is routed
   to the title link by portal.js. */
.kp-portal .kp-bd-panel .kp-bd-col-body { box-sizing: border-box; min-width: 0; padding: 6px; }
.kp-portal .kp-bd-panel .kp-bd-card {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    overflow: hidden;
    gap: 3px;
    padding: 8px 9px 7px;
    cursor: pointer;
}
.kp-portal .kp-bd-panel .kp-bd-card > *,
.kp-portal .kp-bd-panel .kp-bd-card-main,
.kp-portal .kp-bd-panel .kp-bd-money,
.kp-portal .kp-bd-panel .kp-bd-flags { min-width: 0; max-width: 100%; }
.kp-portal .kp-bd-panel .kp-bd-card-top { grid-template-columns: minmax(0, 1fr) 22px; gap: 4px; min-width: 0; }
.kp-portal .kp-bd-panel .kp-bd-title {
    display: block;
    overflow: hidden;
    font-size: 12px;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.kp-portal .kp-bd-panel .kp-bd-addr,
.kp-portal .kp-bd-panel .kp-bd-meta,
.kp-portal .kp-bd-panel .kp-bd-uw,
.kp-portal .kp-bd-panel .kp-bd-updated {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.kp-portal .kp-bd-panel .kp-bd-addr { margin-top: 1px; font-size: 10px; }
.kp-portal .kp-bd-panel .kp-bd-meta,
.kp-portal .kp-bd-panel .kp-bd-uw { font-size: 9.75px; line-height: 1.25; }
.kp-portal .kp-bd-panel .kp-bd-ask { overflow: hidden; font-size: 11.5px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.kp-portal .kp-bd-panel .kp-bd-flags { gap: 3px; margin-top: 1px; overflow: hidden; }
.kp-portal .kp-bd-panel .kp-bd-flags .kp-badge,
.kp-portal .kp-bd-panel .kp-bd-deadline,
.kp-portal .kp-bd-panel .kp-bd-ws { max-width: 100%; padding: 1px 5px; font-size: 9px; line-height: 1.35; }
.kp-portal .kp-bd-panel .kp-bd-updated { margin-left: auto; font-size: 9px; }
.kp-portal .kp-bd-panel .kp-bd-move { position: relative; z-index: 2; width: 22px; height: 22px; }
.kp-portal .kp-bd-panel .kp-bd-col-count {
    min-width: 15px;
    height: 15px;
    padding: 0 4px;
    font-size: 8.5px;
    line-height: 15px;
}

/* Property overview: a compact metrics rail replaces the embedded map. */
.kp-portal .kp-pp-shell {
    grid-template-columns: 286px minmax(0, 1fr);
    gap: 16px;
}
.kp-portal .kp-pp-content { grid-column: 2; min-width: 0; }
.kp-portal .kp-pp-rail {
    grid-column: 1;
    grid-row: 1;
    position: sticky;
    top: 14px;
    align-self: start;
    gap: 10px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}
.kp-portal .kp-pp-keymetrics,
.kp-portal .kp-pp-location-card {
    box-sizing: border-box;
    width: 100%;
    padding: 14px;
    border: 1px solid var(--kp-border, #d5dcea);
    border-radius: 10px;
    background: #fff;
}
.kp-portal .kp-pp-keymetrics-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.kp-portal .kp-pp-keymetrics-head .kp-eyebrow { margin: 0 0 3px; font-size: 9px; }
.kp-portal .kp-pp-keymetrics-head h2 { margin: 0; font-size: 16px; line-height: 1.2; color: #17233c; }
.kp-portal .kp-pp-keymetrics-head .kp-linkbtn { padding: 2px 0; font-size: 11px; font-weight: 700; color: var(--kp-primary); }
.kp-portal .kp-pp-keymetrics > h3,
.kp-portal .kp-pp-location-card h3 {
    margin: 13px 0 6px;
    padding-top: 11px;
    border-top: 1px solid #edf0f4;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .055em;
    text-transform: uppercase;
    color: #7a8496;
}
.kp-portal .kp-pp-location-card h3 { margin-top: 0; padding-top: 0; border-top: 0; }
.kp-portal .kp-pp-keymetric-list { display: grid; gap: 0; margin: 0; }
.kp-portal .kp-pp-keymetric-list > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: baseline; padding: 4px 0; }
.kp-portal .kp-pp-keymetric-list dt { min-width: 0; overflow: hidden; font-size: 10.5px; color: #7a8496; text-overflow: ellipsis; white-space: nowrap; }
.kp-portal .kp-pp-keymetric-list dd { margin: 0; font-size: 11.5px; font-weight: 650; color: #17233c; text-align: right; font-variant-numeric: tabular-nums; }
.kp-portal .kp-pp-location-card p { margin: 0 0 10px; font-size: 11.5px; line-height: 1.45; color: #3d526b; }
.kp-portal .kp-pp-location-card .kp-pp-rail-maplinks { padding-top: 8px; border-top: 1px solid #edf0f4; }
.kp-portal .kp-pp-location-card .kp-pp-rail-maplinks a,
.kp-portal .kp-pp-location-card .kp-pp-rail-maplinks button { font-size: 10.5px; }
.kp-portal .kp-pp-rail .kp-coprail { border-radius: 10px; }
.kp-portal .kp-ppd-gallery { max-height: 275px; }

@media (max-width: 1180px) {
    .kp-portal .kp-acq-board-stats > div { min-width: 80px; padding-left: 13px; padding-right: 13px; }
    .kp-portal .kp-pp-shell { grid-template-columns: 250px minmax(0, 1fr); }
}
@media (max-width: 900px) {
    .kp-portal .kp-main.kp-direct-tool-acquisitions .kp-page-header.kp-acq-board-header,
    .kp-portal .kp-page-header.kp-acq-board-header { grid-template-columns: 1fr auto; row-gap: 10px; }
    .kp-portal .kp-acq-board-stats { grid-column: 1 / -1; order: 3; overflow-x: auto; }
    .kp-portal .kp-acq-board-stats > div { flex: 1 0 auto; padding-left: 12px; padding-right: 12px; }
    .kp-portal .kp-pp-shell { grid-template-columns: 1fr; }
    .kp-portal .kp-pp-content { grid-column: 1; grid-row: 1; }
    .kp-portal .kp-pp-rail { grid-column: 1; grid-row: 2; position: static; }
}
.kp-portal .kp-page-header.kp-acq-board-header { min-height: 0; padding: 16px 22px; border: 1px solid #dde3eb; border-radius: 10px; background: #fff; box-shadow: none; }
.kp-portal .kp-page-header.kp-acq-board-header::before,
.kp-portal .kp-page-header.kp-acq-board-header::after { display: none; }

@media (max-width: 620px) {
    .kp-portal .kp-client-doclist li {
        align-items: flex-start;
        flex-direction: column;
    }

    .kp-portal .kp-client-docactions {
        justify-content: flex-start;
    }
}

/* ============================================================
   wl151 — shared section homes
   One designed landing surface and one reusable right-side panel for
   every top-level operator and client section. Existing page templates
   remain live inside the panel.
   ============================================================ */
.kp-portal .kp-section-home-wrap {
    width: 100%;
    max-width: 1480px;
    margin: 0 auto;
}

.kp-portal .kp-section-home {
    overflow: hidden;
    border: 1px solid #dfe7f0;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 18px 52px rgba(15, 35, 61, .08);
}

.kp-portal .kp-section-home-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 430px);
    min-height: 326px;
    overflow: hidden;
    background:
        radial-gradient(circle at 86% 18%, rgba(51, 196, 216, .19), transparent 30%),
        radial-gradient(circle at 72% 105%, rgba(63, 116, 226, .12), transparent 38%),
        linear-gradient(120deg, #f9fbff 0%, #f2f7ff 57%, #edfbff 100%);
}

.kp-portal .kp-section-home-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image: linear-gradient(rgba(32, 97, 168, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(32, 97, 168, .035) 1px, transparent 1px);
    background-size: 32px 32px;
    mask-image: linear-gradient(90deg, #000, transparent 79%);
}

.kp-portal .kp-section-home-copy {
    position: relative;
    z-index: 2;
    align-self: center;
    max-width: 780px;
    padding: 52px 58px 49px;
}

.kp-portal .kp-section-home-copy .kp-eyebrow {
    margin-bottom: 9px;
    color: #16719a;
}

.kp-portal .kp-section-home-copy h1 {
    max-width: 750px;
    margin: 0 0 15px;
    color: #102440;
    font-size: clamp(34px, 3vw, 50px);
    font-weight: 750;
    letter-spacing: -.035em;
    line-height: 1.06;
}

.kp-portal .kp-section-home-copy > p:not(.kp-eyebrow) {
    max-width: 700px;
    margin: 0;
    color: #4f6278;
    font-size: 16px;
    line-height: 1.65;
}

.kp-portal .kp-section-home-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 26px;
}

.kp-portal .kp-section-home-actions .kp-button {
    min-height: 42px;
    padding: 10px 17px;
    border-radius: 9px;
}

.kp-portal .kp-section-home-hint {
    margin-left: 5px;
    color: #56728c;
    font-size: 12px;
    font-weight: 650;
}

.kp-portal .kp-section-home-art {
    position: relative;
    min-height: 326px;
}

.kp-portal .kp-section-orbit {
    position: absolute;
    left: 50%;
    top: 50%;
    display: block;
    border: 1px solid rgba(41, 125, 180, .17);
    border-radius: 50%;
    transform: translate(-50%, -50%);
}

.kp-portal .kp-section-orbit-one {
    width: 310px;
    height: 310px;
}

.kp-portal .kp-section-orbit-two {
    width: 230px;
    height: 230px;
    border-color: rgba(39, 169, 190, .22);
}

.kp-portal .kp-section-art-window {
    position: absolute;
    left: 50%;
    top: 50%;
    width: min(292px, 76%);
    min-height: 214px;
    padding: 56px 29px 27px;
    overflow: hidden;
    border: 1px solid rgba(48, 88, 126, .19);
    border-radius: 16px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 25px 55px rgba(16, 49, 79, .15);
    transform: translate(-50%, -50%) rotate(1.5deg);
}

.kp-portal .kp-section-art-top {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    display: flex;
    align-items: center;
    gap: 6px;
    height: 38px;
    padding: 0 14px;
    border-bottom: 1px solid #e4eaf1;
    background: #f7f9fc;
}

.kp-portal .kp-section-art-top i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #c5d2df;
}

.kp-portal .kp-section-art-top i:first-child { background: #36bad0; }
.kp-portal .kp-section-art-window b { display: block; margin-bottom: 22px; color: #173a60; font-size: 16px; }
.kp-portal .kp-section-art-line { display: block; width: 76%; height: 7px; margin-bottom: 12px; border-radius: 99px; background: #dce6f0; }
.kp-portal .kp-section-art-line.is-wide { width: 100%; }
.kp-portal .kp-section-art-line.is-short { width: 48%; }
.kp-portal .kp-section-art-window em { display: inline-flex; min-height: 28px; margin-top: 12px; padding: 6px 10px; border-radius: 999px; color: #087955; background: #e7f8f1; font-size: 10px; font-style: normal; font-weight: 750; }

.kp-portal .kp-section-home-summary {
    display: grid;
    grid-template-columns: repeat(var(--kp-section-summary-cols, 3), minmax(0, 1fr));
    border-top: 1px solid #dfe8f1;
    border-bottom: 1px solid #e4eaf1;
    background: #fff;
}

.kp-portal .kp-section-home-summary > span {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 68px;
    padding: 12px 22px;
}

.kp-portal .kp-section-home-summary > span + span { border-left: 1px solid #e4eaf1; }
.kp-portal .kp-section-home-summary strong { color: #163a63; font-size: 14px; }
.kp-portal .kp-section-home-summary small { color: #68798c; font-size: 11.5px; line-height: 1.35; }

.kp-portal .kp-section-tool-area {
    padding: 38px 42px 15px;
}

.kp-portal .kp-section-tool-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 28px;
}

.kp-portal .kp-section-tool-heading h2 {
    margin: 2px 0 0;
    color: #152a45;
    font-size: 21px;
    letter-spacing: -.015em;
}

.kp-portal .kp-section-tool-heading > p {
    max-width: 430px;
    margin: 0;
    color: #75859a;
    font-size: 13px;
    text-align: right;
}

.kp-portal .kp-section-toolrail {
    display: grid;
    grid-template-columns: repeat(var(--kp-section-cols, 5), minmax(0, 1fr));
    margin-top: 20px;
    overflow: hidden;
    border: 1px solid #dfe6ee;
    border-radius: 14px;
    background: #fbfcfe;
}

.kp-portal .kp-section-toolrail > a {
    position: relative;
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr);
    column-gap: 10px;
    min-height: 126px;
    padding: 19px 15px 24px;
    border-right: 1px solid #e3e9f0;
    color: inherit;
    text-decoration: none;
    transition: color .16s ease, background .16s ease, box-shadow .16s ease;
}

.kp-portal .kp-section-toolrail > a:last-child { border-right: 0; }
.kp-portal .kp-section-toolrail > a:nth-child(n+8) { border-top: 1px solid #e3e9f0; }
.kp-portal .kp-section-toolrail > a:hover,
.kp-portal .kp-section-toolrail > a:focus-visible { z-index: 1; color: #164f80; background: #f1f8ff; box-shadow: inset 0 -3px 0 #3097dc; outline: none; }

/* wl253 - Workspace has 12 destinations. Keep every desktop/tablet row
   complete so the final tile cannot visually bleed into unused grid tracks. */
@media (min-width: 1181px) {
    .kp-portal[data-kp-page="settings"] .kp-section-toolrail {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
    .kp-portal[data-kp-page="settings"] .kp-section-toolrail > a {
        border-top: 0;
        border-right: 1px solid #e3e9f0;
        border-bottom: 0;
    }
    .kp-portal[data-kp-page="settings"] .kp-section-toolrail > a:nth-child(n+7) {
        border-top: 1px solid #e3e9f0;
    }
    .kp-portal[data-kp-page="settings"] .kp-section-toolrail > a:nth-child(6n) {
        border-right: 0;
    }
}

@media (min-width: 761px) and (max-width: 1180px) {
    .kp-portal[data-kp-page="settings"] .kp-section-toolrail {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .kp-portal[data-kp-page="settings"] .kp-section-toolrail > a {
        border-top: 0;
        border-right: 1px solid #e3e9f0;
        border-bottom: 0;
    }
    .kp-portal[data-kp-page="settings"] .kp-section-toolrail > a:nth-child(n+4) {
        border-top: 1px solid #e3e9f0;
    }
    .kp-portal[data-kp-page="settings"] .kp-section-toolrail > a:nth-child(3n) {
        border-right: 0;
    }
}
.kp-portal .kp-section-toolrail > a.has-product-status { display: flex; flex-direction: column; align-items: stretch; gap: 9px; }
.kp-portal .kp-section-tool-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.kp-portal .kp-section-product-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 7px;
    border: 1px solid #c8d6f8;
    border-radius: 999px;
    color: #245cdd;
    background: #f2f6ff;
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .06em;
    line-height: 1.1;
    text-transform: uppercase;
}
.kp-portal .kp-section-product-badge i { width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.kp-portal .kp-section-product-badge.is-active { border-color: #b9e6d5; color: #087955; background: #edf9f4; }

.kp-portal .kp-section-tool-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    color: #2276ae;
    background: #e8f4fc;
}

.kp-portal .kp-section-tool-icon svg { width: 19px; height: 19px; }
.kp-portal .kp-section-tool-copy { display: block; min-width: 0; padding-top: 1px; }
.kp-portal .kp-section-tool-copy strong { display: block; color: #18324f; font-size: 13px; line-height: 1.3; }
.kp-portal .kp-section-tool-copy small { display: block; margin-top: 5px; color: #748397; font-size: 11px; line-height: 1.35; }
.kp-portal .kp-section-tool-arrow { position: absolute; right: 13px; bottom: 12px; color: #8aa0b5; font-size: 16px; transition: transform .16s ease; }
.kp-portal .kp-section-toolrail > a:hover .kp-section-tool-arrow,
.kp-portal .kp-section-toolrail > a:focus-visible .kp-section-tool-arrow { transform: translateX(3px); }

.kp-section-drawer-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1260;
    background: rgba(10, 23, 42, .48);
    backdrop-filter: blur(2px);
}

.kp-section-drawer-backdrop[hidden] { display: none !important; }

.kp-section-drawer {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 1270;
    display: flex;
    flex-direction: column;
    width: min(84vw, 1480px);
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
    visibility: hidden;
    background: #f5f8fc;
    box-shadow: -20px 0 55px rgba(8, 24, 43, .22);
    transform: translateX(102%);
    transition: transform .28s cubic-bezier(.22, .8, .28, 1), visibility 0s linear .28s;
}

.kp-section-drawer.is-open { visibility: visible; transform: translateX(0); transition-delay: 0s; }
.kp-section-drawer-head { display: flex; align-items: center; justify-content: space-between; gap: 22px; flex: 0 0 auto; min-height: 78px; padding: 14px 22px 13px 26px; border-bottom: 1px solid #dce4ed; background: rgba(255, 255, 255, .97); }
.kp-section-drawer-head .kp-eyebrow { margin: 0 0 2px; }
.kp-section-drawer-head h2 { margin: 0; color: #172d48; font-size: 20px; }
.kp-section-drawer-tools { display: flex; align-items: center; gap: 16px; }
.kp-section-drawer-tools > a { color: #216897; font-size: 12px; font-weight: 700; text-decoration: none; }
.kp-section-drawer-tools > a:hover,
.kp-section-drawer-tools > a:focus { text-decoration: underline; text-underline-offset: 3px; }
.kp-section-drawer-tools > button { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 0 0 3px; border: 1px solid #d5dee7; border-radius: 50%; color: #536579; background: #fff; font: 400 28px/1 Arial, sans-serif; cursor: pointer; }
.kp-section-drawer-tools > button:hover,
.kp-section-drawer-tools > button:focus-visible { border-color: #91afd0; color: #194f7c; background: #f3f8fd; outline: 2px solid rgba(47, 133, 195, .18); outline-offset: 2px; }
.kp-section-drawer > iframe { display: block; flex: 1 1 auto; width: 100%; min-height: 0; border: 0; background: #f5f8fc; }
.kp-section-drawer-loading { position: absolute; left: 50%; top: 50%; z-index: 2; padding: 9px 13px; border: 1px solid #dce5ee; border-radius: 999px; color: #52677c; background: rgba(255,255,255,.95); box-shadow: 0 8px 22px rgba(19,45,72,.1); font-size: 12px; transform: translate(-50%, -50%); }

/* wl230 — Console cards are quick-access drawers. Keep ordinary work compact,
   allow form-heavy pages the established 60% ceiling, and reserve the wider
   approximately 70% treatment for Email, Opportunities and Messages. */
.kp-portal .kp-console-metrics-eight { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.kp-portal .kp-console-attention-grid {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    max-width: 100%;
}
.kp-section-drawer.kp-console-quick-drawer { width: min(48vw, 820px); }
.kp-section-drawer.kp-console-quick-drawer[data-kp-drawer-size="wide"] { width: min(60vw, 1080px); }
.kp-section-drawer.kp-console-quick-drawer[data-kp-drawer-size="featured"] { width: min(70vw, 1320px); }

@media (max-width: 1180px) {
    .kp-portal .kp-section-toolrail { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .kp-portal .kp-section-toolrail > a { border-bottom: 1px solid #e3e9f0; }
    .kp-portal .kp-section-toolrail > a:nth-child(3n) { border-right: 0; }
}

@media (max-width: 900px) {
    .kp-portal .kp-section-home-hero { grid-template-columns: minmax(0, 1fr) 270px; }
    .kp-portal .kp-section-home-copy { padding: 42px 34px; }
    .kp-portal .kp-section-home-art { min-height: 300px; transform: scale(.88); transform-origin: center; }
    .kp-portal .kp-section-tool-area { padding-right: 26px; padding-left: 26px; }
    .kp-section-drawer { width: min(94vw, 1480px); }
    .kp-section-drawer.kp-console-quick-drawer,
    .kp-section-drawer.kp-console-quick-drawer[data-kp-drawer-size="wide"],
    .kp-section-drawer.kp-console-quick-drawer[data-kp-drawer-size="featured"] { width: 94vw; }
}

@media (max-width: 720px) {
    .kp-portal .kp-section-home { border-radius: 15px; }
    .kp-portal .kp-section-home-hero { display: block; min-height: 0; }
    .kp-portal .kp-section-home-copy { padding: 35px 24px 32px; }
    .kp-portal .kp-section-home-copy h1 { font-size: 34px; }
    .kp-portal .kp-section-home-art { display: none; }
    .kp-portal .kp-section-home-summary { grid-template-columns: 1fr; }
    .kp-portal .kp-section-home-summary > span { justify-content: flex-start; min-height: 54px; padding-right: 24px; padding-left: 24px; }
    .kp-portal .kp-section-home-summary > span + span { border-top: 1px solid #e4eaf1; border-left: 0; }
    .kp-portal .kp-section-tool-heading { align-items: flex-start; flex-direction: column; gap: 7px; }
    .kp-portal .kp-section-tool-heading > p { text-align: left; }
    .kp-portal .kp-section-toolrail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kp-portal .kp-section-toolrail > a { min-height: 112px; border-right: 1px solid #e3e9f0; }
    .kp-portal .kp-section-toolrail > a:nth-child(2n) { border-right: 0; }
    .kp-section-drawer { width: 100vw; }
    .kp-section-drawer-head { min-height: 69px; padding: 11px 14px 10px 18px; }
    .kp-section-drawer-head h2 { font-size: 17px; }
    .kp-section-drawer-tools > a { display: none; }
}

@media (max-width: 480px) {
    .kp-portal .kp-section-home-actions { align-items: stretch; flex-direction: column; }
    .kp-portal .kp-section-home-actions .kp-button { justify-content: center; width: 100%; }
    .kp-portal .kp-section-home-hint { margin: 5px 0 0; text-align: center; }
    .kp-portal .kp-section-tool-area { padding: 30px 17px 9px; }
    .kp-portal .kp-section-toolrail { grid-template-columns: 1fr; }
    .kp-portal .kp-section-toolrail > a { min-height: 82px; border-right: 0 !important; border-bottom: 1px solid #e3e9f0; }
    .kp-portal .kp-section-toolrail > a:last-child { border-bottom: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .kp-section-drawer,
    .kp-portal .kp-section-toolrail > a,
    .kp-portal .kp-section-tool-arrow { transition: none !important; }
}

/* wl152 - the Console and frequent-use work pages stay direct. */
.kp-main.kp-direct-tool-page {
    --kp-direct-accent: #2d82c7;
    --kp-direct-soft: #eef7ff;
}

.kp-main.kp-direct-tool-console {
    --kp-direct-accent: var(--kp-navy);
    --kp-direct-soft: #eef4ff;
}

.kp-main.kp-direct-tool-tasks,
.kp-main.kp-direct-tool-my-tasks {
    --kp-direct-accent: #416fda;
    --kp-direct-soft: #f0f4ff;
}

.kp-main.kp-direct-tool-messages {
    --kp-direct-accent: #1698a5;
    --kp-direct-soft: #ecfaf9;
}

.kp-main.kp-direct-tool-properties {
    --kp-direct-accent: #237fbd;
    --kp-direct-soft: #eef8ff;
}

.kp-main.kp-direct-tool-acquisitions,
.kp-main.kp-direct-tool-portfolio {
    --kp-direct-accent: #2d82c7;
    --kp-direct-soft: #eef7ff;
}

.kp-portal .kp-direct-tool-page .kp-content > .kp-page-header,
.kp-portal .kp-direct-tool-messages .kp-message-hero {
    position: relative;
    min-height: 126px;
    margin-bottom: 20px;
    padding: 27px 30px;
    overflow: hidden;
    border: 1px solid #dce6f0;
    border-radius: 18px;
    background: linear-gradient(120deg, #ffffff 0%, var(--kp-direct-soft) 100%);
    box-shadow: 0 14px 34px rgba(21, 48, 78, .07);
}

.kp-portal .kp-direct-tool-page .kp-content > .kp-page-header::before,
.kp-portal .kp-direct-tool-messages .kp-message-hero::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 5px;
    background: var(--kp-direct-accent);
}

.kp-portal .kp-direct-tool-page .kp-content > .kp-page-header::after,
.kp-portal .kp-direct-tool-messages .kp-message-hero::after {
    content: "";
    position: absolute;
    right: -42px;
    top: -78px;
    width: 210px;
    height: 210px;
    border: 34px solid rgba(45, 130, 199, .1);
    border-radius: 50%;
    pointer-events: none;
}

.kp-portal .kp-direct-tool-page .kp-content > .kp-page-header > *,
.kp-portal .kp-direct-tool-messages .kp-message-hero > * {
    position: relative;
    z-index: 1;
}

.kp-portal .kp-direct-tool-page .kp-content > .kp-page-header h1,
.kp-portal .kp-direct-tool-messages .kp-message-hero h2 {
    color: #132f50;
    letter-spacing: -.025em;
}

.kp-portal .kp-direct-tool-page .kp-content > .kp-page-header .kp-eyebrow,
.kp-portal .kp-direct-tool-messages .kp-message-hero .kp-eyebrow {
    color: var(--kp-direct-accent);
}

.kp-portal .kp-direct-tool-outbox .kp-mailc-filters,
.kp-portal .kp-direct-tool-outbox .kp-mailc-list,
.kp-portal .kp-direct-tool-tasks .kp-tasks-rail,
.kp-portal .kp-direct-tool-tasks .kp-tasks-main > .kp-card,
.kp-portal .kp-direct-tool-my-tasks .kp-content > article,
.kp-portal .kp-direct-tool-messages .kp-message-workspace,
.kp-portal .kp-direct-tool-properties .kp-prop-row {
    border: 1px solid #dce5ee;
    border-radius: 15px;
    box-shadow: 0 10px 28px rgba(20, 47, 76, .055);
}

.kp-portal .kp-direct-tool-outbox .kp-mailc-filters {
    padding: 14px 16px;
    background: #fbfdff;
}

.kp-portal .kp-direct-tool-outbox .kp-mailc-list,
.kp-portal .kp-direct-tool-messages .kp-message-workspace {
    overflow: hidden;
}

.kp-portal .kp-direct-tool-tasks .kp-tasks-rail {
    background: linear-gradient(180deg, #ffffff, #f7f9fd);
}

.kp-portal .kp-direct-tool-tasks .kp-tasks-rail-item.is-active {
    color: #214f9a;
    background: var(--kp-direct-soft);
    box-shadow: inset 4px 0 0 var(--kp-direct-accent);
}

.kp-portal .kp-direct-tool-my-tasks .kp-content > article {
    overflow: hidden;
}

.kp-portal .kp-direct-tool-my-tasks .kp-content > article + article {
    margin-top: 18px;
}

.kp-portal .kp-direct-tool-messages .kp-message-workspace {
    border-top: 4px solid var(--kp-direct-accent);
}

/* Console remains the complete live dashboard; only its presentation changes. */
.kp-portal .kp-direct-tool-console .kp-console-hero {
    position: relative;
    min-height: 126px;
    margin-bottom: 20px;
    overflow: hidden;
    border: 1px solid #dce6f0;
    border-radius: 18px;
    background: linear-gradient(120deg, #ffffff 0%, var(--kp-direct-soft) 100%);
    box-shadow: 0 14px 34px rgba(21, 48, 78, .07);
}

.kp-portal .kp-direct-tool-console .kp-console-hero::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 5px;
    background: var(--kp-direct-accent);
}

.kp-portal .kp-direct-tool-console .kp-console-hero::after {
    content: "";
    position: absolute;
    right: -42px;
    top: -78px;
    width: 210px;
    height: 210px;
    border: 34px solid rgba(20, 44, 79, .09);
    border-radius: 50%;
    pointer-events: none;
}

.kp-portal .kp-direct-tool-console .kp-console-header {
    position: relative;
    z-index: 1;
    min-height: 124px;
    margin: 0;
    padding: 27px 30px;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.kp-portal .kp-direct-tool-console .kp-console-header h1 {
    color: #132f50;
    letter-spacing: -.025em;
}

.kp-portal .kp-direct-tool-console .kp-console-header .kp-eyebrow {
    color: var(--kp-direct-accent);
}

.kp-portal .kp-direct-tool-console .kp-console-metrics {
    gap: 14px;
}

.kp-portal .kp-direct-tool-console .kp-metric-card,
.kp-portal .kp-direct-tool-console .kp-console-queue,
.kp-portal .kp-direct-tool-console .kp-checklist-card,
.kp-portal .kp-direct-tool-console .kp-console-notice {
    border: 1px solid #dce5ee;
    border-radius: 15px;
    box-shadow: 0 10px 28px rgba(20, 47, 76, .055);
}

.kp-portal .kp-direct-tool-console .kp-linked-card {
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.kp-portal .kp-direct-tool-console .kp-linked-card:hover,
.kp-portal .kp-direct-tool-console .kp-linked-card:focus-visible {
    transform: translateY(-2px);
    border-color: #b9d0eb;
    box-shadow: 0 16px 32px rgba(23, 58, 96, .1);
}

.kp-portal .kp-direct-tool-console .kp-metric-accent {
    border-color: #c9d8ff;
    background: linear-gradient(145deg, #ffffff 0%, #f2f6ff 100%);
    box-shadow: inset 0 4px 0 var(--kp-direct-accent), 0 12px 30px rgba(32, 73, 156, .08);
}

.kp-portal .kp-direct-tool-console .kp-band {
    border-radius: 11px;
    background: linear-gradient(100deg, #17356d 0%, var(--kp-navy) 72%, #2d9bd6 100%);
    box-shadow: 0 10px 24px rgba(24, 62, 132, .13);
}

.kp-portal .kp-direct-tool-console .kp-console-queue {
    overflow: hidden;
    background: #ffffff;
}

/* Admin listings and held properties open on their working lists. */
.kp-portal .kp-direct-tool-acquisitions .kp-acq-filters {
    border: 1px solid #dce5ee;
    border-radius: 15px;
    background: #fbfdff;
    box-shadow: 0 10px 28px rgba(20, 47, 76, .055);
}

.kp-portal .kp-direct-tool-acquisitions .kp-acq-list > article,
.kp-portal .kp-direct-tool-portfolio .kp-prop-row,
.kp-portal .kp-direct-tool-properties .kp-prop-row {
    border: 1px solid #dce5ee;
    border-radius: 15px;
    box-shadow: 0 10px 28px rgba(20, 47, 76, .055);
}

.kp-portal .kp-direct-tool-portfolio .kp-metric-card {
    border: 1px solid #dce5ee;
    border-radius: 14px;
    background: linear-gradient(145deg, #ffffff 0%, #f5faff 100%);
    box-shadow: 0 8px 24px rgba(20, 47, 76, .05);
}

@media (max-width: 720px) {
    .kp-portal .kp-direct-tool-page .kp-content > .kp-page-header,
    .kp-portal .kp-direct-tool-messages .kp-message-hero {
        min-height: 0;
        padding: 23px 21px;
        border-radius: 14px;
    }

    .kp-portal .kp-direct-tool-page .kp-content > .kp-page-header::after,
    .kp-portal .kp-direct-tool-messages .kp-message-hero::after {
        right: -90px;
    }

    .kp-portal .kp-direct-tool-console .kp-console-hero {
        min-height: 0;
        border-radius: 14px;
    }

    .kp-portal .kp-direct-tool-console .kp-console-header {
        min-height: 0;
        padding: 23px 21px;
    }

    .kp-portal .kp-direct-tool-console .kp-console-hero::after {
        right: -90px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .kp-portal .kp-direct-tool-console .kp-linked-card {
        transition: none !important;
    }
}

/* ============================================================
   WL153 — compact property heroes, one listings workspace, clean AI chats
   ============================================================ */

/* Headline facts are labels and short values, never narrative content. The
   PHP allowlist keeps long fields out; these rules make one line an absolute
   visual boundary even at awkward viewport widths. */
.kp-portal .kp-ppd-strip > span {
    min-width: 0;
}
.kp-portal .kp-ppd-strip-k,
.kp-portal .kp-ppd-strip-v {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Search, filters and results are one listings surface. Because this surface
   is the left grid column, its top now aligns exactly with the sidebar. */
.kp-portal .kp-acq-list-workspace {
    display: grid;
    gap: 0;
    overflow: hidden;
    background: #fff;
    border: 1px solid #dce5ee;
    border-radius: 15px;
    box-shadow: 0 10px 28px rgba(20, 47, 76, .055);
}
.kp-portal .kp-acq-list-workspace > .kp-acq-filters,
.kp-portal .kp-direct-tool-acquisitions .kp-acq-list-workspace > .kp-acq-filters {
    margin: 0;
    border: 0;
    border-bottom: 1px solid #e3e9f0;
    border-radius: 0;
    box-shadow: none;
    background: linear-gradient(180deg, #fbfdff 0%, #f7faff 100%);
}
.kp-portal .kp-acq-results {
    display: grid;
    gap: 0;
}
.kp-portal .kp-acq-list-workspace .kp-deal-row,
.kp-portal .kp-direct-tool-acquisitions .kp-acq-results > article {
    border: 0;
    border-bottom: 1px solid #e6ebf1;
    border-radius: 0;
    box-shadow: none;
}
.kp-portal .kp-acq-list-workspace .kp-deal-row:last-child,
.kp-portal .kp-acq-list-workspace .kp-acq-results > .kp-card:last-child {
    border-bottom: 0;
}
.kp-portal .kp-acq-list-workspace .kp-acq-results > .kp-card:only-child {
    margin: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.kp-portal .kp-coprail-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.kp-portal .kp-coprail-head h3 {
    margin: 0;
}
.kp-portal .kp-coprail-clear {
    appearance: none;
    border: 0;
    background: transparent;
    color: var(--kp-muted);
    padding: 2px 0;
    font: inherit;
    font-size: 11.5px;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.kp-portal .kp-coprail-clear:hover,
.kp-portal .kp-coprail-clear:focus-visible {
    color: var(--kp-navy);
}
.kp-portal .kp-coprail-clear[hidden] {
    display: none;
}

/* Property hero photos use the existing platform viewer as one vertical,
   scrollable gallery. The hero itself remains compact; every remaining image
   is available here instead of being repeated in a second Photos card. */
.kp-viewer-body.is-gallery {
    display: block;
    overflow-y: auto;
    padding: 18px;
    background: var(--kp-navy);
    scroll-behavior: smooth;
}
.kp-viewer-gallery-scroll {
    display: grid;
    gap: 18px;
    width: min(100%, 1100px);
    margin: 0 auto;
}
.kp-viewer-gallery-item {
    margin: 0;
    overflow: hidden;
    background: var(--kp-white);
    border: 1px solid var(--kp-border);
    border-radius: 10px;
    scroll-margin-top: 14px;
}
.kp-viewer-body.is-gallery .kp-viewer-gallery-item img {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
    max-height: none;
    object-fit: contain;
}
.kp-viewer-gallery-item figcaption {
    padding: 9px 12px;
    color: var(--kp-slate);
    background: var(--kp-white);
    border-top: 1px solid var(--kp-border);
    font-size: 12px;
}
@media (max-width: 700px) {
    .kp-viewer-body.is-gallery { padding: 10px; }
    .kp-viewer-gallery-scroll { gap: 10px; }
}

/* ============================================================
   WL156 — lender placement inside the Borrower Vault
   ============================================================ */
.kp-portal .kp-vault-tabs {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    overflow-x: auto;
}
.kp-portal .kp-vault-tabs .kp-button {
    flex: 0 0 auto;
}
.kp-portal .kp-vault-tab-count {
    display: inline-grid;
    place-items: center;
    min-width: 19px;
    margin-left: 5px;
    padding: 1px 6px;
    border-radius: 999px;
    color: #fff;
    background: #2e46c6;
    font-size: 10.5px;
    font-weight: 750;
}
.kp-portal .kp-button-primary .kp-vault-tab-count {
    background: rgba(255, 255, 255, .24);
}

.kp-portal .kp-placement-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(250px, 360px);
    align-items: end;
    gap: 30px;
    min-height: 178px;
    margin: 0 0 18px;
    padding: 28px 30px;
    overflow: hidden;
    border: 1px solid #d7e2ec;
    border-radius: 18px;
    background:
        radial-gradient(circle at 90% -10%, rgba(45, 155, 214, .2), transparent 38%),
        linear-gradient(135deg, #ffffff 0%, #f4f8ff 54%, #edf9fb 100%);
    box-shadow: 0 14px 34px rgba(20, 47, 76, .07);
}
.kp-portal .kp-placement-hero::after {
    content: "";
    position: absolute;
    right: -65px;
    top: -105px;
    width: 250px;
    height: 250px;
    border: 38px solid rgba(20, 44, 79, .07);
    border-radius: 50%;
    pointer-events: none;
}
.kp-portal .kp-placement-hero > * {
    position: relative;
    z-index: 1;
}
.kp-portal .kp-placement-hero h2 {
    margin: 2px 0 8px;
    color: #102a4c;
    font-size: clamp(25px, 3vw, 36px);
    letter-spacing: -.035em;
}
.kp-portal .kp-placement-hero p:not(.kp-eyebrow) {
    max-width: 760px;
    margin: 0;
    color: #53667d;
    font-size: 14px;
    line-height: 1.65;
}
.kp-portal .kp-placement-property {
    display: grid;
    gap: 7px;
    color: #53667d;
    font-size: 11px;
    font-weight: 750;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.kp-portal .kp-placement-property select {
    width: 100%;
    min-height: 44px;
    border-color: #cbd8e6;
    border-radius: 10px;
    background: rgba(255, 255, 255, .92);
    color: #102a4c;
    font-size: 13px;
    font-weight: 650;
    text-transform: none;
    letter-spacing: 0;
}

.kp-portal .kp-placement-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 0 0 18px;
}
.kp-portal .kp-placement-metrics > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 78px;
    padding: 16px 18px;
    border: 1px solid #dce5ee;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 23px rgba(20, 47, 76, .05);
}
.kp-portal .kp-placement-metrics span {
    color: #65758b;
    font-size: 11px;
    font-weight: 750;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.kp-portal .kp-placement-metrics strong {
    color: #14365c;
    font-size: 27px;
    line-height: 1;
}
.kp-portal .kp-placement-metrics .is-due {
    border-color: #f4c875;
    background: #fffaf0;
}
.kp-portal .kp-placement-metrics .is-due strong {
    color: #a45e00;
}

.kp-portal .kp-placement-workspace {
    padding: 0;
    overflow: hidden;
    border: 1px solid #dce5ee;
    border-radius: 16px;
    box-shadow: 0 12px 30px rgba(20, 47, 76, .06);
}
.kp-portal .kp-placement-workspace-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 20px 22px;
    border-bottom: 1px solid #e3e9f0;
    background: linear-gradient(180deg, #fff 0%, #fbfdff 100%);
}
.kp-portal .kp-placement-workspace-head h3 {
    margin: 2px 0 0;
    color: #102a4c;
    font-size: 18px;
}
.kp-portal .kp-placement-add {
    display: flex;
    align-items: center;
    gap: 8px;
}
.kp-portal .kp-placement-add select {
    min-width: 245px;
    min-height: 40px;
}
.kp-portal .kp-placement-table-wrap {
    overflow-x: auto;
}
.kp-portal .kp-placement-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}
.kp-portal .kp-placement-table th,
.kp-portal .kp-placement-table td {
    padding: 14px 15px;
    border-bottom: 1px solid #e7ecf2;
    text-align: left;
    vertical-align: middle;
}
.kp-portal .kp-placement-table th {
    color: #77869b;
    background: #f7f9fc;
    font-size: 10.5px;
    font-weight: 750;
    letter-spacing: .055em;
    text-transform: uppercase;
}
.kp-portal .kp-placement-table th:first-child { width: 18%; }
.kp-portal .kp-placement-table th:nth-child(2) { width: 15%; }
.kp-portal .kp-placement-table th:nth-child(3) { width: 15%; }
.kp-portal .kp-placement-table th:nth-child(4) { width: 15%; }
.kp-portal .kp-placement-table th:nth-child(5) { width: 12%; }
.kp-portal .kp-placement-table th:nth-child(6) { width: 18%; }
.kp-portal .kp-placement-table th:last-child { width: 7%; }
.kp-portal .kp-placement-table tbody tr {
    background: #fff;
    transition: background-color .15s ease;
}
.kp-portal .kp-placement-table tbody tr:hover {
    background: #f8fbff;
}
.kp-portal .kp-placement-table tbody tr:last-child td {
    border-bottom: 0;
}
.kp-portal .kp-placement-table td {
    color: #2d3e55;
    font-size: 12.5px;
    line-height: 1.35;
    overflow-wrap: anywhere;
}
.kp-portal .kp-placement-table td strong,
.kp-portal .kp-placement-table td small {
    display: block;
}
.kp-portal .kp-placement-table td strong {
    color: #102a4c;
    font-size: 13px;
}
.kp-portal .kp-placement-table td small {
    margin-top: 3px;
    color: #7a899d;
    font-size: 10.5px;
}
.kp-portal .kp-placement-table td.is-due {
    color: #a45e00;
    font-weight: 750;
}
.kp-portal .kp-placement-open {
    white-space: nowrap;
    color: #1458e6;
    font-size: 12px;
    font-weight: 700;
}
.kp-portal .kp-placement-status {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 3px 9px;
    border-radius: 999px;
    color: #31516e;
    background: #edf3f8;
    font-size: 10.5px;
    font-weight: 750;
    line-height: 1.2;
}
.kp-portal .kp-placement-status--suggested { color: #34536d; background: #eef3f7; }
.kp-portal .kp-placement-status--selected { color: #174e9f; background: #e9f1ff; }
.kp-portal .kp-placement-status--contacted { color: #125e72; background: #e2f6f8; }
.kp-portal .kp-placement-status--reviewing { color: #5a39a1; background: #f0eaff; }
.kp-portal .kp-placement-status--more_info { color: #965800; background: #fff1d8; }
.kp-portal .kp-placement-status--terms_received { color: #137046; background: #dcf7e8; }
.kp-portal .kp-placement-status--passed,
.kp-portal .kp-placement-status--closed { color: #6c7786; background: #edf0f3; }
.kp-portal .kp-placement-empty {
    padding: 34px 26px;
    text-align: center;
}
.kp-portal .kp-placement-empty h3 { margin: 0 0 6px; color: #173554; }
.kp-portal .kp-placement-empty p { max-width: 580px; margin: 0 auto 16px; color: #6b7c91; }
.kp-portal .kp-placement-empty--inside {
    border: 0;
    box-shadow: none;
}

.kp-placement-backdrop {
    position: fixed;
    inset: 0;
    z-index: 9998;
    display: block;
    background: rgba(12, 27, 49, .5);
    backdrop-filter: blur(2px);
}
.kp-placement-drawer {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 9999;
    width: min(720px, 62vw);
    overflow-y: auto;
    background: #f4f7fb;
    box-shadow: -18px 0 55px rgba(12, 27, 49, .25);
}
.kp-placement-drawer-head {
    position: sticky;
    top: 0;
    z-index: 3;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    padding: 22px 26px 18px;
    border-bottom: 1px solid #dce4ed;
    background: rgba(255, 255, 255, .97);
    backdrop-filter: blur(12px);
}
.kp-placement-drawer-head h2 {
    margin: 2px 0 3px;
    color: #102a4c;
    font-size: 22px;
    letter-spacing: -.025em;
}
.kp-placement-drawer-head p:not(.kp-eyebrow) {
    margin: 0;
    color: #6d7c90;
    font-size: 12px;
}
.kp-placement-close {
    display: grid;
    place-items: center;
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    border: 1px solid #d8e0e9;
    border-radius: 50%;
    color: #52647a;
    background: #fff;
    font-size: 25px;
    line-height: 1;
    text-decoration: none;
}
.kp-placement-drawer-body {
    display: grid;
    gap: 14px;
    padding: 18px 20px 34px;
}
.kp-placement-panel {
    padding: 19px;
    border: 1px solid #dce5ee;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(20, 47, 76, .045);
}
.kp-placement-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin: 0 0 14px;
    padding: 0 0 11px;
    border-bottom: 1px solid #e8edf3;
}
.kp-placement-panel-head h3 { margin: 0; color: #173554; font-size: 15px; }
.kp-placement-panel-head span { color: #7b899b; font-size: 10.5px; }
.kp-placement-profile {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 18px;
}
.kp-placement-profile div span,
.kp-placement-profile div strong {
    display: block;
}
.kp-placement-profile div span {
    margin-bottom: 3px;
    color: #8190a3;
    font-size: 10px;
    font-weight: 750;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.kp-placement-profile div strong {
    color: #263c56;
    font-size: 12.5px;
    overflow-wrap: anywhere;
}
.kp-placement-profile > a {
    grid-column: 1 / -1;
    color: #1458e6;
    font-size: 12px;
    font-weight: 700;
}
.kp-placement-form,
.kp-placement-room-form {
    display: grid;
    gap: 12px;
}
.kp-placement-form-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.kp-placement-form label,
.kp-placement-room-form label {
    display: grid;
    gap: 5px;
    color: #55687e;
    font-size: 11px;
    font-weight: 700;
}
.kp-placement-form input,
.kp-placement-form select,
.kp-placement-form textarea,
.kp-placement-room-form input {
    width: 100%;
    border-color: #ced9e5;
    border-radius: 8px;
    color: #213852;
    background: #fbfdff;
    font-size: 12.5px;
    font-weight: 400;
}
.kp-placement-form textarea { resize: vertical; }
.kp-placement-form > .kp-button,
.kp-placement-room-form > .kp-button {
    justify-self: start;
}
.kp-placement-check {
    display: flex !important;
    grid-template-columns: none;
    align-items: center;
    gap: 8px !important;
}
.kp-placement-check input { width: auto; }
.kp-placement-room-state {
    margin: 0 0 10px;
    color: #596b80;
    font-size: 12.5px;
}
.kp-placement-room-state.is-live strong { color: #168152; }
.kp-placement-room-url {
    width: 100%;
    margin: 0 0 8px;
    border-color: #c9d8e8;
    border-radius: 8px;
    background: #f8fbff;
    color: #31516e;
    font-size: 11px;
}
.kp-placement-docs {
    display: grid;
    gap: 0;
    margin: -4px 0 13px;
}
.kp-placement-docs > div {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 0;
    border-bottom: 1px solid #edf1f5;
}
.kp-placement-docs > div > span { flex: 1; min-width: 0; }
.kp-placement-docs strong,
.kp-placement-docs small { display: block; }
.kp-placement-docs strong { color: #2d435b; font-size: 12px; overflow-wrap: anywhere; }
.kp-placement-docs small { margin-top: 2px; color: #8190a3; font-size: 10px; }
.kp-placement-docs a,
.kp-placement-docs button {
    border: 0;
    color: #1458e6;
    background: none;
    font: inherit;
    font-size: 11px;
    cursor: pointer;
}
.kp-placement-docs form { margin: 0; }
.kp-placement-upload {
    display: grid;
    grid-template-columns: 135px minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    padding-top: 12px;
    border-top: 1px solid #e8edf3;
}
.kp-placement-upload select,
.kp-placement-upload input { min-width: 0; font-size: 11.5px; }
.kp-placement-note-form {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr) auto;
    align-items: start;
    gap: 8px;
}
.kp-placement-note-form textarea { min-width: 0; resize: vertical; }
.kp-placement-timeline {
    display: grid;
    gap: 0;
    margin: 17px 0 0;
    padding: 0;
    list-style: none;
}
.kp-placement-timeline li {
    position: relative;
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: 10px;
    padding: 0 0 16px;
}
.kp-placement-timeline li:not(:last-child)::before {
    content: "";
    position: absolute;
    left: 5px;
    top: 11px;
    bottom: -2px;
    width: 1px;
    background: #d9e4ee;
}
.kp-placement-timeline-dot {
    position: relative;
    z-index: 1;
    width: 11px;
    height: 11px;
    margin-top: 3px;
    border: 3px solid #dceaff;
    border-radius: 50%;
    background: var(--kp-navy);
}
.kp-placement-timeline strong { color: #30465f; font-size: 11.5px; }
.kp-placement-timeline p { margin: 3px 0; color: #52657b; font-size: 12px; line-height: 1.5; }
.kp-placement-timeline small { color: #8a97a8; font-size: 10px; }

@media (max-width: 1050px) {
    .kp-portal .kp-placement-hero { grid-template-columns: 1fr; align-items: start; }
    .kp-portal .kp-placement-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kp-placement-drawer { width: min(780px, 78vw); }
}
@media (max-width: 760px) {
    .kp-portal .kp-placement-hero { min-height: 0; padding: 22px 20px; border-radius: 14px; }
    .kp-portal .kp-placement-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kp-portal .kp-placement-workspace-head { align-items: stretch; flex-direction: column; }
    .kp-portal .kp-placement-add { align-items: stretch; flex-direction: column; }
    .kp-portal .kp-placement-add select { min-width: 0; width: 100%; }
    .kp-portal .kp-placement-table thead { display: none; }
    .kp-portal .kp-placement-table,
    .kp-portal .kp-placement-table tbody,
    .kp-portal .kp-placement-table tr,
    .kp-portal .kp-placement-table td { display: block; width: 100%; }
    .kp-portal .kp-placement-table tr { padding: 11px 14px; border-bottom: 1px solid #e4eaf1; }
    .kp-portal .kp-placement-table td { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 10px; padding: 6px 0; border: 0; }
    .kp-portal .kp-placement-table td::before { content: attr(data-label); color: #8290a2; font-size: 10px; font-weight: 750; text-transform: uppercase; }
    .kp-portal .kp-placement-table td:last-child::before { content: ""; }
    .kp-placement-drawer { width: 94vw; }
    .kp-placement-drawer-head { padding: 18px; }
    .kp-placement-drawer-body { padding: 13px 12px 28px; }
    .kp-placement-form-row,
    .kp-placement-profile { grid-template-columns: 1fr; }
    .kp-placement-profile > a { grid-column: auto; }
    .kp-placement-upload,
    .kp-placement-note-form { grid-template-columns: 1fr; }
}
@media (max-width: 470px) {
    .kp-portal .kp-placement-metrics { grid-template-columns: 1fr; }
    .kp-placement-drawer { width: 100vw; }
}

/* ===== wl159 — login gate: one sign-in method at a time ===== */
.kp-login-split .kp-login-field { display: flex; flex-direction: column; gap: 6px; margin-top: 16px; text-align: left; }
.kp-login-split .kp-login-fieldhead { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; font-size: 13px; font-weight: 600; color: #374151; }
.kp-login-split .kp-login-field input[type="password"] { width: 100%; padding: 11px 12px; border: 1px solid #d1d5db; border-radius: 8px; font-size: 15px; background: #fff; color: #111827; box-sizing: border-box; }
.kp-login-split .kp-login-field input[type="password"]:focus { outline: none; border-color: #10131a; box-shadow: 0 0 0 3px rgba(16, 19, 26, 0.08); }
.kp-login-split .kp-login-forgot { font-size: 12px; font-weight: 500; color: #6b7280; text-decoration: none; }
.kp-login-split .kp-login-forgot:hover { color: #10131a; text-decoration: underline; }
.kp-login-split .kp-login-check { flex-direction: row !important; align-items: center; gap: 10px !important; margin: 18px 0 22px; cursor: pointer; }
.kp-login-split .kp-login-check input[type="checkbox"] { appearance: none; -webkit-appearance: none; width: 18px; height: 18px; margin: 0; flex: 0 0 auto; border: 1.5px solid #cbd5e1; border-radius: 5px; background: #fff; display: grid; place-content: center; cursor: pointer; transition: background .15s ease, border-color .15s ease; }
.kp-login-split .kp-login-check input[type="checkbox"]:checked { background: #10131a; border-color: #10131a; }
.kp-login-split .kp-login-check input[type="checkbox"]:checked::after { content: ""; width: 10px; height: 5px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(-45deg) translate(1px, -2px); }
.kp-login-split .kp-login-check input[type="checkbox"]:focus-visible { outline: 2px solid #10131a; outline-offset: 2px; }
.kp-login-split .kp-login-hint { margin: 10px 0 0; font-size: 13px; line-height: 1.5; color: #6b7280; text-align: left; }
.kp-login-split .kp-login-alt { margin: 22px 0 0; font-size: 13.5px; color: #6b7280; }
.kp-login-split .kp-login-swap { color: #374151; text-decoration: none; border-bottom: 1px solid rgba(55, 65, 81, 0.28); padding-bottom: 1px; }
.kp-login-split .kp-login-swap:hover { color: #10131a; border-bottom-color: #10131a; }
.kp-login-split .kp-login-alt-sep { margin: 0 8px; color: #cbd5e1; }
.kp-login-legal { margin: 12px 0 0; color: #8490a6; font-size: 12.5px; text-align: center; }
.kp-login-legal a { color: #66748f; text-decoration: none; }
.kp-login-legal a:hover, .kp-login-legal a:focus-visible { color: #164dce; text-decoration: underline; }
.kp-reg-consent a { color: #164dce; }
.kp-portal-legal { padding: 20px 10px 4px; color: #8290a8; font-size: 12.5px; text-align: center; line-height: 1.5; }
.kp-portal-legal a, .kp-gs-terms a, .kp-subscription-terms a { color: #174fc6; }
.kp-gs-terms { margin: 12px 0 6px; color: #69768d; font-size: 12.5px; line-height: 1.55; }
.kp-subscription-terms p { line-height: 1.65; }

@media (max-width: 640px) {
  .kp-login-legal a { min-height: 44px; padding: 0 10px; display: inline-flex; align-items: center; }
  .kp-portal-legal { padding-bottom: 76px; white-space: normal; }
  .kp-portal-legal a { min-height: 44px; display: inline-flex; align-items: center; }
}
.kp-login-split .cf-turnstile { display: flex; justify-content: center; }

/* ===== wl163 — glossary: the words, explained once, for both sides ===== */
.kp-resource-tabs { display: flex; gap: 4px; margin: 0 0 18px; padding: 4px; border: 1px solid var(--kp-border); border-radius: 12px; background: var(--kp-white); width: fit-content; max-width: 100%; overflow-x: auto; }
.kp-resource-tabs a { display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; border-radius: 8px; font-size: 14px; font-weight: 600; color: var(--kp-slate); text-decoration: none; white-space: nowrap; transition: background .15s ease, color .15s ease; }
.kp-resource-tabs a:hover { background: var(--kp-blue-soft); color: var(--kp-blue-dark); }
.kp-resource-tabs a[aria-current="page"] { background: var(--kp-navy); color: var(--kp-white); }
.kp-resource-tabs a[aria-current="page"]:hover { background: var(--kp-navy); color: var(--kp-white); }
.kp-resources-back { margin: -4px 0 10px; }
.kp-resources-back a { display: inline-flex; align-items: center; gap: 6px; color: var(--kp-blue-dark); font-size: 13px; font-weight: 700; text-decoration: none; }
.kp-resources-back a:hover { text-decoration: underline; }
.kp-resource-faqs { max-width: 980px; }
.kp-resource-faq-list { display: grid; gap: 10px; }
.kp-resource-faq-item { border: 1px solid var(--kp-border); border-radius: 12px; background: var(--kp-white); overflow: hidden; }
.kp-resource-faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px 18px; cursor: pointer; list-style: none; }
.kp-resource-faq-item summary::-webkit-details-marker { display: none; }
.kp-resource-faq-item summary span { color: var(--kp-navy); font-weight: 750; }
.kp-resource-faq-item summary small { color: var(--kp-muted); font-size: 12px; font-weight: 700; white-space: nowrap; }
.kp-resource-faq-item summary::after { content: '+'; color: var(--kp-blue-dark); font-size: 22px; line-height: 1; }
.kp-resource-faq-item[open] summary::after { content: '\2212'; }
.kp-resource-faq-item > div { padding: 0 18px 16px; color: var(--kp-slate); }
.kp-resource-faq-item > div p { margin: 0; line-height: 1.65; }
@media (max-width: 640px) {
    .kp-resource-faq-item summary { align-items: flex-start; flex-wrap: wrap; gap: 6px 14px; }
    .kp-resource-faq-item summary small { width: calc(100% - 32px); white-space: normal; }
}

.kp-glossary { display: block; }
.kp-glossary-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px; padding-bottom: 18px; border-bottom: 1px solid var(--kp-border); }
.kp-glossary-head-copy h2 { margin: 0 0 6px; font-size: 20px; line-height: 1.25; color: var(--kp-navy); }
.kp-glossary-head-copy p { margin: 0; max-width: 62ch; font-size: 13.5px; line-height: 1.55; color: var(--kp-muted); }
.kp-glossary-search { position: relative; display: flex; align-items: center; flex: 0 1 340px; min-width: 240px; }
.kp-glossary-search svg { position: absolute; left: 12px; width: 17px; height: 17px; color: var(--kp-muted); pointer-events: none; }
/* The shared input rule resets padding, which put the magnifier on top of the
   placeholder. Right padding keeps typed text clear of the count. */
.kp-glossary .kp-glossary-search input[type="search"] { width: 100%; padding: 10px 78px 10px 37px; border: 1px solid var(--kp-border); border-radius: 9px; background: var(--kp-white); font-size: 14px; color: var(--kp-navy); box-sizing: border-box; -webkit-appearance: none; appearance: none; }
.kp-glossary-search input:focus { outline: none; border-color: var(--kp-blue); box-shadow: 0 0 0 3px rgba(20, 44, 79, .14); }
.kp-glossary-search input::-webkit-search-cancel-button { -webkit-appearance: none; }
.kp-glossary-count { position: absolute; right: 12px; font-size: 11.5px; font-weight: 600; letter-spacing: .02em; color: var(--kp-muted); pointer-events: none; }
.kp-glossary-search input:focus ~ .kp-glossary-count { opacity: 0; }

.kp-glossary-alpha { display: flex; flex-wrap: wrap; gap: 2px; margin: 16px 0 4px; }
.kp-glossary-alpha a,
.kp-glossary-alpha span { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 6px; font-size: 12px; font-weight: 700; text-decoration: none; }
.kp-glossary-alpha a { color: var(--kp-blue-dark); background: var(--kp-blue-soft); }
.kp-glossary-alpha a:hover { color: var(--kp-white); background: var(--kp-blue); }
.kp-glossary-alpha span { color: #C3CEDB; }

.kp-glossary-empty { margin: 28px 0 0; font-size: 14px; color: var(--kp-muted); }

.kp-glossary-group { margin-top: 26px; }
.kp-glossary-group-head { display: flex; align-items: baseline; gap: 10px; margin-bottom: 12px; }
.kp-glossary-group-head h3 { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--kp-gold); }
.kp-glossary-group-head span { font-size: 11.5px; font-weight: 600; color: var(--kp-muted); }
.kp-glossary-group-head::after { content: ""; flex: 1; height: 1px; background: var(--kp-border); }

.kp-glossary-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; }
.kp-glossary-item { position: relative; padding: 15px 16px; border: 1px solid var(--kp-border); border-radius: 11px; background: var(--kp-white); scroll-margin-top: 90px; }
.kp-glossary-item:target { border-color: var(--kp-blue); box-shadow: 0 0 0 3px rgba(20, 44, 79, .14); }
/* The shared h4 rule uppercases; a term is a name, not a section label. Scoped
   two levels deep so this wins on specificity rather than with !important. */
.kp-glossary .kp-glossary-item h4 { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 0 0 7px; font-size: 15px; font-weight: 600; line-height: 1.3; letter-spacing: -0.01em; text-transform: none; color: var(--kp-navy); }
.kp-glossary-abbr { display: inline-flex; align-items: center; padding: 2px 7px; border-radius: 5px; background: var(--kp-blue-soft); font-size: 11px; font-weight: 700; letter-spacing: .03em; color: var(--kp-blue-dark); }
.kp-glossary-item p { margin: 0; font-size: 13.5px; line-height: 1.6; color: var(--kp-slate); }
.kp-glossary-also { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 11px; padding-top: 10px; border-top: 1px dashed var(--kp-border); }
.kp-glossary-also > span { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--kp-muted); }
.kp-glossary-also a { padding: 2px 8px; border: 1px solid var(--kp-border); border-radius: 20px; font-size: 12px; color: var(--kp-slate); text-decoration: none; }
.kp-glossary-also a:hover { border-color: var(--kp-blue); color: var(--kp-blue-dark); background: var(--kp-blue-soft); }
.kp-glossary-anchor { position: absolute; top: -80px; left: 0; width: 1px; height: 1px; }

/* Inline term markers — a term anywhere in the product, explained in place. */
.kp-term { border-bottom: 1px dotted currentColor; cursor: help; }
.kp-term:hover,
.kp-term:focus-visible { color: var(--kp-blue-dark); border-bottom-style: solid; outline: none; }
.kp-term-pop { box-sizing: border-box; position: absolute; z-index: 2400; width: min(320px, calc(100vw - 32px)); padding: 13px 15px; border: 1px solid var(--kp-border); border-radius: 11px; background: var(--kp-white); box-shadow: 0 14px 38px rgba(26, 44, 68, .18); font-size: 13px; line-height: 1.55; color: var(--kp-slate); }
.kp-term-pop strong { display: block; margin-bottom: 5px; font-size: 13.5px; color: var(--kp-navy); }
.kp-term-pop > span { display: block; }
.kp-term-pop a { display: inline-block; margin-top: 9px; font-size: 12px; font-weight: 600; color: var(--kp-blue-dark); text-decoration: none; }
.kp-term-pop a:hover { text-decoration: underline; }

@media (max-width: 640px) {
    .kp-glossary-head { align-items: stretch; }
    .kp-glossary-search { flex: 1 1 100%; }
    .kp-glossary-list { grid-template-columns: 1fr; }
}

/* ===== wl166 — scanned-form diagnosis: show the operator what was found ===== */
.kp-ffscan { margin-top: 4px; }
.kp-ffscan-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 14px; border: 1px solid var(--kp-border); border-radius: 10px 10px 0 0; border-bottom: none; background: var(--kp-blue-soft); }
.kp-ffscan-head strong { font-size: 13.5px; color: var(--kp-navy); }
.kp-ffscan-pages { display: flex; flex-wrap: wrap; gap: 4px; }
.kp-ffscan-pages a { padding: 4px 10px; border: 1px solid var(--kp-border); border-radius: 20px; background: var(--kp-white); font-size: 12px; font-weight: 600; color: var(--kp-slate); text-decoration: none; }
.kp-ffscan-pages a:hover { border-color: var(--kp-blue); color: var(--kp-blue-dark); }
.kp-ffscan-pages a[aria-current="page"] { border-color: var(--kp-navy); background: var(--kp-navy); color: var(--kp-white); }
.kp-ffscan-page { display: block; width: 100%; height: auto; border: 1px solid var(--kp-border); border-radius: 0 0 10px 10px; background: var(--kp-white); }
.kp-ffscan .kp-console-meta { margin-top: 10px; }
.kp-ffscan-warn { margin: 0; padding: 10px 14px; border-left: 3px solid var(--kp-warning); background: #FDF6E7; font-size: 13px; line-height: 1.55; color: #6B4E12; }

/* ===== wl180 — the board: one column per stage, one section per arc ===== */
/* Toolbar: Board | List, and the card-fields popover. */
.kp-portal .kp-acq-layout-toggle { display: inline-flex; align-self: flex-end; padding: 3px; border: 1px solid #dce5ee; border-radius: 9px; background: #f4f7fb; }
.kp-portal .kp-acq-layout-toggle a { display: inline-flex; align-items: center; gap: 6px; padding: 6px 11px; border-radius: 7px; font-size: 12.5px; font-weight: 600; color: #5a6478; text-decoration: none; box-shadow: none; line-height: 1; }
.kp-portal .kp-acq-layout-toggle a svg { width: 13px; height: 13px; fill: currentColor; opacity: .8; }
.kp-portal .kp-acq-layout-toggle a:hover { color: #17233c; }
.kp-portal .kp-acq-layout-toggle a.is-on { background: #fff; color: #17233c; box-shadow: 0 1px 2px rgba(20, 47, 76, .12); }
.kp-portal .kp-acq-filters.is-board .kp-acq-filter-search { flex-basis: 200px; }
.kp-portal .kp-acq-filter[hidden] { display: none; }
.kp-portal .kp-acq-cardfields { position: relative; align-self: flex-end; }
.kp-portal .kp-acq-cardfields-pop { position: absolute; top: calc(100% + 6px); left: 0; z-index: 60; min-width: 190px; padding: 10px 12px; display: grid; gap: 6px; background: #fff; border: 1px solid #dce5ee; border-radius: 10px; box-shadow: 0 14px 38px rgba(26, 44, 68, .16); }
.kp-portal .kp-acq-cardfields-pop[hidden] { display: none; }
.kp-portal .kp-acq-cardfields-pop label { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: #17233c; cursor: pointer; white-space: nowrap; }
.kp-portal .kp-acq-cardfields-pop input { margin: 0; accent-color: var(--kp-direct-accent, var(--kp-navy)); }

/* Board surface. */
.kp-portal .kp-acq-list-workspace.is-board { background: #f7f9fc; }
.kp-portal .kp-bd { position: relative; display: grid; gap: 6px; padding: 8px 0 14px; }
.kp-portal .kp-bd-section { display: grid; gap: 0; }
.kp-portal .kp-bd-section-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 18px 6px; }
.kp-portal .kp-bd-section-toggle { appearance: none; display: inline-flex; align-items: baseline; gap: 10px; padding: 0; border: 0; background: transparent; font: inherit; color: #17233c; cursor: pointer; text-align: left; min-width: 0; }
.kp-portal .kp-bd-section-chev { align-self: center; width: 0; height: 0; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 6px solid #7a8496; transition: transform .15s ease; }
.kp-portal .kp-bd-section.is-collapsed .kp-bd-section-chev { transform: rotate(-90deg); }
.kp-portal .kp-bd-section-title { font-size: 15px; font-weight: 700; letter-spacing: -.01em; }
.kp-portal .kp-bd-section-sub { font-size: 12px; color: #7a8496; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kp-portal .kp-bd-section-count { flex: 0 0 auto; font-size: 12px; color: #7a8496; }
.kp-portal .kp-bd-section.is-collapsed .kp-bd-lane { display: none; }
.kp-portal .kp-bd-section { position: relative; }
.kp-portal .kp-bd-section.has-more::after { content: ""; position: absolute; top: 44px; right: 0; bottom: 16px; width: 48px; pointer-events: none; background: linear-gradient(90deg, rgba(247, 249, 252, 0) 0%, rgba(247, 249, 252, .95) 100%); border-radius: 0 12px 12px 0; }
.kp-portal .kp-bd-section.is-collapsed.has-more::after { display: none; }

/* Lanes scroll sideways; the page never does. */
.kp-portal .kp-bd-lane { display: flex; align-items: flex-start; gap: 12px; padding: 4px 18px 16px; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; }
.kp-portal .kp-bd-col { flex: 1 1 268px; min-width: 268px; max-width: 380px; display: flex; flex-direction: column; min-height: 160px; border-radius: 12px; background: #eef2f7; border: 1px solid transparent; }
.kp-portal .kp-bd-col-head { display: flex; align-items: center; gap: 7px; padding: 10px 12px 6px; }
.kp-portal .kp-bd-col-kind { flex: 0 0 8px; width: 8px; height: 8px; border-radius: 50%; background: #9fb0c6; }
.kp-portal .kp-bd-col[data-kind="targets"] .kp-bd-col-kind { background: #6f86a8; }
.kp-portal .kp-bd-col[data-kind="open"] .kp-bd-col-kind { background: var(--kp-direct-accent, var(--kp-navy)); }
.kp-portal .kp-bd-col[data-kind="closed"] .kp-bd-col-kind { background: #1698a5; }
.kp-portal .kp-bd-col[data-kind="exited"] .kp-bd-col-kind { background: #1a2c44; }
.kp-portal .kp-bd-col[data-kind="passed"] .kp-bd-col-kind,
.kp-portal .kp-bd-col-tray .kp-bd-col-kind { background: #c3ccd9; }
.kp-portal .kp-bd-col-title { flex: 1 1 auto; margin: 0; font-size: 11.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #3d526b; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kp-portal .kp-bd-col-count { flex: 0 0 auto; min-width: 20px; padding: 1px 7px; border-radius: 20px; background: #fff; font-size: 11px; font-weight: 700; color: #3d526b; text-align: center; }
.kp-portal .kp-bd-col-total { flex: 0 0 auto; font-size: 11px; font-weight: 600; color: #7a8496; font-variant-numeric: tabular-nums; }
.kp-portal .kp-bd-col-body { display: grid; gap: 8px; padding: 2px 8px 8px; min-height: 96px; border-radius: 0 0 12px 12px; transition: background-color .12s ease; }
.kp-portal .kp-bd-col-empty { display: none; margin: 0; padding: 14px 0; border: 1px dashed #c3ccd9; border-radius: 9px; font-size: 12px; color: #9aa5b8; text-align: center; }
.kp-portal .kp-bd-col-body:empty ~ .kp-bd-col-empty,
.kp-portal .kp-bd-col-body > .kp-bd-col-empty:only-child { display: block; }
.kp-portal .kp-bd-col.is-over { border-color: var(--kp-direct-accent, var(--kp-navy)); background: #e9efff; }
.kp-portal .kp-bd-col.is-over .kp-bd-col-empty { display: block; border-color: var(--kp-direct-accent, var(--kp-navy)); color: var(--kp-direct-accent, var(--kp-navy)); }
.kp-portal .kp-bd-col-orphan { background: #fbf1e6; }
.kp-portal .kp-bd-col-orphan .kp-bd-col-kind { background: #c46d09; }
.kp-portal .kp-bd-tray .kp-bd-section-head { padding-top: 6px; }
.kp-portal .kp-bd-tray .kp-bd-col { background: #f3f5f9; border: 1px dashed #d5dcea; }
.kp-portal .kp-bd-tray .kp-bd-card { opacity: .82; }

/* Cards. */
.kp-portal .kp-bd-card { position: relative; display: grid; gap: 6px; padding: 10px 10px 9px; background: #fff; border: 1px solid #e1e8f0; border-radius: 10px; box-shadow: 0 1px 2px rgba(20, 47, 76, .06); cursor: grab; transition: box-shadow .15s ease, transform .15s ease, border-color .15s ease; }
.kp-portal .kp-bd-card:hover { border-color: #c9d6e6; box-shadow: 0 8px 20px rgba(20, 47, 76, .1); }
.kp-portal .kp-bd-card:focus-visible { outline: none; border-color: var(--kp-direct-accent, var(--kp-navy)); box-shadow: 0 0 0 3px rgba(20, 44, 79, .16); }
.kp-portal .kp-bd-card.is-dragging { opacity: .45; cursor: grabbing; transform: rotate(-1deg); }
.kp-portal .kp-bd-card.is-focus { border-color: var(--kp-direct-accent, var(--kp-navy)); }
.kp-portal .kp-bd-card.is-landed { animation: kp-bd-land 1.6s ease-out 1; }
@keyframes kp-bd-land { 0% { box-shadow: 0 0 0 0 rgba(20, 44, 79, .45); } 100% { box-shadow: 0 0 0 10px rgba(20, 44, 79, 0); } }
.kp-portal .kp-bd-card.is-done .kp-bd-title { color: #5a6478; }
.kp-portal .kp-bd-card-top { display: grid; grid-template-columns: 44px minmax(0, 1fr) 24px; gap: 9px; align-items: start; }
.kp-portal .kp-bd-thumb { display: block; width: 44px; height: 36px; border-radius: 6px; overflow: hidden; background: #eef1f7; box-shadow: none; }
.kp-portal .kp-bd-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; pointer-events: none; }
.kp-portal .kp-bd-thumb.is-empty { display: flex; align-items: center; justify-content: center; border: 1px dashed #d5dcea; background: #f7f9fc; }
.kp-portal .kp-bd-thumb svg { width: 16px; height: 16px; fill: #b3bccd; }
.kp-portal .kp-bd-card-main { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.kp-portal .kp-bd-title { font-size: 13.5px; font-weight: 700; line-height: 1.25; color: #17233c; text-decoration: none; box-shadow: none; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.kp-portal .kp-bd-title:hover { color: var(--kp-direct-accent, var(--kp-navy)); }
.kp-portal .kp-bd-addr { font-size: 11.5px; color: #5a6478; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kp-portal .kp-bd-move { appearance: none; width: 24px; height: 24px; padding: 0; border: 1px solid transparent; border-radius: 6px; background: transparent; color: #7a8496; cursor: pointer; opacity: 0; transition: opacity .12s ease; display: inline-flex; align-items: center; justify-content: center; }
.kp-portal .kp-bd-move svg { width: 14px; height: 14px; fill: currentColor; }
.kp-portal .kp-bd-card:hover .kp-bd-move,
.kp-portal .kp-bd-card:focus-within .kp-bd-move,
.kp-portal .kp-bd-move:focus-visible,
.kp-portal .kp-bd-move[aria-expanded="true"] { opacity: 1; }
.kp-portal .kp-bd-move:hover,
.kp-portal .kp-bd-move[aria-expanded="true"] { border-color: #dce5ee; background: #f4f7fb; color: #17233c; }
.kp-portal .kp-bd-meta { font-size: 11.5px; color: #5a6478; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kp-portal .kp-bd-money { display: flex; flex-direction: column; gap: 1px; }
.kp-portal .kp-bd-ask { font-size: 13px; font-weight: 700; color: #17233c; font-variant-numeric: tabular-nums; }
.kp-portal .kp-bd-uw { font-size: 11px; color: #5a6478; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kp-portal .kp-bd-flags { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.kp-portal .kp-bd-flags:empty { display: none; }
.kp-portal .kp-bd-flags .kp-badge { font-size: 10.5px; padding: 2px 7px; }
.kp-portal .kp-bd-ws { display: inline-flex; align-items: center; gap: 5px; padding: 2px 7px; border-radius: 20px; background: #e9efff; font-size: 10.5px; font-weight: 700; color: #2a55c9; }
.kp-portal .kp-bd-ws > span { width: 6px; height: 6px; border-radius: 50%; background: var(--kp-direct-accent, var(--kp-navy)); }
.kp-portal .kp-bd-deadline { padding: 2px 7px; border-radius: 20px; background: #f1f4f9; font-size: 10.5px; font-weight: 600; color: #3d526b; }
.kp-portal .kp-bd-deadline.is-soon { background: #fdf3e2; color: #8a5a0b; }
.kp-portal .kp-bd-deadline.is-over { background: #fbe7e6; color: #9f3a38; }
.kp-portal .kp-bd-updated { margin-left: auto; font-size: 10.5px; color: #9aa5b8; white-space: nowrap; }
.kp-portal .kp-bd-money:empty { display: none; }

/* Card-field visibility, driven by data-kp-bd-hide on the board root. */
.kp-portal .kp-bd[data-kp-bd-hide~="ask"] [data-kp-bd-f="ask"],
.kp-portal .kp-bd[data-kp-bd-hide~="uw"] [data-kp-bd-f="uw"],
.kp-portal .kp-bd[data-kp-bd-hide~="type"] [data-kp-bd-f="type"],
.kp-portal .kp-bd[data-kp-bd-hide~="source"] [data-kp-bd-f="source"],
.kp-portal .kp-bd[data-kp-bd-hide~="deadline"] [data-kp-bd-f="deadline"],
.kp-portal .kp-bd[data-kp-bd-hide~="updated"] [data-kp-bd-f="updated"] { display: none !important; }

/* "Move to…" menu. */
.kp-portal .kp-bd-menu { position: fixed; z-index: 2500; min-width: 230px; max-width: calc(100vw - 16px); max-height: calc(100dvh - 16px); overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; padding: 6px; background: #fff; border: 1px solid #dce5ee; border-radius: 10px; box-shadow: 0 14px 38px rgba(26, 44, 68, .18); }
.kp-portal .kp-bd-menu-group { padding: 6px 10px 3px; font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #9aa5b8; }
.kp-portal .kp-bd-menu button { appearance: none; display: flex; align-items: center; gap: 8px; width: 100%; padding: 7px 10px; border: 0; border-radius: 7px; background: transparent; font: inherit; font-size: 13px; color: #17233c; text-align: left; cursor: pointer; }
.kp-portal .kp-bd-menu button:hover,
.kp-portal .kp-bd-menu button:focus-visible { background: #f1f4f9; outline: none; }
.kp-portal .kp-bd-menu button[aria-current="true"] { color: #9aa5b8; cursor: default; }
.kp-portal .kp-bd-menu button > i { width: 8px; height: 8px; border-radius: 50%; background: #9fb0c6; flex: 0 0 auto; }
.kp-portal .kp-bd-menu button[data-kind="targets"] > i { background: #6f86a8; }
.kp-portal .kp-bd-menu button[data-kind="open"] > i { background: var(--kp-direct-accent, var(--kp-navy)); }
.kp-portal .kp-bd-menu button[data-kind="closed"] > i { background: #1698a5; }
.kp-portal .kp-bd-menu button[data-kind="exited"] > i { background: #1a2c44; }
.kp-portal .kp-bd-menu button[data-kind="passed"] > i { background: #c3ccd9; }
.kp-portal .kp-bd-menu-divider { height: 1px; margin: 5px -6px; background: #e3e8ef; }
.kp-portal .kp-bd-menu button.is-muted { color: #929bab; cursor: default; }
.kp-portal .kp-bd-menu button.is-danger { color: #dc2626; }
.kp-portal .kp-bd-menu button.is-back { color: #5c6678; font-weight: 600; }
.kp-portal .kp-bd-dlg-tasklist li.has-guide { cursor: pointer; }
.kp-portal .kp-bd-dlg-tasklist li.has-guide > span::after { content: "i"; display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; margin-left: 7px; border: 1px solid #aeb9c8; border-radius: 50%; color: #667085; font-size: 10px; font-weight: 700; }
.kp-portal .kp-bd-dlg-tasklist li.has-guide:hover,
.kp-portal .kp-bd-dlg-tasklist li.has-guide:focus { background: #f7f9fc; outline: none; }
.kp-portal .kp-bd-dlg-guide { margin-top: 10px; padding: 12px 14px; border: 1px solid #dce5ee; border-radius: 8px; background: #f8fafc; color: #344054; }
.kp-portal .kp-bd-dlg-guide strong { display: block; margin-bottom: 5px; color: #17233c; font-size: 13px; }
.kp-portal .kp-bd-dlg-guide p { margin: 4px 0; font-size: 12.5px; line-height: 1.45; }
.kp-portal .kp-bd-dlg-guide-tip { color: #667085; }
.kp-portal .kp-bd-dlg-guide .kp-button { margin-top: 8px; text-decoration: none; }
.kp-portal .kp-thumb-card.is-focus { outline: 2px solid var(--kp-direct-accent, var(--kp-navy)); outline-offset: 4px; border-radius: 8px; }

/* Transition dialog. */
.kp-portal .kp-bd-dlg-backdrop { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(10, 21, 48, .45); }
.kp-portal .kp-bd-dlg-backdrop[hidden] { display: none; }
.kp-portal .kp-bd-dlg { display: flex; flex-direction: column; width: min(520px, 100%); max-height: calc(100dvh - 40px); overflow: hidden; background: #fff; border: 1px solid #d9dee7; border-radius: 12px; box-shadow: 0 24px 60px rgba(10, 21, 48, .28); }
.kp-portal .kp-bd-dlg-head { display: flex; align-items: center; justify-content: space-between; min-height: 52px; padding: 0 20px; border-bottom: 1px solid #e2e6ed; font-size: 13px; color: #171b24; }
.kp-portal .kp-bd-dlg-close { border: 0; padding: 4px; background: transparent; font-size: 21px; line-height: 1; color: #929baa; cursor: pointer; }
.kp-portal .kp-bd-dlg-body { display: flex; flex: 1 1 auto; flex-direction: column; min-height: 0; overflow: hidden; padding: 16px 20px 18px; }
.kp-portal .kp-bd-dlg-title { margin: 0 0 14px; padding: 13px; border-radius: 7px; background: #eef2ff; font-size: 13px; line-height: 1.35; color: #171b24; }
.kp-portal .kp-bd-dlg-title p { margin: 0 0 5px; }
.kp-portal .kp-bd-dlg-badges { display: flex; align-items: center; gap: 8px; }
.kp-portal .kp-bd-dlg-title b { display: inline-flex; align-items: center; min-height: 26px; padding: 3px 12px; border: 1px solid #aac2ff; border-radius: 4px; background: #f4f7ff; font-size: 11px; font-weight: 500; color: #174397; }
.kp-portal .kp-bd-dlg-note { margin: 0 0 10px; padding: 9px 12px; border-left: 3px solid var(--kp-direct-accent, var(--kp-navy)); border-radius: 0 8px 8px 0; background: #eef2fe; font-size: 13px; line-height: 1.5; color: #2a3f6b; }
.kp-portal .kp-bd-dlg-note[hidden] { display: none; }
.kp-portal .kp-bd-dlg-done { border-left-color: #7a8496; background: #f1f4f9; color: #3d526b; }
.kp-portal .kp-bd-dlg-tasks { display: flex; flex: 1 1 auto; flex-direction: column; min-height: 0; margin: 0; }
.kp-portal .kp-bd-dlg-check { display: flex; align-items: center; gap: 9px; margin: 0 0 12px; font-size: 13px; font-weight: 500; color: #171b24; }
.kp-portal .kp-bd-dlg-check input { width: 16px; height: 16px; margin: 0; accent-color: #1267e8; }
.kp-portal .kp-bd-dlg-tasklist { flex: 1 1 auto; list-style: none; min-height: 0; max-height: 210px; overflow-y: auto; overscroll-behavior: contain; margin: 0; padding: 0; border: 1px solid #dbe1ea; border-radius: 6px; }
.kp-portal .kp-bd-dlg-tasklist:empty { display: none; }
.kp-portal .kp-bd-dlg-tasklist li { display: flex; align-items: center; gap: 10px; min-height: 36px; padding: 7px 12px; border-bottom: 1px solid #e2e6ed; font-size: 12.5px; color: #202633; }
.kp-portal .kp-bd-dlg-tasklist li:last-child { border-bottom: 0; }
.kp-portal .kp-bd-dlg-tasklist li > span:first-child { flex: 1 1 auto; }
.kp-portal .kp-bd-dlg-tasklist li small { font-size: 11px; color: #7a8496; white-space: nowrap; }
.kp-portal .kp-bd-dlg-tasklist li em { font-style: normal; padding: 1px 6px; border-radius: 20px; background: #e9efff; font-size: 10.5px; font-weight: 700; color: #2a55c9; }
.kp-portal .kp-bd-dlg-tasks-none { margin: 4px 0 14px; font-size: 12.5px; font-style: italic; line-height: 1.5; color: #687386; }
.kp-portal .kp-bd-dlg-tasks-none[hidden] { display: none; }
.kp-portal .kp-bd-dlg-assign { display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; padding: 0 0 14px; border-bottom: 1px solid #e2e6ed; font-size: 12px; color: #5f697a; }
.kp-portal .kp-bd-dlg-edit { color: #1267e8; }
.kp-portal .kp-bd-dlg-form { flex: 0 0 auto; }
.kp-portal .kp-bd-dlg-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; margin-top: 8px; }
.kp-portal .kp-bd-dlg-actions [hidden] { display: none; }

@media (max-height: 560px) {
    .kp-portal .kp-bd-dlg-backdrop { padding: 8px; }
    .kp-portal .kp-bd-dlg { max-height: calc(100dvh - 16px); }
    .kp-portal .kp-bd-dlg-head { min-height: 44px; }
    .kp-portal .kp-bd-dlg-body { padding: 10px 16px 12px; }
    .kp-portal .kp-bd-dlg-title { margin-bottom: 9px; padding: 9px 11px; }
    .kp-portal .kp-bd-dlg-check { margin-bottom: 8px; }
    .kp-portal .kp-bd-dlg-assign { margin-top: 8px; padding-bottom: 9px; }
}

@media (max-width: 430px) {
    .kp-portal .kp-bd-dlg-backdrop { padding: 8px; }
    .kp-portal .kp-bd-dlg-actions .kp-button { flex: 1 1 auto; }
    .kp-portal .kp-bd-dlg-actions .kp-button-primary { flex-basis: 100%; }
}

@media (max-width: 900px) {
    .kp-portal .kp-bd-lane { padding-left: 12px; padding-right: 12px; }
    .kp-portal .kp-bd-col { flex-basis: 236px; min-width: 236px; }
    .kp-portal .kp-bd-section-head { padding-left: 12px; padding-right: 12px; }
    .kp-portal .kp-bd-section-sub { display: none; }
    .kp-portal .kp-bd-move { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
    .kp-portal .kp-bd-card,
    .kp-portal .kp-bd-section-chev { transition: none; }
    .kp-portal .kp-bd-card.is-landed { animation: none; }
}

/* ===== wl181 final overrides — compact tabbed pipeline ===== */
.kp-portal .kp-main.kp-direct-tool-acquisitions .kp-page-header.kp-acq-board-header { min-height: 0; padding: 16px 22px; margin-bottom: 10px; border: 1px solid #dde3eb; border-radius: 10px; background: #fff; box-shadow: none; }
.kp-portal .kp-main.kp-direct-tool-acquisitions .kp-page-header.kp-acq-board-header::before,
.kp-portal .kp-main.kp-direct-tool-acquisitions .kp-page-header.kp-acq-board-header::after { display: none; }
.kp-portal .kp-page-header.kp-acq-board-header { min-height: 0; padding: 16px 22px; border: 1px solid #dde3eb; border-radius: 10px; background: #fff; box-shadow: none; }
.kp-portal .kp-page-header.kp-acq-board-header::before,
.kp-portal .kp-page-header.kp-acq-board-header::after { display: none; }
.kp-portal .kp-acq-board-header { align-items: center; margin-bottom: 10px; }
.kp-portal .kp-acq-board-header .kp-eyebrow,
.kp-portal .kp-acq-board-header .kp-console-meta,
.kp-portal .kp-acq-board-header .kp-record-back { display: none; }
.kp-portal .kp-acq-board-header h1 { display: flex; align-items: baseline; gap: 12px; margin: 0; font-size: 25px; letter-spacing: -.035em; }
.kp-portal .kp-acq-board-summary { font-size: 12px; font-weight: 500; letter-spacing: 0; color: #7a8496; }
.kp-portal .kp-acq-board-header .kp-acq-newbar { margin: 0; }
.kp-portal .kp-acq-list-workspace.is-board { background: #fff; border-color: #dde3eb; border-radius: 10px; box-shadow: none; }
.kp-portal .kp-acq-list-workspace.is-board > .kp-acq-filters { align-items: center; gap: 8px 10px; padding: 9px 10px; background: #fff; }
.kp-portal .kp-acq-filters.is-board .kp-acq-layout-toggle { order: 30; margin-left: auto; align-self: center; }
.kp-portal .kp-acq-filters.is-board .kp-acq-filter-count { order: 29; margin-left: 0; }
.kp-portal .kp-acq-filters.is-board .kp-acq-cardfields { align-self: center; }
.kp-portal .kp-acq-filters.is-board .kp-acq-filter-search { flex: 1 1 190px; max-width: 320px; }
.kp-portal .kp-acq-filters.is-board .kp-acq-filter > span:not(.screen-reader-text) { font-size: 10px; }
.kp-portal .kp-acq-filters.is-board .kp-acq-filter select,
.kp-portal .kp-acq-filters.is-board .kp-acq-filter input[type="search"] { min-height: 34px; padding: 7px 9px; }
.kp-portal .kp-bd { display: block; padding: 0 0 10px; background: #fff; }
.kp-portal .kp-bd-tabs { display: flex; align-items: flex-end; gap: 2px; min-height: 50px; padding: 0 14px; overflow-x: auto; border-bottom: 1px solid #dde3eb; background: #fff; }
.kp-portal .kp-bd-tab { position: relative; appearance: none; display: inline-flex; align-items: center; gap: 7px; min-height: 50px; padding: 4px 14px 2px; border: 0; background: transparent; color: #687386; font: inherit; font-size: 13px; font-weight: 500; white-space: nowrap; cursor: pointer; }
.kp-portal .kp-bd-tab::after { content: ""; position: absolute; left: 4px; right: 4px; bottom: -1px; height: 2px; border-radius: 2px 2px 0 0; background: transparent; }
.kp-portal .kp-bd-tab:hover { color: #17233c; }
.kp-portal .kp-bd-tab:focus-visible { outline: 2px solid var(--kp-direct-accent, var(--kp-navy)); outline-offset: -4px; border-radius: 6px; }
.kp-portal .kp-bd-tab.is-active { color: #101828; font-weight: 700; }
.kp-portal .kp-bd-tab.is-active::after { background: #101828; }
.kp-portal .kp-bd-tab-count { font-size: 11px; font-weight: 500; color: #98a2b3; }
.kp-portal .kp-bd-panel[hidden] { display: none; }
.kp-portal .kp-bd-panel { position: relative; padding-top: 14px; }
.kp-portal .kp-bd-panel.has-more::after { top: 14px; bottom: 12px; background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, .96)); }
.kp-portal .kp-bd-panel .kp-bd-lane { align-items: stretch; gap: 14px; padding: 0 14px 12px; }
.kp-portal .kp-bd-panel .kp-bd-col { flex: 1 0 214px; min-width: 214px; max-width: none; min-height: clamp(500px, calc(100vh - 325px), 760px); border: 0; border-radius: 0; background: transparent; }
.kp-portal .kp-bd-panel .kp-bd-col-head { min-height: 28px; gap: 7px; padding: 0 2px 8px; }
.kp-portal .kp-bd-panel .kp-bd-col-kind { display: none; }
.kp-portal .kp-bd-panel .kp-bd-col-title { font-size: 11.5px; font-weight: 500; letter-spacing: 0; text-transform: none; color: #3d526b; }
.kp-portal .kp-bd-panel .kp-bd-col-count { min-width: 19px; padding: 2px 6px; background: #f2f4f7; font-size: 10.5px; font-weight: 500; color: #98a2b3; }
.kp-portal .kp-bd-panel .kp-bd-col-total { display: none; }
.kp-portal .kp-bd-panel .kp-bd-col-body { align-content: start; grid-auto-rows: max-content; flex: 1 1 auto; min-height: 470px; padding: 7px; border: 1px dashed #e0e5ec; border-radius: 7px; background: #f8f9fb; }
.kp-portal .kp-bd-panel .kp-bd-col-empty { align-items: flex-start; justify-content: center; min-height: 70px; padding-top: 31px; border: 0; color: #c0c6d0; font-style: italic; }
.kp-portal .kp-bd-panel .kp-bd-col-body > .kp-bd-col-empty:only-child { display: flex; }
.kp-portal .kp-bd-panel .kp-bd-col.is-over { background: transparent; }
.kp-portal .kp-bd-panel .kp-bd-col.is-over .kp-bd-col-body { border-color: var(--kp-direct-accent, var(--kp-navy)); background: #f2f6ff; }
.kp-portal .kp-bd-panel .kp-bd-col-orphan .kp-bd-col-body { background: #fff8ef; border-color: #efd8b7; }
.kp-portal .kp-bd-panel .kp-bd-card { gap: 5px; padding: 11px 11px 10px; border-color: #dce2e9; border-radius: 7px; box-shadow: none; }
.kp-portal .kp-bd-panel .kp-bd-card:hover { border-color: #bcc7d5; box-shadow: 0 4px 12px rgba(20, 47, 76, .07); }
.kp-portal .kp-bd-panel .kp-bd-card-top { grid-template-columns: minmax(0, 1fr) 24px; gap: 6px; }
.kp-portal .kp-bd-panel .kp-bd-thumb { display: none; }
.kp-portal .kp-bd-panel .kp-bd-title { font-size: 13px; }
.kp-portal .kp-bd-panel .kp-bd-addr { margin-top: 3px; font-size: 11px; }
.kp-portal .kp-bd-panel .kp-bd-meta,
.kp-portal .kp-bd-panel .kp-bd-uw { font-size: 10.5px; }
.kp-portal .kp-bd-panel .kp-bd-ask { font-size: 12.5px; }
.kp-portal .kp-bd-panel .kp-bd-flags { margin-top: 2px; }
.kp-portal .kp-bd-tray { margin-top: 4px; border-top: 1px solid #e6ebf1; }
.kp-portal .kp-bd-tray .kp-bd-section-head { padding: 10px 14px 5px; }
@media (max-width: 900px) {
    .kp-portal .kp-acq-board-header h1 { font-size: 22px; }
    .kp-portal .kp-acq-filters.is-board .kp-acq-layout-toggle { margin-left: 0; }
    .kp-portal .kp-bd-tabs { padding-left: 8px; padding-right: 8px; }
    .kp-portal .kp-bd-panel .kp-bd-lane { padding-left: 10px; padding-right: 10px; }
    .kp-portal .kp-bd-panel .kp-bd-col { flex-basis: 220px; min-width: 220px; min-height: 520px; }
}
/* Board deal actions open over the pipeline, preserving board position. */
.kp-bd-action-drawer-wrap { position: fixed; inset: 0; z-index: 10020; pointer-events: none; }
.kp-bd-action-backdrop { position: absolute; inset: 0; border: 0; background: rgba(16,24,40,.45); opacity: 0; transition: opacity .2s ease; }
.kp-bd-action-drawer { position: absolute; top: 0; right: 0; bottom: 0; width: min(76vw, 1180px); background: #fff; box-shadow: -14px 0 44px rgba(16,24,40,.25); transform: translateX(102%); transition: transform .24s ease; display: flex; flex-direction: column; }
.kp-bd-action-drawer-wrap.is-open { pointer-events: auto; }
.kp-bd-action-drawer-wrap.is-open .kp-bd-action-backdrop { opacity: 1; }
.kp-bd-action-drawer-wrap.is-open .kp-bd-action-drawer { transform: translateX(0); }
.kp-bd-action-drawer > header { min-height: 68px; padding: 13px 18px 12px 24px; border-bottom: 1px solid #dce4ed; display: flex; align-items: center; gap: 16px; }
.kp-bd-action-drawer > header h2 { flex: 1; margin: 0; font-size: 18px; }
.kp-bd-action-close { width: 38px; height: 38px; border: 1px solid #dce4ed; border-radius: 50%; color: #667085; background: #fff; font: 400 28px/1 Arial,sans-serif; cursor: pointer; }
.kp-bd-action-drawer iframe { flex: 1; width: 100%; border: 0; background: #f5f8fc; }
@media (max-width: 760px) { .kp-bd-action-drawer { width: 100vw; } }
.kp-dealroom-create { max-width: 760px; margin: 0 auto; padding: 18px 0 36px; }
.kp-dealroom-steps { display: flex; gap: 8px; margin: 18px 0 26px; }
.kp-dealroom-steps span, .kp-dealroom-steps strong { padding: 7px 13px; border-radius: 999px; background: #f5f8fc; font-size: 12px; }
.kp-dealroom-steps strong { color: #fff; background: #101828; }
.kp-dealroom-access { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 10px 0 24px; }
.kp-dealroom-access > label { display: grid; grid-template-columns: 22px 1fr; gap: 6px 8px; min-height: 112px; padding: 18px; border: 1px solid #dce4ed; border-radius: 10px; cursor: pointer; }
.kp-dealroom-access > label:has(input:checked) { border-color: #101828; box-shadow: inset 0 0 0 1px #101828; }
.kp-dealroom-access small { grid-column: 2; color: #667085; }
.kp-dealroom-create .kp-card > label:not(.kp-dealroom-check) { display: grid; gap: 7px; }
.kp-dealroom-create .kp-card input[type="date"] { width: 100%; }
.kp-dealroom-check { display: flex; gap: 12px; align-items: flex-start; margin-top: 18px; padding-top: 18px; border-top: 1px solid #dce4ed; }
.kp-dealroom-check span { display: grid; gap: 3px; }
.kp-dealroom-check small { color: #667085; }
.kp-dealroom-submit { display: flex; justify-content: flex-end; margin-top: 20px; }
@media (max-width: 620px) { .kp-dealroom-access { grid-template-columns: 1fr; } }

/* ===== wl212 — Brokerage Open Deals tabs and roomier workspace drawers ===== */
.kp-portal .kp-od-page-tabs {
    display: flex;
    align-items: flex-end;
    gap: 4px;
    min-height: 48px;
    margin: 0 0 14px;
    padding: 0 10px;
    overflow-x: auto;
    border: 1px solid #dde3eb;
    border-radius: 10px;
    background: #fff;
}
.kp-portal .kp-od-page-tab {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 48px;
    padding: 4px 14px 2px;
    color: #687386;
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
    white-space: nowrap;
}
.kp-portal .kp-od-page-tab::after {
    content: "";
    position: absolute;
    right: 5px;
    bottom: -1px;
    left: 5px;
    height: 2px;
    border-radius: 2px 2px 0 0;
    background: transparent;
}
.kp-portal .kp-od-page-tab:hover { color: #17233c; }
.kp-portal .kp-od-page-tab:focus-visible { outline: 2px solid var(--kp-direct-accent, var(--kp-navy)); outline-offset: -4px; border-radius: 6px; }
.kp-portal .kp-od-page-tab.is-active { color: #101828; font-weight: 700; }
.kp-portal .kp-od-page-tab.is-active::after { background: #101828; }
.kp-portal .kp-od-page-tab-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 19px;
    min-height: 19px;
    padding: 1px 6px;
    border-radius: 999px;
    background: #f2f4f7;
    color: #7a8496;
    font-size: 10.5px;
    font-weight: 600;
}
.kp-portal .kp-od-page-tab.is-active .kp-od-page-tab-count { background: #e9eef9; color: #2e46c6; }
.kp-portal .kp-od-ready-row { display: flex; align-items: center; gap: 12px; padding: 11px 0; border-top: 1px solid #eef1f6; }
.kp-portal .kp-od-ready-title { flex: 1 1 auto; min-width: 0; font-weight: 600; }
.kp-portal .kp-od-ready-empty { padding: 20px 0 6px; border-top: 1px solid #eef1f6; }
.kp-portal .kp-od-ready-empty h3 { margin: 0 0 4px; font-size: 14px; }
.kp-portal .kp-od-drawer {
    width: min(62vw, 1100px);
    min-width: 440px;
    max-width: calc(100vw - 32px);
}
@media (max-width: 700px) {
    .kp-portal .kp-od-page-tabs { padding: 0 4px; }
    .kp-portal .kp-od-page-tab { padding-right: 10px; padding-left: 10px; }
    .kp-portal .kp-od-ready-row { align-items: flex-start; flex-wrap: wrap; }
    .kp-portal .kp-od-ready-title { flex-basis: 100%; }
    .kp-portal .kp-od-drawer { width: 94vw; min-width: 0; max-width: 94vw; padding: 18px 16px !important; }
}

/* ===== wl214 — roomier CRM records and seamless in-panel tab navigation ===== */
.kp-portal .kp-gs-drawer.kp-crm-panel {
    width: min(76vw, 1550px);
    max-width: calc(100vw - 24px);
}
.kp-portal .kp-crm-panel .kp-crm-pbody {
    transition: opacity 120ms ease;
}
.kp-portal .kp-crm-panel.is-switching .kp-crm-pbody {
    opacity: .55;
    pointer-events: none;
}
.kp-portal .kp-crm-panel.is-switching::after {
    position: absolute;
    z-index: 20;
    top: 0;
    right: 0;
    left: 0;
    height: 3px;
    border-radius: 3px 3px 0 0;
    background: linear-gradient(90deg, transparent, var(--kp-direct-accent, var(--kp-navy)), transparent);
    content: '';
    animation: kp-crm-panel-loading 900ms ease-in-out infinite;
}
@keyframes kp-crm-panel-loading {
    0% { opacity: .25; transform: translateX(-35%); }
    50% { opacity: 1; }
    100% { opacity: .25; transform: translateX(35%); }
}
@media (max-width: 1080px) {
    .kp-portal .kp-gs-drawer.kp-crm-panel {
        width: 96vw;
        min-width: 0;
        max-width: 96vw;
    }
}

/* ===== wl215 — I&D relationship directory ===== */
.kp-portal .kp-clients-table.is-investment .kp-clients-tr {
    grid-template-columns: minmax(260px, 2.2fr) minmax(190px, 1.25fr) minmax(120px, .7fr) minmax(110px, .6fr);
    gap: 22px;
    min-height: 58px;
    padding: 12px 22px;
}
.kp-portal .kp-clients-table.is-investment .kp-clients-head {
    min-height: 42px;
    color: #6f7f99;
    font-size: 10px;
    letter-spacing: .065em;
}
.kp-portal .kp-clients-table.is-investment .kp-clients-name b {
    color: #14213d;
    font-size: 13px;
}
.kp-portal .kp-clients-table.is-investment .kp-clients-name em {
    margin-top: 2px;
    color: #71819d;
}
.kp-portal .kp-clients-table.is-investment .kp-linklike {
    font-weight: 650;
    white-space: nowrap;
}
@media (max-width: 760px) {
    .kp-portal .kp-clients-table.is-investment .kp-clients-tr {
        grid-template-columns: minmax(0, 1.5fr) minmax(100px, .75fr) auto;
        gap: 12px;
        padding-right: 14px;
        padding-left: 14px;
    }
    .kp-portal .kp-clients-table.is-investment .kp-clients-tr > span:nth-child(2) { display: none; }
}
@media (max-width: 520px) {
    .kp-portal .kp-clients-table.is-investment .kp-clients-tr {
        grid-template-columns: minmax(0, 1fr) auto;
    }
    .kp-portal .kp-clients-table.is-investment .kp-clients-tr > span:nth-child(3) { display: none; }
}

/* ===== wl216 — direct property invitations ===== */
.kp-portal .kp-property-invite-drawer {
    width: min(860px, 76vw);
}
.kp-portal .kp-property-invite-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
    gap: 18px;
    align-items: start;
}
.kp-portal .kp-property-invite-form-card h3,
.kp-portal .kp-property-invite-current h3 {
    margin: 2px 0 8px;
}
.kp-portal .kp-property-invite-form {
    display: grid;
    gap: 14px;
    margin-top: 20px;
}
.kp-portal .kp-property-invite-form label {
    display: grid;
    gap: 6px;
    color: #263552;
    font-size: 12px;
    font-weight: 700;
}
.kp-portal .kp-property-invite-form select {
    width: 100%;
    min-height: 42px;
}
.kp-portal .kp-property-invite-form .kp-button {
    justify-self: start;
}
.kp-portal .kp-property-invite-list {
    display: grid;
    gap: 0;
    margin-top: 12px;
}
.kp-portal .kp-property-invite-list > div {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    padding: 12px 0;
    border-top: 1px solid #e6ebf3;
}
.kp-portal .kp-property-invite-list span {
    display: grid;
    gap: 3px;
    min-width: 0;
}
.kp-portal .kp-property-invite-list span:last-child {
    text-align: right;
}
.kp-portal .kp-property-invite-list small {
    color: #71819d;
    font-size: 11px;
    overflow: hidden;
    text-overflow: ellipsis;
}
.kp-portal .kp-prop-flag-linked {
    background: #eaf2ff;
    color: #205ec7;
}
.kp-portal .kp-ppd-collaboration {
    border-left: 3px solid #2f6fed;
}
@media (max-width: 820px) {
    .kp-portal .kp-property-invite-drawer { width: min(100%, 720px); }
    .kp-portal .kp-property-invite-grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   wl221 — persona portal: registration, welcome pick, workspaces, Portal
   Experience settings, persona panel on the contact record.
   ========================================================================== */
/* --- registration / welcome --- */
.kp-portal .kp-reg-card{max-width:560px}
.kp-login-split.kp-reg .kp-login-formwrap .kp-login-card{max-width:560px}
.kp-portal .kp-reg-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.kp-portal .kp-reg-step{border:0;padding:0;margin:0 0 22px}
.kp-portal .kp-reg-step>legend{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:700;color:var(--kp-navy);margin:0 0 12px;padding:0}
.kp-portal .kp-reg-stepnum{width:24px;height:24px;border-radius:50%;background:var(--kp-navy);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex:0 0 auto}
.kp-portal .kp-reg-personas{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.kp-portal .kp-reg-personas-wide{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.kp-portal .kp-reg-persona{position:relative;display:grid;grid-template-columns:38px minmax(0,1fr);gap:11px;align-items:start;padding:12px 13px;border:1.5px solid var(--kp-border);border-radius:12px;background:#fff;cursor:pointer;text-align:left;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.kp-portal .kp-reg-persona:hover{border-color:#b9c9de;transform:translateY(-1px)}
.kp-portal .kp-reg-persona.is-checked{border-color:var(--kp-blue);box-shadow:0 0 0 3px rgba(20, 44, 79,.14)}
.kp-portal .kp-reg-persona input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.kp-portal .kp-reg-persona-icon{width:38px;height:38px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:#eef3f9;color:var(--kp-navy);flex:0 0 auto}
.kp-portal .kp-reg-persona-icon.kp-metric-a1{background:#e8efff;color:#2563eb}
.kp-portal .kp-reg-persona-icon.kp-metric-a2{background:#efe9ff;color:#7c3aed}
.kp-portal .kp-reg-persona-icon.kp-metric-a3{background:#e3f6fb;color:#0891b2}
.kp-portal .kp-reg-persona-icon.kp-metric-a4{background:#fde8e8;color:#dc2626}
.kp-portal .kp-reg-persona-icon.kp-metric-a5{background:#e6f7ec;color:#16a34a}
.kp-portal .kp-reg-persona-icon.kp-metric-a6{background:#fdf1e0;color:#d97706}
.kp-portal .kp-reg-persona-icon.kp-metric-a7{background:#e0f5f2;color:#0d9488}
.kp-portal .kp-reg-persona-copy{display:grid;gap:3px;min-width:0}
.kp-portal .kp-reg-persona-copy strong{font-size:13.5px;color:var(--kp-navy);line-height:1.25}
.kp-portal .kp-reg-persona-copy span{font-size:12px;color:var(--kp-muted);line-height:1.4}
.kp-portal .kp-reg-subtype{margin:12px 0 0;max-width:340px}
.kp-portal .kp-reg-subtype label,.kp-portal .kp-reg-grid label{display:grid;gap:5px;font-size:12px;font-weight:600;color:var(--kp-slate);text-align:left}
.kp-portal .kp-reg-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.kp-portal .kp-reg-grid .kp-reg-wide{grid-column:1/-1}
.kp-portal .kp-reg-grid input,.kp-portal .kp-reg-grid textarea,.kp-portal .kp-reg-subtype select{width:100%;box-sizing:border-box;font-size:14px;padding:10px 12px;border:1px solid var(--kp-border);border-radius:9px;background:#fff}
.kp-portal .kp-reg-consent{margin:14px 0 6px;text-align:left;font-size:12.5px;color:var(--kp-slate);display:flex;gap:8px;align-items:flex-start}
.kp-portal .kp-reg-consent input{margin-top:3px}
.kp-portal .kp-reg-step[data-kp-reg-step="2"]{opacity:.55;transition:opacity .2s ease}
.kp-portal .kp-reg-step[data-kp-reg-step="2"].is-ready{opacity:1}
.kp-portal .kp-login-register{margin:16px 0 0;padding-top:14px;border-top:1px solid var(--kp-border);font-size:13px;display:flex;gap:8px;justify-content:center}
.kp-portal .kp-login-register a{font-weight:700;color:var(--kp-blue);text-decoration:none}
.kp-portal .kp-welcome-form{padding:22px}
.kp-portal .kp-welcome-form .kp-ws-actions{margin-top:18px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
@media (max-width:640px){.kp-portal .kp-reg-grid{grid-template-columns:1fr}.kp-portal .kp-reg-personas{grid-template-columns:1fr}}

/* --- workspace --- */
.kp-portal .kp-ws-persona-pill{display:inline-flex;align-items:center;gap:8px;padding:7px 12px 7px 9px;border-radius:999px;font-size:12.5px;font-weight:700;background:#eef3f9;color:var(--kp-navy)}
.kp-portal .kp-ws-persona-pill.kp-metric-a1{background:#e8efff;color:#2563eb}
.kp-portal .kp-ws-persona-pill.kp-metric-a2{background:#efe9ff;color:#7c3aed}
.kp-portal .kp-ws-persona-pill.kp-metric-a3{background:#e3f6fb;color:#0891b2}
.kp-portal .kp-ws-persona-pill.kp-metric-a4{background:#fde8e8;color:#dc2626}
.kp-portal .kp-ws-persona-pill.kp-metric-a5{background:#e6f7ec;color:#16a34a}
.kp-portal .kp-ws-persona-pill.kp-metric-a6{background:#fdf1e0;color:#d97706}
.kp-portal .kp-ws-persona-pill.kp-metric-a7{background:#e0f5f2;color:#0d9488}
.kp-portal .kp-ws-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:16px;align-items:start;margin-top:16px}
.kp-portal .kp-ws-card{display:grid;gap:12px;align-content:start;min-width:0}
.kp-portal .kp-ws-card--wide{grid-column:1/-1;width:100%;max-width:100%}
.kp-portal .kp-ws-card>.kp-section-heading{margin:0}
.kp-portal .kp-ws-card>.kp-section-heading h2{margin:0;font-size:16px}
.kp-portal .kp-ws-card>.kp-section-heading p{margin:4px 0 0}
.kp-portal .kp-ws-empty{margin:0;padding:10px 0}
.kp-portal .kp-ws-list{display:grid;gap:8px}
.kp-portal .kp-ws-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 13px;border:1px solid var(--kp-border);border-radius:10px;background:#fff}
.kp-portal .kp-ws-row-main{display:grid;gap:3px;min-width:0}
.kp-portal .kp-ws-row-main strong{font-size:13.5px;color:var(--kp-navy);line-height:1.3}
.kp-portal .kp-ws-row-main .kp-console-meta{margin:0}
.kp-portal .kp-ws-row-side{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.kp-portal .kp-ws-note{font-size:12.5px;color:var(--kp-slate);white-space:pre-line}
.kp-portal .kp-ws-opnote{font-size:12.5px;color:var(--kp-navy);background:#f5f8fc;border-left:3px solid var(--kp-blue);padding:6px 10px;border-radius:0 8px 8px 0;margin:4px 0 0;white-space:pre-line}
.kp-portal .kp-ws-filelist{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:12px}
.kp-portal .kp-ws-filelist a{color:var(--kp-blue);text-decoration:none;font-weight:600}
.kp-portal details.kp-ws-new{border:1px dashed #cbd7e6;border-radius:10px;padding:0 12px;background:#fbfcfe}
.kp-portal details.kp-ws-new>summary{list-style:none;display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13.5px;font-weight:600;color:var(--kp-blue);padding:10px 0;flex-wrap:wrap}
.kp-portal details.kp-ws-new>summary::-webkit-details-marker{display:none}
.kp-portal details.kp-ws-new[open]{background:#fff;border-style:solid}
.kp-portal details.kp-ws-new[open]>summary{border-bottom:1px solid var(--kp-border);margin-bottom:12px}
.kp-portal details.kp-ws-new>*:last-child{margin-bottom:12px}
.kp-portal .kp-ws-form{display:grid;gap:12px}
.kp-portal .kp-ws-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px 12px}
.kp-portal .kp-ws-field{display:grid;gap:4px;font-size:12px;font-weight:600;color:var(--kp-slate);min-width:0}
.kp-portal .kp-ws-field-wide{grid-column:1/-1}
.kp-portal .kp-ws-field em{font-weight:400;color:var(--kp-muted);font-style:normal;margin-left:6px}
.kp-portal .kp-ws-field input,.kp-portal .kp-ws-field select,.kp-portal .kp-ws-field textarea{width:100%;box-sizing:border-box;font-size:13.5px;padding:8px 10px;border:1px solid var(--kp-border);border-radius:8px;background:#fff;font-weight:400}
.kp-portal .kp-ws-multi-dropdown{position:relative;width:100%;font-weight:400}
.kp-portal .kp-ws-multi-dropdown>summary{box-sizing:border-box;min-height:39px;padding:9px 34px 9px 11px;border:1px solid var(--kp-border);border-radius:8px;background:#fff;color:var(--kp-navy);font-size:13px;cursor:pointer;list-style:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kp-portal .kp-ws-multi-dropdown>summary::-webkit-details-marker{display:none}
.kp-portal .kp-ws-multi-dropdown>summary:after{content:'⌄';position:absolute;right:12px;top:8px;color:var(--kp-muted);font-size:15px}
.kp-portal .kp-ws-multi-dropdown[open]>summary{border-color:var(--kp-blue);box-shadow:0 0 0 2px rgba(20, 44, 79,.1)}
.kp-portal .kp-ws-multi-options{position:absolute;z-index:80;left:0;right:0;top:calc(100% + 5px);display:grid;gap:3px;max-height:260px;overflow:auto;padding:8px;border:1px solid var(--kp-border);border-radius:9px;background:#fff;box-shadow:0 14px 34px rgba(17,34,68,.16)}
.kp-portal .kp-ws-multi-options label{display:flex;align-items:center;gap:8px;padding:6px 7px;border-radius:6px;font-size:12.5px;font-weight:500;cursor:pointer}
.kp-portal .kp-ws-multi-options label:hover{background:#f3f6fb}
.kp-portal .kp-ws-multi-options input{width:auto;margin:0;accent-color:var(--kp-blue)}
.kp-portal .kp-ws-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.kp-portal .kp-ws-modes{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;font-weight:600;color:var(--kp-navy)}
.kp-portal .kp-ws-modes label{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.kp-portal .kp-ws-facts{margin:0}
.kp-portal .kp-ws-sowline{display:grid;gap:8px;padding:10px 0;border-top:1px solid var(--kp-border)}
.kp-portal .kp-ws-sowline .kp-ws-row{border:0;padding:0;background:transparent}
.kp-portal .kp-ws-propgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px;min-width:0;width:100%;max-width:100%}
.kp-portal .kp-ws-prop{border:1px solid var(--kp-border);border-radius:12px;overflow:hidden;background:#fff;display:grid;grid-template-rows:auto 1fr;min-width:0;max-width:100%}
.kp-portal .kp-ws-prop.is-expanded{grid-column:1/-1}
.kp-portal .kp-ws-propmedia{display:block;aspect-ratio:16/9;background:#eef3f9;overflow:hidden}
.kp-portal .kp-ws-propmedia img{width:100%;height:100%;object-fit:cover;display:block}
.kp-portal .kp-ws-propmedia .kp-clienthome-propertyplaceholder{display:block;width:100%;height:100%}
.kp-portal .kp-ws-propbody{display:grid;gap:5px;padding:11px 12px 12px;align-content:start;min-width:0;max-width:100%}
.kp-portal .kp-ws-propbody>*{min-width:0;max-width:100%}
.kp-portal .kp-ws-propbody strong{font-size:13.5px;color:var(--kp-navy);line-height:1.3;overflow-wrap:anywhere}
.kp-portal .kp-ws-propbody .kp-console-meta,.kp-portal .kp-ws-propfacts{overflow-wrap:anywhere;word-break:break-word}
.kp-portal .kp-ws-propfacts{font-size:12px;color:var(--kp-slate)}
.kp-portal .kp-ws-proptype{justify-self:start;display:inline-flex;max-width:100%;padding:3px 7px;border-radius:999px;background:#e8efff;color:#2563eb;font-size:10.5px;font-weight:700;line-height:1.25;overflow-wrap:anywhere}
.kp-portal .kp-ws-proptype.is-pending{background:#fff3d6;color:#9a6700}
.kp-portal .kp-ws-propactions{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.kp-portal .kp-ws-inline{margin-top:8px;padding-top:10px;border-top:1px dashed var(--kp-border);min-width:0;max-width:100%;overflow-wrap:anywhere}
.kp-portal .kp-ws-inline .kp-ws-form,.kp-portal .kp-ws-inline .kp-ws-fields,.kp-portal .kp-ws-inline input,.kp-portal .kp-ws-inline select,.kp-portal .kp-ws-inline textarea{min-width:0;max-width:100%}
@media (min-width:900px){.kp-portal .kp-ws-prop.is-expanded{grid-template-columns:minmax(220px,34%) minmax(0,1fr);grid-template-rows:1fr}.kp-portal .kp-ws-prop.is-expanded>.kp-ws-propmedia{aspect-ratio:auto;min-height:280px}.kp-portal .kp-ws-prop.is-expanded>.kp-ws-propbody{align-self:stretch}}
.kp-portal .kp-clienthome-guide .kp-clienthome-guidelist{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.kp-portal .kp-clienthome-guidelist li{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--kp-navy);line-height:1.4}
.kp-portal .kp-clienthome-guidelist .kp-onboard-stepnum{width:22px;height:22px;font-size:11.5px;background:#e8efff;color:#2563eb}
@media (max-width:640px){.kp-portal .kp-ws-row{grid-template-columns:1fr}.kp-portal .kp-ws-row-side{justify-content:flex-start}.kp-portal .kp-ws-grid{grid-template-columns:1fr}.kp-portal .kp-ws-propgrid{grid-template-columns:minmax(0,1fr)}}

/* --- Portal Experience (settings) + persona panel (CRM) --- */
.kp-portal .kp-setpanel-nav button b{margin-left:6px;background:#dc2626;color:#fff;border-radius:999px;padding:1px 7px;font-size:11px}
.kp-portal .kp-pe-form{display:grid;gap:14px}
.kp-portal .kp-pe-toggles{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px 14px}
.kp-portal .kp-pe-toggles-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.kp-portal .kp-pe-toggle{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;padding:9px 11px;border:1px solid var(--kp-border);border-radius:10px;background:#fff;cursor:pointer}
.kp-portal .kp-pe-toggle input{margin:3px 0 0;width:auto}
.kp-portal .kp-pe-toggle span{display:grid;gap:2px}
.kp-portal .kp-pe-toggle strong{font-size:13px;color:var(--kp-navy)}
.kp-portal .kp-pe-toggle em{font-style:normal;font-size:12px;color:var(--kp-muted);line-height:1.4}
.kp-portal details.kp-pe-persona{padding:0}
.kp-portal details.kp-pe-persona.is-off{opacity:.72}
.kp-portal details.kp-pe-persona>summary{list-style:none;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 18px;cursor:pointer}
.kp-portal details.kp-pe-persona>summary::-webkit-details-marker{display:none}
.kp-portal .kp-pe-persona-title{display:grid;gap:2px;min-width:0}
.kp-portal .kp-pe-persona-title strong{font-size:14.5px;color:var(--kp-navy)}
.kp-portal .kp-pe-persona-title em{font-style:normal;font-size:12px;color:var(--kp-muted)}
.kp-portal .kp-pe-switch{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--kp-slate);padding:6px 10px;border:1px solid var(--kp-border);border-radius:999px;background:#fff}
.kp-portal .kp-pe-switch input{width:auto;margin:0}
.kp-portal .kp-pe-body{display:grid;gap:14px;padding:0 18px 18px;border-top:1px solid var(--kp-border);padding-top:14px}
.kp-portal .kp-pe-checks{display:grid;gap:5px;font-size:12.5px;font-weight:400;color:var(--kp-navy);padding:8px 10px;border:1px solid var(--kp-border);border-radius:8px;background:#fff;max-height:190px;overflow:auto}
.kp-portal .kp-pe-checks label{display:flex;gap:8px;align-items:center}
.kp-portal .kp-pe-checks input{width:auto;margin:0}
.kp-portal .kp-pe-save{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.kp-portal .kp-pe-req-actions{display:grid;gap:8px;justify-items:end}
.kp-portal .kp-pe-req-actions form,.kp-portal .kp-pe-decide{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.kp-portal .kp-pe-req-actions select,.kp-portal .kp-pe-req-actions input[type="text"],.kp-portal .kp-pe-decide input[type="text"]{font-size:12px;padding:6px 8px;border:1px solid var(--kp-border);border-radius:8px;max-width:220px}
.kp-portal .kp-persona-card{display:grid;gap:12px;margin-bottom:14px}
.kp-portal .kp-persona-title{display:flex;align-items:center;gap:10px;margin:2px 0 4px;font-size:16px}
.kp-portal .kp-persona-title .kp-reg-persona-icon{width:30px;height:30px;border-radius:8px}
.kp-portal .kp-persona-pin{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.kp-portal .kp-persona-pin select{font-size:12px;padding:5px 8px;border:1px solid var(--kp-border);border-radius:8px}
.kp-portal .kp-linkrole-custom{font-size:12px;padding:5px 10px;border:1px solid var(--kp-border);border-radius:999px;margin-left:6px;max-width:180px}

/* wl226 — focused CRM record workspace. The permanent Copilot rail became a
   user-invoked dock and the operational requirement queue now leads. */
.kp-portal .kp-gs-drawer.kp-crm-panel--cop{width:min(1320px,96vw)}
.kp-portal .kp-crm-pbody{padding:18px 22px 24px}
.kp-portal .kp-crm-pmain{min-width:0}
.kp-portal .kp-crm-pbar{flex:0 0 auto}
.kp-portal .kp-crm-ptabs{display:flex;flex:0 0 auto;align-items:stretch;gap:4px;min-height:42px;overflow-x:auto;overflow-y:hidden;padding:0 16px;white-space:nowrap;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.kp-portal .kp-crm-ptabs a{flex:0 0 auto;padding:10px 11px}
.kp-portal .kp-crm-pbody{flex:1 1 auto;min-height:0;overflow-y:auto}
.kp-portal .kp-crm-copilot-dock{margin-top:18px;border:1px solid var(--kp-border);border-radius:12px;background:#f8fbff;overflow:hidden}
.kp-portal .kp-crm-copilot-dock>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;cursor:pointer;color:var(--kp-navy);font-size:13px;font-weight:700}
.kp-portal .kp-crm-copilot-dock>summary::-webkit-details-marker{display:none}
.kp-portal .kp-crm-copilot-dock>summary small{font-size:11.5px;font-weight:400;color:var(--kp-muted)}
.kp-portal .kp-crm-copilot-dock[open]>summary{border-bottom:1px solid var(--kp-border)}
.kp-portal .kp-crm-copilot-dock .kp-crm-pside{width:auto;border:0;background:#fff;padding:16px}
.kp-portal .kp-crm-workhead{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px}
.kp-portal .kp-crm-workhead h3{margin:2px 0 4px;font-size:19px;color:var(--kp-navy)}
.kp-portal .kp-crm-workhead p{margin:0}
.kp-portal .kp-crm-requirements{padding:16px 18px;border:1px solid var(--kp-border);border-radius:14px;background:#fff}
.kp-portal .kp-crm-requirement-list{display:grid;gap:7px}
.kp-portal .kp-crm-requirements .kp-ca-row{margin:0;padding:11px 12px;border:1px solid #e8edf5;border-radius:10px;background:#fbfcfe}
.kp-portal .kp-crm-empty-action{display:flex;gap:12px;align-items:center;padding:15px;border:1px dashed #b9d7d2;border-radius:11px;background:#f5fbfa;color:var(--kp-navy)}
.kp-portal .kp-crm-empty-action>span{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:#dff5ef;color:#0b8d75;font-weight:800}
.kp-portal .kp-crm-empty-action p{margin:3px 0 0;font-size:12px;color:var(--kp-muted)}
.kp-portal .kp-crm-add-requirement{margin-top:12px;border-top:1px solid #edf0f5;padding-top:10px}
.kp-portal .kp-crm-add-requirement>summary{list-style:none;cursor:pointer;font-size:13px;font-weight:700;color:var(--kp-blue)}
.kp-portal .kp-crm-add-requirement>summary::-webkit-details-marker{display:none}
.kp-portal .kp-crm-add-requirement .kp-ca-assign{margin-top:12px;padding:14px;border-radius:10px;background:#f8fafc}
.kp-portal .kp-crm-secondary-panel{margin-top:12px;border:1px solid var(--kp-border);border-radius:12px;background:#fff;overflow:hidden}
.kp-portal .kp-crm-secondary-panel>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 15px;cursor:pointer;color:var(--kp-navy);font-size:13px;font-weight:700}
.kp-portal .kp-crm-secondary-panel>summary::-webkit-details-marker{display:none}
.kp-portal .kp-crm-secondary-panel>summary:after{content:'+';font-size:18px;color:var(--kp-muted)}
.kp-portal .kp-crm-secondary-panel[open]>summary:after{content:'−'}
.kp-portal .kp-crm-secondary-panel>summary small{margin-left:auto;font-size:11.5px;font-weight:400;color:var(--kp-muted)}
.kp-portal .kp-crm-secondary-panel[open]>summary{border-bottom:1px solid var(--kp-border)}
.kp-portal .kp-crm-secondary-panel>.kp-persona-card{border:0;border-radius:0;box-shadow:none;margin:0}
.kp-portal .kp-id-playbook-intro{padding:14px 16px;background:#f8fafc}
.kp-portal .kp-id-playbook-intro>p{margin:0 0 10px;font-size:12.5px;color:var(--kp-muted)}
.kp-portal .kp-id-playbook-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.kp-portal .kp-id-playbook-facts span{display:grid;gap:3px;padding:9px;border:1px solid var(--kp-border);border-radius:8px;background:#fff;font-size:10.5px;color:var(--kp-muted)}
.kp-portal .kp-id-playbook-facts b{font-size:12.5px;color:var(--kp-navy)}
.kp-portal .kp-id-playbook .kp-lgp-docs{padding:12px 15px}
.kp-portal .kp-id-playbook>.kp-console-meta{display:block;margin:0;padding:0 15px 15px}

/* wl226 — contractor bid builder. A quote is a commercial package, not three
   small inputs squeezed into a scope row. */
.kp-portal .kp-lroom-wrap{max-width:1160px}
.kp-portal .kp-bid-start,.kp-portal .kp-bid-builder{padding:22px 24px}
.kp-portal .kp-bid-start .kp-section-heading,.kp-portal .kp-bid-builder .kp-section-heading{align-items:flex-start}
.kp-portal .kp-bid-prefill-form{display:flex;align-items:end;gap:12px;margin-top:14px}
.kp-portal .kp-bid-drop{display:grid;gap:5px;flex:1;padding:13px 14px;border:1.5px dashed #9fb6dd;border-radius:11px;background:#f7faff;color:var(--kp-navy);font-size:12.5px;font-weight:700}
.kp-portal .kp-bid-drop input{width:100%;padding:5px 0;font-size:12px}
.kp-portal .kp-bid-drop small{font-size:10.5px;font-weight:400;color:var(--kp-muted)}
.kp-portal .kp-bid-drop-compact{margin-top:10px}
.kp-portal .kp-bid-ai-notice{border-left:4px solid #7057e5;background:#f8f6ff}
.kp-portal .kp-bid-step{padding:6px 10px;border-radius:999px;background:#eef4ff;color:#2958bd;font-size:11px;font-weight:700}
.kp-portal .kp-bid-section-head{display:flex;gap:11px;align-items:flex-start;margin:24px 0 10px;padding-top:20px;border-top:1px solid #e9edf4}
.kp-portal .kp-bid-section-head>span{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:#1f63dc;color:#fff;font-size:12px;font-weight:800}
.kp-portal .kp-bid-section-head h3{margin:1px 0 2px;font-size:15px;color:var(--kp-navy)}
.kp-portal .kp-bid-section-head p{margin:0;font-size:11.5px;color:var(--kp-muted)}
.kp-portal .kp-bid-line-list{display:grid;gap:10px}
.kp-portal .kp-broom-bidrow{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(0,1.65fr);gap:18px;align-items:end;padding:14px;border:1px solid #dfe5ef;border-radius:12px;background:#fff}
.kp-portal .kp-broom-bidfields{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(112px,.65fr) minmax(220px,1.5fr);gap:10px;align-items:end}
.kp-portal .kp-broom-bidfields label,.kp-portal .kp-bid-cost-grid label,.kp-portal .kp-bid-terms-grid label{display:grid;gap:5px;min-width:0;font-size:11.5px;font-weight:700;color:#46556f}
.kp-portal .kp-broom-bidfields input,.kp-portal .kp-bid-cost-grid input,.kp-portal .kp-bid-terms-grid input,.kp-portal .kp-bid-terms-grid textarea{box-sizing:border-box;width:100%;min-height:39px;padding:8px 10px;border:1px solid var(--kp-border,#d5dcea);border-radius:8px;background:#fff;color:var(--kp-navy);font-size:12.5px}
.kp-portal .kp-broom-bidfields input[name^="bid["],.kp-portal .kp-broom-bidfields input[name^="bid_days"],.kp-portal .kp-broom-bidfields input[name^="bid_note"]{width:100%}
.kp-portal .kp-money-input,.kp-portal .kp-days-input{display:flex;align-items:center;border:1px solid var(--kp-border,#d5dcea);border-radius:8px;background:#fff;overflow:hidden}
.kp-portal .kp-money-input i,.kp-portal .kp-days-input i{font-style:normal;color:#667085;font-size:12px;padding:0 0 0 9px}
.kp-portal .kp-days-input i{padding:0 9px 0 0}
.kp-portal .kp-money-input input,.kp-portal .kp-days-input input{border:0!important;border-radius:0!important;min-width:0;box-shadow:none!important}
.kp-portal .kp-bid-live-total{display:flex;align-items:center;justify-content:flex-end;gap:18px;padding:14px 4px 0;color:#475467;font-size:12px}
.kp-portal .kp-bid-live-total strong{font-size:22px;color:var(--kp-navy)}
.kp-portal .kp-bid-cost-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.kp-portal .kp-bid-cost-check{min-height:18px;margin:8px 0 0;text-align:right;font-size:11.5px}
.kp-portal .kp-bid-cost-check.is-match{color:#087f5b}
.kp-portal .kp-bid-cost-check.is-different{color:#a15c00}
.kp-portal .kp-bid-terms-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.kp-portal .kp-bid-terms-grid .kp-bid-wide{grid-column:1/-1}
.kp-portal .kp-bid-file-list,.kp-portal .kp-q-support-files{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0}
.kp-portal .kp-bid-file-list a,.kp-portal .kp-q-support-files a{padding:7px 9px;border:1px solid var(--kp-border);border-radius:8px;background:#fff;font-size:11.5px;text-decoration:none;color:var(--kp-blue)}
.kp-portal .kp-bid-submitbar{position:sticky;bottom:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:18px;margin:24px -24px -22px;padding:14px 24px;border-top:1px solid #dfe5ef;background:rgba(255,255,255,.97);box-shadow:0 -8px 22px rgba(20,35,70,.06)}
.kp-portal .kp-bid-submitbar>div{display:grid;gap:2px}
.kp-portal .kp-bid-submitbar span{font-size:11.5px;color:var(--kp-muted)}
.kp-portal .kp-q-detail-card{padding:12px 14px;border:1px solid var(--kp-border);border-radius:10px;background:#fff}
.kp-portal .kp-q-detail-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:6px;margin:8px 0}
.kp-portal .kp-q-detail-facts div{display:grid;gap:2px;padding:7px 8px;border-radius:7px;background:#f7f9fc}
.kp-portal .kp-q-detail-facts dt{font-size:10.5px;color:var(--kp-muted)}
.kp-portal .kp-q-detail-facts dd{margin:0;font-size:12px;font-weight:700;color:var(--kp-navy)}

@media (max-width:900px){
    .kp-portal .kp-crm-workhead,.kp-portal .kp-bid-prefill-form,.kp-portal .kp-bid-submitbar{align-items:stretch;flex-direction:column}
    .kp-portal .kp-id-playbook-facts,.kp-portal .kp-bid-cost-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .kp-portal .kp-broom-bidrow{grid-template-columns:1fr}
    .kp-portal .kp-broom-bidfields{grid-template-columns:1fr 1fr}
    .kp-portal .kp-broom-bidfields .kp-bid-line-note{grid-column:1/-1}
    .kp-portal .kp-bid-submitbar{position:static;margin:24px -24px -22px}
}
@media (max-width:560px){
    .kp-portal .kp-lroom-wrap{padding:0 10px;margin-top:20px}
    .kp-portal .kp-bid-start,.kp-portal .kp-bid-builder{padding:17px 15px}
    .kp-portal .kp-broom-bidfields,.kp-portal .kp-bid-cost-grid,.kp-portal .kp-bid-terms-grid,.kp-portal .kp-id-playbook-facts{grid-template-columns:1fr}
    .kp-portal .kp-broom-bidfields .kp-bid-line-note,.kp-portal .kp-bid-terms-grid .kp-bid-wide{grid-column:auto}
    .kp-portal .kp-bid-submitbar{margin:20px -15px -17px;padding:13px 15px}
    .kp-portal .kp-crm-copilot-dock>summary,.kp-portal .kp-crm-secondary-panel>summary{align-items:flex-start;flex-direction:column;gap:3px}
    .kp-portal .kp-crm-secondary-panel>summary:after{position:absolute;right:16px}
}

/* wl227 — complete, collapsible contractor bids with visible history and a
   print-grade submission record. */
.kp-portal .kp-bid-workflow{margin:16px 0;border:1px solid var(--kp-border);border-radius:14px;background:#fff;box-shadow:0 8px 24px rgba(15,31,62,.06);overflow:hidden}
.kp-portal .kp-bid-workflow>summary{list-style:none;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:17px 20px;cursor:pointer;color:var(--kp-navy)}
.kp-portal .kp-bid-workflow>summary::-webkit-details-marker{display:none}
.kp-portal .kp-bid-workflow>summary>span:nth-child(2){display:grid;gap:3px}
.kp-portal .kp-bid-workflow>summary strong{font-size:15px}
.kp-portal .kp-bid-workflow>summary small{font-size:11.5px;font-weight:400;color:var(--kp-muted)}
.kp-portal .kp-bid-workflow-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#eaf2ff;color:#1f63dc;font-size:20px;font-weight:600;transition:transform .15s ease}
.kp-portal .kp-bid-workflow[open]>.kp-bid-workflow-body{border-top:1px solid var(--kp-border);padding:16px;background:#f7f9fc}
.kp-portal .kp-bid-workflow[open]>summary .kp-bid-workflow-icon{transform:rotate(45deg)}
.kp-portal .kp-bid-workflow-body>.kp-card{margin:0 0 14px;box-shadow:none}
.kp-portal .kp-bid-workflow-body>.kp-card:last-child{margin-bottom:0}
.kp-portal .kp-bid-identity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.kp-portal .kp-bid-identity-grid label{display:grid;gap:5px;min-width:0;font-size:11.5px;font-weight:700;color:#46556f}
.kp-portal .kp-bid-identity-grid input,.kp-portal .kp-bid-identity-grid textarea{box-sizing:border-box;width:100%;min-height:39px;padding:8px 10px;border:1px solid var(--kp-border);border-radius:8px;background:#fff;color:var(--kp-navy);font-size:12.5px}
.kp-portal .kp-bid-identity-grid .kp-bid-wide{grid-column:1/-1}
.kp-portal .kp-bid-certify{display:flex;align-items:flex-start;gap:9px;margin:18px 0 4px;padding:12px 13px;border:1px solid #c9d9f3;border-radius:10px;background:#f7faff;color:var(--kp-navy);font-size:12px;font-weight:600;line-height:1.45}
.kp-portal .kp-bid-certify input{width:auto;margin:3px 0 0;flex:0 0 auto}
.kp-portal .kp-bid-cost-check.is-error{color:#b42318;font-weight:700}
.kp-portal .kp-bid-history{padding:20px 22px}
.kp-portal .kp-bid-history .kp-section-heading{align-items:flex-start}
.kp-portal .kp-bid-history-list{display:grid;gap:9px;margin-top:14px}
.kp-portal .kp-bid-history-item{border:1px solid var(--kp-border);border-radius:11px;background:#fff;overflow:hidden}
.kp-portal .kp-bid-history-item>summary{list-style:none;display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:12px;align-items:center;padding:12px 14px;cursor:pointer}
.kp-portal .kp-bid-history-item>summary::-webkit-details-marker{display:none}
.kp-portal .kp-bid-history-item[open]>summary{border-bottom:1px solid var(--kp-border);background:#f8fafc}
.kp-portal .kp-bid-history-main{display:grid;gap:2px}
.kp-portal .kp-bid-history-main strong{font-size:13.5px;color:var(--kp-navy)}
.kp-portal .kp-bid-history-main small{font-size:11px;color:var(--kp-muted)}
.kp-portal .kp-bid-history-total{font-size:15px;font-weight:800;color:var(--kp-navy)}
.kp-portal .kp-bid-open-label{font-size:11.5px;font-weight:700;color:var(--kp-blue)}
.kp-portal .kp-bid-history-body{padding:16px;background:#f8fafc}
.kp-portal .kp-bid-print-document{max-width:900px;margin:0 auto;padding:28px 32px;border:1px solid #dbe2ec;border-radius:10px;background:#fff;color:#17233c}
.kp-portal .kp-bid-print-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding-bottom:15px;border-bottom:2px solid #17233c}
.kp-portal .kp-bid-print-head span,.kp-portal .kp-bid-print-project span{display:block;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#667085}
.kp-portal .kp-bid-print-head h2{margin:3px 0 0;font-size:22px}
.kp-portal .kp-bid-print-brand{display:grid;gap:2px;text-align:right}
.kp-portal .kp-bid-print-brand strong{font-size:16px}
.kp-portal .kp-bid-print-brand span{font-size:10px;color:#667085}
.kp-portal .kp-bid-print-project{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:17px 0}
.kp-portal .kp-bid-print-project>div{display:grid;gap:3px}
.kp-portal .kp-bid-print-project strong{font-size:14px}
.kp-portal .kp-bid-print-project small{font-size:11px;color:#667085}
.kp-portal .kp-bid-print-document h3{margin:20px 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#344054}
.kp-portal .kp-bid-print-facts,.kp-portal .kp-bid-print-costs,.kp-portal .kp-bid-print-terms{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.kp-portal .kp-bid-print-facts>div,.kp-portal .kp-bid-print-costs>div,.kp-portal .kp-bid-print-terms>div{padding:8px 9px;border:1px solid #e4e7ec;border-radius:7px;background:#fcfdff}
.kp-portal .kp-bid-print-facts .kp-bid-print-wide{grid-column:1/-1}
.kp-portal .kp-bid-print-document dt{font-size:9.5px;color:#667085;text-transform:uppercase;letter-spacing:.04em}
.kp-portal .kp-bid-print-document dd{margin:3px 0 0;font-size:11.5px;line-height:1.45;color:#17233c}
.kp-portal .kp-bid-print-table{width:100%;border-collapse:collapse;font-size:11px}
.kp-portal .kp-bid-print-table th,.kp-portal .kp-bid-print-table td{padding:8px;border:1px solid #dfe4eb;text-align:left;vertical-align:top}
.kp-portal .kp-bid-print-table th{background:#f3f6fa;font-weight:700}
.kp-portal .kp-bid-print-table th:last-child,.kp-portal .kp-bid-print-table td:last-child{text-align:right;white-space:nowrap}
.kp-portal .kp-bid-print-table tfoot th{font-size:12px}
.kp-portal .kp-bid-print-certification{display:grid;gap:4px;margin-top:22px;padding-top:12px;border-top:1px solid #dfe4eb;font-size:10.5px}
.kp-portal .kp-bid-print-certification span{color:#667085}
.kp-portal .kp-bid-history-actions{display:flex;justify-content:flex-end;max-width:900px;margin:12px auto 0}

@media (max-width:700px){
    .kp-portal .kp-bid-workflow>summary,.kp-portal .kp-bid-history-item>summary{grid-template-columns:auto minmax(0,1fr)}
    .kp-portal .kp-bid-workflow>summary>.kp-badge,.kp-portal .kp-bid-history-item>summary>.kp-badge,.kp-portal .kp-bid-history-total,.kp-portal .kp-bid-open-label{grid-column:2}
    .kp-portal .kp-bid-identity-grid,.kp-portal .kp-bid-print-project,.kp-portal .kp-bid-print-facts,.kp-portal .kp-bid-print-costs,.kp-portal .kp-bid-print-terms{grid-template-columns:1fr}
    .kp-portal .kp-bid-identity-grid .kp-bid-wide,.kp-portal .kp-bid-print-facts .kp-bid-print-wide{grid-column:auto}
    .kp-portal .kp-bid-print-document{padding:20px 16px}
}

@media print{
    @page{size:auto;margin:14mm}
    body.kp-printing-bid *{visibility:hidden!important}
    body.kp-printing-bid .kp-bid-print-document.is-print-target,body.kp-printing-bid .kp-bid-print-document.is-print-target *{visibility:visible!important}
    body.kp-printing-bid .kp-bid-print-document.is-print-target{position:absolute;left:0;top:0;width:100%;max-width:none;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;color:#000}
    body.kp-printing-bid .kp-bid-print-document.is-print-target .kp-no-print{display:none!important}
    body.kp-printing-bid .kp-bid-print-document.is-print-target h3{break-after:avoid}
    body.kp-printing-bid .kp-bid-print-table tr,body.kp-printing-bid .kp-bid-print-facts>div,body.kp-printing-bid .kp-bid-print-terms>div{break-inside:avoid}
}

/* wl229 — contractor-only presentation. Every selector is explicitly scoped;
   shared hubs, shared drawers, and every other tab keep the wl227 layout. */
.kp-portal .kp-contractor-locked{display:flex;align-items:flex-start;gap:20px;max-width:820px;padding:28px}
.kp-portal .kp-contractor-locked-mark{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;border-radius:50%;background:#e9f7f4;color:#087f6b;font-size:20px;font-weight:800}
.kp-portal .kp-contractor-locked h2{margin:3px 0 7px;font-size:20px;color:var(--kp-navy)}
.kp-portal .kp-contractor-locked p:not(.kp-eyebrow){max-width:650px;margin:0 0 18px;color:var(--kp-muted);line-height:1.55}
.kp-portal .kp-contractor-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px}
.kp-portal .kp-contractor-metrics>.kp-card{display:grid;gap:6px;min-height:82px;padding:15px 17px}
.kp-portal .kp-contractor-metrics span{font-size:11px;font-weight:700;letter-spacing:.025em;text-transform:uppercase;color:var(--kp-muted)}
.kp-portal .kp-contractor-metrics b{font-size:24px;line-height:1;color:var(--kp-navy)}
.kp-portal .kp-contractor-workspace .kp-acq-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;width:100%}
.kp-portal .kp-contractor-workspace .kp-bench-card{align-self:start;margin:0;overflow:hidden}
.kp-portal .kp-contractor-workspace .kp-bench-card[open]{grid-column:1/-1}
.kp-portal .kp-contractor-workspace .kp-bench-summary{min-height:72px}
.kp-portal .kp-contractor-ownership-note{display:grid;gap:5px;margin-top:10px;padding:14px 16px;border:1px dashed #aebed8;border-radius:11px;background:#f8fbff}
.kp-portal .kp-contractor-ownership-note strong{color:var(--kp-navy);font-size:12.5px}
.kp-portal .kp-contractor-ownership-note span{color:var(--kp-muted);font-size:11.5px;line-height:1.5}

@media (max-width:820px){
    .kp-portal .kp-contractor-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
    .kp-portal .kp-contractor-workspace .kp-acq-list{grid-template-columns:1fr}
}

@media (max-width:560px){
    .kp-portal .kp-contractor-locked{padding:20px;gap:13px}
    .kp-portal .kp-contractor-locked-mark{width:38px;height:38px;flex-basis:38px}
}

/* wl237 — one brand lockup in the fixed header. With the duplicate sidebar
   logo removed, navigation starts at the top of the rail without a dead gap. */
.kp-portal .kp-sidebar>.kp-locale-switcher{margin-top:0}
@media (min-width:861px){
    .kp-portal .kp-sidebar>.kp-locale-switcher{margin-top:0}
}

/* wl237 — Settings → Invest Page. The previous 13-column table was wider than
   any drawer. Editors are now responsive cards; the panel never owns a
   horizontal scrollbar and every field remains reachable at every width. */
.kp-portal .kp-setpanel-main{min-width:0}
.kp-portal .kp-invest-settings{min-width:0;padding:22px;margin:0;overflow:visible}
.kp-portal .kp-invest-settings-head{align-items:flex-start;margin-bottom:8px}
.kp-portal .kp-invest-settings-links{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:14px 0 18px}
.kp-portal .kp-invest-settings-form{display:grid;gap:18px;min-width:0}
.kp-portal .kp-invest-config-section{min-width:0;padding:20px;border:1px solid var(--kp-border);border-radius:14px;background:#fff}
.kp-portal .kp-invest-config-heading{display:grid;gap:5px;margin-bottom:14px}
.kp-portal .kp-invest-config-heading>div{display:flex;align-items:center;gap:9px}
.kp-portal .kp-invest-config-heading h3{margin:0;font-size:16px;color:var(--kp-navy)}
.kp-portal .kp-invest-config-heading p{margin:0;color:var(--kp-muted);font-size:12.5px;line-height:1.5}
.kp-portal .kp-invest-step{display:grid;place-items:center;width:25px;height:25px;border-radius:8px;background:#e9efff;color:#2058df;font-size:11px;font-weight:800}
.kp-portal .kp-invest-publish-toggle{display:flex;align-items:flex-start;gap:11px;padding:13px 14px;border:1px solid #d8e3ff;border-radius:11px;background:#f7f9ff;cursor:pointer}
.kp-portal .kp-invest-publish-toggle input{flex:0 0 auto;width:auto;margin:3px 0 0}
.kp-portal .kp-invest-publish-toggle>span{display:grid;gap:2px;min-width:0}
.kp-portal .kp-invest-publish-toggle strong{font-size:13px;color:var(--kp-navy)}
.kp-portal .kp-invest-publish-toggle small{color:var(--kp-muted);font-size:11.5px;line-height:1.4}
.kp-portal .kp-invest-publish-toggle--compact{padding:10px 11px}
.kp-portal .kp-invest-field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px;min-width:0}
.kp-portal .kp-invest-field-grid--copy{grid-template-columns:repeat(2,minmax(0,1fr))}
.kp-portal .kp-invest-field-grid label,.kp-portal .kp-invest-offer-primary>label,.kp-portal .kp-invest-stat-editor label,.kp-portal .kp-invest-record-card>label:not(.kp-invest-publish-toggle){display:grid;gap:5px;min-width:0}
.kp-portal .kp-invest-field-grid label>span,.kp-portal .kp-invest-offer-primary>label>span,.kp-portal .kp-invest-stat-editor label>span,.kp-portal .kp-invest-record-card>label>span{font-size:11px;font-weight:700;color:#475467}
.kp-portal .kp-invest-field-grid input,.kp-portal .kp-invest-field-grid textarea,.kp-portal .kp-invest-offer-primary select,.kp-portal .kp-invest-stat-editor input,.kp-portal .kp-invest-record-card input[type=text]{width:100%;min-width:0;max-width:none}
.kp-portal .kp-invest-span-2{grid-column:span 2}
.kp-portal .kp-invest-stats-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.kp-portal .kp-invest-stat-editor{display:grid;gap:9px;min-width:0;padding:14px;border:1px solid #e4e9f1;border-radius:11px;background:#fbfcfe}
.kp-portal .kp-invest-card-kicker{font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#2058df}
.kp-portal .kp-invest-deal-editors{display:grid;gap:10px;min-width:0}
.kp-portal .kp-invest-config-card{min-width:0;border:1px solid #dfe5ed;border-radius:12px;background:#fff;overflow:hidden}
.kp-portal .kp-invest-config-card>summary{list-style:none;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 16px;cursor:pointer;background:#fbfcfe}
.kp-portal .kp-invest-config-card>summary::-webkit-details-marker{display:none}
.kp-portal .kp-invest-config-card[open]>summary{border-bottom:1px solid #e5e9f0;background:#f6f8fc}
.kp-portal .kp-invest-config-title{display:grid;gap:2px;min-width:0}
.kp-portal .kp-invest-config-title strong{overflow:hidden;text-overflow:ellipsis;color:var(--kp-navy);font-size:13.5px}
.kp-portal .kp-invest-config-title small{color:var(--kp-muted);font-size:11px}
.kp-portal .kp-invest-config-state{padding:5px 9px;border-radius:999px;background:#edf0f5;color:#667085;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.kp-portal .kp-invest-config-state.is-live{background:#dcf7ef;color:#087f6b}
.kp-portal .kp-invest-config-body{min-width:0;padding:16px}
.kp-portal .kp-invest-offer-primary{display:grid;grid-template-columns:minmax(240px,1fr) minmax(180px,.6fr);gap:12px;align-items:end}
.kp-portal .kp-invest-field-help{margin:11px 0 0}
.kp-portal .kp-invest-record-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.kp-portal .kp-invest-record-card{display:grid;gap:11px;min-width:0;padding:13px;border:1px solid #e4e9f1;border-radius:11px;background:#fbfcfe}
.kp-portal .kp-invest-empty{padding:18px;border:1px dashed #cfd8e6;border-radius:11px;background:#fafbfd;color:var(--kp-muted);font-size:12.5px}
.kp-portal .kp-invest-savebar{position:sticky;bottom:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;border:1px solid #d8e3ff;border-radius:12px;background:rgba(255,255,255,.96);box-shadow:0 -8px 24px rgba(17,38,78,.09);backdrop-filter:blur(10px)}
.kp-portal .kp-invest-savebar>span{display:grid;gap:2px}
.kp-portal .kp-invest-savebar strong{font-size:12.5px;color:var(--kp-navy)}
.kp-portal .kp-invest-savebar small{font-size:11px;color:var(--kp-muted)}

/* wl244 — Settings Home, paid Investor Showcase product surface, controlled
   rich-copy editor, and workspace-wide company identity. */
.kp-portal .kp-settings-home{padding:24px}
.kp-portal .kp-settings-kicker{display:block;margin-bottom:4px;color:#2e64e8;font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.kp-portal .kp-settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;margin-top:20px}
.kp-portal .kp-settings-tile{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-height:168px;padding:17px;border:1px solid #dfe5ee;border-radius:14px;background:#fff;color:var(--kp-text);font:inherit;text-align:left;cursor:pointer;box-shadow:0 5px 15px rgba(17,38,78,.035);transition:transform .15s,box-shadow .15s,border-color .15s}
.kp-portal .kp-settings-tile:hover{transform:translateY(-2px);border-color:#91adf6;box-shadow:0 12px 28px rgba(17,38,78,.10)}
.kp-portal .kp-settings-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#eaf0ff;color:#245cdd;font-size:14px;font-weight:850}
.kp-portal .kp-settings-tile strong{margin-top:auto;color:var(--kp-navy);font-size:14px}
.kp-portal .kp-settings-tile small{color:var(--kp-muted);font-size:11.5px;line-height:1.45}
.kp-portal .kp-settings-product-top{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%}
.kp-portal .kp-settings-product-badge{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;padding:3px 7px;border:1px solid #c8d6f8;border-radius:999px;background:#f2f6ff;color:#245cdd;font-size:9px;font-weight:800;line-height:1;letter-spacing:.035em;text-transform:uppercase;white-space:nowrap}
.kp-portal .kp-settings-product-badge::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}
.kp-portal .kp-settings-product-badge.is-active{border-color:#b9e6cd;background:#ecf8f1;color:#167247}
.kp-portal .kp-settings-tile-link{position:relative;z-index:1;margin-top:3px;color:#245cdd;font-size:10.5px;font-weight:750}
.kp-portal .kp-invest-addon-gate{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:20px;margin-top:20px;padding:24px;border:1px solid #b7c9f7;border-radius:15px;background:linear-gradient(135deg,#f6f9ff,#eef5ff)}
.kp-portal .kp-invest-addon-mark{display:grid;place-items:center;width:54px;height:54px;border-radius:15px;background:#0b2858;color:#fff}
.kp-portal .kp-invest-addon-mark svg{width:29px;height:29px}
.kp-portal .kp-invest-addon-gate h3{margin:4px 0 6px;color:var(--kp-navy);font-size:18px}
.kp-portal .kp-invest-addon-gate p{margin:0;color:var(--kp-muted);font-size:12.5px;line-height:1.55}
.kp-portal .kp-invest-template-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin-bottom:12px}
.kp-portal .kp-invest-template-card{display:grid;gap:9px;min-width:0;padding:14px;border:1px solid #dfe5ee;border-radius:12px;background:#fbfcff;cursor:pointer}
.kp-portal .kp-invest-template-card:has(input:checked){border-color:var(--kp-navy);background:#f1f5ff;box-shadow:0 0 0 1px var(--kp-navy)}
.kp-portal .kp-invest-template-card>span{display:flex;align-items:center;gap:8px}.kp-portal .kp-invest-template-card input{width:auto;margin:0}
.kp-portal .kp-invest-template-card strong{color:var(--kp-navy);font-size:12.5px}.kp-portal .kp-invest-template-card small{color:var(--kp-muted);font-size:11px;line-height:1.45}
.kp-portal .kp-invest-rich-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.kp-portal .kp-invest-rich-field{display:grid;align-content:start;gap:6px;min-width:0}
.kp-portal .kp-invest-rich-field>span{color:#475467;font-size:11px;font-weight:750}
.kp-portal .kp-invest-rich-field>small{color:var(--kp-muted);font-size:10.5px}
.kp-portal .kp-invest-rich-field:first-child{grid-column:1/-1}
.kp-portal .kp-invest-rich-field input{width:100%;max-width:none}
.kp-portal .kp-invest-rich-field .jodit-container{min-width:0;border-color:#d7dee9!important;border-radius:9px!important;overflow:hidden}
.kp-portal .kp-invest-rich-field .jodit-workplace{min-height:145px!important}
.kp-portal .kp-brand-settings{margin-top:24px;padding-top:22px}
.kp-portal .kp-brand-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:15px 0}
.kp-portal .kp-brand-form-grid label,.kp-portal .kp-brand-upload{display:grid;gap:5px;color:#475467;font-size:11px;font-weight:750}
.kp-portal .kp-brand-form-grid input,.kp-portal .kp-brand-upload input{width:100%;max-width:none}
.kp-portal .kp-brand-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 14px;padding:0;border:0}
.kp-portal .kp-brand-choices legend{grid-column:1/-1;margin-bottom:2px;color:#475467;font-size:11px;font-weight:750}
.kp-portal .kp-brand-choices>label{position:relative;display:grid;gap:7px;min-width:0;padding:14px 14px 14px 42px;border:1px solid #dfe5ee;border-radius:12px;background:#fbfcfe;cursor:pointer}
.kp-portal .kp-brand-choices>label>input{position:absolute;left:15px;top:18px;width:auto;margin:0}
.kp-portal .kp-brand-choice-preview{display:flex;align-items:center;gap:9px;min-height:36px;color:var(--kp-navy)}
.kp-portal .kp-brand-choice-preview svg{width:30px;height:30px;padding:6px;border-radius:9px;background:#0b2858;color:#fff}
.kp-portal .kp-brand-choice-preview img{display:block;max-width:150px;height:36px;object-fit:contain;object-position:left center}
.kp-portal .kp-brand-choice-preview b{font-size:13px}.kp-portal .kp-brand-choices small,.kp-portal .kp-brand-upload small{color:var(--kp-muted);font-size:10.5px;font-weight:400;line-height:1.4}
.kp-portal .kp-brand-upload-placeholder{display:grid;place-items:center;width:36px;height:36px;border:1px dashed #9eacc2;border-radius:9px;color:#61708a;font-size:18px}
.kp-portal .kp-brand-remove{display:flex;align-items:center;gap:8px;margin:12px 0;color:#475467;font-size:11.5px}.kp-portal .kp-brand-remove input{width:auto;margin:0}
.kp-portal .kp-brand-mark svg,.kp-portal .kp-topbar-brand .kp-brand-mark svg{display:block;width:22px;height:22px;color:var(--kp-blue)}

@media (max-width:900px){
    .kp-portal .kp-invest-template-grid{grid-template-columns:1fr}
    .kp-portal .kp-invest-addon-gate{grid-template-columns:auto minmax(0,1fr)}
    .kp-portal .kp-invest-addon-gate .kp-button{grid-column:1/-1;justify-self:start}
}
@media (max-width:700px){
    .kp-portal .kp-settings-grid,.kp-portal .kp-invest-rich-grid,.kp-portal .kp-brand-form-grid,.kp-portal .kp-brand-choices{grid-template-columns:1fr}
    .kp-portal .kp-invest-addon-gate{grid-template-columns:1fr}
    .kp-portal .kp-invest-rich-field:first-child{grid-column:auto}
}

/* wl237 — dedicated JV Partner portfolio dashboard. The visual system follows
   the approved light dashboard: compact KPI band, a wide holdings column,
   and a focused action/opportunity column. */
.kp-portal .kp-investor-welcome{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:0 0 16px;padding:4px 2px}
.kp-portal .kp-investor-welcome h1{margin:3px 0 4px;font-size:25px;line-height:1.15;color:var(--kp-navy)}
.kp-portal .kp-investor-welcome p:not(.kp-eyebrow){margin:0;color:var(--kp-muted);font-size:13px}
.kp-portal .kp-investor-welcome-actions{display:flex;gap:8px;flex-wrap:wrap}
.kp-portal .kp-investor-dashboard{display:grid;gap:16px;color:#071b45}
.kp-portal .kp-investor-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.kp-portal .kp-investor-kpi{position:relative;display:grid;gap:3px;min-width:0;padding:16px 18px;border:1px solid #dfe5ee;border-radius:13px;background:#fff;box-shadow:0 4px 13px rgba(25,47,88,.035)}
.kp-portal .kp-investor-kpi-dot{position:absolute;top:15px;left:17px;width:6px;height:6px;border-radius:50%;background:#31cfca;box-shadow:0 0 8px rgba(49,207,202,.5)}
.kp-portal .kp-investor-kpi small{padding-left:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#647397}
.kp-portal .kp-investor-kpi strong{font-size:23px;line-height:1.15;color:#071b45;font-variant-numeric:tabular-nums}
.kp-portal .kp-investor-kpi p{margin:0;color:#647397;font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kp-portal .kp-investor-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(330px,1fr);gap:16px;align-items:start}
.kp-portal .kp-investor-primary,.kp-portal .kp-investor-secondary{display:grid;gap:16px;min-width:0}
.kp-portal .kp-investor-panel{min-width:0;overflow:hidden;border:1px solid #dfe5ee;border-radius:13px;background:#fff;box-shadow:0 4px 13px rgba(25,47,88,.035)}
.kp-portal .kp-investor-panel>header{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:49px;padding:13px 18px;border-bottom:1px solid #e4e8ef}
.kp-portal .kp-investor-panel>header h2{margin:0;font-size:14px;color:#071b45}
.kp-portal .kp-investor-panel>header a{font-size:11px;font-weight:700;color:#245eff;text-decoration:none}
.kp-portal .kp-investor-count{display:grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#fff0c7;color:#926100;font-size:10px;font-weight:800}
.kp-portal .kp-investor-holdings{display:grid}
.kp-portal .kp-investor-holding{display:grid;grid-template-columns:43px minmax(0,1fr) auto;gap:13px;align-items:center;min-width:0;padding:14px 18px;border-bottom:1px solid #e6eaf0;color:inherit;text-decoration:none}
.kp-portal .kp-investor-holding:hover{background:#f9fbff}
.kp-portal .kp-investor-holding-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#245bd6;color:#fff;font-size:17px;font-style:normal;font-weight:800}
.kp-portal .kp-investor-holding-icon.is-note{background:#d69a00}
.kp-portal .kp-investor-holding-main{display:grid;gap:2px;min-width:0}
.kp-portal .kp-investor-holding-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;color:#071b45}
.kp-portal .kp-investor-holding-main small,.kp-portal .kp-investor-holding-main span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:#647397}
.kp-portal .kp-investor-holding-main span{color:#3263d8}
.kp-portal .kp-investor-holding-value{display:grid;gap:3px;text-align:right}
.kp-portal .kp-investor-holding-value strong{font-size:14px;color:#071b45;font-variant-numeric:tabular-nums}
.kp-portal .kp-investor-holding-value em{justify-self:end;padding:3px 8px;border-radius:999px;background:#e6f0ff;color:#245bd6;font-size:8.5px;font-style:normal;font-weight:800;text-transform:uppercase}
.kp-portal .kp-investor-allocation{display:grid;gap:8px;padding:15px 18px}
.kp-portal .kp-investor-allocation>strong{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#647397}
.kp-portal .kp-investor-allocation-bar{display:flex;height:9px;overflow:hidden;border-radius:999px;background:#eef1f6}
.kp-portal .kp-investor-allocation-bar i{display:block;background:linear-gradient(90deg,#2765f5,#39c8dc)}
.kp-portal .kp-investor-allocation-bar b{display:block;background:#efa900}
.kp-portal .kp-investor-allocation-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:10px;font-weight:700;color:#294066}
.kp-portal .kp-investor-allocation-legend span{display:flex;align-items:center;gap:5px}
.kp-portal .kp-investor-allocation-legend i{width:7px;height:7px;border-radius:50%;background:var(--kp-navy)}
.kp-portal .kp-investor-allocation-legend span+span i{background:#efa900}
.kp-portal .kp-investor-attention,.kp-portal .kp-investor-opportunities,.kp-portal .kp-investor-rooms{display:grid}
.kp-portal .kp-investor-attention-row,.kp-portal .kp-investor-opportunity,.kp-portal .kp-investor-room{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;min-width:0;padding:12px 16px;border-bottom:1px solid #e6eaf0;color:inherit;text-decoration:none}
.kp-portal .kp-investor-attention-row:last-child,.kp-portal .kp-investor-opportunity:last-child,.kp-portal .kp-investor-room:last-child{border-bottom:0}
.kp-portal .kp-investor-attention-row:hover,.kp-portal .kp-investor-opportunity:hover,.kp-portal .kp-investor-room:hover{background:#f9fbff}
.kp-portal .kp-investor-attention-icon{display:grid;place-items:center;width:29px;height:29px;border-radius:9px;background:#fff0c7;color:#926100;font-size:13px;font-weight:800}
.kp-portal .kp-investor-attention-icon.is-profile{background:#dff8f4;color:#087f6b}
.kp-portal .kp-investor-attention-icon.is-task,.kp-portal .kp-investor-attention-icon.is-room{background:#e8edff;color:#3159cd}
.kp-portal .kp-investor-attention-row>span:nth-child(2),.kp-portal .kp-investor-opportunity>span:nth-child(2),.kp-portal .kp-investor-room>span:nth-child(2){display:grid;gap:2px;min-width:0}
.kp-portal .kp-investor-attention-row strong,.kp-portal .kp-investor-opportunity strong,.kp-portal .kp-investor-room strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;color:#071b45}
.kp-portal .kp-investor-attention-row small,.kp-portal .kp-investor-opportunity small,.kp-portal .kp-investor-room small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9.5px;color:#647397}
.kp-portal .kp-investor-attention-row em,.kp-portal .kp-investor-opportunity em,.kp-portal .kp-investor-room em{padding:6px 9px;border-radius:8px;background:#eaf0ff;color:#245eff;font-size:9.5px;font-style:normal;font-weight:800}
.kp-portal .kp-investor-opportunity-art{display:block;width:44px;height:34px;margin-left:-5px;border-radius:8px;background:linear-gradient(145deg,#0e365b,#22a9c9)}
.kp-portal .kp-investor-opportunity-art.is-note{background:linear-gradient(145deg,#3e3007,#d8a20b)}
.kp-portal .kp-investor-empty{display:grid;gap:4px;padding:22px 18px;color:#647397}
.kp-portal .kp-investor-empty strong{font-size:12px;color:#263b61}
.kp-portal .kp-investor-empty p{margin:0;font-size:10.5px;line-height:1.5}
.kp-portal .kp-investor-empty--compact{padding:17px 16px}
.kp-portal .kp-investor-empty--row{grid-template-columns:36px minmax(0,1fr);align-items:center}
.kp-portal .kp-investor-empty-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#eaf0ff;color:#245eff;font-weight:800}

@media (max-width:1100px){
    .kp-portal .kp-investor-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
    .kp-portal .kp-investor-layout{grid-template-columns:1fr}
    .kp-portal .kp-investor-secondary{grid-template-columns:repeat(2,minmax(0,1fr))}
    .kp-portal .kp-investor-secondary>.kp-investor-panel:first-child{grid-column:1/-1}
}
@media (max-width:780px){
    .kp-portal .kp-invest-field-grid,.kp-portal .kp-invest-field-grid--copy,.kp-portal .kp-invest-stats-editor,.kp-portal .kp-invest-record-grid,.kp-portal .kp-invest-offer-primary{grid-template-columns:1fr}
    .kp-portal .kp-invest-span-2{grid-column:auto}
    .kp-portal .kp-invest-savebar,.kp-portal .kp-investor-welcome{align-items:flex-start;flex-direction:column}
    .kp-portal .kp-investor-secondary{grid-template-columns:1fr}
    .kp-portal .kp-investor-secondary>.kp-investor-panel:first-child{grid-column:auto}
}
@media (max-width:520px){
    .kp-portal .kp-invest-settings,.kp-portal .kp-invest-config-section{padding:15px}
    .kp-portal .kp-investor-kpis{grid-template-columns:1fr}
    .kp-portal .kp-investor-holding{grid-template-columns:38px minmax(0,1fr)}
    .kp-portal .kp-investor-holding-value{grid-column:2;text-align:left}
    .kp-portal .kp-investor-holding-value em{justify-self:start}
}

/* wl245 — dedicated Showcase editor, field-aware Copilot, and partner referral surface. */
.kp-portal .kp-showcase-only{width:100%;max-width:none}
.kp-portal .kp-showcase-only>.kp-invest-settings{margin:0;border:0;box-shadow:none}
.kp-showcase-drawer-open .kp-cop-fab{z-index:1320}
.kp-showcase-drawer-open .kp-cop-panel{z-index:1330}
.kp-portal .kp-invest-rich-field.is-kp-copilot-target{padding:9px;border:1px solid #8babff;border-radius:12px;background:#f7f9ff;box-shadow:0 0 0 2px rgba(20, 44, 79,.08)}
.kp-portal .kp-invest-rich-field.is-kp-copilot-inserted{border-color:#1caa8d;background:#effcf8;box-shadow:0 0 0 3px rgba(28,170,141,.12)}
.kp-portal .kp-cop-showcase-insert{margin-top:7px;background:#eef4ff;color:#245cdd;border-color:#bfd0fb}
.kp-portal .kp-partner-referrals{display:grid;gap:18px;padding:24px}
.kp-portal .kp-referral-link-card{display:grid;gap:7px;padding:18px;border:1px solid #c9d7f8;border-radius:14px;background:linear-gradient(135deg,#f7f9ff,#eef5ff)}
.kp-portal .kp-referral-link-card>span{color:#334155;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.kp-portal .kp-referral-link-card>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px}
.kp-portal .kp-referral-link-card input{min-width:0;background:#fff;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.kp-portal .kp-referral-link-card small{color:var(--kp-muted);font-size:10.5px}
.kp-portal .kp-referral-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.kp-portal .kp-referral-steps article{display:grid;grid-template-columns:32px minmax(0,1fr);gap:10px;padding:15px;border:1px solid #e1e7f0;border-radius:13px;background:#fff}
.kp-portal .kp-referral-steps article>b{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#eaf0ff;color:#245cdd}
.kp-portal .kp-referral-steps strong{color:var(--kp-navy);font-size:12px}
.kp-portal .kp-referral-steps p{margin:5px 0 0;color:var(--kp-muted);font-size:11px;line-height:1.5}
.kp-portal .kp-referral-terms{display:grid;gap:4px;padding:13px 15px;border-left:3px solid #f0ad20;background:#fffaf0;color:#59410d}
.kp-portal .kp-referral-terms strong{font-size:11px;text-transform:uppercase;letter-spacing:.05em}
.kp-portal .kp-referral-terms span{font-size:11.5px;line-height:1.5}
@media (max-width:780px){.kp-portal .kp-referral-steps{grid-template-columns:1fr}.kp-portal .kp-referral-link-card>div{grid-template-columns:1fr}}

/* ===== WL248 phone ergonomics =====
 * New responsive work uses phone <= 760px and tablet <= 1100px. Legacy
 * breakpoints remain in place until a dedicated migration release.
 */
@media (max-width:760px){
    .kp-portal input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]),
    .kp-portal select,
    .kp-portal textarea{font-size:16px}

    .kp-portal .kp-nav .kp-nav-link{display:flex;align-items:center;min-height:44px}
    .kp-portal .kp-button,
    .kp-portal .kp-button-small{min-height:44px;padding-top:10px;padding-bottom:10px}
    .kp-portal nav.kp-pp-pills a,
    .kp-portal nav.kp-pp-pills button,
    .kp-portal nav.kp-crm-ptabs a,
    .kp-portal nav.kp-setpanel-nav button{display:inline-flex;align-items:center;min-height:44px}
    .kp-portal [data-kp-layout]{min-width:44px;min-height:44px}
    .kp-portal [data-kp-section-open]{min-height:48px}
    .kp-portal input[type=checkbox],
    .kp-portal input[type=radio]{width:24px;height:24px;margin:10px 8px 10px 0}

    .kp-portal .kp-cop-fab{right:14px;bottom:calc(14px + env(safe-area-inset-bottom));width:48px;height:48px;padding:0;justify-content:center;border-radius:50%}
    .kp-portal .kp-cop-fab>span{display:none}
    .kp-portal .kp-main{padding-bottom:calc(88px + env(safe-area-inset-bottom))}
    .kp-portal .kp-cop-panel{right:8px;left:8px;bottom:calc(70px + env(safe-area-inset-bottom));width:auto}
}

/* WL248a — live 390px gate refinements. The website theme loads after the
 * portal asset, so ergonomic invariants use explicit importance here. */
@media (max-width:760px){
    .kp-portal input:not([type=hidden]),
    .kp-portal select,
    .kp-portal textarea{font-size:16px!important}
    .kp-portal input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]),
    .kp-portal select,
    .kp-portal textarea{min-height:44px!important}
    .kp-portal input[type=range]{min-height:44px}

    .kp-portal button,
    .kp-portal [role=button]{min-width:44px!important;min-height:44px!important;touch-action:manipulation}
    .kp-portal label.kp-check{display:flex;align-items:center;min-height:44px}

    .kp-portal nav a,
    .kp-portal .kp-nav-flyout-link,
    .kp-portal .kp-brand-mobile,
    .kp-portal .kp-record-back,
    .kp-portal .kp-tasks-rail-item,
    .kp-portal .kp-linklike,
    .kp-portal .kp-console-meta,
    .kp-portal .kp-console-open,
    .kp-portal .kp-bd-title,
    .kp-portal .kp-bench-jump,
    .kp-portal .kp-acq-filter-clear,
    .kp-portal .kp-deal-row-title,
    .kp-portal .kp-docs-sign-link,
    .kp-portal .kp-msgtoggle-btn,
    .kp-portal .kp-placement-open,
    .kp-portal .kp-gs-x{display:inline-flex;align-items:center;min-height:44px;touch-action:manipulation}
}

/* ===== WL249 phone navigation shell =====
 * Fixed operator navigation, a safe primary-action forwarder and one dynamic
 * horizontal tab treatment. Desktop and client/public portal chrome are
 * intentionally untouched.
 */
@media (max-width:760px){
    .kp-portal.kp-operator-mobile-shell .kp-bottombar{
        position:fixed;
        right:0;
        bottom:0;
        left:0;
        z-index:1200;
        display:flex;
        align-items:stretch;
        min-height:calc(64px + env(safe-area-inset-bottom));
        padding:0 max(4px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(4px,env(safe-area-inset-left));
        border-top:1px solid rgba(16,24,40,.12);
        background:rgba(255,255,255,.98);
        box-shadow:0 -8px 24px rgba(15,23,42,.12);
        transition:opacity .16s ease,transform .16s ease,visibility .16s ease;
        -webkit-backdrop-filter:blur(14px);
        backdrop-filter:blur(14px)
    }
    .kp-portal.kp-operator-mobile-shell .kp-bottombar-item{
        flex:1 1 0;
        min-width:0!important;
        min-height:56px!important;
        padding:6px 2px 5px;
        border:0;
        border-radius:0;
        color:#667085;
        background:transparent;
        text-decoration:none;
        appearance:none;
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        gap:3px;
        font:inherit;
        text-align:center;
        cursor:pointer;
        touch-action:manipulation
    }
    .kp-portal.kp-operator-mobile-shell .kp-bottombar-item:hover,
    .kp-portal.kp-operator-mobile-shell .kp-bottombar-item:focus-visible{color:#1748c9;background:#f3f6ff;outline:2px solid rgba(20, 44, 79,.28);outline-offset:-2px}
    .kp-portal.kp-operator-mobile-shell .kp-bottombar-item.is-active{color:#1748c9;background:#eef3ff}
    .kp-portal.kp-operator-mobile-shell .kp-bottombar-item.is-disabled{color:#98a2b3;background:#f8fafc;cursor:not-allowed;opacity:.72}
    .kp-portal.kp-operator-mobile-shell .kp-bottombar-icon{display:grid;place-items:center;width:21px;height:21px;line-height:1}
    .kp-portal.kp-operator-mobile-shell .kp-bottombar-icon svg{display:block;width:21px;height:21px;fill:currentColor}
    .kp-portal.kp-operator-mobile-shell .kp-bottombar-label{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;font-weight:700;line-height:1.1}
    .kp-portal.kp-operator-mobile-shell.is-menu-open .kp-bottombar,
    .kp-portal.kp-operator-mobile-shell.is-mobile-overlay-open .kp-bottombar{visibility:hidden;opacity:0;pointer-events:none;transform:translateY(100%)}

    .kp-portal.kp-operator-mobile-shell .kp-cop-fab{display:none!important}
    .kp-portal.kp-operator-mobile-shell .kp-main{padding-bottom:calc(80px + env(safe-area-inset-bottom))!important}
    .kp-portal.kp-operator-mobile-shell .kp-cop-panel:not(.is-docked){bottom:calc(70px + env(safe-area-inset-bottom))}

    .kp-portal.kp-operator-mobile-shell .kp-sticky-primary{
        position:fixed;
        right:max(10px,env(safe-area-inset-right));
        bottom:calc(70px + env(safe-area-inset-bottom));
        left:max(10px,env(safe-area-inset-left));
        z-index:1195;
        display:flex;
        justify-content:center;
        padding:7px;
        border:1px solid rgba(23,72,201,.14);
        border-radius:14px;
        background:rgba(255,255,255,.96);
        box-shadow:0 10px 28px rgba(15,23,42,.18);
        -webkit-backdrop-filter:blur(12px);
        backdrop-filter:blur(12px)
    }
    .kp-portal.kp-operator-mobile-shell .kp-sticky-primary[hidden]{display:none!important}
    .kp-portal.kp-operator-mobile-shell .kp-sticky-primary .kp-button{width:100%;justify-content:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .kp-portal.kp-operator-mobile-shell.is-menu-open .kp-sticky-primary,
    .kp-portal.kp-operator-mobile-shell.is-mobile-overlay-open .kp-sticky-primary{display:none!important}

    .kp-portal.kp-operator-mobile-shell nav.kp-pp-pills,
    .kp-portal.kp-operator-mobile-shell nav.kp-crm-ptabs,
    .kp-portal.kp-operator-mobile-shell nav.kp-setpanel-nav{
        display:flex;
        flex-flow:row nowrap;
        align-items:center;
        max-width:100%;
        overflow-x:auto;
        overflow-y:hidden;
        scroll-snap-type:x proximity;
        scrollbar-width:none;
        -webkit-overflow-scrolling:touch;
        -webkit-mask-image:none;
        mask-image:none
    }
    .kp-portal.kp-operator-mobile-shell nav.kp-pp-pills::-webkit-scrollbar,
    .kp-portal.kp-operator-mobile-shell nav.kp-crm-ptabs::-webkit-scrollbar,
    .kp-portal.kp-operator-mobile-shell nav.kp-setpanel-nav::-webkit-scrollbar{display:none}
    .kp-portal.kp-operator-mobile-shell nav.kp-pp-pills>* ,
    .kp-portal.kp-operator-mobile-shell nav.kp-crm-ptabs>* ,
    .kp-portal.kp-operator-mobile-shell nav.kp-setpanel-nav>*{flex:0 0 auto;scroll-snap-align:start}
    .kp-portal.kp-operator-mobile-shell nav.kp-pp-pills.has-kp-tab-more,
    .kp-portal.kp-operator-mobile-shell nav.kp-crm-ptabs.has-kp-tab-more,
    .kp-portal.kp-operator-mobile-shell nav.kp-setpanel-nav.has-kp-tab-more{
        -webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 32px),transparent 100%);
        mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 32px),transparent 100%)
    }

    .kp-portal.kp-operator-mobile-shell .kp-pp-pillcard{
        position:sticky;
        top:68px;
        z-index:25;
        box-sizing:border-box;
        height:56px;
        max-height:56px;
        margin-bottom:14px;
        padding:5px 12px;
        overflow:hidden;
        background:var(--kp-white)
    }
    .kp-portal.kp-operator-mobile-shell .kp-pp-pillcard .kp-pp-pills{height:44px;min-height:44px;margin:0}
    .kp-portal.kp-operator-mobile-shell .kp-crm-panel .kp-crm-ptabs{position:sticky;top:0;z-index:5;flex:0 0 auto;background:#fff}
}

/* ===== WL250 phone page layouts =====
 * Dense operator workspaces become phone-native without changing their
 * desktop DOM. Paired camera/file controls are shared with client workspaces.
 */
.kp-portal .kp-section-home-disclosure{display:none}

/* The accordion header is a semantic button at every size. At desktop it
   inherits the exact pre-WL250 header geometry instead of browser button
   chrome; JavaScript only makes it operable at the phone breakpoint. */
.kp-portal .kp-bd-col-toggle{
    appearance:none;
    -webkit-appearance:none;
    display:flex;
    align-items:center;
    gap:7px;
    width:100%;
    min-width:0;
    min-height:0;
    margin:0;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    color:inherit;
    font:inherit;
    text-align:left;
    cursor:default
}
.kp-portal .kp-bd-col-chevron{display:none}

/* Portal Experience on/off choices are switches on desktop and phone. The
   requirement checklists intentionally lack .kp-switch and stay checkboxes. */
.kp-portal.kp-operator-mobile-shell label.kp-switch{min-height:44px;cursor:pointer;touch-action:manipulation}
.kp-portal.kp-operator-mobile-shell .kp-pe-toggle.kp-switch{grid-template-columns:44px minmax(0,1fr);align-items:center}
.kp-portal.kp-operator-mobile-shell .kp-pe-switch.kp-switch{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:7px 10px}
.kp-portal.kp-operator-mobile-shell .kp-switch>input[type=checkbox]{
    appearance:none;
    -webkit-appearance:none;
    flex:0 0 44px;
    width:44px!important;
    height:26px!important;
    min-height:26px!important;
    margin:0!important;
    padding:0;
    border:1px solid #b7c0ce;
    border-radius:999px;
    background-color:#d0d5dd;
    background-image:radial-gradient(circle at 13px 50%,#fff 0 9px,transparent 10px);
    box-shadow:inset 0 1px 2px rgba(16,24,40,.12);
    cursor:pointer;
    transition:background-color .16s ease,background-position .16s ease,border-color .16s ease
}
.kp-portal.kp-operator-mobile-shell .kp-switch>input[type=checkbox]:checked{
    border-color:var(--kp-primary,var(--kp-navy));
    background-color:var(--kp-primary,var(--kp-navy));
    background-image:radial-gradient(circle at 31px 50%,#fff 0 9px,transparent 10px)
}
.kp-portal.kp-operator-mobile-shell .kp-switch>input[type=checkbox]:focus-visible{outline:3px solid rgba(20, 44, 79,.24);outline-offset:2px}

/* The second camera chooser is a phone affordance. Desktop/client desktop
   preserves the former single file field exactly. */
@media (min-width:761px){
    .kp-portal .kp-file-pair-actions,
    .kp-portal .kp-file-pair [data-kp-file-input="camera"]{display:none!important}
}

@media (max-width:760px){
    /* Pipeline summary and list: two readable facts per row, then one deal
       fact per line. Money is never clipped or ellipsized on a phone. */
    .kp-portal.kp-operator-mobile-shell .kp-acq-board-stats{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        grid-column:1/-1;
        gap:0;
        width:100%;
        overflow:visible
    }
    .kp-portal.kp-operator-mobile-shell .kp-acq-board-stats>div{
        box-sizing:border-box;
        min-width:0;
        padding:9px 11px;
        border-top:1px solid #e5eaf0;
        border-left:0
    }
    .kp-portal.kp-operator-mobile-shell .kp-acq-board-stats>div:nth-child(even){border-left:1px solid #e5eaf0}
    .kp-portal.kp-operator-mobile-shell .kp-acq-board-stats dt,
    .kp-portal.kp-operator-mobile-shell .kp-acq-board-stats dd{
        overflow:visible;
        text-overflow:clip;
        white-space:normal;
        overflow-wrap:anywhere
    }
    .kp-portal.kp-operator-mobile-shell .kp-deal-row{
        grid-template-columns:56px minmax(0,1fr);
        gap:6px 12px;
        padding:12px
    }
    .kp-portal.kp-operator-mobile-shell .kp-deal-row-thumb{width:56px;height:44px}
    .kp-portal.kp-operator-mobile-shell .kp-deal-row-main{grid-column:2;gap:3px}
    .kp-portal.kp-operator-mobile-shell .kp-deal-row-title,
    .kp-portal.kp-operator-mobile-shell .kp-deal-row-addr{
        display:block;
        overflow:visible;
        text-overflow:clip;
        white-space:normal
    }
    .kp-portal.kp-operator-mobile-shell .kp-deal-row-money,
    .kp-portal.kp-operator-mobile-shell .kp-deal-row-flags{grid-column:2;min-width:0;justify-content:flex-start}
    .kp-portal.kp-operator-mobile-shell .kp-deal-row-money,
    .kp-portal.kp-operator-mobile-shell .kp-deal-row-money>*{
        max-width:100%;
        overflow:visible;
        text-overflow:clip;
        white-space:normal;
        overflow-wrap:anywhere
    }

    /* Board remains available by choice, but columns are touch accordions and
       the Move control is the sole transition mechanism. */
    .kp-portal.kp-operator-mobile-shell .kp-acq-layout-board,
    .kp-portal.kp-operator-mobile-shell .kp-acq-list-workspace.is-board,
    .kp-portal.kp-operator-mobile-shell .kp-bd{min-width:0;width:100%;overflow:visible}
    .kp-portal.kp-operator-mobile-shell .kp-bd-section.has-more::after,
    .kp-portal.kp-operator-mobile-shell .kp-bd-panel.has-more::after{display:none}
    .kp-portal.kp-operator-mobile-shell .kp-bd-panel{padding-top:8px}
    .kp-portal.kp-operator-mobile-shell .kp-bd-panel .kp-bd-lane,
    .kp-portal.kp-operator-mobile-shell .kp-bd-tray .kp-bd-lane{
        display:grid;
        grid-template-columns:minmax(0,1fr);
        gap:8px;
        padding:0 8px 10px;
        overflow:visible
    }
    .kp-portal.kp-operator-mobile-shell .kp-bd-panel .kp-bd-col,
    .kp-portal.kp-operator-mobile-shell .kp-bd-tray .kp-bd-col{
        display:block;
        width:100%;
        min-width:0;
        max-width:none;
        min-height:0;
        overflow:hidden;
        border:1px solid #dce5ee;
        border-radius:10px;
        background:#fff
    }
    .kp-portal.kp-operator-mobile-shell .kp-bd-panel .kp-bd-col-head,
    .kp-portal.kp-operator-mobile-shell .kp-bd-tray .kp-bd-col-head{min-height:0;padding:0}
    .kp-portal.kp-operator-mobile-shell .kp-bd-col-toggle{
        appearance:none;
        display:grid;
        grid-template-columns:8px minmax(0,1fr) auto auto 18px;
        align-items:center;
        gap:8px;
        width:100%;
        min-height:48px!important;
        padding:7px 10px;
        border:0;
        background:#f8fafc;
        color:#17233c;
        font:inherit;
        text-align:left;
        cursor:pointer
    }
    .kp-portal.kp-operator-mobile-shell .kp-bd-col-toggle:focus-visible{outline:2px solid var(--kp-direct-accent,var(--kp-navy));outline-offset:-2px}
    .kp-portal.kp-operator-mobile-shell .kp-bd-col-title{
        min-width:0;
        overflow:visible;
        text-overflow:clip;
        white-space:normal;
        font-size:12px;
        line-height:1.25
    }
    .kp-portal.kp-operator-mobile-shell .kp-bd-col-total{display:block!important;white-space:nowrap;font-size:11px;color:#5a6478}
    .kp-portal.kp-operator-mobile-shell .kp-bd-col-chevron::before{
        content:"";
        display:block;
        width:8px;
        height:8px;
        margin:0 auto;
        border-right:2px solid #7a8496;
        border-bottom:2px solid #7a8496;
        transform:rotate(45deg) translate(-1px,-1px);
        transition:transform .15s ease
    }
    .kp-portal.kp-operator-mobile-shell .kp-bd-col.is-mobile-collapsed .kp-bd-col-chevron::before{transform:rotate(-45deg)}
    .kp-portal.kp-operator-mobile-shell .kp-bd-panel .kp-bd-col-body,
    .kp-portal.kp-operator-mobile-shell .kp-bd-tray .kp-bd-col-body,
    .kp-portal.kp-operator-mobile-shell .kp-bd-col-panel,
    .kp-portal.kp-operator-mobile-shell [data-kp-bd-col-panel]{
        min-height:0;
        padding:8px;
        border:0;
        border-top:1px solid #e5eaf0;
        border-radius:0;
        background:#f8fafc
    }
    .kp-portal.kp-operator-mobile-shell .kp-bd-col-body[hidden]{display:none!important}
    .kp-portal.kp-operator-mobile-shell .kp-bd-col-empty{display:none!important}
    .kp-portal.kp-operator-mobile-shell .kp-bd[data-kp-bd-mobile-drag="off"] .kp-bd-card{cursor:default;touch-action:pan-y}
    .kp-portal.kp-operator-mobile-shell .kp-bd-panel .kp-bd-card-top{grid-template-columns:minmax(0,1fr) 44px;align-items:start}
    .kp-portal.kp-operator-mobile-shell .kp-bd-tray .kp-bd-card-top{grid-template-columns:44px minmax(0,1fr) 44px;align-items:start}
    .kp-portal.kp-operator-mobile-shell .kp-bd-panel .kp-bd-move,
    .kp-portal.kp-operator-mobile-shell .kp-bd-tray .kp-bd-move{width:44px;height:44px;opacity:1}
    .kp-portal.kp-operator-mobile-shell .kp-bd-panel .kp-bd-title,
    .kp-portal.kp-operator-mobile-shell .kp-bd-panel .kp-bd-addr,
    .kp-portal.kp-operator-mobile-shell .kp-bd-panel .kp-bd-ask,
    .kp-portal.kp-operator-mobile-shell .kp-bd-tray .kp-bd-title,
    .kp-portal.kp-operator-mobile-shell .kp-bd-tray .kp-bd-addr,
    .kp-portal.kp-operator-mobile-shell .kp-bd-tray .kp-bd-ask{
        display:block;
        max-width:100%;
        overflow:visible;
        text-overflow:clip;
        white-space:normal;
        overflow-wrap:anywhere
    }
    .kp-portal.kp-operator-mobile-shell .kp-bd-menu{min-width:min(330px,calc(100vw - 16px))}
    .kp-portal.kp-operator-mobile-shell .kp-bd-menu button{min-height:44px!important;padding:9px 10px}
    .kp-portal.kp-operator-mobile-shell .kp-bd-menu button>span:nth-child(2){flex:1 1 auto;min-width:0}
    .kp-portal.kp-operator-mobile-shell .kp-bd-menu-terminal{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#e7f7f2;color:#087955;font-size:11px;font-weight:800}

    /* Property hero and record controls. */
    .kp-portal.kp-operator-mobile-shell .kp-ppd-herocard{padding:0;overflow:hidden}
    .kp-portal.kp-operator-mobile-shell .kp-ppd-hero{display:grid;grid-template-columns:minmax(0,1fr);gap:0;width:100%}
    .kp-portal.kp-operator-mobile-shell .kp-ppd-gallery{
        grid-template-columns:minmax(0,1fr);
        grid-template-rows:minmax(0,1fr);
        gap:0;
        width:100%;
        max-height:none;
        aspect-ratio:16/10
    }
    .kp-portal.kp-operator-mobile-shell .kp-ppd-gallery-link{border-radius:0}
    .kp-portal.kp-operator-mobile-shell .kp-ppd-gallery-link.kp-ppd-gal-main{grid-row:auto}
    .kp-portal.kp-operator-mobile-shell .kp-ppd-gallery-link:not(.kp-ppd-gal-main){display:none}
    .kp-portal.kp-operator-mobile-shell .kp-ppd-gallery-link img{width:100%;height:100%;object-fit:cover}
    .kp-portal.kp-operator-mobile-shell .kp-ppd-head{padding:16px}
    .kp-portal.kp-operator-mobile-shell .kp-ppd-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}
    .kp-portal.kp-operator-mobile-shell .kp-ppd-strip-k{
        overflow:visible;
        text-overflow:clip;
        white-space:normal;
        overflow-wrap:anywhere
    }
    .kp-portal.kp-operator-mobile-shell [data-kp-record-actions]{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;width:100%}
    .kp-portal.kp-operator-mobile-shell .kp-pp-record-controls{width:100%}
    .kp-portal.kp-operator-mobile-shell [data-kp-record-actions]>.kp-console-inline-form,
    .kp-portal.kp-operator-mobile-shell [data-kp-record-stage-form],
    .kp-portal.kp-operator-mobile-shell [data-kp-record-file-form]{
        display:grid;
        grid-template-columns:minmax(0,1fr);
        gap:8px;
        width:100%;
        margin:0
    }
    .kp-portal.kp-operator-mobile-shell [data-kp-record-actions] select,
    .kp-portal.kp-operator-mobile-shell [data-kp-record-actions] .kp-button,
    .kp-portal.kp-operator-mobile-shell .kp-acq-attach-label{box-sizing:border-box;width:100%;max-width:none;justify-content:center}
    .kp-portal.kp-operator-mobile-shell .kp-acq-attach-label{display:grid;gap:7px;align-items:stretch}
    .kp-portal.kp-operator-mobile-shell .kp-acq-attach-label input[type=file]{width:100%;max-width:none}

    /* Settings becomes a compact identity row plus a sticky horizontal strip,
       keeping the selected section close to the top of the viewport. */
    .kp-portal.kp-operator-mobile-shell .kp-setpanel{display:block;min-width:0}
    .kp-portal.kp-operator-mobile-shell .kp-setpanel-rail{
        position:sticky;
        top:68px;
        z-index:24;
        display:grid;
        gap:6px;
        width:100%;
        margin:0 0 12px;
        padding:7px 8px 8px;
        overflow:hidden;
        text-align:left;
        background:#fff
    }
    .kp-portal.kp-operator-mobile-shell .kp-setpanel-identity{display:flex;align-items:center;gap:9px;min-width:0;min-height:38px}
    .kp-portal.kp-operator-mobile-shell .kp-setpanel-avatar{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;font-size:17px}
    .kp-portal.kp-operator-mobile-shell .kp-setpanel-who{display:flex;flex:1 1 auto;align-items:center;flex-direction:row;gap:8px;min-width:0;margin:0}
    .kp-portal.kp-operator-mobile-shell .kp-setpanel-who strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}
    .kp-portal.kp-operator-mobile-shell .kp-setpanel-who>.kp-console-meta{display:none}
    .kp-portal.kp-operator-mobile-shell .kp-setpanel-who>.kp-badge{flex:0 0 auto;max-width:42%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .kp-portal.kp-operator-mobile-shell nav.kp-setpanel-nav{
        position:relative;
        top:auto;
        z-index:auto;
        gap:4px;
        min-height:48px;
        margin:0;
        padding:2px 0 0;
        border-top:1px solid #e5eaf0;
        background:#fff
    }
    .kp-portal.kp-operator-mobile-shell nav.kp-setpanel-nav button{min-height:44px!important;padding:8px 12px;white-space:nowrap}
    .kp-portal.kp-operator-mobile-shell .kp-setpanel-main{min-width:0;margin-top:0}
    .kp-portal.kp-operator-mobile-shell .kp-setpanel-section{scroll-margin-top:174px}

    /* Section homes keep the primary destination visible; context moves into
       the native What's here disclosure and tools become two compact columns. */
    .kp-portal.kp-operator-mobile-shell .kp-content{grid-template-columns:minmax(0,1fr)}
    .kp-portal.kp-operator-mobile-shell .kp-section-home-wrap{min-width:0;max-width:100%}
    .kp-portal.kp-operator-mobile-shell .kp-section-home{border-radius:14px}
    .kp-portal.kp-operator-mobile-shell .kp-section-home-hero{display:block;min-height:0}
    .kp-portal.kp-operator-mobile-shell .kp-section-home-copy{padding:18px 16px}
    .kp-portal.kp-operator-mobile-shell .kp-section-home-copy .kp-eyebrow{margin-bottom:5px}
    .kp-portal.kp-operator-mobile-shell .kp-section-home-copy h1{
        max-width:100%;
        margin:0;
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
        font-size:25px;
        line-height:1.15
    }
    .kp-portal.kp-operator-mobile-shell .kp-section-home-copy>p:not(.kp-eyebrow),
    .kp-portal.kp-operator-mobile-shell [data-kp-section-description],
    .kp-portal.kp-operator-mobile-shell [data-kp-section-summary],
    .kp-portal.kp-operator-mobile-shell .kp-section-home-summary,
    .kp-portal.kp-operator-mobile-shell .kp-section-home-art{display:none}
    .kp-portal.kp-operator-mobile-shell .kp-section-home-actions{margin-top:13px}
    .kp-portal.kp-operator-mobile-shell .kp-section-home-actions>*:not(.kp-button-primary){display:none}
    .kp-portal.kp-operator-mobile-shell .kp-section-home-actions .kp-button-primary{width:100%;justify-content:center}
    .kp-portal.kp-operator-mobile-shell .kp-section-home-disclosure{display:block;border-top:1px solid #e3e9f0;background:#f8fafc}
    .kp-portal.kp-operator-mobile-shell .kp-section-home-disclosure>summary{display:flex;align-items:center;min-height:44px;padding:8px 16px;color:#164f80;font-size:13px;font-weight:750;cursor:pointer}
    .kp-portal.kp-operator-mobile-shell .kp-section-home-disclosure-body{display:grid;gap:10px;padding:0 16px 14px;color:#4f6278;font-size:12px;line-height:1.5}
    .kp-portal.kp-operator-mobile-shell .kp-section-home-disclosure-body p{margin:0}
    .kp-portal.kp-operator-mobile-shell .kp-section-home-disclosure-summary{display:grid;gap:6px}
    .kp-portal.kp-operator-mobile-shell .kp-section-home-disclosure-summary>span{display:grid;gap:1px}
    .kp-portal.kp-operator-mobile-shell .kp-section-tool-area{padding:13px 10px 9px}
    .kp-portal.kp-operator-mobile-shell .kp-section-tool-heading{display:block;margin-bottom:8px}
    .kp-portal.kp-operator-mobile-shell .kp-section-tool-heading .kp-eyebrow,
    .kp-portal.kp-operator-mobile-shell .kp-section-tool-heading>p{display:none}
    .kp-portal.kp-operator-mobile-shell .kp-section-tool-heading h2{margin:0;font-size:15px}
    .kp-portal.kp-operator-mobile-shell .kp-section-toolrail{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;border:0;background:transparent}
    .kp-portal.kp-operator-mobile-shell .kp-section-toolrail>a{
        display:grid;
        grid-template-columns:32px minmax(0,1fr);
        align-items:center;
        gap:8px;
        min-height:48px;
        padding:8px;
        border:1px solid #e3e9f0!important;
        border-radius:9px;
        background:#fff
    }
    .kp-portal.kp-operator-mobile-shell .kp-section-tool-icon{width:32px;height:32px}
    .kp-portal.kp-operator-mobile-shell .kp-section-tool-copy{padding:0}
    .kp-portal.kp-operator-mobile-shell .kp-section-tool-copy strong{font-size:12px;line-height:1.25}
    .kp-portal.kp-operator-mobile-shell .kp-section-tool-copy small,
    .kp-portal.kp-operator-mobile-shell .kp-section-tool-arrow{display:none}
    .kp-portal.kp-operator-mobile-shell .kp-section-product-badge{font-size:8px}
    .kp-portal.kp-operator-mobile-shell .kp-section-toolrail>a.has-product-status{grid-template-rows:auto auto}
    .kp-portal.kp-operator-mobile-shell .kp-section-toolrail>a.has-product-status .kp-section-tool-top{display:contents}
    .kp-portal.kp-operator-mobile-shell .kp-section-toolrail>a.has-product-status .kp-section-tool-icon{grid-column:1;grid-row:1 / span 2}
    .kp-portal.kp-operator-mobile-shell .kp-section-toolrail>a.has-product-status .kp-section-tool-copy{grid-column:2;grid-row:1}
    .kp-portal.kp-operator-mobile-shell .kp-section-toolrail>a.has-product-status .kp-section-product-badge{grid-column:2;grid-row:2;justify-self:start;margin-top:3px}

    /* Native file inputs retain validation and accessibility while their
       selector button reaches the 44px touch target. Client camera pairs are
       intentionally included outside the operator-shell scope. */
    .kp-portal .kp-file-pair{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;width:100%;min-width:0}
    .kp-portal .kp-file-pair-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;width:100%}
    .kp-portal .kp-file-pair-actions .kp-button{width:100%;justify-content:center}
    .kp-portal .kp-file-pair [data-kp-file-input][disabled]{display:none!important}
    .kp-portal input[type=file]{box-sizing:border-box;width:100%;max-width:none!important;min-height:44px!important;padding:0;border:1px solid #cfd7e3;border-radius:9px;background:#fff;color:#475467;line-height:44px}
    .kp-portal input[type=file]::file-selector-button{
        min-height:44px;
        margin:0 10px 0 0;
        padding:9px 13px;
        border:0;
        border-right:1px solid #cfd7e3;
        background:#f4f7fb;
        color:#18324f;
        font:inherit;
        font-weight:700;
        cursor:pointer
    }
    .kp-portal input[type=file]::-webkit-file-upload-button{
        min-height:44px;
        margin:0 10px 0 0;
        padding:9px 13px;
        border:0;
        border-right:1px solid #cfd7e3;
        background:#f4f7fb;
        color:#18324f;
        font:inherit;
        font-weight:700;
        cursor:pointer
    }
}
/* ===== wl259 — complete section cards and responsive transaction workspace ===== */
/* Every section destination is a complete card. This avoids positional border
   rules leaving partial outlines whenever a row is not completely filled. */
.kp-portal .kp-section-toolrail,
.kp-portal .kp-docs-toolrail {
    gap: 12px;
    overflow: visible;
    border: 0;
    background: transparent;
}
.kp-portal .kp-section-toolrail > a,
.kp-portal .kp-docs-toolrail > a {
    border: 1px solid #dfe6ee !important;
    border-radius: 12px;
    background: #fbfcfe;
}
.kp-portal .kp-docs-toolrail {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.kp-portal .kp-section-toolrail > a.has-count {
    padding-bottom: 43px;
}
.kp-portal .kp-section-tool-count {
    position: absolute;
    left: 14px;
    bottom: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 25px;
    min-height: 20px;
    padding: 1px 7px;
    border-radius: 999px;
    background: #eaf2ff;
    color: #2456c6;
    font-size: 10.5px;
    font-weight: 800;
    line-height: 1;
}

.kp-portal .kp-od-shell {
    display: grid;
    gap: 16px;
    min-width: 0;
}
.kp-portal .kp-od-shell > .kp-card,
.kp-portal .kp-od-detail > .kp-card {
    margin: 0;
}
.kp-portal .kp-od-hero {
    position: relative;
    overflow: hidden;
    border-color: #dce5f1;
    background: linear-gradient(135deg, #fff 0%, #f7faff 68%, #edf8fc 100%);
}
.kp-portal .kp-od-hero::after {
    position: absolute;
    top: -64px;
    right: -52px;
    width: 190px;
    height: 190px;
    border: 28px solid rgba(52, 124, 226, .08);
    border-radius: 50%;
    content: "";
    pointer-events: none;
}
.kp-portal .kp-od-hero .kp-section-heading,
.kp-portal .kp-od-hero > p {
    position: relative;
    z-index: 1;
}
.kp-portal .kp-od-hero-stats {
    display: flex;
    align-items: stretch;
    gap: 8px;
    margin-left: auto;
}
.kp-portal .kp-od-hero-stats > span {
    display: grid;
    gap: 1px;
    min-width: 104px;
    padding: 9px 12px;
    border: 1px solid #d9e4f2;
    border-radius: 10px;
    background: rgba(255, 255, 255, .82);
    color: #65758b;
    font-size: 10.5px;
    line-height: 1.2;
}
.kp-portal .kp-od-hero-stats strong {
    color: #102a52;
    font-size: 19px;
    line-height: 1.1;
}
.kp-portal .kp-od-page-tabs {
    margin: 0;
    border: 1px solid #dfe6ef;
    border-radius: 12px;
    background: #fff;
}
.kp-portal .kp-od-ready-card,
.kp-portal .kp-od-empty-card {
    border-color: #dfe6ef;
}
.kp-portal .kp-od-stage-card {
    min-width: 0;
    padding: 15px 18px;
    border-color: #dfe6ef;
}
.kp-portal .kp-od-stage-dates {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 7px;
    color: #7e8da3;
    font-size: 11px;
}
.kp-portal .kp-od-stage-track {
    display: grid;
    grid-template-columns: repeat(7, minmax(112px, 1fr));
    gap: 6px;
    overflow-x: auto;
    padding: 1px 1px 5px;
    scrollbar-width: thin;
}
.kp-portal .kp-od-stage-step {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-height: 40px;
    padding: 7px 6px;
    border: 1px solid #dfe5ee;
    border-radius: 8px;
    background: #f7f9fc;
    color: #8a98ab;
    font: inherit;
    font-size: 11px;
    font-weight: 700;
    text-align: center;
    cursor: pointer;
}
.kp-portal .kp-od-stage-step:hover,
.kp-portal .kp-od-stage-step:focus-visible {
    border-color: #78a8f6;
    outline: none;
    box-shadow: 0 0 0 3px rgba(47, 111, 237, .12);
}
.kp-portal .kp-od-stage-step.is-complete {
    border-color: #cfdaf3;
    background: #edf2ff;
    color: #2e56bd;
}
.kp-portal .kp-od-stage-step.is-current {
    border-color: #2c58d5;
    background: linear-gradient(135deg, #3046c8, #2e75ec);
    color: #fff;
    box-shadow: 0 7px 16px rgba(44, 88, 213, .18);
}
.kp-portal .kp-od-stage-step.is-current.is-lost {
    border-color: #d93838;
    background: #e14848;
}
.kp-portal .kp-od-stage-step > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
    border: 1px solid currentColor;
    border-radius: 50%;
    font: italic 9px/1 Georgia, serif;
}
.kp-portal .kp-od-quickgrid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 8px;
    margin-top: 13px;
    padding-top: 13px;
    border-top: 1px solid #e7edf4;
}
.kp-portal .kp-od-quick {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-width: 0;
    min-height: 40px;
    padding: 8px 10px;
    border: 1px solid #d9e3f0;
    border-radius: 9px;
    background: #fff;
    color: #254265;
    font: inherit;
    font-size: 11.5px;
    font-weight: 750;
    cursor: pointer;
}
.kp-portal .kp-od-quick:hover,
.kp-portal .kp-od-quick:focus-visible {
    border-color: #75a9ed;
    background: #f3f8ff;
    outline: none;
}
.kp-portal .kp-od-count,
.kp-portal .kp-od-rail-total {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 21px;
    min-height: 21px;
    padding: 1px 6px;
    border-radius: 999px;
    background: #e8efff;
    color: #2857c7;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
}
.kp-portal .kp-od-layout {
    display: grid;
    grid-template-columns: minmax(250px, 290px) minmax(0, 1fr);
    gap: 16px;
    align-items: start;
    min-width: 0;
}
.kp-portal .kp-od-layout.is-deal-room {
    grid-template-columns: minmax(0, 1fr);
}
.kp-portal .kp-od-rail {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #dfe6ef;
    border-radius: 13px;
    background: #f8faff;
}
.kp-portal .kp-od-rail-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 13px 14px;
    border-bottom: 1px solid #e1e7f0;
    background: #fff;
    color: #173252;
    font-size: 12px;
    font-weight: 800;
}
.kp-portal .kp-od-rail-list {
    min-width: 0;
    padding: 12px;
}
.kp-portal .kp-od-rail-list > div:not([data-kp-sort-item]) {
    grid-column: 1 / -1;
}
.kp-portal .kp-od-rail-list > div select {
    max-width: 155px;
    min-height: 36px;
}
.kp-portal .kp-od-deal-card {
    display: grid;
    gap: 4px;
    min-width: 0;
    margin-bottom: 9px;
    padding: 13px 14px;
    border: 1px solid #dfe6ef;
    border-radius: 11px;
    background: #fff;
    color: #18324f;
    text-decoration: none;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.kp-portal .kp-od-deal-card:last-child { margin-bottom: 0; }
.kp-portal .kp-od-deal-card:hover,
.kp-portal .kp-od-deal-card:focus-visible {
    border-color: #7caaf0;
    outline: none;
    box-shadow: 0 7px 18px rgba(24, 50, 79, .09);
    transform: translateY(-1px);
}
.kp-portal .kp-od-deal-card.is-selected {
    border-color: #2e62dc;
    box-shadow: 0 0 0 2px rgba(46, 98, 220, .13), 0 8px 20px rgba(24, 50, 79, .08);
}
.kp-portal .kp-od-deal-card strong {
    overflow-wrap: anywhere;
    font-size: 13px;
    line-height: 1.35;
}
.kp-portal .kp-od-deal-stage {
    color: #2d65ca;
    font-size: 9.5px;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.kp-portal .kp-od-deal-meta {
    color: #708198;
    font-size: 11px;
    line-height: 1.35;
}
.kp-portal .kp-od-detail {
    display: grid;
    gap: 16px;
    min-width: 0;
}
.kp-portal .kp-od-overview,
.kp-portal .kp-od-people {
    border-color: #dfe6ef;
}
.kp-portal .kp-od-overview-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(250px, .65fr);
    gap: 14px;
}
.kp-portal .kp-od-panel {
    min-width: 0;
    padding: 14px;
    border: 1px solid #e0e7f0;
    border-radius: 11px;
    background: #fbfcfe;
}
.kp-portal .kp-od-panel > h3 { margin-top: 0; }
.kp-portal .kp-od-terms-form {
    margin-top: 11px;
    padding-top: 11px;
    border-top: 1px solid #e3e9f1;
}
.kp-portal .kp-od-term-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}
.kp-portal .kp-od-stage-form {
    display: flex;
    gap: 8px;
    margin-top: 10px;
}
.kp-portal .kp-od-stage-form select { flex: 1 1 auto; min-width: 0; }
.kp-portal .kp-od-people-head,
.kp-portal .kp-od-person-row {
    display: flex;
    align-items: center;
    gap: 10px;
}
.kp-portal .kp-od-person-row {
    padding: 10px 0;
    border-top: 1px solid #e8edf3;
}
.kp-portal .kp-od-person-add {
    display: grid;
    grid-template-columns: minmax(180px, 2fr) minmax(130px, 1fr) auto;
    gap: 8px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #e8edf3;
}
.kp-portal .kp-od-person-add select { width: 100%; min-width: 0; }

@media (max-width: 1180px) {
    .kp-portal .kp-docs-toolrail { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .kp-portal .kp-od-quickgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .kp-portal .kp-od-overview-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 900px) {
    .kp-portal .kp-section-toolrail,
    .kp-portal .kp-docs-toolrail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kp-portal .kp-od-layout { grid-template-columns: minmax(0, 1fr); }
    .kp-portal .kp-od-rail-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
    .kp-portal .kp-od-deal-card { margin: 0; }
    .kp-portal .kp-od-stage-step,
    .kp-portal .kp-od-quick { min-height: 44px; }
}

@media (max-width: 640px) {
    .kp-portal .kp-section-toolrail,
    .kp-portal .kp-docs-toolrail { grid-template-columns: minmax(0, 1fr); }
    .kp-portal .kp-section-toolrail > a,
    .kp-portal .kp-docs-toolrail > a { border: 1px solid #dfe6ee !important; }
    .kp-portal .kp-od-hero .kp-section-heading,
    .kp-portal .kp-od-people-head { align-items: flex-start; flex-direction: column; }
    .kp-portal .kp-od-hero-stats { width: 100%; margin-left: 0; }
    .kp-portal .kp-od-hero-stats > span { flex: 1 1 0; min-width: 0; }
    .kp-portal .kp-od-page-tabs { overflow-x: auto; }
    .kp-portal .kp-od-page-tab { min-height: 44px; white-space: nowrap; }
    .kp-portal .kp-od-quickgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kp-portal .kp-od-rail-list { grid-template-columns: minmax(0, 1fr); }
    .kp-portal .kp-od-term-grid,
    .kp-portal .kp-od-person-add { grid-template-columns: minmax(0, 1fr); }
    .kp-portal .kp-od-stage-form { align-items: stretch; flex-direction: column; }
    .kp-portal .kp-od-stage-form .kp-button,
    .kp-portal .kp-od-person-add .kp-button { justify-content: center; width: 100%; min-height: 44px; }
    .kp-portal .kp-od-person-row { align-items: flex-start; flex-wrap: wrap; }
    .kp-portal .kp-od-person-row > span:first-child { flex-basis: 100% !important; }
}

@media (max-width: 420px) {
    .kp-portal .kp-od-quickgrid { grid-template-columns: minmax(0, 1fr); }
}

/* WL259 — custom CRM form builder. */
.kp-portal .kp-formb-dialog { width: min(1120px, 96vw); }
.kp-portal .kp-formb { overflow-y: auto; padding: 22px; }
.kp-portal .kp-formb-head,
.kp-portal .kp-formb-savebar { display: flex; align-items: flex-start; justify-content: space-between; gap: 22px; }
.kp-portal .kp-formb-head { padding-bottom: 20px; border-bottom: 1px solid #dce5f2; }
.kp-portal .kp-formb-head h2 { margin: 2px 0 6px; }
.kp-portal .kp-formb-form { display: grid; gap: 22px; padding-top: 22px; }
.kp-portal .kp-formb-basics,
.kp-portal .kp-formb-fieldgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.kp-portal .kp-formb-basics label,
.kp-portal .kp-formb-stephead label,
.kp-portal .kp-formb-fieldgrid > label { display: grid; align-content: start; gap: 7px; min-width: 0; color: #15264a; font-size: 13px; font-weight: 700; }
.kp-portal .kp-formb :is(input[type="text"], input[type="email"], select, textarea) { width: 100%; min-height: 44px; border: 1px solid #c7d4e8; border-radius: 9px; background: #fff; color: #0d1f44; padding: 10px 12px; font: inherit; font-size: 16px; }
.kp-portal .kp-formb textarea { resize: vertical; }
.kp-portal .kp-formb small { color: #667695; font-weight: 500; }
.kp-portal .kp-formb-wide { grid-column: 1 / -1; }
.kp-portal .kp-formb-slug { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; border: 1px solid #c7d4e8; border-radius: 9px; background: #f4f7fc; overflow: hidden; }
.kp-portal .kp-formb-slug b { padding: 0 0 0 12px; color: #54709e; }
.kp-portal .kp-formb-slug input { border: 0 !important; border-radius: 0 !important; background: transparent !important; }
.kp-portal .kp-formb-steps { display: grid; gap: 16px; counter-reset: form-section; }
.kp-portal .kp-formb-step { counter-increment: form-section; display: grid; gap: 15px; padding: 18px; border: 1px solid #cbd8eb; border-radius: 14px; background: #f8faff; }
.kp-portal .kp-formb-step.is-locked { border-color: #9fd8ca; background: #f5fcfa; }
.kp-portal .kp-formb-stephead { display: grid; grid-template-columns: auto minmax(180px, 1.5fr) minmax(150px, 1fr) auto; align-items: end; gap: 12px; }
.kp-portal .kp-formb-stephead::before { content: "Section " counter(form-section); grid-column: 2 / -1; color: #2460dc; font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.kp-portal .kp-formb-handle { align-self: center; color: #7183a4; font-size: 22px; }
.kp-portal .kp-formb-fields { display: grid; gap: 12px; }
.kp-portal .kp-formb-field { display: grid; gap: 13px; padding: 15px; border: 1px solid #d7e0ee; border-radius: 11px; background: #fff; }
.kp-portal .kp-formb-field.is-locked { background: rgba(255,255,255,.68); }
.kp-portal .kp-formb-fieldtop { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.kp-portal .kp-formb-order { display: flex; align-items: center; gap: 6px; }
.kp-portal .kp-formb-order button { min-width: 44px; min-height: 44px; border: 1px solid #c9d6e8; border-radius: 8px; background: #fff; color: #234b8d; padding: 8px 11px; font-weight: 700; cursor: pointer; }
.kp-portal .kp-formb-order button.is-danger { color: #9f2740; }
.kp-portal .kp-formb-options[hidden] { display: none !important; }
.kp-portal .kp-formb-checkrow { display: flex; flex-wrap: wrap; gap: 18px; }
.kp-portal .kp-formb-checkrow label { display: flex; align-items: center; gap: 8px; color: #344766; font-size: 13px; font-weight: 650; }
.kp-portal .kp-formb-checkrow input { width: 20px; height: 20px; }
.kp-portal .kp-formb-condition { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; margin: 0; padding: 12px; border: 1px dashed #b9c8df; border-radius: 9px; }
.kp-portal .kp-formb-condition legend { padding: 0 6px; color: #4e6181; font-size: 12px; font-weight: 750; }
.kp-portal .kp-formb-savebar { position: sticky; bottom: 0; z-index: 4; align-items: center; margin: 0 -20px -20px; padding: 14px 20px calc(14px + env(safe-area-inset-bottom)); border-top: 1px solid #ccd9eb; border-radius: 0 0 12px 12px; background: rgba(255,255,255,.96); box-shadow: 0 -12px 24px rgba(18, 48, 98, .08); backdrop-filter: blur(10px); color: #5b6d8d; font-size: 13px; }
.kp-portal .kp-formb-savebar .kp-button { min-height: 44px; }

@media (max-width: 760px) {
    .kp-portal .kp-formb-dialog { width: 100vw; max-height: 100dvh; border-radius: 0; }
    .kp-portal .kp-formb { padding: 16px; }
    .kp-portal .kp-formb-head,
    .kp-portal .kp-formb-savebar { align-items: stretch; flex-direction: column; }
    .kp-portal .kp-formb-basics,
    .kp-portal .kp-formb-fieldgrid,
    .kp-portal .kp-formb-condition { grid-template-columns: 1fr; }
    .kp-portal .kp-formb-step { padding: 14px; }
    .kp-portal .kp-formb-stephead { grid-template-columns: 1fr; align-items: stretch; }
    .kp-portal .kp-formb-stephead::before { grid-column: 1; }
    .kp-portal .kp-formb-handle { display: none; }
    .kp-portal .kp-formb-order { flex-wrap: wrap; }
    .kp-portal .kp-formb-order button { flex: 1 1 44px; }
    .kp-portal .kp-formb-fieldtop { align-items: flex-start; flex-direction: column; }
    .kp-portal .kp-formb-savebar { margin: 0 -16px -16px; padding-right: 16px; padding-left: 16px; }
}

/* WL260 — actionable task home, full task workspace and calendar. */
.kp-portal .kp-section-home-summary > .kp-section-summary-notice {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 68px;
    padding: 12px 44px 12px 22px;
    color: inherit;
    text-decoration: none;
}
.kp-portal .kp-section-home-summary > .kp-section-summary-notice + .kp-section-summary-notice,
.kp-portal .kp-section-home-summary > span + .kp-section-summary-notice,
.kp-portal .kp-section-home-summary > .kp-section-summary-notice + span { border-left: 1px solid #e4eaf1; }
.kp-portal .kp-section-home-summary > .kp-section-summary-notice:only-child { grid-column: 1 / -1; }
.kp-portal .kp-section-home-summary > .kp-section-summary-notice > i {
    position: absolute;
    right: 20px;
    color: #667085;
    font-style: normal;
}
.kp-portal .kp-section-home-summary > .kp-section-summary-notice:hover,
.kp-portal .kp-section-home-summary > .kp-section-summary-notice:focus-visible { background: #f5f8fc; outline: 2px solid #2e46c6; outline-offset: -2px; }
.kp-portal .kp-section-home-summary > .kp-section-summary-notice.is-alert strong { color: #a52135; }
.kp-portal .kp-section-home-summary > .kp-section-summary-notice.is-warning strong { color: #8a5a00; }
.kp-portal .kp-section-home-summary > .kp-section-summary-notice.is-clear strong { color: #087955; }
.kp-portal .kp-section-home-disclosure-summary > a {
    display: grid;
    gap: 1px;
    min-height: 44px;
    padding: 6px 0;
    color: inherit;
    text-decoration: none;
}
.kp-portal .kp-section-home-disclosure-summary > a:focus-visible { outline: 2px solid #2e46c6; outline-offset: 2px; }

.kp-section-drawer[data-kp-drawer-size="calendar"] { width: min(90vw, 1680px); }

.kp-portal .kp-taskd-drawer.is-section-embedded { width: 100%; max-width: 100%; }
.kp-portal .kp-taskd-drawer.is-section-embedded .kp-taskd-full { display: none; }
.kp-portal .kp-taskd-drawer .kp-coprail,
.kp-portal .kp-taskd-drawer .kp-coprail-thread,
.kp-portal .kp-taskd-drawer .kp-coprail-b { min-width: 0; max-width: 100%; overflow-wrap: anywhere; word-break: break-word; }

.kp-portal .kp-taskd-drawer.is-page {
    position: relative;
    inset: auto;
    z-index: auto;
    width: 100%;
    max-width: none;
    height: auto;
    min-height: 0;
    overflow: visible;
    visibility: visible;
    border: 1px solid #dce4ed;
    border-radius: 10px;
    background: #fff;
    box-shadow: none;
    transform: none;
    transition: none;
}
.kp-portal .kp-taskd-drawer.is-page .kp-taskd-scroll { overflow: visible; }
.kp-portal .kp-taskd-drawer.is-page .kp-mailc-drawer-head { border-radius: 10px 10px 0 0; }
.kp-portal .kp-taskd-drawer.is-page .kp-mailc-drawer-head h1 { margin: 0; color: #101828; font-size: 20px; }
.kp-portal .kp-taskd-back,
.kp-portal .kp-taskd-full {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: #2e46c6;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
}
.kp-portal .kp-taskd-full { margin-left: auto; }
.kp-portal .kp-taskd-back:hover,
.kp-portal .kp-taskd-back:focus-visible,
.kp-portal .kp-taskd-full:hover,
.kp-portal .kp-taskd-full:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
.kp-portal .kp-task-filter-context {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin: -2px 0 14px;
    padding: 9px 12px;
    border-left: 3px solid #2e46c6;
    color: #344054;
    background: #f5f8fc;
    font-size: 12px;
}
.kp-portal .kp-task-filter-context a { display: inline-flex; align-items: center; min-height: 44px; color: #2e46c6; font-weight: 700; text-decoration: none; }
.kp-portal .kp-task-filter-context a:hover,
.kp-portal .kp-task-filter-context a:focus-visible { text-decoration: underline; text-underline-offset: 3px; }

.kp-portal .kp-taskcal { overflow: hidden; padding: 0; }
.kp-portal .kp-taskcal-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 20px;
    border-bottom: 1px solid #dce4ed;
}
.kp-portal .kp-taskcal-toolbar h2 { margin: 2px 0 0; color: #101828; font-size: 20px; }
.kp-portal .kp-taskcal-toolbar nav { display: flex; align-items: center; gap: 8px; }
.kp-portal .kp-taskcal-toolbar .kp-button { min-width: 44px; min-height: 44px; }
.kp-portal .kp-taskcal-month { overflow: hidden; }
.kp-portal .kp-taskcal-month table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.kp-portal .kp-taskcal-month th {
    padding: 10px 8px;
    border-right: 1px solid #dce4ed;
    border-bottom: 1px solid #dce4ed;
    color: #667085;
    background: #f5f8fc;
    font-size: 11px;
    font-weight: 750;
    letter-spacing: .06em;
    text-align: left;
    text-transform: uppercase;
}
.kp-portal .kp-taskcal-month th:last-child,
.kp-portal .kp-taskcal-day:last-child { border-right: 0; }
.kp-portal .kp-taskcal-day {
    height: 132px;
    padding: 8px;
    border-right: 1px solid #dce4ed;
    border-bottom: 1px solid #dce4ed;
    background: #fff;
    vertical-align: top;
}
.kp-portal .kp-taskcal-day > time {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    color: #344054;
    font-size: 12px;
    font-weight: 700;
}
.kp-portal .kp-taskcal-day.is-outside { background: #f8fafc; }
.kp-portal .kp-taskcal-day.is-outside > time { color: #98a2b3; }
.kp-portal .kp-taskcal-day.is-today > time { border-radius: 50%; color: #fff; background: #2e46c6; }
.kp-portal .kp-taskcal-events { display: grid; gap: 5px; margin-top: 4px; }
.kp-portal .kp-taskcal-event {
    display: grid;
    gap: 2px;
    min-height: 44px;
    padding: 6px 7px;
    overflow: hidden;
    border: 1px solid #d7e0ee;
    border-radius: 6px;
    color: #101828;
    background: #f5f8fc;
    font-size: 11px;
    font-weight: 650;
    line-height: 1.25;
    text-decoration: none;
}
.kp-portal .kp-taskcal-event > span { color: #2e46c6; font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.kp-portal .kp-taskcal-event.is-due { border-left: 3px solid #2e46c6; }
.kp-portal .kp-taskcal-event.is-start { border-left: 3px solid #36bad0; }
.kp-portal .kp-taskcal-event.is-overdue { border-color: #e5a8b2; background: #fff6f7; }
.kp-portal .kp-taskcal-event.is-overdue > span { color: #a52135; }
.kp-portal .kp-taskcal-event:hover,
.kp-portal .kp-taskcal-event:focus-visible { border-color: #2e46c6; outline: 2px solid rgba(46, 70, 198, .18); outline-offset: 1px; }
.kp-portal .kp-taskcal-agenda { display: none; }
.kp-portal .kp-taskcal-foot { padding: 14px 20px; background: #f5f8fc; }
.kp-portal .kp-taskcal-foot a { display: inline-flex; align-items: center; min-height: 44px; color: #2e46c6; font-size: 12px; font-weight: 700; text-decoration: none; }

@media (max-width: 900px) {
    .kp-section-drawer[data-kp-drawer-size="calendar"] { width: 94vw; }
}

@media (max-width: 760px) {
    .kp-portal .kp-section-home-summary > .kp-section-summary-notice { justify-content: flex-start; min-height: 54px; padding-right: 44px; padding-left: 24px; }
    .kp-portal .kp-section-home-summary > .kp-section-summary-notice + .kp-section-summary-notice,
    .kp-portal .kp-section-home-summary > span + .kp-section-summary-notice,
    .kp-portal .kp-section-home-summary > .kp-section-summary-notice + span { border-top: 1px solid #e4eaf1; border-left: 0; }
    .kp-portal .kp-taskd-titlerow,
    .kp-portal .kp-taskd-grid { grid-template-columns: minmax(0, 1fr); }
    .kp-portal .kp-taskd-drawer.is-page { border-right: 0; border-left: 0; border-radius: 0; }
    .kp-portal .kp-taskd-drawer .kp-mailc-drawer-head { align-items: flex-start; flex-wrap: wrap; }
    .kp-portal .kp-taskd-full { margin-left: 0; }
    .kp-portal .kp-taskcal-toolbar { align-items: flex-start; flex-direction: column; padding: 15px; }
    .kp-portal .kp-taskcal-toolbar nav { width: 100%; }
    .kp-portal .kp-taskcal-toolbar nav .kp-button:nth-child(2) { flex: 1 1 auto; justify-content: center; }
    .kp-portal .kp-taskcal-month { display: none; }
    .kp-portal .kp-taskcal-agenda { display: grid; gap: 0; }
    .kp-portal .kp-taskcal-agenda > section { padding: 14px 15px; border-bottom: 1px solid #dce4ed; }
    .kp-portal .kp-taskcal-agenda h3 { margin: 0 0 8px; color: #344054; font-size: 13px; }
    .kp-portal .kp-taskcal-agenda a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; padding: 8px 0; border-top: 1px solid #edf0f5; color: #101828; text-decoration: none; }
    .kp-portal .kp-taskcal-agenda a:first-of-type { border-top: 0; }
    .kp-portal .kp-taskcal-agenda a span { color: #2e46c6; font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
    .kp-portal .kp-taskcal-empty { margin: 0; padding: 20px 15px; color: #667085; }
}

@media (max-width: 720px) {
    .kp-section-drawer[data-kp-drawer-size="calendar"] { width: 100vw; }
}

/* ============================================================
   WL262 — operational hubs, nested drawer sizing, and managed lists.
   These rules intentionally sit last: earlier Mail releases contain several
   competing width declarations, and the final cascade is the product contract.
   ============================================================ */

.kp-section-drawer[data-kp-drawer-size="roomy"] { width: min(88vw, 1580px); }
.kp-section-drawer[data-kp-drawer-size="expanded"] { width: min(92vw, 1720px); }
.kp-section-drawer[data-kp-drawer-size="communication"] { width: min(94vw, 1800px); }
.kp-section-drawer.kp-console-quick-drawer[data-kp-drawer-size="roomy"] { width: min(66vw, 1240px); }
.kp-section-drawer.kp-console-quick-drawer[data-kp-drawer-size="expanded"] { width: min(78vw, 1480px); }
.kp-section-drawer.kp-console-quick-drawer[data-kp-drawer-size="communication"] { width: min(88vw, 1680px); }

/* Compose is exactly 25% wider than the superseded 60vw rule. Message reading
   gets a little more room because it also carries CRM, follow-up, and Copilot. */
@media (min-width: 1181px) {
    .kp-portal [data-kp-mailc-drawer].kp-mailc-drawer:not(.kp-recd-drawer):not(.kp-taskd-drawer) {
        width: min(75vw, 1400px);
        max-width: none;
        grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
    }
    .kp-portal .kp-mailc-msgdrawer.kp-mailc-drawer:not(.kp-recd-drawer):not(.kp-taskd-drawer) {
        width: min(82vw, 1540px);
        max-width: none;
        grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
    }
}
.kp-portal .kp-mailc-compose-main,
.kp-portal .kp-mailc-msg-main,
.kp-portal .kp-mailc-body,
.kp-portal .kp-mailc-msg-side,
.kp-portal .kp-mailc-compose-side { min-width: 0; }
.kp-portal .kp-mailc-body,
.kp-portal .kp-mailc-msg-main { overflow-wrap: anywhere; }

@media (max-width: 1180px) {
    .kp-section-drawer[data-kp-drawer-size="roomy"],
    .kp-section-drawer[data-kp-drawer-size="expanded"],
    .kp-section-drawer[data-kp-drawer-size="communication"],
    .kp-section-drawer.kp-console-quick-drawer[data-kp-drawer-size="roomy"],
    .kp-section-drawer.kp-console-quick-drawer[data-kp-drawer-size="expanded"],
    .kp-section-drawer.kp-console-quick-drawer[data-kp-drawer-size="communication"] { width: 94vw; }
    .kp-portal [data-kp-mailc-drawer].kp-mailc-drawer:not(.kp-recd-drawer):not(.kp-taskd-drawer),
    .kp-portal .kp-mailc-msgdrawer.kp-mailc-drawer:not(.kp-recd-drawer):not(.kp-taskd-drawer) {
        width: 96vw;
        max-width: 96vw;
        grid-template-columns: minmax(0, 1fr);
    }
    .kp-portal .kp-mailc-compose-side,
    .kp-portal .kp-mailc-msg-side { display: none; }
}

/* Shared long-list controls. The page stays still while the collection itself
   becomes the searchable, sortable work surface. */
.kp-portal .kp-list-toolbar {
    display: flex;
    align-items: center;
    gap: 9px;
    flex-wrap: wrap;
    margin: 0 0 10px;
    padding: 9px 10px;
    border: 1px solid var(--kp-border, #dce4ed);
    border-radius: 10px;
    background: var(--kp-fill-soft, #f6f8fb);
}
.kp-portal .kp-list-search { flex: 1 1 240px; min-width: min(240px, 100%); }
.kp-portal .kp-list-search input {
    width: 100%;
    min-height: 38px;
    margin: 0;
    border: 1px solid var(--kp-border, #dce4ed);
    border-radius: 8px;
    background: #fff;
}
.kp-portal .kp-list-sort { display: inline-flex; align-items: center; gap: 7px; }
.kp-portal .kp-list-sort > span { font-size: 11.5px; white-space: nowrap; }
.kp-portal .kp-list-sort select { min-height: 38px; margin: 0; font-size: 12px; }
.kp-portal .kp-list-count { margin-left: auto; color: var(--kp-muted, #667085); font-size: 11.5px; white-space: nowrap; }
.kp-portal .kp-list-clear { min-height: 36px; }
.kp-portal .kp-managed-list-viewport {
    max-height: min(58vh, 620px);
    overflow: auto;
    overscroll-behavior-x: contain;
    overscroll-behavior-y: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-gutter: stable;
    border: 1px solid var(--kp-border, #dce4ed);
    border-radius: 10px;
    background: #fff;
}
.kp-portal [data-kp-managed="crm-visible-properties"] .kp-managed-list-viewport { max-height: min(58vh, 480px); }

/* ===== WL278 - fixed CRM pages instead of a broken vertical scroller ===== */
.kp-portal .kp-managed-list-paginated-viewport {
    max-height: none;
    overflow-x: auto;
    overflow-y: visible;
    overscroll-behavior-y: auto;
}
.kp-portal .kp-crm-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 13px 18px;
    border-top: 1px solid #e5ebf2;
    color: var(--kp-muted, #667085);
    font-size: 12px;
}
.kp-portal .kp-crm-pagination-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}
@media (max-width: 640px) {
    .kp-portal .kp-crm-pagination { align-items: stretch; flex-direction: column; }
    .kp-portal .kp-crm-pagination-actions { justify-content: space-between; }
}

/* ===== WL278 - coherent property tabs and compact utility panels =====
 * Legacy wl99 rules later widened every record drawer to 86vw. Keep the
 * property page itself untouched and give clicked tabs predictable frames:
 * one workspace width for substantive sections and one compact width for
 * short utility content such as History and Notes. */
.kp-portal .kp-pp-pillcard .kp-pp-pills > a,
.kp-portal .kp-pp-pillcard .kp-pp-pills > button {
    box-sizing: border-box;
    justify-content: center;
    min-width: 104px;
    min-height: 38px;
    padding: 9px 14px;
    text-align: center;
}
@media (min-width: 1100px) {
    .kp-portal .kp-recd-drawer,
    .kp-portal .kp-recd-drawer[data-kp-area-drawer],
    .kp-portal .kp-recd-drawer[data-kp-scope-drawer],
    .kp-portal .kp-recd-drawer[data-kp-money-drawer],
    .kp-portal .kp-recd-drawer[data-kp-docs-drawer],
    .kp-portal .kp-dealroom-drawer.kp-recd-drawer,
    .kp-portal .kp-teaserd-drawer.kp-recd-drawer,
    .kp-portal .kp-editd-drawer.kp-recd-drawer {
        width: min(68vw, 1080px);
        max-width: 1080px;
    }
    .kp-portal .kp-notesd-drawer.kp-recd-drawer,
    .kp-portal .kp-histd-drawer.kp-recd-drawer,
    .kp-portal .kp-deal-tasks-drawer.kp-recd-drawer {
        width: min(36vw, 560px);
        max-width: 560px;
    }
}
@media (max-width: 1099px) {
    .kp-portal .kp-recd-drawer,
    .kp-portal .kp-notesd-drawer.kp-recd-drawer,
    .kp-portal .kp-histd-drawer.kp-recd-drawer,
    .kp-portal .kp-deal-tasks-drawer.kp-recd-drawer {
        width: min(94vw, 760px);
        max-width: min(94vw, 760px);
    }
}
.kp-portal .kp-histd-drawer .kp-raild-body { padding: 10px 18px 18px; }
.kp-portal .kp-histd-drawer .kp-hist-row {
    grid-template-columns: 132px minmax(0, 1fr);
    gap: 10px;
    padding: 11px 2px;
}
@media (max-width: 640px) {
    .kp-portal .kp-pp-pillcard .kp-pp-pills > a,
    .kp-portal .kp-pp-pillcard .kp-pp-pills > button {
        min-width: 96px;
        min-height: 40px;
    }
    .kp-portal .kp-histd-drawer .kp-hist-row {
        grid-template-columns: minmax(0, 1fr);
        gap: 4px;
    }
}
.kp-portal .kp-managed-list-viewport:focus-visible {
    outline: 3px solid rgba(20, 44, 79, .2);
    outline-offset: 2px;
}
.kp-portal .kp-managed-list-viewport > .kp-managed-list { margin: 0; border: 0; border-radius: 0; }
.kp-portal .kp-managed-list-viewport table.kp-managed-list { width: 100%; }
.kp-portal .kp-managed-list-viewport table.kp-managed-list thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #f8fafc;
    box-shadow: 0 1px 0 var(--kp-border, #dce4ed);
}
.kp-portal .kp-managed-list-viewport [data-kp-sort-item][hidden] { display: none !important; }
.kp-portal .kp-list-no-results {
    margin: 9px 0 0;
    padding: 16px;
    border: 1px dashed var(--kp-border, #dce4ed);
    border-radius: 9px;
    color: var(--kp-muted, #667085);
    text-align: center;
}

@media (max-width: 720px) {
    .kp-portal .kp-list-toolbar { align-items: stretch; flex-direction: column; }
    .kp-portal .kp-list-search,
    .kp-portal .kp-list-sort,
    .kp-portal .kp-list-sort select { width: 100%; }
    .kp-portal .kp-list-sort { align-items: flex-start; flex-direction: column; }
    .kp-portal .kp-list-count { margin-left: 0; }
    .kp-portal .kp-managed-list-viewport { max-height: min(62vh, 560px); }
}

/* The task editor carries both a 320px Copilot rail and a multi-column form.
   Its former 62vw desktop width caused the rail to squeeze the record fields. */
@media (min-width: 1101px) {
    .kp-portal .kp-taskd-drawer:not(.is-section-embedded):not(.is-page) {
        width: min(86vw, 1600px);
        max-width: none;
    }
    .kp-portal .kp-taskd-form { grid-template-columns: minmax(0, 1fr) minmax(280px, 320px); }
}

@media (max-width: 1100px) {
    .kp-portal .kp-taskd-drawer:not(.is-section-embedded):not(.is-page) { width: 96vw; max-width: 96vw; }
    .kp-portal .kp-taskd-form { display: block; }
    .kp-portal .kp-taskd-coprail { padding: 0 18px 14px; }
}

/* Readiness benchmarks and scenario calculators. */
.kp-portal .kp-vault-readiness-workspace,
.kp-portal .kp-finance-calc { min-width: 0; }
.kp-portal .kp-finance-benchmark-grid,
.kp-portal .kp-finance-calc-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
.kp-portal .kp-finance-benchmark {
    display: grid;
    gap: 6px;
    min-width: 0;
    padding: 15px;
    border: 1px solid var(--kp-border, #dce4ed);
    border-radius: 10px;
    background: var(--kp-fill-soft, #f6f8fb);
}
.kp-portal .kp-finance-benchmark > span { color: var(--kp-muted, #667085); font-size: 12px; font-weight: 700; }
.kp-portal .kp-finance-benchmark > strong { color: var(--kp-text, #101828); font-size: clamp(24px, 3vw, 34px); line-height: 1; }
.kp-portal .kp-finance-benchmark > small,
.kp-portal .kp-finance-benchmark > p { margin: 0; color: var(--kp-muted, #667085); font-size: 11.5px; line-height: 1.45; }
.kp-portal .kp-finance-benchmark > a { overflow-wrap: anywhere; }
.kp-portal .kp-finance-calc { margin: 0; }
.kp-portal .kp-finance-calc .kp-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kp-portal .kp-finance-results { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 16px 0 0; }
.kp-portal .kp-finance-results > div { min-width: 0; padding: 10px 12px; border: 1px solid var(--kp-border, #dce4ed); border-radius: 8px; background: #fff; }
.kp-portal .kp-finance-results dt { color: var(--kp-muted, #667085); font-size: 10.5px; font-weight: 700; text-transform: uppercase; }
.kp-portal .kp-finance-results dd { margin: 4px 0 0; overflow-wrap: anywhere; color: var(--kp-text, #101828); font-size: 17px; font-weight: 750; }

/* WL266 — shared Resources calculator workspace and live Vault rates. */
.kp-portal .kp-resource-calculator-header { align-items: flex-end; gap: 18px; }
.kp-portal .kp-resource-calculator-header > div { min-width: 0; }
.kp-portal .kp-calculator-context,
.kp-portal .kp-calculator-intro,
.kp-portal .kp-calculator-disclaimer { margin: 0 0 16px; }
.kp-portal .kp-calculator-context { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.kp-portal .kp-calculator-context > div { display: grid; gap: 4px; }
.kp-portal .kp-calculator-context span { color: var(--kp-muted, #667085); font-size: 11px; font-weight: 750; text-transform: uppercase; letter-spacing: .05em; }
.kp-portal .kp-calculator-context p { max-width: 680px; margin: 0; color: var(--kp-muted, #667085); font-size: 12px; line-height: 1.5; }
.kp-portal .kp-calculator-intro { display: flex; align-items: center; justify-content: space-between; gap: 18px; background: linear-gradient(135deg, #f7f9ff, #f3fbff); }
.kp-portal .kp-calculator-intro > div { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 6px 10px; min-width: 0; }
.kp-portal .kp-calculator-intro p { grid-column: 1 / -1; max-width: 900px; margin: 0; color: var(--kp-muted, #667085); font-size: 12px; line-height: 1.5; }
.kp-portal .kp-calculator-intro > a { flex: 0 0 auto; font-size: 12px; font-weight: 750; text-decoration: none; }
.kp-portal .kp-finance-calculator-workspace { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.kp-portal .kp-finance-calculator-workspace .kp-finance-calc { display: flex; flex-direction: column; gap: 2px; padding: 18px; }
.kp-portal .kp-finance-calculator-workspace .kp-finance-calc .kp-section-heading { margin-bottom: 4px; }
.kp-portal .kp-finance-calculator-workspace .kp-finance-calc > .kp-console-meta { min-height: 36px; margin: 0 0 12px; }
.kp-portal .kp-finance-calculator-workspace .kp-form-grid { gap: 10px; }
.kp-portal .kp-finance-calculator-workspace .kp-form-grid label { min-width: 0; }
.kp-portal .kp-finance-calculator-workspace .kp-form-grid label > span { display: block; min-height: 30px; font-size: 11px; line-height: 1.35; }
.kp-portal .kp-finance-calculator-workspace input { width: 100%; }
.kp-portal .kp-finance-calculator-workspace .kp-finance-results { margin-top: auto; padding-top: 14px; }
.kp-portal .kp-calculator-disclaimer { margin-top: 16px; border-left: 4px solid #3659d9; }
.kp-portal .kp-calculator-disclaimer p { margin: 6px 0 0; color: var(--kp-muted, #667085); font-size: 12px; line-height: 1.5; }

.kp-portal .kp-vault-live-rates { margin-top: 16px; padding: 18px; border: 1px solid var(--kp-border, #dce4ed); border-radius: 14px; background: linear-gradient(145deg, #fff, #f6f9ff); box-shadow: 0 8px 24px rgba(21, 39, 85, .06); }
.kp-portal .kp-vault-live-rates-head,
.kp-portal .kp-vault-live-rates-foot { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.kp-portal .kp-vault-live-rates-head h2 { margin: 2px 0 4px; }
.kp-portal .kp-vault-live-rates-head p,
.kp-portal .kp-vault-live-rates-foot p { max-width: 820px; margin: 0; color: var(--kp-muted, #667085); font-size: 12px; line-height: 1.5; }
.kp-portal .kp-vault-rate-actions { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.kp-portal .kp-vault-rate-actions form { margin: 0; }
.kp-portal .kp-rate-status.is-current { color: #12643a; background: #e7f7ee; }
.kp-portal .kp-rate-status.is-partial,
.kp-portal .kp-rate-status.is-retry_later { color: #805300; background: #fff3d6; }
.kp-portal .kp-rate-status.is-unavailable { color: #9d2438; background: #fdecef; }
.kp-portal .kp-vault-rate-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 16px 0; }
.kp-portal .kp-vault-rate-grid article { display: grid; gap: 5px; min-width: 0; padding: 14px; border: 1px solid var(--kp-border, #dce4ed); border-radius: 10px; background: #fff; }
.kp-portal .kp-vault-rate-grid article > span { min-height: 32px; color: var(--kp-muted, #667085); font-size: 11px; font-weight: 750; line-height: 1.35; }
.kp-portal .kp-vault-rate-grid article > strong { color: var(--kp-text, #101828); font-size: clamp(22px, 2.4vw, 32px); line-height: 1; }
.kp-portal .kp-vault-rate-grid article > small { color: var(--kp-muted, #667085); font-size: 10.5px; }
.kp-portal .kp-vault-rate-grid article > a { margin-top: 4px; overflow-wrap: anywhere; font-size: 10.5px; font-weight: 700; text-decoration: none; }
.kp-portal .kp-vault-calculator-link { margin-top: 14px; }

/* Portfolio home: operational doors remain useful even before the first asset. */
.kp-portal .kp-portfolio-operations { margin-top: 14px; }
.kp-portal .kp-portfolio-operations-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.kp-portal .kp-portfolio-operation {
    position: relative;
    display: grid;
    gap: 5px;
    min-width: 0;
    min-height: 96px;
    padding: 14px 42px 14px 14px;
    border: 1px solid var(--kp-border, #dce4ed);
    border-radius: 10px;
    color: var(--kp-text, #101828);
    background: #fff;
    text-decoration: none;
}
.kp-portal .kp-portfolio-operation strong { font-size: 13px; }
.kp-portal .kp-portfolio-operation strong > span { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; margin-left: 4px; border-radius: 999px; color: #fff; background: #a52135; font-size: 10px; }
.kp-portal .kp-portfolio-operation small { color: var(--kp-muted, #667085); line-height: 1.45; }
.kp-portal .kp-portfolio-operation > b { position: absolute; right: 14px; top: 14px; color: #2e46c6; }
.kp-portal .kp-portfolio-operation:hover,
.kp-portal .kp-portfolio-operation:focus-visible { border-color: #2e46c6; outline: 2px solid rgba(46, 70, 198, .14); outline-offset: 1px; background: #f8faff; }
.kp-portal .kp-file-form-links .kp-section-heading { align-items: center; }
.kp-portal .kp-section-heading-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }

@media (max-width: 900px) {
    .kp-portal .kp-finance-benchmark-grid,
    .kp-portal .kp-finance-calc-grid,
    .kp-portal .kp-portfolio-operations-grid,
    .kp-portal .kp-finance-calculator-workspace { grid-template-columns: minmax(0, 1fr); }
    .kp-portal .kp-vault-rate-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
    .kp-portal .kp-finance-calc .kp-form-grid,
    .kp-portal .kp-finance-results { grid-template-columns: minmax(0, 1fr); }
    .kp-portal .kp-section-heading-actions { align-items: stretch; flex-direction: column; width: 100%; }
    .kp-portal .kp-section-heading-actions .kp-button { justify-content: center; width: 100%; }
    .kp-portal .kp-calculator-context,
    .kp-portal .kp-calculator-intro,
    .kp-portal .kp-vault-live-rates-head,
    .kp-portal .kp-vault-live-rates-foot,
    .kp-portal .kp-vault-rate-actions { align-items: stretch; flex-direction: column; }
    .kp-portal .kp-calculator-intro > a,
    .kp-portal .kp-vault-live-rates-foot .kp-button,
    .kp-portal .kp-vault-rate-actions .kp-button { justify-content: center; width: 100%; }
    .kp-portal .kp-vault-rate-grid { grid-template-columns: minmax(0, 1fr); }
}

/* ===== WL263 — prominent brand lockup and Brokerage property rail ===== */
.kp-portal .kp-topbar-brand .kp-brand-mark svg,
.kp-portal .kp-brand-mobile .kp-brand-mark svg {
    width: 26px;
    height: 26px;
    color: #FFFFFF;
}
.kp-portal .kp-topbar-brand .kp-brand-mark,
.kp-portal .kp-brand-mobile .kp-brand-mark {
    color: #FFFFFF;
    background: #0B2858;
}
.kp-portal .kp-topbar-brand strong {
    color: var(--kp-navy);
    font-weight: 800;
}
.kp-portal .kp-topbar-brand > img {
    width: auto;
    max-width: 180px;
    height: 38px;
    object-fit: contain;
    opacity: 1;
    filter: none;
}
.kp-portal .kp-brand-mobile .kp-brand-mark img {
    width: 32px;
    height: 32px;
    object-fit: contain;
    opacity: 1;
    filter: none;
}
.kp-portal .kp-pp-body > [data-kp-property-intelligence-overview] + .kp-propd-main,
.kp-portal .kp-propd-main + [data-kp-property-intelligence-overview] {
    margin-top: 16px;
}
.kp-portal .kp-pp-property-pof {
    min-width: 0;
}
.kp-portal .kp-pp-property-pof-empty {
    margin: 0;
    color: #7a8496;
    font-size: 10.5px;
    line-height: 1.45;
}
.kp-portal .kp-pp-property-pof-list {
    max-height: min(40vh, 320px);
    min-width: 0;
    overflow: auto;
    padding-right: 3px;
    scrollbar-gutter: stable;
}
.kp-portal .kp-pp-property-pof-list .kp-ws-row {
    grid-template-columns: minmax(0, 1fr);
    gap: 7px;
    padding: 9px;
    border-radius: 8px;
}
.kp-portal .kp-pp-property-pof-list .kp-ws-row-main strong {
    overflow-wrap: anywhere;
    font-size: 11.5px;
}
.kp-portal .kp-pp-property-pof-list .kp-console-meta,
.kp-portal .kp-pp-property-pof-list .kp-ws-note,
.kp-portal .kp-pp-property-pof-list .kp-ws-filelist,
.kp-portal .kp-pp-property-pof-list .kp-ws-filelist a {
    overflow-wrap: anywhere;
    font-size: 10.5px;
    line-height: 1.4;
}
.kp-portal .kp-pp-property-pof-list .kp-ws-row-side {
    justify-content: flex-start;
}
.kp-portal .kp-pp-property-pof-list .kp-button-small,
.kp-portal .kp-pp-property-pof-list .kp-badge {
    font-size: 10.5px;
}

/* ============================================================
   WL265 - full-page CSV Data Transfer Center.
   The mapping workflow intentionally stays out of section drawers: the page
   owns the available width and only its long tables become scroll regions.
   ============================================================ */
.kp-portal .kp-xfer-page {
    width: 100%;
    max-width: 1480px;
    min-width: 0;
    margin: 0 auto;
}
.kp-portal .kp-xfer-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}
.kp-portal .kp-xfer-header > div { min-width: 0; }
.kp-portal .kp-xfer-header .kp-console-meta { max-width: 780px; margin-bottom: 0; }
.kp-portal .kp-xfer-safety {
    display: flex;
    align-items: flex-start;
    gap: 13px;
    margin-bottom: 18px;
    padding: 15px 18px;
    border-color: #bdd3fb;
    background: #f3f7ff;
}
.kp-portal .kp-xfer-safety-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    color: #fff;
    background: #2e46c6;
    font-size: 14px;
    font-weight: 800;
}
.kp-portal .kp-xfer-safety strong { display: block; color: var(--kp-navy, #0a1b40); font-size: 13px; }
.kp-portal .kp-xfer-safety p { margin: 3px 0 0; color: var(--kp-muted, #667085); font-size: 12px; line-height: 1.5; }
.kp-portal .kp-xfer-shell {
    display: grid;
    grid-template-columns: minmax(220px, 260px) minmax(0, 1fr);
    gap: 22px;
    align-items: start;
    min-width: 0;
}
.kp-portal .kp-xfer-rail {
    position: sticky;
    top: 20px;
    min-width: 0;
    padding: 17px;
}
.kp-portal .kp-xfer-rail-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 14px;
}
.kp-portal .kp-xfer-rail-head > span { color: var(--kp-muted, #667085); font-size: 10.5px; font-weight: 750; letter-spacing: .055em; text-transform: uppercase; }
.kp-portal .kp-xfer-rail-head > strong { color: #2e46c6; font-size: 11px; }
.kp-portal .kp-xfer-steps { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.kp-portal .kp-xfer-steps li {
    position: relative;
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    align-items: center;
    gap: 9px;
    min-height: 40px;
    padding: 5px 7px;
    border-radius: 9px;
    color: #667085;
}
.kp-portal .kp-xfer-steps li > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    color: #42526a;
    background: #e9eef6;
    font-size: 11px;
    font-weight: 800;
}
.kp-portal .kp-xfer-steps li > b { min-width: 0; font-size: 12px; line-height: 1.25; }
.kp-portal .kp-xfer-steps li.is-current { color: var(--kp-navy, #0a1b40); background: #eef3ff; }
.kp-portal .kp-xfer-steps li.is-current > span { color: #fff; background: #2e46c6; }
.kp-portal .kp-xfer-steps li.is-done { color: #17663b; }
.kp-portal .kp-xfer-steps li.is-done > span { color: #fff; background: #1b7f4b; }
.kp-portal .kp-xfer-run-meta { display: grid; gap: 8px; margin: 17px 0 0; padding-top: 14px; border-top: 1px solid var(--kp-border, #dce4ed); }
.kp-portal .kp-xfer-run-meta > div { min-width: 0; }
.kp-portal .kp-xfer-run-meta dt { color: var(--kp-muted, #667085); font-size: 9.5px; font-weight: 750; letter-spacing: .045em; text-transform: uppercase; }
.kp-portal .kp-xfer-run-meta dd { margin: 2px 0 0; overflow-wrap: anywhere; color: var(--kp-text, #101828); font-size: 11.5px; }
.kp-portal .kp-xfer-main { display: grid; gap: 18px; min-width: 0; }
.kp-portal .kp-xfer-section { min-width: 0; padding: 20px; }
.kp-portal .kp-xfer-section > .kp-section-heading { align-items: flex-start; gap: 18px; margin-bottom: 16px; }
.kp-portal .kp-xfer-section > .kp-section-heading > div:first-child { min-width: 0; }
.kp-portal .kp-xfer-section > .kp-section-heading h2 { margin: 2px 0 4px; }
.kp-portal .kp-xfer-page .kp-button,
.kp-portal .kp-xfer-page button,
.kp-portal .kp-xfer-page select,
.kp-portal .kp-xfer-page input[type="file"] { min-height: 44px; }
.kp-portal .kp-xfer-kicker { color: #2e46c6; font-size: 9.5px; font-weight: 800; letter-spacing: .075em; text-transform: uppercase; }
.kp-portal .kp-xfer-entity-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.kp-portal .kp-xfer-entity {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 5px 10px;
    align-items: start;
    min-width: 0;
    min-height: 152px;
    padding: 15px;
    border: 1px solid var(--kp-border, #dce4ed);
    border-radius: 11px;
    color: var(--kp-text, #101828);
    background: #fff;
    text-decoration: none;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.kp-portal .kp-xfer-entity:hover,
.kp-portal .kp-xfer-entity:focus-visible { border-color: #6f91ec; outline: 2px solid rgba(46, 70, 198, .13); outline-offset: 1px; box-shadow: 0 10px 24px rgba(18, 42, 82, .08); transform: translateY(-1px); }
.kp-portal .kp-xfer-entity.is-current { border-color: #2e46c6; background: #f5f7ff; box-shadow: inset 0 0 0 1px #2e46c6; }
.kp-portal .kp-xfer-entity-mark { display: inline-flex; align-items: center; justify-content: center; grid-row: 1 / span 2; width: 34px; height: 34px; border-radius: 9px; color: #fff; background: linear-gradient(145deg, #2e46c6, #6385ee); font-size: 13px; font-weight: 800; }
.kp-portal .kp-xfer-entity > strong { min-width: 0; overflow-wrap: anywhere; color: var(--kp-navy, #0a1b40); font-size: 13px; line-height: 1.3; }
.kp-portal .kp-xfer-entity > small { grid-column: 1 / -1; color: var(--kp-muted, #667085); font-size: 11.5px; line-height: 1.45; }
.kp-portal .kp-xfer-entity > b { align-self: end; grid-column: 1 / -1; margin-top: auto; color: #2e46c6; font-size: 10.5px; }
.kp-portal .kp-xfer-mode-tabs { display: flex; align-items: center; justify-content: flex-end; gap: 7px; flex-wrap: wrap; }
.kp-portal .kp-xfer-action-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(260px, .75fr); gap: 13px; align-items: stretch; }
.kp-portal .kp-xfer-option { display: flex; flex-direction: column; gap: 15px; min-width: 0; margin: 0; padding: 17px; border: 1px solid var(--kp-border, #dce4ed); border-radius: 11px; background: var(--kp-fill-soft, #f6f8fb); }
.kp-portal .kp-xfer-option fieldset,
.kp-portal .kp-xfer-policy { min-width: 0; margin: 0; padding: 0; border: 0; }
.kp-portal .kp-xfer-option legend,
.kp-portal .kp-xfer-policy legend { margin: 0 0 9px; color: var(--kp-navy, #0a1b40); font-size: 12px; font-weight: 750; }
.kp-portal .kp-xfer-template-option { justify-content: space-between; background: #fff; }
.kp-portal .kp-xfer-template-option h3 { margin: 9px 0 5px; color: var(--kp-navy, #0a1b40); font-size: 15px; }
.kp-portal .kp-xfer-template-option p { margin: 0; color: var(--kp-muted, #667085); font-size: 11.5px; line-height: 1.5; }
.kp-portal .kp-xfer-choice { display: flex; align-items: flex-start; gap: 10px; min-width: 0; margin: 0 0 8px; padding: 11px 12px; border: 1px solid var(--kp-border, #dce4ed); border-radius: 9px; background: #fff; cursor: pointer; }
.kp-portal .kp-xfer-choice:last-child { margin-bottom: 0; }
.kp-portal .kp-xfer-choice:focus-within { border-color: #2e46c6; box-shadow: 0 0 0 2px rgba(46, 70, 198, .12); }
.kp-portal .kp-xfer-choice.is-disabled { cursor: not-allowed; opacity: .58; }
.kp-portal .kp-xfer-choice > input { flex: 0 0 auto; margin: 3px 0 0; accent-color: #2e46c6; }
.kp-portal .kp-xfer-choice > span { display: grid; gap: 2px; min-width: 0; }
.kp-portal .kp-xfer-choice strong { color: var(--kp-text, #101828); font-size: 12px; }
.kp-portal .kp-xfer-choice small { color: var(--kp-muted, #667085); font-size: 10.5px; line-height: 1.4; }
.kp-portal .kp-xfer-file { display: grid; gap: 7px; min-width: 0; }
.kp-portal .kp-xfer-file > span,
.kp-portal .kp-xfer-detection-controls label > span { color: var(--kp-text, #101828); font-size: 11px; font-weight: 750; }
.kp-portal .kp-xfer-file input[type="file"] { width: 100%; min-width: 0; padding: 13px; border: 1px dashed #9eb1d3; border-radius: 9px; background: #fff; }
.kp-portal .kp-xfer-file small { color: var(--kp-muted, #667085); font-size: 10.5px; line-height: 1.45; }
.kp-portal .kp-xfer-detection-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.kp-portal .kp-xfer-detection-controls label { display: grid; gap: 5px; min-width: 0; }
.kp-portal .kp-xfer-detection-controls select,
.kp-portal .kp-xfer-map-table select { width: 100%; min-width: 0; }
.kp-portal .kp-xfer-empty-state { padding: 22px; border: 1px dashed #bfc9d8; border-radius: 10px; color: var(--kp-muted, #667085); background: #fafbfd; text-align: center; }
.kp-portal .kp-xfer-empty-state strong { display: block; color: var(--kp-text, #101828); }
.kp-portal .kp-xfer-empty-state p { margin: 5px 0 12px; font-size: 11.5px; }
.kp-portal .kp-xfer-empty-state form { margin: 0; }
.kp-portal .kp-xfer-map-form { min-width: 0; }
.kp-portal .kp-xfer-table-scroll {
    width: 100%;
    max-width: 100%;
    max-height: min(58vh, 640px);
    min-width: 0;
    overflow: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable both-edges;
    border: 1px solid var(--kp-border, #dce4ed);
    border-radius: 10px;
    background: #fff;
}
.kp-portal .kp-xfer-table-scroll:focus-visible { outline: 3px solid rgba(46, 70, 198, .18); outline-offset: 2px; }
.kp-portal .kp-xfer-table-scroll .kp-table { width: max-content; min-width: 100%; margin: 0; border: 0; border-radius: 0; }
.kp-portal .kp-xfer-table-scroll .kp-table th,
.kp-portal .kp-xfer-table-scroll .kp-table td { max-width: 340px; padding: 9px 11px; overflow-wrap: anywhere; vertical-align: top; }
.kp-portal .kp-xfer-table-scroll .kp-table thead th { position: sticky; top: 0; z-index: 3; background: #f6f8fb; box-shadow: 0 1px 0 var(--kp-border, #dce4ed); }
.kp-portal .kp-xfer-map-table { min-width: 780px !important; table-layout: fixed; }
.kp-portal .kp-xfer-map-table th:first-child { width: 27%; }
.kp-portal .kp-xfer-map-table td:nth-child(2) { width: 34%; color: var(--kp-muted, #667085); }
.kp-portal .kp-xfer-map-table td:last-child { width: 39%; }
.kp-portal .kp-xfer-policy { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin-top: 16px; }
.kp-portal .kp-xfer-policy legend { grid-column: 1 / -1; }
.kp-portal .kp-xfer-policy .kp-xfer-choice { height: 100%; margin: 0; }
.kp-portal .kp-xfer-form-actions { display: flex; justify-content: flex-end; margin-top: 14px; }
.kp-portal .kp-xfer-validation { min-width: 0; margin-top: 17px; padding-top: 17px; border-top: 1px solid var(--kp-border, #dce4ed); }
.kp-portal .kp-xfer-stat-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; margin: 0 0 17px; }
.kp-portal .kp-xfer-stat-grid > div { min-width: 0; padding: 11px; border: 1px solid var(--kp-border, #dce4ed); border-radius: 9px; background: var(--kp-fill-soft, #f6f8fb); }
.kp-portal .kp-xfer-stat-grid > div.has-warning { border-color: #f0c36b; background: #fff9ed; }
.kp-portal .kp-xfer-stat-grid > div.has-error { border-color: #e7a6ac; background: #fff4f5; }
.kp-portal .kp-xfer-stat-grid dt { color: var(--kp-muted, #667085); font-size: 9.5px; font-weight: 750; letter-spacing: .035em; text-transform: uppercase; }
.kp-portal .kp-xfer-stat-grid dd { margin: 4px 0 0; color: var(--kp-navy, #0a1b40); font-size: 20px; font-weight: 800; }
.kp-portal .kp-xfer-preview-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 0 0 8px; }
.kp-portal .kp-xfer-preview-head h3 { margin: 0; font-size: 14px; }
.kp-portal .kp-xfer-preview-head span { color: var(--kp-muted, #667085); font-size: 10.5px; }
.kp-portal .kp-xfer-preview-scroll { max-height: min(62vh, 680px); }
.kp-portal .kp-xfer-preview-table { white-space: nowrap; }
.kp-portal .kp-xfer-preview-table .kp-xfer-message { min-width: 190px; max-width: 300px; white-space: normal; }
.kp-portal .kp-xfer-preview-table tr.kp-xfer-row-status-error > th,
.kp-portal .kp-xfer-preview-table tr.kp-xfer-row-status-error > td { background: #fff4f5; }
.kp-portal .kp-xfer-preview-table tr.kp-xfer-row-status-warning > th,
.kp-portal .kp-xfer-preview-table tr.kp-xfer-row-status-warning > td { background: #fff9ed; }
.kp-portal .kp-xfer-confirm { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px 18px; align-items: center; margin-top: 17px; padding: 16px; border: 1px solid #9db6f8; border-radius: 10px; background: #f4f7ff; }
.kp-portal .kp-xfer-confirm > div { min-width: 0; }
.kp-portal .kp-xfer-confirm > div strong { color: var(--kp-navy, #0a1b40); font-size: 13px; }
.kp-portal .kp-xfer-confirm > div p { margin: 4px 0 0; color: var(--kp-muted, #667085); font-size: 10.5px; line-height: 1.45; }
.kp-portal .kp-xfer-confirm > label { grid-column: 1 / -1; color: var(--kp-text, #101828); font-size: 11px; }
.kp-portal .kp-xfer-confirm input { accent-color: #2e46c6; }
.kp-portal .kp-xfer-cancel-form { margin: 12px 0 0; text-align: right; }
.kp-portal .kp-xfer-progress-block { padding: 16px; border: 1px solid var(--kp-border, #dce4ed); border-radius: 10px; background: var(--kp-fill-soft, #f6f8fb); }
.kp-portal .kp-xfer-progress-block > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.kp-portal .kp-xfer-progress-block > div strong { color: var(--kp-navy, #0a1b40); }
.kp-portal .kp-xfer-progress-block > div span { color: #2e46c6; font-weight: 800; }
.kp-portal .kp-xfer-progress-block progress { display: block; width: 100%; height: 10px; margin: 11px 0 0; accent-color: #2e46c6; }
.kp-portal .kp-xfer-progress-block p { margin: 7px 0 0; color: var(--kp-muted, #667085); font-size: 10.5px; }
.kp-portal .kp-xfer-result-actions { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 13px; }
.kp-portal .kp-xfer-result-actions form { margin: 0; }
.kp-portal .kp-xfer-undo-form { display: flex; align-items: center; justify-content: flex-end; gap: 9px; flex-wrap: wrap; }
.kp-portal .kp-xfer-undo-form label { max-width: 390px; color: var(--kp-muted, #667085); font-size: 10.5px; }
.kp-portal .kp-xfer-history-scroll { max-height: min(52vh, 560px); }
.kp-portal .kp-xfer-history-table { min-width: 900px !important; }
.kp-portal .kp-xfer-history-table td:nth-child(3) { max-width: 280px; overflow-wrap: anywhere; }

/* Entry points remain ordinary full-page links, including from bare pages. */
.kp-portal .kp-xfer-context-link { white-space: nowrap; }
.kp-portal .kp-acq-newbar.kp-xfer-acq-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.kp-portal .kp-settings-tile.kp-xfer-settings-tile { text-decoration: none; }

@media (max-width: 1100px) {
    .kp-portal .kp-xfer-entity-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kp-portal .kp-xfer-stat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 960px) {
    .kp-portal .kp-xfer-shell { grid-template-columns: minmax(0, 1fr); }
    .kp-portal .kp-xfer-rail { position: static; padding: 13px; }
    .kp-portal .kp-xfer-rail-head { margin-bottom: 9px; }
    .kp-portal .kp-xfer-steps { display: flex; gap: 6px; overflow-x: auto; padding: 1px 1px 7px; scrollbar-gutter: stable; }
    .kp-portal .kp-xfer-steps li { flex: 0 0 auto; min-width: 142px; }
    .kp-portal .kp-xfer-run-meta { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .kp-portal .kp-xfer-action-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 760px) {
    .kp-portal .kp-xfer-header,
    .kp-portal .kp-xfer-section > .kp-section-heading,
    .kp-portal .kp-xfer-preview-head { align-items: stretch; flex-direction: column; }
    .kp-portal .kp-xfer-header .kp-button { align-self: flex-start; }
    .kp-portal .kp-xfer-mode-tabs { justify-content: flex-start; width: 100%; }
    .kp-portal .kp-xfer-mode-tabs .kp-button { flex: 1 1 140px; justify-content: center; }
    .kp-portal .kp-xfer-entity-grid { grid-template-columns: minmax(0, 1fr); }
    .kp-portal .kp-xfer-entity { min-height: 130px; }
    .kp-portal .kp-xfer-run-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kp-portal .kp-xfer-detection-controls,
    .kp-portal .kp-xfer-policy { grid-template-columns: minmax(0, 1fr); }
    .kp-portal .kp-xfer-policy legend { grid-column: auto; }
    .kp-portal .kp-xfer-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kp-portal .kp-xfer-confirm { grid-template-columns: minmax(0, 1fr); }
    .kp-portal .kp-xfer-confirm > label { grid-column: auto; }
    .kp-portal .kp-xfer-confirm .kp-button,
    .kp-portal .kp-xfer-option > .kp-button,
    .kp-portal .kp-xfer-template-option form .kp-button,
    .kp-portal .kp-xfer-form-actions .kp-button { justify-content: center; width: 100%; }
    .kp-portal .kp-xfer-form-actions { display: block; }
    .kp-portal .kp-xfer-result-actions,
    .kp-portal .kp-xfer-undo-form { align-items: stretch; flex-direction: column; }
    .kp-portal .kp-xfer-result-actions form,
    .kp-portal .kp-xfer-result-actions .kp-button { width: 100%; }
    .kp-portal .kp-xfer-context-link { white-space: normal; }
    .kp-portal .kp-acq-newbar.kp-xfer-acq-actions { align-items: stretch; flex-direction: column; }
    .kp-portal .kp-acq-newbar.kp-xfer-acq-actions .kp-button { justify-content: center; width: 100%; }
}

@media (max-width: 420px) {
    .kp-portal .kp-xfer-section { padding: 15px; }
    .kp-portal .kp-xfer-safety { padding: 13px; }
    .kp-portal .kp-xfer-steps li { min-width: 128px; }
    .kp-portal .kp-xfer-stat-grid { gap: 6px; }
    .kp-portal .kp-xfer-stat-grid > div { padding: 9px; }
    .kp-portal .kp-xfer-stat-grid dd { font-size: 18px; }
}

/* wl274 — CRM profiles keep operational information prominent while imported
 * audit data stays available without becoming the page layout. */
.kp-portal .kp-crm-pcols {
    grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
    gap: 32px;
}

/* wl276 — status is a record-level control, not part of the upload row. */
.kp-portal .kp-pp-topbar { justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.kp-portal .kp-pp-status-form { display: inline-flex; align-items: end; gap: 8px; margin-left: auto; }
.kp-portal .kp-pp-status-form label { display: grid; gap: 3px; color: var(--kp-muted, #667085); font-size: 10px; font-weight: 700; letter-spacing: .025em; text-transform: uppercase; }
.kp-portal .kp-pp-status-form select { min-width: 170px; padding: 7px 30px 7px 9px; border: 1px solid var(--kp-border, #d5dcea); border-radius: 7px; background: var(--kp-white, #fff); color: var(--kp-text, #101828); font-size: 12.5px; text-transform: none; }
.kp-portal .kp-cop-filename { max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 560px) {
    .kp-portal .kp-pp-status-form { width: 100%; margin-left: 0; }
    .kp-portal .kp-pp-status-form label { flex: 1 1 auto; }
    .kp-portal .kp-pp-status-form select { width: 100%; min-width: 0; }
}
.kp-portal .kp-crm-pcols > .kp-crm-pcol { min-width: 0; }
.kp-portal .kp-crm-fields p {
    display: grid;
    grid-template-columns: minmax(116px, 34%) minmax(0, 1fr);
    gap: 8px 14px;
    align-items: start;
    margin: 0 0 10px;
    line-height: 1.45;
}
.kp-portal .kp-crm-fields p.kp-console-meta { display: block; }
.kp-portal .kp-crm-fields b {
    min-width: 0;
    color: #667085;
    font-weight: 600;
    line-height: 1.45;
}
.kp-portal .kp-crm-fields p > :not(b) { min-width: 0; overflow-wrap: anywhere; }

.kp-portal details.kp-crm-import-audit {
    margin: 24px 0 4px;
    border: 1px solid #dfe4ec;
    border-radius: 12px;
    background: #fbfcfe;
    overflow: hidden;
}
.kp-portal .kp-crm-import-audit > summary,
.kp-portal .kp-crm-import-editor > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    list-style: none;
    cursor: pointer;
    padding: 14px 16px;
    color: #25324b;
    background: #fbfcfe;
    font-size: 13.5px;
    font-weight: 700;
}
.kp-portal .kp-crm-import-audit > summary::-webkit-details-marker,
.kp-portal .kp-crm-import-editor > summary::-webkit-details-marker { display: none; }
.kp-portal .kp-crm-import-audit > summary span,
.kp-portal .kp-crm-import-editor > summary span { display: block; min-width: 0; }
.kp-portal .kp-crm-import-audit > summary small,
.kp-portal .kp-crm-import-editor > summary small {
    display: block;
    margin-top: 2px;
    color: #7b879b;
    font-size: 11.5px;
    font-weight: 500;
}
.kp-portal .kp-crm-import-audit > summary::after,
.kp-portal .kp-crm-import-editor > summary::after {
    content: '+';
    display: inline-grid;
    place-items: center;
    flex: 0 0 24px;
    width: 24px;
    height: 24px;
    border-radius: 999px;
    background: #edf2ff;
    color: var(--kp-navy);
    font-size: 17px;
    line-height: 1;
}
.kp-portal .kp-crm-import-audit[open] > summary,
.kp-portal .kp-crm-import-editor[open] > summary { border-bottom: 1px solid #e5e9f0; }
.kp-portal .kp-crm-import-audit[open] > summary::after,
.kp-portal .kp-crm-import-editor[open] > summary::after { content: '\2212'; }
.kp-portal .kp-crm-import-audit-body { padding: 18px; }
.kp-portal details.kp-crm-import-audit:not([open]) > .kp-crm-import-audit-body,
.kp-portal details.kp-crm-import-editor:not([open]) > .kp-crm-import-editor-body { display: none; }
.kp-portal .kp-crm-import-status-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px;
}
.kp-portal .kp-crm-import-status {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 5px 8px;
    align-items: center;
    padding: 11px 12px;
    border: 1px solid #e6eaf0;
    border-radius: 9px;
    background: #fff;
}
.kp-portal .kp-crm-import-status > span { color: #5b6678; font-size: 11.5px; font-weight: 650; }
.kp-portal .kp-crm-import-status > b {
    padding: 2px 8px;
    border-radius: 999px;
    background: #eef1f5;
    color: #475467;
    font-size: 10.5px;
    line-height: 1.4;
}
.kp-portal .kp-crm-import-status > b.is-yes { background: #e9f8f0; color: #087443; }
.kp-portal .kp-crm-import-status > b.is-no { background: #f1f3f6; color: #667085; }
.kp-portal .kp-crm-import-status > small { grid-column: 1 / -1; color: #98a2b3; font-size: 10.5px; }
.kp-portal .kp-crm-import-audit-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px 22px;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid #edf0f4;
}
.kp-portal .kp-crm-import-audit-grid > div { min-width: 0; }
.kp-portal .kp-crm-import-audit-grid span {
    display: block;
    margin-bottom: 4px;
    color: #8a94a6;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .035em;
    text-transform: uppercase;
}
.kp-portal .kp-crm-import-audit-grid b {
    display: block;
    color: #344054;
    font-size: 12px;
    font-weight: 550;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.kp-portal details.kp-crm-import-editor {
    padding: 0;
    margin: 16px 0 4px;
    overflow: hidden;
    background: #fbfcfe;
}
.kp-portal .kp-crm-import-editor-body { padding: 16px; }

.kp-portal .kp-crm-table-orgs .kp-crm-tr {
    grid-template-columns: minmax(180px, 1.55fr) minmax(100px, .9fr) minmax(150px, 1.2fr) minmax(130px, 1fr) minmax(180px, 1.35fr);
}
.kp-portal .kp-crm-orgcontact {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
}
.kp-portal .kp-crm-orgcontact > span { display: block; min-width: 0; }
.kp-portal .kp-crm-orgcontact strong {
    display: block;
    color: #25324b;
    font-size: 13px;
    font-weight: 650;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.kp-portal .kp-crm-orgcontact small {
    display: block;
    margin-top: 2px;
    color: #7b879b;
    font-size: 10.5px;
}

@media (max-width: 920px) {
    .kp-portal .kp-crm-pcols { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .kp-portal .kp-crm-table-orgs .kp-crm-tr { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
@media (max-width: 560px) {
    .kp-portal .kp-crm-fields p { grid-template-columns: minmax(0, 1fr); gap: 2px; }
    .kp-portal .kp-crm-import-audit-body,
    .kp-portal .kp-crm-import-editor-body { padding: 14px; }
    .kp-portal .kp-crm-import-status-grid,
    .kp-portal .kp-crm-import-audit-grid { grid-template-columns: minmax(0, 1fr); }
}

/* wl277b — compact cards with the full review independently scrollable. */
.kp-portal .kp-pp-intel-grid {
    align-items: start;
}
.kp-portal .kp-pp-ai-review .kp-pp-ai-scroll {
    width: 100%;
    height: auto;
    min-height: 0;
    max-height: 280px;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    padding: 2px 12px 12px 2px;
    border-top: 1px solid #e7edf5;
    border-bottom: 1px solid #e7edf5;
}
.kp-portal .kp-pp-ai-review .kp-pp-ai-summary[open] > summary {
    position: static;
    margin: 0 -6px;
    padding: 10px 6px;
    background: #fff;
}
.kp-portal .kp-pp-ai-review .kp-pp-ai-summary [data-kp-cop-saved-body] {
    font-size: 12.5px;
    line-height: 1.65;
    white-space: pre-wrap;
}

/* ===== WL278b - property record hierarchy and in-context workflow ===== */
.kp-portal .kp-pp-topbar { margin-bottom: 8px; }

/* Keep property tools compact and grouped instead of distributing a row of
 * fixed-width pills across the full record. */
.kp-portal .kp-pp-pillcard { padding: 8px 10px; }
.kp-portal .kp-pp-pillcard .kp-pp-pills { gap: 5px; }
.kp-portal .kp-pp-pillcard .kp-pp-pills > a,
.kp-portal .kp-pp-pillcard .kp-pp-pills > button {
    min-width: 0;
    min-height: 34px;
    padding: 8px 12px;
    font-size: 12.5px;
}

/* The generic acquisition input rule makes checkboxes width:100%. The
 * origination toggle then becomes a giant blank panel with its copy pushed
 * off-screen. Restore the checkbox as a checkbox. */
.kp-portal .kp-acq-form .kp-origin-chain-toggle input[type="checkbox"] {
    width: 18px;
    height: 18px;
    min-width: 18px;
    margin: 1px 0 0;
    padding: 0;
    border-radius: 4px;
}

/* Decision Support and its map are one overview row. The taller card defines
 * the row; the other card stretches and its map fills the available height. */
.kp-portal .kp-pp-intel-grid { align-items: stretch; }
.kp-portal .kp-pp-intel-grid > .kp-card { height: 100%; }
.kp-portal .kp-pp-overview-map iframe { min-height: 300px; }

/* Replace the decorative deal-process banner with the live current-stage
 * checklist, its next destination and the actual stage control. */
.kp-portal .kp-pp-stage-workflow {
    display: grid;
    gap: 9px;
    margin-top: 12px;
    padding: 12px 14px;
    border: 1px solid #dce5f2;
    border-radius: 11px;
    background: #f8faff;
}
.kp-portal .kp-pp-stage-workflow-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
}
.kp-portal .kp-pp-stage-workflow-head > span { display: grid; gap: 2px; min-width: 0; }
.kp-portal .kp-pp-stage-workflow-head small {
    color: #667085;
    font-size: 9.5px;
    font-weight: 800;
    letter-spacing: .055em;
    text-transform: uppercase;
}
.kp-portal .kp-pp-stage-workflow-head strong { color: #17233c; font-size: 14px; line-height: 1.25; }
.kp-portal .kp-pp-stage-workflow-head > b { color: #526176; font-size: 10.5px; font-weight: 700; white-space: nowrap; }
.kp-portal .kp-pp-stage-workflow .kp-pp-stage-progress-track { height: 5px; }
.kp-portal .kp-pp-stage-workflow-body { min-width: 0; }
.kp-portal .kp-pp-stage-workflow-body p { margin: 0; color: #526176; font-size: 10.75px; line-height: 1.4; }
.kp-portal .kp-pp-stage-workflow-body p.is-ready { color: #276749; font-weight: 700; }
.kp-portal .kp-pp-stage-workflow-body ul { display: grid; gap: 3px; margin: 6px 0 0; padding: 0; list-style: none; }
.kp-portal .kp-pp-stage-workflow-body li { position: relative; padding-left: 13px; }
.kp-portal .kp-pp-stage-workflow-body li::before { content: ""; position: absolute; left: 1px; top: 8px; width: 5px; height: 5px; border-radius: 50%; background: #d69611; }
.kp-portal .kp-pp-stage-workflow-body li button {
    display: block;
    width: 100%;
    padding: 2px 0;
    border: 0;
    background: transparent;
    color: #243b64;
    font: inherit;
    font-size: 10.75px;
    font-weight: 650;
    line-height: 1.35;
    text-align: left;
    cursor: pointer;
}
.kp-portal .kp-pp-stage-workflow-body li button:hover { color: #174ea6; text-decoration: underline; }
.kp-portal .kp-pp-stage-workflow-body li button strong { display: block; font: inherit; }
.kp-portal .kp-pp-stage-workflow-body li button small {
    display: block;
    margin-top: 1px;
    color: #667085;
    font-size: 9.75px;
    font-weight: 500;
    line-height: 1.35;
}
.kp-portal .kp-pp-stage-workflow-body li button:hover small { color: #526176; text-decoration: none; }
.kp-portal .kp-pp-stage-workflow-body > .kp-linkbtn { margin-top: 6px; padding: 0; font-size: 10.5px; }
.kp-portal .kp-pp-stage-workflow .kp-pp-status-form {
    display: flex;
    align-items: end;
    gap: 7px;
    margin: 1px 0 0;
    padding-top: 9px;
    border-top: 1px solid #e1e7f0;
}
.kp-portal .kp-pp-stage-workflow .kp-pp-status-form label { flex: 1 1 auto; min-width: 0; }
.kp-portal .kp-pp-stage-workflow .kp-pp-status-form select { width: 100%; min-width: 0; padding-top: 6px; padding-bottom: 6px; }
.kp-portal .kp-pp-stage-workflow .kp-pp-status-form .kp-button { min-height: 32px; padding: 6px 11px; }
.kp-portal .kp-pp-herocard .kp-ppd-gallery {
    align-self: start;
    height: clamp(320px, 28vw, 400px);
    min-height: 0;
    max-height: 400px;
}

/* Property tasks are a working panel, not a narrow notification rail. Task
 * details load inside it so selecting a task never navigates away. */
@media (min-width: 1100px) {
    .kp-portal .kp-deal-tasks-drawer.kp-recd-drawer {
        width: min(58vw, 900px);
        max-width: 900px;
    }
}
.kp-portal .kp-deal-tasks-drawer > .kp-raild-body { min-height: 0; padding: 0; overflow: hidden; }
.kp-portal .kp-deal-task-list-panel { height: 100%; overflow-y: auto; padding: 12px 18px 22px; }
.kp-portal .kp-deal-task-detail-panel { height: 100%; min-height: 0; }
.kp-portal .kp-deal-task-detail-panel:not([hidden]) { display: flex; flex-direction: column; }
.kp-portal .kp-deal-task-detail-head {
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 42px;
    padding: 8px 14px;
    border-bottom: 1px solid #e3e9f1;
    background: #f8fafd;
}
.kp-portal .kp-deal-task-detail-head .kp-linkbtn { flex: 0 0 auto; padding: 0; font-size: 11.5px; }
.kp-portal .kp-deal-task-detail-head strong { min-width: 0; overflow: hidden; color: #344054; font-size: 11.5px; text-overflow: ellipsis; white-space: nowrap; }
.kp-portal .kp-deal-task-detail-panel iframe { display: block; flex: 1 1 auto; width: 100%; min-height: 0; border: 0; background: #f5f8fc; }

@media (max-width: 700px) {
    .kp-portal .kp-pp-stage-workflow .kp-pp-status-form { align-items: stretch; flex-direction: column; }
    .kp-portal .kp-pp-stage-workflow .kp-pp-status-form .kp-button { width: 100%; }
    .kp-portal .kp-pp-herocard .kp-ppd-gallery { height: 260px; min-height: 0; max-height: 260px; }
}

@media (min-width: 701px) and (max-width: 1099px) {
    .kp-portal .kp-pp-herocard .kp-ppd-gallery { height: 340px; min-height: 0; max-height: 340px; }
}

/* ===== WL278c - functional property workflow =====
 * The visual process belongs above the property hero.  It shows the actual
 * pipeline, keeps stage movement discreet, and exposes the current required
 * tasks as working controls rather than a decorative status line. */
.kp-portal .kp-pp-workflow-bar {
    position: relative;
    margin: 0 0 14px;
    padding: 16px 22px 14px;
    overflow: visible;
}
.kp-portal .kp-pp-workflow-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}
.kp-portal .kp-pp-workflow-head .kp-eyebrow { margin: 0 0 2px; }
.kp-portal .kp-pp-workflow-head h2 { margin: 0; color: #12213d; font-size: 17px; line-height: 1.25; }
.kp-portal .kp-pp-stage-change { position: relative; z-index: 12; flex: 0 0 auto; }
.kp-portal .kp-pp-stage-change > summary {
    padding: 6px 10px;
    border: 1px solid #d8e1ed;
    border-radius: 8px;
    background: #fff;
    color: #40506a;
    font-size: 11.5px;
    font-weight: 750;
    cursor: pointer;
    list-style: none;
}
.kp-portal .kp-pp-stage-change > summary::-webkit-details-marker { display: none; }
.kp-portal .kp-pp-stage-change > summary::after { content: "\2304"; margin-left: 7px; color: #75839a; }
.kp-portal .kp-pp-stage-change[open] > summary { border-color: #90acf0; color: #174ea6; }
.kp-portal .kp-pp-stage-change .kp-pp-status-form {
    position: absolute;
    top: calc(100% + 7px);
    right: 0;
    display: grid;
    width: min(310px, calc(100vw - 42px));
    gap: 9px;
    margin: 0;
    padding: 13px;
    border: 1px solid #d8e1ed;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(20, 39, 72, .18);
}
.kp-portal .kp-pp-stage-change .kp-pp-status-form label { display: grid; gap: 5px; margin: 0; }
.kp-portal .kp-pp-stage-change .kp-pp-status-form label > span { color: #526176; font-size: 10.5px; font-weight: 750; }
.kp-portal .kp-pp-stage-change .kp-pp-status-form select { width: 100%; min-width: 0; }
.kp-portal .kp-pp-stage-change .kp-pp-status-form .kp-button { width: 100%; }
.kp-portal .kp-pp-workflow-steps {
    position: relative;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(105px, 1fr));
    gap: 5px;
    margin-top: 12px;
    padding: 3px 12px 8px;
}
.kp-portal .kp-pp-workflow-line {
    position: absolute;
    z-index: 0;
    top: 18px;
    right: calc(7% + 12px);
    left: calc(7% + 12px);
    height: 3px;
    overflow: hidden;
    border-radius: 3px;
    background: #dfe6ef;
}
.kp-portal .kp-pp-workflow-line i {
    display: block;
    width: var(--kp-workflow-progress, 0%);
    height: 100%;
    border-radius: inherit;
    background: #183d7a;
    transition: width .2s ease;
}
.kp-portal .kp-pp-workflow-step {
    position: relative;
    z-index: 1;
    display: grid;
    justify-items: center;
    align-content: start;
    gap: 4px;
    min-width: 0;
    padding: 0 5px;
    border: 0;
    background: transparent;
    color: #6c788b;
    font: inherit;
    text-align: center;
    cursor: pointer;
}
.kp-portal .kp-pp-workflow-marker {
    display: grid;
    place-items: center;
    width: 31px;
    height: 31px;
    border: 3px solid #fff;
    border-radius: 50%;
    background: #e4e9f1;
    box-shadow: 0 0 0 1px #d6dfeb;
    color: #6b778a;
    font-size: 11px;
    font-weight: 850;
}
.kp-portal .kp-pp-workflow-step.is-complete .kp-pp-workflow-marker { background: #173968; box-shadow: 0 0 0 1px #173968; color: #fff; }
.kp-portal .kp-pp-workflow-step.is-current .kp-pp-workflow-marker { background: #fff5d7; box-shadow: 0 0 0 2px #e8a900; color: #9a6500; }
.kp-portal .kp-pp-workflow-label { color: inherit; font-size: 11.5px; font-weight: 700; line-height: 1.25; }
.kp-portal .kp-pp-workflow-step.is-complete .kp-pp-workflow-label,
.kp-portal .kp-pp-workflow-step.is-current .kp-pp-workflow-label { color: #17345f; }
.kp-portal .kp-pp-workflow-step.is-current .kp-pp-workflow-label { font-weight: 850; }
.kp-portal .kp-pp-workflow-step small { color: #9a6500; font-size: 9.5px; font-weight: 750; line-height: 1.2; }
.kp-portal .kp-pp-workflow-step:hover .kp-pp-workflow-label { color: #174ea6; text-decoration: underline; }
.kp-portal .kp-pp-workflow-tasks {
    display: grid;
    gap: 8px;
    margin-top: 7px;
    padding-top: 11px;
    border-top: 1px solid #e5eaf1;
}
.kp-portal .kp-pp-workflow-taskhead { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.kp-portal .kp-pp-workflow-taskhead > span { display: grid; min-width: 0; gap: 1px; }
.kp-portal .kp-pp-workflow-taskhead strong { color: #21324e; font-size: 11.5px; }
.kp-portal .kp-pp-workflow-taskhead small { color: #6b778a; font-size: 10.25px; }
.kp-portal .kp-pp-workflow-taskhead > b { flex: 0 0 auto; color: #526176; font-size: 10.5px; }
.kp-portal .kp-pp-workflow-tasks .kp-pp-stage-progress-track { height: 4px; }
.kp-portal .kp-pp-workflow-tasklist { display: flex; flex-wrap: wrap; gap: 6px; }
.kp-portal .kp-pp-workflow-task {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    max-width: min(100%, 360px);
    padding: 6px 9px;
    border: 1px solid #dfe6ef;
    border-radius: 8px;
    background: #f8faff;
}
.kp-portal .kp-pp-workflow-task.is-done { background: #f2faf6; border-color: #cfe6d7; }
.kp-portal .kp-pp-workflow-task form { display: flex; flex: 0 0 auto; margin: 0; }
.kp-portal .kp-pp-workflow-taskname {
    min-width: 0;
    overflow: hidden;
    padding: 0;
    border: 0;
    background: transparent;
    color: #263b60;
    font: inherit;
    font-size: 10.75px;
    font-weight: 700;
    line-height: 1.25;
    text-align: left;
    text-overflow: ellipsis;
    white-space: nowrap;
    cursor: pointer;
}
.kp-portal .kp-pp-workflow-taskname:hover { color: #174ea6; text-decoration: underline; }
.kp-portal .kp-pp-workflow-task.is-done .kp-pp-workflow-taskname { color: #738096; text-decoration: line-through; }
.kp-portal .kp-pp-workflow-status,
.kp-portal .kp-taskd-live-status { min-height: 0; margin: 0; color: #31724b; font-size: 10.5px; }
.kp-portal .kp-pp-workflow-status:empty,
.kp-portal .kp-taskd-live-status:empty { display: none; }
.kp-portal [data-kp-task-toggle-status].is-error { color: #b42318; }
.kp-portal [data-kp-task-toggle][aria-busy="true"] { cursor: wait; opacity: .6; }
.kp-portal .kp-taskd-complete-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-left: auto;
    padding: 5px 8px;
    border: 1px solid #d8e1ed;
    border-radius: 8px;
    background: #fff;
    color: #40506a;
    font: inherit;
    font-size: 11px;
    font-weight: 750;
    cursor: pointer;
}
.kp-portal .kp-taskd-complete-toggle.is-checked { color: #276749; border-color: #b9d9c5; background: #f2faf6; }
.kp-portal .kp-taskd-complete-toggle .kp-taskf-check { pointer-events: none; }
.kp-portal .kp-taskd-live-status { padding: 0 18px; }

@media (max-width: 760px) {
    .kp-portal .kp-pp-workflow-bar { padding: 14px 12px 12px; }
    .kp-portal .kp-pp-workflow-steps { display: flex; overflow-x: auto; padding-right: 4px; padding-left: 4px; scrollbar-width: thin; }
    .kp-portal .kp-pp-workflow-step { flex: 0 0 112px; }
    .kp-portal .kp-pp-workflow-line { display: none; }
    .kp-portal .kp-pp-workflow-taskhead { align-items: flex-start; }
    .kp-portal .kp-pp-workflow-taskhead small { max-width: 230px; }
    .kp-portal .kp-pp-workflow-tasklist { display: grid; grid-template-columns: 1fr; }
    .kp-portal .kp-pp-workflow-task { max-width: none; }
}

/* WL278e — keep the workflow a progress control; the task list belongs in
 * the existing property drawer, not across the top of the record. */
.kp-portal .kp-pp-workflow-tasks {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    column-gap: 14px;
    row-gap: 5px;
    padding-top: 9px;
}
.kp-portal .kp-pp-workflow-taskhead { min-width: 0; }
.kp-portal .kp-pp-workflow-tasks .kp-pp-stage-progress-track { grid-column: 1; }
.kp-portal .kp-pp-workflow-task-action { grid-column: 2; grid-row: 1 / span 2; white-space: nowrap; }
.kp-portal .kp-pp-workflow-status { grid-column: 1 / -1; }
.kp-portal .kp-deal-task-stage-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin: 0 0 10px;
    padding: 10px 12px;
    border: 1px solid #dfe7f1;
    border-radius: 10px;
    background: #f7faff;
}
.kp-portal .kp-deal-task-stage-summary > span { display: grid; min-width: 0; gap: 2px; }
.kp-portal .kp-deal-task-stage-summary strong { color: #18345e; font-size: 12px; }
.kp-portal .kp-deal-task-stage-summary small { color: #65738a; font-size: 10.5px; }
.kp-portal .kp-deal-task-stage-summary > b { flex: 0 0 auto; color: #526176; font-size: 10.5px; }

/* Query-driven action feedback appears without changing the page geometry and
 * dismisses automatically; errors remain long enough to read. */
.kp-portal .kp-console-notice.kp-notice-toast {
    position: fixed;
    z-index: 15000;
    top: calc(74px + (var(--kp-toast-index, 0) * 58px));
    right: 20px;
    width: min(360px, calc(100vw - 32px));
    margin: 0;
    padding: 11px 40px 11px 13px;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 14px 36px rgba(19, 40, 75, .18);
    transition: opacity .2s ease, transform .2s ease;
}
.kp-portal .kp-console-notice.kp-notice-toast p { margin: 0; font-size: 12px; line-height: 1.4; }
.kp-portal .kp-console-notice.kp-notice-toast.is-leaving { opacity: 0; transform: translateY(-6px); pointer-events: none; }
.kp-portal .kp-notice-toast-close {
    position: absolute;
    top: 5px;
    right: 6px;
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: #65738a;
    font: inherit;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
}
.kp-portal .kp-notice-toast-close:hover { background: #eef3f9; color: #18345e; }

@media (max-width: 760px) {
    .kp-portal .kp-pp-workflow-tasks { grid-template-columns: 1fr; }
    .kp-portal .kp-pp-workflow-task-action { grid-column: 1; grid-row: auto; justify-self: start; }
    .kp-portal .kp-pp-workflow-tasks .kp-pp-stage-progress-track,
    .kp-portal .kp-pp-workflow-status { grid-column: 1; }
    .kp-portal .kp-console-notice.kp-notice-toast { top: calc(66px + (var(--kp-toast-index, 0) * 58px)); right: 16px; }
}

/* WL278l — the single property workflow now lives inside the hero. The full
 * pipeline, stage control, progress, and current requirements share one
 * compact component; there is no second workflow card above the property. */
.kp-portal .kp-ppd-hero:not(.kp-ppd-hero-nophotos) .kp-pp-herohead {
    box-sizing: border-box;
    justify-content: flex-start;
    min-height: 360px;
    padding-top: 10px;
    gap: 3px;
}
.kp-portal .kp-pp-herocard .kp-ppd-strip { gap: 10px 18px; padding-top: 10px; }
.kp-portal .kp-pp-herocard .kp-pp-export-actions { margin-top: 7px; }
.kp-portal .kp-pp-hero-workflow {
    position: relative;
    display: grid;
    gap: 4px;
    width: 100%;
    min-width: 0;
    margin-top: auto;
    padding: 7px 9px 8px;
    border: 1px solid #dce5f0;
    border-radius: 9px;
    background: #f8faff;
    overflow: visible;
}
.kp-portal .kp-pp-hero-workflow-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-width: 0;
}
.kp-portal .kp-pp-hero-workflow-head > span { display: flex; align-items: baseline; min-width: 0; gap: 7px; }
.kp-portal .kp-pp-hero-workflow-head small { color: #52708f; font-size: 8.5px; font-weight: 850; letter-spacing: .07em; line-height: 1.2; text-transform: uppercase; }
.kp-portal .kp-pp-hero-workflow-head strong { overflow: hidden; color: #12213d; font-size: 11.5px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.kp-portal .kp-pp-hero-workflow .kp-pp-stage-change > summary { padding: 4px 7px; font-size: 9.5px; }
.kp-portal .kp-pp-hero-workflow .kp-pp-stage-change > summary::after { margin-left: 5px; }
.kp-portal .kp-pp-hero-workflow .kp-pp-workflow-steps {
    grid-template-columns: repeat(var(--kp-workflow-stages), minmax(0, 1fr));
    gap: 2px;
    margin: 0;
    padding: 0 2px 2px;
}
.kp-portal .kp-pp-hero-workflow .kp-pp-workflow-line {
    top: 10px;
    right: calc(50% / var(--kp-workflow-stages));
    left: calc(50% / var(--kp-workflow-stages));
    height: 2px;
}
.kp-portal .kp-pp-hero-workflow .kp-pp-workflow-step { gap: 2px; padding: 0 1px; }
.kp-portal .kp-pp-hero-workflow .kp-pp-workflow-marker {
    width: 20px;
    height: 20px;
    border-width: 2px;
    font-size: 8px;
}
.kp-portal .kp-pp-hero-workflow .kp-pp-workflow-label { font-size: 8.75px; line-height: 1.15; }
.kp-portal .kp-pp-hero-workflow .kp-pp-workflow-step small { font-size: 7.5px; line-height: 1.1; }
.kp-portal .kp-pp-hero-workflow-gate {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    min-width: 0;
    padding-top: 5px;
    border-top: 1px solid #e2e8f0;
}
.kp-portal .kp-pp-hero-workflow-gatecopy { display: grid; min-width: 0; gap: 2px; }
.kp-portal .kp-pp-hero-workflow-gatetitle { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; min-width: 0; }
.kp-portal .kp-pp-hero-workflow-gatetitle strong { overflow: hidden; color: #18345e; font-size: 9.5px; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.kp-portal .kp-pp-hero-workflow-gatetitle b { flex: 0 0 auto; color: #526176; font-size: 8.75px; line-height: 1.2; white-space: nowrap; }
.kp-portal .kp-pp-hero-workflow .kp-pp-stage-progress-track { height: 3px; }
.kp-portal .kp-pp-hero-workflow .kp-pp-hero-stage-copy { min-width: 0; overflow: hidden; color: #40506a; font-size: 8.75px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.kp-portal .kp-pp-hero-workflow .kp-pp-hero-stage-next { margin-right: 3px; color: #7a5300; font-weight: 800; }
.kp-portal .kp-pp-hero-workflow .kp-pp-hero-stage-copy ul { display: inline; margin: 0; padding: 0; list-style: none; }
.kp-portal .kp-pp-hero-workflow .kp-pp-hero-stage-copy li { display: inline; color: #263b60; font-weight: 650; }
.kp-portal .kp-pp-hero-workflow .kp-pp-hero-stage-copy li + li::before { content: " \2022  "; color: #9aa6b8; }
.kp-portal .kp-pp-hero-stage-more { color: #6b778a !important; font-weight: 750 !important; }
.kp-portal .kp-pp-hero-workflow .kp-pp-hero-stage-copy .is-ready { display: inline; margin: 0; color: #276749; font-size: 8.75px; font-weight: 750; }
.kp-portal .kp-pp-hero-workflow-gate > .kp-button { min-height: 25px; padding: 3px 8px; font-size: 9.5px; white-space: nowrap; }
.kp-portal .kp-pp-hero-workflow-empty { margin: 0; color: #6b778a; font-size: 8.75px; line-height: 1.25; }
.kp-portal .kp-pp-hero-workflow > .kp-pp-workflow-status { margin-top: 0; font-size: 8.75px; }

@media (max-width: 1100px) {
    .kp-portal .kp-ppd-hero:not(.kp-ppd-hero-nophotos) .kp-pp-herohead { min-height: 0; padding-top: 4px; }
    .kp-portal .kp-pp-hero-workflow { margin-top: 8px; }
}
@media (max-width: 700px) {
    .kp-portal .kp-pp-hero-workflow-head { align-items: flex-start; }
    .kp-portal .kp-pp-hero-workflow-head > span { display: grid; gap: 0; }
    .kp-portal .kp-pp-hero-workflow .kp-pp-workflow-steps { display: flex; overflow-x: auto; padding-bottom: 5px; scrollbar-width: thin; }
    .kp-portal .kp-pp-hero-workflow .kp-pp-workflow-step { flex: 0 0 92px; }
    .kp-portal .kp-pp-hero-workflow .kp-pp-workflow-line { display: none; }
    .kp-portal .kp-pp-hero-workflow-gate { grid-template-columns: 1fr; }
    .kp-portal .kp-pp-hero-workflow-gate > .kp-button { justify-self: start; }
}

/* WL278n — the compact requirement preview remains one line, while hover or
 * keyboard focus exposes every current-stage requirement without resizing the
 * property hero. */
.kp-portal .kp-pp-hero-workflow-gatecopy[data-kp-required-tooltip]:not([data-kp-required-tooltip=""]) {
    position: relative;
    cursor: help;
}
.kp-portal .kp-pp-hero-workflow-gatecopy[data-kp-required-tooltip]:not([data-kp-required-tooltip=""])::after {
    position: absolute;
    z-index: 80;
    bottom: calc(100% + 8px);
    left: 0;
    width: min(460px, calc(100vw - 56px));
    padding: 9px 11px;
    border: 1px solid #cfd9e7;
    border-radius: 8px;
    background: #12213d;
    box-shadow: 0 10px 26px rgba(17, 34, 62, .2);
    color: #fff;
    content: attr(data-kp-required-tooltip);
    font-size: 10.5px;
    font-weight: 650;
    line-height: 1.45;
    opacity: 0;
    pointer-events: none;
    transform: translateY(4px);
    transition: opacity .15s ease, transform .15s ease;
    white-space: normal;
}
.kp-portal .kp-pp-hero-workflow-gatecopy[data-kp-required-tooltip]:not([data-kp-required-tooltip=""]):hover::after,
.kp-portal .kp-pp-hero-workflow-gatecopy[data-kp-required-tooltip]:not([data-kp-required-tooltip=""]):focus-visible::after {
    opacity: 1;
    transform: translateY(0);
}

/* WL278n — compact CRM framing plus real page-size controls. Paginated lists
 * expand with the selected 25/50/100 rows and only scroll horizontally when
 * the chosen columns exceed the available width. */
.kp-portal .kp-clients-intro {
    padding: 12px 20px;
}
.kp-portal .kp-clients-intro .kp-section-heading {
    margin: 0;
    padding: 0 0 7px;
}
.kp-portal .kp-clients-intro .kp-section-heading h2 { margin: 1px 0 0; }
.kp-portal .kp-clients-intro > .kp-console-meta {
    margin: 7px 0 0;
    font-size: 12px;
    line-height: 1.35;
}
.kp-portal .kp-clients-intro .kp-crm-toolbar {
    margin: 8px 0 0;
}
.kp-portal .kp-crm-directory-heading {
    align-items: center;
    padding: 12px 20px 10px;
}
.kp-portal .kp-crm-directory-heading h2 { margin: 1px 0 2px; }
.kp-portal .kp-crm-directory-heading .kp-console-meta { font-size: 11.5px; line-height: 1.35; }
.kp-portal .kp-crm-directory > .kp-managed-list-viewport.kp-managed-list-paginated-viewport,
.kp-portal .kp-managed-list-viewport.kp-managed-list-paginated-viewport {
    max-height: none;
    overflow-x: auto;
    overflow-y: visible;
}
.kp-portal .kp-crm-page-size {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #5c6b7e;
    font-size: 11.5px;
    font-weight: 650;
    white-space: nowrap;
}
.kp-portal .kp-crm-page-size select {
    width: auto;
    min-width: 68px;
    min-height: 34px;
    margin: 0;
    padding: 5px 25px 5px 9px;
    font-size: 12px;
}
@media (max-width: 700px) {
    .kp-portal .kp-clients-intro { padding: 11px 14px; }
    .kp-portal .kp-crm-directory-heading { padding: 11px 14px 9px; }
    .kp-portal .kp-crm-pagination-summary { width: 100%; }
    .kp-portal .kp-crm-pagination-actions { flex-wrap: wrap; }
}

/* WL279 — admin-published video resources and client watch cards. */
.kp-portal .kp-resource-publisher-shortcut {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 0 0 18px;
    padding: 12px 14px;
    border: 1px solid #b8d6ef;
    border-radius: 11px;
    background: #eff8ff;
}
.kp-portal .kp-resource-publisher-shortcut > span {
    display: grid;
    min-width: 0;
    gap: 3px;
}
.kp-portal .kp-resource-publisher-shortcut strong {
    color: #17334f;
    font-size: 13px;
}
.kp-portal .kp-resource-publisher-shortcut small {
    color: #5f7185;
    font-size: 11.5px;
    line-height: 1.4;
}
.kp-portal #kp-resource-video-manager {
    scroll-margin-top: 86px;
}
.kp-portal .kp-resource-video-manager,
.kp-portal .kp-resource-video-library {
    margin-bottom: 18px;
}
.kp-portal .kp-resource-video-form {
    margin-top: 18px;
}
.kp-portal .kp-resource-video-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.kp-portal .kp-resource-video-form-grid > label,
.kp-portal .kp-resource-video-form-grid fieldset {
    min-width: 0;
}
.kp-portal .kp-resource-video-form-grid > label > span,
.kp-portal .kp-resource-video-source > legend,
.kp-portal .kp-resource-video-audiences > legend {
    display: block;
    margin-bottom: 7px;
    color: #31475f;
    font-size: 12px;
    font-weight: 750;
}
.kp-portal .kp-resource-video-form-grid input[type="text"],
.kp-portal .kp-resource-video-form-grid input[type="url"],
.kp-portal .kp-resource-video-form-grid input[type="file"],
.kp-portal .kp-resource-video-form-grid textarea {
    width: 100%;
}
.kp-portal .kp-resource-video-field-wide {
    grid-column: 1 / -1;
}
.kp-portal .kp-resource-video-source,
.kp-portal .kp-resource-video-audiences {
    margin: 0;
    padding: 14px 16px;
    border: 1px solid #dce5ee;
    border-radius: 11px;
}
.kp-portal .kp-resource-video-source-choice {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 5px 0 9px;
    color: #263e57;
    font-size: 12.5px;
    font-weight: 700;
}
.kp-portal .kp-resource-video-source-choice + input[type="file"],
.kp-portal .kp-resource-video-source-choice + input[type="url"] {
    margin-bottom: 6px;
}
.kp-portal .kp-resource-video-audience-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px 14px;
    margin-top: 10px;
}
.kp-portal .kp-resource-video-audience-grid label {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    min-width: 0;
    color: #40556d;
    font-size: 12px;
    line-height: 1.35;
}
.kp-portal .kp-resource-video-audience-grid input {
    flex: 0 0 auto;
    margin-top: 1px;
}
.kp-portal .kp-resource-video-form-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 16px;
}
.kp-portal .kp-resource-video-privacy-note {
    margin: 12px 0 0;
}
.kp-portal .kp-resource-video-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 18px;
    margin-top: 18px;
}
.kp-portal .kp-resource-video-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #dce5ee;
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 6px 18px rgba(18, 43, 70, .06);
}
.kp-portal .kp-resource-video-player {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #0d1723;
}
.kp-portal .kp-resource-video-player video,
.kp-portal .kp-resource-video-player iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}
.kp-portal .kp-resource-video-player video {
    object-fit: contain;
}
.kp-portal .kp-resource-video-player video:focus-visible,
.kp-portal .kp-resource-video-player iframe:focus-visible {
    outline: 3px solid #4ca5df;
    outline-offset: -3px;
}
.kp-portal .kp-resource-video-copy {
    padding: 16px;
}
.kp-portal .kp-resource-video-copy h3 {
    margin: 0;
    color: #18334f;
    font-size: 16px;
    line-height: 1.35;
}
.kp-portal .kp-resource-video-copy > p:not(.kp-console-meta) {
    margin: 8px 0 0;
    color: #64768b;
    font-size: 12.5px;
    line-height: 1.55;
}
.kp-portal .kp-resource-video-unavailable,
.kp-portal .kp-resource-video-fallback {
    display: grid;
    min-height: 180px;
    margin: 0;
    padding: 20px;
    place-items: center;
    color: #dce8f4;
    background: #0d1723;
    text-align: center;
}
.kp-portal .kp-resource-video-fallback a {
    color: #fff;
}
.kp-portal .kp-resource-video-heygen {
    display: grid;
    place-items: center;
    background: linear-gradient(145deg, #101b31, #26345c);
}
.kp-portal .kp-resource-video-heygen > a {
    display: grid;
    max-width: 260px;
    padding: 24px;
    place-items: center;
    color: #fff;
    text-align: center;
    text-decoration: none;
}
.kp-portal .kp-resource-video-heygen > a > span {
    display: grid;
    width: 48px;
    height: 48px;
    margin-bottom: 12px;
    place-items: center;
    border: 1px solid rgba(255,255,255,.4);
    border-radius: 50%;
    background: rgba(255,255,255,.12);
    font-size: 18px;
}
.kp-portal .kp-resource-video-heygen > a > strong { font-size: 14px; }
.kp-portal .kp-resource-video-heygen > a > small { margin-top: 5px; color: #cbd7ea; font-size: 10px; }
.kp-portal .kp-resource-video-heygen > a:hover > span,
.kp-portal .kp-resource-video-heygen > a:focus-visible > span { background: rgba(255,255,255,.22); }
.kp-portal .kp-resource-video-manage {
    margin-top: 12px;
    padding-top: 11px;
    border-top: 1px solid #edf1f5;
}
.kp-portal .kp-resource-video-manage summary {
    color: #216c9f;
    cursor: pointer;
    font-size: 11.5px;
    font-weight: 750;
}
.kp-portal .kp-resource-video-manage form {
    padding-top: 8px;
}
@media (max-width: 700px) {
    .kp-portal .kp-resource-publisher-shortcut {
        align-items: stretch;
        flex-direction: column;
    }
    .kp-portal .kp-resource-publisher-shortcut .kp-button {
        justify-content: center;
        width: 100%;
    }
    .kp-portal .kp-resource-video-form-grid,
    .kp-portal .kp-resource-video-audience-grid,
    .kp-portal .kp-resource-video-grid {
        grid-template-columns: minmax(0, 1fr);
    }
    .kp-portal .kp-resource-video-form-actions {
        justify-content: stretch;
    }
    .kp-portal .kp-resource-video-form-actions .kp-button {
        width: 100%;
        justify-content: center;
    }
}

/* WL279 — quiet client Home: three even columns and attention-only top cards. */
.kp-page-dashboard .kp-clienthome-metrics,
.kp-page-workspace .kp-clienthome-metrics,
.kp-page-deals .kp-clienthome-metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.kp-page-dashboard .kp-dashboard-card-grid {
    grid-auto-rows: 1fr;
    align-items: stretch;
}

.kp-page-dashboard .kp-dashboard-card-grid > .kp-card {
    height: 100%;
}

@media (max-width: 980px) {
    .kp-page-dashboard .kp-clienthome-metrics,
    .kp-page-workspace .kp-clienthome-metrics,
    .kp-page-deals .kp-clienthome-metrics,
    .kp-page-dashboard .kp-dashboard-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .kp-page-dashboard .kp-clienthome-metrics,
    .kp-page-workspace .kp-clienthome-metrics,
    .kp-page-deals .kp-clienthome-metrics,
    .kp-page-dashboard .kp-dashboard-card-grid {
        grid-template-columns: 1fr;
    }
}

/* WL281 final-order overrides: compact Console and Videos publishing drawer. */
.kp-portal .kp-direct-tool-console .kp-console-hero {
    min-height: 0;
    margin-bottom: 14px;
    overflow: visible;
    border: 1px solid #dce5ee;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(20, 47, 76, .045);
}
.kp-portal .kp-direct-tool-console .kp-console-hero::before { width: 4px; border-radius: 14px 0 0 14px; }
.kp-portal .kp-direct-tool-console .kp-console-hero::after { display: none; }
.kp-portal .kp-direct-tool-console .kp-console-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    min-height: 94px;
    padding: 18px 22px 18px 25px;
}
.kp-portal .kp-direct-tool-console .kp-console-welcome h1 { margin: 0; font-size: clamp(23px, 2vw, 30px); line-height: 1.12; }
.kp-portal .kp-direct-tool-console .kp-console-welcome > p:last-child { margin: 7px 0 0; color: #607185; font-size: 12.5px; }
.kp-portal .kp-direct-tool-console .kp-console-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)); align-items: start; gap: 14px; }
.kp-portal .kp-direct-tool-console .kp-console-queue { margin: 0; border-radius: 13px; box-shadow: 0 7px 20px rgba(20, 47, 76, .04); }

.kp-portal .kp-resource-videos-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}
.kp-portal .kp-resource-video-empty { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px; }
.kp-portal .kp-resource-video-empty h2 { margin: 0 0 4px; font-size: 17px; }
.kp-portal .kp-resource-video-empty p { margin: 0; color: #6b7a8a; font-size: 12px; }
.kp-resource-video-drawer-shell {
    position: fixed;
    inset: 0;
    z-index: 2250;
    display: flex;
    justify-content: flex-end;
}
.kp-resource-video-drawer-shell[hidden] { display: none !important; }
.kp-resource-video-drawer-scrim { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; background: rgba(13, 29, 48, .44); cursor: default; }
.kp-resource-video-drawer {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    width: min(92vw, 720px);
    height: 100%;
    overflow: hidden;
    background: #f6f8fb;
    box-shadow: -20px 0 52px rgba(10, 29, 50, .24);
}
.kp-resource-video-drawer > header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    flex: 0 0 auto;
    padding: 20px 22px 17px;
    border-bottom: 1px solid #dce4ed;
    background: #fff;
}
.kp-resource-video-drawer > header .kp-eyebrow { margin: 0 0 4px; color: var(--kp-navy); font-size: 10px; }
.kp-resource-video-drawer > header h2 { margin: 0; color: #142e4d; font-size: 21px; }
.kp-resource-video-drawer-x { display: grid; place-items: center; width: 36px; height: 36px; padding: 0 0 3px; border: 1px solid #d8e0e9; border-radius: 50%; color: #506276; background: #fff; font: 400 25px/1 Arial, sans-serif; cursor: pointer; }
.kp-resource-video-drawer-body { flex: 1 1 auto; min-height: 0; padding: 20px 22px 28px; overflow: auto; }
.kp-resource-video-drawer-body > .kp-console-meta:first-child { margin: 0 0 16px; color: #5f7082; font-size: 12px; line-height: 1.5; }
.kp-resource-video-drawer .kp-resource-video-form { padding: 0; border: 0; background: transparent; }
body.kp-resource-video-drawer-open { overflow: hidden; }

@media (max-width: 720px) {
    .kp-portal .kp-direct-tool-console .kp-console-header { align-items: flex-start; flex-direction: column; gap: 13px; padding: 17px 18px 17px 21px; }
    .kp-portal .kp-resource-videos-header { align-items: flex-start; flex-direction: column; }
    .kp-resource-video-drawer { width: 100vw; }
    .kp-resource-video-drawer-body { padding: 17px 16px 24px; }
}

/* ============================================================
   WL281 — professional, user-configurable operator Console
   ============================================================ */
.kp-portal .kp-direct-tool-console .kp-console-hero {
    min-height: 0;
    margin-bottom: 14px;
    overflow: visible;
    border: 1px solid #dce5ee;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(20, 47, 76, .045);
}
.kp-portal .kp-direct-tool-console .kp-console-hero::before {
    width: 4px;
    border-radius: 14px 0 0 14px;
}
.kp-portal .kp-direct-tool-console .kp-console-hero::after { display: none; }
.kp-portal .kp-direct-tool-console .kp-console-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    min-height: 94px;
    padding: 18px 22px 18px 25px;
}
.kp-portal .kp-direct-tool-console .kp-console-welcome { min-width: 0; }
.kp-portal .kp-direct-tool-console .kp-console-welcome .kp-eyebrow { margin: 0 0 4px; font-size: 10.5px; }
.kp-portal .kp-direct-tool-console .kp-console-welcome h1 { margin: 0; font-size: clamp(23px, 2vw, 30px); line-height: 1.12; }
.kp-portal .kp-direct-tool-console .kp-console-welcome > p:last-child { margin: 7px 0 0; color: #607185; font-size: 12.5px; }
.kp-portal .kp-console-customize { flex: 0 0 auto; gap: 7px; border-color: #cfdae6; background: #fff; }
.kp-portal .kp-console-customize > span { color: #37628e; font-size: 15px; }

.kp-portal .kp-console-shortcuts {
    display: flex;
    align-items: center;
    gap: 0;
    min-height: 54px;
    margin: 0 0 16px;
    overflow: hidden;
    border: 1px solid #dce5ee;
    border-radius: 12px;
    background: #fff;
}
.kp-portal .kp-console-shortcuts > a {
    display: inline-flex;
    align-items: baseline;
    gap: 8px;
    min-height: 54px;
    padding: 15px 20px;
    color: #263f5d;
    text-decoration: none;
    transition: background-color .15s ease, color .15s ease;
}
.kp-portal .kp-console-shortcuts > a + a { border-left: 1px solid #e5eaf0; }
.kp-portal .kp-console-shortcuts > a:hover,
.kp-portal .kp-console-shortcuts > a:focus-visible { color: #174f9a; background: #f6f9fd; outline: 0; }
.kp-portal .kp-console-shortcuts strong { color: #102c50; font-size: 20px; line-height: 1; }
.kp-portal .kp-console-shortcuts span { font-size: 12px; font-weight: 650; }
.kp-portal .kp-console-shortcuts b { margin-left: 4px; color: var(--kp-navy); font-size: 14px; }

.kp-portal .kp-console-work-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin: 0 0 11px;
    padding: 0 2px 10px;
    border-bottom: 1px solid #dce5ee;
}
.kp-portal .kp-console-work-heading .kp-eyebrow { margin: 0 0 3px; color: #627b97; font-size: 10px; }
.kp-portal .kp-console-work-heading h2 { margin: 0; color: #142e4e; font-size: 18px; line-height: 1.2; }
.kp-portal .kp-console-work-heading > span { color: #7a899a; font-size: 11px; }
.kp-portal .kp-direct-tool-console .kp-console-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr));
    align-items: start;
    gap: 14px;
}
.kp-portal .kp-direct-tool-console .kp-console-queue {
    margin: 0;
    border-radius: 13px;
    box-shadow: 0 7px 20px rgba(20, 47, 76, .04);
}
.kp-portal .kp-direct-tool-console .kp-console-queue .kp-section-heading { padding: 15px 16px; }
.kp-portal .kp-direct-tool-console .kp-console-queue .kp-queue-title h2 { font-size: 14px; }
.kp-portal .kp-console-calm-state {
    display: flex;
    align-items: center;
    gap: 14px;
    grid-column: 1 / -1;
    padding: 22px;
    border: 1px solid #dce5ee;
    border-radius: 13px;
    background: #fff;
    box-shadow: none;
}
.kp-portal .kp-console-calm-state > span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; color: #19704b; background: #eaf8f1; font-weight: 800; }
.kp-portal .kp-console-calm-state h3 { margin: 0 0 3px; color: #17334f; font-size: 14px; }
.kp-portal .kp-console-calm-state p { margin: 0; color: #6a798a; font-size: 12px; }

.kp-console-config-shell {
    position: fixed;
    inset: 0;
    z-index: 2200;
    display: flex;
    justify-content: flex-end;
}
.kp-console-config-shell[hidden] { display: none !important; }
.kp-console-config-scrim { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; background: rgba(13, 29, 48, .42); cursor: default; }
.kp-console-config-panel {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    width: min(92vw, 520px);
    height: 100%;
    background: #f6f8fb;
    box-shadow: -18px 0 48px rgba(10, 29, 50, .22);
}
.kp-console-config-panel > header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 23px 23px 19px;
    border-bottom: 1px solid #dce4ed;
    background: #fff;
}
.kp-console-config-panel > header .kp-eyebrow { margin: 0 0 4px; color: var(--kp-navy); font-size: 10px; }
.kp-console-config-panel > header h2 { margin: 0; color: #142e4d; font-size: 21px; }
.kp-console-config-panel > header p:last-child { margin: 7px 0 0; color: #68798a; font-size: 12px; line-height: 1.45; }
.kp-console-config-x { display: grid; place-items: center; flex: 0 0 auto; width: 36px; height: 36px; padding: 0 0 3px; border: 1px solid #d8e0e9; border-radius: 50%; color: #506276; background: #fff; font: 400 25px/1 Arial, sans-serif; cursor: pointer; }
.kp-console-config-form { display: flex; flex: 1 1 auto; flex-direction: column; min-height: 0; }
.kp-console-module-list { flex: 1 1 auto; min-height: 0; padding: 14px 16px; overflow: auto; }
.kp-console-module-row {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    min-height: 58px;
    margin-bottom: 8px;
    padding: 8px 9px;
    border: 1px solid #dde5ee;
    border-radius: 11px;
    background: #fff;
    box-shadow: 0 4px 12px rgba(20, 47, 76, .025);
}
.kp-console-module-row.is-dragging { opacity: .55; border-color: #7ea8dd; }
.kp-console-module-grip { color: #9aa8b7; font-size: 17px; cursor: grab; letter-spacing: -4px; }
.kp-console-module-row > label { display: flex; align-items: center; gap: 10px; min-width: 0; cursor: pointer; }
.kp-console-module-row > label input { flex: 0 0 auto; width: 17px; height: 17px; }
.kp-console-module-row > label span { display: flex; flex-direction: column; min-width: 0; }
.kp-console-module-row > label strong { overflow: hidden; color: #203b59; font-size: 12.5px; text-overflow: ellipsis; white-space: nowrap; }
.kp-console-module-row > label small { margin-top: 2px; color: #8390a0; font-size: 10.5px; }
.kp-console-module-moves { display: flex; gap: 4px; }
.kp-console-module-moves button { width: 29px; height: 29px; padding: 0; border: 1px solid #d9e1ea; border-radius: 7px; color: #45627f; background: #f9fbfd; cursor: pointer; }
.kp-console-empty-toggle { display: flex; align-items: center; gap: 10px; margin: 0 16px 14px; padding: 12px 13px; border: 1px solid #dde5ee; border-radius: 10px; background: #fff; cursor: pointer; }
.kp-console-empty-toggle > input { width: 17px; height: 17px; }
.kp-console-empty-toggle > span { display: flex; flex-direction: column; }
.kp-console-empty-toggle strong { color: #24415f; font-size: 12px; }
.kp-console-empty-toggle small { margin-top: 2px; color: #7c8a99; font-size: 10.5px; }
.kp-console-config-form > footer { display: flex; justify-content: space-between; gap: 10px; padding: 15px 16px; border-top: 1px solid #dce4ed; background: #fff; }
body.kp-console-config-open { overflow: hidden; }

@media (max-width: 720px) {
    .kp-portal .kp-direct-tool-console .kp-console-header { align-items: flex-start; flex-direction: column; gap: 13px; padding: 17px 18px 17px 21px; }
    .kp-portal .kp-console-customize { align-self: flex-start; }
    .kp-portal .kp-console-shortcuts { align-items: stretch; flex-direction: column; }
    .kp-portal .kp-console-shortcuts > a + a { border-top: 1px solid #e5eaf0; border-left: 0; }
    .kp-portal .kp-console-work-heading > span { display: none; }
    .kp-console-config-panel { width: 100vw; }
    .kp-console-config-form > footer { flex-direction: column-reverse; }
    .kp-console-config-form > footer .kp-button { justify-content: center; width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .kp-portal .kp-console-shortcuts > a { transition: none; }
}

/* ============================================================
   WL282 — functional operator Console modules
   Three real working modules per row; no stretched counters.
   ============================================================ */
.kp-portal .kp-direct-tool-console .kp-console-shortcuts {
    display: none !important;
}

.kp-portal .kp-direct-tool-console .kp-console-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
    gap: 16px;
}

.kp-portal .kp-direct-tool-console .kp-console-grid-single {
    grid-template-columns: minmax(0, 1fr);
}

.kp-portal .kp-console-module,
.kp-portal .kp-direct-tool-console .kp-console-queue {
    display: flex;
    flex-direction: column;
    min-width: 0;
    height: 470px;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 1px solid #d9e3ed;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 9px 26px rgba(20, 47, 76, .055);
}

.kp-portal .kp-console-grid-single .kp-console-queue {
    height: auto;
    max-height: none;
}

.kp-portal .kp-console-module-head,
.kp-portal .kp-console-queue .kp-section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex: 0 0 auto;
    min-height: 72px;
    margin: 0;
    padding: 15px 17px;
    border-bottom: 1px solid #e6ebf1;
    background: #fff;
}

.kp-portal .kp-console-module-title,
.kp-portal .kp-console-queue .kp-queue-title {
    display: flex;
    align-items: center;
    gap: 11px;
    min-width: 0;
}

.kp-portal .kp-console-module-icon,
.kp-portal .kp-console-queue .kp-queue-icon {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    color: #315fca;
    background: #edf3ff;
}

.kp-portal .kp-console-module-icon svg,
.kp-portal .kp-console-queue .kp-queue-icon svg {
    width: 18px;
    height: 18px;
    fill: currentColor;
}

.kp-portal .kp-console-module-title p,
.kp-portal .kp-console-module-title h2,
.kp-portal .kp-console-queue .kp-queue-title h2 {
    margin: 0;
}

.kp-portal .kp-console-module-title p {
    margin-bottom: 2px;
    color: #7b8999;
    font-size: 9.5px;
    font-weight: 750;
    letter-spacing: .09em;
    line-height: 1.2;
    text-transform: uppercase;
}

.kp-portal .kp-console-module-title h2,
.kp-portal .kp-console-queue .kp-queue-title h2 {
    color: #142e4d;
    font-size: 15px;
    line-height: 1.2;
}

.kp-portal .kp-console-count,
.kp-portal .kp-console-queue .kp-console-count {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    min-width: 34px;
    height: 30px;
    padding: 0 9px;
    border: 1px solid #d8e4f4;
    border-radius: 8px;
    color: #24529c;
    background: #f2f6fc;
    font-size: 13px;
    font-weight: 800;
}

.kp-portal .kp-console-module-body {
    flex: 1 1 auto;
    min-height: 0;
}

.kp-portal .kp-console-module > footer,
.kp-portal .kp-console-queue > footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex: 0 0 auto;
    min-height: 48px;
    padding: 11px 17px;
    border-top: 1px solid #e6ebf1;
    background: #fbfcfe;
}

.kp-portal .kp-console-module > footer a,
.kp-portal .kp-console-queue > footer a {
    color: #225faf;
    font-size: 11.5px;
    font-weight: 750;
    text-decoration: none;
}

.kp-portal .kp-console-module > footer a:hover,
.kp-portal .kp-console-module > footer a:focus-visible,
.kp-portal .kp-console-queue > footer a:hover,
.kp-portal .kp-console-queue > footer a:focus-visible {
    text-decoration: underline;
}

/* Open Tasks — all open records in a bounded, usable list. */
.kp-portal .kp-console-task-list {
    overflow: auto;
    scrollbar-color: #c6d2df transparent;
    scrollbar-width: thin;
}

.kp-portal .kp-console-task-row {
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr);
    align-items: flex-start;
    gap: 10px;
    padding: 12px 16px;
    border-bottom: 1px solid #edf1f5;
}

.kp-portal .kp-console-task-row:last-child { border-bottom: 0; }
.kp-portal .kp-console-task-row form { margin: 0; }

.kp-portal .kp-console-task-check {
    display: block;
    width: 19px;
    height: 19px;
    margin: 1px 0 0;
    padding: 0;
    border: 2px solid #7f9bc0;
    border-radius: 6px;
    background: #fff;
    cursor: pointer;
}

.kp-portal .kp-console-task-check:hover,
.kp-portal .kp-console-task-check:focus-visible {
    border-color: var(--kp-navy);
    outline: 3px solid rgba(20, 44, 79, .13);
    outline-offset: 1px;
}

.kp-portal .kp-console-task-check.kp-prio-high,
.kp-portal .kp-console-task-check.kp-prio-urgent { border-color: #d46470; }

.kp-portal .kp-console-task-row > a {
    display: flex;
    flex-direction: column;
    min-width: 0;
    color: #1d3855;
    text-decoration: none;
}

.kp-portal .kp-console-task-row > a:hover strong,
.kp-portal .kp-console-task-row > a:focus-visible strong { color: #225faf; text-decoration: underline; }
.kp-portal .kp-console-task-row strong { overflow: hidden; font-size: 12px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.kp-portal .kp-console-task-row span { margin-top: 4px; color: #778697; font-size: 10.5px; line-height: 1.25; }
.kp-portal .kp-console-tasks-module .kp-taskd-live-status { min-height: 0; margin: 0; padding: 0 17px; color: #24683d; font-size: 10px; }

/* Key Dates — compact six-week calendar plus the next dated items. */
.kp-portal .kp-console-calendar-nav {
    display: flex;
    align-items: center;
    gap: 3px;
}

.kp-portal .kp-console-calendar-nav a {
    display: grid;
    min-width: 26px;
    height: 27px;
    padding: 0 5px;
    place-items: center;
    border-radius: 7px;
    color: #3a597a;
    font-size: 10.5px;
    font-weight: 750;
    text-decoration: none;
}

.kp-portal .kp-console-calendar-nav a:hover,
.kp-portal .kp-console-calendar-nav a:focus-visible { color: #1f5daf; background: #edf3fb; }
.kp-portal .kp-console-calendar { display: flex; flex-direction: column; padding: 13px 15px 0; }
.kp-portal .kp-console-calendar-weekdays,
.kp-portal .kp-console-calendar-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.kp-portal .kp-console-calendar-weekdays { margin-bottom: 4px; }
.kp-portal .kp-console-calendar-weekdays span { color: #8996a5; font-size: 8.5px; font-weight: 750; text-align: center; text-transform: uppercase; }
.kp-portal .kp-console-calendar-days { gap: 2px; }

.kp-portal .kp-console-calendar-days > a {
    position: relative;
    display: grid;
    min-width: 0;
    height: 28px;
    place-items: center;
    border-radius: 7px;
    color: #425a73;
    font-size: 10px;
    text-decoration: none;
}

.kp-portal .kp-console-calendar-days > a:hover,
.kp-portal .kp-console-calendar-days > a:focus-visible { background: #edf3fb; outline: 0; }
.kp-portal .kp-console-calendar-days > a.is-outside { color: #b3bdc8; }
.kp-portal .kp-console-calendar-days > a.is-today { color: #fff; background: var(--kp-navy); font-weight: 800; }
.kp-portal .kp-console-calendar-days > a.has-events:not(.is-today) { color: #244f83; background: #edf4fd; font-weight: 750; }
.kp-portal .kp-console-calendar-days > a i { position: absolute; right: 2px; bottom: 2px; display: grid; min-width: 12px; height: 12px; place-items: center; border-radius: 4px; color: #fff; background: #5c6fd8; font-size: 7px; font-style: normal; }
.kp-portal .kp-console-calendar-days > a.is-today i { color: #2358ab; background: #fff; }

.kp-portal .kp-console-agenda {
    margin-top: 12px;
    padding-top: 9px;
    border-top: 1px solid #edf1f5;
}

.kp-portal .kp-console-agenda > a {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 8px;
    padding: 6px 2px;
    color: #203a56;
    text-decoration: none;
}

.kp-portal .kp-console-agenda > a + a { border-top: 1px solid #f0f3f6; }
.kp-portal .kp-console-agenda time { color: #678099; font-size: 9.5px; font-weight: 750; text-transform: uppercase; }
.kp-portal .kp-console-agenda strong { overflow: hidden; font-size: 10.5px; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.kp-portal .kp-console-agenda > p { margin: 8px 0; color: #748395; font-size: 11px; }

/* Finance Rates — compact official reference data, not decorative counters. */
.kp-portal .kp-console-rate-state,
.kp-portal .kp-console-status {
    color: #5c55a6;
    font-size: 9.5px;
    font-weight: 750;
    line-height: 1.25;
    text-align: right;
}

.kp-portal .kp-console-rate-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-content: start;
    gap: 10px;
    padding: 16px;
}

.kp-portal .kp-console-rate-list > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-width: 0;
    min-height: 72px;
    padding: 11px 12px;
    border: 1px solid #e1e7ef;
    border-radius: 10px;
    color: #29415d;
    background: #fbfcfe;
    text-decoration: none;
}

.kp-portal .kp-console-rate-list > a:hover,
.kp-portal .kp-console-rate-list > a:focus-visible { border-color: #9ab6dc; background: #f5f8fd; }
.kp-portal .kp-console-rate-list > a span { display: flex; flex-direction: column; min-width: 0; font-size: 10.5px; font-weight: 750; }
.kp-portal .kp-console-rate-list > a small { margin-top: 5px; color: #8996a5; font-size: 8.5px; font-weight: 600; }
.kp-portal .kp-console-rate-list > a strong { flex: 0 0 auto; color: #15395f; font-size: 17px; }
.kp-portal .kp-console-rate-list > p { grid-column: 1 / -1; margin: 3px 2px 0; color: #758396; font-size: 10.5px; line-height: 1.5; }
.kp-portal .kp-console-rate-footer form { margin: 0; }
.kp-portal .kp-console-rate-footer button { padding: 0; border: 0; color: #5b6f86; background: transparent; font: inherit; font-size: 11px; font-weight: 700; cursor: pointer; }
.kp-portal .kp-console-rate-footer button:hover,
.kp-portal .kp-console-rate-footer button:focus-visible { color: #225faf; text-decoration: underline; }

/* Active work queues use the same card system and plain status text. */
.kp-portal .kp-console-queue .kp-qrows {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
    overflow: auto;
}

.kp-portal .kp-console-queue-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
}

.kp-portal .kp-console-queue-list {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    scrollbar-color: #c6d2df transparent;
    scrollbar-width: thin;
}

.kp-portal .kp-console-queue-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    border-bottom: 1px solid #edf1f5;
}

.kp-portal .kp-console-queue-row:last-child { border-bottom: 0; }
.kp-portal .kp-console-queue-main { display: flex; flex-direction: column; min-width: 0; color: #203a56; text-decoration: none; }
.kp-portal .kp-console-queue-main strong { overflow: hidden; font-size: 12px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.kp-portal .kp-console-queue-main span,
.kp-portal .kp-console-queue-main time { margin-top: 3px; overflow: hidden; color: #778697; font-size: 10px; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.kp-portal .kp-console-queue-main:hover strong,
.kp-portal .kp-console-queue-main:focus-visible strong { color: #225faf; text-decoration: underline; }
.kp-portal .kp-console-queue-actions { display: flex; align-items: flex-end; flex-direction: column; gap: 6px; }
.kp-portal .kp-console-queue-actions form { margin: 0; }
.kp-portal .kp-console-queue-actions .kp-console-open { color: #225faf; font-size: 10px; font-weight: 750; text-decoration: none; }
.kp-portal .kp-console-queue-actions .kp-console-open:hover,
.kp-portal .kp-console-queue-actions .kp-console-open:focus-visible { text-decoration: underline; }

.kp-portal .kp-console-queue .kp-qrow { padding: 12px 16px; }
.kp-portal .kp-console-queue .kp-qrow-side { align-items: flex-end; }
.kp-portal .kp-console-queue > .kp-console-meta,
.kp-portal .kp-console-queue > .kp-console-error { margin: 0; padding: 12px 16px; }
.kp-portal .kp-console-queue .kp-queue-bulk { margin: 0; padding: 12px 16px; border-bottom: 1px solid #edf1f5; }
.kp-portal .kp-console-module-empty { display: grid; height: 100%; padding: 28px; place-items: center; align-content: center; gap: 8px; color: #718196; text-align: center; }
.kp-portal .kp-console-module-empty span { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 50%; color: #18744d; background: #e9f8f1; font-weight: 800; }
.kp-portal .kp-console-module-empty p { margin: 0; font-size: 12px; }

@media (max-width: 1400px) {
    .kp-portal .kp-direct-tool-console .kp-console-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kp-portal .kp-direct-tool-console .kp-console-grid-single { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 860px) {
    .kp-portal .kp-direct-tool-console .kp-console-grid,
    .kp-portal .kp-direct-tool-console .kp-console-grid-single { grid-template-columns: minmax(0, 1fr); }
    .kp-portal .kp-console-module,
    .kp-portal .kp-direct-tool-console .kp-console-queue { height: min(520px, 72vh); }
}

@media (max-width: 520px) {
    .kp-portal .kp-console-work-heading { align-items: flex-start; flex-direction: column; gap: 5px; }
    .kp-portal .kp-console-rate-list { grid-template-columns: minmax(0, 1fr); }
    .kp-portal .kp-console-rate-list > a { min-height: 56px; }
}

/* ================================================================
   WL283 — Design System V2 / approved operator command deck
   Global token shift is intentional. Phase 1 changes shared ground,
   navigation and primitives; CRM/listing/client compositions remain intact.
   ================================================================ */
.kp-portal {
    --kp-bg: #F2F2EF;
    --kp-surface: #FFFFFF;
    --kp-white: var(--kp-surface);
    --kp-ink: #16181D;
    --kp-navy: #142C4F;
    --kp-slate: #43608F;
    --kp-muted: #6B7078;
    --kp-border: #E2E1DA;
    --kp-hairline: #F1F0E9;
    --kp-gold: #D9A441;
    --kp-gold-soft: #FAF1DF;
    --kp-gold-ink: #A4661A;
    --kp-success: #2E7D5B;
    --kp-success-soft: #EAF4EF;
    --kp-error: #9F3A38;
    --kp-blue: var(--kp-navy);
    --kp-blue-dark: #0E2038;
    --kp-blue-soft: #EEF2F8;
    --kp-warning: var(--kp-gold-ink);
    --kp-radius: 10px;
    --kp-radius-sm: 8px;
    --kp-shadow: 0 1px 2px rgba(20, 25, 35, .04);
    --kp-font-display: "Newsreader", Georgia, serif;
    color: var(--kp-ink);
    background:
        radial-gradient(circle at 82% 4%, rgba(67, 96, 143, .07), transparent 28rem),
        radial-gradient(circle at 18% 98%, rgba(217, 164, 65, .055), transparent 26rem),
        var(--kp-bg);
    font-family: var(--kp-font-ui);
    font-size: var(--kp-type-body);
    line-height: 1.5;
}
.kp-portal h1,
.kp-portal h2,
.kp-portal h3,
.kp-portal h4 {
    color: var(--kp-ink);
    font-family: var(--kp-font-ui);
}
.kp-portal :where(button, input, select, textarea, option) { font-family: var(--kp-font-ui) !important; }
.kp-portal :where(p, li, td, th, label, input, select, textarea, button) { line-height: 1.45; }
.kp-portal .kp-num {
    font-variant-numeric: tabular-nums;
    font-weight: 700;
}
.kp-portal .kp-eyebrow {
    margin: 0 0 4px;
    color: var(--kp-muted);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.kp-portal .kp-panel,
.kp-portal .kp-card,
.kp-portal .kp-header-card {
    border: 1px solid var(--kp-border);
    border-radius: var(--kp-radius);
    background: var(--kp-surface);
    box-shadow: var(--kp-shadow);
}
.kp-portal .kp-panel { padding: 16px 18px; }
.kp-portal .kp-panel > header,
.kp-portal .kp-console-live-book > header,
.kp-portal .kp-console-due > header,
.kp-portal .kp-console-rail-panel > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding-bottom: 11px;
    border-bottom: 1px solid var(--kp-hairline);
}
.kp-portal .kp-panel > header h2 { margin: 0; color: var(--kp-ink); font-size: 15px; line-height: 1.2; }
.kp-portal .kp-panel > header a { color: var(--kp-slate); font-size: 11.5px; font-weight: 700; text-decoration: none; }
.kp-portal .kp-panel > header a:hover,
.kp-portal .kp-panel > header a:focus-visible { color: var(--kp-navy); text-decoration: underline; }
.kp-portal .kp-button,
.kp-portal button.kp-button,
.kp-portal a.kp-button {
    min-height: 38px;
    padding: 8px 14px;
    border-color: var(--kp-border);
    border-radius: var(--kp-radius-sm);
    color: var(--kp-navy);
    background: var(--kp-surface);
    box-shadow: none;
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 700;
}
.kp-portal .kp-button.kp-button-primary,
.kp-portal button.kp-button.kp-button-primary,
.kp-portal a.kp-button.kp-button-primary {
    border-color: var(--kp-navy) !important;
    color: #fff !important;
    background: var(--kp-navy) !important;
}
.kp-portal .kp-button.kp-button-primary:hover,
.kp-portal .kp-button.kp-button-primary:focus-visible,
.kp-portal button.kp-button.kp-button-primary:hover,
.kp-portal button.kp-button.kp-button-primary:focus-visible,
.kp-portal a.kp-button.kp-button-primary:hover,
.kp-portal a.kp-button.kp-button-primary:focus-visible {
    border-color: var(--kp-blue-dark) !important;
    background: var(--kp-blue-dark) !important;
}
.kp-portal .kp-button:focus-visible,
.kp-portal button:focus-visible,
.kp-portal a:focus-visible { outline: 2px solid var(--kp-slate); outline-offset: 2px; }
.kp-portal .kp-badge,
.kp-portal .kp-crm-chip {
    border-color: var(--kp-border);
    color: var(--kp-slate);
    background: var(--kp-blue-soft);
}
.kp-portal .kp-badge-warning { color: var(--kp-gold-ink); background: var(--kp-gold-soft); }
.kp-portal .kp-badge-success { color: var(--kp-success); background: var(--kp-success-soft); }

/* Operator rail */
.kp-portal .kp-sidebar-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 58px;
    padding: 4px 8px 14px;
    color: #fff;
    text-decoration: none;
}
.kp-portal .kp-sidebar-brand-tile {
    display: grid;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    place-items: center;
    border: 0;
    border-radius: 9px;
    color: #fff;
    background: transparent;
}
.kp-portal .kp-sidebar-brand-tile svg,
.kp-portal .kp-sidebar-brand-tile img { display: block; width: 24px; height: 24px; object-fit: contain; }
.kp-portal .kp-sidebar-brand-tile svg { color: #fff; fill: none !important; }
.kp-portal .kp-sidebar-brand-tile svg path { fill: none !important; stroke: currentColor; }
.kp-portal .kp-sidebar-brand-tile svg circle,
.kp-portal svg.kp-brand-house circle { fill: #33E0C8 !important; stroke: none !important; }
.kp-portal .kp-sidebar-brand-copy { display: flex; flex-direction: column; min-width: 0; }
.kp-portal .kp-sidebar-brand-copy strong { overflow: hidden; color: #fff; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.kp-portal .kp-sidebar-brand-copy small { overflow: hidden; color: rgba(255, 255, 255, .58); font-size: 9.5px; font-weight: 600; letter-spacing: .1em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.kp-portal .kp-sidebar-copilot {
    margin: auto 4px 10px;
    padding: 13px;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: var(--kp-radius);
    color: #fff;
    background: rgba(255, 255, 255, .065);
}
.kp-portal .kp-sidebar-copilot p { display: flex; align-items: center; gap: 6px; margin: 0 0 7px; color: rgba(255,255,255,.64); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.kp-portal .kp-sidebar-copilot > button,
.kp-portal .kp-sidebar-copilot a { display: inline-flex; align-items: center; gap: 5px; margin-top: 10px; padding: 0; border: 0; color: #fff; background: transparent; font: inherit; font-size: 11px; font-weight: 700; text-decoration: none; cursor: pointer; }
.kp-portal .kp-sidebar-copilot > button { width: 100%; min-height: 36px; justify-content: space-between; margin-top: 11px; padding-top: 8px; border-top: 1px solid rgba(255,255,255,.12); color: var(--kp-gold); }
.kp-portal .kp-sidebar-copilot > button:hover,
.kp-portal .kp-sidebar-copilot > button:focus-visible,
.kp-portal .kp-sidebar-copilot a:hover,
.kp-portal .kp-sidebar-copilot a:focus-visible { text-decoration: underline; }
.kp-portal .kp-sidebar-copilot-form { display: grid; grid-template-columns: minmax(0, 1fr) 32px; gap: 5px; margin: 11px 0 0; padding-top: 10px; border-top: 1px solid rgba(255,255,255,.12); }
.kp-portal .kp-sidebar-copilot-form input { width: 100%; min-width: 0; min-height: 32px; padding: 6px 8px; border: 1px solid rgba(255,255,255,.18); border-radius: 7px; color: #fff; background: rgba(255,255,255,.08); font: inherit; font-size: 10.5px; }
.kp-portal .kp-sidebar-copilot-form input::placeholder { color: rgba(255,255,255,.52); }
.kp-portal .kp-sidebar-copilot-form button { display: grid; width: 32px; min-height: 32px; padding: 0; place-items: center; border: 1px solid rgba(217,164,65,.55); border-radius: 7px; color: var(--kp-navy); background: var(--kp-gold); cursor: pointer; }
.kp-portal .kp-sidebar-copilot-form button:hover,
.kp-portal .kp-sidebar-copilot-form button:focus-visible { background: #E2B45C; outline: 2px solid rgba(255,255,255,.55); outline-offset: 1px; }

@media (min-width: 861px) {
    .kp-portal .kp-topbar { display: none !important; }
    .kp-portal .kp-shell { grid-template-columns: 236px minmax(0, 1fr) !important; }
    .kp-portal .kp-sidebar {
        align-items: stretch !important;
        max-height: none;
        padding: 18px 14px 12px !important;
        overflow: visible;
        border-right: 0 !important;
        color: #fff !important;
        background: var(--kp-navy) !important;
        box-shadow: none !important;
    }
    .kp-portal .kp-sidebar > .kp-locale-switcher { display: none; }
    .kp-portal .kp-nav { width: 100%; gap: 2px; padding: 7px 0 14px; }
    .kp-portal .kp-nav-item { width: 100%; }
    .kp-portal .kp-nav-link {
        flex-direction: row !important;
        justify-content: flex-start !important;
        gap: 10px !important;
        min-height: 38px !important;
        padding: 8px 10px !important;
        border-radius: 8px !important;
        color: rgba(255,255,255,.68) !important;
        background: transparent !important;
        box-shadow: none !important;
        font-size: 13.5px !important;
        font-weight: 550;
        line-height: 1.2;
        text-align: left !important;
    }
    .kp-portal .kp-nav-link:hover,
    .kp-portal .kp-nav-link:focus-visible { color: #fff !important; background: rgba(255,255,255,.075) !important; }
    .kp-portal .kp-nav-link.is-active { color: #fff !important; background: rgba(255,255,255,.12) !important; }
    .kp-portal .kp-nav-icon,
    .kp-portal .kp-nav-link.is-active .kp-nav-icon {
        width: 18px !important;
        height: 18px !important;
        border: 0 !important;
        border-radius: 0 !important;
        color: currentColor !important;
        background: transparent !important;
        box-shadow: none !important;
    }
    .kp-portal .kp-nav-icon svg { width: 17px !important; height: 17px !important; fill: currentColor; }
    .kp-portal .kp-nav-badge { margin-left: auto; color: var(--kp-gold-ink); background: var(--kp-gold-soft); }
    .kp-portal .kp-sidebar-footer {
        width: auto !important;
        margin-top: 0 !important;
        padding: 9px 5px 0 !important;
        border-top-color: rgba(255,255,255,.1) !important;
        color: rgba(255,255,255,.65) !important;
        font-size: inherit !important;
        text-align: left !important;
    }
    .kp-portal .kp-sidebar-account { gap: 9px; color: rgba(255,255,255,.72); }
    .kp-portal .kp-sidebar-account > span { display: flex !important; }
    .kp-portal .kp-sidebar-account .kp-topbar-avatar { display: grid !important; width: 30px; height: 30px; place-items: center; color: var(--kp-navy); background: #fff; font-size: 11px; }
    .kp-portal .kp-sidebar-account strong { display: block !important; width: auto !important; height: auto !important; margin: 0 !important; color: #fff !important; background: transparent !important; font-size: 11.5px !important; }
    .kp-portal .kp-sidebar-account small { color: rgba(255,255,255,.5); font-size: 9.5px; text-transform: none; }
    .kp-portal .kp-main { max-width: none !important; margin: 0 !important; padding: 22px 28px 30px !important; }
}

/* Approved Console composition */
.kp-portal .kp-direct-tool-console .kp-content { display: grid; gap: 14px; width: 100%; }
.kp-portal .kp-console-command-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    min-height: 54px;
    padding: 0 2px 2px;
}
.kp-portal .kp-console-welcome { display: flex; min-width: 0; align-items: baseline; gap: 16px; }
.kp-portal .kp-console-welcome h1 {
    margin: 0;
    color: var(--kp-ink);
    font-family: var(--kp-font-display);
    font-size: clamp(28px, 2.25vw, 36px);
    font-weight: 600;
    letter-spacing: -.025em;
    line-height: 1.08;
}
.kp-portal .kp-console-welcome p { display: flex; flex: 0 1 auto; flex-wrap: wrap; gap: 7px; margin: 0; color: var(--kp-muted); font-size: 12px; white-space: nowrap; }
.kp-portal .kp-console-command-actions { display: flex; align-items: center; gap: 8px; }
.kp-portal .kp-console-command-actions form { margin: 0; }
.kp-portal .kp-console-command-actions input[type="search"] {
    width: min(25vw, 250px);
    min-height: 38px;
    padding: 8px 12px 8px 34px;
    border: 1px solid var(--kp-border);
    border-radius: var(--kp-radius-sm);
    color: var(--kp-ink);
    background: var(--kp-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236B7078' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E") no-repeat 11px center;
    font: inherit;
    font-size: 12px;
}
.kp-portal .kp-console-new-menu { position: relative; }
.kp-portal .kp-console-new-menu > summary { display: inline-flex; min-height: 38px; align-items: center; list-style: none; cursor: pointer; }
.kp-portal .kp-console-new-menu > summary::-webkit-details-marker { display: none; }
.kp-portal .kp-console-new-menu > div { position: absolute; top: calc(100% + 7px); right: 0; z-index: 10820; display: grid; min-width: 180px; padding: 6px; border: 1px solid var(--kp-border); border-radius: var(--kp-radius); background: var(--kp-surface); box-shadow: 0 14px 34px rgba(20,44,79,.16); }
.kp-portal .kp-console-new-menu > div a { padding: 9px 11px; border-radius: 7px; color: var(--kp-ink); font-size: 12px; font-weight: 600; text-decoration: none; }
.kp-portal .kp-console-new-menu > div a:hover,
.kp-portal .kp-console-new-menu > div a:focus-visible { color: var(--kp-navy); background: var(--kp-hairline); }
.kp-portal .kp-console-customize-icon {
    display: grid;
    width: 38px;
    height: 38px;
    padding: 0;
    place-items: center;
    border: 1px solid var(--kp-border);
    border-radius: var(--kp-radius-sm);
    color: var(--kp-muted);
    background: var(--kp-surface);
    cursor: pointer;
}
.kp-portal .kp-console-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.kp-portal .kp-console-kpi { position: relative; display: flex; min-height: 104px; flex-direction: column; padding: 15px 16px; color: var(--kp-ink); text-decoration: none; transition: border-color .15s ease, transform .15s ease; }
.kp-portal .kp-console-kpi:hover { border-color: #c7cbd1; transform: translateY(-1px); }
.kp-portal .kp-console-kpi strong { margin-top: 5px; color: var(--kp-ink); font-family: var(--kp-font-display); font-size: 29px; font-weight: 600; letter-spacing: -.02em; line-height: 1; }
.kp-portal .kp-console-kpi small { margin-top: 7px; color: var(--kp-muted); font-size: 11px; }
.kp-portal .kp-console-kpi > i { position: absolute; right: 14px; bottom: 13px; color: var(--kp-slate); font-style: normal; }
.kp-portal .kp-console-kpi.is-money strong { color: var(--kp-gold-ink); }
.kp-portal .kp-console-kpi.is-attention::before { position: absolute; top: 0; left: 16px; width: 32px; height: 2px; content: ""; background: var(--kp-gold); }
.kp-portal .kp-console-kpi.is-growth strong { color: var(--kp-success); }

.kp-portal .kp-console-deal-flow { padding: 10px 14px; }
.kp-portal .kp-console-flow-line { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 14px; align-items: center; }
.kp-portal .kp-console-flow-line h2 { margin: 0; font-size: 14px; white-space: nowrap; }
.kp-portal .kp-console-flow-link { color: var(--kp-slate); font-size: 10.5px; font-weight: 650; text-decoration: none; white-space: nowrap; }
.kp-portal .kp-console-flow-segments { display: grid; grid-template-columns: repeat(var(--kp-flow-count), minmax(0, 1fr)); gap: 3px; margin: 0; overflow: hidden; border-radius: 7px; }
.kp-portal .kp-console-flow-segment { display: flex; min-width: 0; min-height: 38px; align-items: center; justify-content: space-between; gap: 7px; padding: 7px 10px; color: var(--kp-navy); background: #E7EBF1; text-decoration: none; }
.kp-portal .kp-console-flow-segment.is-step-1 { color: #fff; background: #657B9D; }
.kp-portal .kp-console-flow-segment.is-step-2 { color: #fff; background: #334F77; }
.kp-portal .kp-console-flow-segment.is-step-3 { color: #fff; background: var(--kp-navy); }
.kp-portal .kp-console-flow-segment.is-terminal { color: var(--kp-ink); background: var(--kp-gold); }
.kp-portal .kp-console-flow-segment > span { display: flex; min-width: 0; align-items: baseline; gap: 7px; }
.kp-portal .kp-console-flow-segment b { font-size: 17px; }
.kp-portal .kp-console-flow-segment small { overflow: hidden; font-size: 10.5px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.kp-portal .kp-console-flow-segment em { flex: 0 0 auto; font-size: 10px; font-style: normal; opacity: .82; }

.kp-portal .kp-console-command-grid { display: grid; grid-template-columns: minmax(0, 1fr) 396px; gap: 14px; align-items: stretch; }
.kp-portal .kp-console-command-main,
.kp-portal .kp-console-command-rail { display: grid; gap: 14px; min-width: 0; }
.kp-portal .kp-console-command-main { grid-template-rows: auto minmax(0, 1fr); }
.kp-portal .kp-console-due { height: 100%; }
.kp-portal .kp-console-listing-rows { margin: 0 -2px; }
.kp-portal .kp-console-listing-row { display: grid; grid-template-columns: 56px minmax(0, 1fr) minmax(105px, auto) minmax(95px, auto); gap: 12px; align-items: center; min-height: 58px; padding: 8px 2px; border-bottom: 1px solid var(--kp-hairline); color: var(--kp-ink); text-decoration: none; }
.kp-portal .kp-console-listing-row:last-child { border-bottom: 0; }
.kp-portal .kp-console-listing-row:hover .kp-console-listing-copy strong { color: var(--kp-slate); }
.kp-portal .kp-console-listing-row img,
.kp-portal .kp-console-listing-fallback { display: grid; width: 56px; height: 40px; place-items: center; overflow: hidden; border-radius: 6px; color: #fff; background: var(--kp-navy); object-fit: cover; font-family: var(--kp-font-display); font-size: 18px; }
.kp-portal .kp-console-listing-copy { display: flex; min-width: 0; flex-direction: column; }
.kp-portal .kp-console-listing-copy strong { overflow: hidden; font-size: 12.5px; text-overflow: ellipsis; white-space: nowrap; }
.kp-portal .kp-console-listing-copy small { overflow: hidden; margin-top: 2px; color: var(--kp-muted); font-size: 10.5px; text-overflow: ellipsis; white-space: nowrap; }
.kp-portal .kp-status-dot { display: inline-flex; align-items: center; gap: 6px; color: var(--kp-muted); font-size: 10.5px; white-space: nowrap; }
.kp-portal .kp-status-dot i { width: 6px; height: 6px; border-radius: 50%; background: var(--kp-success); }
.kp-portal .kp-console-listing-price { justify-self: end; color: var(--kp-gold-ink); font-size: 12px; }

.kp-portal .kp-console-due-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
.kp-portal .kp-console-due-item { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 9px; align-items: start; min-height: 52px; padding: 10px 1px; border-bottom: 1px solid var(--kp-hairline); }
.kp-portal .kp-console-due-item form { margin: 1px 0 0; }
.kp-portal .kp-console-due-item a { display: flex; min-width: 0; flex-direction: column; color: var(--kp-ink); text-decoration: none; }
.kp-portal .kp-console-due-item a:hover strong { color: var(--kp-slate); }
.kp-portal .kp-console-due-item strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.kp-portal .kp-console-due-item small { margin-top: 2px; color: var(--kp-muted); font-size: 10px; }
.kp-portal .kp-console-task-context { color: var(--kp-slate) !important; font-size: var(--kp-type-xs) !important; font-weight: 650; }
.kp-portal .kp-console-task-check { display: grid; width: 15px; height: 15px; min-width: 15px; padding: 0; place-items: center; border: 1.5px solid #9BA3AD; border-radius: 4px; color: #fff; background: #fff; cursor: pointer; }
.kp-portal .kp-console-task-check:hover { border-color: var(--kp-navy); }
.kp-portal .kp-console-task-check.is-checked { border-color: var(--kp-success); background: var(--kp-success); }
.kp-portal .kp-console-task-check.is-checked::after { content: "✓"; font-size: 10px; font-weight: 800; line-height: 1; }
.kp-portal .kp-console-due-item.is-done a { opacity: .58; }
.kp-portal .kp-console-due-item.is-done strong { text-decoration: line-through; }
.kp-portal .kp-console-empty { margin: 0; padding: 18px 1px 8px; color: var(--kp-muted); font-size: 11.5px; }

.kp-portal .kp-console-rail-panel { padding: 14px 15px; }
.kp-portal .kp-console-rates-list > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 51px; border-bottom: 1px solid var(--kp-hairline); color: var(--kp-ink); }
.kp-portal .kp-console-rates-list > div:last-child { border-bottom: 0; }
.kp-portal .kp-console-rates-list span { display: flex; flex-direction: column; font-size: 11.5px; font-weight: 650; }
.kp-portal .kp-console-rates-list small { margin-top: 1px; color: var(--kp-muted); font-size: 9.5px; font-weight: 400; }
.kp-portal .kp-console-rates-list strong { color: var(--kp-gold-ink); font-family: var(--kp-font-ui); font-size: 14px; font-weight: 700; }
.kp-portal .kp-console-week-list > a { display: grid; grid-template-columns: 35px minmax(0, 1fr); gap: 10px; align-items: center; min-height: 56px; border-bottom: 1px solid var(--kp-hairline); color: var(--kp-ink); text-decoration: none; }
.kp-portal .kp-console-week-list > a:last-child { border-bottom: 0; }
.kp-portal .kp-console-week-list time { display: flex; width: 32px; height: 37px; align-items: center; justify-content: center; flex-direction: column; color: var(--kp-gold-ink); background: transparent; line-height: 1; }
.kp-portal .kp-console-week-list time b { font-size: 14px; }
.kp-portal .kp-console-week-list time span { margin-top: 2px; font-size: 8px; letter-spacing: .05em; text-transform: uppercase; }
.kp-portal .kp-console-week-list > a > span { display: flex; min-width: 0; flex-direction: column; }
.kp-portal .kp-console-week-list strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.kp-portal .kp-console-week-list small { color: var(--kp-muted); font-size: 9.5px; }
.kp-portal .kp-console-activity-list > a { display: grid; grid-template-columns: 51px minmax(0, 1fr); gap: 9px; min-height: 48px; align-items: center; border-bottom: 1px solid var(--kp-hairline); color: var(--kp-ink); text-decoration: none; }
.kp-portal .kp-console-activity-list > a:last-child { border-bottom: 0; }
.kp-portal .kp-console-activity-list time { color: var(--kp-muted); font-size: 9px; }
.kp-portal .kp-console-activity-list > a > span { display: flex; min-width: 0; flex-direction: column; }
.kp-portal .kp-console-activity-list strong { font-size: 10.5px; }
.kp-portal .kp-console-activity-list small { overflow: hidden; color: var(--kp-muted); font-size: 9.5px; text-overflow: ellipsis; white-space: nowrap; }
.kp-portal .kp-console-copilot-prompt { display: grid; width: 100%; grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px; align-items: center; min-height: 42px; padding: 9px 11px; border: 1px solid var(--kp-border); border-radius: var(--kp-radius); color: var(--kp-muted); background: var(--kp-surface); box-shadow: none; font: inherit; font-size: 10.5px; text-align: left; cursor: pointer; }
.kp-portal .kp-console-activity-panel .kp-console-copilot-prompt { margin-top: 12px; }
.kp-portal .kp-console-copilot-prompt > span:first-child { color: var(--kp-navy); }
.kp-portal .kp-console-copilot-prompt kbd { padding: 2px 5px; border: 1px solid var(--kp-border); border-radius: 4px; color: var(--kp-muted); background: var(--kp-hairline); font: inherit; font-size: 9px; }
.kp-portal .kp-console-focus-head { display: flex; align-items: baseline; gap: 14px; }
.kp-portal .kp-console-focus-head a { color: var(--kp-slate); font-size: 12px; text-decoration: none; }
.kp-portal .kp-console-focus-head h2 { margin: 0; font-family: var(--kp-font-ui); font-size: var(--kp-type-title); }
.kp-portal .kp-console-focused-queue .kp-console-queue { height: auto !important; }

/* WL284b — one restrained console type scale. Newsreader is reserved for the
   greeting only; figures, rates, lists, labels, and controls all use Figtree. */
.kp-portal .kp-direct-tool-console {
    --kp-console-section-title: 15px;
    --kp-console-primary: 12px;
    --kp-console-secondary: 10px;
}
.kp-portal .kp-direct-tool-console :where(h2, h3, p, span, strong, small, a, button, input, select, textarea, time, b, em, label) {
    font-family: var(--kp-font-ui);
}
.kp-portal .kp-console-welcome h1 { font-family: var(--kp-font-display); }
.kp-portal .kp-console-kpi .kp-eyebrow { font-size: 10.5px !important; font-weight: 650 !important; letter-spacing: .09em; }
.kp-portal .kp-console-kpi strong { font-family: var(--kp-font-ui); font-size: 28px; font-weight: 650; letter-spacing: -.015em; }
.kp-portal .kp-console-kpi small { font-size: 10.5px; }
.kp-portal .kp-console-flow-line h2,
.kp-portal .kp-console-live-book > header h2,
.kp-portal .kp-console-due > header h2,
.kp-portal .kp-console-rail-panel > header h2 { font-size: var(--kp-console-section-title); font-weight: 650; }
.kp-portal .kp-console-flow-segment b { font-size: 15px; line-height: 1; }
.kp-portal .kp-console-flow-segment small { font-size: 11px; }
.kp-portal .kp-console-flow-segment em { font-size: var(--kp-console-secondary); }
.kp-portal .kp-console-listing-copy strong,
.kp-portal .kp-console-due-item strong,
.kp-portal .kp-console-week-list strong { font-size: var(--kp-console-primary); line-height: 1.4; }
.kp-portal .kp-console-listing-copy small,
.kp-portal .kp-console-due-item small,
.kp-portal .kp-console-week-list small { font-size: var(--kp-console-secondary); line-height: 1.4; }
.kp-portal .kp-console-rates-list > div > span { font-size: var(--kp-console-primary) !important; font-weight: 600; line-height: 1.4; }
.kp-portal .kp-console-rates-list > div > span > small { font-size: 9.5px !important; font-weight: 450; }
.kp-portal .kp-console-rates-list > div > strong { font-family: var(--kp-font-ui); font-size: 12.5px; font-weight: 700; }
.kp-portal .kp-console-week-list time b { font-size: 13px; }
.kp-portal .kp-console-week-list time span { font-size: 8.5px; }

/* Desktop Copilot lives proactively in the rail; keep the full panel behavior. */
@media (min-width: 861px) {
    .kp-portal .kp-cop-fab { display: none !important; }
}

@media (max-width: 1180px) {
    .kp-portal .kp-console-command-grid { grid-template-columns: minmax(0, 1fr) 350px; }
    .kp-portal .kp-console-listing-row { grid-template-columns: 56px minmax(0, 1fr) minmax(86px, auto); }
    .kp-portal .kp-console-listing-row .kp-status-dot { display: none; }
}
@media (max-width: 980px) {
    .kp-portal .kp-console-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kp-portal .kp-console-command-grid { grid-template-columns: minmax(0, 1fr); }
    .kp-portal .kp-console-command-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kp-portal .kp-console-activity-panel { grid-column: 1 / -1; }
    .kp-portal .kp-console-copilot-prompt { grid-column: 1 / -1; }
}
@media (max-width: 860px) {
    .kp-portal { font-size: 13px; }
    .kp-portal .kp-console-command-header { align-items: flex-start; flex-direction: column; gap: 12px; padding: 4px 1px; }
    .kp-portal .kp-console-welcome { display: block; }
    .kp-portal .kp-console-welcome p { margin-top: 5px; white-space: normal; }
    .kp-portal .kp-console-command-actions { width: 100%; }
    .kp-portal .kp-console-command-actions form { flex: 1 1 auto; }
    .kp-portal .kp-console-command-actions input[type="search"] { width: 100%; }
    .kp-portal .kp-console-flow-line { grid-template-columns: minmax(0, 1fr) auto; gap: 9px; }
    .kp-portal .kp-console-flow-segments { grid-column: 1 / -1; grid-row: 2; grid-template-columns: repeat(var(--kp-flow-count), minmax(150px, 1fr)); overflow-x: auto; }
    .kp-portal .kp-bottombar { background: var(--kp-navy) !important; }
    .kp-portal .kp-bottombar-item { min-height: 48px !important; color: rgba(255,255,255,.7) !important; }
    .kp-portal .kp-bottombar-item.is-active { color: #fff !important; background: rgba(255,255,255,.1) !important; }
}
@media (max-width: 620px) {
    .kp-portal .kp-console-kpis,
    .kp-portal .kp-console-command-rail,
    .kp-portal .kp-console-due-grid { grid-template-columns: minmax(0, 1fr); }
    .kp-portal .kp-console-kpi { min-height: 94px; }
    .kp-portal .kp-console-listing-row { grid-template-columns: 50px minmax(0, 1fr); }
    .kp-portal .kp-console-listing-row img,
    .kp-portal .kp-console-listing-fallback { width: 50px; height: 38px; }
    .kp-portal .kp-console-listing-price { grid-column: 2; justify-self: start; }
    .kp-portal .kp-console-command-actions .kp-button { padding-inline: 11px; }
}
