:root{--gh-bg:#02080c;--gh-panel:#07131a;--gh-panel2:#091b24;--gh-line:rgba(105,255,57,.22);--gh-line-blue:rgba(43,205,255,.28);--gh-green:#69ff39;--gh-green2:#20e88a;--gh-text:#edf7f5;--gh-muted:#81959a;--gh-danger:#ff6262;--gh-yellow:#ffd34d;--gh-shadow:0 20px 60px rgba(0,0,0,.42)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body.app-body{margin:0;background:radial-gradient(circle at 70% 0%,#09212b 0,#02080c 40%,#010406 100%);color:var(--gh-text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100vh}.app-shell{min-height:calc(100vh - 46px);background:linear-gradient(rgba(2,8,12,.1),rgba(2,8,12,.25))}
.app-topbar{height:74px;border-bottom:1px solid var(--gh-line);background:rgba(1,7,10,.94);backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:1030;box-shadow:0 8px 30px rgba(0,0,0,.35)}.topbar-left,.topbar-right{display:flex;align-items:center;gap:14px}.app-brand{display:flex;align-items:center;color:#fff;text-decoration:none;min-width:0}.app-brand-logo{display:block;width:265px;height:62px;object-fit:contain;object-position:left center;filter:drop-shadow(0 0 10px rgba(105,255,57,.10))}.live-pill{font-size:9px;letter-spacing:1.2px;color:#a9c0c2;border:1px solid rgba(105,255,57,.2);padding:7px 10px;border-radius:999px}.live-pill i{display:inline-block;width:6px;height:6px;background:var(--gh-green);border-radius:50%;margin-right:5px;box-shadow:0 0 8px var(--gh-green)}.user-chip{border:1px solid var(--gh-line);background:#07141a;padding:7px 11px;border-radius:10px;display:flex;align-items:center;gap:8px;font-size:12px;color:#c9d8d9}.user-avatar{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:rgba(105,255,57,.1);color:var(--gh-green);border:1px solid rgba(105,255,57,.3)}.top-action{height:40px;width:40px;border:1px solid var(--gh-line);border-radius:10px;color:#fff;text-decoration:none;display:grid;place-items:center;font-size:20px}.top-action:hover{color:var(--gh-green);border-color:var(--gh-green)}.mobile-menu-btn{display:none;background:none;border:1px solid var(--gh-line);color:#fff;border-radius:9px;width:42px;height:42px;font-size:20px}
.app-layout{display:flex;min-height:calc(100vh - 74px)}.sidebar{width:238px;flex:0 0 238px;background:linear-gradient(180deg,#030b10,#02070a);border-right:1px solid rgba(43,205,255,.2);position:relative}.sidebar-inner{height:100%;min-height:calc(100vh - 74px);display:flex;flex-direction:column;padding:24px 14px}.sidebar-section-label{font-size:9px;letter-spacing:2px;color:#5d7378;padding:0 12px 12px;font-weight:800}.app-nav{display:flex;flex-direction:column;gap:5px}.app-nav a{display:flex;align-items:center;gap:13px;color:#b7c5c7;text-decoration:none;padding:13px 13px;border:1px solid transparent;border-radius:10px;font-size:14px;transition:.18s}.app-nav a span{width:22px;text-align:center;color:#c6d2d3;font-size:20px}.app-nav a:hover{background:rgba(105,255,57,.05);border-color:rgba(105,255,57,.12);color:#fff}.app-nav a.active{background:linear-gradient(90deg,rgba(105,255,57,.13),rgba(105,255,57,.025));border-color:rgba(105,255,57,.65);color:#fff;box-shadow:inset 0 0 20px rgba(105,255,57,.04),0 0 16px rgba(105,255,57,.05)}.app-nav a.active span{color:var(--gh-green);text-shadow:0 0 12px rgba(105,255,57,.65)}.sidebar-divider{height:1px;background:linear-gradient(90deg,transparent,rgba(105,255,57,.18),transparent);margin:22px 4px}.sidebar-tip{border:1px solid rgba(43,205,255,.18);border-radius:12px;padding:15px;background:linear-gradient(135deg,rgba(8,29,38,.85),rgba(3,10,14,.7));margin:0 4px}.tip-icon{color:var(--gh-green);font-size:20px;margin-bottom:8px}.sidebar-tip strong{font-size:10px;letter-spacing:1.5px}.sidebar-tip p{font-size:11px;color:#70858a;margin:7px 0 0;line-height:1.5}.sidebar-bottom{margin-top:auto;padding:16px 8px 0;display:flex;justify-content:space-between;gap:8px}.sidebar-bottom a{font-size:10px;color:#667b80;text-decoration:none}.sidebar-bottom a:hover{color:var(--gh-green)}.offcanvas-header{border-bottom:1px solid var(--gh-line)}.sidebar-title{font-size:10px;letter-spacing:2px;color:var(--gh-green);font-weight:800}
.app-main{width:calc(100% - 238px);padding:30px;min-width:0;background:radial-gradient(circle at 65% 0%,rgba(18,67,82,.18),transparent 40%)}.app-main> .alert{max-width:1400px;margin:0 auto 18px}.page-header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 auto 22px;max-width:1400px}.page-header h1,.page-header h2{margin:0;font-family:Impact,"Arial Narrow",sans-serif;letter-spacing:1px;text-transform:uppercase;font-size:34px}.page-header p{color:var(--gh-muted);margin:5px 0 0;font-size:12px}.eyebrow-app{color:var(--gh-green);font-size:10px;letter-spacing:2px;font-weight:800;margin-bottom:5px}.panel,.card{background:linear-gradient(145deg,rgba(8,24,31,.96),rgba(3,11,15,.97))!important;border:1px solid var(--gh-line-blue)!important;border-radius:13px!important;box-shadow:var(--gh-shadow)!important;color:var(--gh-text)}.card{overflow:hidden}.panel{padding:20px}.card h3,.card h4,.panel h3,.panel h4{color:#fff}.text-muted,.text-secondary{color:var(--gh-muted)!important}.stat{font-size:2.5rem;font-weight:800;color:#fff;line-height:1}.btn{border-radius:9px;font-weight:800;letter-spacing:.4px;padding:10px 16px}.btn-dark{background:var(--gh-green)!important;color:#031006!important;border:1px solid var(--gh-green)!important;box-shadow:0 0 18px rgba(105,255,57,.14)}.btn-dark:hover{background:#8aff65!important;border-color:#8aff65!important}.btn-outline-dark{border:1px solid rgba(105,255,57,.5)!important;color:var(--gh-green)!important;background:transparent!important}.btn-outline-dark:hover{background:rgba(105,255,57,.09)!important}.btn-outline-secondary{border-color:rgba(255,255,255,.18);color:#cbd5d6}.form-control,.form-select{background:#030b10!important;border:1px solid rgba(43,205,255,.24)!important;color:#eaf4f3!important;border-radius:8px!important;padding:10px 12px}.form-control:focus,.form-select:focus{border-color:var(--gh-green)!important;box-shadow:0 0 0 .18rem rgba(105,255,57,.1)!important}.form-control::placeholder{color:#5d7075}.form-label,label{color:#aebfc1;font-size:11px;font-weight:700;letter-spacing:.3px;margin-bottom:6px}.table{--bs-table-bg:transparent;--bs-table-color:#dce7e7;--bs-table-border-color:rgba(43,205,255,.12);margin-bottom:0}.table thead th{color:#738a8f;text-transform:uppercase;font-size:9px;letter-spacing:1.3px;border-bottom-color:rgba(105,255,57,.2);white-space:nowrap}.table tbody td{padding:13px 10px}.table a{color:var(--gh-green);text-decoration:none}.table a:hover{text-decoration:underline}.alert{border-radius:10px;background:#09181e;color:#d8e7e6;border-color:rgba(43,205,255,.2)}.alert-success{border-color:rgba(105,255,57,.35);background:rgba(32,232,138,.07)}.alert-danger{border-color:rgba(255,98,98,.35);background:rgba(255,98,98,.07)}
.dashboard-hero{position:relative;overflow:hidden;border:1px solid rgba(105,255,57,.28);border-radius:16px;min-height:185px;padding:30px;margin:0 auto 22px;max-width:1400px;background:linear-gradient(90deg,rgba(2,8,12,.98) 0%,rgba(2,8,12,.82) 38%,rgba(2,8,12,.35) 100%),url('/assets/hero-paranormal.jpg') center 38%/cover}.dashboard-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(2,8,12,.35));pointer-events:none}.dashboard-hero>*{position:relative;z-index:1}.dashboard-hero h1{font-family:Impact,"Arial Narrow",sans-serif;text-transform:uppercase;letter-spacing:1.5px;font-size:40px;margin:0 0 5px}.dashboard-hero h1 span{color:var(--gh-green);text-shadow:0 0 16px rgba(105,255,57,.2)}.dashboard-hero p{max-width:570px;color:#a6b7ba;font-size:13px;margin:0}.dashboard-date{position:absolute!important;right:25px;top:25px;border:1px solid rgba(105,255,57,.45);border-radius:10px;padding:10px 15px;background:rgba(3,12,16,.72);font-size:11px;color:#dbe8e7}.dashboard-date b{display:block;color:var(--gh-green);font-size:14px}.stat-card{height:100%;padding:18px;position:relative;overflow:hidden}.stat-card:after{content:"";position:absolute;width:100px;height:100px;border-radius:50%;right:-45px;top:-45px;background:rgba(105,255,57,.06)}.stat-icon{width:48px;height:48px;border:1px solid rgba(105,255,57,.5);border-radius:50%;display:grid;place-items:center;color:var(--gh-green);font-size:22px;box-shadow:0 0 15px rgba(105,255,57,.08);float:left;margin-right:14px}.stat-label{color:#8ea2a6;font-size:10px;text-transform:uppercase;letter-spacing:1.1px}.stat-number{font-size:28px;font-weight:900;line-height:1.1;margin-top:3px}.stat-link{display:block;margin-top:12px;color:var(--gh-green);font-size:10px;text-decoration:none}.section-bar{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(105,255,57,.15);padding-bottom:12px;margin-bottom:4px}.section-bar h3{margin:0;font-size:14px}.section-bar a{font-size:10px;color:var(--gh-green);text-decoration:none}.equipment-mini{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid rgba(43,205,255,.1)}.equipment-mini:last-child{border-bottom:0}.gear-icon{width:38px;height:38px;border:1px solid rgba(105,255,57,.55);border-radius:9px;display:grid;place-items:center;color:var(--gh-green);font-size:18px}.gear-name{font-size:12px;font-weight:700}.gear-status{font-size:10px;color:#71868a}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px;background:var(--gh-green);box-shadow:0 0 7px rgba(105,255,57,.5)}.status-dot.warn{background:var(--gh-yellow);box-shadow:0 0 7px rgba(255,211,77,.4)}.status-dot.bad{background:var(--gh-danger);box-shadow:0 0 7px rgba(255,98,98,.4)}.dashboard-bottom-strip{border-top:1px solid rgba(105,255,57,.12);margin-top:22px;padding-top:18px}.feature-mini{text-align:center;padding:8px 14px;border-right:1px solid rgba(43,205,255,.12)}.feature-mini:last-child{border-right:0}.feature-mini .mini-icon{font-size:25px;color:var(--gh-green)}.feature-mini strong{display:block;font-size:10px;letter-spacing:.7px;margin-top:7px}.feature-mini span{font-size:10px;color:#687d82;line-height:1.4;display:block;margin-top:4px}
.badge{font-weight:700;border-radius:999px;padding:5px 9px}.bg-success{background:rgba(105,255,57,.14)!important;color:var(--gh-green)!important}.bg-warning{background:rgba(255,211,77,.14)!important;color:var(--gh-yellow)!important}.bg-danger{background:rgba(255,98,98,.14)!important;color:#ff8c8c!important}.bg-secondary{background:rgba(255,255,255,.08)!important;color:#aab9bb!important}
.app-footer{height:46px;border-top:1px solid rgba(105,255,57,.1);background:#010508;color:#52666b;display:flex;align-items:center;justify-content:space-between;padding:0 30px;font-size:9px;letter-spacing:.8px}.app-footer b{color:var(--gh-green)}
@media(max-width:991.98px){.app-topbar{height:66px;padding:0 14px}.mobile-menu-btn{display:block}.live-pill{display:none}.sidebar{width:270px;max-width:85vw;background:#030a0e}.app-main{width:100%;padding:20px 14px}.sidebar-inner{min-height:100vh}.dashboard-hero{padding:24px;min-height:220px}.dashboard-date{position:relative!important;right:auto;top:auto;display:inline-block;margin-top:16px}.dashboard-hero h1{font-size:32px}.page-header{align-items:flex-start}.page-header h1,.page-header h2{font-size:28px}.app-footer{padding:0 15px}.app-footer span:last-child{display:none}}
@media(max-width:575.98px){.brand-copy strong{font-size:15px}.brand-copy small{font-size:7px;letter-spacing:2px}.brand-ghost{width:38px;height:38px;font-size:20px}.user-chip{padding:5px}.top-action{width:38px;height:38px}.app-main{padding:16px 10px}.dashboard-hero{padding:20px 17px}.dashboard-hero h1{font-size:27px}.dashboard-hero p{font-size:12px}.stat-card{padding:14px}.stat-icon{width:40px;height:40px;font-size:18px;margin-right:10px}.stat-number{font-size:24px}.table-responsive{border-radius:10px}.card.p-4{padding:18px!important}.page-header{display:block}.page-header .btn{margin-top:12px;width:100%}.feature-mini{border-right:0;border-bottom:1px solid rgba(43,205,255,.12);padding:14px}.feature-mini:last-child{border-bottom:0}}

/* V4.1 visual polish: make the logged-in application feel like a real paranormal command center. */
:root{--gh-green:#72ff3b;--gh-green-soft:#2be38c;--gh-cyan:#1fd8ff;--gh-bg:#010609;--gh-panel:#07131a;--gh-panel-deep:#030b10}
body.app-body{background:#010609;position:relative;overflow-x:hidden}
body.app-body:before{content:"";position:fixed;inset:0;background:linear-gradient(90deg,rgba(1,6,9,.98) 0%,rgba(1,6,9,.88) 38%,rgba(1,6,9,.93) 100%),url('/assets/hero-paranormal.jpg') center top/cover no-repeat;opacity:.17;filter:saturate(.75) contrast(1.1);pointer-events:none;z-index:-3}
body.app-body:after{content:"";position:fixed;inset:0;background:radial-gradient(circle at 72% 5%,rgba(31,216,255,.09),transparent 27%),radial-gradient(circle at 20% 65%,rgba(114,255,59,.045),transparent 28%);pointer-events:none;z-index:-2}
.app-shell{background:linear-gradient(180deg,rgba(1,6,9,.18),rgba(1,6,9,.55))}
.app-topbar{height:86px;padding:0 30px;background:rgba(1,6,9,.91);border-bottom:1px solid rgba(114,255,59,.34);box-shadow:0 8px 40px rgba(0,0,0,.55)}
.app-brand{gap:0}.app-brand-logo{width:265px;height:62px}
.live-pill{background:rgba(114,255,59,.04);font-weight:800}.top-action{background:linear-gradient(180deg,#0b1b21,#040b0e)}
.app-layout{min-height:calc(100vh - 86px)}
.sidebar{width:252px;flex-basis:252px;background:linear-gradient(180deg,rgba(2,9,13,.98),rgba(1,5,8,.98));border-right:1px solid rgba(31,216,255,.22);box-shadow:18px 0 50px rgba(0,0,0,.22)}
.sidebar-inner{min-height:calc(100vh - 86px);padding:28px 16px 18px}.sidebar-section-label{color:#668087;font-size:9px;margin-bottom:8px}.app-nav a{height:48px;padding:0 14px;border-radius:10px;font-size:13px;font-weight:650}.app-nav a span{font-size:17px;color:#91a4a8}.app-nav a.active{background:linear-gradient(90deg,rgba(114,255,59,.15),rgba(114,255,59,.035));border-color:rgba(114,255,59,.72);box-shadow:0 0 22px rgba(114,255,59,.06),inset 3px 0 0 var(--gh-green)}
.sidebar-tip{background:linear-gradient(145deg,rgba(7,27,34,.96),rgba(2,9,13,.96));box-shadow:inset 0 0 25px rgba(31,216,255,.025)}
.app-main{width:calc(100% - 252px);padding:32px 34px 42px;background:linear-gradient(180deg,rgba(2,9,13,.30),rgba(2,9,13,.50))}
.app-main>h2,.app-main>.d-flex>h2{font-family:Impact,"Arial Narrow",sans-serif;text-transform:uppercase;letter-spacing:1.8px;font-size:35px;color:#f5fbfa;margin:0}.app-main>h2:after,.app-main>.d-flex>h2:after{content:"";display:block;width:54px;height:3px;background:var(--gh-green);box-shadow:0 0 12px rgba(114,255,59,.5);margin-top:9px;border-radius:3px}
.app-main>.d-flex.justify-content-between,.app-main>.d-flex.justify-content-between.align-items-center{max-width:1450px;margin-left:auto;margin-right:auto;padding-bottom:4px}
.card,.panel{background:linear-gradient(145deg,rgba(7,22,29,.94),rgba(2,9,13,.97))!important;border:1px solid rgba(31,216,255,.22)!important;border-radius:14px!important;box-shadow:0 18px 55px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.025)!important}
.card:hover{border-color:rgba(114,255,59,.28)!important}
.btn-dark{background:linear-gradient(135deg,#79ff45,#28e78c)!important;border-color:#79ff45!important;color:#031006!important;box-shadow:0 0 20px rgba(114,255,59,.18),inset 0 1px rgba(255,255,255,.25)}
.btn-outline-dark{border-color:rgba(114,255,59,.48)!important;background:rgba(114,255,59,.025)!important}.btn-outline-dark:hover{background:rgba(114,255,59,.11)!important;box-shadow:0 0 18px rgba(114,255,59,.08)}
.form-control,.form-select{min-height:43px;background:rgba(1,8,12,.88)!important;border-color:rgba(31,216,255,.24)!important}.form-control:hover,.form-select:hover{border-color:rgba(31,216,255,.42)!important}.form-label,label{font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:#9bb0b3}
.table-responsive{border-radius:11px}.table thead th{background:rgba(114,255,59,.025);padding:12px 10px}.table tbody tr{transition:background .15s}.table tbody tr:hover{background:rgba(114,255,59,.035)}
.dashboard-hero{min-height:205px;max-width:1450px;padding:32px;border-color:rgba(114,255,59,.42);box-shadow:0 20px 65px rgba(0,0,0,.45),inset 0 0 50px rgba(31,216,255,.025);background:linear-gradient(90deg,rgba(1,7,10,.98) 0%,rgba(1,7,10,.84) 38%,rgba(1,7,10,.30) 100%),url('/assets/hero-paranormal.jpg') center 42%/cover}
.dashboard-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0 55%,rgba(114,255,59,.05) 100%);pointer-events:none}.dashboard-hero h1{font-size:43px;letter-spacing:2px}.dashboard-hero p{font-size:13px;max-width:650px;line-height:1.65;color:#b4c3c5}
.stat-card{min-height:148px;padding:19px 20px}.stat-card:before{content:"";position:absolute;left:0;top:0;width:45%;height:1px;background:linear-gradient(90deg,var(--gh-green),transparent)}.stat-icon{width:52px;height:52px;background:rgba(114,255,59,.025);border-color:rgba(114,255,59,.62);font-size:21px}.stat-label{font-size:9px;letter-spacing:1.4px}.stat-number{font-size:31px}.stat-link{font-weight:800;letter-spacing:.5px}
.section-bar h3{font-size:14px;text-transform:uppercase;letter-spacing:.7px}.section-bar h3 i{color:var(--gh-green)}.gear-icon{background:rgba(114,255,59,.025);font-size:17px}.feature-mini .mini-icon{filter:drop-shadow(0 0 8px rgba(114,255,59,.28))}
.app-footer{height:50px;background:#010508;border-top-color:rgba(114,255,59,.2);padding:0 32px}
/* consistent empty states and action areas */
.app-main .card form .btn,.app-main>form .btn{min-height:42px}.app-main .alert{box-shadow:0 10px 30px rgba(0,0,0,.22)}
@media(max-width:991.98px){.app-topbar{height:68px;padding:0 15px}.app-layout{min-height:calc(100vh - 68px)}.app-main{width:100%;padding:22px 15px 34px}.sidebar-inner{min-height:100vh}.dashboard-hero{min-height:230px}.dashboard-hero h1{font-size:34px}}
@media(max-width:575.98px){.app-topbar{height:62px}.brand-copy strong{font-size:15px}.brand-copy small{font-size:7px;letter-spacing:2.5px}.brand-ghost{width:40px;height:40px;font-size:21px}.app-main{padding:17px 11px 28px}.app-main>h2,.app-main>.d-flex>h2{font-size:28px}.dashboard-hero{padding:21px 18px;min-height:245px}.dashboard-hero h1{font-size:29px}.dashboard-date{font-size:10px}.stat-card{min-height:132px;padding:15px}.stat-icon{width:43px;height:43px}.stat-number{font-size:25px}.app-footer{height:44px;padding:0 13px}}

/* V5 Offline Investigation Field Mode */
.field-mode{max-width:1200px;margin:0 auto}.field-top{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:22px}.field-kicker{color:var(--gh-green);font-size:10px;font-weight:800;letter-spacing:2px;margin-bottom:7px}.field-top h1{font-family:Impact,"Arial Narrow",sans-serif;text-transform:uppercase;letter-spacing:1.5px;font-size:34px;margin:0 0 8px}.field-top h1 i{color:var(--gh-green);margin-right:8px}.field-top p{margin:0;color:#91a5a9;font-size:13px;max-width:720px}.field-status{white-space:nowrap;border:1px solid rgba(114,255,59,.35);background:rgba(114,255,59,.06);padding:9px 12px;border-radius:999px;font-size:9px;font-weight:800;letter-spacing:.8px;color:var(--gh-green)}.field-status span{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--gh-green);box-shadow:0 0 8px rgba(114,255,59,.7);margin-right:5px}.field-status.offline{border-color:rgba(255,211,77,.35);color:var(--gh-yellow);background:rgba(255,211,77,.06)}.field-status.offline span{background:var(--gh-yellow);box-shadow:0 0 8px rgba(255,211,77,.5)}.field-status.syncing{border-color:rgba(31,216,255,.35);color:var(--gh-cyan);background:rgba(31,216,255,.05)}.field-status.syncing span{background:var(--gh-cyan);box-shadow:0 0 8px rgba(31,216,255,.6)}.field-panel,.field-case-card{background:linear-gradient(145deg,rgba(7,22,29,.96),rgba(2,9,13,.98));border:1px solid rgba(31,216,255,.22);border-radius:14px;box-shadow:0 16px 50px rgba(0,0,0,.35);padding:20px;margin-bottom:16px}.field-loading{text-align:center;padding:45px;color:#9fb0b3}.field-case-card{border-color:rgba(114,255,59,.42);padding:24px;background:linear-gradient(90deg,rgba(1,8,11,.98),rgba(5,22,27,.88))}.field-case-label{color:#6f878c;font-size:9px;letter-spacing:1.5px;font-weight:800}.field-case-card h2{font-family:Impact,"Arial Narrow",sans-serif;text-transform:uppercase;font-size:30px;letter-spacing:1px;margin:5px 0 10px}.field-case-meta{display:flex;flex-wrap:wrap;gap:8px}.field-case-meta span{border:1px solid rgba(31,216,255,.18);background:rgba(31,216,255,.03);padding:6px 9px;border-radius:7px;color:#aab9bc;font-size:10px}.field-sync-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding-top:13px;border-top:1px solid rgba(114,255,59,.12);color:#6f8387;font-size:10px}.field-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.field-tool{border:1px solid rgba(114,255,59,.2);border-radius:12px;background:linear-gradient(145deg,#07171d,#030a0e);color:#eaf1f2;text-align:left;padding:18px;min-height:125px;cursor:pointer;transition:.18s}.field-tool:hover,.field-tool:focus{border-color:rgba(114,255,59,.62);transform:translateY(-2px);box-shadow:0 12px 30px rgba(0,0,0,.28)}.field-tool i{display:block;color:var(--gh-green);font-size:23px;margin-bottom:13px}.field-tool strong{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.6px}.field-tool small{display:block;color:#72878c;font-size:10px;line-height:1.45;margin-top:6px}.field-panel-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(114,255,59,.15);padding-bottom:12px;margin-bottom:15px}.field-panel-head h3{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:.7px}.field-panel-head h3 i{color:var(--gh-green);margin-right:7px}.field-mode label{display:block;margin:11px 0 6px}.field-mode input,.field-mode select,.field-mode textarea{width:100%;border:1px solid rgba(31,216,255,.23);background:rgba(1,8,12,.92);color:#eef5f5;border-radius:8px;padding:11px 12px;outline:none;font:inherit;font-size:13px}.field-mode input:focus,.field-mode select:focus,.field-mode textarea:focus{border-color:rgba(114,255,59,.65);box-shadow:0 0 0 3px rgba(114,255,59,.06)}.field-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--gh-green);border-radius:8px;background:linear-gradient(135deg,#79ff45,#28e78c);color:#031006;font-weight:800;font-size:11px;letter-spacing:.5px;padding:11px 15px;margin-top:14px;cursor:pointer}.field-btn-outline{background:transparent;color:var(--gh-green)}.field-file-note{font-size:9px;color:#667c81;margin-top:7px}.field-list{display:grid;gap:1px}.field-list-row{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid rgba(31,216,255,.09)}.field-list-row:last-child{border-bottom:0}.field-list-row i{color:var(--gh-green);width:24px;text-align:center}.field-list-row span{font-size:12px;font-weight:700}.field-list-row small{margin-left:auto;color:#71868a;font-size:9px}.field-empty,.field-queue-empty{color:#6f8387;font-size:11px;padding:10px 0}.field-count{min-width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:rgba(114,255,59,.12);color:var(--gh-green);font-size:10px;font-weight:800}.field-queue-row{display:grid;grid-template-columns:24px 1fr auto;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid rgba(31,216,255,.09)}.field-queue-row i{color:var(--gh-green)}.field-queue-row span{font-size:11px;font-weight:700}.field-queue-row small{color:#73878b;font-size:9px}.gh-offline .live-pill{color:var(--gh-yellow)!important;border-color:rgba(255,211,77,.35)!important}.gh-offline .live-pill i{background:var(--gh-yellow)!important;box-shadow:0 0 8px rgba(255,211,77,.6)!important}
@media(max-width:850px){.field-grid{grid-template-columns:repeat(2,1fr)}.field-top{display:block}.field-status{display:inline-block;margin-top:14px}.field-top h1{font-size:30px}}
@media(max-width:575px){.field-mode{margin:0}.field-top h1{font-size:27px}.field-top p{font-size:11px}.field-case-card{padding:18px}.field-case-card h2{font-size:25px}.field-sync-row{align-items:flex-start;flex-direction:column}.field-sync-row .field-btn{width:100%}.field-grid{grid-template-columns:1fr 1fr;gap:8px}.field-tool{padding:13px;min-height:116px}.field-tool i{font-size:20px;margin-bottom:9px}.field-tool strong{font-size:10px}.field-tool small{font-size:9px}.field-two{grid-template-columns:1fr}.field-panel{padding:15px}.field-list-row small{display:none}}

/* V5.3 Mobile Layout Hardening
   Forces the application content to use the full phone viewport.
   This intentionally overrides the desktop 252px sidebar layout on small screens. */
html,body{max-width:100%;overflow-x:hidden}
@media (max-width:991.98px){
  .app-layout{display:block!important;width:100%!important;min-width:0!important}
  .app-main{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;margin:0!important;padding:20px 14px 34px!important}
  .app-main>*{max-width:100%!important}
  .dashboard-hero{width:100%!important;max-width:none!important;margin-left:0!important;margin-right:0!important}
  .page-header{width:100%!important;max-width:none!important}
  .app-main .row{width:100%;max-width:100%;margin-left:0;margin-right:0}
  .app-main .row>*{min-width:0}
  .app-main .card,.app-main .panel{max-width:100%;min-width:0}
  .table-responsive{max-width:100%;overflow-x:auto}
}
@media (max-width:575.98px){
  .app-topbar{width:100%;max-width:100vw;padding:0 10px!important}
  .topbar-left,.topbar-right{min-width:0;gap:7px}
  .app-brand{min-width:0;gap:0}
  .app-brand-logo{width:215px;height:52px;max-width:55vw}
  .top-action{width:36px;height:36px;flex:0 0 36px}
  .user-chip{width:36px;height:36px;padding:0!important;justify-content:center;flex:0 0 36px}
  .user-avatar{width:27px;height:27px}
  .app-main{padding:15px 10px 28px!important}
  .dashboard-hero{padding:20px 16px!important;min-height:0!important}
  .dashboard-hero h1{font-size:27px!important;line-height:1.05}
  .dashboard-hero p{font-size:11px;line-height:1.5}
  .page-header h1,.page-header h2{font-size:26px!important;line-height:1.05}
  .page-header .btn{width:100%;margin-top:10px}
  .card.p-4,.panel{padding:16px!important}
  .app-main .row.g-4{--bs-gutter-y:1rem;--bs-gutter-x:0.75rem}
  .app-main .btn{max-width:100%}
  .form-control,.form-select{max-width:100%;font-size:16px!important}
}

/* V5.4 Mobile Portrait Spacing + Visibility
   Keeps the field app content immediately below the mobile top bar.
   The dashboard hero becomes compact on phones so useful controls appear without a long blank area. */
@media (max-width:575.98px){
  .app-main{padding:8px 10px 24px!important;background:linear-gradient(180deg,rgba(2,9,13,.62),rgba(2,9,13,.82))!important}
  .app-main>*:first-child{margin-top:0!important}
  .dashboard-hero{min-height:112px!important;height:auto!important;padding:14px 15px!important;margin:0 0 12px!important;background:linear-gradient(90deg,rgba(1,7,10,.97),rgba(3,15,20,.90))!important}
  .dashboard-hero .eyebrow-app{font-size:8px;letter-spacing:1.5px;margin-bottom:3px}
  .dashboard-hero h1{font-size:23px!important;line-height:1.05;margin:0 0 4px!important}
  .dashboard-hero p{font-size:10px!important;line-height:1.35!important;max-width:100%;margin:0!important;color:#aebfc1!important}
  .dashboard-date{display:none!important}
  .app-main .card,.app-main .panel{background:linear-gradient(145deg,rgba(8,24,31,.98),rgba(3,11,15,.99))!important}
  .app-main> .d-flex.justify-content-between,
  .app-main> .d-flex.justify-content-between.align-items-center{margin-top:0!important}
  .app-main>h2,.app-main>.d-flex>h2{margin-top:0!important}
  .page-header{margin-top:0!important}
}

/* Investigation list quick-status control */
.investigation-status-form{min-width:132px;margin:0}
.investigation-status-select{min-height:36px!important;padding-top:6px!important;padding-bottom:6px!important;font-size:11px!important;font-weight:700!important;color:#dce7e7!important;background:rgba(1,8,12,.92)!important;border-color:rgba(105,255,57,.28)!important;border-radius:8px!important}
.investigation-status-select:focus{border-color:rgba(105,255,57,.65)!important;box-shadow:0 0 0 3px rgba(105,255,57,.07)!important}
.status-text{display:inline-flex;align-items:center;min-height:36px;padding:7px 10px;border:1px solid rgba(31,216,255,.16);border-radius:8px;color:#9bb0b3;font-size:10px;font-weight:700;letter-spacing:.5px}
@media(max-width:850px){
  .investigation-status-form{min-width:122px}
  .investigation-status-select{width:100%;font-size:12px!important}
}

/* V5.8 Team Member Photos */
.member-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;max-width:1400px;margin:0 auto}
.member-card{display:flex;align-items:center;gap:13px;padding:14px;border:1px solid rgba(105,255,57,.16);border-radius:13px;background:linear-gradient(145deg,rgba(8,24,31,.98),rgba(3,11,15,.99));color:var(--gh-text);text-decoration:none;min-width:0;transition:.18s}
.member-card:hover{border-color:rgba(105,255,57,.55);transform:translateY(-1px);box-shadow:0 12px 28px rgba(0,0,0,.25);color:#fff}
.member-card-photo{width:58px;height:58px;flex:0 0 58px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:radial-gradient(circle,#15343c,#03090d);border:1px solid rgba(105,255,57,.35);color:var(--gh-green);font-size:34px}
.member-card-photo img,.member-profile-photo img,.member-photo-preview img{width:100%;height:100%;object-fit:cover;display:block}
.member-card-info{min-width:0;display:flex;flex-direction:column;gap:3px}
.member-card-info strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.member-card-info span{font-size:10px;color:#8ba0a4;text-transform:uppercase;letter-spacing:.6px}
.member-card-info small{font-size:9px;color:#71858a}
.member-card-arrow{margin-left:auto;color:#60757a}
.member-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:50px;text-align:center}.member-empty i{font-size:40px;color:var(--gh-green)}.member-empty span{color:#71868a;font-size:12px}
.member-photo-upload{display:flex;align-items:center;gap:18px;padding:0 0 18px;margin-bottom:18px;border-bottom:1px solid rgba(105,255,57,.13)}
.member-photo-preview{width:88px;height:88px;flex:0 0 88px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:radial-gradient(circle,#15343c,#03090d);border:2px solid rgba(105,255,57,.38);color:var(--gh-green);font-size:46px}.member-photo-fields{flex:1}.member-photo-fields label{display:block}.member-photo-fields small{display:block;color:#71868a;font-size:10px;margin-top:6px}
.member-profile{max-width:1000px}.member-profile-head{display:flex;align-items:center;gap:18px;padding-bottom:18px;border-bottom:1px solid rgba(105,255,57,.13)}.member-profile-photo{width:100px;height:100px;flex:0 0 100px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:radial-gradient(circle,#15343c,#03090d);border:2px solid rgba(105,255,57,.42);color:var(--gh-green);font-size:52px}.member-profile-head h3{margin:0 0 4px;font-size:22px}.member-profile-head div{color:#8aa0a4;font-size:11px;text-transform:uppercase;letter-spacing:.8px}.member-profile-head span{display:block;margin-top:8px;font-size:10px}
@media(max-width:575.98px){
 .member-grid{grid-template-columns:1fr;gap:9px}
 .member-card{padding:11px}
 .member-card-photo{width:50px;height:50px;flex-basis:50px;font-size:28px}
 .member-photo-upload{align-items:flex-start;gap:12px}
 .member-photo-preview{width:72px;height:72px;flex-basis:72px;font-size:38px}
 .member-profile{padding:15px!important}
 .member-profile-head{gap:13px}
 .member-profile-photo{width:76px;height:76px;flex-basis:76px;font-size:40px}
 .member-profile-head h3{font-size:18px}
}
/* V5.8 Mobile shell: prevent the offcanvas sidebar from occupying document space.
   The desktop .sidebar rule sets position:relative after Bootstrap's offcanvas CSS,
   which can otherwise create a large blank area above/before page content. */
@media(max-width:991.98px){
 .sidebar.offcanvas-lg{position:fixed!important;top:0!important;bottom:0!important;left:0!important;width:280px!important;max-width:88vw!important;height:100vh!important;z-index:1045!important;visibility:hidden!important;transform:translateX(-100%)!important}
 .sidebar.offcanvas-lg.show{visibility:visible!important;transform:none!important}
 .app-layout{display:block!important}
 .app-main{position:relative!important;z-index:1!important}
}
@media(max-width:575.98px){
 .app-main{padding-top:6px!important}
 .app-main>h2:first-child,.app-main>.page-header:first-child{margin-top:0!important}
}
/* V6.0 Team portal branding + investigation PDF */
.dashboard-team-logo{width:58px;height:58px;object-fit:contain;border-radius:12px;margin-left:10px;vertical-align:middle;border:1px solid rgba(105,255,57,.35);background:rgba(2,10,14,.8);padding:5px;box-shadow:0 0 22px rgba(105,255,57,.10)}
.team-logo-upload-preview{width:140px;height:140px;border-radius:18px;border:1px solid rgba(105,255,57,.25);background:radial-gradient(circle,#15343c,#03090d);display:grid;place-items:center;margin-bottom:16px;overflow:hidden;color:var(--gh-green);font-size:50px}.team-logo-upload-preview img{width:100%;height:100%;object-fit:contain;padding:10px}
@media(max-width:575.98px){.dashboard-team-logo{width:44px;height:44px;margin-left:5px;border-radius:9px}.team-logo-upload-preview{width:110px;height:110px}}
