:root {
    --app-primary: #2563eb;
    --app-primary-dark: #1d4ed8;
    --app-text: #0f172a;
    --app-muted: #64748b;
    --app-bg: #f4f7fb;
    --app-card: #ffffff;
    --app-border: #e2e8f0;
    --app-border-strong: #cbd5e1;
    --app-soft: #f8fafc;
    --app-success-soft: #ecfdf5;
    --app-warning-soft: #fffbeb;
    --app-info-soft: #eff6ff;
    --app-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.05);
    --app-shadow: 0 14px 34px rgba(15, 23, 42, 0.08);
    --app-shadow-lg: 0 22px 54px rgba(15, 23, 42, 0.1);
    --app-radius: 8px;
}

html {
    background: var(--app-bg);
}

body {
    min-height: 100vh;
    color: var(--app-text);
    background: linear-gradient(180deg, #f8fbff 0%, var(--app-bg) 22rem);
    font-size: 0.96rem;
    padding-bottom: env(safe-area-inset-bottom);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

a {
    color: var(--app-primary);
    text-decoration: none;
}

a:hover,
a:focus {
    color: var(--app-primary-dark);
    text-decoration: none;
}

.app-navbar {
    background: rgba(255, 255, 255, 0.94);
    border-bottom: 1px solid rgba(226, 232, 240, 0.9);
    box-shadow: var(--app-shadow-sm);
    backdrop-filter: blur(14px);
}

.navbar-brand {
    color: var(--app-text);
    letter-spacing: 0;
}

.navbar-brand:hover,
.navbar-brand:focus {
    color: var(--app-primary);
}

.navbar-toggler {
    border-color: var(--app-border);
    border-radius: var(--app-radius);
}

.navbar .nav-link {
    color: #475569;
    font-weight: 600;
    border-radius: var(--app-radius);
    padding: 0.55rem 0.75rem;
}

.navbar .nav-link:hover,
.navbar .nav-link:focus {
    color: var(--app-primary-dark);
    background: #eff6ff;
}

.user-chip {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
    padding: 0.25rem 0.65rem;
    color: #475569;
    background: #f8fafc;
    border: 1px solid var(--app-border);
    border-radius: var(--app-radius);
    font-size: 0.85rem;
    font-weight: 700;
}

.page-shell {
    max-width: 1240px;
    margin: 0 auto;
}

.page-header {
    position: relative;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.86);
    border: 1px solid rgba(226, 232, 240, 0.92);
    border-radius: var(--app-radius);
    padding: 1.35rem;
    box-shadow: var(--app-shadow);
}

.page-header::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.08), rgba(248, 250, 252, 0));
    pointer-events: none;
}

.page-header > * {
    position: relative;
}

.dashboard-hero {
    padding: 1.5rem;
}

.dashboard-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    justify-content: flex-start;
}

.hero-eyebrow {
    margin-bottom: 0.4rem;
    color: var(--app-primary-dark);
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0;
}

.section-title {
    color: var(--app-text);
    letter-spacing: 0;
}

.section-kicker {
    color: var(--app-muted);
    font-size: 0.95rem;
}

.app-card,
.metric-card {
    background: var(--app-card);
    border: 1px solid rgba(226, 232, 240, 0.94);
    border-radius: var(--app-radius);
    box-shadow: var(--app-shadow);
}

.app-card {
    overflow: hidden;
}

.card-section-header {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    margin-bottom: 1rem;
}

.card-section-header p {
    color: var(--app-muted);
    margin-bottom: 0;
}

.metric-card {
    position: relative;
    overflow: hidden;
    transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

.metric-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--app-primary);
}

.metric-card:hover {
    transform: translateY(-1px);
    border-color: #bfdbfe;
    box-shadow: var(--app-shadow-lg);
}

.metric-value {
    color: var(--app-text);
    font-size: 2.2rem;
    font-weight: 800;
    line-height: 1;
}

.metric-help {
    color: var(--app-muted);
    font-size: 0.88rem;
}

.action-center-card {
    border-color: rgba(37, 99, 235, 0.18);
}

.action-center-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.action-group {
    display: grid;
    gap: 0.75rem;
    min-width: 0;
    padding: 0.95rem;
    background: #f8fafc;
    border: 1px solid var(--app-border);
    border-radius: var(--app-radius);
}

.action-group-warning {
    background: #fff7ed;
    border-color: #fed7aa;
}

.action-group-heading {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    justify-content: space-between;
    color: #334155;
    font-size: 0.82rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0;
}

.action-group-heading strong {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.65rem;
    min-height: 1.65rem;
    padding: 0.2rem 0.5rem;
    color: var(--app-primary-dark);
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 999px;
    font-size: 0.78rem;
}

.action-list {
    display: grid;
    gap: 0.55rem;
}

.action-item {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) auto;
    column-gap: 0.85rem;
    row-gap: 0.35rem;
    align-items: center;
    min-width: 0;
    padding: 0.72rem 0.8rem;
    color: var(--app-text);
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    border: 1px solid rgba(148, 163, 184, 0.3);
    border-radius: 8px;
    box-shadow: var(--app-shadow-sm);
}

.action-item-title,
.action-item-detail {
    display: grid;
    gap: 0.12rem;
    min-width: 0;
}

.action-item-title strong,
.action-item-title small,
.action-item-action,
.action-item-date {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.action-item-title strong {
    line-height: 1.25;
}

.action-item-title small,
.action-item-date {
    color: var(--app-muted);
    font-size: 0.82rem;
    line-height: 1.3;
}

.action-item-action {
    color: var(--app-text);
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.3;
}

.action-item-date {
    white-space: nowrap;
}

.action-item-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2rem;
    padding: 0.3rem 0.65rem;
    color: var(--app-primary-dark);
    text-decoration: none;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 800;
    white-space: nowrap;
    box-shadow: 0 1px 1px rgba(37, 99, 235, 0.08);
}

.action-item-link:hover,
.action-item-link:focus {
    color: #ffffff;
    background: var(--app-primary);
    border-color: var(--app-primary);
}

.dashboard-snapshot-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
}

.dashboard-snapshot-item {
    display: grid;
    gap: 0.25rem;
    min-width: 0;
    padding: 0.9rem;
    background: #f8fafc;
    border: 1px solid var(--app-border);
    border-radius: var(--app-radius);
}

.dashboard-snapshot-item span {
    color: var(--app-muted);
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0;
}

.dashboard-snapshot-item strong {
    color: var(--app-text);
    font-size: 1.45rem;
    line-height: 1.1;
}

.dashboard-snapshot-item small {
    color: var(--app-muted);
}

.dashboard-snapshot-warning {
    background: #fff7ed;
    border-color: #fed7aa;
}

.setup-shortcuts-card {
    background: #ffffff;
}

.setup-shortcut-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    justify-content: flex-start;
}

.setup-shortcut-links a {
    display: inline-flex;
    align-items: center;
    min-height: 2.15rem;
    padding: 0.35rem 0.7rem;
    color: #334155;
    text-decoration: none;
    background: #f8fafc;
    border: 1px solid var(--app-border);
    border-radius: 999px;
    font-size: 0.88rem;
    font-weight: 700;
}

.setup-shortcut-links a:hover,
.setup-shortcut-links a:focus {
    color: var(--app-primary-dark);
    background: #eff6ff;
    border-color: #bfdbfe;
}

.muted-label {
    color: var(--app-muted);
    font-size: 0.76rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0;
}

.setup-panel {
    background: linear-gradient(180deg, #ffffff, #f8fafc);
}

.setup-list {
    display: grid;
    gap: 0.75rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.setup-list li {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    padding: 0.85rem;
    background: #ffffff;
    border: 1px solid var(--app-border);
    border-radius: var(--app-radius);
}

.compact-setup-list li {
    padding: 0.65rem 0.75rem;
}

.platform-link-stack {
    display: grid;
    gap: 1rem;
}

.setup-status-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
}

.setup-status-item {
    display: grid;
    gap: 0.25rem;
    min-width: 0;
    padding: 0.85rem;
    background: #f8fafc;
    border: 1px solid var(--app-border);
    border-radius: 8px;
}

.setup-status-item span {
    color: var(--app-muted);
    font-size: 0.76rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0;
}

.setup-status-item strong {
    color: var(--app-text);
    font-size: 1.7rem;
    line-height: 1;
}

.setup-step {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 1.65rem;
    height: 1.65rem;
    color: var(--app-primary-dark);
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 800;
}

.setup-hero {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(239, 246, 255, 0.82));
}

