body { margin: 0; background: #f5f7fa; color: #1c2936; font: 16px/1.5 system-ui, sans-serif; }
.shell { max-width: 960px; margin: 0 auto; padding: 0 24px; }
.topbar { background: #123c63; color: white; }
.topbar-inner, .heading-row { display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.topbar-inner { min-height: 64px; }
.topbar nav { display: flex; align-items: center; gap: 20px; }
.topbar a { color: white; }
.topbar form { margin: 0; }
main { padding-top: 32px !important; padding-bottom: 48px !important; }
h1 { margin: 0 0 8px; font-size: 30px; }
p { margin-top: 0; }
a { color: #165c8f; }
.card { background: white; border: 1px solid #dbe2e8; border-radius: 8px; padding: 24px; margin: 20px 0; }
.summary-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 20px 0; }
.summary-card { background: white; border: 1px solid #dbe2e8; border-radius: 8px; padding: 16px; }
.summary-card strong { display: block; font-size: 28px; line-height: 1.2; }
.summary-card span { color: #52616f; font-size: 14px; }
.table-scroll { overflow-x: auto; }
.narrow { max-width: 440px; }
label { display: block; font-weight: 600; margin: 14px 0 6px; }
input[type=email], input[type=password], input[type=text], select, textarea { width: 100%; box-sizing: border-box; border: 1px solid #adbac5; border-radius: 4px; padding: 10px; font: inherit; }
input[type=submit], .button, button { background: #176495; border: 0; border-radius: 4px; color: white; cursor: pointer; display: inline-block; font: inherit; padding: 9px 14px; text-decoration: none; }
input[type=submit] { margin-top: 20px; }
.topbar button { background: transparent; border: 1px solid #b9d0df; }
.danger { background: #a72c31; margin-top: 12px; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 10px; border-bottom: 1px solid #e1e7eb; text-align: left; }
th { color: #52616f; }
dl { display: grid; grid-template-columns: 140px 1fr; gap: 10px; margin: 0; }
dt { color: #52616f; }
dd { margin: 0; }
.notice, .alert { padding: 10px 14px; border-radius: 4px; }
.notice { background: #e5f5e9; }
.alert { background: #fdeaea; }
@media (max-width: 640px) { .topbar-inner, .heading-row { align-items: flex-start; flex-direction: column; padding-top: 12px; padding-bottom: 12px; } .summary-grid { grid-template-columns: repeat(2, 1fr); } table { font-size: 13px; } }
