:root{
  --ink:#1c2536; --muted:#5c6772; --paper:#f5f2ea; --card:#fffefb;
  --navy:#1f3a5f; --navy-dark:#132234; --navy-tint:#e9eef4;
  --brass:#a6790a; --brass-dark:#8a6208; --brass-tint:#f7ecd3;
  --green:#1e7145; --green-tint:#e7f4ec;
  --amber:#8a6200; --amber-tint:#faf1dc;
  --red:#b3261e; --red-tint:#fbe9e7;
  --border:#e1dbcb; --border-strong:#c9c0aa;
  --banner-bg:#f7f4ec; --banner-ink:#4b4a42; --banner-border:#e7e1d0;
  --shadow:rgba(31,58,95,.08); --shadow-lg:rgba(31,58,95,.16);
  --input-bg:#fffefb; --item-bg:#faf8f1; --placeholder:#9c9686;
  --btn-bg:#1f3a5f; --btn-bg-hover:#16283f;
  --radius:14px; --radius-sm:10px;
  --font-ui:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --font-display:"Iowan Old Style","Palatino Linotype","Book Antiqua",Georgia,serif;
  --font-doc:Georgia,"Times New Roman",serif;
  color-scheme:light;
}
html[data-theme="dark"]{
  --ink:#e8e4d9; --muted:#a29c8d; --paper:#12161c; --card:#1b222b;
  --navy:#6f9cc9; --navy-dark:#9cc0e0; --navy-tint:#212c39;
  --brass:#dba53f; --brass-dark:#c78f2c; --brass-tint:#3a2f18;
  --green:#5fbd8b; --green-tint:#173327;
  --amber:#d9a53f; --amber-tint:#3a301a;
  --red:#ef8177; --red-tint:#3a1e1c;
  --border:#2b323c; --border-strong:#3d4753;
  --banner-bg:#1c232c; --banner-ink:#b9c1cc; --banner-border:#2d3640;
  --shadow:rgba(0,0,0,.35); --shadow-lg:rgba(0,0,0,.5);
  --input-bg:#161c24; --item-bg:#181f27; --placeholder:#5f6773;
  --btn-bg:#2f5580; --btn-bg-hover:#3c6690;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{background:
  radial-gradient(1100px 560px at 12% -12%, rgba(166,121,10,.06), transparent 60%),
  radial-gradient(900px 460px at 100% 0%, rgba(31,58,95,.06), transparent 55%),
  var(--paper)}
html[data-theme="dark"]{background:
  radial-gradient(1100px 560px at 12% -12%, rgba(219,165,63,.05), transparent 60%),
  radial-gradient(900px 460px at 100% 0%, rgba(111,156,201,.06), transparent 55%),
  var(--paper)}
body{font:15px/1.6 var(--font-ui);max-width:900px;margin:auto;padding:0 18px 64px;background:transparent;color:var(--ink);transition:color .2s;-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column}
main,.page-content{flex:1 0 auto}

