:root {
  --bg: #f4f6f8;
  --surface: #ffffff;
  --text: #1f2937;
  --text-soft: #5b6470;
  --border: #d9e0e7;
  --primary: #2563eb;
  --shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
}
* { box-sizing: border-box; }
body { margin:0; font-family: Arial, sans-serif; background: var(--bg); color: var(--text); }
.public-langbar {
  position: fixed; top: 12px; right: 12px; z-index: 1000; background: var(--surface);
  border: 1px solid var(--border); border-radius: 14px; box-shadow: var(--shadow); padding: 8px 10px;
}
.public-langbar a { color: var(--primary); text-decoration:none; margin:0 4px; font-weight:bold; }
.public-langbar a.active { text-decoration: underline; }
.public-shell { max-width: 560px; margin: 80px auto 24px; padding: 16px; }
.public-card {
  background: var(--surface); border: 1px solid var(--border); border-radius: 18px; box-shadow: var(--shadow); padding: 24px;
}
.public-card h1 { margin-top:0; font-size: 1.9rem; }
.public-card label { display:block; margin: 14px 0 6px; font-weight:bold; }
.public-card input, .public-card select, .public-card button {
  width:100%; min-height:52px; border-radius: 16px; border: 1px solid var(--border); padding: 12px 14px; font:inherit;
}
.public-card button { background: var(--primary); color:#fff; border-color:var(--primary); cursor:pointer; }
.public-error, .public-notice {
  border-radius: 16px; padding: 14px 16px; margin-bottom: 16px;
}
.public-error { background:#fee2e2; color:#991b1b; border:1px solid rgba(153,27,27,0.15); }
.public-notice { background:#dbeafe; color:#1d4ed8; border:1px solid rgba(29,78,216,0.15); }
.public-linkbox { margin-top: 16px; text-align:center; }
.public-linkbox a { color: var(--primary); text-decoration:none; }