/* DASHBOARD page: KPI strip, Aviation & Warning cards, Reports & Data + OLBS Records */
.dgrid{flex:none;display:grid;grid-template-columns:repeat(2,1fr);gap:16px;align-content:start}

/* ---- Top KPI Strip (#dStats) ---- */
#v-dash .stats{grid-template-columns:repeat(4,1fr);gap:14px}
#v-dash .stats.us{grid-template-columns:1.38fr 1fr 1fr 1fr}
#v-dash .stat{position:relative;display:flex;align-items:center;gap:14px;min-width:0;padding:14px 18px;border-radius:16px;box-shadow:0 3px 10px rgba(15,40,90,.05)}
#v-dash .stat.k1{background:linear-gradient(135deg,#e2eeff 0%,#edf4ff 100%);border:1px solid #cce0fe}
#v-dash .stat.k2{background:linear-gradient(135deg,#dff7e8 0%,#edfcf2 100%);border:1px solid #bcebd0}
#v-dash .stat.k3{background:linear-gradient(135deg,#ffeedb 0%,#fff6eb 100%);border:1px solid #fbd8b0}
#v-dash .stat.k4{background:linear-gradient(135deg,#efe9ff 0%,#f7f4ff 100%);border:1px solid #d9cefd}

#v-dash .stic{flex:none;width:52px;height:52px;border-radius:50%;display:grid;place-items:center}
#v-dash .stic .ic{width:28px;height:28px}
#v-dash .stat.k1 .stic{background:#c5dfff;color:#0d6efd}
#v-dash .stat.k2 .stic{background:#bbf0d1;color:#15803d}
#v-dash .stat.k3 .stic{background:#fde0bd;color:#ea580c}
#v-dash .stat.k4 .stic{background:#ddd1fe;color:#6d28d9}

#v-dash .stbody,#v-dash .sti{min-width:0;display:flex;flex-direction:column;gap:1px}
#v-dash .stat small{font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#1e335c}
#v-dash .stat b{font-size:27px;font-weight:900;line-height:1.1;color:#0b2250;font-variant-numeric:tabular-nums}
#v-dash .stat.k4 .stbody b{font-size:23px;white-space:nowrap}
#v-dash .stat span{font-size:13.5px;font-weight:500;color:#4f6282}

#v-dash .stbg{width:40px;height:40px;margin-left:auto;opacity:.32;flex:none}
#v-dash .stat.k2 .stbg{color:#1ea355}
#v-dash .stat.k3 .stbg{color:#ea7a0c}
#v-dash .stat.k4 .stbg{color:#7c3aed}

