/* SIMFLY v42.0 — responsive data visualization without canvas sizing conflicts. */
.visual-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,340px);gap:28px;align-items:center;padding:32px 36px;border-radius:24px;overflow:hidden;color:#fff;background:radial-gradient(circle at 82% 15%,rgba(216,184,94,.38),transparent 28%),linear-gradient(135deg,#071a3d,#0d477f);box-shadow:0 16px 38px rgba(7,26,61,.2)}
.visual-hero>div{min-width:0}.visual-hero h1{margin:5px 0;font-size:clamp(29px,3vw,40px);line-height:1.12}.visual-hero p{max-width:820px;margin:0;color:#d4e0f0}.visual-hero .eyebrow{color:#f0d27b}
.visual-scope{display:flex;flex-direction:column;gap:3px;min-width:0;padding:17px 19px;border:1px solid rgba(255,255,255,.2);border-radius:15px;background:rgba(255,255,255,.09);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.visual-scope small,.visual-scope span{color:#c8d6eb}.visual-scope b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.visual-filter{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(2,minmax(165px,.7fr)) auto;gap:14px;align-items:end;margin:20px 0;padding:18px 20px}.visual-filter label{min-width:0}.visual-filter input,.visual-filter select{min-width:0}.visual-filter__actions{display:flex;gap:9px;align-items:center;white-space:nowrap}.visual-filter__actions .btn,.visual-filter__actions button{min-height:43px;padding:11px 15px;text-align:center}
.visual-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:20px}.visual-kpis article{position:relative;min-width:0;min-height:120px;padding:19px 20px;overflow:hidden;border:1px solid var(--line);border-radius:17px;background:linear-gradient(145deg,#fff,#f8fbff);box-shadow:0 5px 18px rgba(16,42,86,.06)}.visual-kpis article:after{content:"";position:absolute;right:-18px;bottom:-25px;width:76px;height:76px;border:15px solid rgba(201,164,76,.1);border-radius:50%}.visual-kpis span,.visual-kpis small{position:relative;z-index:1;display:block;color:var(--muted)}.visual-kpis b{position:relative;z-index:1;display:block;max-width:100%;margin:5px 0 2px;overflow:hidden;color:var(--blue);font-size:clamp(23px,2.2vw,31px);line-height:1.12;text-overflow:ellipsis;white-space:nowrap}
.visual-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:20px 0}.visual-grid--wide{grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr)}.visual-grid--single{grid-template-columns:minmax(0,1fr)}.visual-chart-card{min-width:0;overflow:hidden}.visual-chart-card:hover{transform:none}.visual-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;min-width:0;margin-bottom:17px}.visual-card-head>div{min-width:0}.visual-card-head h2{margin:2px 0;font-size:20px;line-height:1.25}.visual-card-head>small{flex:0 0 auto;max-width:180px;color:var(--muted);font-size:11px;text-align:right}.visual-card-head--pipeline{margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}
.visual-empty{display:grid;place-items:center;min-height:120px;padding:25px;border:1px dashed #cad5e3;border-radius:13px;background:#f8fafc;color:var(--muted);text-align:center}
.visual-columns{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;padding:4px 1px 8px;overscroll-behavior-inline:contain;scrollbar-width:thin}.visual-columns__track{display:flex;align-items:stretch;gap:9px;width:max-content;min-width:100%;height:248px;padding:2px}.visual-column{display:grid;grid-template-rows:34px minmax(0,1fr) 23px;flex:1 0 66px;min-width:66px;max-width:92px;text-align:center}.visual-column>b{display:block;overflow:hidden;color:#173b68;font-size:10px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.visual-column>small{display:block;padding-top:5px;color:var(--muted);font-size:10px}.visual-column__well{display:flex;align-items:flex-end;justify-content:center;min-height:0;border-bottom:1px solid #dce5ef;background:linear-gradient(180deg,transparent,#f4f7fb)}.visual-column__well>i{display:block;width:clamp(22px,55%,38px);min-height:4px;border-radius:7px 7px 2px 2px;background:linear-gradient(180deg,#e2c46d,#b98b2c);box-shadow:0 4px 10px rgba(185,139,44,.2);animation:visualGrow 650ms ease both}.visual-column__well>i.delay-column{background:linear-gradient(180deg,#efaa78,#c4512e);box-shadow:0 4px 10px rgba(196,81,46,.2)}
.visual-donut-layout{display:grid;grid-template-columns:180px minmax(0,1fr);gap:22px;align-items:center;min-height:250px}.visual-donut{--segment:0;display:grid;place-items:center;width:166px;height:166px;margin:auto;border-radius:50%;background:radial-gradient(circle,#fff 0 54%,transparent 55%),conic-gradient(#1b9a6c 0 calc(var(--segment)*1%),#d6aa43 0 100%);box-shadow:inset 0 0 0 1px rgba(7,26,61,.05)}.visual-donut>div{display:flex;flex-direction:column;text-align:center}.visual-donut b{font-size:29px;color:var(--blue)}.visual-donut small{color:var(--muted)}.visual-legend{display:grid;gap:11px;min-width:0}.visual-legend span{display:grid;grid-template-columns:11px minmax(0,1fr) auto;gap:8px;align-items:center;min-width:0;padding:10px 11px;border-radius:10px;background:#f7f9fc}.visual-legend i{width:10px;height:10px;border-radius:50%}.visual-legend i.arrival{background:#1b9a6c}.visual-legend i.departure{background:#d6aa43}
.visual-hbars{display:grid;gap:13px;min-width:0}.visual-hbar{display:grid;gap:6px;min-width:0}.visual-hbar__label{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;min-width:0}.visual-hbar__label span{overflow:hidden;color:#35506e;font-size:12px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.visual-hbar__label b{font-size:12px;white-space:nowrap}.visual-hbar__track{height:10px;overflow:hidden;border-radius:999px;background:#e9eef5}.visual-hbar__track>i{display:block;height:100%;min-width:0;border-radius:999px;animation:visualWide 650ms ease both}.visual-hbar__track>i.gold{background:linear-gradient(90deg,#0c477f,#d5ad4a)}.visual-hbar__track>i.red{background:linear-gradient(90deg,#efaa78,#c43b35)}.visual-hbar__track>i.green{background:linear-gradient(90deg,#0b7651,#22ae7a)}.visual-hbar__track>i.orange{background:linear-gradient(90deg,#da9a31,#d05a37)}
.visual-stack{display:flex;width:100%;height:23px;margin:9px 0 17px;overflow:hidden;border-radius:999px;background:#edf1f6;box-shadow:inset 0 0 0 1px rgba(7,26,61,.05)}.visual-stack>i{display:block;min-width:0;height:100%}.visual-stack .good,.visual-condition-list .good{background:#1b9a6c}.visual-stack .minor,.visual-condition-list .minor{background:#e0aa35}.visual-stack .major,.visual-condition-list .major{background:#df703b}.visual-stack .down,.visual-condition-list .down{background:#b42318}.visual-condition-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.visual-condition-list span{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:8px;align-items:center;min-width:0;padding:9px 10px;border-radius:10px;background:#f7f9fc;color:#526983;font-size:12px}.visual-condition-list i{width:9px;height:9px;border-radius:50%}.visual-condition-list b{color:#173b68}
.visual-pipeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.visual-pipeline article{display:flex;flex-direction:column;justify-content:space-between;min-width:0;min-height:83px;padding:12px;border:1px solid #e5eaf1;border-radius:12px;background:linear-gradient(145deg,#fff,#f6f9fd)}.visual-pipeline span{overflow-wrap:anywhere;color:#657b95;font-size:11px}.visual-pipeline b{margin-top:5px;color:var(--blue);font-size:22px}
@keyframes visualGrow{from{height:0}}
@keyframes visualWide{from{width:0}}
@media(max-width:1180px){.visual-filter{grid-template-columns:repeat(3,minmax(0,1fr))}.visual-filter__actions{grid-column:1/-1}.visual-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.visual-grid--wide{grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr)}}
@media(max-width:850px){.visual-hero{grid-template-columns:1fr;padding:28px}.visual-scope{max-width:none}.visual-grid,.visual-grid--wide{grid-template-columns:1fr}.visual-donut-layout{grid-template-columns:170px minmax(0,1fr)}}
@media(max-width:620px){.visual-filter{grid-template-columns:1fr;padding:16px}.visual-filter__actions{grid-column:auto;display:grid;grid-template-columns:1fr 1fr}.visual-filter__actions .btn,.visual-filter__actions button{width:100%}.visual-kpis{grid-template-columns:1fr 1fr;gap:10px}.visual-kpis article{min-height:116px;padding:16px}.visual-card-head{flex-direction:column;gap:3px}.visual-card-head>small{max-width:none;text-align:left}.visual-donut-layout{grid-template-columns:1fr;min-height:0}.visual-donut{width:150px;height:150px}.visual-condition-list{grid-template-columns:1fr}.visual-pipeline{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:420px){.visual-hero{padding:24px 20px}.visual-kpis{grid-template-columns:1fr}.visual-kpis article{min-height:105px}.visual-filter__actions{grid-template-columns:1fr}.visual-chart-card{padding:17px}.visual-hbar__label{gap:8px}.visual-hbar__label span{max-width:68vw}}
@media(prefers-reduced-motion:reduce){.visual-column__well>i,.visual-hbar__track>i{animation:none!important}}
@media print{.visual-filter{display:none}.visual-grid,.visual-grid--wide{grid-template-columns:1fr}.visual-chart-card{break-inside:avoid}.visual-columns{overflow:visible}.visual-columns__track{width:100%}}

/* Export toolbar and flight-status legend v40. */
.visual-export-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;min-width:0;margin:-8px 0 20px;flex-wrap:wrap}.visual-export-actions>span{margin-right:auto;color:var(--muted);font-size:12px}.visual-export-actions .btn{min-height:41px;padding:10px 14px}.visual-legend i.cancelled{background:#b42318}@media(max-width:620px){.visual-export-actions{display:grid;grid-template-columns:1fr 1fr}.visual-export-actions>span{grid-column:1/-1}.visual-export-actions .btn{width:100%;text-align:center}}@media(max-width:420px){.visual-export-actions{grid-template-columns:1fr}}@media print{.visual-export-actions{display:none}}
