.fll-analytics{--ink:#f5f5f4;--muted:#c1c5ca;--line:#4d5259;--paper:#1c1e22;--yellow:#f1cc42;--orange:#ec9154;color:var(--ink);background:#111317;display:grid;gap:18px;padding:18px;max-width:1500px;margin:auto;border-radius:20px}
.fll-analytics *{box-sizing:border-box}
.fll-analytics-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;background:linear-gradient(115deg,#181a1f,#2b2e34);border:1px solid #575c64;border-radius:18px;padding:26px;color:#fff}
.fll-analytics-head h1{margin:3px 0 7px;font-size:clamp(1.5rem,2.5vw,2.3rem);line-height:1.15}
.fll-analytics-head p{margin:0 0 8px}.fll-analytics-head small{color:#d1d4d8}.fll-analytics-eyebrow{color:var(--yellow);font-size:.75rem;font-weight:800;letter-spacing:.1em}
.fll-analytics-head button{border:1px solid var(--yellow);background:var(--yellow);color:#191a1d;border-radius:9px;padding:10px 15px;font-weight:800;cursor:pointer;white-space:nowrap}.fll-analytics-head button:disabled{opacity:.5;cursor:wait}
.fll-analytics-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.fll-analytics-metric,.fll-analytics-card,.fll-analytics-method{background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:0 2px 10px #00000035}
.fll-analytics-metric{padding:18px;min-width:0;border-top:4px solid var(--yellow)}.fll-analytics-metric span,.fll-analytics-metric small{display:block;color:var(--muted)}.fll-analytics-metric strong{display:block;font-size:clamp(1.5rem,2.7vw,2.3rem);line-height:1.2;margin:7px 0}
.fll-analytics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:stretch}.fll-analytics-card{padding:19px;min-width:0;overflow:hidden;align-self:stretch}.fll-analytics-card h2,.fll-analytics-method h2{font-size:1.12rem;margin:0 0 17px}.fll-analytics-map-card{grid-column:1 / 2}.fll-analytics-world{width:100%;height:auto;display:block;background:#14161a;border:1px solid var(--line);border-radius:10px}.fll-analytics-world path{stroke:#777d85;stroke-width:.25;vector-effect:non-scaling-stroke}
.fll-analytics-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:11px;font-size:.8rem}.fll-analytics-legend span{display:inline-flex;align-items:center;gap:6px}.fll-analytics-legend i{width:12px;height:12px;border-radius:3px;border:1px solid #777d85}.fll-analytics-legend .registered{background:var(--yellow)}.fll-analytics-legend .visits{background:var(--orange)}.fll-analytics-legend .none{background:#3b3f45}
.fll-analytics-country-list{max-height:420px;overflow:auto}.fll-analytics-country-list>div{display:grid;grid-template-columns:minmax(0,1fr)auto auto;gap:10px;border-bottom:1px solid var(--line);padding:8px 1px;font-size:.84rem}.fll-analytics-country-list span{overflow-wrap:anywhere}.fll-analytics-country-list small{color:var(--muted)}
.fll-analytics-bars{display:grid;gap:11px}.fll-analytics-bar-row{display:grid;grid-template-columns:minmax(110px,1fr) minmax(40px,1.3fr)auto;align-items:center;gap:8px;font-size:.82rem}.fll-analytics-bar-row>span{overflow-wrap:anywhere}.fll-analytics-track{height:11px;border-radius:99px;background:#34383e;overflow:hidden}.fll-analytics-track i{display:block;height:100%;background:var(--yellow);border-radius:99px}.fll-analytics-bar-row strong{min-width:39px;text-align:right}
.fll-analytics-line{display:block;max-width:440px;width:100%;height:auto;margin:auto}.fll-analytics-line .axis{fill:none;stroke:#747a82;stroke-width:2}.fll-analytics-line polyline{fill:none;stroke:var(--yellow);stroke-width:3}.fll-analytics-line circle{fill:var(--yellow);stroke:#1c1e22;stroke-width:2}.fll-analytics-line text{fill:var(--ink);font-size:13px;font-weight:700}.fll-analytics-fine,.fll-analytics-empty{color:var(--muted);font-size:.84rem;line-height:1.5}.fll-analytics-method{padding:20px;border-left:5px solid var(--yellow)}.fll-analytics-method p{margin:0 0 9px;line-height:1.55}.fll-analytics-method small{color:var(--muted)}.fll-analytics-loading,.fll-analytics-error{padding:24px;color:#d6d9dc}
/* Dashboard theme loads later; keep the analytics surface readable in that cascade. */
.app-shell .main-content .fll-analytics .fll-analytics-head{color:#fff}
.app-shell .main-content .fll-analytics .fll-analytics-head h1,
.app-shell .main-content .fll-analytics .fll-analytics-head p:not(.fll-analytics-eyebrow){color:#fff}
.app-shell .main-content .fll-analytics .fll-analytics-head .fll-analytics-eyebrow{color:var(--yellow)}
.app-shell .main-content .fll-analytics .fll-analytics-head small{color:#d6d9dc}
.app-shell .main-content .fll-analytics :is(.fll-analytics-metric,.fll-analytics-card){color:var(--ink)}
.app-shell .main-content .fll-analytics :is(.fll-analytics-metric,.fll-analytics-card) :is(p,span,small,.fll-analytics-fine,.fll-analytics-empty){color:var(--muted)}
.app-shell .main-content .fll-analytics .fll-analytics-head button:focus-visible{outline:3px solid #fff;outline-offset:3px;box-shadow:0 0 0 6px #1c1e22}
@media(max-width:1050px){.fll-analytics-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.fll-analytics-grid{grid-template-columns:1fr}.fll-analytics-map-card{grid-column:auto}}
@media(max-width:620px){.fll-analytics{padding:10px;gap:12px}.fll-analytics-head{display:block;padding:18px}.fll-analytics-head button{margin-top:14px;width:100%}.fll-analytics-metrics{gap:9px}.fll-analytics-metric{padding:12px}.fll-analytics-card{padding:14px}.fll-analytics-country-list>div{grid-template-columns:minmax(0,1fr)auto}.fll-analytics-country-list small{grid-column:2}.fll-analytics-bar-row{grid-template-columns:minmax(80px,1fr) minmax(35px,1fr)auto;font-size:.77rem}}

/* Explicit dashboard-only dark surfaces. PDF colors are defined by the report generator. */
.app-shell .main-content .fll-analytics :is(.fll-analytics-metric,.fll-analytics-card) :is(h2,h3,strong,b){color:var(--ink)}
.fll-analytics-world path[fill="#dce3df"]{fill:#3b3f45}
.fll-analytics-legend .none{background:#3b3f45}
.fll-analytics-line .axis{stroke:#747a82}
.fll-analytics-filters{display:flex;flex-wrap:wrap;gap:14px;margin:18px 0}
.fll-analytics-filters label{display:grid;gap:7px;flex:1 1 180px;min-width:0;font-size:.9rem;color:var(--muted)}
.fll-analytics-filters select{width:100%;min-height:44px;padding:9px 12px;border:1px solid #737a83;border-radius:8px;color:var(--ink);background:#17191d;font:inherit;color-scheme:dark}
.fll-analytics :is(select,summary,[data-heatmap-retry]):focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
.fll-analytics-heatmap-plot{display:grid;gap:8px;text-align:center;max-width:600px;margin:0 auto}
.fll-analytics-heatmap-plot svg{display:block;width:100%;height:auto;border:1px solid #737a83;border-radius:10px}
.fll-analytics-heatmap-plot>span{font-size:.8rem}
.fll-analytics-heat-scale{display:flex;align-items:center;gap:12px;max-width:600px;margin:14px auto;font-size:.8rem}
.fll-analytics-heat-scale i{height:12px;flex:1;border-radius:8px;background:linear-gradient(90deg,#3c4148,#7b8189,#e1be45,#f78c45,#e24e43)}
.fll-analytics-heatmap details{margin-top:16px}.fll-analytics-heatmap summary{cursor:pointer;padding:8px 0;color:var(--ink)}
.fll-analytics-cell-list{max-height:260px;overflow:auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:4px 18px}
.fll-analytics-cell-list p{margin:5px 0;font-size:.85rem}
.app-shell .main-content .fll-analytics .fll-analytics-card .fll-analytics-estimate-total{font-size:2rem;font-weight:800;color:var(--yellow);margin:0 0 8px}
.fll-analytics [data-heatmap-retry]{background:var(--yellow);color:#191a1d;border:0;padding:10px 16px;border-radius:8px;font-weight:700;cursor:pointer}
@media(max-width:620px){.fll-analytics-filters{display:grid;grid-template-columns:1fr}.fll-analytics-filters label{min-width:0}.fll-analytics-heat-scale{gap:8px}}

.fll-analytics-time-columns .fll-analytics-bars{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 32px}
.fll-analytics-time-columns .fll-analytics-bar-row{grid-template-columns:minmax(120px,1fr) minmax(70px,1.1fr) auto}
.fll-analytics-heatmap-window{max-width:700px;margin:18px auto;background:#14161a;border:1px solid #737a83;border-radius:14px;overflow:hidden}
.fll-analytics-heatmap-window header{display:flex;gap:10px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);background:#292c31}
.fll-analytics-heatmap-window header i{display:block;width:8px;height:8px;border-radius:50%;background:var(--yellow);flex:none}
.fll-analytics-heatmap-window .fll-analytics-heatmap-plot{padding:14px;max-width:640px}
.fll-analytics-heatmap-summary{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;margin:14px 0}
.fll-analytics-heatmap-window svg{border-radius:5px}
@media(max-width:900px){.fll-analytics-time-columns .fll-analytics-bars{grid-template-columns:1fr}}

/* Registered training series: any number of records, without clipping cards. */
.fll-analytics-series-scroll{overflow-x:auto;max-width:100%;width:100%}.fll-analytics-series-scroll .fll-analytics-line{display:block;max-width:none;width:100%;height:auto}.fll-analytics-series-scroll:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}.fll-analytics-grid>.fll-analytics-card{min-width:0}

/* Three overview metrics use the full width of their card. */
.fll-analytics-training-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:600px){.fll-analytics-training-summary{grid-template-columns:1fr}.fll-analytics-training-summary .fll-analytics-metric{display:flex;align-items:center;justify-content:space-between;gap:16px}.fll-analytics-training-summary .fll-analytics-metric strong{flex-shrink:0}}