/* Station card runway section */
#v-dash .stat.stn{gap:14px;flex-wrap:nowrap}
#v-dash .stat.stn .sti{padding-right:14px;border-right:1px solid #bfd5f8}
#v-dash .stat.stn .sti b{font-size:26px;letter-spacing:.03em}
#v-dash .stat.stn .str{flex:1;min-width:0;display:flex;align-items:center}
.rw-wrap{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.rw-info{display:flex;flex-direction:column;gap:1px;width:100%}
.rw-lbl{font-size:12.5px;color:#4f6282;font-weight:500}
.rw-val{font-size:14.5px!important;font-weight:800!important;color:#0b2250!important;line-height:1.15!important}
.rw-btn{align-self:flex-end;margin-top:-18px;height:33px!important;padding:0 12px!important;border-radius:9px!important;background:#fff!important;border:1px solid #c5d7f2!important;color:#0b2250!important;font:800 13.5px var(--ff)!important;box-shadow:0 2px 5px rgba(15,40,90,.06)!important;gap:6px!important}
.rw-btn:hover{background:#f3f7ff!important;border-color:#1d6bf3!important}
.rw-btn .ic{width:17px!important;height:17px!important;color:#0b2250}

/* ---- Dashboard Main Cards (.tile) ---- */
.tile{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;gap:12px;min-width:0;padding:18px 22px;border-radius:18px;box-shadow:0 4px 14px rgba(15,40,90,.05);scroll-margin-top:8px}
.tile.wide{grid-column:1/-1}

.av-tile{background:linear-gradient(180deg,#e3eeff 0%,#eef5ff 100%);border:1px solid #cde0fe}
.warn-tile{background:linear-gradient(135deg,#ffe9dc 0%,#fff2ea 55%,#f4e6ec 100%);border:1px solid #fbd2bd}
.rep-tile{background:linear-gradient(180deg,#e4f7eb 0%,#eefaf2 100%);border:1px solid #c2ebd0;gap:16px}

/* Card background artwork */
.tile-art{position:absolute;pointer-events:none;z-index:0}
.av-art{right:10px;top:6px;width:175px;height:135px}
.warn-art{right:0;top:0;width:330px;height:155px}
.tile>*:not(.tile-art){position:relative;z-index:1}

/* Card header with rounded square icon badge */
.thdr{display:flex;align-items:center;gap:16px}
.ticon{flex:none;width:54px;height:54px;border-radius:14px;display:grid;place-items:center;color:#fff}
.ticon .ic{width:28px;height:28px}
.ticon.blue{background:linear-gradient(180deg,#1a73f8,#0b5ed7);box-shadow:0 6px 14px rgba(13,110,253,.26)}
.ticon.red{background:linear-gradient(180deg,#e6192e,#c8102e);box-shadow:0 6px 14px rgba(220,38,38,.26)}
.ticon.green{background:#bcead0;color:#15803d;box-shadow:0 3px 8px rgba(21,128,61,.12)}

.ttxt{min-width:0;flex:1}
.ttxt h3{margin:0;font-size:23px;font-weight:800;line-height:1.15;color:#0b2250}
.ttxt p{margin:3px 0 0;font-size:14.5px;font-weight:500;color:#465a7e}
.warn-tile .ttxt p{color:#524452;text-shadow:0 1px 0 rgba(255,255,255,.6)}
.rep-tile .ttxt p{color:#466356}

/* Last submitted METAR box inside Aviation message */
.tile .lastm{margin:2px 0;padding:12px 16px;border-radius:12px;background:rgba(255,255,255,.92);border:1px solid #d4e3fc;font:700 14.5px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#0b2250;overflow-wrap:anywhere;box-shadow:0 2px 6px rgba(15,40,90,.04)}
.tile .lastm.empty-last{color:#5b6b86;font-weight:600}

/* Card footer buttons */
.tfoot{display:flex;align-items:center;gap:12px;margin-top:auto}
.av-btn{width:100%;height:48px!important;border-radius:12px!important;font-size:17px!important;font-weight:800!important;padding:0 20px!important;background:linear-gradient(180deg,#1a73f8,#0d5bd9)!important;border-color:#0b53c6!important;box-shadow:0 6px 14px rgba(13,110,253,.28)!important}
.av-btn span{flex:0 1 auto}
.av-btn .chev{width:20px!important;height:20px!important;margin-left:6px}

.warn-row{display:flex;gap:12px;width:100%}
.warn-req,.warn-lat{height:48px!important;border-radius:12px!important;font-size:16.5px!important;font-weight:800!important;padding:0 18px!important;display:inline-flex;align-items:center;justify-content:space-between;gap:10px}
.warn-req{flex:1.15;background:linear-gradient(180deg,#f46a70,#e5484d)!important;border-color:#e0575c!important;color:#fff!important;box-shadow:0 6px 14px rgba(229,72,77,.24)!important}
.warn-req:hover{filter:brightness(1.06)}
.warn-lat{flex:1;background:#fff!important;border:1px solid #e4d5cf!important;color:#0b2250!important;box-shadow:0 3px 8px rgba(15,40,90,.06)!important}
.warn-lat:hover{background:#f8fafd!important;border-color:#c5d4ea!important}
.warn-req span,.warn-lat span:not(.wbadge){flex:1;text-align:center}
.warn-req .chev,.warn-lat .chev{width:19px!important;height:19px!important;flex:none}

/* ---- Reports and data sub-cards (.rep-grid, .rbox, .olbs) ---- */
.rep-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.rbox{border-radius:14px;padding:16px 18px;display:flex;flex-direction:column;gap:12px}
.rbox.disp{background:#e3effd;border:1px solid #c9defa}
.rbox.arch{background:#ddf3e6;border:1px solid #bfe6cf}
.rbox.olbs{background:#ebe7fb;border:1px solid #d5cbf9}

.rbh{display:flex;align-items:center;gap:10px}
.rbh .ic{width:28px;height:28px}
.rbox.disp .rbh .ic{color:#0d6efd}
.rbox.arch .rbh .ic{color:#15803d}
.rbox.olbs .rbh .ic{color:#6d28d9}
.rbh b{font-size:18px;font-weight:800;color:#0b2250}

.rblist{display:flex;flex-direction:column;gap:10px}
.rbtn{display:flex;align-items:center;gap:12px;height:46px;padding:0 16px;border-radius:11px;background:#fff;border:1px solid rgba(15,40,90,.09);color:#0b2250;font:700 15.5px var(--ff);text-decoration:none;box-shadow:0 2px 6px rgba(15,40,90,.05);transition:background .12s,border-color .12s,transform .12s}
.rbtn:hover{background:#f7faff;border-color:#9ec1f7;transform:translateY(-1px)}
.rbtn .rbic{width:21px;height:21px;color:#0b2250;flex:none}
.rbtn span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rbtn .chev{width:18px;height:18px;color:#0b2250;flex:none;opacity:.85}

/* Work in progress pill inside ready button */
.wiptag{font-style:normal;font-size:11.5px;font-weight:800;letter-spacing:.03em;padding:3px 9px;border-radius:999px;background:#fff4e0;border:1px solid #f5d096;color:#b45309;white-space:nowrap;flex:none}

/* OLBS Records 6-button grid */
.olbs-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.olbs-btn{padding:0 14px;font-size:15px}

/* Hero welcome box & section filtering */
.who{margin-left:auto;display:flex;flex-direction:column;gap:2px;padding:10px 18px;border-radius:12px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.32);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.who b{font-size:18px}
.who span{font-size:14px;opacity:.92;font-variant-numeric:tabular-nums}
.who em{font-style:normal;font-weight:800;font-size:14px;color:#7dffb0}

body[data-view=dash] #v-dash{display:flex}
body[data-sec]:not([data-sec=all]) .tile{display:none}
body[data-sec=s-av] #s-av,body[data-sec=s-warn] #s-warn,body[data-sec=s-rep] #s-rep,body[data-sec=s-olbs] #s-olbs{display:flex;grid-column:1/-1}

@media(max-width:1500px){
 .olbs-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:1100px){
 #v-dash .stats,#v-dash .stats.us{grid-template-columns:repeat(2,1fr)}
 .rep-grid{grid-template-columns:1fr}
 .olbs-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:900px){
 .who{margin-left:0}
 .dgrid,#v-dash .stats,#v-dash .stats.us,.olbs-grid{grid-template-columns:1fr}
 .warn-row{flex-direction:column;align-items:stretch}
}

/* Admin OLBS Records tile & station picker */
.olbs-admin-tile{background:linear-gradient(180deg,#efeaff 0%,#f7f4ff 100%);border:1px solid #d7cdfc;cursor:pointer}
.ticon.purple{background:#ddd1fe;color:#6d28d9;box-shadow:0 3px 8px rgba(109,40,217,.14)}
.adm-olbs-stg{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;padding:4px 0 0}
.adm-olbs-stt{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;border-radius:12px;border:1px solid #d5cbf9;background:#fff;color:#0b2250;cursor:pointer;text-align:left;box-shadow:0 2px 6px rgba(15,40,90,.05);transition:border-color .12s,transform .12s,background .12s}
.adm-olbs-stt:hover{background:#f7f4ff;border-color:#7c3aed;transform:translateY(-1px)}
.adm-olbs-stt b{font:800 18px var(--ff);color:#0b2250;letter-spacing:.04em}
.adm-olbs-stt span{font:600 13.5px var(--ff);color:#4f6282}
.adm-olbs-stt em{font:700 12px var(--ff);color:#6d28d9;margin-top:4px;font-style:normal}
.adm-olbs-box{background:#e6dffb!important;border-color:#cdbdf8!important}

/* dashboard section chips (were in the left panel) */
.dsec{display:flex;flex-wrap:wrap;gap:8px}
.dsec a{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 16px;border-radius:999px;background:#fff;border:1px solid #dbe4f1;color:#1c2b4a;font-weight:700;font-size:15px;text-decoration:none;white-space:nowrap}
.dsec a .ic{width:20px;height:20px;color:#26395f}
.dsec a:hover:not(.on){background:#eef3fb}
.dsec a.on{background:linear-gradient(180deg,#2f7bff,#1560ec);color:#fff;border-color:transparent;box-shadow:0 4px 10px rgba(29,107,243,.3)}
.dsec a.on .ic{color:#fff}
@media print{.dsec{display:none}}

/* OLBS button: the OLBS Records box blinks once so that it is easy to find */
.rbox.flash{animation:rbflash 1.3s ease-out}
@keyframes rbflash{0%{box-shadow:0 0 0 0 rgba(29,107,243,.55)}35%{box-shadow:0 0 0 8px rgba(29,107,243,.28)}100%{box-shadow:0 0 0 0 rgba(29,107,243,0)}}