/* ---------- Announcement banner (site-wide, above header) ---------- */
.announce{display:flex;align-items:center;justify-content:center;gap:10px;background:linear-gradient(135deg,var(--navy),var(--navy-dark));color:#fff;font-size:13px;font-weight:600;padding:10px 18px;margin:0 -18px;text-align:center}
.announce a{color:#fff;text-decoration:underline;text-underline-offset:2px}
.announce .announce-inner{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:center}
.announce-close{background:transparent;border:none;color:#fff;opacity:.8;font-size:16px;line-height:1;padding:2px 6px;margin:0;border-radius:6px;cursor:pointer;box-shadow:none}
.announce-close:hover{opacity:1;background:rgba(255,255,255,.15);box-shadow:none;transform:none}

header{padding:20px 4px 0;display:block;border-bottom:1px solid var(--border);margin-bottom:6px}
.header-top{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding-bottom:14px}

/* ---------- Site navigation ---------- */
.site-nav{display:flex;flex-wrap:wrap;gap:4px;padding:2px 0 12px;margin-top:2px}
.site-nav a{font-size:13.5px;font-weight:600;color:var(--muted);text-decoration:none;padding:7px 12px;border-radius:999px;transition:background .15s,color .15s}
.site-nav a:hover{background:var(--navy-tint);color:var(--navy)}
.site-nav a.active{background:var(--navy);color:#fff}

/* ---------- Site footer ---------- */
.site-footer{margin-top:auto;padding:26px 4px 18px;border-top:1px solid var(--border);flex:none}
.footer-inner{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;justify-content:space-between}
.footer-text{margin:0;color:var(--muted);font-size:12.5px;max-width:520px}
.footer-links{display:flex;flex-wrap:wrap;gap:6px 16px}
.footer-links a{color:var(--navy-dark);font-size:12.5px;font-weight:600;text-decoration:none}
.footer-links a:hover{text-decoration:underline}

/* ---------- Simple content pages (about/disclaimer/privacy/terms) ---------- */
.page-content{background:var(--card);padding:30px 34px 36px;border-radius:var(--radius);margin:18px 0;border:1px solid var(--border);box-shadow:0 1px 2px var(--shadow),0 10px 30px -18px var(--shadow-lg)}
.page-content h1{font-family:var(--font-display);font-size:26px;font-weight:600;margin:0 0 6px;color:var(--navy-dark)}
.page-content .updated{color:var(--muted);font-size:12.5px;margin:0 0 22px}
.page-content h2{font-size:16px;margin:26px 0 10px}
.page-content p,.page-content li{color:var(--ink);font-size:14.5px}
.page-content ul,.page-content ol{padding-left:22px}
.page-content a{color:var(--navy)}

@media (max-width:520px){.footer-inner{flex-direction:column;align-items:flex-start}}
header h1{font-family:var(--font-display);font-size:28px;font-weight:600;margin:0 0 3px;letter-spacing:.2px;background:linear-gradient(120deg,var(--navy) 25%,var(--brass) 115%);-webkit-background-clip:text;background-clip:text;color:var(--navy)}
@supports (background-clip:text){header h1{-webkit-text-fill-color:transparent}}
header p{margin:0;color:var(--muted);font-size:13.5px}
.seal{flex:none;width:52px;height:52px;filter:drop-shadow(0 2px 4px var(--shadow));transition:transform .3s ease}
header:hover .seal{transform:rotate(8deg)}
.headright{margin-left:auto;flex:none}
#themeToggle{margin:0;padding:9px 14px;background:var(--card);color:var(--ink);border:1px solid var(--border-strong);border-radius:999px;display:inline-flex;align-items:center;gap:7px;box-shadow:0 1px 2px var(--shadow);transition:background .15s,box-shadow .15s,transform .15s}
#themeToggle:hover{background:var(--navy-tint);box-shadow:0 3px 10px var(--shadow);transform:translateY(-1px)}
#themeToggle svg{width:16px;height:16px;flex:none}
main{display:block}
section{background:var(--card);padding:24px 26px;border-radius:var(--radius);margin:18px 0;border:1px solid var(--border);box-shadow:0 1px 2px var(--shadow),0 10px 30px -18px var(--shadow-lg);transition:box-shadow .2s}
.banner{display:flex;align-items:flex-start;gap:11px;background:var(--banner-bg);border:1px solid var(--banner-border);color:var(--banner-ink);font-size:13px;padding:13px 16px;border-radius:var(--radius-sm);margin:12px 0;box-shadow:0 1px 2px var(--shadow)}
.banner svg{flex:none;width:17px;height:17px;margin-top:1px;color:var(--brass)}
.banner .btext{flex:1;min-width:200px}
.banner .btext b{color:var(--ink)}
.banner-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;flex:none}
.banner button{padding:7px 13px;font-size:12.5px;margin:0;border-radius:999px}
.bannerclose{background:transparent;border:none;color:var(--muted);font-size:16px;line-height:1;padding:2px 4px;margin:0;flex:none;border-radius:6px;transition:color .15s,background .15s}
.bannerclose:hover{color:var(--ink);background:var(--border)}
h2{font-family:var(--font-display);font-size:17.5px;font-weight:600;margin:30px 0 12px;padding-bottom:9px;border-bottom:1px solid var(--border);color:var(--navy-dark);display:flex;align-items:center;position:relative}
h2::after{content:"";position:absolute;left:0;bottom:-1px;width:44px;height:2px;background:linear-gradient(90deg,var(--brass),transparent)}
h2:first-of-type{margin-top:4px}
.step-label{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,var(--navy),var(--navy-dark));color:#fff;font-size:12px;font-weight:700;margin-right:10px;font-family:var(--font-ui);flex:none;box-shadow:0 2px 5px var(--shadow),inset 0 0 0 1px rgba(255,255,255,.18)}
label{display:block;font-weight:600;font-size:13.5px;margin-top:14px;color:var(--ink)}
label:first-child{margin-top:0}
input,textarea,select{display:block;width:100%;padding:10px 12px;box-sizing:border-box;margin-top:6px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font:inherit;background:var(--input-bg);color:var(--ink);transition:border-color .15s,box-shadow .15s,background .2s}
input::placeholder,textarea::placeholder{color:var(--placeholder);font-style:italic}
input:hover,textarea:hover,select:hover{border-color:var(--muted)}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px var(--navy-tint)}
input.invalid,textarea.invalid,select.invalid{border-color:var(--red)}
input.invalid:focus,textarea.invalid:focus,select.invalid:focus{box-shadow:0 0 0 3px var(--red-tint)}
input[type=checkbox]{width:auto;margin:0 8px 0 0;vertical-align:middle;accent-color:var(--navy)}
label.checkline{display:flex;align-items:flex-start;font-weight:500;gap:2px;background:var(--navy-tint);padding:13px 15px;border-radius:var(--radius-sm);transition:background .15s,box-shadow .15s}
label.checkline.invalid{background:var(--red-tint);box-shadow:inset 0 0 0 1px var(--red)}
textarea{resize:vertical;min-height:64px}
button{padding:11px 18px;margin:10px 8px 0 0;cursor:pointer;border-radius:999px;font:inherit;font-weight:600;font-size:13.5px;border:1px solid var(--btn-bg);background:linear-gradient(135deg,var(--btn-bg),var(--btn-bg-hover));color:#fff;box-shadow:0 2px 6px var(--shadow);transition:box-shadow .15s,transform .1s,background .15s}
button:hover{box-shadow:0 4px 14px var(--shadow-lg);transform:translateY(-1px)}
button:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
button:disabled{opacity:.6;cursor:not-allowed;pointer-events:none;box-shadow:none;transform:none}
button:active{transform:translateY(1px)}
button.secondary{background:var(--input-bg);color:var(--navy);border-color:var(--border-strong);box-shadow:0 1px 2px var(--shadow)}
button.secondary:hover{background:var(--navy-tint);border-color:var(--navy)}
button.ghost{background:transparent;border-color:transparent;color:var(--red);padding:6px 12px;margin:0;box-shadow:none;border-radius:8px}
button.ghost:hover{background:var(--red-tint);box-shadow:none;transform:none}
button.addrow{background:var(--input-bg);color:var(--navy);border:1.5px dashed var(--border-strong);width:100%;text-align:center;margin:14px 0 0;border-radius:var(--radius-sm);box-shadow:none}
button.addrow:hover{border-color:var(--navy);background:var(--navy-tint);box-shadow:none;transform:none}
.hidden{display:none!important}
#formFieldset{border:0;margin:0;padding:0;min-width:0}
#formFieldset:disabled{opacity:.55}
.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px 18px}
.row>label,.row>div>label{margin-top:0}
.item{border:1px solid var(--border);border-radius:var(--radius-sm);padding:15px 17px 17px;margin:14px 0;background:var(--item-bg);position:relative;transition:box-shadow .15s,border-color .15s}
.item:hover{box-shadow:0 2px 10px var(--shadow);border-color:var(--border-strong)}
.item-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}
.item-head b{font-size:13px;color:var(--navy-dark);text-transform:uppercase;letter-spacing:.5px}
.guardian-box{margin-top:12px;padding:12px 14px 4px;border-left:3px solid var(--brass);background:var(--brass-tint);border-radius:0 var(--radius-sm) var(--radius-sm) 0}
.guardian-box>.hint{margin:0 0 8px;color:var(--banner-ink)}
.share-row{display:grid;grid-template-columns:1fr 110px auto;gap:10px;align-items:start;margin-top:10px}
.share-row label{margin-top:0}
.pctwrap{position:relative}
.pctwrap input{padding-right:26px}
.pctwrap::after{content:"%";position:absolute;right:11px;top:17px;color:var(--muted);font-size:13px;pointer-events:none}
.sharebar{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:13px;font-weight:600}
.sharebar .track{flex:1;height:8px;border-radius:5px;background:var(--border);overflow:hidden}
.sharebar .fill{height:100%;border-radius:5px;transition:width .2s ease}
.badge{padding:4px 11px;border-radius:999px;font-size:12px;white-space:nowrap;font-weight:700}
.badge.ok{background:var(--green-tint);color:var(--green)}
.badge.warn{background:var(--amber-tint);color:var(--amber)}
.badge.bad{background:var(--red-tint);color:var(--red)}
.error{color:var(--red);font-weight:600;font-size:13.5px;min-height:18px;margin:16px 0 0;padding:10px 14px;border-radius:var(--radius-sm)}
.error:not(:empty){background:var(--red-tint);border:1px solid #f0c9c4;border-left:3px solid var(--red)}
.hint{display:block;font-weight:400;color:var(--muted);font-size:12px;margin-top:4px}
.fielderr{display:block;font-weight:600;color:var(--red);font-size:12px;margin-top:4px;min-height:15px}
.shareerr{display:block;font-weight:400;color:var(--muted);font-size:12px;margin-top:5px}
.shareerr.bad{color:var(--red);font-weight:600}
#preview{background:#fffefb;color:#1c2536;border:1px solid #e1dbcb;border-radius:var(--radius);box-shadow:0 20px 50px -24px rgba(31,58,95,.3);font-family:var(--font-doc);line-height:1.65;position:relative;padding:38px 34px}
#preview p{text-align:justify}
#preview::before{content:"DRAFT — NOT YET SIGNED";position:absolute;top:44%;left:50%;transform:translate(-50%,-50%) rotate(-24deg);font-family:var(--font-ui);font-size:44px;font-weight:800;letter-spacing:2px;color:#1f3a5f;opacity:.07;white-space:nowrap;pointer-events:none}
#preview h1{font-size:24px;letter-spacing:1px;color:#16283f}
#preview h2{font-family:var(--font-doc);font-size:16px;border-bottom:none;color:#16283f;margin:22px 0 8px}
#preview h2::after{display:none}
#actions{display:flex;flex-wrap:wrap;gap:8px;position:sticky;bottom:14px;background:var(--card);padding:12px;border-radius:999px;border:1px solid var(--border);box-shadow:0 10px 30px var(--shadow-lg);backdrop-filter:blur(8px)}
#actions button{margin:0}
.page{break-before:page;page-break-before:always}
#preview .page{margin-top:36px;padding-top:28px;border-top:2px dashed var(--border-strong);position:relative}
#preview .page::before{content:"New page";position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:#fffefb;padding:0 10px;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-family:var(--font-ui)}
@media print{#form,#actions,header,.banner,#adSlot{display:none!important}body,main{background:#fff;padding:0;max-width:none}section{border:none;box-shadow:none;padding:0;margin:0}#preview{display:block!important;padding:0;border:none;box-shadow:none;border-radius:0}#preview::before{display:none}#preview .page{margin-top:0;padding-top:0;border-top:none}#preview .page::before{display:none}}
@media (max-width:520px){.share-row{grid-template-columns:1fr;gap:6px}.pctwrap::after{top:35px}section{padding:18px}header{padding-bottom:14px}header h1{font-size:23px}#actions{border-radius:var(--radius);justify-content:center}#actions button{flex:1 1 auto}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}header:hover .seal{transform:none}}
