/* Al Abbas Enterprises — "Harbour Ledger" design system. Standalone: no Bootstrap theme, no icon fonts. */
:root {
  --ink: #0d2a33;
  --ink-2: #14394a;
  --ink-3: #1f4d61;
  --rail: #0b2430;
  --rail-text: #a8c0c9;
  --rail-line: rgba(255,255,255,.07);
  --paper: #eef2f1;
  --surface: #ffffff;
  --sunken: #f6f8f8;
  --line: #d8e1e1;
  --line-2: #e7eded;
  --text: #11272f;
  --muted: #5b727b;
  --faint: #8aa0a8;
  --brand: #0a7a74;
  --brand-600: #086762;
  --brand-50: #e3f3f1;
  --signal: #e9a82b;
  --signal-50: #fdf3dc;
  --danger: #bf3b2b;
  --danger-50: #fbe9e6;
  --info: #2c5ccf;
  --info-50: #e6edfb;
  --ok: #1d8a4f;
  --ok-50: #e2f4ea;
  --radius: 10px;
  --radius-sm: 7px;
  --rail-w: 252px;
  --rail-w-c: 68px;
  --top-h: 60px;
  --shadow-1: 0 1px 2px rgba(13,42,51,.06), 0 0 0 1px rgba(13,42,51,.04);
  --shadow-2: 0 12px 32px -8px rgba(13,42,51,.28), 0 0 0 1px rgba(13,42,51,.06);
  --font: "Segoe UI Variable Text", "Segoe UI Variable", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
  --font-display: "Segoe UI Variable Display", "Segoe UI Variable", "Segoe UI", system-ui, sans-serif;
  --mono: ui-monospace, "Cascadia Mono", "SF Mono", Consolas, monospace;
  color-scheme: light;
  --chip: #e3eaea; --chip-2: #d4dede; --hover: #eef6f5; --head: #f3f7f7; --head-soft: #f7fafa;
  --glass: rgba(255,255,255,.8); --dot: rgba(13,42,51,.075); --line-strong: #b9c8c9;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; font-size: 15px; }
html.loading body { visibility: visible; }
body {
  margin: 0; background: var(--paper); color: var(--text);
  font-family: var(--font); font-size: 1rem; line-height: 1.5;
  font-variant-numeric: tabular-nums; -webkit-font-smoothing: antialiased;
}
h1,h2,h3,h4,h5,h6 { margin: 0 0 .5rem; font-family: var(--font-display); font-weight: 650; letter-spacing: -.012em; line-height: 1.25; color: var(--text); }
h1 { font-size: 1.75rem; } h2 { font-size: 1.4rem; } h3 { font-size: 1.2rem; } h4 { font-size: 1.05rem; } h5,h6 { font-size: 1rem; }
p { margin: 0 0 1rem; }
a { color: var(--brand); text-decoration: none; }
a:hover { color: var(--brand-600); text-decoration: underline; }
img, svg { vertical-align: middle; }
hr { border: 0; border-top: 1px solid var(--line); margin: 1rem 0; }
small, .small { font-size: .85em; }
label { display: inline-block; margin-bottom: .35rem; font-weight: 600; font-size: .86rem; color: var(--muted); }
button { font-family: inherit; }
::selection { background: var(--brand); color: #fff; }
:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }
[hidden], .hidden { display: none !important; }
.clearfix::after { content: ""; display: table; clear: both; }
table { border-collapse: collapse; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; } }

