/* Analytics: dense on purpose. Totals in one line, entries in one table row each. */
.page[data-page-name=analytics] .res-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;align-items:end;padding:8px 10px;margin-bottom:8px}
.page[data-page-name=analytics] .res-f label{font-size:11px;color:var(--muted);font-weight:600}
.page[data-page-name=analytics] .res-f .pk-search,.page[data-page-name=analytics] .res-filters input[type=date]{min-height:30px;padding:3px 8px;font-size:12.5px}
.page[data-page-name=analytics] .res-f .pk-chip{font-size:11.5px;padding:0 3px 0 8px}
.page[data-page-name=analytics] .res-f{position:relative;gap:2px}
.page[data-page-name=analytics] .res-f .pk-list{position:absolute;z-index:6;inset-inline:0;top:100%;box-shadow:0 12px 30px rgba(21,59,69,.14);background:var(--surface)}
.page[data-page-name=analytics] .res-f .pk-top{min-height:0}
.page[data-page-name=analytics] .res-f .pk-empty{display:none}
.page[data-page-name=analytics] .res-f .pk-bar{gap:4px}
.page[data-page-name=analytics] .res-range{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px}
.page[data-page-name=analytics] .res-filters input[type=date]{min-width:0}
.page[data-page-name=analytics] .res-dates{grid-column:span 2}
.page[data-page-name=analytics] .res-filters .ghost{min-height:30px;padding:2px 10px;font-size:12px;justify-self:start}
.page[data-page-name=analytics] .tabs{margin-bottom:8px}.page[data-page-name=analytics] .tabs button{font-size:13px;padding:6px 11px}
.res-note{margin:0 0 6px}
.res-strip{display:flex;flex-wrap:wrap;align-items:stretch;border:1px solid var(--line);border-radius:10px;background:var(--surface);margin-bottom:6px;overflow:hidden}
.res-strip-h{display:grid;align-content:center;gap:0;padding:5px 12px;background:var(--surface-3);min-width:96px;max-width:210px}
.res-strip-h b{font-size:12.5px;line-height:1.25}
.res-strip-h span{font-size:11px;color:var(--muted)}
.res-k{display:grid;align-content:center;padding:5px 12px;border-inline-start:1px solid var(--line);min-width:84px}
.res-k small{font-size:11px;color:var(--muted);line-height:1.2}
.res-k b{font-size:16px;line-height:1.2;color:var(--navy);font-variant-numeric:tabular-nums}
.res-wrap{margin-top:8px;overflow:auto}
.res-table{min-width:860px;font-size:12.5px}
.res-table th,.res-table td{padding:4px 8px;vertical-align:middle}
.res-table thead th{font-size:11px;position:sticky;top:0;z-index:1}
.res-table .num{text-align:end;font-variant-numeric:tabular-nums}
.res-table .nw{white-space:nowrap}
.res-table .tag{font-size:10.5px;padding:0 5px;border-radius:5px}
.res-table .status{font-size:10.5px;padding:0 7px}
.res-post{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.res-post small{font-weight:400}
.res-more{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:11.5px}
.res-more b{color:var(--ink)}
tr.res-plan th{background:var(--teal-soft);color:var(--navy);text-transform:none;letter-spacing:0;font-size:12.5px;padding:4px 8px;position:static;border-top:2px solid var(--teal)}
tr.res-plan .link-btn{float:inline-end;font-size:11.5px;color:var(--teal-2);font-weight:600}
tr.res-row{cursor:pointer}
tr.res-row:hover td{background:#f3fafa}
tr.res-row.older td{opacity:.6}
tr.res-row.counts td:first-child{box-shadow:inset 3px 0 0 var(--teal)}
.res-table .link-btn{font-size:11.5px;color:var(--teal-2)}
.res-ltable{min-width:760px}
.res-ltext{white-space:normal;line-height:1.35;white-space:pre-wrap;overflow-wrap:anywhere;max-width:560px}
.res-h{font-size:13px;line-height:1.3;margin:12px 0 6px}
.res-custom-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto;gap:8px;margin-bottom:8px}
.res-custom-row .icon-btn{width:34px;height:34px}
@media(max-width:760px){.page[data-page-name=analytics] .res-filters{grid-template-columns:1fr 1fr}.res-k{min-width:72px;padding:4px 8px}.res-custom-row{grid-template-columns:1fr 1fr auto}}

/* ===== Analytics 1.1: platform figures ===== */
.sr-only{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.an-filters{align-items:end}
.an-more{grid-column:1/-1}
.an-more summary{cursor:pointer;font-size:12.5px;font-weight:600;color:var(--teal-2);padding:2px 0}
.an-more-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin-top:8px}
.an-viewbar{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;align-items:center;border-top:1px solid var(--line);padding-top:8px}
.an-viewbar select{width:auto;min-width:170px;min-height:30px;padding:3px 8px;font-size:12.5px}
.an-viewbar .ghost{min-height:30px;padding:2px 10px;font-size:12px}
.an-toolrow{display:flex;gap:10px;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;margin-bottom:12px}
.an-toolrow .tabs{margin-bottom:0;flex:1 1 auto;overflow-x:auto;scrollbar-width:thin}
.an-toolrow .tabs button{white-space:nowrap}
.an-toolrow .view-switch button{padding:6px 12px;font-size:13px}
.an-body{min-height:200px}
.an-period{margin:0 0 10px;font-size:13.5px}
.an-h{font-size:14px;margin:14px 0 8px;color:var(--navy)}
.an-h4{font-size:12.5px;margin:12px 0 6px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.an-skel{display:grid;gap:10px}
.an-skel span{height:70px;border-radius:12px;background:linear-gradient(90deg,var(--surface-3),var(--surface),var(--surface-3));background-size:200% 100%;animation:an-sh 1.2s linear infinite}
@keyframes an-sh{to{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.an-skel span{animation:none}}
.an-emptybox{border:1px dashed var(--line);border-radius:12px;background:var(--surface)}
.an-empty{padding:18px;text-align:center}

/* cards */
.an-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(172px,1fr));gap:10px;margin-bottom:6px}
.an-cards.big{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.an-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:grid;align-content:start;gap:3px;min-width:0}
.an-card.nodata{background:var(--surface-2)}
.an-card.nodata .an-val{color:var(--muted)}
.an-card.warn{border-color:#e8c36a}
.an-card-h{display:flex;justify-content:space-between;gap:6px;align-items:center}
.an-lbl{font-size:12px;color:var(--muted);font-weight:600;line-height:1.25}
.an-val{font-size:22px;font-weight:700;line-height:1.15;color:var(--navy);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.an-val.sm{font-size:18px}
.an-sub{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;font-size:12px;min-height:16px}
.an-cov{font-size:11px;color:var(--amber-text,#8a5a00)}
.an-d{font-weight:700;font-size:12px;white-space:nowrap}
.an-d.good{color:#1c7a3f}.an-d.bad{color:#b3173a}.an-d.neutral,.an-d.flat,.an-d.none{color:var(--muted)}
body.dark .an-d.good{color:#6fdc9a}body.dark .an-d.bad{color:#ff9db1}
.an-tag{display:inline-block;font-size:10.5px;padding:0 6px;border-radius:6px;background:var(--surface-3);color:var(--muted);font-weight:600;line-height:1.7;white-space:nowrap}
.an-tag.paid{background:var(--violet-soft);color:#5f4fc0}
.an-tag.ok{background:var(--teal-soft);color:var(--teal-2)}
body.dark .an-tag.paid{color:#c4baff}
.an-spark{width:100%;max-width:130px;height:26px;margin-top:2px}
.an-spark path{fill:none;stroke:var(--teal);stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}
.an-mini{display:flex;flex-wrap:wrap;gap:2px 10px;font-size:11.5px;color:var(--muted);margin-top:4px}
.an-mini b{color:var(--ink)}
.an-panel{margin:12px 0;padding:12px 14px}
.an-panel .panel-head{margin-bottom:8px}
.an-panel h2{font-size:14.5px}
.an-grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:10px}
.an-grid2 .an-panel{margin:0}

/* insights and notes */
.an-insights{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:6px}
.an-insights li{border-inline-start:3px solid var(--teal);background:var(--surface);border-radius:8px;padding:7px 11px;font-size:13px;border-block:1px solid var(--line);border-inline-end:1px solid var(--line)}
.an-insights li.warn{border-inline-start-color:#d79a1a}
.an-notes{margin:12px 0;font-size:12.5px;color:var(--muted)}
.an-notes summary{cursor:pointer;font-weight:600}
.an-notes ul{margin:6px 0 0;padding-inline-start:18px;display:grid;gap:3px}

/* from views to results */
.an-chain{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch}
.an-step{display:grid;gap:2px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);min-width:110px}
.an-step b{font-size:18px;color:var(--navy);font-variant-numeric:tabular-nums}
.an-arrow{align-self:center;color:var(--muted)}
[dir=rtl] .an-arrow{transform:scaleX(-1)}

/* metric pickers */
.an-metricpick{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.an-chip{display:inline-flex;gap:5px;align-items:center;border:1px solid var(--line);border-radius:99px;padding:3px 10px;font-size:12.5px;background:var(--surface);cursor:pointer}
.an-chip input{width:auto;min-height:0;margin:0}
.an-chip.on{border-color:var(--teal);background:var(--teal-soft);color:var(--navy)}
.an-chip:focus-within{outline:3px solid rgba(28,168,167,.25)}

/* charts */
.an-chart{position:relative}
.an-svg{width:100%;height:auto;display:block;overflow:visible}
.an-svg:focus-visible{outline:3px solid rgba(28,168,167,.35);border-radius:6px}
.an-grid{stroke:var(--line);stroke-width:1}
.an-ax{fill:var(--muted);font-size:10.5px;font-family:inherit}
.an-line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.an-line.s0,.an-dot.s0{stroke:#0e8f90;fill:none}.an-dot.s0{fill:#0e8f90}
.an-line.s1,.an-dot.s1{stroke:#7362d8}.an-dot.s1{fill:#7362d8}
.an-line.s2,.an-dot.s2{stroke:#d12a4c}.an-dot.s2{fill:#d12a4c}
.an-line.s3,.an-dot.s3{stroke:#a35f00}.an-dot.s3{fill:#a35f00}
.an-line.dash{stroke:#8296a0;stroke-width:1.6;stroke-dasharray:5 4}
.an-dot{stroke:none}
body.dark .an-line.s0,body.dark .an-dot.s0{stroke:#5fd4d0}body.dark .an-dot.s0{fill:#5fd4d0}
body.dark .an-line.s1,body.dark .an-dot.s1{stroke:#b3a8ff}body.dark .an-dot.s1{fill:#b3a8ff}
body.dark .an-line.s2,body.dark .an-dot.s2{stroke:#ff8aa0}body.dark .an-dot.s2{fill:#ff8aa0}
body.dark .an-line.s3,body.dark .an-dot.s3{stroke:#f0c060}body.dark .an-dot.s3{fill:#f0c060}
body.dark .an-line.dash{stroke:#9fb2b8}
.an-cursor{stroke:var(--muted);stroke-width:1;stroke-dasharray:3 3}
.an-cur-dot{fill:var(--surface);stroke:var(--navy);stroke-width:2}
.an-legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--muted);margin-top:4px}
.an-lg{display:inline-flex;gap:6px;align-items:center}
.an-lg i,.an-tip i{display:inline-block;width:14px;height:0;border-top:3px solid #0e8f90;border-radius:2px;vertical-align:middle;margin-inline-end:5px}
.an-lg i.s1,.an-tip i.s1{border-color:#7362d8}.an-lg i.s2,.an-tip i.s2{border-color:#d12a4c}.an-lg i.s3,.an-tip i.s3{border-color:#a35f00}
.an-lg i.dash,.an-tip i.dash{border-top:2px dashed #8296a0}
.an-tip{position:fixed;z-index:80;pointer-events:none;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:12.5px;box-shadow:0 10px 30px rgba(19,50,62,.2);max-width:280px;display:grid;gap:2px}
.an-tip[hidden]{display:none}

/* bars */
.an-bars{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.an-bars li{display:grid;grid-template-columns:minmax(80px,32%) minmax(60px,1fr) auto;gap:4px 10px;align-items:center;font-size:12.5px}
.an-bl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.an-bt{height:10px;background:var(--surface-3);border-radius:6px;overflow:hidden;display:block}
.an-bf{display:block;height:100%;background:var(--teal);border-radius:6px}
.an-bf.neg{background:var(--coral)}
.an-bv{font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}
.an-bs{grid-column:2/-1;margin-top:-3px}
.an-toplist{list-style:none;margin:0;padding:0}
.an-top{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line);font-size:13px}
.an-toplist li:last-child{border-bottom:0}
.an-top b{overflow-wrap:anywhere}

/* coverage strip */
.an-cov-row{display:grid;grid-template-columns:minmax(120px,22%) 1fr auto;gap:10px;align-items:center;margin:6px 0;font-size:12.5px}
.an-strip{display:flex;gap:1px;height:16px;min-width:0}
.an-strip i{flex:1 1 0;min-width:1px;border-radius:1px}
.an-strip i.on{background:var(--teal)}
.an-strip i.off{background:repeating-linear-gradient(45deg,#e8b7c1 0 2px,#fff0 2px 4px);background-color:var(--coral-soft);outline:1px solid #f1c3cc;outline-offset:-1px}
body.dark .an-strip i.off{background-color:#482634}

/* tables */
.an-wrap{margin-top:8px}
.an-table{min-width:560px;font-size:12.5px}
.an-table th,.an-table td{padding:5px 9px;vertical-align:middle}
.an-table .num{text-align:end;font-variant-numeric:tabular-nums}
.an-table .nw{white-space:nowrap}
.an-table tfoot th{background:var(--surface-3);text-transform:none;font-size:12.5px;color:var(--ink)}
.an-posts{min-width:980px}
.an-title{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.an-sort{border:0;background:none;padding:0;font:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit;cursor:pointer;font-weight:700}
.an-sort:hover{color:var(--teal-2)}
.an-sort:focus-visible{outline:2px solid var(--teal);border-radius:4px}
.an-tools{margin:0 0 8px;padding:7px 10px}
.an-tools input[type=search]{min-height:32px;max-width:320px}
.an-tools select{min-height:32px}
.an-pager{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}
.an-count{margin:6px 0 0}
.an-map td,.an-map th{vertical-align:middle}
.an-map select{min-height:30px;padding:2px 6px}
.an-qrow{display:flex;justify-content:space-between;gap:8px;font-size:12.5px;padding:2px 0;border-bottom:1px dotted var(--line)}
.an-qrow.warnrow b{color:var(--amber-text,#8a5a00)}
.an-qact{margin-top:6px;font-size:12px}
.an-qact .link-btn,.link-btn.danger-text{font-size:12px;color:var(--teal-2)}
.link-btn.danger-text{color:var(--coral-text,#b3173a)}

/* import wizard */
.an-pvgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin:8px 0}
.an-pv{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--surface-2);display:grid;gap:0}
.an-pv b{font-size:20px;font-variant-numeric:tabular-nums;color:var(--navy)}
.an-pv small{color:var(--muted);font-size:11.5px}
.an-pv.new{border-color:var(--teal)}.an-pv.chg{border-color:#d79a1a}
.an-diff{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:3px;font-size:12.5px}
.an-diff li{padding:3px 8px;background:var(--surface-2);border-radius:6px;overflow-wrap:anywhere}
.an-fxin{width:110px;min-height:28px;padding:2px 6px;font-size:12.5px}

@media(max-width:760px){
  .an-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .an-cards.big{grid-template-columns:1fr}
  .an-val{font-size:19px}
  .an-bars li{grid-template-columns:minmax(70px,38%) minmax(40px,1fr) auto}
  .an-cov-row{grid-template-columns:1fr;gap:3px}
  .an-toolrow .view-switch{width:100%}
  .an-more-grid{grid-template-columns:1fr}
  .an-viewbar select{flex:1 1 100%}
  .an-grid2{grid-template-columns:1fr}
  .an-chain{flex-direction:column}.an-arrow{transform:rotate(90deg);text-align:center}
}
@media print{.an-tip{display:none}}

.page[data-page-name=analytics] .an-filters{grid-template-columns:repeat(auto-fit,minmax(126px,1fr))}
.page[data-page-name=analytics] .an-filters .res-dates{grid-column:span 2}
@media(max-width:760px){.page[data-page-name=analytics] .an-filters{grid-template-columns:1fr 1fr}}
.page[data-page-name=analytics] .an-filters select{width:100%;flex:none;min-width:0;min-height:30px;padding:3px 8px;font-size:12.5px}
#dialogForm [data-an-opts]{display:grid;gap:10px;margin-top:12px}
#dialogForm:has(.an-table,.an-pvgrid,#anFile,[data-an-opts]) .field,#dialogForm:has(.an-table,.an-pvgrid,#anFile,[data-an-opts]) .form-grid,#dialogForm:has(.an-table,.an-pvgrid,#anFile,[data-an-opts]) .an-wrap{margin-bottom:12px}