.setup-hero .btn {
    flex: 0 0 auto;
}

.setup-helper-note {
    padding: 0.85rem 1rem;
    color: #475569;
    background: #f8fafc;
    border: 1px solid var(--app-border);
    border-radius: 8px;
    font-size: 0.92rem;
}

.setup-table td {
    vertical-align: middle;
}

.setup-table .badge {
    white-space: nowrap;
}

.setup-table form {
    margin-bottom: 0;
}

.quote-share-card {
    border-color: rgba(37, 99, 235, 0.18);
}

.quote-copy-box {
    display: grid;
    gap: 0.55rem;
    min-width: 0;
}

.quote-copy-help {
    color: var(--app-muted);
    font-size: 0.86rem;
}

.quote-copy-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    align-items: stretch;
}

.quote-copy-input {
    flex: 1 1 22rem;
    min-width: 0;
    min-height: 2.25rem;
    padding: 0.35rem 0.65rem;
    color: var(--app-text);
    background: #f8fafc;
    border: 1px solid var(--app-border);
    border-radius: 8px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
    font-size: 0.86rem;
}

.quote-copy-input:focus {
    border-color: #bfdbfe;
    outline: 0;
    box-shadow: 0 0 0 0.2rem rgba(37, 99, 235, 0.1);
}

.quote-copy-controls .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
}

.setup-form-card .card-body {
    background: linear-gradient(180deg, #ffffff, #fbfdff);
}

.setup-form {
    display: grid;
    gap: 0.95rem;
}

.setup-form-row {
    margin-bottom: 0;
    padding: 0.9rem;
    background: #f8fafc;
    border: 1px solid var(--app-border);
    border-radius: var(--app-radius);
}

.setup-form-row .form-label,
.setup-form-row .form-check-label {
    color: var(--app-text);
    font-weight: 700;
}

.setup-form-row .form-text {
    margin-top: 0.35rem;
}

.setup-form-row .errorlist {
    margin: 0.5rem 0 0;
    padding-left: 1.1rem;
    color: #b91c1c;
    font-size: 0.88rem;
}

.setup-form-row.form-check {
    padding-left: 2.55rem;
}

.setup-form-row.form-check .form-check-input {
    margin-left: -1.65rem;
}

.form-submit-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    align-items: center;
    margin-top: 0.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--app-border);
}

.table {
    margin-bottom: 0;
    color: var(--app-text);
}

.table thead th {
    color: #475569;
    background: #f8fafc;
    border-bottom-color: var(--app-border);
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0;
    white-space: nowrap;
}

.table > :not(caption) > * > * {
    padding: 0.9rem 0.85rem;
    border-bottom-color: #edf2f7;
}

.table tbody tr {
    transition: background-color 0.15s ease;
}

.table tbody tr:hover {
    background: #f8fafc;
}

.table tbody tr:last-child td {
    border-bottom: 0;
}

.table-link {
    font-weight: 700;
}

.badge {
    font-weight: 700;
    padding: 0.45em 0.65em;
    border-radius: 999px;
}

.text-bg-primary,
.bg-primary {
    background-color: var(--app-primary) !important;
}

.text-bg-secondary,
.bg-secondary {
    color: #334155 !important;
    background-color: #e2e8f0 !important;
}

.text-bg-info,
.bg-info {
    color: #1e3a8a !important;
    background-color: #dbeafe !important;
}

.text-bg-warning,
.bg-warning {
    color: #854d0e !important;
    background-color: #fef3c7 !important;
}

.text-bg-success,
.bg-success {
    color: #065f46 !important;
    background-color: #d1fae5 !important;
}

.text-bg-danger,
.bg-danger {
    color: #991b1b !important;
    background-color: #fee2e2 !important;
}

.btn {
    border-radius: var(--app-radius);
    font-weight: 700;
    box-shadow: none;
}

.btn-primary {
    background: var(--app-primary);
    border-color: var(--app-primary);
}

.btn-primary:hover,
.btn-primary:focus {
    background: var(--app-primary-dark);
    border-color: var(--app-primary-dark);
}

.btn-outline-primary {
    color: var(--app-primary);
    border-color: #bfdbfe;
    background: #ffffff;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
    color: #ffffff;
    border-color: var(--app-primary);
    background: var(--app-primary);
}

.btn-outline-secondary {
    color: #475569;
    border-color: var(--app-border-strong);
    background: #ffffff;
}

.btn-outline-secondary:hover,
.btn-outline-secondary:focus {
    color: var(--app-text);
    border-color: #94a3b8;
    background: #f8fafc;
}

.btn-sm {
    border-radius: var(--app-radius);
}

.form-control,
.form-select {
    color: var(--app-text);
    border-color: var(--app-border-strong);
    border-radius: var(--app-radius);
}

.form-control:focus,
.form-select:focus {
    border-color: var(--app-primary);
    box-shadow: 0 0 0 0.2rem rgba(37, 99, 235, 0.14);
}

.form-text,
.text-muted {
    color: var(--app-muted) !important;
}

.alert {
    border: 1px solid var(--app-border);
    border-radius: var(--app-radius);
    box-shadow: var(--app-shadow-sm);
}

.list-group-item {
    background: transparent;
}

code {
    display: inline-block;
    max-width: 100%;
    color: #334155;
    background: #f1f5f9;
    border: 1px solid var(--app-border);
    border-radius: 6px;
    padding: 0.2rem 0.4rem;
    overflow-wrap: anywhere;
}

.empty-state {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    align-items: flex-start;
    padding: 1rem;
    color: var(--app-muted);
    background: #f8fafc;
    border: 1px dashed var(--app-border-strong);
    border-radius: var(--app-radius);
}

.empty-state strong {
    color: var(--app-text);
}

body.auth-body,
body.public-body {
    background: linear-gradient(180deg, #f8fbff 0%, var(--app-bg) 100%);
}

.auth-shell,
.login-shell,
.thank-you-shell {
    min-height: 100vh;
}

.auth-brand {
    max-width: 34rem;
    margin-left: auto;
    margin-right: auto;
}

.brand-mark {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    color: #ffffff;
    background: linear-gradient(135deg, var(--app-primary), var(--app-primary-dark));
    border-radius: var(--app-radius);
    box-shadow: var(--app-shadow);
    font-weight: 800;
}

.login-card,
.auth-card,
.business-header,
.trust-card,
.form-card,
.audit-header,
.audit-form-card,
.thank-you-card {
    background: #ffffff;
    border: 1px solid rgba(226, 232, 240, 0.94);
    border-radius: var(--app-radius);
    box-shadow: var(--app-shadow);
}

.login-card,
.auth-card,
.form-card,
.audit-form-card,
.thank-you-card {
    overflow: hidden;
}

.login-title,
.public-body .page-title {
    letter-spacing: 0;
}

.helper-note {
    color: var(--app-muted);
    font-size: 0.9rem;
}

.demo-box,
.next-step-panel,
.appointment-reassurance {
    color: #334155;
    background: #f8fafc;
    border: 1px solid var(--app-border);
    border-radius: var(--app-radius);
}

.demo-box,
.next-step-panel {
    font-size: 0.92rem;
}

.appointment-reassurance {
    padding: 0.9rem;
    text-align: center;
}

.appointment-confirmation-status {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 0.85rem;
    color: #166534;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: 8px;
    font-weight: 700;
}

.public-next-step {
    margin-bottom: 1rem;
    padding: 0.9rem;
    background: #f8fafc;
    border: 1px solid var(--app-border);
    border-radius: 8px;
}

.auth-body .form-control,
.public-body .form-control,
.public-body .form-select {
    padding: 0.7rem 0.8rem;
}

.auth-body .btn,
.public-body .btn {
    padding: 0.72rem 1rem;
}

.public-shell,
.audit-shell {
    max-width: 940px;
    margin: 0 auto;
}

.legal-shell {
    max-width: 820px;
    margin: 0 auto;
}

.public-hero {
    padding: 1.6rem;
    background: linear-gradient(135deg, #ffffff, #f8fbff);
}

.legal-hero,
.legal-content {
    background: #ffffff;
    border: 1px solid rgba(226, 232, 240, 0.94);
    border-radius: var(--app-radius);
    box-shadow: var(--app-shadow);
}

.legal-content {
    padding: 1.5rem;
    color: #334155;
}

.legal-content h2 {
    margin-top: 1.5rem;
    margin-bottom: 0.6rem;
    color: var(--app-text);
    font-size: 1.05rem;
    font-weight: 800;
}

.legal-content h2:first-of-type {
    margin-top: 0;
}

.legal-content p,
.legal-content li {
    line-height: 1.65;
}

.business-name,
.brand-kicker {
    color: var(--app-primary-dark);
    font-size: 0.82rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0;
}

.contact-pill {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
    padding: 0.35rem 0.75rem;
    color: #334155;
    background: #f8fafc;
    border: 1px solid var(--app-border);
    border-radius: 999px;
    font-size: 0.9rem;
}

.contact-pill:hover,
.contact-pill:focus {
    color: var(--app-primary-dark);
    background: #eff6ff;
    border-color: #bfdbfe;
}

.trust-step {
    height: 100%;
    padding: 0.9rem;
    background: #f8fafc;
    border: 1px solid var(--app-border);
    border-radius: var(--app-radius);
}

.step-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 2rem;
    height: 2rem;
    color: var(--app-primary-dark);
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 999px;
    font-weight: 800;
}

.public-body .section-heading {
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--app-border);
}

