/* Reports (includes/reports-view.php). Scoped to .cw-reports; uses the UI kit tokens (--u-*). */

.cw-reports{ --rep-line:var(--u-line,rgba(40,15,80,.12)); }
.cw-reports .is-hidden{ display:none; }
.cw-reports .cw-rep-h.is-empty,
.cw-reports .cw-rep-grid.is-empty{ display:none; }
.cw-reports h4.cw-rep-h{
	margin:22px 0 10px; font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--u-mut);
}
.cw-reports h4.cw-rep-h:first-child{ margin-top:0; }

/* The upgrade card */
.cw-rep-up{
	display:grid; gap:8px; justify-items:start; padding:28px 24px; border-radius:var(--u-r,14px);
	background:linear-gradient(140deg,var(--u-vi-bg,var(--soft)),transparent 70%);
}
.cw-rep-up h3{ margin:0; font-size:19px; font-weight:600; letter-spacing:-.01em; }
.cw-rep-up p{ margin:0; max-width:52ch; color:var(--u-mut); font-size:14px; line-height:1.5; }

/* The search box */
.cw-rep-find{ margin-bottom:4px; }
.cw-rep-search{
	width:100%; max-width:420px; padding:10px 14px; border:1px solid var(--rep-line); border-radius:12px;
	background:var(--u-card); color:var(--u-ink); font:inherit; font-size:14px;
}
.cw-rep-search::placeholder{ color:var(--u-mut); }
.cw-rep-search:focus{ outline:2px solid var(--u-a); outline-offset:1px; border-color:transparent; }

/* The report cards of the library */
.cw-rep-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(258px,1fr)); gap:12px; }
.cw-rep-item{
	position:relative; display:flex; align-items:flex-start; gap:10px; min-width:0;
	padding:14px 14px 14px 16px; border:1px solid var(--rep-line); border-radius:var(--u-r,14px);
	background:var(--u-card); transition:border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.cw-rep-item:hover{ border-color:color-mix(in srgb,var(--u-a) 45%,var(--rep-line)); box-shadow:0 6px 20px rgba(20,10,50,.07); transform:translateY(-1px); }
.cw-rep-item.is-hidden{ display:none; }
.cw-rep-item__link{ display:grid; gap:3px; min-width:0; flex:1; color:inherit; text-decoration:none; }
.cw-rep-item__link:focus-visible{ outline:2px solid var(--u-a); outline-offset:3px; border-radius:8px; }
.cw-rep-item__title{ font-size:14.5px; font-weight:600; letter-spacing:-.01em; line-height:1.3; }
.cw-rep-item__desc{ font-size:12.5px; line-height:1.45; color:var(--u-mut); }
.cw-rep-item__fav{ flex:none; margin:-2px -2px 0 0; }
.cw-rep-star{
	display:grid; place-items:center; width:30px; height:30px; padding:0; border:0; border-radius:9px;
	background:transparent; color:var(--u-mut); cursor:pointer; transition:background .15s ease,color .15s ease;
}
.cw-rep-star:hover{ background:var(--u-soft); color:var(--u-am,var(--u-a)); }
.cw-rep-star.is-on{ color:#f0a020; }
.cw-rep-star:focus-visible{ outline:2px solid var(--u-a); outline-offset:1px; }
.cw-rep-cat.is-empty{ display:none; }

/* The filter bar */
.cw-rep-filters{ display:flex; flex-wrap:wrap; align-items:flex-end; gap:10px 12px; }
.cw-rep-filter{ display:grid; gap:4px; min-width:132px; }
.cw-rep-filter > span{ font-size:11.5px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--u-mut); }
.cw-rep-filters select,
.cw-rep-field select,
.cw-rep-field input[type="text"],
.cw-rep-frow select,
.cw-rep-frow input[type="text"]{
	appearance:none; -webkit-appearance:none; width:100%; padding:8px 30px 8px 11px; border:1px solid var(--rep-line);
	border-radius:10px; background:var(--u-card); color:var(--u-ink); font:inherit; font-size:13.5px; line-height:1.3;
	background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);
	background-position:calc(100% - 15px) calc(50% + 1px),calc(100% - 10px) calc(50% + 1px);
	background-size:5px 5px,5px 5px; background-repeat:no-repeat;
}
.cw-rep-frow input[type="text"]{ background-image:none; padding-right:11px; }
.cw-rep-filters select:focus,
.cw-rep-field select:focus,
.cw-rep-field input:focus,
.cw-rep-frow select:focus,
.cw-rep-frow input:focus{ outline:2px solid var(--u-a); outline-offset:1px; border-color:transparent; }
.cw-rep-apply{ margin-left:auto; }

