.ff-statistics{display:grid;gap:20px;color:var(--ink)}
.glass-ff-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.glass-ff-kpi{display:grid;gap:5px;min-width:0;padding:15px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}.glass-ff-kpi span{color:var(--ink-soft);font-size:12px}.glass-ff-kpi strong{font-size:clamp(22px,2.4vw,32px);line-height:1.1}.glass-ff-kpi small{color:var(--ink-soft);font-size:11px}.glass-kpi-title small{margin-left:8px;color:var(--ink-soft);font-size:12px}
.ff-stat-top{display:flex;justify-content:space-between;align-items:end;gap:20px;padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--surface)}
.ff-stat-kicker{margin:0 0 5px;color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.13em}
.ff-stat-top h2{margin:0;font-size:clamp(25px,3vw,38px);text-transform:capitalize}
.ff-stat-top p:last-child{margin:8px 0 0;color:var(--ink-soft);font-size:13px}
.ff-stat-controls,.ff-stat-filters{display:flex;flex-wrap:wrap;gap:10px}
.ff-stat-controls label{display:grid;gap:5px;color:var(--ink-soft);font-size:11px;font-weight:700}
.ff-stat-controls select,.ff-stat-filters select,.ff-stat-filters input{min-height:41px;max-width:100%;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px}
.ff-admin-link{align-self:end;min-height:41px;padding:0 15px;border:1px solid var(--accent);border-radius:10px;background:var(--accent);color:#fff;font:inherit;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}.ff-admin-link:hover,.ff-admin-link:focus-visible{filter:brightness(.9)}
.ff-map-jump{align-self:end;min-height:41px;padding:0 15px;border:1px solid var(--line);border-radius:10px;background:var(--surface-alt);color:var(--ink);font:inherit;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}.ff-map-jump:hover,.ff-map-jump:focus-visible{border-color:var(--accent);color:var(--accent)}#ff-store-map{scroll-margin-top:20px}
.ff-stat-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ff-stat-card{display:grid;gap:7px;min-width:0;padding:18px 20px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.ff-stat-card>span{color:var(--ink-soft);font-size:13px}.ff-stat-card strong{font-size:clamp(24px,2.6vw,36px);line-height:1.1}.ff-stat-card small{color:var(--ink-soft);font-size:12px}
.ff-breakdowns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start}.ff-breakdown{min-height:190px}.ff-breakdown-list{display:grid;gap:10px}.ff-breakdown-row{display:grid;grid-template-columns:minmax(80px,1fr) minmax(55px,1fr) auto;gap:10px;align-items:center;font-size:13px}.ff-breakdown-row span{overflow-wrap:anywhere}.ff-breakdown-row strong{font-size:13px}.ff-breakdown-row progress{width:100%;height:8px;border:0;border-radius:9px;overflow:hidden;accent-color:var(--accent)}.ff-breakdown-row progress::-webkit-progress-bar{background:var(--surface-alt)}.ff-breakdown-row progress::-webkit-progress-value{background:var(--accent);border-radius:9px}
.ff-stat-panel{min-width:0;padding:20px;border:1px solid var(--line);border-radius:20px;background:var(--surface)}
.ff-stat-panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:17px}.ff-stat-panel-head h3{margin:0;font-size:20px}.ff-stat-panel-head p{margin:3px 0 0;color:var(--ink-soft);font-size:13px}.ff-stat-panel-head>span{padding:5px 10px;border-radius:9px;background:var(--surface-alt);font-size:13px}
.ff-stat-table-wrap{overflow-x:auto}.ff-stat-table-wrap table{width:100%;border-collapse:collapse;font-size:13px;white-space:nowrap}.ff-stat-table-wrap th,.ff-stat-table-wrap td{padding:10px 12px;border-top:1px solid var(--line);text-align:left}.ff-stat-table-wrap th{color:var(--ink-soft);font-size:11px;font-weight:700}
.ff-stat-filters{margin-bottom:14px}.ff-stat-filters label:first-child{flex:1 1 280px}.ff-stat-filters label:nth-child(2){flex:0 1 190px}.ff-stat-filters input{width:100%}
.ff-stat-workspace{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(240px,.8fr);gap:14px;min-height:460px}
.ff-stat-map{position:relative;min-width:0;min-height:460px;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#e8ece7;touch-action:none;cursor:grab}.ff-stat-map:active{cursor:grabbing}
.ff-map-viewport{position:absolute;inset:0}.ff-map-tile{position:absolute;width:256px;height:256px;user-select:none;pointer-events:none}.ff-map-marker{position:absolute;z-index:2;display:grid;place-items:center;width:24px;height:24px;transform:translate(-50%,-50%);border:3px solid #fff;border-radius:50%;background:#165f7b;color:#fff;box-shadow:0 2px 8px #122d3e55;font-size:10px;font-weight:800;cursor:pointer}.ff-map-marker:not(:empty){width:31px;height:31px;background:#0b5569}.ff-map-marker:hover,.ff-map-marker:focus-visible{z-index:3;scale:1.2}
.ff-map-marker.is-selected{z-index:5;width:34px;height:34px;border:5px solid #fff;background:#c34d36;box-shadow:0 0 0 3px #c34d36,0 5px 18px #122d3e88}.ff-map-loading{position:absolute;z-index:5;top:12px;left:12px;max-width:calc(100% - 80px);padding:9px 12px;border:1px solid #d4dad8;border-radius:9px;background:#fffffff0;color:#243137;font-size:12px;font-weight:700;box-shadow:0 2px 9px #122d3e20}.ff-map-loading[hidden]{display:none}
.ff-map-controls{position:absolute;z-index:4;top:12px;right:12px;display:grid;gap:3px}.ff-map-controls button{width:39px;height:39px;border:1px solid #d4dad8;border-radius:9px;background:#fff;color:#243137;font-size:24px;cursor:pointer}
.ff-map-attribution{position:absolute;z-index:3;right:7px;bottom:6px;padding:3px 5px;border-radius:4px;background:#ffffffe8;color:#334155;font-size:10px;text-decoration:none}
.ff-map-detail{position:absolute;z-index:4;left:12px;bottom:12px;width:min(360px,calc(100% - 24px));max-height:46%;overflow:auto;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 12px 35px #1d34453d}.ff-map-detail[hidden]{display:none}.ff-map-detail>button{float:right;border:0;background:none;color:var(--ink);font-size:22px;cursor:pointer}.ff-map-detail strong{display:block;margin:0 26px 8px 0}.ff-map-detail p{margin:0;padding:8px 0;border-top:1px solid var(--line);font-size:13px}.ff-map-detail small{display:block;margin-top:3px;color:var(--ink-soft)}
.ff-stat-store-list{min-height:0;max-height:460px;overflow:auto;border:1px solid var(--line);border-radius:16px}.ff-store-row{display:grid;gap:3px;width:100%;padding:13px 15px;border:0;border-bottom:1px solid var(--line);background:var(--surface);color:var(--ink);text-align:left;cursor:pointer}.ff-store-row:hover,.ff-store-row:focus-visible{background:var(--surface-alt)}.ff-store-row strong{font-size:14px}.ff-store-row span{font-size:12px}.ff-store-row small{color:var(--ink-soft);font-size:11px}.ff-stat-empty{padding:20px;color:var(--ink-soft)}
.ff-store-row.is-selected{background:#e9f3f2;box-shadow:inset 4px 0 var(--accent)}
.ff-admin-upload{display:grid;gap:12px}.ff-admin-upload form{display:flex;align-items:end;flex-wrap:wrap;gap:10px}.ff-admin-upload label{display:grid;gap:5px;min-width:150px;font-size:12px;color:var(--ink-soft)}.ff-admin-upload input,.ff-admin-upload select{min-height:42px;max-width:100%;padding:7px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);font:inherit}.ff-admin-preview{padding:17px;border:1px solid var(--line);border-radius:12px;background:var(--surface-alt)}.ff-admin-preview[hidden],.ff-admin-upload [hidden]{display:none}.ff-admin-preview h3{margin:0}.ff-admin-preview>div{display:flex;flex-wrap:wrap;gap:8px}.ff-admin-preview>div span{padding:5px 9px;border-radius:7px;background:var(--surface);font-size:12px}.ff-admin-history{margin-top:22px}.ff-admin-history h3{font-size:16px}.ff-admin-version{display:flex;align-items:center;gap:14px;padding:13px 0;border-top:1px solid var(--line)}.ff-admin-version>div{display:grid;gap:3px;flex:1;min-width:0}.ff-admin-version small{overflow:hidden;text-overflow:ellipsis;color:var(--ink-soft)}.ff-admin-version>span{font-size:12px;color:var(--ink-soft)}
.app-update-notice{position:fixed;z-index:9999;right:18px;bottom:18px;display:flex;align-items:center;gap:12px;max-width:min(420px,calc(100vw - 36px));padding:13px 15px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);box-shadow:0 12px 35px #182b3533;font-size:13px}.app-update-notice button{padding:8px 12px;border:0;border-radius:8px;background:var(--accent);color:#fff;font:inherit;font-weight:700;cursor:pointer}
.ff-dashboard-filters{display:grid;grid-template-columns:repeat(5,minmax(125px,1fr)) auto;align-items:end;gap:10px;padding:16px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}.ff-dashboard-filters label{display:grid;gap:5px;min-width:0;color:var(--ink-soft);font-size:12px;font-weight:700}.ff-dashboard-filters select{width:100%;min-width:0;min-height:42px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px}.ff-dashboard-filters button{min-height:42px;padding:0 13px;border:1px solid var(--line);border-radius:10px;background:var(--surface-alt);color:var(--ink);font:inherit;font-size:13px;font-weight:700;cursor:pointer}.ff-dashboard-filters button:hover,.ff-dashboard-filters button:focus-visible{border-color:var(--accent)}.ff-stat-cards{grid-template-columns:repeat(4,minmax(0,1fr))}.ff-dash-charts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}.ff-dash-chart{min-height:230px}.ff-dash-bars{display:grid;gap:13px}.ff-dash-bar>div:first-child{display:flex;justify-content:space-between;gap:10px;margin-bottom:5px;font-size:13px}.ff-dash-bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ff-dash-bar strong{white-space:nowrap}.ff-dash-bar small{color:var(--ink-soft);font-size:11px;font-weight:400}.ff-dash-track{height:9px;overflow:hidden;border-radius:20px;background:var(--surface-alt)}.ff-dash-track i{display:block;height:100%;border-radius:20px;background:linear-gradient(90deg,var(--accent),#53aaa3);transition:width .25s ease}.ff-dash-chart:nth-child(2) .ff-dash-track i{background:linear-gradient(90deg,#345db7,#8ca5e1)}.ff-dash-chart:nth-child(3) .ff-dash-track i{background:linear-gradient(90deg,#ba6848,#e4a784)}
@media(max-width:1100px){.ff-dashboard-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.ff-dash-charts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.ff-dashboard-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.ff-stat-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.ff-dash-charts{grid-template-columns:1fr}}
@media(max-width:430px){.ff-dashboard-filters{grid-template-columns:1fr 1fr}.ff-dashboard-filters label:first-child,.ff-dashboard-filters button{grid-column:1/-1}}
@media(max-width:900px){.ff-stat-cards,.glass-ff-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.ff-breakdowns{grid-template-columns:1fr 1fr}.ff-stat-workspace{grid-template-columns:1fr}.ff-stat-store-list{max-height:300px}}
@media(max-width:620px){.ff-stat-top{align-items:stretch;flex-direction:column;padding:18px}.ff-stat-controls label{flex:1}.ff-admin-link,.ff-map-jump{width:100%}.ff-stat-cards{gap:7px}.ff-stat-card{padding:13px}.ff-stat-card>span{font-size:11px}.ff-stat-card small{font-size:11px}.ff-breakdowns{grid-template-columns:1fr}.ff-breakdown{min-height:0}.ff-stat-panel{padding:14px}.ff-stat-map{min-height:360px}.ff-stat-workspace{min-height:0}.app-update-notice{left:12px;right:12px;bottom:86px;max-width:none;justify-content:space-between}}
