.py-body{box-sizing:border-box;padding:20px 24px 40px}.py-head{flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:16px;display:flex}.py-title{font-size:var(--ky-text-xl);color:var(--ky-ink);margin:0;font-weight:800}.py-head-meta{font-size:var(--ky-text-xs);color:var(--ky-muted)}.py-stats{grid-template-columns:1fr;gap:12px;margin-bottom:16px;display:grid}@media (min-width:900px){.py-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}.py-stat{min-width:0;padding:var(--ky-space-lg);background:var(--ky-surface);border:1px solid var(--ky-line);border-radius:var(--ky-radius-lg);flex-direction:column;gap:4px;display:flex}.py-stat-warn{border-color:var(--ky-amber-border);background:var(--ky-amber-soft)}.py-stat-bad{border-color:var(--ky-red-border);background:var(--ky-red-soft)}.py-stat-label{font-size:var(--ky-text-xs);color:var(--ky-sub);font-weight:700}.py-stat-value{font-size:var(--ky-text-xl);color:var(--ky-ink);font-variant-numeric:tabular-nums;font-weight:900}.py-stat-count{line-height:1.25}.py-stat-sub{font-size:var(--ky-text-xxs);color:var(--ky-muted)}.py-tabs{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.py-tab{height:var(--ky-hit-sm);border:1px solid var(--ky-line2);border-radius:var(--ky-radius-pill);background:var(--ky-surface);color:var(--ky-sub);font-size:var(--ky-text-md);cursor:pointer;padding:0 14px;font-family:inherit;font-weight:700}.py-tab:hover{background:var(--ky-soft);color:var(--ky-ink)}.py-tab-on{background:var(--ky-ink);border-color:var(--ky-ink);color:var(--ky-surface)}.py-tab-on:hover{background:var(--ky-ink-hover);color:var(--ky-surface)}.py-tools{padding:12px var(--ky-space-lg);border-bottom:1px solid var(--ky-line);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.py-period{gap:4px;display:flex}.py-pill{height:var(--ky-hit-sm);border:1px solid var(--ky-line2);border-radius:var(--ky-radius-pill);background:var(--ky-surface);color:var(--ky-sub);font-size:var(--ky-text-xs);cursor:pointer;padding:0 12px;font-family:inherit;font-weight:700}.py-pill:hover{background:var(--ky-soft);color:var(--ky-ink)}.py-pill-on{background:var(--ky-soft);border-color:var(--ky-ink);color:var(--ky-ink)}.py-dates{align-items:center;gap:6px;display:flex}.py-search{flex:1;align-items:center;gap:6px;min-width:240px;display:flex}.py-search .ky-input{flex:1;min-width:160px}.py-sort{height:var(--ky-hit-sm);border:1px solid var(--ky-line2);border-radius:var(--ky-radius-md);background:var(--ky-surface);color:var(--ky-ink);font-size:var(--ky-text-xs);cursor:pointer;padding:0 8px;font-family:inherit}.py-table-wrap{overflow-x:auto}.py-strong{color:var(--ky-ink);font-weight:700}.py-dim{color:var(--ky-muted);font-variant-numeric:tabular-nums}.py-due{color:var(--ky-red)}.py-link{color:var(--ky-blue);font-size:var(--ky-text-xs);font-weight:700;text-decoration:none}.py-link:hover{text-decoration:underline}.py-row-acts{align-items:center;gap:8px;display:inline-flex}.py-msg{border-radius:var(--ky-radius-md);font-size:var(--ky-text-md);word-break:break-all;margin-bottom:12px;padding:9px 12px;font-weight:700}.py-msg-ok{background:var(--ky-green-soft);color:var(--ky-green);border:1px solid var(--ky-green-border)}.py-msg-err{background:var(--ky-red-soft);color:var(--ky-red);border:1px solid var(--ky-red-border)}