.public-body .form-label {
    color: var(--app-text);
    font-weight: 700;
}

details.more-details {
    padding: 1rem;
    background: #f8fafc;
    border: 1px solid var(--app-border);
    border-radius: var(--app-radius);
}

details.more-details summary {
    color: var(--app-text);
    cursor: pointer;
    font-weight: 800;
}

.lead-source-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0.65rem;
}

.lead-source-option {
    display: flex;
    gap: 0.55rem;
    align-items: center;
    padding: 0.75rem 0.85rem;
    background: #f8fafc;
    border: 1px solid var(--app-border);
    border-radius: var(--app-radius);
}

.lead-source-option:hover {
    border-color: #bfdbfe;
    background: #eff6ff;
}

.audit-honeypot-wrap {
    position: absolute;
    left: -9999px;
    width: 0;
    height: 0;
    overflow: hidden;
}

.footer-note {
    color: var(--app-muted);
}

.legal-links {
    display: flex;
    gap: 0.45rem;
    align-items: center;
    justify-content: center;
    margin-top: 1rem;
    color: var(--app-muted);
    font-size: 0.82rem;
}

.legal-links a {
    color: var(--app-muted);
    text-decoration: none;
}

.legal-links a:hover,
.legal-links a:focus {
    color: var(--app-primary-dark);
    text-decoration: underline;
}

.success-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.5rem;
    height: 3.5rem;
    color: #15803d;
    background: #dcfce7;
    border: 1px solid #bbf7d0;
    border-radius: 999px;
    font-size: 1.6rem;
    font-weight: 800;
}

.clutch-public-body .success-mark {
    color: var(--app-primary-dark);
    background: #eff6ff;
    border-color: #bfdbfe;
}

.appointment-confirmation-card {
    max-width: 48rem;
    margin: 0 auto;
}

.appointment-detail-list {
    padding: 1rem;
    background: #f8fafc;
    border: 1px solid var(--app-border);
    border-radius: var(--app-radius);
}

.status-stack {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    align-items: flex-start;
}

.section-card-title {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.lead-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    color: var(--app-muted);
}

.lead-hero-meta span {
    display: inline-flex;
    align-items: center;
    min-height: 1.75rem;
    padding: 0.2rem 0.55rem;
    background: rgba(248, 250, 252, 0.88);
    border: 1px solid var(--app-border);
    border-radius: 999px;
    font-size: 0.86rem;
    font-weight: 700;
}

.lead-summary-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1rem;
}

.lead-summary-grid > * {
    min-width: 0;
    padding: 0.8rem;
    background: #f8fafc;
    border: 1px solid var(--app-border);
    border-radius: var(--app-radius);
}

.lead-filter-card {
    background: linear-gradient(180deg, #ffffff, #f8fafc);
}

.lead-table .customer-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.3rem;
}

.lead-table .customer-meta span {
    color: var(--app-muted);
    font-size: 0.84rem;
}

.detail-list {
    display: grid;
    grid-template-columns: minmax(8rem, 0.55fr) minmax(0, 1.45fr);
    gap: 0.85rem 1rem;
}

.detail-list dt,
.detail-list dd {
    width: auto;
    max-width: none;
    margin: 0;
    padding: 0;
}

.detail-list dt {
    color: var(--app-muted);
    font-size: 0.82rem;
    font-weight: 800;
    text-transform: uppercase;
}

.detail-list dd {
    color: var(--app-text);
}

.detail-list-item {
    padding-top: 0.9rem;
    padding-bottom: 0.9rem;
    border-color: var(--app-border);
}

.appointment-card,
.workflow-panel {
    padding: 1rem;
    background: #ffffff;
    border: 1px solid var(--app-border);
    border-radius: var(--app-radius);
    box-shadow: var(--app-shadow-sm);
}

.appointment-card {
    background: linear-gradient(180deg, #ffffff, #fbfdff);
}

.booking-status-panel,
.booking-form-section {
    padding: 0.9rem;
    background: #f8fafc;
    border: 1px solid var(--app-border);
    border-radius: 8px;
}

.booking-form-section + .booking-form-section {
    margin-top: 1rem;
}

.booking-status-meta {
    display: grid;
    gap: 0.55rem;
    min-width: min(100%, 22rem);
}

.booking-status-meta div {
    display: grid;
    gap: 0.15rem;
    padding: 0.65rem 0.75rem;
    background: #ffffff;
    border: 1px solid var(--app-border);
    border-radius: 8px;
}

.booking-status-meta span {
    color: var(--app-muted);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.booking-status-meta strong {
    color: var(--app-text);
    font-size: 0.92rem;
}

.appointment-meta-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
    padding: 0.85rem;
    background: #f8fafc;
    border: 1px solid var(--app-border);
    border-radius: var(--app-radius);
}

.appointment-progress {
    padding-top: 0.9rem;
    border-top: 1px solid var(--app-border);
}

.progress-step {
    padding: 0.75rem;
    background: #f8fafc;
    border: 1px solid var(--app-border);
    border-radius: var(--app-radius);
}

.action-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding-top: 0.9rem;
    border-top: 1px solid var(--app-border);
}

.ai-card {
    background: linear-gradient(180deg, #ffffff, #f8fbff);
}

.insight-block {
    padding: 0.9rem;
    background: #f8fafc;
    border: 1px solid var(--app-border);
    border-radius: var(--app-radius);
}

.knowledge-context {
    max-height: 18rem;
    padding: 0.9rem;
    overflow: auto;
    color: #334155;
    background: #f8fafc;
    border: 1px solid var(--app-border);
    border-radius: var(--app-radius);
    white-space: pre-wrap;
}

.timeline-list {
    display: grid;
    gap: 0.75rem;
}

.timeline-item {
    position: relative;
    padding: 0.9rem;
    background: #ffffff;
    border: 1px solid var(--app-border);
    border-radius: var(--app-radius);
}

.timeline-item::before {
    content: "";
    position: absolute;
    top: 1rem;
    left: -1px;
    width: 3px;
    height: 1.5rem;
    background: var(--app-primary);
    border-radius: 999px;
}

.lead-photo {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border: 1px solid var(--app-border);
    border-radius: var(--app-radius);
    box-shadow: var(--app-shadow-sm);
}

.document-page {
    display: grid;
    gap: 1.5rem;
    padding-bottom: 2rem;
}

.document-public-page {
    min-height: 100vh;
    margin: 0;
    background: #eef2f7;
}

.document-public-surface {
    display: flex;
    justify-content: center;
    padding: 2rem 1rem 1rem;
}

.document-public-legal {
    padding: 0 1rem 2rem;
}

.document-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.15rem;
    background: #ffffff;
    border: 1px solid var(--app-border);
    border-radius: var(--app-radius);
    box-shadow: var(--app-shadow);
}

.document-next-step-card {
    border-left: 4px solid #2563eb;
}

.document-action-groups {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) minmax(0, 1fr);
    gap: 1rem;
}

.document-action-group {
    display: grid;
    align-content: start;
    gap: 0.75rem;
    padding: 1rem;
    background: #f8fafc;
    border: 1px solid rgba(148, 163, 184, 0.35);
    border-radius: 8px;
}

.document-action-group h3 {
    margin: 0;
    color: #334155;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.document-danger-group {
    background: #fff7ed;
    border-color: rgba(248, 113, 113, 0.4);
}

