:root { --fg:#16202a; --muted:#4a5563; --bg:#f7f7f4; --card:#fff; --line:#d5d9de; --accent:#0b4f8a; --accent-fg:#fff; --err:#a3161a; --warn:#7a4b00; --warn-bg:#fff4dc; }
* { box-sizing: border-box; }
body { margin:0; font:16px/1.5 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; color:var(--fg); background:var(--bg); }
.wrap { max-width: 960px; margin: 0 auto; padding: 0 1rem; }
.skip { position:absolute; left:-9999px; } .skip:focus { left:1rem; top:1rem; background:#fff; padding:.5rem; z-index:10; }
a { color: var(--accent); }
:focus-visible { outline: 3px solid #e0a100; outline-offset: 2px; }
.stub-banner { background:#b00020; color:#fff; font-weight:700; text-align:center; padding:.6rem; }
.site-header { background:#fff; border-bottom:1px solid var(--line); }
.site-header .wrap { display:flex; justify-content:space-between; align-items:center; padding:.75rem 1rem; flex-wrap:wrap; gap:.5rem; }
.brand { font-weight:700; font-size:1.15rem; } nav a { margin-left:1rem; }
.hero h1 { font-size: clamp(1.6rem, 4vw, 2.3rem); margin: 1.5rem 0 .5rem; }
.card { background:var(--card); border:1px solid var(--line); border-radius:8px; padding:1.25rem; margin:1rem 0; }
.privacy-note { border-left:4px solid var(--accent); padding:.25rem 1rem; background:#eaf2fa; }
.field { display:flex; flex-direction:column; margin-bottom:1rem; flex:1; min-width: 12rem; }
.row { display:flex; gap:1rem; flex-wrap:wrap; }
label { font-weight:600; margin-bottom:.25rem; }
input, select, button { font:inherit; }
input[type=email], input[type=password], input[type=date], select { padding:.5rem; border:1px solid #8a939c; border-radius:4px; }
.help { color:var(--muted); font-size:.9rem; margin:.25rem 0 0; }
.actions { display:flex; gap:.75rem; flex-wrap:wrap; }
button { padding:.6rem 1rem; border-radius:4px; border:1px solid #6b747c; background:#fff; color:var(--fg); cursor:pointer; min-height:44px; }
button.primary { background:var(--accent); color:var(--accent-fg); border-color:var(--accent); }
button:disabled { opacity:.6; cursor:progress; }
.error { color:var(--err); font-weight:600; }
.progress { margin-top:1rem; color:var(--muted); }
.caveat { background:var(--warn-bg); color:#3d2a00; border:1px solid #e3c27a; border-radius:6px; padding:1rem; }
.total .big { font-size: clamp(2rem, 7vw, 3rem); font-weight:800; margin:.25rem 0; }
.total .label { margin:0; color:var(--muted); }
.split { display:flex; gap:1.5rem; flex-wrap:wrap; margin:0; } .split dt { color:var(--muted); font-size:.9rem; } .split dd { margin:0; font-weight:700; }
.engine-meta { color:var(--muted); font-size:.8rem; }
.table-wrap { overflow-x:auto; }
table { border-collapse:collapse; width:100%; background:#fff; } caption { text-align:left; font-weight:700; padding:.5rem 0; }
th, td { border-bottom:1px solid var(--line); padding:.5rem; text-align:left; white-space:nowrap; } td.num { text-align:right; font-variant-numeric: tabular-nums; }
.notice { border:1px solid var(--line); background:#fff; padding:.5rem 1rem; border-radius:6px; margin:1rem 0; }
.notice.warn { background:var(--warn-bg); }
.wp-preview { position:relative; min-height:140px; overflow:hidden; border:1px dashed var(--line); border-radius:6px; }
.blur { filter: blur(6px); user-select:none; padding:1rem; }
.lock { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-weight:700; }
.lead { border-top:1px solid var(--line); padding-top:1rem; margin-top:1rem; display:flex; flex-direction:column; max-width:28rem; }
.lead .check { font-weight:400; margin:.5rem 0; }
#wp-frame { width:100%; min-height:60vh; border:1px solid var(--line); margin-top:.75rem; background:#fff; }
.site-footer { color:var(--muted); font-size:.85rem; padding:2rem 1rem; }
@media (max-width: 600px) { th, td { padding:.4rem; font-size:.9rem; } }
.copy-section { margin: 2rem 0; }
.copy-section table { max-width: 40rem; }
[data-copy] ol, [data-copy] ul { padding-left: 1.25rem; }
