/* SummitLife DOJ Portal — government theme on top of Bootstrap 5.3 */
:root {
    --sl-navy: #14284b;
    --sl-navy-2: #1d3766;
    --sl-gold: #c9a227;
    --sl-gold-soft: #f3e7bf;
    --sl-sidebar-bg: #0f1f3a;
    --sl-sidebar-fg: #c8d3e6;
    --sl-sidebar-active: #ffffff;
    --sl-surface: #ffffff;
    --sl-page: #f2f4f8;
    --sl-border: #dde2eb;
    --sl-muted: #6b7587;
    --bs-primary: #1d3766;
    --bs-primary-rgb: 29, 55, 102;
    --bs-link-color: #1d4f9c;
    --bs-link-color-rgb: 29, 79, 156;
    --bs-body-font-family: "Segoe UI", "Inter", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
    --bs-body-font-size: 0.925rem;
}
[data-bs-theme="dark"] {
    --sl-sidebar-bg: #0a1426;
    --sl-surface: #161d2b;
    --sl-page: #0e1420;
    --sl-border: #273146;
    --sl-muted: #9aa5ba;
    --sl-gold-soft: #3b3217;
    --bs-link-color: #8fb4f5;
    --bs-link-color-rgb: 143, 180, 245;
    --bs-body-bg: #0e1420;
}

