/* EXTENSION: Proposed UI controls for the REAL product. Not approved landing replacement. */
.bk-app, .bk-app * { box-sizing:border-box; }
.bk-app { margin:0; font:16px/1.5 var(--bk-font); background:var(--bk-app-bg); color:var(--bk-text); -webkit-font-smoothing:antialiased; }
.bk-app :focus-visible { outline:3px solid var(--bk-coral); outline-offset:3px; }
.bk-app button, .bk-app input, .bk-app select, .bk-app textarea { font:inherit; }
.bk-app button { cursor:pointer; }
.bk-shell { max-width:1280px; padding:32px 28px 90px; margin:auto; }
.bk-top { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 0 22px; border-bottom:1px solid var(--bk-border); }
.bk-brand { font-weight:750; font-size:26px; letter-spacing:-.07em; display:inline-flex; align-items:center; gap:11px; color:var(--bk-ink); }
.bk-brand svg{width:36px;height:31px;}
.bk-overline { text-transform:uppercase; letter-spacing:.12em; color:var(--bk-muted); font-size:12px; font-weight:800; }
.bk-heading-xl { font-size:clamp(28px,4vw,42px); line-height:1.16; letter-spacing:-.05em; margin:12px 0 10px; }
.bk-lead { color:var(--bk-muted); font-size:16px; max-width:680px; margin:0 0 24px; }
.bk-heading { font-size:22px; letter-spacing:-.03em; margin:0 0 12px; }
.bk-card { background:var(--bk-surface-raised); border:1px solid var(--bk-border); border-radius:var(--bk-radius-lg); padding:24px; box-shadow:0 10px 32px #173e3a0a; }
.bk-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr));gap:16px; }
.bk-stack { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.bk-button { display:inline-flex; align-items:center; justify-content:center; gap:10px; border-radius:var(--bk-radius-md); border:1px solid transparent; padding:12px 18px; min-height:44px; font-weight:700; text-decoration:none; transition:background .18s ease,transform .18s ease; }
.bk-button--primary { color:var(--bk-action-text); background:var(--bk-action); }
.bk-button--primary:hover { background:var(--bk-action-hover); }
.bk-button--secondary { background:var(--bk-surface); border-color:var(--bk-border-strong); color:var(--bk-ink); }
.bk-button--secondary:hover { background:#eaf0e8; }
.bk-button--ghost { background:transparent; color:var(--bk-ink); }
.bk-button--ghost:hover { background:#e8eee8; }
.bk-button:disabled { opacity:.48; cursor:not-allowed; }
.bk-label { display:block;font-size:14px;font-weight:700;margin-bottom:8px; }
.bk-field { width:100%;min-height:46px;padding:11px 13px;background:#fff;color:var(--bk-ink);border:1px solid var(--bk-border-strong);border-radius:var(--bk-radius-sm); }
.bk-field[aria-invalid=true] { border-color:var(--bk-negative); }
.bk-helper { color:var(--bk-muted);font-size:13px;margin:8px 0 0; }
.bk-badge { display:inline-flex; align-items:center;gap:6px;border-radius:99px;font-size:12px;font-weight:750;padding:5px 10px;background:#edf2e9;color:var(--bk-ink); }
.bk-badge--success { color:var(--bk-positive);background:var(--bk-positive-soft); }
.bk-badge--warning { color:var(--bk-warning);background:var(--bk-warning-soft); }
.bk-badge--error { color:var(--bk-negative);background:var(--bk-negative-soft); }
.bk-badge--info { color:var(--bk-info);background:var(--bk-info-soft); }
.bk-file { display:flex; align-items:center; justify-content:space-between;gap:20px; border:1px solid var(--bk-border);padding:18px;border-radius:var(--bk-radius-md);background:var(--bk-surface); }
.bk-file__name { font-weight:750;overflow-wrap:anywhere; }
.bk-file__meta { font-size:13px;color:var(--bk-muted);margin-top:3px; }
.bk-table-wrap { width:100%;overflow:auto;border:1px solid var(--bk-border);border-radius:var(--bk-radius-lg);background:#fff; }
.bk-table { border-collapse:collapse;width:100%;min-width:600px;text-align:left;font-size:14px; }
.bk-table th { color:var(--bk-muted);background:#f4f7f1;font-size:12px;letter-spacing:.05em;text-transform:uppercase; }
.bk-table th, .bk-table td { padding:14px 18px;border-bottom:1px solid var(--bk-border); }
.bk-table tr:last-child td { border-bottom:0; }
.bk-note { color:var(--bk-muted);font-size:13px;line-height:1.65; }
@media(max-width:750px){.bk-shell{padding:18px 18px 65px}.bk-grid{grid-template-columns:1fr}.bk-card{padding:20px}.bk-top{flex-wrap:wrap}.bk-file{flex-direction:column;align-items:flex-start}.bk-table{min-width:560px}}
@media(prefers-reduced-motion:reduce){.bk-button{transition:none}}

/* Adapter for existing portal DOM. Presentation only; IDs, actions and script bytes stay intact. */
:root{--brand:var(--bk-ink);--brand-2:var(--bk-action-hover);--bg:var(--bk-sand);--surface:var(--bk-surface-raised);--surface-2:var(--bk-paper);--line:var(--bk-border);--text-1:var(--bk-ink);--text-2:var(--bk-muted);--text-3:var(--bk-muted);--green:var(--bk-positive);--green-bg:var(--bk-positive-soft);--red:var(--bk-negative);--red-bg:var(--bk-negative-soft);--amber:var(--bk-warning);--amber-bg:var(--bk-warning-soft);--ok:var(--bk-positive);--okbg:var(--bk-positive-soft);--dead-bg:#edf2e9}
body.bk-app{background:var(--bk-app-bg);color:var(--bk-text);font:16px/1.5 var(--bk-font)}
.bk-app .wrap{max-width:1060px;margin:0 auto;padding:28px 28px 64px}
.bk-brandbar{display:flex;align-items:center;gap:12px;padding:0 0 24px;color:var(--bk-ink)}
.bk-brandbar svg{width:42px;height:36px;flex:none}
.bk-brandbar strong{font-size:27px;font-weight:750;letter-spacing:-.065em}
.bk-brandbar span{margin-left:auto;font-size:12px;color:var(--bk-muted);letter-spacing:.08em;text-transform:uppercase;text-align:right}
.bk-app .card{background:var(--bk-surface-raised);border:1px solid var(--bk-border);border-radius:var(--bk-radius-xl);box-shadow:0 10px 32px #173e3a0a}
.bk-app .top{background:var(--bk-paper);padding:20px 28px;border-color:var(--bk-border)}
.bk-app .body{padding:28px}
.bk-app h1{font-size:clamp(26px,3vw,38px);font-weight:700;line-height:1.18;letter-spacing:-.045em;color:var(--bk-ink);overflow-wrap:anywhere}
.bk-app h2{letter-spacing:-.025em;color:var(--bk-ink)}
.bk-app .eyebrow{font-size:12px;letter-spacing:.12em;color:var(--bk-muted)}
.bk-app button,.bk-app a.btn{border-radius:var(--bk-radius-md);min-height:46px;font-weight:700}
.bk-app button.primary,.bk-app a.primary{background:var(--bk-action);border-color:var(--bk-action);color:var(--bk-action-text)}
.bk-app button.primary:hover,.bk-app a.primary:hover{background:var(--bk-action-hover);border-color:var(--bk-action-hover)}
.bk-app button:disabled{cursor:not-allowed}
.bk-app input,.bk-app textarea{border-radius:var(--bk-radius-sm);border:1px solid var(--bk-border-strong);max-width:100%;color:var(--bk-ink)}
.bk-app input[type=file]{padding:12px;background:var(--bk-paper)}
.bk-app .note,.bk-app .steps{background:var(--bk-paper);border-color:var(--bk-border);border-radius:var(--bk-radius-md)}
.bk-app .signed{background:var(--bk-positive-soft);color:var(--bk-positive);border-radius:var(--bk-radius-md)}
.bk-app .files{border-radius:var(--bk-radius-md);border-color:var(--bk-border)}
.bk-app .files a{padding:18px 20px}
.bk-app .flinks a{min-height:40px;padding:9px 12px;border-radius:var(--bk-radius-sm)}
.bk-app .badge,.bk-app .chip{font-weight:650;letter-spacing:0;border-color:var(--bk-border)}
.bk-app .badge.ok{background:var(--bk-positive-soft);color:var(--bk-positive)}
/* Expired is closed without signature, never a success; fixed AA text pair. */
.bk-app .chip.expired{background:#fff5e3;color:#704500;border-color:#b98942}
.bk-app .chip.expired::before,.bk-app .chip.ok::before{content:none}
.bk-app .chip .status-icon{font-size:14px;line-height:1;flex:none}
.bk-app .bk-signature h2{overflow-wrap:anywhere}
.bk-app .bk-sig-status{font-weight:650;margin:8px 0}
.bk-app .bk-sig-status.ok{background:transparent;color:#17634b}
.bk-app .bk-sig-status.bad{background:transparent;color:#a7433e}
.bk-app .bk-sig-status.wait{background:transparent;color:#704500}
.bk-app .badge.bad{background:var(--bk-negative-soft);color:var(--bk-negative)}
.bk-app .badge.wait{background:var(--bk-warning-soft);color:var(--bk-warning)}
.bk-app .mono{overflow-wrap:anywhere}
.bk-app td{overflow-wrap:anywhere}
.bk-app dialog{border:1px solid var(--bk-border);border-radius:var(--bk-radius-xl);padding:28px;background:var(--bk-surface-raised);color:var(--bk-ink)}
.bk-app dialog::backdrop{background:#081f2070}
@media(max-width:720px){
 .bk-app .wrap{padding:18px 16px 36px}
 .bk-brandbar{padding-bottom:18px;gap:9px}
 .bk-brandbar span{font-size:10px;max-width:132px;letter-spacing:.04em}
 .bk-brandbar strong{font-size:25px}
 .bk-app .top{padding:18px}
 .bk-app .body{padding:20px}
 .bk-app .card{border-radius:var(--bk-radius-lg)}
 .bk-app .acts{margin-left:-20px;margin-right:-20px;padding-left:20px;padding-right:20px}
 .bk-app td.acts{margin:0;padding:10px 0 0}
 .bk-app .files a{padding:14px 12px;gap:10px}
 .bk-app dialog{padding:20px}
}
/* Early, keyboard-ordered actions: no overlay of content or dialog. */
.bk-app .bk-sign-actions{position:static;display:flex;align-items:center;gap:12px;margin:18px 0 24px;padding:16px 0;border-top:1px solid var(--bk-border);border-bottom:1px solid var(--bk-border);background:transparent}
.bk-app .bk-sign-actions a.btn{text-align:center}
.bk-error{max-width:900px;overflow-wrap:anywhere}
@media(max-width:720px){
 .bk-app .bk-sign-actions{display:grid;grid-template-columns:1fr;margin:16px 0 20px;padding:14px 0}
 .bk-app .bk-sign-actions button,.bk-app .bk-sign-actions a.btn{width:100%;min-height:46px;margin:0}
 .bk-app .bk-sign-actions .sp{display:none}
}
/* Static NCALayer help follows the existing error node; no script/handler changes. */
.bk-app .bk-nca-help{display:none;margin:-4px 0 20px;color:var(--bk-muted);font-size:14px}
.bk-app #err.show + .bk-nca-help{display:block}
.bk-app .bk-nca-help a{color:var(--bk-ink);text-decoration:underline}
.bk-app .bk-check-field .l{display:block;overflow-wrap:anywhere}
@media(prefers-reduced-motion:reduce){.bk-app *{scroll-behavior:auto;transition:none;animation:none}}

/* Same stacked bilingual labels as /check, extended to all portal templates. */
.bk-app .l{display:block;overflow-wrap:anywhere}
.bk-app .bk-brandbar span.l{margin:0;letter-spacing:inherit}
.bk-app .msg{white-space:pre-line}
@media(max-width:720px){.bk-app td[data-label]::before{max-width:44%;overflow-wrap:anywhere}}

/* Cabinet only: reserve the amount column and give the counter a full row.
   Keep the data DOM and the stacked bilingual labels elsewhere unchanged. */
.bk-app .head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}
.bk-app .head > div{display:contents}
.bk-app .head .eyebrow{grid-column:1;grid-row:1}
.bk-app .head h1{grid-column:1;grid-row:2}
.bk-app .head .sub{grid-column:1 / -1;grid-row:3;min-width:0;overflow-wrap:normal;word-break:normal;hyphens:none}
.bk-app .head .sub .l{display:inline;overflow-wrap:normal;word-break:normal;hyphens:none}

.bk-app .head #logout{grid-column:2;grid-row:1 / 3;align-self:start}
.bk-app .body:has(> .head) th:nth-child(3){min-width:100px}
.bk-app .body:has(> .head) th:nth-child(3) .l{white-space:nowrap;overflow-wrap:normal;word-break:normal;hyphens:none}
@media(min-width:721px){.bk-app .body:has(> .head) td:nth-child(3){min-width:100px;white-space:nowrap;overflow-wrap:normal;word-break:normal}}
@media(max-width:720px){
 .bk-app .head{grid-template-columns:minmax(0,1fr)}
 .bk-app .head #logout{grid-column:1;grid-row:4;justify-self:start;margin-top:6px}
 .bk-app .body:has(> .head) td:nth-child(3)::before{white-space:nowrap;max-width:none;overflow-wrap:normal;word-break:normal;hyphens:none}
}

/* Server-selected language; ordinary links also work without JavaScript. */
.bk-brandbar .bk-lang{margin-left:auto;display:flex;align-items:center;gap:8px;flex-shrink:0;white-space:nowrap;font-size:13px;letter-spacing:0}
.bk-brandbar .bk-lang a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:32px;color:var(--bk-muted);text-decoration:none}
.bk-brandbar .bk-lang a[aria-current=true]{color:var(--bk-ink);font-weight:700;text-decoration:underline;text-underline-offset:5px}
.bk-brandbar .bk-lang span{margin:0;font-size:13px;letter-spacing:0}
.bk-brandbar .bk-lang a:focus-visible{outline:2px solid currentColor;outline-offset:2px}
@media(max-width:480px){.bk-brandbar{flex-wrap:wrap}.bk-brandbar > span{max-width:95px;font-size:9px}.bk-brandbar .bk-lang{gap:4px}}
