*,:before,:after{box-sizing:border-box}html,body{color:#e8eaed;background:#0f1115;height:100%;margin:0;font-family:system-ui,-apple-system,sans-serif;overflow:hidden}.dashboard{grid-template-rows:auto 1fr;gap:4px;height:100vh;padding:4px;display:grid}.page-header{background:#1a1d24;border-radius:6px;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:10px 14px;display:grid}.page-header-left{flex-direction:column;gap:2px;min-width:0;display:flex}.page-header-title{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:16px;font-weight:700;overflow:hidden}.page-header-pr{color:#8ab4f8;white-space:nowrap;font-size:13px;font-weight:600;text-decoration:none}.page-header-pr:hover{text-decoration:underline}.page-header-middle{justify-content:center;align-items:center;gap:24px;display:flex}.header-api-card{flex-direction:column;gap:2px;min-width:10px;display:flex}.header-api-label-row{align-items:center;gap:8px;display:flex}.header-api-label-row a{color:#8ab4f8;font-size:14px;font-weight:600;text-decoration:none}.header-api-label-row a:hover{text-decoration:underline}.header-api-status{color:#9aa0a6;padding-left:22px;font-size:12px}.page-header-right{text-align:right;flex-direction:column;align-items:flex-end;gap:2px;display:flex}.page-header-deployed-by{color:#e8eaed;font-size:13px}.page-header-deployed-at{color:#9aa0a6;font-size:13px}.status-ball{background:#c9a227;border-radius:50%;flex-shrink:0;width:14px;height:14px;box-shadow:0 0 8px #c9a22780}.status-ball--ok{background:#2ea043;box-shadow:0 0 8px #2ea04380}.status-ball--error{background:#f85149;box-shadow:0 0 8px #f8514980}.frontend-grid{grid-template-rows:repeat(2,1fr);grid-template-columns:repeat(3,1fr);gap:4px;min-height:0;display:grid}.frontend-tile{background:#1a1d24;border-radius:6px;flex-direction:column;min-height:0;display:flex;overflow:hidden}.frontend-tile:nth-child(4){grid-column:1/2}.frontend-tile:nth-child(5){grid-column:2/4}.tile-header{background:#252830;border-bottom:1px solid #30343c;padding:6px 10px;font-size:13px;font-weight:600}.tile-header a{color:#8ab4f8;text-decoration:none}.tile-header a:hover{text-decoration:underline}.tile-frame{background:#fff;border:0;flex:1;width:100%}
