/* Sigil — one hand-written stylesheet on top of Bootstrap 5.3. Tokens first, then the three
   shells (public, app, signer), then components. */
/* Sigil brand: the logo's navy #1E1B4B and its light navy #E1E6F3 (Creative/Logo/), primary #312E81;
   Fraunces for the wordmark and display headings, Inter for everything else. */
:root {
    --sg-primary: #312e81;
    --sg-primary-hover: #1e1b4b;
    --sg-primary-active: #17153a;
    --sg-primary-ink: #ffffff;
    --sg-primary-soft: #e1e6f3;
    --sg-logo-ink: #1e1b4b;
    --sg-logo-fill: #e1e6f3;
    --sg-ink: #14132e;
    --sg-muted: #5b6178;
    --sg-surface: #ffffff;
    --sg-surface-2: #f6f7fb;
    --sg-border: #e1e4ee;
    --sg-radius: 12px;
    --sg-shadow: 0 1px 2px rgba(20, 19, 46, .06), 0 8px 24px -12px rgba(20, 19, 46, .18);
    --sg-grad: linear-gradient(135deg, #1e1b4b 0%, #312e81 50%, #5664b8 100%);
    --sg-font-display: "Fraunces", Georgia, "Times New Roman", serif;
    --bs-font-sans-serif: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --bs-body-font-family: var(--bs-font-sans-serif);
    --bs-primary: var(--sg-primary);
    --bs-primary-rgb: 49, 46, 129;
    --bs-link-color: var(--sg-primary);
    --bs-link-color-rgb: 49, 46, 129;
    --bs-link-hover-color: #1e1b4b;
    --bs-link-hover-color-rgb: 30, 27, 75;
}
[data-bs-theme="dark"] {
    --sg-primary: #a9b5ec;
    --sg-primary-hover: #c3ccf2;
    --sg-primary-active: #8f9de0;
    --sg-primary-ink: #14132e;
    --sg-primary-soft: #23214f;
    --sg-logo-ink: #c9d1f0;
    --sg-logo-fill: #1e1b4b;
    --sg-grad-text: linear-gradient(135deg, #e1e6f3 0%, #a9b5ec 55%, #8f9de0 100%);
    --sg-ink: #e2e8f0;
    --sg-muted: #94a3b8;
    --sg-surface: #0f172a;
    --sg-surface-2: #1e293b;
    --sg-border: #334155;
    --sg-shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px -12px rgba(0, 0, 0, .6);
    --bs-body-bg: #0b1220;
    --bs-body-color: var(--sg-ink);
    --bs-primary: var(--sg-primary);
    --bs-primary-rgb: 169, 181, 236;
    --bs-link-color: var(--sg-primary);
    --bs-link-color-rgb: 169, 181, 236;
    --bs-link-hover-color: #c3ccf2;
    --bs-link-hover-color-rgb: 195, 204, 242;
}
html { scroll-behavior: smooth; }
body { background: var(--bs-body-bg, #ffffff); color: var(--sg-ink); -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, h5, h6 { letter-spacing: -.01em; font-weight: 700; }
.btn { border-radius: 10px; font-weight: 600; }
.btn-primary { --bs-btn-bg: var(--sg-primary); --bs-btn-border-color: var(--sg-primary); --bs-btn-color: var(--sg-primary-ink);
    --bs-btn-hover-bg: var(--sg-primary-hover); --bs-btn-hover-border-color: var(--sg-primary-hover); --bs-btn-active-bg: var(--sg-primary-active); --bs-btn-active-border-color: var(--sg-primary-active); --bs-btn-hover-color: var(--sg-primary-ink); --bs-btn-active-color: var(--sg-primary-ink); }
.btn-outline-primary { --bs-btn-color: var(--sg-primary); --bs-btn-border-color: var(--sg-primary); --bs-btn-hover-bg: var(--sg-primary); --bs-btn-hover-border-color: var(--sg-primary); --bs-btn-hover-color: var(--sg-primary-ink); }
.form-control, .form-select { border-radius: 10px; border-color: var(--sg-border); padding: .6rem .8rem; }
.form-control:focus, .form-select:focus { border-color: var(--sg-primary); box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .2); }
.form-label { font-weight: 600; font-size: .9rem; }
code { color: inherit; background: var(--sg-surface-2); border: 1px solid var(--sg-border); border-radius: 6px; padding: .05em .4em; font-size: .9em; }
.sg-code { background: #0f172a; color: #e2e8f0; border-radius: var(--sg-radius); padding: 1rem 1.2rem; overflow: auto; font-size: .85rem; }
.sg-code code { background: none; border: 0; padding: 0; color: inherit; }

/* brand mark */
.sg-brand { display: inline-flex; align-items: center; gap: .55rem; font-weight: 800; font-size: 1.15rem; color: var(--sg-ink); text-decoration: none; letter-spacing: -.02em; }
.sg-brand:hover { color: var(--sg-primary); }
.sg-logo { display: inline-flex; }
.sg-logo svg { display: block; height: 2.1rem; width: auto; }
.sg-nib { fill: var(--sg-logo-fill); stroke: var(--sg-logo-ink); }
.sg-nib-fill { fill: var(--sg-logo-fill); }
.sg-display, .sg-display-sm, .sg-h2, .sg-cta h3 { font-family: var(--sg-font-display); font-weight: 600; }

/* ---------- public shell ---------- */
.sg-nav { position: sticky; top: 0; z-index: 1030; background: color-mix(in srgb, var(--sg-surface) 82%, transparent); backdrop-filter: saturate(180%) blur(12px); border-bottom: 1px solid var(--sg-border); }
.sg-nav .navbar { padding: .6rem 0; }
.sg-nav .nav-link { color: var(--sg-muted); font-weight: 500; }
.sg-nav .nav-link.active, .sg-nav .nav-link:hover { color: var(--sg-ink); }
.sg-hero { padding: 5rem 0 4rem; position: relative; overflow: hidden; }
.sg-hero::before { content: ""; position: absolute; inset: -40% -20% auto; height: 120%; background: radial-gradient(60% 60% at 70% 30%, color-mix(in srgb, var(--sg-primary) 18%, transparent), transparent 70%); pointer-events: none; }
.sg-hero > .container { position: relative; }
.sg-hero-sm { padding: 3.5rem 0 2rem; }
.sg-eyebrow { display: inline-block; font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--sg-primary); background: var(--sg-primary-soft); padding: .3rem .7rem; border-radius: 999px; margin-bottom: 1rem; }
.sg-display { font-size: clamp(2.3rem, 5vw, 3.6rem); line-height: 1.05; font-weight: 600; letter-spacing: -.015em; }
.sg-display-sm { font-size: clamp(1.8rem, 3.5vw, 2.6rem); line-height: 1.15; font-weight: 600; letter-spacing: -.01em; }
.sg-grad { background: var(--sg-grad-text, var(--sg-grad)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.sg-lead { font-size: 1.15rem; color: var(--sg-muted); max-width: 40rem; margin-top: 1rem; }
.sg-h2 { font-size: clamp(1.5rem, 2.5vw, 2rem); font-weight: 600; letter-spacing: -.01em; margin-bottom: .75rem; }
.sg-section { padding: 4rem 0; }
.sg-section-alt { background: var(--sg-surface-2); }
.sg-narrow { max-width: 56rem; }
.sg-hero-card { position: relative; background: var(--sg-surface); border: 1px solid var(--sg-border); border-radius: 20px; box-shadow: var(--sg-shadow); padding: 2rem; transform: rotate(-1.5deg); }
.sg-doc { background: var(--sg-surface); }
.sg-doc-line { height: 10px; border-radius: 6px; background: var(--sg-border); margin: 12px 0; }
.sg-doc-line.w-66 { width: 66%; }
.sg-doc-sig { position: relative; margin-top: 2.5rem; border-bottom: 2px solid var(--sg-ink); height: 2.6rem; display: flex; align-items: flex-end; gap: 1rem; }
.sg-sig { font-family: "Brush Script MT", "Segoe Script", "Comic Sans MS", cursive; font-size: 1.9rem; color: #1e3a8a; line-height: 1; padding-bottom: .15rem; }
[data-bs-theme="dark"] .sg-sig { color: #93c5fd; }
.sg-doc-meta { margin-top: .5rem; font-size: .85rem; color: var(--sg-muted); }
.sg-glyph { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .75rem; color: var(--sg-primary); background: var(--sg-primary-soft); padding: .1rem .35rem; border-radius: 4px; }
.sg-hero-badge { position: absolute; right: -14px; top: -14px; background: #16a34a; color: #fff; font-weight: 700; font-size: .85rem; padding: .45rem .8rem; border-radius: 999px; box-shadow: var(--sg-shadow); transform: rotate(3deg); }
.sg-steps .sg-step { height: 100%; padding: 1.5rem; border-radius: var(--sg-radius); border: 1px solid var(--sg-border); background: var(--sg-surface); }
.sg-step-n { display: inline-flex; width: 2rem; height: 2rem; align-items: center; justify-content: center; border-radius: 50%; background: var(--sg-grad); color: #fff; font-weight: 800; margin-bottom: .75rem; }
.sg-step h3 { font-size: 1.1rem; }
.sg-step p { color: var(--sg-muted); margin: 0; }
.sg-feature { height: 100%; padding: 1.4rem; border-radius: var(--sg-radius); background: var(--sg-surface); border: 1px solid var(--sg-border); transition: transform .15s, box-shadow .15s; }
.sg-feature:hover { transform: translateY(-2px); box-shadow: var(--sg-shadow); }
.sg-feature h4 { font-size: 1.05rem; }
.sg-feature p { color: var(--sg-muted); margin: 0; }
.sg-plan { position: relative; height: 100%; padding: 1.75rem; border-radius: 16px; background: var(--sg-surface); border: 1px solid var(--sg-border); display: flex; flex-direction: column; }
.sg-plan-featured { border-color: var(--sg-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--sg-primary) 25%, transparent), var(--sg-shadow); }
.sg-plan-flag { position: absolute; top: -.8rem; left: 1.5rem; background: var(--sg-grad); color: #fff; font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: .3rem .6rem; border-radius: 999px; }
.sg-plan h3 { font-size: 1.2rem; }
.sg-price { font-size: 2.2rem; font-weight: 800; letter-spacing: -.03em; }
.sg-price small { font-size: .9rem; font-weight: 500; color: var(--sg-muted); }
.sg-plan-list { list-style: none; padding: 0; margin: 0 0 1.5rem; flex: 1; }
.sg-plan-list li { padding: .35rem 0 .35rem 1.5rem; position: relative; }
.sg-plan-list li::before { content: "✓"; position: absolute; left: 0; color: var(--sg-primary); font-weight: 800; }
.sg-faq .accordion-item { border-color: var(--sg-border); background: var(--sg-surface); }
.sg-faq .accordion-button { font-weight: 600; background: var(--sg-surface); color: var(--sg-ink); }
.sg-faq .accordion-button:not(.collapsed) { color: var(--sg-primary); box-shadow: none; }
.sg-faq .accordion-item { scroll-margin-top: 5rem; }
.sg-glossary { display: grid; gap: 1rem; margin: 1.5rem 0 0; }
.sg-term { background: var(--sg-surface); border: 1px solid var(--sg-border); border-radius: var(--sg-radius); padding: 1.25rem 1.5rem; scroll-margin-top: 5rem; }
.sg-term:target { border-color: var(--sg-primary); box-shadow: 0 0 0 3px var(--sg-primary-soft); }
.sg-term dt { font-family: var(--sg-font-display); font-size: 1.4rem; font-weight: 600; margin-bottom: .35rem; }
.sg-term-link { color: var(--sg-ink); text-decoration: none; }
.sg-term-link:hover { color: var(--sg-primary); }
.sg-term dd { margin: 0; }
.sg-term dd p:last-child { margin-bottom: 0; }
.sg-term-origin { color: var(--sg-muted); font-size: .95rem; }
.sg-term-origin .sg-stat-label { margin-right: .35rem; }
.sg-table th { font-size: .8rem; text-transform: uppercase; letter-spacing: .05em; color: var(--sg-muted); }
.sg-compare td:not(:first-child), .sg-compare th:not(:first-child) { text-align: center; }
.sg-compare .sg-compare-group th { font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--sg-primary); border-bottom: 2px solid var(--sg-primary); padding-bottom: .25rem; }
.sg-compare .sg-compare-group th:empty { border-bottom: 0; }
.sg-compare .sg-compare-limit { color: var(--sg-muted); }
.sg-cta { margin-top: 4rem; padding: 2.5rem; border-radius: 20px; background: var(--sg-grad); color: #fff; text-align: center; }
.sg-cta h3 { color: #fff; margin-bottom: 1rem; }
.sg-cta .btn-primary { background: #fff; border-color: #fff; color: var(--sg-primary); }
.sg-legal h2 { font-size: 1.3rem; margin-top: 2rem; }
.sg-legal h3 { font-size: 1.05rem; margin-top: 1.25rem; }
.sg-legal p, .sg-legal li { color: var(--sg-ink); }
.sg-legal blockquote { border-left: 4px solid #f59e0b; padding: .5rem 1rem; background: color-mix(in srgb, #f59e0b 12%, transparent); border-radius: 0 8px 8px 0; }
.sg-footer { border-top: 1px solid var(--sg-border); padding: 3rem 0 2rem; background: var(--sg-surface); margin-top: 2rem; }
.sg-footer h6 { font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: var(--sg-muted); }
.sg-footer a { color: var(--sg-ink); text-decoration: none; }
.sg-footer a:hover { color: var(--sg-primary); }
.sg-footer ul li { margin-bottom: .35rem; }
.sg-notice { border-radius: var(--sg-radius); }

/* auth cards */
.sg-auth { max-width: 26rem; margin: 0 auto; background: var(--sg-surface); border: 1px solid var(--sg-border); border-radius: 16px; padding: 2rem; box-shadow: var(--sg-shadow); }
.sg-or { display: flex; align-items: center; gap: 1rem; color: var(--sg-muted); font-size: .8rem; margin: 1.25rem 0 1rem; }
.sg-or::before, .sg-or::after { content: ""; flex: 1; height: 1px; background: var(--sg-border); }
.sg-hp { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }

/* ---------- app shell ---------- */
.sg-app { background: var(--sg-surface-2); }
.sg-shell { display: flex; min-height: 100vh; }
.sg-side { width: 240px; flex: 0 0 240px; background: var(--sg-surface); border-right: 1px solid var(--sg-border); display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh; }
.sg-side-head { display: flex; align-items: center; justify-content: space-between; padding: 1.1rem 1.1rem .8rem; }
.sg-side-nav { display: flex; flex-direction: column; gap: .15rem; padding: .5rem .7rem; flex: 1; }
.sg-side-link { display: flex; align-items: center; gap: .7rem; padding: .55rem .75rem; border-radius: 10px; color: var(--sg-muted); font-weight: 500; text-decoration: none; }
.sg-side-link:hover { background: var(--sg-surface-2); color: var(--sg-ink); }
.sg-side-link.active { background: var(--sg-primary-soft); color: var(--sg-primary); font-weight: 600; }
.sg-ico { width: 1.3rem; text-align: center; opacity: .8; }
.sg-impersonating { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; padding: .55rem 1.5rem; background: #92400E; color: #FFF7ED; font-size: .9rem; }
.sg-impersonating time { color: inherit; }
.sg-side-label { margin: .9rem .75rem .2rem; font-size: .72rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--sg-muted); }
.sg-side-foot { padding: .8rem; border-top: 1px solid var(--sg-border); }
.sg-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.sg-topbar { display: flex; align-items: center; gap: 1rem; padding: .8rem 1.5rem; background: var(--sg-surface); border-bottom: 1px solid var(--sg-border); position: sticky; top: 0; z-index: 1020; }
.sg-page-title { font-size: 1.15rem; margin: 0; flex: 1; }
.sg-topbar-right { display: flex; align-items: center; gap: .6rem; }
.sg-avatar { width: 2.1rem; height: 2.1rem; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--sg-primary-soft); color: var(--sg-primary); font-weight: 700; text-decoration: none; overflow: hidden; }
.sg-avatar img { width: 100%; height: 100%; object-fit: cover; }
.sg-content { padding: 1.5rem; max-width: 1200px; width: 100%; }
.sg-card { background: var(--sg-surface); border: 1px solid var(--sg-border); border-radius: var(--sg-radius); padding: 1.25rem; }
.sg-stat { display: flex; flex-direction: column; gap: .15rem; }
.sg-stat-label { font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--sg-muted); font-weight: 600; }
.sg-stat-value { font-size: 1.8rem; font-weight: 800; letter-spacing: -.02em; }
.sg-empty { text-align: center; padding: 3rem 1.5rem; border-style: dashed; }
.pill { display: inline-block; font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; padding: .25rem .6rem; border-radius: 999px; }
.pill-info { background: #dbeafe; color: #1d4ed8; }
.pill-success { background: #dcfce7; color: #15803d; }
.pill-warning { background: #fef3c7; color: #b45309; }
.pill-danger { background: #fee2e2; color: #b91c1c; }
.pill-muted { background: var(--sg-surface-2); color: var(--sg-muted); border: 1px solid var(--sg-border); }
[data-bs-theme="dark"] .pill-info { background: #1e3a8a; color: #bfdbfe; }
[data-bs-theme="dark"] .pill-success { background: #14532d; color: #bbf7d0; }
[data-bs-theme="dark"] .pill-warning { background: #78350f; color: #fde68a; }
[data-bs-theme="dark"] .pill-danger { background: #7f1d1d; color: #fecaca; }
.sg-table-hover tbody tr { cursor: pointer; }
.sg-drop { border: 2px dashed var(--sg-border); border-radius: var(--sg-radius); padding: 2rem; text-align: center; color: var(--sg-muted); transition: border-color .15s, background .15s; }
.sg-drop.is-over { border-color: var(--sg-primary); background: var(--sg-primary-soft); }

@media (max-width: 767.98px) {
    .sg-side { position: fixed; height: 100%; }
    .sg-content { padding: 1rem; }
    .sg-hero { padding: 3rem 0 2.5rem; }
    .sg-hero-card { transform: none; margin-top: 1rem; }
    .sg-section { padding: 2.5rem 0; }
    .sg-auth { padding: 1.5rem; }
}

/* ---------- documents, fields, signer ---------- */
.sg-page { position: relative; background: #fff; border: 1px solid var(--sg-border); box-shadow: var(--sg-shadow); border-radius: 4px; overflow: hidden; }
.sg-page + .sg-page { margin-top: 1rem; }
.sg-page img { display: block; width: 100%; height: auto; }
.sg-field { position: absolute; box-sizing: border-box; font-size: clamp(.55rem, 1.2vw, .8rem); line-height: 1.1; }
.sg-field-text { border: 1.5px solid var(--sg-primary); background: rgba(255, 255, 255, .92); border-radius: 3px; padding: 0 .25em; color: #111; min-height: 1.2em; }
.sg-field-text:focus { outline: 2px solid var(--sg-primary); outline-offset: 1px; }
.sg-field-check { display: flex; align-items: center; justify-content: center; border: 1.5px solid var(--sg-primary); background: rgba(255, 255, 255, .92); border-radius: 3px; cursor: pointer; }
.sg-field-check input { width: 80%; height: 80%; margin: 0; cursor: pointer; }
.sg-field-mark { display: flex; align-items: flex-end; justify-content: flex-start; padding: 0 .3em .1em; background: color-mix(in srgb, var(--sg-primary) 18%, transparent); border: 1.5px dashed var(--sg-primary); border-radius: 3px; color: var(--sg-primary); font-weight: 700; text-decoration: none; text-transform: uppercase; letter-spacing: .04em; }
.sg-field-auto { display: flex; align-items: flex-end; padding: 0 .3em .1em; border-bottom: 1.5px dotted var(--sg-muted); color: var(--sg-muted); font-style: italic; }
.sg-field-marker { display: flex; align-items: flex-end; padding: 0 .3em .1em; border: 1.5px dashed currentColor; border-radius: 3px; font-weight: 600; opacity: .9; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sg-field-marker.is-done { border-style: solid; }
.sg-r1 { color: #312e81; background: rgba(49, 46, 129, .12); } .sg-r2 { color: #059669; background: rgba(5, 150, 105, .12); } .sg-r3 { color: #d97706; background: rgba(217, 119, 6, .12); }
.sg-r4 { color: #db2777; background: rgba(219, 39, 119, .12); } .sg-r5 { color: #0891b2; background: rgba(8, 145, 178, .12); } .sg-r6 { color: #7c3aed; background: rgba(124, 58, 237, .12); }
.pill.sg-r1, .pill.sg-r2, .pill.sg-r3, .pill.sg-r4, .pill.sg-r5, .pill.sg-r6 { border: 0; }

/* the field editor (fields.js) */
.sg-edit-page { user-select: none; -webkit-user-select: none; }
.sg-edit-page img { pointer-events: none; }
.sg-edit-page.is-armed { cursor: crosshair; outline: 2px dashed var(--sg-primary); outline-offset: 2px; }
.sg-edit-pageno { text-align: center; color: var(--sg-muted); font-size: .75rem; margin: .35rem 0 1rem; }
.sg-page + .sg-edit-pageno + .sg-page { margin-top: 0; }
.sg-field-edit { display: flex; align-items: flex-end; padding: 0 .3em .1em; border: 1.5px dashed currentColor; border-radius: 3px; font-weight: 600; white-space: nowrap; cursor: move; touch-action: none; }
.sg-field-edit-label { overflow: hidden; text-overflow: ellipsis; pointer-events: none; }
.sg-field-edit.is-check { padding: 0; align-items: center; justify-content: center; font-size: .6rem; }
.sg-field-edit.is-selected, .sg-field-edit:focus-visible { border-style: solid; outline: 2px solid currentColor; outline-offset: 1px; z-index: 2; }
.sg-field-edit:focus { outline: none; }
.sg-field-edit.is-selected:focus { outline: 2px solid currentColor; }
.sg-handle { position: absolute; right: -6px; bottom: -6px; width: 11px; height: 11px; background: currentColor; border: 2px solid #fff; border-radius: 3px; cursor: nwse-resize; display: none; }
.sg-field-x { position: absolute; top: -.75rem; right: -.75rem; width: 1.3rem; height: 1.3rem; padding: 0; border: 0; border-radius: 50%; background: #b91c1c; color: #fff; font-size: .85rem; line-height: 1.3rem; text-align: center; cursor: pointer; display: none; }
.sg-field-edit.is-selected .sg-handle, .sg-field-edit.is-selected .sg-field-x, .sg-field-edit:hover .sg-handle { display: block; }
.sg-ghost { position: fixed; z-index: 1080; pointer-events: none; opacity: .9; background: #fff; }
.sg-ghost.is-off { opacity: .45; }
/* A side column that stays in view while the pages beside it scroll (the field editor's toolbox, the send review): under
   the sticky top bar (about 3.75rem), never taller than the window, scrolling inside itself when it is longer. */
.sg-sticky-col { position: sticky; top: 4.75rem; max-height: calc(100vh - 5.75rem); overflow-y: auto; overscroll-behavior: contain; padding-right: 2px; }
.sg-tools { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem; }
.sg-tool { display: flex; align-items: center; gap: .45rem; padding: .45rem .55rem; border: 1px solid var(--sg-border); border-radius: 8px; background: var(--sg-surface); color: var(--sg-ink); font-size: .85rem; font-weight: 600; text-align: left; cursor: grab; touch-action: none; user-select: none; -webkit-user-select: none; }
.sg-tool:hover { border-color: var(--sg-primary); }
.sg-tool.is-armed { border-color: var(--sg-primary); background: var(--sg-primary-soft); }
.sg-tool-ico { width: 1.1rem; flex: 0 0 auto; text-align: center; color: var(--sg-primary); }
.sg-tool-ico-text { font-size: .72rem; font-weight: 800; }
.sg-signer-list { display: flex; flex-direction: column; gap: .3rem; }
.sg-signer-chip { display: flex; align-items: center; gap: .5rem; width: 100%; padding: .3rem .5rem; border: 1px solid var(--sg-border); border-radius: 8px; background: var(--sg-surface); color: var(--sg-ink); font-size: .85rem; text-align: left; }
.sg-signer-chip.is-active { border-color: var(--sg-primary); background: var(--sg-primary-soft); font-weight: 600; }
.sg-signer-chip-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.sg-edit-checks { list-style: none; padding: 0; margin: 0; }
.sg-edit-checks li { display: flex; gap: .5rem; align-items: flex-start; padding: .2rem 0; }
.sg-review { display: grid; grid-template-columns: 5.5rem 1fr; gap: .25rem .75rem; margin: 0; }
.sg-review dt { color: var(--sg-muted); font-weight: 500; }
.sg-review dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
@media (pointer: coarse) { .sg-handle { width: 18px; height: 18px; right: -9px; bottom: -9px; } }
@media (max-width: 991.98px) { .sg-sticky-col { position: static; max-height: none; overflow: visible; } }
.sg-upgrade { display: flex; gap: .75rem; align-items: center; justify-content: space-between; padding: .75rem 1rem; border-radius: 12px; background: var(--sg-primary-soft); }
.sg-upgrade .btn { flex: 0 0 auto; }
.sg-upgrade-over { outline: 2px solid var(--bs-danger); }
.sg-recipient { display: grid; grid-template-columns: 1.6rem 1fr 1.3fr 5.2rem auto; gap: .4rem; align-items: center; margin-bottom: .5rem; }
.sg-recipient-n { display: inline-flex; width: 1.6rem; height: 1.6rem; align-items: center; justify-content: center; border-radius: 50%; background: var(--sg-primary-soft); color: var(--sg-primary); font-size: .75rem; font-weight: 700; flex: 0 0 auto; }
.sg-recipient-n.sg-r1 { color: #312e81; background: rgba(49, 46, 129, .14); } .sg-recipient-n.sg-r2 { color: #059669; background: rgba(5, 150, 105, .14); } .sg-recipient-n.sg-r3 { color: #d97706; background: rgba(217, 119, 6, .14); }
.sg-recipient-n.sg-r4 { color: #db2777; background: rgba(219, 39, 119, .14); } .sg-recipient-n.sg-r5 { color: #0891b2; background: rgba(8, 145, 178, .14); } .sg-recipient-n.sg-r6 { color: #7c3aed; background: rgba(124, 58, 237, .14); }
[data-bs-theme="dark"] .sg-recipient-n.sg-r1 { color: #a9b5ec; background: rgba(169, 181, 236, .16); }
.sg-rcpt { display: flex; gap: .6rem; align-items: center; padding: .5rem 0; border-top: 1px solid var(--sg-border); }
.sg-rcpt:first-of-type { border-top: 0; }
.sg-timeline { list-style: none; padding: 0; margin: 0; }
.sg-timeline li { padding: .35rem 0 .35rem 1rem; border-left: 2px solid var(--sg-border); position: relative; }
.sg-timeline li::before { content: ""; position: absolute; left: -5px; top: .75rem; width: 8px; height: 8px; border-radius: 50%; background: var(--sg-primary); }
.sg-pills .nav-link { color: var(--sg-muted); border-radius: 999px; font-weight: 500; }
.sg-pills .nav-link.active { background: var(--sg-primary); color: var(--sg-primary-ink); }
.sg-count { font-size: .7rem; opacity: .75; margin-left: .2rem; }
.sg-prewrap { white-space: pre-wrap; }
.sg-link { color: var(--sg-primary); cursor: pointer; text-decoration: underline; }
.min-w-0 { min-width: 0; }

.sg-signer { background: var(--sg-surface-2); }
.sg-signer-bar { background: var(--sg-surface); border-bottom: 4px solid var(--sg-primary); }
.sg-signer-bar .container { max-width: 920px; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .5rem; padding-top: .8rem; padding-bottom: .8rem; }
.sg-signer-logo { max-height: 40px; max-width: 220px; }
.sg-signer-main { max-width: 920px; padding-top: 1.5rem; padding-bottom: 6rem; }
.sg-signer-foot { max-width: 920px; padding-bottom: 2rem; }
.sg-signer-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: 1rem; }
.sg-signer-card { margin-top: 1.5rem; }
.sg-signer-note { margin-bottom: 1rem; border-left: 4px solid var(--sg-primary); }
.sg-signer-done { border-color: #16a34a; }
.sg-consent { background: var(--sg-surface-2); border: 1px solid var(--sg-border); border-radius: var(--sg-radius); padding: 1rem; margin-bottom: 1rem; }
.sg-consent p { font-size: .9rem; margin-bottom: .5rem; }
.sg-pad { position: relative; background: #fff; border: 2px dashed #9aa7b5; border-radius: 10px; touch-action: none; }
.sg-pad.signed { border-style: solid; border-color: var(--sg-primary); }
.sg-pad canvas { display: block; width: 100%; height: 180px; touch-action: none; }
.sg-pad-small canvas { height: 110px; }
.sg-pad .sg-pad-line { position: absolute; left: 6%; right: 6%; bottom: 42px; border-bottom: 1px solid #c3ccd6; pointer-events: none; }
.sg-pad-small .sg-pad-line { bottom: 28px; }
.sg-pad .sg-pad-hint { position: absolute; left: 6%; bottom: 18px; font-size: .8rem; color: #8995a3; pointer-events: none; }
.sg-pad-small .sg-pad-hint { bottom: 8px; }
@media (max-width: 575.98px) {
    .sg-recipient { grid-template-columns: 1.4rem 1fr auto; }
    .sg-recipient input[name="r_email"] { grid-column: 2 / span 2; }
}
.sg-progress { height: 8px; border-radius: 999px; background: var(--sg-border); }
.sg-progress .progress-bar { background: var(--sg-primary); border-radius: 999px; }
.sg-docs table { width: 100%; font-size: .9rem; }
.sg-docs th, .sg-docs td { border: 1px solid var(--sg-border); padding: .35rem .6rem; vertical-align: top; }
.sg-docs th { background: var(--sg-surface-2); }
.sg-docs pre { background: #0f172a; color: #e2e8f0; border-radius: var(--sg-radius); padding: 1rem; overflow: auto; font-size: .85rem; }
.sg-docs pre code { background: none; border: 0; color: inherit; padding: 0; }
