.life-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:end}
.life-filters button{height:42px}
.life-search{grid-column:span 2}
.life-scores{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin:24px 0}
.life-score{background:var(--card);border:1px solid var(--border);border-top:3px solid var(--rota-cyan);border-radius:10px;padding:16px 18px}
.life-score:first-child{border-top-color:var(--rota-lime)}
.life-score span{display:block;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.life-score strong{display:block;margin-top:6px;color:var(--rota-blue);font-size:28px;font-weight:750;font-variant-numeric:tabular-nums}
.life-bar{height:6px;margin-top:12px;border-radius:99px;background:var(--soft);overflow:hidden}
.life-bar i{display:block;height:100%;background:#247f86}
.life-chart{position:relative;height:320px;color:#26364c}
html[data-theme="dark"] .life-chart{color:#edf2f8}
.life-day{display:grid;grid-template-columns:140px repeat(4,1fr);gap:12px;padding:10px 0;border-bottom:1px solid var(--border);font-size:13px}
.life-day strong{color:var(--rota-blue)}
.life-risk{display:inline-block;border-radius:99px;padding:3px 8px;font-size:11px;font-weight:700}
.life-risk-low{background:#e8f3d6;color:#385d17}
.life-risk-medium{background:#fff1d6;color:#8a5a10}
.life-risk-high{background:#fde2e2;color:#8d2b2b}
.life-report{margin-top:16px}
.life-report thead th{background:#1e355f;color:#fff}
.life-report-split{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.life-report-note{margin:10px 2px 0;color:var(--muted);font-size:12px}
.life-map{height:420px;border:1px solid var(--border);border-radius:8px;background:var(--card)}
.life-map-button{width:34px;height:34px;padding:0}
.life-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start;margin-top:16px}
.life-column{background:var(--soft);border:1px solid var(--border);border-radius:12px;min-height:460px;border-top-width:3px}
.life-column[data-status="open"]{border-top-color:var(--rota-cyan)}
.life-column[data-status="attending"]{border-top-color:#e0a100}
.life-column[data-status="resolved"]{border-top-color:#6ea31a}
.life-column.is-over{outline:2px solid var(--rota-cyan);outline-offset:-2px}
.life-column header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px}
.life-column h2{margin:0;font-size:15px;color:var(--rota-blue)}
.life-column header span{background:#1e355f;color:#fff;border-radius:99px;min-width:24px;padding:2px 8px;font-size:12px;font-weight:700;text-align:center}
.life-column-body{display:flex;flex-direction:column;gap:10px;padding:0 12px 12px;min-height:320px}
.life-column-empty{margin:8px 4px;color:var(--muted);font-size:13px}
.life-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:12px 14px;cursor:grab}
.life-card:active{cursor:grabbing}
.life-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.life-card strong{color:var(--rota-blue)}
.life-card p{margin:6px 0 0;font-size:13px}
.life-card small{display:block;margin-top:6px;color:var(--muted)}
.life-treatments{list-style:none;margin:0 0 16px;padding:0}
.life-treatments li{padding:10px 0;border-bottom:1px solid var(--border)}
.life-treatments span{color:var(--muted);font-size:12px}
.life-treatments p{margin:4px 0 0}
.life-map .leaflet-control{color:#26364c}
.life-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.life-config{padding:16px 0;border-bottom:1px solid var(--border)}
.life-config h3{font-size:14px;color:var(--rota-blue);margin:0 0 12px}
.life-rank-sort{display:inline-flex;align-items:center;gap:6px;background:none;border:0;padding:0;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}
.life-rank-link{background:none;border:0;padding:0;color:var(--rota-blue);font:inherit;font-weight:700;cursor:pointer;text-align:left}
.life-rank-link:hover{text-decoration:underline}
.life-rank-scores .life-score{cursor:pointer}
.life-rank-scores .life-score.is-selected{box-shadow:0 0 0 2px var(--rota-cyan)}
.life-riskbar{display:flex;align-items:center;gap:8px;min-width:132px}
.life-riskbar i{display:block;width:72px;height:8px;border-radius:99px;background:#e6ebf0;overflow:hidden}
.life-riskbar i span{display:block;height:100%;border-radius:99px;background:#2f9e44}
.life-riskbar b{font-size:13px;font-weight:700;color:var(--text)}
.life-riskbar.is-alert i span{background:#c44545}
.life-stars{color:#c5ced8;letter-spacing:1px;white-space:nowrap}
.life-stars b{color:#1e355f;font-weight:400}
.life-stars.is-alert b{color:#c44545}
.life-stars strong{margin-left:8px;color:var(--text);font-variant-numeric:tabular-nums}
.table-responsive.is-loading,.life-board.is-loading,.life-chart.is-loading{position:relative;min-height:180px}
.life-loading{position:absolute;inset:0;z-index:4;display:flex;align-items:flex-start;justify-content:center;padding-top:72px;background:color-mix(in srgb,var(--card) 78%,transparent)}
.life-loading span{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:1px solid var(--border);border-radius:999px;background:var(--card);color:var(--rota-blue);font-size:13px;font-weight:700;box-shadow:var(--shadow)}
html[data-theme="dark"] .life-riskbar i{background:#2d3e55}
html[data-theme="dark"] .life-stars b{color:#a9c9ff}
html[data-theme="dark"] .life-risk-low{background:#163b32;color:#90e9b1}
html[data-theme="dark"] .life-risk-medium{background:#433821;color:#ffe09b}
html[data-theme="dark"] .life-risk-high{background:#472832;color:#ffb3b3}
@media(max-width:1100px){.life-filters,.life-scores,.life-fields,.life-report-split{grid-template-columns:1fr 1fr}.life-day{grid-template-columns:1fr 1fr}.life-board{grid-template-columns:1fr}}
@media(max-width:700px){.life-filters,.life-scores,.life-fields,.life-day,.life-report-split{grid-template-columns:1fr}.life-search{grid-column:auto}.life-filters button{width:100%}.life-map{height:280px}.life-chart{height:260px}.life-column{min-height:0}.life-column-body{min-height:120px}}
