/* =====================================================================
   Deskivo premium layer. Loaded after Tabler + sd.css; tokens first.
   Light by default. Brand tokens and component overrides are in the
   "Deskivo brand layer" at the end of this file.
   ===================================================================== */
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url(/static/fonts/inter-latin.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url(/static/fonts/inter-latin-ext.woff2) format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --sd-font:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --sd-accent:#6c3bff;--sd-accent-600:#5125d6;--sd-accent-700:#4a1fc4;--sd-accent-300:#b9a3ff;
  --sd-accent-soft:rgba(108,59,255,.12);--sd-accent-ring:rgba(108,59,255,.35);
  --sd-grad:linear-gradient(135deg,#8f6bff 0%,#6c3bff 45%,#4a1fc4 100%);
  --sd-r-sm:8px;--sd-r:12px;--sd-r-lg:16px;--sd-r-xl:22px;
  --sd-s1:.25rem;--sd-s2:.5rem;--sd-s3:.75rem;--sd-s4:1rem;--sd-s5:1.5rem;--sd-s6:2rem;
  --sd-ease:cubic-bezier(.2,.8,.2,1);--sd-dur:.18s;
  --sd-bg:#f5f7fb;--sd-surface:#ffffff;--sd-surface-2:#f8fafc;--sd-border:#e3e8f0;--sd-text:#0f172a;--sd-muted:#526072;
  --sd-shadow-1:0 1px 2px rgba(15,23,42,.06),0 1px 1px rgba(15,23,42,.04);
  --sd-shadow-2:0 1px 2px rgba(15,23,42,.05),0 4px 12px rgba(15,23,42,.06),0 12px 28px -12px rgba(15,23,42,.10);
  --sd-shadow-3:0 2px 4px rgba(15,23,42,.06),0 12px 24px rgba(15,23,42,.10),0 28px 56px -20px rgba(15,23,42,.22);
  --tblr-font-sans-serif:var(--sd-font);--tblr-body-font-family:var(--sd-font);
  --tblr-primary:#5125d6;--tblr-primary-rgb:81,37,214;--tblr-border-radius:var(--sd-r-sm);--tblr-card-border-radius:var(--sd-r);
}
[data-bs-theme=dark]{
  --sd-bg:#0a101d;--sd-surface:#101828;--sd-surface-2:#0d1524;--sd-border:#1d2840;--sd-text:#e6edf7;--sd-muted:#98a6ba;
  --sd-shadow-1:0 1px 0 rgba(255,255,255,.03) inset,0 1px 2px rgba(0,0,0,.4);
  --sd-shadow-2:0 1px 0 rgba(255,255,255,.035) inset,0 2px 6px rgba(0,0,0,.35),0 16px 32px -16px rgba(0,0,0,.6);
  --sd-shadow-3:0 1px 0 rgba(255,255,255,.05) inset,0 10px 24px rgba(0,0,0,.45),0 32px 64px -24px rgba(0,0,0,.75);
  --tblr-primary:#6c3bff;--tblr-primary-rgb:108,59,255;
  --tblr-body-bg:var(--sd-bg);--tblr-bg-surface:var(--sd-surface);--tblr-border-color:var(--sd-border);--tblr-secondary:#98a6ba;--tblr-secondary-color:#98a6ba;
}
html,body{font-family:var(--sd-font)}
body{font-size:.875rem;letter-spacing:-.003em;font-feature-settings:"cv02","cv03","cv04","cv11","ss01","tnum" 0;background:var(--sd-bg)!important;color:var(--sd-text)}
[data-bs-theme=dark] body{background:radial-gradient(1200px 600px at 100% -10%,rgba(108,59,255,.07),transparent 60%),var(--sd-bg)!important;background-attachment:fixed!important}
h1,h2,h3,.h1,.h2,.h3,.page-title{letter-spacing:-.02em;font-weight:650}
.page-title{font-size:1.45rem}
.page-pretitle,.subheader{letter-spacing:.08em;font-size:.68rem;font-weight:600;color:var(--sd-muted)}
code,kbd,.font-monospace{font-feature-settings:normal}
.text-secondary{color:var(--sd-muted)!important}
.kpi-value,.h2,.tabular,table td{font-variant-numeric:tabular-nums}
::selection{background:rgba(108,59,255,.28)}
:focus-visible{outline:2px solid var(--sd-accent);outline-offset:2px;border-radius:6px}
.form-control:focus,.form-select:focus{border-color:var(--sd-accent);box-shadow:0 0 0 .2rem var(--sd-accent-ring)}
a{color:var(--sd-accent-600)}[data-bs-theme=dark] a:not(.btn):not(.nav-link):not(.dropdown-item):not(.list-group-item){color:var(--sd-accent-300)}
.text-teal{color:#4a1fc4!important}[data-bs-theme=dark] .text-teal{color:var(--sd-accent-300)!important}

/* ---------- brand ---------- */
.sd-logo{display:inline-block;width:34px;height:34px;flex:none;border-radius:10px;filter:drop-shadow(0 6px 14px rgba(108,59,255,.35))}
.sd-logo svg{display:block}
.sd-wordmark{font-weight:700;letter-spacing:-.02em;font-size:1rem;color:#fff}.sd-wordmark b{font-weight:800;background:linear-gradient(90deg,#b9a3ff,#8f6bff);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---------- sidebar ---------- */
.asm-sidebar{background:linear-gradient(180deg,#0c1424 0%,#080d18 100%)!important;border-right:1px solid rgba(148,163,184,.08)!important;box-shadow:1px 0 0 rgba(255,255,255,.02)}
.asm-sidebar .nav-link{border-radius:10px;padding:.5rem .75rem;color:#b6c2d3;transition:background var(--sd-dur) var(--sd-ease),color var(--sd-dur) var(--sd-ease),transform var(--sd-dur) var(--sd-ease)}
.asm-sidebar .nav-link:hover{background:rgba(148,163,184,.08);color:#fff}
.asm-sidebar .nav-link:hover .nav-link-icon{color:var(--sd-accent-300)}
.asm-sidebar .nav-link.active{background:linear-gradient(90deg,rgba(108,59,255,.22),rgba(108,59,255,.04));color:#fff;box-shadow:inset 3px 0 0 var(--sd-accent),0 0 0 1px rgba(108,59,255,.12)}
.asm-sidebar .nav-link.active .nav-link-icon{color:var(--sd-accent-300)}
.asm-sidebar .nav-section{color:#7d8ba1;font-weight:600}
.asm-sidebar .dropdown-menu{background:transparent!important;border:0;box-shadow:none;padding-left:.75rem}
.asm-sidebar .dropdown-item{color:#aab6c7;border-radius:8px;margin:1px 10px;font-size:.82rem}
.asm-sidebar .dropdown-item:hover{background:rgba(148,163,184,.08);color:#fff}
.asm-sidebar .dropdown-item.active{background:rgba(108,59,255,.18);color:#fff;font-weight:600;box-shadow:inset 3px 0 0 var(--sd-accent, #6c3bff)}

/* ---------- top bar (glass) ---------- */
.topbar{background:rgba(255,255,255,.72)!important;backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid rgba(15,23,42,.06)!important;box-shadow:0 1px 0 rgba(255,255,255,.6) inset}
[data-bs-theme=dark] .topbar{background:rgba(10,16,29,.66)!important;border-bottom-color:rgba(148,163,184,.08)!important;box-shadow:0 8px 24px -16px rgba(0,0,0,.6)}
.topbar::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,rgba(108,59,255,.45),transparent);opacity:.6}
.gsearch .form-control{border-radius:999px;padding-left:2.4rem;background:var(--sd-surface-2);border-color:var(--sd-border);transition:box-shadow var(--sd-dur),border-color var(--sd-dur)}
.gsearch .kbd-hint kbd{background:var(--sd-surface);color:var(--sd-muted);border:1px solid var(--sd-border);box-shadow:0 1px 0 var(--sd-border);font-size:.68rem}
.topbar .avatar{border-radius:999px;background:var(--sd-grad)!important;color:#fff!important;font-weight:700;box-shadow:0 0 0 2px var(--sd-surface),0 0 0 3px rgba(108,59,255,.5)}

/* ---------- cards ---------- */
.card{background:var(--sd-surface);border:1px solid var(--sd-border);border-radius:var(--sd-r);box-shadow:var(--sd-shadow-2);transition:transform var(--sd-dur) var(--sd-ease),box-shadow var(--sd-dur) var(--sd-ease),border-color var(--sd-dur)}
[data-bs-theme=dark] .card{background:linear-gradient(180deg,rgba(255,255,255,.018),transparent 40%),var(--sd-surface);border-color:var(--sd-border)}
.card-header{border-bottom-color:var(--sd-border);padding:.9rem 1.15rem}
.card-title{font-weight:620;letter-spacing:-.01em}
.card-footer{background:var(--sd-surface-2);border-top-color:var(--sd-border)}
.card-hover:hover,a.card:hover{transform:translateY(-3px);box-shadow:var(--sd-shadow-3);border-color:rgba(108,59,255,.35)}
.card-status-top{border-radius:var(--sd-r) var(--sd-r) 0 0;height:3px}

/* ---------- KPI ---------- */
.kpi{min-height:132px}
.kpi .card-body{position:relative;z-index:1}
.kpi::before{content:"";position:absolute;inset:-40% -20% auto auto;width:220px;height:220px;border-radius:50%;background:radial-gradient(closest-side,rgba(108,59,255,.14),transparent);pointer-events:none}
.kpi .kpi-icon{width:46px;height:46px;border-radius:14px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06),0 6px 16px -6px rgba(0,0,0,.35)}
.kpi .kpi-value{font-size:2rem;font-weight:750;letter-spacing:-.03em}
.kpi .spark{position:absolute;left:0;right:0;bottom:0;width:100%;height:46px;opacity:.95;pointer-events:none;z-index:0}
.delta{display:inline-flex;align-items:center;gap:.15rem;font-weight:650;font-size:.72rem;padding:.1rem .45rem;border-radius:999px}
.delta.up{background:rgba(47,179,68,.14);color:#1f8a33}.delta.down{background:rgba(214,57,57,.12);color:#b42323}.delta.flat{background:rgba(148,163,184,.14);color:var(--sd-muted)}
[data-bs-theme=dark] .delta.up{color:#6ee787}[data-bs-theme=dark] .delta.down{color:#ff8a8a}
.delta.bad.up{background:rgba(214,57,57,.12);color:#b42323}[data-bs-theme=dark] .delta.bad.up{color:#ff8a8a}
.delta.bad.down{background:rgba(47,179,68,.14);color:#1f8a33}[data-bs-theme=dark] .delta.bad.down{color:#6ee787}

/* ---------- buttons ---------- */
.btn{border-radius:10px;font-weight:550;transition:transform var(--sd-dur) var(--sd-ease),box-shadow var(--sd-dur) var(--sd-ease),background var(--sd-dur),filter var(--sd-dur)}
.btn:active{transform:translateY(1px) scale(.99)}
.btn-accent,.btn-primary{background:var(--sd-grad)!important;border:0!important;color:#fff!important;box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 6px 16px -6px rgba(81,37,214,.65)}
.btn-accent:hover,.btn-primary:hover{filter:brightness(1.07);box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 10px 22px -8px rgba(81,37,214,.8)}
.btn:not(.btn-accent):not(.btn-primary):not([class*=btn-ghost]):not(.btn-warning):not(.btn-danger){background:var(--sd-surface);border-color:var(--sd-border);box-shadow:var(--sd-shadow-1)}
.btn:not(.btn-accent):not(.btn-primary):not([class*=btn-ghost]):not(.btn-warning):not(.btn-danger):hover{border-color:rgba(108,59,255,.5);color:var(--sd-accent-600)}
[data-bs-theme=dark] .btn:not(.btn-accent):not(.btn-primary):not([class*=btn-ghost]):not(.btn-warning):not(.btn-danger):hover{color:var(--sd-accent-300)}
.btn-check:checked+.btn{background:var(--sd-accent-soft)!important;border-color:rgba(108,59,255,.55)!important;color:inherit!important}
.btn-group>.btn{border-radius:999px!important;margin:0 .15rem}

/* ---------- tables ---------- */
.table-responsive{border-radius:0 0 var(--sd-r) var(--sd-r)}
.card-table thead th,.module-table thead th{position:sticky;top:0;z-index:2;background:var(--sd-surface-2)!important;color:var(--sd-muted);font-size:.68rem;letter-spacing:.07em;font-weight:650;border-bottom:1px solid var(--sd-border);padding-top:.7rem;padding-bottom:.7rem}
.card .table-responsive{max-height:calc(100vh - 290px);overflow:auto}
.module-table tbody tr,.card-table tbody tr{transition:background var(--sd-dur) var(--sd-ease)}
.module-table tbody tr:nth-child(even) td{background:rgba(148,163,184,.035)}
.module-table tbody tr:hover td,.card-table tbody tr:hover td{background:rgba(108,59,255,.07)!important}
.module-table tbody tr:hover td:first-child{box-shadow:inset 3px 0 0 var(--sd-accent)}
.table td{border-bottom-color:var(--sd-border);padding-top:.65rem;padding-bottom:.65rem}
.pagination .page-link{border-radius:8px!important;margin:0 2px;border:1px solid transparent}
.pagination .page-item.active .page-link{background:var(--sd-grad);border-color:transparent;color:#fff;box-shadow:0 4px 12px -4px rgba(81,37,214,.7)}

/* status pills */
.badge{font-weight:600;letter-spacing:.01em;border-radius:999px;padding:.32em .7em;text-transform:none}
.pill{display:inline-flex;align-items:center;gap:.4rem;padding:.22rem .65rem;border-radius:999px;font-size:.74rem;font-weight:600;line-height:1.3;background:rgba(148,163,184,.14);color:var(--sd-muted);white-space:nowrap}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 20%,transparent)}
.pill-green{background:rgba(47,179,68,.13);color:#1b7a2d}.pill-blue{background:rgba(59,130,246,.13);color:#1d4ed8}.pill-teal{background:rgba(108,59,255,.14);color:#4a1fc4}
.pill-orange{background:rgba(247,103,7,.13);color:#b4480a}.pill-red{background:rgba(214,57,57,.13);color:#b42323}.pill-purple{background:rgba(174,62,201,.13);color:#8a2aa0}.pill-gray{background:rgba(148,163,184,.16);color:#4b5869}
[data-bs-theme=dark] .pill-green{color:#7ee59a}[data-bs-theme=dark] .pill-blue{color:#93c5fd}[data-bs-theme=dark] .pill-teal{color:#b9a3ff}[data-bs-theme=dark] .pill-orange{color:#fdba74}
[data-bs-theme=dark] .pill-red{color:#fca5a5}[data-bs-theme=dark] .pill-purple{color:#e2a8f0}[data-bs-theme=dark] .pill-gray{color:#b7c2d1}
.pill-pulse::before{animation:pulse 1.6s ease-out infinite}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,currentColor 55%,transparent)}100%{box-shadow:0 0 0 7px transparent}}

/* avatar chips */
.who{display:inline-flex;align-items:center;gap:.5rem;max-width:100%}
.who .av{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:.62rem;font-weight:700;color:#fff;flex:none;box-shadow:0 0 0 2px var(--sd-surface)}
.who span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.who.none{color:var(--sd-muted);font-style:italic}

/* ---------- skeleton shimmer ---------- */
.sk{position:relative;overflow:hidden;background:rgba(148,163,184,.12)!important;animation:none}
.sk::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.14),transparent);animation:shimmer 1.4s var(--sd-ease) infinite}
[data-bs-theme=light] .sk::after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.75),transparent)}
@keyframes shimmer{to{transform:translateX(100%)}}

/* ---------- empty states ---------- */
.empty-state{padding:2.75rem 1rem 2.5rem}
.empty-state .ill{width:148px;height:auto;margin:0 auto .9rem;display:block}
.empty-state .fw-bold{font-size:.98rem;color:var(--sd-text);letter-spacing:-.01em}
.empty-state i{display:none}

/* ---------- toasts ---------- */
.toast{border-radius:14px!important;box-shadow:var(--sd-shadow-3)!important;backdrop-filter:blur(10px);min-width:280px;overflow:hidden;position:relative}
.toast.showing,.toast.show{animation:toastIn .38s var(--sd-ease) both}
.toast.hide-anim{animation:toastOut .25s ease both}
.toast::after{content:"";position:absolute;left:0;bottom:0;height:3px;background:rgba(255,255,255,.55);width:100%;transform-origin:left;animation:toastBar var(--toast-ms,4500ms) linear forwards}
.text-bg-success{background:linear-gradient(135deg,#4a1fc4,#5125d6)!important}.text-bg-danger{background:linear-gradient(135deg,#b42323,#d63939)!important}
.text-bg-warning{background:linear-gradient(135deg,#b45309,#d97706)!important;color:#fff!important}
@keyframes toastIn{from{opacity:0;transform:translate3d(24px,-6px,0) scale(.97)}to{opacity:1;transform:none}}
@keyframes toastOut{to{opacity:0;transform:translate3d(24px,0,0)}}
@keyframes toastBar{to{transform:scaleX(0)}}

/* ---------- offcanvas / modal / dropdown ---------- */
.offcanvas{background:var(--sd-surface)!important;border-left:1px solid var(--sd-border)!important;box-shadow:-24px 0 48px -24px rgba(0,0,0,.5)}
.offcanvas-header{border-bottom:1px solid var(--sd-border)}
.offcanvas-backdrop.show{opacity:.45;backdrop-filter:blur(2px)}
.modal-content{border-radius:var(--sd-r-lg);border:1px solid var(--sd-border);box-shadow:var(--sd-shadow-3)}
.dropdown-menu{border-radius:12px;border-color:var(--sd-border);box-shadow:var(--sd-shadow-3)}
.form-control,.form-select{border-radius:10px;border-color:var(--sd-border)}
[data-bs-theme=dark] .form-control,[data-bs-theme=dark] .form-select{background-color:var(--sd-surface-2)}
.list-group-item{border-color:var(--sd-border)}
.list-group-item-action{transition:background var(--sd-dur)}
.alert{border-radius:12px}
.breadcrumb-item a{color:var(--sd-muted)!important}.breadcrumb-item a:hover{color:var(--sd-accent-600)!important}

/* ---------- command palette ---------- */
.cmdk-backdrop{position:fixed;inset:0;z-index:2050;background:rgba(5,9,18,.55);backdrop-filter:blur(6px);display:none;align-items:flex-start;justify-content:center;padding-top:12vh}
.cmdk-backdrop.open{display:flex;animation:fadeOnly .14s ease both}
.cmdk{width:min(680px,92vw);background:var(--sd-surface);border:1px solid var(--sd-border);border-radius:18px;box-shadow:0 40px 100px -20px rgba(0,0,0,.65),0 0 0 1px rgba(108,59,255,.15);overflow:hidden;animation:popIn .2s var(--sd-ease) both}
.cmdk-input{display:flex;align-items:center;gap:.75rem;padding:1rem 1.1rem;border-bottom:1px solid var(--sd-border)}
.cmdk-input i{font-size:1.25rem;color:var(--sd-accent)}
.cmdk-input input{flex:1;border:0;outline:0;background:transparent;color:var(--sd-text);font-size:1.05rem}
.cmdk-list{max-height:min(56vh,460px);overflow:auto;padding:.4rem}
.cmdk-group{font-size:.66rem;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--sd-muted);padding:.65rem .75rem .3rem}
.cmdk-item{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;border-radius:10px;color:var(--sd-text)!important;text-decoration:none;cursor:pointer}
.cmdk-item .ic{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:var(--sd-surface-2);border:1px solid var(--sd-border);color:var(--sd-muted);flex:none}
.cmdk-item .sub{font-size:.76rem;color:var(--sd-muted)}
.cmdk-item.active{background:var(--sd-accent-soft)}.cmdk-item.active .ic{background:var(--sd-grad);color:#fff;border-color:transparent}
.cmdk-item kbd,.cmdk-foot kbd{font-size:.66rem;background:var(--sd-surface-2);border:1px solid var(--sd-border);color:var(--sd-muted);box-shadow:none}
.cmdk-foot{display:flex;gap:1rem;padding:.55rem 1rem;border-top:1px solid var(--sd-border);font-size:.72rem;color:var(--sd-muted);background:var(--sd-surface-2)}
.cmdk mark{background:rgba(108,59,255,.25);color:inherit;padding:0;border-radius:3px}
@keyframes popIn{from{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:none}}
@keyframes fadeOnly{from{opacity:0}to{opacity:1}}

/* ---------- login / public ---------- */
.auth-split{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;background:#070c17}
.auth-hero{position:relative;overflow:hidden;padding:3rem 3.5rem;display:flex;flex-direction:column;justify-content:space-between;color:#e6edf7;
  background:radial-gradient(900px 520px at 0% 0%,rgba(45,212,191,.32),transparent 60%),radial-gradient(700px 500px at 100% 100%,rgba(59,130,246,.22),transparent 60%),linear-gradient(160deg,#0c1528,#070c17)}
.auth-hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(148,163,184,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.07) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(ellipse at 30% 30%,#000 30%,transparent 75%)}
.auth-hero>*{position:relative}
.auth-hero h1{font-size:clamp(2rem,3.2vw,3rem);line-height:1.08;letter-spacing:-.035em;font-weight:780;color:#fff;max-width:14ch}
.auth-hero h1 span{background:linear-gradient(90deg,#b9a3ff,#8f6bff 40%,#60a5fa);-webkit-background-clip:text;background-clip:text;color:transparent}
.auth-hero .lead{color:#b4c1d3;max-width:44ch;font-size:1.02rem}
.auth-feats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;max-width:520px}
.auth-feat{display:flex;gap:.65rem;align-items:flex-start;padding:.8rem .9rem;border-radius:14px;background:rgba(255,255,255,.035);border:1px solid rgba(148,163,184,.12);backdrop-filter:blur(6px)}
.auth-feat i{font-size:1.15rem;color:#b9a3ff;margin-top:.1rem}.auth-feat b{display:block;color:#fff;font-size:.85rem}.auth-feat small{color:#98a6ba}
.auth-preview{position:absolute;right:-60px;bottom:90px;width:380px;transform:rotate(-6deg);opacity:.9;pointer-events:none}
.auth-preview .mini{background:rgba(16,24,40,.85);border:1px solid rgba(148,163,184,.16);border-radius:14px;padding:.8rem 1rem;margin-bottom:.7rem;box-shadow:0 24px 48px -20px rgba(0,0,0,.8);display:flex;align-items:center;gap:.7rem;color:#e6edf7;font-size:.8rem}
.auth-form{display:flex;align-items:center;justify-content:center;padding:2.5rem;background:radial-gradient(600px 400px at 100% 0%,rgba(108,59,255,.08),transparent 60%),#0a101d}
.auth-card{width:100%;max-width:400px}
.auth-card .card{background:rgba(16,24,40,.75);border:1px solid rgba(148,163,184,.14);border-radius:20px;box-shadow:0 40px 80px -30px rgba(0,0,0,.8)}
.btn-ms{background:#fff!important;color:#1f2937!important;border:1px solid #e5e7eb!important;font-weight:600;box-shadow:0 6px 16px -8px rgba(0,0,0,.5)!important}
.btn-ms:hover{background:#f8fafc!important;transform:translateY(-1px)}
@media (max-width:991px){.auth-split{grid-template-columns:1fr}.auth-hero{display:none}}
.login-bg{background:radial-gradient(900px 500px at 10% 10%,rgba(108,59,255,.25),transparent 60%),radial-gradient(800px 500px at 90% 90%,rgba(59,130,246,.18),transparent 60%),#070c17!important}

/* ---------- dashboard hero strip / misc ---------- */
.page-header{margin-top:.25rem}
.ring{box-shadow:0 0 0 1px var(--sd-border) inset}
.ring>span{background:var(--sd-surface)}
.progress{background:rgba(148,163,184,.16);border-radius:999px}.progress-bar{border-radius:999px;background:var(--sd-grad)!important}
.footer{color:var(--sd-muted)}

/* ---------- portal (friendlier, consumer-grade) ---------- */
body[data-page^=portal] .card{border-radius:var(--sd-r-lg)}
body[data-page^=portal] .btn{border-radius:12px}
.portal-hero{position:relative;overflow:hidden;border-radius:var(--sd-r-xl);padding:2.2rem 2.2rem 2rem;margin-bottom:1.25rem;color:#fff;
  background:radial-gradient(600px 300px at 90% -20%,rgba(255,255,255,.22),transparent 60%),radial-gradient(500px 300px at 0% 120%,rgba(96,165,250,.35),transparent 60%),linear-gradient(135deg,#0a5a54 0%,#4a1fc4 45%,#5125d6 80%,#6c3bff 100%);box-shadow:0 30px 60px -30px rgba(81,37,214,.75)}
.portal-hero h2,.portal-hero p{text-shadow:0 1px 2px rgba(0,0,0,.18)}
.portal-hero h2{font-size:clamp(1.6rem,2.4vw,2.2rem);font-weight:780;letter-spacing:-.03em;color:#fff;margin-bottom:.35rem}
.portal-hero p{color:rgba(255,255,255,.88);font-size:1rem;margin-bottom:1.2rem}
.portal-hero .search{position:relative;max-width:560px}
.portal-hero .search input{width:100%;border-radius:16px;border:0;padding:.95rem 1rem .95rem 3rem;font-size:1rem;box-shadow:0 16px 32px -14px rgba(0,0,0,.45);background:#fff;color:#0f172a}
.portal-hero .search i{position:absolute;left:1.05rem;top:50%;transform:translateY(-50%);color:#4a1fc4;font-size:1.2rem}
.portal-hero .chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}
.portal-hero .chips a{background:rgba(255,255,255,.16);color:#fff!important;border:1px solid rgba(255,255,255,.25);padding:.35rem .8rem;border-radius:999px;font-size:.82rem;text-decoration:none;backdrop-filter:blur(4px);transition:background var(--sd-dur)}
.portal-hero .chips a:hover{background:rgba(255,255,255,.28)}
.portal-hero .deco{position:absolute;right:2rem;bottom:-10px;width:220px;opacity:.95;pointer-events:none}
@media (max-width:768px){.portal-hero .deco{display:none}}
.nav-tabs-asm .nav-link{border-radius:999px;font-weight:550}
.nav-tabs-asm .nav-link.active{background:var(--sd-accent-soft);color:#4a1fc4}[data-bs-theme=dark] .nav-tabs-asm .nav-link.active{color:var(--sd-accent-300)}

/* ---------- light mode refinements ---------- */
[data-bs-theme=light] .page-wrapper{background:var(--sd-bg)}
[data-bs-theme=light] .kpi .kpi-icon{box-shadow:inset 0 0 0 1px rgba(15,23,42,.05)}
[data-bs-theme=light] .card-table thead th,[data-bs-theme=light] .module-table thead th{background:#f8fafc!important;color:#475569}
[data-bs-theme=light] .bg-teal-lt{background:rgba(108,59,255,.12)!important;color:#4a1fc4!important}
[data-bs-theme=light] .text-secondary{color:#526072!important}

/* ---------- micro-interactions ---------- */
.fade-in{animation:rise .42s var(--sd-ease) both}
.row-cards>[class*=col]:nth-child(2) .fade-in{animation-delay:.04s}.row-cards>[class*=col]:nth-child(3) .fade-in{animation-delay:.08s}.row-cards>[class*=col]:nth-child(4) .fade-in{animation-delay:.12s}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.ti{transition:transform var(--sd-dur) var(--sd-ease)}
.btn:hover .ti-refresh{transform:rotate(90deg)}
.btn:hover .ti-plus{transform:rotate(90deg)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .card-hover:hover,a.card:hover{transform:none}
  .sk::after{display:none}
}
@media print{.topbar,.asm-sidebar,.cmdk-backdrop{display:none!important}.card{box-shadow:none}}

.table td code,.module-table td code{white-space:nowrap;background:var(--sd-accent-soft);color:#4a1fc4;border-radius:6px;padding:.15rem .4rem;font-size:.78rem}
[data-bs-theme=dark] .table td code{color:var(--sd-accent-300)}

/* numbered guides (Tabler steps, vertical) */
.sd-guide.steps-vertical .step-item{text-align:left;padding-bottom:1.1rem}
.sd-guide.steps-vertical .step-item:last-child{padding-bottom:0}
.sd-guide .input-group{max-width:560px}
.sd-connect{background:linear-gradient(135deg,rgba(108,59,255,.10),transparent 55%),var(--tblr-bg-surface)}
/* platform settings */
.ps-nav .list-group-item{border:0;padding:.65rem 1rem;color:var(--tblr-body-color);background:transparent}
.ps-nav .list-group-item.active{background:var(--sd-accent-soft);color:var(--sd-accent-600);font-weight:600;box-shadow:inset 3px 0 0 var(--sd-accent)}
[data-bs-theme=dark] .ps-nav .list-group-item.active{color:var(--sd-accent-300)}
.ps-dot{width:8px;height:8px;border-radius:50%;background:rgba(148,163,184,.45)}
.ps-dot.ok{background:#2fb344;box-shadow:0 0 0 3px rgba(47,179,68,.18)}.ps-dot.bad{background:#d63939;box-shadow:0 0 0 3px rgba(214,57,57,.18)}
.src{font-size:.65rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;padding:.1rem .4rem;border-radius:999px;margin-left:.4rem;vertical-align:middle}
.src-db{background:var(--sd-accent-soft);color:var(--sd-accent-600)}[data-bs-theme=dark] .src-db{color:var(--sd-accent-300)}
.src-env{background:rgba(59,130,246,.14);color:#3b82f6}.src-default{background:rgba(148,163,184,.16);color:#8b98a9}
.ps-step{display:flex;gap:.6rem;padding:.55rem 0;border-bottom:1px dashed var(--tblr-border-color)}.ps-step:last-child{border-bottom:0}
.ps-step .ic{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;flex:none;font-size:.8rem}
.ps-step .ic.ok{background:rgba(47,179,68,.15);color:#2fb344}.ps-step .ic.bad{background:rgba(214,57,57,.15);color:#d63939}.ps-step .ic.warn{background:rgba(247,103,7,.15);color:#f76707}
.ps-img{width:56px;height:56px;border-radius:14px;border:1px dashed var(--tblr-border-color);display:grid;place-items:center;overflow:hidden;background:var(--tblr-bg-surface-secondary)}
.ps-img img{width:100%;height:100%;object-fit:contain}
.ps-preview{border-radius:var(--sd-r);overflow:hidden;border:1px solid var(--tblr-border-color)}
.ps-preview .bar{display:flex;align-items:center;gap:.5rem;padding:.6rem .8rem;background:#0b1220;color:#fff;font-weight:600}
.ps-preview .bar .mk{width:26px;height:26px;border-radius:8px;overflow:hidden;display:grid;place-items:center}
.ps-preview .bd{padding:1rem;background:var(--tblr-bg-surface)}
.ps-preview .ps-hero{font-weight:700;font-size:1.05rem;line-height:1.25;margin-bottom:.6rem}
.ps-preview .btnp{display:inline-block;color:#fff;border-radius:8px;padding:.35rem .8rem;font-size:.8rem;font-weight:600}

/* ---------- light-first public pages (light is the default theme) ---------- */
.auth-title{color:var(--tblr-emphasis-color,#0f172a);font-weight:720;letter-spacing:-.02em}
[data-bs-theme=dark] .auth-title{color:#fff}
[data-bs-theme=light] .login-bg{background:radial-gradient(900px 520px at 8% 0%,rgba(108,59,255,.16),transparent 60%),radial-gradient(800px 520px at 100% 100%,rgba(56,189,248,.12),transparent 60%),linear-gradient(180deg,#f8fafc,#eef3f8)!important;color:#0f172a}
[data-bs-theme=light] .glass{background:rgba(255,255,255,.92)!important;border:1px solid #e2e8f0!important;box-shadow:0 1px 2px rgba(15,23,42,.05),0 24px 48px -24px rgba(15,23,42,.22)}
[data-bs-theme=light] .auth-split{background:#f4f7fb}
[data-bs-theme=light] .auth-form{background:radial-gradient(640px 420px at 100% 0%,rgba(108,59,255,.10),transparent 60%),radial-gradient(520px 380px at 0% 100%,rgba(56,189,248,.07),transparent 60%),linear-gradient(180deg,#fbfcfe,#f1f5f9)}
[data-bs-theme=light] .auth-card .card{background:#fff;border:1px solid #e2e8f0;box-shadow:0 1px 2px rgba(15,23,42,.04),0 12px 24px -12px rgba(15,23,42,.10),0 40px 80px -40px rgba(81,37,214,.28)}
[data-bs-theme=light] .auth-card .form-control{background:#f8fafc;border-color:#dbe3ec}
[data-bs-theme=light] .auth-card .form-control:focus{background:#fff}
[data-bs-theme=light] .btn-ms{box-shadow:0 1px 2px rgba(15,23,42,.06),0 6px 14px -8px rgba(15,23,42,.25)!important}
/* hero: rich teal brand panel in light mode (white text stays AA on #4a1fc4 and darker) */
:root:not([data-bs-theme=dark]) .auth-hero{background:radial-gradient(900px 520px at 0% 0%,rgba(94,234,212,.30),transparent 60%),radial-gradient(700px 520px at 100% 100%,rgba(56,189,248,.28),transparent 60%),linear-gradient(150deg,#0a4743 0%,#4a1fc4 52%,#0e6a85 100%)}
:root:not([data-bs-theme=dark]) .auth-hero::before{background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px)}
:root:not([data-bs-theme=dark]) .auth-hero h1 span{background-image:linear-gradient(90deg,#d9ccff,#b9a3ff 45%,#bae6fd)}
:root:not([data-bs-theme=dark]) .auth-hero .lead{color:#d7efec}
:root:not([data-bs-theme=dark]) .auth-feat{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.18);box-shadow:0 10px 24px -16px rgba(0,0,0,.45)}
:root:not([data-bs-theme=dark]) .auth-feat i{color:#d9ccff}:root:not([data-bs-theme=dark]) .auth-feat small{color:#cde7e4}
:root:not([data-bs-theme=dark]) .auth-hero .small{color:rgba(255,255,255,.72)!important}
:root:not([data-bs-theme=dark]) .auth-hero .badge,:root:not([data-bs-theme=dark]) .auth-hero .auth-chip{background:rgba(255,255,255,.14)!important;color:#ecfeff!important;border-color:rgba(255,255,255,.22)!important}

/* email sending */
.em-mode{cursor:pointer;transition:border-color .15s,box-shadow .15s}
.em-mode.active{border-color:var(--sd-accent)!important;box-shadow:0 0 0 3px var(--sd-accent-ring)}
.em-mode.disabled{opacity:.6;cursor:not-allowed}
.em-code{position:relative}.em-code pre{background:#0b1220;color:#d6e2f0;border-radius:10px;padding:.9rem 1rem;font-size:.76rem;line-height:1.5;white-space:pre;overflow:auto;margin:0}
.em-code .em-mb{color:#b9a3ff}.em-copy{position:absolute;top:.4rem;right:.4rem;z-index:1}
/* tenant login background image (branding_full) */
.auth-hero.has-bg,:root:not([data-bs-theme=dark]) .auth-hero.has-bg{background:linear-gradient(160deg,rgba(6,20,30,.78),rgba(6,20,30,.45) 55%,rgba(6,20,30,.7)),var(--auth-bg) center/cover no-repeat}
.auth-hero.has-bg::before{display:none}
.portal-welcome{white-space:pre-line}
/* tenant branding page */
.br-lock{position:relative}.br-lock.locked>.br-body{opacity:.45;pointer-events:none;filter:grayscale(.4)}
.br-up{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:600;padding:.15rem .5rem;border-radius:999px;background:rgba(247,103,7,.12);color:#c2410c}
.br-prev{border-radius:var(--sd-r);overflow:hidden;border:1px solid var(--tblr-border-color);box-shadow:var(--sd-shadow-sm,0 1px 2px rgba(0,0,0,.06))}
.br-prev .lg{display:grid;grid-template-columns:1fr 1fr;min-height:190px}
.br-prev .hero{padding:1rem;color:#fff;background:linear-gradient(150deg,#0a4743,#4a1fc4 52%,#0e6a85);background-size:cover;background-position:center;display:flex;flex-direction:column;justify-content:space-between}
.br-prev .hero .mk{width:30px;height:30px;border-radius:9px;overflow:hidden;background:rgba(255,255,255,.15);display:grid;place-items:center}
.br-prev .hero .mk img{width:100%;height:100%;object-fit:contain}
.br-prev .frm{padding:1rem;background:var(--tblr-bg-surface);display:flex;flex-direction:column;justify-content:center;gap:.45rem}
.br-prev .frm .ln{height:8px;border-radius:4px;background:var(--tblr-border-color)}
.br-prev .frm .bt{height:26px;border-radius:7px;color:#fff;font-size:.72rem;font-weight:600;display:grid;place-items:center}
.br-prev .ph{padding:.9rem 1rem;color:#fff;border-top:1px solid var(--tblr-border-color)}
.br-prev .pw{font-size:.68rem;color:var(--tblr-secondary);padding:.4rem 1rem;text-align:right}

/* =====================================================================
   Deskivo brand layer (Brand Guidelines v1.0, October 2026)
   Toxic Violet #6C3BFF · Violet Dark #5125D6 · Violet Soft #EEE8FF · Deskivo Ink #151B2D
   Soft Chrome #E8EBF0 · App Grey #F8F9FB · White. Status: #12B76A / #F79009 / #F04438 / #2E90FA.
   Inter; 8px default radius (6px compact, 12px large); borders before shadows; flat surfaces;
   sentence case. Contrast: white on #6C3BFF 5.7:1, #5125D6 on white 7.6:1, #667085 on #F8F9FB 4.7:1.
   ===================================================================== */
:root{
  --dk-violet:#6c3bff;--dk-violet-dark:#5125d6;--dk-violet-soft:#eee8ff;--dk-ink:#151b2d;--dk-chrome:#e8ebf0;--dk-grey:#f8f9fb;
  --dk-success:#12b76a;--dk-warning:#f79009;--dk-error:#f04438;--dk-info:#2e90fa;
  --sd-accent:#6c3bff;--sd-accent-600:#5125d6;--sd-accent-700:#4318b8;--sd-accent-300:#b9a3ff;
  --sd-accent-soft:#eee8ff;--sd-accent-ring:rgba(108,59,255,.28);
  --sd-grad:linear-gradient(135deg,#6c3bff,#5125d6);
  --sd-r-sm:6px;--sd-r:8px;--sd-r-lg:12px;--sd-r-xl:12px;
  --sd-bg:#f8f9fb;--sd-surface:#ffffff;--sd-surface-2:#f8f9fb;--sd-border:#e8ebf0;--sd-text:#151b2d;--sd-muted:#667085;
  --sd-shadow-1:0 1px 2px rgba(21,27,45,.04);
  --sd-shadow-2:0 1px 2px rgba(21,27,45,.05);
  --sd-shadow-3:0 4px 14px -4px rgba(21,27,45,.10);
  --tblr-primary:#6c3bff;--tblr-primary-rgb:108,59,255;--tblr-primary-fg:#fff;
  --tblr-teal:#6c3bff;--tblr-teal-rgb:108,59,255;--tblr-purple:#6c3bff;--tblr-purple-rgb:108,59,255;--tblr-indigo:#5125d6;--tblr-indigo-rgb:81,37,214;
  --tblr-green:#12b76a;--tblr-green-rgb:18,183,106;--tblr-orange:#f79009;--tblr-orange-rgb:247,144,9;--tblr-yellow:#f79009;--tblr-yellow-rgb:247,144,9;
  --tblr-red:#f04438;--tblr-red-rgb:240,68,56;--tblr-blue:#2e90fa;--tblr-blue-rgb:46,144,250;--tblr-azure:#2e90fa;--tblr-azure-rgb:46,144,250;
  --tblr-body-color:#151b2d;--tblr-emphasis-color:#151b2d;--tblr-border-color:#e8ebf0;--tblr-secondary:#667085;--tblr-secondary-color:#667085;
  --tblr-body-bg:#f8f9fb;--tblr-bg-surface:#fff;--tblr-border-radius:8px;--tblr-card-border-radius:8px;--asm-accent:#6c3bff;
}
[data-bs-theme=dark]{
  --sd-bg:#0e1220;--sd-surface:#151b2d;--sd-surface-2:#111626;--sd-border:#262d44;--sd-text:#e8ebf0;--sd-muted:#98a2b3;
  --sd-accent-soft:rgba(108,59,255,.18);--sd-accent-300:#b9a3ff;
  --sd-shadow-1:0 1px 2px rgba(0,0,0,.35);--sd-shadow-2:0 1px 2px rgba(0,0,0,.35);--sd-shadow-3:0 8px 24px -8px rgba(0,0,0,.55);
  --tblr-primary:#7d52ff;--tblr-primary-rgb:125,82,255;
  --tblr-body-color:#e8ebf0;--tblr-emphasis-color:#fff;--tblr-body-bg:var(--sd-bg);--tblr-bg-surface:var(--sd-surface);--tblr-border-color:var(--sd-border);
  --tblr-secondary:#98a2b3;--tblr-secondary-color:#98a2b3;
}
[data-bs-theme=dark] body{background:var(--sd-bg)!important}
/* typography: Inter, sentence case, guide scale */
h1,.h1,.page-title{font-weight:600;letter-spacing:-.02em}
.page-title{font-size:1.75rem;color:var(--sd-text)}
h2,.h2{font-weight:600}h3,.h3,.card-title{font-weight:600}
.page-pretitle,.subheader,.nav-section,.card-table thead th,.module-table thead th,.table thead th,.hr-text{text-transform:none!important;letter-spacing:0!important}
.page-pretitle{font-size:.8125rem;font-weight:500;color:var(--sd-muted)}
.card-table thead th,.module-table thead th,.table thead th{font-size:.75rem!important;font-weight:600!important;color:var(--sd-muted)!important}
[data-bs-theme=light] .card-table thead th,[data-bs-theme=light] .module-table thead th{background:var(--dk-grey)!important}
.text-uppercase{text-transform:none!important;letter-spacing:0!important}
[data-bs-theme=light] .text-secondary{color:#667085!important}
a{color:var(--dk-violet-dark)}
.text-teal{color:var(--dk-violet-dark)!important}
/* logo: no effects (guide §03) */
.sd-logo{border-radius:0;filter:none;width:30px;height:30px}
.sd-wordmark{font-weight:700;letter-spacing:-.025em;color:#fff}
.sd-wordmark.dk-dark,.dk-dark .sd-wordmark{color:var(--dk-ink)}
[data-bs-theme=dark] .sd-wordmark.dk-dark{color:#fff}
.dk-word{white-space:nowrap}
.dk-i{position:relative;display:inline-block}
.dk-i::after{content:"";position:absolute;left:50%;top:.02em;width:.26em;height:.26em;margin-left:-.12em;border-radius:50%;background:var(--dk-violet)}
/* sidebar: Deskivo Ink, violet for the active state only */
.asm-sidebar{background:var(--dk-ink)!important;border-right:1px solid rgba(232,235,240,.06)!important;box-shadow:none}
.asm-sidebar .nav-link{border-radius:8px;color:#c4cad6}
.asm-sidebar .nav-link:hover{background:rgba(232,235,240,.06);color:#fff}
.asm-sidebar .nav-link:hover .nav-link-icon{color:#fff}
.asm-sidebar .nav-link.active{background:rgba(108,59,255,.22);color:#fff;box-shadow:inset 3px 0 0 var(--dk-violet)}
.asm-sidebar .nav-link.active .nav-link-icon{color:#c9b8ff}
.asm-sidebar .nav-section{color:#8a93a6;font-size:.75rem;font-weight:600}
.asm-sidebar .dropdown-item{color:#b3bac8}
.asm-sidebar .dropdown-item.active{background:rgba(108,59,255,.22);color:#fff;box-shadow:inset 3px 0 0 var(--dk-violet)}
.asm-brand small{color:#8a93a6!important}
/* top bar: flat white with a Soft Chrome rule */
.topbar{background:#fff!important;backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:1px solid var(--dk-chrome)!important;box-shadow:none}
[data-bs-theme=dark] .topbar{background:var(--sd-surface)!important;border-bottom-color:var(--sd-border)!important;box-shadow:none}
.topbar::after{display:none}
.topbar .avatar{background:var(--dk-violet)!important;box-shadow:none}
.gsearch .form-control{border-radius:8px}
/* surfaces */
.card{border-radius:8px;box-shadow:var(--sd-shadow-1)}
[data-bs-theme=dark] .card{background:var(--sd-surface)}
.card-hover:hover,a.card:hover{transform:none;box-shadow:var(--sd-shadow-3);border-color:rgba(108,59,255,.35)}
.card-footer{background:var(--sd-surface-2)}
.glass{border-radius:12px!important}
/* buttons: primary = Toxic Violet / white label; secondary = white / Soft Chrome / Ink */
.btn{border-radius:8px;font-weight:600}
.btn-sm{border-radius:6px}
.btn-accent,.btn-primary{background:var(--dk-violet)!important;color:#fff!important;box-shadow:none!important}
.btn-accent:hover,.btn-primary:hover,.btn-accent:active,.btn-primary:active{background:var(--dk-violet-dark)!important;filter:none;transform:none}
.btn:not(.btn-accent):not(.btn-primary):not([class*=btn-ghost]):not(.btn-warning):not(.btn-danger){background:#fff;border-color:var(--dk-chrome);color:var(--dk-ink);box-shadow:none}
[data-bs-theme=dark] .btn:not(.btn-accent):not(.btn-primary):not([class*=btn-ghost]):not(.btn-warning):not(.btn-danger){background:var(--sd-surface);border-color:var(--sd-border);color:var(--sd-text)}
.btn:not(.btn-accent):not(.btn-primary):not([class*=btn-ghost]):not(.btn-warning):not(.btn-danger):hover{border-color:rgba(108,59,255,.45);color:var(--dk-violet-dark)}
.btn-check:checked+.btn{background:var(--dk-violet-soft)!important;border-color:rgba(108,59,255,.5)!important}
.pagination .page-item.active .page-link{background:var(--dk-violet);box-shadow:none}
.form-control,.form-select{border-radius:6px;border-color:var(--dk-chrome)}
[data-bs-theme=dark] .form-control,[data-bs-theme=dark] .form-select{border-color:var(--sd-border)}
.form-control:focus,.form-select:focus{border-color:var(--dk-violet);box-shadow:0 0 0 3px var(--sd-accent-ring)}
:focus-visible{outline-color:var(--dk-violet)}
.module-table tbody tr:hover td:first-child{box-shadow:inset 3px 0 0 var(--dk-violet)}
.table-active,.module-table tbody tr.selected td{background:var(--dk-violet-soft)!important}
/* status colour: semantic only, text tones AA on their tints */
.pill-green{background:rgba(18,183,106,.12);color:#067647}.pill-orange{background:rgba(247,144,9,.14);color:#b54708}
.pill-red{background:rgba(240,68,56,.12);color:#b42318}.pill-blue{background:rgba(46,144,250,.12);color:#175cd3}
.pill-teal,.pill-purple{background:var(--dk-violet-soft);color:#5125d6}.pill-gray{background:#eef0f4;color:#475467}
[data-bs-theme=dark] .pill-green{color:#6ce9a6}[data-bs-theme=dark] .pill-orange{color:#fec84b}[data-bs-theme=dark] .pill-red{color:#fda29b}
[data-bs-theme=dark] .pill-blue{color:#84caff}[data-bs-theme=dark] .pill-teal,[data-bs-theme=dark] .pill-purple{background:rgba(108,59,255,.2);color:#c9b8ff}
[data-bs-theme=dark] .pill-gray{background:rgba(152,162,179,.16);color:#d0d5dd}
.bg-teal-lt,[data-bs-theme=light] .bg-teal-lt,.bg-purple-lt,.bg-indigo-lt{background:var(--dk-violet-soft)!important;color:#5125d6!important}
[data-bs-theme=dark] .bg-teal-lt,[data-bs-theme=dark] .bg-purple-lt,[data-bs-theme=dark] .bg-indigo-lt{background:rgba(108,59,255,.2)!important;color:#c9b8ff!important}
.bg-green-lt{background:rgba(18,183,106,.12)!important;color:#067647!important}.bg-orange-lt,.bg-yellow-lt{background:rgba(247,144,9,.14)!important;color:#b54708!important}
.bg-red-lt{background:rgba(240,68,56,.12)!important;color:#b42318!important}.bg-blue-lt,.bg-azure-lt{background:rgba(46,144,250,.12)!important;color:#175cd3!important}
.bg-teal,.bg-purple{background:var(--dk-violet)!important}
.steps-teal{--tblr-steps-color:var(--dk-violet)}
.alert{border-radius:8px}
/* sign-in: Deskivo Ink brand panel (violet-family gradient only), light neutral form side */
.auth-split,[data-bs-theme=light] .auth-split{background:var(--dk-grey)}
.auth-hero,:root:not([data-bs-theme=dark]) .auth-hero{background:radial-gradient(760px 520px at 0% 0%,rgba(108,59,255,.30),transparent 62%),radial-gradient(620px 480px at 100% 100%,rgba(81,37,214,.22),transparent 60%),#151b2d}
.auth-hero::before,:root:not([data-bs-theme=dark]) .auth-hero::before{background-image:linear-gradient(rgba(232,235,240,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(232,235,240,.04) 1px,transparent 1px)}
.auth-hero h1{font-weight:700;letter-spacing:-.03em;max-width:13ch}
.auth-hero .lead,:root:not([data-bs-theme=dark]) .auth-hero .lead{color:#c4cad6}
.auth-feat,:root:not([data-bs-theme=dark]) .auth-feat{background:rgba(232,235,240,.05);border:1px solid rgba(232,235,240,.12);border-radius:8px;box-shadow:none}
.auth-feat i,:root:not([data-bs-theme=dark]) .auth-feat i{color:#c9b8ff}
.auth-feat small,:root:not([data-bs-theme=dark]) .auth-feat small{color:#a3abbd}
.auth-chip,:root:not([data-bs-theme=dark]) .auth-hero .auth-chip{display:inline-flex;align-items:center;font-size:.8125rem;font-weight:500;padding:.25rem .7rem;border-radius:999px;background:rgba(108,59,255,.18)!important;color:#d9ccff!important;border:1px solid rgba(108,59,255,.35)!important}
.auth-foot{color:#8a93a6}
.auth-form,[data-bs-theme=light] .auth-form{background:var(--dk-grey)}
.auth-card .card,[data-bs-theme=light] .auth-card .card{background:#fff;border:1px solid var(--dk-chrome);border-radius:12px;box-shadow:0 1px 2px rgba(21,27,45,.04)}
[data-bs-theme=dark] .auth-form{background:var(--sd-bg)}[data-bs-theme=dark] .auth-card .card{background:var(--sd-surface);border-color:var(--sd-border)}
[data-bs-theme=light] .auth-card .form-control{background:#fff;border-color:var(--dk-chrome)}
.auth-title,[data-bs-theme=light] .auth-title{color:var(--dk-ink);font-weight:600}
.login-bg,[data-bs-theme=light] .login-bg{background:radial-gradient(900px 520px at 50% -10%,rgba(108,59,255,.10),transparent 60%),var(--dk-grey)!important;color:var(--dk-ink)}
[data-bs-theme=light] .glass{background:#fff!important;border:1px solid var(--dk-chrome)!important;box-shadow:0 1px 2px rgba(21,27,45,.04)}
.br-prev .hero{background:radial-gradient(240px 180px at 0% 0%,rgba(108,59,255,.35),transparent 60%),#151b2d}
.em-code pre,.ps-preview .bar{background:#151b2d}
.asm-brand small{text-transform:none!important;letter-spacing:0!important;font-size:.75rem}
.kpi::before{display:none}
.kpi .kpi-icon{border-radius:8px;box-shadow:none}
.kpi .kpi-value{font-weight:700}
/* portal hero: Deskivo Ink + violet (brand graphic), flat search and chips */
.portal-hero{background:radial-gradient(700px 320px at 0% 0%,rgba(108,59,255,.55),transparent 65%),radial-gradient(520px 300px at 100% 100%,rgba(81,37,214,.45),transparent 60%),#151b2d!important;border-radius:12px;box-shadow:none}
.portal-hero h2,.portal-hero p{text-shadow:none}.portal-hero h2{font-weight:700}
.portal-hero .search input{border-radius:8px;box-shadow:none}
.portal-hero .search i{color:#5125d6}
.portal-hero .chips a{backdrop-filter:none;border-radius:999px}
.hero{background:radial-gradient(1000px 300px at 0% 0%,rgba(108,59,255,.22),transparent 60%),#151b2d}
.hero .lbl{text-transform:none;letter-spacing:0;font-size:.75rem}
.auth-hero h1 span{background:none;color:#c9b8ff;-webkit-text-fill-color:#c9b8ff}