body { background: var(--sl-page); }
.btn-primary { --bs-btn-bg: var(--sl-navy-2); --bs-btn-border-color: var(--sl-navy-2); --bs-btn-hover-bg: var(--sl-navy); --bs-btn-hover-border-color: var(--sl-navy); --bs-btn-active-bg: var(--sl-navy); }
[data-bs-theme="dark"] .btn-primary { --bs-btn-bg: #2d56a3; --bs-btn-border-color: #2d56a3; --bs-btn-hover-bg: #3665bd; }
.btn-gold { background: var(--sl-gold); border-color: var(--sl-gold); color: #1b1b1b; font-weight: 600; }
.btn-gold:hover { background: #b38f1f; color: #111; }

/* ---------- shell ---------- */
.seed-banner { background: repeating-linear-gradient(45deg, #f7c948, #f7c948 12px, #f2b90b 12px, #f2b90b 24px); color: #231a00; font-weight: 700; text-align: center; font-size: .8rem; padding: .3rem 1rem; letter-spacing: .02em; }
.demo-banner { background: repeating-linear-gradient(45deg, #9ad1f5, #9ad1f5 12px, #7cc0ee 12px, #7cc0ee 24px); color: #06243a; }
.demo-banner .demo-leave { color: #06243a; font-weight: 700; font-size: .8rem; text-decoration: underline; }
.app-shell { display: flex; min-height: 100vh; }
.sidebar { width: 250px; flex-shrink: 0; background: var(--sl-sidebar-bg); color: var(--sl-sidebar-fg); display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh; overflow-y: auto; border-right: 3px solid var(--sl-gold); z-index: 1030; }
.brand { display: flex; align-items: center; gap: .65rem; text-decoration: none; color: inherit; padding: 1rem 1rem .9rem; }
.sidebar .brand { border-bottom: 1px solid rgba(255,255,255,.08); color: #fff; }
.brand-seal { width: 40px; height: 40px; border-radius: 50%; background: radial-gradient(circle at 30% 30%, #e7c75a, var(--sl-gold) 60%, #8a6d12); color: var(--sl-navy); display: grid; place-items: center; font-size: 1.2rem; box-shadow: inset 0 0 0 2px rgba(20,40,75,.35); flex-shrink: 0; }
.brand-text { display: flex; flex-direction: column; line-height: 1.1; }
.brand-text strong { letter-spacing: .14em; font-size: .95rem; }
.brand-text small { letter-spacing: .08em; font-size: .62rem; opacity: .8; }
.sidebar-nav { padding: .5rem 0 1rem; flex-grow: 1; }
.nav-section { display: flex; align-items: center; gap: .4rem; width: 100%; background: none; border: 0; text-align: left; font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; color: rgba(200,211,230,.7); padding: .85rem 1.2rem .4rem; font-weight: 700; }
button.nav-section { cursor: pointer; }
button.nav-section:hover, button.nav-section:focus-visible { color: #fff; }
.nav-section > span:first-child { flex-grow: 1; }
.nav-section .bi { margin-right: .2rem; }
.nav-home { color: var(--sl-gold); }
.nav-count { font-size: .62rem; letter-spacing: 0; background: rgba(255,255,255,.08); border-radius: 10px; padding: 0 .45rem; }
.nav-chevron { transition: transform .15s ease; font-size: .7rem; }
.nav-group:not(.open) .nav-chevron { transform: rotate(-90deg); }
.nav-group:not(.open) > .nav-items { display: none; }
.nav-group.open .nav-count { display: none; }
.nav-group.has-active:not(.open) > .nav-section { color: #fff; }
.nav-group + .nav-group { border-top: 1px solid rgba(255,255,255,.05); }
.nav-item { position: relative; }
.nav-pin { position: absolute; right: .6rem; top: 50%; transform: translateY(-50%); background: none; border: 0; color: rgba(200,211,230,.55); padding: .1rem .3rem; opacity: 0; font-size: .8rem; }
.nav-item:hover .nav-pin, .nav-pin:focus-visible, .nav-item.pinned .nav-pin { opacity: 1; }
.nav-item.pinned .nav-pin { color: var(--sl-gold); }
.nav-pin:hover { color: #fff; }
.nav-item:hover .nav-link .badge { margin-right: 1.4rem; }
.nav-jump { position: relative; padding: .7rem 1rem .2rem; }
.nav-jump .bi { position: absolute; left: 1.6rem; top: 50%; transform: translateY(-25%); color: rgba(200,211,230,.55); font-size: .8rem; }
.nav-jump input { padding-left: 1.9rem; background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.12); color: #fff; }
.nav-jump input::placeholder { color: rgba(200,211,230,.55); }
.nav-jump input:focus { background: rgba(255,255,255,.1); color: #fff; border-color: var(--sl-gold); box-shadow: none; }
.sidebar-nav.filtering .nav-group > .nav-items { display: block; }
.sidebar-nav.filtering .nav-count, .sidebar-nav.filtering .nav-chevron, .sidebar-nav.filtering .nav-pinned { display: none; }
.nav-empty { padding: .8rem 1.2rem; color: rgba(200,211,230,.6); }
@media (hover: none) { .nav-pin { opacity: .6; } }
.sidebar .nav-link { display: flex; align-items: center; gap: .7rem; padding: .42rem 1.2rem; color: var(--sl-sidebar-fg); font-size: .86rem; border-left: 3px solid transparent; }
.sidebar .nav-link:hover { background: rgba(255,255,255,.05); color: #fff; }
.sidebar .nav-link.active { background: rgba(201,162,39,.12); color: var(--sl-sidebar-active); border-left-color: var(--sl-gold); font-weight: 600; }
.sidebar .nav-link i { width: 1.1rem; text-align: center; opacity: .9; }
.sidebar-footer { padding: .8rem 1.2rem; color: rgba(200,211,230,.5); border-top: 1px solid rgba(255,255,255,.08); }
.sidebar-footer a { color: rgba(200,211,230,.75); }
.main { flex-grow: 1; min-width: 0; display: flex; flex-direction: column; }
.topbar { display: flex; align-items: center; gap: 1rem; padding: .6rem 1.5rem; background: var(--sl-surface); border-bottom: 1px solid var(--sl-border); position: sticky; top: 0; z-index: 1020; }
.global-search { position: relative; flex-grow: 1; max-width: 680px; }
.global-search i { position: absolute; left: .75rem; top: 50%; transform: translateY(-50%); color: var(--sl-muted); }
.global-search input { padding-left: 2.2rem; background: var(--sl-page); border-color: var(--sl-border); }
.topbar-actions { display: flex; align-items: center; gap: .35rem; margin-left: auto; }
.notif-dot { position: absolute; top: -2px; right: -4px; background: #dc3545; color: #fff; border-radius: 10px; font-size: .62rem; padding: 0 .35rem; line-height: 1.3rem; }
.user-chip { border: 1px solid var(--sl-border); }
.content { padding: 1.5rem; max-width: 1600px; width: 100%; }
@media (max-width: 991.98px) {
    .sidebar { position: fixed; left: -260px; transition: left .2s ease; }
    .sidebar.open { left: 0; box-shadow: 0 0 40px rgba(0,0,0,.4); }
    .content { padding: 1rem; }
}

/* ---------- page furniture ---------- */
.page-header { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 1rem; margin-bottom: 1.25rem; }
.page-header h1 { font-size: 1.45rem; margin: 0; font-weight: 700; color: var(--bs-emphasis-color); }
.page-header .eyebrow { font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--sl-gold); font-weight: 700; }
.page-header .actions { margin-left: auto; display: flex; gap: .5rem; flex-wrap: wrap; }
.card { border-color: var(--sl-border); background: var(--sl-surface); box-shadow: 0 1px 2px rgba(16,24,40,.04); }
.card-header { background: transparent; border-bottom-color: var(--sl-border); font-weight: 600; display: flex; align-items: center; gap: .5rem; }
.card-header .card-actions { margin-left: auto; display: flex; gap: .4rem; }
.section-title { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--sl-muted); font-weight: 700; margin: 0 0 .6rem; }
.status-badge { font-size: .68rem; letter-spacing: .05em; font-weight: 700; padding: .35em .6em; }
.text-bg-light.status-badge { border: 1px solid var(--sl-border); }
.muted { color: var(--sl-muted); }
.mono { font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; font-size: .85em; }
.record-number { font-family: ui-monospace, Consolas, monospace; font-weight: 600; letter-spacing: .02em; }
dl.meta { display: grid; grid-template-columns: minmax(120px, 34%) 1fr; gap: .35rem .9rem; margin: 0; }
dl.meta dt { color: var(--sl-muted); font-weight: 500; font-size: .82rem; }
dl.meta dd { margin: 0; }
.rich-text { line-height: 1.55; }
.rich-text p:last-child { margin-bottom: 0; }
.rich-text table { border-collapse: collapse; margin: .5rem 0; }
.rich-text td, .rich-text th { border: 1px solid var(--sl-border); padding: .25rem .5rem; }
.restricted-panel { border-left: 4px solid #b02a37; background: rgba(176,42,55,.05); }
.restricted-label { font-size: .68rem; letter-spacing: .12em; font-weight: 800; color: #b02a37; text-transform: uppercase; }

/* stat cards */
.stat-card { display: block; text-decoration: none; color: inherit; border: 1px solid var(--sl-border); border-radius: .6rem; background: var(--sl-surface); padding: 1rem 1.1rem; position: relative; overflow: hidden; transition: transform .1s ease, box-shadow .1s ease; height: 100%; }
.stat-card:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(16,24,40,.08); color: inherit; }
.stat-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--tone, var(--sl-navy-2)); }
.stat-card .stat-label { font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--sl-muted); font-weight: 700; }
.stat-card .stat-value { font-size: 1.7rem; font-weight: 700; margin-top: .15rem; font-variant-numeric: tabular-nums; }
.stat-card .stat-icon { position: absolute; right: 1rem; top: 1rem; font-size: 1.4rem; opacity: .25; }
.stat-card.tone-warning { --tone: #e0a800; } .stat-card.tone-danger { --tone: #c0392b; } .stat-card.tone-primary { --tone: #1d4f9c; }

/* tables */
.table-card .table { margin: 0; }
.table > :not(caption) > * > * { padding: .55rem .75rem; background-color: transparent; }
.table thead th { font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; color: var(--sl-muted); font-weight: 700; white-space: nowrap; border-bottom-width: 1px; }
.table tbody tr:hover { background: rgba(29,55,102,.035); }
[data-bs-theme="dark"] .table tbody tr:hover { background: rgba(255,255,255,.03); }
.sort-link { color: inherit; text-decoration: none; }
.sort-link.active { color: var(--bs-emphasis-color); }
.list-toolbar { display: flex; flex-wrap: wrap; gap: .5rem; align-items: end; padding: .75rem; border-bottom: 1px solid var(--sl-border); }
.list-toolbar .form-control, .list-toolbar .form-select { font-size: .85rem; }
.list-toolbar .grow { flex: 1 1 220px; }
.list-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .6rem .9rem; border-top: 1px solid var(--sl-border); font-size: .82rem; color: var(--sl-muted); }
.pagination { margin: 0; }
.empty-state { text-align: center; padding: 2.5rem 1rem; color: var(--sl-muted); }
.empty-state i { font-size: 2rem; display: block; margin-bottom: .5rem; opacity: .5; }

/* tabs */
.record-tabs { border-bottom: 1px solid var(--sl-border); margin-bottom: 1rem; gap: .25rem; flex-wrap: nowrap; overflow-x: auto; }
.record-tabs .nav-link { border: 0; border-bottom: 2px solid transparent; color: var(--sl-muted); font-weight: 600; font-size: .85rem; white-space: nowrap; }
.record-tabs .nav-link.active { color: var(--bs-emphasis-color); border-bottom-color: var(--sl-gold); background: transparent; }
.record-tabs .count { font-size: .7rem; background: var(--sl-page); border-radius: 10px; padding: 0 .45rem; margin-left: .25rem; }

/* timeline */
.timeline { list-style: none; padding: 0; margin: 0; position: relative; }
.timeline::before { content: ""; position: absolute; left: 11px; top: 4px; bottom: 4px; width: 2px; background: var(--sl-border); }
.timeline li { position: relative; padding: 0 0 1rem 2.2rem; }
.timeline li::before { content: ""; position: absolute; left: 5px; top: 4px; width: 14px; height: 14px; border-radius: 50%; background: var(--sl-surface); border: 3px solid var(--dot, var(--sl-navy-2)); }
.timeline li.t-event { --dot: var(--sl-gold); } .timeline li.t-decision { --dot: #6f42c1; } .timeline li.t-danger { --dot: #c0392b; } .timeline li.t-success { --dot: #198754; }
.timeline .t-time { font-size: .75rem; color: var(--sl-muted); }
.timeline .t-title { font-weight: 600; }

/* decisions / seals */
.decision-block { border: 1px solid var(--sl-border); border-left: 4px solid #6f42c1; border-radius: .5rem; padding: 1rem; background: var(--sl-surface); }
.signature-line { font-family: "Brush Script MT", "Segoe Script", cursive; font-size: 1.3rem; }
.sig-hash { font-family: ui-monospace, Consolas, monospace; font-size: .7rem; color: var(--sl-muted); word-break: break-all; }

/* calendar */
.calendar { display: grid; grid-template-columns: repeat(7, 1fr); border: 1px solid var(--sl-border); border-radius: .5rem; overflow: hidden; background: var(--sl-surface); }
.calendar .cal-head { font-size: .7rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 700; text-align: center; padding: .4rem; background: var(--sl-page); color: var(--sl-muted); }
.calendar .cal-day { min-height: 108px; border-top: 1px solid var(--sl-border); border-left: 1px solid var(--sl-border); padding: .3rem; font-size: .78rem; }
.calendar .cal-day:nth-child(7n+1) { border-left: 0; }
.calendar .cal-day.other { background: var(--sl-page); opacity: .6; }
.calendar .cal-day.today { box-shadow: inset 0 0 0 2px var(--sl-gold); }
.calendar .cal-num { font-weight: 700; color: var(--sl-muted); }
.calendar .cal-event { display: block; background: rgba(29,79,156,.1); border-left: 3px solid #1d4f9c; border-radius: 3px; padding: .1rem .3rem; margin-top: .2rem; text-decoration: none; color: inherit; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.calendar .cal-event.st-cancelled, .calendar .cal-event.st-adjourned { opacity: .5; text-decoration: line-through; }

/* entity picker */
.picker { position: relative; }
.picker-menu { position: absolute; z-index: 1060; left: 0; right: 0; top: 100%; background: var(--sl-surface); border: 1px solid var(--sl-border); border-radius: .4rem; box-shadow: 0 8px 24px rgba(0,0,0,.12); max-height: 260px; overflow-y: auto; display: none; }
.picker-menu.show { display: block; }
.picker-menu button { display: block; width: 100%; text-align: left; border: 0; background: none; padding: .45rem .7rem; font-size: .85rem; color: inherit; }
.picker-menu button:hover, .picker-menu button.active { background: rgba(29,79,156,.1); }
.picker-menu small { color: var(--sl-muted); display: block; }
.picker-selected { font-size: .8rem; margin-top: .25rem; }

/* evidence links */
.evidence-link { display: flex; gap: .6rem; align-items: center; padding: .5rem .7rem; border: 1px solid var(--sl-border); border-radius: .4rem; margin-bottom: .4rem; }
.evidence-link .host { font-size: .72rem; color: var(--sl-muted); }
.link-rows .link-row { display: grid; grid-template-columns: 2fr 1fr auto; gap: .4rem; margin-bottom: .4rem; }

/* forms */
.form-label { font-weight: 600; font-size: .82rem; margin-bottom: .25rem; }
.form-text { font-size: .75rem; }
.required::after { content: " *"; color: #c0392b; }
.tox-tinymce { border-color: var(--sl-border) !important; border-radius: .375rem !important; }
.is-invalid + .tox-tinymce, .tox-tinymce.is-invalid { border-color: #dc3545 !important; }

/* auth */
.auth-wrap { min-height: 100vh; display: grid; place-items: center; background: linear-gradient(160deg, #0f1f3a 0%, #1d3766 55%, #0f1f3a 100%); padding: 1rem; }
.auth-card { width: 100%; max-width: 420px; border-top: 4px solid var(--sl-gold); }
.auth-card .brand { justify-content: center; color: var(--bs-emphasis-color); }

/* public */
.public-header { background: var(--sl-navy); color: #fff; border-bottom: 3px solid var(--sl-gold); }
.public-header .brand { color: #fff; }
.public-nav { background: rgba(0,0,0,.18); }
.public-nav a { color: #dfe6f3; text-decoration: none; padding: .55rem .8rem; font-size: .85rem; display: inline-block; border-bottom: 2px solid transparent; }
.public-nav a:hover, .public-nav a.active { color: #fff; border-bottom-color: var(--sl-gold); }
.public-footer { border-top: 1px solid var(--sl-border); color: var(--sl-muted); }
.hero { background: linear-gradient(135deg, var(--sl-navy) 0%, var(--sl-navy-2) 100%); color: #fff; border-radius: .8rem; padding: 2.2rem; position: relative; overflow: hidden; }
.hero::after { content: "\2696"; position: absolute; right: 2rem; top: 50%; transform: translateY(-50%); font-size: 9rem; opacity: .08; }
.quick-link { display: flex; gap: .8rem; align-items: center; padding: 1rem; border: 1px solid var(--sl-border); border-radius: .6rem; background: var(--sl-surface); text-decoration: none; color: inherit; height: 100%; }
.quick-link:hover { border-color: var(--sl-gold); color: inherit; }
.quick-link i { font-size: 1.5rem; color: var(--sl-gold); }

/* SweetAlert2 theming */
.swal2-popup { font-family: var(--bs-body-font-family); background: var(--sl-surface); color: var(--bs-body-color); border-top: 4px solid var(--sl-gold); }
.swal2-title { color: var(--bs-emphasis-color); font-size: 1.25rem; }
.swal2-textarea, .swal2-input { background: var(--bs-body-bg); color: var(--bs-body-color); border-color: var(--sl-border); font-size: .9rem; }
.swal2-html-container { color: var(--bs-body-color); font-size: .92rem; }

/* ------------------------------------------------------------ legal documents (warrants) */
.legal-doc { position: relative; overflow: hidden; background: #fff; color: #111; max-width: 816px; margin: 0 auto 1.25rem; padding: 3.25rem 4.25rem 2.5rem; border: 1px solid #d6d9de; box-shadow: 0 2px 10px rgba(16, 24, 40, .08); font-family: 'Tinos', 'Times New Roman', Times, serif; font-size: 15px; line-height: 1.45; }
.legal-doc p, .legal-doc .doc-p { margin: 0 0 .9rem; text-align: justify; }
.legal-doc .doc-court { text-align: center; font-size: 1.15rem; letter-spacing: .02em; padding: .45rem 0; border-top: 1px solid #555; border-bottom: 1px solid #555; margin-bottom: 1rem; }
.legal-doc .doc-title { text-align: center; font-family: inherit; font-size: 1.05rem; font-weight: 700; letter-spacing: .03em; margin: 0 0 1.1rem; color: inherit; }
.legal-doc .doc-number { text-align: center; font-size: .9rem; margin-bottom: 2rem; }
.legal-doc .doc-to span { display: inline-block; min-width: 2.5rem; }
.legal-doc .doc-indent { text-indent: 2.5rem; }
.legal-doc .doc-hint { font-style: italic; font-size: .85rem; margin-bottom: .3rem; }
.legal-doc .doc-field { border: 1px dashed #444; text-align: center; padding: .35rem .75rem; margin-bottom: 1.1rem; }
.legal-doc .doc-offences { list-style: none; padding: 1.25rem 0 2.5rem 4rem; margin: 0; min-height: 7rem; }
.legal-doc .doc-offences li { margin-bottom: .3rem; }
.legal-doc .doc-lines { list-style: none; padding: 0; margin: 0 0 3rem; border-top: 1px solid #444; }
.legal-doc .doc-lines li { border-bottom: 1px dashed #444; padding: .3rem .25rem; }
.legal-doc .doc-box { display: inline-block; min-width: 1.1em; text-align: center; font-weight: 700; line-height: 1.1; }
.legal-doc .doc-box.is-checked { background: #9bd49b; border: 1px solid #3c8c3c; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.legal-doc .doc-sign { margin-top: 2.75rem; }
.legal-doc .doc-signature { font-family: 'Great Vibes', 'Segoe Script', cursive; font-size: 2rem; line-height: 1.2; min-height: 2.6rem; width: 18rem; max-width: 100%; border-bottom: 1px solid #111; padding-left: .25rem; }
.legal-doc .doc-judge { font-size: .85rem; margin: .3rem 0 .6rem .25rem; }
.legal-doc .doc-blank { display: inline-block; width: 12rem; border-bottom: 1px solid #999; }
.legal-doc .doc-issued { font-size: .9rem; text-align: left; }
.legal-doc .doc-verify, .legal-doc .doc-note { font-size: .7rem; color: #666; margin: 0; text-align: left; }
.legal-doc .doc-stamp { position: absolute; top: 42%; left: 50%; transform: translate(-50%, -50%) rotate(-24deg); font: 700 4.5rem/1 'Tinos', 'Times New Roman', serif; letter-spacing: .12em; text-transform: uppercase; padding: .2rem 1.2rem; border: .4rem double currentColor; border-radius: .6rem; opacity: .16; pointer-events: none; white-space: nowrap; }
.legal-doc .doc-stamp-pending { color: #6c757d; }
.legal-doc .doc-stamp-void { color: #b02a37; opacity: .22; }
.legal-doc .doc-stamp-done { color: #1d6b3a; }
@media (max-width: 767.98px) {
    .legal-doc { padding: 1.75rem 1.25rem; font-size: 14px; }
    .legal-doc .doc-offences { padding-left: 1.25rem; }
    .legal-doc .doc-stamp { font-size: 2.75rem; }
}

/* ------------------------------------------------------------ signature pad */
.sig-pad { position: relative; height: 170px; max-width: 560px; background: #fff; border: 1px solid var(--bs-border-color); border-radius: .5rem; overflow: hidden; touch-action: none; }
.sig-pad canvas { position: absolute; inset: 0; width: 100%; height: 100%; cursor: crosshair; z-index: 2; }
.sig-pad-line { position: absolute; left: 1.25rem; right: 1.25rem; bottom: 2.6rem; border-bottom: 1px solid #9aa3b2; color: #9aa3b2; font-size: .9rem; z-index: 1; }
.sig-pad-line span { position: absolute; left: 0; bottom: .1rem; }
.sig-pad-hint { position: absolute; left: 0; right: 0; bottom: .6rem; text-align: center; font-size: .75rem; color: #8a93a3; z-index: 1; pointer-events: none; }
.sig-pad.has-ink .sig-pad-hint { visibility: hidden; }
.sig-pad.is-invalid { border-color: var(--bs-form-invalid-border-color); box-shadow: 0 0 0 .2rem rgba(var(--bs-danger-rgb), .2); }
.sig-pad-wrap .invalid-feedback { display: block; }
.legal-doc .doc-signature-drawn { padding: 0; min-height: 3.2rem; display: flex; align-items: flex-end; }
.legal-doc .doc-signature-drawn img { display: block; max-height: 4.6rem; max-width: 100%; margin-bottom: -.35rem; }
.decision-signature-img { display: block; max-height: 3.5rem; max-width: 16rem; margin-bottom: -.4rem; }

/* fill-in version of the warrant document (new / edit request) */
.legal-doc.is-form { overflow: visible; }
.legal-doc.is-form .doc-p { text-align: left; }
.legal-doc .doc-muted { color: #6b7280; font-style: italic; }
.legal-doc .doc-input { font: inherit; color: #0d1b3e; background: #fff8dc; border: 0; border-bottom: 1px dotted #6c7a96; border-radius: 0; padding: 0 .3rem; line-height: 1.5; }
.legal-doc .doc-input:focus { outline: 2px solid rgba(29, 79, 156, .35); outline-offset: 1px; background: #fff3c4; }
.legal-doc .doc-input::placeholder { color: #9aa1ad; font-style: italic; }
.legal-doc .doc-input.is-invalid { border-bottom: 2px solid var(--bs-danger); }
.legal-doc .doc-input-md { width: 14rem; max-width: 100%; }
.legal-doc .doc-input-date { width: 13.5rem; }
.legal-doc .doc-select { max-width: calc(100% - 2rem); }
.legal-doc .doc-inline-picker { display: inline-block; width: 15rem; max-width: 100%; vertical-align: baseline; text-align: left; }
.legal-doc .doc-inline-picker .picker, .legal-doc .doc-inline-picker .invalid-feedback { display: inline-block; width: 100%; }
.legal-doc .doc-inline-picker .form-control { font: inherit; color: #0d1b3e; background: #fff8dc; border: 0; border-bottom: 1px dotted #6c7a96; border-radius: 0; padding: 0 .3rem; height: auto; box-shadow: none; }
.legal-doc .doc-inline-picker .picker-menu { font-family: var(--bs-body-font-family); color: var(--bs-body-color); }
.legal-doc .doc-offences-form { min-height: 0; padding: .75rem 0 .25rem 3rem; }
.legal-doc .doc-offences-form li, .legal-doc .doc-lines-form li { display: flex; align-items: center; gap: .35rem; }
.legal-doc .doc-lines-form li { padding: .15rem .1rem; }
.legal-doc .doc-lines-form .doc-input { background: transparent; border-bottom: 0; }
.legal-doc .doc-lines-form .doc-input:focus { background: #fff3c4; }
.legal-doc .doc-remove { border: 0; background: none; color: #9aa1ad; font-size: 1.1rem; line-height: 1; padding: 0 .25rem; }
.legal-doc .doc-remove:hover { color: var(--bs-danger); }
.legal-doc .doc-add-line { margin: -.25rem 0 1.25rem 3rem; }
.legal-doc .doc-add { border: 0; background: none; padding: 0; color: #1d4f9c; font: .8rem var(--bs-body-font-family); }
.legal-doc .doc-field-form { padding: .5rem .75rem; }
.legal-doc .doc-subjects { display: flex; flex-wrap: wrap; gap: .4rem; justify-content: center; align-items: baseline; margin-top: .5rem; text-align: left; }
.legal-doc .doc-check { cursor: pointer; }
.legal-doc .doc-check input { position: absolute; opacity: 0; pointer-events: none; }
.legal-doc .doc-check .doc-box { color: transparent; background: #fff8dc; border: 1px dotted #6c7a96; }
.legal-doc .doc-check input:checked + .doc-box { color: inherit; background: #9bd49b; border: 1px solid #3c8c3c; }
.legal-doc .doc-check input:focus-visible + .doc-box { outline: 2px solid rgba(29, 79, 156, .5); }
.legal-doc .doc-check-clear { font: .75rem var(--bs-body-font-family); color: #6b7280; margin-left: .35rem; white-space: nowrap; }
.legal-doc .doc-signature-pending { font: italic .85rem 'Tinos', 'Times New Roman', serif; color: #9aa1ad; display: flex; align-items: flex-end; padding-bottom: .2rem; }

/* document verification block + public verify page */
.doc-verify-block { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-top: .75rem; }
.doc-verify-block .doc-qr img { display: block; image-rendering: pixelated; }
.doc-verify-block .doc-qr-caption { font: .62rem var(--bs-body-font-family); color: #666; text-align: center; margin-top: .1rem; }
.verify-card { max-width: 720px; }
.verify-result { display: flex; gap: .9rem; align-items: center; padding: 1rem 1.1rem; border-radius: .6rem; border: 1px solid; }
.verify-result > i { font-size: 2rem; }
.verify-result .verify-title { font-weight: 800; letter-spacing: .04em; font-size: 1.15rem; }
.verify-success { background: rgba(25, 135, 84, .08); border-color: rgba(25, 135, 84, .45); color: #146c43; }
.verify-danger, .verify-bad { background: rgba(220, 53, 69, .08); border-color: rgba(220, 53, 69, .45); color: #b02a37; }
.verify-warning { background: rgba(255, 193, 7, .12); border-color: rgba(204, 154, 6, .5); color: #8a6300; }
.verify-secondary { background: rgba(108, 117, 125, .08); border-color: rgba(108, 117, 125, .4); color: var(--bs-secondary-color); }

/* active warrant banner (person record) */
.wanted-banner { background: linear-gradient(90deg, #8f1d28, #b02a37); color: #fff; border-radius: .6rem; padding: .75rem 1rem; margin-bottom: 1rem; box-shadow: 0 2px 10px rgba(176, 42, 55, .3); }
.wanted-banner .wanted-title { font-weight: 800; letter-spacing: .08em; }
.wanted-banner .wanted-list { margin: .35rem 0 0; padding-left: 1.4rem; }
.wanted-banner a { color: #fff; }

/* warrant return page */
.legal-doc-return .doc-grid { width: 100%; margin-bottom: .5rem; }
.legal-doc-return .doc-grid th { font-weight: 400; width: 45%; padding: .25rem 0; vertical-align: bottom; }
.legal-doc-return .doc-grid td { border-bottom: 1px solid #444; padding: .25rem .25rem; }
.legal-doc .doc-subtitle { font: 700 .95rem 'Tinos', 'Times New Roman', serif; text-align: center; letter-spacing: .05em; margin: 1.5rem 0 .6rem; color: inherit; }
.legal-doc .doc-sign-row { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; margin-top: 2rem; }
.legal-doc .doc-sign-row .doc-signature { width: 100%; }
.legal-doc .doc-log { font: .72rem var(--bs-body-font-family); color: #6b7280; white-space: nowrap; display: inline-flex; gap: .2rem; align-items: center; }
.legal-doc .doc-evidence-ref { font-size: .75rem; }
@media (max-width: 767.98px) { .legal-doc .doc-sign-row { grid-template-columns: 1fr; } }

/* court order / judgment document */
.legal-doc-order .doc-caption { width: 100%; margin: -.25rem 0 1rem; border-bottom: 1px solid #555; }
.legal-doc-order .doc-caption td { padding: .35rem 0; vertical-align: top; }
.legal-doc-order .doc-caption-no { text-align: right; white-space: nowrap; padding-left: 1rem; }
.legal-doc .doc-outcome { text-align: center; font-size: 1.05rem; margin: 1rem 0; }
.legal-doc .doc-body { margin-bottom: .9rem; text-align: justify; }
.legal-doc .doc-body p { margin-bottom: .6rem; }
.legal-doc .doc-terms { margin: 0 0 .9rem 1.25rem; padding: 0; }
.legal-doc .doc-terms li { margin-bottom: .3rem; }

/* licence certificate */
.licence-cert { padding: 1.5rem; }
.licence-cert .cert-frame { border: 3px double #8a6d12; outline: 1px solid #c9a227; outline-offset: -9px; padding: 2rem 2.5rem 1.25rem; text-align: center; position: relative; }
.licence-cert .cert-seal { width: 64px; height: 64px; margin: 0 auto .5rem; border-radius: 50%; background: radial-gradient(circle at 30% 30%, #e7c75a, #c9a227 60%, #8a6d12); color: #14284b; display: grid; place-items: center; font-size: 1.8rem; box-shadow: inset 0 0 0 3px rgba(20, 40, 75, .35); -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.licence-cert .cert-org { font-size: .8rem; letter-spacing: .12em; color: #555; }
.licence-cert .cert-title { font: 700 1.6rem 'Tinos', 'Times New Roman', serif; letter-spacing: .06em; margin: .5rem 0 1rem; color: #14284b; }
.licence-cert .cert-lead { text-align: center; margin: 0 0 .4rem; font-style: italic; }
.licence-cert .cert-holder { font-family: 'Great Vibes', cursive; font-size: 2.6rem; line-height: 1.2; margin: .2rem 0 .6rem; color: #14284b; }
.licence-cert .cert-grid { width: 100%; margin: 1rem 0; text-align: left; font-size: .9rem; }
.licence-cert .cert-grid th { font-weight: 700; padding: .3rem .5rem .3rem 0; white-space: nowrap; width: 1%; }
.licence-cert .cert-grid td { border-bottom: 1px dotted #888; padding: .3rem .5rem; }
.licence-cert .cert-foot { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; margin-top: 1.25rem; text-align: left; }
.licence-cert .cert-sign .doc-signature { width: 16rem; }

/* citation ticket */
.ticket-wrap { margin-bottom: 1rem; }
.citation-ticket { position: relative; overflow: hidden; max-width: 560px; background: #fffef6; color: #111; border: 1px solid #d6d0b8; border-top: 10px solid #14284b; border-radius: .25rem; padding: 1rem 1.25rem; font-family: var(--bs-font-monospace); font-size: .82rem; box-shadow: 0 2px 10px rgba(16, 24, 40, .08); -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.citation-ticket .ticket-head { display: flex; justify-content: space-between; align-items: flex-start; border-bottom: 2px dashed #9a937a; padding-bottom: .5rem; margin-bottom: .6rem; }
.citation-ticket .ticket-org { font-weight: 800; letter-spacing: .12em; }
.citation-ticket .ticket-kind { font-size: 1.05rem; font-weight: 800; color: #b02a37; }
.citation-ticket .ticket-no { text-align: right; font-size: 1rem; font-weight: 800; }
.citation-ticket .ticket-no span { display: block; font-size: .65rem; font-weight: 400; color: #666; }
.citation-ticket .ticket-grid { width: 100%; }
.citation-ticket .ticket-grid th { font-weight: 400; color: #666; text-transform: uppercase; font-size: .65rem; padding: .25rem .5rem .25rem 0; white-space: nowrap; vertical-align: top; }
.citation-ticket .ticket-grid td { padding: .25rem .5rem .25rem 0; vertical-align: top; }
.citation-ticket .ticket-amount { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; margin: .6rem 0; padding: .5rem; background: #f1ecd8; border-radius: .25rem; text-align: center; }
.citation-ticket .ticket-amount span { display: block; font-size: .62rem; text-transform: uppercase; color: #666; }
.citation-ticket .ticket-amount strong { font-size: 1rem; }
.citation-ticket .ticket-foot { display: flex; justify-content: space-between; align-items: flex-end; gap: .75rem; border-top: 2px dashed #9a937a; padding-top: .5rem; }
.citation-ticket .ticket-officer img { display: block; max-height: 2.6rem; max-width: 12rem; margin-bottom: -.3rem; }
.citation-ticket .ticket-sigline { border-top: 1px solid #333; padding-top: .15rem; font-size: .7rem; display: inline-block; min-width: 14rem; }
.citation-ticket .ticket-help { font-size: .66rem; color: #555; margin: .35rem 0 0; font-family: var(--bs-body-font-family); }
.citation-ticket .doc-stamp { position: absolute; top: 45%; left: 50%; transform: translate(-50%, -50%) rotate(-18deg); font: 700 3rem/1 'Tinos', serif; text-transform: uppercase; padding: .1rem .8rem; border: .3rem double currentColor; border-radius: .5rem; opacity: .2; pointer-events: none; }
.citation-ticket .doc-stamp-done { color: #1d6b3a; }
.citation-ticket .doc-stamp-void { color: #b02a37; }
.citation-ticket .doc-qr img { display: block; image-rendering: pixelated; }
.citation-ticket .doc-qr-caption { font: .62rem var(--bs-body-font-family); color: #666; text-align: center; }

/* courtroom docket screen */
body.screen { background: #0b1526; color: #e8edf6; min-height: 100vh; }
body.screen-transparent { background: transparent; }
.docket { padding: 2.5vh 3vw; font-size: clamp(16px, 1.6vw, 34px); }
.docket-head { display: flex; justify-content: space-between; align-items: center; border-bottom: 3px solid #c9a227; padding-bottom: 1.5vh; margin-bottom: 2vh; }
.docket-brand { display: flex; align-items: center; gap: 1.2vw; }
.docket-brand .brand-seal { width: 3.2em; height: 3.2em; font-size: 1em; }
.docket-org { font-size: .6em; letter-spacing: .15em; color: #c9a227; }
.docket h1 { font-size: 1.8em; margin: 0; font-weight: 800; }
.docket-clock { text-align: right; }
.docket-date { font-size: .7em; color: #9fb0cc; }
.docket-time-now { font-size: 2.2em; font-weight: 800; font-variant-numeric: tabular-nums; line-height: 1; }
.docket-table { width: 100%; border-collapse: separate; border-spacing: 0 .4em; }
.docket-table th { font-size: .55em; letter-spacing: .12em; text-transform: uppercase; color: #9fb0cc; padding: 0 .6em; font-weight: 600; }
.docket-table td { background: rgba(255, 255, 255, .05); padding: .55em .6em; vertical-align: middle; }
.docket-table td:first-child { border-radius: .4em 0 0 .4em; }
.docket-table td:last-child { border-radius: 0 .4em .4em 0; }
.docket-time { font-weight: 800; font-variant-numeric: tabular-nums; width: 1%; white-space: nowrap; }
.docket-case { font-weight: 700; }
.docket-sub { font-size: .6em; color: #9fb0cc; }
.docket-state { font-size: .55em; font-weight: 800; letter-spacing: .1em; padding: .35em .7em; border-radius: 2em; background: rgba(255, 255, 255, .1); white-space: nowrap; }
.docket-live td { background: rgba(176, 42, 55, .35); }
.docket-live .docket-state { background: #dc3545; color: #fff; animation: docket-pulse 1.6s infinite; }
.docket-next td { background: rgba(201, 162, 39, .22); }
.docket-next .docket-state { background: #c9a227; color: #14284b; }
.docket-done { opacity: .5; }
.docket-empty { font-size: 1.4em; color: #9fb0cc; padding: 4vh 0 2vh; }
.docket-upcoming-title { font-size: .7em; letter-spacing: .15em; text-transform: uppercase; color: #c9a227; margin-top: 2vh; }
.docket-foot { margin-top: 3vh; font-size: .5em; color: #6f82a3; }
@keyframes docket-pulse { 50% { opacity: .55; } }
@media (prefers-reduced-motion: reduce) { .docket-live .docket-state { animation: none; } }

/* documentation pages (/docs/api) */
.docs-layout { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 2rem; align-items: start; }
.docs-toc { position: sticky; top: 1rem; max-height: calc(100vh - 2rem); overflow-y: auto; font-size: .85rem; border-right: 1px solid var(--bs-border-color); padding-right: 1rem; }
.docs-toc-title { font-weight: 700; text-transform: uppercase; letter-spacing: .08em; font-size: .7rem; color: var(--bs-secondary-color); margin-bottom: .5rem; }
.docs-toc ul { list-style: none; padding: 0; margin: 0; }
.docs-toc li { margin: .15rem 0; }
.docs-toc .docs-toc-l3 { padding-left: .9rem; font-size: .8rem; }
.docs-toc a { text-decoration: none; color: var(--bs-body-color); }
.docs-toc a:hover { color: var(--bs-link-color); text-decoration: underline; }
.docs-body { max-width: 900px; line-height: 1.6; }
.docs-body h1 { font-size: 1.9rem; margin-bottom: 1rem; }
.docs-body h2 { font-size: 1.45rem; margin-top: 2.5rem; padding-top: .75rem; border-top: 1px solid var(--bs-border-color); scroll-margin-top: 1rem; }
.docs-body h3 { font-size: 1.15rem; margin-top: 1.75rem; scroll-margin-top: 1rem; }
.docs-body h4 { font-size: 1rem; margin-top: 1.75rem; scroll-margin-top: 1rem; }
.docs-body h4 code { font-size: 1rem; background: rgba(29, 79, 156, .08); color: var(--bs-body-color); padding: .15rem .45rem; border-radius: .3rem; }
.docs-body code { font-size: .85em; }
.docs-body .md-code { background: #0f1b2d; color: #e6edf7; border-radius: .5rem; padding: .9rem 1rem; font-size: .8rem; overflow-x: auto; }
.docs-body .md-code code { color: inherit; font-size: inherit; }
.docs-body .md-table { overflow-x: auto; margin-bottom: 1rem; }
.docs-body table { width: 100%; border-collapse: collapse; font-size: .88rem; }
.docs-body th, .docs-body td { border: 1px solid var(--bs-border-color); padding: .4rem .6rem; vertical-align: top; }
.docs-body th { background: var(--bs-tertiary-bg); text-align: left; }
.docs-body blockquote { border-left: 4px solid #c9a227; background: rgba(201, 162, 39, .08); padding: .6rem .9rem; border-radius: 0 .4rem .4rem 0; }
.docs-body hr { display: none; } /* sections are already separated by the h2 rule */
@media (max-width: 991.98px) {
    .docs-layout { grid-template-columns: 1fr; }
    .docs-toc { position: static; max-height: none; border-right: 0; border-bottom: 1px solid var(--bs-border-color); padding: 0 0 1rem; }
}

/* DOJ roster */
.roster-code { font: 700 .72rem var(--bs-font-monospace); letter-spacing: .06em; background: var(--sl-navy, #14284b); color: #fff; padding: .15rem .45rem; border-radius: .3rem; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.roster-table th { font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: var(--bs-secondary-color); font-weight: 600; }
.roster-table { table-layout: fixed; min-width: 640px; }
.roster-table th:nth-child(1) { width: 24%; } .roster-table th:nth-child(2) { width: 26%; } .roster-table th:nth-child(3) { width: 14%; }
.roster-table th:nth-child(4) { width: 14%; } .roster-table th:nth-child(5) { width: 11%; } .roster-table th:nth-child(6) { width: 11%; }
.roster-table td { overflow-wrap: anywhere; }
.roster-command td { background: rgba(201, 162, 39, .08); }

/* free-text pickers (type a name; optionally link a record) */
.picker-hint { padding: .35rem .7rem; font-size: .72rem; color: var(--sl-muted); border-bottom: 1px solid var(--sl-border); font-family: var(--bs-body-font-family); }
.picker.is-linked .form-control { padding-right: 1.6rem; background-image: none; }
.picker[data-freetext].is-linked::after { content: "\2713 linked"; position: absolute; right: .3rem; top: 50%; transform: translateY(-50%); font: 600 .62rem var(--bs-body-font-family); color: #146c43; background: #d1e7dd; padding: .05rem .3rem; border-radius: .25rem; pointer-events: none; }
.legal-doc .doc-inline-picker-wide { width: 19rem; }

/* suggest a change: floating button + screenshot annotation editor */
.suggest-fab { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 1040; display: inline-flex; align-items: center; gap: .45rem; border: 0; border-radius: 2rem; padding: .55rem 1rem; background: #c9a227; color: #14284b; font-weight: 700; font-size: .85rem; box-shadow: 0 4px 14px rgba(0, 0, 0, .25); }
.suggest-fab:hover { background: #d8b23a; }
.suggest-fab:focus-visible { outline: 3px solid #14284b; outline-offset: 2px; }
.suggest-fab.is-busy { opacity: .7; cursor: progress; }
.suggest-fab.is-busy i { animation: suggest-pulse 1s infinite; }
@keyframes suggest-pulse { 50% { opacity: .3; } }
@media (max-width: 575.98px) { .suggest-fab span { display: none; } .suggest-fab { padding: .7rem .8rem; } }
body.suggest-open { overflow: hidden; }
.suggest-overlay { position: fixed; inset: 0; z-index: 2000; display: grid; grid-template-columns: minmax(0, 1fr) 340px; background: rgba(8, 14, 26, .94); color: #e8edf6; }
.suggest-stage { display: flex; flex-direction: column; min-width: 0; min-height: 0; padding: 1rem; gap: .75rem; }
.suggest-tools { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; }
.suggest-swatches { display: inline-flex; gap: .3rem; }
.suggest-swatches button { width: 1.6rem; height: 1.6rem; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .35); }
.suggest-swatches button.active { border-color: #fff; box-shadow: 0 0 0 2px rgba(255, 255, 255, .4); }
.suggest-hint, .suggest-muted { color: #9fb0cc; }
.suggest-hint { font-size: .8rem; }
.suggest-canvas-wrap { flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; }
.suggest-canvas-wrap canvas { max-width: 100%; max-height: 100%; cursor: crosshair; touch-action: none; border-radius: .4rem; box-shadow: 0 6px 30px rgba(0, 0, 0, .5); background: #fff; }
.suggest-noshot { margin: auto; text-align: center; color: #9fb0cc; max-width: 22rem; }
.suggest-noshot i { font-size: 2.5rem; }
.suggest-panel { background: #121d33; padding: 1.25rem; overflow-y: auto; border-left: 1px solid rgba(255, 255, 255, .08); }
.suggest-panel .form-control, .suggest-panel .form-select { background-color: #0b1526; color: #e8edf6; border-color: #2a3a5c; }
.suggest-panel .form-control::placeholder { color: #6f82a3; }
.suggest-error { color: #ffb3b8; background: rgba(229, 56, 59, .15); border: 1px solid rgba(229, 56, 59, .4); border-radius: .35rem; padding: .4rem .6rem; }
@media (max-width: 767.98px) { .suggest-overlay { grid-template-columns: 1fr; grid-template-rows: minmax(0, 1fr) auto; } .suggest-panel { border-left: 0; max-height: 55vh; } }

.suggest-thumb { width: 120px; max-height: 70px; object-fit: cover; object-position: top; border: 1px solid var(--bs-border-color); border-radius: .3rem; }

/* suggestion conversations */
.suggest-thread .chat { display: flex; flex-direction: column; gap: .75rem; max-height: 60vh; overflow-y: auto; }
.chat-msg { max-width: 85%; }
.chat-mine { align-self: flex-end; text-align: right; }
.chat-theirs { align-self: flex-start; }
.chat-meta { font-size: .72rem; color: var(--bs-secondary-color); margin-bottom: .15rem; }
.chat-bubble { display: inline-block; text-align: left; padding: .5rem .75rem; border-radius: .9rem; background: var(--bs-tertiary-bg); border: 1px solid var(--bs-border-color); white-space: normal; overflow-wrap: anywhere; }
.chat-mine .chat-bubble { background: #14284b; color: #fff; border-color: #14284b; border-bottom-right-radius: .25rem; }
.chat-theirs .chat-bubble { border-bottom-left-radius: .25rem; }

/* suggestion status badges (Planka labels, or the list name) */
.suggest-status { background: #e9ecef; color: #343a40; border: 1px solid #ced4da; font-weight: 600; }
.suggest-status-in-progress { background: #cfe2ff; color: #084298; border-color: #9ec5fe; }
.suggest-status-need-more-info { background: #fff3cd; color: #664d03; border-color: #ffe69c; }
.suggest-status-complete { background: #d1e7dd; color: #0f5132; border-color: #a3cfbb; }
.suggest-status-won-t-do, .suggest-status-archived, .suggest-status-removed { background: #e2e3e5; color: #41464b; border-color: #c4c8cb; }

@media print {
    .sidebar, .topbar, .seed-banner, .actions, .btn, form, .no-print, .suggest-fab, .breadcrumb, .alert { display: none !important; }
    .row > .col-lg-8:has(.legal-doc), .row > .col-xl-8:has(.legal-doc) { width: 100%; }
    .legal-doc { border: 0; box-shadow: none; max-width: none; margin: 0; padding: 0 .25in; }
    .legal-doc + .legal-doc, #return .legal-doc { break-before: page; }
    .content { padding: 0; }
}

/* Personnel record: an ID-card style header and easy-to-scan label / value rows */
.personnel-card { --pr-bg: #0f1f3a; --pr-fg: #e8eef8; --pr-muted: #a9b9d3; --pr-line: rgba(255,255,255,.1); background: linear-gradient(180deg, #13284a, var(--pr-bg) 220px); color: var(--pr-fg); border-radius: .75rem; overflow: hidden; border: 1px solid #22385f; }
.pr-head { padding: 1.4rem 1.5rem 1.2rem; border-bottom: 1px solid var(--pr-line); }
.pr-eyebrow { font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; color: #8fb3e8; font-weight: 700; margin-bottom: .9rem; }
.pr-identity { display: flex; align-items: center; gap: 1rem; }
.pr-insignia { width: 72px; height: 72px; flex-shrink: 0; border-radius: .6rem; background: #0a1628; border: 1px solid var(--pr-line); display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--sl-gold); }
.pr-insignia .bi { font-size: 1.8rem; line-height: 1; }
.pr-insignia span { font-size: .7rem; font-weight: 800; letter-spacing: .06em; margin-top: .2rem; }
.pr-name { font-size: 1.7rem; font-weight: 700; margin: 0; color: #fff; line-height: 1.15; }
.pr-rank { color: var(--sl-gold); font-weight: 600; font-size: 1rem; margin-top: .15rem; }
.pr-sub { color: var(--pr-muted); margin-top: .7rem; font-size: .95rem; }
.pr-tags { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .6rem; }
.pr-badge-discord { background: #5865f2; color: #fff; }
.pr-body { padding: .4rem 1.5rem 1.4rem; }
.pr-group { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: #8fb3e8; font-weight: 700; margin: 1.3rem 0 .2rem; display: flex; gap: .4rem; align-items: center; }
.pr-list { margin: 0; }
.pr-row { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid var(--pr-line); font-size: 1rem; }
.pr-row:last-child { border-bottom: 0; }
.pr-row dt { color: var(--pr-muted); font-weight: 400; }
.pr-row dd { margin: 0; text-align: right; color: #fff; font-weight: 500; overflow-wrap: anywhere; }
.pr-hint { font-size: .78rem; color: var(--pr-muted); font-weight: 400; }
.pr-none { color: var(--pr-muted); font-style: italic; font-weight: 400; }
.pr-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; margin-top: .5rem; }
.pr-tile { display: block; text-decoration: none; border: 1px solid var(--pr-line); border-radius: .6rem; padding: .8rem 1rem; color: var(--pr-muted); background: rgba(0,0,0,.15); }
.pr-tile strong { display: block; font-size: 2rem; color: #fff; line-height: 1.1; margin-top: .3rem; }
.pr-tile.is-strike { border-color: #c0392b; } .pr-tile.is-strike strong { color: #ff7b6e; }
.pr-tile.is-warning { border-color: var(--sl-gold); } .pr-tile.is-warning strong { color: #f1cf63; }
.pr-tile:hover { color: #fff; }
.pr-chars { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .5rem; }
.pr-char { text-decoration: none; color: #fff; border: 1px solid var(--pr-line); border-radius: 2rem; padding: .3rem .8rem; font-size: .9rem; }
.pr-char .mono { color: var(--pr-muted); font-size: .78rem; }
.pr-char.active { border-color: var(--sl-gold); }
.pr-char em { color: var(--sl-gold); font-style: normal; font-size: .75rem; }
@media (max-width: 575.98px) { .pr-head, .pr-body { padding-left: 1rem; padding-right: 1rem; } .pr-name { font-size: 1.45rem; } .pr-insignia { width: 60px; height: 60px; } }
@media print { .personnel-card { background: #fff; color: #000; border-color: #999; } .pr-name, .pr-row dd, .pr-tile strong, .pr-char { color: #000; } }

/* =====================================================================
   2026-10 visual refresh: one calmer system across every page.
   Type: IBM Plex Sans / Mono. Quiet neutrals, navy for action, gold only as an accent.
   ===================================================================== */
:root {
    --bs-body-font-family: "IBM Plex Sans", "Segoe UI", system-ui, -apple-system, sans-serif;
    --bs-body-font-size: .9375rem;
    --bs-body-line-height: 1.55;
    --bs-body-color: #1b2433;
    --bs-emphasis-color: #0f1726;
    --bs-border-radius: .5rem;
    --bs-border-radius-sm: .375rem;
    --bs-border-radius-lg: .75rem;
    --sl-page: #f4f6f9;
    --sl-border: #e1e6ee;
    --sl-border-strong: #cdd5e1;
    --sl-muted: #5d6779;
    --sl-ink-soft: #3a4558;
    --sl-gold-ink: #8a6a00;
    --sl-focus: rgba(29, 55, 102, .25);
    --sl-shadow: 0 1px 2px rgba(16, 24, 40, .05), 0 1px 3px rgba(16, 24, 40, .04);
    --sl-mono: "IBM Plex Mono", ui-monospace, Consolas, monospace;
}
[data-bs-theme="dark"] {
    --sl-page: #0e1420;
    --sl-surface: #161d2b;
    --bs-body-color: #dbe3f0;
    --bs-emphasis-color: #f3f6fb;
    --sl-border: #263248;
    --sl-border-strong: #33415b;
    --sl-muted: #9aa7bd;
    --sl-ink-soft: #c2cde0;
    --sl-gold-ink: #e2bf4a;
    --sl-focus: rgba(143, 180, 245, .3);
    --sl-shadow: none;
}
body { -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, h5, h6 { letter-spacing: -.01em; }

/* links: underline only where it helps */
a { text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 2px; }
.btn:hover, .nav-link:hover, .list-group-item:hover, .stat-card:hover, .dropdown-item:hover, .page-link:hover { text-decoration: none; }
.mono, .record-number, code, kbd { font-family: var(--sl-mono); }
.record-number { font-weight: 500; letter-spacing: 0; color: var(--bs-emphasis-color); white-space: nowrap; }
a .record-number, a.record-number { color: var(--bs-link-color); }

/* page header */
.page-header { margin-bottom: 1.5rem; align-items: center; }
.page-header h1 { font-size: 1.6rem; font-weight: 600; line-height: 1.2; }
.page-header .eyebrow { font-size: .75rem; letter-spacing: .06em; color: var(--sl-gold-ink); font-weight: 600; margin-bottom: .2rem; }
.breadcrumb { font-size: .85rem; margin-bottom: .75rem; }
.breadcrumb a { color: var(--sl-muted); }

/* cards */
.card { border-radius: .75rem; border-color: var(--sl-border); box-shadow: var(--sl-shadow); }
.card-header { padding: .85rem 1.15rem; font-size: .95rem; font-weight: 600; color: var(--bs-emphasis-color); border-bottom-color: var(--sl-border); }
.card-header:first-child { border-radius: .75rem .75rem 0 0; }
.card-header > .bi:first-child { color: var(--sl-muted); }
.card-body { padding: 1.15rem; }
.card-header a.ms-auto, .card-header .ms-auto > a { font-weight: 500; font-size: .85rem; }

/* small labels: readable, not shouty */
.section-title, .stat-card .stat-label, .table thead th, .restricted-label, .nav-section { text-transform: none; letter-spacing: 0; }
.section-title { font-size: .8rem; font-weight: 600; color: var(--sl-muted); }
dl.meta { gap: .55rem 1rem; }
dl.meta dt { font-size: .85rem; font-weight: 400; color: var(--sl-muted); }
dl.meta dd { color: var(--bs-emphasis-color); }

/* badges: calm tinted pills, sentence case */
.badge { font-weight: 600; border-radius: 1rem; }
.status-badge { font-size: .75rem; letter-spacing: 0; padding: .3em .7em; text-transform: lowercase; display: inline-block; }
.status-badge::first-letter { text-transform: uppercase; }
.status-badge.text-bg-success { background: #e3f4ea !important; color: #145a32 !important; }
.status-badge.text-bg-info { background: #e3eefc !important; color: #1a4a8a !important; }
.status-badge.text-bg-warning { background: #fdf1d6 !important; color: #7a5300 !important; }
.status-badge.text-bg-danger { background: #fbe4e2 !important; color: #9b1c1c !important; }
.status-badge.text-bg-secondary { background: #eceff3 !important; color: #475166 !important; }
.status-badge.text-bg-dark { background: #2a3142 !important; color: #fff !important; }
.status-badge.text-bg-light { background: #fff !important; color: var(--sl-ink-soft) !important; border: 1px solid var(--sl-border-strong); }
[data-bs-theme="dark"] .status-badge.text-bg-success { background: rgba(46, 160, 90, .18) !important; color: #7fd9a2 !important; }
[data-bs-theme="dark"] .status-badge.text-bg-info { background: rgba(80, 140, 230, .18) !important; color: #9fc3f7 !important; }
[data-bs-theme="dark"] .status-badge.text-bg-warning { background: rgba(224, 168, 0, .16) !important; color: #f1cf63 !important; }
[data-bs-theme="dark"] .status-badge.text-bg-danger { background: rgba(220, 70, 60, .18) !important; color: #ff9e95 !important; }
[data-bs-theme="dark"] .status-badge.text-bg-secondary { background: rgba(255, 255, 255, .08) !important; color: #c2cde0 !important; }
[data-bs-theme="dark"] .status-badge.text-bg-light { background: transparent !important; color: #c2cde0 !important; }

/* buttons: one primary, neutral secondaries, red only for destructive */
.btn { font-weight: 500; border-radius: .5rem; display: inline-flex; align-items: center; justify-content: center; gap: .4rem; }
.btn-sm { padding: .35rem .75rem; font-size: .85rem; }
.btn-outline-primary, .btn-outline-secondary, .btn-light, .btn-outline-info, .btn-outline-dark, .btn-outline-success {
    --bs-btn-color: var(--sl-ink-soft); --bs-btn-bg: var(--sl-surface); --bs-btn-border-color: var(--sl-border-strong);
    --bs-btn-hover-color: var(--bs-emphasis-color); --bs-btn-hover-bg: var(--sl-page); --bs-btn-hover-border-color: #b5c0d0;
    --bs-btn-active-color: var(--bs-emphasis-color); --bs-btn-active-bg: #e9edf3; --bs-btn-active-border-color: #b5c0d0;
    box-shadow: 0 1px 1px rgba(16, 24, 40, .04);
}
.btn-outline-danger { --bs-btn-bg: var(--sl-surface); --bs-btn-border-color: #e9b8b3; --bs-btn-color: #a52a1f; --bs-btn-hover-bg: #fbe4e2; --bs-btn-hover-color: #8b1d14; --bs-btn-hover-border-color: #d9958d; }
.btn-outline-primary .bi, .btn-outline-secondary .bi { color: var(--sl-muted); }
.btn-link { text-decoration: none; }
.btn:focus-visible, .form-control:focus, .form-select:focus, .form-check-input:focus { box-shadow: 0 0 0 .2rem var(--sl-focus); }
[data-bs-theme="dark"] .btn-outline-primary, [data-bs-theme="dark"] .btn-outline-secondary, [data-bs-theme="dark"] .btn-light { --bs-btn-hover-bg: rgba(255, 255, 255, .06); --bs-btn-active-bg: rgba(255, 255, 255, .1); --bs-btn-hover-border-color: var(--sl-border-strong); }

/* forms */
.form-label { font-size: .85rem; font-weight: 500; color: var(--sl-ink-soft); margin-bottom: .3rem; }
.form-control, .form-select { border-color: var(--sl-border-strong); border-radius: .5rem; font-size: .9375rem; padding: .45rem .75rem; }
.form-select { padding-right: 2.25rem; }
.form-select-sm { padding-right: 2rem !important; }
.form-control-sm, .form-select-sm { font-size: .85rem; padding: .3rem .6rem; }
.form-control:focus, .form-select:focus { border-color: var(--sl-navy-2); }
.form-text { font-size: .8rem; color: var(--sl-muted); }
.form-check-input:checked { background-color: var(--sl-navy-2); border-color: var(--sl-navy-2); }
.required::after { color: #b42318; }

/* tables */
.table { --bs-table-border-color: var(--sl-border); }
.table > :not(caption) > * > * { padding: .7rem .9rem; vertical-align: middle; }
.table thead th { font-size: .8rem; font-weight: 600; color: var(--sl-muted); background: var(--sl-page); border-bottom: 1px solid var(--sl-border); }
.table thead th:first-child { border-top-left-radius: .5rem; }
.table tbody tr:last-child > * { border-bottom: 0; }
.table td a:not(.btn) { font-weight: 500; }
.table-sm > :not(caption) > * > * { padding: .45rem .75rem; }
.sort-link { color: inherit; }
.list-toolbar { padding: .9rem 1rem; gap: .6rem; background: var(--sl-surface); border-radius: .75rem .75rem 0 0; align-items: center; }
.list-toolbar .form-control, .list-toolbar .form-select { font-size: .875rem; height: 2.25rem; padding-top: .3rem; padding-bottom: .3rem; }
.list-toolbar .form-select { padding-right: 2.25rem; }
.list-toolbar .form-select, .list-toolbar input[type=date] { width: auto; flex: 0 1 auto; }
.list-toolbar .btn { height: 2.25rem; }
.list-toolbar .form-check { margin: 0; display: flex; align-items: center; gap: .35rem; font-size: .875rem; }
.list-footer { padding: .75rem 1rem; }
.empty-state { padding: 3rem 1rem; }

/* list groups */
.list-group-item { padding: .8rem 1.15rem; border-color: var(--sl-border); }
.list-group-item-action:hover { background: var(--sl-page); }

/* tabs */
.record-tabs { gap: .5rem; margin-bottom: 1.25rem; }
.record-tabs .nav-link { font-size: .9rem; font-weight: 500; padding: .6rem .5rem; margin-bottom: -1px; }
.record-tabs .nav-link:hover { color: var(--bs-emphasis-color); }
.record-tabs .nav-link.active { font-weight: 600; border-bottom-width: 2px; border-bottom-color: var(--sl-navy-2); }
[data-bs-theme="dark"] .record-tabs .nav-link.active { border-bottom-color: var(--sl-gold); }
.record-tabs .count { font-size: .75rem; color: var(--sl-muted); }

/* alerts */
.alert { border-radius: .65rem; border-width: 1px; font-size: .9rem; }

/* restricted panel: a tinted card, not a stripe */
.restricted-panel { border-left: 1px solid #f0c6c1; border-color: #f0c6c1; background: #fdf6f5; }
.restricted-label { font-size: .8rem; font-weight: 600; }
[data-bs-theme="dark"] .restricted-panel { background: rgba(176, 42, 55, .08); border-color: rgba(176, 42, 55, .35); }

/* dashboard stat tiles: icon chip + number, zero values recede */
.stat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: .75rem; margin-bottom: 1.75rem; }
.stat-card { display: flex; align-items: center; gap: .85rem; padding: .9rem 1rem; border-radius: .75rem; box-shadow: var(--sl-shadow); }
.stat-card::before { display: none; }
.stat-card:hover { transform: none; border-color: var(--sl-border-strong); box-shadow: 0 4px 12px rgba(16, 24, 40, .07); }
.stat-card .stat-icon { position: static; opacity: 1; flex-shrink: 0; width: 2.5rem; height: 2.5rem; border-radius: .6rem; display: grid; place-items: center; font-size: 1.1rem; background: #e8eef8; color: #1d4f9c; }
.stat-card.tone-warning .stat-icon { background: #fdf1d6; color: #8a5d00; }
.stat-card.tone-danger .stat-icon { background: #fbe4e2; color: #a52a1f; }
.stat-card .stat-text { min-width: 0; }
.stat-card .stat-label { font-size: .82rem; font-weight: 500; color: var(--sl-muted); line-height: 1.3; }
.stat-card .stat-value { font-size: 1.35rem; font-weight: 600; margin: 0; line-height: 1.25; color: var(--bs-emphasis-color); }
.stat-card.is-zero { box-shadow: none; background: transparent; }
.stat-card.is-zero .stat-icon { background: var(--sl-page); color: var(--sl-muted); }
.stat-card.is-zero .stat-value { color: var(--sl-muted); }
[data-bs-theme="dark"] .stat-card .stat-icon { background: rgba(80, 140, 230, .15); color: #9fc3f7; }
[data-bs-theme="dark"] .stat-card.tone-warning .stat-icon { background: rgba(224, 168, 0, .15); color: #f1cf63; }
[data-bs-theme="dark"] .stat-card.tone-danger .stat-icon { background: rgba(220, 70, 60, .16); color: #ff9e95; }
[data-bs-theme="dark"] .stat-card.is-zero .stat-icon { background: rgba(255, 255, 255, .05); color: var(--sl-muted); }

/* shell */
.sidebar { border-right: 0; box-shadow: inset -1px 0 0 rgba(255, 255, 255, .06); }
.topbar { padding: .6rem 1.75rem; }
.content { padding: 1.75rem 2rem 4rem; max-width: 1600px; }
.global-search input { border-radius: .6rem; }
.user-chip { border-radius: .6rem; font-weight: 500; }
.nav-section { font-size: .78rem; font-weight: 600; }
.sidebar .nav-link { font-size: .9rem; padding: .45rem 1.2rem; }
.suggest-fab { padding: .5rem .9rem; font-size: .82rem; font-weight: 600; box-shadow: 0 4px 12px rgba(0, 0, 0, .18); }
.dropdown-menu { border-radius: .65rem; border-color: var(--sl-border); box-shadow: 0 8px 24px rgba(16, 24, 40, .12); padding: .35rem; }
.dropdown-item { border-radius: .4rem; font-size: .9rem; padding: .4rem .7rem; }
.pagination .page-link { border-radius: .4rem; margin: 0 .1rem; border-color: var(--sl-border); color: var(--sl-ink-soft); }
.pagination .active > .page-link { background: var(--sl-navy-2); border-color: var(--sl-navy-2); color: #fff; }
@media (max-width: 991.98px) { .content { padding: 1rem 1rem 4rem; } .topbar { padding: .5rem 1rem; } }

/* personnel record v2: compact banner, fact grid, service timeline */
.pr-banner { background: #13284a; color: #fff; border-radius: .75rem; padding: 1.25rem 1.5rem; display: flex; flex-wrap: wrap; align-items: center; gap: 1.1rem; margin-bottom: 1rem; }
.pr-banner .pr-insignia { width: 60px; height: 60px; }
.pr-banner .pr-eyebrow { margin-bottom: .2rem; font-size: .72rem; letter-spacing: .12em; }
.pr-banner h1 { margin: 0; font-size: 1.6rem; font-weight: 600; color: #fff; }
.pr-banner .pr-line { color: #c9d6ec; font-size: .95rem; }
.pr-banner .pr-line strong { color: #e2bf4a; font-weight: 600; }
.pr-banner .pr-tags { margin: 0 0 0 auto; }
.pr-banner .badge { font-size: .8rem; padding: .4em .8em; border-radius: .4rem; }
.pr-facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(165px, 1fr)); gap: .75rem; margin-bottom: 1rem; }
.pr-fact { background: var(--sl-surface); border: 1px solid var(--sl-border); border-radius: .65rem; padding: .8rem 1rem; box-shadow: var(--sl-shadow); min-width: 0; }
.pr-fact dt { font-size: .8rem; font-weight: 500; color: var(--sl-muted); }
.pr-fact dd .mono { font-size: .85rem; letter-spacing: -.02em; }
.pr-fact dd { margin: .15rem 0 0; font-size: 1.05rem; font-weight: 600; color: var(--bs-emphasis-color); overflow-wrap: anywhere; }
.pr-fact dd small { display: block; font-size: .8rem; font-weight: 400; color: var(--sl-muted); }
.pr-fact .pr-none { font-size: .95rem; }
.pr-counts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.pr-count { display: block; border: 1px solid var(--sl-border); border-radius: .65rem; padding: .8rem 1rem; background: var(--sl-surface); color: var(--sl-muted); font-size: .85rem; font-weight: 500; }
.pr-count strong { display: block; font-size: 1.9rem; font-weight: 600; color: var(--bs-emphasis-color); line-height: 1.15; }
.pr-count.is-strike { border-color: #e9b8b3; background: #fdf6f5; } .pr-count.is-strike strong { color: #a52a1f; }
.pr-count.is-warning { border-color: #ecd593; background: #fffaeb; } .pr-count.is-warning strong { color: #7a5300; }
[data-bs-theme="dark"] .pr-count.is-strike { background: rgba(176, 42, 55, .1); border-color: rgba(176, 42, 55, .4); } [data-bs-theme="dark"] .pr-count.is-strike strong { color: #ff9e95; }
[data-bs-theme="dark"] .pr-count.is-warning { background: rgba(224, 168, 0, .08); border-color: rgba(224, 168, 0, .35); } [data-bs-theme="dark"] .pr-count.is-warning strong { color: #f1cf63; }
.pr-chars-row { display: flex; flex-wrap: wrap; gap: .4rem; }
.pr-chip { border: 1px solid var(--sl-border-strong); border-radius: 2rem; padding: .25rem .8rem; font-size: .875rem; color: var(--bs-emphasis-color); background: var(--sl-surface); }
.pr-chip.active { border-color: var(--sl-gold); }
.pr-chip em { font-style: normal; color: var(--sl-gold-ink); font-size: .75rem; margin-left: .2rem; }
.svc-timeline { list-style: none; margin: 0; padding: 0 0 0 1.6rem; border-left: 2px solid var(--sl-border); display: flex; flex-direction: column; gap: 1.1rem; }
.svc-timeline li { position: relative; }
.svc-timeline li::before { content: ""; position: absolute; left: calc(-1.6rem - 8px); top: .3rem; width: 14px; height: 14px; border-radius: 50%; background: var(--sl-surface); border: 3px solid var(--dot, var(--sl-navy-2)); }
.svc-timeline .t-when { font-size: .8rem; color: var(--sl-muted); }
.svc-timeline .t-what { font-weight: 600; color: var(--bs-emphasis-color); }
.svc-timeline .t-why { font-size: .9rem; white-space: pre-line; }
.svc-timeline li.t-warning { --dot: #c9a227; } .svc-timeline li.t-strike { --dot: #c0392b; } .svc-timeline li.t-transfer { --dot: #6f42c1; } .svc-timeline li.t-join { --dot: #1e7a4d; } .svc-timeline li.t-revoked { --dot: #8a94a6; }
.svc-timeline li.t-revoked .t-what { text-decoration: line-through; color: var(--sl-muted); }

/* sidebar: back to the public main menu */
.nav-home-link { display: flex; align-items: center; gap: .6rem; margin: .75rem 1rem 0; padding: .5rem .75rem; border-radius: .5rem; border: 1px solid rgba(255, 255, 255, .14); color: #fff; font-size: .9rem; font-weight: 500; background: rgba(255, 255, 255, .04); }
.nav-home-link:hover { background: rgba(201, 162, 39, .14); border-color: var(--sl-gold); color: #fff; text-decoration: none; }
.nav-home-link .bi-house-door { color: var(--sl-gold); }

/* uploaded logo inside the round seal; branding previews on Configuration */
.brand-seal.has-logo { background: none; box-shadow: none; overflow: visible; padding: 0; }
.brand-seal.has-logo img { width: 100%; height: 100%; object-fit: contain; display: block; }
.branding-row { display: flex; gap: 1rem; align-items: flex-start; padding: .75rem 0; border-bottom: 1px solid var(--sl-border); }
.branding-row:first-of-type { padding-top: 0; }
.branding-preview { width: 48px; height: 48px; flex-shrink: 0; border-radius: .5rem; border: 1px solid var(--sl-border); background: var(--sl-page); display: grid; place-items: center; overflow: hidden; color: var(--sl-muted); font-size: 1.3rem; }
.branding-preview.is-logo { border-radius: 50%; }
.branding-preview img { width: 100%; height: 100%; object-fit: contain; }
.min-w-0 { min-width: 0; }

/* warrant request form: parts the judge fills in */
.doc-judge-note { font-style: italic; color: #6b5300; background: #fff6d6; padding: 0 .3em; border-radius: 3px; font-size: .92em; }

/* Case page: tab counts / pending marks, key facts strip */
.record-tabs .tab-count { display: inline-block; min-width: 1.4em; padding: 0 .4em; margin-left: .2rem; border-radius: 999px; font-size: .72rem; line-height: 1.5; background: var(--surface-2, rgba(127,127,127,.15)); color: inherit; text-align: center; }
.record-tabs .tab-pending { display: inline-block; padding: 0 .45em; margin-left: .2rem; border-radius: 999px; font-size: .7rem; line-height: 1.5; font-weight: 600; background: #dc3545; color: #fff; }
.case-facts .card-body { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: .75rem 1.25rem; padding: .9rem 1rem; }
.case-facts .fact { display: flex; flex-direction: column; min-width: 0; }
.case-facts .fact > span { font-size: .7rem; text-transform: uppercase; letter-spacing: .04em; color: var(--muted, #6c757d); }
.case-facts .fact > strong { font-weight: 600; overflow-wrap: anywhere; }
.case-facts .fact > small { font-size: .75rem; }
.tox .tox-tbtn--select[aria-label*="Templates"], .tox .tox-mbtn { font-weight: 600; }

/* Warrant form: the two ways to add an offence, clearly apart */
.legal-doc .doc-add-choices { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: -.25rem 0 1.25rem 3rem; padding: .6rem .75rem; border: 1px dashed #c8cfdb; border-radius: .5rem; background: #f7f9fc; font-family: var(--bs-body-font-family); }
.legal-doc .doc-add-label { font-size: .8rem; font-weight: 600; color: #34425a; }
.legal-doc .doc-add-or { font-size: .75rem; color: #6c757d; text-transform: uppercase; letter-spacing: .05em; }
.legal-doc .doc-add-hint { flex-basis: 100%; font-size: .75rem; color: #6c757d; }
.legal-doc ul[data-rows="other_offences"] li::marker { content: '✎  '; }

/* Licence certificate: the organisation's uploaded logo instead of the gold seal */
.licence-cert .cert-seal.has-logo { width: 96px; height: 96px; background: none; box-shadow: none; border-radius: 0; }
.licence-cert .cert-seal.has-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.licence-cert .cert-office { font: 600 1.15rem 'Tinos', 'Times New Roman', serif; font-style: normal; letter-spacing: .04em; text-transform: uppercase; color: #14284b; }
.licence-check-cert { max-width: 820px; margin: 0 auto; }
