:root {
	--sopdoc-ink: #2b241d;
	--sopdoc-maroon: #8a3324;
	--sopdoc-maroon-dark: #6c2419;
	--sopdoc-cream: #faf7f2;
	--sopdoc-paper: #ffffff;
	--sopdoc-border: #c9beae;
	--sopdoc-header-fill: #f5e6a3;
	--sopdoc-muted: #7a7266;
	--sopdoc-success: #2f6f4e;
	--sopdoc-pending: #a1481f;
	--sopdoc-navy: #1b3a5c;
	--sopdoc-navy-dark: #142c46;
}

.sopdoc-wrap { color: var(--sopdoc-ink); }

.sopdoc-page-shell {
	max-width: 1400px;
	margin: 2rem auto;
	padding: 0 1rem;
}

.sopdoc-toolbar {
	display: flex;
	gap: .5rem;
	justify-content: flex-end;
	margin-bottom: 1rem;
}

.sopdoc-btn {
	font: inherit;
	background: var(--sopdoc-maroon);
	color: #fff;
	border: none;
	border-radius: 3px;
	padding: .55em 1.1em;
	cursor: pointer;
	text-decoration: none;
	display: inline-block;
	font-size: .9rem;
	letter-spacing: .01em;
}
.sopdoc-btn:hover { background: var(--sopdoc-maroon-dark); color: #fff; }
.sopdoc-btn-cancel, .sopdoc-btn-clear { background: #6b675f; }
.sopdoc-btn-cancel:hover, .sopdoc-btn-clear:hover { background: #504c46; color: #fff; }
.sopdoc-btn-large { font-size: 1rem; padding: .75em 1.5em; }
.sopdoc-btn-sm { font-size: .78rem; padding: .3em .65em; }

/* View / Edit / Delete icon buttons: same navy-blue background with a
 * white icon across every module (SOP, Audit, Risk, Stakeholder, ESG),
 * chosen specifically for visibility against the cream/white register
 * background -- contrast ratio is roughly 11.6:1, well past the 4.5:1
 * WCAG AA minimum. Distinguishing between View/Edit/Delete is left to
 * their icon glyphs (👁 / ✎ / 🗑) and tooltips rather than color, so nothing
 * here relies on color alone to convey which action a button performs. */
.sopdoc-btn-view,
.sopdoc-btn-edit,
.sopdoc-btn-delete {
	background: var(--sopdoc-navy);
}
.sopdoc-btn-view:hover,
.sopdoc-btn-edit:hover,
.sopdoc-btn-delete:hover {
	background: var(--sopdoc-navy-dark);
	color: #fff;
}
.sopdoc-btn-delete:disabled { background: #7891a7; cursor: not-allowed; }
.sopdoc-btn-print { background: #52606d; }
.sopdoc-btn-print:hover { background: #3b4750; color: #fff; }
.sopdoc-btn-save { background: var(--sopdoc-success); }
.sopdoc-btn-save:hover { background: #204d38; color: #fff; }

/* Icon-only buttons (View/Edit/Delete) now use an inline SVG rather than
 * a Unicode/emoji character -- see SOP_Utils::icon_svg(). Centering it
 * needs a flex box rather than relying on line-height the way a single
 * text character could. */
.sopdoc-btn-view, .sopdoc-btn-edit, .sopdoc-btn-delete {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.sopdoc-icon-svg { display: block; }

.sopdoc-document {
	background: var(--sopdoc-paper);
	border: 1px solid var(--sopdoc-border);
	padding: 2.25rem 2.5rem;
	font-family: Georgia, 'Times New Roman', serif;
	line-height: 1.5;
}

.sopdoc-letterhead {
	text-align: center;
	border-bottom: 3px solid var(--sopdoc-maroon);
	padding-bottom: 1rem;
	margin-bottom: 1.5rem;
}
.sopdoc-logo { max-height: 70px; margin-bottom: .5rem; }
.sopdoc-title {
	font-size: 1.4rem;
	margin: .25rem 0 0;
	color: var(--sopdoc-maroon-dark);
	font-family: Georgia, serif;
}

.sopdoc-header-table, .sopdoc-activity-table, .sopdoc-amendments-table, .sopdoc-related-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 1.75rem;
	font-family: Arial, Helvetica, sans-serif;
	font-size: .92rem;
}

.sopdoc-header-table th, .sopdoc-header-table td,
.sopdoc-activity-table th, .sopdoc-activity-table td,
.sopdoc-amendments-table th, .sopdoc-amendments-table td,
.sopdoc-related-table th, .sopdoc-related-table td {
	border: 1px solid var(--sopdoc-border);
	padding: .55em .7em;
	vertical-align: top;
	text-align: left;
}

.sopdoc-header-table th {
	width: 220px;
	background: var(--sopdoc-cream);
	font-weight: 700;
}

.sopdoc-activity-table thead th, .sopdoc-amendments-table thead th, .sopdoc-related-table thead th {
	background: var(--sopdoc-header-fill);
	font-weight: 700;
}

.sopdoc-col-no { width: 90px; white-space: nowrap; }
.sopdoc-col-resp { width: 170px; }
.sopdoc-section-row td { background: #f1ece1; }

.sopdoc-subheading {
	font-family: Arial, Helvetica, sans-serif;
	color: var(--sopdoc-maroon-dark);
	border-bottom: 1px solid var(--sopdoc-border);
	padding-bottom: .3em;
	margin: 1.75rem 0 .75rem;
	font-size: 1.05rem;
}

.sopdoc-muted { color: var(--sopdoc-muted); font-family: Arial, sans-serif; }

.sopdoc-numbered-section { font-family: Georgia, serif; margin-bottom: 1.5rem; }
.sopdoc-numbered-item { margin: 0 0 .6em; }
.sopdoc-heading-input {
	font-family: Arial, Helvetica, sans-serif;
	color: var(--sopdoc-maroon-dark);
	font-size: 1.05rem;
	font-weight: 700;
	border: 1px solid var(--sopdoc-border);
	padding: .2em .4em;
	width: 100%;
	max-width: 320px;
}

/* ---- signatures ---- */
.sopdoc-signature-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 1rem;
	font-family: Arial, Helvetica, sans-serif;
}
.sopdoc-signature-block {
	border: 1px solid var(--sopdoc-border);
	border-radius: 4px;
	padding: .75rem;
	text-align: center;
	background: var(--sopdoc-cream);
}
.sopdoc-sig-area { min-height: 70px; display: flex; align-items: center; justify-content: center; margin-bottom: .5rem; }
.sopdoc-sig-image { max-height: 65px; max-width: 100%; -webkit-user-drag: none; user-select: none; }
.sopdoc-sig-typed {
	font-family: 'Brush Script MT', 'Segoe Script', cursive;
	font-size: 1.6rem;
	color: var(--sopdoc-maroon-dark);
}
.sopdoc-sig-type-label { margin-left: .3em; }

/* Signature images: raises casual-copy friction (no right-click save, no
 * drag-out, no text-select on the wrapper) and stamps whoever is currently
 * viewing it across the image, so a captured copy is traceable to who saw
 * it. This is NOT a technical guarantee against screenshots or screen
 * recording -- nothing served to a browser can actually prevent that, since
 * by definition an authorized viewer's screen can always be captured by
 * their own device. Treat this as a deterrent + audit trail, not a lock. */
.sopdoc-sig-protected { position: relative; display: inline-block; user-select: none; -webkit-user-select: none; }
.sopdoc-sig-watermark {
	position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(-18deg);
	white-space: nowrap; font-size: .6rem; letter-spacing: .03em; color: rgba(43, 36, 29, .35);
	font-family: Arial, sans-serif; pointer-events: none; user-select: none;
}
@media print {
	.sopdoc-sig-watermark { color: rgba(43, 36, 29, .5); }
}

.sopdoc-sig-meta { font-size: .72rem; color: var(--sopdoc-muted); }
.sopdoc-sig-pending { color: var(--sopdoc-pending); font-size: .85rem; font-style: italic; }
.sopdoc-sig-link-copy input { width: 100%; font-size: .7rem; margin-top: .4rem; }
.sopdoc-sig-name { font-weight: 700; margin-top: .4rem; }
.sopdoc-sig-role { font-size: .82rem; color: var(--sopdoc-muted); }
.sopdoc-status-signed { border-color: var(--sopdoc-success); }
.sopdoc-status-pill { padding: .1em .5em; border-radius: 10px; font-size: .8rem; }
.sopdoc-status-signed.sopdoc-status-pill, .sopdoc-status-pill.sopdoc-status-signed { background: #e2f2e8; color: var(--sopdoc-success); }
.sopdoc-status-pending.sopdoc-status-pill, .sopdoc-status-pill.sopdoc-status-pending { background: #fbe8dd; color: var(--sopdoc-pending); }

.sopdoc-banner { padding: .9rem 1.2rem; border-radius: 4px; margin-bottom: 1rem; font-family: Arial, sans-serif; }
.sopdoc-banner-success { background: #e2f2e8; color: var(--sopdoc-success); border: 1px solid var(--sopdoc-success); }

/* ---- editable / frontend form ---- */
.sopdoc-editable input, .sopdoc-editable textarea, .sopdoc-editable select {
	width: 100%; font-family: inherit; font-size: .92rem; border: 1px solid var(--sopdoc-border); padding: .3em;
}
.sopdoc-remove-row-fe { background: none; border: none; color: var(--sopdoc-maroon); cursor: pointer; font-size: 1.1rem; }
.sopdoc-row-actions { white-space: nowrap; text-align: center; }
.sopdoc-row-actions button {
	background: none; border: 1px solid var(--sopdoc-border); color: var(--sopdoc-maroon);
	cursor: pointer; font-size: .85rem; line-height: 1; padding: .25em .45em; margin: 0 1px; border-radius: 3px;
}
.sopdoc-row-actions button:hover { background: var(--sopdoc-cream); }

.sopdoc-richtext-wrap { border: 1px solid var(--sopdoc-border); border-radius: 3px; background: #fff; font-family: Arial, Helvetica, sans-serif; }
.sopdoc-richtext-toolbar { display: flex; gap: 2px; padding: 4px; background: var(--sopdoc-cream); border-bottom: 1px solid var(--sopdoc-border); flex-wrap: wrap; }
.sopdoc-richtext-toolbar button { border: 1px solid transparent; background: transparent; padding: 3px 8px; cursor: pointer; border-radius: 2px; font-size: .8rem; }
.sopdoc-richtext-toolbar button:hover { background: #e4ddce; border-color: var(--sopdoc-border); }
.sopdoc-richtext-editable { min-height: 60px; padding: 6px 9px; outline: none; font-family: Georgia, serif; font-size: .92rem; }
.sopdoc-richtext-editable ul, .sopdoc-richtext-editable ol { margin: 0 0 0 1.2em; padding: 0; }
.sopdoc-richtext-editable:focus { box-shadow: inset 0 0 0 1px var(--sopdoc-maroon); }

.ims-linked-list { list-style: none; margin: 0; padding: 0; font-family: Arial, Helvetica, sans-serif; }
.ims-linked-list li { padding: .4em 0; border-bottom: 1px solid var(--sopdoc-border); }
.ims-linked-type { display: inline-block; background: var(--sopdoc-cream); border: 1px solid var(--sopdoc-border); border-radius: 3px; padding: .1em .5em; font-size: .75rem; margin-right: .5em; color: var(--sopdoc-maroon-dark); }
.ims-linked-status { color: var(--sopdoc-muted); font-size: .85em; }
.ims-link-filter { width: 100%; margin-bottom: 6px; padding: .4em; border: 1px solid var(--sopdoc-border); }

/* ---- signing form ---- */
.sopdoc-sign-form-wrap { font-family: Arial, Helvetica, sans-serif; }
.sopdoc-doc-preview { max-height: 480px; overflow: auto; border: 1px solid var(--sopdoc-border); margin: 1rem 0; padding: 1rem; background: #fff; }
.sopdoc-sign-tabs { display: flex; gap: .5rem; margin: 1rem 0 .5rem; }
.sopdoc-sign-tab {
	background: var(--sopdoc-cream); border: 1px solid var(--sopdoc-border); padding: .5em 1em; cursor: pointer; border-radius: 3px 3px 0 0;
}
.sopdoc-sign-tab.active { background: var(--sopdoc-maroon); color: #fff; border-color: var(--sopdoc-maroon); }
.sopdoc-typed-name-input { font-size: 1rem; padding: .5em; width: 100%; max-width: 420px; }
.sopdoc-typed-preview {
	font-family: 'Brush Script MT', 'Segoe Script', cursive;
	font-size: 2.2rem; color: var(--sopdoc-maroon-dark); margin-top: .75rem; min-height: 3rem;
}
#sopdoc_signature_canvas {
	border: 1px dashed var(--sopdoc-border); background: #fff; touch-action: none; display: block; max-width: 100%;
}
.sopdoc-upload-preview { margin-top: .75rem; }
.sopdoc-upload-preview img { max-height: 100px; max-width: 100%; border: 1px dashed var(--sopdoc-border); padding: .4rem; background: #fff; }
.sopdoc-sign-panel .description { font-size: .8rem; color: var(--sopdoc-muted); margin-top: .5rem; }
.sopdoc-consent { display: block; margin: 1.25rem 0; font-size: .9rem; }
.sopdoc-sign-complete { padding: 1rem; background: #e2f2e8; border-radius: 4px; }

/* Front-end SOP form: main content + right sidebar (Workflow Status, Approval Workflow, Link Records) */
.sopdoc-fe-columns {
	display: flex;
	align-items: flex-start;
	gap: 1.75rem;
	margin-top: 1rem;
}
.sopdoc-fe-main { flex: 1 1 0; min-width: 0; }
.sopdoc-fe-sidebar {
	flex: 0 0 300px;
	width: 300px;
}
.sopdoc-fe-side-box {
	background: var(--sopdoc-cream);
	border: 1px solid var(--sopdoc-border);
	border-radius: 4px;
	padding: 1rem;
	margin-bottom: 1.25rem;
}
.sopdoc-fe-side-box .sopdoc-subheading { margin-top: 0; }
.sopdoc-fe-side-box table.sopdoc-editable input,
.sopdoc-fe-side-box table.sopdoc-editable select { font-size: .85rem; }
.sopdoc-fe-status-select {
	width: 100%; font-family: inherit; font-size: .92rem; border: 1px solid var(--sopdoc-border); padding: .4em;
}

@media (max-width: 900px) {
	.sopdoc-fe-columns { flex-direction: column; }
	.sopdoc-fe-sidebar { width: 100%; flex-basis: auto; }
}

@media (max-width: 640px) {
	.sopdoc-document { padding: 1.25rem; }
	.sopdoc-header-table th { width: 40%; }
}

/* -- KPI summary strip above the SOP Register -- */
.imssop-kpi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: .75rem; margin-bottom: 1rem; }
.imssop-kpi { border: 1px solid var(--sopdoc-border); border-radius: 8px; background: var(--sopdoc-paper); padding: .8em 1em; }
.imssop-kpi-label { font-size: .68rem; text-transform: uppercase; letter-spacing: .05em; color: var(--sopdoc-muted); margin-bottom: .4em; }
.imssop-kpi-value { font-size: 1.5rem; font-weight: 700; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; color: var(--sopdoc-maroon-dark); }
.imssop-kpi-amber .imssop-kpi-value { color: var(--sopdoc-pending); }
.imssop-kpi-accent .imssop-kpi-value { color: var(--sopdoc-success); }

/* -- Activity review comments (Word-style margin comments) -- */
.sopdoc-col-comments { width: 40px; text-align: center; }
.sopdoc-comment-toggle {
	position: relative; display: inline-flex; align-items: center; justify-content: center;
	background: transparent; border: 1px solid var(--sopdoc-border); border-radius: 4px;
	width: 28px; height: 28px; padding: 0; cursor: pointer; color: var(--sopdoc-muted);
}
.sopdoc-comment-toggle:hover { background: var(--sopdoc-cream); color: var(--sopdoc-maroon-dark); }
.sopdoc-comment-toggle.has-comments { color: var(--sopdoc-pending); border-color: var(--sopdoc-pending); }
.sopdoc-comment-toggle.has-comments.all-resolved { color: var(--sopdoc-success); border-color: var(--sopdoc-success); }
.sopdoc-comment-badge {
	position: absolute; top: -7px; right: -7px; background: var(--sopdoc-pending); color: #fff;
	font-size: .65rem; font-weight: 700; line-height: 1; border-radius: 999px; min-width: 15px; height: 15px;
	display: flex; align-items: center; justify-content: center; padding: 0 3px; font-family: Arial, sans-serif;
}
.sopdoc-comment-toggle.all-resolved .sopdoc-comment-badge { background: var(--sopdoc-success); }

.sopdoc-comment-row td { background: var(--sopdoc-cream); border-top: none; }
.sopdoc-comment-thread { font-family: Arial, Helvetica, sans-serif; padding: .5rem .25rem; max-width: 640px; }
.sopdoc-comment-empty { color: var(--sopdoc-muted); font-size: .85rem; margin: .25rem 0 .75rem; }
.sopdoc-comment {
	background: #fff; border: 1px solid var(--sopdoc-border); border-radius: 5px; padding: .6rem .75rem; margin-bottom: .6rem;
}
.sopdoc-comment-resolved { opacity: .65; }
.sopdoc-comment-resolved .sopdoc-comment-text { text-decoration: line-through; }
.sopdoc-comment-head { font-size: .82rem; margin-bottom: .3rem; display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.sopdoc-comment-date { color: var(--sopdoc-muted); font-size: .78rem; }
.sopdoc-comment-resolved-tag {
	background: #e2f2e8; color: var(--sopdoc-success); font-size: .68rem; text-transform: uppercase;
	letter-spacing: .03em; padding: .1em .5em; border-radius: 999px;
}
.sopdoc-comment-text { font-size: .9rem; line-height: 1.45; white-space: pre-wrap; }
.sopdoc-comment-actions { margin-top: .4rem; }
.sopdoc-comment-resolve-btn, .sopdoc-comment-reopen-btn {
	background: none; border: 1px solid var(--sopdoc-border); border-radius: 3px; padding: .25em .7em;
	font-size: .76rem; cursor: pointer; color: var(--sopdoc-maroon-dark);
}
.sopdoc-comment-resolve-btn:hover, .sopdoc-comment-reopen-btn:hover { background: #fff; }
.sopdoc-comment-add-form { margin-top: .5rem; }
.sopdoc-comment-input { width: 100%; max-width: 500px; font-family: inherit; font-size: .88rem; padding: .5em; border: 1px solid var(--sopdoc-border); border-radius: 4px; resize: vertical; }
.sopdoc-comment-add-form .sopdoc-btn { margin-top: .4rem; }
.sopdoc-comment-login-note { font-size: .82rem; color: var(--sopdoc-muted); font-style: italic; }

@media print {
	.sopdoc-col-comments, .sopdoc-comment-row { display: none !important; }
}

.sopdoc-minor-edit-toggle { display: flex; align-items: flex-start; gap: .5em; font-size: .88rem; margin: .6rem 0 .2rem; cursor: pointer; }
.sopdoc-minor-edit-toggle input { margin-top: .2em; }
.sopdoc-minor-edit-hint { margin: 0 0 .8rem 1.6em; font-size: .76rem; }

.sopdoc-no-signers-warning {
	background: #fdf3d0; color: #7a5c0c; border: 1px solid #e8d189; border-radius: 5px;
	padding: .55em .8em; font-size: .84rem; margin: .6rem 0;
}

/* -- SOP Document Control User Guide modal -- pure show/hide, no network
 * request involved at all, so it can never trip up host-level bot/security
 * protection the way an AJAX-loaded modal could. -- */
.sopdoc-guide-btn { background: var(--sopdoc-cream); color: var(--sopdoc-maroon-dark); border: 1px solid var(--sopdoc-border); }
.sopdoc-guide-btn:hover { background: #fff; }
.sopdoc-guide-overlay {
	position: fixed; inset: 0; background: rgba(43, 36, 29, .55); z-index: 100000;
	display: flex; align-items: center; justify-content: center; padding: 2rem;
}
.sopdoc-guide-overlay[hidden] { display: none; }
.sopdoc-guide-box {
	background: var(--sopdoc-paper); border-radius: 8px; max-width: 760px; width: 100%;
	max-height: 88vh; overflow-y: auto; padding: 2rem 2.5rem; position: relative;
	box-shadow: 0 20px 60px rgba(0, 0, 0, .3); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}
.sopdoc-guide-close {
	position: absolute; top: .75rem; right: 1rem; background: none; border: none;
	font-size: 1.7rem; cursor: pointer; color: var(--sopdoc-muted); line-height: 1; padding: .25em;
}
.sopdoc-guide-close:hover { color: var(--sopdoc-maroon-dark); }
.sopdoc-guide-body h2 { font-family: Georgia, 'Times New Roman', serif; color: var(--sopdoc-maroon-dark); margin: 0 0 .8rem; font-size: 1.4rem; }
.sopdoc-guide-body h3 { color: var(--sopdoc-maroon-dark); margin: 1.6rem 0 .5rem; font-size: 1.02rem; border-top: 1px solid var(--sopdoc-border); padding-top: 1.1rem; }
.sopdoc-guide-body h3:first-of-type { border-top: none; padding-top: 0; margin-top: .5rem; }
.sopdoc-guide-body p, .sopdoc-guide-body li { font-size: .92rem; line-height: 1.6; color: var(--sopdoc-ink); }
.sopdoc-guide-body ul, .sopdoc-guide-body ol { padding-left: 1.3rem; margin: .4rem 0 .9rem; }
.sopdoc-guide-body li { margin-bottom: .35rem; }
.sopdoc-guide-toc {
	display: flex; flex-wrap: wrap; gap: .4rem .5rem; background: var(--sopdoc-cream);
	border: 1px solid var(--sopdoc-border); border-radius: 6px; padding: .8rem 1rem; margin-bottom: 1rem;
}
.sopdoc-guide-toc a { font-size: .8rem; color: var(--sopdoc-maroon-dark); text-decoration: none; border-bottom: 1px dotted var(--sopdoc-maroon-dark); }
.sopdoc-guide-toc a:hover { color: var(--sopdoc-maroon); }

@media (max-width: 600px) {
	.sopdoc-guide-box { padding: 1.5rem 1.25rem; max-height: 92vh; }
}

/* ==================== Home page (CTA cards, [ims_home]) ==================== */

.ims-home-wrap { max-width: 1200px; margin: 0 auto; padding: 1rem; }

.ims-home-hero { text-align: center; margin-bottom: 2.2rem; }
.ims-home-hero h1 {
	font-family: Georgia, 'Times New Roman', serif; color: var(--sopdoc-maroon-dark);
	font-size: 2rem; margin: 0 0 .4rem;
}
.ims-home-hero p { color: var(--sopdoc-muted); font-size: 1.05rem; margin: 0; }

.ims-home-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 1.25rem;
}

.ims-home-card {
	display: flex; flex-direction: column; align-items: flex-start;
	background: var(--sopdoc-paper); border: 1px solid var(--sopdoc-border); border-radius: 10px;
	padding: 1.5rem; text-decoration: none; color: var(--sopdoc-ink);
	box-shadow: 0 1px 2px rgba(43, 36, 29, .05);
	transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.ims-home-card:hover, .ims-home-card:focus-visible {
	transform: translateY(-3px);
	box-shadow: 0 10px 24px rgba(43, 36, 29, .12);
	border-color: var(--sopdoc-muted);
}

.ims-home-card-icon {
	width: 52px; height: 52px; border-radius: 10px; color: #fff;
	display: flex; align-items: center; justify-content: center;
	margin-bottom: 1rem; flex-shrink: 0;
}

.ims-home-card h3 {
	font-size: 1.1rem; margin: 0 0 .4rem; color: var(--sopdoc-ink);
}
.ims-home-card p {
	font-size: .88rem; color: var(--sopdoc-muted); line-height: 1.5; margin: 0 0 1rem; flex-grow: 1;
}

.ims-home-card-count {
	display: inline-block; font-size: .76rem; font-weight: 600; color: var(--sopdoc-muted);
	background: var(--sopdoc-cream); border-radius: 999px; padding: .25em .75em; margin-bottom: .9rem;
}

.ims-home-card-cta {
	font-size: .88rem; font-weight: 600; color: var(--sopdoc-maroon-dark);
}
.ims-home-card:hover .ims-home-card-cta { color: var(--sopdoc-maroon); }

.ims-home-card-unset {
	border-style: dashed;
	background: var(--sopdoc-cream);
}
.ims-home-card-notice { color: var(--sopdoc-pending) !important; font-weight: 600; font-size: .8rem !important; }
.ims-home-card-unset .ims-home-card-cta { color: var(--sopdoc-pending); }

@media (max-width: 480px) {
	.ims-home-hero h1 { font-size: 1.6rem; }
	.ims-home-grid { grid-template-columns: 1fr; }
}

/* ==================== Module-themed login prompt ==================== */

.ims-login-prompt {
	max-width: 380px; margin: 3rem auto; text-align: center;
	background: var(--sopdoc-paper); border: 1px solid var(--sopdoc-border); border-radius: 10px;
	padding: 2.25rem 2rem;
}
.ims-login-prompt .ims-home-card-icon { margin: 0 auto 1rem; }
.ims-login-prompt h2 { margin: 0 0 .6rem; font-size: 1.2rem; color: var(--sopdoc-ink); }
.ims-login-prompt p { color: var(--sopdoc-muted); font-size: .92rem; margin: 0 0 1.25rem; }
.ims-login-prompt .sopdoc-btn { display: inline-block; }
.ims-login-prompt-lost { margin: 1rem 0 0 !important; }
.ims-login-prompt-lost a { font-size: .82rem; color: var(--sopdoc-muted); text-decoration: underline; }
.ims-login-prompt-lost a:hover { color: var(--sopdoc-maroon-dark); }
