:root{--bg:#0b0f14;--card:#121826;--muted:#cbd5e1;--text:#e6edf3;--pri:#3b82f6;--bad:#ef4444;--ok:#22c55e;color-scheme:dark}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,"Helvetica Neue",Arial;background:linear-gradient(180deg,#0b0f14,#0a0d12);color:var(--text)}
a{color:var(--pri);text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:1100px;margin:0 auto;padding:24px}
.nav{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:space-between;margin-bottom:18px}
.brand{font-weight:700;font-size:18px;letter-spacing:.3px}
.badge{padding:3px 8px;border-radius:999px;background:#0f172a;border:1px solid #1f2937;color:var(--muted);font-size:12px}
.card{background:rgba(18,24,38,.9);border:1px solid #233047;border-radius:14px;padding:16px;margin:12px 0;box-shadow:0 10px 25px rgba(0,0,0,.25)}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:12px}
.col6{grid-column:span 6}
.col12{grid-column:span 12}
@media(max-width:900px){.col6{grid-column:span 12}}
.h1{font-size:22px;margin:0 0 8px}
.muted{color:var(--muted);font-size:13px}
.table{width:100%;border-collapse:collapse;overflow:hidden;border-radius:12px}
.table th,.table td{padding:10px 10px;border-bottom:1px solid #1f2937;font-size:13px;vertical-align:top}
.table th{color:#cbd5e1;text-align:left;background:#0f172a}
.row-actions{display:flex;gap:8px;flex-wrap:wrap}
.btn{display:inline-flex;gap:8px;align-items:center;justify-content:center;padding:9px 12px;border-radius:12px;border:1px solid #233047;background:#0f172a;color:var(--text);cursor:pointer;font-weight:600}
.btn:hover{filter:brightness(1.1)}
.btn.pri{background:linear-gradient(180deg, rgba(59,130,246,.25), rgba(59,130,246,.14));
  border-color:rgba(59,130,246,.45); color:rgba(239,246,255,.96) !important; font-weight:900}
.btn.bad{background:linear-gradient(180deg, rgba(239,68,68,.22), rgba(239,68,68,.14));
  border-color:rgba(239,68,68,.45); color:rgba(254,242,242,.96) !important; font-weight:900}
.btn.ok{background:linear-gradient(180deg, rgba(34,197,94,.28), rgba(34,197,94,.18));
  border-color:rgba(34,197,94,.55); color:rgba(240,253,244,.96) !important; font-weight:900}
input,select,textarea{width:100%;padding:10px 10px;border-radius:12px;border:1px solid #233047;background:#0b1220;color:var(--text);outline:none}
textarea{min-height:130px;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}
label{display:block;font-size:12px;color:#cbd5e1;margin:10px 0 6px}
hr{border:0;border-top:1px solid #1f2937;margin:14px 0}
.flash{padding:10px 12px;border-radius:12px;border:1px solid #233047;margin:12px 0}
.flash.ok{border-color:rgba(34,197,94,.5);background:rgba(34,197,94,.10)}
.flash.bad{border-color:rgba(239,68,68,.5);background:rgba(239,68,68,.10)}


/* Layout */
.app-shell{min-height:100vh;background:radial-gradient(1200px 600px at 15% 5%, rgba(59,130,246,.10), transparent 60%),
radial-gradient(900px 500px at 85% 10%, rgba(34,197,94,.08), transparent 60%),
linear-gradient(180deg,#0b0f14,#070a0f)}
.topbar{position:sticky;top:0;z-index:50;background:rgba(10,14,20,.75);backdrop-filter:blur(10px);border-bottom:1px solid rgba(148,163,184,.12)}
.topbar-inner{max-width:1400px;margin:0 auto;display:flex;gap:14px;align-items:center;justify-content:space-between;padding:14px 18px}
.brand{display:flex;align-items:center;gap:12px}
.brand-logo{width:40px;height:40px;border-radius:14px;background:rgba(59,130,246,.22);border:1px solid rgba(59,130,246,.5);
display:flex;align-items:center;justify-content:center;font-weight:900;letter-spacing:.5px}
.brand-title{font-weight:800;letter-spacing:.2px}
.brand-sub{font-size:12px;color:var(--muted)}
.topbar-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.who{padding:6px 10px;border-radius:999px;border:1px solid rgba(148,163,184,.18);background:rgba(2,6,23,.35);color:var(--muted);font-size:12px}
.content-wrap{padding-top:2px}
.footer{border-top:1px solid rgba(148,163,184,.12);background:rgba(2,6,23,.35)}

/* Buttons */
.nav-btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border-radius:12px;
border:1px solid rgba(148,163,184,.18);background:rgba(2,6,23,.35);color:var(--text);font-weight:700;font-size:13px;text-decoration:none}
.nav-btn:hover{filter:brightness(1.15);text-decoration:none}
.nav-btn.primary{background:rgba(59,130,246,.16);border-color:rgba(59,130,246,.45)}
.nav-btn.danger{background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.45)}

/* Enhanced cards */
.card{border-radius:18px;padding:18px}
.card .h1{display:flex;align-items:center;justify-content:space-between;gap:10px}
.card .h1 small{font-size:12px;color:var(--muted);font-weight:600}

/* Modern form controls */
input,select,textarea{border:1px solid rgba(148,163,184,.18);background:rgba(2,6,23,.35)}
input:focus,select:focus,textarea:focus{border-color:rgba(59,130,246,.65);box-shadow:0 0 0 4px rgba(59,130,246,.15)}
.help{font-size:12px;color:var(--muted);margin-top:6px;line-height:1.35}

/* Checkbox chips */
.chips{display:flex;gap:10px;flex-wrap:wrap}
.chip{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:14px;border:1px solid rgba(148,163,184,.18);
background:rgba(2,6,23,.35);cursor:pointer;user-select:none}
.chip input{width:16px;height:16px;margin:0}
.chip span{font-weight:700;font-size:13px}
.chip:hover{filter:brightness(1.12)}

/* Switch */
.switch{display:flex;align-items:center;gap:10px}
.switch input{width:42px;height:22px;appearance:none;background:rgba(148,163,184,.20);border-radius:999px;position:relative;outline:none;border:1px solid rgba(148,163,184,.18);cursor:pointer}
.switch input:checked{background:rgba(34,197,94,.25);border-color:rgba(34,197,94,.55)}
.switch input::after{content:'';position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;
background:rgba(226,232,240,.9);transition:all .18s ease}
.switch input:checked::after{left:20px}
.switch .lbl{font-weight:700;font-size:13px}

/* Section headers */
.section-title{font-weight:800;font-size:14px;letter-spacing:.2px;margin:0 0 8px}
.section{padding:14px;border-radius:16px;border:1px dashed rgba(148,163,184,.18);background:rgba(2,6,23,.18);margin-top:14px}

/* Callouts */
.callout{border:1px solid rgba(148,163,184,.18);background:rgba(2,6,23,.35);border-radius:16px;padding:12px 14px;margin:12px 0}
.callout b{display:block;margin-bottom:4px}
.callout.info{border-color:rgba(59,130,246,.45);background:rgba(59,130,246,.08)}
.callout.warn{border-color:rgba(239,68,68,.45);background:rgba(239,68,68,.08)}

.col4{grid-column:span 4}
.col3{grid-column:span 3}
@media(max-width:900px){.col4,.col3{grid-column:span 12}}

/* --- Pro layout: input left, info right --- */
.pair-row{display:grid;grid-template-columns: 1.15fr .85fr;gap:14px;align-items:stretch;margin-top:14px}
@media(max-width:980px){.pair-row{grid-template-columns:1fr}}
.pair-left .section{margin-top:0}

.info-box{border-radius:16px;border:1px solid rgba(56,189,248,.35);
  background:linear-gradient(180deg, rgba(56,189,248,.12), rgba(59,130,246,.08));
  box-shadow:0 10px 30px rgba(2,6,23,.25);padding:14px 14px 12px;position:relative;overflow:hidden}
.info-box:before{content:'';position:absolute;inset:-2px -2px auto -2px;height:3px;background:linear-gradient(90deg, rgba(56,189,248,.85), rgba(59,130,246,.15));opacity:.9}
.info-title{font-weight:900;letter-spacing:.2px;margin-bottom:6px}
.info-desc{font-size:13px;color:rgba(226,232,240,.92);line-height:1.45}

.inline-2{display:grid;grid-template-columns:1fr 160px;gap:10px;align-items:end}
@media(max-width:980px){.inline-2{grid-template-columns:1fr}}

/* Make it more eye-catching */
:root{--pri2:#22c55e;--glow:rgba(59,130,246,.25)}
.card{background:linear-gradient(180deg, rgba(18,24,38,.92), rgba(2,6,23,.55));border:1px solid rgba(148,163,184,.14)}
.section{background:linear-gradient(180deg, rgba(2,6,23,.26), rgba(2,6,23,.14));border:1px dashed rgba(148,163,184,.20)}
.nav-btn.primary{box-shadow:0 0 0 4px rgba(59,130,246,.12)}
.nav-btn.danger{box-shadow:0 0 0 4px rgba(239,68,68,.10)}
.brand-logo{box-shadow:0 18px 45px rgba(59,130,246,.20)}

/* Better inputs */
input,select,textarea{background:linear-gradient(180deg, rgba(2,6,23,.55), rgba(2,6,23,.35))}



/* --- Fix: disabled controls visibility in dark theme --- */
input:disabled, select:disabled, textarea:disabled{
  opacity:1 !important;
  color:rgba(226,232,240,.82) !important;
  background:rgba(2,6,23,.55) !important;
  border-color:rgba(148,163,184,.28) !important;
  -webkit-text-fill-color:rgba(226,232,240,.82) !important;
}
input[readonly], textarea[readonly]{
  opacity:1 !important;
  color:rgba(226,232,240,.9) !important;
  background:rgba(2,6,23,.50) !important;
  border-color:rgba(148,163,184,.28) !important;
}

/* --- Table readability on cards --- */
.table{background:rgba(2,6,23,.18);border:1px solid rgba(148,163,184,.12)}
.table tr{background:rgba(2,6,23,.12)}
.table tr:nth-child(even){background:rgba(2,6,23,.22)}
.table td{color:var(--text)}
.table a{color:rgba(191,219,254,.92)}

/* --- Bootstrap table overrides (bootstrap has higher specificity) --- */
.table{--bs-table-color:var(--text);--bs-table-bg:transparent;--bs-table-border-color:rgba(148,163,184,.14);
  --bs-table-striped-color:var(--text);--bs-table-striped-bg:rgba(2,6,23,.22);
  --bs-table-hover-color:var(--text);--bs-table-hover-bg:rgba(59,130,246,.08)}
.table>:not(caption)>*>*{color:var(--text) !important;background-color:transparent !important;border-color:rgba(148,163,184,.14) !important}
.table thead th{color:rgba(226,232,240,.96) !important;background:rgba(2,6,23,.55) !important}

/* --- Ensure code/pre blocks readable --- */
pre.card, pre{color:rgba(226,232,240,.95) !important}
code{color:rgba(191,219,254,.95)}

/* --- Muted text slightly brighter for dark gradients --- */
.muted{color:rgba(226,232,240,.72)}

/* --- Buttons: ensure visible text on light-ish fills --- */
.btn.ok{background:linear-gradient(180deg, rgba(34,197,94,.28), rgba(34,197,94,.18));
  border-color:rgba(34,197,94,.55); color:rgba(240,253,244,.96) !important; font-weight:900}
.btn.bad{background:linear-gradient(180deg, rgba(239,68,68,.22), rgba(239,68,68,.14));
  border-color:rgba(239,68,68,.45); color:rgba(254,242,242,.96) !important; font-weight:900}
.btn.pri{background:linear-gradient(180deg, rgba(59,130,246,.25), rgba(59,130,246,.14));
  border-color:rgba(59,130,246,.45); color:rgba(239,246,255,.96) !important; font-weight:900}


/* --- Contrast fixes for section/info titles, headers and code blocks --- */
.section-title, .info-title, .callout b, .h1, .h1>div, .brand, .brand-title{
  color:rgba(248,250,252,.98) !important;
  opacity:1 !important;
  text-shadow:0 1px 2px rgba(0,0,0,.45);
}
.section-title{padding-left:10px;border-left:3px solid rgba(56,189,248,.75)}
pre, code, .code, .mono{color:rgba(248,250,252,.92) !important}
.btn, .btn *{text-shadow:0 1px 2px rgba(0,0,0,.35)}

/* --- v9: Select dropdown readability + table text contrast --- */
select, .form-select{color-scheme:dark}
/* Native dropdown list often renders white; keep option text dark for readability */
select option, select optgroup{
  background-color:#ffffff !important;
  color:#0b0f14 !important;
}
select option:checked{
  background-color:#2563eb !important;
  color:#ffffff !important;
}
select option:disabled{
  color:rgba(15,23,42,.45) !important;
}
.table, .table th, .table td{ color:rgba(248,250,252,.94) !important; }
.table thead th{ color:rgba(248,250,252,.98) !important; }
.muted, .hint, .help{ color:rgba(226,232,240,.86) !important; }

/* KPI readability */
.kpi .label{color:rgba(248,250,252,.95) !important;}
.kpi .value{color:rgba(255,255,255,.98) !important;text-shadow:0 1px 2px rgba(0,0,0,.55)}
.kpi .muted{color:rgba(226,232,240,.88) !important;}

/* Grid helpers */
.col8{grid-column:span 8}
@media(max-width:900px){.col8{grid-column:span 12}}

/* --- v8: badge variants --- */
.badge.bad{background:rgba(239,68,68,.14);border-color:rgba(239,68,68,.45);color:rgba(254,242,242,.96)}
.badge.ok{background:rgba(34,197,94,.14);border-color:rgba(34,197,94,.45);color:rgba(240,253,244,.96)}

/* --- v8: section title visibility --- */
.section-title{display:inline-flex;align-items:center;gap:8px;background:rgba(56,189,248,.10);padding:6px 10px;border-radius:12px}
.section-title small{font-weight:700;color:rgba(226,232,240,.82)}

/* --- v8: KPI cards for dashboards --- */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.kpi{
  padding:14px;border-radius:18px;
  background:radial-gradient(1200px 200px at 10% 0%, rgba(56,189,248,.18), transparent 55%),
             linear-gradient(180deg, rgba(2,6,23,.55), rgba(2,6,23,.30));
  border:1px solid rgba(148,163,184,.18);
  box-shadow:0 10px 30px rgba(0,0,0,.25) inset, 0 12px 30px rgba(0,0,0,.15);
}
.kpi .label{font-weight:800;letter-spacing:.2px;color:rgba(226,232,240,.82);font-size:12px}
.kpi .value{font-size:28px;font-weight:950;margin-top:6px}
@media(max-width:1000px){.kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.kpis{grid-template-columns:1fr}}


/* ---------------- v10: Light theme support (product feel) ---------------- */
html[data-bs-theme="light"]{
  --bg:#f6f8fb;
  --card:#ffffff;
  --text:#0b1220;
  --muted:#334155;
  color-scheme:light;
}
html[data-bs-theme="light"] body{
  background:linear-gradient(180deg,#f8fafc,#eef2ff);
  color:var(--text);
}
html[data-bs-theme="light"] .app-shell{
  background:radial-gradient(1200px 600px at 15% 5%, rgba(59,130,246,.12), transparent 60%),
             radial-gradient(900px 500px at 85% 10%, rgba(34,197,94,.10), transparent 60%),
             linear-gradient(180deg,#f8fafc,#eef2ff);
}
html[data-bs-theme="light"] .topbar{background:rgba(255,255,255,.80);border-bottom:1px solid rgba(15,23,42,.12)}
html[data-bs-theme="light"] .nav-btn{background:rgba(255,255,255,.85);color:#0b1220;border-color:rgba(15,23,42,.14)}
html[data-bs-theme="light"] .who{background:rgba(255,255,255,.85);color:#334155}
html[data-bs-theme="light"] .card{background:linear-gradient(180deg, rgba(255,255,255,.95), rgba(255,255,255,.85));border-color:rgba(15,23,42,.12)}
html[data-bs-theme="light"] .section{background:linear-gradient(180deg, rgba(255,255,255,.90), rgba(255,255,255,.80));border-color:rgba(15,23,42,.12)}
html[data-bs-theme="light"] .muted,.help,.hint{color:#334155 !important}
html[data-bs-theme="light"] input,html[data-bs-theme="light"] select,html[data-bs-theme="light"] textarea{
  background:rgba(255,255,255,.92);
  color:#0b1220;
  border-color:rgba(15,23,42,.18);
}
html[data-bs-theme="light"] .table>:not(caption)>*>*{color:#0b1220 !important;border-color:rgba(15,23,42,.10) !important}

/* Ensure select shows readable selected value in dark theme too */
select, .form-select{color:var(--text) !important;}
select:disabled{color:rgba(248,250,252,.88) !important;}
/* Fix “hint/controls” title visibility everywhere */
.hint-title,.hint-head,.legend,.small-title{
  color:rgba(248,250,252,.98) !important;
  font-weight:900 !important;
  text-shadow:0 1px 2px rgba(0,0,0,.45);
}

/* Responsive table -> cards on small screens */
@media(max-width:760px){
  table.table thead{display:none}
  table.table, table.table tbody, table.table tr, table.table td{display:block;width:100%}
  table.table tr{margin-bottom:12px;border:1px solid rgba(148,163,184,.14);border-radius:14px;padding:10px}
  table.table td{border:none !important;padding:8px 10px !important}
  table.table td:before{content:attr(data-label);display:block;font-weight:900;color:rgba(226,232,240,.85);margin-bottom:4px}
  html[data-bs-theme="light"] table.table td:before{color:#334155}
}


/* ---------------- v11: Light theme title/heading contrast fix ---------------- */
html[data-bs-theme="light"] .section-title,
html[data-bs-theme="light"] .info-title,
html[data-bs-theme="light"] .callout b,
html[data-bs-theme="light"] .h1,
html[data-bs-theme="light"] .h1>div,
html[data-bs-theme="light"] .brand,
html[data-bs-theme="light"] .brand-title,
html[data-bs-theme="light"] .hint-title,
html[data-bs-theme="light"] .hint-head,
html[data-bs-theme="light"] .legend,
html[data-bs-theme="light"] .small-title{
  color:#0b1220 !important;
  text-shadow:none !important;
}
html[data-bs-theme="light"] .section-title{
  border-left-color:rgba(37,99,235,.55) !important;
  background:rgba(37,99,235,.08) !important;
}
html[data-bs-theme="light"] .info-box{
  border-color:rgba(37,99,235,.22) !important;
  background:linear-gradient(180deg, rgba(37,99,235,.08), rgba(255,255,255,.88)) !important;
}
html[data-bs-theme="light"] .info-desc{color:#334155 !important}
html[data-bs-theme="light"] .kpi .label{color:#0b1220 !important}
html[data-bs-theme="light"] .kpi .value{color:#0b1220 !important; text-shadow:none !important}
html[data-bs-theme="light"] .kpi .muted{color:#334155 !important}


/* ---------------- v12: Light theme button/readability fixes ---------------- */
html[data-bs-theme="light"] .nav-btn.primary{
  background:linear-gradient(180deg, rgba(37,99,235,.16), rgba(37,99,235,.08)) !important;
  border-color:rgba(37,99,235,.35) !important;
  color:#0b1220 !important;
  box-shadow:0 0 0 4px rgba(37,99,235,.08) !important;
}
html[data-bs-theme="light"] .nav-btn.danger{
  background:linear-gradient(180deg, rgba(239,68,68,.14), rgba(239,68,68,.08)) !important;
  border-color:rgba(239,68,68,.30) !important;
  color:#0b1220 !important;
  box-shadow:0 0 0 4px rgba(239,68,68,.06) !important;
}
html[data-bs-theme="light"] .btn,
html[data-bs-theme="light"] .btn *{
  color:#0b1220 !important;
  text-shadow:none !important;
}
html[data-bs-theme="light"] .btn{
  background:linear-gradient(180deg, rgba(255,255,255,.95), rgba(248,250,252,.92)) !important;
  border-color:rgba(15,23,42,.14) !important;
}
html[data-bs-theme="light"] .btn.pri{
  background:linear-gradient(180deg, rgba(37,99,235,.18), rgba(37,99,235,.10)) !important;
  border-color:rgba(37,99,235,.34) !important;
}
html[data-bs-theme="light"] .btn.ok{
  background:linear-gradient(180deg, rgba(34,197,94,.18), rgba(34,197,94,.10)) !important;
  border-color:rgba(34,197,94,.32) !important;
}
html[data-bs-theme="light"] .btn.bad{
  background:linear-gradient(180deg, rgba(239,68,68,.16), rgba(239,68,68,.10)) !important;
  border-color:rgba(239,68,68,.32) !important;
}
html[data-bs-theme="light"] .badge{
  background:rgba(255,255,255,.95) !important;
  color:#0b1220 !important;
  border-color:rgba(15,23,42,.14) !important;
}
html[data-bs-theme="light"] .badge.ok{
  background:rgba(34,197,94,.14) !important;
  color:#14532d !important;
  border-color:rgba(34,197,94,.28) !important;
}
html[data-bs-theme="light"] .badge.bad{
  background:rgba(239,68,68,.12) !important;
  color:#7f1d1d !important;
  border-color:rgba(239,68,68,.26) !important;
}
.ticket-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.ticket-linkbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ticket-media-grid{display:flex;gap:8px;flex-wrap:wrap}
.modal-backdrop-custom{
  position:fixed;inset:0;background:rgba(2,6,23,.72);display:none;align-items:center;justify-content:center;z-index:9999;padding:20px;
}
.modal-backdrop-custom.show{display:flex}
.modal-card-custom{
  width:min(980px, 96vw);max-height:92vh;overflow:auto;background:rgba(8,15,28,.96);border:1px solid rgba(148,163,184,.18);border-radius:18px;padding:14px;
  box-shadow:0 30px 80px rgba(0,0,0,.45);
}
.modal-card-custom img{display:block;max-width:100%;height:auto;margin:0 auto;border-radius:12px}
html[data-bs-theme="light"] .modal-card-custom{
  background:rgba(255,255,255,.98) !important;
  border-color:rgba(15,23,42,.14) !important;
}


/* Admin sidebar layout */
.page-layout.with-sidebar{display:grid;grid-template-columns:260px minmax(0,1fr);gap:18px;align-items:start}
.page-layout.main-only{display:block}
.page-main{min-width:0}
.side-menu{position:sticky;top:92px;padding:16px;border-radius:18px;border:1px solid rgba(148,163,184,.18);background:linear-gradient(180deg, rgba(2,6,23,.55), rgba(2,6,23,.28));box-shadow:0 14px 30px rgba(0,0,0,.18)}
.side-menu-title{font-size:13px;font-weight:900;letter-spacing:.2px;color:rgba(248,250,252,.95);margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid rgba(148,163,184,.12)}
.side-link{display:flex;align-items:center;min-height:42px;padding:10px 12px;margin-bottom:8px;border-radius:12px;border:1px solid rgba(148,163,184,.12);background:rgba(2,6,23,.28);color:var(--text);font-weight:700;text-decoration:none}
.side-link:hover{background:rgba(59,130,246,.12);border-color:rgba(59,130,246,.35);text-decoration:none;filter:brightness(1.06)}
.topbar-actions{max-width:60%;justify-content:flex-end}
@media(max-width:1100px){.page-layout.with-sidebar{grid-template-columns:1fr}.side-menu{position:static}.topbar-actions{max-width:none}}

/* Theme toggle icon button */
.theme-toggle-btn{min-width:44px;display:inline-flex;align-items:center;justify-content:center;gap:0;padding:.55rem .8rem;font-size:1.1rem;line-height:1}
.theme-toggle-btn .theme-icon{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
html[data-bs-theme="light"] .theme-toggle-btn{color:#0b1220}

.topbar-search{display:flex;gap:8px;align-items:center;min-width:min(210px,21vw)}
.topbar-search input{min-width:120px;width:min(150px,15vw);background:rgba(2,6,23,.55);border:1px solid rgba(148,163,184,.18);padding:9px 12px;border-radius:12px}
.ticket-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.badge.warn{background:rgba(245,158,11,.14);border:1px solid rgba(245,158,11,.45);color:rgba(255,247,237,.96)}
.modal-card-custom{max-width:min(1100px,94vw)}
#imgModalTarget{max-height:75vh;object-fit:contain;width:100%;background:#000;border-radius:12px}
html[data-bs-theme="light"] .topbar-search input{background:rgba(255,255,255,.95);color:#0b1220;border-color:rgba(15,23,42,.15)}
html[data-bs-theme="light"] .badge{background:#f8fafc;color:#0f172a;border-color:rgba(15,23,42,.14)}
html[data-bs-theme="light"] .badge.ok{background:rgba(34,197,94,.10);color:#166534;border-color:rgba(34,197,94,.35)}
html[data-bs-theme="light"] .badge.bad{background:rgba(239,68,68,.10);color:#991b1b;border-color:rgba(239,68,68,.35)}
html[data-bs-theme="light"] .badge.warn{background:rgba(245,158,11,.12);color:#92400e;border-color:rgba(245,158,11,.35)}
html[data-bs-theme="light"] .btn{background:#fff;color:#0b1220;border-color:rgba(15,23,42,.14);text-shadow:none}
html[data-bs-theme="light"] .btn.pri{background:linear-gradient(180deg, rgba(59,130,246,.16), rgba(59,130,246,.10));color:#0b1220 !important}
html[data-bs-theme="light"] .btn.ok{background:linear-gradient(180deg, rgba(34,197,94,.16), rgba(34,197,94,.10));color:#14532d !important}
html[data-bs-theme="light"] .btn.bad{background:linear-gradient(180deg, rgba(239,68,68,.16), rgba(239,68,68,.10));color:#7f1d1d !important}
html[data-bs-theme="light"] .side-menu{background:rgba(255,255,255,.88);border-color:rgba(15,23,42,.12)}
html[data-bs-theme="light"] .side-link{color:#0f172a}
html[data-bs-theme="light"] .callout{background:rgba(255,255,255,.85);border-color:rgba(15,23,42,.12)}
