:root { --tblr-primary:#167c80; --tblr-primary-rgb:22,124,128; --tblr-font-sans-serif:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
body { min-height:100vh; }
.portal-sidebar { --tblr-navbar-width:16rem; }
.portal-logo { display:inline-block; width:196px; max-width:100%; vertical-align:middle; }
.portal-logo img { display:block; width:100%; height:auto; }
.portal-logo .brand-dark { display:none; }
[data-bs-theme=dark] .portal-logo .brand-light { display:none; }
[data-bs-theme=dark] .portal-logo .brand-dark { display:block; }
.portal-auth-form .portal-logo, .auth-single .portal-logo { width:290px; }
.portal-story-logo { width:240px; max-width:100%; height:auto; }
.portal-brand-caption { display:block; font-size:.6rem; letter-spacing:.22em; color:var(--tblr-secondary); margin-top:.55rem; }
.portal-sidebar .navbar-brand { display:block; padding:1.5rem 1rem; }
.portal-sidebar .nav-link { margin:.15rem .65rem; border-radius:.4rem; padding:.7rem .85rem; }
.portal-sidebar .nav-link.active { color:var(--tblr-primary); background:rgba(var(--tblr-primary-rgb),.09); font-weight:600; }
.nav-section-label { padding:1.2rem 1.5rem .5rem; font-size:.65rem; font-weight:700; letter-spacing:.13em; color:var(--tblr-secondary); text-transform:uppercase; }
.portal-sidebar-footer { font-size:.75rem; color:var(--tblr-secondary); padding:1.5rem; }
.portal-topbar { min-height:80px; padding:.8rem 1.5rem; }
.portal-topbar .page-pretitle { font-size:.65rem; letter-spacing:.08em; margin-bottom:.25rem; }
.portal-body { padding:1.5rem 2rem; flex:1; }
.portal-summary { padding:0 1rem; font-size:.75rem; overflow-x:auto; }
.portal-summary .nav-section-label { padding-left:0; }
.portal-summary a { color:var(--tblr-secondary); display:flex; align-items:center; padding:.3rem 0; }
.portal-summary table { font-size:.7rem; }
.portal-summary hr { margin:.8rem 0; }
.portal-hero { padding:2rem; border:1px solid var(--tblr-border-color); border-radius:.75rem; background:var(--tblr-bg-surface); }
.portal-hero h2 { font-size:1.8rem; letter-spacing:-.04em; }
.service-icon { width:46px; height:46px; border-radius:.65rem; display:flex; align-items:center; justify-content:center; background:rgba(var(--tblr-primary-rgb),.08); color:var(--tblr-primary); }
.service-card .card-body { padding:1.5rem; }
.service-card .card-footer { background:transparent; }
.portal-auth { min-height:100vh; display:grid; grid-template-columns:1fr 1fr; }
.portal-auth-story { background:#123c43; color:#fff; padding:clamp(2rem,6vw,6rem); display:flex; flex-direction:column; justify-content:space-between; position:relative; overflow:hidden; }
.portal-auth-story:after { content:""; position:absolute; width:450px; height:450px; border:1px solid #ffffff14; border-radius:50%; right:-200px; bottom:-220px; box-shadow:0 0 0 70px #ffffff05,0 0 0 140px #ffffff03; pointer-events:none; }
.portal-auth-story h1 { font-size:clamp(2rem,3.3vw,3.5rem); line-height:1.15; letter-spacing:-.04em; max-width:520px; }
.portal-auth-story p { color:#bed1d3; max-width:390px; font-size:1rem; line-height:1.7; }
.portal-auth-form { display:flex; align-items:center; justify-content:center; padding:2rem; background:var(--tblr-bg-surface); }
.portal-auth-form>div { width:100%; max-width:390px; }
.portal-auth .form-control { min-height:46px; }
.auth-single { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:1.5rem; }
.auth-single .card { width:100%; max-width:460px; }
.auth-single h1,.auth-single h2 { font-size:1.5rem; }
.inputblock { margin:1rem 0; }
.inputblock label { display:block; margin-bottom:.5rem; }
.inputblock input { display:block; width:100%; padding:.65rem; background:var(--tblr-bg-forms); color:inherit; border:1px solid var(--tblr-border-color); border-radius:.35rem; }
.err { color:var(--tblr-danger); margin:.5rem 0; }
.loader { position:fixed; inset:calc(50% - 16px) auto auto calc(50% - 16px); width:32px; height:32px; border:3px solid #ddd; border-top-color:var(--tblr-primary); border-radius:50%; animation:portal-spin .7s linear infinite; z-index:2000; }
@keyframes portal-spin { to {transform:rotate(360deg);} }
.dt-container { min-width:0; }
.dt-container .dt-layout-row { flex-wrap:wrap; gap:.6rem; }
.dt-buttons { display:flex; gap:.3rem; flex-wrap:wrap; }
.dt-context-actions { border-top:1px solid var(--tblr-border-color); padding:.5rem 0; }
table.dataTable { font-size:.82rem; }
table.dataTable thead th { white-space:nowrap; }
table.dataTable tbody tr.selected>* { background:rgba(var(--tblr-primary-rgb),.15)!important; color:var(--tblr-body-color)!important; }
table.dataTable tbody tr:hover>* { box-shadow:inset 0 0 0 9999px rgba(var(--tblr-primary-rgb),.04); }
iconify-icon { display:inline-block; vertical-align:middle; font-size:1.1rem; }

@media(min-width:992px){ .portal-sidebar ~ .page-wrapper { margin-left:16rem; } .portal-sidebar { width:16rem; } }
@media(max-width:991.98px){ .portal-body {padding:1rem;} .portal-sidebar .navbar-brand {padding:.8rem;} .portal-sidebar .container-fluid {padding:0 1rem;} .portal-sidebar-footer {display:none;} .portal-topbar {padding:.7rem 1rem;} .portal-auth {grid-template-columns:1fr;} .portal-auth-story {display:none;} .portal-auth-form {min-height:100vh;} }
@media(prefers-reduced-motion:reduce){ *,*::before,*::after {animation:none!important;transition:none!important;} }
.portal-auth-story h1 { color:#fff; }
.basic-data-table { min-width:0; }
.basic-data-table .card-header > .row { width:100%; margin:0; gap:.6rem; align-items:center; }
#dtable_buttons,#dtable_buttons2 { width:auto; flex:0 1 auto; padding:0; }
#dtable_buttons2 { display:flex; flex-wrap:wrap; align-items:center; gap:.3rem; }
#dtable_buttons2 button:not(.btn) { border:1px solid var(--tblr-border-color); border-radius:.3rem; padding:.45rem .65rem; background:var(--tblr-bg-surface); color:var(--tblr-body-color); font-size:.8rem; }
@media(max-width:991.98px){.page-wrapper {min-width:0;} .portal-body {max-width:100%;} .basic-data-table .card-header.row {margin:0!important;} .dt-container .dt-search input {max-width:160px;} }

.portal-language-flag { width:24px; height:24px; object-fit:contain; flex-shrink:0; }

/* Account appearance choices */
.btn-primary { --tblr-btn-bg:var(--tblr-primary); --tblr-btn-border-color:var(--tblr-primary); --tblr-btn-hover-bg:color-mix(in srgb,var(--tblr-primary),black 12%); --tblr-btn-hover-border-color:var(--tblr-primary); }
.portal-sidebar-toggle {display:none;}
@media(min-width:992px){
 html[data-layout=sidebar] .portal-sidebar-toggle {display:inline-flex;}
 html[data-layout=sidebar][data-sidebar-hidden=true] .portal-sidebar {display:none;}
 html[data-layout=sidebar][data-sidebar-hidden=true] .portal-sidebar ~ .page-wrapper {margin-left:0;}
 html[data-layout=top] .portal-sidebar {position:relative;inset:auto;width:100%;height:auto;min-height:0;}
 html[data-layout=top] .portal-sidebar ~ .page-wrapper {margin-left:0;}
 html[data-layout=top] .portal-sidebar .container-fluid {display:flex;flex-direction:row;align-items:center;gap:1rem;}
 html[data-layout=top] .portal-sidebar .navbar-brand {padding:1rem;flex-shrink:0;}
 html[data-layout=top] .portal-sidebar .navbar-collapse {width:auto;flex:1;}
 html[data-layout=top] .portal-sidebar .navbar-nav {flex-direction:row;flex-wrap:wrap;padding-top:0!important;}
 html[data-layout=top] .portal-sidebar .nav-link {padding:.6rem;margin:.15rem;}
 html[data-layout=top] .portal-sidebar .nav-section-label,html[data-layout=top] .portal-sidebar-footer,html[data-layout=top] .portal-brand-caption {display:none;}
 html[data-layout=top] .portal-summary {display:none;}
}
.appearance-choice {display:flex;align-items:center;gap:.7rem;padding:.8rem;border:1px solid var(--tblr-border-color);border-radius:.5rem;cursor:pointer;}
.appearance-swatch {width:24px;height:24px;border-radius:50%;}

/* Edge tab shares the account filter drawer and the selected theme accent. */
.portal-filter-tab{position:fixed;right:0;top:clamp(130px,20vh,240px);z-index:1030;border-radius:24px 0 0 24px;padding:12px 14px 12px 18px;gap:8px;min-height:48px;box-shadow:0 3px 14px rgba(0,0,0,.22)}
.portal-filter-tab[hidden]{display:none!important}
@media(max-width:575.98px){.portal-filter-tab{top:145px;padding:10px 12px;gap:6px;font-size:12px}}
@media print{.portal-filter-tab{display:none!important}}

/* Verification attention: strong contrast, finite motion and reduced-motion support. */
.verification-banner{display:flex;align-items:center;gap:18px;padding:22px;margin-bottom:22px;border:2px solid #d99508;border-left-width:7px;border-radius:12px;background:#fff4d6;color:#633b00;box-shadow:0 4px 14px rgba(133,88,0,.12)}
.verification-banner-icon{display:grid;place-items:center;flex-shrink:0;width:48px;height:48px;border-radius:50%;background:#f5bc38;color:#503000}
.verification-banner-icon .icon{width:28px;height:28px}.verification-banner-copy{flex:1}.verification-banner h2{font-size:20px;color:inherit;margin:4px 0 6px}.verification-banner p{margin:0;line-height:1.6}.verification-eyebrow{font-size:11px;letter-spacing:.1em;font-weight:800}
.verification-cta{background:#8b4600;color:#fff;border-color:#8b4600;font-weight:700;min-height:46px;flex-shrink:0}.verification-cta:hover,.verification-cta:focus-visible{background:#663300;color:#fff;border-color:#663300;outline:3px solid #e6a72b;outline-offset:3px}
.portal-sidebar .nav-link.verification-nav{background:#fff0c2!important;color:#704000!important;border:1px solid #d99508;border-left:4px solid #ce8700;font-weight:700}.portal-sidebar .verification-nav .nav-link-icon{color:inherit}.verification-nav-caption{font-size:10px;margin-top:3px;text-transform:uppercase;letter-spacing:.04em}.portal-sidebar .verification-nav.active{box-shadow:inset 0 0 0 1px #995c00}
.verification-review{background:#fff9e9;border-color:#dbc38c;box-shadow:none}.portal-sidebar .nav-link.verification-nav-review{background:#fff9e9!important;border-color:#dbc38c}
[data-bs-theme="dark"] .verification-banner{background:#382b12;color:#ffe2a1;border-color:#c89630}[data-bs-theme="dark"] .portal-sidebar .nav-link.verification-nav{background:#382b12!important;color:#ffe2a1!important}[data-bs-theme="dark"] .verification-cta{background:#f0b840;color:#2e2105;border-color:#f0b840}[data-bs-theme="dark"] .verification-cta:hover{background:#ffce64;color:#2e2105}
@keyframes verification-nudge{0%,75%,100%{transform:translateX(0)}80%{transform:translateX(-4px)}85%{transform:translateX(4px)}90%{transform:translateX(-2px)}95%{transform:translateX(2px)}}
.verification-attention .verification-banner-icon{animation:verification-nudge 2.5s 3}
@media(prefers-reduced-motion:reduce){.verification-attention .verification-banner-icon{animation:none}}
@media(max-width:767px){.verification-banner{flex-wrap:wrap;padding:16px;gap:12px}.verification-banner-copy{flex-basis:calc(100% - 62px)}.verification-banner h2{font-size:18px}.verification-cta{width:100%}}

/* Compact floating filter handles on every page. */
.portal-filter-tab{width:48px;height:48px;padding:12px;border-radius:24px 0 0 24px;justify-content:center;gap:0}
.portal-filter-tab .icon{margin:0!important;flex-shrink:0}

/* Remote-only power switch trial. */
.remote-power-switch{--power-color:#f2b544;position:relative;display:inline-block;width:108px;height:40px;flex-shrink:0;margin:0;vertical-align:middle}
.remote-power-switch input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;z-index:2;cursor:pointer}
.remote-power-track{position:absolute;inset:0;background:#18242e;border:1px solid var(--power-color);border-radius:7px;box-shadow:inset 0 2px 5px #0008,0 1px 2px #0003;color:var(--power-color);overflow:hidden}
.remote-power-track [data-power-label]{position:absolute;right:10px;top:50%;transform:translateY(-50%);font:800 12px/1 monospace;letter-spacing:1.5px}
.remote-power-thumb{position:absolute;left:4px;top:4px;bottom:4px;width:32px;border-radius:4px;background:linear-gradient(145deg,#f5f8fa,#aab9c5);border:1px solid #ffffffb0;box-shadow:0 2px 4px #0008;display:grid;place-items:center;color:#243744;font:bold 23px/1 sans-serif;transition:transform .18s ease}
.remote-power-switch[data-state=on]{--power-color:#37dc91}.remote-power-switch[data-state=off]{--power-color:#ff6a75}
.remote-power-switch input:checked+.remote-power-track .remote-power-thumb{transform:translateX(66px)}
.remote-power-switch input:checked+.remote-power-track [data-power-label]{right:auto;left:12px}
.remote-power-switch input:focus-visible+.remote-power-track{outline:3px solid #39b9dc;outline-offset:3px}.remote-power-switch input:disabled{cursor:wait}
.remote-power-large .remote-power-switch{width:144px;height:52px}.remote-power-large .remote-power-thumb{width:42px;font-size:28px}.remote-power-large .remote-power-track [data-power-label]{font-size:16px;right:17px}
.remote-power-large input:checked+.remote-power-track .remote-power-thumb{transform:translateX(92px)}.remote-power-large input:checked+.remote-power-track [data-power-label]{left:19px}
#remote-list .remote-feedback-row td{padding:0!important;border-top:0}.remote-power-feedback{padding:10px 16px;background:rgba(80,150,160,.07);border-left:3px solid currentColor;font-size:13px;white-space:normal}.remote-power-large .remote-power-feedback{margin-top:12px}
.remote-feedback-row[hidden],[data-power-feedback][hidden]{display:none!important}@media(prefers-reduced-motion:reduce){.remote-power-thumb{transition:none}}

/* Operator saved automatic IP preference: prominent, read-only status. */
.operator-auto-access{display:grid;grid-template-columns:minmax(0,1fr) 260px;overflow:hidden;border-radius:inherit}
.operator-auto-status{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px;text-align:center;border-left:1px solid #ffffff30;color:#fff;background:#906000}
.operator-auto-status.is-on{background:linear-gradient(135deg,#09664f,#108364)}
.operator-auto-status.is-off{background:linear-gradient(135deg,#785000,#a36b06)}
.operator-auto-icon .icon{width:32px;height:32px;stroke-width:1.8}
.operator-auto-title{font-size:11px;font-weight:800;letter-spacing:1.4px}
.operator-auto-state{font-size:44px;font-weight:900;line-height:1.05;letter-spacing:3px}
.operator-auto-caption{font-size:13px;line-height:1.4;max-width:215px}
.operator-auto-status small{font-size:11px;opacity:.85}
@media(max-width:767px){.operator-auto-access{grid-template-columns:1fr}.operator-auto-status{grid-row:1;border-left:0;padding:20px}.operator-auto-state{font-size:36px}}

/* Approved panel switch design; native checkbox behavior retained. */
.form-switch .form-check-input{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2284%22%20height%3D%2232%22%20viewBox%3D%220%200%2084%2032%22%3E%3Crect%20x%3D%221%22%20y%3D%221%22%20width%3D%2282%22%20height%3D%2230%22%20rx%3D%225%22%20fill%3D%22%2318242e%22%20stroke%3D%22%23ff6a75%22%2F%3E%3Crect%20x%3D%224%22%20y%3D%224%22%20width%3D%2228%22%20height%3D%2224%22%20rx%3D%223%22%20fill%3D%22%23d9e3e9%22%2F%3E%3Crect%20x%3D%2212%22%20y%3D%2210%22%20width%3D%2212%22%20height%3D%2212%22%20rx%3D%221%22%20fill%3D%22%23ff6a75%22%20stroke%3D%22%23344955%22%2F%3E%3Ctext%20x%3D%2255%22%20y%3D%2220%22%20text-anchor%3D%22middle%22%20fill%3D%22%23ff6a75%22%20font-family%3D%22monospace%22%20font-size%3D%2210%22%20font-weight%3D%22bold%22%3EOFF%3C%2Ftext%3E%3C%2Fsvg%3E");}
.form-switch .form-check-input:checked{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2284%22%20height%3D%2232%22%20viewBox%3D%220%200%2084%2032%22%3E%3Crect%20x%3D%221%22%20y%3D%221%22%20width%3D%2282%22%20height%3D%2230%22%20rx%3D%225%22%20fill%3D%22%2318242e%22%20stroke%3D%22%2337dc91%22%2F%3E%3Crect%20x%3D%2252%22%20y%3D%224%22%20width%3D%2228%22%20height%3D%2224%22%20rx%3D%223%22%20fill%3D%22%23d9e3e9%22%2F%3E%3Crect%20x%3D%2260%22%20y%3D%2210%22%20width%3D%2212%22%20height%3D%2212%22%20rx%3D%221%22%20fill%3D%22%2337dc91%22%20stroke%3D%22%23344955%22%2F%3E%3Ctext%20x%3D%2224%22%20y%3D%2220%22%20text-anchor%3D%22middle%22%20fill%3D%22%2337dc91%22%20font-family%3D%22monospace%22%20font-size%3D%2210%22%20font-weight%3D%22bold%22%3EON%3C%2Ftext%3E%3C%2Fsvg%3E");}

.form-switch{padding-left:96px;min-height:32px}.form-switch .form-check-input{appearance:none;width:84px;height:32px;margin-left:-96px;margin-top:0;border:0;border-radius:5px;background-color:transparent;background-size:84px 32px;background-position:center;cursor:pointer;box-shadow:none}
.form-switch .form-check-label{display:inline-block;padding-top:5px}.form-switch .form-check-input:focus-visible{outline:3px solid #39b9dc;outline-offset:3px}.form-switch .form-check-input:disabled{opacity:.5;cursor:not-allowed}
.remote-power-thumb{font-size:0!important}.remote-power-thumb:after{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);content:'';width:13px;height:15px;background:var(--power-color);border:1px solid #344955;border-radius:2px;box-shadow:0 0 7px var(--power-color)}
.remote-power-separated{border-left:1px solid var(--tblr-border-color,#cad1d7);padding-left:20px;margin-left:4px}.remote-connect:disabled{pointer-events:none}.remote-connect-wrap:focus-visible{outline:2px solid #39b9dc;outline-offset:3px}.remote-power-feedback{display:block}

/* Bounded native colour control and naturally proportioned brand previews. */
.brand-colour-field{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.brand-colour-field input[type=color]{display:block;appearance:auto;width:64px!important;height:42px!important;min-height:0;max-width:64px;padding:4px;border:1px solid var(--tblr-border-color,#777);border-radius:6px;background:var(--tblr-bg-surface,#fff);cursor:pointer}.brand-colour-field span{font-size:13px;color:var(--tblr-secondary)}
.brand-logo-preview{display:flex;align-items:center;min-height:100px}.brand-logo-preview svg{display:block;width:auto;max-width:100%;height:64px}.portal-logo img{object-fit:contain}

.confirmation-master-switch{padding:18px 18px 18px 118px;position:relative}.confirmation-master-switch .form-check-input{position:absolute;left:18px;top:22px;margin:0;float:none}.confirmation-master-switch .form-check-label{padding-top:0}

/* Accounts filter shortcuts: separate accessible reset controls. */
.account-filter-float{position:fixed;right:0;top:clamp(130px,20vh,240px);z-index:1030;display:flex;box-shadow:0 3px 14px #0003;border-radius:24px 0 0 24px}
.account-filter-float .portal-filter-tab{position:relative;top:auto;right:auto;width:auto;min-width:48px;height:48px;gap:8px;box-shadow:none;padding:10px 14px}
.account-filter-float>button:last-child{border-radius:0;border-left:1px solid #ffffff50;padding:8px;min-width:38px}
.account-filter-count{font-size:12px;min-width:22px;border-radius:12px}
.account-filter-float[hidden],#account-filter-clear[hidden],#account-floating-clear[hidden],#floating-filter-count[hidden]{display:none!important}
@media(max-width:575.98px){.account-filter-float{top:145px}}
@media print{.account-filter-float{display:none!important}}
