*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;background:#f5f6f8;color:#111}.container{max-width:1080px;margin:0 auto;padding:2rem 1.5rem}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.page-header h1{font-size:1.5rem;font-weight:700}.muted{color:#667;font-size:.85rem}.cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:1rem;gap:1rem;margin-bottom:1.5rem}.card{background:#fff;border:1px solid #e3e5e8;border-radius:10px;padding:1rem 1.25rem}.card .card-label{font-size:.8rem;color:#667;margin-bottom:.35rem}.card .card-value{font-size:1.6rem;font-weight:700}.card .card-sub{font-size:.8rem;color:#889}.section{background:#fff;border:1px solid #e3e5e8;border-radius:10px;padding:1.25rem;margin-bottom:1.5rem}.section h2{font-size:1.05rem;font-weight:600;margin-bottom:1rem}.table{width:100%;border-collapse:collapse;font-size:.9rem}.table td,.table th{text-align:left;padding:.55rem .75rem;border-bottom:1px solid #eef0f2}.table th{color:#556;font-weight:600;background:#fafbfc}.button{display:inline-block;background:#111;color:#fff;border:none;border-radius:8px;padding:.55rem 1.1rem;font-size:.9rem;cursor:pointer;text-decoration:none}.button:disabled{opacity:.5;cursor:default}.button.secondary{background:#fff;color:#111;border:1px solid #ccd}.tabs{display:flex;gap:.5rem;margin-bottom:1rem}.tab{border:1px solid #ccd;background:#fff;border-radius:999px;padding:.4rem 1rem;font-size:.85rem;cursor:pointer}.tab.active{background:#111;color:#fff;border-color:#111}.badge{display:inline-block;border-radius:999px;padding:.15rem .6rem;font-size:.75rem;font-weight:600}.badge.normal{background:#e6f4ea;color:#137333}.badge.warning{background:#fef7e0;color:#b06000}.badge.risk{background:#fce8e6;color:#c5221f}.status-bar{display:flex;height:14px;border-radius:7px;overflow:hidden;margin-bottom:.5rem}.status-bar .seg-normal{background:#34a853}.status-bar .seg-warning{background:#fbbc04}.status-bar .seg-risk{background:#ea4335}.legend{display:flex;gap:1rem;font-size:.8rem;color:#556}.legend .dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:.3rem}.empty{color:#889;text-align:center;padding:2rem 0;font-size:.9rem}.card.is-abuse{border-left:4px solid #fa7b17}.card .card-value.abuse{color:#d9690a}.card.clickable-card{position:relative;cursor:pointer;transition:box-shadow .15s,transform .05s}.card.clickable-card:hover{box-shadow:0 0 0 2px #9cc3fb}.card.clickable-card.selected{box-shadow:0 0 0 2px #111}.card.clickable-card:active{transform:translateY(1px)}.card-caret{position:absolute;top:.7rem;right:.85rem;font-size:.7rem;color:#99a}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.case-panel{animation:slideDown .22s ease}.section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:1rem}.section-head h2{margin-bottom:0}.hint{font-size:.78rem;color:#889}.dashboard-controls{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}.view-toggle{display:inline-flex;border:1px solid #ccd;border-radius:8px;overflow:hidden;background:#fff}.view-toggle button{font:inherit;font-size:.85rem;padding:.45rem .9rem;border:none;background:transparent;color:#445;cursor:pointer}.view-toggle button+button{border-left:1px solid #e3e5e8}.view-toggle button.active{background:#111;color:#fff}.week-select{font:inherit;font-size:.85rem;padding:.5rem .55rem;border:1px solid #ccd;border-radius:8px;background:#fff;color:#111}.table tbody tr.clickable,.week-select{cursor:pointer}.table tbody tr.clickable:hover{background:#f3f7ff}.row-link{color:#4285f4;font-size:.82rem;font-weight:600;white-space:nowrap}.badge{display:inline-flex;align-items:center;gap:.35rem}.badge .dot{width:7px;height:7px;border-radius:50%}.badge.normal .dot{background:#34a853}.badge.warning .dot{background:#fbbc04}.badge.risk .dot{background:#ea4335}.filter-chip{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;background:#e8f0fe;color:#1a56c4;border-radius:999px;padding:.25rem .7rem;margin-left:.5rem}.filter-chip a{color:#1a56c4;text-decoration:none;font-weight:700}