:root { --fg: #1d2330; --muted: #5b6475; --line: #d9dee7; --accent: #0b6bcb; --bg: #f5f7fa; --error: #b42318; --ok: #067647; }
* { box-sizing: border-box; }
body { margin: 0; font: 16px/1.55 system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; color: var(--fg); background: var(--bg); }
header { background: #fff; border-bottom: 1px solid var(--line); }
header .bar { max-width: 760px; margin: 0 auto; padding: 12px 16px; display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; }
header .brand { font-weight: 700; color: var(--fg); text-decoration: none; margin-right: auto; }
header .rating { border: 2px solid var(--fg); border-radius: 4px; padding: 0 6px; font-weight: 700; font-size: 14px; }
nav a { color: var(--accent); text-decoration: none; font-size: 15px; }
main { max-width: 760px; margin: 0 auto; padding: 16px; }
main section, form { background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 16px; margin-bottom: 16px; }
h1 { font-size: 24px; margin: 8px 0 16px; }
h2 { font-size: 19px; margin: 20px 0 8px; }
label { display: block; font-weight: 600; margin: 12px 0 4px; }
.hint { color: var(--muted); font-size: 14px; font-weight: 400; }
input[type=text], input[type=tel], input[type=password], input[type=date] { width: 100%; padding: 10px; font-size: 16px; border: 1px solid var(--line); border-radius: 6px; }
.row { display: flex; gap: 8px; }
.row input { flex: 1; }
button { padding: 10px 16px; font-size: 16px; border: 0; border-radius: 6px; background: var(--accent); color: #fff; cursor: pointer; }
button.secondary { background: #e8eef7; color: var(--accent); }
button:disabled { opacity: .55; cursor: default; }
.check { display: flex; gap: 8px; align-items: flex-start; font-weight: 400; }
.check input { margin-top: 5px; }
.error { color: var(--error); font-size: 14px; min-height: 1em; }
.notice { padding: 10px 12px; border-radius: 6px; margin: 12px 0; }
.notice.ok { background: #ecfdf3; color: var(--ok); }
.notice.err { background: #fef3f2; color: var(--error); }
.warning { background: #fffaeb; border: 1px solid #fedf89; border-radius: 6px; padding: 10px 12px; }
table { width: 100%; border-collapse: collapse; font-size: 15px; }
th, td { border-bottom: 1px solid var(--line); padding: 8px 6px; text-align: left; }
footer { max-width: 760px; margin: 0 auto; padding: 8px 16px 32px; color: var(--muted); font-size: 14px; }
.hidden { display: none; }