.document-accounting-note {
    margin-top: 0.45rem;
    color: #64748b;
    font-size: 0.92rem;
}

#sales-documents {
    scroll-margin-top: 1rem;
}

.document-print-surface {
    display: flex;
    justify-content: center;
}

.document-summary-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.85rem;
}

.document-summary-card {
    display: grid;
    gap: 0.25rem;
    padding: 1rem;
    background: #ffffff;
    border: 1px solid rgba(148, 163, 184, 0.35);
    border-radius: 8px;
    box-shadow: 0 14px 35px rgba(15, 23, 42, 0.07);
}

.document-summary-card span {
    color: #475569;
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
}

.document-summary-card strong {
    color: #0f172a;
    font-size: 1.35rem;
    line-height: 1.15;
}

.document-summary-card small {
    color: #64748b;
}

.document-summary-card-warning {
    border-color: rgba(245, 158, 11, 0.5);
}

.document-summary-card-success {
    border-color: rgba(34, 197, 94, 0.45);
}

.document-filter-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.document-filter-tab {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.48rem 0.75rem;
    color: #334155;
    background: #ffffff;
    border: 1px solid rgba(148, 163, 184, 0.45);
    border-radius: 999px;
    font-size: 0.92rem;
    font-weight: 700;
    text-decoration: none;
}

.document-filter-tab:hover,
.document-filter-tab.active {
    color: #0f172a;
    background: #eff6ff;
    border-color: #93c5fd;
}

.document-filter-tab strong {
    min-width: 1.35rem;
    padding: 0.05rem 0.35rem;
    color: #1e3a8a;
    background: #dbeafe;
    border-radius: 999px;
    font-size: 0.78rem;
    text-align: center;
}

.document-action-badge {
    white-space: normal;
    text-align: left;
}

.document-row-overdue {
    --bs-table-bg: #fff7ed;
}

.document-sheet {
    max-width: 8.5in;
    width: 100%;
    margin: 0 auto;
    padding: 0.55in;
    color: #111827;
    background: #ffffff;
    border: 1px solid rgba(148, 163, 184, 0.6);
    border-radius: 6px;
    box-shadow: 0 22px 60px rgba(15, 23, 42, 0.14);
}

.document-sheet-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 2.25rem;
    padding-bottom: 1.2rem;
    border-bottom: 2px solid #0f172a;
}

.document-business h2 {
    margin: 0 0 0.35rem;
    color: #0f172a;
    font-size: 1.65rem;
    font-weight: 800;
}

.document-business-contact,
.document-footer {
    color: #475569;
}

.document-business-contact {
    display: grid;
    gap: 0.15rem;
    max-width: 24rem;
    font-size: 0.9rem;
    line-height: 1.4;
}

.document-summary-panel {
    min-width: 16rem;
    text-align: right;
}

.document-label {
    color: #0f172a;
    font-size: 1.7rem;
    font-weight: 800;
    letter-spacing: 0;
}

.document-number {
    color: #334155;
    font-weight: 700;
    margin-top: 0.1rem;
}

.document-status {
    display: inline-flex;
    margin-top: 0.55rem;
    padding: 0.25rem 0.55rem;
    color: #1e3a8a;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 700;
}

.document-meta-list {
    display: grid;
    gap: 0.32rem;
    margin: 0.9rem 0 0;
}

.document-meta-list div {
    display: grid;
    grid-template-columns: 5rem minmax(0, 1fr);
    gap: 0.75rem;
}

.document-meta-list dt,
.document-meta-list dd {
    margin: 0;
}

.document-meta-list dt {
    color: #64748b;
    font-weight: 700;
}

.document-meta-list dd {
    color: #0f172a;
    font-weight: 700;
}

.document-section-label {
    margin-bottom: 0.45rem;
    color: #334155;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.document-info-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    gap: 1rem;
    margin-top: 1.4rem;
}

.document-bill-to,
.document-job-summary {
    padding: 0.95rem;
    background: #f8fafc;
    border: 1px solid var(--app-border);
    border-radius: var(--app-radius);
}

.document-bill-to address {
    display: grid;
    gap: 0.18rem;
    margin: 0;
    color: #334155;
    font-style: normal;
    line-height: 1.45;
}

.document-bill-to strong,
.document-job-service {
    color: #0f172a;
    font-weight: 800;
}

.document-job-summary {
    color: #334155;
    line-height: 1.5;
}

.document-job-message {
    margin-top: 0.25rem;
}

.document-job-location {
    margin-top: 0.65rem;
    color: #64748b;
    font-size: 0.9rem;
}

.document-line-items {
    margin-top: 1.45rem;
    overflow-x: auto;
    border: 1px solid var(--app-border);
    border-radius: var(--app-radius);
}

.document-line-items table {
    width: 100%;
    border-collapse: collapse;
    min-width: 36rem;
}

.document-line-items th,
.document-line-items td {
    padding: 0.72rem 0.82rem;
    border-bottom: 1px solid var(--app-border);
    vertical-align: top;
}

.document-line-items th {
    color: #334155;
    background: #eef2f7;
    font-size: 0.82rem;
    font-weight: 800;
    text-transform: uppercase;
}

.document-line-items tbody tr:last-child td {
    border-bottom: 0;
}

.number-column,
.money-column {
    text-align: right;
    white-space: nowrap;
}

.document-totals {
    display: grid;
    gap: 0;
    max-width: 20rem;
    margin: 1.25rem 0 0 auto;
    padding: 0.85rem 1rem;
    background: #f8fafc;
    border: 1px solid var(--app-border);
    border-radius: var(--app-radius);
}

.document-total-line {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.35rem 0;
    color: #334155;
}

.document-total-row {
    margin-top: 0.35rem;
    padding-top: 0.8rem;
    color: #0f172a;
    border-top: 1px solid var(--app-border-strong);
    font-size: 1.18rem;
}

.document-lower-grid {
    display: grid;
    gap: 1rem;
    margin-top: 1.5rem;
}

.document-notes,
.document-terms {
    padding-top: 1rem;
    border-top: 1px solid var(--app-border);
    color: #334155;
    line-height: 1.5;
}

.document-footer {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.5rem;
    padding-top: 1rem;
    color: #475569;
    border-top: 1px solid var(--app-border);
    font-size: 0.86rem;
}

.document-builder-page {
    max-width: 1040px;
    margin: 0 auto;
}

.document-builder-form {
    display: grid;
    gap: 1rem;
}

.document-builder-card {
    overflow: hidden;
}

