:root {
  --kl-ink:#221a22; --kl-muted:#7a6f78; --kl-burg:#7a1f2b; --kl-burg2:#9c2b3a;
  --kl-gold:#b8902f; --kl-line:#e7ddd9; --kl-bg:#f6f2ee; --kl-card:#fff; --kl-side:#2a1620;
}
* { box-sizing:border-box; }
body.kl { margin:0; font-family:Georgia,"Times New Roman",serif; color:var(--kl-ink); background:var(--kl-bg); line-height:1.5; }
body.kl a { color:var(--kl-burg); }
.kl-crown { color:var(--kl-gold); font-size:22px; }
.kl-mono { font-family:"SF Mono",Menlo,Consolas,monospace; font-size:.92em; }
.kl-muted { color:var(--kl-muted); }
.kl-tag { background:#f3e6cf; color:#7a5b13; font-size:11px; padding:1px 7px; border-radius:4px; }

/* Shell: left sidebar IA (distinct from BeaconLink top nav) */
.kl-shell { display:flex; min-height:100vh; }
.kl-side { width:248px; flex:none; background:var(--kl-side); color:#f3e9e4; display:flex; flex-direction:column; padding:20px 16px; position:sticky; top:0; height:100vh; }
.kl-side__brand { display:flex; gap:10px; align-items:center; text-decoration:none; color:#fff; padding:6px 8px 18px; border-bottom:1px solid rgba(255,255,255,.12); }
.kl-side__brandtext { font-weight:700; line-height:1.2; }
.kl-side__brandtext small { display:block; font-weight:400; font-size:11px; color:#c9a23a; letter-spacing:.5px; }
.kl-side__nav { display:flex; flex-direction:column; gap:3px; margin-top:16px; }
.kl-side__nav a { color:#d8cbc4; text-decoration:none; padding:10px 12px; border-radius:8px; font-size:14px; display:flex; align-items:center; gap:10px; }
.kl-side__nav a:hover { background:rgba(255,255,255,.08); color:#fff; }
.kl-side__nav a.is-active { background:var(--kl-burg2); color:#fff; }
.kl-ic { width:18px; display:inline-block; text-align:center; opacity:.8; }

/* Sidebar "All Contracts" list — scrollable, scope-limited */
.kl-side__contracts { flex:1; min-height:60px; margin:16px 0; display:flex; flex-direction:column; overflow:hidden; }
.kl-side__contracts-h { font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:#b6a59d; padding:0 12px 8px; font-family:-apple-system,sans-serif; display:flex; align-items:center; gap:8px; }
.kl-count { background:rgba(255,255,255,.14); color:#f3e9e4; border-radius:999px; padding:1px 8px; font-size:11px; }
.kl-side__contracts-list { list-style:none; margin:0; padding:0; overflow-y:auto; flex:1; }
.kl-side__contracts-list a { display:block; text-decoration:none; padding:7px 12px; border-radius:7px; color:#d8cbc4; }
.kl-side__contracts-list a:hover { background:rgba(255,255,255,.07); }
.kl-side__contracts-list a.is-active { background:var(--kl-burg2); color:#fff; }
.kl-cn { display:block; font-family:"SF Mono",Menlo,Consolas,monospace; font-size:11.5px; color:#e7c7cc; }
.kl-cp { display:block; font-size:11.5px; color:#b6a59d; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.kl-side__contracts-empty { color:#b6a59d; font-size:12px; padding:6px 12px; font-style:italic; }

.kl-side__foot { border-top:1px solid rgba(255,255,255,.12); padding-top:14px; flex:none; }
.kl-producer { font-size:12px; line-height:1.6; margin-bottom:10px; }
.kl-producer__name { display:block; color:#fff; font-weight:700; font-size:13.5px; }
.kl-producer__meta { display:block; color:#b6a59d; }
.kl-signout { color:#e7c7cc; text-decoration:none; font-size:13px; }

.kl-content { flex:1; display:flex; flex-direction:column; min-width:0; }
.kl-topbar { display:flex; justify-content:space-between; align-items:center; padding:0 28px; height:52px; background:#fff; border-bottom:1px solid var(--kl-line); }
.kl-topbar__crumb { color:var(--kl-muted); font-size:13px; }
.kl-lang button { border:1px solid var(--kl-line); background:#fff; padding:3px 9px; cursor:pointer; font-size:12px; font-family:inherit; }
.kl-lang button:first-child { border-radius:6px 0 0 6px; } .kl-lang button:last-child { border-radius:0 6px 6px 0; border-left:0; }
.kl-lang button.is-active { background:var(--kl-burg); color:#fff; border-color:var(--kl-burg); }
.kl-main { flex:1; padding:28px; max-width:1080px; }
.kl-h1 { font-size:26px; margin:0 0 4px; }
.kl-sub { color:var(--kl-muted); margin:0 0 22px; font-style:italic; }
.kl-subh { margin:22px 0 10px; font-size:16px; }
.kl-back { display:inline-block; margin-bottom:14px; text-decoration:none; font-size:13.5px; }
.kl-link { color:var(--kl-burg); }

/* Stats */
.kl-stats { display:grid; grid-template-columns:repeat(5,1fr); gap:14px; margin-bottom:24px; }
@media(max-width:900px){ .kl-stats{ grid-template-columns:repeat(2,1fr); } }
.kl-stat { background:var(--kl-card); border:1px solid var(--kl-line); border-top:3px solid var(--kl-gold); border-radius:10px; padding:16px; }
.kl-stat--warn { border-top-color:#c9772b; } .kl-stat--info { border-top-color:#3a6ea5; }
.kl-stat__n { display:block; font-size:23px; font-weight:700; }
.kl-stat__l { display:block; color:var(--kl-muted); font-size:12.5px; margin-top:4px; }
.kl-board { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
@media(max-width:820px){ .kl-board{ grid-template-columns:1fr; } }
.kl-card { background:var(--kl-card); border:1px solid var(--kl-line); border-radius:12px; padding:20px; margin-bottom:18px; }
.kl-card h2 { margin:0 0 14px; font-size:17px; color:var(--kl-burg); }
.kl-list__row { display:flex; justify-content:space-between; align-items:center; padding:11px 0; border-bottom:1px solid var(--kl-line); font-size:14px; text-decoration:none; color:inherit; }
.kl-list__row:last-child { border-bottom:0; }
.kl-list__row--link:hover { color:var(--kl-burg); }
.kl-pill { background:#efe7e3; color:var(--kl-muted); font-size:12px; padding:3px 10px; border-radius:5px; }
.kl-pill--ok { background:#e4f1e6; color:#2d6a39; } .kl-pill--muted { background:#efe7e3; color:#7a6f78; }
.kl-pill--warn { background:#fbecd9; color:#9a5a13; } .kl-pill--info { background:#e3edf8; color:#2c5586; }
.kl-pill--lg { font-size:13px; padding:6px 13px; }

/* List head + search */
.kl-listhead { display:flex; justify-content:space-between; align-items:flex-end; gap:16px; flex-wrap:wrap; margin-bottom:16px; }
.kl-search { display:flex; gap:8px; align-items:center; }
.kl-search input[type=search] { padding:9px 12px; border:1px solid var(--kl-line); border-radius:8px; min-width:240px; font-family:inherit; }

/* DIV-grid "table" (no <table> elements) */
.kl-grid { background:#fff; border:1px solid var(--kl-line); border-radius:12px; overflow:hidden; }
.kl-grid__head, .kl-grid__row { display:grid; grid-template-columns:1.1fr 1.4fr .8fr .8fr 1fr 1.1fr; align-items:center; gap:10px; padding:12px 18px; }
.kl-grid__head { background:#f0e7e2; color:var(--kl-burg); font-size:12px; text-transform:uppercase; letter-spacing:.04em; font-weight:700; border-bottom:1px solid var(--kl-line); font-family:-apple-system,"Segoe UI",sans-serif; }
.kl-grid__row { border-bottom:1px solid var(--kl-line); text-decoration:none; color:inherit; font-size:14px; }
.kl-grid__row:last-child { border-bottom:0; }
.kl-grid__row:hover { background:#faf6f3; }
.kl-grid .num { text-align:right; }
.kl-grid__sort { text-decoration:none; color:inherit; }
.kl-grid__empty { padding:18px; color:var(--kl-muted); }
.kl-grid--report .kl-grid__head, .kl-grid--report .kl-grid__row { grid-template-columns:2fr 1fr 1.2fr; }
.kl-grid--two .kl-grid__head, .kl-grid--two .kl-grid__row { grid-template-columns:2fr 1fr; }
.kl-grid__row--static { cursor:default; }

/* Pager */
.kl-pager { display:flex; justify-content:space-between; align-items:center; margin-top:16px; }
.kl-pager__info { color:var(--kl-muted); font-size:13px; }
.kl-pager a { text-decoration:none; padding:6px 11px; border:1px solid var(--kl-line); border-radius:8px; margin-left:4px; color:var(--kl-ink); font-size:13px; }
.kl-pager a.is-active { background:var(--kl-burg); color:#fff; border-color:var(--kl-burg); }

/* Buttons */
.kl-btn { padding:9px 15px; border:1px solid var(--kl-line); background:#fff; border-radius:8px; cursor:pointer; font-family:inherit; font-size:14px; }
.kl-btn--primary { background:var(--kl-burg); color:#fff; border-color:var(--kl-burg); width:100%; padding:11px; font-weight:700; }
.kl-btn--ghost { display:inline-block; text-decoration:none; color:var(--kl-burg); border-color:var(--kl-burg); }

/* Login */
.kl-login { min-height:100vh; display:grid; grid-template-columns:1fr 1fr; }
@media(max-width:760px){ .kl-login{ grid-template-columns:1fr; } }
.kl-login__panel { background:linear-gradient(160deg,#2a1620 0%,#7a1f2b 100%); color:#fff; padding:60px 48px; display:flex; flex-direction:column; justify-content:center; }
.kl-login__brand { display:flex; gap:14px; align-items:center; }
.kl-login__brand span { display:block; color:#e7c7cc; font-size:13px; }
.kl-login__brand strong { font-size:22px; }
.kl-login__tag { margin-top:18px; font-style:italic; color:#e7c7cc; font-size:18px; }
.kl-login__formwrap { padding:60px 48px; display:flex; flex-direction:column; justify-content:center; max-width:440px; }
.kl-steps { display:flex; gap:8px; margin-bottom:22px; }
.kl-step { font-size:12px; padding:6px 12px; border-radius:999px; background:#efe7e3; color:var(--kl-muted); font-family:-apple-system,sans-serif; }
.kl-step.is-done { background:#e4f1e6; color:#2d6a39; }
.kl-step.is-active { background:var(--kl-burg); color:#fff; }
.kl-form label { display:block; font-size:13px; color:var(--kl-muted); margin-bottom:16px; }
.kl-form input { width:100%; padding:11px 12px; border:1px solid var(--kl-line); border-radius:9px; margin-top:6px; font-size:15px; font-family:inherit; }
.kl-asuser { font-size:13px; color:var(--kl-muted); margin:0 0 14px; }
.kl-creds { margin-top:18px; font-size:13px; color:var(--kl-muted); }
.kl-creds code { background:#f0e7e2; padding:2px 7px; border-radius:5px; }
.kl-error { background:#fbe3e3; color:#9b1c1c; padding:11px 14px; border-radius:9px; font-size:13.5px; margin-bottom:16px; }

/* Contract detail */
.kl-contract__head { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:16px; }
.kl-tag-plan { background:#f3e6cf; color:#7a5b13; font-size:12px; font-weight:700; padding:3px 10px; border-radius:5px; font-family:-apple-system,sans-serif; }
.kl-tabs { display:flex; gap:6px; border-bottom:2px solid var(--kl-line); margin-bottom:18px; }
.kl-tab { border:0; background:none; padding:11px 16px; cursor:pointer; font-family:inherit; font-size:14px; color:var(--kl-muted); border-bottom:3px solid transparent; margin-bottom:-2px; }
.kl-tab.is-active { color:var(--kl-burg); border-bottom-color:var(--kl-gold); font-weight:700; }
.kl-tabpanel { display:none; }
.kl-tabpanel.is-active { display:block; }
.kl-kv { background:#fff; border:1px solid var(--kl-line); border-radius:12px; overflow:hidden; }
.kl-kv__row { display:grid; grid-template-columns:220px 1fr; }
.kl-kv__row:nth-child(odd) { background:#faf6f3; }
.kl-kv__k { color:var(--kl-muted); font-size:13px; padding:11px 16px; }
.kl-kv__v { padding:11px 16px; font-size:14px; }
.kl-showmore { margin:16px 0; }
.kl-showmore summary { cursor:pointer; color:var(--kl-burg); font-weight:700; font-size:13.5px; }
.kl-minigrid { background:#fff; border:1px solid var(--kl-line); border-radius:10px; overflow:hidden; }
.kl-minigrid__row { display:grid; grid-template-columns:1fr auto; gap:12px; padding:10px 16px; border-bottom:1px solid var(--kl-line); font-size:14px; }
.kl-minigrid--funds .kl-minigrid__row { grid-template-columns:1.6fr .6fr auto; }
.kl-minigrid__row:last-child { border-bottom:0; }
.kl-minigrid .num { text-align:right; }
.kl-empty { color:var(--kl-muted); padding:6px 0; }
.kl-empty--callout { background:#fbecd9; border:1px dashed #d6a85e; color:#9a5a13; padding:14px 16px; border-radius:9px; }
.kl-statement { margin-top:20px; }
.kl-statement--locked { color:var(--kl-muted); border-color:var(--kl-line); cursor:not-allowed; }
.kl-scopebanner { background:#fbecd9; border:1px solid #d6a85e; color:#9a5a13; padding:10px 14px; border-radius:9px; font-size:13.5px; margin:-12px 0 22px; font-style:normal; }

/* Member detail (client-rendered) */
.kl-skel__bar { height:16px; background:#ece3de; border-radius:6px; margin:12px 0; animation:klsh 1.3s infinite; }
.kl-skel__bar--lg { height:30px; width:42%; }
.kl-skel__block { height:120px; background:#ece3de; border-radius:12px; margin:16px 0; animation:klsh 1.3s infinite; }
@keyframes klsh { 0%{opacity:.6} 50%{opacity:1} 100%{opacity:.6} }
.kl-mprofile { background:#fff; border:1px solid var(--kl-line); border-radius:12px; padding:22px; margin-bottom:20px; }
.kl-mprofile__name { font-size:22px; margin:0 0 4px; }
.kl-mprofile__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:10px 22px; margin-top:14px; font-size:14px; }
.kl-mprofile__grid .k { display:block; color:var(--kl-muted); font-size:12px; }
.kl-ccard { background:#fff; border:1px solid var(--kl-line); border-left:4px solid var(--kl-gold); border-radius:10px; padding:16px; margin-bottom:12px; }
.kl-ccard__top { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:8px; }
.kl-ccard__top a { font-weight:700; text-decoration:none; }
.kl-ccard__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:6px 18px; font-size:13px; }
.kl-ccard__grid .k { color:var(--kl-muted); }
.kl-batchnote { color:var(--kl-muted); font-size:13px; font-style:italic; padding:8px 0; }

/* FAQ / article */
.kl-faq details { background:#fff; border:1px solid var(--kl-line); border-radius:10px; padding:12px 16px; margin-bottom:10px; }
.kl-faq summary { cursor:pointer; font-weight:700; }
.kl-article { background:#fff; border:1px solid var(--kl-line); border-radius:12px; padding:24px; margin-top:18px; }
.kl-article__note { color:#9a5a13; font-weight:700; }

.kl-footer { display:flex; justify-content:space-between; padding:16px 28px; color:var(--kl-muted); font-size:13px; }
.kl-footer a { text-decoration:none; }
.demo-banner { background:#2a1a00; color:#ffd479; text-align:center; padding:9px; font-size:12px; font-weight:700; letter-spacing:.4px; font-family:-apple-system,sans-serif; }
.demo-banner--login { grid-column:1 / -1; }
