@font-face{font-family:"Vazirmatn";src:url("../fonts/Vazirmatn-Variable.woff2") format("woff2");font-style:normal;font-weight:100 900;font-display:block}
:root{
  /* BANUK — Official Visual Design System */
  --banuk-burgundy:#4A101C;--banuk-burgundy-hover:#390B14;--banuk-burgundy-active:#2B080F;--banuk-burgundy-soft:#F3E6E9;
  --banuk-ivory:#F6F1E9;--banuk-warm-white:#FCFAF7;--banuk-black:#181415;--banuk-charcoal:#454043;--banuk-muted:#7B7274;
  --banuk-border:#E5DDD4;--banuk-input-border:#DCD3CA;--banuk-placeholder:#9A9192;
  --banuk-champagne:#B69A6A;--banuk-champagne-light:#D8C7A7;--banuk-taupe:#B7AAA0;
  --bn-font-family:"Vazirmatn",Tahoma,Arial,sans-serif;
  --bn-bg:#f5f0e7;--bn-surface:#fffdf9;--bn-ink:#171512;--bn-muted:#716b62;
  --bn-line:#e2d8c8;--bn-gold:#916a2c;--bn-gold-soft:#efe1c6;--bn-danger:#a33b32;
  --bn-success:#327a55;--bn-shadow:0 12px 32px rgba(37,29,18,.08);--bn-radius:18px;
  font-family:var(--bn-font-family);color:var(--bn-ink);background:var(--bn-bg)
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bn-bg)}
body{direction:inherit}.bn-app{min-height:100vh;display:grid;grid-template-columns:270px 1fr}
.bn-sidebar{background:#171512;color:#fff;padding:24px 18px;display:flex;flex-direction:column;gap:18px}
.bn-brand{display:flex;align-items:center;gap:12px;padding:4px 8px 18px;border-bottom:1px solid rgba(255,255,255,.1)}
.bn-brand-logo{width:58px;height:58px;object-fit:contain;display:block;flex:0 0 58px}
.bn-brand strong{display:block;font-size:18px}.bn-brand small{display:block;color:#aaa39a;margin-top:2px}
.bn-nav{display:grid;gap:8px}.bn-nav button{all:unset;cursor:pointer;min-height:44px;padding:0 14px;border-radius:12px;color:#d9d4cc;display:flex;align-items:center;gap:10px}
.bn-nav button:hover,.bn-nav button.is-active{background:rgba(198,160,94,.16);color:#fff}.bn-nav button.is-active{box-shadow:inset -3px 0 0 #c7a260}
.bn-sidebar-foot{margin-top:auto;color:#958f87;font-size:12px;padding:8px}
.bn-main{min-width:0;padding:24px 28px 42px}.bn-topbar{display:flex;align-items:center;gap:14px;justify-content:space-between;margin-bottom:22px}
.bn-topbar h1{font-size:24px;margin:0}.bn-topbar-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.bn-user-chip b{font-size:12px;font-weight:600}
.bn-chip{min-height:38px;padding:0 12px;border:1px solid var(--bn-line);border-radius:999px;background:var(--bn-surface);display:inline-flex;align-items:center;gap:7px;font-size:13px}
.bn-link{color:var(--bn-ink);text-decoration:none}.bn-link:hover{color:var(--bn-gold)}
.bn-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.bn-toolbar .bn-field{min-width:220px;flex:1}
.bn-card{background:var(--bn-surface);border:1px solid var(--bn-line);border-radius:var(--bn-radius);box-shadow:var(--bn-shadow);padding:20px}
.bn-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}.bn-col-4{grid-column:span 4}.bn-col-6{grid-column:span 6}.bn-col-8{grid-column:span 8}.bn-col-12{grid-column:span 12}
.bn-stat strong{display:block;font-size:28px;margin-top:6px}.bn-stat span{color:var(--bn-muted);font-size:13px}
.bn-section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.bn-section-title h2{margin:0;font-size:18px}.bn-section-title p{margin:3px 0 0;color:var(--bn-muted);font-size:13px}
.bn-empty{padding:34px 18px;text-align:center;color:var(--bn-muted);border:1px dashed var(--bn-line);border-radius:14px;background:rgba(255,255,255,.4)}
.bn-field{display:grid;gap:6px}.bn-field label{font-size:12px;color:var(--bn-muted)}
.bn-input,.bn-select,.bn-textarea{width:100%;min-height:44px;border:1px solid var(--bn-line);border-radius:12px;background:#fff;padding:10px 12px;font:inherit;color:var(--bn-ink);outline:none}
.bn-textarea{min-height:88px;resize:vertical}.bn-input:focus,.bn-select:focus,.bn-textarea:focus{border-color:var(--bn-gold);box-shadow:0 0 0 3px rgba(145,106,44,.18)}
.bn-btn{appearance:none;border:0;border-radius:12px;min-height:44px;padding:0 16px;font:inherit;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px}
.bn-btn:disabled{opacity:.5;cursor:not-allowed}.bn-btn-primary{background:#171512;color:#fff}.bn-btn-primary:hover{background:#2a2621}.bn-btn-soft{background:var(--bn-gold-soft);color:#6f4d18}.bn-btn-ghost{background:transparent;border:1px solid var(--bn-line);color:var(--bn-ink)}
.bn-btn-danger{background:#f4dfdc;color:var(--bn-danger)}.bn-btn-success{background:#ddede4;color:var(--bn-success)}
.bn-table-wrap{overflow:auto;border:1px solid var(--bn-line);border-radius:14px}.bn-table{width:100%;border-collapse:collapse;min-width:720px;background:#fff}
.bn-table th,.bn-table td{padding:12px 14px;text-align:start;border-bottom:1px solid #eee7dc;font-size:13px;vertical-align:middle}.bn-table th{background:#faf7f1;color:#716b62;font-weight:600;position:sticky;top:0}
.bn-table tr:last-child td{border-bottom:0}.bn-table td small{color:var(--bn-muted)}
.bn-status{display:inline-flex;align-items:center;min-height:28px;padding:0 9px;border-radius:999px;font-size:12px;font-weight:600}.bn-status-active{background:#e0eee6;color:#2c704d}.bn-status-suspended{background:#f6e8cf;color:#916322}.bn-status-revoked{background:#f4dfdc;color:#9a352d}
.bn-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.bn-form-grid .bn-span-2{grid-column:span 2}
.bn-checks{display:flex;gap:8px;flex-wrap:wrap}.bn-check{min-height:40px;padding:8px 10px;border:1px solid var(--bn-line);border-radius:10px;background:#fff;display:flex;align-items:center;gap:7px;font-size:13px}
.bn-notice{border-radius:14px;padding:12px 14px;margin-bottom:14px;font-size:13px}.bn-notice-error{background:#f8e5e2;color:#8d3029;border:1px solid #efc7c1}.bn-notice-success{background:#e5f1e9;color:#2b6a49;border:1px solid #c8e3d2}
.bn-loading{min-height:55vh;display:grid;place-items:center;color:var(--bn-muted);text-align:center}.bn-loading-brand{display:grid;justify-items:center;gap:10px}.bn-loading-logo{width:118px;max-height:148px;object-fit:contain;display:block}.bn-spinner{width:34px;height:34px;border:3px solid #ded5c8;border-top-color:var(--bn-gold);border-radius:50%;animation:bnspin .8s linear infinite;margin:auto auto 12px}@keyframes bnspin{to{transform:rotate(360deg)}}
.bn-mobile-menu-toggle,.bn-mobile-drawer,.bn-mobile-menu-overlay{display:none}.bn-context-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr);gap:10px;margin-bottom:16px}
.bn-kicker{font-size:12px;color:var(--bn-gold);font-weight:700;margin-bottom:4px}.bn-subtle{color:var(--bn-muted);font-size:13px}.bn-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.bn-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;direction:ltr;text-align:left}.bn-noscript{padding:24px;font-family:Tahoma,Arial,sans-serif}
@media(max-width:980px){.bn-app{grid-template-columns:220px 1fr}.bn-main{padding:20px}.bn-col-4{grid-column:span 6}.bn-col-8{grid-column:span 12}}
@media(max-width:760px){.bn-app{display:block}.bn-sidebar{display:none}.bn-main{padding:16px 14px 32px}.bn-topbar{align-items:flex-start;gap:10px}.bn-topbar-title{display:flex;align-items:flex-start;gap:10px;min-width:0}.bn-topbar h1{font-size:21px}.bn-topbar-meta .bn-context-chip{display:none}.bn-user-chip{max-width:165px;overflow:hidden}.bn-user-chip b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bn-mobile-menu-toggle{display:inline-grid;gap:4px;place-content:center;width:44px;height:44px;flex:0 0 44px;border:1px solid var(--bn-line);border-radius:12px;background:#fff;cursor:pointer}.bn-mobile-menu-toggle span{display:block;width:20px;height:2px;border-radius:999px;background:var(--bn-ink)}.bn-mobile-menu-overlay{display:block;position:fixed;inset:0;z-index:48;background:rgba(10,9,7,.48);opacity:0;pointer-events:none;transition:opacity .2s ease}.bn-mobile-menu-overlay.is-open{opacity:1;pointer-events:auto}.bn-mobile-drawer{display:flex;position:fixed;z-index:49;top:0;right:0;bottom:0;width:min(86vw,340px);padding:18px;background:#171512;color:#fff;flex-direction:column;gap:14px;transform:translateX(105%);transition:transform .24s ease;box-shadow:-18px 0 50px rgba(0,0,0,.22)}.bn-mobile-drawer.is-open{transform:none}.bn-mobile-drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.bn-mobile-drawer-head .bn-brand{flex:1;padding-top:0}.bn-mobile-menu-close{width:42px;height:42px;border:1px solid rgba(255,255,255,.16);border-radius:12px;background:transparent;color:inherit;font-size:28px;line-height:1;cursor:pointer}.bn-mobile-drawer-nav{display:grid;gap:6px;overflow-y:auto;padding:4px 0 18px}.bn-mobile-drawer-nav button{all:unset;cursor:pointer;min-height:46px;padding:0 14px;border-radius:12px;color:#d9d4cc;display:flex;align-items:center}.bn-mobile-drawer-nav button:hover,.bn-mobile-drawer-nav button.is-active{background:rgba(198,160,94,.16);color:#fff}.bn-mobile-drawer-nav button.is-active{box-shadow:inset -3px 0 0 #c7a260}.bn-grid{gap:12px}.bn-col-4,.bn-col-6,.bn-col-8,.bn-col-12{grid-column:span 12}.bn-context-row{grid-template-columns:1fr}.bn-form-grid{grid-template-columns:1fr}.bn-form-grid .bn-span-2{grid-column:span 1}.bn-card{padding:16px}.bn-toolbar{align-items:stretch}.bn-toolbar .bn-field{min-width:100%}.bn-toolbar .bn-btn{flex:1}.bn-table{min-width:640px}}
.bn-operation-list{display:grid;gap:14px}.bn-operation{overflow:hidden}.bn-operation-badges{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.bn-operation-summary,.bn-operation-foot{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;color:var(--bn-muted);font-size:12px}.bn-progress{height:7px;background:#eee7dc;border-radius:999px;overflow:hidden;margin:14px 0 18px}.bn-progress span{display:block;height:100%;background:var(--bn-gold);border-radius:inherit;transition:width .25s ease}.bn-timeline{list-style:none;margin:0 0 18px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}.bn-step{position:relative;display:flex;gap:9px;align-items:flex-start;padding:10px;border:1px solid var(--bn-line);border-radius:12px;background:#fff}.bn-step-dot{width:10px;height:10px;border-radius:50%;background:#d5cec2;margin-top:5px;flex:0 0 auto}.bn-step-done .bn-step-dot{background:var(--bn-success)}.bn-step-failed .bn-step-dot{background:var(--bn-danger)}.bn-step strong,.bn-step small{display:block}.bn-step strong{font-size:12px}.bn-step small{font-size:10px;color:var(--bn-muted);margin-top:3px}.bn-sla{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:700}.bn-sla-ok{background:#e0eee6;color:#2c704d}.bn-sla-warn{background:#f6e8cf;color:#916322}.bn-sla-danger{background:#f4dfdc;color:#9a352d}.bn-audit-details{margin-top:14px;border-top:1px solid var(--bn-line);padding-top:12px;color:var(--bn-muted);font-size:11px}.bn-audit-details summary{cursor:pointer;color:var(--bn-ink);font-weight:600;margin-bottom:8px}.bn-audit-details div{padding:4px 0}.bn-operation-foot strong{color:var(--bn-ink)}
@media(max-width:760px){.bn-timeline{grid-template-columns:1fr}.bn-operation-summary,.bn-operation-foot{align-items:flex-start;flex-direction:column;gap:6px}.bn-operation .bn-section-title{align-items:flex-start;flex-direction:column}}

.bn-carousel{display:grid;grid-template-columns:minmax(260px,42%) 1fr;gap:20px;align-items:stretch;overflow:hidden;padding:0}
.bn-carousel-no-media{grid-template-columns:1fr}
.bn-carousel-media{min-height:220px;background:linear-gradient(135deg,#171512,#3a3025);display:grid;place-items:center;overflow:hidden}
.bn-carousel-media picture,.bn-carousel-media img{display:block;width:100%;height:100%}.bn-carousel-media img{object-fit:cover;aspect-ratio:16/8}
.bn-carousel-copy{padding:26px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:10px}.bn-carousel-copy h2{margin:0;font-size:24px}.bn-carousel-copy p{margin:0;color:var(--bn-muted);line-height:1.9}
.bn-carousel-controls{display:flex;align-items:center;gap:10px;margin-top:6px}.bn-carousel-controls button{width:40px;height:40px;border:1px solid var(--bn-line);border-radius:50%;background:#fff;font-size:22px;cursor:pointer;color:var(--bn-ink)}
.bn-carousel-controls button:hover{border-color:var(--bn-gold)}.bn-carousel-controls button:focus-visible{border-color:var(--bn-gold);outline:3px solid var(--bn-gold);outline-offset:2px;box-shadow:none}.bn-carousel-controls span{min-width:58px;text-align:center;color:var(--bn-muted);font-size:12px}
.bn-dashboard-empty{min-height:86px;display:grid;place-items:center;box-shadow:none}
@media(max-width:760px){.bn-carousel{grid-template-columns:1fr}.bn-carousel-media{min-height:180px}.bn-carousel-copy{padding:18px}.bn-carousel-copy h2{font-size:20px}.bn-carousel-media img{aspect-ratio:16/9}}
/* Phase 8 operational communications */
.bn-message-card{border-inline-start:3px solid rgba(164,126,72,.42)}
.bn-message-card.is-read{opacity:.92}
.bn-message-body{white-space:pre-wrap;line-height:1.9;margin:14px 0 18px}

/* Release-candidate accessibility and small-screen navigation */
.bn-btn:focus-visible,.bn-nav button:focus-visible,.bn-mobile-drawer-nav button:focus-visible,.bn-mobile-menu-toggle:focus-visible,.bn-mobile-menu-close:focus-visible,.bn-link:focus-visible,.bn-carousel:focus-visible{outline:3px solid var(--bn-gold);outline-offset:2px}
.bn-dashboard-admin-form{grid-column:1/-1;min-width:0}.bn-dashboard-admin-form .bn-form-grid{max-width:100%}
.bn-tech-details{margin-top:4px}.bn-tech-details summary{cursor:pointer;color:var(--bn-ink);font-weight:600}.bn-tech-details code{display:block;max-width:520px;margin-top:8px;padding:8px 10px;border:1px solid var(--bn-line);border-radius:10px;background:#faf7f1;white-space:pre-wrap;overflow-wrap:anywhere}

.bn-old-backups{margin-top:14px}.bn-old-backups>summary{cursor:pointer;font-weight:700;color:var(--bn-muted);padding:10px 0}.bn-old-backups[open]>summary{color:var(--bn-ink)}

@media(prefers-reduced-motion:reduce){.bn-spinner{animation:none}.bn-progress span{transition:none}}

.bn-preview-overlay{position:fixed;inset:0;z-index:70;background:rgba(10,9,7,.58);display:grid;place-items:center;padding:24px;overflow:auto}
.bn-dashboard-preview{width:min(880px,100%);max-height:calc(100vh - 48px);overflow:auto;background:#fff;border:1px solid var(--bn-line);border-radius:22px;box-shadow:0 24px 70px rgba(0,0,0,.26);padding:22px}
.bn-preview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.bn-preview-head h2{margin:0}.bn-preview-head .bn-mobile-menu-close{color:var(--bn-ink);border-color:var(--bn-line)}
.bn-dashboard-preview picture,.bn-dashboard-preview img{display:block;width:100%}.bn-dashboard-preview img{max-height:460px;object-fit:cover;border-radius:16px;margin-bottom:16px}.bn-dashboard-preview p{line-height:1.9;margin:0;color:var(--bn-muted)}
@media(max-width:760px){.bn-preview-overlay{padding:12px}.bn-dashboard-preview{padding:16px;border-radius:18px;max-height:calc(100vh - 24px)}.bn-dashboard-preview img{max-height:320px}}

/* Operational overview charts */
.bn-stat small{display:block;margin-top:7px;color:var(--bn-muted);font-size:11px}.bn-bar-chart{display:grid;gap:13px}.bn-bar-row{display:grid;gap:6px}.bn-bar-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px}.bn-bar-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bn-bar-track,.bn-mini-track{height:9px;background:#eee7dc;border-radius:999px;overflow:hidden}.bn-bar-track span,.bn-mini-track i{display:block;height:100%;border-radius:inherit;background:var(--bn-gold)}.bn-mini-chart{display:grid;gap:14px}.bn-mini-row{display:grid;grid-template-columns:minmax(90px,1fr) minmax(70px,1.8fr) auto;align-items:center;gap:9px;font-size:12px}.bn-mini-row strong{min-width:28px;text-align:left}.bn-mini-track{height:7px}.bn-mini-track i{min-width:0}.bn-mini-row:first-child .bn-mini-track i{background:#7a5a27}
@media(max-width:760px){.bn-mini-row{grid-template-columns:minmax(90px,1fr) minmax(70px,1.4fr) auto}.bn-bar-meta{font-size:11px}}

/* Sales reporting */
.bn-report-toolbar{padding-block:18px}.bn-report-toolbar .bn-section-title{margin:0;align-items:center}.bn-report-range{display:inline-flex;align-items:center;gap:4px;padding:4px;background:#f3eee6;border:1px solid var(--bn-line);border-radius:12px}.bn-report-range button{appearance:none;border:0;background:transparent;color:var(--bn-muted);font:inherit;font-size:11px;font-weight:700;min-height:34px;padding:0 12px;border-radius:9px;cursor:pointer;white-space:nowrap}.bn-report-range button:hover{color:var(--bn-ink)}.bn-report-range button.is-active{background:#fff;color:var(--bn-ink);box-shadow:0 2px 10px rgba(58,47,30,.09)}
.bn-sales-bars{display:grid;gap:15px}.bn-sales-row{display:grid;gap:6px}.bn-sales-row-head{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px}.bn-sales-row-head strong{font-size:12px}.bn-sales-track{height:11px;background:#eee7dc;border-radius:999px;overflow:hidden;display:flex;direction:rtl}.bn-sales-track span{height:100%;display:block}.bn-sales-partner{background:#916a2c}.bn-sales-banuk{background:#211d18}.bn-sales-row small{color:var(--bn-muted);font-size:10px}.bn-daily-chart{height:180px;display:flex;align-items:flex-end;gap:8px;padding-top:10px;overflow-x:auto}.bn-daily-col{flex:1 0 30px;min-width:30px;text-align:center}.bn-daily-bar{height:145px;background:#f3eee6;border-radius:8px;display:flex;align-items:flex-end;overflow:hidden}.bn-daily-bar span{display:block;width:100%;background:linear-gradient(180deg,#b38b48,#72501e);border-radius:8px 8px 0 0}.bn-daily-col small{display:block;margin-top:5px;color:var(--bn-muted);font-size:9px;direction:ltr}.bn-stat strong{overflow-wrap:anywhere}
@media(max-width:760px){.bn-report-toolbar .bn-section-title{align-items:stretch;flex-direction:column}.bn-report-range{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.bn-report-range button{width:100%;padding-inline:6px}.bn-sales-row-head{align-items:flex-start;flex-direction:column;gap:3px}.bn-daily-chart{height:160px}.bn-daily-bar{height:125px}}

@media(max-width:760px){.bn-brand-logo{width:52px;height:52px;flex-basis:52px}.bn-loading-logo{width:96px;max-height:122px}}

.bn-login-body{min-height:100vh;background:radial-gradient(circle at 50% 12%,#fff 0,#f7f1e7 34%,var(--bn-bg) 72%);direction:inherit}.bn-login-shell{min-height:100vh;display:grid;place-items:center;padding:28px 16px}.bn-login-card{width:min(460px,100%);background:rgba(255,255,255,.9);border:1px solid var(--bn-line);border-radius:24px;box-shadow:0 24px 70px rgba(56,44,25,.12);padding:28px}.bn-login-toolbar{display:flex;justify-content:flex-end;margin-bottom:4px}.bn-login-logo{display:block;width:118px;max-height:150px;object-fit:contain;margin:4px auto 12px}.bn-login-card h1{text-align:center;margin:4px 0 6px;font-size:28px}.bn-login-card>.bn-kicker{text-align:center}.bn-login-lead{text-align:center;margin:0 auto 20px;max-width:340px;line-height:1.8}.bn-login-tabs{display:grid;grid-template-columns:1fr 1fr;background:#f4eee4;border:1px solid var(--bn-line);border-radius:14px;padding:4px;margin-bottom:18px}.bn-login-tabs a{min-height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;text-decoration:none;color:var(--bn-muted);font-size:13px;font-weight:600;padding:4px 8px;text-align:center}.bn-login-tabs a.is-active{background:#fff;color:var(--bn-ink);box-shadow:0 2px 10px rgba(58,47,30,.08)}.bn-login-form{display:grid;gap:14px}.bn-login-form .bn-field span{font-size:12px;color:var(--bn-muted)}.bn-login-remember{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--bn-muted)}.bn-login-submit{width:100%;margin-top:2px}.bn-login-provider-note{font-size:12px;color:var(--bn-muted);line-height:1.8;margin:0}.bn-login-foot{text-align:center;color:var(--bn-muted);font-size:11px;line-height:1.7;margin:18px 0 0;padding-top:14px;border-top:1px solid var(--bn-line)}
@media(max-width:520px){.bn-login-shell{padding:14px}.bn-login-card{padding:20px 16px;border-radius:20px}.bn-login-logo{width:96px;max-height:122px}.bn-login-card h1{font-size:23px}.bn-login-tabs a{font-size:12px}}

html[dir="ltr"] .bn-nav button.is-active,html[dir="ltr"] .bn-mobile-drawer-nav button.is-active{box-shadow:inset 3px 0 0 #c7a260}
html[dir="ltr"] .bn-code{text-align:left}
html[dir="rtl"] .bn-code{text-align:right}
.bn-settings-note{min-height:46px;display:flex;align-items:center;padding:10px 12px;border:1px solid var(--bn-line);border-radius:12px;background:#f7f3ec;color:var(--bn-muted);font-size:12px;line-height:1.8}.bn-settings-logo-preview{min-height:190px;border:1px solid var(--bn-line);border-radius:16px;display:grid;place-items:center;margin:12px 0 16px;padding:18px;overflow:hidden}.bn-settings-logo-preview.is-light{background:#fff}.bn-settings-logo-preview.is-dark{background:#17140f}.bn-settings-logo-preview img{display:block;max-width:180px;max-height:170px;object-fit:contain}@media(max-width:760px){.bn-settings-logo-preview{min-height:150px}.bn-settings-logo-preview img{max-width:140px;max-height:130px}}

/* Technical settings + internal admin management */
.bn-divider{height:1px;background:var(--bn-line);margin:20px 0}.bn-inline-test{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:12px;align-items:end}.bn-inline-test .bn-field{margin:0}.bn-admin-user-list{display:grid;gap:14px}.bn-admin-user-card{margin:0}.bn-admin-user-card h3{margin:2px 0 0}.bn-admin-create{padding-top:4px}.bn-admin-user-card .bn-section-title{margin-bottom:14px}
@media(max-width:760px){.bn-inline-test{grid-template-columns:1fr}.bn-inline-test .bn-btn{width:100%}.bn-admin-user-card{padding:16px}}

/* Technical settings information architecture */
.bn-settings-shell{display:grid;gap:16px}.bn-settings-nav-card{padding-bottom:14px}.bn-settings-nav{display:flex;flex-wrap:wrap;gap:8px}.bn-settings-nav button{appearance:none;border:1px solid var(--bn-line);background:#fff;color:var(--bn-muted);font:inherit;font-size:12px;font-weight:700;min-height:38px;padding:0 14px;border-radius:11px;cursor:pointer}.bn-settings-nav button:hover{color:var(--bn-ink);border-color:#cbbd9e}.bn-settings-nav button.is-active{background:#2f281b;color:#fff;border-color:#2f281b;box-shadow:0 4px 14px rgba(47,40,27,.12)}.bn-settings-kv{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--bn-line)}.bn-settings-kv:last-of-type{border-bottom:0}.bn-settings-kv span{color:var(--bn-muted);font-size:12px}.bn-settings-kv strong{font-size:12px;text-align:end;overflow-wrap:anywhere}.bn-settings-shell>.bn-grid{margin-top:0}@media(max-width:760px){.bn-settings-nav{display:grid;grid-template-columns:1fr 1fr}.bn-settings-nav button{width:100%;padding-inline:8px}.bn-settings-kv{flex-direction:column;gap:5px}.bn-settings-kv strong{text-align:start}}

.bn-password-wrap{position:relative;display:block}.bn-password-wrap .bn-input{padding-inline-end:74px}.bn-password-toggle{position:absolute;inset-inline-end:7px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--bn-gold);font:inherit;font-size:11px;font-weight:700;cursor:pointer;min-height:32px;padding:0 8px;border-radius:8px}.bn-password-toggle:hover{background:var(--bn-gold-soft)}.bn-password-toggle:focus-visible{outline:2px solid var(--bn-gold);outline-offset:1px}


/* OTP five-box verification */
.bn-otp-field{gap:8px}.bn-otp-boxes{direction:ltr;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;width:min(100%,340px);margin-inline:auto}.bn-otp-box{appearance:none;width:100%;aspect-ratio:1/1;min-width:0;border:1.5px solid var(--bn-line);border-radius:14px;background:#fff;text-align:center;font:700 24px/1 "Vazirmatn",Tahoma,Arial,sans-serif;color:var(--bn-ink);outline:none;caret-color:var(--bn-gold);transition:border-color .18s ease,box-shadow .18s ease,background .18s ease,transform .18s ease}.bn-otp-box:focus{border-color:var(--bn-gold);box-shadow:0 0 0 3px rgba(145,106,44,.16);transform:translateY(-1px)}.bn-otp-box.is-filled{border-color:#b99b68}.bn-otp-boxes.is-checking .bn-otp-box{animation:bnOtpCheck .68s ease both}.bn-otp-boxes.is-checking .bn-otp-box:nth-child(2){animation-delay:.07s}.bn-otp-boxes.is-checking .bn-otp-box:nth-child(3){animation-delay:.14s}.bn-otp-boxes.is-checking .bn-otp-box:nth-child(4){animation-delay:.21s}.bn-otp-boxes.is-checking .bn-otp-box:nth-child(5){animation-delay:.28s}.bn-otp-boxes.is-success .bn-otp-box{border-color:var(--bn-success);background:#edf7f1;box-shadow:0 0 0 3px rgba(50,122,85,.12)}.bn-otp-boxes.is-error{animation:bnOtpShake .34s ease}.bn-otp-boxes.is-error .bn-otp-box{border-color:var(--bn-danger);background:#fff7f6;box-shadow:0 0 0 2px rgba(163,59,50,.08)}.bn-otp-inline-error{min-height:18px;color:var(--bn-danger);font-size:11px;text-align:center}.bn-otp-submit{margin-top:0}@keyframes bnOtpCheck{0%,100%{transform:translateY(0);border-color:#b99b68}45%{transform:translateY(-5px) scale(1.035);border-color:var(--bn-gold);box-shadow:0 7px 18px rgba(145,106,44,.14)}}@keyframes bnOtpShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}50%{transform:translateX(6px)}75%{transform:translateX(-3px)}}

/* Mobile settings layout hardening */
@media(max-width:760px){.bn-main,.bn-settings-shell,.bn-settings-shell>.bn-grid,.bn-card,.bn-form-grid,.bn-field{min-width:0;max-width:100%}.bn-main{overflow-x:hidden}.bn-settings-nav-card{padding:12px}.bn-settings-nav{display:flex;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;gap:7px;padding:2px 2px 8px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.bn-settings-nav::-webkit-scrollbar{display:none}.bn-settings-nav button{flex:0 0 auto;width:auto;min-width:max-content;min-height:42px;padding-inline:13px;white-space:nowrap;scroll-snap-align:start}.bn-settings-shell .bn-section-title{align-items:flex-start;flex-direction:column}.bn-settings-shell .bn-section-title>.bn-actions{width:100%;justify-content:flex-start}.bn-settings-shell .bn-checks{display:grid;grid-template-columns:1fr;width:100%}.bn-settings-shell .bn-input,.bn-settings-shell .bn-select,.bn-settings-shell .bn-textarea{max-width:100%;min-width:0}.bn-settings-shell .bn-code,.bn-settings-shell code{max-width:100%;overflow-wrap:anywhere;word-break:break-word}.bn-admin-user-card .bn-section-title{flex-direction:row;align-items:flex-start}.bn-otp-boxes{gap:8px;width:min(100%,310px)}.bn-otp-box{border-radius:12px;font-size:22px}}
@media(max-width:380px){.bn-settings-nav-card{padding:10px}.bn-settings-nav button{font-size:11px;padding-inline:11px}.bn-otp-boxes{gap:6px}.bn-otp-box{border-radius:10px;font-size:20px}}
.bn-field-hint{font-size:11px;font-weight:500;color:var(--bn-muted)}
.bn-secret-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;direction:ltr}
.bn-secret-wrap .bn-input{min-width:0}
.bn-secret-toggle{min-height:42px;padding:0 14px;border:1px solid var(--bn-line);border-radius:12px;background:#fff;color:var(--bn-ink);font:inherit;font-size:11px;font-weight:700;white-space:nowrap;cursor:pointer}
.bn-secret-toggle:hover{background:var(--bn-gold-soft);border-color:var(--bn-gold)}
.bn-secret-toggle:focus-visible{outline:2px solid var(--bn-gold);outline-offset:1px}
@media(max-width:520px){.bn-secret-wrap{grid-template-columns:1fr}.bn-secret-toggle{width:100%}}

/* BANUK admin completion */
.bn-select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23685b49' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:12px 7px;padding-inline-start:42px}html[dir="rtl"] .bn-select{background-position:left 14px center}html[dir="ltr"] .bn-select{background-position:right 14px center;padding-inline-start:14px;padding-inline-end:42px}.bn-notice-life{animation:bnNoticeLife 3s ease both;will-change:opacity,transform,box-shadow}@keyframes bnNoticeLife{0%{opacity:0;transform:translateY(-5px)}8%{opacity:1;transform:none}70%{opacity:1;box-shadow:none}78%{opacity:.45;box-shadow:0 0 0 2px rgba(155,112,38,.12)}84%{opacity:1}90%{opacity:.58}94%{opacity:1}100%{opacity:0;transform:translateY(-3px)}}.bn-edit-card{margin-top:16px;border-style:dashed}.bn-edit-card .bn-section-title{margin-bottom:14px}

/* Compact operational dashboard + login security */
.bn-login-captcha{display:grid;grid-template-columns:minmax(130px,.8fr) minmax(150px,1fr);gap:12px;align-items:end;padding:12px;border:1px solid var(--bn-line);border-radius:14px;background:#f8f5ef}.bn-login-captcha>div:first-child{display:grid;gap:5px}.bn-login-captcha>div:first-child span{font-size:11px;color:var(--bn-muted)}.bn-login-captcha>div:first-child strong{font-size:18px;letter-spacing:.04em}.bn-login-submit[aria-busy="true"]{opacity:.68;cursor:wait}
.bn-kpi-strip{grid-column:span 12;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.bn-kpi{background:var(--bn-surface);border:1px solid var(--bn-line);border-radius:14px;padding:12px 14px;min-height:88px;box-shadow:0 5px 18px rgba(45,36,24,.035)}.bn-kpi span{display:block;color:var(--bn-muted);font-size:11px;line-height:1.45}.bn-kpi strong{display:block;margin-top:5px;font-size:22px;line-height:1.15}.bn-kpi small{display:block;color:var(--bn-muted);font-size:9px;margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bn-kpi.is-loading strong,.bn-overview-loading{color:transparent;background:linear-gradient(90deg,#eee8de 25%,#f8f5f0 45%,#eee8de 65%);background-size:220% 100%;animation:bnShimmer 1.1s linear infinite;border-radius:7px}@keyframes bnShimmer{to{background-position:-220% 0}}
.bn-overview-sales{grid-column:span 8}.bn-overview-finance{grid-column:span 4}.bn-finance-quick{display:grid;grid-template-columns:1fr 1fr;gap:10px}.bn-finance-quick>div{padding:10px 0;border-bottom:1px solid var(--bn-line)}.bn-finance-quick span{display:block;color:var(--bn-muted);font-size:10px}.bn-finance-quick strong{display:block;margin-top:4px;font-size:15px}.bn-finance-quick>div:nth-last-child(-n+2){border-bottom:0}.bn-dashboard-secondary{padding:14px}.bn-dashboard-secondary .bn-section-title{margin-bottom:10px}.bn-dashboard-secondary .bn-section-title h2{font-size:15px}.bn-dashboard-secondary .bn-section-title p{font-size:10px}
.bn-tab-loading{min-height:180px;display:grid;place-items:center;color:var(--bn-muted)}.bn-tab-loading:before{content:"";width:28px;height:28px;border-radius:50%;border:3px solid #ece5da;border-top-color:var(--bn-gold);animation:bnSpin .75s linear infinite}@keyframes bnSpin{to{transform:rotate(360deg)}}
@media(max-width:1100px){.bn-kpi-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.bn-overview-sales,.bn-overview-finance{grid-column:span 12}}
@media(max-width:760px){.bn-login-captcha{grid-template-columns:1fr}.bn-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.bn-kpi{min-height:80px;padding:10px 11px}.bn-kpi strong{font-size:19px}.bn-finance-quick{grid-template-columns:1fr 1fr}}

/* Partner onboarding */
.bn-onboarding{margin:0 0 18px;padding:14px;border:1px solid var(--bn-line);border-radius:16px;background:#fffdf9}.bn-onboarding-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:10px}.bn-onboarding-head>div{display:grid;gap:2px}.bn-onboarding-head small{color:var(--bn-muted);font-size:11px}.bn-onboarding-head b{font-size:18px}.bn-progress{height:8px;border-radius:999px;background:#eee7dc;overflow:hidden}.bn-progress>span{display:block;height:100%;border-radius:inherit;background:currentColor;transition:width .2s ease}.bn-onboarding-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.bn-onboarding-check{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--bn-line);border-radius:12px;color:var(--bn-muted);font-size:12px}.bn-onboarding-check.is-done{color:var(--bn-ink);background:#f6f8f4}.bn-onboarding-check>span{font-size:16px}.bn-onboarding-check>strong{font-size:12px}@media(max-width:720px){.bn-onboarding-checks{grid-template-columns:1fr}}


/* BANUK visual baseline v2 — teal workspace, refined navigation, local notices */
:root{--bn-bg:#4A101C;--bn-surface:#fffdf9;--bn-ink:#132421;--bn-muted:#62736f;--bn-line:#d9e4e1;--bn-gold:#c6a15b;--bn-gold-soft:#f3ead8;--bn-shadow:0 12px 34px rgba(11,45,43,.11)}
html,body{background:var(--bn-bg)}
.bn-main{background:linear-gradient(145deg,rgba(255,255,255,.94) 0%,rgba(250,249,245,.97) 48%,rgba(244,250,248,.96) 100%);min-height:100vh}
.bn-sidebar{background:linear-gradient(180deg,#103b38 0%,#0b2d2b 100%);padding:20px 14px 18px;gap:14px;box-shadow:-8px 0 28px rgba(5,28,27,.14)}
.bn-brand{display:grid;justify-items:center;text-align:center;gap:5px;padding:8px 8px 18px;border-bottom:1px solid rgba(255,255,255,.10)}
.bn-brand-logo{width:52px;height:52px;flex:0 0 52px}.bn-brand>div{display:grid;justify-items:center}.bn-brand strong{font-size:17px;color:#f7f4ed}.bn-brand small{font-size:11px;color:#bfd0cc;margin-top:1px}
.bn-nav{gap:4px}.bn-nav button{min-height:44px;border:1px solid transparent;border-radius:12px;color:#dce9e6;padding:0 14px;font-size:14px;font-weight:550;transition:background .16s ease,color .16s ease,border-color .16s ease,transform .16s ease}
.bn-nav button:hover{background:rgba(42,161,147,.16);color:#fff;transform:translateX(-2px)}
.bn-nav button.is-active{background:linear-gradient(90deg,rgba(42,161,147,.14),rgba(42,161,147,.28));border-color:rgba(198,161,91,.58);color:#fff;box-shadow:inset -3px 0 0 #c6a15b,0 5px 15px rgba(0,0,0,.11)}
.bn-sidebar-foot{text-align:center;color:rgba(255,255,255,.42);font-size:10px;padding:12px 8px 2px}
.bn-mobile-drawer{background:linear-gradient(180deg,#103b38 0%,#0b2d2b 100%)}
.bn-mobile-drawer-nav button:hover,.bn-mobile-drawer-nav button.is-active{background:rgba(42,161,147,.18)}.bn-mobile-drawer-nav button.is-active{box-shadow:inset -3px 0 0 #c6a15b}
html[dir="ltr"] .bn-nav button.is-active,html[dir="ltr"] .bn-mobile-drawer-nav button.is-active{box-shadow:inset 3px 0 0 #c6a15b}
@media(prefers-reduced-motion:reduce){.bn-nav button{transition:none}.bn-nav button:hover{transform:none}}

/* Five-second scoped notices */
.bn-notice{min-height:42px;padding:10px 14px;border-radius:11px;font-size:12.5px;margin:0 0 12px}
.bn-notice-error{background:rgba(192,67,67,.10);border:1px solid rgba(192,67,67,.38);color:#a83232}
.bn-notice-success{background:rgba(42,161,147,.12);border:1px solid rgba(42,161,147,.42);color:#17665e}
.bn-notice-warning{background:rgba(198,161,91,.14);border:1px solid rgba(198,161,91,.55);color:#84631e}
.bn-notice-info{background:rgba(51,117,152,.10);border:1px solid rgba(51,117,152,.35);color:#275f7c}
.bn-notice-life{animation:bnNoticeLife5 5s ease both;will-change:opacity,transform,box-shadow}
@keyframes bnNoticeLife5{0%{opacity:0;transform:translateY(-4px)}4%{opacity:1;transform:none}57%{opacity:1}62%{opacity:.78;box-shadow:0 0 0 2px rgba(42,161,147,.10)}68%{opacity:1;box-shadow:none}78%{opacity:1}100%{opacity:0;transform:translateY(-3px)}}
@media(prefers-reduced-motion:reduce){.bn-notice-life{animation:bnNoticeReduced 5s linear both}@keyframes bnNoticeReduced{0%,92%{opacity:1}100%{opacity:0}}}

/* Compact internal-admin management */
.bn-admin-manager{padding:16px}.bn-admin-manager>.bn-section-title{margin-bottom:10px}.bn-admin-manager>.bn-section-title h2{font-size:17px}.bn-admin-manager>.bn-section-title p{font-size:11px}
.bn-admin-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}.bn-admin-summary>div{border:1px solid var(--bn-line);border-radius:12px;background:#f8fbfa;padding:9px 11px;min-height:62px}.bn-admin-summary span{display:block;color:var(--bn-muted);font-size:10px}.bn-admin-summary strong{display:block;font-size:19px;margin-top:3px}
.bn-admin-toolbar{display:grid;grid-template-columns:minmax(240px,2fr) minmax(150px,.8fr) minmax(170px,1fr);gap:8px;align-items:end;margin-bottom:12px}.bn-admin-toolbar .bn-field{gap:4px}.bn-admin-toolbar .bn-input,.bn-admin-toolbar .bn-select{min-height:38px;padding-block:7px}.bn-admin-toolbar label{font-size:10px}
.bn-admin-table-wrap{border-radius:12px}.bn-admin-table{min-width:760px}.bn-admin-table th,.bn-admin-table td{padding:9px 11px;font-size:12px}.bn-admin-person{display:flex;align-items:center;gap:9px;min-width:170px}.bn-admin-person>div{display:grid;gap:1px}.bn-admin-person small{font-size:10px}.bn-admin-avatar{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(145deg,rgba(42,161,147,.18),rgba(16,59,56,.10));border:1px solid rgba(42,161,147,.22);font-weight:800;color:#17665e}.bn-admin-profile{min-height:28px;font-size:10px;background:#f7f3ec}.bn-admin-cap-count{display:inline-grid;place-items:center;min-width:34px;height:28px;border-radius:9px;background:#eef6f4;color:#17665e;font-weight:800}.bn-admin-row-actions .bn-btn{min-height:34px;padding-inline:12px;font-size:11px}
.bn-admin-drawer-overlay{position:fixed;inset:0;z-index:86;background:rgba(7,24,23,.42);display:flex;justify-content:flex-start;backdrop-filter:blur(3px);animation:bnDrawerFade .16s ease both}.bn-admin-drawer{width:min(560px,94vw);height:100%;overflow:auto;background:#fffdfa;box-shadow:22px 0 65px rgba(0,0,0,.20);padding:22px;animation:bnDrawerIn .2s ease both}.bn-admin-drawer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--bn-line)}.bn-admin-drawer-head h2{margin:0;font-size:20px}.bn-admin-drawer-head p{margin:4px 0 0;color:var(--bn-muted);font-size:11px}.bn-admin-drawer-close{width:38px;height:38px;border:1px solid var(--bn-line);border-radius:11px;background:#fff;color:var(--bn-ink);font-size:24px;cursor:pointer}.bn-admin-drawer-form .bn-input,.bn-admin-drawer-form .bn-select{min-height:40px}.bn-admin-cap-summary{display:grid;grid-template-columns:auto auto 1fr;gap:8px 12px;align-items:center;padding:10px 12px;border:1px solid var(--bn-line);border-radius:12px;background:#f8fbfa}.bn-admin-cap-summary span,.bn-admin-cap-summary small{color:var(--bn-muted);font-size:10px}.bn-admin-cap-summary strong{font-size:18px}
@keyframes bnDrawerFade{from{opacity:0}to{opacity:1}}@keyframes bnDrawerIn{from{transform:translateX(-18px);opacity:.7}to{transform:none;opacity:1}}
@media(max-width:860px){.bn-admin-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.bn-admin-toolbar{grid-template-columns:1fr 1fr}.bn-admin-search{grid-column:1/-1}}
@media(max-width:560px){.bn-admin-manager{padding:12px}.bn-admin-summary{grid-template-columns:1fr 1fr}.bn-admin-toolbar{grid-template-columns:1fr}.bn-admin-search{grid-column:auto}.bn-admin-drawer{width:100vw;padding:16px}.bn-admin-drawer-form{grid-template-columns:1fr}.bn-admin-drawer-form .bn-span-2{grid-column:span 1}.bn-admin-cap-summary{grid-template-columns:auto auto}.bn-admin-cap-summary small{grid-column:1/-1}}


/* Finance & apparel operating expenses */
.bn-col-5{grid-column:span 5}.bn-col-7{grid-column:span 7}
.bn-finance-expenses{padding:16px}.bn-finance-expenses>.bn-section-title{margin-bottom:10px}.bn-finance-filter{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:8px}.bn-finance-filter .bn-field{gap:4px}.bn-finance-filter label{font-size:10px}.bn-finance-filter .bn-select{min-height:38px;padding-block:7px}
.bn-expense-breakdown{display:grid;gap:11px}.bn-expense-bar{display:grid;grid-template-columns:minmax(120px,.95fr) minmax(100px,1.5fr) auto;gap:10px;align-items:center}.bn-expense-bar>div:first-child{display:grid;gap:2px}.bn-expense-bar strong{font-size:11px}.bn-expense-bar small{font-size:9px;color:var(--bn-muted)}.bn-expense-bar>b{font-size:10px;white-space:nowrap}.bn-expense-track{height:8px;border-radius:999px;background:#edf2f0;overflow:hidden}.bn-expense-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2aa193,#17665e)}
.bn-expense-table{min-width:980px}.bn-expense-table th,.bn-expense-table td{padding:9px 10px;font-size:11px}.bn-expense-table td strong{font-size:11px}.bn-expense-table td small{font-size:9px}.bn-expense-table .bn-btn{min-height:32px;padding-inline:9px;font-size:10px}
.bn-expense-drawer .bn-textarea{min-height:100px}.bn-expense-drawer .bn-field label{font-size:10px}.bn-expense-drawer .bn-input,.bn-expense-drawer .bn-select{font-size:12px}
@media(max-width:1100px){.bn-col-5,.bn-col-7{grid-column:span 12}.bn-finance-filter{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:760px){.bn-col-5,.bn-col-7{grid-column:span 12}.bn-finance-filter{grid-template-columns:1fr}.bn-expense-bar{grid-template-columns:1fr}.bn-expense-bar>b{text-align:start}}

/* Finance management analytics */
.bn-finance-mini-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.bn-finance-mini-kpis>div{padding:12px 14px;border:1px solid var(--bn-line);border-radius:14px;background:#fbfaf7}.bn-finance-mini-kpis span{display:block;color:var(--bn-muted);font-size:10px}.bn-finance-mini-kpis strong{display:block;margin-top:5px;font-size:16px}.bn-finance-rank{display:grid;gap:10px}.bn-finance-rank-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(120px,1.5fr) auto;gap:10px;align-items:center}.bn-finance-rank-row>div:first-child{display:grid;gap:2px}.bn-finance-rank-row strong{font-size:11px}.bn-finance-rank-row small{font-size:9px;color:var(--bn-muted)}.bn-finance-rank-row>b{font-size:10px;white-space:nowrap}.bn-expense-daily{height:180px;display:flex;align-items:stretch;gap:4px;padding:10px 0 0;border-bottom:1px solid var(--bn-line);overflow:hidden}.bn-expense-day{flex:1;min-width:7px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px}.bn-expense-day span{width:100%;min-height:4px;border-radius:6px 6px 2px 2px;background:linear-gradient(180deg,#2aa193,#17665e);transition:height .18s ease}.bn-expense-day small{font-size:8px;color:var(--bn-muted);writing-mode:vertical-rl;transform:rotate(180deg);max-height:38px;overflow:hidden}
@media(max-width:1000px){.bn-finance-mini-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.bn-finance-rank-row{grid-template-columns:minmax(110px,1fr) minmax(90px,1fr) auto}}
@media(max-width:760px){.bn-finance-mini-kpis{grid-template-columns:1fr 1fr}.bn-finance-rank-row{grid-template-columns:1fr}.bn-finance-rank-row>b{text-align:start}.bn-expense-daily{height:150px;gap:3px}.bn-expense-day small{display:none}}


/* Protected finance receipts */
.bn-expense-receipts{padding:12px;border:1px solid var(--bn-line);border-radius:14px;background:#fbfaf7}.bn-expense-receipts .bn-section-title{margin-bottom:10px}.bn-expense-receipts .bn-section-title h3{margin:0;font-size:13px}.bn-expense-receipt-upload{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.bn-expense-receipt-list{display:grid;gap:8px;margin-top:10px}.bn-expense-receipt-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;border:1px solid var(--bn-line);border-radius:11px;background:#fff}.bn-expense-receipt-row>div{display:grid;gap:2px;min-width:0}.bn-expense-receipt-row strong{font-size:11px}.bn-expense-receipt-row small{font-size:9px;color:var(--bn-muted);overflow-wrap:anywhere}.bn-expense-receipt-empty{padding:10px;margin-top:8px}.bn-expense-receipts .bn-notice{margin:0 0 10px}
@media(max-width:760px){.bn-expense-receipt-upload{grid-template-columns:1fr}.bn-expense-receipt-upload .bn-btn{width:100%}.bn-expense-receipt-row{align-items:flex-start;flex-direction:column}.bn-expense-receipt-row .bn-btn{width:100%}}



/* BANUK single post-login entrance + compact brand lockup */
.bn-initial-blank{min-height:100vh;background:linear-gradient(145deg,#ffffff 0%,#faf9f5 48%,#f4faf8 100%)}
.bn-brand{display:grid!important;justify-items:center!important;text-align:center!important;gap:10px!important;padding:10px 8px 20px!important}
.bn-brand-logo{width:82px!important;height:82px!important;flex:0 0 82px!important;object-fit:contain!important}
.bn-brand-title{display:block!important;color:#f7f4ed!important;font-size:15px!important;font-weight:800!important;line-height:1.35!important;white-space:nowrap!important;letter-spacing:-.01em!important}
.bn-mobile-drawer .bn-brand-logo{width:72px!important;height:72px!important;flex-basis:72px!important}
.bn-mobile-drawer .bn-brand-title{font-size:14px!important}
@media(max-width:760px){
  .bn-brand-logo{width:74px!important;height:74px!important;flex-basis:74px!important}
  .bn-brand-title{font-size:14px!important}
}


/* BANUK sidebar logo proportion fix */
.bn-sidebar .bn-brand-logo{
  width:106px!important;
  height:auto!important;
  max-height:106px!important;
  aspect-ratio:auto!important;
  flex:0 0 auto!important;
  object-fit:contain!important;
  object-position:center!important;
}
.bn-sidebar .bn-brand{
  gap:12px!important;
}
.bn-mobile-drawer .bn-brand-logo{
  width:94px!important;
  height:auto!important;
  max-height:94px!important;
  aspect-ratio:auto!important;
  flex:0 0 auto!important;
  object-fit:contain!important;
}
@media(max-width:760px){
  .bn-sidebar .bn-brand-logo{
    width:96px!important;
    height:auto!important;
    max-height:96px!important;
  }
}
.bn-edit-separator{grid-column:1/-1;width:100%;border:0;border-top:1px solid var(--bn-line);margin:16px 0}

/* BANUK authentication — Official Visual Design System */
.bn-login-body,.bn-login-body *,.bn-login-body button,.bn-login-body input,.bn-login-body select,.bn-login-body textarea,.bn-login-body a{font-family:var(--bn-font-family)!important;font-synthesis:none}
.bn-login-body{position:relative;isolation:isolate;color:var(--banuk-black);background:radial-gradient(ellipse 50% 60% at 44% 43%,rgba(246,241,233,.58) 0%,rgba(243,230,233,.48) 16%,rgba(214,164,175,.38) 31%,rgba(151,76,92,.28) 47%,rgba(94,29,43,.20) 60%,transparent 72%),linear-gradient(135deg,var(--banuk-burgundy-active) 0%,var(--banuk-burgundy) 46%,var(--banuk-burgundy-hover) 72%,#22060B 100%);background-color:var(--banuk-burgundy);background-attachment:fixed}
.bn-login-body::before{content:"";position:fixed;z-index:-2;inset:-8%;pointer-events:none;background:radial-gradient(ellipse 30% 38% at 43% 40%,rgba(216,199,167,.16) 0%,rgba(243,230,233,.12) 28%,transparent 68%);filter:blur(22px)}
.bn-login-body::after{content:"";position:fixed;z-index:-1;inset:0;pointer-events:none;background:linear-gradient(120deg,rgba(182,154,106,.035),transparent 24%,transparent 68%,rgba(24,20,21,.13)),radial-gradient(ellipse at 54% 52%,transparent 38%,rgba(43,8,15,.22) 100%)}
.bn-login-shell{position:relative;z-index:1}
.bn-login-card{width:min(520px,calc(100vw - 32px));box-sizing:border-box;background:var(--banuk-warm-white);border:1px solid rgba(229,221,212,.92);border-radius:22px;box-shadow:0 18px 52px rgba(24,20,21,.16);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.bn-login-toolbar .bn-chip{background:var(--banuk-warm-white);border-color:var(--banuk-border);color:var(--banuk-charcoal)}
.bn-login-toolbar .bn-chip:hover{border-color:var(--banuk-burgundy);color:var(--banuk-burgundy)}
.bn-login-card>.bn-kicker{color:var(--banuk-champagne);font-size:12px;font-weight:700;line-height:1.7}
.bn-login-card h1{color:var(--banuk-black);font-size:27px;font-weight:700;line-height:1.55;letter-spacing:0}
.bn-login-lead{color:var(--banuk-muted);font-size:13px;font-weight:400;line-height:1.9}
.bn-login-tabs{direction:inherit;background:var(--banuk-ivory);border-color:var(--banuk-border);border-radius:14px;gap:4px;padding:4px}
.bn-login-tabs a{color:var(--banuk-muted);font-size:13px;font-weight:600;line-height:1.55;transition:background 180ms ease,color 180ms ease,border-color 180ms ease,box-shadow 180ms ease}
.bn-login-tabs a:hover{color:var(--banuk-burgundy)}
.bn-login-tabs a.is-active{background:#fff;color:var(--banuk-burgundy);box-shadow:0 2px 9px rgba(24,20,21,.055),inset 0 -2px 0 rgba(74,16,28,.72)}
.bn-login-form .bn-field>span,.bn-login-form .bn-field>label{color:var(--banuk-charcoal);font-size:12px;font-weight:500;line-height:1.7}
.bn-login-body .bn-input,.bn-login-body input[type="text"],.bn-login-body input[type="password"],.bn-login-body input[type="email"],.bn-login-body input[type="tel"]{background:#fff;border-color:var(--banuk-input-border);color:var(--banuk-black);font-size:14px;font-weight:400;line-height:1.5}
.bn-login-body .bn-input::placeholder{color:var(--banuk-placeholder)}
.bn-login-body .bn-input:focus,.bn-login-body input[type="text"]:focus,.bn-login-body input[type="password"]:focus,.bn-login-body input[type="email"]:focus,.bn-login-body input[type="tel"]:focus{border-color:var(--banuk-burgundy);box-shadow:0 0 0 3px rgba(74,16,28,.10)}
.bn-login-body .bn-btn-primary,.bn-login-submit{background:var(--banuk-burgundy);border-color:var(--banuk-burgundy);color:var(--banuk-warm-white);font-size:14px;font-weight:700;letter-spacing:0;transition:background 180ms ease,border-color 180ms ease,transform 180ms ease}
.bn-login-body .bn-btn-primary:hover,.bn-login-submit:hover{background:var(--banuk-burgundy-hover);border-color:var(--banuk-burgundy-hover)}
.bn-login-body .bn-btn-primary:active,.bn-login-submit:active{background:var(--banuk-burgundy-active);border-color:var(--banuk-burgundy-active)}
.bn-login-body .bn-btn-primary:focus-visible,.bn-login-submit:focus-visible{outline:2px solid var(--banuk-burgundy);outline-offset:2px;box-shadow:0 0 0 4px rgba(74,16,28,.10)}
.bn-password-toggle{color:var(--banuk-burgundy);font-size:11px;font-weight:700}
.bn-password-toggle:hover{background:var(--banuk-burgundy-soft)}
.bn-password-toggle:focus-visible{outline:2px solid var(--banuk-burgundy);outline-offset:1px}
.bn-login-remember,.bn-login-provider-note,.bn-login-foot,.bn-login-secondary{color:var(--banuk-muted);font-weight:400}
.bn-login-secondary{color:var(--banuk-burgundy);text-decoration:none}.bn-login-secondary:hover{color:var(--banuk-burgundy-hover)}
.bn-login-foot{border-top-color:var(--banuk-border)}.bn-login-captcha{background:var(--banuk-ivory);border-color:var(--banuk-border)}
.bn-otp-box{font-family:var(--bn-font-family);border-color:var(--banuk-input-border);color:var(--banuk-black);caret-color:var(--banuk-burgundy)}
.bn-otp-box:focus{border-color:var(--banuk-burgundy);box-shadow:0 0 0 3px rgba(74,16,28,.10);transform:translateY(-1px)}
.bn-otp-box.is-filled{border-color:var(--banuk-champagne)}
@keyframes bnOtpCheck{0%,100%{transform:translateY(0);border-color:var(--banuk-champagne)}45%{transform:translateY(-4px) scale(1.025);border-color:var(--banuk-burgundy);box-shadow:0 6px 16px rgba(74,16,28,.11)}}

.bn-login-notice-slot{min-height:52px;display:flex;align-items:stretch;margin:0}
.bn-login-notice-slot:empty::before{content:"";display:block;width:100%;height:52px}
.bn-login-notice-slot .bn-notice-life{width:100%;box-sizing:border-box;align-self:center}
.bn-login-card .bn-notice-life{margin:0;animation:bnLoginNoticeIn 180ms ease both;transition:opacity 220ms ease,transform 220ms ease}
.bn-login-card .bn-notice-life.is-leaving{opacity:0;transform:translateY(-3px)}
.bn-login-card .bn-notice-error{background:#F8ECEE;border-color:#E8CDD3;color:#7A2433}.bn-login-card .bn-notice-success{background:#EEF4EF;border-color:#D7E5DA;color:#2E5A39}
@keyframes bnLoginNoticeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(max-width:520px){.bn-login-card{border-radius:18px}.bn-login-card h1{font-size:23px;line-height:1.6}.bn-login-lead{font-size:12.5px}.bn-login-tabs a{font-size:12px}}
@media(prefers-reduced-motion:reduce){.bn-login-body *{scroll-behavior:auto!important}.bn-login-card .bn-notice-life,.bn-login-tabs a,.bn-login-submit,.bn-password-toggle,.bn-otp-box{animation:none!important;transition:none!important;transform:none!important}}

/* BANUK authentication refinement rc.26 */
.bn-login-card{
  position:relative;
  z-index:0;
  min-height:650px;
  overflow:visible;
}
.bn-login-card::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:-22px;
  border-radius:34px;
  pointer-events:none;
  background:
    radial-gradient(ellipse 72% 58% at 48% 42%,
      rgba(246,241,233,.34) 0%,
      rgba(243,230,233,.22) 34%,
      rgba(216,199,167,.10) 53%,
      rgba(74,16,28,.08) 67%,
      transparent 78%);
  filter:blur(20px);
  opacity:.92;
}
.bn-login-logo{
  width:140px;
  max-height:176px;
  margin:8px auto 12px;
}
.bn-login-card>.bn-kicker{
  font-size:14px;
  font-weight:700;
  line-height:1.75;
  margin-top:1px;
}
.bn-login-tabs{
  margin-bottom:8px;
}
.bn-login-notice-slot{
  min-height:10px;
  height:10px;
  position:relative;
  overflow:visible;
  margin:0;
}
.bn-login-notice-slot:empty::before{
  height:10px;
}
.bn-login-notice-slot .bn-notice-life{
  position:absolute;
  z-index:6;
  inset-inline:0;
  top:2px;
  box-shadow:0 10px 28px rgba(24,20,21,.10);
}
.bn-login-form{
  gap:11px;
}
.bn-login-form .bn-field>span,
.bn-login-form .bn-field>label{
  font-size:14px;
  font-weight:600;
  line-height:1.7;
  margin-bottom:3px;
}
.bn-login-form .bn-field{
  gap:5px;
}
@media(max-width:520px){
  .bn-login-card{min-height:620px}
  .bn-login-card::before{inset:-14px;border-radius:28px;filter:blur(16px)}
  .bn-login-logo{width:118px;max-height:148px;margin:6px auto 10px}
  .bn-login-card>.bn-kicker{font-size:13px}
  .bn-login-form .bn-field>span,
  .bn-login-form .bn-field>label{font-size:13px}
}

/* BANUK legal documents + sign-in clickwrap */
.bn-login-consent{display:flex;align-items:flex-start;gap:9px;padding:11px 12px;border:1px solid var(--bn-line);border-radius:13px;background:rgba(255,255,255,.72);color:var(--bn-muted);font-size:11px;line-height:1.85;cursor:pointer}
.bn-login-consent input{margin-top:4px;accent-color:var(--bn-gold);flex:0 0 auto}
.bn-login-consent a,.bn-login-legal-note a,.bn-legal-card a{color:var(--bn-gold);text-decoration:none;font-weight:700}
.bn-login-consent a:hover,.bn-login-legal-note a:hover,.bn-legal-card a:hover{text-decoration:underline}
.bn-login-legal-note{text-align:center;color:var(--bn-muted);font-size:10.5px;line-height:1.9;margin:15px 4px 0}
.bn-login-legal-note+.bn-login-foot{margin-top:10px}
.bn-legal-shell{min-height:100vh;padding:34px 16px;display:grid;place-items:start center}
.bn-legal-card{width:min(920px,100%);background:rgba(255,255,255,.94);border:1px solid var(--bn-line);border-radius:24px;box-shadow:0 24px 70px rgba(23,37,33,.12);padding:30px 34px;color:var(--bn-ink)}
.bn-legal-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-bottom:18px;margin-bottom:24px;border-bottom:1px solid var(--bn-line)}
.bn-legal-brand{display:flex;align-items:center;gap:10px;color:var(--bn-ink)!important;font-weight:800!important}
.bn-legal-brand img{width:62px;height:62px;object-fit:contain}
.bn-legal-card>.bn-kicker{margin-bottom:6px}
.bn-legal-card h1{font-size:30px;line-height:1.4;margin:0 0 8px}
.bn-legal-meta{margin:0 0 20px;color:var(--bn-muted);font-size:11px}
.bn-legal-intro{font-size:14px;line-height:2.05;margin:0 0 28px;padding:16px 18px;border:1px solid var(--bn-line);border-radius:15px;background:#fbfaf7}
.bn-legal-section{padding:20px 0;border-top:1px solid var(--bn-line)}
.bn-legal-section h2,.bn-legal-contact h2{font-size:17px;line-height:1.7;margin:0 0 8px}
.bn-legal-section p,.bn-legal-contact p{margin:0;color:#465752;font-size:13px;line-height:2.05}
.bn-legal-section ul{margin:10px 0 0;padding-inline-start:22px;color:#465752;font-size:13px;line-height:2}
.bn-legal-section li+li{margin-top:5px}
.bn-legal-contact{margin-top:18px;padding:18px;border:1px solid var(--bn-line);border-radius:15px;background:#f7f9f8}
.bn-legal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:9px;padding-top:22px;margin-top:24px;border-top:1px solid var(--bn-line);font-size:12px}
@media(max-width:620px){.bn-legal-shell{padding:14px}.bn-legal-card{padding:20px 16px;border-radius:20px}.bn-legal-header{align-items:flex-start}.bn-legal-brand img{width:48px;height:48px}.bn-legal-card h1{font-size:23px}.bn-legal-intro,.bn-legal-section p,.bn-legal-contact p,.bn-legal-section ul{font-size:12px}.bn-login-consent{font-size:10.5px}}

/* BANUK premium Iranian mobile input */
.bn-phone-field{gap:8px}
.bn-phone-shell{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;min-height:58px;border:1px solid var(--bn-line);border-radius:15px;background:linear-gradient(180deg,#fff,#fbfaf7);box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 4px 14px rgba(39,31,20,.035);overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.bn-phone-shell:focus-within{border-color:rgba(198,161,91,.82);box-shadow:0 0 0 3px rgba(198,161,91,.12),0 7px 20px rgba(39,31,20,.055);transform:translateY(-1px)}
.bn-phone-country{align-self:stretch;min-width:78px;display:flex;align-items:center;justify-content:center;gap:7px;padding:0 14px;border-inline-end:1px solid var(--bn-line);background:linear-gradient(180deg,#f8f3ea,#f3ecdf);color:var(--bn-ink);user-select:none}
.bn-phone-country small{display:grid;place-items:center;width:25px;height:25px;border-radius:8px;background:#fff;border:1px solid var(--bn-line);font-size:9px;font-weight:800;letter-spacing:.06em;color:var(--bn-muted)}
.bn-phone-country b{font-size:13px;letter-spacing:.03em}
.bn-phone-input{width:100%;min-width:0;min-height:56px;border:0!important;outline:0!important;background:transparent!important;box-shadow:none!important;padding:0 16px;font:inherit;font-size:18px;font-weight:650;letter-spacing:.08em;text-align:center;color:var(--bn-ink);direction:ltr}
.bn-phone-input::placeholder{color:#b9b2a7;font-weight:500;letter-spacing:.06em}
.bn-phone-hint{display:block;color:var(--bn-muted);font-size:10px;line-height:1.8;margin-top:-1px}
.bn-phone-error{display:none;color:#a83232;font-size:11px;line-height:1.75}
.is-phone-error .bn-phone-shell{border-color:rgba(192,67,67,.62);box-shadow:0 0 0 3px rgba(192,67,67,.09)}
.is-phone-error .bn-phone-error{display:block}
.bn-phone-confirm{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;min-height:56px;border:1px solid var(--bn-line);border-radius:15px;background:linear-gradient(180deg,#fff,#f7faf8);overflow:hidden}
.bn-phone-confirm>strong{text-align:center;font-size:18px;letter-spacing:.08em;color:var(--bn-ink);padding:0 12px}
.bn-phone-ok{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;margin-inline-end:12px;background:rgba(42,161,147,.12);color:#17665e;font-size:14px;font-weight:900}
.bn-login-legal-note{display:grid;gap:5px;text-align:center;color:var(--bn-muted);font-size:10.5px;line-height:1.9;margin:16px 2px 0;padding:12px 10px 0;border-top:1px solid var(--bn-line)}
.bn-login-legal-note p{margin:0}
.bn-login-legal-note a{color:var(--bn-gold);text-decoration:none;font-weight:700}
.bn-login-legal-note a:hover{text-decoration:underline}
.bn-login-legal-note+.bn-login-foot{margin-top:10px;border-top:0;padding-top:0}
@media(max-width:520px){.bn-phone-country{min-width:70px;padding-inline:10px}.bn-phone-input,.bn-phone-confirm>strong{font-size:16px}.bn-phone-hint{font-size:9.5px}.bn-login-legal-note{font-size:10px}}

/* BANUK login polish: fast mode switch, compact legal footer, standard logo scale */
.bn-login-logo{width:168px;max-height:210px;margin:6px auto 12px}
.bn-login-tabs button{appearance:none;border:0;background:transparent;min-height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--banuk-muted);font:inherit;font-size:13px;font-weight:600;line-height:1.55;padding:4px 8px;text-align:center;cursor:pointer;transition:background 70ms ease,color 70ms ease,box-shadow 70ms ease,transform 70ms ease}
.bn-login-tabs button:hover{color:var(--banuk-burgundy)}
.bn-login-tabs button:active{transform:scale(.992)}
.bn-login-tabs button.is-active{background:#fff;color:var(--banuk-burgundy);box-shadow:0 2px 9px rgba(24,20,21,.055),inset 0 -2px 0 rgba(74,16,28,.72)}
.bn-login-panel[hidden]{display:none!important}
.bn-login-panel:not([hidden]){animation:bnLoginPanelIn 80ms ease-out both}
@keyframes bnLoginPanelIn{from{opacity:.55;transform:translateY(1px)}to{opacity:1;transform:none}}
.bn-login-legal-note{margin-top:16px;padding-top:12px}
.bn-phone-country[data-country-selector]{cursor:default}
@media(max-width:520px){.bn-login-card{min-height:auto}.bn-login-logo{width:142px;max-height:178px;margin:6px auto 10px}.bn-login-tabs button{font-size:12px;transition-duration:60ms}}
@media(prefers-reduced-motion:reduce){.bn-login-tabs button,.bn-login-panel:not([hidden]){animation:none!important;transition:none!important;transform:none!important}}


/* Fast dashboard paint: defer below-the-fold secondary cards without changing layout semantics. */
.bn-dashboard-secondary{content-visibility:auto;contain-intrinsic-size:auto 320px}

/* BANUK responsive system v3 — mobile-first header, branded CTAs, burgundy system chrome */
html,body{background:#4A101C;background:var(--banuk-burgundy)}
.bn-main{background:linear-gradient(145deg,rgba(255,255,255,.96) 0%,rgba(250,249,245,.985) 48%,rgba(244,250,248,.975) 100%)}

/* Unified action language */
.bn-btn{border:1px solid transparent;border-radius:12px;min-height:40px;padding:0 14px;font-size:12px;font-weight:750;line-height:1.35;white-space:nowrap;box-shadow:none;transition:background .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease,transform .08s ease}
.bn-btn:active{transform:translateY(1px)}
.bn-btn-primary{background:var(--banuk-burgundy);border-color:var(--banuk-burgundy);color:#fff;box-shadow:0 5px 14px rgba(74,16,28,.14)}
.bn-btn-primary:hover{background:var(--banuk-burgundy-hover);border-color:var(--banuk-burgundy-hover);color:#fff}
.bn-btn-primary:focus-visible{outline:2px solid var(--banuk-burgundy);outline-offset:2px;box-shadow:0 0 0 4px rgba(74,16,28,.10)}
.bn-btn-soft{background:var(--banuk-ivory);border-color:var(--banuk-border);color:var(--banuk-burgundy)}
.bn-btn-soft:hover{background:var(--banuk-burgundy-soft);border-color:#d9bcc2;color:var(--banuk-burgundy-hover)}
.bn-btn-ghost{background:#fff;border-color:var(--bn-line);color:var(--bn-ink)}
.bn-btn-ghost:hover{border-color:#c9bdb2;background:#fcfaf7}
.bn-section-title>div:first-child{min-width:0;flex:1}
.bn-section-title>.bn-btn{flex:0 0 auto}
.bn-section-title>.bn-actions{flex:0 0 auto}
.bn-section-title>.bn-actions .bn-btn{min-height:38px}

/* Responsive data tables can opt into stacked cards */
@media(max-width:760px){
  .bn-main{padding:14px 12px 30px;overflow-x:hidden}
  .bn-topbar{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:16px;align-items:stretch}
  .bn-topbar-title{width:100%;display:flex;align-items:center;gap:11px;min-width:0}
  .bn-topbar-title>div{flex:1;min-width:0}
  .bn-topbar-title .bn-kicker{margin:0 0 2px;font-size:11px;line-height:1.4}
  .bn-topbar h1{margin:0;font-size:clamp(19px,5.4vw,23px);line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .bn-mobile-menu-toggle{width:46px;height:46px;flex:0 0 46px;border-radius:13px;box-shadow:0 3px 12px rgba(24,20,21,.05)}
  .bn-topbar-meta{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:7px;width:100%;min-width:0;overflow:visible}
  .bn-topbar-meta .bn-context-chip{display:none}
  .bn-topbar-meta .bn-chip{min-height:36px;padding:0 10px;font-size:11.5px;justify-content:center;min-width:0}
  .bn-user-chip{max-width:none!important;overflow:hidden;justify-content:flex-start!important}
  .bn-user-chip span{flex:0 0 auto}
  .bn-user-chip b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .bn-language-switch{min-width:74px}
  .bn-context-row{gap:10px;margin-bottom:14px}
  .bn-context-row .bn-select{min-height:48px;border-radius:13px;font-size:14px}
  .bn-context-row .bn-field label{font-size:11px}
  .bn-section-title{align-items:flex-start;gap:10px}
  .bn-section-title h2{font-size:18px;line-height:1.45}
  .bn-section-title p{font-size:11.5px;line-height:1.75;margin-top:4px}
  .bn-section-title>.bn-btn{min-height:40px;padding-inline:13px;font-size:11.5px;max-width:46%}
  .bn-section-title>.bn-actions{max-width:52%;justify-content:flex-end;gap:6px}
  .bn-section-title>.bn-actions .bn-btn{min-height:38px;padding-inline:10px;font-size:10.5px}
  .bn-toolbar{gap:8px;margin-bottom:14px}
  .bn-toolbar .bn-btn{min-height:42px}
  .bn-card{border-radius:17px;padding:15px}
  .bn-table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;scrollbar-width:thin;scrollbar-color:#c9bdb2 transparent}
  .bn-table-wrap::-webkit-scrollbar{height:5px}.bn-table-wrap::-webkit-scrollbar-thumb{background:#c9bdb2;border-radius:999px}
  .bn-responsive-table{min-width:0!important;background:transparent}
  .bn-responsive-table thead{display:none}
  .bn-responsive-table,.bn-responsive-table tbody{display:block;width:100%}
  .bn-responsive-table tr{display:block;width:100%;padding:5px 12px;margin:0 0 10px;border:1px solid var(--bn-line);border-radius:14px;background:#fff;box-shadow:0 3px 12px rgba(24,20,21,.035)}
  .bn-responsive-table tr:last-child{margin-bottom:0}
  .bn-responsive-table td{display:grid;grid-template-columns:minmax(88px,34%) minmax(0,1fr);gap:10px;align-items:center;width:100%;padding:9px 0;border:0;border-bottom:1px solid #eee8e1;font-size:12px;min-width:0}
  .bn-responsive-table td:last-child{border-bottom:0}
  .bn-responsive-table td::before{content:attr(data-label);color:var(--bn-muted);font-size:10.5px;font-weight:650}
  .bn-responsive-table td>*{min-width:0}
  .bn-responsive-table .bn-code{overflow-wrap:anywhere;word-break:break-word;font-size:9.5px}
  .bn-responsive-table .bn-actions{justify-content:flex-start}
}
@media(max-width:390px){
  .bn-main{padding-inline:10px}
  .bn-topbar-meta{grid-template-columns:minmax(0,1fr) auto auto;gap:6px}
  .bn-topbar-meta .bn-chip{padding-inline:8px;font-size:11px}
  .bn-language-switch{min-width:68px}
  .bn-section-title{gap:8px}
  .bn-section-title>.bn-btn{font-size:11px;padding-inline:11px;max-width:48%}
  .bn-section-title>.bn-actions{max-width:54%}
}

@media(max-width:760px){
  .bn-section-title>.bn-btn{max-width:none}
  .bn-section-title>.bn-actions{max-width:none}
  .bn-partner-table td:nth-child(1)::before{content:"همکار"}.bn-partner-table td:nth-child(2)::before{content:"وضعیت"}.bn-partner-table td:nth-child(3)::before{content:"مدل همکاری"}.bn-partner-table td:nth-child(4)::before{content:"محدوده"}.bn-partner-table td:nth-child(5)::before{content:"عملیات"}
  .bn-store-table td:nth-child(1)::before{content:"فروشگاه"}.bn-store-table td:nth-child(2)::before{content:"وضعیت"}.bn-store-table td:nth-child(3)::before{content:"منطقه زمانی"}.bn-store-table td:nth-child(4)::before{content:"مرز روز کاری"}.bn-store-table td:nth-child(5)::before{content:"درصد اختصاصی"}.bn-store-table td:nth-child(6)::before{content:"عملیات"}
  .bn-team-table td:nth-child(1)::before{content:"عضو"}.bn-team-table td:nth-child(2)::before{content:"نقش"}.bn-team-table td:nth-child(3)::before{content:"وضعیت"}.bn-team-table td:nth-child(4)::before{content:"محدوده"}.bn-team-table td:nth-child(5)::before{content:"قابلیت‌ها"}.bn-team-table td:nth-child(6)::before{content:"عملیات"}
  .bn-audit-table td:nth-child(1)::before{content:"رویداد"}.bn-audit-table td:nth-child(2)::before{content:"دلیل"}.bn-audit-table td:nth-child(3)::before{content:"عامل"}.bn-audit-table td:nth-child(4)::before{content:"زمان"}
  .bn-activity-table td:nth-child(1)::before{content:"رویداد / هدف"}.bn-activity-table td:nth-child(2)::before{content:"عامل"}.bn-activity-table td:nth-child(3)::before{content:"توضیح"}.bn-activity-table td:nth-child(4)::before{content:"زمان"}
  .bn-health-table td:nth-child(1)::before{content:"بررسی"}.bn-health-table td:nth-child(2)::before{content:"وضعیت"}.bn-health-table td:nth-child(3)::before{content:"جزئیات"}
  .bn-backup-table td:nth-child(1)::before{content:"شناسه"}.bn-backup-table td:nth-child(2)::before{content:"زمان"}.bn-backup-table td:nth-child(3)::before{content:"جدول / رکورد"}.bn-backup-table td:nth-child(4)::before{content:"فایل‌ها"}.bn-backup-table td:nth-child(5)::before{content:"اعتبار"}.bn-backup-table td:nth-child(6)::before{content:"عملیات"}
  .bn-health-table td:nth-child(3),.bn-backup-table td:nth-child(1){align-items:start}
}

@media(max-width:760px){
  .bn-inventory-table td:nth-child(1)::before{content:"هویت کالا"}.bn-inventory-table td:nth-child(2)::before{content:"رهگیری"}.bn-inventory-table td:nth-child(3)::before{content:"فیزیکی"}.bn-inventory-table td:nth-child(4)::before{content:"رزرو"}.bn-inventory-table td:nth-child(5)::before{content:"قابل تخصیص"}.bn-inventory-table td:nth-child(6)::before{content:"ابعاد"}
  .bn-count-table td:nth-child(1)::before{content:"کالا"}.bn-count-table td:nth-child(2)::before{content:"رهگیری"}.bn-count-table td:nth-child(3)::before{content:"مورد انتظار"}.bn-count-table td:nth-child(4)::before{content:"شمارش‌شده"}.bn-count-table td:nth-child(5)::before{content:"ثبت"}
  .bn-dashboard-admin-table td:nth-child(1)::before{content:"محتوا / مخاطب"}.bn-dashboard-admin-table td:nth-child(2)::before{content:"وضعیت"}.bn-dashboard-admin-table td:nth-child(3)::before{content:"بازه انتشار"}.bn-dashboard-admin-table td:nth-child(4)::before{content:"ترتیب / اولویت"}.bn-dashboard-admin-table td:nth-child(5)::before{content:"عملیات"}
  .bn-expense-mobile-table td:nth-child(1)::before{content:"تاریخ / دسته"}.bn-expense-mobile-table td:nth-child(2)::before{content:"شرح"}.bn-expense-mobile-table td:nth-child(3)::before{content:"محدوده"}.bn-expense-mobile-table td:nth-child(4)::before{content:"پرداخت"}.bn-expense-mobile-table td:nth-child(5)::before{content:"مبلغ"}.bn-expense-mobile-table td:nth-child(6)::before{content:"وضعیت"}.bn-expense-mobile-table td:nth-child(7)::before{content:"عملیات"}
  .bn-settlement-table td:nth-child(1)::before{content:"دوره"}.bn-settlement-table td:nth-child(2)::before{content:"وضعیت"}.bn-settlement-table td:nth-child(3)::before{content:"سهم همکار"}.bn-settlement-table td:nth-child(4)::before{content:"مطالبه بانوک"}.bn-settlement-table td:nth-child(5)::before{content:"پرداخت تأییدشده"}.bn-settlement-table td:nth-child(6)::before{content:"مانده نهایی"}.bn-settlement-table td:nth-child(7)::before{content:"سررسید"}
  .bn-broadcast-table td:nth-child(1)::before{content:"پیام"}.bn-broadcast-table td:nth-child(2)::before{content:"وضعیت"}.bn-broadcast-table td:nth-child(3)::before{content:"مخاطب"}.bn-broadcast-table td:nth-child(4)::before{content:"خوانده"}.bn-broadcast-table td:nth-child(5)::before{content:"تأیید"}.bn-broadcast-table td:nth-child(6)::before{content:"Email"}.bn-broadcast-table td:nth-child(7)::before{content:"SMS"}.bn-broadcast-table td:nth-child(8)::before{content:"عملیات"}
  .bn-support-admin-table td:nth-child(1)::before{content:"درخواست"}.bn-support-admin-table td:nth-child(2)::before{content:"همکار"}.bn-support-admin-table td:nth-child(3)::before{content:"وضعیت"}.bn-support-admin-table td:nth-child(4)::before{content:"بروزرسانی"}.bn-support-admin-table td:nth-child(5)::before{content:"عملیات"}
  .bn-admin-mobile-table td:nth-child(1)::before{content:"ادمین"}.bn-admin-mobile-table td:nth-child(2)::before{content:"تماس"}.bn-admin-mobile-table td:nth-child(3)::before{content:"سطح"}.bn-admin-mobile-table td:nth-child(4)::before{content:"وضعیت"}.bn-admin-mobile-table td:nth-child(5)::before{content:"دسترسی‌ها"}.bn-admin-mobile-table td:nth-child(6)::before{content:"عملیات"}
  .bn-integration-table td:nth-child(1)::before{content:"اتصال"}.bn-integration-table td:nth-child(2)::before{content:"وضعیت"}.bn-integration-table td:nth-child(3)::before{content:"نسخه"}.bn-integration-table td:nth-child(4)::before{content:"جزئیات"}
  .bn-expense-mobile-table,.bn-admin-mobile-table{min-width:0!important}
}

/* BANUK language selector + navigation responsiveness */
.bn-language-grid{display:grid;grid-template-columns:repeat(4,42px);gap:6px;align-items:start}
.bn-language-option{appearance:none;border:1px solid var(--bn-line);background:#fff;color:var(--bn-ink);border-radius:11px;min-width:42px;min-height:48px;padding:5px 4px 4px;text-decoration:none;display:grid;place-items:center;gap:3px;font:inherit;cursor:pointer}
.bn-language-option:hover{border-color:var(--banuk-champagne);background:#fcfaf7}
.bn-language-option.is-active{border-color:var(--banuk-burgundy);box-shadow:0 0 0 2px rgba(74,16,28,.08)}
.bn-language-option.is-disabled{opacity:.42;cursor:not-allowed;filter:saturate(.45)}
.bn-language-code{font-size:9px;font-weight:800;letter-spacing:.05em;line-height:1}
.bn-language-flag{position:relative;display:block;width:26px;height:16px;border-radius:3px;overflow:hidden;box-shadow:0 0 0 1px rgba(0,0,0,.12) inset}
.bn-flag-fa{background:linear-gradient(#239f40 0 33.33%,#fff 33.33% 66.66%,#da0000 66.66% 100%)}
.bn-flag-en{
  background:repeating-linear-gradient(to bottom,#B22234 0 7.692%,#fff 7.692% 15.384%)
}
.bn-flag-en::before{
  content:"";position:absolute;left:0;top:0;width:43%;height:54%;
  background-color:#3C3B6E;
  background-image:radial-gradient(circle,#fff 0 0.5px,transparent .65px);
  background-size:3px 3px;
}
.bn-flag-ku{background:linear-gradient(#d71920 0 33.33%,#fff 33.33% 66.66%,#239f40 66.66% 100%)}
.bn-flag-ku:after{content:"";position:absolute;left:50%;top:50%;width:7px;height:7px;border-radius:50%;background:#f3c623;transform:translate(-50%,-50%);box-shadow:0 -5px 0 -3px #f3c623,0 5px 0 -3px #f3c623,5px 0 0 -3px #f3c623,-5px 0 0 -3px #f3c623}
.bn-flag-ar{background:linear-gradient(#007a3d 0 33.33%,#fff 33.33% 66.66%,#000 66.66% 100%)}
.bn-flag-ar:before{content:"";position:absolute;left:0;top:0;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:10px solid #ce1126}
.bn-language-drawer{display:none}
.bn-topbar-meta .bn-language-desktop{margin-inline-end:2px}

/* Faster mobile menu feedback */
.bn-mobile-menu-overlay{transition:opacity .09s ease}
.bn-mobile-drawer{transition:transform .11s cubic-bezier(.2,.8,.2,1)}
.bn-mobile-drawer-nav button{transition:background .07s ease,color .07s ease,border-color .07s ease!important}

/* Centered drawer branding */
.bn-mobile-drawer-head{position:relative;display:flex;justify-content:center;align-items:flex-start;min-height:210px}
.bn-mobile-drawer-head .bn-brand{width:100%;border-bottom:1px solid rgba(255,255,255,.10);display:grid;justify-items:center;text-align:center;padding:22px 52px 18px}
.bn-mobile-drawer-head .bn-brand-logo{width:92px;height:92px;max-width:92px;object-fit:contain}
.bn-mobile-drawer-head .bn-brand-title{margin-top:8px;font-size:17px;font-weight:750;color:#fff}
.bn-mobile-menu-close{position:absolute;inset-inline-start:0;top:0;z-index:2}

/* Sales & commission report: prevent squeezed/vertical title on mobile */
.bn-overview-sales{min-width:0;overflow:hidden}
.bn-overview-sales .bn-section-title>div:first-child{min-width:0}
.bn-overview-sales .bn-report-range{flex:0 0 auto}

/* Partner creation drawer follows the standard admin drawer behavior */
.bn-partner-create-overlay{justify-content:flex-start}
.bn-partner-create-drawer{max-width:560px}
.bn-partner-create-drawer .bn-settings-note{line-height:1.8}

/* Tablet/mobile language switcher sits directly below the panel title. */
@media(max-width:980px){
  .bn-language-desktop{display:none!important}
  .bn-mobile-drawer-head .bn-brand{padding-bottom:14px}
  .bn-language-drawer{
    display:flex;
    direction:rtl;
    justify-content:center;
    align-items:flex-start;
    gap:8px;
    margin:10px 0 0;
    width:100%;
  }
  .bn-language-drawer .bn-language-option{
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
    border-radius:0;
    min-width:38px;
    min-height:47px;
    padding:4px 3px;
    gap:3px;
    color:rgba(255,255,255,.74);
  }
  .bn-language-drawer .bn-language-option:hover{
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
    color:#fff;
  }
  .bn-language-drawer .bn-language-option.is-active{
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
    color:#d8b66d;
  }
  .bn-language-drawer .bn-language-flag{
    width:23.4px;
    height:14.4px;
    border-radius:3px;
  }
  .bn-language-drawer .bn-language-code{
    font-size:8.1px;
    line-height:1;
    letter-spacing:.045em;
  }
}
@media(min-width:981px){
  .bn-language-drawer{display:none!important}
}
@media(max-width:760px){
  .bn-topbar-meta{grid-template-columns:minmax(0,1fr) auto}
  .bn-topbar-meta .bn-language-desktop{display:none!important}
  .bn-overview-sales .bn-section-title{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:12px!important;align-items:stretch!important}
  .bn-overview-sales .bn-section-title>div:first-child{width:100%;max-width:100%}
  .bn-overview-sales .bn-section-title h2{white-space:normal;overflow:visible;text-overflow:clip;font-size:18px;line-height:1.45}
  .bn-overview-sales .bn-section-title p{max-width:100%;overflow-wrap:anywhere}
  .bn-overview-sales .bn-report-range{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0}
  .bn-overview-sales .bn-report-range button{min-width:0;width:100%;padding-inline:4px}
  .bn-sales-row-head{width:100%;min-width:0}
  .bn-sales-row-head span,.bn-sales-row-head strong{max-width:100%;overflow-wrap:anywhere}
  .bn-partner-create-overlay{align-items:stretch;padding:0}
  .bn-partner-create-drawer{width:100vw!important;max-width:none!important;height:100dvh;max-height:100dvh;padding:16px!important;border-radius:0;overflow-y:auto;overscroll-behavior:contain}
  .bn-partner-create-drawer .bn-admin-drawer-head{position:sticky;top:-16px;z-index:3;background:#fffdfa;padding-top:16px}
  .bn-partner-create-drawer .bn-admin-drawer-form{grid-template-columns:1fr!important}
  .bn-partner-create-drawer .bn-span-2{grid-column:span 1!important}
}

/* BANUK nav icon system — Font Awesome Free SVG subset */
.bn-nav button,.bn-mobile-drawer-nav button{display:flex;align-items:center;gap:10px}
.bn-fa{width:16px;height:16px;flex:0 0 16px;background:currentColor;display:inline-block;mask-repeat:no-repeat;mask-position:center;mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain}
.bn-fa-chart-line{mask-image:url("../icons/fontawesome/chart-line.svg");-webkit-mask-image:url("../icons/fontawesome/chart-line.svg")}
.bn-fa-building{mask-image:url("../icons/fontawesome/building.svg");-webkit-mask-image:url("../icons/fontawesome/building.svg")}
.bn-fa-boxes-stacked{mask-image:url("../icons/fontawesome/boxes-stacked.svg");-webkit-mask-image:url("../icons/fontawesome/boxes-stacked.svg")}
.bn-fa-clipboard-check{mask-image:url("../icons/fontawesome/clipboard-check.svg");-webkit-mask-image:url("../icons/fontawesome/clipboard-check.svg")}
.bn-fa-truck-ramp-box{mask-image:url("../icons/fontawesome/truck-ramp-box.svg");-webkit-mask-image:url("../icons/fontawesome/truck-ramp-box.svg")}
.bn-fa-store{mask-image:url("../icons/fontawesome/store.svg");-webkit-mask-image:url("../icons/fontawesome/store.svg")}
.bn-fa-user-shield{mask-image:url("../icons/fontawesome/user-shield.svg");-webkit-mask-image:url("../icons/fontawesome/user-shield.svg")}
.bn-fa-shield-halved{mask-image:url("../icons/fontawesome/shield-halved.svg");-webkit-mask-image:url("../icons/fontawesome/shield-halved.svg")}
.bn-fa-timeline{mask-image:url("../icons/fontawesome/timeline.svg");-webkit-mask-image:url("../icons/fontawesome/timeline.svg")}
.bn-fa-table-columns{mask-image:url("../icons/fontawesome/table-columns.svg");-webkit-mask-image:url("../icons/fontawesome/table-columns.svg")}
.bn-fa-paper-plane{mask-image:url("../icons/fontawesome/paper-plane.svg");-webkit-mask-image:url("../icons/fontawesome/paper-plane.svg")}
.bn-fa-headset{mask-image:url("../icons/fontawesome/headset.svg");-webkit-mask-image:url("../icons/fontawesome/headset.svg")}
.bn-fa-sack-dollar{mask-image:url("../icons/fontawesome/sack-dollar.svg");-webkit-mask-image:url("../icons/fontawesome/sack-dollar.svg")}
.bn-fa-heart-pulse{mask-image:url("../icons/fontawesome/heart-pulse.svg");-webkit-mask-image:url("../icons/fontawesome/heart-pulse.svg")}
.bn-fa-gear{mask-image:url("../icons/fontawesome/gear.svg");-webkit-mask-image:url("../icons/fontawesome/gear.svg")}

/* Smart operational scope */
.bn-context-summary{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 14px;padding:9px 12px;border:1px solid var(--bn-line);background:rgba(255,253,249,.72);border-radius:12px;color:var(--bn-muted);font-size:11px}
.bn-context-summary b{color:var(--bn-ink);font-weight:700}
.bn-context-static{display:flex;flex-direction:column;gap:5px;min-width:0}
.bn-context-static span{color:var(--bn-muted);font-size:11px}
.bn-context-static strong{min-height:44px;display:flex;align-items:center;padding:0 13px;border:1px solid var(--bn-line);border-radius:12px;background:#fff;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Dashboard motion: lightweight, GPU-friendly, respects reduced motion */
@keyframes bnCardEnter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes bnGrowX{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes bnGrowY{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.bn-kpi-strip .bn-kpi{animation:bnCardEnter .28s ease both}
.bn-kpi-strip .bn-kpi:nth-child(2){animation-delay:.03s}.bn-kpi-strip .bn-kpi:nth-child(3){animation-delay:.06s}.bn-kpi-strip .bn-kpi:nth-child(4){animation-delay:.09s}.bn-kpi-strip .bn-kpi:nth-child(5){animation-delay:.12s}.bn-kpi-strip .bn-kpi:nth-child(6){animation-delay:.15s}
html[dir="rtl"] .bn-sales-track span,html[dir="rtl"] .bn-bar-track span,html[dir="rtl"] .bn-mini-track i{transform-origin:right center}
html[dir="ltr"] .bn-sales-track span,html[dir="ltr"] .bn-bar-track span,html[dir="ltr"] .bn-mini-track i{transform-origin:left center}
.bn-sales-track span,.bn-bar-track span,.bn-mini-track i{animation:bnGrowX .55s cubic-bezier(.2,.8,.2,1) both}
.bn-daily-bar span{transform-origin:center bottom;animation:bnGrowY .6s cubic-bezier(.2,.8,.2,1) both}
.bn-daily-col:nth-child(2) .bn-daily-bar span{animation-delay:.04s}.bn-daily-col:nth-child(3) .bn-daily-bar span{animation-delay:.08s}.bn-daily-col:nth-child(4) .bn-daily-bar span{animation-delay:.12s}.bn-daily-col:nth-child(5) .bn-daily-bar span{animation-delay:.16s}.bn-daily-col:nth-child(6) .bn-daily-bar span{animation-delay:.2s}
@media(prefers-reduced-motion:reduce){.bn-kpi-strip .bn-kpi,.bn-sales-track span,.bn-bar-track span,.bn-mini-track i,.bn-daily-bar span{animation:none!important;transition:none!important}}

@media(max-width:760px){
  .bn-context-summary{margin-bottom:12px;gap:8px;padding:8px 10px}
  .bn-context-row{grid-template-columns:1fr}
}

/* Organization / store onboarding form sections */
.bn-form-section{margin-top:4px;padding:12px 14px;border:1px solid var(--bn-line);border-radius:12px;background:rgba(249,246,241,.65)}
.bn-form-section h3{margin:0;font-size:13px;line-height:1.5}.bn-form-section p{margin:4px 0 0;color:var(--bn-muted);font-size:10px;line-height:1.7}
.bn-admin-drawer-form>.bn-form-section:first-child{margin-top:0}

/* Legal document locale controls */
.bn-legal-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.bn-legal-languages{grid-template-columns:repeat(4,38px)}
.bn-legal-languages .bn-language-option{min-width:38px;min-height:40px;padding:4px}
@media(max-width:620px){
  .bn-legal-header{flex-direction:column}
  .bn-legal-header-actions{width:100%;justify-content:space-between}
  .bn-legal-languages{grid-template-columns:repeat(4,36px)}
  .bn-legal-languages .bn-language-option{min-width:36px;min-height:38px}
}

/* Catalog administration */
.bn-fa-shirt{mask-image:url("../icons/fontawesome/shirt.svg");-webkit-mask-image:url("../icons/fontawesome/shirt.svg")}
.bn-catalog-product{display:flex;align-items:center;gap:10px;min-width:220px}
.bn-catalog-product img,.bn-catalog-image-placeholder{width:44px;height:44px;flex:0 0 44px;border-radius:10px;border:1px solid var(--bn-line);object-fit:cover;background:#f3eee6}
.bn-catalog-product div{min-width:0}.bn-catalog-product strong,.bn-catalog-product small{display:block}.bn-catalog-product strong{max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bn-catalog-product small{margin-top:3px;color:var(--bn-muted);font-size:9px}
.bn-catalog-table td{vertical-align:middle}
@media(max-width:760px){.bn-catalog-product{min-width:0}.bn-catalog-product strong{max-width:190px}}

/* Desktop language switcher: compact, borderless, fixed order under sidebar brand title. */
.bn-language-sidebar{
  display:flex;
  direction:rtl;
  justify-content:center;
  align-items:flex-start;
  gap:6px;
  margin-top:9px;
  width:100%;
}
.bn-language-sidebar .bn-language-option{
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  border-radius:0;
  min-width:34px;
  min-height:38px;
  padding:3px 2px;
  gap:2px;
  color:rgba(255,255,255,.72);
}
.bn-language-sidebar .bn-language-option:hover{
  border:0!important;
  background:transparent!important;
  color:#fff;
  opacity:1;
}
.bn-language-sidebar .bn-language-option.is-active{
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:#d8b66d;
}
.bn-language-sidebar .bn-language-flag{
  width:21px;
  height:13px;
  border-radius:2px;
}
.bn-language-sidebar .bn-language-code{
  font-size:7.2px;
  line-height:1;
  letter-spacing:.04em;
}
@media(max-width:760px){
  .bn-language-sidebar{display:none!important}
}


/* Agreement & e-signing workflow */
.bn-fa-file-signature{mask-image:url("../icons/fontawesome/file-signature.svg");-webkit-mask-image:url("../icons/fontawesome/file-signature.svg")}
.bn-agreement-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;overflow:hidden;position:relative}
.bn-agreement-hero:after{content:"";position:absolute;inset:auto -40px -70px auto;width:190px;height:190px;border-radius:999px;background:radial-gradient(circle,rgba(121,19,46,.13),transparent 68%);pointer-events:none}
.bn-agreement-hero h2{margin:3px 0 6px}.bn-agreement-hero p{margin:0;color:var(--bn-muted);max-width:720px}
.bn-agreement-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.bn-kpi-mini{padding:15px 16px;border:1px solid var(--bn-line);background:linear-gradient(180deg,#fff,#fcf8f4);border-radius:14px;display:flex;align-items:center;justify-content:space-between}
.bn-kpi-mini span{font-size:11px;color:var(--bn-muted)}.bn-kpi-mini strong{font-size:22px;line-height:1}
.bn-agreement-list{display:grid;gap:16px}
.bn-agreement-card{padding:0;overflow:hidden}
.bn-agreement-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px 22px 15px;border-bottom:1px solid var(--bn-line)}
.bn-agreement-card-head h2{margin:4px 0 5px;font-size:17px}.bn-agreement-card-head p{margin:0;color:var(--bn-muted);font-size:11px}
.bn-agreement-meta{display:flex;gap:18px;flex-wrap:wrap;padding:11px 22px;background:#fbf8f4;border-bottom:1px solid var(--bn-line);font-size:10px;color:var(--bn-muted)}
.bn-agreement-meta b{color:var(--bn-ink)}
.bn-agreement-document{padding:24px 28px;max-height:500px;overflow:auto;line-height:2;text-align:justify;background:#fff}
.bn-agreement-document h2{font-size:14px;margin:20px 0 8px;padding-right:10px;border-right:3px solid #73162e}.bn-agreement-document h2:first-child{margin-top:0}
.bn-agreement-document p{margin:0 0 12px}.bn-agreement-document ul,.bn-agreement-document ol{padding-inline-start:24px}
.bn-agreement-integrity{margin:0 22px 14px;border:1px dashed #d9cec3;border-radius:12px;padding:10px 12px;background:#fdfaf7}
.bn-agreement-integrity summary{cursor:pointer;font-size:10px;font-weight:700}
.bn-agreement-integrity>div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:12px;margin-top:10px;align-items:start}
.bn-agreement-integrity span{font-size:9px;color:var(--bn-muted)}.bn-agreement-integrity code{font-size:8px;overflow-wrap:anywhere;white-space:normal}
.bn-agreement-actions{padding:0 22px 20px}
.bn-agreement-sign-box{margin:0 22px 22px;padding:15px;border:1px solid rgba(115,22,46,.2);border-radius:14px;background:linear-gradient(135deg,rgba(115,22,46,.055),rgba(194,160,111,.08));display:flex;align-items:center;justify-content:space-between;gap:18px}
.bn-agreement-sign-box.is-open{display:block}.bn-agreement-sign-box.is-readonly{border-color:var(--bn-line);background:#faf8f5}
.bn-agreement-sign-box strong{font-size:12px}.bn-agreement-sign-box p{margin:4px 0 0;color:var(--bn-muted);font-size:10px;line-height:1.8}
.bn-agreement-sign-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.bn-otp-boxes{direction:ltr;display:flex;justify-content:center;gap:8px;margin:18px 0}
.bn-otp-cell{width:48px;height:52px;border:1px solid #d7cbc0;border-radius:12px;background:#fff;text-align:center;font-size:22px;font-weight:800;outline:0;transition:.16s ease}
.bn-otp-cell:focus{border-color:#73162e;box-shadow:0 0 0 3px rgba(115,22,46,.09);transform:translateY(-1px)}
.bn-otp-cell.is-invalid{border-color:#b42318;box-shadow:0 0 0 3px rgba(180,35,24,.08)}
.bn-agreement-preflight{margin:4px 0 12px;padding:14px 16px;background:#fff8ec;border:1px solid #e5c9a0;border-radius:12px;font-size:12px;line-height:1.8;color:#5f3a18}.bn-agreement-preflight p{margin:4px 0 8px;font-size:11px}.bn-agreement-preflight strong{display:block}
.bn-agreement-consent{display:flex;align-items:flex-start;gap:9px;padding:12px;border:1px solid var(--bn-line);border-radius:12px;background:#fff;font-size:10px;line-height:1.8;cursor:pointer}
.bn-agreement-consent input{margin-top:4px;accent-color:#73162e}
.bn-agreement-sign-box .bn-actions{margin-top:14px}
.bn-agreement-drawer{position:fixed;z-index:9994;inset:16px 16px 16px auto;width:min(760px,calc(100vw - 32px));background:#fffdfa;border:1px solid #ded3c8;border-radius:18px;box-shadow:0 24px 80px rgba(35,24,20,.18);padding:20px;overflow:auto}
html[dir="ltr"] .bn-agreement-drawer{inset:16px auto 16px 16px}
.bn-agreement-drawer-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:16px;padding-bottom:15px;border-bottom:1px solid var(--bn-line)}
.bn-agreement-drawer-head h2{margin:4px 0 5px}.bn-agreement-drawer-head p{margin:0;color:var(--bn-muted);font-size:10px;max-width:570px}
.bn-field-label-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.bn-field-label-row label{margin:0}
.bn-agreement-toolbar{display:flex;gap:5px;flex-wrap:wrap;padding:7px;border:1px solid var(--bn-line);border-bottom:0;border-radius:12px 12px 0 0;background:#f8f4ef}
.bn-agreement-toolbar button{border:0;background:#fff;border-radius:8px;padding:7px 10px;font:inherit;font-size:10px;cursor:pointer;box-shadow:0 0 0 1px rgba(0,0,0,.05)}
.bn-agreement-toolbar button:hover{background:#f1e8df}
.bn-agreement-editor{min-height:430px;max-height:58vh;overflow:auto;padding:22px;border:1px solid var(--bn-line);border-radius:0 0 12px 12px;background:#fff;line-height:2;text-align:justify;outline:0}
.bn-agreement-editor:focus{border-color:#b99c78;box-shadow:inset 0 0 0 1px #b99c78}
.bn-agreement-editor h2{font-size:14px;margin:18px 0 8px;padding-right:9px;border-right:3px solid #73162e}
.bn-agreement-lock-note{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:12px;background:#f8f1e7;border:1px solid #ead8c5}
.bn-agreement-lock-note .bn-fa{width:20px;height:20px;flex-basis:20px;color:#73162e}.bn-agreement-lock-note strong{font-size:11px}.bn-agreement-lock-note p{margin:3px 0 0;color:var(--bn-muted);font-size:9px;line-height:1.7}

@media(max-width:760px){
  .bn-agreement-hero,.bn-agreement-card-head,.bn-agreement-sign-box{align-items:stretch;flex-direction:column}
  .bn-agreement-kpis{grid-template-columns:1fr}
  .bn-agreement-document{padding:18px 16px;max-height:420px}
  .bn-agreement-card-head,.bn-agreement-meta,.bn-agreement-actions{padding-left:16px;padding-right:16px}
  .bn-agreement-integrity,.bn-agreement-sign-box{margin-left:16px;margin-right:16px}
  .bn-agreement-integrity>div{grid-template-columns:1fr;gap:4px}
  .bn-agreement-drawer{inset:0!important;width:100vw;max-width:none;border-radius:0;padding:15px}
  .bn-agreement-drawer-head{position:sticky;top:-15px;z-index:4;background:#fffdfa;padding-top:15px}
  .bn-agreement-editor{min-height:380px}
  .bn-otp-boxes{gap:5px}.bn-otp-cell{width:42px;height:48px;font-size:20px}
}
@media(prefers-reduced-motion:reduce){.bn-otp-cell{transition:none!important}}

/* Consignment workflow controls */
.bn-consignment-request-drawer{max-width:640px}
.bn-consignment-request-lines{display:grid;gap:10px;margin:12px 0}
.bn-consignment-request-line{display:grid;grid-template-columns:minmax(0,1fr) 110px auto;gap:10px;align-items:end;padding:12px;border:1px solid var(--bn-line);border-radius:14px;background:rgba(255,255,255,.58)}
.bn-consignment-line-remove{margin-bottom:1px}
.bn-allocation-lines{display:grid;gap:7px;margin:12px 0;padding-top:10px;border-top:1px dashed var(--bn-line)}
.bn-allocation-lines>div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:8px 10px;border-radius:10px;background:rgba(248,245,239,.72)}
.bn-allocation-lines span{font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bn-allocation-lines b{font-size:14px}.bn-allocation-lines small{color:var(--bn-muted)}
.bn-consignment-actions{margin-top:12px;padding-top:10px;border-top:1px solid var(--bn-line)}
.bn-consignment-approve-row{display:grid;grid-template-columns:minmax(0,1fr) 140px;gap:14px;align-items:end;padding:12px 0;border-bottom:1px solid var(--bn-line)}
.bn-consignment-approve-row strong,.bn-consignment-approve-row small{display:block}.bn-consignment-approve-row small{margin-top:4px;color:var(--bn-muted)}
@media(max-width:760px){
  .bn-consignment-request-line{grid-template-columns:1fr 92px}
  .bn-consignment-request-line .bn-consignment-line-remove{grid-column:1/-1;justify-self:start}
  .bn-allocation-lines>div{grid-template-columns:1fr auto}.bn-allocation-lines small{grid-column:1/-1}
  .bn-consignment-approve-row{grid-template-columns:1fr}
}

/* Consignment execution: pick, reserve, dispatch and receipt */
.bn-consignment-execution-drawer{max-width:720px}
.bn-consignment-pick-row,.bn-consignment-receive-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1.4fr) 110px;gap:12px;align-items:end;padding:12px 0;border-bottom:1px solid var(--bn-line)}
.bn-consignment-receive-row{grid-template-columns:minmax(0,1fr) 150px}
.bn-consignment-pick-row strong,.bn-consignment-pick-row small,.bn-consignment-receive-row strong,.bn-consignment-receive-row small{display:block}
.bn-consignment-pick-row small,.bn-consignment-receive-row small{margin-top:4px;color:var(--bn-muted)}
.bn-note-warning{border-color:rgba(181,132,43,.35);background:rgba(181,132,43,.08)}
@media(max-width:760px){
  .bn-consignment-pick-row,.bn-consignment-receive-row{grid-template-columns:1fr}
}

/* RC42: login language switcher matches the in-panel flag+short-code treatment. */
.bn-login-card .bn-login-toolbar{justify-content:center;margin:8px 0 9px}
.bn-login-languages{width:100%;direction:rtl;display:flex;justify-content:center;align-items:center;gap:9px}
.bn-login-languages .bn-language-option{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  width:42px;min-width:42px;min-height:40px;padding:3px 4px;
  border:0;border-radius:9px;background:transparent;box-shadow:none;
  color:var(--banuk-muted);text-decoration:none;
}
.bn-login-languages .bn-language-option:hover{background:rgba(74,16,28,.045);border:0;color:var(--banuk-burgundy)}
.bn-login-languages .bn-language-option.is-active{background:transparent;border:0;box-shadow:none;color:var(--banuk-burgundy)}
.bn-login-languages .bn-language-option:focus-visible{outline:2px solid var(--banuk-burgundy);outline-offset:2px}
.bn-login-languages .bn-language-flag{width:23px;height:15px}
.bn-login-languages .bn-language-code{font-size:8px;line-height:1.1;letter-spacing:.04em}

/* Mobile: favor a complete first-screen login; still allow scrolling for zoom,
   small landscape viewports, notices, captcha and open software keyboards. */
@media(max-width:620px){
  .bn-login-body,.bn-login-shell{min-height:100vh;min-height:100dvh}
  .bn-login-shell{padding:max(8px,env(safe-area-inset-top)) 12px max(8px,env(safe-area-inset-bottom))}
  .bn-login-card{width:min(460px,100%);min-height:0;padding:16px clamp(14px,4vw,20px) 15px;border-radius:19px}
  .bn-login-logo{width:clamp(84px,12.5dvh,115px);max-height:clamp(96px,14dvh,140px);margin:0 auto 6px}
  .bn-login-card>.bn-kicker{font-size:11px;line-height:1.5;margin:0}
  .bn-login-card h1{font-size:clamp(19px,5vw,23px);line-height:1.38;margin:3px 0 3px}
  .bn-login-card .bn-login-toolbar{margin:4px 0 5px}
  .bn-login-languages{gap:8px}
  .bn-login-languages .bn-language-option{width:42px;min-width:42px;min-height:38px;padding:2px 4px}
  .bn-login-lead{font-size:12px;line-height:1.65;margin:0 auto 11px;max-width:100%}
  .bn-login-tabs{padding:3px;gap:3px;margin-bottom:7px}
  .bn-login-tabs button{min-height:42px;font-size:12px;line-height:1.35;padding:3px 5px}
  .bn-login-notice-slot{height:5px;min-height:5px}
  .bn-login-notice-slot:empty::before{height:5px}
  .bn-login-notice-slot:has(.bn-notice-life){height:auto;min-height:0;margin:6px 0}
  .bn-login-notice-slot:has(.bn-notice-life) .bn-notice-life{position:static}
  .bn-login-form{gap:8px}
  .bn-login-form .bn-field{gap:4px}
  .bn-login-form .bn-field>span,.bn-login-form .bn-field>label{font-size:12px;line-height:1.5;margin-bottom:0}
  .bn-login-body .bn-input{min-height:44px;padding:8px 11px;font-size:16px}
  .bn-login-remember{min-height:22px;font-size:11px;line-height:1.45}
  .bn-login-submit{min-height:44px;margin-top:0}
  .bn-login-legal-note{margin:10px 0 0;padding:8px 2px 0;gap:3px;font-size:9.5px;line-height:1.5}
  .bn-login-legal-note p{margin:0}
  .bn-phone-shell,.bn-phone-confirm{min-height:48px}
  .bn-phone-input{min-height:48px;font-size:16px}
  .bn-otp-box{font-size:21px}
}
@media(max-width:620px) and (max-height:700px){
  .bn-login-shell{padding-block:max(5px,env(safe-area-inset-top)) max(5px,env(safe-area-inset-bottom))}
  .bn-login-card{padding-block:12px}
  .bn-login-logo{width:84px;max-height:102px;margin:0 auto 4px}
  .bn-login-lead{margin-bottom:8px}
  .bn-login-card .bn-login-toolbar{margin:2px 0 3px}
  .bn-login-tabs{margin-bottom:5px}
  .bn-login-form{gap:7px}
  .bn-login-legal-note{margin-top:8px;padding-top:6px}
}
/* Extra-short 320px-class devices: keep full form usable without hiding content. */
@media(max-width:350px) and (max-height:610px){
  .bn-login-card{padding-block:9px}
  .bn-login-logo{width:68px;max-height:80px;margin:0 auto 2px}
  .bn-login-card>.bn-kicker{font-size:10px;line-height:1.3}
  .bn-login-card h1{font-size:17px;line-height:1.25;margin:2px 0}
  .bn-login-card .bn-login-toolbar{margin:1px 0 2px}
  .bn-login-languages .bn-language-option{min-height:34px;gap:2px}
  .bn-login-lead{font-size:11px;line-height:1.45;margin-bottom:5px}
  .bn-login-tabs{margin-bottom:3px}
  .bn-login-notice-slot{min-height:3px;height:3px}
  .bn-login-notice-slot:empty::before{height:3px}
  .bn-login-form{gap:5px}
  .bn-login-form .bn-field{gap:3px}
  .bn-login-form .bn-field>span,.bn-login-form .bn-field>label{font-size:11px;line-height:1.35}
  .bn-login-legal-note{font-size:9px;line-height:1.35;margin-top:6px;padding-top:5px}
}

/* RC43: language flags sit immediately below the brand logo. */
.bn-login-card .bn-login-toolbar{margin:3px 0 8px;justify-content:center}
.bn-login-logo{margin-bottom:3px}

/* The verification step has no submit button. Five RTL-aware boxes are centered,
   automatically verified and resolve to one persistent green success tick. */
.bn-login-body .bn-otp-field{justify-items:center;text-align:center;gap:9px}
.bn-login-body .bn-otp-boxes{
  position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));
  width:min(100%,320px);gap:8px;direction:ltr;align-items:center;
  margin:6px auto 12px;min-height:60px
}
.bn-login-body .bn-otp-box{
  width:100%;min-width:0;max-width:none;aspect-ratio:1/1;border-radius:13px;
  font-size:23px;transform-origin:center center
}
.bn-otp-success-mark{
  position:absolute;left:50%;top:50%;width:68px;height:68px;
  border:2px solid #42a46c;border-radius:50%;background:#e5f5eb;
  color:#20804a;font-size:36px;line-height:1;font-weight:800;
  display:grid;place-items:center;box-shadow:0 0 0 7px rgba(36,145,82,.08);
  opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,-50%) scale(.48)
}
.bn-login-body .bn-otp-boxes.is-success .bn-otp-box{
  animation:bnOtpFoldIntoCenter .45s cubic-bezier(.22,.8,.2,1) both;
  pointer-events:none
}
.bn-login-body .bn-otp-boxes.is-success .bn-otp-box:nth-child(1){--bn-otp-merge:240%;animation-delay:.03s}
.bn-login-body .bn-otp-boxes.is-success .bn-otp-box:nth-child(2){--bn-otp-merge:120%;animation-delay:.06s}
.bn-login-body .bn-otp-boxes.is-success .bn-otp-box:nth-child(3){--bn-otp-merge:0%;animation-delay:.09s}
.bn-login-body .bn-otp-boxes.is-success .bn-otp-box:nth-child(4){--bn-otp-merge:-120%;animation-delay:.12s}
.bn-login-body .bn-otp-boxes.is-success .bn-otp-box:nth-child(5){--bn-otp-merge:-240%;animation-delay:.15s}
.bn-login-body .bn-otp-boxes.is-success .bn-otp-success-mark{
  visibility:visible;animation:bnOtpSuccessMark .48s .43s ease-out both
}
@keyframes bnOtpFoldIntoCenter{
  from{opacity:1;transform:translateX(0) scale(1)}
  to{opacity:0;transform:translateX(var(--bn-otp-merge,0%)) scale(.12)}
}
@keyframes bnOtpSuccessMark{
  from{opacity:0;transform:translate(-50%,-50%) scale(.48)}
  75%{opacity:1;transform:translate(-50%,-50%) scale(1.09)}
  to{opacity:1;transform:translate(-50%,-50%) scale(1)}
}
.bn-login-body .bn-otp-inline-error{text-align:center;width:100%}
.bn-login-body .bn-otp-field+.bn-login-remember{justify-content:center}
.bn-login-body [data-otp-form] .bn-login-secondary{display:block;text-align:center;margin-top:2px;font-size:12px;min-height:34px}

/* Keep verified animation present while the authenticated dashboard initially loads. */
.bn-entry-transition{
  position:fixed;inset:0;z-index:105;display:flex;flex-direction:column;
  justify-content:center;align-items:center;gap:17px;
  background:linear-gradient(135deg,#45101d,#270910);color:#fcfaf7;
  opacity:1;transition:opacity .3s ease,visibility .3s ease;
}
.bn-entry-transition.is-ready{opacity:0;visibility:hidden;pointer-events:none}
.bn-entry-check{display:grid;place-items:center;width:78px;height:78px;
  border:2px solid #78d39b;border-radius:50%;background:rgba(36,145,82,.2);
  box-shadow:0 0 0 9px rgba(36,145,82,.08);font-size:44px;color:#91e7ad;
  animation:bnEntryCheckPulse 1.3s ease-in-out infinite alternate}
.bn-entry-transition p{font-size:13px;margin:0;color:#f5ede5}
@keyframes bnEntryCheckPulse{from{transform:scale(.97)}to{transform:scale(1.04)}}
.bn-initial-skeleton{width:min(580px,92vw);margin:14vh auto 0;display:grid;gap:15px;opacity:.66}
.bn-initial-skeleton div{height:42px;background:linear-gradient(90deg,#ebe5db,#fffdf9,#ebe5db);border-radius:12px;background-size:220% 100%;animation:bnSkeletonMove 1.1s linear infinite}
.bn-initial-skeleton div:first-child{height:85px}
.bn-initial-skeleton div:last-child{height:210px}
@keyframes bnSkeletonMove{from{background-position:100% 0}to{background-position:-100% 0}}
.bn-dashboard-secondary{content-visibility:auto;contain-intrinsic-size:auto 220px}
@media(max-width:620px){
  .bn-login-logo{margin-bottom:2px}
  .bn-login-card .bn-login-toolbar{margin:2px 0 7px}
  .bn-login-body .bn-otp-boxes{width:min(100%,285px);gap:6px;min-height:52px;margin:4px auto 7px}
  .bn-login-body .bn-otp-box{font-size:21px;border-radius:11px}
  .bn-otp-success-mark{width:60px;height:60px;font-size:34px}
  .bn-login-body [data-otp-form] .bn-login-secondary{margin-top:0}
}
@media(max-width:350px) and (max-height:610px){
  .bn-login-body .bn-otp-boxes{width:min(100%,255px);min-height:46px;margin:2px auto 4px}
  .bn-login-body .bn-otp-box{font-size:19px}
  .bn-login-card .bn-login-toolbar{margin:1px 0 4px}
}
@media(prefers-reduced-motion:reduce){
  .bn-login-body .bn-otp-boxes.is-success .bn-otp-box{animation:none;opacity:0}
  .bn-login-body .bn-otp-boxes.is-success .bn-otp-success-mark{animation:none;opacity:1;transform:translate(-50%,-50%) scale(1)}
  .bn-entry-check,.bn-initial-skeleton div{animation:none}
}
/* Compact short-height tablets and landscape browser windows. */
@media (min-width:621px) and (max-height:850px){
  .bn-login-shell{padding:8px 14px;min-height:100dvh}
  .bn-login-card{min-height:0;padding:13px 22px 14px}
  .bn-login-logo{width:96px;max-height:116px;margin:0 auto 2px}
  .bn-login-card .bn-login-toolbar{margin:1px 0 4px}
  .bn-login-card>.bn-kicker{font-size:11px;line-height:1.35;margin:0}
  .bn-login-card h1{font-size:22px;line-height:1.3;margin:2px 0 3px}
  .bn-login-lead{font-size:11px;line-height:1.5;margin:0 auto 7px}
  .bn-login-tabs{padding:3px;margin-bottom:5px}
  .bn-login-tabs button{min-height:39px}
  .bn-login-notice-slot{height:4px;min-height:4px}
  .bn-login-notice-slot:empty::before{height:4px}
  .bn-login-notice-slot:has(.bn-notice-life){height:auto;min-height:0;margin:5px 0}
  .bn-login-notice-slot:has(.bn-notice-life) .bn-notice-life{position:static}
  .bn-login-form{gap:7px}
  .bn-login-form .bn-field{gap:3px}
  .bn-login-form .bn-field>span,.bn-login-form .bn-field>label{font-size:12px;line-height:1.4;margin-bottom:0}
  .bn-login-body .bn-input{min-height:43px;padding:8px 11px;font-size:14px}
  .bn-login-remember{font-size:11px;min-height:19px}
  .bn-login-submit{min-height:43px}
  .bn-login-legal-note{font-size:9px;line-height:1.4;margin:8px 0 0;padding:7px 2px 0}
  .bn-login-body .bn-otp-boxes{width:min(100%,280px);gap:6px;min-height:52px;margin:2px auto 4px}
  .bn-login-body .bn-otp-box{font-size:20px}
  .bn-phone-confirm,.bn-phone-shell,.bn-phone-input{min-height:44px}
}
@media(max-width:620px) and (max-height:700px){
  .bn-login-card{padding-block:10px}
  .bn-login-logo{width:76px;max-height:93px;margin-bottom:1px}
  .bn-login-card h1{font-size:19px;line-height:1.3;margin:2px 0}
  .bn-login-card .bn-login-toolbar{margin:1px 0 4px}
  .bn-login-lead{font-size:11px;line-height:1.4;margin-bottom:5px}
  .bn-login-tabs{margin-bottom:4px}
  .bn-login-tabs button{min-height:39px}
  .bn-login-form{gap:5px}
  .bn-login-form .bn-field>span,.bn-login-form .bn-field>label{font-size:11px;line-height:1.4}
  .bn-login-body .bn-otp-field{gap:5px}
  .bn-login-body .bn-otp-boxes{width:min(100%,260px);min-height:46px;gap:5px;margin:1px auto 3px}
  .bn-login-body .bn-otp-box{font-size:19px}
  .bn-phone-confirm,.bn-phone-shell,.bn-phone-input{min-height:44px}
  .bn-login-body [data-otp-form] .bn-login-secondary{min-height:26px}
  .bn-login-legal-note{margin-top:6px;padding-top:6px;line-height:1.4}
}
/* Last-mile small-device fit for 320x568 with longer KU/EN labels. */
@media(max-width:350px) and (max-height:610px){
 .bn-login-shell{padding-block:2px}
 .bn-login-card{padding:6px 11px}
 .bn-login-logo{width:61px;max-height:70px;margin:0 auto 1px}
 .bn-login-languages .bn-language-option{min-height:30px;padding:1px 3px}
 .bn-login-languages .bn-language-flag{width:21px;height:13px}
 .bn-login-card .bn-login-toolbar{margin:0 0 2px}
 .bn-login-card h1{font-size:16px;line-height:1.24;margin:1px 0}
 .bn-login-lead{font-size:10.5px;line-height:1.3;margin-bottom:3px}
 .bn-login-tabs{margin-bottom:2px}
 .bn-login-tabs button{min-height:36px;font-size:10.5px}
 .bn-login-form{gap:4px}
 .bn-login-notice-slot,.bn-login-notice-slot:empty::before{height:2px;min-height:2px}
 .bn-login-remember{min-height:18px}
 .bn-login-body .bn-otp-field{gap:3px}
 .bn-login-body .bn-otp-boxes{width:min(100%,235px);min-height:42px;gap:4px;margin:0 auto 2px}
 .bn-login-body .bn-otp-box{font-size:18px}
 .bn-phone-confirm,.bn-phone-shell,.bn-phone-input{min-height:40px}
 .bn-login-body [data-otp-form] .bn-login-secondary{min-height:20px;font-size:10px}
 .bn-login-legal-note{margin-top:4px;padding-top:4px;font-size:8.5px;line-height:1.3}
}

/* RC44: balanced login whitespace, locale-aware feedback, fast OTP stage. */
@media(max-width:620px){
  .bn-login-shell{
    padding-inline:15px; /* 20–25% more inset than previous 12px */
  }
  .bn-login-card{
    width:100%;margin-inline:auto;
  }
  .bn-login-lead{margin-bottom:16px} /* 50% more than 11px */
}
@media(max-width:620px) and (min-height:740px){
  .bn-login-shell{min-height:100dvh}
  .bn-login-card{
    min-height:calc(100dvh - 2 * clamp(29px,7dvh,64px));
    display:flex;flex-direction:column;justify-content:center
  }
}
@media(max-width:620px) and (max-height:739px){
  .bn-login-shell{padding-block:max(5px,env(safe-area-inset-top)) max(5px,env(safe-area-inset-bottom))}
  .bn-login-lead{margin-bottom:8px}
}
@media(min-width:621px) and (max-width:1024px){
  .bn-login-shell{padding-inline:20px;min-height:100dvh}
  .bn-login-card{margin-inline:auto}
}
.bn-login-card .bn-field-feedback{
  display:block;width:100%;font-size:11px;line-height:1.65;color:#a33b4e;
  font-weight:500;text-align:start;animation:bnLoginMessageIn .22s ease-out both
}
.bn-login-card .bn-field-feedback:empty{display:none}
.bn-login-body .bn-input.is-invalid,.bn-login-body input.is-invalid{
  border-color:#ba5364;box-shadow:0 0 0 3px rgba(180,60,82,.10)
}
.bn-login-body .bn-btn-primary:disabled,.bn-login-body .bn-login-submit:disabled:not([aria-busy="true"]){
  background:#e9e4e1!important;border-color:#e9e4e1!important;
  color:#938886!important;cursor:not-allowed;box-shadow:none;transform:none;opacity:1
}
.bn-login-body .bn-login-submit[aria-busy="true"]{
  cursor:progress;opacity:.85;pointer-events:none
}
.bn-login-body .bn-login-submit.is-sending::before{
  content:"";display:inline-block;width:15px;height:15px;margin-inline-end:9px;
  border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;
  vertical-align:-3px;animation:bnLoginSpin .65s linear infinite
}
@keyframes bnLoginSpin{to{transform:rotate(360deg)}}
.bn-login-card .bn-notice-life,.bn-login-body .bn-phone-error:not(:empty){
  background:linear-gradient(145deg,#fff7f8,#fbeef0);
  border:1px solid #e6bdc5;border-inline-start:4px solid #b6465c;
  border-radius:13px;padding:10px 13px;box-shadow:0 10px 24px rgba(68,16,28,.09);
  color:#78253b;font-size:11.5px;line-height:1.75;font-weight:550;text-align:start;
  animation:bnLoginMessageIn .25s cubic-bezier(.2,.8,.2,1) both
}
.bn-login-card .bn-notice-life::before,.bn-login-body .bn-phone-error:not(:empty)::before{
  content:"!";display:inline-grid;place-items:center;width:19px;height:19px;
  border-radius:50%;background:#b6465c;color:#fff;font:700 12px/1 Arial,sans-serif;
  margin-inline-end:8px;vertical-align:middle
}
.bn-login-card .bn-notice-success{
  background:linear-gradient(140deg,#f2faf3,#e8f5ed);
  border-color:#b9dfca;border-inline-start-color:#328b5d;color:#236747
}
.bn-login-card .bn-notice-success::before{content:"✓";background:#328b5d}
.bn-login-body .bn-phone-error:not(:empty){display:block;margin-top:7px}
@keyframes bnLoginMessageIn{from{opacity:0;transform:translateY(6px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}
.bn-login-body .bn-otp-success-mark{
  background:radial-gradient(circle at 35% 27%,#f0fff5 0%,#d5f2df 74%);
  border:2px solid #40a76a;color:#178045;
  box-shadow:0 0 0 7px rgba(39,151,80,.08),0 9px 22px rgba(20,100,55,.15)
}
.bn-login-body .bn-otp-success-mark svg{display:block;filter:drop-shadow(0 1px 1px rgba(20,100,55,.13))}
@media(prefers-reduced-motion:reduce){
  .bn-login-card .bn-field-feedback,.bn-login-card .bn-notice-life,.bn-login-body .bn-phone-error:not(:empty){animation:none}
  .bn-login-body .bn-login-submit.is-sending::before{animation:none}
}
/* Fixed non-obstructive localized toast; errors never stretch a short mobile form. */
.bn-login-notice-slot:has(.bn-notice-life){
  position:fixed;top:max(10px,env(safe-area-inset-top));
  left:50%;right:auto;transform:translateX(-50%);z-index:60;
  width:min(420px,calc(100vw - 30px));height:auto;min-height:0;
  margin:0;padding:0;overflow:visible;pointer-events:none
}
.bn-login-notice-slot:has(.bn-notice-life) .bn-notice-life{
  position:static;pointer-events:auto;width:100%;margin:0;max-height:28vh;
  overflow:auto;box-sizing:border-box
}

/* RC45: locale preference controls in internal settings. */
.bn-language-preferences{display:flex;flex-wrap:wrap;gap:9px;margin-top:7px}
.bn-language-choice{display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border:1px solid var(--banuk-border,#e5d9d0);background:#fff;border-radius:12px;cursor:pointer;font-size:12px}
.bn-language-choice input{accent-color:#4a101c;width:17px;height:17px}
.bn-language-choice:has(input:checked){background:#fbf5f3;border-color:#bd9a9d}
.bn-settings-languages small{display:block;margin-top:8px;line-height:1.8}


/* RC46: fixed mobile card with header/footer distributed inside, not stretched
   or shrunk with the on-screen keyboard. Title stays aligned to RC45. */
.bn-login-card>.bn-kicker{display:none!important}
.bn-phone-input{font-variant-numeric:tabular-nums;letter-spacing:.045em}
.bn-phone-input::placeholder{letter-spacing:.045em}
@media(max-width:620px) and (min-height:740px){
 .bn-login-shell{min-height:100dvh;padding-block:clamp(29px,7dvh,64px)}
 .bn-login-card{
   height:calc(100dvh - 2 * clamp(29px,7dvh,64px));
   min-height:0;
   display:flex;flex-direction:column;justify-content:flex-start;
   padding:0 clamp(14px,4vw,20px) 0;
   overflow:visible
 }
 .bn-login-logo{
   width:clamp(109px,16.25dvh,150px);
   max-height:clamp(125px,18.2dvh,182px);
   height:auto;object-fit:contain;
   margin:clamp(18px,calc(7dvh - 34px),35px) auto 0
 }
 .bn-login-card .bn-login-toolbar{margin:4px 0 0}
 .bn-login-card h1{
   margin-top:clamp(50px,calc(28.5dvh - 154px),115px);
   margin-bottom:3px
 }
 .bn-login-lead{margin:3px auto 18px}
 .bn-login-tabs{margin-bottom:14px}
 .bn-login-form{gap:9px}
 .bn-login-legal-note{
   margin:auto 2px 0;padding:9px 2px 0;
   margin-bottom:clamp(18px,calc(7dvh - 34px),35px);
   flex-shrink:0
 }
}
/* On short mobile screens preserve a single-screen compact card. */
@media(max-width:620px) and (max-height:739px){
 .bn-login-card{justify-content:center}
 .bn-login-card .bn-login-toolbar{margin-block:4px 6px}
 .bn-login-logo{width:clamp(90px,16.25dvh,119px);max-height:clamp(102px,18.2dvh,133px);height:auto;object-fit:contain}
 .bn-login-card h1{margin-top:5px}
 .bn-login-form{gap:6px}
 .bn-login-legal-note{margin-top:11px}
}
@media(max-width:350px) and (max-height:610px){
 .bn-login-logo{width:79px;max-height:91px;margin-top:2px}
 .bn-login-card h1{margin-top:2px}
 .bn-login-legal-note{margin-top:5px}
}
/* OTP has room to receive native Android/Samsung autofill; selected digits
   stay centered and numerically separated as individual boxes. */
.bn-login-body .bn-otp-boxes{justify-content:center}

/* RC46 measured alignment refinement (large modern mobile screens only). */
@media(max-width:620px) and (min-height:740px){
 .bn-login-card h1{margin-bottom:.3px}
 .bn-login-tabs{margin-bottom:8.3px}
 .bn-login-form .bn-phone-field{gap:4.4px}
}


/* RC47 — one uninterrupted background, with the warm reflection biased right.
   Use normal document painting: fixed CSS background layers caused banding in
   long / stitched screenshots and some Android mobile browsers. */
html:has(> body.bn-login-body){min-height:100%;background-color:#300914}
body.bn-login-body{
  min-height:100dvh;
  background-color:#3c0d19!important;
  background-image:
    radial-gradient(ellipse 55% 60% at 63% 44%,rgba(246,232,231,.43) 0%,rgba(207,154,164,.27) 28%,rgba(124,49,65,.12) 54%,transparent 77%),
    linear-gradient(132deg,#300911 0%,#4a101c 43%,#3b0b18 74%,#290712 100%)!important;
  background-size:100% 100%!important;
  background-repeat:no-repeat!important;
  background-attachment:scroll!important;
}
body.bn-login-body::before,body.bn-login-body::after{display:none!important}

/* Time to enter the SMS code: tied to the real server challenge expiration. */
.bn-login-body .bn-otp-timer{
  display:flex;align-items:center;justify-content:center;gap:8px;
  min-height:30px;max-width:max-content;margin:4px auto 0;
  padding:4px 13px;border-radius:999px;
  border:1px solid rgba(145,106,46,.22);
  background:rgba(255,251,246,.88);
  color:#745a45;font-size:11px;font-weight:600;line-height:1.5;
  font-variant-numeric:tabular-nums;
}
.bn-login-body .bn-otp-timer-icon{width:15px;height:15px;flex:none;color:#a28250}
.bn-login-body .bn-otp-timer strong{
  min-width:39px;font-size:12px;font-weight:800;
  color:var(--banuk-burgundy);direction:ltr;text-align:center;
}
.bn-login-body .bn-otp-timer.is-urgent{
  background:#fff1ee;border-color:#e5b7b4;color:#a9444c
}
.bn-login-body .bn-otp-timer.is-urgent strong,.bn-login-body .bn-otp-timer.is-urgent .bn-otp-timer-icon{color:#b53d4d}
.bn-login-body .bn-otp-timer.is-expired{background:#f8edf0;border-color:#dfb6bf;color:#9c4053}
.bn-login-body .bn-otp-timer.is-expired strong{color:#9c4053}
@media(max-width:620px){
  .bn-login-body .bn-otp-timer{min-height:26px;margin-top:0;padding:3px 11px;font-size:10px}
  .bn-login-body .bn-otp-timer-icon{width:14px;height:14px}
}
@media(max-width:350px) and (max-height:610px){
  .bn-login-body .bn-otp-timer{min-height:23px;margin-top:-2px;padding:2px 8px;font-size:9px}
}
/* OTP adds a timer; reclaim unused vertical spacing only on verify screens. */
@media(max-width:620px) and (min-height:740px){
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) h1{
   margin-top:clamp(30px,calc(28.5dvh - 170px),99px)
 }
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-lead{
   margin-bottom:13px
 }
 .bn-login-body [data-otp-form] .bn-login-secondary{min-height:27px}
}

/* RC48 — verification timer belongs immediately under the five code cells.
   For OTP only, reclaim the excess language-to-heading space rather than
   allowing the card's fixed-height footer to escape its white boundary. */
.bn-login-body [data-otp-form] .bn-otp-field{gap:5px}
.bn-login-body [data-otp-form] .bn-otp-boxes{
  margin:3px auto 0;
}
.bn-login-body [data-otp-form] .bn-otp-inline-error:empty{display:none}
.bn-login-body [data-otp-form] .bn-otp-timer{
  margin:4px auto 0;
  min-height:26px;
  padding:3px 11px;
}
.bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-legal-note{
  padding-top:7px;
}
@media(max-width:620px) and (min-height:740px){
  .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) h1{
    margin-top:clamp(7px,1.5dvh,15px);
  }
  .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-lead{margin-bottom:10px}
  .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-tabs{margin-bottom:5px}
  .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-form{gap:6px}
  .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-legal-note{margin-bottom:12px}
  .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) [data-otp-form] .bn-login-secondary{
    min-height:23px;margin-top:0
  }
}
@media(max-width:620px) and (max-height:739px){
  .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-logo{margin-top:1px}
  .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) h1{margin-top:3px}
  .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-lead{margin-bottom:5px}
  .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-tabs{margin-bottom:3px}
  .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-form{gap:4px}
  .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-legal-note{margin-top:5px;padding-top:5px}
  .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) [data-otp-form] .bn-login-secondary{
    margin-top:0;min-height:18px
  }
}

/* Ensure inline error is below the fixed-position timer, never between the
   code cells and their remaining-time control. */
@media(max-width:620px) and (min-height:740px){
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) h1{margin-top:3px}
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-lead{margin-bottom:6px}
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-legal-note{margin-bottom:9px}
 /* Long language labels must not force the password screen past the card. */
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-password-form]) h1{margin-top:4px}
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-password-form]) .bn-login-lead{margin-bottom:12px}
}
/* Final 740–775px height guard: long KU/EN copy retains an inner footer inset. */
@media(max-width:620px) and (min-height:740px) and (max-height:775px){
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-legal-note{margin-bottom:5px}
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-password-form]) .bn-login-legal-note{margin-bottom:10px}
}
@media(max-width:620px) and (min-height:740px) and (max-height:775px){
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-logo,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-password-form]) .bn-login-logo{
   width:clamp(98px,calc(16.25dvh - 15px),125px);
   max-height:clamp(107px,calc(18.2dvh - 15px),140px)
 }
}


/* RC49: single in-card message region, below the login-method selector.
   No fixed browser-edge notification or card-edge overlay. */
.bn-login-card .bn-login-notice-slot:has(.bn-notice-life){
  position:relative!important;inset:auto!important;transform:none!important;
  width:100%!important;height:auto!important;min-height:0!important;
  margin:4px auto 8px!important;overflow:visible!important;z-index:2;
  pointer-events:auto!important;display:block!important;
}
.bn-login-card .bn-login-notice-slot:has(.bn-notice-life) .bn-notice-life{
  position:static!important;inset:auto!important;transform:none;
  max-height:none!important;width:100%;margin:0!important;
  font-size:11px;line-height:1.65;padding:8px 10px;
  border-radius:11px;box-shadow:0 3px 14px rgba(70,20,36,.09)
}
.bn-login-card .bn-login-notice-slot:empty{
  position:relative;min-height:0;height:0;margin:0
}
.bn-login-card .bn-login-notice-slot:empty::before{display:none}

/* Countdown is directly below the 5-digit verification heading, before cells. */
.bn-login-body [data-otp-form] .bn-otp-field{gap:5px}
.bn-login-body [data-otp-form] .bn-otp-timer{
  margin:1px auto 5px;min-height:24px;
  padding:3px 10px;font-size:10px
}
.bn-login-body [data-otp-form] .bn-otp-boxes{margin:2px auto 0}
.bn-login-body [data-otp-form] .bn-otp-inline-error{
  max-width:100%;font-size:10.5px;line-height:1.5;
  overflow-wrap:anywhere
}
.bn-login-body [data-otp-form] .bn-otp-inline-error:empty{display:none}

/* Clear the expired challenge visually and offer a single retry action. */
.bn-login-body .bn-otp-expired-panel[hidden],
.bn-login-body .bn-otp-boxes[hidden],
.bn-login-body .bn-otp-timer[hidden]{display:none!important}
.bn-login-body .bn-otp-boxes.is-expiring{
  pointer-events:none;animation:bnOtpExpireCollapse .34s ease-in forwards
}
@keyframes bnOtpExpireCollapse{
  from{opacity:1;transform:scale(1);max-height:120px}
  to{opacity:0;transform:scale(.88);max-height:0}
}
.bn-login-body .bn-otp-expired-panel{
  display:grid;justify-items:center;gap:8px;
  width:100%;margin:5px auto 0;text-align:center;
  animation:bnOtpRetryAppear .28s ease-out both
}
.bn-login-body .bn-otp-expired-panel p{
  color:#954357;font-size:11px;font-weight:600;line-height:1.6;
  margin:0;overflow-wrap:anywhere
}
.bn-login-body .bn-otp-retry-button{
  width:min(100%,275px);min-height:38px;
  font-size:12px;border-radius:11px
}
.bn-login-body .bn-otp-retry-button[aria-busy="true"]{
  opacity:.75;cursor:progress
}
@keyframes bnOtpRetryAppear{
  from{opacity:0;transform:translateY(8px) scale(.97)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
/* Ensure localized legal copy sits within the rounded card. */
@media(max-width:620px){
  .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-legal-note{
    margin-top:auto!important;margin-bottom:clamp(10px,2dvh,17px)!important;
    padding-top:5px!important;padding-bottom:0;
    font-size:clamp(8px,2.3vw,10px);line-height:1.5
  }
  .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) h1{
    margin-top:clamp(0px,1.5dvh,12px)!important
  }
  .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-lead{
    margin-bottom:6px!important
  }
  .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-tabs{
    margin-bottom:4px!important
  }
  .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-form{gap:5px}
  .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) [data-otp-form] .bn-login-secondary{
    min-height:21px;margin-top:3px;font-size:11px
  }
  .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-notice-slot:has(.bn-notice-life){
    margin:2px auto 4px!important
  }
}
@media(max-width:620px) and (max-height:730px){
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-logo{
    width:clamp(76px,15dvh,102px);max-height:clamp(85px,17dvh,120px)
 }
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-toolbar{margin-block:0 3px}
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-lead{margin-bottom:3px!important}
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-otp-boxes{
   width:min(100%,255px);min-height:44px
 }
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-legal-note{
   margin-top:5px!important;margin-bottom:5px!important
 }
}
@media(prefers-reduced-motion:reduce){
 .bn-login-body .bn-otp-boxes.is-expiring,
 .bn-login-body .bn-otp-expired-panel{animation:none}
}


/* A localized banner is the only status surface and must not push short-phone
   password or OTP content beyond the card's lower legal boundary. */
@media(max-width:620px){
  .bn-login-card:has(.bn-notice-life) h1{margin-top:0!important}
  .bn-login-card:has(.bn-notice-life) .bn-login-lead{margin-bottom:4px!important}
  .bn-login-card:has(.bn-notice-life) .bn-login-tabs{margin-bottom:3px!important}
  .bn-login-card:has(.bn-notice-life) .bn-login-form{gap:5px}
  .bn-login-card:has(.bn-notice-life) .bn-login-legal-note{
    margin-top:auto!important;margin-bottom:8px!important;
    font-size:9px;line-height:1.4
  }
}

/* RC50: explicit equal spacing around the verification area.
   Three OTP states share these same geometric invariants:
   phone preview → 5-digit title equals "other number" → footer divider;
   the other-number link sits 30% farther from its previous sibling. */
.bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]){
  --bn-otp-balanced-gap:clamp(5px,1.32dvh,12px);
  --bn-otp-secondary-gap:11.7px;
  display:flex;
  flex-direction:column;
}
.bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) h1{
  margin-top:auto!important;
}
.bn-login-body [data-otp-form]{
  gap:0!important;
}
.bn-login-body [data-otp-form] > .bn-field:first-of-type{
  margin-bottom:var(--bn-otp-balanced-gap)!important;
}
.bn-login-body [data-otp-form] > .bn-login-secondary{
  margin-top:var(--bn-otp-secondary-gap)!important;
  min-height:0!important;
  line-height:1.65;
}
.bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-legal-note{
  margin-top:var(--bn-otp-balanced-gap)!important;
}
@media(max-width:620px){
  .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]){
    --bn-otp-secondary-gap:10.4px;
  }
}
/* Distribute spare height across three flexible, noncritical pauses rather
   than depositing it all between the language choices and title. */
.bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-tabs,
.bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-panel:not([hidden]){
  margin-top:auto!important;
}
/* The live-code row includes a one-pixel border in its visual flow. */
.bn-login-card:has(.bn-otp-boxes:not([hidden])) .bn-login-legal-note{
  margin-top:calc(var(--bn-otp-balanced-gap) + 1px)!important;
}
/* 1px line-border offset of the live input group; higher specificity keeps
   the two measured edge-to-edge gaps equal in the active verification state. */
.bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form] .bn-otp-boxes:not([hidden])) .bn-login-legal-note{
  margin-top:calc(var(--bn-otp-balanced-gap) + 1px)!important;
}

/* RC51 — stabilize the header across phone, OTP and OTP-expired states.
   Earlier free-space auto margins on title, tabs and active panel split space
   differently when the five code cells collapsed. Use one shared vertical
   rhythm for the header, independent of the current form's height. */
@media(max-width:620px) and (min-height:740px){
 .bn-login-card{justify-content:flex-start}
 .bn-login-card h1,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) h1{
   margin-top:clamp(12px,2.5dvh,22px)!important;
   margin-bottom:3px!important;
 }
 .bn-login-card .bn-login-lead,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-lead{
   margin-top:3px!important;margin-bottom:12px!important
 }
 .bn-login-card .bn-login-tabs,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-tabs{
   margin-top:0!important;margin-bottom:9px!important
 }
 .bn-login-card .bn-login-panel:not([hidden]),
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-panel:not([hidden]){
   margin-top:0!important
 }
 .bn-login-card .bn-login-legal-note{
   margin-top:auto!important;margin-bottom:clamp(10px,2dvh,17px)!important;
 }
}
@media(max-width:620px) and (max-height:739px){
 .bn-login-card,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]){
   justify-content:flex-start
 }
 .bn-login-card .bn-login-logo,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-logo{
    width:clamp(76px,15dvh,102px)!important;
    max-height:clamp(85px,17dvh,120px)!important;
    margin-top:2px!important
 }
 .bn-login-card .bn-login-toolbar,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-toolbar{
    margin:4px 0!important
 }
 .bn-login-card h1,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) h1{
    margin-top:4px!important;margin-bottom:2px!important
 }
 .bn-login-card .bn-login-lead,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-lead{
    margin-top:2px!important;margin-bottom:6px!important
 }
 .bn-login-card .bn-login-tabs,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-tabs{
    margin-top:0!important;margin-bottom:6px!important
 }
 .bn-login-card .bn-login-panel:not([hidden]),
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-panel:not([hidden]){
    margin-top:0!important
 }
 .bn-login-card .bn-login-legal-note{
    margin-top:auto!important;margin-bottom:8px!important
 }
}

/* Reserve one stable OTP content region: expiry must not reflow the card. */
@media(max-width:620px) and (min-height:740px){
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-legal-note{
   margin-top:auto!important;
 }
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-panel:not([hidden]){
   display:flex;flex-direction:column;flex:1 1 auto;min-height:0;
 }
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) [data-otp-form]{
   display:flex;flex-direction:column;flex:1 1 auto;min-height:0
 }
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) [data-otp-form]>.bn-login-secondary{
   margin-top:auto!important;
 }
}
@media(max-width:620px) and (min-height:740px) and (max-height:775px){
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-logo{
   width:clamp(109px,16.25dvh,150px)!important;
   max-height:clamp(125px,18.2dvh,182px)!important
 }
}
/* Keep the alternate-number action close to the OTP controls when the
   verification area has more spare height than its content needs. */
@media(max-width:620px) and (min-height:740px){
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) [data-otp-form]>.bn-login-secondary{
   flex:none;
   margin-top:var(--bn-otp-secondary-gap)!important;
   min-height:22px!important
 }
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-panel:not([hidden]){
   flex:0 0 auto
 }
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) [data-otp-form]{
   flex:0 0 auto
 }
}
/* The footer has the same fixed bottom inset for both OTP substates;
   reserve the collapsed-code vertical slot so retry does not shift its link. */
@media(max-width:620px){
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form] .bn-otp-boxes:not([hidden])) .bn-login-legal-note{
   margin-top:auto!important
 }
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-otp-expired-panel:not([hidden]){
   padding-top:clamp(18px,2.75dvh,23px)!important
 }
}
@media(max-width:620px) and (min-height:740px) and (max-height:775px){
 .bn-login-card .bn-login-logo,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-logo{
   width:clamp(98px,calc(16.25dvh - 15px),125px)!important;
   max-height:clamp(107px,calc(18.2dvh - 15px),140px)!important
 }
 .bn-login-card h1,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) h1{
   margin-top:5px!important
 }
}
@media(max-width:620px) and (max-height:739px){
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) h1{
    margin-top:0px!important
 }
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-toolbar{
    margin-bottom:3px!important
 }
}
/* Short phones: compensate for the older OTP-specific header padding so the
   tab strip and phone preview don't jump two pixels between stages. */
@media(max-width:620px) and (max-height:739px){
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-lead{
   margin-bottom:4px!important
 }
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-otp-expired-panel:not([hidden]){
   padding-top:8px!important
 }
}
/* Align the confirmed-phone row to the phone-entry row despite the different
   field border treatments (subpixel differences on mobile DPR=1 tests). */
@media(max-width:620px){
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-panel:not([hidden]){
   transform:translateY(1px)
 }
}
/* At 740–775px device height, long English/Kurdish strings need slightly
   shorter shared form spacers. Apply to all stages to retain header alignment. */
@media(max-width:620px) and (min-height:740px) and (max-height:775px){
 .bn-login-card .bn-login-lead,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-lead{
   margin-bottom:8px!important
 }
 .bn-login-card .bn-login-tabs,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-tabs{
   margin-bottom:3px!important
 }
}


/* RC52: twenty-second full-timer blinking warning and smaller valid-phone tick. */
.bn-login-body .bn-otp-timer.is-blinking{
  animation:bnOtpFinalBlink .85s ease-in-out infinite!important;
  will-change:opacity;
}
@keyframes bnOtpFinalBlink{
  0%,100%{opacity:1}
  50%{opacity:.28}
}
.bn-login-body .bn-phone-confirm .bn-phone-ok{
  transform:scale(.7);
  transform-origin:center;
}
/* Triple the confirm-phone to five-digit-title gap from RC51.
   Match the lower white-card divider gap for the existing symmetric layout. */
.bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]){
  --bn-otp-balanced-gap:clamp(15px,3.96dvh,36px);
}
@media(prefers-reduced-motion:reduce){
 .bn-login-body .bn-otp-timer.is-blinking{animation:none!important;border-color:#aa364a;background:#ffe1e5}
}

/* RC52: shared responsive login frame across password, phone, OTP and expiry.
   One outer dimension and one fixed header rhythm per viewport. */
@media(max-width:620px){
 .bn-login-shell{min-height:100dvh;align-items:center;justify-content:center}
 .bn-login-card,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]){
   box-sizing:border-box;min-height:0!important;max-height:none;
   display:flex;flex-direction:column;justify-content:flex-start!important;
   overflow:visible;
 }
 .bn-login-card .bn-login-panel:not([hidden]),
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-panel:not([hidden]){
   flex:0 0 auto!important;margin-top:0!important
 }
 .bn-login-card .bn-login-legal-note,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-legal-note{
   margin-top:auto!important;flex-shrink:0
 }
}
@media(max-width:620px) and (min-height:740px){
 .bn-login-card,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]){
   height:calc(100dvh - 2 * clamp(29px,7dvh,64px))!important
 }
}
@media(max-width:620px) and (max-height:739px){
 .bn-login-card,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]){
   height:calc(100dvh - 2 * clamp(9px,3dvh,22px))!important;
 }
 .bn-login-card .bn-login-logo,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-logo{
   width:clamp(76px,15dvh,102px)!important;max-height:clamp(85px,17dvh,120px)!important
 }
}
@media(min-width:621px){
 .bn-login-card,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]){
   box-sizing:border-box;
   height:min(760px,calc(100dvh - 36px));
   min-height:0!important;max-height:none;
   display:flex;flex-direction:column;justify-content:flex-start!important
 }
 .bn-login-card .bn-login-logo,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-logo{
   width:clamp(105px,16dvh,150px);height:auto;object-fit:contain;
 }
 .bn-login-card h1,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) h1{margin-top:12px!important}
 .bn-login-card .bn-login-panel:not([hidden]),
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-panel:not([hidden]){
   flex:0 0 auto!important;margin-top:0!important
 }
 .bn-login-card .bn-login-legal-note,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-legal-note{
   margin-top:auto!important;margin-bottom:12px!important;flex-shrink:0
 }
}

/* Shared header invariants: all four flows use exactly the same vertical
   rhythm and do not borrow whitespace from form content or alert state. */
@media(max-width:620px) and (max-height:739px){
 .bn-login-card .bn-login-toolbar,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-toolbar{
   margin:4px 0!important
 }
 .bn-login-card h1,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) h1{
   margin:4px 0 2px!important
 }
 .bn-login-card .bn-login-lead,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-lead{
   margin:2px auto 6px!important
 }
 .bn-login-card .bn-login-tabs,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-tabs{
   margin:0 0 6px!important
 }
}
@media(min-width:621px){
 .bn-login-card .bn-login-logo,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-logo{
   width:clamp(100px,14dvh,138px)!important;
   max-height:clamp(114px,16dvh,155px)!important;
   margin:6px auto 2px!important;
   object-fit:contain
 }
 .bn-login-card .bn-login-toolbar,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-toolbar{
   margin:3px 0 7px!important
 }
 .bn-login-card h1,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) h1{
   font-size:clamp(19px,2.4dvh,24px);
   line-height:1.35;
   margin:6px 0 3px!important
 }
 .bn-login-card .bn-login-lead,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-lead{
   font-size:11.5px;line-height:1.6;margin:2px auto 12px!important
 }
 .bn-login-card .bn-login-tabs,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-tabs{
   margin:0 0 8px!important
 }
 .bn-login-card .bn-login-panel:not([hidden]),
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-panel:not([hidden]){
   transform:none!important
 }
}

/* Long-lived two-minute OTP must share the same lower divider as all other
   states. Older live-code rule had higher selector specificity than footer auto. */
.bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form] .bn-otp-boxes:not([hidden])) .bn-login-legal-note{
  margin-top:auto!important;
}
@media(min-width:621px) and (max-width:900px) and (min-height:900px){
 .bn-login-card,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]){
   height:min(850px,calc(100dvh - 40px))!important;
 }
}

/* Legal divider and legal copy always occupy one identical bottom slot,
   regardless of chosen sign-in method or pending/expired OTP state. */
@media(max-width:620px){
 .bn-login-card .bn-login-legal-note,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-legal-note,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form] .bn-otp-boxes:not([hidden])) .bn-login-legal-note{
   font-size:clamp(8.5px,2.3vw,10px)!important;line-height:1.5!important;
   padding:7px 2px 0!important;gap:0!important;
   margin-top:auto!important;
   margin-bottom:clamp(8px,2dvh,17px)!important;
 }
}

/* Desktop and tablet: the footer divider has one shared inset, including
   verification views (which previously inherited an extra 5px difference). */
@media(min-width:621px){
 .bn-login-card .bn-login-legal-note,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-legal-note,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form] .bn-otp-boxes:not([hidden])) .bn-login-legal-note{
   padding:8px 10px 0!important;line-height:1.65!important;
   margin-top:auto!important;margin-bottom:12px!important;
 }
}
/* Compact phone plus long Kurdish/English heading: reclaim only shared
   header space so live OTP has room without moving its fixed legal footer. */
@media(max-width:360px) and (max-height:800px){
 .bn-login-card .bn-login-lead,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-lead{
   margin-bottom:0!important
 }
 .bn-login-card .bn-login-tabs,
 .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]) .bn-login-tabs{
   margin-bottom:2px!important
 }
}


/* RC53: proportionate 30% reduction in the full final OTP success disc. */
.bn-login-body .bn-otp-success-mark{
  width:47.6px!important;height:47.6px!important;font-size:25px!important;
  border-width:1.5px!important;
  box-shadow:0 0 0 5px rgba(39,151,80,.08),0 6px 15px rgba(20,100,55,.15)!important
}
.bn-login-body .bn-otp-success-mark svg{width:27.3px;height:27.3px}

/* Faster language/mode response: locale text changes without navigation;
   avoid running an entrance animation on each tab switch. */
.bn-login-body .bn-login-panel:not([hidden]){
  animation:none!important;
}
.bn-login-languages .bn-language-option{
  transition:color 75ms ease,background-color 75ms ease!important;
}
@media(prefers-reduced-motion:reduce){
  .bn-login-languages .bn-language-option{transition:none!important}
}

/* RC55: mandatory agreement-only onboarding view; readable on mobile and desktop. */
.bn-agreement-only-notice{border:1px solid rgba(153,94,28,.26);background:rgba(248,239,223,.76);padding:clamp(16px,2.8vw,28px)!important;line-height:1.9}
.bn-agreement-only-notice h2{font-size:clamp(17px,2vw,23px);margin:0 0 8px}
.bn-agreement-only-notice p{margin:6px 0}
.bn-agreement-only-notice a{color:#82243b;text-decoration:underline;text-underline-offset:3px}

/* RC55: accessible termination request and internal review surfaces. */
.bn-termination-box{display:block;width:100%;padding:12px;border:1px solid #d6c5bd;border-radius:12px}
.bn-termination-box summary{cursor:pointer;font-weight:600}
.bn-termination-box form{display:grid;gap:12px;padding-top:12px}
.bn-termination-review{padding:18px}
.bn-termination-review form{display:grid;gap:12px}
.bn-termination-review .bn-actions{display:flex;gap:10px;flex-wrap:wrap}
.bn-termination-review textarea,.bn-termination-box textarea{width:100%;min-height:110px;box-sizing:border-box}
/* RC57: document-first, centralised agreement-signing experience. */
.bn-agreement-card{overflow:visible}
.bn-agreement-card .bn-agreement-document{overflow-y:auto;overscroll-behavior:contain;max-height:min(58dvh,680px);font-size:clamp(12px,1.06vw,14px);line-height:2.15}
.bn-agreement-card .bn-agreement-document h2{font-size:clamp(13px,1.08vw,15px);margin-block:22px 9px}
.bn-agreement-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;padding:12px 20px 20px}
.bn-agreement-sign-box.bn-sign-center{display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;max-width:700px;width:calc(100% - 44px);margin:14px auto 28px;padding:clamp(22px,3vw,38px);box-sizing:border-box;border:1px solid rgba(144,84,66,.22);border-radius:22px;background:radial-gradient(circle at 50% 0%,rgba(255,255,255,.93),rgba(250,246,239,.92) 78%),linear-gradient(140deg,#fdfaf6,#f1e9df);box-shadow:0 16px 38px rgba(52,30,30,.07),inset 0 1px 0 rgba(255,255,255,.85);color:#2d1c1e}
.bn-sign-center .bn-sign-inner{width:100%;max-width:490px;display:flex;align-items:center;flex-direction:column;gap:9px;min-width:0}
.bn-sign-center .bn-sign-emblem{width:64px;height:64px;display:grid;place-items:center;border-radius:19px;color:#7b1735;font-size:32px;background:linear-gradient(145deg,#f3dedf,#fff5ee);border:1px solid rgba(128,61,65,.14);margin-bottom:3px}
.bn-sign-center .bn-sign-overline{font-size:10px;letter-spacing:.13em;color:#a78042;font-weight:800;direction:ltr}
.bn-sign-center h3{margin:0;font-size:clamp(19px,2vw,24px);font-weight:800;line-height:1.55}
.bn-sign-center .bn-sign-intro{font-size:clamp(12px,1vw,13px);color:#685e5d;line-height:1.9;max-width:440px;margin:0 0 3px}
.bn-sign-center .bn-sign-phone{border:1px solid #eaded2;border-radius:28px;padding:6px 16px;color:#4e3e3f;background:#fff;font-weight:700;font-size:13px;unicode-bidi:isolate}
.bn-sign-center .bn-sign-code-label{font-weight:750;font-size:13px;margin-top:12px}
.bn-sign-center .bn-sign-otp-boxes{width:100%;max-width:384px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(5px,1.2vw,10px);margin:5px auto 1px;direction:ltr}
.bn-sign-center .bn-sign-otp-boxes .bn-otp-cell{box-sizing:border-box;width:100%;min-width:0;height:clamp(47px,5.2vw,61px);border-radius:13px;border:1.5px solid #dccbc3;background:#fff;box-shadow:0 2px 3px rgba(49,27,27,.04);font-size:clamp(21px,2.2vw,26px);font-weight:750;font-variant-numeric:tabular-nums;direction:ltr;transition:box-shadow .16s,border-color .16s,background .16s,transform .16s}
.bn-sign-center .bn-sign-otp-boxes .bn-otp-cell:focus-visible{outline:0;border-color:#81243f;box-shadow:0 0 0 4px rgba(129,36,63,.13);transform:translateY(-1px)}
.bn-sign-center .bn-sign-otp-boxes .bn-otp-cell.is-invalid{border-color:#bd304e;background:#fff2f3;box-shadow:0 0 0 2px rgba(189,48,78,.14)}
.bn-sign-center .bn-sign-otp-boxes .bn-otp-cell:disabled{background:#f3eeec;color:#9b8b89}
.bn-sign-center .bn-sign-clock{font-size:12px;background:#fffefa;border:1px solid #eadfcf;border-radius:22px;padding:7px 14px;color:#7b6764;display:flex;gap:9px;align-items:center}
.bn-sign-center .bn-sign-clock strong{font-size:13px;color:#602e38;font-variant-numeric:tabular-nums;min-width:43px}
.bn-sign-center .bn-sign-clock.is-urgent{background:#fde9eb;border-color:#d88c9d;color:#aa344e;animation:bn-contract-last-seconds .85s linear infinite}
.bn-sign-center .bn-sign-clock.is-expired{background:#f9eeee;border-color:#d89ba5;color:#a2334a}
@keyframes bn-contract-last-seconds{0%,100%{opacity:1}50%{opacity:.38}}
.bn-sign-center .bn-sign-error{box-sizing:border-box;width:100%;max-width:480px;background:#fff0f2;border:1px solid #d88c9d;border-radius:11px;color:#9b233e;text-align:center;font-size:12px;font-weight:700;line-height:1.8;padding:10px 14px}
.bn-sign-center .bn-sign-error[hidden]{display:none!important}
.bn-sign-center .bn-agreement-consent{width:100%;box-sizing:border-box;display:flex;align-items:flex-start;gap:12px;text-align:start;border-radius:13px;padding:14px 16px;margin-top:9px;background:#fff;box-shadow:0 2px 8px rgba(44,28,28,.04);font-size:12px;line-height:1.9}
.bn-sign-center .bn-agreement-consent input{flex:0 0 20px;width:20px;height:20px;margin-top:2px;accent-color:#78213e;cursor:pointer}
.bn-sign-center .bn-agreement-consent.is-invalid{border-color:#bd304e;background:#fff4f5;box-shadow:0 0 0 3px rgba(189,48,78,.12)}
.bn-sign-center .bn-sign-actions{width:100%;display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:12px}
.bn-sign-center .bn-sign-action{width:100%;max-width:370px;min-height:48px;border-radius:12px;font-size:13px;font-weight:800;display:flex;justify-content:center;align-items:center}
.bn-sign-center .bn-sign-actions .bn-btn-ghost{border:0;background:transparent;color:#7b2840;text-decoration:underline;text-underline-offset:4px;padding:7px 12px}
.bn-sign-center .bn-sign-actions [disabled]{opacity:.55;cursor:not-allowed}
.bn-sign-center .bn-sign-action:focus-visible,.bn-sign-center .bn-sign-actions .bn-btn-ghost:focus-visible{outline:3px solid rgba(124,36,62,.32);outline-offset:3px}
@media(max-width:620px){
 .bn-agreement-sign-box.bn-sign-center{width:calc(100% - 24px);margin:14px auto 20px;padding:20px 13px;border-radius:17px}
 .bn-sign-center .bn-sign-otp-boxes{max-width:320px;gap:5px}
 .bn-sign-center .bn-sign-otp-boxes .bn-otp-cell{height:50px;border-radius:10px;font-size:21px}
 .bn-sign-center .bn-agreement-consent{font-size:11px;padding:12px 10px}
 .bn-agreement-card .bn-agreement-document{padding:16px 14px;max-height:52dvh}
 .bn-agreement-actions{padding-inline:12px}
}
@media(prefers-reduced-motion:reduce){.bn-sign-center .bn-sign-clock.is-urgent{animation:none;background:#fde9eb;border-color:#b83352}}

/* Signed QA contracts remain accessible in a collapsed audit/history section. */
.bn-agreement-history{border:1px solid #e6d9cd;border-radius:15px;background:#fbf8f4;padding:10px;margin-top:14px}
.bn-agreement-history>summary{cursor:pointer;font-weight:700;color:#665a57;padding:12px;font-size:12px}
.bn-agreement-history[open]>summary{margin-bottom:12px}
.bn-agreement-history .bn-agreement-card{margin-bottom:12px}


/* BANUK single/limited locales: center the group at its own natural width. */
.bn-language-grid.bn-language-sidebar,
.bn-language-grid.bn-language-drawer,
.bn-language-grid.bn-login-languages,
.bn-language-grid.bn-language-desktop{
  display:flex;
  direction:ltr;
  flex-flow:row nowrap;
  justify-content:center;
  align-items:center;
  width:100%;
  margin-inline:auto;
  text-align:center;
}
.bn-language-grid .bn-language-option{flex:0 0 auto}
@media(max-width:760px){.bn-language-grid.bn-language-sidebar{display:none!important}}
@media(min-width:981px){.bn-language-grid.bn-language-drawer{display:none!important}}

/* Internal production workspace entry, same navigation treatment as panel tabs. */
.bn-nav a.bn-workshop-admin-link,.bn-mobile-drawer-nav a.bn-workshop-admin-link{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 14px;border-radius:12px;color:#dce9e6;font-weight:600;font-size:14px;text-decoration:none;border:1px solid rgba(198,161,91,.24)}
.bn-nav a.bn-workshop-admin-link:hover,.bn-mobile-drawer-nav a.bn-workshop-admin-link:hover{background:rgba(42,161,147,.18);color:#fff}

/* BANUK independent mail, support, and partner inbox notifications */
.bn-brand{position:relative}
.bn-quick-notifications{position:absolute;top:5px;left:2px;display:flex;align-items:center;gap:7px;direction:ltr;z-index:3}
.bn-quick-action{position:relative;border:1px solid rgba(255,255,255,.17);background:rgba(255,255,255,.09);color:#fff;display:grid;place-items:center;width:37px;height:37px;min-width:37px;border-radius:11px;cursor:pointer;transition:background .15s,transform .15s}
.bn-quick-action:hover{background:rgba(255,255,255,.2);transform:translateY(-1px)}
.bn-quick-action:focus-visible{outline:2px solid #fff;outline-offset:2px}
.bn-quick-action svg{width:19px;height:19px;stroke:currentColor;stroke-width:1.85;stroke-linecap:round;stroke-linejoin:round;fill:none}
.bn-quick-count{position:absolute;top:-7px;right:-7px;min-width:19px;height:19px;line-height:19px;text-align:center;padding:0 3px;border-radius:10px;background:#be263f;color:#fff;border:1px solid #132d28;font:700 11px/19px Vazirmatn,Tahoma,sans-serif;direction:ltr}
.bn-quick-count[hidden],.bn-quick-dot[hidden]{display:none!important}
.bn-quick-dot{position:absolute;width:10px;height:10px;right:0;top:0;background:#e64150;border:2px solid #12362f;border-radius:50%}
.bn-fa-envelope{mask-image:url("../icons/fontawesome/envelope.svg");-webkit-mask-image:url("../icons/fontawesome/envelope.svg")}
.bn-mobile-drawer .bn-quick-notifications{top:7px;left:12px}
@media(max-width:980px){.bn-quick-action{width:34px;height:34px;min-width:34px}}
@media(max-width:760px){.bn-mobile-drawer .bn-quick-action{width:40px;height:40px;min-width:40px}.bn-mobile-drawer .bn-quick-notifications{gap:9px}}
@media(max-width:380px){.bn-mobile-drawer .bn-quick-notifications{left:5px;gap:5px}.bn-mobile-drawer .bn-quick-action{width:36px;height:36px;min-width:36px}}

/* BANUK notification icons scaled +50% over previous 17x11 */
.bn-sidebar .bn-brand .bn-quick-notifications,.bn-mobile-drawer-head .bn-brand .bn-quick-notifications{
 display:flex!important;flex-direction:row!important;align-items:center!important;gap:5px!important;
 left:3px!important;top:4px!important;flex-wrap:nowrap!important;background:transparent!important;box-shadow:none!important;
}
.bn-sidebar .bn-brand .bn-quick-notifications .bn-quick-action,.bn-mobile-drawer-head .bn-brand .bn-quick-notifications .bn-quick-action{
 width:34px!important;min-width:34px!important;height:34px!important;
 border:0!important;background:transparent!important;box-shadow:none!important;
 padding:2px!important;border-radius:8px!important;
}
.bn-quick-notifications .bn-quick-action svg{
 width:26px!important;min-width:26px!important;height:17px!important;min-height:17px!important;
 stroke-width:2px!important;
}
.bn-quick-notifications .bn-quick-count{top:-3px!important;right:-2px!important;min-width:16px!important;height:16px!important;line-height:16px!important;font-size:9px!important}
@media(max-width:760px){
 .bn-mobile-drawer-head .bn-brand .bn-quick-notifications{top:7px!important;left:7px!important;gap:7px!important}
}

/* BANUK English LTR notification anchor — 2026-10-18 */
.bn-app.bn-locale-en .bn-sidebar .bn-brand .bn-quick-notifications,
.bn-app.bn-locale-en .bn-mobile-drawer-head .bn-brand .bn-quick-notifications {
  right:6px!important;left:auto!important;
  flex-direction:row!important;direction:ltr!important;
}
@media(max-width:760px){
 .bn-app.bn-locale-en .bn-mobile-drawer-head .bn-brand .bn-quick-notifications{right:8px!important;left:auto!important}
}

/* BANUK locale-aware top notification placement */
[dir="ltr"] .bn-quick-notifications{left:auto!important;right:2px!important}
[dir="rtl"] .bn-quick-notifications{right:auto!important;left:2px!important}

/* A single stable splash, with no whitespace stacked before skeleton. */
#banuk-app>.bn-entry-loading{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:17px;background:#4a101c;color:#fff;font:500 14px/1.8 var(--bn-font-family);padding:32px;text-align:center;overflow:hidden}
.bn-entry-logo{width:88px;height:88px;object-fit:contain;flex:none}
.bn-entry-spinner{width:25px;height:25px;border:2px solid rgba(255,255,255,.23);border-top-color:#f6e9cf;border-radius:50%;animation:bnspin .85s linear infinite}
.bn-entry-loading p{margin:0;opacity:.85}
@media(prefers-reduced-motion:reduce){.bn-entry-spinner{animation:none}}
/* Shared OTP parity (partner/customer), 2026-10-20.
   The centered success indicator has the dimensions and radius of a digit cell,
   not the former round disc. Keep its existing fold and checked transitions. */
.bn-login-body .bn-otp-boxes{--bn-partner-otp-gap:8px}
.bn-login-body .bn-otp-success-mark{
 width:calc((100% - 4 * var(--bn-partner-otp-gap)) / 5)!important;
 height:auto!important;aspect-ratio:1 / 1;border-radius:11px!important;
 background:#e5f5eb!important;border:1.5px solid #40a76a!important;
 box-shadow:0 0 0 4px rgba(39,151,80,.09),0 5px 14px rgba(20,100,55,.12)!important
}
.bn-login-body .bn-otp-success-mark svg{width:60%!important;height:60%!important}
/* Put verification warnings right below "Time remaining" in every locale. */
.bn-login-body [data-otp-form] .bn-otp-field>span{order:0}
.bn-login-body [data-otp-form] .bn-otp-boxes{order:1;margin-bottom:3px}
.bn-login-body [data-otp-form] .bn-otp-timer{order:2;margin:8px auto 0!important}
.bn-login-body [data-otp-form] .bn-otp-inline-error{
 order:3;display:block;min-height:0;margin:9px auto 6px!important;
 padding:0 9px;line-height:1.85!important
}
.bn-login-body [data-otp-form] .bn-otp-expired-panel{order:4}
@media(max-width:620px){
 .bn-login-body .bn-otp-boxes{--bn-partner-otp-gap:6px}
}
@media(max-width:370px){
 .bn-login-body .bn-otp-boxes{--bn-partner-otp-gap:4px}
}
@media(prefers-reduced-motion:reduce){
 .bn-login-body .bn-otp-success-mark{transition:none!important}
}

/* Login-card sizing parity with the customer storefront; no dashboard selector changes. */
@media(min-width:621px){
  .bn-login-body .bn-login-card{
    width:min(426px,calc(100vw - 32px))!important;
    height:auto!important;min-height:624px!important;
    padding:18px 27px 20px!important;
    border-radius:22px!important;
    box-sizing:border-box!important
  }
  .bn-login-body .bn-login-card>.bn-login-logo{
    width:109px!important;max-height:128px!important;height:auto!important;
    margin:0 auto 5px!important
  }
  .bn-login-body .bn-login-card .bn-login-toolbar{margin:0 0 4px!important}
  .bn-login-body .bn-login-card h1{
    font-size:22px!important;line-height:1.5!important;margin:4px 0 4px!important
  }
  .bn-login-body .bn-login-card .bn-login-lead{margin:0 auto 3px!important}
  .bn-login-body .bn-login-card .bn-login-tabs{margin:0 0 6px!important}
  .bn-login-body .bn-login-card .bn-login-form{gap:9px!important}
  .bn-login-body .bn-login-card .bn-login-legal-note{margin-top:auto!important;padding-top:9px!important}
}
/* Mobile width parity: preserve the partner login's content-led minimum height. */
@media(max-width:620px){
  .bn-login-body .bn-login-shell{padding-inline:13px!important}
  .bn-login-body .bn-login-card{width:100%!important;max-width:426px!important}
}

/* Partner login parity: stable footprint, anchored legal text, local flag icons. */
.bn-login-body .bn-login-languages .bn-language-flag{
 width:20.7px!important;height:13.5px!important;flex:0 0 auto!important
}
.bn-login-body .bn-login-languages .bn-language-option{
 flex:none!important;min-width:42px!important;min-height:40px!important;
 background:transparent!important;border:0!important;box-shadow:none!important;
 transition:none!important;transform:none!important
}
.bn-login-body .bn-login-languages .bn-language-option.is-active{background:transparent!important}
.bn-login-body .bn-login-card h1{min-height:31px!important}
.bn-login-body .bn-login-card .bn-login-lead{min-height:18px!important}
body.bn-login-body .bn-login-card>.bn-login-legal-note,
body.bn-login-body .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form])>.bn-login-legal-note,
body.bn-login-body .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form] .bn-otp-boxes:not([hidden]))>.bn-login-legal-note{
 margin-top:auto!important;margin-bottom:0!important;
 flex:0 0 auto!important;align-self:stretch!important;
 padding:8px 2px 0!important;position:relative!important
}
/* Mobile OTP send and password sign-in deliberately inherit the same
   .bn-login-submit palette, disabled state, hover and focus styles. */
@media(max-width:620px){
 body.bn-login-body .bn-login-card>.bn-login-legal-note,
 body.bn-login-body .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form])>.bn-login-legal-note{
   margin-bottom:18px!important
 }
 body.bn-login-body .bn-login-card,
 body.bn-login-body .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]){
   height:auto!important;
   min-height:calc(100dvh - 2 * clamp(29px,7dvh,64px))!important
 }
 body.bn-login-body .bn-login-card>.bn-login-logo,
 body.bn-login-body .bn-login-card:has(.bn-login-panel:not([hidden]))>.bn-login-logo{
   width:clamp(104px,21.1dvh,173px)!important;
   max-width:100%!important;max-height:195px!important;
   height:auto!important
 }
}
@media(max-width:620px) and (max-height:739px){
 body.bn-login-body .bn-login-card>.bn-login-legal-note,
 body.bn-login-body .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form])>.bn-login-legal-note{
  margin-bottom:8px!important
 }
 body.bn-login-body .bn-login-card,
 body.bn-login-body .bn-login-card:has(.bn-login-panel:not([hidden]) [data-otp-form]){
   min-height:calc(100dvh - 2 * clamp(9px,3dvh,22px))!important
 }
}
