/* The contract kit: same paper look as the guides, built for a phone first. */
:root { --bg:#f6f5f1; --paper:#fffefa; --ink:#272b2b; --muted:#5f635e; --line:#dedfd6; --purple:#715298; --soft:#eeebf4; --gap:#f3e9c9; color-scheme: light dark; }
@media (prefers-color-scheme: dark) { :root { --bg:#171818; --paper:#1f2121; --ink:#ecebe6; --muted:#b3b6b0; --line:#333634; --purple:#b49ad6; --soft:#2a2533; --gap:#433a1f; } }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font:17px/1.6 'DM Sans', system-ui, sans-serif; padding-bottom:env(safe-area-inset-bottom); }
header, main, footer { max-width: 760px; margin: 0 auto; padding: 0 20px; }
header { display:flex; justify-content:space-between; align-items:center; gap:12px; padding-top:max(18px, env(safe-area-inset-top)); }
header img { height:52px; width:auto; display:block; }
header nav a { color:var(--muted); text-decoration:none; font-size:15px; }
h1 { font-family:'Bricolage Grotesque', 'DM Sans', sans-serif; font-size:clamp(34px, 8vw, 52px); line-height:1.05; margin:36px 0 10px; }
.lede { color:var(--muted); font-size:18px; margin:0 0 24px; }
a { color:var(--purple); }
.picks { list-style:none; padding:0; margin:0 0 28px; display:grid; gap:12px; }
.picks button { width:100%; text-align:left; font:inherit; color:inherit; background:var(--paper); border:1px solid var(--line); border-radius:14px; padding:16px 18px; display:flex; justify-content:space-between; gap:14px; align-items:center; cursor:pointer; min-height:64px; }
.picks button:hover, .picks button:focus-visible { border-color:var(--purple); }
.picks b { display:block; font-size:18px; }
.picks button > span:first-child > span { color:var(--muted); font-size:15px; }
.price { font-weight:700; font-size:18px; white-space:nowrap; color:var(--ink) !important; }
.pack { background:var(--soft); border-radius:14px; padding:16px 18px; display:flex; justify-content:space-between; align-items:center; gap:14px; margin:0 0 28px; }
.pack p { margin:0; font-size:15px; color:var(--muted); }
.btn { display:inline-flex; align-items:center; justify-content:center; font:inherit; font-weight:600; background:var(--purple); color:#fff; border:0; border-radius:999px; padding:13px 22px; min-height:48px; text-decoration:none; cursor:pointer; white-space:nowrap; }
@media (prefers-color-scheme: dark) { .btn { color:#171818; } }
.btn[disabled] { opacity:.5; cursor:not-allowed; }
.btn.ghost { background:transparent; color:var(--purple); border:1px solid var(--line); }
.back { background:none; border:0; color:var(--muted); font:inherit; font-size:15px; padding:8px 0; cursor:pointer; margin-top:20px; }
.tabs { display:none; gap:6px; background:var(--paper); border:1px solid var(--line); border-radius:999px; padding:4px; position:sticky; top:8px; z-index:2; margin:12px 0; }
.tabs button { flex:1; font:inherit; font-size:15px; border:0; border-radius:999px; background:none; color:var(--muted); padding:10px; min-height:44px; cursor:pointer; }
.tabs button[aria-pressed="true"] { background:var(--soft); color:var(--ink); font-weight:600; }
.work { display:grid; grid-template-columns: 1fr 1fr; gap:22px; align-items:start; }
@media (max-width: 760px) { .tabs { display:flex; } .work { grid-template-columns:1fr; } .work[data-show="form"] .doc { display:none; } .work[data-show="doc"] form.fill { display:none; } }
form.fill, .signbox { display:grid; gap:14px; }
label { display:grid; gap:5px; font-size:15px; font-weight:600; }
input, textarea, select { font:inherit; font-size:16px; color:var(--ink); background:var(--paper); border:1px solid var(--line); border-radius:10px; padding:11px 12px; width:100%; min-height:46px; }
textarea { min-height:96px; resize:vertical; }
input:focus, textarea:focus, select:focus { outline:2px solid var(--purple); outline-offset:1px; border-color:transparent; }
.doc { background:var(--paper); border:1px solid var(--line); border-radius:14px; padding:20px 22px; font-size:15px; line-height:1.6; position:sticky; top:16px; max-height:calc(100vh - 32px); overflow:auto; }
@media (max-width: 760px) { .doc { position:static; max-height:none; } }
.doc h2 { font-size:22px; margin:0 0 8px; font-family:'Bricolage Grotesque', 'DM Sans', sans-serif; }
.doc h3 { font-size:16px; margin:18px 0 4px; }
.doc p { margin:0 0 6px; }
.doc .gap { background:var(--gap); border-radius:4px; padding:0 4px; }
.doc .note, .small { color:var(--muted); font-size:13px; }
.signbox { background:var(--paper); border:1px solid var(--line); border-radius:14px; padding:18px; margin:24px 0; }
.signbox h2 { margin:0; font-size:20px; }
.two { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media (max-width: 520px) { .two { grid-template-columns:1fr; } }
.typed { font-family:'Caveat Brush', 'Bricolage Grotesque', cursive; font-size:24px; }
.check { display:flex; gap:10px; align-items:flex-start; font-weight:400; font-size:14px; }
.check input { width:22px; min-height:22px; height:22px; flex:none; margin-top:2px; accent-color:var(--purple); }
details summary { cursor:pointer; color:var(--muted); font-size:15px; }
details[open] summary { margin-bottom:8px; }
.err { color:#b3261e; font-size:15px; margin:0; min-height:1px; }
@media (prefers-color-scheme: dark) { .err { color:#f2b8b5; } }
.done { background:var(--soft); border-radius:14px; padding:20px; margin:24px 0; }
.done h2 { margin:0 0 6px; }
footer { color:var(--muted); font-size:14px; padding:36px 20px 56px; }
[hidden] { display:none !important; }
/* Opened from an IndieGuild chat: one quiet line saying where it came from. */
.chat-note { margin:20px 0 0; padding:10px 14px; border-left:4px solid var(--purple); background:var(--soft); border-radius:8px; font-size:15px; }
.sign-to { margin:0 0 12px; color:var(--muted); font-size:15px; }
.done .btn { display:inline-flex; margin-top:12px; }
a.back { display:inline-block; text-decoration:none; }
