*{box-sizing:border-box}:root{--bg:#f5f7fa;--card:#fff;--text:#2c3e50;--muted:#8b93a0;--line:#eef1f4;--soft:#f7f8fa;--accent:#667eea;--risk:#c0392b}body{background:var(--bg);color:var(--text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}a{color:var(--accent)}.wrap{max-width:1040px;margin:0 auto;padding:20px 16px 48px}.back{font-size:14px;text-decoration:none}h1{margin:14px 0 12px;font-size:22px;font-weight:650}h2{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:18px 0 8px;font-size:13px}.muted{color:var(--muted);font-weight:400}.small{font-size:12px}.toolbar,.settings{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.toolbar{margin-bottom:10px;font-size:13px}.settings{color:#6b7785;gap:8px 16px;margin:0 0 14px;font-size:13px}.settings label,.toolbar label{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.settings input{width:4.6em;font:inherit;background:#fff;border:1px solid #d5dbe3;border-radius:4px;padding:4px 6px}.settings button{border:1px solid var(--accent);color:var(--accent);font:inherit;cursor:pointer;background:#fff;border-radius:4px;padding:4px 10px}select{max-width:100%;font:inherit;background:#fff;border:1px solid #d5dbe3;border-radius:4px;padding:5px 8px;font-size:13px}.switch{border:2px solid var(--accent);border-radius:4px;display:inline-flex;overflow:hidden}.switch a,.switch span{color:var(--accent);background:#fff;padding:4px 12px;font-size:13px;font-weight:600;text-decoration:none}.switch a.on{background:var(--accent);color:#fff}.switch span.disabled{color:#c3c9d2;cursor:not-allowed}.card{background:var(--card);border-radius:8px;margin-top:12px;padding:14px 16px 16px;box-shadow:0 2px 8px #0000000f}.week-label{color:#6b7785;margin-bottom:8px;font-size:13px}.badge{color:#3d4d73;background:#eef1f8;border-radius:999px;padding:0 6px;font-size:11px;display:inline-block}.kpis{grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:8px;display:grid}.kpi{background:var(--soft);border-radius:8px;min-height:108px;padding:10px 12px 12px}.kpi.lead{background:#eef8f6}.kpi b{font-variant-numeric:tabular-nums;font-size:26px;font-weight:700;line-height:1.1;display:block}.kpi.risk b{color:var(--risk)}.kpi-title{margin:2px 0 6px;font-size:13px;font-weight:650}.kpi-line{color:#5c6770;font-size:12px;line-height:1.35}.note,.hint{color:var(--muted);margin:10px 0 0;font-size:12px;line-height:1.4}.note.warn{color:#9a5b12;background:#fff7ec;border-radius:6px;padding:8px 10px}.months{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.strip-label{color:var(--muted);flex:1 0 100%;font-size:12px}.month{background:var(--soft);border-radius:6px;min-width:64px;padding:6px 10px}.month span{color:var(--muted);font-size:11px;display:block}.month b{font-variant-numeric:tabular-nums;font-size:16px}.filters{flex-wrap:wrap;gap:6px;margin:12px 0 6px;display:flex}.chip{color:var(--text);background:#fff;border:1px solid #d5dbe3;border-radius:999px;padding:3px 10px;font-size:13px;text-decoration:none}.chip.on{background:var(--text);color:#fff;border-color:var(--text)}details{margin:8px 0 12px;font-size:13px}details summary{cursor:pointer;color:#5c6770}table{border-collapse:collapse;width:100%;font-size:13px}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:6px 8px}th{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;width:7.5em}tr.row{cursor:pointer}tr.row:hover{background:#f8fafb}td.url{word-break:break-all}td.url a{color:inherit;text-decoration:none}td.url a:hover{text-decoration:underline}td.trend{width:92px}.seen{color:var(--muted)}tr.history>td{cursor:default;background:#fbfcfd}.history-table{margin:4px 0 8px}.life{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px 14px;margin:4px 0 10px;font-size:12px;display:grid}.life b{font-size:13px;font-weight:650;display:block}.life span{color:var(--muted)}.state-first{color:#0f9f8f;font-weight:650}.state-back{color:#e67e22;font-weight:650}.state-miss{color:var(--risk)}.state-nodata{color:#b7c0cb;font-style:italic}.status{white-space:nowrap;border-radius:999px;padding:1px 6px;font-size:11px;font-weight:650;display:inline-block}.status-growing{color:#0b7a62;background:#e5f6f2}.status-declining,.status-missing{color:#a33b32;background:#fdeceb}.status-stable{color:#3d4d73;background:#eef1f8}.status-new{color:#0f6f86;background:#e7f6f8}.status-recovered{color:#9a5b12;background:#fff3e4}.status-irregular,.status-intermittent{color:#5c6570;background:#f3f4f6}.status-short_absence,.status-low_missing{color:var(--muted);background:var(--soft)}.watch-dot{color:var(--risk);margin-left:4px;font-size:10px}.empty{color:var(--muted);padding:18px 2px 22px}.more{color:#5c6770;font-size:13px}.projects{padding:0;list-style:none}.projects li{padding:6px 0}@media (max-width:640px){.rows td.trend,.rows>thead th:nth-child(2){display:none}}.banners{gap:6px;margin:8px 0;display:grid}.banner{color:#9a5b12;background:#fff7ec;border-radius:6px;padding:8px 12px;font-size:13px}.banner.critical{color:#a33b32;background:#fdeceb}.banner.info{color:#3d4d73;background:#eef1f8}.button,form button{border:1px solid var(--accent);background:var(--accent);color:#fff;font:inherit;cursor:pointer;border-radius:4px;padding:6px 12px;font-size:13px;text-decoration:none;display:inline-block}form button.secondary{color:var(--accent);background:#fff;margin-top:8px}.properties{gap:6px;margin:10px 0;display:grid}.property{font-size:14px}.progress-box{margin:8px 0 12px;font-size:13px}.progress{background:var(--line);border-radius:4px;height:8px;margin:6px 0;overflow:hidden}.progress>div{background:var(--accent);height:100%}.login{place-items:center;min-height:100vh;padding:16px;display:grid}.login-card{gap:12px;width:100%;max-width:360px;display:grid}.login-card h1{margin:0;font-size:18px}.login-card h2{margin:0}.login-card label{color:#5c6770;gap:4px;font-size:13px;display:grid}.login-card input[type=email],.login-card input[type=password]{font:inherit;border:1px solid #d5dbe3;border-radius:4px;padding:8px 10px;font-size:14px}.login-card button{padding:8px 12px;font-size:14px}.userbar{justify-content:flex-end;align-items:center;gap:10px;max-width:1040px;margin:0 auto;padding:8px 16px 0;display:flex}.userbar button.link{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px}
