:root {
    --tri-bg: #06090d;
    --tri-panel: rgba(13, 20, 29, .92);
    --tri-border: rgba(255,255,255,.12);
    --tri-text: #e9f2ff;
    --tri-muted: #8fa3b8;
    --tri-accent: #68d8ff;
}
html, body { height:100%; }
.tri-body {
    min-height:100%;
    background: radial-gradient(circle at 20% 10%, rgba(104,216,255,.20), transparent 28%), radial-gradient(circle at 80% 30%, rgba(60,120,255,.12), transparent 30%), var(--tri-bg);
    color: var(--tri-text);
}
.tri-admin-body { background:#f4f6f8; }
.tri-login-wrap { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:1rem; }
.tri-login-card { width:100%; max-width:440px; background:rgba(255,255,255,.95); color:#17202a; border-radius:1rem; }
.tri-kicker { color:var(--tri-accent); text-transform:uppercase; font-size:.74rem; letter-spacing:.12em; font-weight:700; }
.tri-navbar { background:rgba(4,8,12,.92); border-bottom:1px solid var(--tri-border); }
.tri-faction-pill { display:inline-flex; align-items:center; border:1px solid var(--tri-border); border-radius:999px; padding:.2rem .65rem; font-size:.875rem; }
.tri-faction-pill:before { content:""; width:.65rem; height:.65rem; border-radius:50%; background:var(--faction-color); margin-right:.4rem; box-shadow:0 0 .8rem var(--faction-color); }
.tri-app-shell { min-height:calc(100vh - 57px); display:grid; grid-template-columns:410px minmax(0,1fr); gap:1rem; padding:1rem; }
.tri-panel { background:var(--tri-panel); color:var(--tri-text); border:1px solid var(--tri-border)!important; border-radius:1rem; backdrop-filter: blur(10px); z-index: 2; }
.tri-panel .form-control, .tri-panel .select2-container--bootstrap4 .select2-selection { background:rgba(255,255,255,.08); color:var(--tri-text); border-color:var(--tri-border); }
.tri-panel .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__choice { background:#152232; border-color:#2a405c; color:var(--tri-text); }
.tri-panel .select2-container--bootstrap4 .select2-selection--multiple .select2-selection__choice__remove { color:#fff; }
.select2-dropdown { background:#101722; color:#e9f2ff; border-color:#26384d; }
.select2-results__option--highlighted { background:#0d6efd!important; }
.tri-status { background:rgba(255,255,255,.06); border:1px solid var(--tri-border); border-radius:.75rem; padding:.85rem; }
.tri-status-label { font-weight:700; }
.tri-status-percent { color:var(--tri-accent); font-weight:700; }
.progress { background:rgba(255,255,255,.10); height:.6rem; }
.progress-bar { background:linear-gradient(90deg,#4aa3ff,#8bf0ff); }
.tri-readout { background:rgba(255,255,255,.06); border:1px solid var(--tri-border); border-radius:.65rem; padding:.55rem .35rem; min-height:58px; }
.tri-log { max-height:280px; overflow:auto; }
.tri-flag-row { display:flex; justify-content:space-between; align-items:center; padding:.55rem 0; border-top:1px solid rgba(255,255,255,.08); }
.tri-flag-name { font-weight:600; }
.tri-owner { font-size:.8rem; color:var(--tri-muted); }
.tri-map-wrap { position:relative; min-height:calc(100vh - 89px); border-radius:1rem; overflow:hidden; border:1px solid var(--tri-border); box-shadow:0 1rem 3rem rgba(0,0,0,.35); }
#triMap { position:absolute; inset:0; background:#0b1118; z-index:1; }
.tri-map-overlay { pointer-events:none; position:absolute; inset:0; z-index:2; box-shadow: inset 0 0 80px rgba(0,0,0,.65); }
.tri-scanline { position:absolute; left:0; right:0; top:0; height:3px; background:linear-gradient(90deg,transparent,rgba(104,216,255,.75),transparent); animation:tri-scan 5s linear infinite; opacity:.75; }
@keyframes tri-scan { 0%{transform:translateY(0)} 100%{transform:translateY(calc(100vh - 90px))} }
.tri-map-title { position:absolute; left:1rem; top:1rem; background:rgba(5,10,16,.74); border:1px solid var(--tri-border); border-radius:.75rem; padding:.75rem 1rem; backdrop-filter:blur(8px); }
.tri-admin-container { max-width:1680px; }
.leaflet-container { font-family:inherit; }
.tri-target-pulse { filter:drop-shadow(0 0 12px rgba(104,216,255,.9)); }
@media (max-width: 991.98px) {
    .tri-app-shell { grid-template-columns:1fr; padding:.75rem; }
    .tri-panel { order:2; }
    .tri-map-wrap { order:1; min-height:58vh; }
}
@media (max-width: 575.98px) {
    .tri-navbar .navbar-brand { font-size: .95rem; }
    .tri-map-title { left:.5rem; top:.5rem; right:.5rem; }
    .tri-panel .card-body { padding:1rem!important; }
}
