@import"https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap";:root{--flyyo-font: "Roboto", Arial, sans-serif;--flyyo-navy: #252F49;--flyyo-turquoise: #86C0C1;--flyyo-navy-light: #2e3a58;--flyyo-navy-dark: #1b2237;--flyyo-turquoise-soft: rgba(134, 192, 193, .15);--flyyo-turquoise-mid: rgba(134, 192, 193, .4);--flyyo-turquoise-text: #5fa8a9;--header-text-primary: rgba(255, 255, 255, 1);--header-text-secondary: rgba(255, 255, 255, .85);--header-text-tertiary: rgba(255, 255, 255, .5);--header-text-muted: rgba(255, 255, 255, .4);--header-text-subtle: rgba(255, 255, 255, .15);--bg-header: var(--flyyo-navy)}:root,[data-theme=dark]{--accent: var(--flyyo-turquoise);--accent-soft: var(--flyyo-turquoise-soft);--accent-text: #1a1a1a;--gate-bg: var(--flyyo-navy)}[data-theme=light]{--accent: #0d9488;--accent-soft: var(--flyyo-turquoise-soft);--accent-text: #fff;--gate-bg: var(--flyyo-navy)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}html{scrollbar-gutter:stable}#root{overflow-y:scroll;scrollbar-width:thin;scrollbar-color:rgba(134,192,193,.25) transparent}#root::-webkit-scrollbar{width:6px}#root::-webkit-scrollbar-track{background:transparent}#root::-webkit-scrollbar-thumb{background:#86c0c140;border-radius:3px}#root::-webkit-scrollbar-thumb:hover{background:#86c0c173}body{margin:0;font-family:var(--flyyo-font);overflow-x:hidden}.app{display:flex;flex-direction:column;min-height:100vh}.header{position:sticky;top:0;z-index:10;height:56px;display:flex;align-items:center;justify-content:center;background:var(--bg-header);color:var(--header-text-primary)}.header-inner{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:1200px;padding:0}.header-left{display:flex;align-items:center;gap:12px}.logo{display:flex;align-items:center;cursor:pointer}.logo img{height:28px;display:block}.header-subtitle{display:flex;flex-direction:column;font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--header-text-secondary);line-height:1.3}.header-model{font-size:10px;letter-spacing:.5px;color:var(--header-text-tertiary)}.header-controls{display:flex;align-items:center;gap:8px}.header-version{font-size:12px;color:var(--header-text-muted)}.hdr-btn{color:var(--header-text-tertiary);font-size:13px;background:none;border:none;cursor:pointer;padding:6px 10px;border-radius:6px;display:flex;align-items:center;gap:4px;transition:color .2s,background .2s}.hdr-btn:hover{color:var(--header-text-primary);background:#ffffff1a}.hdr-btn svg{width:16px;height:16px;fill:currentColor}.hdr-btn.spinning svg{animation:spin .8s linear infinite}.hdr-sep{width:1px;height:20px;background:var(--header-text-subtle)}.theme-toggle{display:flex;background:#ffffff14;border-radius:6px;overflow:hidden}.theme-btn{background:none;border:none;color:var(--header-text-muted);font-size:11px;padding:4px 10px;cursor:pointer;transition:color .2s,background .2s}.theme-btn.active{background:#ffffff26;color:var(--header-text-primary)}.gate{min-height:100vh;background:var(--gate-bg);display:flex;align-items:center;justify-content:center;padding:24px}.gate-card{width:340px;background:#fff;border-radius:16px;padding:24px;box-shadow:0 8px 32px #0003}.gate-logo{font-size:32px;font-weight:700;letter-spacing:2px;text-align:center}.gate-logo .fly{color:var(--flyyo-navy)}.gate-logo .yo{color:var(--flyyo-turquoise)}.gate-subtitle{text-align:center;color:#64748b;font-size:14px;margin-top:6px;margin-bottom:16px}.gate-input{width:100%;padding:12px 16px;border-radius:10px;border:2px solid #e2e8f0;font-size:14px}.gate-input:focus{outline:none;border-color:var(--flyyo-navy)}.gate-input.error{border-color:#ef4444;animation:shake .3s ease-in-out}.gate-button{width:100%;background:var(--flyyo-navy);color:#fff;border:none;padding:12px 16px;border-radius:10px;font-size:14px;font-weight:700;margin-top:14px;transition:background .2s}.gate-button:hover{background:var(--flyyo-navy-light)}.spinner{width:36px;height:36px;border-radius:50%;border:3px solid var(--spinner-track, rgba(255, 255, 255, .1));border-top-color:var(--flyyo-turquoise);animation:spin 1s linear infinite}@keyframes shake{0%{transform:translate(0)}25%{transform:translate(-6px)}50%{transform:translate(6px)}75%{transform:translate(-4px)}to{transform:translate(0)}}@media(max-width:768px){.header{height:auto;min-height:56px}.header-inner{padding:8px 12px;flex-wrap:wrap;gap:4px}.header-left{gap:8px}.header-subtitle{font-size:10px}.header-model{font-size:8px}.header-controls{gap:4px;flex-wrap:wrap}.header-version{font-size:10px}.hdr-btn{padding:4px 6px;font-size:11px}.hdr-sep{height:16px}.theme-btn{font-size:10px;padding:3px 8px}.logo img{height:22px}}@media(max-width:480px){.header-subtitle,.hdr-sep{display:none}.header-controls{gap:3px}.theme-btn{font-size:9px;padding:3px 6px}.header-version{font-size:9px}.hdr-btn{padding:3px 5px;font-size:10px}}:root,[data-theme=dark]{--bg: #0f172a;--bg-surface: #141c30;--text: #e2e8f0;--text-muted: rgba(255, 255, 255, .45);--text-sub: rgba(255, 255, 255, .35);--card-bg: rgba(255, 255, 255, .06);--card-border: rgba(134, 192, 193, .18);--hover-bg: rgba(255, 255, 255, .03);--table-border: rgba(255, 255, 255, .1);--table-border-subtle: rgba(255, 255, 255, .05);--spinner-track: rgba(255, 255, 255, .1)}[data-theme=light]{--bg: #eef1f5;--bg-surface: #f6f8fb;--text: #1e293b;--text-muted: #475569;--text-sub: #64748b;--card-bg: #ffffff;--card-border: rgba(134, 192, 193, .25);--hover-bg: #f1f5f9;--table-border: #e2e8f0;--table-border-subtle: #f1f5f9;--spinner-track: #e2e8f0}body{background:var(--bg);color:var(--text);transition:background .3s,color .3s}@keyframes cardEntrance{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.card-animate,.scorecards .scorecard{animation:cardEntrance .35s ease-out both}.scorecards .scorecard:nth-child(1){animation-delay:0ms}.scorecards .scorecard:nth-child(2){animation-delay:60ms}.scorecards .scorecard:nth-child(3){animation-delay:.12s}.scorecards .scorecard:nth-child(4){animation-delay:.18s}.scorecards .scorecard:nth-child(5){animation-delay:.24s}.chart-grid .chart-card{animation:cardEntrance .35s ease-out both}.chart-grid .chart-card:nth-child(1){animation-delay:.3s}.chart-grid .chart-card:nth-child(2){animation-delay:.36s}.chart-grid .chart-card:nth-child(3){animation-delay:.42s}.chart-grid .chart-card:nth-child(4){animation-delay:.48s}.gate-wrap{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--flyyo-navy);z-index:100}.gate{background:#fff;padding:40px;border-radius:16px;width:340px;box-shadow:0 8px 32px #0003;text-align:center;min-height:auto;display:block;align-items:initial;justify-content:initial}.gate .gate-logo{margin-bottom:4px}.gate .subtitle{font-size:14px;color:#64748b;margin-bottom:28px}.gate input{width:100%;padding:12px 16px;border:2px solid #e2e8f0;border-radius:10px;font-size:14px;transition:border-color .2s}.gate input:focus{outline:none;border-color:var(--flyyo-navy)}.gate input.error{border-color:#ef4444;animation:shake .3s}.gate button{width:100%;padding:12px;margin-top:12px;background:var(--flyyo-navy);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;transition:background .2s}.gate button:hover{background:var(--flyyo-navy-light)}.gate button:active{transform:scale(.98)}.error-msg{color:#ef4444;font-size:12px;min-height:20px;margin-top:8px}.dashboard{display:none;flex-direction:column;min-height:100vh}.dashboard.active{display:flex}.dashboard.fullscreen{position:fixed;inset:0;z-index:9999;overflow-y:auto;background:var(--bg)}.dashboard:fullscreen{overflow-y:auto;background:var(--bg)}.dashboard.fullscreen .dash-body{padding:32px}.dashboard.fullscreen .scorecard .sc-value{font-size:42px}.dashboard.fullscreen .scorecard .sc-label{font-size:14px}.dashboard.fullscreen .chart-card .chart-title{font-size:16px}.dashboard.fullscreen .chart-card canvas{max-height:400px}.dashboard.fullscreen .feedback-table{font-size:13px}.dashboard.fullscreen .feedback-table th{font-size:12px}.dash-header{position:sticky;top:0;z-index:10}.last-fetched{font-size:12px;color:var(--header-text-secondary)}.dash-header .hdr-btn{color:var(--header-text-secondary)}.dash-body{width:100%;padding:24px;flex:1;background:linear-gradient(to right,var(--bg) 0%,var(--bg-surface) 3%,var(--bg-surface) 97%,var(--bg) 100%);min-height:calc(100vh - 56px)}.report-title{font-size:22px;font-weight:700;color:var(--text);margin-bottom:24px;padding-top:8px}.scorecards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.scorecard{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;padding:20px;transition:background .3s,border-color .3s,transform .2s ease,box-shadow .2s ease}@media(hover:hover){.scorecard:hover{transform:translateY(-2px);box-shadow:0 4px 16px #86c0c11f,0 1px 4px #00000014}}.scorecard .sc-label{font-size:12px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px}.scorecard .sc-value{font-size:32px;font-weight:700;line-height:1.1}.scorecard .sc-sub{font-size:12px;color:var(--text-sub);margin-top:4px}.sc-green{color:#6ba58e}.sc-red{color:#c4888a}.sc-blue{color:#7ba7cc}.sc-neutral{color:var(--text)}.info-tip{position:relative;display:inline-block;margin-left:6px;cursor:help;vertical-align:middle}.info-tip .info-icon{display:inline-block;width:16px;height:16px;border-radius:50%;background:var(--card-border);color:var(--text-muted);font-size:10px;font-weight:700;line-height:16px;text-align:center}.info-tip .info-text{visibility:hidden;opacity:0;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);background:#1e293b;color:#e2e8f0;padding:10px 14px;border-radius:8px;font-size:12px;line-height:1.5;width:260px;box-shadow:0 4px 12px #00000040;z-index:200;pointer-events:none;transition:opacity .2s,visibility .2s;font-weight:400;text-transform:none;letter-spacing:0}.info-tip .info-text:after{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-bottom-color:#1e293b}.info-tip:hover .info-text{visibility:visible;opacity:1}.filter-bar{display:flex;flex-direction:column;gap:12px;padding:14px 16px;background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;margin-bottom:24px}.filter-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.filter-section{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.filter-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);flex-shrink:0}.filter-pills{display:flex;gap:4px;flex-wrap:wrap}.filter-pill{padding:5px 12px;border-radius:8px;font-size:12px;font-weight:500;border:1px solid var(--card-border);background:transparent;color:var(--text-muted);cursor:pointer;transition:all .15s}.filter-pill:hover{background:var(--hover-bg);color:var(--text)}.filter-pill.active{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}[data-theme=dark] .filter-pill.active{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.filter-dates{display:flex;align-items:center;gap:6px}.filter-date-input{padding:5px 10px;border-radius:8px;border:1px solid var(--card-border);background:transparent;color:var(--text);font-size:12px;font-family:inherit;outline:none;transition:border-color .15s}.filter-date-input:focus{border-color:var(--text-muted)}.filter-date-sep{font-size:11px;color:var(--text-muted)}.filter-date-reset{padding:4px 10px;border-radius:8px;font-size:11px;border:1px solid var(--card-border);background:transparent;color:var(--text-muted);cursor:pointer;margin-left:4px;transition:color .15s,border-color .15s}.filter-date-reset:hover{color:var(--text);border-color:var(--text-muted)}.filter-clear{padding:5px 12px;border-radius:8px;font-size:11px;font-weight:600;border:none;background:#c4888a1f;color:#c4888a;cursor:pointer;transition:all .15s;margin-left:auto}.filter-clear:hover{background:#c4888a38}.filter-active-note{font-size:12px;color:var(--text-muted);height:20px;margin-bottom:4px}.executive-summary{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;padding:20px 24px;margin-bottom:24px;border-left:3px solid var(--text-muted)}.exec-summary-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:8px}.exec-summary-text{font-size:14px;line-height:1.7;color:var(--text);margin:0}.response-rate{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;padding:20px 24px;margin-bottom:24px}.rr-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:16px}.rr-stats{display:flex;gap:32px;margin-bottom:20px;flex-wrap:wrap}.rr-stat-value{font-size:22px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}.rr-stat-sub{font-size:11px;color:var(--text-muted);margin-top:2px}.rr-quality{border-top:1px solid var(--card-border);padding-top:16px}.rr-quality-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:12px}.rr-bars{display:flex;flex-direction:column;gap:10px}.rr-bar-row{display:flex;align-items:center;gap:12px}.rr-bar-label{font-size:12px;color:var(--text);width:140px;flex-shrink:0}.rr-bar-track{flex:1;height:6px;background:var(--hover-bg);border-radius:3px;overflow:hidden}.rr-bar-fill{height:100%;border-radius:3px;transition:width .5s ease}.rr-bar-pct{font-size:12px;font-weight:600;color:var(--text);width:36px;text-align:right;font-variant-numeric:tabular-nums}.rr-gap-note{font-size:12px;color:var(--text-muted);margin-top:12px;padding:8px 12px;background:#d4a57414;border-radius:6px;border-left:3px solid #d4a574}.tte-insights{display:flex;flex-direction:column}.tte-stats{display:flex;gap:32px;margin-bottom:20px}.tte-stat-value{font-size:22px;font-weight:700;color:var(--text)}.tte-stat-sub{font-size:11px;color:var(--text-muted);margin-top:2px}.tte-diagnostic{flex:1}.tte-diag-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:10px}.tte-diag-row{margin-bottom:10px}.tte-diag-bar{height:4px;border-radius:2px;margin-bottom:4px;min-width:20px}.tte-diag-text{font-size:12px;color:var(--text-muted);line-height:1.4}.tte-diag-text strong{color:var(--text);font-weight:600}.cost-projection{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;padding:20px 24px;margin-bottom:24px}.cpj-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:16px}.cpj-headline{display:flex;gap:32px;margin-bottom:12px;flex-wrap:wrap}.cpj-stat-value{font-size:22px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}.cpj-stat-sub{font-size:11px;color:var(--text-muted);margin-top:2px}.cpj-basis{font-size:12px;color:var(--text-muted);margin-bottom:16px}.cpj-rate-note{font-weight:600}.cpj-scenarios{width:100%;border-collapse:collapse;font-size:13px;margin-bottom:14px}.cpj-scenarios th{text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:6px 12px 8px 0;border-bottom:1px solid var(--card-border)}.cpj-scenarios th:nth-child(2),.cpj-scenarios th:nth-child(3){text-align:right}.cpj-scenarios td{padding:8px 0;color:var(--text);border-bottom:1px solid var(--table-border-subtle)}.cpj-scenarios tbody tr:last-child td{border-bottom:none}.cpj-num{text-align:right;font-variant-numeric:tabular-nums;padding-right:0}.cpj-current td{font-weight:600}.cpj-savings{font-size:13px;color:var(--text-muted);padding:12px 14px;background:#6ba58e14;border-radius:8px;border-left:3px solid #6ba58e}.cpj-savings strong{color:#6ba58e}.period-comparison{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;padding:20px 24px;margin-bottom:24px}.pop-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:8px}.pop-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.pop-periods{display:flex;align-items:center;gap:8px}.pop-period-tag{font-size:11px;font-weight:500;padding:3px 10px;border-radius:6px;color:var(--text-muted);background:var(--hover-bg);border:1px solid var(--card-border)}.pop-arrow{color:var(--text-muted);font-size:12px}.pop-table{width:100%;border-collapse:collapse;font-size:13px}.pop-table th{text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:6px 12px 10px 0;border-bottom:1px solid var(--card-border)}.pop-table th:last-child,.pop-table td.pop-delta{text-align:right}.pop-table th:nth-child(2),.pop-table th:nth-child(3),.pop-table td.pop-value{text-align:center}.pop-label{font-weight:500;color:var(--text);padding:10px 12px 10px 0}.pop-value{color:var(--text);padding:10px 8px;font-variant-numeric:tabular-nums}.pop-reason{font-size:12px;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pop-delta{padding:10px 0 10px 8px}.pop-table tbody tr{border-bottom:1px solid var(--table-border-subtle)}.pop-table tbody tr:last-child{border-bottom:none}.delta{font-size:12px;font-weight:600;white-space:nowrap}.delta-good{color:#6ba58e}.delta-bad{color:#c4888a}.delta-neutral{color:var(--text-muted);font-weight:400}.delta-shift{color:#d4a574}.chart-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:24px}.chart-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;padding:20px;transition:background .3s,border-color .3s,transform .2s ease,box-shadow .2s ease}@media(hover:hover){.chart-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #86c0c11f,0 1px 4px #00000014}}.chart-card.full-width{grid-column:1 / -1}.chart-card .chart-title{font-size:14px;font-weight:600;color:var(--text-muted);margin-bottom:12px}.chart-card canvas{width:100%!important;max-height:300px}.feedback-table{width:100%;border-collapse:collapse;font-size:12px;margin-bottom:24px}.feedback-table th{text-align:left;padding:10px 12px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:2px solid var(--table-border)}.feedback-table td{padding:10px 12px;border-bottom:1px solid var(--table-border-subtle);color:var(--text);vertical-align:top;max-width:300px}.feedback-table tr:hover td{background:var(--hover-bg)}.badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}.badge-red{background:#c4888a26;color:#c4888a}.badge-green{background:#6ba58e26;color:#6ba58e}.badge-blue{background:#7ba7cc26;color:#7ba7cc}.badge-tan{background:#d4a57426;color:#d4a574}.section-header{font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);margin:32px 0 16px;padding-bottom:8px;border-bottom:1px solid var(--card-border)}.section-header:first-child{margin-top:0}.alert-card{background:#c4888a14;border:1px solid rgba(196,136,138,.25);border-radius:12px;padding:16px 20px;display:flex;align-items:center;gap:16px}.alert-icon{width:36px;height:36px;border-radius:50%;background:#c4888a26;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:16px}.alert-icon.high-risk{background:#dc262633;color:#ef4444;animation:pulse-risk 1.5s ease-in-out infinite}.alert-icon.negative{background:#eab30833;color:#eab308}@keyframes pulse-risk{0%,to{box-shadow:0 0 #dc262666}50%{box-shadow:0 0 0 8px #dc262600}}.alert-name{font-weight:600;font-size:14px;color:var(--text)}.alert-detail{font-size:12px;color:var(--text-sub);margin-top:2px}.cost-overlay{position:fixed;inset:0;background:#000000bf;z-index:10000;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s}.cost-overlay.visible{opacity:1}.cost-modal{background:var(--bg);border:1px solid var(--card-border);border-radius:12px;padding:24px;max-width:620px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 8px 32px #0003}.cost-modal h3{margin:0 0 4px;font-size:16px;color:var(--text)}.cost-modal .cost-modal-sub{font-size:12px;color:var(--text-sub);margin-bottom:16px}.cost-modal table{width:100%;border-collapse:collapse;font-size:13px}.cost-modal th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:6px 8px;border-bottom:2px solid var(--card-border)}.cost-modal th:not(:first-child){text-align:right}.cost-modal td{padding:8px;border-bottom:1px solid var(--card-border);color:var(--text)}.cost-modal td:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}.cost-modal tr:last-child td{border-bottom:none}.cost-modal tfoot td{font-weight:700;border-top:2px solid var(--card-border);border-bottom:none;padding-top:10px}.cost-modal .close-btn{float:right;background:none;border:none;font-size:20px;color:var(--text-muted);cursor:pointer;padding:0;line-height:1;width:auto}.cost-modal .close-btn:hover{color:var(--text)}.cost-tabs{display:flex;gap:0;margin-bottom:16px;border-bottom:2px solid var(--card-border)}.cost-tab{background:none;border:none;color:var(--text-muted);font-size:13px;font-weight:600;padding:8px 16px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s;width:auto}.cost-tab:hover{color:var(--text)}.cost-tab.active{color:var(--text);border-bottom-color:var(--flyyo-turquoise)}.cost-detail-position{margin-bottom:16px}.cost-detail-position:last-child{margin-bottom:0}.cost-detail-position h4{margin:0 0 6px;font-size:13px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px}.cost-detail-position h4 .cost-badge{font-size:11px;font-weight:600;color:var(--flyyo-turquoise);background:#6ba58e26;padding:2px 8px;border-radius:4px}.cost-detail-position ul{margin:0;padding:0 0 0 18px;font-size:12px;color:var(--text-muted);line-height:1.7}.heatmap-table{width:100%;border-collapse:collapse;font-size:12px;margin-bottom:24px}.heatmap-table th{text-align:left;padding:8px 10px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:2px solid var(--table-border)}.heatmap-table td{padding:8px 10px;border-bottom:1px solid var(--table-border-subtle);text-align:center;font-weight:600}.heatmap-table td:first-child{text-align:left;font-weight:500;color:var(--text)}.hm-5{color:#6ba58e}.hm-4{color:#7ba7cc}.hm-3{color:#d4a574}.hm-2{color:#c4888a}.hm-1{color:#a0525a}.hm-0{color:var(--text-sub);font-weight:400}.dept-columns{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-bottom:24px}.dept-column-title{font-size:13px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid var(--card-border)}.dept-column-title-bad{color:#c4888a}.dept-column-title-good{color:#6ba58e}.dept-card{display:flex;align-items:center;gap:12px;padding:12px;border-radius:10px;transition:background .2s}.dept-card:hover{background:var(--hover-bg)}.dept-rank{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0}.dept-rank-bad{color:#c4888a;background:#c4888a1f}.dept-rank-good{color:#6ba58e;background:#6ba58e1f}.dept-info{flex:1;min-width:0}.dept-name{font-size:14px;font-weight:600;color:var(--text)}.dept-issues{font-size:11px;color:var(--text-sub);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dept-score{text-align:right;flex-shrink:0}.dept-score-value{font-size:14px;font-weight:700}.dept-score-value-bad{color:#c4888a}.dept-score-value-good{color:#6ba58e}.dept-bar-track{height:5px;background:var(--card-border);border-radius:3px;margin-top:4px;overflow:hidden}.dept-bar-fill{height:100%;border-radius:3px;transition:width .4s ease}.dept-bar-fill-bad{background:#c4888a}.dept-bar-fill-good{background:#6ba58e}.action-item{border:1px solid var(--card-border);border-radius:12px;padding:20px;margin-bottom:16px;transition:border-color .3s}.action-priority{display:inline-block;font-size:10px;text-transform:uppercase;font-weight:700;letter-spacing:1px;padding:3px 8px;border-radius:4px;margin-bottom:10px}.action-priority-critical{background:#c4888a26;color:#c4888a}.action-priority-high{background:#d4a57426;color:#d4a574}.action-priority-moderate{background:#7ba7cc26;color:#7ba7cc}.action-dept-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.action-dept-tag{font-size:10px;padding:2px 8px;border-radius:4px;background:#6bbfb71f;color:var(--flyyo-turquoise);font-weight:500}.action-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}.action-title{font-size:15px;font-weight:600;color:var(--text)}.action-stat{font-size:12px;color:var(--text-muted);white-space:nowrap}.action-insight{font-size:13px;color:var(--text-sub);line-height:1.5;margin-bottom:12px}.action-steps{list-style:none;padding:0;margin:0}.action-steps li{font-size:13px;color:var(--text);padding:4px 0 4px 20px;position:relative;line-height:1.5}.action-steps li:before{content:"→";position:absolute;left:0;color:var(--flyyo-turquoise);font-weight:600}.refresh-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:9999;overflow:hidden;opacity:0;transition:opacity .2s}.refresh-progress.active{opacity:1}.refresh-progress-bar{height:100%;background:linear-gradient(90deg,var(--flyyo-turquoise),#7ba7cc,var(--flyyo-turquoise));background-size:200% 100%;animation:progressShimmer 1.5s ease-in-out infinite,progressGrow 8s cubic-bezier(.1,.5,.3,1) forwards;border-radius:0 2px 2px 0;box-shadow:0 0 8px #6bbfb780}.refresh-progress.done .refresh-progress-bar{animation:none;width:100%!important;background:#6ba58e;transition:width .3s ease}@keyframes progressShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes progressGrow{0%{width:0}20%{width:30%}50%{width:55%}80%{width:78%}to{width:90%}}.toast{position:fixed;top:20px;left:50%;z-index:400;display:flex;align-items:center;gap:10px;padding:12px 20px;border-radius:14px;font-size:13px;font-weight:500;letter-spacing:.01em;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);box-shadow:0 4px 24px #0000001f,0 1px 4px #00000014,inset 0 0 0 .5px #ffffff1f;transform:translate(-50%) translateY(-30px);opacity:0;transition:transform .5s cubic-bezier(.32,.72,0,1),opacity .4s ease;pointer-events:none;white-space:nowrap}.toast.visible{transform:translate(-50%) translateY(0);opacity:1;pointer-events:auto}.toast.leaving{transform:translate(-50%) translateY(-20px);opacity:0;transition:transform .35s cubic-bezier(.32,.72,0,1),opacity .3s ease}.toast-refresh{background:#1e3a5fbf;color:#e2e8f0}.toast-success{background:#6ba58ed9;color:#fff}.toast-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.toast-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.2);border-top-color:var(--flyyo-turquoise);border-radius:50%;animation:spin .7s linear infinite}.toast-check{width:16px;height:16px;position:relative}.toast-check:after{content:"";position:absolute;left:4px;top:1px;width:5px;height:9px;border:solid #ffffff;border-width:0 2px 2px 0;transform:rotate(45deg);animation:checkPop .3s cubic-bezier(.32,.72,0,1) forwards}@keyframes checkPop{0%{transform:rotate(45deg) scale(0);opacity:0}50%{transform:rotate(45deg) scale(1.2);opacity:1}to{transform:rotate(45deg) scale(1);opacity:1}}.toast-newdata{top:20px;background:#1e3a5fcc;color:#e2e8f0;padding:10px 12px 10px 16px;gap:12px;transform:translate(-50%) translateY(-30px);pointer-events:auto}.toast-newdata.visible{transform:translate(-50%) translateY(0)}.toast-newdata.leaving{transform:translate(-50%) translateY(-20px)}.toast-newdata .live-dot{width:8px;height:8px;background:var(--flyyo-turquoise);border-radius:50%;flex-shrink:0;position:relative}.toast-newdata .live-dot:after{content:"";position:absolute;inset:-3px;border-radius:50%;border:1.5px solid var(--flyyo-turquoise);animation:livePing 2s cubic-bezier(0,0,.2,1) infinite}@keyframes livePing{0%{transform:scale(1);opacity:.6}75%,to{transform:scale(2);opacity:0}}.toast-newdata .toast-action{background:#6bbfb733;color:var(--flyyo-turquoise);border:1px solid rgba(107,191,183,.3);padding:5px 14px;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s}.toast-newdata .toast-action:hover{background:#6bbfb759;border-color:#6bbfb780}.toast-newdata .toast-dismiss{background:none;border:none;color:#ffffff59;font-size:18px;line-height:1;cursor:pointer;padding:2px 4px;border-radius:6px;transition:all .2s}.toast-newdata .toast-dismiss:hover{color:#ffffffb3;background:#ffffff14}[data-theme=light] .toast-refresh{background:#ffffffd1;color:#1e293b;box-shadow:0 4px 24px #00000014,0 1px 4px #0000000a,inset 0 0 0 .5px #0000000f}[data-theme=light] .toast-refresh .toast-spinner{border-color:#0000001a;border-top-color:var(--flyyo-navy)}[data-theme=light] .toast-newdata{background:#ffffffe0;color:#1e293b;box-shadow:0 4px 24px #00000014,0 1px 4px #0000000a,inset 0 0 0 .5px #0000000f}[data-theme=light] .toast-newdata .toast-action{background:#1e3a5f14;color:var(--flyyo-navy);border-color:#1e3a5f26}[data-theme=light] .toast-newdata .toast-action:hover{background:#1e3a5f26}[data-theme=light] .toast-newdata .toast-dismiss{color:#00000040}[data-theme=light] .toast-newdata .toast-dismiss:hover{color:#00000080;background:#0000000a}.no-data{text-align:center;padding:60px 20px;color:var(--text-muted);font-size:15px}.no-data .emoji{font-size:48px;margin-bottom:16px}.loading-state{text-align:center;padding:80px 20px;color:var(--text-muted)}.loading-spinner{width:36px;height:36px;border:3px solid var(--spinner-track);border-top-color:var(--flyyo-turquoise);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 16px}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.anim-in{animation:fadeSlideUp .45s ease both}@media(max-width:768px){.chart-grid{grid-template-columns:1fr}.dash-body{padding:16px}.scorecards{grid-template-columns:repeat(2,1fr)}.last-fetched,.hdr-desktop-only{display:none}.dept-columns{grid-template-columns:1fr}}@media print{@page{margin:12mm 10mm;size:A4 portrait}body{background:#fff!important;color:#1e293b!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.gate-wrap,.dash-header,.refresh-banner,.new-data-banner,.cost-overlay,.info-tip{display:none!important}.anim-in{animation:none!important}.dashboard{display:flex!important;flex-direction:column;min-height:auto}.dashboard.fullscreen{position:static;overflow:visible}.dash-body{padding:0!important;margin:0!important}.report-title{font-size:20px!important;color:#1e293b!important;border-bottom:2px solid var(--flyyo-navy);padding-bottom:8px;margin-bottom:16px!important}.report-title:after{content:" — FLYYO";color:var(--flyyo-turquoise)}.scorecards{grid-template-columns:repeat(5,1fr)!important;gap:8px!important}.scorecard{background:#f8fafc!important;border:1px solid #e2e8f0!important;padding:12px!important;break-inside:avoid}.scorecard .sc-label{color:#64748b!important;font-size:9px!important}.scorecard .sc-value{font-size:22px!important}.scorecard .sc-sub{font-size:10px!important;color:#94a3b8!important}.sc-green{color:#4a8c6e!important}.sc-red{color:#a05462!important}.sc-blue{color:#5a8aaa!important}.sc-neutral{color:#1e293b!important}.section-header{color:var(--flyyo-navy)!important;border-bottom-color:#e2e8f0!important;margin-top:20px!important;margin-bottom:8px!important;font-size:10px!important;break-after:avoid}.chart-grid{grid-template-columns:1fr 1fr!important;gap:10px!important;margin-bottom:16px!important}.chart-card{background:#fff!important;border:1px solid #e2e8f0!important;padding:12px!important;break-inside:avoid;page-break-inside:avoid}.chart-card .chart-title{color:#1e293b!important;font-size:12px!important;margin-bottom:8px!important}.chart-card canvas{max-height:220px!important}.chart-card img.print-chart{max-height:220px!important;width:100%!important;object-fit:contain}.alert-card{background:#fef2f2!important;border-color:#fecaca!important;break-inside:avoid;padding:10px 14px!important}.alert-name{color:#1e293b!important;font-size:12px!important}.alert-detail{color:#64748b!important;font-size:10px!important}.feedback-table{font-size:10px!important}.feedback-table th{color:var(--flyyo-navy)!important;font-size:8px!important;border-bottom-color:var(--flyyo-navy)!important}.feedback-table td{color:#1e293b!important;border-bottom-color:#e2e8f0!important;padding:6px 8px!important}.heatmap-table th{color:var(--flyyo-navy)!important;font-size:8px!important}.heatmap-table td{font-size:11px!important}.badge{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.badge-red{background:#c4888a33!important;color:#a05462!important}.badge-green{background:#6ba58e33!important;color:#4a8c6e!important}.badge-blue{background:#7ba7cc33!important;color:#5a8aaa!important}.badge-tan{background:#d4a57433!important;color:#b8874a!important}.action-item{background:#f8fafc!important;border:1px solid #e2e8f0!important;padding:14px!important;margin-bottom:10px!important;break-inside:avoid;page-break-inside:avoid}.action-dept-tag{background:#1e3a5f1a!important;color:var(--flyyo-navy)!important;font-size:9px!important}.action-title{color:#1e293b!important;font-size:13px!important}.action-stat{color:#64748b!important}.action-insight{color:#64748b!important;font-size:11px!important}.action-steps li{color:#1e293b!important;font-size:11px!important}.action-steps li:before{color:var(--flyyo-navy)!important}.dept-columns{grid-template-columns:1fr 1fr!important;gap:16px!important}.dept-column-title-bad{color:#c4888a!important}.dept-column-title-good{color:#6ba58e!important}.dept-card{background:#f8fafc!important;border:1px solid #e2e8f0!important;padding:10px!important;break-inside:avoid}.dept-name{color:#1e293b!important;font-size:12px!important}.dept-score,.dept-issues,.no-data{color:#64748b!important}}
