:root {
  --line: #dbe2db;
  --accent: #225e4e;
  color-scheme: light;
  font-family: Inter, "Microsoft YaHei", system-ui, sans-serif;
  color: #18251f;
  background: #f5f7f3;
}

*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; }
a { color: #1b6353; }
button { cursor: pointer; font: inherit; }
.portal-main { margin-inline: auto; width: min(1200px, calc(100% - 32px)); }
.case-data-page { padding-block: 32px 48px; }
.case-data-page .form-field { position: relative; min-width: 0; }
.case-data-page .form-field.required::before { right: 0; margin-left: 0; }
.portal-top {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: center;
  justify-content: space-between;
  padding: 16px max(16px, calc((100% - 1200px) / 2));
  border-bottom: 1px solid #dbe2db;
  background: #fff;
}
.portal-brand { display: flex; align-items: center; gap: 12px; color: inherit; text-decoration: none; }
.portal-brand b { padding: 8px; background: #225e4e; color: #fff; border-radius: 6px; }
.portal-brand small { display: block; margin-top: 4px; color: #466258; }
.portal-top nav { display: flex; gap: 16px; align-items: center; }
.portal-top nav button { border: 0; padding: 4px 0; color: #1b6353; background: none; text-decoration: underline; }
.case-login {
  width: min(440px, calc(100% - 32px));
  margin: clamp(32px, 12vh, 120px) auto 24px;
  padding: clamp(20px, 5vw, 36px);
  background: #fff;
  border: 1px solid #dbe2db;
  border-radius: 14px;
}
.case-login h1 { margin: 8px 0 24px; font-size: clamp(22px, 6vw, 30px); }
.case-login-center, .case-login-help { color: #466258; font-size: .875rem; }
.case-login form { display: grid; gap: 8px; }
.case-login input:not([type="hidden"]) { padding: 10px; width: 100%; border: 1px solid #b4c1b7; border-radius: 6px; font: inherit; }
.case-login button { margin-top: 10px; padding: 10px; color: #fff; background: #225e4e; border: 0; border-radius: 6px; }
.case-login .errorlist { margin: 0; padding-inline-start: 20px; color: #a22929; }
