/* Laminar component states. Specific !important rules beat Blesta's generated palette. */
body.laminar { --primary: #7e32ca; --info: #7e32ca; --blue: #7e32ca; --lm-focus: rgba(126,50,202,.18); }
body.laminar .btn {
    --lm-button-bg: #fff; --lm-button-fg: #53535d; --lm-button-border: #dddde4;
    --lm-button-hover: #f5f3f8; --lm-button-hover-fg: #39294b; --lm-button-hover-border: #cfc2df;
    --lm-button-active: #ece6f3;
    color: var(--lm-button-fg) !important;
    background: var(--lm-button-bg) !important;
    border-color: var(--lm-button-border) !important;
    box-shadow: 0 1px 2px #20202305;
    text-decoration: none;
}
body.laminar .btn-primary, body.laminar .btn-success, body.laminar .btn-info {
    --lm-button-bg: var(--lm-brand); --lm-button-fg: #fff; --lm-button-border: var(--lm-brand);
    --lm-button-hover: #6c28b2; --lm-button-hover-fg: #fff; --lm-button-hover-border: #6c28b2; --lm-button-active: #5d209c;
}
body.laminar .btn-danger { --lm-button-bg: #b93648; --lm-button-fg: #fff; --lm-button-border: #b93648; --lm-button-hover: #9f293b; --lm-button-hover-fg: #fff; --lm-button-hover-border: #9f293b; --lm-button-active: #872234; }
body.laminar .btn-warning { --lm-button-bg: #fff3d8; --lm-button-fg: #785212; --lm-button-border: #ebd3a0; --lm-button-hover: #fbe6b9; --lm-button-hover-fg: #63400a; --lm-button-hover-border: #d4b673; --lm-button-active: #f2d99e; }
body.laminar .btn-dark { --lm-button-bg: #303039; --lm-button-fg: #fff; --lm-button-border: #303039; --lm-button-hover: #1f1f27; --lm-button-hover-fg: #fff; --lm-button-hover-border: #1f1f27; --lm-button-active: #111116; }
body.laminar .btn-outline-primary, body.laminar .btn-outline-info, body.laminar .btn-outline-success {
    --lm-button-bg: transparent; --lm-button-fg: var(--lm-brand); --lm-button-border: #d9c4ed;
    --lm-button-hover: #f4ecfb; --lm-button-hover-fg: #6726a9; --lm-button-hover-border: #bc94dc; --lm-button-active: #e9d9f7;
}
body.laminar .btn-outline-danger { --lm-button-bg: transparent; --lm-button-fg: #aa3144; --lm-button-border: #e6bdc4; --lm-button-hover: #fff0f2; --lm-button-hover-fg: #93283a; --lm-button-hover-border: #cc8e99; --lm-button-active: #f7dce1; }
body.laminar .btn-outline-warning { --lm-button-bg: transparent; --lm-button-fg: #89601b; --lm-button-border: #ead7b0; --lm-button-hover: #fff5df; --lm-button-hover-fg: #745016; --lm-button-hover-border: #d3b276; --lm-button-active: #f8e8c5; }
body.laminar .btn-outline-dark { --lm-button-bg: transparent; --lm-button-fg: #383842; --lm-button-border: #888890; --lm-button-hover: #ededf0; --lm-button-hover-fg: #25252d; --lm-button-hover-border: #676770; --lm-button-active: #dcdce3; }
body.laminar .btn-link { --lm-button-bg: transparent; --lm-button-fg: var(--lm-brand); --lm-button-border: transparent; --lm-button-hover: transparent; --lm-button-hover-fg: #61239f; --lm-button-hover-border: transparent; --lm-button-active: transparent; box-shadow: none; }
body.laminar .btn:not(:disabled):not(.disabled):hover { background: var(--lm-button-hover) !important; border-color: var(--lm-button-hover-border) !important; color: var(--lm-button-hover-fg) !important; }
body.laminar .btn:not(:disabled):not(.disabled):is(:active,.active), body.laminar .show > .btn.dropdown-toggle { background: var(--lm-button-active) !important; border-color: var(--lm-button-hover-border) !important; color: var(--lm-button-hover-fg) !important; }
body.laminar .btn:is(:focus,:focus-visible,.focus), body.laminar .show > .btn.dropdown-toggle:focus { box-shadow: 0 0 0 3px var(--lm-focus) !important; }
body.laminar .btn:is(:disabled,.disabled) { background: var(--lm-button-bg) !important; color: var(--lm-button-fg) !important; border-color: var(--lm-button-border) !important; box-shadow: none !important; opacity: .48; }
body.laminar .btn-group > .btn:not(:last-child):not(.dropdown-toggle) { border-start-end-radius: 0; border-end-end-radius: 0; }
body.laminar .btn-group > .btn:not(:first-child) { border-start-start-radius: 0; border-end-start-radius: 0; }

/* Links, selections, utilities and form controls use the same brand palette. */
body.laminar .text-primary, body.laminar .text-info, body.laminar a.text-primary:hover, body.laminar a.text-info:hover { color: var(--lm-brand) !important; }
body.laminar .bg-primary, body.laminar .bg-info, body.laminar .progress-bar { background-color: var(--lm-brand) !important; }
body.laminar .border-primary, body.laminar .border-info { border-color: var(--lm-brand) !important; }
body.laminar .badge-primary, body.laminar .badge-info { background: #f2eafa !important; color: #7029b4 !important; }
body.laminar .badge-secondary { background: #f0f0f3 !important; color: #65656e !important; }
body.laminar .badge-success { background: #edf7f0 !important; color: #2d7547 !important; }
body.laminar .badge-warning { background: #fff5df !important; color: #87601d !important; }
body.laminar .badge-danger { background: #ffedf0 !important; color: #a83447 !important; }
body.laminar .text-secondary { color: #6e6e78 !important; }
body.laminar .text-success { color: #2d7547 !important; }
body.laminar .text-warning { color: #87601d !important; }
body.laminar .text-danger { color: #a83447 !important; }
body.laminar .bg-secondary { background-color: #707079 !important; }
body.laminar .bg-success { background-color: #2d7547 !important; }
body.laminar .bg-warning { background-color: #fff0cd !important; }
body.laminar .bg-danger { background-color: #a83447 !important; }
body.laminar .border-secondary { border-color: #dcdce3 !important; }
body.laminar .border-success { border-color: #bcdcc7 !important; }
body.laminar .border-warning { border-color: #ebd7ab !important; }
body.laminar .border-danger { border-color: #e6bbc3 !important; }
body.laminar .label.label-primary { color: #7029b4 !important; background: #f2eafa !important; }
body.laminar .alert-secondary { color: #606069; background: #f6f6f8; border-color: #e3e3e8; }
body.laminar .nav-pills .show > .nav-link { color: #fff; background: var(--lm-brand); }
body.laminar .nav-content nav.navbar .navbar-nav .show .dropdown-menu > a { color: #56565e !important; }
body.laminar .nav-content nav.navbar .navbar-nav .show .dropdown-menu > a:is(:hover,:focus) { color: #6827a8 !important; background: #f4eefb !important; }
body.laminar .dropdown-item:is(.active,:active,:focus), body.laminar .dropdown-menu > li > a:is(.active,:active,:focus) { color: #6827a8 !important; background: #f4eefb !important; }
body.laminar .list-group a.list-group-item:is(:hover,:focus), body.laminar a.list-group-item:is(:hover,:focus) { background: #f8f5fc !important; color: #6827a8; }
body.laminar .list-group-item.active, body.laminar .list-group-item.active:is(:hover,:focus) { background: #f2eafa !important; border-color: #decaef !important; color: #6827a8 !important; }
body.laminar .list-group-item.credits, body.laminar .list-group-item h4 { color: var(--lm-ink) !important; }
body.laminar .top-focus-box { background: #faf8fd !important; }
body.laminar .top-nav .dropdown a.dropdown-toggle { color: #696970 !important; }
body.laminar .top-nav .dropdown a.dropdown-toggle:is(:hover,:focus) { color: var(--lm-brand) !important; }
body.laminar .pagination .page-link:is(:hover,:focus) { color: #6827a8 !important; background: #f4eefb !important; border-color: #decaef; box-shadow: none; }
body.laminar .pagination .page-item.active .page-link, body.laminar div.pagination ul.pagination li.active a { color: #fff !important; background: var(--lm-brand) !important; border-color: var(--lm-brand) !important; }
body.laminar .custom-control-input:checked ~ .custom-control-label::before, body.laminar .custom-control-input:indeterminate ~ .custom-control-label::before { border-color: var(--lm-brand); background-color: var(--lm-brand); }
body.laminar .custom-control-input:focus ~ .custom-control-label::before, body.laminar .custom-file-input:focus ~ .custom-file-label { border-color: #ac7ed5; box-shadow: 0 0 0 3px var(--lm-focus); }
body.laminar .custom-control-input:not(:disabled):active ~ .custom-control-label::before { background-color: #e7d6f6; border-color: #ac7ed5; }
body.laminar .custom-control-input:disabled:is(:checked,:indeterminate) ~ .custom-control-label::before { background-color: #b89bd2; border-color: #b89bd2; }
body.laminar .custom-range::-webkit-slider-thumb { background-color: var(--lm-brand); }
body.laminar .custom-range::-moz-range-thumb { background-color: var(--lm-brand); }
body.laminar .custom-range:focus::-webkit-slider-thumb { box-shadow: 0 0 0 3px var(--lm-focus); }
body.laminar .custom-range:focus::-moz-range-thumb { box-shadow: 0 0 0 3px var(--lm-focus); }
body.laminar .slider-selection, body.laminar .slider-handle { background: var(--lm-brand); }
body.laminar .select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--lm-brand); }
body.laminar .alert-primary { color: #675078; background: #f7f2fc; border-color: #e6d8f1; }

/* Native widget navigation is .card-links, not Bootstrap's .nav-tabs. */
body.laminar :is(.card-links,.panel-links) { display: flex; flex-wrap: wrap; gap: 6px 22px; padding: 0; margin: 0; list-style: none; border-bottom: 1px solid var(--lm-line); }
body.laminar :is(.card-links,.panel-links) > li { display: block; margin: 0; }
body.laminar :is(.card-links,.panel-links) > li + li::before { content: none; }
body.laminar :is(.card-links,.panel-links) > li > a { display: flex; align-items: center; gap: 7px; min-height: 42px; padding: 9px 0 12px; font-size: 13px; color: #74747d; text-decoration: none; border-bottom: 2px solid transparent; }
body.laminar :is(.card-links,.panel-links) > li > a:hover { color: var(--lm-brand); }
body.laminar :is(.card-links,.panel-links) > li.active > a { color: var(--lm-ink); border-bottom-color: var(--lm-brand); font-weight: 500; }
body.laminar :is(.card-links,.panel-links) .badge { background: #f0f0f3; color: #6b6b75; font-size: 11px; line-height: 1.25; min-width: 18px; padding: 2px 5px; border-radius: 4px; }
body.laminar .card-nav { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 12px; margin-bottom: 20px; }
body.laminar .card-nav > nav { flex: 1; min-width: 0; }
body.laminar .card-nav > .float-right { margin-inline-start: auto; }
body.laminar .card > .card-header { width: auto; margin: 0; }

/* A single frame owns the table's border and corner clipping. Hidden detail rows
   no longer determine which cell gets the last corner or create a double edge. */
body.laminar .table-responsive { border: 1px solid var(--lm-line); border-radius: 7px; background: #fff; padding: 0 !important; overflow: auto; scrollbar-width: thin; scrollbar-color: #cec5d8 #fafafa; }
body.laminar .table-responsive > .table { border: 0 !important; border-radius: 0 !important; margin: 0 !important; width: 100%; border-collapse: separate; border-spacing: 0; }
body.laminar .table-responsive > .table tr > :is(td,th) { border-inline: 0 !important; border-radius: 0 !important; }
body.laminar .table > thead > tr > th > a:is(:link,:visited,:hover,:focus) { text-decoration: none; color: #73737d; }
body.laminar .table > thead > tr > th > a:hover { color: var(--lm-brand); }
body.laminar .table-hover > tbody > tr:hover > :is(td,th) { background-color: #faf8fd !important; }
body.laminar .table-striped-alt > tbody > tr > :is(td,th) { background-color: #fff; }
body.laminar .table > tbody > tr.expand_details > td { padding: 20px; border-top: 1px solid #e5dced; background: #faf8fd; }
body.laminar .table > tbody > tr.expand > td:last-of-type { position: relative; padding-inline-end: 42px; }
body.laminar .table > tbody > tr.expand > td:last-of-type::after { position: absolute; inset-inline-end: 17px; top: 50%; transform: translateY(-50%); float: none !important; margin: 0; font-size: 10px; color: #8d8298; }
body.laminar .table-responsive .dropdown-menu[data-laminar-floating] { position: fixed !important; transform: none !important; inset: auto !important; left: var(--lm-menu-x) !important; top: var(--lm-menu-y) !important; z-index: 1060; max-height: calc(100vh - 24px); overflow-y: auto; }
body.laminar .right_content, body.laminar .right_content > .card { min-width: 0; }
body.laminar .cards { overflow: visible; }
body.laminar .cards > [class*="col-"] { min-width: 130px; }
body.laminar .cards .card-value { overflow-wrap: anywhere; }
body.laminar .cards a:focus-visible { outline-offset: -3px; }

/* Loading is a small indeterminate ring, with no fake progress percentage. */
body.laminar .loading_container.laminar-loading { display: grid; place-items: center; position: absolute; inset: 0; width: 100%; height: 100%; min-height: 76px; padding: 24px; margin: 0; background: #fffffff0; z-index: 10; border-radius: 6px; pointer-events: none; }
body.laminar .laminar-loading-indicator { display: inline-flex; align-items: center; gap: 11px; padding: 11px 16px; font: 500 12px/1.5 "Laminar Inter", sans-serif; color: #71617f; }
body.laminar .laminar-spinner { display: inline-block; width: 22px; height: 22px; flex: 0 0 22px; border: 2px solid #e9ddf3; border-top-color: var(--lm-brand); border-radius: 50%; animation: laminar-turn .75s linear infinite; }
body.laminar .fa-spinner.fa-spin { display: inline-block; width: 1em; height: 1em; vertical-align: -.1em; color: inherit; }
body.laminar .fa-spinner.fa-spin::before { content: ""; display: block; width: 100%; height: 100%; border: 2px solid #e9ddf3; border-top-color: var(--lm-brand); border-radius: 50%; }
body.laminar .right_content, body.laminar .cards { position: relative; }
body.laminar .cards:has(> .laminar-loading):not(:has(> [class*="col-"])) { min-height: 113px; }
@keyframes laminar-turn { to { transform: rotate(360deg); } }
@media (max-width: 767px) {
    body.laminar :is(.card-links,.panel-links) { gap: 3px 16px; }
    body.laminar :is(.card-links,.panel-links) > li > a { font-size: 12px; }
    body.laminar .cards > [class*="col-"] { min-width: 0; flex: 1 1 33.333%; }
    body.laminar .cards .card .card-content .card-value { font-size: clamp(18px, 5.5vw, 25px); }
}
@media (prefers-reduced-motion: reduce) {
    body.laminar .laminar-spinner, body.laminar .fa-spinner.fa-spin { animation: none !important; }
}
/* Service navigation stays compact when the workspace stacks on small screens. */
body.laminar .table-responsive, body.laminar .laminar-service-nav .list-group { scrollbar-width:thin; scrollbar-color:#d4ccde transparent; }
/* Table cells provide row spacing; nested form margins offset the dropdowns. */
body.laminar .phone_row .form-group { margin-bottom:0; }
@media (max-width: 767px) {
    body.laminar .laminar-service-nav .list-group { display:flex; flex-direction:row; overflow-x:auto; border-radius:0; margin-bottom:20px; padding-bottom:3px; }
    body.laminar .laminar-service-nav .list-group-item { flex:0 0 auto; width:auto; white-space:nowrap; border:0!important; border-radius:0; background:transparent!important; padding:12px 16px; }
    body.laminar .laminar-service-nav .list-group-item.active { box-shadow:inset 0 -2px #7e32ca; }
}
