
:root{--bo-content-max:1780px;--bo-gap:18px}
.bo-topbar .brand{min-width:218px}.bo-top-context{display:flex;gap:7px;align-items:center}.bo-profile-chip{display:flex;align-items:center;gap:9px;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:12px;padding:6px 10px;cursor:pointer;transition:.15s}.bo-profile-chip:hover{background:var(--surface-2);border-color:color-mix(in srgb,var(--accent) 35%,var(--border));transform:translateY(-1px)}.bo-profile-chip>span:last-child{display:flex;flex-direction:column;text-align:left}.bo-profile-chip strong{font-size:10px}.bo-profile-chip small{font-size:8px;color:var(--muted)}.bo-avatar{width:31px;height:31px;border-radius:9px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-strong);font-size:9px;font-weight:900}
.bo-sidebar .nav-link{font-size:11px}.bo-sidebar .sidebar-section{margin-bottom:15px}.bo-sidebar .sidebar-label{font-size:9px}.bo-main{padding:calc(var(--topbar-h) + 30px) 30px 80px calc(var(--sidebar-w) + 30px);max-width:calc(var(--bo-content-max) + var(--sidebar-w));margin:0 auto}.bo-page{display:grid;gap:var(--bo-gap)}.bo-page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.bo-page-head h1{margin:4px 0 7px;font-size:31px;line-height:1.05;letter-spacing:-.04em}.bo-page-head p{margin:0;color:var(--muted);max-width:900px}.bo-page-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end;align-items:center}.bo-section-grid{display:grid;gap:var(--bo-gap)}.bo-section-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.bo-section-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.bo-section-grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.bo-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.bo-kpi{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:16px;box-shadow:0 1px 0 rgba(25,46,60,.02);transition:.16s}.bo-kpi:hover{transform:translateY(-3px) scale(1.006);box-shadow:var(--shadow-1);border-color:color-mix(in srgb,var(--accent) 28%,var(--border))}.bo-kpi small{display:block;color:var(--muted);font-size:9px;font-weight:800}.bo-kpi strong{display:block;margin:5px 0 4px;font-size:25px;letter-spacing:-.03em}.bo-kpi span{font-size:9px;color:var(--muted)}
.bo-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.bo-card-head h2{margin:0;font-size:15px}.bo-card-head p{margin:4px 0 0;color:var(--muted);font-size:10px}.bo-muted{color:var(--muted);font-size:10px}.bo-list{display:grid;gap:8px}.bo-list-row{display:flex;align-items:center;gap:10px;padding:11px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2);color:var(--text);text-decoration:none;transition:.14s}.bo-list-row:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:var(--shadow-1)}.bo-list-row>span:nth-child(2){display:flex;flex:1;flex-direction:column;min-width:0}.bo-list-row strong{font-size:10px}.bo-list-row small{margin-top:2px;color:var(--muted);font-size:8px}.bo-dot{width:9px;height:9px;border-radius:999px;background:var(--muted);flex:0 0 auto}.bo-dot.success{background:var(--success)}.bo-dot.warning{background:var(--warning)}.bo-dot.danger{background:var(--danger)}.bo-dot.info{background:var(--accent)}
/* Data grid shell intentionally reuses Design Lab .data-table-card/.table-toolbar/.advanced-table */
.bo-data-grid{container-type:inline-size;overflow:visible}.bo-grid-toolbar{padding:14px 14px 12px}.bo-grid-toolbar-top{display:flex;align-items:center;gap:10px}.bo-grid-toolbar .table-search{max-width:620px}.bo-grid-tools{display:flex;align-items:center;gap:8px;margin-left:auto}.bo-grid-filter-panel{display:none;border-top:1px solid var(--border);padding:16px;background:color-mix(in srgb,var(--surface-2) 48%,var(--surface))}.bo-grid-filter-panel.open{display:block}.bo-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.bo-filter-actions{display:flex;align-items:center;gap:9px;justify-content:flex-end;margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}.bo-active-filters{display:flex;gap:7px;flex-wrap:wrap;padding:0 14px 12px}.bo-active-filters:empty{display:none}.bo-filter-button .badge{padding:2px 6px;margin-left:2px}.bo-export-dropdown{width:138px}.bo-export-dropdown .ds-panel{min-width:205px;right:0;left:auto}.bo-export-dropdown .ds-option{justify-content:flex-start}.bo-export-icon{width:23px;height:23px;border-radius:7px;background:var(--surface-2);display:grid;place-items:center;font-size:9px;font-weight:900;color:var(--accent-strong)}
.bo-table-wrap{overflow:visible;padding:8px 10px}.bo-table{min-width:1000px}.bo-table td,.bo-table th{white-space:nowrap}.bo-table td:first-child{white-space:normal}.bo-table .table-action-cell{width:60px}.bo-grid-footer{padding:12px 14px}.bo-filler-row td{height:49px;text-align:center;color:var(--muted);background:color-mix(in srgb,var(--surface-2) 42%,var(--surface))}.bo-filler-row td::before{display:none!important}
/* stable portaled row menu */
.bo-row-menu{display:none;position:fixed;z-index:4000;min-width:205px;padding:6px;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-2)}.bo-row-menu.open{display:grid;animation:pop .12s ease}.bo-row-menu a,.bo-row-menu button{border:0;background:transparent;color:var(--text);text-decoration:none;text-align:left;padding:9px 10px;border-radius:8px;font-size:10px;cursor:pointer}.bo-row-menu a:hover,.bo-row-menu button:hover{background:var(--surface-2)}.bo-row-menu .danger{color:var(--danger)}.bo-row-menu-sep{height:1px;background:var(--border);margin:4px 2px}
.bo-tabs{display:flex;gap:6px;overflow:auto;padding:4px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.bo-tabs button,.bo-tabs a{border:0;background:transparent;color:var(--muted);padding:9px 12px;border-radius:9px;font-size:9px;font-weight:850;cursor:pointer;white-space:nowrap;text-decoration:none}.bo-tabs button:hover,.bo-tabs a:hover{background:var(--surface-2);color:var(--text)}.bo-tabs button.active,.bo-tabs a.active{background:var(--accent-soft);color:var(--accent-strong)}
.bo-details{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;margin:0}.bo-details div{padding:10px 0;border-bottom:1px solid var(--border)}.bo-details dt{color:var(--muted);font-size:8px}.bo-details dd{margin:3px 0 0;font-size:10px;font-weight:750}.bo-assurance-note{display:flex;flex-direction:column;gap:4px;padding:12px;border-radius:11px;background:var(--warning-soft);color:var(--text);font-size:9px}.bo-assurance-note span{color:var(--muted)}
.bo-role-card{transition:.15s}.bo-role-card:hover,.bo-role-card.selected{transform:translateY(-2px);border-color:var(--accent)}.bo-permission-matrix{display:grid;gap:0;border:1px solid var(--border);border-radius:12px;overflow:auto}.bo-permission-head,.bo-permission-row{display:grid;grid-template-columns:minmax(260px,2fr) repeat(5,minmax(78px,.55fr));align-items:center;gap:8px;padding:11px;min-width:780px}.bo-permission-head{background:var(--surface-2);font-size:8px;font-weight:900;text-transform:uppercase;color:var(--muted)}.bo-permission-row{border-top:1px solid var(--border)}.bo-permission-row>span{display:flex;flex-direction:column}.bo-permission-row strong{font-size:10px}.bo-permission-row small{font-size:8px;color:var(--muted)}.bo-card-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}
/* tenant provisioning wizard */
.bo-wizard-modal .modal-body{padding-top:18px}.bo-wizard-stepper{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;margin-bottom:22px}.bo-wizard-step{display:flex;align-items:center;gap:7px;min-width:0;padding:8px;border-radius:10px;background:var(--surface-2);color:var(--muted);font-size:8px;font-weight:800}.bo-wizard-step b{width:23px;height:23px;border-radius:8px;display:grid;place-items:center;background:var(--surface-3);flex:0 0 auto}.bo-wizard-step span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bo-wizard-step.active{background:var(--accent-soft);color:var(--accent-strong)}.bo-wizard-step.active b,.bo-wizard-step.done b{background:var(--accent);color:#fff}.bo-wizard-panel{display:none}.bo-wizard-panel.active{display:block}.bo-review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.bo-review-block{padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2)}.bo-review-block strong{display:block;font-size:10px}.bo-review-block span{display:block;margin-top:3px;color:var(--muted);font-size:9px}.bo-wizard-progress{color:var(--muted);font-size:9px;margin-right:auto}.bo-phone-control{display:grid;grid-template-columns:132px minmax(0,1fr)}.bo-phone-control .ds-trigger{border-radius:10px 0 0 10px}.bo-phone-control>.input{border-left:0;border-radius:0 10px 10px 0}
.bo-summary-strip{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.bo-summary-strip .filter-chip{background:var(--surface)}
.bo-definition-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.bo-definition{padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--surface-2)}.bo-definition span{display:block;color:var(--muted);font-size:8px}.bo-definition strong{display:block;margin-top:4px;font-size:11px}
.bo-status-strip{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:11px 13px;border:1px solid var(--border);border-radius:12px;background:var(--surface);font-size:9px;color:var(--muted)}
.bo-modal-danger .modal-head{background:linear-gradient(135deg,var(--danger-soft),var(--surface))}.bo-modal-danger .modal-foot{border-top-color:color-mix(in srgb,var(--danger) 20%,var(--border))}
@container (max-width:1180px){.bo-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bo-table-wrap{overflow:visible}.bo-table{min-width:0}.bo-table thead{display:none}.bo-table,.bo-table tbody,.bo-table tr,.bo-table td{display:block;width:100%}.bo-table tbody tr{border:1px solid var(--border);border-radius:12px;padding:6px 10px;background:var(--surface);margin-bottom:8px}.bo-table tbody td{display:grid;grid-template-columns:minmax(110px,140px) minmax(0,1fr);gap:10px;border:0!important;border-bottom:1px solid var(--border)!important;border-radius:0!important;padding:8px 2px;background:transparent!important;white-space:normal}.bo-table tbody td:last-child{border-bottom:0!important}.bo-table tbody td::before{content:attr(data-label);font-size:8px;font-weight:850;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.bo-filler-row{display:none!important}}
@media(max-width:1180px){.bo-section-grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.bo-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.bo-main{padding:calc(var(--topbar-h) + 22px) 16px 70px}.bo-top-context{display:none}.bo-page-head{align-items:flex-start;flex-direction:column}.bo-page-actions{width:100%;justify-content:flex-start}.bo-section-grid.cols-2,.bo-section-grid.cols-3,.bo-section-grid.cols-4{grid-template-columns:1fr}.bo-definition-grid{grid-template-columns:1fr}.bo-wizard-stepper{grid-template-columns:repeat(3,1fr)}.bo-filter-grid{grid-template-columns:1fr}}
@media(max-width:640px){.bo-grid-toolbar-top{align-items:stretch;flex-direction:column}.bo-grid-tools{margin-left:0;width:100%;flex-wrap:wrap}.bo-grid-tools>*{flex:1}.bo-export-dropdown{width:auto}.bo-kpi-grid{grid-template-columns:1fr}.bo-wizard-stepper{grid-template-columns:repeat(2,1fr)}.bo-review-grid{grid-template-columns:1fr}.bo-phone-control{grid-template-columns:118px minmax(0,1fr)}}


/* V0.11 compatibility: legacy Backoffice content is visually normalized to the Design Lab contract. */
.bo-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0}.bo-search{height:40px;flex:1;max-width:620px;display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.bo-search:focus-within{background:var(--surface);border-color:var(--accent);box-shadow:var(--focus)}.bo-search input{width:100%;border:0;outline:0;background:transparent;color:var(--text);font-size:10px}.bo-actions{position:relative;min-width:52px}.bo-table-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-top:1px solid var(--border);color:var(--muted);font-size:9px}.bo-rule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.bo-rule-grid>div{display:flex;flex-direction:column;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.bo-rule-grid strong{font-size:9px}.bo-rule-grid span{font-size:8px;color:var(--muted);margin-top:2px}.bo-quote{display:flex;justify-content:space-between;margin:14px 0;padding:13px;border-radius:11px;background:var(--accent-soft);font-size:11px}.bo-quote strong{font-size:15px}.bo-tag-list{display:flex;flex-wrap:wrap;gap:6px}.bo-tag-list>span,.bo-tag-list>button{display:inline-flex;padding:5px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent-strong);border:0;font-size:8px;font-weight:800}.bo-progress-row{display:flex;justify-content:space-between;font-size:10px}.bo-progress{height:10px;margin:8px 0;border-radius:999px;background:var(--surface-3);overflow:hidden}.bo-progress i{display:block;height:100%;background:var(--accent);border-radius:inherit}.bo-price{display:block;font-size:22px;margin-bottom:6px}.bo-health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.bo-health-grid>div{display:flex;justify-content:space-between;gap:10px;padding:10px;border-radius:10px;background:var(--surface-2);font-size:9px}.bo-health-grid span{color:var(--muted)}.bo-health-grid .ok{color:var(--success)}.bo-health-grid .warn{color:var(--warning)}.bo-mini-chart{height:110px;display:flex;align-items:flex-end;gap:7px;padding:8px 4px}.bo-mini-chart i{flex:1;border-radius:7px 7px 2px 2px;background:linear-gradient(var(--accent),color-mix(in srgb,var(--accent) 55%,var(--surface-3)))}.bo-ring{width:120px;height:120px;margin:4px auto 12px;border-radius:50%;display:grid;place-items:center;align-content:center;background:conic-gradient(var(--success) 0 345deg,var(--surface-3) 345deg)}.bo-ring strong{font-size:28px}.bo-ring span{font-size:8px}.bo-activity p{margin:0;padding:8px 0;border-bottom:1px solid var(--border);font-size:9px}.bo-activity p:last-child{border-bottom:0}.bo-h76{height:76%}.bo-h58{height:58%}.bo-h83{height:83%}.bo-h67{height:67%}.bo-h91{height:91%}.bo-h72{height:72%}.bo-p64{width:64%}.u-w-100{width:100%}.u-mt-10{margin-top:10px}.u-mt-12{margin-top:12px}.u-mt-14{margin-top:14px}.u-ml-8{margin-left:8px}
@media(max-width:760px){.bo-toolbar{align-items:stretch;flex-direction:column}.bo-search{max-width:none}.bo-rule-grid,.bo-health-grid{grid-template-columns:1fr}}

/* V0.11 depth pass */
.bo-grid-title{padding:16px 16px 0;margin-bottom:0}.bo-grid-title h2{font-size:14px}.bo-grid-title p{font-size:9px}.modal-foot{min-height:68px}.modal-foot .btn-primary,.modal-foot .btn-danger{min-width:132px}.bo-wizard-modal .modal-foot{gap:8px}.bo-wizard-modal .modal-foot [data-wizard-cancel]{margin-left:auto}.bo-page>.card,.bo-page>.data-table-card{margin:0}.bo-page .form-field+.form-field{margin-top:0}


/* V0.12 interaction hardening */
.bo-page-actions{align-items:center}.bo-grid-filter-panel .bo-filter-actions{justify-content:flex-end}.bo-grid-filter-panel [data-bo-filter-apply]{display:none!important}
.bo-row-menu{z-index:5000}.bo-wizard-modal{overflow:visible}.bo-wizard-modal .modal-head,.bo-wizard-modal .modal-foot{position:relative;z-index:20}.bo-wizard-modal .modal-body{position:relative;z-index:10}.bo-wizard-modal .ds-dropdown.open{z-index:1800}.bo-wizard-modal .ds-panel{z-index:1900}
.bo-detail-nav{margin-bottom:2px}.bo-action-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.bo-action-card{display:flex;flex-direction:column;gap:4px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);color:var(--text);text-decoration:none;transition:.15s}.bo-action-card strong{font-size:10px}.bo-action-card span{font-size:9px;color:var(--muted)}.bo-action-card:hover{transform:translateY(-2px);border-color:var(--accent);background:var(--accent-soft)}.table-link{display:flex;flex-direction:column;color:var(--text);text-decoration:none}.table-link:hover strong{color:var(--accent-strong);text-decoration:underline}.table-link small{color:var(--muted)}
.modal .form-grid{align-items:start}.modal-foot{padding:14px 18px;gap:10px}.modal-foot .btn{min-height:42px}.bo-wizard-modal .modal-foot{background:var(--surface);box-shadow:0 -10px 22px color-mix(in srgb,var(--bg) 26%,transparent)}
@media(max-width:1100px){.bo-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.bo-action-grid{grid-template-columns:1fr}}
.bo-table td>small,.bo-table td>strong+small{display:block;margin-top:2px;color:var(--muted);font-size:8px;line-height:1.35}
.bo-wizard-modal [hidden]{display:none!important}

/* V0.13 Design Lab contract: all registry tables and controls share one visual/interaction standard. */
.bo-data-grid .sort-btn{min-height:24px;padding:2px 0}.bo-data-grid .sort-btn:hover{color:var(--text)}
.bo-data-grid .table-search input::placeholder,.ds-search input::placeholder{color:var(--muted);opacity:.82}
.bo-data-grid .page-size-dropdown{flex:0 0 92px}
.bo-data-grid .ds-panel{z-index:4200}
.bo-page [role="switch"].switch-button:not(:disabled):not([aria-disabled="true"]):hover{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)}
