:root { --ink:#14213d; --muted:#5c677d; --line:#d9dee7; --accent:#b8862b; --bg:#f7f8fb; }
* { box-sizing: border-box; }
body { margin:0; font:16px/1.5 system-ui, -apple-system, "Segoe UI", sans-serif; color:var(--ink); background:var(--bg); }
.top { padding:1.5rem 1rem 0.5rem; max-width:1100px; margin:0 auto; }
.top h1 { margin:0; }
.note { color:var(--muted); margin:.25rem 0 0; }
.grid { display:grid; gap:1rem; padding:1rem; max-width:1100px; margin:0 auto; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); }
.card { background:#fff; border:1px solid var(--line); border-radius:12px; padding:1rem; }
.card.wide { grid-column:1 / -1; }
label { display:block; margin:.5rem 0; font-weight:600; }
label.check { font-weight:400; }
input, textarea { display:block; width:100%; margin-top:.25rem; padding:.6rem; font:inherit; border:1px solid var(--line); border-radius:8px; }
label.check input { display:inline; width:auto; margin-right:.4rem; }
button { min-height:44px; padding:.6rem 1rem; margin-top:.5rem; border:0; border-radius:8px; background:var(--ink); color:#fff; font:inherit; font-weight:600; cursor:pointer; }
button.ghost { background:#fff; color:var(--ink); border:1px solid var(--line); }
button:focus-visible, input:focus-visible, textarea:focus-visible { outline:3px solid var(--accent); outline-offset:2px; }
.row { display:flex; gap:.5rem; flex-wrap:wrap; }
iframe { width:100%; height:320px; border:1px solid var(--line); border-radius:8px; background:#fff; }
table { width:100%; border-collapse:collapse; margin-top:.75rem; font-size:.95rem; }
th, td { text-align:left; padding:.45rem; border-bottom:1px solid var(--line); overflow-wrap:anywhere; }
.errors { color:#a4161a; min-height:1.2em; }
.msg { color:var(--muted); min-height:1.2em; }
