@font-face {
  font-family: "Plus Jakarta";
  src: url("../assets/PlusJakartaSans.woff2") format("woff2");
  font-weight: 400 700;
  font-display: swap;
}
:root { --ink:#141218; --muted:#6b6775; --line:#e4e2ea; --warn:#8a1f1f; --accent:var(--accent); }
* { box-sizing:border-box; }
html, body { margin:0; background:#f4f3f0; color:var(--ink); font-family:"Plus Jakarta",ui-sans-serif,system-ui,sans-serif; }
.hidden { display:none !important; }
.toolbar {
  position:sticky; top:0; z-index:4; display:flex; gap:12px; align-items:center;
  padding:10px 18px; background:#fff; border-bottom:1px solid var(--line);
}
.toolbar button {
  border:0; background:var(--accent); color:#fff; border-radius:999px; padding:8px 14px; cursor:pointer;
}
.toolbar .hint { font-size:12px; color:var(--muted); }
#blocked {
  margin:24px; padding:22px 24px; background:#f7f4ee; color:#2a2620; font-size:16px; font-weight:600;
  letter-spacing:0; border-radius:16px; border:1px solid #e4e2ea; max-width:520px;
}
#sheet { max-width:920px; margin:24px auto 64px; background:#fff; padding:36px 40px 48px; box-shadow:0 18px 50px rgba(0,0,0,.08); }
.masthead { display:grid; grid-template-columns:1fr auto; gap:12px; border-bottom:1px solid var(--line); padding-bottom:16px; }
.masthead h1 { margin:0 0 6px; font-size:28px; }
.masthead p, .meta, .foot { color:var(--muted); font-size:13px; }
.conflict { background:#fff4f0; color:var(--warn); padding:10px 12px; border-radius:10px; margin:16px 0; font-weight:600; }
.hero { margin:18px 0; }
.hero img { width:100%; max-height:360px; object-fit:contain; background:#fafafa; border:1px solid var(--line); }
.pills, .palette { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0 18px; }
.pill { border:1px solid var(--line); border-radius:999px; padding:4px 10px; font-size:12px; }
.sw { width:14px; height:14px; border-radius:50%; display:inline-block; margin-right:6px; vertical-align:middle; border:1px solid #ddd; }
table { width:100%; border-collapse:collapse; margin:10px 0 22px; font-size:13px; }
th, td { border:1px solid var(--line); padding:8px; text-align:left; }
th { background:#fafafa; }
.tone-draft { color:#8a6a12; }
.tone-conflict { color:var(--warn); font-weight:700; }
.tone-empty { color:#9a98a8; }
.figure { position:relative; margin:16px 0 28px; }
.figure img { width:100%; display:block; background:#fafafa; border:1px solid var(--line); }
.callout {
  position:absolute; min-width:88px; background:#fff; border:1px solid var(--ink); padding:6px 8px; font-size:11px;
}
.sign { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:28px; }
.sign div { border-top:1px solid var(--ink); padding-top:8px; min-height:72px; }
.foot { margin-top:18px; }
@media print {
  body { background:#fff; }
  .toolbar { display:none !important; }
  #sheet { box-shadow:none; margin:0; max-width:none; }
}

.measure-line { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.measure-line line { stroke:#111; stroke-width:0.8; }
.measure-line text { font-size:3px; fill:#111; }
