.auth-page{--auth-bg:#0a0a14;--auth-card:#ffffff09;--auth-line:#ffffff1f;--auth-text:#f5f7fa;--auth-muted:#a7adb5;min-height:100vh;color:var(--auth-text);background:radial-gradient(circle at 50% -10%, #ff3b304d, transparent 44rem), var(--auth-bg);margin:0;font-family:Roboto,Inter,ui-sans-serif,system-ui,sans-serif}.auth-shell{place-items:center;min-height:100vh;padding:32px 16px;display:grid}.auth-card{border:1px solid var(--auth-line);background:var(--auth-card);border-radius:12px;width:min(100%,440px);padding:40px;box-shadow:0 24px 80px #00000052}.auth-emblems{justify-content:space-between;align-items:center;margin-bottom:36px;display:flex}.auth-emblems img{object-fit:contain;width:58px;height:64px}.auth-copy{text-align:center;margin-bottom:28px}.auth-copy h1{margin:0 0 10px;font-size:30px;font-weight:400}.auth-copy p:last-child{color:var(--auth-muted);margin:0;font-size:14px;line-height:1.5}.auth-kicker{color:var(--auth-muted);text-transform:uppercase;margin:0 0 12px;font-size:12px}.auth-notice{color:#efe78a;background:#efe78a14;border:1px solid #efe78a5c;border-radius:6px;margin-bottom:20px;padding:12px;font-size:13px;line-height:1.4}.auth-form{gap:18px;display:grid}.auth-field{color:var(--auth-muted);gap:7px;font-size:12px;display:grid}.auth-field input{border:1px solid var(--auth-line);min-height:44px;color:var(--auth-text);font:inherit;background:#0a0a14d1;border-radius:6px;outline:none;padding:0 12px}.auth-field input:focus{border-color:#e56b6d;box-shadow:0 0 0 3px #e56b6d29}.auth-field input[aria-invalid=true]{border-color:#ff7a73}.auth-field small{color:#ff9d98;line-height:1.3}.auth-remember{color:var(--auth-muted);align-items:center;gap:8px;font-size:13px;display:inline-flex}.auth-remember input{accent-color:#e56b6d}.auth-submit{color:#fff;cursor:pointer;min-height:46px;font:inherit;background:linear-gradient(135deg,#e56b6d,#bc6f90);border:0;border-radius:6px;font-weight:500}.auth-submit:hover{filter:brightness(1.08)}.auth-admin-link{color:var(--auth-muted);text-align:center;margin:24px 0 0;font-size:13px}.auth-admin-link a{color:var(--auth-text)}@media (width<=480px){.auth-card{padding:28px 22px}}:root{--bg:#0a0a14;--panel:#ffffff05;--panel-head:#ffffff0d;--line:#ffffff1a;--line-strong:#ffffff24;--line-soft:#ffffff0f;--text:#f5f7fa;--muted:#a7adb5;--muted-2:#7f8590;--accent:#e56b6d;--cyan:#74d5d5;--warning:#efe78a;--shadow:0 1px 3px #0000001f, 0 1px 1px #00000024, 0 2px 1px -1px #0003;font-family:Roboto,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--bg)}body.report-page{isolation:isolate;min-height:100vh;color:var(--text);background:var(--bg);letter-spacing:0;margin:0;overflow-x:hidden}body.report-page:before,body.report-page:after{z-index:0;content:"";filter:blur(400px);opacity:.25;pointer-events:none;background:#ff3b30;border-radius:50%;display:block;position:absolute}body.report-page:before{width:1390px;height:1390px;top:-702px;left:calc(50% - 693px)}body.report-page:after{width:927px;height:927px;top:1442px;left:calc(50% + 455px)}button,input{font:inherit}.page{z-index:1;width:min(100% - 32px,1152px);margin:0 auto;padding:96px 0;position:relative}.hero{grid-template-columns:72px 1fr 72px;align-items:center;width:min(100%,1140px);min-height:88px;margin:0 auto 64px;display:grid}.brand-mark{object-fit:contain;width:56px;height:64px;display:block}.brand-mark--right{justify-self:end;width:72px}.hero-copy{text-align:center;min-width:0}.kicker{color:var(--muted);margin:0 0 16px;font-size:14px;font-weight:400}h1{margin:0;font-size:clamp(36px,4.2vw,48px);font-weight:400;line-height:1.16}.period-form{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:20px;display:flex}.period-field{color:var(--muted);text-align:left;text-transform:uppercase;gap:5px;font-size:10px;font-weight:700;display:grid}.period-field input,.period-form button{border:1px solid var(--line-strong);min-height:32px;color:var(--text);background:#14131dd1;border-radius:5px;outline:none}.period-field input{width:142px;padding:0 10px}.period-form button{cursor:pointer;background:linear-gradient(135deg,#ff7674b3,#b98cff85);align-self:end;padding:0 14px;font-weight:800}.section-card{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:8px;margin-top:64px;padding:24px}.section-card:first-of-type{margin-top:0}.section-header{justify-content:space-between;align-items:center;gap:24px;min-height:48px;margin-bottom:24px;display:flex}.section-title{min-width:0;color:var(--text);text-transform:uppercase;align-items:center;gap:12px;font-size:16px;font-weight:400;line-height:1.3;display:flex}.section-icon{background:#ffffff1a;border-radius:999px;flex:none;place-items:center;width:48px;height:48px;display:grid}.section-icon svg{width:24px;height:24px}.row-icon{width:16px;height:16px;color:var(--muted);object-fit:contain;flex:none;display:block}.stats-strip{min-width:0;color:var(--muted);flex-wrap:wrap;justify-content:flex-end;gap:14px;font-size:14px;font-weight:400;display:flex}.stats-strip b{color:var(--text);font-weight:600}.content-grid{grid-template-columns:minmax(0,728px) minmax(320px,1fr);align-items:stretch;gap:24px;display:grid}.donut-stack,.mini-grid{gap:24px;display:grid}.panel{border:1px solid var(--line);background:var(--panel);border-radius:8px;min-width:0;overflow:hidden}.panel-title{border-bottom:1px solid var(--line);background:var(--panel-head);min-height:56px;color:var(--muted);letter-spacing:.17px;text-align:center;text-transform:uppercase;justify-content:center;align-items:center;padding:0 16px;font-size:12px;font-weight:400;line-height:16px;display:flex}.table-wrap{overflow-x:auto}.table-toolbar{border-bottom:1px solid var(--line);background:#ffffff06;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.table-search{border:1px solid var(--line);width:min(240px,100%);min-height:30px;color:var(--text);background:#0f0f19db;border-radius:5px;outline:none;padding:0 10px;font-size:11px;font-weight:700}.table-count{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:900}.report-table{border-collapse:collapse;width:100%;min-width:728px;font-size:14px}.report-table th,.report-table td{border-bottom:1px solid var(--line-soft);height:52px;color:var(--text);text-align:right;white-space:nowrap;padding:0 24px}.report-table td{letter-spacing:.17px;font-weight:500}.report-table th{background:var(--panel-head);color:var(--text);letter-spacing:.17px;text-transform:uppercase;font-size:12px;font-weight:400}.report-table thead tr:first-child th{color:#6b7280;background:0 0;border-bottom:0;height:32px;font-weight:400}.report-table thead tr:nth-child(2) th{height:56px}.report-table thead tr:nth-child(2) th:first-child{background:var(--panel-head)}.report-table thead tr:nth-child(2) th:nth-child(2),.report-table thead tr:nth-child(2) th:nth-child(4),.report-table tbody td:nth-child(2),.report-table tbody td:nth-child(4){border-left:1px dashed #ffffff17}.report-table thead tr:nth-child(2) th:last-child,.report-table tbody td:last-child{border-right:1px dashed #ffffff17}.report-table th[data-sort-col]{cursor:pointer;-webkit-user-select:none;user-select:none}.report-table th[data-sort-col]:after{content:"";display:none}.report-table th.is-sorted-asc:after,.report-table th.is-sorted-desc:after{content:""}.report-table tbody tr{cursor:pointer;transition:background-color .15s,color .15s}.report-table tbody tr:hover,.report-table tbody tr.is-selected{background:#ff767413}.report-table tbody tr.is-selected td:first-child{background:#2a1822fa}.report-table th:first-child,.report-table td:first-child{z-index:1;text-align:left;background:0 0;min-width:160px;position:sticky;left:0}.report-table thead tr:first-child th:first-child{background:0 0}.target-cell{min-width:0;max-width:170px;color:var(--text);align-items:center;gap:8px;font-weight:500;display:flex}.target-cell span{text-overflow:ellipsis;overflow:hidden}.chart-panel{min-height:399px;padding:0;position:relative}.chart-panel--large{min-height:295px}.chart-panel--tall{min-height:399px}.chart-canvas{width:calc(100% - 28px);height:204px;min-height:204px;margin:22px 14px 0;display:block}.chart-panel--large .chart-canvas{height:254px;min-height:254px}.chart-panel--tall .chart-canvas{height:295px;min-height:295px}.chart-loading,.chart-empty{color:var(--muted);text-align:center;pointer-events:none;place-items:center;font-size:12px;font-weight:800;display:grid;position:absolute;inset:74px 16px 16px}.chart-panel.is-ready .chart-loading,.chart-panel:not(.is-empty) .chart-empty{display:none}.chart-legend,.dataset-legend{color:var(--text);flex-wrap:wrap;justify-content:center;gap:10px 24px;margin:8px 16px 0;font-size:12px;font-weight:400;display:flex}.donut-panel .chart-canvas{width:150px;height:180px;min-height:180px;margin:0;position:absolute;top:110px;left:20px}.donut-panel .chart-legend{color:var(--text);place-content:start;margin:0;font-size:12px;font-weight:400;display:grid;position:absolute}.donut-panel .chart-legend--side{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(17px,auto);gap:7px 8px;top:150px;left:170px;right:12px}.donut-panel .chart-legend--bottom{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(17px,auto);gap:12px 10px;top:284px;left:20px;right:12px}.donut-panel .legend-item{text-align:left;white-space:normal;justify-content:flex-start;align-items:flex-start;width:100%;line-height:15px}.donut-panel .legend-label{overflow-wrap:anywhere;min-width:0;max-width:100%;display:block}.donut-panel .legend-item--wide{grid-column:1/-1}.legend-item,.legend-toggle{align-items:center;gap:6px;min-width:0;display:inline-flex}.legend-dot{border-radius:0;flex:none;width:12px;height:12px}.legend-toggle{color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.legend-toggle.is-muted,.legend-item.is-muted{opacity:.42}.legend-item{color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.chart-block{margin-top:40px}.two-columns{grid-template-columns:1fr 1fr;gap:24px;display:grid}.metric-row{align-items:end;gap:40px;padding:0;display:flex}.metric{gap:5px;display:grid}.metric span{color:var(--muted);letter-spacing:.17px;text-transform:uppercase;font-size:12px;font-weight:400}.metric b{color:var(--text);letter-spacing:.15px;font-size:20px;font-weight:500;line-height:1.6}.distance-row{justify-content:space-between;align-items:end;gap:24px;min-height:76px;padding:24px;display:flex}.compact-chart{flex:0 0 190px;min-height:42px;padding:0}.compact-chart .chart-canvas{width:190px;height:42px;min-height:42px;margin:0}@media (width>=821px){.section-card--strike .chart-panel--large{min-height:391px}.section-card--strike .chart-panel--large .chart-canvas{height:335px;min-height:335px}.section-card--effectiveness{height:519px}.section-card--other{height:276px}}.chart-tooltip{z-index:50;border:1px solid var(--line-strong);max-width:260px;color:var(--text);pointer-events:none;background:#0c0c14f0;border-radius:6px;padding:8px 10px;font-size:12px;font-weight:800;display:none;position:fixed;box-shadow:0 16px 38px #0000005c}@media (width<=820px){.page{width:min(100% - 20px,960px);padding:40px 0 56px}.hero{grid-template-columns:48px 1fr 48px;gap:10px;min-height:72px;margin-bottom:40px}.brand-mark{width:42px;height:48px}.brand-mark--right{width:48px}.kicker{white-space:normal;font-size:11px;line-height:1.4}h1{font-size:34px}.section-card{margin-top:40px;padding:16px 12px}.section-header,.content-grid,.two-columns{grid-template-columns:1fr}.section-header{display:grid}.section-title{font-size:13px}.section-icon{width:40px;height:40px}.section-icon svg{width:20px;height:20px}.stats-strip{justify-content:flex-start;gap:8px;font-size:12px}.table-toolbar{flex-direction:column;align-items:stretch}.table-search{width:100%}.chart-panel,.chart-panel--tall{min-height:360px}.chart-panel--large{min-height:300px}.distance-row{flex-direction:column;align-items:stretch}.compact-chart,.compact-chart .chart-canvas{flex-basis:42px;width:100%}}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/report/roboto-regular.ttf)format("truetype")}@font-face{font-family:Roboto;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/report/roboto-medium.ttf)format("truetype")}