/* The number cards */
.cw-rep-kpis{ display:grid; grid-template-columns:repeat(auto-fit,minmax(168px,1fr)); gap:12px; }
.cw-rep-kpi{
	display:grid; gap:4px; align-content:start; padding:14px 16px; border:1px solid var(--rep-line);
	border-radius:var(--u-r,14px); background:var(--u-card);
}
.cw-rep-kpi__label{ font-size:12px; font-weight:600; letter-spacing:.03em; color:var(--u-mut); }
.cw-rep-kpi__row{ display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.cw-rep-kpi__row strong{ font-size:23px; font-weight:600; letter-spacing:-.02em; font-variant-numeric:tabular-nums; line-height:1.15; }

/* The charts (inline SVG) */
.cw-rep-svg{ display:block; width:100%; max-width:760px; height:auto; margin:2px 0 4px; overflow:visible; }
.cw-rep-svg__grid{ stroke:var(--u-line); stroke-width:1; }
.cw-rep-svg__axis{ fill:var(--u-mut); font-size:20px; font-variant-numeric:tabular-nums; }
.cw-rep-svg__line{ fill:none; stroke:var(--u-a); stroke-width:3.4; stroke-linecap:round; stroke-linejoin:round; }
.cw-rep-svg__area{ fill:color-mix(in srgb,var(--u-a) 14%,transparent); }
.cw-rep-svg__dot{ fill:var(--u-a); stroke:var(--u-card); stroke-width:2.5; }
.cw-rep-svg__bar{ fill:color-mix(in srgb,var(--u-a) 82%,transparent); }
.cw-rep-svg__track{ stroke:var(--u-soft); }
.cw-rep-svg__big{ fill:var(--u-ink); font-size:30px; font-weight:600; }
.cw-rep-svg__small{ fill:var(--u-mut); font-size:17px; }
@media (max-width:640px){
	.cw-rep-svg__axis{ font-size:26px; }
	.cw-rep-svg__small{ font-size:22px; }
}

/* The numbers of the chart, as a list */
.cw-rep-legend{
	display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:2px 18px; margin:10px 0 0; padding:0; list-style:none;
}
.cw-rep-legend li{ display:flex; align-items:baseline; justify-content:space-between; gap:10px; padding:5px 0; border-bottom:1px solid var(--rep-line); font-size:13px; }
.cw-rep-legend li span{ min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--u-mut); }
.cw-rep-legend li strong{ font-weight:600; font-variant-numeric:tabular-nums; white-space:nowrap; }

.cw-rep-note{ margin:10px 0 0; font-size:12.5px; }

/* The builder */
.cw-rep-source{ display:flex; flex-wrap:wrap; align-items:flex-end; gap:10px 12px; }
.cw-rep-source .cw-rep-field{ min-width:220px; }
.cw-rep-field{ display:grid; gap:5px; margin:0 0 12px; }
.cw-rep-field > span{ font-size:12.5px; font-weight:600; color:var(--u-ink); }
.cw-rep-cols{ display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:8px 14px; }
.cw-rep-grid2{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:0 14px; }
.cw-rep-check{ display:flex; align-items:flex-start; gap:8px; margin:0 0 8px; font-size:13.5px; line-height:1.4; cursor:pointer; }
.cw-rep-check input{ margin:2px 0 0; accent-color:var(--u-a); flex:none; }
.cw-rep-frow{ display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1.2fr) 34px; align-items:center; gap:8px; margin-bottom:8px; }
.cw-rep-frow select, .cw-rep-frow input{ margin:0; }
.cw-rep-x{
	display:grid; place-items:center; width:32px; height:32px; padding:0; border:1px solid var(--rep-line); border-radius:9px;
	background:var(--u-card); color:var(--u-mut); font-size:18px; line-height:1; cursor:pointer;
}
.cw-rep-x:hover{ color:var(--u-red,var(--u-mut)); border-color:currentColor; }
.cw-rep-x:focus-visible{ outline:2px solid var(--u-a); outline-offset:1px; }
.cw-rep-save{ margin:0; }
.cw-rep-acts{ display:flex; flex-wrap:wrap; gap:10px; }
.cw-rep-acts form{ margin:0; }

/* The people data screen */
.cw-rep-tablewrap{ overflow-x:auto; }
.cw-rep-data table{ width:100%; border-collapse:collapse; font-size:13.5px; }
.cw-rep-data th{ padding:8px 10px; text-align:left; font-size:11.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--u-mut); border-bottom:1px solid var(--rep-line); }
.cw-rep-data td{ padding:8px 10px; border-bottom:1px solid var(--rep-line); }
.cw-rep-data tr:last-child td{ border-bottom:0; }
.cw-rep-data td.is-num{ text-align:right; }
.cw-rep-mini{ max-width:190px; padding:5px 8px; border:1px solid var(--rep-line); border-radius:8px; background:var(--u-card); color:var(--u-ink); font:inherit; font-size:13px; }
.cw-rep-mini:focus{ outline:2px solid var(--u-a); outline-offset:1px; border-color:transparent; }
.cw-rep-num{ width:120px; text-align:right; font-variant-numeric:tabular-nums; }

/* Small screens */
@media (max-width:640px){
	.cw-rep-grid{ grid-template-columns:minmax(0,1fr); }
	.cw-rep-kpis{ grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); }
	.cw-rep-kpi__row strong{ font-size:20px; }
	.cw-rep-filter{ min-width:0; width:100%; }
	.cw-rep-apply{ margin-left:0; width:100%; }
	.cw-rep-filters{ gap:10px; }
	.cw-rep-frow{ grid-template-columns:minmax(0,1fr) 34px; }
	.cw-rep-frow select, .cw-rep-frow input{ grid-column:1; }
	.cw-rep-frow .cw-rep-x{ grid-column:2; grid-row:1; }
	.cw-rep-legend{ grid-template-columns:minmax(0,1fr); }
}