.builder-section-header {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.line-item-builder {
    display: grid;
    gap: 0.65rem;
}

.line-item-builder-head,
.line-item-builder-row {
    display: grid;
    grid-template-columns: minmax(15rem, 1fr) 7rem 9rem 6rem;
    gap: 0.75rem;
    align-items: start;
}

.line-item-builder-head {
    padding: 0 0.75rem;
    color: #64748b;
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
}

.line-item-builder-row {
    padding: 0.85rem;
    background: #f8fafc;
    border: 1px solid var(--app-border);
    border-radius: var(--app-radius);
}

.line-item-builder-row .form-label {
    display: none;
}

.line-item-row-error {
    grid-column: 1 / -1;
}

.line-item-delete-cell {
    min-height: 2.35rem;
    display: flex;
    align-items: center;
}

.document-builder-submit {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    padding: 1rem;
    background: #ffffff;
    border: 1px solid var(--app-border);
    border-radius: var(--app-radius);
    box-shadow: var(--app-shadow-sm);
}

.form-builder-public-body {
    --form-primary-safe: var(--form-primary, var(--public-form-primary, var(--app-primary)));
    --form-bg-safe: var(--form-bg, var(--public-form-bg, #f8fbff));
    --form-card-safe: var(--form-card, #ffffff);
    --form-border-safe: var(--form-border, #dbe3ef);
    --form-text-safe: var(--form-text, #0f172a);
    --form-muted-safe: #475569;
    --form-muted-strong-safe: #334155;
    color: var(--form-text-safe);
    background: var(--form-bg-safe);
    background:
        radial-gradient(circle at 8% 7%, color-mix(in srgb, var(--form-primary-safe) 10%, transparent), transparent 30rem),
        radial-gradient(circle at 90% 12%, rgba(251, 191, 36, 0.14), transparent 24rem),
        linear-gradient(180deg, var(--form-bg-safe) 0%, #ffffff 120%);
}

.public-form-page {
    padding-top: 1.75rem;
    padding-bottom: 1.75rem;
}

.public-form-shell {
    max-width: 920px;
}

.public-form-shell.public-form-compact {
    max-width: 820px;
}

.public-form-shell.public-form-spacious {
    max-width: 1000px;
}

.public-form-preview-banner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
    padding: 0.85rem 1rem;
    color: #1e3a8a;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: var(--app-radius);
    box-shadow: var(--app-shadow-sm);
}

.public-form-preview-banner .d-flex {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.public-form-split-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
    max-width: 900px;
    margin: 0 auto;
}

.public-form-info-panel,
.public-form-panel {
    border-radius: 14px;
    box-shadow: 0 16px 38px rgba(15, 23, 42, 0.08);
}

.public-form-info-panel {
    position: relative;
    display: grid;
    gap: 1rem;
    min-height: 0;
    padding: 1.15rem 1.25rem;
    color: var(--form-text-safe);
    background:
        linear-gradient(180deg, #ffffff, color-mix(in srgb, var(--form-primary-safe) 4%, #ffffff)),
        #ffffff;
    border: 1px solid var(--form-border-safe);
    border-top: 4px solid var(--form-primary-safe);
    overflow: hidden;
}

.public-form-info-panel > * {
    position: relative;
    z-index: 1;
}

.public-form-info-panel::before {
    content: none;
}

.public-form-info-panel::after {
    content: none;
    position: absolute;
    right: -4.25rem;
    bottom: -4.25rem;
    width: 14rem;
    height: 14rem;
    pointer-events: none;
    background:
        radial-gradient(circle, rgba(255, 255, 255, 0.16) 0 22%, transparent 23%),
        radial-gradient(circle, rgba(251, 191, 36, 0.18), transparent 62%);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 999px;
}

.public-form-panel {
    padding: 1.65rem;
    background: var(--form-card-safe);
    border: 1px solid var(--form-border-safe);
}

.public-form-brand {
    color: var(--form-text-safe);
    font-size: 0.78rem;
    font-weight: 850;
    letter-spacing: 0;
    text-transform: uppercase;
    overflow-wrap: anywhere;
}

.public-form-kicker {
    display: inline-flex;
    align-items: center;
    justify-self: start;
    max-width: 100%;
    min-height: 1.8rem;
    margin-top: 0.5rem;
    padding: 0.35rem 0.55rem;
    color: var(--form-primary-safe);
    background: color-mix(in srgb, var(--form-primary-safe) 8%, #ffffff);
    border: 1px solid color-mix(in srgb, var(--form-primary-safe) 18%, #e2e8f0);
    border-radius: 999px;
    font-size: 0.76rem;
    font-weight: 750;
}

.public-form-title {
    max-width: 34rem;
    margin: 0.7rem 0 0;
    color: var(--form-text-safe);
    font-size: clamp(1.7rem, 3.2vw, 2.25rem);
    font-weight: 800;
    line-height: 1.12;
    letter-spacing: 0;
    overflow-wrap: anywhere;
}

.public-form-subtitle {
    max-width: 34rem;
    margin: 0.85rem 0 0;
    color: var(--form-muted-safe);
    font-size: 0.98rem;
    line-height: 1.55;
}

.public-form-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.65rem;
    margin-top: 1rem;
}

.public-form-step {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.55rem;
    align-items: start;
    padding: 0.65rem 0.7rem;
    background: #ffffff;
    border: 1px solid color-mix(in srgb, var(--form-primary-safe) 14%, #e2e8f0);
    border-radius: 10px;
}

.public-form-step-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.45rem;
    height: 1.45rem;
    color: #ffffff;
    background: var(--form-primary-safe);
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 900;
}

.public-form-step strong,
.public-form-step span:not(.public-form-step-number) {
    display: block;
}

.public-form-step strong {
    color: var(--form-text-safe);
    font-size: 0.9rem;
    font-weight: 820;
    line-height: 1.25;
}

.public-form-step span:not(.public-form-step-number) {
    margin-top: 0.08rem;
    color: var(--form-muted-safe);
    font-size: 0.82rem;
    line-height: 1.4;
}

.public-form-trust-list {
    display: grid;
    gap: 0.55rem;
    margin-top: 0.9rem;
}

.public-form-trust-item {
    padding: 0.7rem 0.75rem;
    background: rgba(255, 255, 255, 0.075);
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 11px;
}

.public-form-trust-item strong,
.public-form-trust-item span {
    display: block;
}

.public-form-trust-item strong {
    color: #ffffff;
    font-size: 0.93rem;
    font-weight: 820;
}

.public-form-trust-item span {
    margin-top: 0.15rem;
    color: rgba(255, 255, 255, 0.74);
    font-size: 0.88rem;
    line-height: 1.45;
}

.public-form-service-card {
    margin-top: 0.95rem;
    padding: 0.75rem 0 0;
    color: var(--form-muted-safe);
    border-top: 1px solid var(--form-border-safe);
}

.public-form-service-card strong,
.public-form-service-card span {
    display: block;
}

.public-form-service-card strong {
    color: var(--form-text-safe);
    font-size: 0.9rem;
    font-weight: 820;
}

.public-form-service-card span {
    margin-top: 0.2rem;
    font-size: 0.86rem;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.public-form-contact-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin-top: 0;
}

.public-form-contact-link {
    display: inline-flex;
    align-items: center;
    min-height: 2.25rem;
    padding: 0.52rem 0.72rem;
    color: var(--form-primary-safe);
    text-decoration: none;
    background: color-mix(in srgb, var(--form-primary-safe) 6%, #ffffff);
    border: 1px solid color-mix(in srgb, var(--form-primary-safe) 18%, #e2e8f0);
    border-radius: 10px;
    font-size: 0.88rem;
    font-weight: 720;
    overflow-wrap: anywhere;
}

.public-form-contact-link:hover,
.public-form-contact-link:focus {
    color: var(--form-primary-safe);
    background: color-mix(in srgb, var(--form-primary-safe) 11%, #ffffff);
}

.public-form-contact-note {
    margin-top: 0;
    padding: 0.7rem 0.8rem;
    color: var(--form-muted-safe);
    background: #ffffff;
    border: 1px solid var(--form-border-safe);
    border-radius: 12px;
    font-size: 0.88rem;
    line-height: 1.45;
}

@media (min-width: 768px) {
    .public-form-info-panel > div:first-child {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(17rem, 0.82fr);
        column-gap: 1rem;
        align-items: start;
    }

    .public-form-info-panel > div:first-child > .public-form-brand,
    .public-form-info-panel > div:first-child > .public-form-kicker,
    .public-form-info-panel > div:first-child > .public-form-title,
    .public-form-info-panel > div:first-child > .public-form-subtitle {
        grid-column: 1;
    }

    .public-form-info-panel > div:first-child > .public-form-steps {
        grid-column: 2;
        grid-row: 1 / span 4;
    }

    .public-form-info-panel > div:first-child > .public-form-service-card {
        grid-column: 2;
    }

    .public-form-steps {
        grid-template-columns: 1fr;
        margin-top: 0;
    }

    .public-form-service-card {
        margin-top: 0.65rem;
        padding-top: 0.65rem;
    }

    .public-form-contact-list,
    .public-form-contact-note {
        margin-top: -0.1rem;
    }
}

.public-form-mobile-intro,
.public-form-mobile-aftercare {
    display: none;
}

.public-form-success-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    margin: 0 auto 0.85rem;
    color: var(--form-primary-safe);
    background: color-mix(in srgb, var(--form-primary-safe) 10%, #ffffff);
    border: 1px solid color-mix(in srgb, var(--form-primary-safe) 22%, #e2e8f0);
    border-radius: 999px;
    font-size: 1.35rem;
    font-weight: 900;
}

.form-builder-public-body a:not(.btn):not(.contact-pill) {
    color: inherit;
}

.form-builder-public-body .btn-primary {
    background: var(--form-primary-safe);
    border-color: var(--form-primary-safe);
}

.form-builder-public-body .btn-primary:hover,
.form-builder-public-body .btn-primary:focus {
    filter: brightness(0.94);
}

.public-form-panel-heading {
    margin-bottom: 1.35rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--form-border-safe);
}

.public-form-panel-title {
    margin: 0;
    color: var(--form-text-safe);
    font-size: 1.45rem;
    font-weight: 820;
    letter-spacing: 0;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.public-form-panel-copy {
    margin: 0.35rem 0 0;
    color: var(--form-muted-safe);
    line-height: 1.55;
}

.public-form-grid {
    align-items: start;
    row-gap: 1.15rem;
}

.public-form-question {
    min-width: 0;
}

.public-form-panel .form-label {
    margin-bottom: 0.4rem;
    color: var(--form-text-safe);
    font-size: 0.95rem;
    font-weight: 800;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.public-question-label {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem 0.4rem;
    align-items: center;
}

.required-mark {
    color: var(--form-primary-safe);
    font-weight: 900;
}

.public-field-status {
    display: inline-flex;
    align-items: center;
    min-height: 1.25rem;
    padding: 0.12rem 0.42rem;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 850;
    line-height: 1;
}

.public-field-required {
    color: color-mix(in srgb, var(--form-primary-safe) 78%, #111827);
    background: color-mix(in srgb, var(--form-primary-safe) 10%, #ffffff);
    border: 1px solid color-mix(in srgb, var(--form-primary-safe) 22%, #e2e8f0);
}

.public-field-optional {
    color: var(--form-muted-safe);
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}

.public-form-panel .form-control,
.public-form-panel .form-select {
    display: block;
    box-sizing: border-box;
    width: 100%;
    min-height: 3rem;
    padding: 0.78rem 0.9rem;
    background: #ffffff;
    color: var(--form-text-safe);
    border-color: #cbd5e1;
}

.public-form-panel .form-control::placeholder {
    color: #64748b;
    opacity: 1;
}

.public-form-panel textarea.form-control {
    min-height: 8.5rem;
}

.form-builder-public-body .form-control:focus,
.form-builder-public-body .form-select:focus,
.form-builder-public-body .form-check-input:focus {
    border-color: var(--form-primary-safe);
    box-shadow: 0 0 0 0.2rem rgba(37, 99, 235, 0.14);
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--form-primary-safe) 18%, transparent);
}

.form-builder-public-body .form-check-input:checked {
    background-color: var(--form-primary-safe);
    border-color: var(--form-primary-safe);
}

.dynamic-choice-stack {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
    gap: 0.6rem;
    padding: 0.85rem;
    background: #f8fafc;
    border: 1px solid var(--form-border-safe);
    border-radius: var(--app-radius);
}

.dynamic-choice-stack .form-check {
    margin-bottom: 0;
}

.dynamic-choice-panels .form-check {
    min-height: 2.5rem;
    padding: 0.6rem 0.7rem 0.6rem 2.25rem;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
}

.dynamic-choice-panels .form-check-input {
    margin-left: -1.45rem;
}

.dynamic-checkbox {
    min-height: 3rem;
    padding: 0.8rem 0.9rem 0.8rem 2.45rem;
    background: #f8fafc;
    border: 1px solid var(--form-border-safe);
    border-radius: var(--app-radius);
}

.public-help-text {
    margin-top: 0.4rem;
    padding-left: 0.65rem;
    color: var(--form-muted-safe) !important;
    border-left: 3px solid color-mix(in srgb, var(--form-primary-safe) 24%, #e2e8f0);
    font-size: 0.88rem;
    line-height: 1.45;
}

.public-form-error-summary {
    color: #991b1b;
    background: #fef2f2;
    border-color: #fecaca;
}

.public-form-panel fieldset {
    min-width: 0;
    margin: 0;
}

.public-form-panel legend.form-label {
    margin-bottom: 0.5rem;
    font-size: 0.95rem;
    font-weight: 800;
}

.public-form-panel .errorlist {
    margin: 0;
    padding: 0.65rem 0.8rem 0.65rem 1.75rem;
    color: #991b1b;
    background: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: 8px;
    font-size: 0.88rem;
}

.public-form-submit-area {
    display: grid;
    gap: 0.65rem;
    margin-top: 1.5rem;
    padding: 1rem;
    background: #f8fafc;
    border: 1px solid var(--form-border-safe);
    border-radius: 14px;
}

.dynamic-form-submit {
    min-height: 3.25rem;
    font-weight: 820;
    font-size: 1rem;
    letter-spacing: 0;
    box-shadow: 0 10px 22px rgba(37, 99, 235, 0.16);
    box-shadow: 0 10px 22px color-mix(in srgb, var(--form-primary-safe) 22%, transparent);
    transition: transform 0.15s ease, filter 0.15s ease, box-shadow 0.15s ease;
}

.dynamic-form-submit:not(:disabled):hover,
.dynamic-form-submit:not(:disabled):focus {
    transform: translateY(-1px);
    box-shadow: 0 14px 28px rgba(37, 99, 235, 0.2);
    box-shadow: 0 14px 28px color-mix(in srgb, var(--form-primary-safe) 26%, transparent);
}

.submit-reassurance {
    max-width: 34rem;
    margin: 0 auto;
    color: var(--form-muted-safe);
    font-size: 0.9rem;
    line-height: 1.45;
    text-align: center;
}

.public-form-empty {
    background: #f8fafc;
    border-color: var(--form-border-safe);
}

.public-form-thank-you {
    display: grid;
    justify-items: center;
    align-content: center;
    min-height: 22rem;
    padding: 1rem 0.25rem;
    text-align: center;
}

.public-form-thank-you-eyebrow {
    color: var(--form-primary-safe);
    font-size: 0.78rem;
    font-weight: 850;
    letter-spacing: 0;
    text-transform: uppercase;
}

.public-form-thank-you .public-form-panel-title {
    max-width: 34rem;
    margin-top: 0.45rem;
    font-size: clamp(1.65rem, 3vw, 2.15rem);
}

.public-form-thank-you .public-form-panel-copy {
    max-width: 34rem;
    margin-top: 0.65rem;
}

.public-form-thank-you-next {
    display: grid;
    box-sizing: border-box;
    gap: 0.25rem;
    width: 100%;
    max-width: 34rem;
    margin: 1.25rem auto 0;
    padding: 1rem 1.05rem;
    color: var(--form-muted-safe);
    background:
        linear-gradient(180deg, #ffffff, color-mix(in srgb, var(--form-primary-safe) 5%, #ffffff)),
        #ffffff;
    border: 1px solid var(--form-border-safe);
    border-left: 4px solid var(--form-primary-safe);
    border-radius: 14px;
    font-size: 0.92rem;
    line-height: 1.45;
    text-align: left;
}

.public-form-thank-you-next strong,
.public-form-thank-you-next span {
    display: block;
}

.public-form-thank-you-next strong {
    color: var(--form-text-safe);
    font-size: 0.95rem;
    font-weight: 850;
}

.public-form-thank-you-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.6rem;
    width: 100%;
    max-width: 34rem;
    margin-top: 1.15rem;
}

.public-form-thank-you-contact-label {
    flex: 1 0 100%;
    color: var(--form-muted-safe);
    font-size: 0.88rem;
    font-weight: 720;
}

.public-form-thank-you-actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 1 1 12rem;
    min-height: 2.65rem;
    min-width: 10.5rem;
    padding: 0.62rem 0.85rem;
    text-decoration: none;
    border: 1px solid color-mix(in srgb, var(--form-primary-safe) 20%, #dbe3ef);
    border-radius: 10px;
}

.public-form-thank-you-actions .btn-outline-primary {
    color: var(--form-primary-safe);
    background: color-mix(in srgb, var(--form-primary-safe) 6%, #ffffff);
}

.public-form-thank-you-actions .btn-outline-secondary {
    color: var(--form-muted-strong-safe);
    background: #ffffff;
    border-color: var(--form-border-safe);
}

.public-form-powered {
    margin-top: 1.15rem;
    color: var(--form-muted-safe);
    font-size: 0.78rem;
    text-align: center;
}

.public-form-powered span {
    font-weight: 800;
}

.form-command-card {
    border-color: rgba(37, 99, 235, 0.16);
}

.form-share-card {
    border-color: rgba(37, 99, 235, 0.18);
}

.form-share-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    align-items: stretch;
    min-width: 0;
}

.form-share-input {
    min-height: 2.65rem;
    font-size: 0.88rem;
}

.form-readiness-list {
    display: grid;
    gap: 0.55rem;
}

.form-readiness-item {
    display: flex;
    gap: 0.65rem;
    align-items: flex-start;
    padding: 0.7rem 0.8rem;
    border: 1px solid var(--app-border);
    border-radius: 8px;
    background: #f8fafc;
}

.form-readiness-item span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-width: 1.8rem;
    min-height: 1.8rem;
    padding: 0.15rem 0.35rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 800;
}

.form-readiness-item.is-ok {
    background: #f0fdf4;
    border-color: #bbf7d0;
}

.form-readiness-item.is-ok span {
    color: #065f46;
    background: #d1fae5;
}

.form-readiness-item.is-warning {
    background: #fff7ed;
    border-color: #fed7aa;
}

.form-readiness-item.is-warning span {
    color: #854d0e;
    background: #ffedd5;
}

.form-readiness-inline {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.style-preset-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.75rem;
}

.style-preset-option {
    display: grid;
    gap: 0.55rem;
    min-width: 0;
    padding: 0.85rem;
    background: #ffffff;
    border: 1px solid var(--app-border);
    border-radius: 8px;
    cursor: pointer;
}

.style-preset-option:hover,
.style-preset-option:focus-within {
    border-color: #93c5fd;
    box-shadow: var(--app-shadow-sm);
}

.style-preset-option input {
    margin: 0;
}

.style-preset-option span:last-child {
    color: var(--app-text);
    font-size: 0.9rem;
    font-weight: 700;
}

.style-preset-swatch {
    display: block;
    width: 100%;
    min-height: 3rem;
    border: 1px solid var(--app-border);
    border-radius: 8px;
    background:
        linear-gradient(90deg, var(--preset-primary) 0 38%, transparent 38%),
        var(--preset-bg);
}

.question-card-list {
    display: grid;
    gap: 0.85rem;
}

.hidden-question-card {
    overflow: hidden;
}

.hidden-question-summary {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    cursor: pointer;
    list-style: none;
}

.hidden-question-summary::-webkit-details-marker {
    display: none;
}

.hidden-question-summary span:first-child {
    display: grid;
    gap: 0.1rem;
}

.hidden-question-summary small {
    color: var(--app-muted);
}

.hidden-question-card[open] .hidden-question-summary {
    border-bottom: 1px solid var(--app-border);
}

.question-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    padding: 1rem;
    background: #ffffff;
    border: 1px solid var(--app-border);
    border-radius: 8px;
    box-shadow: var(--app-shadow-sm);
}

.question-card-muted {
    background: #f8fafc;
}

.question-card-main {
    min-width: 0;
}

.question-title-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: flex-start;
    justify-content: space-between;
}

.question-title-row h3 {
    max-width: 100%;
    overflow-wrap: anywhere;
}

.question-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    justify-content: flex-end;
    align-content: flex-start;
}

.question-card-actions form {
    margin: 0;
}

.question-advanced-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem 0.9rem;
    color: var(--app-muted);
    font-size: 0.84rem;
}

.quick-question-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.55rem;
}

.answer-options-row[hidden] {
    display: none !important;
}

@supports (padding: max(0px)) {
    .app-navbar {
        padding-top: max(0.5rem, env(safe-area-inset-top));
    }

    body.auth-body,
    body.public-body {
        padding-left: env(safe-area-inset-left);
        padding-right: env(safe-area-inset-right);
    }
}

@media (max-width: 991.98px) {
    .navbar .nav-link {
        padding-left: 0.85rem;
        padding-right: 0.85rem;
    }

    .app-navbar .navbar-collapse {
        padding-top: 0.75rem;
    }

    .app-navbar .navbar-nav {
        gap: 0.2rem;
    }

    .app-navbar .d-flex {
        align-items: stretch !important;
        padding-top: 0.5rem;
    }

    .dashboard-hero {
        padding: 1.2rem;
    }

    .action-center-grid,
    .dashboard-snapshot-grid,
    .setup-status-grid {
        grid-template-columns: 1fr;
    }

    .action-item {
        grid-template-columns: minmax(0, 1fr);
        align-items: start;
        padding: 0.75rem;
    }

    .action-item-title strong,
    .action-item-title small,
    .action-item-action,
    .action-item-date {
        white-space: normal;
    }

    .action-item-link {
        justify-self: stretch;
        width: 100%;
    }

    .lead-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    body {
        font-size: 0.94rem;
    }

    .container {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .page-header {
        padding: 1rem;
    }

    .dashboard-hero-actions {
        width: 100%;
    }

    .dashboard-hero-actions .btn {
        flex: 1 1 12rem;
    }

    .public-hero,
    .business-header,
    .audit-header {
        padding: 1.15rem;
    }

    .public-form-page {
        padding-top: 0.75rem;
        padding-bottom: 1.1rem;
    }

    .public-form-preview-banner {
        gap: 0.65rem !important;
        margin-bottom: 0.75rem !important;
        padding: 0.7rem 0.75rem;
        font-size: 0.9rem;
    }

    .public-form-preview-banner .d-flex {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.5rem !important;
        width: 100%;
    }

    .public-form-preview-banner .btn {
        width: 100%;
        min-height: 2.45rem;
        padding-left: 0.5rem;
        padding-right: 0.5rem;
    }

    .public-form-split-layout {
        grid-template-columns: 1fr;
        gap: 0.75rem;
    }

    .public-form-desktop-panel {
        display: none;
    }

    .public-form-mobile-intro,
    .public-form-mobile-aftercare {
        box-sizing: border-box;
        display: block;
        width: 100%;
        padding: 0.9rem;
        background: #ffffff;
        border: 1px solid var(--form-border-safe);
        border-radius: 16px;
        box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
    }

    .public-form-mobile-intro {
        margin-bottom: 0.75rem;
        border-top: 4px solid var(--form-primary-safe);
    }

    .public-form-mobile-brand {
        color: var(--form-text-safe);
        font-size: 0.82rem;
        font-weight: 850;
        letter-spacing: 0;
        text-transform: uppercase;
        overflow-wrap: anywhere;
    }

    .public-form-mobile-intro .public-form-kicker {
        min-height: 1.6rem;
        margin-top: 0.45rem;
        padding: 0.28rem 0.5rem;
        color: var(--form-primary-safe);
        background: color-mix(in srgb, var(--form-primary-safe) 9%, #ffffff);
        border-color: color-mix(in srgb, var(--form-primary-safe) 18%, #e2e8f0);
        font-size: 0.72rem;
    }

    .public-form-mobile-title {
        margin: 0.55rem 0 0;
        color: var(--form-text-safe);
        font-size: 1.42rem;
        font-weight: 850;
        line-height: 1.14;
        letter-spacing: 0;
        overflow-wrap: anywhere;
    }

    .public-form-mobile-subtitle {
        margin: 0.55rem 0 0;
        color: var(--form-muted-safe);
        font-size: 0.92rem;
        line-height: 1.45;
        overflow-wrap: anywhere;
    }

    .public-form-mobile-contact-row {
        display: grid;
        grid-template-columns: 1fr;
        gap: 0.5rem;
        margin-top: 0.8rem;
    }

    .public-form-mobile-intro .public-form-contact-link,
    .public-form-thank-you-actions .btn {
        min-height: 2.65rem;
    }

    .public-form-mobile-intro .public-form-contact-link {
        justify-content: center;
        color: var(--form-primary-safe);
        background: color-mix(in srgb, var(--form-primary-safe) 7%, #ffffff);
        border-color: color-mix(in srgb, var(--form-primary-safe) 18%, #e2e8f0);
        text-align: center;
    }

    .public-form-mobile-intro .public-form-contact-link:hover,
    .public-form-mobile-intro .public-form-contact-link:focus {
        color: var(--form-primary-safe);
        background: color-mix(in srgb, var(--form-primary-safe) 12%, #ffffff);
    }

    .public-form-info-panel {
        min-height: auto;
        padding: 0.95rem;
    }

    .public-form-info-panel::before {
        width: 3.5rem;
        height: 0.24rem;
        margin-bottom: 0.75rem;
    }

    .public-form-kicker {
        min-height: 1.65rem;
        margin-top: 0.35rem;
        padding: 0.28rem 0.5rem;
        font-size: 0.72rem;
    }

    .public-form-title {
        margin-top: 0.55rem;
        font-size: 1.48rem;
        line-height: 1.14;
    }

    .public-form-subtitle {
        margin-top: 0.65rem;
        font-size: 0.94rem;
    }

    .public-form-steps {
        gap: 0.42rem;
        margin-top: 0.85rem;
    }

    .public-form-step {
        gap: 0.5rem;
        padding: 0.55rem 0.6rem;
    }

    .public-form-step-number {
        width: 1.32rem;
        height: 1.32rem;
    }

    .public-form-step span:not(.public-form-step-number) {
        font-size: 0.78rem;
    }

    .public-form-trust-list {
        gap: 0.42rem;
        margin-top: 0.65rem;
    }

    .public-form-trust-item {
        padding: 0.6rem 0.65rem;
    }

    .public-form-panel {
        padding: 1rem;
        border-radius: 16px;
        box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
    }

    .public-form-contact-list {
        grid-template-columns: 1fr;
    }

    .public-form-contact-link {
        justify-content: center;
        min-height: 2.75rem;
        text-align: center;
    }

    .public-form-contact-note {
        margin-top: 0.75rem;
        padding: 0.65rem 0.7rem;
    }

    .public-form-panel-heading {
        margin-bottom: 0.75rem;
        padding-bottom: 0.65rem;
    }

    .public-form-panel-heading .public-form-panel-title {
        font-size: 1.2rem;
    }

    .public-form-panel-heading .public-form-panel-copy {
        display: none;
    }

    .public-form-thank-you {
        min-height: 18rem;
    }

    .public-form-thank-you-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .public-form-mobile-aftercare {
        display: grid;
        gap: 0.75rem;
        margin-top: 0.75rem;
    }

    .public-form-mobile-aftercare-heading strong,
    .public-form-mobile-aftercare-heading span,
    .public-form-mobile-service-area strong,
    .public-form-mobile-service-area span {
        display: block;
    }

    .public-form-mobile-aftercare-heading strong,
    .public-form-mobile-service-area strong {
        color: var(--form-text-safe);
        font-size: 0.92rem;
        font-weight: 850;
    }

    .public-form-mobile-aftercare-heading span,
    .public-form-mobile-service-area span {
        margin-top: 0.15rem;
        color: var(--form-muted-safe);
        font-size: 0.86rem;
        line-height: 1.4;
        overflow-wrap: anywhere;
    }

    .public-form-mobile-steps {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.45rem;
    }

    .public-form-mobile-steps span {
        min-width: 0;
        padding: 0.48rem 0.45rem;
        color: var(--form-primary-safe);
        background: color-mix(in srgb, var(--form-primary-safe) 8%, #ffffff);
        border: 1px solid color-mix(in srgb, var(--form-primary-safe) 16%, #e2e8f0);
        border-radius: 9px;
        font-size: 0.74rem;
        font-weight: 800;
        line-height: 1.2;
        text-align: center;
        overflow-wrap: anywhere;
    }

    .public-form-powered {
        margin-top: 0.85rem;
    }

    .card-body {
        padding: 1rem !important;
    }

    .auth-shell,
    .login-shell,
    .thank-you-shell {
        min-height: calc(100vh - 2rem);
    }

    .brand-mark {
        width: 2.75rem;
        height: 2.75rem;
    }

    .btn,
    .nav-link,
    .form-control,
    .form-select {
        min-height: 44px;
    }

    .btn {
        white-space: normal;
    }

    .form-submit-bar .btn,
    .action-bar .btn,
    .public-body .btn-lg,
    .auth-body .btn {
        width: 100%;
    }

    .setup-form-row,
    .trust-step,
    .appointment-card,
    .booking-status-panel,
    .booking-form-section,
    .workflow-panel,
    .insight-block,
    .timeline-item {
        padding: 0.85rem;
    }

    .metric-value {
        font-size: 1.85rem;
    }

    .metric-card {
        min-height: 7rem;
    }

    .table-responsive {
        border: 1px solid var(--app-border);
        border-radius: var(--app-radius);
    }

    .table-responsive > .table {
        min-width: 680px;
    }

    .table > :not(caption) > * > * {
        padding: 0.75rem 0.65rem;
    }

    .lead-summary-grid,
    .detail-list {
        grid-template-columns: 1fr;
    }

    .lead-hero-meta span,
    .contact-pill {
        width: 100%;
        justify-content: center;
    }

    .lead-source-grid {
        grid-template-columns: 1fr;
    }

    .quote-copy-controls {
        display: grid;
        grid-template-columns: 1fr;
    }

    .quote-copy-input,
    .quote-copy-controls .btn {
        width: 100%;
    }

    .public-form-panel .form-control,
    .public-form-panel .form-select,
    .dynamic-form-submit {
        min-height: 3rem;
    }

    .dynamic-choice-panels .form-check,
    .dynamic-checkbox {
        min-height: 2.85rem;
    }

    .document-summary-grid {
        grid-template-columns: 1fr;
    }

    .style-preset-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .question-card {
        grid-template-columns: 1fr;
    }

    .question-card-actions {
        justify-content: flex-start;
    }

    .question-card-actions .btn,
    .question-card-actions form {
        width: 100%;
    }

    .document-filter-tabs {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 0.15rem;
    }

    .document-filter-tab {
        flex: 0 0 auto;
    }

    .document-action-groups {
        grid-template-columns: 1fr;
    }

    .document-toolbar,
    .document-sheet-header,
    .document-footer {
        flex-direction: column;
        align-items: stretch;
    }

    .document-summary-panel {
        text-align: left;
        min-width: 0;
    }

    .document-sheet {
        padding: 1.15rem;
    }

    .document-info-grid {
        grid-template-columns: 1fr;
    }

    .document-meta-list div {
        grid-template-columns: 4.5rem minmax(0, 1fr);
    }

    .document-totals {
        max-width: none;
        margin-left: 0;
    }

    .document-builder-page {
        max-width: none;
    }

    .document-builder-form {
        gap: 1.25rem;
        padding-bottom: max(1rem, env(safe-area-inset-bottom));
    }

    .document-builder-card {
        border-top: 3px solid #2563eb;
        box-shadow: var(--app-shadow-sm);
    }

    .builder-section-header {
        margin-bottom: 0.9rem;
        padding-bottom: 0.7rem;
        border-bottom: 1px solid var(--app-border);
    }

    .line-item-builder-head {
        display: none;
    }

    .line-item-builder {
        gap: 0.9rem;
    }

    .line-item-builder-row {
        grid-template-columns: 1fr;
        gap: 0.85rem;
        padding: 1rem;
        background: #ffffff;
        border-color: #cbd5e1;
        box-shadow: var(--app-shadow-sm);
    }

    .line-item-builder-row .form-label {
        display: block;
        margin-bottom: 0.35rem;
        color: #334155;
        font-size: 0.82rem;
        font-weight: 700;
    }

    .line-item-delete-cell {
        min-height: auto;
        padding-top: 0.15rem;
    }

    .document-builder-submit {
        flex-direction: column;
        align-items: stretch;
        padding: 1rem;
        margin-bottom: max(0.5rem, env(safe-area-inset-bottom));
    }

    .document-builder-submit .btn {
        width: 100%;
    }
}

@media (max-width: 575.98px) {
    h1,
    .display-6 {
        font-size: 1.65rem;
    }

    .lead-summary-grid {
        gap: 0.75rem;
    }

    .public-shell,
    .audit-shell {
        max-width: 100%;
    }

    .style-preset-grid {
        grid-template-columns: 1fr;
    }

    .success-mark {
        width: 3rem;
        height: 3rem;
        font-size: 1.35rem;
    }
}

@media print {
    @page {
        margin: 0.45in;
    }

    html,
    body {
        background: #ffffff !important;
        color: #000000 !important;
    }

    body * {
        visibility: hidden;
    }

    .document-sheet,
    .document-sheet * {
        visibility: visible;
    }

    .app-navbar,
    .document-toolbar,
    .print-hidden,
    .page-shell > .alert,
    .alert,
    button,
    .btn {
        display: none !important;
    }

    main,
    .page-shell,
    .document-page {
        display: block;
        max-width: none;
        width: 100%;
        margin: 0;
        padding: 0;
    }

    .document-sheet {
        position: absolute;
        top: 0;
        left: 0;
        max-width: none;
        width: 100%;
        margin: 0;
        padding: 0;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    .document-sheet-header {
        border-bottom-color: #000000;
    }

    .document-print-surface {
        display: block;
    }

    .document-bill-to,
    .document-job-summary,
    .document-line-items,
    .document-totals {
        background: #ffffff;
        border-color: #cbd5e1;
    }

    .document-line-items {
        overflow: visible;
    }

    .document-line-items table {
        min-width: 0;
    }

    .document-line-items th {
        background: #f1f5f9 !important;
    }

    .document-line-items tr,
    .document-totals,
    .document-notes,
    .document-terms {
        break-inside: avoid;
    }
}
