/* R198 css/layout.css */
body{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;background:var(--bg);color:var(--text);line-height:1.5;max-width:480px;margin:0 auto}
body.has-contact-footer{padding-bottom:calc(var(--bottom-chrome-h) + 16px + var(--safe-area-bottom))}
body.share-page{padding-bottom:calc(var(--contact-footer-h) + 16px + var(--safe-area-bottom))}
.view-container{padding:12px;min-height:45vh}
.page-title{font-size:18px;margin-bottom:12px;font-weight:800}
.section-title{font-size:15px;font-weight:700;margin:12px 0 8px}
.kpi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}
.kpi-grid-4{grid-template-columns:repeat(2,1fr)}
@media(min-width:400px){.kpi-grid-4{grid-template-columns:repeat(4,1fr)}}
.dash-grid{display:grid;gap:12px;margin-bottom:12px}
@media(min-width:768px){.dash-grid{grid-template-columns:1.2fr 1fr}}
.ring-matrix{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ring-cell{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:10px 6px;text-align:center;font-size:11px;min-height:var(--touch-min)}
.ring-svg{width:48px;height:48px;display:block;margin:0 auto 4px}
.ring-label{display:block;margin:4px 0}
.dept-rank .rank-row{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border);width:100%;text-align:left;background:var(--card)}
.rank-medal{min-width:24px;font-weight:800}
.rank-name{flex:1}
.rank-pts{font-weight:700;color:var(--primary)}
.rank-bar{display:none}
.level-canvas{width:100%;max-width:320px;display:block;margin:0 auto}
.sr-table{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.share-main{padding:24px 16px;max-width:480px;margin:0 auto}
.share-card{background:var(--card);border-radius:20px;padding:28px 20px;text-align:center;box-shadow:0 4px 16px rgba(0,0,0,.08);margin-bottom:16px}
.share-icon{font-size:56px;margin-bottom:8px}
.share-slogan{color:var(--primary);font-weight:600;margin:12px 0;font-size:14px}
.share-stats{display:flex;justify-content:center;gap:16px;margin:16px 0;font-size:14px}
.share-stat strong{display:block;font-size:22px;color:var(--primary)}
#share-qr{text-align:center;margin:16px 0}
.share-open-app{display:block;text-align:center}
