/* Styles for the existing review and editor components (separation review,
   redaction review, manual redaction, signing, exhibit layout, cleanup, title
   suggestions) so they share the application's look. They use the class names
   below; these rules map them onto the design tokens. */
.upgrade-dialog,.witness-template-dialog,dialog.assistant-review{border:0;border-radius:var(--bd-r-lg);padding:0;background:var(--bd-surface);color:var(--bd-ink);box-shadow:var(--bd-shadow-2);width:min(720px,92vw);max-height:92vh;display:flex;flex-direction:column}
.upgrade-dialog.wide,.witness-template-dialog{width:min(1120px,96vw)}
.upgrade-dialog::backdrop,.witness-template-dialog::backdrop{background:var(--bd-overlay)}
.upgrade-dialog[open],.witness-template-dialog[open]{display:flex}
.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--bd-line)}
.dialog-heading h2{font-size:1.25rem}
.dialog-heading .dialog-close{background:transparent;border:0;color:var(--bd-ink-3);font-size:24px;line-height:1;padding:0 6px;border-radius:6px}
.dialog-heading .dialog-close:hover{background:var(--bd-sunk);color:var(--bd-ink)}
.upgrade-dialog .dialog-body,.witness-template-dialog .dialog-body{padding:20px;overflow:auto;display:flex;flex-direction:column;gap:12px;max-height:none;flex:1;min-height:0}
.dialog-actions{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--bd-line);flex-wrap:wrap}
/* buttons inside legacy components */
.upgrade-dialog button,.witness-template-dialog button,.admin-task-questions button,.named-separation-review button,.instruction-redaction-review button,.assistant-review button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--bd-line-strong);background:var(--bd-surface);color:var(--bd-ink);border-radius:var(--bd-r-sm);padding:8px 14px;font-weight:500;line-height:1.2;cursor:pointer;transition:background var(--bd-t-fast) var(--bd-ease),border-color var(--bd-t-fast) var(--bd-ease),transform var(--bd-t-fast) var(--bd-ease)}
.upgrade-dialog button:hover,.witness-template-dialog button:hover,.named-separation-review button:hover,.instruction-redaction-review button:hover{background:var(--bd-sunk)}
.upgrade-dialog button:active,.named-separation-review button:active,.instruction-redaction-review button:active{transform:scale(.97)}
.upgrade-dialog button:disabled,.named-separation-review button:disabled,.instruction-redaction-review button:disabled{opacity:.5;cursor:not-allowed}
.upgrade-dialog button.primary,.witness-template-dialog button.primary,.named-separation-review button.primary,.instruction-redaction-review button.primary,.admin-task-questions button.primary{background:var(--bd-accent);border-color:var(--bd-accent);color:var(--bd-accent-ink)}
.upgrade-dialog button.primary:hover:not(:disabled),.named-separation-review button.primary:hover:not(:disabled),.instruction-redaction-review button.primary:hover:not(:disabled){background:var(--bd-accent-hover)}
.upgrade-dialog button.text-button,.named-separation-review button.quiet,.instruction-redaction-review button.quiet{border-color:transparent;background:transparent;color:var(--bd-accent);padding-inline:8px}
.upgrade-dialog .dialog-heading button{border:0;background:transparent}
/* fields */
.upgrade-dialog label.field,.witness-template-dialog label.field,.named-separation-review label.field,.instruction-redaction-review label.field,.assistant-review label.field{display:flex;flex-direction:column;gap:6px;font-size:.88rem;font-weight:500;color:var(--bd-ink-2)}
.upgrade-dialog input:not([type=checkbox]):not([type=radio]),.upgrade-dialog select,.upgrade-dialog textarea,.witness-template-dialog input:not([type=checkbox]),.witness-template-dialog select,.witness-template-dialog textarea,.named-separation-review input:not([type=checkbox]),.named-separation-review textarea,.named-separation-review select,.instruction-redaction-review input:not([type=checkbox]),.instruction-redaction-review textarea,.instruction-redaction-review select{width:100%;border:1px solid var(--bd-line-strong);border-radius:var(--bd-r-sm);background:var(--bd-surface);padding:9px 12px;color:var(--bd-ink);font:inherit;font-weight:400}
.upgrade-dialog input:focus,.upgrade-dialog select:focus,.upgrade-dialog textarea:focus,.named-separation-review input:focus,.named-separation-review textarea:focus,.instruction-redaction-review input:focus,.instruction-redaction-review textarea:focus{border-color:var(--bd-accent);outline:3px solid color-mix(in srgb,var(--bd-accent) 25%,transparent);outline-offset:0}
.upgrade-dialog label.checkbox,.witness-template-dialog label.checkbox,.named-separation-review label.checkbox,.instruction-redaction-review label.checkbox,.assistant-review label.checkbox{display:flex;gap:10px;align-items:flex-start;font-size:.92rem;cursor:pointer}
.upgrade-dialog label.checkbox input,.named-separation-review label.checkbox input,.instruction-redaction-review label.checkbox input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--bd-accent);flex:none}
.upgrade-dialog fieldset,.named-separation-review fieldset,.instruction-redaction-review fieldset{border:0;padding:0;margin:0;min-width:0;display:flex;flex-direction:column;gap:12px}
.upgrade-dialog fieldset:disabled,.instruction-redaction-review fieldset:disabled{opacity:.6}
.upgrade-dialog h3,.named-separation-review h3,.instruction-redaction-review h3{font-size:1rem;margin-top:6px}
.upgrade-dialog p,.named-separation-review p,.instruction-redaction-review p{line-height:1.55}
.upgrade-dialog details{border-top:1px solid var(--bd-line);padding-top:10px}
.upgrade-dialog summary,.named-separation-review summary,.instruction-redaction-review summary{cursor:pointer;color:var(--bd-accent);font-weight:500}
/* generic classes used by those components */
.hint{font-size:.84rem;color:var(--bd-ink-3)}
.status[role=status],.upgrade-dialog [role=status]{font-size:.9rem;color:var(--bd-ink-2)}
[role=alert]:not(.notice):not(:empty){color:var(--bd-bad);font-size:.92rem;padding:10px 12px;border-radius:var(--bd-r-sm);background:var(--bd-bad-soft)}
.issue-file{padding:10px 0;border-bottom:1px solid var(--bd-line);display:flex;flex-direction:column;gap:6px}
.issue-file strong{font-size:.95rem}
.issue-file p{font-size:.88rem;color:var(--bd-ink-2);margin:0}
.issue-file .error-text{color:var(--bd-bad)}
.help-table{width:100%;border-collapse:collapse;font-size:.9rem}
.help-table td,.help-table th{padding:8px 10px;border-bottom:1px solid var(--bd-line);vertical-align:top;text-align:left}
.export-stats{display:flex;gap:22px;flex-wrap:wrap;margin:6px 0}
.export-stats div{display:flex;flex-direction:column}
.export-stats strong{font-size:1.5rem;font-weight:600}
.export-stats span{font-size:.84rem;color:var(--bd-ink-3)}
.upgrade-dialog .notice:not(.warn):not(.info):not(.bad):not(.good),.assistant-review .notice,.named-separation-review .notice,.instruction-redaction-review .notice{background:var(--bd-warn-soft);border:1px solid color-mix(in srgb,var(--bd-warn) 35%,transparent);border-radius:var(--bd-r);padding:12px 14px;font-size:.92rem}
.card.panel{padding:20px;display:flex;flex-direction:column;gap:14px}
.admin-task-questions h2{font-size:1.2rem}
.admin-task-questions p{line-height:1.55}
/* separation review */
.named-separation-review .strip{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 10px}
.named-separation-review .thumb{flex:none;width:118px;display:flex;flex-direction:column;gap:5px;font-size:.76rem;color:var(--bd-ink-3)}
.named-separation-review .pg{width:118px;aspect-ratio:1/1.414;background:#fff;border:1px solid var(--bd-line);border-radius:2px;overflow:hidden;display:block}
.named-separation-review .pg canvas{display:block;width:100%;height:auto}
.named-separation-review .band{height:6px;width:100%;border-radius:3px;background:var(--bd-line)}
.named-separation-review .thumb.flag .band,.named-separation-review .flag{background:var(--bd-warn-soft);color:var(--bd-warn)}
.named-separation-review .docs{display:flex;flex-direction:column;gap:10px}
.named-separation-review .doc{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--bd-line);border-radius:var(--bd-r-sm)}
.named-separation-review .sw{width:14px;height:14px;border-radius:3px;background:var(--bd-accent)}
.named-separation-review .mono,.instruction-redaction-review .mono{font-family:var(--bd-font-mono);font-size:.84rem}
.named-separation-review .muted,.instruction-redaction-review .muted{color:var(--bd-ink-3)}
.named-separation-review .actions,.instruction-redaction-review .actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
/* redaction review */
.instruction-redaction-review .summary{display:flex;gap:18px;flex-wrap:wrap;font-size:.9rem;margin:8px 0}
.instruction-redaction-review .summary b{font-size:1.3rem;display:block}
.instruction-redaction-review .redaction-pages{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px}
.instruction-redaction-review figure{margin:0;background:var(--bd-surface);border:1px solid var(--bd-line);border-radius:var(--bd-r-sm);padding:10px}
.instruction-redaction-review figure canvas,.instruction-redaction-review figure img{display:block;width:100%;height:auto}
.instruction-redaction-review .hit{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--bd-line);border-radius:var(--bd-r-sm)}
.instruction-redaction-review .hit.draft{border-color:var(--bd-accent)}
.instruction-redaction-review .pill{display:inline-flex;font-size:.76rem;font-weight:600;padding:2px 9px;border-radius:var(--bd-r-pill);background:var(--bd-sunk);color:var(--bd-ink-3)}
.instruction-redaction-review .ctx{font-size:.9rem}
.instruction-redaction-review .switch{position:relative;width:40px;height:22px;border-radius:999px;border:0;background:var(--bd-accent);flex:none;padding:0}
.instruction-redaction-review .switch::after{content:"";position:absolute;top:3px;left:21px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left var(--bd-t-fast) var(--bd-ease)}
.instruction-redaction-review .switch[aria-checked=false],.instruction-redaction-review .switch[aria-pressed=false]{background:var(--bd-line-strong)}
.instruction-redaction-review .switch[aria-checked=false]::after,.instruction-redaction-review .switch[aria-pressed=false]::after{left:3px}
/* manual redaction / signature editors */
.redaction-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px}
.redaction-stage,.signature-stage{position:relative;background:var(--bd-sunk);border:1px solid var(--bd-line);border-radius:var(--bd-r-sm);overflow:auto;max-height:70vh;line-height:0}
.document-page-surface{display:block;margin:0 auto;background:#fff;box-shadow:0 2px 8px rgba(21,37,54,.12)}
.redaction-overlay{position:absolute;inset:0}
.redaction-region{position:absolute;background:rgba(0,0,0,.85);border:1px solid var(--bd-bad);box-sizing:border-box}
.signature-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:8px 0}
.signature-pad{display:block;width:100%;max-width:720px;height:auto;background:#fff;touch-action:none}
.signature-drawing-frame{max-width:720px;border:1px solid var(--bd-line-strong);background:#fff;border-radius:var(--bd-r-sm);overflow:hidden}
.signature-drawing-frame>canvas{display:block;width:100%;height:auto}
.signature-stamp{position:absolute;border:2px dashed var(--bd-accent);background:rgba(38,129,181,.08);display:flex;align-items:center;justify-content:center;touch-action:none;cursor:move;user-select:none;box-sizing:border-box}
.signature-resize{position:absolute;right:-6px;bottom:-6px;width:14px;height:14px;background:var(--bd-accent);border-radius:3px;cursor:nwse-resize}
/* exhibit layout editor */
.template-stage{position:relative;background:var(--bd-sunk);border:1px solid var(--bd-line);border-radius:var(--bd-r-sm);overflow:auto;max-height:60vh}
.template-stage img,.template-stage canvas{display:block;max-width:100%}
.template-title-box,.template-ref-box{position:absolute;border:2px solid var(--bd-accent);background:rgba(38,129,181,.1)}
.template-body-line{position:absolute;left:0;right:0;border-top:2px dashed var(--bd-warn)}
.template-tools,.template-adjustments{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.exhibit-auto-preview{border:1px solid var(--bd-line);border-radius:var(--bd-r-sm);overflow:hidden;background:#fff}
.title-suggestion{padding:10px 0;border-bottom:1px solid var(--bd-line)}
/* pdf preview */
.pdf-preview{min-height:0;overflow:auto;flex:1;background:var(--bd-sunk);padding:14px;overscroll-behavior:contain;max-height:76vh}
.pdf-preview-page{width:100%;max-width:1050px;margin:0 auto 14px;background:#fff;box-shadow:0 1px 8px rgba(21,37,54,.15);overflow:hidden;color:var(--bd-ink-3);text-align:center}
.pdf-preview-page canvas{display:block;max-width:100%;height:auto}
dialog.bd-dialog.wide{width:min(1120px,96vw)}
dialog.bd-dialog.preview .dialog-body{max-height:80vh}
@media (max-width:840px){.redaction-layout{grid-template-columns:1fr}}

/* signing: Type / Draw / Upload tabs and typed-style picker */
.signature-tabs{display:inline-flex;gap:4px;padding:4px;background:var(--bd-sunk);border-radius:var(--bd-r);align-self:flex-start}
.upgrade-dialog .signature-tabs button{border:0;background:transparent;padding:8px 18px;border-radius:var(--bd-r-sm);color:var(--bd-ink-2);font-weight:600}
.upgrade-dialog .signature-tabs button.on{background:var(--bd-surface);color:var(--bd-ink);box-shadow:var(--bd-shadow-1)}
.signature-style-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin:4px 0 8px}
.upgrade-dialog button.signature-style{flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;min-height:96px;padding:12px 16px;text-align:left;border:1.5px solid var(--bd-line);background:var(--bd-surface)}
.upgrade-dialog button.signature-style.on{border-color:var(--bd-accent);background:var(--bd-accent-soft);box-shadow:0 0 0 1px var(--bd-accent)}
.signature-style-sample{color:#1B2A4A;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.signature-style-name{font-size:.78rem;color:var(--bd-ink-3);font-weight:500}
.signature-stamp>span:first-child{display:flex;align-items:center;justify-content:center;width:100%;height:100%;overflow:hidden;pointer-events:none;line-height:1;white-space:nowrap;font-size:clamp(12px,2.2vw,30px)}
.signature-stamp img{width:100%;height:100%;object-fit:contain;display:block}

.upgrade-dialog .dialog-body>*,.witness-template-dialog .dialog-body>*{flex-shrink:0}
.named-separation-review .doc.flag{grid-template-columns:auto 1fr auto;background:var(--bd-warn-soft);border-color:color-mix(in srgb,var(--bd-warn) 35%,transparent)}
.named-separation-review .doc.flag b{color:var(--bd-warn);white-space:nowrap}

.signature-stage{max-height:none;overflow:visible;display:flex;justify-content:center;padding:10px;line-height:0}
.signature-stage .document-page-surface{position:relative;width:fit-content;margin:0 auto}
.signature-stage .document-page-surface>canvas{display:block;max-height:64vh;max-width:100%;width:auto;height:auto}
.signature-stamp{touch-action:none}
/* each placed signature: × removes it; a suggested place is dotted until accepted */
.signature-remove{position:absolute;top:-11px;right:-11px;width:22px;height:22px;border-radius:50%;border:1px solid var(--bd-accent);background:#fff;color:var(--bd-accent);font:600 15px/1 system-ui,sans-serif;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;z-index:2}
.signature-remove:hover,.signature-remove:focus-visible{background:var(--bd-accent);color:#fff}
.signature-accept{position:absolute;bottom:-26px;left:0;font:600 12px/1 system-ui,sans-serif;padding:4px 8px;border-radius:4px;border:1px solid var(--bd-accent);background:var(--bd-accent);color:#fff;cursor:pointer;z-index:2}
.signature-stamp.proposed,.signature-other.proposed{border-style:dotted;background:rgba(38,129,181,.04)}
.signature-other-marks{position:absolute;inset:0;pointer-events:none}
.signature-other{position:absolute;pointer-events:auto;border:2px solid var(--bd-accent);background:rgba(38,129,181,.06);display:flex;align-items:center;justify-content:center;cursor:pointer;box-sizing:border-box;font-size:12px;color:var(--bd-accent)}
.signature-placed{display:flex;flex-direction:column;gap:4px;margin:8px 0}
.signature-placed-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.signature-placed-row.proposed span{font-style:italic}

.signature-saved{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--bd-line);border-radius:var(--bd-r);background:var(--bd-sunk)}
.signature-saved small{color:var(--bd-ink-3);font-size:.78rem}
.signature-saved-list{display:flex;gap:10px;flex-wrap:wrap}
.signature-saved-card{position:relative}
.upgrade-dialog button.signature-saved-use{flex-direction:column;align-items:center;gap:4px;width:180px;height:84px;padding:8px;background:var(--bd-surface)}
.signature-saved-use img{max-width:160px;max-height:48px;object-fit:contain}
.signature-saved-typed{font-size:26px;color:#1B2A4A;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px;line-height:1.3}
.upgrade-dialog button.signature-saved-forget{position:absolute;top:-8px;right:-8px;width:22px;height:22px;padding:0;border-radius:50%;font-size:14px;line-height:1}
