*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:Arial,Helvetica,sans-serif;background:#f4f7fb;color:#10243e}
body{min-height:100vh}.page{width:min(1250px,calc(100% - 28px));margin:auto;padding:12px 0 15px}
.portal-header{background:linear-gradient(135deg,#0f3d5e,#126e82);color:#fff;padding:20px 28px;border-radius:14px;margin-bottom:14px;box-shadow:0 3px 12px rgba(15,61,94,.12)}
.portal-header h1{margin:0;font-size:30px}.portal-header p{margin:4px 0 0;font-size:15px;opacity:.92}
.dataset-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.card{background:#fff;border:1px solid #d9e0e7;border-radius:14px;box-shadow:0 2px 8px rgba(0,0,0,.05);padding:14px}
.number-circle{width:52px;height:52px;border-radius:50%;background:#e7f5f8;color:#08718b;display:flex;align-items:center;justify-content:center;font-size:21px;font-weight:700;margin-bottom:7px}
.card-title{font-size:22px;line-height:1.25;font-weight:700;margin-bottom:7px;overflow-wrap:anywhere}
.card-desc{color:#627084;font-size:15px;line-height:1.45;margin-bottom:9px}
.stat{border-radius:9px;padding:8px 12px;margin:5px 0;display:flex;justify-content:space-between;font-size:15px;font-weight:700}
.stat-total{background:#eef8fd;border:1px solid #a9dcf8}.stat-today{background:#effcf4;border:1px solid #a6efc4}
.stat-value{font-size:22px;color:#08718b}.stat-today .stat-value{color:#07883c}
.download{display:block;width:100%;margin-top:7px;background:#14788b;color:#fff;border:0;border-radius:8px;font-size:15px;font-weight:700;padding:10px;text-align:center;text-decoration:none}
.download:hover{background:#0f6677}.error{margin-top:7px;padding:8px;border-radius:7px;background:#fff2f2;color:#a33;border:1px solid #efcaca;font-size:12px}
.portal-footer{background:#0f3d5e;color:#fff;text-align:center;padding:11px;border-radius:10px;margin-top:14px;font-size:13px}
@media(max-width:900px){.dataset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.page{width:calc(100% - 18px)}.dataset-grid{grid-template-columns:1fr}.portal-header{padding:16px 18px}.portal-header h1{font-size:25px}.card{padding:12px}}