/* ---------- Shell ---------- */
.ae-rail {
  position: fixed; inset: 0 auto 0 0; width: var(--rail-w); z-index: 1030;
  background: var(--rail); color: var(--rail-text); display: flex; flex-direction: column;
  transition: width .22s cubic-bezier(.4,0,.2,1), transform .22s cubic-bezier(.4,0,.2,1);
}
.ae-brand { display: flex; align-items: center; gap: .75rem; height: var(--top-h); padding: 0 1.1rem; color: #fff; text-decoration: none !important; border-bottom: 1px solid var(--rail-line); flex: none; }
.ae-brand img { width: 30px; height: 30px; object-fit: contain; flex: none; }
.ae-brand b { font-family: var(--font-display); font-weight: 650; font-size: 1.02rem; letter-spacing: -.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ae-nav { flex: 1; overflow-y: auto; padding: .75rem .65rem 1rem; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.18) transparent; }
.ae-nav-label { margin: 1rem .65rem .35rem; font-size: .76rem; font-weight: 600; color: #6c8a96; letter-spacing: .01em; white-space: nowrap; }
.ae-nav > .ae-nav-label:first-child { margin-top: .25rem; }
.ae-link, .ae-group > summary {
  display: flex; align-items: center; gap: .75rem; padding: .55rem .7rem; margin: 1px 0; border-radius: 8px;
  color: var(--rail-text); font-weight: 520; font-size: .93rem; cursor: pointer; text-decoration: none !important;
  list-style: none; user-select: none; position: relative; white-space: nowrap;
}
.ae-group > summary::-webkit-details-marker { display: none; }
.ae-link:hover, .ae-group > summary:hover { background: rgba(255,255,255,.06); color: #fff; }
.ae-link .i, .ae-group > summary .i { flex: none; width: 1.25rem; height: 1.25rem; opacity: .9; }
.ae-group > summary .ae-chev { margin-left: auto; width: 1rem; height: 1rem; transition: transform .18s; opacity: .55; }
.ae-group[open] > summary .ae-chev { transform: rotate(90deg); }
.ae-group[open] > summary { color: #fff; }
.ae-sub { padding: .15rem 0 .4rem 1.9rem; margin-left: .95rem; border-left: 1px solid var(--rail-line); }
.ae-sub a { display: block; padding: .38rem .7rem; border-radius: 7px; color: var(--rail-text); font-size: .88rem; text-decoration: none !important; white-space: nowrap; }
.ae-sub a:hover { color: #fff; background: rgba(255,255,255,.06); }
.ae-link.active, .ae-sub a.active { color: #fff; background: rgba(10,122,116,.38); box-shadow: inset 2px 0 0 var(--signal); }
.ae-rail-foot { flex: none; padding: .7rem .65rem; border-top: 1px solid var(--rail-line); }
.ae-rail-foot button { width: 100%; display: flex; align-items: center; gap: .75rem; background: transparent; border: 0; color: var(--rail-text); padding: .5rem .7rem; border-radius: 8px; cursor: pointer; font-size: .88rem; }
.ae-rail-foot button:hover { background: rgba(255,255,255,.06); color: #fff; }

.ae-top {
  position: fixed; top: 0; right: 0; left: var(--rail-w); height: var(--top-h); z-index: 1020;
  display: flex; align-items: center; gap: .75rem; padding: 0 1.5rem;
  background: var(--glass); backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid var(--line);
  transition: left .22s cubic-bezier(.4,0,.2,1);
}
.ae-iconbtn { width: 38px; height: 38px; display: inline-grid; place-items: center; border-radius: 9px; border: 0; background: transparent; color: var(--muted); cursor: pointer; flex: none; }
.ae-iconbtn:hover { background: var(--sunken); color: var(--text); }
.ae-iconbtn .i { width: 1.3rem; height: 1.3rem; }
.ae-burger { display: none; }
.ae-jump { display: flex; align-items: center; gap: .6rem; min-width: 0; width: min(420px, 38vw); height: 38px; padding: 0 .7rem; border: 1px solid var(--line); border-radius: 10px; background: var(--sunken); color: var(--muted); cursor: pointer; font-size: .9rem; text-align: left; }
.ae-jump:hover { border-color: var(--line-strong); background: var(--surface); }
.ae-jump span { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ae-jump kbd, .ae-pal kbd { font: 600 .72rem var(--font); padding: .1rem .4rem; border: 1px solid var(--line); border-bottom-width: 2px; border-radius: 5px; background: var(--surface); color: var(--muted); }
.ae-top .ae-spacer { flex: 1; }
.ae-today { color: var(--muted); font-size: .85rem; white-space: nowrap; padding: 0 .5rem; }
.ae-new { display: inline-flex; align-items: center; gap: .4rem; height: 38px; padding: 0 1rem; border-radius: 9px; background: var(--brand); color: #fff !important; font-weight: 600; font-size: .9rem; text-decoration: none !important; box-shadow: 0 1px 0 rgba(255,255,255,.18) inset, 0 1px 2px rgba(10,122,116,.4); }
.ae-new:hover { background: var(--brand-600); }
.ae-user { position: relative; }
.ae-user-btn { display: flex; align-items: center; gap: .6rem; height: 42px; padding: 0 .55rem 0 .3rem; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); cursor: pointer; color: var(--text); font-size: .88rem; font-weight: 600; }
.ae-user-btn:hover { background: var(--sunken); }
.ae-avatar { width: 32px; height: 32px; border-radius: 50%; background: var(--ink-2); color: #fff; display: grid; place-items: center; font-size: .78rem; font-weight: 700; letter-spacing: .02em; }
.ae-menu { position: absolute; right: 0; top: calc(100% + 8px); min-width: 210px; background: var(--surface); border-radius: 12px; box-shadow: var(--shadow-2); padding: .4rem; display: none; z-index: 1100; }
.ae-user.open .ae-menu { display: block; animation: ae-pop .14s ease-out; }
.ae-menu a { display: flex; align-items: center; gap: .65rem; padding: .55rem .7rem; border-radius: 8px; color: var(--text); font-size: .9rem; text-decoration: none !important; }
.ae-menu a:hover { background: var(--sunken); }
.ae-menu hr { margin: .3rem 0; }
.ae-scrim { display: none; position: fixed; inset: 0; background: rgba(8,22,28,.55); z-index: 1025; }

.app-content { margin-left: var(--rail-w); padding-top: var(--top-h); min-height: 100vh; transition: margin-left .22s cubic-bezier(.4,0,.2,1); }
.content-wrapper { padding: 1.6rem 1.75rem 3rem; max-width: 1560px; margin: 0 auto; }
.content-overlay, .sidenav-overlay, .drag-target { display: none !important; }
.rail-c .ae-rail { width: var(--rail-w-c); }
.rail-c .ae-top { left: var(--rail-w-c); }
.rail-c .app-content { margin-left: var(--rail-w-c); }
.rail-c .ae-brand b, .rail-c .ae-link span, .rail-c .ae-group > summary span, .rail-c .ae-chev, .rail-c .ae-nav-label, .rail-c .ae-rail-foot span { display: none; }
.rail-c .ae-sub { display: none; }
.rail-c .ae-brand { justify-content: center; padding: 0; }
.rail-c .ae-link, .rail-c .ae-group > summary, .rail-c .ae-rail-foot button { justify-content: center; padding-left: 0; padding-right: 0; }

/* ---------- Command palette ---------- */
.ae-pal-wrap { position: fixed; inset: 0; z-index: 2000; display: none; align-items: flex-start; justify-content: center; padding-top: 12vh; background: rgba(8,22,28,.5); backdrop-filter: blur(3px); }
.ae-pal-wrap.open { display: flex; }
.ae-pal { width: min(620px, 94vw); background: var(--surface); border-radius: 16px; box-shadow: var(--shadow-2); overflow: hidden; animation: ae-pop .16s ease-out; }
.ae-pal-in { display: flex; align-items: center; gap: .75rem; padding: 0 1.1rem; border-bottom: 1px solid var(--line); }
.ae-pal .ae-pal-in input { flex: 1; border: 0; outline: 0; box-shadow: none; border-radius: 0; padding: 0; height: 56px; font-size: 1.05rem; background: transparent; color: var(--text); font-family: inherit; }
.ae-pal .ae-pal-in input:focus { box-shadow: none; border: 0; }
.ae-pal-list { max-height: 52vh; overflow: auto; padding: .5rem; }
.ae-pal-item { display: flex; align-items: center; gap: .8rem; padding: .65rem .8rem; border-radius: 9px; cursor: pointer; color: var(--text); text-decoration: none !important; }
.ae-pal-item .i { color: var(--muted); }
.ae-pal-item small { margin-left: auto; color: var(--faint); }
.ae-pal-item.sel { background: var(--brand-50); }
.ae-pal-item.sel .i { color: var(--brand); }
.ae-pal-empty { padding: 1.5rem; text-align: center; color: var(--muted); }
.ae-pal-foot { display: flex; gap: 1rem; padding: .6rem 1rem; border-top: 1px solid var(--line); background: var(--sunken); color: var(--muted); font-size: .8rem; }
@keyframes ae-pop { from { opacity: 0; transform: translateY(-6px) scale(.985); } to { opacity: 1; transform: none; } }

/* ---------- Grid ---------- */
.container, .container-fluid { width: 100%; padding: 0 .75rem; margin: 0 auto; }
.row { display: flex; flex-wrap: wrap; margin-left: -.75rem; margin-right: -.75rem; }
.row > * { padding-left: .75rem; padding-right: .75rem; max-width: 100%; }
.no-gutters { margin: 0; } .no-gutters > * { padding: 0; }
[class*="col-"], .col { position: relative; width: 100%; min-height: 1px; }
.col { flex: 1 0 0; max-width: 100%; }
.col-auto { flex: 0 0 auto; width: auto; }
.col-1{flex:0 0 8.333333%;max-width:8.333333%}
.col-2{flex:0 0 16.666667%;max-width:16.666667%}
.col-3{flex:0 0 25.0%;max-width:25.0%}
.col-4{flex:0 0 33.333333%;max-width:33.333333%}
.col-5{flex:0 0 41.666667%;max-width:41.666667%}
.col-6{flex:0 0 50.0%;max-width:50.0%}
.col-7{flex:0 0 58.333333%;max-width:58.333333%}
.col-8{flex:0 0 66.666667%;max-width:66.666667%}
.col-9{flex:0 0 75.0%;max-width:75.0%}
.col-10{flex:0 0 83.333333%;max-width:83.333333%}
.col-11{flex:0 0 91.666667%;max-width:91.666667%}
.col-12{flex:0 0 100.0%;max-width:100.0%}
.offset-0{margin-left:0.0%}
.offset-1{margin-left:8.333333%}
.offset-2{margin-left:16.666667%}
.offset-3{margin-left:25.0%}
.offset-4{margin-left:33.333333%}
.offset-5{margin-left:41.666667%}
.offset-6{margin-left:50.0%}
.offset-7{margin-left:58.333333%}
.offset-8{margin-left:66.666667%}
.offset-9{margin-left:75.0%}
.offset-10{margin-left:83.333333%}
.offset-11{margin-left:91.666667%}
@media (min-width:576px){
.col-sm-1{flex:0 0 8.333333%;max-width:8.333333%}
.col-sm-2{flex:0 0 16.666667%;max-width:16.666667%}
.col-sm-3{flex:0 0 25.0%;max-width:25.0%}
.col-sm-4{flex:0 0 33.333333%;max-width:33.333333%}
.col-sm-5{flex:0 0 41.666667%;max-width:41.666667%}
.col-sm-6{flex:0 0 50.0%;max-width:50.0%}
.col-sm-7{flex:0 0 58.333333%;max-width:58.333333%}
.col-sm-8{flex:0 0 66.666667%;max-width:66.666667%}
.col-sm-9{flex:0 0 75.0%;max-width:75.0%}
.col-sm-10{flex:0 0 83.333333%;max-width:83.333333%}
.col-sm-11{flex:0 0 91.666667%;max-width:91.666667%}
.col-sm-12{flex:0 0 100.0%;max-width:100.0%}
.col-sm{flex:1 0 0;max-width:100%}
.offset-sm-0{margin-left:0.0%}
.offset-sm-1{margin-left:8.333333%}
.offset-sm-2{margin-left:16.666667%}
.offset-sm-3{margin-left:25.0%}
.offset-sm-4{margin-left:33.333333%}
.offset-sm-5{margin-left:41.666667%}
.offset-sm-6{margin-left:50.0%}
.offset-sm-7{margin-left:58.333333%}
.offset-sm-8{margin-left:66.666667%}
.offset-sm-9{margin-left:75.0%}
.offset-sm-10{margin-left:83.333333%}
.offset-sm-11{margin-left:91.666667%}
}
@media (min-width:768px){
.col-md-1{flex:0 0 8.333333%;max-width:8.333333%}
.col-md-2{flex:0 0 16.666667%;max-width:16.666667%}
.col-md-3{flex:0 0 25.0%;max-width:25.0%}
.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}
.col-md-5{flex:0 0 41.666667%;max-width:41.666667%}
.col-md-6{flex:0 0 50.0%;max-width:50.0%}
.col-md-7{flex:0 0 58.333333%;max-width:58.333333%}
.col-md-8{flex:0 0 66.666667%;max-width:66.666667%}
.col-md-9{flex:0 0 75.0%;max-width:75.0%}
.col-md-10{flex:0 0 83.333333%;max-width:83.333333%}
.col-md-11{flex:0 0 91.666667%;max-width:91.666667%}
.col-md-12{flex:0 0 100.0%;max-width:100.0%}
.col-md{flex:1 0 0;max-width:100%}
.offset-md-0{margin-left:0.0%}
.offset-md-1{margin-left:8.333333%}
.offset-md-2{margin-left:16.666667%}
.offset-md-3{margin-left:25.0%}
.offset-md-4{margin-left:33.333333%}
.offset-md-5{margin-left:41.666667%}
.offset-md-6{margin-left:50.0%}
.offset-md-7{margin-left:58.333333%}
.offset-md-8{margin-left:66.666667%}
.offset-md-9{margin-left:75.0%}
.offset-md-10{margin-left:83.333333%}
.offset-md-11{margin-left:91.666667%}
}
@media (min-width:992px){
.col-lg-1{flex:0 0 8.333333%;max-width:8.333333%}
.col-lg-2{flex:0 0 16.666667%;max-width:16.666667%}
.col-lg-3{flex:0 0 25.0%;max-width:25.0%}
.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}
.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%}
.col-lg-6{flex:0 0 50.0%;max-width:50.0%}
.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%}
.col-lg-8{flex:0 0 66.666667%;max-width:66.666667%}
.col-lg-9{flex:0 0 75.0%;max-width:75.0%}
.col-lg-10{flex:0 0 83.333333%;max-width:83.333333%}
.col-lg-11{flex:0 0 91.666667%;max-width:91.666667%}
.col-lg-12{flex:0 0 100.0%;max-width:100.0%}
.col-lg{flex:1 0 0;max-width:100%}
.offset-lg-0{margin-left:0.0%}
.offset-lg-1{margin-left:8.333333%}
.offset-lg-2{margin-left:16.666667%}
.offset-lg-3{margin-left:25.0%}
.offset-lg-4{margin-left:33.333333%}
.offset-lg-5{margin-left:41.666667%}
.offset-lg-6{margin-left:50.0%}
.offset-lg-7{margin-left:58.333333%}
.offset-lg-8{margin-left:66.666667%}
.offset-lg-9{margin-left:75.0%}
.offset-lg-10{margin-left:83.333333%}
.offset-lg-11{margin-left:91.666667%}
}
@media (min-width:1200px){
.col-xl-1{flex:0 0 8.333333%;max-width:8.333333%}
.col-xl-2{flex:0 0 16.666667%;max-width:16.666667%}
.col-xl-3{flex:0 0 25.0%;max-width:25.0%}
.col-xl-4{flex:0 0 33.333333%;max-width:33.333333%}
.col-xl-5{flex:0 0 41.666667%;max-width:41.666667%}
.col-xl-6{flex:0 0 50.0%;max-width:50.0%}
.col-xl-7{flex:0 0 58.333333%;max-width:58.333333%}
.col-xl-8{flex:0 0 66.666667%;max-width:66.666667%}
.col-xl-9{flex:0 0 75.0%;max-width:75.0%}
.col-xl-10{flex:0 0 83.333333%;max-width:83.333333%}
.col-xl-11{flex:0 0 91.666667%;max-width:91.666667%}
.col-xl-12{flex:0 0 100.0%;max-width:100.0%}
.col-xl{flex:1 0 0;max-width:100%}
.offset-xl-0{margin-left:0.0%}
.offset-xl-1{margin-left:8.333333%}
.offset-xl-2{margin-left:16.666667%}
.offset-xl-3{margin-left:25.0%}
.offset-xl-4{margin-left:33.333333%}
.offset-xl-5{margin-left:41.666667%}
.offset-xl-6{margin-left:50.0%}
.offset-xl-7{margin-left:58.333333%}
.offset-xl-8{margin-left:66.666667%}
.offset-xl-9{margin-left:75.0%}
.offset-xl-10{margin-left:83.333333%}
.offset-xl-11{margin-left:91.666667%}
}
/* spacing */
.m-0{margin:0!important}
.mt-0{margin-top:0!important;}
.mr-0{margin-right:0!important;}
.mb-0{margin-bottom:0!important;}
.ml-0{margin-left:0!important;}
.mx-0{margin-left:0!important;margin-right:0!important;}
.my-0{margin-top:0!important;margin-bottom:0!important;}
.p-0{padding:0!important}
.pt-0{padding-top:0!important;}
.pr-0{padding-right:0!important;}
.pb-0{padding-bottom:0!important;}
.pl-0{padding-left:0!important;}
.px-0{padding-left:0!important;padding-right:0!important;}
.py-0{padding-top:0!important;padding-bottom:0!important;}
.m-25{margin:.25rem!important}
.mt-25{margin-top:.25rem!important;}
.mr-25{margin-right:.25rem!important;}
.mb-25{margin-bottom:.25rem!important;}
.ml-25{margin-left:.25rem!important;}
.mx-25{margin-left:.25rem!important;margin-right:.25rem!important;}
.my-25{margin-top:.25rem!important;margin-bottom:.25rem!important;}
.p-25{padding:.25rem!important}
.pt-25{padding-top:.25rem!important;}
.pr-25{padding-right:.25rem!important;}
.pb-25{padding-bottom:.25rem!important;}
.pl-25{padding-left:.25rem!important;}
.px-25{padding-left:.25rem!important;padding-right:.25rem!important;}
.py-25{padding-top:.25rem!important;padding-bottom:.25rem!important;}
.m-50{margin:.5rem!important}
.mt-50{margin-top:.5rem!important;}
.mr-50{margin-right:.5rem!important;}
.mb-50{margin-bottom:.5rem!important;}
.ml-50{margin-left:.5rem!important;}
.mx-50{margin-left:.5rem!important;margin-right:.5rem!important;}
.my-50{margin-top:.5rem!important;margin-bottom:.5rem!important;}
.p-50{padding:.5rem!important}
.pt-50{padding-top:.5rem!important;}
.pr-50{padding-right:.5rem!important;}
.pb-50{padding-bottom:.5rem!important;}
.pl-50{padding-left:.5rem!important;}
.px-50{padding-left:.5rem!important;padding-right:.5rem!important;}
.py-50{padding-top:.5rem!important;padding-bottom:.5rem!important;}
.m-75{margin:.75rem!important}
.mt-75{margin-top:.75rem!important;}
.mr-75{margin-right:.75rem!important;}
.mb-75{margin-bottom:.75rem!important;}
.ml-75{margin-left:.75rem!important;}
.mx-75{margin-left:.75rem!important;margin-right:.75rem!important;}
.my-75{margin-top:.75rem!important;margin-bottom:.75rem!important;}
.p-75{padding:.75rem!important}
.pt-75{padding-top:.75rem!important;}
.pr-75{padding-right:.75rem!important;}
.pb-75{padding-bottom:.75rem!important;}
.pl-75{padding-left:.75rem!important;}
.px-75{padding-left:.75rem!important;padding-right:.75rem!important;}
.py-75{padding-top:.75rem!important;padding-bottom:.75rem!important;}
.m-1{margin:1rem!important}
.mt-1{margin-top:1rem!important;}
.mr-1{margin-right:1rem!important;}
.mb-1{margin-bottom:1rem!important;}
.ml-1{margin-left:1rem!important;}
.mx-1{margin-left:1rem!important;margin-right:1rem!important;}
.my-1{margin-top:1rem!important;margin-bottom:1rem!important;}
.p-1{padding:1rem!important}
.pt-1{padding-top:1rem!important;}
.pr-1{padding-right:1rem!important;}
.pb-1{padding-bottom:1rem!important;}
.pl-1{padding-left:1rem!important;}
.px-1{padding-left:1rem!important;padding-right:1rem!important;}
.py-1{padding-top:1rem!important;padding-bottom:1rem!important;}
.m-2{margin:1.5rem!important}
.mt-2{margin-top:1.5rem!important;}
.mr-2{margin-right:1.5rem!important;}
.mb-2{margin-bottom:1.5rem!important;}
.ml-2{margin-left:1.5rem!important;}
.mx-2{margin-left:1.5rem!important;margin-right:1.5rem!important;}
.my-2{margin-top:1.5rem!important;margin-bottom:1.5rem!important;}
.p-2{padding:1.5rem!important}
.pt-2{padding-top:1.5rem!important;}
.pr-2{padding-right:1.5rem!important;}
.pb-2{padding-bottom:1.5rem!important;}
.pl-2{padding-left:1.5rem!important;}
.px-2{padding-left:1.5rem!important;padding-right:1.5rem!important;}
.py-2{padding-top:1.5rem!important;padding-bottom:1.5rem!important;}
.m-3{margin:3rem!important}
.mt-3{margin-top:3rem!important;}
.mr-3{margin-right:3rem!important;}
.mb-3{margin-bottom:3rem!important;}
.ml-3{margin-left:3rem!important;}
.mx-3{margin-left:3rem!important;margin-right:3rem!important;}
.my-3{margin-top:3rem!important;margin-bottom:3rem!important;}
.p-3{padding:3rem!important}
.pt-3{padding-top:3rem!important;}
.pr-3{padding-right:3rem!important;}
.pb-3{padding-bottom:3rem!important;}
.pl-3{padding-left:3rem!important;}
.px-3{padding-left:3rem!important;padding-right:3rem!important;}
.py-3{padding-top:3rem!important;padding-bottom:3rem!important;}
.m-4{margin:3.5rem!important}
.mt-4{margin-top:3.5rem!important;}
.mr-4{margin-right:3.5rem!important;}
.mb-4{margin-bottom:3.5rem!important;}
.ml-4{margin-left:3.5rem!important;}
.mx-4{margin-left:3.5rem!important;margin-right:3.5rem!important;}
.my-4{margin-top:3.5rem!important;margin-bottom:3.5rem!important;}
.p-4{padding:3.5rem!important}
.pt-4{padding-top:3.5rem!important;}
.pr-4{padding-right:3.5rem!important;}
.pb-4{padding-bottom:3.5rem!important;}
.pl-4{padding-left:3.5rem!important;}
.px-4{padding-left:3.5rem!important;padding-right:3.5rem!important;}
.py-4{padding-top:3.5rem!important;padding-bottom:3.5rem!important;}
.m-5{margin:4rem!important}
.mt-5{margin-top:4rem!important;}
.mr-5{margin-right:4rem!important;}
.mb-5{margin-bottom:4rem!important;}
.ml-5{margin-left:4rem!important;}
.mx-5{margin-left:4rem!important;margin-right:4rem!important;}
.my-5{margin-top:4rem!important;margin-bottom:4rem!important;}
.p-5{padding:4rem!important}
.pt-5{padding-top:4rem!important;}
.pr-5{padding-right:4rem!important;}
.pb-5{padding-bottom:4rem!important;}
.pl-5{padding-left:4rem!important;}
.px-5{padding-left:4rem!important;padding-right:4rem!important;}
.py-5{padding-top:4rem!important;padding-bottom:4rem!important;}
.m-auto{margin:auto!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.ml-auto{margin-left:auto!important}.mr-auto{margin-right:auto!important}

/* ---------- Display / flex / position utilities ---------- */
.d-none { display: none !important; } .d-block { display: block !important; } .d-inline { display: inline !important; } .d-inline-block { display: inline-block !important; } .d-flex { display: flex !important; } .d-inline-flex { display: inline-flex !important; } .d-table { display: table !important; }
.flex-row { flex-direction: row !important; } .flex-column { flex-direction: column !important; } .flex-wrap { flex-wrap: wrap !important; } .flex-grow-1 { flex-grow: 1 !important; } .flex-shrink-0 { flex-shrink: 0 !important; }
.justify-content-start { justify-content: flex-start !important; } .justify-content-end { justify-content: flex-end !important; } .justify-content-center { justify-content: center !important; } .justify-content-between { justify-content: space-between !important; }
.align-items-start { align-items: flex-start !important; } .align-items-center { align-items: center !important; } .align-items-end { align-items: flex-end !important; }
.position-relative { position: relative !important; } .position-absolute { position: absolute !important; } .position-fixed { position: fixed !important; }
.float-left, .pull-left { float: left !important; } .float-right, .pull-right { float: right !important; } .float-none { float: none !important; }
.w-100 { width: 100% !important; } .w-75 { width: 75% !important; } .w-50 { width: 50% !important; } .w-auto { width: auto !important; } .h-100 { height: 100% !important; }
.overflow-hidden { overflow: hidden !important; } .overflow-auto { overflow: auto !important; }
.cursor-pointer { cursor: pointer !important; } .no-wrap, .text-nowrap { white-space: nowrap !important; }
.text-left { text-align: left !important; } .text-right { text-align: right !important; } .text-center { text-align: center !important; } .text-justify { text-align: justify !important; }
.text-uppercase { text-transform: uppercase !important; } .text-lowercase { text-transform: lowercase !important; } .text-capitalize { text-transform: capitalize !important; }
.font-weight-bold, .bold, .text-bold-700, .text-bold-800, .text-bold-600 { font-weight: 650 !important; } .font-weight-normal, .text-bold-400 { font-weight: 400 !important; } .text-bold-500 { font-weight: 550 !important; } .text-italic { font-style: italic !important; }
.font-small-3 { font-size: .85rem !important; } .font-medium-3 { font-size: 1.15rem !important; } .font-large-1 { font-size: 1.5rem !important; } .text-size-base { font-size: 1rem; }
.border { border: 1px solid var(--line) !important; } .border-0 { border: 0 !important; } .border-top { border-top: 1px solid var(--line) !important; } .border-bottom { border-bottom: 1px solid var(--line) !important; }
.border-light, .border-grey { border-color: var(--line) !important; }
.rounded { border-radius: var(--radius-sm) !important; } .round { border-radius: 999px !important; } .rounded-circle { border-radius: 50% !important; }
.shadow-none { box-shadow: none !important; }
.visible { visibility: visible !important; } .invisible { visibility: hidden !important; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.text-muted, .grey { color: var(--muted) !important; } .text-white, .white { color: #fff !important; } .text-dark { color: var(--text) !important; }
.text-success { color: var(--ok) !important; } .text-danger, .red { color: var(--danger) !important; } .text-warning { color: #a8730a !important; } .text-info, .text-primary { color: var(--info) !important; } .text-teal { color: var(--brand) !important; } .pink { color: #b83a7a !important; }
.bg-white { background: var(--surface) !important; } .bg-info { background: var(--info) !important; } .bg-success, .bg-teal { background: var(--brand) !important; } .bg-dark { background: var(--ink) !important; } .bg-blue-grey, .bg-adn { background: #50707d !important; }
.bg-gradient-directional-success, .bg-gradient-directional-teal, .bg-gradient-directional-info, .bg-gradient-directional-warning, .bg-gradient-directional-pink, .bg-gradient-directional-cyan, .bg-gradient-directional-grey-blue { background: var(--sunken) !important; }

/* ---------- Cards ---------- */
.card { background: var(--surface); border-radius: var(--radius); box-shadow: var(--shadow-1); margin-bottom: 1.25rem; position: relative; min-width: 0; }
.card-content { border-radius: inherit; }
.card-body { padding: 1.25rem 1.35rem; }
.card-header { padding: 1rem 1.35rem; border-bottom: 1px solid var(--line-2); border-radius: var(--radius) var(--radius) 0 0; background: var(--surface) !important; position: relative; }
.card-header::before { content: ""; position: absolute; left: 0; top: 1rem; bottom: 1rem; width: 3px; border-radius: 0 3px 3px 0; background: var(--brand); }
.card-header h1, .card-header h2, .card-header h3, .card-header h4, .card-header h5, .card-header p, .card-header .card-title, .card-header .text-white, .card-header label { color: var(--text) !important; margin: 0; }
.card-header p { color: var(--muted) !important; font-size: .9rem; margin-top: .15rem; }
.card-header h3 { font-size: 1.12rem; }
.card-title { font-weight: 650; }
.card-footer { padding: .9rem 1.35rem; border-top: 1px solid var(--line-2); }
.card-body > h3:first-child, .card-body > h4:first-child { margin-bottom: 1rem; }
.card-body > h3 { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.card-body > h3 .btn { margin: 0 0 0 auto !important; }
.breadcrumbs-top, .content-header { margin-bottom: 1rem; }
.breadcrumb { display: flex; flex-wrap: wrap; list-style: none; padding: 0; margin: 0; font-size: .85rem; color: var(--muted); }
.breadcrumb-item + .breadcrumb-item::before { content: "/"; padding: 0 .5rem; color: var(--faint); }

/* ---------- Buttons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; padding: .5rem 1rem; border: 1px solid transparent; border-radius: 9px; font: 600 .92rem/1.3 var(--font); cursor: pointer; text-decoration: none !important; transition: background .15s, border-color .15s, box-shadow .15s, transform .05s; white-space: nowrap; vertical-align: middle; user-select: none; }
.btn:active { transform: translateY(1px); }
.btn:disabled, .btn.disabled { opacity: .5; pointer-events: none; }
.btn-sm { padding: .32rem .7rem; font-size: .84rem; border-radius: 8px; } .btn-lg { padding: .7rem 1.4rem; font-size: 1rem; } .btn-block { display: flex; width: 100%; }
.btn-primary, .btn-success, .btn-teal { background: var(--brand); color: #fff !important; box-shadow: 0 1px 0 rgba(255,255,255,.16) inset, 0 1px 2px rgba(10,122,116,.35); }
.btn-primary:hover, .btn-success:hover, .btn-teal:hover { background: var(--brand-600); }
.btn-info { background: var(--info); color: #fff !important; box-shadow: 0 1px 0 rgba(255,255,255,.16) inset, 0 1px 2px rgba(44,92,207,.35); } .btn-info:hover { background: #244fb6; }
.btn-dark, .btn-adn { background: var(--ink); color: #fff !important; } .btn-dark:hover, .btn-adn:hover { background: var(--ink-3); }
.btn-danger { background: var(--danger); color: #fff !important; } .btn-danger:hover { background: #a53123; }
.btn-warning { background: var(--signal); color: #3a2a00 !important; } .btn-warning:hover { background: #d89a1e; }
.btn-secondary, .btn-blue-grey { background: var(--chip); color: var(--text) !important; } .btn-secondary:hover, .btn-blue-grey:hover { background: var(--chip-2); }
.btn-light { background: var(--surface); color: var(--text) !important; border-color: var(--line); }
.btn-outline-secondary, .btn-outline-white { background: var(--surface); color: var(--text) !important; border-color: var(--line); } .btn-outline-secondary:hover, .btn-outline-white:hover { background: var(--sunken); border-color: var(--line-strong); }
.btn-outline-success { background: var(--surface); color: var(--brand) !important; border-color: var(--brand); } .btn-outline-success:hover { background: var(--brand-50); }
.btn-outline-danger { background: var(--surface); color: var(--danger) !important; border-color: var(--danger); }
.btn-link { background: transparent; color: var(--brand); }
.btn-group { display: inline-flex; } .btn-group > .btn:not(:first-child) { border-top-left-radius: 0; border-bottom-left-radius: 0; margin-left: -1px; } .btn-group > .btn:not(:last-child) { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.btn-group-toggle > .btn input { position: absolute; clip: rect(0,0,0,0); } .btn-group-toggle > .btn.active { background: var(--brand); color: #fff !important; }
.close { background: transparent; border: 0; font-size: 1.6rem; line-height: 1; color: var(--muted); cursor: pointer; padding: 0 .3rem; float: right; opacity: .8; } .close:hover { color: var(--text); opacity: 1; }

/* ---------- Forms ---------- */
.form-group { margin-bottom: 1rem; }
.form-control, input[type=text], input[type=number], input[type=date], input[type=email], input[type=password], input[type=search], input[type=tel], input[type=month], input[type=time], input[type=datetime-local], select, textarea {
  display: block; width: 100%; padding: .55rem .8rem; font: 500 .95rem/1.4 var(--font); color: var(--text); background: var(--surface);
  border: 1px solid var(--line); border-radius: 9px; transition: border-color .15s, box-shadow .15s; appearance: none; -webkit-appearance: none;
}
input[type=checkbox], input[type=radio] { width: 1.05rem; height: 1.05rem; accent-color: var(--brand); vertical-align: middle; }
select.form-control, select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235b727b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .6rem center; background-size: 1.1rem; padding-right: 2.2rem; }
.form-control:hover, input:hover, select:hover, textarea:hover { border-color: var(--line-strong); }
.form-control:focus, input:focus, select:focus, textarea:focus { outline: 0; border-color: var(--brand); box-shadow: 0 0 0 3px rgba(10,122,116,.16); }
.form-control:disabled, input:disabled, select:disabled, textarea:disabled, .form-control[readonly], input[readonly] { background: var(--sunken); color: var(--muted); }
::placeholder { color: var(--faint); opacity: 1; }
.form-control-sm { padding: .3rem .6rem; font-size: .85rem; border-radius: 8px; }
textarea { min-height: 5rem; resize: vertical; }
.form-control, select.form-control, input.form-control { min-height: 2.9rem; }
.form-control-sm { min-height: 0 !important; }
.form-text { display: block; margin-top: .3rem; color: var(--muted); font-size: .82rem; }
.form-check, .custom-control { display: flex; align-items: center; gap: .5rem; } .form-check-label, .custom-control-label { margin: 0; font-weight: 500; color: var(--text); }
.input-group { display: flex; width: 100%; align-items: stretch; }
.input-group > .form-control, .input-group > select { flex: 1; min-width: 0; width: auto; }
.input-group > :not(:first-child) { border-top-left-radius: 0; border-bottom-left-radius: 0; margin-left: -1px; } .input-group > :not(:last-child) { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.input-group-prepend, .input-group-append { display: flex; } .input-group-prepend .btn, .input-group-append .btn { border-radius: 0; height: 100%; }
.input-group-text { display: flex; align-items: center; padding: 0 .8rem; background: var(--sunken); border: 1px solid var(--line); color: var(--muted); font-size: .9rem; font-weight: 600; }
.input-group-prepend .input-group-text { border-radius: 9px 0 0 9px; } .input-group-append .input-group-text { border-radius: 0 9px 9px 0; margin-left: -1px; }
.has-icon-left .form-control { padding-left: 2.5rem; } .form-control-position { position: absolute; top: 0; left: 0; width: 2.5rem; height: 100%; display: grid; place-items: center; color: var(--faint); pointer-events: none; }
.invalid-feedback { color: var(--danger); font-size: .82rem; }

/* floating-label fields used across the app (.group) */
.group { position: relative; }
.group input, .group select { padding: .85rem .8rem .35rem; min-height: 2.9rem; width: 100%; }
.group textarea { padding: 1.1rem .8rem .35rem; width: 100%; }
.group > .select2 { width: 100% !important; }
.group > label { position: absolute; left: .8rem; top: .78rem; margin: 0; padding: 0 .25rem; font-weight: 500; font-size: .93rem; color: var(--faint); pointer-events: none; transition: all .15s ease; background: transparent; z-index: 2; max-width: calc(100% - 1.6rem); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.group input:focus ~ label, .group input:valid ~ label, .group input:not(:placeholder-shown) ~ label, .group textarea:focus ~ label, .group textarea:valid ~ label, .group select ~ label, .group.has-value > label {
  top: -.55rem; left: .6rem; font-size: .74rem; font-weight: 650; color: var(--brand); background: var(--surface); padding: 0 .35rem; line-height: 1.1;
}
.group input:focus ~ label { color: var(--brand); }
.group .highlight, .group .bar { display: none; }
.group input.border, .group input.rounded { padding-left: .8rem !important; }
form label { color: var(--muted); }

/* ---------- Tables (ruled ledger) ---------- */
.table-responsive { overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: var(--radius-sm); }
.table { width: 100%; margin-bottom: 1rem; color: var(--text); font-size: .92rem; }
.table th, .table td { padding: .6rem .8rem; vertical-align: top; text-align: left; border-bottom: 1px solid var(--line-2); }
.table-sm th, .table-sm td { padding: .42rem .65rem; }
.table thead th { font-weight: 650; font-size: .82rem; color: var(--muted); background: var(--sunken) !important; border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); white-space: nowrap; vertical-align: bottom; }
.table thead { background: var(--sunken) !important; color: var(--muted) !important; }
.table thead.text-white th { color: var(--muted); }
.table tbody tr { transition: background .1s; }
.table-hover tbody tr:hover, .table tbody tr:hover { background: var(--hover); }
.table-striped tbody tr:nth-of-type(odd) { background: transparent; }
.table-bordered { border: 0; } .table-bordered th, .table-bordered td { border-left: 0; border-right: 0; }
.table-middle td, .table-middle th { vertical-align: middle !important; }
.table-white-space td, .table-white-space th { white-space: nowrap; }
.table tfoot td, .table tfoot th { font-weight: 650; background: var(--sunken); border-top: 2px solid var(--line); }
.table td.text-right, .table th.text-right { font-variant-numeric: tabular-nums; }
.table tr.table-active, .table tr.selected { background: var(--brand-50) !important; }
table.dataTable { width: 100% !important; }
.row-grouping tbody tr[ondblclick], .table tbody tr[ondblclick] { cursor: pointer; }

/* ---------- Badges, alerts, tabs ---------- */
.badge { display: inline-flex; align-items: center; padding: .15rem .55rem; font-size: .78rem; font-weight: 650; border-radius: 6px; border: 1.5px solid currentColor; line-height: 1.35; letter-spacing: .01em; transform: rotate(-1.5deg); background: var(--surface); }
.badge-pill { border-radius: 999px; transform: none; }
.badge-lg { font-size: .9rem; padding: .25rem .7rem; }
.badge-primary, .badge-success { color: var(--brand); background: var(--brand-50); } .badge-info { color: var(--info); background: var(--info-50); } .badge-danger { color: var(--danger); background: var(--danger-50); }
.badge-warning { color: #8a5a00; background: var(--signal-50); } .badge-dark { color: var(--text); background: var(--chip); } .badge-secondary { color: var(--muted); background: var(--sunken); }
.alert { padding: .8rem 1rem; border-radius: 10px; margin-bottom: 1rem; border: 1px solid; font-size: .93rem; }
.alert-danger { background: var(--danger-50); border-color: #f0c4bd; color: #8a2a1e; } .alert-info, .alert-primary { background: var(--info-50); border-color: #c3d2f4; color: #1f43a0; }
.alert-success, .alert-teal { background: var(--ok-50); border-color: #b9e0c9; color: #17693c; } .alert-warning { background: var(--signal-50); border-color: #f0dba8; color: #7a5200; }
.nav { display: flex; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; }
.nav-link { display: block; padding: .55rem 1rem; color: var(--muted); font-weight: 600; text-decoration: none !important; cursor: pointer; }
.nav-tabs { border-bottom: 1px solid var(--line); margin-bottom: 1rem; }
.nav-tabs .nav-link { border-bottom: 2px solid transparent; margin-bottom: -1px; } .nav-tabs .nav-link:hover { color: var(--text); }
.nav-tabs .nav-link.active { color: var(--brand); border-bottom-color: var(--brand); }
.nav-pills { gap: .35rem; margin-bottom: 1rem; } .nav-pills .nav-link { border-radius: 8px; } .nav-pills .nav-link.active { background: var(--brand); color: #fff; }
.nav-justified > .nav-item { flex: 1; text-align: center; }
.tab-content > .tab-pane { display: none; } .tab-content > .active { display: block; }
.collapse:not(.show) { display: none; } .collapsing { overflow: hidden; }
.fade { transition: opacity .15s linear; } .fade:not(.show) { opacity: 0; }
.progress { height: .6rem; background: var(--line-2); border-radius: 99px; overflow: hidden; } .progress-bar { background: var(--brand); height: 100%; }
.tooltip { position: absolute; z-index: 2100; font-size: .8rem; opacity: 0; } .tooltip.show { opacity: 1; }
.tooltip-inner { background: var(--ink); color: #fff; padding: .35rem .6rem; border-radius: 7px; max-width: 260px; text-align: center; }
.tooltip .arrow { display: none; }
.dropdown { position: relative; } .dropdown-menu { position: absolute; top: 100%; left: 0; z-index: 1100; display: none; min-width: 11rem; padding: .4rem; margin-top: .3rem; background: var(--surface); border-radius: 12px; box-shadow: var(--shadow-2); }
.dropdown-menu.show { display: block; } .dropdown-menu-right { right: 0; left: auto; }
.dropdown-item { display: flex; align-items: center; gap: .6rem; padding: .5rem .7rem; border-radius: 8px; color: var(--text); text-decoration: none !important; cursor: pointer; } .dropdown-item:hover { background: var(--sunken); }
.dropdown-divider { height: 1px; background: var(--line); margin: .3rem 0; }
.pagination { display: flex; list-style: none; padding: 0; gap: .25rem; }

/* ---------- Modals ---------- */
.modal { display: none; position: fixed; inset: 0; z-index: 1050; overflow-x: hidden; overflow-y: auto; outline: 0; }
.modal-open { overflow: hidden; }
.modal-dialog { position: relative; width: auto; max-width: 540px; margin: 7vh auto 2rem; padding: 0 .75rem; pointer-events: none; }
.modal-lg { max-width: 860px; } .modal-xl { max-width: 1140px; } .modal-sm { max-width: 340px; }
.modal-content { position: relative; display: flex; flex-direction: column; width: 100%; pointer-events: auto; background: var(--surface); border-radius: 16px; box-shadow: var(--shadow-2); overflow: hidden; }
.modal-header { padding: 1.1rem 1.4rem; border-bottom: 1px solid var(--line-2); display: flex; align-items: center; justify-content: space-between; gap: 1rem; background: var(--surface) !important; }
.modal-header .text-white, .modal-header h1, .modal-header h2, .modal-header h3, .modal-header h4, .modal-header h5 { color: var(--text) !important; }
.modal-title { margin: 0; font-size: 1.1rem; font-weight: 650; }
.modal-body { padding: 1.3rem 1.4rem; max-height: calc(100vh - 14rem); overflow-y: auto; }
.modal-footer { padding: .95rem 1.4rem; border-top: 1px solid var(--line-2); display: flex; justify-content: flex-end; gap: .6rem; background: var(--sunken); }
.modal-backdrop { position: fixed; inset: 0; z-index: 1040; background: rgba(8,22,28,.55); backdrop-filter: blur(2px); }
.modal-backdrop.fade { opacity: 0; } .modal-backdrop.show { opacity: 1; }
.modal.fade .modal-dialog { transform: translateY(-14px); opacity: 0; transition: transform .2s ease, opacity .2s ease; } .modal.show .modal-dialog { transform: none; opacity: 1; }
.animated { animation-duration: .22s; animation-fill-mode: both; animation-timing-function: ease-out; }
.fadeIn, .flipInX, .zoomIn, .fadeInDown, .bounceIn, .slideInDown { animation-name: ae-pop; }
.modal.animated .modal-dialog { opacity: 1; }
.spinner, .fa-spin, .la-spin { animation: ae-spin .8s linear infinite; } @keyframes ae-spin { to { transform: rotate(360deg); } }

/* ---------- Page: dashboard search & list helpers ---------- */
.bug-list-search-content label { display: none; }
.bug-list-search input { height: 46px !important; border-radius: 12px !important; padding-left: 2.8rem !important; font-size: 1rem; background: var(--sunken); }
.bug-list-search .form-control-position { top: 0 !important; height: 46px; }
.sidebar-toggle { display: none !important; }
#appSummaryDates .date-filter, .date-filter.w-100 { display: flex !important;
}
.date-filter { display: inline-flex !important; align-items: center; justify-content: space-between; border-radius: 9px !important; border: 1px solid var(--line) !important; background: var(--surface); font-weight: 600; font-size: .9rem; transition: all .12s; }
.date-filter:hover { border-color: var(--brand) !important; background: var(--brand-50); }
.date-filter.active, .date-filter.selected { background: var(--brand) !important; border-color: var(--brand) !important; color: #fff; }
.date-filter .badge { transform: none; }
.editable-cell { cursor: text; }

/* ---------- Third-party reskin ---------- */
.select2.select2-container { width: 100% !important; font-family: var(--font); }
.select2-container { font-family: var(--font); max-width: 100vw; }
.select2-container--default .select2-selection--single, .select2-container--default .select2-selection--multiple { min-height: 2.75rem; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); display: flex; align-items: center; }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 1.4; padding: .45rem 2rem .45rem .8rem; color: var(--text); font-weight: 500; width: 100%; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 100%; right: .4rem; }
.select2-container--default.select2-container--focus .select2-selection, .select2-container--default.select2-container--open .select2-selection { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(10,122,116,.16); }
.select2-dropdown { border: 0 !important; border-radius: 12px !important; box-shadow: var(--shadow-2); overflow: hidden; z-index: 3000; margin-top: 4px; }
.select2-container--default .select2-search--dropdown { padding: .6rem; } .select2-container--default .select2-search--dropdown .select2-search__field { border: 1px solid var(--line); border-radius: 8px; padding: .45rem .6rem; }
.select2-container--default .select2-results__option { padding: .5rem .85rem; font-size: .92rem; }
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted.select2-results__option--selectable { background: var(--brand) !important; color: #fff; }
.select2-container--default .select2-results__option[aria-selected=true] { background: var(--brand-50); color: var(--brand-600); }
.select2-container--default .select2-selection--multiple .select2-selection__choice { background: var(--brand-50); border: 0; border-radius: 6px; color: var(--brand-600); }
span.select2-selection__placeholder { color: var(--faint) !important; font-weight: 500; }
div.dataTables_wrapper { padding: 0; }
.dataTables_wrapper .dataTables_filter input, .dataTables_wrapper .dataTables_length select { border: 1px solid var(--line); border-radius: 9px; padding: .35rem .7rem; width: auto; display: inline-block; }
.dataTables_wrapper .dataTables_filter, .dataTables_wrapper .dataTables_length, .dataTables_wrapper .dataTables_info { font-size: .88rem; color: var(--muted); margin: .4rem 0 .8rem; }
.dataTables_wrapper .dataTables_paginate { margin-top: .8rem; } .dataTables_wrapper .dataTables_paginate .paginate_button { display: inline-block; min-width: 2rem; padding: .3rem .6rem; margin: 0 .1rem; border-radius: 8px; border: 1px solid transparent; cursor: pointer; font-size: .88rem; color: var(--text) !important; text-align: center; }
.dataTables_wrapper .dataTables_paginate .paginate_button:hover { background: var(--sunken); border-color: var(--line); }
.dataTables_wrapper .dataTables_paginate .paginate_button.current { background: var(--brand) !important; color: #fff !important; }
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled { opacity: .4; pointer-events: none; }
table.dataTable thead th { position: relative; padding-right: 1.6rem !important; cursor: pointer; }
table.dataTable thead .sorting::after, table.dataTable thead .sorting_asc::after, table.dataTable thead .sorting_desc::after { content: ""; position: absolute; right: .55rem; top: 50%; width: .7rem; height: .7rem; margin-top: -.35rem; background: var(--faint); opacity: .5; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 4l5 6H7zM12 20l-5-6h10z'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 4l5 6H7zM12 20l-5-6h10z'/%3E%3C/svg%3E") center/contain no-repeat; }
table.dataTable thead .sorting_asc::after, table.dataTable thead .sorting_desc::after { background: var(--brand); opacity: 1; }
table.dataTable thead .sorting::before, table.dataTable thead .sorting_asc::before, table.dataTable thead .sorting_desc::before { display: none; }
.swal2-popup { border-radius: 16px !important; font-family: var(--font) !important; box-shadow: var(--shadow-2) !important; }
.swal2-title { font-family: var(--font-display) !important; font-weight: 650 !important; color: var(--text) !important; }
.swal2-styled.swal2-confirm { background: var(--brand) !important; border-radius: 9px !important; box-shadow: none !important; }
.swal2-styled.swal2-cancel { border-radius: 9px !important; }
.daterangepicker { border: 0; border-radius: 14px; box-shadow: var(--shadow-2); font-family: var(--font); z-index: 3000 !important; }
.daterangepicker td.active, .daterangepicker td.active:hover { background: var(--brand); } .daterangepicker .ranges li.active { background: var(--brand); }
.daterangepicker .drp-buttons .btn { border-radius: 8px; }
.tagging { border: 1px solid var(--line); border-radius: 9px; padding: .3rem; background: var(--surface); }
.tagging .tag { background: var(--brand-50) !important; color: var(--brand-600); border-radius: 6px; text-transform: uppercase; padding: .15rem .5rem; }
.tagging .tag span { background: transparent !important; }
.context-menu-list { border-radius: 12px !important; box-shadow: var(--shadow-2) !important; border: 0 !important; padding: .35rem !important; font-family: var(--font) !important; }
.context-menu-item { border-radius: 8px; padding: .5rem .9rem !important; }
.context-menu-item.context-menu-hover { background: var(--brand) !important; color: #fff !important; }
div#MonthPicker_monthPicker { background: var(--surface); padding: 12px; border: 0; box-shadow: var(--shadow-2); border-radius: 14px; width: 300px; z-index: 3000 !important; }
table.month-picker-month-table { width: 100%; } table.month-picker-month-table td { padding: .4rem; border-radius: 8px; text-align: center; cursor: pointer; }
table.month-picker-month-table td:hover { background: var(--brand); color: #fff; }

/* ---------- Responsive ---------- */
@media (max-width: 991.98px) {
  .ae-rail { transform: translateX(-100%); width: min(86vw, 300px) !important; box-shadow: var(--shadow-2); }
  body.rail-open .ae-rail { transform: none; }
  body.rail-open .ae-scrim { display: block; }
  body.rail-open { overflow: hidden; }
  .ae-top, .rail-c .ae-top { left: 0; padding: 0 .85rem; }
  .app-content, .rail-c .app-content { margin-left: 0; }
  .ae-burger { display: inline-grid; }
  .ae-today, .ae-user-name { display: none; }
  .ae-jump { width: auto; flex: 1; } .ae-jump kbd { display: none; }
  .content-wrapper { padding: 1rem .85rem 2.5rem; }
  .rail-c .ae-brand b, .rail-c .ae-link span, .rail-c .ae-group > summary span, .rail-c .ae-chev, .rail-c .ae-nav-label { display: initial; }
  .rail-c .ae-sub { display: block; }
  .rail-c .ae-link, .rail-c .ae-group > summary { justify-content: flex-start; padding-left: .7rem; }
  .card-body { padding: 1rem; } .card-header { padding: .85rem 1rem; }
  .modal-dialog { margin-top: 3vh; }
  .modal-body { max-height: calc(100vh - 10rem); }
  .ae-user-btn { padding: 0 .3rem; border: 0; background: transparent; }
  .ae-new { padding: 0 .75rem; } .ae-new span { display: none; }
}
@media (max-width: 575.98px) { html { font-size: 14.5px; } .card-body > h3 { font-size: 1.05rem; } }
@media print { .ae-rail, .ae-top, .ae-scrim { display: none !important; } .app-content { margin: 0; padding: 0; } .card { box-shadow: none; } }

/* ---------- Login ---------- */
body.ae-login { background: var(--surface); }
.ae-login-wrap { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
.ae-login-brand { position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; padding: 3rem 3.5rem; color: #fff; background: var(--rail); }
.ae-login-brand .ae-mark { position: relative; z-index: 2; display: flex; align-items: center; gap: .8rem; font: 650 1.1rem var(--font-display); }
.ae-login-brand .ae-mark img { width: 36px; height: 36px; }
.ae-login-brand h2 { position: relative; z-index: 2; color: #fff; font-size: clamp(2rem, 3.4vw, 3rem); line-height: 1.08; letter-spacing: -.03em; font-weight: 700; max-width: 14ch; margin: 0 0 1.1rem; }
.ae-login-brand p { position: relative; z-index: 2; color: #9fb9c3; max-width: 44ch; margin: 0; font-size: 1.02rem; }
.ae-login-brand .ae-copy { position: relative; z-index: 2; color: #5f808d; font-size: .8rem; }
.ae-contours { position: absolute; inset: 0; z-index: 1; opacity: .9; }
.ae-login-form { display: flex; align-items: center; justify-content: center; padding: 2.5rem 1.5rem; background: var(--surface); }
.ae-login-card { width: 100%; max-width: 380px; }
.ae-login-card .ae-logo-sm { display: none; }
.ae-login-card h1 { font-size: 1.8rem; letter-spacing: -.025em; margin: 0 0 .4rem; }
.ae-login-card .ae-lead { color: var(--muted); margin: 0 0 1.75rem; }
.ae-field { position: relative; margin-bottom: 1.1rem; } .ae-field label { display: block; }
.ae-field .i { position: absolute; left: .9rem; bottom: .8rem; color: var(--faint); width: 1.15rem; height: 1.15rem; pointer-events: none; }
.ae-field .form-control { padding-left: 2.7rem; height: 3rem; }
.ae-login-card .btn-block { height: 3rem; font-size: 1rem; background: var(--ink); color: #fff !important; margin-top: .6rem; }
.ae-login-card .btn-block:hover { background: var(--ink-3); }
@media (max-width: 860px) {
  .ae-login-wrap { grid-template-columns: 1fr; } .ae-login-brand { display: none; }
  .ae-login-card .ae-logo-sm { display: flex; align-items: center; gap: .6rem; margin-bottom: 2.2rem; font: 650 1.05rem var(--font-display); color: var(--ink); }
  .ae-login-card .ae-logo-sm img { width: 34px; height: 34px; background: var(--ink); border-radius: 9px; padding: 4px; }
}

.ae-foot { margin-left: var(--rail-w); display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 1.75rem; color: var(--faint); font-size: .82rem; transition: margin-left .22s; }
.ae-foot a { color: var(--muted); }
.rail-c .ae-foot { margin-left: var(--rail-w-c); }
@media (max-width: 991.98px) { .ae-foot, .rail-c .ae-foot { margin-left: 0; padding: 1rem .85rem; } }

/* =====================  POLISH LAYER  ===================== */
:root { --radius: 14px; --shadow-1: 0 1px 2px rgba(13,42,51,.05), 0 10px 28px -14px rgba(13,42,51,.22), 0 0 0 1px rgba(13,42,51,.05); }
body { background-color: var(--paper); background-image: radial-gradient(var(--dot) 1px, transparent 1.2px); background-size: 22px 22px; }
.ae-rail { background: radial-gradient(420px 260px at 0% 0%, rgba(15,160,150,.22), transparent 70%), linear-gradient(180deg, #0e2d3a 0%, #081b24 100%); }
.ae-brand { border-bottom-color: rgba(255,255,255,.06); }
.ae-link.active, .ae-sub a.active { background: linear-gradient(90deg, rgba(20,170,158,.42), rgba(20,170,158,.10)); box-shadow: inset 3px 0 0 var(--signal); border-radius: 9px; }
.ae-link, .ae-group > summary { border-radius: 9px; }
.ae-top { background: var(--glass); }
.card { border-radius: var(--radius); }
.card-header { background: linear-gradient(180deg, var(--surface), var(--head-soft)) !important; padding: 1.05rem 1.5rem; }
.card-header::before { display: none; }
.card-header h3 { font-size: 1.15rem; letter-spacing: -.015em; }
.card-body { padding: 1.4rem 1.5rem; }
.btn-primary, .btn-success, .btn-teal { background: linear-gradient(180deg, #11928b, #0a7a74); }
.btn-primary:hover, .btn-success:hover, .btn-teal:hover { background: linear-gradient(180deg, #0e8780, #086762); box-shadow: 0 4px 12px -3px rgba(10,122,116,.5); }
.btn-info { background: linear-gradient(180deg, #3a69dc, #2c5ccf); }
.btn-dark { background: linear-gradient(180deg, #17384a, #0d2a33); }
.btn { transition: background .15s, box-shadow .18s, transform .12s; }
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: none; }
.table thead th { background: var(--head) !important; text-transform: none; letter-spacing: 0; }
.table tbody tr:hover td:first-child { box-shadow: inset 3px 0 0 var(--brand); }
.table tbody tr:hover { background: var(--hover); }
.table.text-center th, .table.text-center td { text-align: center; }
.table td { color: var(--text); }

/* Dashboard hero */
.ae-hero { position: relative; overflow: hidden; border-radius: 20px; padding: 1.7rem 1.9rem; margin-bottom: 1.4rem; color: #fff; background: radial-gradient(700px 300px at 85% -20%, rgba(20,170,158,.38), transparent 70%), linear-gradient(135deg, #0f3140 0%, #0b2430 55%, #081b24 100%); box-shadow: 0 18px 40px -20px rgba(8,27,36,.7); display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.5fr); gap: 1.5rem; align-items: center; }
.ae-hero::before { content: ""; position: absolute; inset: 0; background: url("../images/contours.svg") center/cover no-repeat; opacity: .9; animation: ae-drift 26s ease-in-out infinite alternate; }
.ae-hero > * { position: relative; }
.ae-hero h1 { color: #fff; font-size: clamp(1.5rem, 2.4vw, 2.1rem); letter-spacing: -.03em; margin: 0 0 .35rem; font-weight: 700; }
.ae-hero p { color: #a6c1cb; margin: 0 0 1.1rem; }
.ae-hero .ae-hero-cta { display: flex; gap: .6rem; flex-wrap: wrap; }
.ae-hero .btn { background: rgba(255,255,255,.1) !important; border: 1px solid rgba(255,255,255,.18); color: #fff !important; box-shadow: none; backdrop-filter: blur(6px); }
.ae-hero .btn:hover { background: rgba(255,255,255,.18) !important; }
.ae-hero .btn.primary { background: #fff !important; color: var(--ink) !important; border-color: #fff; }
.ae-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.ae-kpi { padding: 1rem 1.1rem; border-radius: 14px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.13); backdrop-filter: blur(8px); }
.ae-kpi b { display: block; font: 700 2rem/1.1 var(--font-display); letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.ae-kpi span { display: block; margin-top: .3rem; color: #a6c1cb; font-size: .84rem; }
.ae-kpi.warn b { color: #ffd37a; }
@keyframes ae-drift { from { transform: translateX(-2%) scale(1.04); } to { transform: translateX(2%) scale(1.04); } }
@keyframes ae-rise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.content-body > .ae-hero, .content-body > section { animation: ae-rise .5s cubic-bezier(.2,.7,.2,1) both; }
.content-body > section:nth-of-type(1) { animation-delay: .06s; } .content-body > section:nth-of-type(2) { animation-delay: .12s; } .content-body > section:nth-of-type(3) { animation-delay: .18s; }

/* Queue: pending dates with load bars */
.date-filter { position: relative; overflow: hidden; padding: .7rem .85rem .95rem !important; margin-bottom: .55rem !important; }
.date-filter .ae-bar { position: absolute; left: 0; bottom: 0; height: 4px; width: var(--w, 10%); background: linear-gradient(90deg, var(--brand), #3fc1b3); border-radius: 0 4px 4px 0; transition: width .4s; }
.date-filter.active .ae-bar { background: var(--signal); }
.date-filter.active .badge { background: rgba(255,255,255,.18); color: #fff; border-color: transparent; }
.bug-list-search input { background: var(--surface); box-shadow: var(--shadow-1); border-color: transparent; }
@media (max-width: 991.98px) { .ae-hero { grid-template-columns: 1fr; padding: 1.3rem 1.2rem; } .ae-kpis { grid-template-columns: repeat(3, minmax(0,1fr)); gap: .5rem; } .ae-kpi { padding: .75rem .7rem; } .ae-kpi b { font-size: 1.4rem; } .ae-kpi span { font-size: .74rem; } }
@media (prefers-reduced-motion: reduce) { .ae-hero::before { animation: none; } }

/* =====================  LEGACY-CLASS FIXES  ===================== */
thead.text-white, tfoot.text-white, thead.text-white th, tfoot.text-white td, tfoot.text-white th, .card-header.text-white, .modal-header.text-white { color: var(--text) !important; }
.table tfoot td, .table tfoot th { color: var(--text); }
.btn[class*="bg-gradient-directional"] { background: linear-gradient(180deg, #11928b, #0a7a74) !important; color: #fff !important; border: 0; }
.bg-gradient-directional-blue { background: var(--brand) !important; }
.bg-gradient-directional-blue.text-white .badge { background: rgba(255,255,255,.18); color: #fff; border-color: transparent; }
.border-dark { border-color: var(--brand) !important; } .shadow { box-shadow: 0 6px 18px -8px rgba(10,122,116,.55) !important; }
.border-success { border-color: var(--ok) !important; box-shadow: 0 0 0 3px rgba(29,138,79,.14); }
.is-invalid, .form-control.is-invalid { border-color: var(--danger) !important; box-shadow: 0 0 0 3px rgba(191,59,43,.14) !important; }
/* colour-coded card headers (old gradient headers become a coloured marker) */
.card-header[class*="bg-gradient-directional"], .modal-header[class*="bg-gradient-directional"] { padding-left: 2.6rem; font-size: 1.05rem !important; font-weight: 650; letter-spacing: -.01em; }
.card-header[class*="bg-gradient-directional"]::before, .modal-header[class*="bg-gradient-directional"]::before { content: ""; display: block !important; position: absolute; left: 1.5rem; top: 50%; bottom: auto; width: 9px; height: 9px; margin-top: -4.5px; border-radius: 3px; background: var(--brand); box-shadow: 0 0 0 4px var(--brand-50); transform: rotate(45deg); }
.modal-header[class*="bg-gradient-directional"] { position: relative; }
.card-header.bg-gradient-directional-info::before { background: var(--info); box-shadow: 0 0 0 4px var(--info-50); }
.card-header.bg-gradient-directional-warning::before { background: var(--signal); box-shadow: 0 0 0 4px var(--signal-50); }
.card-header.bg-gradient-directional-pink::before { background: #c2457f; box-shadow: 0 0 0 4px rgba(194,69,127,.14); }
.card-header.bg-gradient-directional-cyan::before { background: #1593c4; box-shadow: 0 0 0 4px rgba(21,147,196,.14); }
.card-header.bg-gradient-directional-grey-blue::before, .modal-header.bg-gradient-directional-grey-blue::before { background: #5b7c8a; box-shadow: 0 0 0 4px rgba(91,124,138,.16); }

/* DataTables: no stripes or sorted-column shading, tidy toolbar */
table.dataTable tbody tr, table.dataTable tbody tr.odd, table.dataTable tbody tr.even { background-color: transparent !important; }
table.dataTable tbody td, table.dataTable tbody th, table.dataTable tbody tr > .sorting_1, table.dataTable tbody tr > .sorting_2 { background-color: transparent !important; box-shadow: none; }
table.dataTable tbody tr:hover { background-color: var(--hover) !important; }
table.dataTable.no-footer, table.dataTable thead th, table.dataTable thead td { border-bottom: 1px solid var(--line) !important; }
table.dataTable { border-collapse: collapse !important; margin: .4rem 0 !important; }
.dataTables_wrapper > .row, .dataTables_wrapper .row { margin-left: 0; margin-right: 0; align-items: center; }
.dataTables_wrapper .row > * { padding-left: 0; padding-right: 0; }
.dataTables_wrapper .dataTables_filter { text-align: right; }
.dataTables_wrapper .dataTables_filter label, .dataTables_wrapper .dataTables_length label { display: inline-flex; align-items: center; gap: .5rem; margin: 0; font-weight: 500; color: var(--muted); }
.dataTables_wrapper .dataTables_filter input { min-width: 240px; min-height: 2.5rem; padding-left: 2.3rem; margin: 0 !important; background: var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238aa0a8' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3'/%3E%3C/svg%3E") no-repeat .75rem center / 1rem; }
.dataTables_wrapper .dataTables_length select { width: auto !important; min-width: 4.8rem; min-height: 2.5rem; padding: .35rem 2rem .35rem .7rem; display: inline-block; }
.dataTables_wrapper .dataTables_info { padding-top: .5rem !important; }
.dataTables_wrapper .dataTables_paginate .pagination { justify-content: flex-end; margin: .4rem 0 0; }
.dataTables_wrapper .page-item .page-link { display: block; min-width: 2.1rem; padding: .35rem .65rem; border-radius: 8px; color: var(--text); text-align: center; font-size: .88rem; text-decoration: none; }
.dataTables_wrapper .page-item .page-link:hover { background: var(--hover); }
.dataTables_wrapper .page-item.active .page-link { background: var(--brand); color: #fff; }
.dataTables_wrapper .page-item.disabled .page-link { opacity: .4; pointer-events: none; }
.dataTables_empty { padding: 2.5rem !important; color: var(--muted); text-align: center !important; }

/* numbers: right-aligned, tabular; negatives in red (classes set by ae.js) */
.table td.ae-num, .table th.ae-num { text-align: right !important; font-variant-numeric: tabular-nums; white-space: nowrap; }
.table td.ae-num { font-weight: 550; }
.table td.ae-neg { color: var(--danger) !important; }

/* ae-filterbar used on JV and payments pages */
.ae-filterbar { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .75rem; margin: .25rem 0 1rem; padding: .85rem; border-radius: 12px; background: var(--sunken); border: 1px solid var(--line-2); }
.ae-filterbar label { display: flex; flex-direction: column; gap: .3rem; margin: 0; min-width: 160px; flex: 1 1 160px; max-width: 240px; }
.ae-filterbar .btn { min-height: 2.9rem; }

/* page header (built by ae.js from the page's own title) */
.ae-pagehead { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin: .2rem 0 1.25rem; animation: ae-rise .45s cubic-bezier(.2,.7,.2,1) both; }
.ae-crumbs { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; font-size: .82rem; color: var(--faint); margin-bottom: .3rem; }
.ae-crumbs span + span::before { content: "/"; margin-right: .35rem; color: var(--line-strong); }
.ae-pagehead h1 { margin: 0; font-size: clamp(1.45rem, 2.1vw, 1.9rem); font-weight: 700; letter-spacing: -.03em; }
.ae-pageacts { display: flex; gap: .55rem; flex-wrap: wrap; }
.ae-pageacts .btn { margin: 0 !important; float: none !important; }
.ae-moved { display: none !important; }
.content-header.ae-moved { display: none !important; }

/* application form: the two halves read as panels */
#create_application > .row > .col-md-6, #edit_application > .row > .col-md-6 { padding-top: .25rem; }
@media (min-width: 768px) { #create_application > .row > .col-md-6 + .col-md-6, #edit_application > .row > .col-md-6 + .col-md-6 { border-left: 1px dashed var(--line); } }

/* theme switch button */
.ae-theme .i-moon { display: none; } [data-theme="dark"] .ae-theme .i-sun { display: none; } [data-theme="dark"] .ae-theme .i-moon { display: inline-block; }

/* =====================  DARK THEME  ===================== */
[data-theme="dark"] {
  color-scheme: dark;
  --paper: #0a171d; --surface: #0f2229; --sunken: #0c1c22; --line: #1f3a45; --line-2: #19303a; --line-strong: #2d4f5c;
  --text: #e2edf0; --muted: #95aeb7; --faint: #6c8893;
  --brand: #1bb3a5; --brand-600: #159b8f; --brand-50: rgba(27,179,165,.15);
  --signal: #f2b84b; --signal-50: rgba(242,184,75,.14); --danger: #f07362; --danger-50: rgba(240,115,98,.13);
  --info: #6b95f2; --info-50: rgba(107,149,242,.14); --ok: #3fc483; --ok-50: rgba(63,196,131,.13);
  --chip: #1a3440; --chip-2: #22414e; --hover: #13303a; --head: #11262e; --head-soft: #10242b;
  --glass: rgba(12,28,34,.78); --dot: rgba(255,255,255,.045);
  --shadow-1: 0 1px 2px rgba(0,0,0,.3), 0 10px 28px -14px rgba(0,0,0,.6), 0 0 0 1px rgba(255,255,255,.04);
  --shadow-2: 0 18px 40px -10px rgba(0,0,0,.65), 0 0 0 1px rgba(255,255,255,.06);
}
[data-theme="dark"] .ae-rail { background: radial-gradient(420px 260px at 0% 0%, rgba(27,179,165,.16), transparent 70%), linear-gradient(180deg, #0b1f27 0%, #061318 100%); border-right: 1px solid rgba(255,255,255,.04); }
[data-theme="dark"] .ae-avatar { background: var(--brand-600); }
[data-theme="dark"] .text-warning { color: #f2b84b !important; } [data-theme="dark"] .badge-warning { color: #f2c46a; }
[data-theme="dark"] .alert-danger { color: #ffb4a8; border-color: rgba(240,115,98,.35); } [data-theme="dark"] .alert-info { color: #b9ccfa; border-color: rgba(107,149,242,.35); }
[data-theme="dark"] .alert-success, [data-theme="dark"] .alert-teal { color: #9be3be; border-color: rgba(63,196,131,.3); } [data-theme="dark"] .alert-warning { color: #f7d38b; border-color: rgba(242,184,75,.3); }
[data-theme="dark"] .ae-hero { box-shadow: 0 0 0 1px rgba(255,255,255,.06), 0 18px 40px -20px rgba(0,0,0,.8); }
[data-theme="dark"] .ae-login-card .btn-block { background: var(--brand-600); }
[data-theme="dark"] .ae-login-form, [data-theme="dark"] body.ae-login { background: var(--surface); }
[data-theme="dark"] .ae-login-card .ae-logo-sm { color: var(--text); }
[data-theme="dark"] .btn-secondary, [data-theme="dark"] .btn-blue-grey { color: var(--text) !important; }
[data-theme="dark"] select.form-control, [data-theme="dark"] select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2395aeb7' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); }
[data-theme="dark"] input[type=date]::-webkit-calendar-picker-indicator { filter: invert(.8); }
[data-theme="dark"] .select2-dropdown, [data-theme="dark"] .select2-container--default .select2-results__option { background: var(--surface); color: var(--text); }
[data-theme="dark"] .select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--text); }
[data-theme="dark"] .select2-container--default .select2-search--dropdown .select2-search__field, [data-theme="dark"] .select2-container--default .select2-selection--multiple, [data-theme="dark"] .select2-container--default .select2-selection--single { background: var(--surface); color: var(--text); border-color: var(--line); }
[data-theme="dark"] .select2-container--default.select2-container--disabled .select2-selection--single { background: var(--sunken); }
[data-theme="dark"] .daterangepicker, [data-theme="dark"] .daterangepicker .calendar-table, [data-theme="dark"] .daterangepicker .drp-buttons { background: var(--surface); color: var(--text); border-color: var(--line); }
[data-theme="dark"] .daterangepicker td.off, [data-theme="dark"] .daterangepicker td.off.in-range { background: transparent; color: var(--faint); }
[data-theme="dark"] .daterangepicker td.available:hover, [data-theme="dark"] .daterangepicker th.available:hover { background: var(--hover); }
[data-theme="dark"] .daterangepicker::before, [data-theme="dark"] .daterangepicker::after { display: none; }
[data-theme="dark"] .daterangepicker select { background-color: var(--sunken); color: var(--text); }
[data-theme="dark"] .swal2-popup { background: var(--surface) !important; color: var(--text) !important; }
[data-theme="dark"] .swal2-title, [data-theme="dark"] .swal2-html-container, [data-theme="dark"] .swal2-content { color: var(--text) !important; }
[data-theme="dark"] .swal2-input, [data-theme="dark"] .swal2-textarea, [data-theme="dark"] .swal2-select { background: var(--sunken) !important; color: var(--text) !important; border-color: var(--line) !important; }
[data-theme="dark"] .context-menu-list, [data-theme="dark"] .context-menu-item { background: var(--surface) !important; color: var(--text) !important; }
[data-theme="dark"] div#MonthPicker_monthPicker, [data-theme="dark"] .ui-widget-content { background: var(--surface); color: var(--text); }
[data-theme="dark"] .ui-widget-header { background: var(--sunken); color: var(--text); border-color: var(--line); }
[data-theme="dark"] .tagging .tag { color: #7fe3d8; }
[data-theme="dark"] .bg-white { background: var(--surface) !important; }
[data-theme="dark"] .dataTables_wrapper .dataTables_filter input { background-color: var(--surface); }
[data-theme="dark"] ::selection { background: var(--brand-600); }

/* dashboard: fixed queue column, table takes the rest */
@media (min-width: 768px) {
  #appSummaryDates { flex: 0 0 200px; max-width: 200px; }
  #appSummaryDates + [class*="col-"] { flex: 1 1 0; max-width: calc(100% - 200px); }
}
.table-sm { font-size: .87rem; }
.ae-pageacts .btn-info { background: linear-gradient(180deg, #11928b, #0a7a74); box-shadow: 0 1px 0 rgba(255,255,255,.16) inset, 0 4px 12px -4px rgba(10,122,116,.55); }

/* form sections */
.ae-sec { display: flex; align-items: center; gap: .75rem; margin: .35rem 0 1.1rem; font: 650 .8rem var(--font); color: var(--brand); letter-spacing: .01em; }
.ae-sec::before { content: ""; width: 6px; height: 6px; border-radius: 2px; background: var(--signal); transform: rotate(45deg); flex: none; }
.ae-sec::after { content: ""; flex: 1; height: 1px; background: var(--line); }
* + .ae-sec { margin-top: 1.4rem; }
fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
fieldset.border { border: 1px dashed var(--line) !important; border-radius: 12px; padding: 1.1rem 1.1rem .4rem !important; }
legend { font-size: .82rem !important; font-weight: 650; padding: 0 .4rem !important; color: var(--brand) !important; width: auto; }
fieldset:has(> input[type=checkbox]) { display: flex; align-items: center; gap: .6rem; min-height: 2.9rem; padding: 0 .9rem; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); cursor: pointer; }
fieldset:has(> input[type=checkbox]:checked) { border-color: var(--brand); background: var(--brand-50); }
fieldset:has(> input[type=checkbox]) label { margin: 0; color: var(--text); font-weight: 600; cursor: pointer; }
.select2-container--default .select2-selection--single, .select2-container--default .select2-selection--multiple { min-height: 2.9rem; }
.select2-container--default.select2-container--disabled .select2-selection--single { background: var(--sunken); }
#containers.form-control { min-height: 2.9rem; height: auto; padding: .3rem; }
form label.w-100 > input, form label.w-100 > select { margin-top: .35rem; }
@media (max-width: 767.98px) { form .row > [class*="col-md-"], .card-body > .row > [class*="col-md-"] { margin-bottom: .6rem; } .group.mb-2, .group.mb-1 { margin-bottom: 1rem !important; } }
@media (max-width: 479.98px) { .ae-jump { flex: 0 0 38px; width: 38px; padding: 0; justify-content: center; } .ae-jump span { display: none !important; } .ae-top .ae-spacer { flex: 1; } .dataTables_wrapper .dataTables_paginate { overflow-x: auto; } .dataTables_wrapper .dataTables_filter input { min-width: 0; width: 100%; } }

/* =====================  SMART LISTS  ===================== */
.ae-hide-row { display: none !important; }
.ae-listbar { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; margin: 0 0 .9rem; }
.ae-ls-search { position: relative; flex: 1 1 320px; max-width: 520px; margin: 0; }
.ae-ls-search .i { position: absolute; left: .9rem; top: 50%; margin-top: -.6rem; width: 1.2rem; height: 1.2rem; color: var(--faint); pointer-events: none; }
.ae-ls-search input { height: 2.9rem; padding: 0 2.6rem 0 2.6rem; border-radius: 12px; background: var(--sunken); border-color: transparent; font-size: .95rem; }
.ae-ls-search input:focus { background: var(--surface); }
.ae-ls-search kbd { position: absolute; right: .7rem; top: 50%; transform: translateY(-50%); font: 600 .72rem var(--font); padding: .1rem .45rem; border: 1px solid var(--line); border-bottom-width: 2px; border-radius: 5px; color: var(--muted); background: var(--surface); }
.ae-ls-search input:focus ~ kbd { display: none; }
.ae-ls-count { font-size: .9rem; color: var(--muted); white-space: nowrap; }
.ae-ls-count b { color: var(--text); font-weight: 700; font-size: 1rem; font-variant-numeric: tabular-nums; }
.ae-ls-tools { display: flex; gap: .4rem; margin-left: auto; }
.ae-ls-len { width: auto !important; min-height: 2.5rem !important; padding: .3rem 2rem .3rem .75rem !important; font-size: .86rem !important; border-radius: 10px !important; }
.ae-ls-btn { display: inline-flex; align-items: center; gap: .4rem; height: 2.5rem; padding: 0 .8rem; border-radius: 10px; border: 1px solid var(--line); background: var(--surface); color: var(--muted); font: 600 .84rem var(--font); cursor: pointer; }
.ae-ls-btn:hover { color: var(--text); border-color: var(--line-strong); }
.ae-ls-btn.on { color: var(--brand); border-color: var(--brand); background: var(--brand-50); }
.ae-ls-hint { flex-basis: 100%; display: flex; align-items: center; gap: .4rem; font-size: .8rem; color: var(--faint); margin-top: -.3rem; }
.ae-ls-hint .i { width: .95rem; height: .95rem; }
.ae-az { display: flex; flex-wrap: wrap; gap: 2px; margin: -.2rem 0 .9rem; padding: .25rem; border-radius: 11px; background: var(--sunken); border: 1px solid var(--line-2); }
.ae-az button { flex: 1 0 auto; min-width: 1.75rem; height: 1.85rem; padding: 0 .35rem; border: 0; border-radius: 7px; background: transparent; color: var(--muted); font: 650 .78rem var(--font); cursor: pointer; }
.ae-az button:hover:not(:disabled) { background: var(--surface); color: var(--text); box-shadow: var(--shadow-1); }
.ae-az button.on { background: var(--brand); color: #fff; }
.ae-az button:disabled { opacity: .3; cursor: default; }
.ae-mono { display: inline-grid; place-items: center; width: 2rem; height: 2rem; margin-right: .75rem; border-radius: 9px; flex: none; vertical-align: middle; font: 700 .72rem var(--font); letter-spacing: .02em; color: hsl(var(--h) 55% 30%); background: hsl(var(--h) 60% 92%); box-shadow: inset 0 0 0 1px hsl(var(--h) 45% 82%); }
.ae-name { vertical-align: middle; font-weight: 600; }
[data-theme="dark"] .ae-mono { color: hsl(var(--h) 70% 80%); background: hsl(var(--h) 35% 20%); box-shadow: inset 0 0 0 1px hsl(var(--h) 35% 30%); }
.ae-tag { display: inline-flex; align-items: center; gap: .35rem; padding: .18rem .6rem; border-radius: 999px; font-size: .78rem; font-weight: 650; white-space: nowrap; color: hsl(var(--h) 55% 32%); background: hsl(var(--h) 60% 94%); }
.ae-tag::before { content: ""; width: .42rem; height: .42rem; border-radius: 50%; background: hsl(var(--h) 60% 45%); }
[data-theme="dark"] .ae-tag { color: hsl(var(--h) 70% 78%); background: hsl(var(--h) 35% 18%); }
.ae-dt table.dataTable td { padding-top: .7rem; padding-bottom: .7rem; }
.ae-dt.ae-dense table.dataTable td { padding-top: .3rem; padding-bottom: .3rem; font-size: .86rem; }
.ae-dt.ae-dense .ae-mono { width: 1.5rem; height: 1.5rem; font-size: .62rem; border-radius: 6px; margin-right: .55rem; }
.ae-dt table.dataTable tbody tr { transition: background .12s; }
.ae-dt table.dataTable tbody tr:hover td:first-child { box-shadow: inset 3px 0 0 var(--signal); }
.ae-dt .dataTables_info { font-size: .85rem; }
@media (max-width: 767.98px) { .ae-ls-search { flex-basis: 100%; max-width: none; } .ae-ls-tools { margin-left: 0; } .ae-ls-btn span { display: none; } .ae-az { flex-wrap: nowrap; overflow-x: auto; } .ae-ls-search kbd { display: none; } }
.ae-dt table.dataTable td { vertical-align: middle !important; }
/* phones: every list row becomes a card */
@media (max-width: 575.98px) {
  .ae-dt .table-responsive, .table-responsive:has(.ae-dt) { overflow: visible; }
  .ae-dt table.dataTable, .ae-dt table.dataTable tbody { display: block; width: 100% !important; }
  .ae-dt table.dataTable thead { display: none; }
  .ae-dt table.dataTable tbody tr { display: block; margin-bottom: .6rem; padding: .7rem .85rem; border: 1px solid var(--line-2); border-radius: 12px; background: var(--surface); }
  .ae-dt table.dataTable tbody tr:hover td:first-child { box-shadow: none; }
  .ae-dt table.dataTable tbody td { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .3rem 0 !important; border: 0 !important; text-align: right !important; white-space: normal !important; }
  .ae-dt table.dataTable tbody td::before { content: attr(data-label); flex: none; font-size: .78rem; font-weight: 600; color: var(--faint); text-align: left; }
  .ae-dt table.dataTable tbody td:first-child { gap: 0; justify-content: flex-start; text-align: left !important; padding-bottom: .5rem !important; margin-bottom: .2rem; border-bottom: 1px dashed var(--line) !important; font-size: .95rem; }
  .ae-dt table.dataTable tbody td:first-child::before { display: none; }
  .ae-dt table.dataTable tbody td.dataTables_empty { justify-content: center; } .ae-dt table.dataTable tbody td.dataTables_empty::before { display: none; }
}
.ae-tiny .dataTables_length, .ae-tiny .dataTables_filter, .ae-tiny .dataTables_info, .ae-tiny .dataTables_paginate { display: none !important; }

/* first paint: hold raw tables and old titles until the page is ready, so nothing jumps */
.content-body table { transition: opacity .18s ease; }
.ae-boot .content-body table, .ae-boot .content-body .dataTables_wrapper { opacity: 0; }
.ae-boot .content-body .card-body > h3:first-child, .ae-boot .content-header, .ae-boot .content-body .card-header.d-flex { visibility: hidden; }
.ae-boot .content-body .table-responsive { max-height: 62vh; overflow: hidden; border-radius: 12px; background: linear-gradient(90deg, transparent 0, rgba(255,255,255,.55) 50%, transparent 100%) 0 0 / 40% 100% no-repeat, repeating-linear-gradient(180deg, var(--sunken) 0 44px, var(--surface) 44px 52px); animation: ae-shimmer 1.1s linear infinite; }
[data-theme="dark"].ae-boot .content-body .table-responsive { background: linear-gradient(90deg, transparent 0, rgba(255,255,255,.05) 50%, transparent 100%) 0 0 / 40% 100% no-repeat, repeating-linear-gradient(180deg, var(--sunken) 0 44px, var(--surface) 44px 52px); }
@keyframes ae-shimmer { from { background-position: -40% 0, 0 0; } to { background-position: 140% 0, 0 0; } }
.ae-blank { display: inline-flex; align-items: center; gap: .4rem; font-style: italic; font-weight: 500; color: var(--faint); }
.ae-blank::before { content: ""; width: 2rem; height: 2rem; border-radius: 9px; border: 1.5px dashed var(--line-strong); margin-right: .35rem; }
.ae-dense .ae-blank::before { width: 1.5rem; height: 1.5rem; border-radius: 6px; }
.ae-dt table.dataTable td { white-space: normal !important; }
.ae-dt table.dataTable td:first-child, .ae-dt table.dataTable td.ae-num { white-space: nowrap !important; }
.ae-dt table.dataTable td:not(:first-child):not(.ae-num) { max-width: 560px; color: var(--muted); font-size: .9em; }

/* Application rates: date chips wrap as a compact strip instead of one row each */
#app_dates { display: flex; flex-wrap: wrap; gap: .4rem; text-align: left !important; margin-bottom: 1rem !important; max-height: 7.5rem; overflow-y: auto; padding: .1rem; }
#app_dates .date-filter { width: auto; margin: 0 !important; padding: .4rem .55rem .55rem .7rem !important; gap: .5rem; font-size: .84rem; }
#app_dates .date-filter .badge { float: none !important; margin: 0; }
#app_dates + .table-responsive, .ae-filterbar + button + #app_dates { clear: both; }
.ae-filterbar ~ .btn-dark.float-right { display: none !important; }
.content-wrapper { min-width: 0; }
.app-content { overflow-x: clip; }

/* select2: highlighted option stays readable even when it is also the selected one */
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[aria-selected=true],
.select2-container--default .select2-results__option--highlighted.select2-results__option--selected,
.select2-container--default .select2-results__option[aria-selected=true]:hover { background: var(--brand) !important; color: #fff !important; }
.select2-container--default .select2-results__option[aria-selected=true]:not(.select2-results__option--highlighted) { font-weight: 650; }

@media (min-width:576px){
.d-sm-none{display:none!important}
.d-sm-block{display:block!important}
.d-sm-inline{display:inline!important}
.d-sm-inline-block{display:inline-block!important}
.d-sm-flex{display:flex!important}
.d-sm-inline-flex{display:inline-flex!important}
.d-sm-inline-grid{display:inline-grid!important}
.float-sm-right{float:right!important}.float-sm-left{float:left!important}.text-sm-center{text-align:center!important}.text-sm-right{text-align:right!important}
}
@media (min-width:768px){
.d-md-none{display:none!important}
.d-md-block{display:block!important}
.d-md-inline{display:inline!important}
.d-md-inline-block{display:inline-block!important}
.d-md-flex{display:flex!important}
.d-md-inline-flex{display:inline-flex!important}
.d-md-inline-grid{display:inline-grid!important}
.float-md-right{float:right!important}.float-md-left{float:left!important}.text-md-center{text-align:center!important}.text-md-right{text-align:right!important}
}
@media (min-width:992px){
.d-lg-none{display:none!important}
.d-lg-block{display:block!important}
.d-lg-inline{display:inline!important}
.d-lg-inline-block{display:inline-block!important}
.d-lg-flex{display:flex!important}
.d-lg-inline-flex{display:inline-flex!important}
.d-lg-inline-grid{display:inline-grid!important}
.float-lg-right{float:right!important}.float-lg-left{float:left!important}.text-lg-center{text-align:center!important}.text-lg-right{text-align:right!important}
}
@media (min-width:1200px){
.d-xl-none{display:none!important}
.d-xl-block{display:block!important}
.d-xl-inline{display:inline!important}
.d-xl-inline-block{display:inline-block!important}
.d-xl-flex{display:flex!important}
.d-xl-inline-flex{display:inline-flex!important}
.d-xl-inline-grid{display:inline-grid!important}
.float-xl-right{float:right!important}.float-xl-left{float:left!important}.text-xl-center{text-align:center!important}.text-xl-right{text-align:right!important}
}
/* ---------- Icons (inline SVG masks) ---------- */
.i,.la,.ft,.fa{display:inline-block;width:1.15em;height:1.15em;vertical-align:-.2em;background:currentColor;font-style:normal;flex:none;-webkit-mask:var(--ic,linear-gradient(transparent,transparent)) center/contain no-repeat;mask:var(--ic,linear-gradient(transparent,transparent)) center/contain no-repeat}
.la-rotate-270{transform:none}.fa-spin,.la-spin{animation:ae-spin .8s linear infinite}
.i-plus,.la-plus,.ft-plus,.fa-plus{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E")}
.i-plus-circle,.la-plus-circle{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 8v8M8 12h8'/%3E%3C/svg%3E")}
.i-search,.la-search,.ft-search{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3'/%3E%3C/svg%3E")}
.i-trash,.la-trash,.fa-trash{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18M8 6V4h8v2M6 6l1 14h10l1-14M10 11v6M14 11v6'/%3E%3C/svg%3E")}
.i-pencil,.la-pencil,.fa-edit{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9M16.5 3.5a2.1 2.1 0 013 3L7 19l-4 1 1-4z'/%3E%3C/svg%3E")}
.i-user,.la-user,.ft-user{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c0-4 4-6 8-6s8 2 8 6'/%3E%3C/svg%3E")}
.i-users{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.5'/%3E%3Cpath d='M2 20c0-3.5 3-5.5 7-5.5s7 2 7 5.5'/%3E%3Ccircle cx='17.5' cy='9' r='2.5'/%3E%3Cpath d='M17 14.5c3 0 5 1.5 5 4.5'/%3E%3C/svg%3E")}
.i-save,.la-save{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 3h11l3 3v15H5zM8 3v6h7V3M8 21v-7h8v7'/%3E%3C/svg%3E")}
.i-lock,.la-key,.fa-key,.ft-lock{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 018 0v4'/%3E%3C/svg%3E")}
.i-dots-v,.la-ellipsis-v{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5h.01M12 12h.01M12 19h.01' stroke-width='3'/%3E%3C/svg%3E")}
.i-dots-h,.la-ellipsis-h{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h.01M12 12h.01M19 12h.01' stroke-width='3'/%3E%3C/svg%3E")}
.i-sliders,.la-cogs{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h9M17 6h3M4 12h3M11 12h9M4 18h11M19 18h1'/%3E%3Ccircle cx='15' cy='6' r='2'/%3E%3Ccircle cx='9' cy='12' r='2'/%3E%3Ccircle cx='17' cy='18' r='2'/%3E%3C/svg%3E")}
.i-clock,.la-clock-o{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E")}
.i-spinner,.la-circle-o-notch,.fa-spinner{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a9 9 0 11-6.2-8.6'/%3E%3C/svg%3E")}
.i-arrow-left,.la-arrow-left{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 12H5M12 19l-7-7 7-7'/%3E%3C/svg%3E")}
.i-arrow-right,.la-long-arrow-right{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E")}
.i-menu,.ft-menu{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h16M4 12h16M4 18h16'/%3E%3C/svg%3E")}
.i-filter,.ft-filter,.fa-filter{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 5h18l-7 8v6l-4 2v-8z'/%3E%3C/svg%3E")}
.i-x,.ft-x{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E")}
.i-log-out,.ft-log-out{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 21H5V3h4M16 17l5-5-5-5M21 12H9'/%3E%3C/svg%3E")}
.i-log-in,.ft-unlock{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h4v18h-4M10 17l5-5-5-5M15 12H3'/%3E%3C/svg%3E")}
.i-file,.ft-clipboard{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H6v18h12V8zM14 3v5h5M9 13h6M9 17h6'/%3E%3C/svg%3E")}
.i-alert,.ft-alert-triangle,.fa-warning{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l10 18H2zM12 10v5M12 18h.01'/%3E%3C/svg%3E")}
.i-check,.fa-check{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E")}
.i-download,.fa-download{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v12M7 11l5 5 5-5M4 21h16'/%3E%3C/svg%3E")}
.i-info,.fa-info{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v6M12 7.5h.01'/%3E%3C/svg%3E")}
.i-ban,.fa-ban{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M5.6 5.6l12.8 12.8'/%3E%3C/svg%3E")}
.i-home{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11l9-8 9 8M5 10v11h14V10'/%3E%3C/svg%3E")}
.i-bank{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10l9-6 9 6M5 10v9M9 10v9M15 10v9M19 10v9M3 21h18'/%3E%3C/svg%3E")}
.i-chart{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 21V10M12 21V4M19 21v-7'/%3E%3C/svg%3E")}
.i-pie{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3a9 9 0 109 9h-9z'/%3E%3Cpath d='M15 3.6A9 9 0 0120.4 9H15z'/%3E%3C/svg%3E")}
.i-stamp{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3h6v3H9zM7 5H5v16h14V5h-2M9 14l2 2 4-4'/%3E%3C/svg%3E")}
.i-layers{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l9 5-9 5-9-5zM3 13l9 5 9-5'/%3E%3C/svg%3E")}
.i-calendar{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E")}
.i-chevron-right{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E")}
.i-chevron-down{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")}
.i-maximize,.ft-maximize{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9V4h5M20 9V4h-5M4 15v5h5M20 15v5h-5'/%3E%3C/svg%3E")}
.i-heart,.ft-heart{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-8-5-8-11a4.5 4.5 0 018-2.5A4.5 4.5 0 0120 10c0 6-8 11-8 11z'/%3E%3C/svg%3E")}
.i-toggle,.ft-toggle-right{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='7' width='20' height='10' rx='5'/%3E%3Ccircle cx='16' cy='12' r='2'/%3E%3C/svg%3E")}
.i-rail{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='16' rx='2'/%3E%3Cpath d='M9 4v16'/%3E%3C/svg%3E")}
.i-ship{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 17l2 4h14l2-4zM12 3v10M7 8l5-3 5 3M5 13h14'/%3E%3C/svg%3E")}
.i-receipt{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h12v18l-3-2-3 2-3-2-3 2zM9 8h6M9 12h6'/%3E%3C/svg%3E")}
.i-wallet{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='6' width='18' height='14' rx='3'/%3E%3Cpath d='M16 13h2M3 10h18'/%3E%3C/svg%3E")}
.i-book{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h11a3 3 0 013 3v13H8a3 3 0 01-3-3zM5 17a3 3 0 013-3h11'/%3E%3C/svg%3E")}
.i-package{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7l9-4 9 4v10l-9 4-9-4zM3 7l9 4 9-4M12 11v10'/%3E%3C/svg%3E")}
.i-globe{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3c3 3 3 15 0 18M12 3c-3 3-3 15 0 18'/%3E%3C/svg%3E")}
.i-pie2{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v9l7 4'/%3E%3C/svg%3E")}
.i-swap{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 7h13M16 3l4 4-4 4M17 17H4M8 13l-4 4 4 4'/%3E%3C/svg%3E")}
.i-percent{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 5L5 19'/%3E%3Ccircle cx='7' cy='7' r='2'/%3E%3Ccircle cx='17' cy='17' r='2'/%3E%3C/svg%3E")}
.i-door{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 21V4h12v17M6 21h14M14 12h.01'/%3E%3C/svg%3E")}
.i-sun{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4'/%3E%3C/svg%3E")}
.i-moon{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 14.5A8 8 0 019.5 4 8 8 0 1020 14.5z'/%3E%3C/svg%3E")}

/* failure toasts (ae.js §4) */
.ae-toasts{position:fixed;right:16px;bottom:16px;z-index:20000;display:flex;flex-direction:column;gap:8px;max-width:min(420px,calc(100vw - 32px));pointer-events:none}
.ae-toast{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;padding:12px 12px 12px 14px;border-radius:var(--radius);background:var(--surface);color:var(--ink);border:1px solid var(--line);border-left:4px solid var(--danger);box-shadow:var(--shadow-2);font:500 13.5px/1.45 var(--font);animation:aeToastIn .22s ease-out;transition:opacity .35s,transform .35s}
.ae-toast span{flex:1;word-break:break-word}
.ae-toast button{border:0;background:none;color:var(--muted);font-size:18px;line-height:1;cursor:pointer;padding:0 2px}
.ae-toast button:hover{color:var(--ink)}
.ae-toast-ok{border-left-color:var(--ok)}
.ae-toast.out{opacity:0;transform:translateY(6px)}
@keyframes aeToastIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.ae-toast{animation:none;transition:none}}

/* Settings rows */
.ae-set-row{display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(200px,1fr) auto;gap:12px;align-items:start;padding:12px 0;border-bottom:1px solid var(--ae-line,#e6e9ef)}
.ae-set-row:last-child{border-bottom:0}
.ae-set-label b{display:block;margin-bottom:2px}
.ae-set-input textarea{font-family:ui-monospace,Consolas,monospace;font-size:13px}
.ae-set-tabs{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden}
.ae-set-tabs .nav-link{white-space:nowrap}
@media (max-width:767px){.ae-set-row{grid-template-columns:1fr}.ae-set-btn{text-align:right}}

/* Admin dashboard */
.ae-dash{padding-bottom:2rem}
.ae-dash-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin:.2rem 0 1rem}
.ae-dash-title{font:700 1.6rem/1.2 var(--font-display);margin:0;color:var(--text)}
.ae-dash-sub{color:var(--muted);margin:.2rem 0 0}
.ae-dash-tools{display:flex;gap:.5rem}
.ae-dash-tools .form-control{width:auto}
.ae-dash-h{font:600 .78rem/1 var(--font);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:1.2rem 0 .6rem}
.ae-dash-grid{display:grid;gap:.9rem;margin-bottom:.9rem}
.ae-g4{grid-template-columns:repeat(4,minmax(0,1fr))}.ae-g3{grid-template-columns:repeat(3,minmax(0,1fr))}.ae-g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.ae-tight{gap:.6rem;margin-bottom:.6rem}
.ae-stat{display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:.9rem 1rem;color:var(--text);box-shadow:var(--shadow-1);text-decoration:none!important;min-width:0}
a.ae-stat:hover{border-color:var(--brand)}
.ae-stat span{display:block;font-size:.8rem;color:var(--muted)}
.ae-stat b{display:block;font:700 1.45rem/1.25 var(--font-display);font-variant-numeric:tabular-nums;margin:.25rem 0 .15rem;overflow-wrap:anywhere}
.ae-stat em{display:block;font-style:normal;font-size:.76rem;color:var(--faint)}
.ae-stat em i{font-style:normal;font-weight:600}.ae-stat em i.up{color:var(--ok)}.ae-stat em i.down{color:var(--danger)}
.ae-stat.pos b{color:var(--ok)}.ae-stat.neg b{color:var(--danger)}.ae-stat.warn{border-color:var(--signal);background:var(--signal-50)}
.ae-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow-1);min-width:0}
.ae-panel header{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.7rem}
.ae-panel h3{font:600 1rem/1.2 var(--font);margin:0}
.ae-panel header a{font-size:.8rem}
.ae-legend{font-size:.75rem;color:var(--muted)}.ae-sw{display:inline-block;width:10px;height:10px;border-radius:2px;margin:0 .25rem 0 .6rem;vertical-align:-1px}.ae-sw.b{background:var(--brand)}.ae-sw.l{background:var(--signal)}
.ae-chart svg{width:100%;height:auto;display:block}
.ae-chart .grid{stroke:var(--line-2)}.ae-chart .bar{fill:var(--brand);opacity:.85}.ae-chart .line{fill:none;stroke:var(--signal);stroke-width:2.5}.ae-chart .dot{fill:var(--signal)}.ae-chart .lbl{fill:var(--muted);font-size:11px;text-anchor:middle}
.ae-mini{width:100%;font-size:.86rem}.ae-mini td{padding:.38rem .2rem;border-top:1px solid var(--line-2);vertical-align:top;overflow-wrap:anywhere}.ae-mini tr:first-child td{border-top:0}
.ae-mini td.r{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.ae-mini td.m{color:var(--muted);white-space:nowrap}.ae-mini small{color:var(--faint);text-transform:uppercase;font-size:.68rem}
.ae-hbar{display:grid;grid-template-columns:minmax(0,1.3fr) 1fr auto;gap:.5rem;align-items:center;font-size:.82rem;margin:.35rem 0}
.ae-hbar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ae-hbar div{background:var(--line-2);border-radius:4px;height:8px}.ae-hbar i{display:block;height:8px;border-radius:4px;background:var(--brand)}
.ae-stock{display:flex;flex-wrap:wrap;gap:.6rem}.ae-stock div{flex:1 1 90px;border:1px solid var(--line);border-radius:var(--radius-sm);padding:.6rem .7rem;text-align:center}
.ae-stock b{display:block;font:700 1.5rem/1.1 var(--font-display)}.ae-stock span{font-size:.78rem;color:var(--muted)}.ae-stock .low{border-color:var(--danger);background:var(--danger-50)}
.ae-feed{list-style:none;padding:0;margin:0;font-size:.84rem}.ae-feed li{padding:.4rem 0 .4rem .6rem;border-left:3px solid var(--line);margin-bottom:.35rem}.ae-feed li.sev1{border-color:var(--signal)}.ae-feed li.sev2{border-color:var(--danger)}
.ae-feed small{display:block;color:var(--faint)}
.ae-dash-alert{background:var(--signal-50);border:1px solid var(--signal);border-radius:var(--radius);padding:.7rem 1rem;margin-bottom:.6rem;color:var(--text)}
@media (max-width:1199px){.ae-g4{grid-template-columns:repeat(2,minmax(0,1fr))}.ae-g3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:767px){.ae-g4,.ae-g3,.ae-g2{grid-template-columns:minmax(0,1fr)}.ae-g4{grid-template-columns:repeat(2,minmax(0,1fr))}.ae-stat b{font-size:1.15rem}.ae-dash-title{font-size:1.3rem}}
.ae-avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}
.ae-badge{margin-left:auto;background:var(--danger);color:#fff;border-radius:999px;font-size:.7rem;line-height:1;padding:.22rem .45rem;font-weight:700}
.ae-prof-top{display:flex;gap:1rem;align-items:center}
.ae-prof-pic{width:88px;height:88px;border-radius:50%;background:var(--ink-2);color:#fff;display:grid;place-items:center;font:700 1.6rem var(--font-display);overflow:hidden;flex:none}
.ae-prof-pic img{width:100%;height:100%;object-fit:cover}
.ae-prof-name{font:600 1.1rem var(--font-display)}
.ae-panel .form-group label{font-weight:600;font-size:.86rem}
/* Security & activity */
.ae-filters{display:flex;flex-wrap:wrap;gap:.5rem}.ae-filters .form-control{width:auto;flex:1 1 150px;min-width:0}
.ae-filters input[type=search]{flex:3 1 220px}
.ae-list-tools,.ae-pager{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin:.2rem 0 .6rem}.ae-pager{margin:.6rem 0 0}
.ae-log td{vertical-align:top;font-size:.86rem;overflow-wrap:anywhere}.ae-log .ae-nowrap{white-space:nowrap}.ae-log tr.ae-acked{opacity:.6}
.ae-diff td{font-size:.84rem;overflow-wrap:anywhere;max-width:340px}.ae-diff tr.ch td{background:var(--signal-50)}
.ae-kv{display:grid;grid-template-columns:max-content 1fr;gap:.4rem 1rem}.ae-kv dt{font-weight:600}.ae-kv dd{margin:0}
#pane-filters{margin-bottom:.9rem}
@media (max-width:767px){.ae-log th:nth-child(6),.ae-log td:nth-child(6){display:none}.ae-kv{grid-template-columns:1fr}}
/* Custom reports */
.ae-rb-grid{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:.9rem;align-items:start}
.ae-rb-l{display:block;font-weight:600;font-size:.86rem;margin:.9rem 0 .35rem}
.ae-rb-row{display:flex;gap:.4rem;align-items:center}.ae-rb-row .form-control{min-width:0}
.ae-rb-cols{max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:var(--radius-sm);padding:.25rem .5rem}
.ae-rb-col{display:flex;justify-content:space-between;align-items:center;gap:.4rem;font-size:.85rem;padding:.12rem 0}
.ae-rb-col label{margin:0;flex:1;cursor:pointer}.ae-rb-col small{color:var(--faint)}
.ae-rb-col button{border:0;background:none;color:var(--muted);padding:0 .25rem;cursor:pointer}
.ae-rb-filter{display:grid;grid-template-columns:1fr 1fr 1.2fr auto;gap:.3rem;align-items:center;margin-bottom:.35rem}
.ae-rb-filter .fv{display:flex;gap:.25rem;min-width:0}.ae-rb-filter .fv .form-control{min-width:0}
.ae-rb-agg span{flex:1;font-size:.84rem}.ae-rb-agg select{width:auto}
.ae-rb-actions{display:flex;gap:.5rem;margin-top:1rem;flex-wrap:wrap;position:sticky;bottom:0;background:var(--surface);padding:.5rem 0}
.ae-rb-outhead{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem}
.ae-rb-table{max-height:70vh;overflow:auto}.ae-rb-table th{position:sticky;top:0;background:var(--head);z-index:1;white-space:nowrap}
.ae-rb-table td,.ae-rb-table th{font-size:.84rem}.ae-rb-table .r{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.ae-rb-table tfoot td{font-weight:700;background:var(--head);position:sticky;bottom:0}
.ae-mono{font-family:var(--mono);font-size:13px}
.ae-rb-schema{margin-top:.5rem;font-size:.8rem}.ae-rb-schema div{max-height:240px;overflow:auto}.ae-rb-schema p{margin:.2rem 0}
@media (max-width:991px){.ae-rb-grid{grid-template-columns:minmax(0,1fr)}.ae-rb-filter{grid-template-columns:1fr 1fr}.ae-rb-filter .fv{grid-column:1/2}}
#tblTx td:nth-child(2){display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
