:root{--gold:#f3c300;--gold2:#ffd84a;--char:#202426;--char2:#2a2e30;--ink:#2b3032;--muted:#737a7d;--paper:#fff;--line:#e4ddc5;--bg:#f2efe6;--green:#1f7a4f;--red:#b42318;--orange:#9a6500;--blue:#315e89}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"Dubai","Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--ink)}a{color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}label{display:block;font-size:11px;font-weight:900;color:#606669;margin-bottom:5px}input,select,textarea{width:100%;padding:10px 11px;border:1px solid #cec6aa;border-radius:8px;background:#fff;color:#222729}textarea{min-height:88px;resize:vertical}input[readonly]{background:#f5f3ed;color:#666}.primary,.success{border:0;border-radius:8px;padding:10px 14px;font-weight:900;margin-top:12px}.primary{background:var(--gold);color:#17191b}.success{background:var(--green);color:#fff}.smallbtn{display:inline-block;text-decoration:none;background:#fff3ba;border:1px solid #e0ca6a;border-radius:7px;padding:6px 8px;font-size:10px;font-weight:900}.muted{color:var(--muted);font-size:11px}.env-note{background:#fff1aa;color:#6b5300;padding:5px 8px;border-radius:7px;font-size:9px;font-weight:900}
/* login */.login-body{background:#171a1c}.login-layout{display:grid;grid-template-columns:1.15fr .85fr;min-height:100vh}.login-hero{padding:72px;display:flex;flex-direction:column;justify-content:center;background:radial-gradient(circle at 85% 20%,#f3c30033,transparent 27%),linear-gradient(135deg,#15181a,#292d30);color:#fff}.portal-kicker{align-self:flex-start;border:1px solid #f3c30066;background:#f3c30012;color:#ffe786;padding:7px 10px;border-radius:999px;font-weight:900;font-size:11px;letter-spacing:.8px}.login-hero h1{font-size:56px;line-height:1.02;margin:18px 0 14px;letter-spacing:-1.5px}.login-hero>p{font-size:18px;line-height:1.55;color:#dfe2df;max-width:720px}.login-flow{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:24px 0 19px}.login-flow span{background:#ffffff10;border:1px solid #ffffff20;padding:7px 9px;border-radius:8px;font-size:10px;font-weight:900}.login-flow i{font-style:normal;color:var(--gold);font-weight:900}.login-benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;max-width:800px}.login-benefits div{background:#ffffff0f;border:1px solid #ffffff1c;border-radius:12px;padding:14px}.login-benefits b{display:block;font-size:12px}.login-benefits small{display:block;color:#cfd3d0;font-size:10px;line-height:1.45;margin-top:4px}.login-side{display:grid;place-items:center;padding:38px;background:#f5f2e9;position:relative}.login-card{width:min(460px,100%);background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;box-shadow:0 24px 70px #0002}.brand{display:flex;align-items:center;gap:10px}.brandmark{width:42px;height:42px;border-radius:11px;background:var(--gold);display:grid;place-items:center;color:#17191b;font-weight:1000}.brand small{display:block;color:#8a8f91;font-size:10px}.login-card h2{font-size:27px;margin:22px 0 4px}.login-sub{margin:0 0 18px;color:var(--muted);font-size:12px}.login-card input{margin-bottom:13px}.login-primary{width:100%;padding:12px}.login-help{margin-top:15px;background:#f7f4e9;border:1px solid #e6dfc7;padding:11px;border-radius:9px;color:#62686a;font-size:10px;line-height:1.45}.login-footer{position:absolute;bottom:18px;text-align:center;font-size:9px;color:#8a8d8e}.error,.flash-error{background:#ffe5e1!important;color:#9e2d23!important;border-color:#efc3bd!important}
/* shell */.topbar{position:sticky;top:0;z-index:50;background:var(--char);color:#fff;border-bottom:4px solid var(--gold);padding:10px 16px;display:flex;align-items:center;justify-content:space-between;gap:15px}.topbar .brand b{font-size:13px}.topbar .brand small{color:#cdd1d2}.userbar{display:flex;align-items:center;gap:10px;font-size:11px}.userbar .role{background:var(--gold);color:#17191b;padding:5px 8px;border-radius:999px;font-weight:900}.userbar a{color:#fff;text-decoration:none;border:1px solid #ffffff38;padding:6px 8px;border-radius:7px}.shell{display:grid;grid-template-columns:225px 1fr;min-height:calc(100vh - 62px)}.sidebar{background:var(--char2);padding:14px 10px}.sidebar a{display:block;color:#eee;text-decoration:none;padding:10px 11px;border-radius:8px;font-size:11px;font-weight:800;margin-bottom:4px}.sidebar a:hover{background:var(--gold);color:#17191b}.main{padding:18px 20px 38px;overflow:hidden}.alerts{display:flex;gap:7px;overflow:auto;margin-bottom:13px}.alert{white-space:nowrap;background:#fff2b6;color:#715900;border:1px solid #e5d179;padding:6px 10px;border-radius:999px;font-size:10px;font-weight:900}.alert.red{background:#ffe5e1;color:#9f2e24;border-color:#ecc1ba}.alert.green{background:#e6f4eb;color:#1f6945;border-color:#bfdfca}.flash{background:#e5f4eb;color:#1d6b45;border:1px solid #c3e0cd;padding:10px 12px;border-radius:8px;margin-bottom:12px;font-weight:800;font-size:11px}.section{scroll-margin-top:78px;margin-bottom:19px}.card,.section.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:17px}.head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}.head h1,.head h2{margin:0}.head p{margin:4px 0;color:var(--muted);font-size:12px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.kpi{background:#fff;border:1px solid var(--line);border-left:5px solid var(--gold);border-radius:12px;padding:14px}.kpi small{display:block;color:#767c7e;font-weight:900;font-size:9px;text-transform:uppercase}.kpi b{display:block;font-size:28px;margin-top:2px}.kpi span{color:#7b8082;font-size:9px}.formgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}.formgrid .full{grid-column:1/-1}.mapnumbers{display:none}.map-hint{font-size:10px;color:#9e2d23;margin-top:5px}.map-hint.ok{color:#1f6945}.searchbox{max-width:360px}
/* map */.fake-map{height:225px;position:relative;border:1px solid #d6ceb1;border-radius:10px;background:linear-gradient(90deg,#00000008 1px,transparent 1px),linear-gradient(#00000008 1px,transparent 1px),linear-gradient(135deg,#f5f1df,#fff);background-size:28px 28px,28px 28px,auto;overflow:hidden}.fake-map:before,.fake-map:after{content:"";position:absolute;left:8%;right:8%;height:20px;background:#44494c;border-radius:4px}.fake-map:before{top:40%;transform:rotate(-5deg)}.fake-map:after{top:64%;transform:rotate(4deg)}.fake-map span{position:absolute;left:12px;top:10px;font-size:9px;font-weight:900;color:#646a6c;z-index:2}.fake-map i{position:absolute;width:22px;height:22px;border-radius:50% 50% 50% 0;background:#d52a20;transform:rotate(-45deg);margin:-22px 0 0 -11px;z-index:5}.fake-map i:after{content:"";position:absolute;width:7px;height:7px;border-radius:50%;background:#fff;left:7px;top:7px}.fake-map .afterpin{background:var(--green)}.picker{cursor:crosshair}.readonlymap{cursor:default}.hidden-pin{display:none}
/* queues */.queue-grid{display:grid;grid-template-columns:320px 1fr;gap:13px}.queue-list{background:#fff;border:1px solid var(--line);border-radius:13px;padding:11px;max-height:700px;overflow:auto}.queue-list h3{margin:3px 4px 10px;font-size:14px}.queue-item{display:block;text-decoration:none;border:1px solid #ece5cf;border-radius:9px;padding:10px;margin-bottom:7px;background:#fff}.queue-item:hover,.queue-item.selected{border-color:#d7b900;background:#fff8d3}.queue-item b,.queue-item span,.queue-item small{display:block}.queue-item b{font-size:10px}.queue-item span{font-size:10px;margin-top:3px}.queue-item small{font-size:9px;color:#74797b;margin-top:3px}.queue-detail h3{margin-top:0}.readonly-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:12px}.readonly-grid.six{grid-template-columns:repeat(2,1fr)}.readonly-grid div{background:#f6f3e9;border:1px solid #e9e2ce;border-radius:8px;padding:9px}.readonly-grid b{display:block;font-size:9px;color:#777b7d;text-transform:uppercase}.readonly-grid span{display:block;font-size:11px;margin-top:3px;word-break:break-word}.evidence-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.evidence-row img,.evidence-three img{width:100%;height:200px;object-fit:cover;border-radius:9px;border:1px solid #ddd5bd}.evidence-three{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0}.evidence-three>div{background:#faf8f1;border:1px solid #e6dfc9;border-radius:10px;padding:9px}.evidence-three label{font-size:10px}.evidence-three small{display:block;color:#777;font-size:9px;margin-top:4px}.missing{height:160px;border:1px dashed #cfc5a7;background:#fbf8ee;border-radius:9px;display:grid;place-items:center;text-align:center;padding:15px;color:#777;font-size:10px}.evidence-history{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.evidence-history article{border:1px solid #e6dfc8;border-radius:11px;padding:10px;background:#faf8f1}.evidence-history img{width:100%;height:180px;object-fit:cover;border-radius:8px}.evidence-stage{font-size:10px;font-weight:900;color:#6f5700;margin-bottom:7px}.evidence-history b,.evidence-history small{display:block}.evidence-history b{font-size:10px;margin-top:6px}.evidence-history small{font-size:9px;color:#777}.evidence-history p{font-size:9px;color:#666}.current-owner{background:#fff4c2;border-left:5px solid var(--gold);padding:10px 12px;border-radius:8px;margin-bottom:10px;font-size:11px}
/* tables */.tablewrap{overflow:auto;border:1px solid #ded8c1;border-radius:11px;background:#fff}table{width:100%;border-collapse:collapse;min-width:920px}thead th{background:#2b2f31;color:#fff;border-bottom:4px solid var(--gold);padding:9px;font-size:9px;text-align:left;white-space:nowrap}tbody td{padding:9px;border-bottom:1px solid #eee9d8;font-size:10.5px;vertical-align:top}tbody tr:nth-child(even){background:#faf8f1}td small{display:block;color:#777}.status{display:inline-block;padding:4px 7px;border-radius:999px;font-weight:900;font-size:9px}.status.red,.mapdot.red{background:#ffe3df;color:#a12d22}.status.gold,.mapdot.gold{background:#fff1b0;color:#725a00}.status.green,.mapdot.green{background:#e2f3e8;color:#1d6b44}.status.gray,.mapdot.gray{background:#eee;color:#555}
/* tracker */.tracker{display:flex;overflow:auto;background:#fff;border:1px solid #e0d9c2;border-radius:12px;padding:15px;margin-bottom:13px}.tstep{min-width:145px;text-align:center;position:relative}.tstep:not(:last-child):before{content:"";position:absolute;top:17px;left:62%;width:76%;height:4px;background:#d7d1bd}.tstep.done:not(:last-child):before{background:var(--green)}.tstep i{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;margin:auto;background:#ccc7b8;color:#fff;font-style:normal;font-weight:900;position:relative;z-index:2}.tstep.done i{background:var(--green)}.tstep.current i{background:var(--gold);color:#17191b;box-shadow:0 0 0 5px #f3c30033}.tstep b{display:block;font-size:10px;margin-top:6px}.tstep small{font-size:8px;color:#856900}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.audit{border-left:3px solid #d8d1b9;padding-left:14px}.audit>div{padding:0 0 13px 7px;position:relative}.audit>div:before{content:"";position:absolute;width:9px;height:9px;border-radius:50%;background:var(--gold);left:-20px;top:3px}.audit b{font-size:10px}.audit span{display:block;color:#6e7476;font-size:9px;margin-top:2px}.audit p{font-size:10px;margin:3px 0}
/* management */.management-map{height:300px;position:relative;border:1px solid #d7cfb4;border-radius:12px;background:linear-gradient(90deg,#00000008 1px,transparent 1px),linear-gradient(#00000008 1px,transparent 1px),linear-gradient(135deg,#f5f1df,#fff);background-size:28px 28px,28px 28px,auto;overflow:hidden;margin:13px 0}.management-map .runway{position:absolute;left:8%;right:8%;height:21px;background:#44494b;border-radius:4px}.management-map .r1{top:42%;transform:rotate(-5deg)}.management-map .r2{top:64%;transform:rotate(4deg)}.management-map .zone{position:absolute;background:#d9d6cc;border:2px solid #aaa69a;border-radius:8px;padding:16px;font-size:9px;font-weight:900}.management-map .z1{left:8%;top:12%}.management-map .z2{right:9%;top:15%}.mapdot{position:absolute;width:16px;height:16px;border-radius:50%;border:3px solid #fff;box-shadow:0 2px 7px #0004;z-index:4}
/* admin */.admin-main{max-width:1320px;margin:auto;padding:22px}.checkline input{width:auto;margin-right:6px}.security-box{margin-top:13px;background:#fff4c7;border:1px solid #ead77f;padding:12px;border-radius:9px;font-size:10px}
@media(max-width:1050px){.login-layout{grid-template-columns:1fr}.login-hero{padding:40px 26px}.login-hero h1{font-size:41px}.login-benefits{grid-template-columns:1fr}.login-footer{position:static;margin-top:15px}.shell{grid-template-columns:1fr}.sidebar{display:flex;overflow:auto;padding:7px}.sidebar a{white-space:nowrap;margin:0}.kpis,.formgrid,.grid2,.queue-grid,.evidence-three,.evidence-history,.readonly-grid,.readonly-grid.six,.evidence-row{grid-template-columns:1fr}.formgrid .full{grid-column:auto}.queue-list{max-height:300px}.userbar span:not(.role){display:none}}


/* realistic zoomable airfield map v4.1 */
.fake-map,.management-map{height:330px;position:relative;overflow:hidden;background:#eef1e6!important;border:1px solid #cfc8ad;border-radius:12px;isolation:isolate}
.management-map{height:370px}
.fake-map:before,.fake-map:after{display:none!important}
.airfield-layer{position:absolute;inset:0;transform:scale(1);transform-origin:50% 50%;transition:transform .2s ease;z-index:1}
.airfield-layer svg{display:block;width:100%;height:100%;pointer-events:none}
.airfield-layer .map-label{font-family:"Dubai","Segoe UI",Arial,sans-serif;font-size:11px;font-weight:800;fill:#444b4d;letter-spacing:.3px}
.airfield-layer .map-label.minor{font-size:9px;fill:#666d6e}
.airfield-layer .road-label{fill:#8a6500;font-size:9px}
.airfield-layer .runway-label{font-family:"Dubai","Segoe UI",Arial,sans-serif;font-size:11px;font-weight:900;fill:#fff;letter-spacing:1px}
.airfield-layer .taxi-label{font-family:"Dubai","Segoe UI",Arial,sans-serif;font-size:10px;font-weight:900;fill:#5b4a12}
.airfield-layer .cross-label{font-family:"Dubai","Segoe UI",Arial,sans-serif;font-size:7px;font-weight:900;fill:#4b3900}
.airfield-layer .legend-label{font-family:"Dubai","Segoe UI",Arial,sans-serif;font-size:9px;font-weight:800;fill:#454b4d}
.map-controls{position:absolute;right:10px;top:10px;z-index:20;display:flex;align-items:center;gap:4px;background:#fffffff2;border:1px solid #cfc7aa;border-radius:9px;padding:4px;box-shadow:0 3px 12px #0002}
.map-controls button{width:30px;height:28px;border:1px solid #d6cfb6;border-radius:6px;background:#fff;color:#252a2c;font-weight:1000;font-size:16px;line-height:1;cursor:pointer;padding:0}
.map-controls button:hover{background:#f3c300;border-color:#cda600}
.map-controls span{position:static!important;min-width:44px;text-align:center;font-size:9px!important;color:#4d5355!important;font-weight:900!important}
.map-caption{position:absolute;left:10px;top:10px;z-index:12;background:#ffffffeb;border:1px solid #d6cfb6;border-radius:7px;padding:5px 8px;color:#53595b;font-size:9px;font-weight:900;pointer-events:none;max-width:55%}
.airfield-layer>i,.airfield-layer>a.mapdot{z-index:9}
.airfield-layer>a.mapdot{pointer-events:auto}
.picker .airfield-layer svg{cursor:crosshair}
@media(max-width:800px){.fake-map,.management-map{height:280px}.map-caption{max-width:48%;font-size:8px}.map-controls{right:6px;top:6px}}

/* v4.2 shared fault history + quick find */
.fault-tools{display:grid;grid-template-columns:minmax(320px,1fr) 230px 200px;gap:10px;margin:0 0 12px}.fault-tools select{min-height:39px}.desc-cell{min-width:280px;max-width:420px}.map-headline{margin-top:16px}.shared-fault-map{margin-top:4px}.mapdot.gray{background:#7a7f81}.mapdot.red{background:#c9362b}.mapdot.gold{background:#f3c300}.mapdot.green{background:#1f7a4f}.shared-fault-map .mapdot{z-index:7}.training-badge{font-size:9px;background:#fff2aa;color:#6a5300;padding:4px 7px;border-radius:999px;font-weight:900}@media(max-width:950px){.fault-tools{grid-template-columns:1fr}.desc-cell{min-width:220px}}


/* =========================================================
   v4.3 MOBILE + PROFESSIONAL PRESENTATION OVERRIDES
   Workflow/data logic unchanged.
   ========================================================= */

html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
body{
  overflow-x:hidden;
}
.login-body{
  min-height:100svh;
  background:#171a1c;
}
.login-layout{
  min-height:100svh;
  grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr);
}
.login-hero{
  min-width:0;
  padding:clamp(42px,6vw,84px);
  background:
    radial-gradient(circle at 75% 15%,rgba(243,195,0,.12),transparent 30%),
    linear-gradient(145deg,#121517 0%,#1c2022 55%,#232729 100%);
}
.login-hero-inner{
  width:min(760px,100%);
  margin:auto;
}
.environment-pill{
  display:inline-flex;
  align-items:center;
  gap:7px;
  background:#f3c300;
  color:#17191b;
  padding:7px 12px;
  border-radius:999px;
  font-size:11px;
  letter-spacing:.55px;
  font-weight:900;
  margin-bottom:28px;
}
.login-brand-mobile{
  display:none;
}
.login-hero h1{
  margin:0;
  font-size:clamp(48px,5.1vw,76px);
  line-height:.98;
  letter-spacing:-2.2px;
  max-width:720px;
}
.hero-lead{
  margin:24px 0 0;
  max-width:650px;
  color:#d5d9da!important;
  font-size:clamp(17px,1.45vw,21px)!important;
  line-height:1.5;
}
.hero-statement{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:30px 0 24px;
  color:#fff;
}
.hero-statement .quote-mark{
  color:#f3c300;
  font-family:Georgia,serif;
  font-size:46px;
  line-height:.75;
}
.hero-statement strong{
  font-size:clamp(19px,1.7vw,25px);
  line-height:1.25;
  letter-spacing:-.3px;
}
.hero-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:22px;
}
.hero-grid div{
  min-width:0;
  min-height:128px;
  padding:18px;
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.11);
  border-radius:14px;
}
.hero-grid b{
  display:block;
  color:#fff;
  font-size:17px;
  margin-bottom:8px;
}
.hero-grid span{
  display:block;
  color:#c8cdcf;
  line-height:1.45;
  font-size:12px;
}
.hero-footer-line{
  margin-top:28px;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.1);
  color:#9fa7aa;
  font-size:12px;
}
.login-side{
  min-width:0;
  background:
    radial-gradient(circle at 65% 12%,rgba(243,195,0,.11),transparent 22%),
    #f3f0e7;
  padding:clamp(28px,5vw,68px);
  align-content:center;
  justify-items:center;
}
.login-card{
  width:min(440px,100%);
  padding:30px;
  border-radius:22px;
  box-shadow:0 28px 70px rgba(25,26,20,.16);
  border:1px solid rgba(213,204,173,.7);
}
.login-card .brand{
  padding-bottom:20px;
  border-bottom:1px solid #ece6d4;
}
.login-card .brand b{
  font-size:15px;
}
.login-card .brand small{
  margin-top:2px;
}
.signin-heading{
  margin:24px 0 18px;
}
.signin-heading h2{
  margin:0 0 5px;
  font-size:28px;
  letter-spacing:-.5px;
}
.signin-heading p{
  margin:0;
  color:#777d7f;
  font-size:12px;
}
.login-card label{
  margin-top:13px;
}
.login-card input{
  min-height:48px;
  margin:0 0 5px;
  border-color:#d7cfb4;
  font-size:16px; /* prevents iOS zoom */
}
.login-submit{
  width:100%;
  min-height:48px;
  margin-top:18px;
  font-size:13px;
}
.login-security{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin-top:22px;
  padding:12px;
  border-radius:11px;
  background:#f7f4e8;
  border:1px solid #e5dec6;
}
.security-icon{
  width:25px;
  height:25px;
  flex:0 0 25px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#e6f4eb;
  color:#1f7148;
  font-weight:900;
}
.login-security b{
  display:block;
  font-size:11px;
}
.login-security small{
  display:block;
  margin-top:2px;
  color:#747a7c;
  line-height:1.4;
  font-size:9.5px;
}
.login-support{
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin-top:17px;
  color:#7a7e7f;
  font-size:10px;
}
.login-support b{
  color:#353a3c;
}
.login-side-footer{
  width:min(440px,100%);
  margin-top:14px;
  text-align:center;
  color:#898c8b;
  font-size:9.5px;
}

/* General application mobile hardening */
.topbar{
  padding-left:max(12px,env(safe-area-inset-left));
  padding-right:max(12px,env(safe-area-inset-right));
}
.main{
  min-width:0;
}
.card,.section.card,.tablewrap,.tracker,.overview-map,.fake-map{
  max-width:100%;
}
img{
  max-width:100%;
}
input,select,textarea,button{
  max-width:100%;
}
.tablewrap{
  -webkit-overflow-scrolling:touch;
}
.tracker{
  -webkit-overflow-scrolling:touch;
}
.alerts{
  -webkit-overflow-scrolling:touch;
}
.photos img,.placeholder{
  min-width:0;
}

/* Tablet */
@media (max-width:1100px){
  .login-layout{
    grid-template-columns:1fr 440px;
  }
  .login-hero{
    padding:45px 34px;
  }
  .hero-grid{
    grid-template-columns:1fr;
  }
  .hero-grid div{
    min-height:auto;
  }
}

/* Phones */
@media (max-width:760px){
  .login-layout{
    display:flex;
    flex-direction:column;
    min-height:100svh;
  }
  .login-hero{
    order:1;
    padding:
      calc(26px + env(safe-area-inset-top))
      20px
      28px;
  }
  .login-hero-inner{
    width:100%;
  }
  .environment-pill{
    margin-bottom:18px;
    font-size:9px;
    padding:6px 9px;
  }
  .login-brand-mobile{
    display:flex;
    align-items:center;
    gap:9px;
    color:#fff;
    margin-bottom:23px;
    font-size:12px;
    font-weight:800;
  }
  .login-brand-mobile .brandmark{
    width:34px;
    height:34px;
    border-radius:9px;
    font-size:13px;
  }
  .login-hero h1{
    font-size:clamp(42px,13vw,58px);
    line-height:1;
    letter-spacing:-1.8px;
  }
  .hero-lead{
    margin-top:18px;
    font-size:15px!important;
    line-height:1.48;
  }
  .hero-statement{
    margin:22px 0 17px;
  }
  .hero-statement .quote-mark{
    font-size:38px;
  }
  .hero-statement strong{
    font-size:18px;
  }
  .hero-grid{
    grid-template-columns:1fr;
    gap:8px;
    margin-top:16px;
  }
  .hero-grid div{
    padding:13px 14px;
    min-height:0;
    border-radius:11px;
  }
  .hero-grid b{
    font-size:14px;
    margin-bottom:3px;
  }
  .hero-grid span{
    font-size:11px;
  }
  .hero-footer-line{
    margin-top:17px;
    padding-top:14px;
    font-size:10px;
  }
  .login-side{
    order:2;
    display:block;
    width:100%;
    padding:24px 16px calc(28px + env(safe-area-inset-bottom));
  }
  .login-card{
    width:100%;
    max-width:none;
    padding:22px 18px;
    border-radius:17px;
    box-shadow:0 14px 38px rgba(25,26,20,.12);
  }
  .login-card .brand{
    padding-bottom:15px;
  }
  .signin-heading{
    margin:19px 0 15px;
  }
  .signin-heading h2{
    font-size:25px;
  }
  .login-card input{
    width:100%;
    min-height:48px;
    font-size:16px;
  }
  .login-submit{
    min-height:50px;
  }
  .login-support{
    flex-direction:column;
    gap:2px;
  }
  .login-side-footer{
    width:100%;
    margin-top:12px;
  }

  /* app shell on mobile */
  .topbar{
    min-height:60px;
    gap:8px;
    padding-top:max(8px,env(safe-area-inset-top));
  }
  .topbar .brand b{
    font-size:12px;
  }
  .topbar .brand small{
    font-size:8px;
  }
  .userbar{
    gap:6px;
  }
  .userbar > span:not(.role){
    display:none;
  }
  .shell{
    grid-template-columns:1fr!important;
  }
  .sidebar{
    position:sticky;
    top:60px;
    z-index:15;
    display:flex!important;
    gap:6px;
    width:100%;
    overflow-x:auto;
    padding:8px 10px;
    background:#2a2e30;
    border-bottom:1px solid #383d3f;
    -webkit-overflow-scrolling:touch;
  }
  .sidebar a{
    flex:0 0 auto;
    white-space:nowrap;
    margin:0!important;
    padding:9px 11px!important;
    font-size:10px!important;
  }
  .main{
    padding:12px 10px 28px;
  }
  .alerts{
    margin-left:-2px;
    margin-right:-2px;
  }
  .alert{
    font-size:9px;
    padding:6px 9px;
  }
  .head{
    flex-direction:column;
    gap:6px;
  }
  .head h1{
    font-size:24px;
  }
  .head h2{
    font-size:21px;
  }
  .kpis{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px;
  }
  .kpi{
    min-width:0;
    padding:12px;
  }
  .kpi b{
    font-size:23px;
  }
  .formgrid,.grid2,.photos{
    grid-template-columns:1fr!important;
  }
  .formgrid .full{
    grid-column:auto!important;
  }
  .section,.section.card,.card{
    border-radius:12px;
  }
  .section.card,.card{
    padding:13px;
  }
  input,select,textarea{
    font-size:16px;
  }
  textarea{
    min-height:95px;
  }
  .fake-map{
    height:260px;
  }
  .overview-map{
    height:300px;
  }
  .tablewrap{
    border-radius:10px;
  }
  table{
    min-width:860px;
  }
  thead th{
    position:sticky;
    top:0;
    z-index:2;
  }
  .tracker{
    margin-left:0;
    margin-right:0;
    padding:13px 8px;
  }
  .tstep{
    min-width:125px;
  }
  .photos img,.placeholder{
    height:190px;
  }
}

/* Extra-small phones */
@media (max-width:390px){
  .login-hero{
    padding-left:16px;
    padding-right:16px;
  }
  .login-hero h1{
    font-size:40px;
  }
  .hero-statement strong{
    font-size:16px;
  }
  .login-side{
    padding-left:12px;
    padding-right:12px;
  }
  .login-card{
    padding:19px 15px;
  }
  .kpis{
    grid-template-columns:1fr!important;
  }
}


/* =========================================================
   v4.4 LOGIN RELIABILITY + DUBAI TYPOGRAPHY
   ========================================================= */
html,body,button,input,select,textarea,table{
  font-family:"Dubai","Segoe UI",Arial,sans-serif!important;
}
.login-card{
  border:1px solid rgba(211,202,169,.82);
}
.login-card .brandmark,.login-brand-mobile .brandmark{
  box-shadow:0 8px 18px rgba(243,195,0,.18);
}
.login-form label{
  letter-spacing:.1px;
}
.password-field-wrap{
  position:relative;
  width:100%;
}
.password-field-wrap input{
  padding-right:52px!important;
  margin-bottom:5px!important;
}
.password-toggle{
  position:absolute;
  right:6px;
  top:50%;
  transform:translateY(-50%);
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  border-radius:9px;
  background:transparent;
  color:#545b5e;
  cursor:pointer;
}
.password-toggle:hover,
.password-toggle:focus-visible{
  background:#f3f0e5;
  color:#171a1c;
  outline:none;
}
.password-toggle svg{
  width:21px;
  height:21px;
}
.password-toggle .eye-closed{display:none}
.password-toggle.showing .eye-open{display:none}
.password-toggle.showing .eye-closed{display:block}
.login-submit{
  letter-spacing:.15px;
  box-shadow:0 9px 20px rgba(243,195,0,.16);
}
.error{
  border:1px solid #f1c7c1;
  font-weight:700;
}
.signin-heading h2{
  font-weight:700;
}
.hero-statement strong{
  font-weight:700;
}
.login-security{
  align-items:center;
}
.login-security .security-icon{
  line-height:1;
}
@media(max-width:760px){
  .password-toggle{width:42px;height:42px;right:4px}
  .login-card{border-radius:18px}
  .signin-heading h2{font-size:27px}
}


/* =========================================================
   v4.5 PASSWORD FIELD / EYE CONTROL
   Visual-only update. Workflow and database logic unchanged.
   ========================================================= */
.password-field-wrap{
  position:relative!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 50px!important;
  align-items:stretch!important;
  width:100%!important;
  min-height:50px!important;
  margin:0 0 5px!important;
  border:1px solid #d7cfb4!important;
  border-radius:10px!important;
  overflow:hidden!important;
  background:#fff!important;
  transition:border-color .18s ease, box-shadow .18s ease!important;
}
.password-field-wrap:focus-within{
  border-color:#272b2d!important;
  box-shadow:0 0 0 3px rgba(243,195,0,.14)!important;
}
.password-field-wrap input{
  position:static!important;
  width:100%!important;
  min-width:0!important;
  height:48px!important;
  min-height:48px!important;
  padding:11px 12px!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  outline:0!important;
  box-shadow:none!important;
  background:#fff!important;
}
.password-toggle{
  position:static!important;
  transform:none!important;
  top:auto!important;
  right:auto!important;
  width:50px!important;
  height:48px!important;
  min-width:50px!important;
  min-height:48px!important;
  margin:0!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
  align-self:stretch!important;
  border:0!important;
  border-left:1px solid #ece6d4!important;
  border-radius:0!important;
  background:#fbfaf5!important;
  color:#3d4447!important;
  cursor:pointer!important;
  appearance:none!important;
  -webkit-appearance:none!important;
}
.password-toggle:hover,
.password-toggle:focus-visible{
  background:#f3c300!important;
  color:#17191b!important;
  outline:0!important;
}
.password-toggle svg{
  display:block!important;
  width:24px!important;
  height:24px!important;
  pointer-events:none!important;
}
.password-toggle .eye-closed{display:none!important}
.password-toggle.showing .eye-open{display:none!important}
.password-toggle.showing .eye-closed{display:block!important}

@media(max-width:760px){
  .password-field-wrap{
    grid-template-columns:minmax(0,1fr) 52px!important;
    min-height:52px!important;
  }
  .password-field-wrap input{
    height:50px!important;
    min-height:50px!important;
    font-size:16px!important;
  }
  .password-toggle{
    width:52px!important;
    min-width:52px!important;
    height:50px!important;
    min-height:50px!important;
  }
  .password-toggle svg{
    width:25px!important;
    height:25px!important;
  }
}


/* ==========================================================
   V4.6 PROFESSIONAL OPERATIONS UI
   Unique stylesheet prevents stale / renamed assets conflicts.
   ========================================================== */

:root{
  --af-gold:#f3c300;
  --af-gold-deep:#b58c00;
  --af-ink:#202528;
  --af-dark:#1d2225;
  --af-dark-2:#282e31;
  --af-paper:#ffffff;
  --af-bg:#f3f1e9;
  --af-border:#e2dcc7;
  --af-muted:#737a7d;
  --af-green:#1f7a4f;
  --af-red:#bb352b;
  --af-shadow:0 8px 28px rgba(41,39,27,.065);
}

/* Stable page geometry */
html,body{
  margin:0;
  min-height:100%;
  background:var(--af-bg);
  color:var(--af-ink);
  font-family:"Dubai","Segoe UI",Arial,sans-serif!important;
  overflow-x:hidden;
}
body:not(.login-body){
  min-height:100vh;
}

/* TOP BAR */
.topbar{
  position:sticky!important;
  top:0!important;
  z-index:100!important;
  min-height:64px!important;
  padding:9px 18px!important;
  background:linear-gradient(135deg,#171b1d,#242a2d)!important;
  border-bottom:3px solid var(--af-gold)!important;
  box-shadow:0 4px 16px rgba(0,0,0,.12)!important;
}
.topbar .brand{
  gap:11px!important;
}
.topbar .brandmark{
  width:39px!important;
  height:39px!important;
  border-radius:10px!important;
  font-size:14px!important;
  box-shadow:none!important;
}
.topbar .brand b{
  font-size:15px!important;
  letter-spacing:.05px;
}
.topbar .brand small{
  margin-top:2px;
  font-size:9px!important;
  color:#bfc5c7!important;
}
.userbar{
  gap:10px!important;
  font-size:10.5px!important;
}
.userbar .role{
  padding:6px 9px!important;
  background:var(--af-gold)!important;
}
.userbar a{
  padding:7px 10px!important;
  border-radius:8px!important;
}

/* MAIN SHELL */
.shell{
  display:grid!important;
  grid-template-columns:230px minmax(0,1fr)!important;
  min-height:calc(100vh - 64px)!important;
}
.sidebar{
  position:sticky!important;
  top:64px!important;
  align-self:start!important;
  height:calc(100vh - 64px)!important;
  padding:18px 12px!important;
  background:#272d30!important;
  border-right:1px solid #353c3f!important;
  overflow-y:auto!important;
}
.sidebar:before{
  content:"OPERATIONS";
  display:block;
  margin:3px 10px 13px;
  color:#90999d;
  font-size:9px;
  letter-spacing:1.1px;
  font-weight:900;
}
.sidebar a{
  display:flex!important;
  align-items:center!important;
  min-height:40px!important;
  padding:10px 12px!important;
  margin:0 0 6px!important;
  border-radius:9px!important;
  color:#e8ebea!important;
  font-size:11px!important;
  font-weight:800!important;
  text-decoration:none!important;
  border:1px solid transparent!important;
  transition:.16s ease!important;
}
.sidebar a:hover{
  background:#343b3e!important;
  border-color:#434b4e!important;
}
.sidebar a.portal-active{
  background:var(--af-gold)!important;
  color:#15191b!important;
  border-color:var(--af-gold)!important;
  box-shadow:0 6px 14px rgba(243,195,0,.12)!important;
}

/* Content width control prevents ultrawide stretching */
.main{
  min-width:0!important;
  width:100%!important;
  padding:20px 24px 42px!important;
}
.main > .alerts,
.main > .flash,
.main > .section{
  width:min(100%,1480px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* ONE WORKSPACE AT A TIME */
.main > section.section{
  display:none!important;
  animation:portalFade .16s ease-out;
}
.main > section.section.portal-visible{
  display:block!important;
}
@keyframes portalFade{
  from{opacity:.25;transform:translateY(4px)}
  to{opacity:1;transform:none}
}

/* Alerts */
.alerts{
  min-height:34px;
  display:flex!important;
  gap:7px!important;
  margin-bottom:15px!important;
  padding:0 1px 3px!important;
}
.alert{
  padding:7px 10px!important;
  border-radius:999px!important;
  font-size:9.5px!important;
  box-shadow:none!important;
}

/* Generic section / workspace */
.section{
  scroll-margin-top:84px!important;
  margin-bottom:20px!important;
}
.section.card,
.card{
  border:1px solid var(--af-border)!important;
  border-radius:16px!important;
  background:var(--af-paper)!important;
  box-shadow:var(--af-shadow)!important;
}
.section.card{
  padding:21px!important;
}
.card{
  padding:18px!important;
}
.head{
  align-items:center!important;
  margin-bottom:17px!important;
}
.head h1{
  margin:0!important;
  font-size:28px!important;
  line-height:1.12!important;
  letter-spacing:-.45px!important;
}
.head h2{
  margin:0!important;
  font-size:22px!important;
  line-height:1.2!important;
}
.head h3{
  margin:0!important;
  font-size:18px!important;
}
.head p{
  margin:5px 0 0!important;
  max-width:760px!important;
  color:var(--af-muted)!important;
  font-size:11px!important;
  line-height:1.45!important;
}
.env-note,.demo,.training-badge{
  background:#fff5c7!important;
  color:#735a00!important;
  border:1px solid #ead578!important;
  border-radius:999px!important;
  padding:5px 9px!important;
  font-size:8.5px!important;
  font-weight:900!important;
  letter-spacing:.3px!important;
}

/* Dashboard */
#dashboard{
  background:transparent!important;
}
.kpis{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:12px!important;
}
.kpi{
  position:relative!important;
  min-width:0!important;
  padding:17px 18px 16px!important;
  border:1px solid var(--af-border)!important;
  border-left:0!important;
  border-radius:14px!important;
  background:#fff!important;
  box-shadow:var(--af-shadow)!important;
  overflow:hidden!important;
}
.kpi:before{
  content:"";
  position:absolute;
  left:0;top:0;bottom:0;
  width:5px;
  background:var(--af-gold);
}
.kpi small{
  color:#6f7779!important;
  font-size:9px!important;
  letter-spacing:.4px!important;
}
.kpi b{
  display:block!important;
  margin-top:5px!important;
  font-size:30px!important;
  line-height:1!important;
}
.kpi span{
  display:block!important;
  margin-top:6px!important;
  color:#858a8b!important;
  font-size:9.5px!important;
}

/* Forms */
.formgrid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:14px 16px!important;
}
.formgrid .full{
  grid-column:1/-1!important;
}
label{
  margin-bottom:6px!important;
  color:#555d60!important;
  font-size:9.5px!important;
  letter-spacing:.1px!important;
}
input,select,textarea{
  width:100%!important;
  min-width:0!important;
  border:1px solid #d7cfb4!important;
  border-radius:9px!important;
  background:#fff!important;
  color:#23282a!important;
  transition:border-color .16s ease,box-shadow .16s ease!important;
}
input,select{
  min-height:44px!important;
  padding:9px 11px!important;
}
textarea{
  min-height:105px!important;
  padding:11px!important;
  line-height:1.45!important;
}
input:focus,select:focus,textarea:focus{
  outline:0!important;
  border-color:#a98a1e!important;
  box-shadow:0 0 0 3px rgba(243,195,0,.12)!important;
}
input[readonly],textarea[readonly]{
  background:#f6f4ed!important;
  color:#596063!important;
}
input[type=file]{
  padding:7px!important;
  background:#faf9f4!important;
}
.primary,.success,.btn,.smallbtn{
  border-radius:9px!important;
}
.primary,.success{
  min-height:42px!important;
  padding:10px 15px!important;
  font-weight:900!important;
  font-size:10.5px!important;
}
.primary{
  background:var(--af-gold)!important;
  color:#161a1c!important;
}
.success{
  background:var(--af-green)!important;
}
.summary{
  margin:10px 0 14px!important;
  padding:12px 13px!important;
  background:#f8f6ed!important;
  border-left:4px solid var(--af-gold)!important;
  border-radius:8px!important;
  line-height:1.5!important;
}

/* Queues */
.queue-grid{
  grid-template-columns:315px minmax(0,1fr)!important;
  gap:14px!important;
}
.queue-list{
  max-height:620px!important;
  padding:10px!important;
  border-radius:13px!important;
  box-shadow:none!important;
}
.queue-item{
  border-radius:9px!important;
}

/* Tables */
.tablewrap{
  position:relative!important;
  max-width:100%!important;
  border:1px solid var(--af-border)!important;
  border-radius:12px!important;
  background:#fff!important;
  overflow:auto!important;
  box-shadow:none!important;
}
table{
  width:100%!important;
  border-collapse:separate!important;
  border-spacing:0!important;
}
thead th{
  padding:11px 10px!important;
  background:#252b2e!important;
  color:#fff!important;
  border-bottom:3px solid var(--af-gold)!important;
  font-size:9px!important;
  letter-spacing:.2px!important;
}
tbody td{
  padding:10px!important;
  border-bottom:1px solid #eee9d8!important;
  font-size:10.5px!important;
  line-height:1.4!important;
}
tbody tr:nth-child(even){
  background:#fbfaf5!important;
}
tbody tr:hover{
  background:#fff9de!important;
}
.status{
  padding:5px 8px!important;
  font-size:8.5px!important;
}
.smallbtn{
  padding:6px 9px!important;
  background:#fff3b8!important;
  color:#584500!important;
  font-size:9px!important;
}

/* Fault tools */
.fault-tools{
  grid-template-columns:minmax(280px,1.25fr) 220px 190px!important;
  gap:10px!important;
  padding:12px!important;
  margin-bottom:13px!important;
  background:#fff!important;
  border:1px solid var(--af-border)!important;
  border-radius:12px!important;
}
.fault-tools input,.fault-tools select{
  min-height:41px!important;
}

/* MAP SAFETY + PROFESSIONAL CONTAINER
   Critical fix: map markers are hidden globally and only enabled
   inside a real map container. They can no longer scatter over forms. */
.mapdot{
  display:none!important;
}
.management-map,
.fake-map,
.shared-fault-map{
  position:relative!important;
  width:100%!important;
  max-width:100%!important;
  height:360px!important;
  margin:12px 0!important;
  overflow:hidden!important;
  isolation:isolate!important;
  border:1px solid #cec6a9!important;
  border-radius:13px!important;
  background:#edf0e6!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.55)!important;
}
.management-map > a.mapdot,
.shared-fault-map > a.mapdot,
.management-map .airfield-layer > a.mapdot,
.shared-fault-map .airfield-layer > a.mapdot{
  display:block!important;
  position:absolute!important;
  width:15px!important;
  height:15px!important;
  margin:-7.5px 0 0 -7.5px!important;
  border:3px solid #fff!important;
  border-radius:50%!important;
  box-shadow:0 2px 8px rgba(0,0,0,.28)!important;
  z-index:15!important;
}
.airfield-layer{
  position:absolute!important;
  inset:0!important;
  overflow:hidden!important;
  z-index:1!important;
}
.airfield-layer svg{
  width:100%!important;
  height:100%!important;
}
.map-controls{
  z-index:30!important;
}
.map-caption{
  z-index:29!important;
}

/* Picker pin remains a pin and stays inside map */
.fake-map .airfield-layer > i{
  display:block!important;
  position:absolute!important;
  z-index:18!important;
}

/* Evidence */
.evidence-stage{
  border-radius:13px!important;
  overflow:hidden!important;
}
.photos{
  gap:12px!important;
}
.photos img,.placeholder{
  border-radius:11px!important;
  object-fit:cover!important;
}

/* Tracker */
.current-owner{
  padding:12px 14px!important;
  margin-bottom:12px!important;
  border-left:4px solid var(--af-gold)!important;
  background:#fff8d6!important;
  border-radius:9px!important;
}
.tracker{
  border-radius:13px!important;
  padding:18px 10px!important;
  box-shadow:none!important;
}

/* Flash */
.flash{
  margin-bottom:14px!important;
  border-radius:10px!important;
  padding:11px 13px!important;
  box-shadow:none!important;
}

/* Login keeps v4.5 visual quality, with minor tightening */
.login-card{
  box-shadow:0 24px 64px rgba(30,30,23,.14)!important;
}
.password-field-wrap{
  box-shadow:none!important;
}

/* Tablet */
@media(max-width:1150px){
  .shell{
    grid-template-columns:200px minmax(0,1fr)!important;
  }
  .main{
    padding:18px!important;
  }
  .kpis{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .queue-grid{
    grid-template-columns:270px minmax(0,1fr)!important;
  }
}

/* Mobile */
@media(max-width:800px){
  .topbar{
    min-height:60px!important;
  }
  .shell{
    display:block!important;
    min-height:0!important;
  }
  .sidebar{
    position:sticky!important;
    top:60px!important;
    z-index:90!important;
    display:flex!important;
    width:100%!important;
    height:auto!important;
    padding:8px 9px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    gap:6px!important;
    border-right:0!important;
    border-bottom:1px solid #3b4245!important;
  }
  .sidebar:before{
    display:none!important;
  }
  .sidebar a{
    flex:0 0 auto!important;
    min-height:36px!important;
    margin:0!important;
    padding:8px 10px!important;
    font-size:9.5px!important;
  }
  .main{
    padding:13px 10px 30px!important;
  }
  .main > .alerts,
  .main > .flash,
  .main > .section{
    width:100%!important;
  }
  .alerts{
    overflow-x:auto!important;
  }
  .head{
    align-items:flex-start!important;
  }
  .head h1{font-size:24px!important}
  .head h2{font-size:20px!important}
  .kpis{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
  .kpi{
    padding:14px!important;
  }
  .kpi b{
    font-size:25px!important;
  }
  .formgrid,.queue-grid,.fault-tools,.grid2,.photos{
    grid-template-columns:1fr!important;
  }
  .formgrid .full{
    grid-column:auto!important;
  }
  .section.card,.card{
    padding:14px!important;
    border-radius:13px!important;
  }
  input,select,textarea{
    font-size:16px!important;
  }
  .management-map,.fake-map,.shared-fault-map{
    height:300px!important;
    border-radius:11px!important;
  }
  .tablewrap{
    -webkit-overflow-scrolling:touch!important;
  }
  table{
    min-width:850px!important;
  }
  .queue-list{
    max-height:310px!important;
  }
}

/* Small phones */
@media(max-width:430px){
  .userbar > span:not(.role){
    display:none!important;
  }
  .topbar .brand small{
    display:none!important;
  }
  .kpis{
    grid-template-columns:1fr!important;
  }
  .management-map,.fake-map,.shared-fault-map{
    height:270px!important;
  }
}


/* ==========================================================
   V4.7 DASHBOARD + INTEGRATED USER ADMINISTRATION
   ========================================================== */

.dashboard-workspace{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-top:16px;
}
.dashboard-panel{
  min-width:0;
  padding:18px;
  background:#fff;
  border:1px solid var(--af-border);
  border-radius:15px;
  box-shadow:var(--af-shadow);
}
.dashboard-primary-action{
  border-top:3px solid var(--af-gold);
}
.dashboard-secondary-action{
  border-top:3px solid #667075;
}
.dashboard-panel-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:15px;
}
.dashboard-eyebrow{
  display:block;
  margin-bottom:7px;
  color:#8a7100;
  font-size:8.5px;
  font-weight:900;
  letter-spacing:1px;
}
.dashboard-panel h3{
  margin:0;
  font-size:18px;
  line-height:1.2;
}
.dashboard-panel p{
  margin:6px 0 0;
  max-width:570px;
  color:#747b7d;
  font-size:10.5px;
  line-height:1.5;
}
.dashboard-action-icon,
.dashboard-action-number{
  flex:0 0 42px;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:#fff3b2;
  color:#4e4100;
  font-size:20px;
  font-weight:900;
}
.dashboard-action-number{
  font-size:18px;
}
.dashboard-jump{
  margin-top:16px!important;
}
.secondary-action{
  min-height:42px;
  margin-top:16px;
  padding:10px 15px;
  border:1px solid #303638;
  border-radius:9px;
  background:#303638;
  color:#fff;
  font:inherit;
  font-size:10.5px;
  font-weight:900;
  cursor:pointer;
}
.secondary-action:hover{
  background:#222729;
}
.dashboard-recent-panel{
  grid-column:1/-1;
}
.dashboard-recent-panel .dashboard-panel-head{
  align-items:center;
}
.text-action{
  flex:0 0 auto;
  border:0;
  background:transparent;
  color:#6c5700;
  font:inherit;
  font-size:10px;
  font-weight:900;
  cursor:pointer;
}
.dashboard-recent-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-top:14px;
}
.dashboard-record-row{
  width:100%;
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:11px 12px;
  border:1px solid #ebe5d1;
  border-radius:10px;
  background:#fbfaf5;
  color:inherit;
  text-align:left;
  font:inherit;
  cursor:pointer;
}
.dashboard-record-row:hover{
  background:#fff8d9;
  border-color:#ddca76;
}
.dashboard-record-main,
.dashboard-record-meta{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.dashboard-record-main b{
  font-size:10.5px;
}
.dashboard-record-main small,
.dashboard-record-meta small{
  overflow:hidden;
  color:#777d7f;
  font-size:9px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dashboard-record-meta{
  flex:0 0 auto;
  align-items:flex-end;
}

/* Integrated User Administration */
.admin-layout{
  display:grid;
  grid-template-columns:340px minmax(0,1fr);
  gap:14px;
}
.admin-create-card,
.admin-users-card{
  min-width:0;
}
.admin-card-title{
  margin-bottom:16px;
}
.admin-card-title h3{
  margin:0;
  font-size:18px;
}
.admin-card-title p{
  margin:5px 0 0;
  color:#777d7f;
  font-size:10px;
  line-height:1.45;
}
.admin-title-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.admin-count{
  padding:5px 8px;
  border-radius:999px;
  background:#f5f1df;
  color:#6b5a18;
  font-size:8px;
  font-weight:900;
  letter-spacing:.4px;
}
.admin-create-form .formgrid{
  grid-template-columns:1fr!important;
}
.admin-create-form .formgrid .full{
  grid-column:auto!important;
}
.admin-check{
  display:flex!important;
  align-items:center;
  gap:8px;
  margin:14px 0 4px!important;
  cursor:pointer;
}
.admin-check input{
  width:18px!important;
  min-width:18px!important;
  height:18px!important;
  min-height:18px!important;
  margin:0!important;
}
.admin-check span{
  font-size:10px;
  font-weight:800;
}
.admin-user-tools{
  margin-bottom:10px;
}
.admin-user-tools input{
  min-height:42px!important;
}
.admin-tablewrap table{
  min-width:720px!important;
}
.admin-guidance{
  margin-top:12px;
  padding:11px 13px;
  border:1px solid #ead98a;
  border-radius:9px;
  background:#fff7d2;
  color:#665100;
  font-size:9.5px;
  line-height:1.5;
}
.admin-password-wrap{
  margin-bottom:0!important;
}

@media(max-width:1100px){
  .admin-layout{
    grid-template-columns:300px minmax(0,1fr);
  }
  .dashboard-recent-list{
    grid-template-columns:1fr;
  }
}
@media(max-width:800px){
  .dashboard-workspace,
  .admin-layout{
    grid-template-columns:1fr;
  }
  .dashboard-recent-panel{
    grid-column:auto;
  }
  .dashboard-panel{
    padding:15px;
  }
  .dashboard-panel h3{
    font-size:17px;
  }
  .dashboard-action-icon,
  .dashboard-action-number{
    width:38px;
    height:38px;
    flex-basis:38px;
  }
  .dashboard-recent-list{
    grid-template-columns:1fr;
  }
}

.admin-cancel{
  display:inline-block;
  margin-left:7px;
  vertical-align:middle;
}


/* ==========================================================
   V4.8.1 CLEAN STABLE DASHBOARD
   ========================================================== */
.dashboard-guidance-card{
  margin-top:16px;
  padding:17px 18px;
  border:1px solid var(--af-border);
  border-radius:14px;
  background:#fff;
  box-shadow:var(--af-shadow);
}
.dashboard-guidance-label{
  display:block;
  margin-bottom:6px;
  color:#8a7100;
  font-size:8.5px;
  font-weight:900;
  letter-spacing:1px;
}
.dashboard-guidance-card h3{
  margin:0;
  font-size:17px;
  line-height:1.2;
}
.dashboard-guidance-card p{
  margin:6px 0 0;
  max-width:760px;
  color:#747b7d;
  font-size:10.5px;
  line-height:1.5;
}
@media(max-width:800px){
  .dashboard-guidance-card{padding:14px}
}


/* ==========================================================
   V4.9.1 MULTI-RECORD VISIBILITY
   Every submitted fault remains selectable in Record Details.
   ========================================================== */
.record-browser{
  margin-bottom:14px;
  padding:15px;
  border:1px solid var(--af-border);
  border-radius:14px;
  background:#fff;
  box-shadow:var(--af-shadow);
}
.record-browser-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}
.record-browser-label{
  display:block;
  margin-bottom:5px;
  color:#8a7100;
  font-size:8px;
  font-weight:900;
  letter-spacing:1px;
}
.record-browser-head h3{
  margin:0;
  font-size:17px;
}
.record-browser-head p{
  margin:5px 0 0;
  max-width:780px;
  color:#747b7d;
  font-size:10px;
  line-height:1.45;
}
.record-browser-count{
  flex:0 0 auto;
  padding:6px 9px;
  border-radius:999px;
  background:#f5f1df;
  color:#655315;
  font-size:8px;
  font-weight:900;
  letter-spacing:.4px;
}
.record-browser-search{
  margin-top:12px;
}
.record-browser-search input{
  min-height:40px!important;
}
.record-browser-list{
  display:grid;
  gap:7px;
  margin-top:10px;
}
.record-browser-row{
  display:grid;
  grid-template-columns:minmax(210px,1.25fr) minmax(190px,.9fr) auto 48px;
  align-items:center;
  gap:12px;
  min-width:0;
  padding:10px 11px;
  border:1px solid #e9e3cf;
  border-radius:10px;
  background:#fbfaf5;
  color:inherit;
  text-decoration:none;
  transition:.15s ease;
}
.record-browser-row:hover{
  border-color:#d4c06b;
  background:#fff9de;
}
.record-browser-row.current{
  border-color:#d6b514;
  background:#fff7cd;
  box-shadow:inset 4px 0 0 var(--af-gold);
}
.rb-identity,
.rb-maximo{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.rb-identity b{
  overflow:hidden;
  font-size:10.5px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.rb-identity small,
.rb-maximo small{
  overflow:hidden;
  color:#777d7f;
  font-size:8.5px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.rb-maximo b{
  overflow:hidden;
  font-size:9.5px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.rb-open{
  color:#6e5800;
  font-size:8px;
  font-weight:900;
  text-align:right;
}
.record-browser-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid #eee9d8;
  color:#777d7f;
  font-size:9px;
}
@media(max-width:950px){
  .record-browser-row{
    grid-template-columns:minmax(0,1fr) auto;
  }
  .rb-maximo{grid-column:1}
  .record-browser-row .status{grid-column:2;grid-row:1}
  .rb-open{grid-column:2;grid-row:2}
}
@media(max-width:600px){
  .record-browser{padding:12px}
  .record-browser-head{
    flex-direction:column;
    gap:8px;
  }
  .record-browser-row{
    grid-template-columns:1fr;
    gap:6px;
  }
  .rb-maximo,
  .record-browser-row .status,
  .rb-open{
    grid-column:auto;
    grid-row:auto;
  }
  .rb-open{text-align:left}
  .record-browser-footer{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* ==========================================================
   V5.0 OPERATIONS TROUBLESHOOTING
   Area filters, immutable fault location, DMA/SDMA airport map,
   interactive pin details and standardized map colors.
   ========================================================== */

/* DO queue area filter */
.queue-filter-head{
  display:grid;
  gap:9px;
  margin-bottom:10px;
  padding-bottom:10px;
  border-bottom:1px solid #ece6d4;
}
.queue-filter-head h3{margin:0}
.queue-filter-head small{
  display:block;
  margin-top:3px;
  color:#7b8082;
  font-size:8.5px;
}
.queue-filter-head select{
  min-height:38px!important;
  font-size:10px!important;
}

/* Immutable-location message */
.location-lock-banner{
  margin:12px 0;
  padding:10px 12px;
  border:1px solid #d9c96e;
  border-left:4px solid var(--af-gold);
  border-radius:9px;
  background:#fff8d8;
  color:#635100;
  font-size:9.5px;
  font-weight:800;
  line-height:1.45;
}
.approval-location-row{
  margin:12px 0;
}
.approval-location-row .fake-map{
  height:250px!important;
}

/* Airport-wide map panel */
.approval-map-panel{
  margin-bottom:15px!important;
}
.fault-map-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:10px;
}
.fault-map-head h3{
  margin:0;
  font-size:18px;
}
.fault-map-head p{
  margin:5px 0 0;
  max-width:760px;
  color:#737a7d;
  font-size:10px;
  line-height:1.45;
}
.map-record-count{
  flex:0 0 auto;
  padding:6px 9px;
  border-radius:999px;
  background:#f4f0df;
  color:#625313;
  font-size:8px;
  font-weight:900;
  letter-spacing:.4px;
}
.fault-map-legend{
  display:flex;
  flex-wrap:wrap;
  gap:7px 14px;
  margin:7px 0 10px;
  padding:9px 11px;
  border:1px solid #ece6d4;
  border-radius:10px;
  background:#fbfaf5;
}
.fault-map-legend.compact{
  width:min(100%,900px);
}
.fault-map-legend span{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:#596063;
  font-size:8.8px;
  font-weight:800;
}
.legend-dot{
  display:inline-block;
  width:11px;
  height:11px;
  border:2px solid #fff;
  border-radius:50%;
  box-shadow:0 1px 4px rgba(0,0,0,.18);
}

/* Standardized map status colors.
   Closed is deliberately slate/gray, not green. */
.mapdot.map-civil,.legend-dot.map-civil{background:#d64535!important}
.mapdot.map-do,.legend-dot.map-do{background:#f59e0b!important}
.mapdot.map-approval,.legend-dot.map-approval{background:#4f46e5!important}
.mapdot.map-closed,.legend-dot.map-closed{background:#6b7280!important}
.mapdot.map-other,.legend-dot.map-other{background:#0f766e!important}

.airport-fault-map .airport-fault-pin{
  width:16px!important;
  height:16px!important;
  border:3px solid #fff!important;
  border-radius:50%!important;
  box-shadow:0 2px 8px rgba(0,0,0,.30)!important;
  z-index:16!important;
  transition:transform .12s ease,box-shadow .12s ease!important;
}
.airport-fault-map .airport-fault-pin:hover,
.airport-fault-map .airport-fault-pin:focus{
  transform:scale(1.38)!important;
  box-shadow:0 3px 12px rgba(0,0,0,.38)!important;
  z-index:22!important;
}

/* Hover details */
.fault-map-tooltip{
  position:fixed;
  z-index:10000;
  width:min(330px,calc(100vw - 24px));
  padding:11px 12px;
  border:1px solid #d9d2bd;
  border-radius:11px;
  background:#202629;
  color:#fff;
  box-shadow:0 14px 38px rgba(0,0,0,.26);
  pointer-events:none;
  opacity:0;
  transform:translateY(4px);
  transition:opacity .08s ease,transform .08s ease;
}
.fault-map-tooltip.visible{
  opacity:1;
  transform:none;
}
.fault-map-tooltip b{
  display:block;
  margin-bottom:4px;
  font-size:11px;
}
.fault-map-tooltip .fmt-ref{
  color:#f3c300;
  font-size:9px;
  font-weight:900;
}
.fault-map-tooltip .fmt-line{
  display:grid;
  grid-template-columns:82px 1fr;
  gap:7px;
  margin-top:4px;
  font-size:8.8px;
  line-height:1.35;
}
.fault-map-tooltip .fmt-line span:first-child{
  color:#aeb7ba;
  font-weight:800;
}
.fault-map-tooltip .fmt-desc{
  margin-top:7px;
  padding-top:7px;
  border-top:1px solid rgba(255,255,255,.13);
  color:#e6eaeb;
  font-size:8.8px;
  line-height:1.4;
}

/* Clicked-marker details directly below map */
.map-selected-card{
  margin-top:10px;
  padding:13px 14px;
  border:1px solid #dcd5c0;
  border-left:4px solid var(--af-gold);
  border-radius:10px;
  background:#fff;
}
.map-selected-card.is-empty{
  border-left-color:#c7c2b2;
  background:#faf9f4;
}
.map-selected-empty{
  color:#7b8082;
  font-size:9.5px;
}
.map-selected-grid{
  display:grid;
  grid-template-columns:minmax(170px,.9fr) minmax(170px,.9fr) minmax(220px,1.25fr) auto;
  align-items:center;
  gap:12px;
}
.map-selected-grid > div{
  min-width:0;
}
.map-selected-grid small{
  display:block;
  margin-bottom:3px;
  color:#7b8082;
  font-size:8px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.3px;
}
.map-selected-grid b{
  display:block;
  overflow:hidden;
  font-size:10px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.map-selected-grid p{
  margin:2px 0 0;
  color:#596063;
  font-size:9px;
  line-height:1.4;
}
.map-selected-action{
  display:inline-block;
  padding:8px 10px;
  border-radius:8px;
  background:var(--af-gold);
  color:#17191b;
  font-size:9px;
  font-weight:900;
  text-decoration:none;
  white-space:nowrap;
}
.management-map-panel{
  margin-top:14px!important;
}
.approval-queue-grid{
  margin-top:15px;
}

/* Closed status is historical/neutral, not green. */
.status.gray{
  background:#e8e9ea!important;
  color:#4b5255!important;
}

@media(max-width:900px){
  .map-selected-grid{
    grid-template-columns:1fr 1fr;
  }
  .map-selected-action{
    justify-self:start;
  }
}
@media(max-width:650px){
  .fault-map-head{
    flex-direction:column;
    gap:8px;
  }
  .fault-map-legend{
    gap:7px 10px;
  }
  .map-selected-grid{
    grid-template-columns:1fr;
  }
  .approval-location-row .fake-map{
    height:230px!important;
  }
}

.map-selected-description{
  margin-top:10px;
  padding-top:9px;
  border-top:1px solid #ece6d4;
}
.map-selected-description small{
  display:block;
  margin-bottom:4px;
  color:#7b8082;
  font-size:8px;
  font-weight:900;
  letter-spacing:.35px;
}
.map-selected-description p{
  margin:0;
  color:#4f575a;
  font-size:9.2px;
  line-height:1.45;
}


/* ==========================================================
   V5.1 DETAILED SHARED FAULT LOG + RECORD BROWSER
   ========================================================== */
.fault-filter-panel{
  display:grid;
  grid-template-columns:minmax(300px,1.35fr) minmax(190px,.7fr) minmax(175px,.65fr) minmax(210px,.8fr);
  gap:10px;
  margin-bottom:9px;
  padding:12px;
  border:1px solid var(--af-border);
  border-radius:13px;
  background:#fff;
  box-shadow:var(--af-shadow);
}
.fault-filter-field{
  min-width:0;
}
.fault-filter-field label{
  display:block;
  margin-bottom:5px!important;
}
.fault-filter-field input,
.fault-filter-field select{
  min-height:42px!important;
}
.fault-log-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 2px 9px;
  color:#707779;
  font-size:9px;
}
.fault-log-summary b{
  color:#202528;
  font-size:11px;
}
.detailed-fault-table table{
  min-width:1900px!important;
}
.detailed-fault-table thead th{
  white-space:nowrap;
}
.detailed-fault-table .exact-location-cell{
  min-width:185px;
  max-width:240px;
}
.detailed-fault-table .desc-cell{
  min-width:300px;
  max-width:420px;
  white-space:normal;
}
.detailed-fault-table .owner-cell{
  min-width:180px;
  max-width:240px;
}
.detailed-fault-table td:nth-child(11),
.detailed-fault-table td:nth-child(12){
  min-width:135px;
  white-space:nowrap;
}
.detailed-fault-table tbody td{
  vertical-align:top!important;
}

/* Detailed Record Browser */
.record-browser-row-detailed{
  grid-template-columns:minmax(190px,.9fr) minmax(360px,1.65fr) minmax(250px,1.1fr) minmax(145px,.65fr)!important;
  align-items:stretch!important;
  padding:12px!important;
}
.rb-reference-block,
.rb-detail-block,
.rb-meta-block,
.rb-action-block{
  min-width:0;
}
.rb-reference-block{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding-right:12px;
  border-right:1px solid #e9e3cf;
}
.rb-reference-block>small,
.rb-detail-block small,
.rb-meta-block small{
  color:#858b8d;
  font-size:7.5px;
  font-weight:900;
  letter-spacing:.45px;
}
.rb-reference-block>b{
  font-size:11px;
}
.rb-maximo-line{
  margin-top:5px;
  color:#686f71!important;
  font-weight:500!important;
  letter-spacing:0!important;
  text-transform:none;
}
.rb-maximo-line strong{
  color:#282d2f;
}
.rb-detail-block{
  display:grid;
  grid-template-columns:minmax(135px,.7fr) minmax(150px,.8fr);
  gap:8px 14px;
  padding-right:12px;
  border-right:1px solid #e9e3cf;
}
.rb-detail-block span,
.rb-meta-block span{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.rb-detail-block b,
.rb-meta-block b{
  overflow:hidden;
  color:#303638;
  font-size:9.5px;
  font-weight:700;
  line-height:1.35;
  text-overflow:ellipsis;
}
.rb-description{
  grid-column:1/-1;
}
.rb-description b{
  white-space:normal;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}
.rb-meta-block{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px 12px;
  padding-right:12px;
  border-right:1px solid #e9e3cf;
}
.rb-action-block{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  justify-content:space-between;
  gap:10px;
}
.rb-action-block .status{
  max-width:100%;
  text-align:center;
}
.rb-action-block .rb-open{
  color:#6d5700;
  font-size:8px;
  font-weight:900;
  text-align:right;
}
.record-browser-row-detailed.current{
  box-shadow:inset 4px 0 0 var(--af-gold);
}

@media(max-width:1250px){
  .fault-filter-panel{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .record-browser-row-detailed{
    grid-template-columns:minmax(180px,.8fr) minmax(320px,1.5fr) minmax(220px,1fr)!important;
  }
  .rb-action-block{
    grid-column:1/-1;
    flex-direction:row;
    align-items:center;
  }
}
@media(max-width:850px){
  .fault-filter-panel{
    grid-template-columns:1fr;
  }
  .fault-log-summary{
    align-items:flex-start;
    flex-direction:column;
  }
  .record-browser-row-detailed{
    grid-template-columns:1fr!important;
  }
  .rb-reference-block,
  .rb-detail-block,
  .rb-meta-block{
    padding-right:0;
    padding-bottom:9px;
    border-right:0;
    border-bottom:1px solid #e9e3cf;
  }
  .rb-detail-block,
  .rb-meta-block{
    grid-template-columns:1fr 1fr;
  }
  .rb-action-block{
    grid-column:auto;
  }
}
@media(max-width:520px){
  .rb-detail-block,
  .rb-meta-block{
    grid-template-columns:1fr;
  }
  .rb-description{
    grid-column:auto;
  }
}


/* ==========================================================
   V5.2 EXECUTIVE PURPLE / YELLOW VISUAL SYSTEM
   Inspired by the visual language supplied by the user.
   Functional workflow and data logic unchanged.
   ========================================================== */

:root{
  --af-purple:#2c2d65;
  --af-purple-deep:#222356;
  --af-purple-ink:#171844;
  --af-purple-mid:#555a95;
  --af-lavender:#edeefa;
  --af-lavender-2:#f5f5fd;
  --af-yellow:#fcd000;
  --af-yellow-deep:#e4b800;
  --af-white:#ffffff;
  --af-text:#22233e;
  --af-muted-purple:#71749c;
  --af-border-purple:#d8daf0;
  --af-shadow-purple:0 12px 34px rgba(44,45,101,.08);

  /* remap legacy tokens */
  --af-gold:var(--af-yellow);
  --af-gold-deep:var(--af-yellow-deep);
  --af-ink:var(--af-text);
  --af-dark:var(--af-purple);
  --af-dark-2:var(--af-purple-deep);
  --af-paper:var(--af-white);
  --af-bg:var(--af-lavender-2);
  --af-border:var(--af-border-purple);
  --af-muted:var(--af-muted-purple);
  --af-shadow:var(--af-shadow-purple);
}

html,body{
  background:var(--af-lavender-2)!important;
  color:var(--af-text)!important;
  font-family:"Dubai","Segoe UI",Arial,sans-serif!important;
}

/* TOP NAVIGATION */
.topbar{
  min-height:66px!important;
  background:linear-gradient(90deg,var(--af-purple-deep),var(--af-purple))!important;
  border-bottom:4px solid var(--af-yellow)!important;
  box-shadow:0 7px 20px rgba(34,35,86,.18)!important;
}
.topbar .brandmark,
.brandmark{
  background:var(--af-yellow)!important;
  color:var(--af-purple-ink)!important;
  box-shadow:none!important;
}
.topbar .brand b{
  color:#fff!important;
  letter-spacing:.05px!important;
}
.topbar .brand small{
  color:#d7d8ef!important;
}
.userbar{
  color:#fff!important;
}
.userbar .role{
  background:var(--af-yellow)!important;
  color:var(--af-purple-ink)!important;
}
.userbar a{
  border:1px solid rgba(255,255,255,.25)!important;
  color:#fff!important;
  background:rgba(255,255,255,.06)!important;
}
.userbar a:hover{
  background:var(--af-yellow)!important;
  color:var(--af-purple-ink)!important;
  border-color:var(--af-yellow)!important;
}

/* SIDEBAR */
.sidebar{
  background:linear-gradient(180deg,#292b61 0%,#242654 100%)!important;
  border-right:0!important;
  box-shadow:5px 0 18px rgba(44,45,101,.08)!important;
}
.sidebar:before{
  color:#aeb0d0!important;
}
.sidebar a{
  color:#f7f7ff!important;
  border-color:transparent!important;
  font-weight:800!important;
}
.sidebar a:hover{
  background:rgba(255,255,255,.09)!important;
  border-color:rgba(255,255,255,.09)!important;
}
.sidebar a.portal-active{
  background:var(--af-yellow)!important;
  color:var(--af-purple-ink)!important;
  border-color:var(--af-yellow)!important;
  box-shadow:0 7px 18px rgba(252,208,0,.18)!important;
}

/* MAIN CANVAS */
.main{
  background:
    radial-gradient(circle at 78% 0%,rgba(88,91,158,.08),transparent 26%),
    linear-gradient(180deg,#f8f8ff 0%,#f0f1fb 100%)!important;
}
.section.card,
.card,
.record-browser,
.fault-filter-panel,
.dashboard-guidance-card{
  background:#fff!important;
  border:1px solid var(--af-border-purple)!important;
  box-shadow:var(--af-shadow-purple)!important;
}
.head h1,
.head h2,
.head h3{
  color:var(--af-purple-ink)!important;
}
.head p{
  color:var(--af-muted-purple)!important;
}
.env-note,.demo,.training-badge{
  background:#fff4b0!important;
  color:#645000!important;
  border-color:#f0d85a!important;
}

/* ALERT PILLS */
.alerts{
  gap:8px!important;
}
.alert{
  border:1px solid var(--af-border-purple)!important;
  box-shadow:none!important;
}
.alert.red{
  background:#fff0f0!important;
  color:#a22a34!important;
  border-color:#f2c8cb!important;
}
.alert.yellow{
  background:#fff4b8!important;
  color:#665100!important;
  border-color:#efd664!important;
}
.alert.green{
  background:#edf8f3!important;
  color:#216c52!important;
  border-color:#c9e9dd!important;
}

/* KPI CARDS */
.kpi{
  background:#fff!important;
  border:1px solid var(--af-border-purple)!important;
  box-shadow:0 10px 28px rgba(44,45,101,.075)!important;
}
.kpi:before{
  width:6px!important;
  background:var(--af-yellow)!important;
}
.kpi small{
  color:var(--af-purple-mid)!important;
  font-weight:900!important;
  letter-spacing:.7px!important;
}
.kpi b{
  color:var(--af-purple-ink)!important;
}
.kpi span{
  color:#8588ad!important;
}

/* BUTTONS */
.primary{
  background:var(--af-yellow)!important;
  color:var(--af-purple-ink)!important;
  border:1px solid var(--af-yellow)!important;
  box-shadow:0 5px 14px rgba(252,208,0,.15)!important;
}
.primary:hover{
  background:#ffdc24!important;
  transform:translateY(-1px);
}
.success,
.secondary-action{
  background:var(--af-purple)!important;
  color:#fff!important;
  border-color:var(--af-purple)!important;
}
.success:hover,
.secondary-action:hover{
  background:var(--af-purple-deep)!important;
}
.smallbtn{
  background:#fff7c8!important;
  color:#554500!important;
  border:1px solid #ebd45d!important;
}
.smallbtn:hover{
  background:var(--af-yellow)!important;
}
.text-action{
  color:var(--af-purple)!important;
}

/* FORMS */
label{
  color:var(--af-purple)!important;
  font-weight:800!important;
}
input,select,textarea{
  border:1px solid #cfd1eb!important;
  background:#fff!important;
  color:var(--af-text)!important;
}
input:focus,select:focus,textarea:focus{
  border-color:var(--af-purple-mid)!important;
  box-shadow:0 0 0 3px rgba(85,90,149,.12)!important;
}
input[readonly],textarea[readonly]{
  background:#f3f3fb!important;
  color:#5f6286!important;
}
.summary,
.current-owner{
  background:#fff8d2!important;
  border-left-color:var(--af-yellow)!important;
  color:#4e4410!important;
}

/* TABLES */
.tablewrap{
  border-color:var(--af-border-purple)!important;
}
thead th{
  background:var(--af-purple)!important;
  color:#fff!important;
  border-bottom:4px solid var(--af-yellow)!important;
}
tbody tr:nth-child(even){
  background:#f8f8ff!important;
}
tbody tr:hover{
  background:#fff9d9!important;
}
tbody td{
  border-bottom-color:#e3e4f3!important;
}
.status{
  border:1px solid rgba(44,45,101,.06)!important;
}

/* FILTER PANELS */
.fault-filter-panel{
  border-top:4px solid var(--af-yellow)!important;
}
.fault-log-summary{
  color:var(--af-purple-mid)!important;
}
.fault-log-summary b{
  color:var(--af-purple-ink)!important;
}

/* RECORD BROWSER */
.record-browser{
  border-top:4px solid var(--af-purple)!important;
}
.record-browser-label,
.record-browser-eyebrow{
  color:var(--af-purple-mid)!important;
}
.record-browser-count,
.admin-count{
  background:#ececf8!important;
  color:var(--af-purple)!important;
}
.record-browser-row,
.record-browser-row-detailed{
  background:#fafaff!important;
  border-color:#e0e1f1!important;
}
.record-browser-row:hover,
.record-browser-row-detailed:hover{
  background:#fff9d9!important;
  border-color:#e4cd56!important;
}
.record-browser-row.current,
.record-browser-row-detailed.current{
  background:#fff7c7!important;
  border-color:#e0bd14!important;
  box-shadow:inset 5px 0 0 var(--af-yellow)!important;
}
.rb-reference-block,
.rb-detail-block,
.rb-meta-block{
  border-color:#e5e5f3!important;
}
.rb-reference-block>small,
.rb-detail-block small,
.rb-meta-block small{
  color:#8184a8!important;
}
.rb-open,
.rb-action-block .rb-open{
  color:var(--af-purple)!important;
}

/* MAP */
.management-map,
.fake-map,
.shared-fault-map,
.airport-fault-map{
  background:#eceef7!important;
  border:1px solid #bfc2df!important;
  box-shadow:0 10px 28px rgba(44,45,101,.08)!important;
}
.map-caption,
.map-controls{
  background:rgba(255,255,255,.96)!important;
  color:var(--af-purple)!important;
  border-color:#d4d6eb!important;
}
.fault-map-legend{
  color:var(--af-purple-mid)!important;
}
.map-selected-card{
  border-color:var(--af-border-purple)!important;
  background:#fff!important;
  box-shadow:var(--af-shadow-purple)!important;
}

/* WORKFLOW TRACKER */
.tracker{
  background:#fff!important;
  border:1px solid var(--af-border-purple)!important;
}
.tstep .dot{
  background:#cacbe0!important;
}
.tstep.done .dot{
  background:var(--af-purple)!important;
}
.tstep.current .dot{
  background:var(--af-yellow)!important;
  color:var(--af-purple-ink)!important;
  box-shadow:0 0 0 5px rgba(252,208,0,.18)!important;
}
.tstep.done:after{
  background:var(--af-purple)!important;
}
.tstep.current b{
  color:var(--af-purple)!important;
}

/* EVIDENCE / CARDS */
.evidence-stage{
  border:1px solid #d9dbef!important;
  background:#fafaff!important;
}
.placeholder{
  background:#e8e9f5!important;
  color:#666a93!important;
}
.admin-guidance{
  background:#fff7c7!important;
  border-color:#efd760!important;
  color:#5e4c00!important;
}

/* USER ADMINISTRATION */
.admin-create-card{
  border-top:4px solid var(--af-yellow)!important;
}
.admin-users-card{
  border-top:4px solid var(--af-purple)!important;
}

/* LOGIN PAGE */
.login-body{
  background:var(--af-purple-deep)!important;
}
.login-hero{
  background:
    radial-gradient(circle at 75% 18%,rgba(252,208,0,.14),transparent 30%),
    linear-gradient(145deg,#232456 0%,#303271 58%,#292b61 100%)!important;
}
.login-hero h1,
.login-brand-mobile{
  color:#fff!important;
}
.hero-lead{
  color:#dddff3!important;
}
.hero-statement .quote-mark{
  color:var(--af-yellow)!important;
}
.hero-grid div{
  background:rgba(255,255,255,.075)!important;
  border-color:rgba(255,255,255,.14)!important;
}
.hero-grid b{
  color:#fff!important;
}
.hero-grid span{
  color:#d9daf0!important;
}
.hero-footer-line{
  color:#b9bbd8!important;
  border-color:rgba(255,255,255,.13)!important;
}
.environment-pill{
  background:var(--af-yellow)!important;
  color:var(--af-purple-ink)!important;
}
.login-side{
  background:
    radial-gradient(circle at 70% 10%,rgba(88,91,158,.12),transparent 24%),
    var(--af-lavender)!important;
}
.login-card{
  border:1px solid #d5d7ee!important;
  box-shadow:0 28px 72px rgba(44,45,101,.17)!important;
}
.signin-heading h2{
  color:var(--af-purple-ink)!important;
}
.signin-heading p{
  color:var(--af-purple-mid)!important;
}
.login-security{
  background:#f0f1fb!important;
  border-color:#dbdcef!important;
}
.login-support b{
  color:var(--af-purple)!important;
}
.login-side-footer{
  color:#76799d!important;
}
.password-toggle{
  background:#f5f5fc!important;
  color:var(--af-purple)!important;
  border-left-color:#dedff0!important;
}
.password-toggle:hover,
.password-toggle:focus-visible{
  background:var(--af-yellow)!important;
  color:var(--af-purple-ink)!important;
}

/* Decorative executive strip for pages */
.main > .section.portal-visible > .head{
  position:relative;
  padding-bottom:13px!important;
  border-bottom:1px solid #dfe0ef;
}
.main > .section.portal-visible > .head:after{
  content:"";
  position:absolute;
  left:0;
  bottom:-1px;
  width:92px;
  height:3px;
  background:var(--af-yellow);
  border-radius:99px;
}

/* MOBILE */
@media(max-width:800px){
  .sidebar{
    background:var(--af-purple-deep)!important;
    border-bottom:3px solid var(--af-yellow)!important;
  }
  .sidebar a.portal-active{
    box-shadow:none!important;
  }
  .main{
    background:#f4f4fc!important;
  }
  .topbar{
    box-shadow:0 5px 16px rgba(34,35,86,.17)!important;
  }
}


/* ==========================================================
   V5.3 GLOBAL LAYOUT + REPORTER COLUMN FIX
   Applies to DO, Civil Works, DMA, SDMA and Upper Management.
   ========================================================== */

/* Desktop: make the left purple navigation stretch for the ENTIRE
   document height instead of stopping at one viewport height. */
@media (min-width:801px){
  .shell{
    align-items:stretch!important;
    min-height:calc(100vh - 66px)!important;
  }
  .sidebar{
    position:relative!important;
    top:auto!important;
    align-self:stretch!important;
    height:auto!important;
    min-height:calc(100vh - 66px)!important;
    overflow-y:visible!important;
    background:linear-gradient(180deg,#292b61 0%,#242654 100%)!important;
  }
}

/* Ensure all long pages keep a continuous professional canvas. */
.main{
  min-height:calc(100vh - 66px)!important;
}
.main > .section.portal-visible{
  min-width:0!important;
}

/* Shared Fault Log: reporter column was too narrow and caused
   name/staff ID to collide or spill into the next column. */
.detailed-fault-table th:nth-child(10),
.detailed-fault-table td:nth-child(10){
  min-width:220px!important;
  width:220px!important;
  max-width:260px!important;
  white-space:normal!important;
}
.detailed-fault-table td:nth-child(10){
  line-height:1.35!important;
  overflow-wrap:anywhere!important;
}
.detailed-fault-table td:nth-child(10) small{
  display:block!important;
  margin-top:4px!important;
  color:#7c80a4!important;
  font-size:8.5px!important;
  font-weight:700!important;
  line-height:1.25!important;
  white-space:normal!important;
}

/* Give other operational columns enough room so Reporter is not squeezed. */
.detailed-fault-table th:nth-child(8),
.detailed-fault-table td:nth-child(8){
  min-width:170px!important;
}
.detailed-fault-table th:nth-child(9),
.detailed-fault-table td:nth-child(9){
  min-width:220px!important;
  max-width:260px!important;
  white-space:normal!important;
}
.detailed-fault-table th:nth-child(11),
.detailed-fault-table td:nth-child(11),
.detailed-fault-table th:nth-child(12),
.detailed-fault-table td:nth-child(12){
  min-width:155px!important;
  white-space:nowrap!important;
}
.detailed-fault-table th:nth-child(13),
.detailed-fault-table td:nth-child(13){
  min-width:115px!important;
  text-align:center!important;
}
.detailed-fault-table table{
  min-width:2140px!important;
}

/* Table wrapper must scroll horizontally instead of cutting columns. */
.detailed-fault-table{
  width:100%!important;
  max-width:100%!important;
  overflow-x:auto!important;
  overflow-y:visible!important;
  -webkit-overflow-scrolling:touch!important;
}

/* Make all standard portal tables safe on smaller screens/zoom levels. */
.tablewrap{
  width:100%!important;
  max-width:100%!important;
  overflow-x:auto!important;
  -webkit-overflow-scrolling:touch!important;
}

/* Prevent content/cards from visually escaping their page container. */
.card,
.section.card,
.queue-detail,
.record-browser,
.fault-filter-panel,
.management-map,
.shared-fault-map,
.map-selected-card{
  box-sizing:border-box!important;
  max-width:100%!important;
}

/* Long values such as owners, names, IDs and descriptions wrap cleanly. */
.readonly-grid span,
.owner-cell,
.desc-cell,
.exact-location-cell,
.rb-detail-block b,
.rb-meta-block b{
  overflow-wrap:anywhere!important;
  word-break:normal!important;
}

/* Upper Management / DMA / SDMA historical tables stay contained and
   do not create a visually cut page at the left or right edges. */
#management .tablewrap,
#approval .tablewrap{
  overflow-x:auto!important;
  max-width:100%!important;
}

/* Mobile keeps the existing horizontal navigation behavior. */
@media(max-width:800px){
  .sidebar{
    min-height:0!important;
  }
  .detailed-fault-table table{
    min-width:1700px!important;
  }
}


/* ==========================================================
   V5.4 FULL-SIZE EVIDENCE VIEWER
   Click/tap any evidence photo to open it full-screen.
   ========================================================== */

.evidence-history img,
.evidence-three img,
.evidence-row img,
.photos img{
  cursor:zoom-in!important;
  transition:transform .16s ease, box-shadow .16s ease, opacity .16s ease!important;
}

.evidence-history img:hover,
.evidence-three img:hover,
.evidence-row img:hover,
.photos img:hover{
  transform:translateY(-1px);
  box-shadow:0 9px 24px rgba(34,35,86,.16)!important;
  opacity:.97;
}

.evidence-lightbox-host{
  position:relative!important;
}

.evidence-fullsize-badge{
  position:absolute;
  right:8px;
  bottom:8px;
  z-index:5;
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:5px 8px;
  border-radius:999px;
  background:rgba(34,35,86,.9);
  color:#fff;
  font-size:8px;
  font-weight:900;
  letter-spacing:.2px;
  pointer-events:none;
  box-shadow:0 3px 10px rgba(0,0,0,.18);
}

.evidence-lightbox{
  position:fixed;
  inset:0;
  z-index:99999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(11,12,35,.94);
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
}

.evidence-lightbox.open{
  display:flex;
}

.evidence-lightbox-dialog{
  position:relative;
  width:min(96vw,1500px);
  height:min(94vh,1050px);
  display:flex;
  flex-direction:column;
  border:1px solid rgba(255,255,255,.17);
  border-radius:18px;
  overflow:hidden;
  background:#171844;
  box-shadow:0 32px 90px rgba(0,0,0,.45);
}

.evidence-lightbox-topbar{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:56px;
  padding:10px 12px 10px 18px;
  background:#222356;
  border-bottom:3px solid #fcd000;
  color:#fff;
}

.evidence-lightbox-caption{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}

.evidence-lightbox-caption b{
  overflow:hidden;
  font-size:13px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.evidence-lightbox-caption small{
  overflow:hidden;
  color:#d5d7ed;
  font-size:9px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.evidence-lightbox-actions{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:7px;
}

.evidence-lightbox-btn{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.2);
  border-radius:10px;
  background:rgba(255,255,255,.07);
  color:#fff;
  font:inherit;
  font-size:18px;
  font-weight:900;
  cursor:pointer;
}

.evidence-lightbox-btn:hover,
.evidence-lightbox-btn:focus-visible{
  outline:0;
  background:#fcd000;
  border-color:#fcd000;
  color:#171844;
}

.evidence-lightbox-stage{
  position:relative;
  flex:1 1 auto;
  min-height:0;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:auto;
  padding:16px;
  background:
    radial-gradient(circle at 50% 45%,rgba(255,255,255,.05),transparent 35%),
    #0e0f2e;
}

.evidence-lightbox-image{
  display:block;
  max-width:100%;
  max-height:100%;
  width:auto;
  height:auto;
  object-fit:contain;
  border-radius:7px;
  box-shadow:0 18px 55px rgba(0,0,0,.34);
  cursor:zoom-out;
}

.evidence-lightbox-counter{
  flex:0 0 auto;
  padding:7px 12px;
  background:#222356;
  color:#cfd1e8;
  font-size:9px;
  text-align:center;
  border-top:1px solid rgba(255,255,255,.09);
}

.evidence-lightbox-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:3;
  width:46px;
  height:58px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.18);
  border-radius:12px;
  background:rgba(34,35,86,.86);
  color:#fff;
  font-size:28px;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 7px 18px rgba(0,0,0,.22);
}

.evidence-lightbox-nav:hover{
  background:#fcd000;
  color:#171844;
}

.evidence-lightbox-prev{left:16px}
.evidence-lightbox-next{right:16px}

body.evidence-lightbox-open{
  overflow:hidden!important;
}

@media(max-width:760px){
  .evidence-lightbox{
    padding:0;
  }
  .evidence-lightbox-dialog{
    width:100vw;
    height:100svh;
    max-width:none;
    max-height:none;
    border:0;
    border-radius:0;
  }
  .evidence-lightbox-topbar{
    min-height:58px;
    padding:
      calc(8px + env(safe-area-inset-top))
      8px
      8px
      13px;
  }
  .evidence-lightbox-stage{
    padding:8px;
  }
  .evidence-lightbox-nav{
    width:40px;
    height:52px;
  }
  .evidence-lightbox-prev{left:7px}
  .evidence-lightbox-next{right:7px}
  .evidence-fullsize-badge{
    right:6px;
    bottom:6px;
    font-size:7.5px;
  }
}


/* ==========================================================
   V5.5 EXECUTIVE MAP-FIRST EXPERIENCE
   Management sees one command view: filters + map + inline record + filtered list.
   ========================================================== */

.inline-fault-template-bank{display:none!important}

/* Management no longer needs a second navigation step for Record Details. */
.executive-kpis{margin-bottom:14px!important}
.executive-command-center{
  border-top:4px solid var(--af-yellow)!important;
  overflow:visible!important;
}
.executive-command-center .fault-map-head{
  margin-bottom:10px!important;
}

.executive-map-filters{
  margin:10px 0 12px;
  padding:12px;
  border:1px solid #d9daf0;
  border-radius:13px;
  background:#f8f8ff;
}
.exec-filter-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:9px;
}
.exec-filter-title span{
  color:var(--af-purple-ink);
  font-size:10px;
  font-weight:900;
  letter-spacing:.2px;
}
.exec-filter-title small{
  color:#8588ad;
  font-size:8px;
}
.exec-filter-grid{
  display:grid;
  grid-template-columns:minmax(260px,1.25fr) minmax(170px,.7fr) minmax(165px,.7fr) minmax(195px,.8fr);
  gap:9px;
}
.exec-filter-grid>div{min-width:0}
.exec-filter-grid label{
  display:block;
  margin-bottom:4px!important;
  font-size:8px!important;
}
.exec-filter-grid input,
.exec-filter-grid select{
  min-height:40px!important;
}

.executive-airport-map{
  height:430px!important;
  margin-top:10px!important;
}
.map-record-count b{
  color:var(--af-purple-ink);
}

/* Inline complete record */
.inline-full-record-host{
  margin-top:12px!important;
  padding:0!important;
  overflow:hidden!important;
  border:1px solid #d8daf0!important;
  background:#fff!important;
}
.inline-full-record-host.is-empty{
  padding:13px!important;
}
.inline-complete-record{
  padding:16px;
}
.inline-record-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  padding-bottom:12px;
  border-bottom:1px solid #e1e2f1;
}
.inline-record-kicker{
  display:block;
  margin-bottom:4px;
  color:#7b7fa8;
  font-size:7.5px;
  font-weight:900;
  letter-spacing:1px;
}
.inline-record-head h3{
  margin:0;
  color:var(--af-purple-ink);
  font-size:20px;
}
.inline-record-head p{
  margin:5px 0 0;
  color:#74799e;
  font-size:9px;
}
.inline-owner{
  margin:12px 0!important;
}
.inline-tracker{
  margin:0 0 14px!important;
}
.inline-record-grid{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);
  gap:12px;
}
.inline-record-grid .card{
  margin:0!important;
}
.inline-record-grid h4,
.inline-evidence-card h4,
.inline-audit-card h4{
  margin:0 0 11px;
  color:var(--af-purple-ink);
  font-size:15px;
}
.inline-info-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.inline-info-grid>div,
.inline-people-list>div{
  min-width:0;
  padding:10px;
  border:1px solid #e3e4f3;
  border-radius:10px;
  background:#fafaff;
}
.inline-info-grid small,
.inline-people-list small,
.inline-description small{
  display:block;
  margin-bottom:4px;
  color:#8588ad;
  font-size:7.5px;
  font-weight:900;
  letter-spacing:.55px;
}
.inline-info-grid b,
.inline-people-list b{
  display:block;
  overflow-wrap:anywhere;
  color:#292c59;
  font-size:10px;
}
.inline-info-grid span,
.inline-people-list span{
  display:block;
  margin-top:3px;
  color:#777b9f;
  font-size:8.5px;
}
.inline-description{
  margin-top:10px;
  padding:11px;
  border-radius:10px;
  background:#f5f5fc;
}
.inline-description p{
  margin:0;
  color:#30335f;
  font-size:10px;
  line-height:1.5;
}
.inline-people-list{
  display:grid;
  gap:8px;
}
.inline-evidence-card,
.inline-audit-card{
  margin-top:12px!important;
}
.inline-subhead{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:9px;
}
.inline-subhead p{
  margin:4px 0 0;
  color:#7d81a5;
  font-size:8.5px;
}
.inline-evidence-history{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
}
.inline-evidence-history article{
  min-width:0;
}
.inline-audit{
  max-height:380px;
  overflow:auto;
  padding-right:4px;
}

/* Executive record list below map */
.executive-record-panel{
  margin-top:14px!important;
  border-top:4px solid var(--af-purple)!important;
}
.executive-record-list{
  display:grid;
  gap:7px;
  margin-top:10px;
}
.executive-record-row{
  width:100%;
  display:grid;
  grid-template-columns:minmax(170px,.85fr) minmax(165px,.8fr) minmax(180px,.9fr) minmax(280px,1.5fr) 85px 150px 76px;
  align-items:center;
  gap:10px;
  padding:10px 11px;
  border:1px solid #e1e2f1;
  border-radius:10px;
  background:#fafaff;
  color:inherit;
  text-align:left;
  font:inherit;
  cursor:pointer;
  transition:.15s ease;
}
.executive-record-row:hover{
  background:#fff8d3;
  border-color:#e1c94d;
}
.executive-record-row>span{
  min-width:0;
}
.executive-record-row small{
  display:block;
  margin-bottom:3px;
  color:#8588ad;
  font-size:7px;
  font-weight:900;
  letter-spacing:.4px;
}
.executive-record-row b{
  display:block;
  overflow:hidden;
  color:#2c2f5d;
  font-size:9px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.exec-record-ref b{
  color:var(--af-purple-ink);
  font-size:10px;
}
.exec-record-ref small{
  margin-top:3px;
  color:#6f739a;
  font-weight:700;
  letter-spacing:0;
}
.exec-record-desc b{
  white-space:normal;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  line-height:1.35;
}
.exec-open{
  color:var(--af-purple);
  font-size:7.5px;
  font-weight:900;
  text-align:right;
}

/* Fault Log: map now deliberately appears before the large register */
.map-first-filter-panel{margin-bottom:10px!important}
.fault-log-map-first{
  margin-bottom:14px!important;
  border-top:4px solid var(--af-yellow)!important;
}
.inline-record-button{
  cursor:pointer;
  white-space:nowrap;
}

/* Management menu intentionally compact */
@media(min-width:801px){
  body:has(#management.portal-visible) .sidebar:before{
    content:"EXECUTIVE VIEW"!important;
  }
}

@media(max-width:1250px){
  .exec-filter-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .executive-record-row{
    grid-template-columns:minmax(160px,.9fr) minmax(150px,.8fr) minmax(180px,.9fr) minmax(250px,1.4fr) 80px 140px;
  }
  .exec-open{
    grid-column:1/-1;
    text-align:left;
  }
}
@media(max-width:900px){
  .executive-airport-map{height:360px!important}
  .inline-record-grid{grid-template-columns:1fr}
  .inline-evidence-history{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .executive-record-row{
    grid-template-columns:1fr 1fr;
  }
  .exec-record-desc{grid-column:1/-1}
  .exec-open{grid-column:auto}
}
@media(max-width:650px){
  .exec-filter-grid{grid-template-columns:1fr}
  .exec-filter-title{
    align-items:flex-start;
    flex-direction:column;
    gap:3px;
  }
  .executive-airport-map{height:300px!important}
  .inline-complete-record{padding:12px}
  .inline-record-head{flex-direction:column}
  .inline-info-grid{grid-template-columns:1fr}
  .inline-evidence-history{
    grid-template-columns:1fr!important;
  }
  .executive-record-row{
    grid-template-columns:1fr;
  }
  .exec-record-desc{grid-column:auto}
  .exec-open{text-align:left}
}

.executive-record-list{
  max-height:560px;
  overflow-y:auto;
  padding-right:3px;
  scrollbar-width:thin;
}
@media(max-width:800px){
  .executive-record-list{max-height:480px}
}


/* ==========================================================
   V5.6.2 MOBILE MAP POPUP FIX
   On touch devices, map pins select the inline record below the map.
   Floating hover cards are desktop-only and never stay stuck on scroll.
   ========================================================== */

/* Hover/detail tooltip must never block page interaction. */
.map-hover-card,
.airport-fault-tooltip,
.map-tooltip,
.fault-map-tooltip{
  pointer-events:none!important;
}

/* Touch/mobile: hide the floating hover card completely.
   The inline selected-record panel below the map remains the source of truth. */
@media (max-width:800px){
  .map-hover-card,
  .airport-fault-tooltip,
  .map-tooltip,
  .fault-map-tooltip{
    display:none!important;
    opacity:0!important;
    visibility:hidden!important;
    transform:none!important;
  }
}

/* Desktop keeps normal hover preview. */
@media (hover:hover) and (pointer:fine) and (min-width:801px){
  .map-hover-card,
  .airport-fault-tooltip,
  .map-tooltip,
  .fault-map-tooltip{
    pointer-events:none!important;
  }
}


/* ==========================================================
   V5.7 PHONE-FIRST OPERATIONS UI
   Final mobile hardening for iPhone/Android daily use.
   No workflow/database logic changes.
   ========================================================== */

:root{
  --mobile-nav-h:52px;
}

/* Global anti-overflow + iOS text behavior */
html{
  width:100%;
  max-width:100%;
  overflow-x:hidden!important;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
body{
  width:100%;
  max-width:100%;
  overflow-x:hidden!important;
  overscroll-behavior-x:none;
}
*,*::before,*::after{
  box-sizing:border-box;
}
img,svg,video,canvas{
  max-width:100%;
}
input,select,textarea,button{
  font-family:"Dubai","Segoe UI",Arial,sans-serif!important;
}

/* Mobile touch targets */
@media(max-width:900px){
  button,
  .primary,
  .success,
  .secondary-action,
  .smallbtn,
  .text-action,
  .sidebar a,
  .userbar a,
  .map-controls button,
  .evidence-lightbox-btn,
  .evidence-lightbox-nav{
    min-height:44px!important;
  }

  a,
  button,
  input,
  select,
  textarea{
    -webkit-tap-highlight-color:rgba(252,208,0,.16);
  }

  input,
  select,
  textarea{
    font-size:16px!important; /* prevents Safari focus zoom */
  }
}

/* ==========================================================
   PHONE NAVIGATION
   ========================================================== */
@media(max-width:800px){
  .topbar{
    position:sticky!important;
    top:0!important;
    z-index:120!important;
    min-height:56px!important;
    height:auto!important;
    padding:
      calc(7px + env(safe-area-inset-top))
      max(10px,env(safe-area-inset-right))
      7px
      max(10px,env(safe-area-inset-left))!important;
    gap:8px!important;
  }

  .topbar .brand{
    min-width:0!important;
    gap:8px!important;
  }

  .topbar .brandmark{
    flex:0 0 34px!important;
    width:34px!important;
    height:34px!important;
    border-radius:9px!important;
    font-size:11px!important;
  }

  .topbar .brand > div{
    min-width:0!important;
  }

  .topbar .brand b{
    display:block!important;
    overflow:hidden!important;
    max-width:54vw!important;
    font-size:11px!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }

  .topbar .brand small{
    display:none!important;
  }

  .userbar{
    flex:0 0 auto!important;
    gap:5px!important;
  }

  .userbar > span:not(.role){
    display:none!important;
  }

  .userbar .role{
    min-width:34px!important;
    height:30px!important;
    min-height:30px!important;
    padding:0 8px!important;
    display:grid!important;
    place-items:center!important;
    font-size:8px!important;
  }

  .userbar a{
    min-height:34px!important;
    padding:7px 8px!important;
    font-size:8.5px!important;
  }

  .shell{
    display:block!important;
    width:100%!important;
    min-height:0!important;
  }

  .sidebar{
    position:sticky!important;
    top:calc(48px + env(safe-area-inset-top))!important;
    z-index:110!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    display:flex!important;
    align-items:center!important;
    gap:6px!important;
    padding:7px max(8px,env(safe-area-inset-right)) 7px max(8px,env(safe-area-inset-left))!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    white-space:nowrap!important;
    -webkit-overflow-scrolling:touch!important;
    scrollbar-width:none!important;
    box-shadow:0 5px 14px rgba(34,35,86,.10)!important;
  }

  .sidebar::-webkit-scrollbar{
    display:none!important;
  }

  .sidebar:before{
    display:none!important;
  }

  .sidebar a{
    flex:0 0 auto!important;
    width:auto!important;
    min-width:max-content!important;
    min-height:38px!important;
    margin:0!important;
    padding:9px 11px!important;
    border-radius:9px!important;
    font-size:9px!important;
  }

  .main{
    width:100%!important;
    max-width:100%!important;
    min-height:0!important;
    padding:
      12px
      max(10px,env(safe-area-inset-right))
      calc(30px + env(safe-area-inset-bottom))
      max(10px,env(safe-area-inset-left))!important;
  }

  .main > .alerts,
  .main > .flash,
  .main > .section{
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  .alerts{
    gap:6px!important;
    overflow-x:auto!important;
    padding-bottom:5px!important;
    -webkit-overflow-scrolling:touch!important;
    scrollbar-width:none!important;
  }

  .alerts::-webkit-scrollbar{display:none!important}

  .alert{
    flex:0 0 auto!important;
    white-space:nowrap!important;
    padding:6px 9px!important;
    font-size:8.5px!important;
  }
}

/* ==========================================================
   MOBILE HEADINGS + KPI
   ========================================================== */
@media(max-width:800px){
  .head{
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    gap:7px!important;
    margin-bottom:13px!important;
  }

  .head h1{
    font-size:24px!important;
    line-height:1.08!important;
  }
  .head h2{
    font-size:21px!important;
    line-height:1.12!important;
  }
  .head h3{
    font-size:17px!important;
  }
  .head p{
    max-width:100%!important;
    font-size:10.5px!important;
    line-height:1.5!important;
  }

  .env-note,
  .demo,
  .training-badge{
    align-self:flex-start!important;
  }

  .kpis{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }

  .kpi{
    min-width:0!important;
    padding:13px 13px 12px!important;
    border-radius:12px!important;
  }

  .kpi small{
    font-size:7.8px!important;
  }
  .kpi b{
    font-size:24px!important;
  }
  .kpi span{
    font-size:8.5px!important;
  }
}

@media(max-width:390px){
  .kpis{
    grid-template-columns:1fr!important;
  }
}

/* ==========================================================
   MOBILE CARDS / FORMS
   ========================================================== */
@media(max-width:800px){
  .section.card,
  .card,
  .record-browser,
  .fault-filter-panel,
  .dashboard-guidance-card,
  .map-selected-card,
  .queue-detail,
  .evidence-stage{
    width:100%!important;
    max-width:100%!important;
    border-radius:12px!important;
  }

  .section.card,
  .card{
    padding:13px!important;
  }

  .formgrid,
  .grid2,
  .queue-grid,
  .fault-filter-panel,
  .admin-layout,
  .photos,
  .dashboard-workspace{
    grid-template-columns:1fr!important;
    gap:10px!important;
  }

  .formgrid .full{
    grid-column:auto!important;
  }

  label{
    margin-bottom:5px!important;
    font-size:9px!important;
  }

  input,
  select{
    width:100%!important;
    min-height:48px!important;
    padding:10px 11px!important;
    border-radius:9px!important;
  }

  textarea{
    width:100%!important;
    min-height:105px!important;
    padding:11px!important;
    border-radius:9px!important;
  }

  input[type=file]{
    min-height:48px!important;
    padding:8px!important;
  }

  .primary,
  .success,
  .secondary-action{
    width:100%!important;
    min-height:48px!important;
    padding:11px 13px!important;
    font-size:11px!important;
  }

  .smallbtn{
    min-height:40px!important;
    padding:9px 11px!important;
  }

  .summary,
  .current-owner{
    padding:11px 12px!important;
    font-size:10px!important;
    line-height:1.5!important;
  }
}

/* ==========================================================
   MOBILE QUEUES
   ========================================================== */
@media(max-width:800px){
  .queue-list{
    max-height:280px!important;
    padding:8px!important;
    border-radius:11px!important;
  }

  .queue-item{
    min-height:48px!important;
    padding:10px!important;
  }

  .queue-detail{
    min-width:0!important;
  }

  .readonly-grid{
    grid-template-columns:1fr!important;
  }
}

/* ==========================================================
   MOBILE MAPS
   ========================================================== */
@media(max-width:800px){
  .management-map,
  .fake-map,
  .shared-fault-map,
  .airport-fault-map{
    width:100%!important;
    height:52vh!important;
    min-height:300px!important;
    max-height:470px!important;
    margin:10px 0!important;
    border-radius:12px!important;
    touch-action:pan-y pinch-zoom!important;
  }

  .map-controls{
    top:8px!important;
    right:8px!important;
    gap:5px!important;
    padding:5px!important;
    border-radius:10px!important;
  }

  .map-controls button{
    width:42px!important;
    min-width:42px!important;
    height:42px!important;
    min-height:42px!important;
    font-size:18px!important;
  }

  .map-controls span{
    min-width:50px!important;
    font-size:9px!important;
  }

  .map-caption{
    left:8px!important;
    top:8px!important;
    max-width:58%!important;
    padding:7px 9px!important;
    font-size:8.5px!important;
  }

  .airport-fault-pin,
  .mapdot{
    width:18px!important;
    height:18px!important;
    margin:-9px 0 0 -9px!important;
    border-width:3px!important;
  }

  .fault-map-legend{
    display:flex!important;
    gap:7px!important;
    overflow-x:auto!important;
    padding:7px 0!important;
    white-space:nowrap!important;
    -webkit-overflow-scrolling:touch!important;
  }

  .fault-map-legend span{
    flex:0 0 auto!important;
    font-size:8px!important;
  }

  .map-selected-card{
    padding:12px!important;
  }

  .map-selected-grid{
    grid-template-columns:1fr!important;
  }

  .inline-record-panel{
    padding:12px!important;
  }
}

/* Landscape phone map */
@media(max-width:900px) and (orientation:landscape){
  .management-map,
  .fake-map,
  .shared-fault-map,
  .airport-fault-map{
    height:72vh!important;
    max-height:520px!important;
  }
}

/* ==========================================================
   MOBILE FILTERS / FAULT LOG
   ========================================================== */
@media(max-width:800px){
  .fault-filter-panel{
    padding:10px!important;
    border-top-width:3px!important;
  }

  .fault-filter-field input,
  .fault-filter-field select{
    min-height:46px!important;
  }

  .fault-log-summary{
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    gap:3px!important;
    margin:0 2px 8px!important;
    font-size:8.5px!important;
  }

  /* Operational tables remain horizontally scrollable instead of shrinking
     into unreadable text. */
  .tablewrap,
  .detailed-fault-table{
    width:100%!important;
    max-width:100%!important;
    overflow-x:auto!important;
    overscroll-behavior-x:contain!important;
    -webkit-overflow-scrolling:touch!important;
    border-radius:10px!important;
  }

  .tablewrap::after,
  .detailed-fault-table::after{
    content:"Swipe left/right to view all columns";
    position:sticky;
    left:0;
    display:block;
    width:max-content;
    padding:6px 9px;
    color:#72769b;
    font-size:8px;
    font-weight:700;
  }

  table{
    font-size:10px!important;
  }

  thead th{
    padding:10px 9px!important;
    font-size:8.5px!important;
  }

  tbody td{
    padding:9px!important;
    font-size:9.5px!important;
  }

  .detailed-fault-table table{
    min-width:1750px!important;
  }
}

/* ==========================================================
   MOBILE RECORD BROWSER
   ========================================================== */
@media(max-width:800px){
  .record-browser{
    padding:11px!important;
  }

  .record-browser-head{
    flex-direction:column!important;
    gap:7px!important;
  }

  .record-browser-head h3{
    font-size:16px!important;
  }

  .record-browser-row,
  .record-browser-row-detailed{
    grid-template-columns:1fr!important;
    gap:7px!important;
    padding:11px!important;
  }

  .rb-reference-block,
  .rb-detail-block,
  .rb-meta-block{
    grid-template-columns:1fr!important;
    padding-right:0!important;
    padding-bottom:8px!important;
    border-right:0!important;
    border-bottom:1px solid #e3e4f3!important;
  }

  .rb-description{
    grid-column:auto!important;
  }

  .rb-action-block{
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:space-between!important;
  }

  .rb-action-block .rb-open{
    text-align:right!important;
  }
}

/* ==========================================================
   MOBILE TRACKER / EVIDENCE / AUDIT
   ========================================================== */
@media(max-width:800px){
  .tracker{
    width:100%!important;
    max-width:100%!important;
    overflow-x:auto!important;
    padding:14px 8px!important;
    -webkit-overflow-scrolling:touch!important;
  }

  .tstep{
    flex:0 0 120px!important;
    min-width:120px!important;
  }

  .tstep b{
    font-size:8.5px!important;
  }

  .tstep small{
    font-size:7px!important;
  }

  .evidence-three,
  .evidence-row,
  .photos{
    grid-template-columns:1fr!important;
  }

  .evidence-three article,
  .evidence-row > div,
  .photos > div{
    width:100%!important;
    max-width:100%!important;
  }

  .evidence-three img,
  .evidence-row img,
  .photos img{
    width:100%!important;
    height:auto!important;
    max-height:360px!important;
    object-fit:cover!important;
  }

  .timeline{
    padding-left:8px!important;
  }

  .timeline-item{
    padding-left:18px!important;
    margin-bottom:15px!important;
  }

  .timeline-item b{
    font-size:9px!important;
  }

  .timeline-item p,
  .timeline-item small{
    font-size:8.5px!important;
    line-height:1.45!important;
  }
}

/* ==========================================================
   MOBILE USER ADMIN
   ========================================================== */
@media(max-width:800px){
  .admin-layout{
    grid-template-columns:1fr!important;
  }

  .admin-create-card,
  .admin-users-card{
    width:100%!important;
  }

  .admin-tablewrap table{
    min-width:720px!important;
  }

  .admin-check{
    min-height:44px!important;
  }
}

/* ==========================================================
   LOGIN SCREEN PHONE HARDENING
   ========================================================== */
@media(max-width:760px){
  .login-layout{
    width:100%!important;
    min-height:100svh!important;
  }

  .login-hero{
    padding:
      calc(22px + env(safe-area-inset-top))
      16px
      24px!important;
  }

  .login-hero h1{
    font-size:clamp(38px,12vw,52px)!important;
    letter-spacing:-1.2px!important;
  }

  .hero-lead{
    max-width:100%!important;
    font-size:14px!important;
  }

  .hero-grid{
    grid-template-columns:1fr!important;
  }

  .login-side{
    width:100%!important;
    padding:
      20px
      max(12px,env(safe-area-inset-right))
      calc(24px + env(safe-area-inset-bottom))
      max(12px,env(safe-area-inset-left))!important;
  }

  .login-card{
    width:100%!important;
    max-width:none!important;
    padding:20px 16px!important;
    border-radius:16px!important;
  }

  .login-card input{
    min-height:50px!important;
    font-size:16px!important;
  }

  .login-submit{
    min-height:50px!important;
  }

  .password-field-wrap{
    grid-template-columns:minmax(0,1fr) 52px!important;
  }

  .password-toggle{
    width:52px!important;
    min-width:52px!important;
    height:50px!important;
  }
}

/* ==========================================================
   VERY SMALL PHONES
   ========================================================== */
@media(max-width:360px){
  .topbar .brand b{
    max-width:48vw!important;
    font-size:10px!important;
  }

  .main{
    padding-left:8px!important;
    padding-right:8px!important;
  }

  .sidebar{
    padding-left:6px!important;
    padding-right:6px!important;
  }

  .sidebar a{
    padding-left:9px!important;
    padding-right:9px!important;
    font-size:8.5px!important;
  }
}


/* ==========================================================
   V5.8 LARGE INTERACTIVE AIRFIELD MAP
   ========================================================== */
.management-map,.shared-fault-map,.fake-map,.airport-fault-map{position:relative!important;overflow:hidden!important;min-height:560px!important;height:min(72vh,760px)!important;background:#eef1e6!important;user-select:none!important;-webkit-user-select:none!important;}
.airfield-layer{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;transform-origin:0 0!important;will-change:transform!important;}
.airfield-layer svg,.airfield-svg-v58{display:block!important;width:100%!important;height:100%!important;max-width:none!important;}
.map-controls{z-index:50!important;}
.map-controls button{width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;}
.map-caption{z-index:49!important;}
.airport-fault-pin,.mapdot{z-index:40!important;touch-action:manipulation!important;}
@media(max-width:800px){.management-map,.shared-fault-map,.fake-map,.airport-fault-map{min-height:430px!important;height:62vh!important;max-height:640px!important;touch-action:none!important;}.map-controls{right:7px!important;top:7px!important;}.map-controls button{width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;}}
@media(max-width:430px){.management-map,.shared-fault-map,.fake-map,.airport-fault-map{min-height:400px!important;height:58vh!important;}}
@media(max-width:900px) and (orientation:landscape){.management-map,.shared-fault-map,.fake-map,.airport-fault-map{height:78vh!important;max-height:690px!important;}}


/* ==========================================================
   V5.8.1 MAP RENDERING + SIZE FIX
   ========================================================== */

/* Airfield layer must always be visible behind pins. */
.airfield-layer{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  background:#eef1e6!important;
}
.airfield-layer svg,
.airfield-svg-v58{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  width:100%!important;
  height:100%!important;
  pointer-events:none!important;
}

/* Large operational command maps only. */
.management-map,
.shared-fault-map,
.airport-fault-map{
  min-height:520px!important;
  height:min(68vh,720px)!important;
  max-height:760px!important;
}

/* Embedded maps used in forms/evidence were accidentally inheriting the huge
   command-map dimensions in v5.8. Keep them professional and compact. */
.fake-map:not(.management-map):not(.shared-fault-map):not(.airport-fault-map){
  width:100%!important;
  min-height:250px!important;
  height:300px!important;
  max-height:340px!important;
  margin:8px 0!important;
  touch-action:pan-y!important;
}
.picker.fake-map:not(.management-map):not(.shared-fault-map):not(.airport-fault-map){
  min-height:300px!important;
  height:340px!important;
  max-height:380px!important;
  cursor:crosshair!important;
}
.readonlymap.fake-map:not(.management-map):not(.shared-fault-map):not(.airport-fault-map){
  min-height:240px!important;
  height:280px!important;
  max-height:320px!important;
  cursor:default!important;
}

/* Pin/caption layering in embedded maps. */
.fake-map .airfield-layer > i{
  z-index:18!important;
}
.fake-map > .map-caption,
.management-map > .map-caption,
.airport-fault-map > .map-caption{
  position:absolute!important;
  left:10px!important;
  top:10px!important;
  z-index:55!important;
  padding:7px 9px!important;
  border:1px solid #d6d8ea!important;
  border-radius:9px!important;
  background:rgba(255,255,255,.94)!important;
  color:#303268!important;
  font-size:8.5px!important;
  font-weight:900!important;
  pointer-events:none!important;
}

/* Ensure transformed pins remain visible/clickable inside full maps. */
.management-map .airfield-layer > a.mapdot,
.shared-fault-map .airfield-layer > a.mapdot,
.airport-fault-map .airfield-layer > a.mapdot{
  display:block!important;
  pointer-events:auto!important;
  z-index:40!important;
}

/* Controls are always visible above the schematic. */
.management-map > .map-controls,
.shared-fault-map > .map-controls,
.airport-fault-map > .map-controls{
  display:flex!important;
  visibility:visible!important;
  opacity:1!important;
  z-index:60!important;
}

@media(max-width:800px){
  .management-map,
  .shared-fault-map,
  .airport-fault-map{
    min-height:410px!important;
    height:58vh!important;
    max-height:600px!important;
  }
  .fake-map:not(.management-map):not(.shared-fault-map):not(.airport-fault-map){
    min-height:220px!important;
    height:260px!important;
    max-height:300px!important;
  }
  .picker.fake-map:not(.management-map):not(.shared-fault-map):not(.airport-fault-map){
    min-height:270px!important;
    height:310px!important;
    max-height:340px!important;
  }
  .readonlymap.fake-map:not(.management-map):not(.shared-fault-map):not(.airport-fault-map){
    min-height:210px!important;
    height:245px!important;
    max-height:280px!important;
  }
}


/* V5.8.2 desktop hover card polish */
@media(min-width:801px){
  .fault-map-tooltip{
    width:min(390px,calc(100vw - 32px))!important;
    padding:15px 16px!important;
    border:1px solid rgba(255,255,255,.10)!important;
    border-radius:16px!important;
    background:#202629!important;
    color:#fff!important;
    box-shadow:0 20px 48px rgba(0,0,0,.34)!important;
    visibility:visible;
  }
  .fault-map-tooltip.visible{
    opacity:1!important;
    visibility:visible!important;
  }
  .fault-map-tooltip .fmt-ref{
    display:block!important;
    margin-bottom:5px!important;
    color:#fcd000!important;
    font-size:11px!important;
    font-weight:900!important;
  }
  .fault-map-tooltip b{
    margin-bottom:8px!important;
    color:#fff!important;
    font-size:16px!important;
    line-height:1.25!important;
  }
  .fault-map-tooltip .fmt-line{
    grid-template-columns:92px minmax(0,1fr)!important;
    gap:10px!important;
    margin-top:6px!important;
    font-size:12px!important;
    line-height:1.35!important;
  }
  .fault-map-tooltip .fmt-line span:first-child{
    color:#b7bec1!important;
  }
  .fault-map-tooltip .fmt-desc{
    margin-top:10px!important;
    padding-top:10px!important;
    color:#f0f2f3!important;
    font-size:12px!important;
    line-height:1.5!important;
  }
}


/* ==========================================================
   V5.8.4 MOBILE BLACK FAULT CARD
   Phone/tablet equivalent of the desktop hover card.
   Anchored inside the map so it never follows the user down the page.
   ========================================================== */

.mobile-fault-card{
  display:none;
}

@media (hover:none), (pointer:coarse), (max-width:800px){
  .mobile-fault-card{
    position:absolute;
    left:10px;
    right:10px;
    bottom:10px;
    z-index:80;
    display:none;
    max-height:52%;
    overflow-y:auto;
    padding:13px 14px 12px;
    border:1px solid rgba(255,255,255,.13);
    border-radius:14px;
    background:rgba(18,19,25,.96);
    color:#fff;
    box-shadow:0 16px 38px rgba(0,0,0,.36);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    -webkit-overflow-scrolling:touch;
  }

  .mobile-fault-card.open{
    display:block;
    animation:mobileFaultCardIn .14s ease-out;
  }

  @keyframes mobileFaultCardIn{
    from{opacity:0;transform:translateY(8px)}
    to{opacity:1;transform:none}
  }

  .mobile-fault-card-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
    padding-bottom:9px;
    margin-bottom:9px;
    border-bottom:1px solid rgba(255,255,255,.13);
  }

  .mobile-fault-card-title{
    min-width:0;
  }

  .mobile-fault-card-title small{
    display:block;
    margin-bottom:3px;
    color:#fcd000;
    font-size:8px;
    font-weight:900;
    letter-spacing:.7px;
  }

  .mobile-fault-card-title b{
    display:block;
    overflow:hidden;
    color:#fff;
    font-size:13px;
    line-height:1.25;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  .mobile-fault-card-close{
    flex:0 0 34px;
    width:34px;
    height:34px;
    min-width:34px!important;
    min-height:34px!important;
    display:grid;
    place-items:center;
    padding:0;
    border:1px solid rgba(255,255,255,.16);
    border-radius:9px;
    background:rgba(255,255,255,.06);
    color:#fff;
    font-size:20px;
    line-height:1;
    cursor:pointer;
  }

  .mobile-fault-card-close:active{
    background:#fcd000;
    color:#171844;
  }

  .mobile-fault-card-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px 12px;
  }

  .mobile-fault-card-field{
    min-width:0;
  }

  .mobile-fault-card-field.full{
    grid-column:1/-1;
  }

  .mobile-fault-card-field small{
    display:block;
    margin-bottom:2px;
    color:#aeb2bf;
    font-size:7.5px;
    font-weight:800;
    letter-spacing:.25px;
    text-transform:uppercase;
  }

  .mobile-fault-card-field b,
  .mobile-fault-card-field span{
    display:block;
    overflow-wrap:anywhere;
    color:#fff;
    font-size:10px;
    line-height:1.35;
  }

  .mobile-fault-card-status{
    display:inline-flex!important;
    width:auto!important;
    padding:4px 7px;
    border-radius:999px;
    background:#30323a;
    color:#fff!important;
    font-size:8.5px!important;
    font-weight:900!important;
  }

  .mobile-fault-card-action{
    width:100%;
    min-height:42px!important;
    margin-top:10px;
    padding:9px 12px;
    border:0;
    border-radius:9px;
    background:#fcd000;
    color:#171844;
    font:inherit;
    font-size:9.5px;
    font-weight:900;
    cursor:pointer;
  }

  /* Keep the map visible behind the card */
  .management-map,
  .shared-fault-map,
  .airport-fault-map,
  .fake-map{
    position:relative!important;
  }
}

@media(max-width:390px){
  .mobile-fault-card{
    left:7px;
    right:7px;
    bottom:7px;
    padding:11px 12px;
    max-height:56%;
  }

  .mobile-fault-card-grid{
    grid-template-columns:1fr;
    gap:7px;
  }

  .mobile-fault-card-field.full{
    grid-column:auto;
  }
}


/* ==========================================================
   V5.8.5 MANAGEMENT STREAMLINING
   ========================================================== */

#management .airport-fault-pin{
  cursor:pointer!important;
}

#management .fault-map-head p{
  max-width:760px;
}

@media(max-width:800px){
  #management .airport-fault-pin{
    cursor:pointer!important;
  }
}


/* ==========================================================
   V5.8.6 MAP CARD RELIABILITY
   ========================================================== */

/* Desktop floating preview must never inherit stale inline hiding. */
@media(min-width:801px){
  body > #faultMapTooltip.fault-map-tooltip{
    display:block!important;
    visibility:visible!important;
  }

  body > #faultMapTooltip.fault-map-tooltip:not(.visible){
    opacity:0!important;
    pointer-events:none!important;
  }

  body > #faultMapTooltip.fault-map-tooltip.visible{
    opacity:1!important;
    visibility:visible!important;
  }

  .airport-fault-map .airport-fault-pin{
    cursor:pointer!important;
    pointer-events:auto!important;
  }
}

/* Phones/tablets never use the desktop fixed tooltip. */
@media(max-width:800px){
  body > #faultMapTooltip.fault-map-tooltip{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
  }

  .mobile-fault-card.open{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
  }
}


/* ==========================================================
   V5.8.7 DESKTOP ALWAYS-AVAILABLE ROLE NAVIGATION
   DO / ACW / DMA / SDMA / MGMT
   ========================================================== */
@media(min-width:801px){
  .shell{
    align-items:start!important;
    overflow:visible!important;
  }

  .sidebar{
    position:sticky!important;
    top:58px!important;
    align-self:start!important;
    height:calc(100vh - 58px)!important;
    min-height:0!important;
    max-height:calc(100vh - 58px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    z-index:95!important;
    padding-bottom:24px!important;
    scrollbar-width:thin!important;
  }

  .sidebar::-webkit-scrollbar{
    width:6px;
  }

  .sidebar::-webkit-scrollbar-track{
    background:transparent;
  }

  .sidebar::-webkit-scrollbar-thumb{
    background:rgba(255,255,255,.22);
    border-radius:999px;
  }

  .sidebar a{
    position:relative;
    z-index:1;
  }

  .main{
    min-width:0!important;
  }

  /* Record body target sits below the sticky top header. */
  #selectedRecordDetails{
    scroll-margin-top:82px!important;
  }
}

.record-jump-highlight{
  animation:recordJumpPulse587 1.15s ease-out;
}

@keyframes recordJumpPulse587{
  0%{box-shadow:0 0 0 0 rgba(252,208,0,.48)}
  45%{box-shadow:0 0 0 5px rgba(252,208,0,.15)}
  100%{box-shadow:0 0 0 0 rgba(252,208,0,0)}
}


/* ==========================================================
   V5.8.8 PHONE LIFECYCLE TRACKER
   Vertical timeline on phone — ZERO horizontal scrolling.
   Desktop/tablet landscape tracker remains unchanged.
   ========================================================== */

@media(max-width:800px){
  .tracker{
    display:flex!important;
    flex-direction:column!important;
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
    overflow-y:visible!important;
    gap:0!important;
    padding:12px 13px!important;
    margin:0 0 14px!important;
    border-radius:13px!important;
  }

  .tracker .tstep{
    position:relative!important;
    display:grid!important;
    grid-template-columns:42px minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    align-items:center!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    flex:none!important;
    min-height:54px!important;
    padding:4px 0 8px!important;
    text-align:left!important;
  }

  .tracker .tstep i{
    grid-column:1!important;
    grid-row:1 / span 2!important;
    width:34px!important;
    height:34px!important;
    margin:0!important;
    align-self:start!important;
    justify-self:start!important;
    position:relative!important;
    z-index:3!important;
    font-size:13px!important;
  }

  .tracker .tstep b{
    grid-column:2!important;
    grid-row:1!important;
    display:block!important;
    min-width:0!important;
    margin:1px 0 0!important;
    padding:0 4px!important;
    color:var(--af-purple-ink,#232554)!important;
    font-size:11px!important;
    font-weight:900!important;
    line-height:1.3!important;
    text-align:left!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }

  .tracker .tstep small{
    grid-column:2!important;
    grid-row:2!important;
    display:block!important;
    min-height:10px!important;
    margin:2px 0 0!important;
    padding:0 4px!important;
    color:#8a7100!important;
    font-size:7.5px!important;
    font-weight:900!important;
    line-height:1.2!important;
    text-align:left!important;
  }

  /* Override the desktop horizontal connector with a vertical connector. */
  .tracker .tstep:not(:last-child):before{
    content:""!important;
    position:absolute!important;
    top:35px!important;
    left:15px!important;
    width:4px!important;
    height:calc(100% - 21px)!important;
    border-radius:999px!important;
    background:#d7d1bd!important;
    z-index:1!important;
  }

  .tracker .tstep.done:not(:last-child):before{
    background:var(--green,#168754)!important;
  }

  /* Current stage remains visually prominent without widening the card. */
  .tracker .tstep.current i{
    box-shadow:0 0 0 4px rgba(252,208,0,.18)!important;
  }

  .tracker .tstep.current b{
    color:var(--af-purple,#2c2d65)!important;
  }

  .tracker .tstep:last-child{
    min-height:42px!important;
    padding-bottom:2px!important;
  }
}

/* Extra-small phones: keep the full lifecycle readable even around 320px. */
@media(max-width:360px){
  .tracker{
    padding:10px!important;
  }

  .tracker .tstep{
    grid-template-columns:39px minmax(0,1fr)!important;
    min-height:52px!important;
  }

  .tracker .tstep i{
    width:32px!important;
    height:32px!important;
  }

  .tracker .tstep:not(:last-child):before{
    left:14px!important;
    top:33px!important;
  }

  .tracker .tstep b{
    font-size:10.5px!important;
  }
}


/* ==========================================================
   V5.8.9 TRUE FIXED DESKTOP ROLE NAVIGATION — FINAL
   DO / ACW / DMA / SDMA / MGMT
   ========================================================== */
@media(min-width:801px){
  html,
  body{
    min-height:100%!important;
  }

  body{
    overflow-x:hidden!important;
  }

  .topbar{
    position:fixed!important;
    top:0!important;
    left:0!important;
    right:0!important;
    width:100%!important;
    height:62px!important;
    min-height:62px!important;
    box-sizing:border-box!important;
    z-index:1000!important;
  }

  .shell{
    display:block!important;
    width:100%!important;
    min-height:100vh!important;
    padding-top:62px!important;
    overflow:visible!important;
  }

  .sidebar{
    position:fixed!important;
    top:62px!important;
    left:0!important;
    right:auto!important;
    bottom:0!important;
    z-index:950!important;

    width:225px!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;

    display:block!important;
    align-self:auto!important;

    overflow-y:auto!important;
    overflow-x:hidden!important;

    padding:14px 10px 24px!important;

    background:linear-gradient(180deg,#292b61 0%,#242654 100%)!important;
    border-right:1px solid rgba(255,255,255,.04)!important;
    box-shadow:8px 0 22px rgba(35,37,85,.08)!important;

    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    scrollbar-width:thin!important;
  }

  .sidebar::-webkit-scrollbar{
    width:6px!important;
  }

  .sidebar::-webkit-scrollbar-track{
    background:transparent!important;
  }

  .sidebar::-webkit-scrollbar-thumb{
    background:rgba(255,255,255,.22)!important;
    border-radius:999px!important;
  }

  .main{
    display:block!important;
    width:auto!important;
    max-width:none!important;
    min-width:0!important;
    min-height:calc(100vh - 62px)!important;

    margin-left:225px!important;
    padding-top:18px!important;

    overflow:visible!important;
  }

  .main > .section,
  .main > .alerts,
  .main > .flash{
    max-width:100%!important;
  }

  section.section,
  #selectedRecordDetails{
    scroll-margin-top:80px!important;
  }
}


/* ==========================================================
   V5.9.0 AREA-SMART MAP + DESCRIPTION GUIDANCE
   Requested management refinement only - prototype references.
   ========================================================== */
.prototype-code-zone{opacity:0;transition:opacity .18s ease;pointer-events:none}
.prototype-code-zone.is-focused{opacity:1}
.prototype-focus-box{fill:#f3c94824;stroke:#a77700;stroke-width:3;stroke-dasharray:10 7}
.prototype-code-tags text{
  font-family:"Dubai","Segoe UI",Arial,sans-serif;
  font-size:11px;
  font-weight:900;
  fill:#191d20;
  paint-order:stroke;
  stroke:#fff8d8;
  stroke-width:5px;
  stroke-linejoin:round;
}
.prototype-disclaimer{
  font-family:"Dubai","Segoe UI",Arial,sans-serif;
  font-size:8px;
  font-weight:900;
  fill:#786b45;
  letter-spacing:.5px;
}
.description-guide{
  border:1px solid #e3d28a;
  background:#fff9dd;
  border-radius:11px;
  padding:12px 14px;
}
.description-guide-title{font-size:11px;font-weight:900;color:#22264f;margin-bottom:6px;text-transform:uppercase;letter-spacing:.35px}
.description-required{font-size:10.5px;color:#4a4e50;line-height:1.55}
.description-required span{font-weight:800;color:#6d5500}
.description-template{margin-top:7px;font-size:10.5px;font-weight:800;color:#34383a}
.description-example{margin-top:6px;font-size:10.5px;color:#686e70;font-style:italic;line-height:1.45}
.field-note{display:block;margin-top:5px;color:#73797b;font-size:9.5px;line-height:1.4}
#mapPicker .map-caption{max-width:72%}
@media(max-width:800px){
  .description-guide{padding:11px 12px}
  .prototype-code-tags text{font-size:13px;stroke-width:6px}
  #mapPicker .map-caption{max-width:68%}
}
