:root {
    color-scheme: light;
    --color-ink: #10232b;
    --color-muted: #5f6f78;
    --color-line: #dce8e2;
    --color-panel: #ffffff;
    --color-soft: #f0f6f3;
    --color-brand: #0f766e;
    --color-brand-strong: #0a5b55;
    --color-accent: #e7b24a;
    --color-danger: #dc6b5f;
    --color-success: #16a34a;
    --shadow-soft: 0 18px 45px rgba(19, 36, 43, .12);
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    background: #f5fbf9;
    color: var(--color-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.5;
}

button,
input,
select,
textarea {
    font: inherit;
}

a {
    color: inherit;
    text-decoration: none;
}

:is(a, button, input, select, textarea, summary):focus-visible {
    border-radius: 8px;
    box-shadow: 0 0 0 3px rgba(15, 118, 110, .24);
    outline: 2px solid rgba(15, 118, 110, .76);
    outline-offset: 3px;
}

.site-shell {
    min-height: 100vh;
}

.site-header {
    align-items: center;
    display: flex;
    gap: 24px;
    justify-content: space-between;
    margin: 0 auto;
    max-width: 1180px;
    padding: 22px 24px;
}

.site-header .brand-logo-horizontal {
    height: 40px;
    max-width: 230px;
}

.site-brand {
    flex: 0 0 auto;
    gap: 10px;
    min-width: 190px;
}

.site-brand-icon {
    border-radius: 12px;
    box-shadow: 0 10px 24px rgba(15, 118, 110, .14);
    display: block;
    flex: 0 0 42px;
    height: 42px;
    width: 42px;
}

.site-brand-text {
    display: grid;
    gap: 1px;
    line-height: 1.05;
}

.site-brand-text strong {
    color: var(--color-ink);
    font-size: 16px;
    font-weight: 850;
    letter-spacing: 0;
}

.site-brand-text small {
    color: var(--color-brand-strong);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0;
    white-space: nowrap;
}

.brand {
    align-items: center;
    display: inline-flex;
    font-weight: 800;
    gap: 10px;
}

.brand-logo {
    display: block;
    height: auto;
    max-width: 100%;
}

.brand-logo-horizontal {
    height: 42px;
    width: auto;
}

.brand-logo-icon {
    border-radius: 12px;
    height: 42px;
    width: 42px;
}

.brand-mark {
    align-items: center;
    background: var(--color-brand);
    border-radius: 8px;
    color: #fff;
    display: inline-flex;
    font-size: 15px;
    height: 36px;
    justify-content: center;
    width: 36px;
}

.nav {
    align-items: center;
    color: var(--color-muted);
    display: flex;
    font-size: 15px;
    gap: 18px;
}

.nav a {
    align-items: center;
    display: inline-flex;
    gap: 6px;
    min-height: 40px;
}

.nav-icon {
    align-items: center;
    background: var(--color-soft);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    color: var(--color-brand-strong);
    display: inline-flex;
    font-size: 12px;
    font-weight: 850;
    height: 22px;
    justify-content: center;
    width: 22px;
}

.nav a:hover {
    color: var(--color-brand-strong);
}

.breadcrumb-nav {
    color: var(--color-muted);
    font-size: 13px;
    margin: 0 auto;
    max-width: 1180px;
    padding: 16px 24px 0;
}

.breadcrumb-nav ol {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.breadcrumb-nav li {
    align-items: center;
    display: inline-flex;
    gap: 8px;
}

.breadcrumb-nav li + li::before {
    color: var(--color-muted);
    content: "/";
    font-weight: 800;
}

.breadcrumb-nav a {
    color: var(--color-muted);
    font-weight: 800;
}

.breadcrumb-nav a:hover {
    color: var(--color-brand-strong);
}

.breadcrumb-nav [aria-current="page"] {
    color: var(--color-ink);
    font-weight: 850;
}

.hero {
    background: linear-gradient(180deg, #f5fbf9 0%, #edf5f1 100%);
    border-top: 1px solid rgba(216, 225, 229, .8);
}

.hero-wow {
    background:
        linear-gradient(135deg, rgba(15, 118, 110, .12) 0%, rgba(245, 251, 249, 0) 46%),
        linear-gradient(180deg, #f5fbf9 0%, #edf5f1 100%);
    overflow: hidden;
    position: relative;
}

.hero-wow::before {
    background:
        linear-gradient(90deg, rgba(15, 118, 110, .08) 1px, transparent 1px),
        linear-gradient(180deg, rgba(15, 118, 110, .08) 1px, transparent 1px);
    background-size: 42px 42px;
    content: "";
    inset: 0;
    opacity: .55;
    position: absolute;
    transform: skewY(-4deg) translateY(-70px);
}

.hero-inner {
    align-items: center;
    display: grid;
    gap: 48px;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 460px);
    margin: 0 auto;
    max-width: 1180px;
    padding: 72px 24px 80px;
    position: relative;
    z-index: 1;
}

.hero-inner-single {
    grid-template-columns: 1fr;
}

.hero-content {
    animation: heroContentIn .7s ease both;
    min-width: 0;
}

.eyebrow {
    color: var(--color-brand-strong);
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 0;
    margin: 0 0 14px;
    text-transform: uppercase;
}

h1,
h2,
h3,
p {
    margin-top: 0;
}

h1 {
    font-size: clamp(42px, 7vw, 72px);
    line-height: .98;
    margin-bottom: 22px;
    max-width: 820px;
    overflow-wrap: break-word;
}

.hero-copy {
    color: var(--color-muted);
    font-size: 20px;
    margin-bottom: 14px;
    max-width: 660px;
}

.hero-origin {
    align-items: center;
    color: var(--color-brand-dark);
    display: inline-flex;
    font-size: 0.95rem;
    font-weight: 800;
    margin-bottom: 30px;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.button {
    align-items: center;
    border-radius: 8px;
    cursor: pointer;
    display: inline-flex;
    gap: 8px;
    font-weight: 800;
    justify-content: center;
    min-height: 46px;
    padding: 12px 18px;
}

.brand-mark .lucide,
.button .lucide,
.icon-button .lucide,
.nav-icon .lucide,
.metric-icon .lucide,
.feature-card-icon .lucide,
.client-profile-avatar .lucide,
.account-avatar .lucide,
.actions-menu summary .lucide,
.status-badge .lucide,
.status-pill .lucide {
    display: block;
    flex: 0 0 auto;
    height: 18px;
    width: 18px;
}

.brand-mark .lucide {
    height: 19px;
    width: 19px;
}

.button .lucide {
    height: 17px;
    width: 17px;
}

.button-small {
    font-size: 14px;
    min-height: 38px;
    padding: 8px 12px;
}

.button-icon-only {
    aspect-ratio: 1;
    gap: 0;
    min-height: 38px;
    padding: 8px;
    width: 38px;
}

.button-icon-only .lucide {
    height: 18px;
    width: 18px;
}

.button-primary {
    border: 0;
    background: var(--color-brand);
    color: #fff;
    box-shadow: 0 12px 26px rgba(15, 118, 110, .22);
    transition: background .16s ease, transform .16s ease, box-shadow .16s ease;
}

.button-primary:hover {
    background: var(--color-brand-strong);
    box-shadow: 0 16px 32px rgba(15, 118, 110, .28);
    transform: translateY(-1px);
}

.button-secondary {
    background: #fff;
    border: 1px solid var(--color-line);
    color: var(--color-brand-strong);
    transition: border-color .16s ease, transform .16s ease;
}

.button-secondary:hover {
    border-color: var(--color-brand);
    transform: translateY(-1px);
}

.button-ghost {
    background: transparent;
    border: 1px solid transparent;
    color: var(--color-muted);
}

.button-ghost:hover {
    color: var(--color-brand-strong);
}

.billing-stage {
    min-height: 520px;
    position: relative;
}

.stage-grid {
    background:
        linear-gradient(90deg, rgba(19, 36, 43, .08) 1px, transparent 1px),
        linear-gradient(180deg, rgba(19, 36, 43, .08) 1px, transparent 1px);
    background-size: 28px 28px;
    inset: 20px 0 0 44px;
    mask-image: linear-gradient(135deg, transparent 0%, #000 18%, #000 72%, transparent 100%);
    opacity: .72;
    position: absolute;
}

.stage-beam {
    background: linear-gradient(90deg, transparent, rgba(242, 184, 75, .86), transparent);
    height: 2px;
    position: absolute;
    transform-origin: left center;
    width: 260px;
}

.stage-beam-one {
    animation: beamPulse 3.2s ease-in-out infinite;
    right: 82px;
    top: 116px;
    transform: rotate(18deg);
}

.stage-beam-two {
    animation: beamPulse 3.2s ease-in-out .8s infinite;
    bottom: 120px;
    left: 72px;
    transform: rotate(-20deg);
}

.invoice-preview {
    background: var(--color-panel);
    border: 1px solid rgba(216, 225, 229, .9);
    border-radius: 8px;
    box-shadow: var(--shadow-soft);
    padding: 26px;
}

.invoice-preview-main {
    animation: invoiceFloat 5s ease-in-out infinite;
    position: absolute;
    right: 12px;
    top: 76px;
    width: min(430px, 100%);
    z-index: 2;
}

.invoice-top,
.invoice-total {
    align-items: center;
    display: flex;
    justify-content: space-between;
}

.invoice-kicker {
    color: var(--color-muted);
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 4px;
}

.invoice-number {
    font-size: 24px;
    font-weight: 850;
}

.status-pill {
    align-items: center;
    animation: statusPulse 2.4s ease-in-out infinite;
    background: #fff4da;
    border: 1px solid #f3d596;
    border-radius: 999px;
    color: #6f4b00;
    display: inline-flex;
    font-size: 13px;
    font-weight: 800;
    gap: 6px;
    justify-content: center;
    line-height: 1;
    max-width: 100%;
    padding: 6px 10px;
    vertical-align: middle;
    white-space: nowrap;
    width: fit-content;
}

.invoice-lines {
    display: grid;
    gap: 12px;
    margin: 28px 0;
}

.invoice-line {
    align-items: center;
    border-bottom: 1px solid var(--color-line);
    display: grid;
    gap: 16px;
    grid-template-columns: 1fr auto;
    padding-bottom: 12px;
}

.invoice-line-active {
    background: #f9fcfb;
    border: 1px solid #d8e1e5;
    border-radius: 8px;
    padding: 12px;
}

.line-title {
    font-weight: 800;
}

.line-detail {
    color: var(--color-muted);
    font-size: 14px;
}

.line-price,
.invoice-total strong {
    font-weight: 850;
}

.reminder-card,
.cash-card {
    background: rgba(255, 255, 255, .94);
    border: 1px solid rgba(216, 225, 229, .92);
    border-radius: 8px;
    box-shadow: 0 18px 36px rgba(19, 36, 43, .13);
    display: grid;
    gap: 3px;
    padding: 14px 16px;
    position: absolute;
    z-index: 3;
}

.reminder-card span,
.cash-card span {
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 850;
    text-transform: uppercase;
}

.reminder-card strong,
.cash-card strong {
    color: var(--color-ink);
    font-size: 18px;
}

.reminder-card small {
    color: var(--color-muted);
    font-weight: 700;
}

.reminder-card-top {
    animation: cardFloatOne 4.8s ease-in-out infinite;
    left: 0;
    top: 42px;
}

.reminder-card-bottom {
    animation: cardFloatTwo 5.2s ease-in-out infinite;
    bottom: 36px;
    right: 44px;
}

.cash-card {
    animation: cardFloatTwo 4.6s ease-in-out .3s infinite;
    bottom: 108px;
    left: 42px;
    min-width: 172px;
}

.cash-card strong {
    color: var(--color-brand-strong);
    font-size: 30px;
    line-height: 1.05;
}

.cash-meter {
    background: #edf5f1;
    border-radius: 999px;
    height: 8px;
    margin-top: 8px;
    overflow: hidden;
}

.cash-meter span {
    animation: meterFill 2.6s ease-in-out infinite;
    background: linear-gradient(90deg, var(--color-brand), var(--color-accent));
    display: block;
    height: 100%;
    width: 78%;
}

@keyframes heroContentIn {
    from {
        opacity: 0;
        transform: translateY(14px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes invoiceFloat {
    0%,
    100% {
        transform: translateY(0) rotate(-1deg);
    }

    50% {
        transform: translateY(-10px) rotate(1deg);
    }
}

@keyframes cardFloatOne {
    0%,
    100% {
        transform: translate(0, 0);
    }

    50% {
        transform: translate(12px, -10px);
    }
}

@keyframes cardFloatTwo {
    0%,
    100% {
        transform: translate(0, 0);
    }

    50% {
        transform: translate(-10px, 9px);
    }
}

@keyframes beamPulse {
    0%,
    100% {
        opacity: .2;
    }

    50% {
        opacity: .95;
    }
}

@keyframes statusPulse {
    0%,
    100% {
        box-shadow: 0 0 0 0 rgba(242, 184, 75, .32);
    }

    50% {
        box-shadow: 0 0 0 7px rgba(242, 184, 75, 0);
    }
}

@keyframes meterFill {
    0%,
    100% {
        width: 54%;
    }

    50% {
        width: 86%;
    }
}

.features {
    margin: 0 auto;
    max-width: 1180px;
    padding: 72px 24px;
}

.section-heading {
    max-width: 720px;
}

.section-heading h2 {
    font-size: clamp(30px, 5vw, 46px);
    line-height: 1.06;
    margin-bottom: 14px;
}

.section-heading p {
    color: var(--color-muted);
    font-size: 18px;
}

.feature-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 32px;
}

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

.feature-card {
    background: var(--color-panel);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    padding: 24px;
}

.feature-card-icon {
    align-items: center;
    background: var(--color-soft);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    color: var(--color-brand-strong);
    display: inline-flex;
    height: 40px;
    justify-content: center;
    margin-bottom: 14px;
    width: 40px;
}

.feature-card-kicker {
    color: var(--color-brand-strong);
    display: block;
    font-size: 12px;
    font-weight: 850;
    letter-spacing: .04em;
    margin-bottom: 8px;
    text-transform: uppercase;
}

.feature-card h2,
.feature-card h3 {
    font-size: 20px;
    margin-bottom: 10px;
}

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

.conversion-action-card {
    display: flex;
    flex-direction: column;
}

.conversion-action-card p {
    margin-bottom: 18px;
}

.conversion-action-card .button {
    align-self: flex-start;
    margin-top: auto;
}

.seo-content {
    display: grid;
    gap: 18px;
    margin: 0 auto;
    max-width: 980px;
    padding: 0 24px 56px;
}

.seo-content-wide {
    max-width: 1180px;
}

.seo-section {
    background: var(--color-panel);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    padding: 26px;
}

.seo-section h2 {
    font-size: 28px;
    margin-bottom: 10px;
}

.seo-section p {
    color: var(--color-muted);
    font-size: 17px;
    margin-bottom: 0;
}

.seo-section .eyebrow {
    font-size: 12px;
    margin-bottom: 10px;
}

.seo-subsections {
    display: grid;
    gap: 18px;
    margin-top: 22px;
}

.seo-subsection {
    border-top: 1px solid var(--color-line);
    padding-top: 18px;
}

.seo-subsection h3 {
    font-size: 20px;
    margin-bottom: 10px;
}

.seo-subsection p + p {
    margin-top: 8px;
}

.seo-message-model {
    display: grid;
    gap: 12px;
    margin: 14px 0 0;
}

.seo-message-model div {
    display: grid;
    gap: 4px;
}

.seo-message-model dt {
    color: var(--color-ink);
    font-weight: 800;
}

.seo-message-model dd {
    color: var(--color-muted);
    line-height: 1.55;
    margin: 0;
}

.seo-link-panel {
    background: var(--color-panel);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    padding: 28px;
}

.seo-link-panel h2 {
    font-size: 26px;
    margin-bottom: 10px;
}

.seo-link-panel p:not(.eyebrow) {
    color: var(--color-muted);
    font-size: 16px;
    margin: 0;
}

.seo-link-panel .seo-check-list a {
    color: var(--color-brand-strong);
    font-weight: 850;
}

.seo-check-list {
    display: grid;
    gap: 10px;
    list-style: none;
    margin: 20px 0 0;
    padding: 0;
}

.seo-check-list li {
    align-items: flex-start;
    color: var(--color-ink);
    display: flex;
    gap: 10px;
    line-height: 1.45;
}

.seo-check-list .lucide {
    background: var(--color-soft);
    border-radius: 999px;
    color: var(--color-brand-strong);
    flex: 0 0 auto;
    height: 22px;
    padding: 4px;
    width: 22px;
}

.seo-source-link {
    align-items: center;
    color: var(--color-brand-strong);
    display: inline-flex;
    font-size: 14px;
    font-weight: 850;
    gap: 8px;
    margin-top: 20px;
}

.seo-source-link .lucide {
    height: 16px;
    width: 16px;
}

.seo-document-example {
    display: grid;
    gap: 22px;
}

.seo-document-card {
    background: #f8fbfa;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    display: grid;
    gap: 18px;
    padding: 18px;
}

.seo-document-card-header,
.seo-document-parties,
.seo-document-totals {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.seo-document-card-header div,
.seo-document-parties div,
.seo-document-totals div {
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    min-width: 0;
    padding: 14px;
}

.seo-document-card span,
.seo-document-parties dt,
.seo-document-totals dt {
    color: var(--color-muted);
    display: block;
    font-size: 12px;
    font-weight: 850;
    letter-spacing: .04em;
    margin-bottom: 6px;
    text-transform: uppercase;
}

.seo-document-card strong,
.seo-document-parties dd,
.seo-document-totals dd {
    color: var(--color-ink);
    font-size: 15px;
    font-weight: 850;
    margin: 0;
    overflow-wrap: anywhere;
}

.seo-document-totals {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.seo-document-totals div:last-child dd {
    color: var(--color-brand-strong);
    font-size: 20px;
}

.seo-document-lines-table {
    border-collapse: separate;
    border-spacing: 0;
    color: var(--color-ink);
    min-width: 760px;
    width: 100%;
}

.seo-document-lines-table th,
.seo-document-lines-table td {
    border-bottom: 1px solid var(--color-line);
    font-size: 14px;
    line-height: 1.55;
    padding: 16px 18px;
    text-align: left;
    vertical-align: top;
}

.seo-document-lines-table thead th {
    background: #f1f8f6;
    color: var(--color-ink);
    font-size: 12px;
    font-weight: 850;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.seo-document-lines-table tbody th {
    color: var(--color-brand-strong);
    font-weight: 850;
    width: 34%;
}

.seo-document-lines-table tbody tr:last-child th,
.seo-document-lines-table tbody tr:last-child td {
    border-bottom: 0;
}

.seo-document-lines-table tbody tr:nth-child(even) {
    background: rgba(15, 118, 110, .035);
}

.seo-proof-band {
    display: grid;
    gap: 1px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: -32px auto 0;
    max-width: 1180px;
    padding: 0 24px;
    position: relative;
    z-index: 2;
}

.seo-proof-band article {
    background: rgba(255, 255, 255, .96);
    border: 1px solid var(--color-line);
    box-shadow: 0 18px 34px rgba(19, 36, 43, .08);
    display: grid;
    gap: 4px;
    min-height: 92px;
    padding: 18px;
}

.seo-proof-band article:first-child {
    border-radius: 8px 0 0 8px;
}

.seo-proof-band article:last-child {
    border-radius: 0 8px 8px 0;
}

.seo-proof-band strong {
    color: var(--color-brand-strong);
    font-size: 24px;
    line-height: 1;
}

.seo-proof-band span {
    color: var(--color-muted);
    font-size: 14px;
    font-weight: 750;
}

.seo-product-shot {
    min-height: 380px;
}

.seo-hero-image {
    background: rgba(255, 255, 255, .92);
    border: 1px solid rgba(15, 118, 110, .18);
    border-radius: 8px;
    box-shadow: 0 30px 70px rgba(16, 35, 43, .16);
    margin: 0;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    position: relative;
    width: 100%;
}

.seo-hero-image img {
    display: block;
    height: auto;
    max-width: 100%;
    width: 100%;
}

.seo-hero-image figcaption {
    background: linear-gradient(180deg, rgba(255, 255, 255, .88), rgba(255, 255, 255, .98));
    border-top: 1px solid var(--color-line);
    color: var(--color-muted);
    font-size: 13px;
    font-weight: 800;
    padding: 12px 14px;
}

.seo-screenshots {
    padding-top: 18px;
}

.seo-screenshot-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    width: 100%;
}

.product-screenshot-grid {
    margin-top: 18px;
    max-width: 100%;
    min-width: 0;
    width: 100%;
}

.product-screenshot-grid--wide {
    grid-template-columns: minmax(0, 1fr);
}

.product-screenshot-grid--split {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.product-screenshot-grid--compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.product-screenshot {
    background: var(--color-panel);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    box-shadow: 0 16px 32px rgba(16, 35, 43, .08);
    margin: 0;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    width: 100%;
}

.product-screenshot img {
    background: #f8fbfa;
    display: block;
    height: auto;
    max-width: 100%;
    object-fit: cover;
    object-position: top left;
    width: 100%;
}

.product-screenshot--wide img,
.product-screenshot--split img {
    aspect-ratio: auto;
}

.product-screenshot--compact img,
.product-screenshot--card img {
    aspect-ratio: 16 / 9;
}

.product-screenshot figcaption {
    display: grid;
    gap: 6px;
    padding: 16px;
}

.product-screenshot figcaption strong {
    color: var(--color-ink);
    font-size: 16px;
}

.product-screenshot figcaption span {
    color: var(--color-muted);
    font-size: 14px;
    line-height: 1.45;
}

.product-screenshot-eyebrow {
    color: var(--color-brand-strong);
    font-size: 12px;
    font-weight: 850;
    letter-spacing: 0;
    margin: 0;
    padding: 14px 16px 0;
    text-transform: uppercase;
}

.seo-screenshot-card {
    background: var(--color-panel);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    box-shadow: 0 16px 32px rgba(16, 35, 43, .08);
    margin: 0;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    width: 100%;
}

.seo-screenshot-card img {
    aspect-ratio: 16 / 9;
    background: #f8fbfa;
    border-bottom: 1px solid var(--color-line);
    display: block;
    height: auto;
    max-width: 100%;
    object-fit: cover;
    object-position: top left;
    width: 100%;
}

.seo-screenshot-card figcaption {
    display: grid;
    gap: 6px;
    padding: 16px;
}

.seo-screenshot-card strong {
    color: var(--color-ink);
    font-size: 16px;
}

.seo-screenshot-card span {
    color: var(--color-muted);
    font-size: 14px;
    line-height: 1.45;
}

.seo-examples {
    padding-top: 28px;
}

.seo-example-card strong {
    color: var(--color-brand-strong);
    display: inline-flex;
    font-size: 15px;
    margin-top: 18px;
}

.seo-comparison-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 22px;
}

.seo-comparison-grid div {
    background: #f8fbfa;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    padding: 18px;
}

.seo-comparison-grid h3 {
    font-size: 18px;
    margin-bottom: 8px;
}

.seo-comparison-grid p {
    font-size: 15px;
}

.seo-comparison-table-wrap {
    border: 1px solid var(--color-line);
    border-radius: 10px;
    box-shadow: 0 18px 45px rgba(15, 118, 110, .08);
    margin-top: 24px;
    overflow-x: auto;
}

.seo-comparison-table {
    border-collapse: separate;
    border-spacing: 0;
    color: var(--color-ink);
    min-width: 720px;
    width: 100%;
}

.seo-comparison-table th,
.seo-comparison-table td {
    border-bottom: 1px solid var(--color-line);
    font-size: 14px;
    line-height: 1.55;
    padding: 16px 18px;
    text-align: left;
    vertical-align: top;
}

.seo-comparison-table thead th {
    background: #f1f8f6;
    color: var(--color-ink);
    font-size: 12px;
    font-weight: 850;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.seo-comparison-table tbody th {
    color: var(--color-brand-strong);
    font-weight: 850;
    width: 22%;
}

.seo-comparison-table tbody tr:last-child th,
.seo-comparison-table tbody tr:last-child td {
    border-bottom: 0;
}

.seo-comparison-table tbody tr:nth-child(even) {
    background: rgba(15, 118, 110, .035);
}

.seo-contextual-cta {
    align-items: center;
    background:
        linear-gradient(135deg, rgba(15, 118, 110, .94), rgba(20, 184, 166, .9)),
        var(--color-brand-strong);
    border-radius: 8px;
    box-shadow: 0 24px 70px rgba(15, 118, 110, .22);
    color: #fff;
    display: grid;
    gap: 24px;
    grid-template-columns: minmax(0, 1fr) auto;
    margin: 22px auto 10px;
    max-width: 1180px;
    padding: 28px;
}

.seo-contextual-cta .eyebrow {
    color: rgba(255, 255, 255, .78);
    margin-bottom: 8px;
}

.seo-contextual-cta h2 {
    color: #fff;
    font-size: clamp(26px, 3vw, 40px);
    letter-spacing: 0;
    margin-bottom: 10px;
}

.seo-contextual-cta p {
    color: rgba(255, 255, 255, .86);
    font-size: 16px;
    line-height: 1.6;
    max-width: 760px;
}

.seo-contextual-cta .button {
    background: #fff;
    color: var(--color-brand-strong);
    white-space: nowrap;
}

.faq-list {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.seo-related {
    align-items: center;
    background: var(--color-ink);
    color: #fff;
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    justify-content: center;
    padding: 28px 24px;
}

.seo-related span {
    color: rgba(255, 255, 255, .72);
    font-size: 13px;
    font-weight: 850;
    text-transform: uppercase;
}

.seo-related div {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.seo-related a {
    background: rgba(255, 255, 255, .1);
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 8px;
    font-weight: 800;
    padding: 8px 12px;
}

.next-steps {
    background: var(--color-ink);
    color: #fff;
}

.next-steps-inner {
    display: grid;
    gap: 28px;
    grid-template-columns: minmax(0, .8fr) minmax(280px, 1fr);
    margin: 0 auto;
    max-width: 1180px;
    padding: 56px 24px;
}

.next-steps p,
.step-list {
    color: rgba(255, 255, 255, .76);
}

.step-list {
    display: grid;
    gap: 12px;
    margin: 0;
    padding-left: 20px;
}

.site-footer {
    color: var(--color-muted);
    font-size: 14px;
    margin: 0 auto;
    max-width: 1180px;
    padding: 34px 24px;
}

.site-footer-inner {
    border-top: 1px solid var(--color-line);
    display: grid;
    gap: 18px;
    padding-top: 24px;
}

.site-footer p {
    margin: 0;
}

.site-footer-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
}

.site-footer-links a {
    color: var(--color-ink);
    font-size: 13px;
    font-weight: 800;
}

.site-footer-links a:hover {
    color: var(--color-brand-strong);
}

.seo-contact-page {
    align-items: start;
    display: grid;
    gap: 32px;
    grid-template-columns: minmax(0, .8fr) minmax(320px, 1fr);
    margin: 0 auto;
    max-width: 1180px;
    padding: 54px 24px 34px;
}

.seo-contact-copy h1 {
    font-size: clamp(34px, 5vw, 54px);
    line-height: 1.02;
    margin-bottom: 16px;
}

.seo-contact-copy p:not(.eyebrow) {
    color: var(--color-muted);
    font-size: 18px;
    margin: 0;
    max-width: 560px;
}

.seo-contact-form-panel {
    margin-top: 0;
}

.legal-footer {
    align-items: center;
    color: var(--color-muted);
    display: flex;
    flex-wrap: wrap;
    font-size: 13px;
    gap: 14px;
    justify-content: center;
    padding: 18px 24px;
}

.legal-footer a:hover {
    color: var(--color-brand-strong);
}

.app-layout + .legal-footer {
    display: none;
}

.auth-page {
    align-items: center;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    padding: 32px 18px;
}

.auth-brand {
    margin-bottom: 32px;
}

.auth-panel {
    background: var(--color-panel);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    box-shadow: var(--shadow-soft);
    max-width: 520px;
    padding: 34px;
    width: 100%;
}

.auth-panel h1 {
    font-size: 42px;
    line-height: 1.05;
    margin-bottom: 14px;
}

.auth-copy,
.auth-switch {
    color: var(--color-muted);
}

.auth-switch {
    margin: 22px 0 0;
}

.auth-helper {
    margin: 14px 0 0;
    text-align: center;
    font-size: 0.92rem;
    font-weight: 800;
}

.auth-switch a {
    color: var(--color-brand-strong);
    font-weight: 800;
}

.auth-helper a {
    color: var(--color-brand-dark);
    text-decoration: none;
}

.auth-helper a:hover {
    color: var(--color-brand-strong);
}

.stacked-form {
    display: grid;
    gap: 16px;
    margin-top: 24px;
}

.form-row,
.stacked-form > div {
    align-content: start;
    display: grid;
    gap: 7px;
    min-width: 0;
}

.form-row label,
.stacked-form label {
    color: var(--color-ink);
    font-size: 14px;
    font-weight: 800;
}

.form-row input,
.stacked-form input,
.stacked-form select {
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    color: var(--color-ink);
    min-height: 46px;
    padding: 10px 12px;
    width: 100%;
}

.form-row input:focus,
.stacked-form input:focus,
.stacked-form select:focus {
    border-color: var(--color-brand);
    box-shadow: 0 0 0 3px rgba(15, 118, 110, .14);
    outline: none;
}

.form-row input.is-field-valid,
.form-row select.is-field-valid,
.form-row textarea.is-field-valid,
.stacked-form input.is-field-valid,
.stacked-form select.is-field-valid,
.stacked-form textarea.is-field-valid,
.document-line input.is-field-valid,
.document-line select.is-field-valid,
.document-line textarea.is-field-valid {
    border-color: rgba(22, 163, 74, .72);
    box-shadow: 0 0 0 3px rgba(22, 163, 74, .12);
}

.form-row input.is-field-invalid,
.form-row select.is-field-invalid,
.form-row textarea.is-field-invalid,
.stacked-form input.is-field-invalid,
.stacked-form select.is-field-invalid,
.stacked-form textarea.is-field-invalid,
.document-line input.is-field-invalid,
.document-line select.is-field-invalid,
.document-line textarea.is-field-invalid,
input[aria-invalid="true"],
select[aria-invalid="true"],
textarea[aria-invalid="true"] {
    background: #fff8f7;
    border-color: rgba(220, 107, 95, .86);
    box-shadow: 0 0 0 3px rgba(220, 107, 95, .14), 0 8px 18px rgba(220, 107, 95, .08);
}

.field-validation-message {
    align-items: center;
    color: #9b2f27;
    display: flex;
    font-size: 13px;
    font-weight: 800;
    gap: 6px;
    grid-column: 1 / -1;
    margin-top: 2px;
    min-height: 18px;
}

.field-validation-message::before {
    background: var(--color-danger);
    border-radius: 50%;
    color: #fff;
    content: "!";
    display: inline-grid;
    flex: 0 0 auto;
    font-size: 10px;
    font-weight: 950;
    height: 16px;
    place-items: center;
    width: 16px;
}

.field-validation-message[hidden] {
    display: flex !important;
    visibility: hidden;
}

.has-field-success > label {
    color: var(--color-success);
}

.has-field-error > label {
    color: #9b2f27;
}

.stacked-form ul {
    color: #9b1c1c;
    font-size: 14px;
    margin: 0;
    padding-left: 18px;
}

.form-submit {
    cursor: pointer;
    margin-top: 6px;
    width: 100%;
}

.alert {
    border-radius: 8px;
    margin: 18px 0;
    padding: 12px 14px;
}

.alert-error {
    background: #fff0f0;
    border: 1px solid #f2b4b4;
    color: #8a1f1f;
}

.alert-success {
    background: #edf8f1;
    border: 1px solid #b9e2c5;
    color: #1b6534;
}

.alert-warning {
    background: #fff8e8;
    border: 1px solid rgba(231, 178, 74, .55);
    color: #7a5208;
}

.app-layout {
    min-height: 100vh;
}

.app-header {
    align-items: center;
    background: #fff;
    border-bottom: 1px solid var(--color-line);
    display: flex;
    gap: 24px;
    justify-content: space-between;
    padding: 18px 28px;
}

.app-main {
    margin: 0 auto;
    max-width: 1180px;
    padding: 42px 24px;
}

.dashboard-hero {
    align-items: start;
    display: grid;
    gap: 24px;
    grid-template-columns: minmax(0, 1fr) 240px;
    margin-bottom: 28px;
}

.dashboard-hero h1 {
    font-size: clamp(34px, 5vw, 54px);
}

.dashboard-status {
    background: var(--color-soft);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    display: grid;
    gap: 8px;
    padding: 20px;
}

.dashboard-status span {
    color: var(--color-muted);
    font-size: 14px;
    font-weight: 800;
}

.dashboard-status strong {
    font-size: 22px;
}

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

.dashboard-metrics {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: 22px;
}

.metric-card {
    background: var(--color-panel);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    box-shadow: 0 10px 28px rgba(19, 36, 43, .06);
    display: grid;
    gap: 8px;
    padding: 20px;
    position: relative;
}

.metric-card span {
    color: var(--color-muted);
    font-size: 13px;
    font-weight: 850;
    text-transform: uppercase;
}

.metric-card strong {
    color: var(--color-brand-strong);
    font-size: 26px;
}

.metric-icon {
    align-items: center;
    background: var(--color-soft);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    color: var(--color-brand-strong);
    display: inline-flex;
    font-size: 16px;
    font-weight: 900;
    height: 38px;
    justify-content: center;
    position: absolute;
    right: 16px;
    top: 16px;
    width: 38px;
}

.dashboard-table {
    margin-bottom: 22px;
}

.kpi-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 22px;
}

.kpi-widget {
    align-items: center;
    background: var(--color-panel);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    box-shadow: 0 10px 28px rgba(19, 36, 43, .06);
    display: grid;
    gap: 22px;
    grid-template-columns: 132px minmax(0, 1fr);
    padding: 22px;
}

.kpi-widget h2 {
    font-size: 24px;
    margin-bottom: 14px;
}

.donut-chart {
    aspect-ratio: 1;
    background:
        radial-gradient(circle, #fff 0 48%, transparent 49%),
        conic-gradient(var(--color-brand) 0 45%, var(--color-accent) 45% 72%, #c9d8d0 72% 100%);
    border-radius: 50%;
    box-shadow: inset 0 0 0 1px rgba(216, 225, 229, .9);
}

.bar-chart {
    align-items: end;
    background: var(--color-soft);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, 1fr);
    height: 132px;
    padding: 14px;
}

.bar-chart span {
    background: linear-gradient(180deg, var(--color-brand), var(--color-accent));
    border-radius: 8px 8px 0 0;
    min-height: 18px;
}

.shortcut-list {
    display: grid;
    gap: 8px;
}

.shortcut-list a {
    align-items: center;
    background: #f9fcfb;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    color: var(--color-muted);
    display: flex;
    justify-content: space-between;
    padding: 9px 11px;
}

.shortcut-list strong {
    color: var(--color-brand-strong);
}

.feature-link-card {
    transition: border-color .16s ease, transform .16s ease;
}

.feature-link-card:hover {
    border-color: var(--color-brand);
    transform: translateY(-1px);
}

.page-heading {
    align-items: end;
    display: flex;
    gap: 24px;
    justify-content: space-between;
    margin-bottom: 26px;
}

.page-heading h1 {
    font-size: clamp(34px, 5vw, 54px);
    margin-bottom: 10px;
}

.page-heading p {
    color: var(--color-muted);
    margin-bottom: 0;
}

.empty-state,
.form-panel,
.table-panel {
    background: var(--color-panel);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    box-shadow: 0 10px 28px rgba(19, 36, 43, .06);
}

.empty-state {
    padding: 34px;
}

.empty-state h2 {
    font-size: 28px;
    margin-bottom: 8px;
}

.empty-state p {
    color: var(--color-muted);
    margin-bottom: 22px;
}

.form-panel {
    padding: 28px;
}

.search-panel {
    background: var(--color-panel);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    box-shadow: 0 10px 28px rgba(19, 36, 43, .05);
    display: grid;
    gap: 10px;
    margin-bottom: 18px;
    padding: 18px;
}

.search-panel label {
    color: var(--color-muted);
    font-size: 13px;
    font-weight: 850;
    text-transform: uppercase;
}

.search-row {
    align-items: center;
    display: flex;
    gap: 10px;
}

.search-row input {
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    color: var(--color-ink);
    flex: 1;
    min-height: 44px;
    min-width: 180px;
    padding: 10px 12px;
}

.search-row input:focus {
    border-color: var(--color-brand);
    box-shadow: 0 0 0 3px rgba(15, 118, 110, .14);
    outline: none;
}

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

.form-wide {
    grid-column: 1 / -1;
}

.stacked-form textarea {
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    color: var(--color-ink);
    padding: 10px 12px;
    resize: vertical;
    width: 100%;
}

.stacked-form textarea:focus {
    border-color: var(--color-brand);
    box-shadow: 0 0 0 3px rgba(15, 118, 110, .14);
    outline: none;
}

.checkbox-row > div {
    align-items: center;
    display: flex;
    gap: 10px;
}

.checkbox-row input[type="checkbox"] {
    height: 20px;
    min-height: 20px;
    width: 20px;
}

.checkbox-row label {
    margin: 0;
}

.form-section-title {
    border-top: 1px solid var(--color-line);
    color: var(--color-muted);
    font-size: 13px;
    font-weight: 850;
    margin-top: 8px;
    padding-top: 18px;
    text-transform: uppercase;
}

.table-panel {
    overflow-x: auto;
}

.data-table {
    border-collapse: collapse;
    min-width: 720px;
    width: 100%;
}

.data-table th,
.data-table td {
    border-bottom: 1px solid var(--color-line);
    padding: 16px 18px;
    text-align: left;
    vertical-align: middle;
}

.data-table th {
    color: var(--color-muted);
    font-size: 13px;
    font-weight: 850;
    text-transform: uppercase;
}

.data-table td > span:not(.status-badge):not(.status-pill) {
    color: var(--color-muted);
    display: block;
    font-size: 14px;
    margin-top: 3px;
}

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

.client-table-panel {
    overflow-x: auto;
}

.client-data-table,
.service-items-data-table,
.documents-data-table {
    min-width: 980px;
}

.service-items-data-table,
.documents-data-table {
    min-width: 1180px;
}

.datatable-toolbar {
    align-items: end;
    border-bottom: 1px solid var(--color-line);
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(260px, 1fr) auto auto;
    padding: 18px;
}

.datatable-search {
    display: grid;
    gap: 8px;
}

.datatable-search label {
    color: var(--color-muted);
    font-size: 13px;
    font-weight: 850;
    text-transform: uppercase;
}

.datatable-search input,
.datatable-filter-row input,
.datatable-filter-row select {
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    color: var(--color-ink);
    min-height: 40px;
    padding: 9px 11px;
    width: 100%;
}

.datatable-search input:focus,
.datatable-filter-row input:focus,
.datatable-filter-row select:focus {
    border-color: var(--color-brand);
    box-shadow: 0 0 0 3px rgba(15, 118, 110, .14);
    outline: none;
}

.datatable-summary {
    background: var(--color-soft);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    display: grid;
    gap: 1px;
    min-width: 170px;
    padding: 10px 12px;
}

.datatable-summary strong {
    color: var(--color-brand-strong);
    font-size: 24px;
    line-height: 1;
}

.datatable-summary span,
.datatable-summary small,
.datatable-active-filter,
.datatable-empty span,
.datatable-footer {
    color: var(--color-muted);
}

.datatable-summary span,
.datatable-summary small {
    font-size: 12px;
    font-weight: 760;
}

.datatable-active-filter {
    align-items: center;
    background: #fffdf4;
    border-bottom: 1px solid #f3df9f;
    display: flex;
    flex-wrap: wrap;
    font-size: 14px;
    gap: 10px;
    justify-content: space-between;
    padding: 10px 18px;
}

.datatable-active-filter a {
    color: var(--color-brand-strong);
    font-weight: 850;
}

.datatable-sort-button {
    align-items: center;
    background: transparent;
    border: 0;
    color: inherit;
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    gap: 6px;
    padding: 0;
    text-align: left;
    text-transform: inherit;
}

.datatable-sort-button:hover,
.datatable-sort-button.is-active {
    color: var(--color-brand-strong);
}

.datatable-sort-indicator {
    align-items: center;
    background: var(--color-soft);
    border: 1px solid var(--color-line);
    border-radius: 999px;
    display: inline-flex;
    font-size: 11px;
    height: 22px;
    justify-content: center;
    width: 22px;
}

.datatable-filter-row th {
    background: #f9fcfb;
    padding-bottom: 12px;
    padding-top: 12px;
}

.datatable-filter-row input,
.datatable-filter-row select {
    font-size: 13px;
    min-width: 112px;
}

.client-data-table tbody tr,
.service-items-data-table tbody tr,
.documents-data-table tbody tr {
    transition: background .16s ease;
}

.client-data-table tbody tr:hover,
.service-items-data-table tbody tr:hover,
.documents-data-table tbody tr:hover {
    background: #f9fcfb;
}

.datatable-empty {
    display: grid;
    gap: 4px;
    padding: 22px 18px;
}

.datatable-empty strong {
    color: var(--color-ink);
}

.datatable-footer {
    align-items: center;
    border-top: 1px solid var(--color-line);
    display: flex;
    flex-wrap: wrap;
    font-size: 14px;
    gap: 14px;
    justify-content: space-between;
    padding: 14px 18px 18px;
}

.datatable-pagination,
.datatable-pages {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.datatable-page-button {
    align-items: center;
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    color: var(--color-muted);
    cursor: pointer;
    display: inline-flex;
    font-weight: 850;
    height: 36px;
    justify-content: center;
    min-width: 36px;
    padding: 0 10px;
}

.datatable-page-button:hover,
.datatable-page-button.is-active {
    border-color: var(--color-brand);
    color: var(--color-brand-strong);
}

.datatable-page-button.is-active {
    background: rgba(15, 118, 110, .1);
}

.datatable-page-gap {
    color: var(--color-muted);
    padding: 0 2px;
}

.datatable-pagination .button:disabled {
    cursor: not-allowed;
    opacity: .48;
    transform: none;
}

.client-profile-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, 1fr) 280px;
    margin-bottom: 18px;
}

.client-profile-card,
.client-profile-summary {
    background: var(--color-panel);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    box-shadow: 0 14px 34px rgba(16, 35, 43, .07);
}

.client-profile-card {
    padding: 24px;
}

.client-profile-heading {
    align-items: center;
    border-bottom: 1px solid var(--color-line);
    display: flex;
    gap: 14px;
    margin-bottom: 20px;
    padding-bottom: 18px;
}

.client-profile-heading h2 {
    font-size: 28px;
    margin-bottom: 4px;
}

.client-profile-heading p {
    color: var(--color-muted);
    margin-bottom: 0;
}

.client-profile-avatar {
    align-items: center;
    background: linear-gradient(180deg, #dff4ef, #edf8f1);
    border: 1px solid rgba(15, 118, 110, .16);
    border-radius: 50%;
    color: var(--color-brand-strong);
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 24px;
    font-weight: 900;
    height: 58px;
    justify-content: center;
    width: 58px;
}

.client-profile-details {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
}

.client-profile-details div,
.client-profile-notes {
    background: #f9fcfb;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    display: grid;
    gap: 5px;
    padding: 14px;
}

.client-profile-details dt,
.client-profile-notes strong {
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 850;
    text-transform: uppercase;
}

.client-profile-details dd,
.client-profile-notes p {
    color: var(--color-ink);
    margin: 0;
    overflow-wrap: anywhere;
}

.client-profile-details a {
    color: var(--color-brand-strong);
    font-weight: 780;
}

.client-profile-details span,
.client-profile-notes p {
    color: var(--color-muted);
}

.client-profile-notes {
    margin-top: 14px;
}

.client-profile-summary {
    align-self: start;
    display: grid;
    gap: 16px;
    padding: 20px;
}

.client-profile-summary div {
    background: var(--color-soft);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    display: grid;
    gap: 4px;
    padding: 16px;
}

.client-profile-summary span {
    color: var(--color-muted);
    font-size: 13px;
    font-weight: 850;
    text-transform: uppercase;
}

.client-profile-summary strong {
    color: var(--color-brand-strong);
    font-size: 38px;
    line-height: 1;
}

.client-documents-panel .panel-heading p {
    color: var(--color-muted);
    margin: 6px 0 0;
}

.table-actions {
    text-align: right;
    white-space: nowrap;
}

.status-badge {
    align-items: center;
    border-radius: 999px;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 13px;
    font-weight: 850;
    gap: 6px;
    justify-content: center;
    line-height: 1;
    max-width: 100%;
    min-height: 30px;
    padding: 6px 10px;
    text-align: center;
    vertical-align: middle;
    white-space: nowrap;
    width: fit-content;
}

.data-table td > :is(.status-badge, .status-pill) {
    display: inline-flex;
    justify-self: start;
    margin-top: 0;
    max-width: 100%;
    width: fit-content;
}

.status-badge-draft {
    background: #eef2f4;
    color: var(--color-muted);
}

.status-badge-sent {
    background: #e8f1ff;
    color: var(--color-ink);
}

.status-badge-accepted {
    background: rgba(15, 118, 110, .12);
    color: var(--color-brand);
}

.status-badge-paid {
    background: rgba(22, 163, 74, .12);
    color: var(--color-success);
}

.status-badge-refused,
.status-badge-cancelled {
    background: #f5e8e8;
    color: var(--color-danger);
}

.status-badge-overdue {
    background: rgba(220, 107, 95, .14);
    color: var(--color-danger);
}

.status-badge-expired {
    background: rgba(231, 178, 74, .2);
    color: #8a5a05;
}

.status-badge-active {
    background: rgba(22, 163, 74, .12);
    color: var(--color-success);
}

.status-badge-inactive {
    background: #eef2f4;
    color: var(--color-muted);
}

.service-category-badge,
.service-origin-badge {
    align-items: center;
    border-radius: 999px;
    display: inline-flex;
    font-size: 13px;
    font-weight: 850;
    gap: 6px;
    min-height: 30px;
    padding: 6px 10px;
}

.service-category-badge {
    background: rgba(15, 118, 110, .1);
    color: var(--color-brand-strong);
}

.service-origin-badge.is-global {
    background: #fff7df;
    color: #8a5f00;
}

.service-origin-badge.is-custom {
    background: #e9f7f4;
    color: var(--color-brand-strong);
}

.service-origin-badge .lucide {
    height: 15px;
    width: 15px;
}

.service-item-description {
    max-width: 520px;
}

.table-muted-action {
    color: var(--color-muted);
    font-size: 13px;
    font-weight: 800;
}

.row-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
    position: relative;
}

.actions-menu {
    position: relative;
}

.actions-menu summary {
    align-items: center;
    background: var(--color-soft);
    border: 1px solid var(--color-line);
    border-radius: 999px;
    color: var(--color-ink);
    cursor: pointer;
    display: inline-flex;
    font-weight: 900;
    height: 38px;
    justify-content: center;
    list-style: none;
    width: 42px;
}

.actions-menu summary::-webkit-details-marker {
    display: none;
}

.actions-menu-panel {
    background: var(--color-panel);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    box-shadow: 0 18px 42px rgba(19, 36, 43, .14);
    display: grid;
    gap: 8px;
    min-width: 150px;
    padding: 10px;
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    z-index: 20;
}

.actions-menu:not([open]) .actions-menu-panel {
    display: none;
}

.actions-menu-panel .button,
.actions-menu-panel form,
.actions-menu-panel button {
    width: 100%;
}

.assistant-action-panel {
    align-items: center;
    background: var(--color-panel);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    box-shadow: 0 12px 34px rgba(19, 36, 43, .06);
    display: flex;
    gap: 18px;
    justify-content: space-between;
    margin-bottom: 28px;
    padding: 22px;
}

.assistant-action-panel h2 {
    font-size: 24px;
    margin-bottom: 6px;
}

.assistant-action-panel p:last-child {
    color: var(--color-muted);
    margin-bottom: 0;
}

.inline-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    justify-content: flex-end;
}

.inline-actions form {
    margin: 0;
}

.icon-button {
    align-items: center;
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    color: var(--color-brand-strong);
    cursor: pointer;
    display: inline-flex;
    font-size: 12px;
    font-weight: 850;
    gap: 7px;
    justify-content: center;
    min-height: 34px;
    padding: 7px 9px;
}

.icon-button:hover {
    border-color: var(--color-brand);
}

.icon-button-only {
    aspect-ratio: 1;
    gap: 0;
    padding: 7px;
    width: 34px;
}

.icon-button-primary {
    background: var(--color-brand);
    border-color: var(--color-brand);
    color: #fff;
}

.status-actions {
    background:
        linear-gradient(135deg, rgba(15, 118, 110, .08), transparent 40%),
        var(--color-panel);
    border: 1px solid rgba(15, 118, 110, .18);
    border-radius: 8px;
    box-shadow: 0 12px 32px rgba(16, 35, 43, .07);
    display: grid;
    gap: 16px;
    margin-bottom: 22px;
    padding: 18px;
}

.status-actions-header h2 {
    font-size: 24px;
    margin-bottom: 4px;
}

.status-actions-header .eyebrow {
    margin-bottom: 6px;
}

.status-actions-list {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.status-actions form {
    margin: 0;
}

.document-action-note {
    align-items: center;
    background: var(--color-soft);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    color: var(--color-muted);
    display: inline-flex;
    flex-wrap: wrap;
    font-size: 14px;
    font-weight: 750;
    gap: 8px;
    min-height: 46px;
    padding: 10px 12px;
}

.document-action-note .lucide {
    color: var(--color-brand-strong);
    height: 18px;
    width: 18px;
}

.document-action-note a {
    color: var(--color-brand-strong);
    font-weight: 900;
}

.document-panel {
    background: var(--color-panel);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    box-shadow: 0 10px 28px rgba(19, 36, 43, .06);
    display: grid;
    gap: 24px;
    padding: 28px;
}

.document-meta {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.document-meta div {
    background: var(--color-soft);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    display: grid;
    gap: 6px;
    padding: 16px;
}

.document-meta span,
.total-row span {
    color: var(--color-muted);
    font-size: 13px;
    font-weight: 800;
}

.document-meta strong,
.total-row strong {
    font-size: 18px;
}

.document-lines {
    box-shadow: none;
}

.totals-panel {
    justify-self: end;
    max-width: 360px;
    width: 100%;
}

.total-row {
    align-items: center;
    border-bottom: 1px solid var(--color-line);
    display: flex;
    justify-content: space-between;
    padding: 12px 0;
}

.total-row span {
    display: grid;
    gap: 2px;
}

.total-row small {
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 650;
}

.total-row-sub {
    padding: 9px 0;
}

.total-row-sub strong,
.total-row-vat strong {
    font-size: 16px;
}

.total-main strong {
    color: var(--color-brand-strong);
    font-size: 24px;
}

.legal-note,
.document-note {
    background: #fffdf4;
    border: 1px solid #f3df9f;
    border-radius: 8px;
    margin: 0;
    padding: 14px 16px;
}

.document-note {
    background: var(--color-soft);
    border-color: var(--color-line);
}

.document-note p {
    color: var(--color-muted);
    margin: 6px 0 0;
}

.document-form-shell {
    align-items: start;
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
}

.document-type-picker {
    display: grid;
    gap: 9px;
}

.document-type-picker-label {
    color: var(--color-ink);
    font-size: 14px;
    font-weight: 850;
}

.document-type-options {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.document-type-card {
    cursor: pointer;
    position: relative;
}

.document-type-input {
    opacity: 0;
    pointer-events: none;
    position: absolute;
}

.document-type-card-body {
    align-items: center;
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    display: flex;
    gap: 12px;
    min-height: 68px;
    padding: 12px;
    transition: background .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.document-type-card:hover .document-type-card-body {
    border-color: rgba(15, 118, 110, .34);
    box-shadow: 0 10px 24px rgba(16, 35, 43, .08);
    transform: translateY(-1px);
}

.document-type-input:checked + .document-type-card-body {
    background:
        linear-gradient(135deg, rgba(15, 118, 110, .12), rgba(231, 178, 74, .08)),
        #f9fcfb;
    border-color: rgba(15, 118, 110, .55);
    box-shadow: 0 0 0 3px rgba(15, 118, 110, .12), 0 14px 28px rgba(16, 35, 43, .08);
}

.document-type-input:focus-visible + .document-type-card-body {
    outline: 3px solid rgba(15, 118, 110, .16);
    outline-offset: 2px;
}

.document-type-input:disabled + .document-type-card-body {
    cursor: not-allowed;
    opacity: .72;
}

.document-type-card-icon {
    align-items: center;
    background: rgba(15, 118, 110, .1);
    border: 1px solid rgba(15, 118, 110, .16);
    border-radius: 8px;
    color: var(--color-brand-strong);
    display: inline-flex;
    flex: 0 0 auto;
    height: 38px;
    justify-content: center;
    width: 38px;
}

.document-type-card-icon .lucide {
    height: 20px;
    width: 20px;
}

.document-type-card-body strong,
.document-type-card-body small {
    display: block;
}

.document-type-card-body small {
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 750;
    margin-top: 2px;
}

.document-client-picker {
    display: grid;
    gap: 7px;
    position: relative;
}

.document-client-picker > label {
    color: var(--color-ink);
    font-size: 14px;
    font-weight: 800;
}

.document-client-select-native {
    height: 1px;
    left: 14px;
    overflow: hidden;
    position: absolute;
    top: 34px;
    width: 1px;
}

.document-client-select-native-field {
    height: 1px;
    opacity: 0;
    pointer-events: none;
    width: 1px;
}

.document-client-combobox {
    position: relative;
}

.document-client-toggle {
    align-items: center;
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    color: var(--color-ink);
    cursor: pointer;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    min-height: 48px;
    padding: 9px 12px;
    text-align: left;
    transition: background .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease;
    width: 100%;
}

.document-client-toggle:hover,
.document-client-toggle[aria-expanded="true"],
.document-client-toggle:focus-visible {
    border-color: var(--color-brand);
    box-shadow: 0 0 0 3px rgba(15, 118, 110, .11);
    outline: none;
}

.document-client-picker.has-field-error .document-client-toggle {
    background: #fff7f6;
    border-color: var(--color-danger);
    box-shadow: 0 0 0 3px rgba(220, 107, 95, .14), 0 10px 20px rgba(220, 107, 95, .08);
}

.document-client-picker.has-field-success .document-client-toggle {
    border-color: rgba(22, 163, 74, .65);
    box-shadow: 0 0 0 3px rgba(22, 163, 74, .12);
}

.document-client-toggle:disabled {
    cursor: not-allowed;
    opacity: .72;
}

.document-client-toggle [data-document-client-value] {
    display: grid;
    gap: 1px;
    min-width: 0;
}

.document-client-toggle [data-document-client-value] strong,
.document-client-toggle [data-document-client-value] span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.document-client-toggle [data-document-client-value] span {
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 750;
}

.document-client-toggle .lucide {
    color: var(--color-muted);
    flex: 0 0 auto;
    height: 18px;
    margin-top: 2px;
    width: 18px;
}

.document-client-dropdown {
    background: #fff;
    border: 1px solid rgba(15, 118, 110, .24);
    border-radius: 8px;
    box-shadow: 0 24px 54px rgba(16, 35, 43, .18);
    display: grid;
    gap: 8px;
    left: 0;
    margin-top: 8px;
    max-height: 360px;
    overflow: hidden;
    padding: 10px;
    position: absolute;
    right: 0;
    top: 100%;
    z-index: 40;
}

.document-client-dropdown[hidden] {
    display: none;
}

.document-client-search-inline {
    align-items: center;
    background:
        linear-gradient(135deg, rgba(15, 118, 110, .08), rgba(231, 178, 74, .08)),
        #f9fcfb;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    min-height: 42px;
    padding: 0 10px;
}

.document-client-search-inline .lucide {
    color: var(--color-brand-strong);
    height: 17px;
    width: 17px;
}

.document-client-search-inline input {
    background: transparent;
    border: 0;
    min-height: 40px;
    padding: 8px;
}

.document-client-search-inline input:focus {
    box-shadow: none;
}

.document-client-options {
    display: grid;
    gap: 6px;
    max-height: 286px;
    overflow-y: auto;
    padding-right: 3px;
}

.document-client-option {
    background: #fff;
    border: 1px solid transparent;
    border-radius: 8px;
    color: var(--color-ink);
    cursor: pointer;
    display: grid;
    gap: 4px;
    padding: 10px;
    text-align: left;
    transition: background .16s ease, border-color .16s ease, transform .16s ease;
}

.document-client-option:hover,
.document-client-option.is-selected {
    background:
        linear-gradient(135deg, rgba(15, 118, 110, .08), rgba(231, 178, 74, .08)),
        #f9fcfb;
    border-color: rgba(15, 118, 110, .28);
    transform: translateY(-1px);
}

.document-client-option-main {
    display: grid;
    gap: 3px;
}

.document-client-option-main span,
.document-client-option-location,
.document-client-empty {
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 700;
}

.document-client-option strong {
    font-size: 14px;
}

.document-client-empty {
    background: var(--color-soft);
    border: 1px dashed var(--color-line);
    border-radius: 8px;
    padding: 12px;
    text-align: center;
}

.document-line-list {
    display: grid;
    gap: 12px;
}

.document-line-editor {
    border: 1px solid var(--color-line);
    border-radius: 8px;
    display: grid;
    gap: 10px;
    padding: 12px;
}

.document-line-heading {
    align-items: center;
    color: var(--color-muted);
    display: flex;
    font-size: 13px;
    font-weight: 850;
    justify-content: space-between;
    gap: 12px;
    text-transform: uppercase;
}

.document-line-heading-actions {
    align-items: center;
    display: inline-flex;
    flex-wrap: wrap;
    gap: 7px;
    justify-content: flex-end;
}

.document-line-heading-actions .icon-button:first-child {
    background: rgba(15, 118, 110, .08);
    border-color: rgba(15, 118, 110, .22);
}

.document-lines-title {
    align-items: center;
    display: flex;
    gap: 12px;
    justify-content: space-between;
}

.document-line-mode-switch {
    background: var(--color-soft);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    display: grid;
    gap: 4px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 4px;
}

.document-line-mode-button {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: 6px;
    color: var(--color-muted);
    cursor: pointer;
    display: inline-flex;
    font-size: 13px;
    font-weight: 850;
    gap: 7px;
    justify-content: center;
    min-height: 34px;
    padding: 7px 10px;
}

.document-line-mode-button.is-active {
    background: #fff;
    box-shadow: 0 8px 18px rgba(16, 35, 43, .06);
    color: var(--color-ink);
}

.document-line-catalog-panel {
    display: grid;
    gap: 7px;
}

.document-line-catalog-label {
    color: var(--color-ink);
    font-size: 14px;
    font-weight: 800;
}

.document-line-free-mode .document-line-catalog-panel,
.document-line-editor.is-free-mode .document-line-catalog-panel {
    display: none;
}

.document-line-service-native {
    display: none;
}

.document-line-service-combobox {
    position: relative;
}

.document-line-service-toggle {
    align-items: center;
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    color: var(--color-ink);
    cursor: pointer;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    min-height: 46px;
    padding: 9px 12px;
    text-align: left;
    width: 100%;
}

.document-line-service-toggle:hover,
.document-line-service-toggle[aria-expanded="true"] {
    border-color: var(--color-brand);
    box-shadow: 0 0 0 3px rgba(15, 118, 110, .11);
}

.document-line-service-toggle [data-document-line-service-value] {
    display: grid;
    gap: 1px;
    min-width: 0;
}

.document-line-service-toggle [data-document-line-service-value] strong,
.document-line-service-toggle [data-document-line-service-value] span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.document-line-service-toggle [data-document-line-service-value] span {
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 750;
}

.document-line-service-toggle .lucide {
    color: var(--color-muted);
    flex: 0 0 auto;
    height: 18px;
    margin-top: 2px;
    width: 18px;
}

.document-line-service-dropdown {
    background: #fff;
    border: 1px solid rgba(15, 118, 110, .24);
    border-radius: 8px;
    box-shadow: 0 24px 54px rgba(16, 35, 43, .18);
    display: grid;
    gap: 8px;
    left: 0;
    margin-top: 8px;
    max-height: 360px;
    overflow: hidden;
    padding: 10px;
    position: absolute;
    right: 0;
    top: 100%;
    z-index: 30;
}

.document-line-service-dropdown[hidden] {
    display: none;
}

.document-line-service-search-inline {
    align-items: center;
    background:
        linear-gradient(135deg, rgba(15, 118, 110, .08), rgba(231, 178, 74, .08)),
        #f9fcfb;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    min-height: 42px;
    padding: 0 10px;
}

.document-line-service-search-inline .lucide {
    color: var(--color-brand-strong);
    height: 17px;
    width: 17px;
}

.document-line-service-search-inline input {
    background: transparent;
    border: 0;
    min-height: 40px;
    padding: 8px;
}

.document-line-service-search-inline input:focus {
    box-shadow: none;
}

.document-line-service-options {
    display: grid;
    gap: 10px;
    max-height: 286px;
    overflow-y: auto;
    padding-right: 3px;
}

.document-line-service-group {
    display: grid;
    gap: 6px;
}

.document-line-service-group-title {
    align-items: center;
    background: var(--color-soft);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    color: var(--color-brand-strong);
    display: flex;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .04em;
    min-height: 30px;
    padding: 7px 10px;
    position: sticky;
    text-transform: uppercase;
    top: 0;
    z-index: 1;
}

.document-line-service-option {
    background: #fff;
    border: 1px solid transparent;
    border-radius: 8px;
    color: var(--color-ink);
    cursor: pointer;
    display: grid;
    gap: 4px;
    padding: 10px;
    text-align: left;
    transition: background .16s ease, border-color .16s ease, transform .16s ease;
}

.document-line-service-option:hover,
.document-line-service-option.is-selected {
    background:
        linear-gradient(135deg, rgba(15, 118, 110, .08), rgba(231, 178, 74, .08)),
        #f9fcfb;
    border-color: rgba(15, 118, 110, .28);
    transform: translateY(-1px);
}

.document-line-service-option-main {
    align-items: start;
    display: grid;
    gap: 3px;
}

.document-line-service-option-meta,
.document-line-service-option-description,
.document-line-service-empty {
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 700;
}

.document-line-service-option strong {
    font-size: 14px;
}

.document-line-service-highlight {
    background: linear-gradient(180deg, rgba(231, 178, 74, .32), rgba(231, 178, 74, .58));
    border-radius: 5px;
    box-shadow: 0 0 0 2px rgba(231, 178, 74, .16);
    color: var(--color-ink);
    font-weight: 900;
    padding: 0 3px;
}

.document-line-service-empty {
    background: var(--color-soft);
    border: 1px dashed var(--color-line);
    border-radius: 8px;
    padding: 12px;
    text-align: center;
}

.document-line-main-fields {
    align-items: end;
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(90px, 120px) minmax(0, 1fr) auto;
}

.document-line-selected-summary {
    background: #f9fcfb;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    display: grid;
    gap: 2px;
    min-height: 46px;
    padding: 8px 10px;
}

.document-line-selected-summary strong {
    font-size: 14px;
}

.document-line-selected-summary span {
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 700;
}

.document-line-custom-fields {
    display: none;
    gap: 10px;
}

.document-line-editor.is-free-mode .document-line-custom-fields,
.document-line-editor.is-custom-open .document-line-custom-fields {
    display: grid;
}

.document-line-editor.is-free-mode [data-document-line-custom-toggle] {
    display: none;
}

.document-line-compact {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.document-live-preview {
    position: sticky;
    top: 24px;
}

.document-live-preview-paper {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(249, 252, 251, .96)),
        radial-gradient(circle at 85% 10%, rgba(15, 118, 110, .11), transparent 28%);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    box-shadow: 0 18px 42px rgba(16, 35, 43, .1);
    display: grid;
    gap: 16px;
    padding: 18px;
}

.document-live-preview-top,
.document-live-preview-client,
.document-live-preview-line,
.document-live-preview-totals > div,
.document-live-preview-vat-breakdown div {
    display: flex;
    justify-content: space-between;
}

.document-live-preview-top {
    align-items: flex-start;
    border-bottom: 1px solid var(--color-line);
    padding-bottom: 14px;
}

.document-live-preview-top span:first-child,
.document-live-preview-client small,
.document-live-preview-totals span {
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 850;
    text-transform: uppercase;
}

.document-live-preview-totals small {
    color: var(--color-muted);
    display: block;
    font-size: 11px;
    font-weight: 650;
    margin-top: 2px;
    text-transform: none;
}

.document-live-preview-top strong {
    display: block;
    font-size: 22px;
    margin-top: 3px;
}

.document-live-preview-client {
    align-items: flex-start;
    background: var(--color-soft);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    display: grid;
    gap: 4px;
    padding: 12px;
}

.document-live-preview-client span {
    color: var(--color-muted);
    font-size: 13px;
}

.document-live-preview-lines {
    display: grid;
    gap: 10px;
}

.document-live-preview-line {
    align-items: flex-start;
    border-bottom: 1px solid var(--color-line);
    gap: 12px;
    padding-bottom: 10px;
}

.document-live-preview-line:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.document-live-preview-line span,
.document-live-preview-empty {
    color: var(--color-muted);
    font-size: 13px;
}

.document-live-preview-line > strong {
    white-space: nowrap;
}

.document-live-preview-extra {
    background: #f9fcfb;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    display: grid;
    gap: 5px;
    padding: 10px 12px;
}

.document-live-preview-extra[hidden] {
    display: none;
}

.document-live-preview-extra strong {
    color: var(--color-ink);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.document-live-preview-extra p {
    color: var(--color-muted);
    font-size: 13px;
    margin: 0;
    white-space: pre-line;
}

.document-live-preview-totals {
    border-top: 1px solid var(--color-line);
    display: grid;
    gap: 8px;
    padding-top: 14px;
}

.document-live-preview-totals > .document-live-preview-vat-breakdown {
    border-bottom: 1px solid var(--color-line);
    display: grid;
    gap: 6px;
    padding-bottom: 8px;
}

.document-live-preview-grand-total strong {
    color: var(--color-brand-strong);
    font-size: 22px;
}

.reminder-history {
    margin-top: 22px;
}

.signature-status {
    align-items: center;
    background:
        linear-gradient(135deg, rgba(15, 118, 110, .08), transparent 36%),
        var(--color-panel);
    border: 1px solid rgba(15, 118, 110, .2);
    border-left: 4px solid var(--color-brand);
    border-radius: 8px;
    box-shadow: 0 12px 32px rgba(16, 35, 43, .07);
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    justify-content: space-between;
    margin-bottom: 22px;
    padding: 16px 18px;
}

.signature-status > div:first-child {
    display: grid;
    gap: 4px;
}

.signature-status-icon {
    align-items: center;
    background: rgba(15, 118, 110, .1);
    border: 1px solid rgba(15, 118, 110, .18);
    border-radius: 8px;
    color: var(--color-brand-strong);
    display: inline-flex;
    flex: 0 0 auto;
    height: 42px;
    justify-content: center;
    width: 42px;
}

.signature-status-icon .lucide {
    height: 21px;
    width: 21px;
}

.signature-status span {
    color: var(--color-muted);
}

.signature-status a {
    color: var(--color-brand-strong);
    font-weight: 850;
}

.connect-panel,
.payment-link-panel {
    background: var(--color-panel);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    box-shadow: 0 12px 32px rgba(16, 35, 43, .07);
    display: grid;
    gap: 18px;
    margin-bottom: 22px;
    padding: 22px;
}

.settings-tabs {
    background: var(--color-panel);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    box-shadow: 0 12px 32px rgba(16, 35, 43, .05);
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: 18px;
    padding: 8px;
}

.settings-tab {
    appearance: none;
    align-items: center;
    background: #f8fbfa;
    border: 1px solid transparent;
    border-radius: 8px;
    color: var(--color-ink);
    cursor: pointer;
    display: flex;
    font: inherit;
    gap: 10px;
    justify-content: space-between;
    min-height: 58px;
    padding: 12px;
    text-align: left;
    text-decoration: none;
    width: 100%;
}

.settings-tab:hover,
.settings-tab.is-active {
    background: #fff;
    border-color: rgba(15, 118, 110, .22);
}

.settings-tab.is-active {
    box-shadow: inset 0 0 0 1px rgba(15, 118, 110, .16), 0 10px 24px rgba(15, 118, 110, .08);
}

.settings-tab:focus-visible {
    border-color: var(--color-brand);
    box-shadow: 0 0 0 3px rgba(15, 118, 110, .16);
    outline: none;
}

.settings-tab span {
    align-items: center;
    display: inline-flex;
    font-weight: 900;
    gap: 8px;
}

.settings-tab.is-active span {
    color: var(--color-brand-strong);
}

.settings-tab small {
    border-radius: 999px;
    flex: 0 0 auto;
    font-size: 12px;
    font-weight: 900;
    padding: 5px 8px;
}

.settings-tab small.is-success {
    background: rgba(22, 163, 74, .12);
    color: var(--color-success);
}

.settings-tab small.is-warning {
    background: #fff6df;
    color: #9a6b10;
}

.settings-tab small.is-muted {
    background: var(--color-soft);
    color: var(--color-muted);
}

.settings-section {
    scroll-margin-top: 24px;
}

.settings-section[hidden],
.settings-save-bar[hidden] {
    display: none !important;
}

.settings-section-header {
    align-items: start;
    display: flex;
    gap: 16px;
    justify-content: space-between;
    margin-bottom: 22px;
}

.settings-section-header h2 {
    font-size: 26px;
    line-height: 1.1;
    margin-bottom: 8px;
}

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

.company-settings-form {
    display: contents;
}

.bank-transfer-fields {
    display: grid;
    gap: 16px;
    align-self: stretch;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 760px;
    min-width: 0;
    width: 100%;
}

.bank-transfer-fields > div {
    display: grid;
    gap: 7px;
    margin: 0;
}

.bank-transfer-fields label {
    color: var(--color-ink);
    font-size: 14px;
    font-weight: 800;
}

.bank-transfer-fields input {
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    color: var(--color-ink);
    min-height: 46px;
    padding: 10px 12px;
    width: 100%;
}

.bank-transfer-fields input:focus {
    border-color: var(--color-brand);
    box-shadow: 0 0 0 3px rgba(15, 118, 110, .14);
    outline: none;
}

.address-autocomplete {
    display: grid;
    gap: 8px;
    position: relative;
}

.address-autocomplete label {
    color: var(--color-ink);
    font-size: 14px;
    font-weight: 800;
}

.address-autocomplete-control {
    align-items: center;
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    display: grid;
    gap: 10px;
    grid-template-columns: 22px minmax(0, 1fr);
    min-height: 48px;
    padding: 0 12px;
    transition: border-color .16s ease, box-shadow .16s ease;
}

.address-autocomplete-control:focus-within {
    border-color: var(--color-brand);
    box-shadow: 0 0 0 3px rgba(15, 118, 110, .14);
}

.address-autocomplete-control .lucide {
    color: var(--color-brand-strong);
    height: 18px;
    width: 18px;
}

.address-autocomplete-control input {
    border: 0;
    color: var(--color-ink);
    min-height: 46px;
    outline: 0;
    padding: 0;
    width: 100%;
}

.address-autocomplete-status {
    color: var(--color-muted);
    font-size: 13px;
    font-weight: 700;
}

.address-autocomplete-list {
    background: #fff;
    border: 1px solid rgba(15, 118, 110, .18);
    border-radius: 8px;
    box-shadow: 0 18px 38px rgba(16, 35, 43, .14);
    display: grid;
    gap: 6px;
    left: 0;
    margin-top: 4px;
    max-height: 320px;
    overflow: auto;
    padding: 8px;
    position: absolute;
    right: 0;
    top: calc(100% - 2px);
    z-index: 30;
}

.address-autocomplete-list[hidden] {
    display: none !important;
}

.address-autocomplete-option {
    appearance: none;
    background: #f8fbfa;
    border: 1px solid transparent;
    border-radius: 8px;
    color: var(--color-ink);
    cursor: pointer;
    display: grid;
    gap: 3px;
    padding: 10px 12px;
    text-align: left;
    transition: background .16s ease, border-color .16s ease, transform .16s ease;
}

.address-autocomplete-option:hover,
.address-autocomplete-option.is-active {
    background: #fff;
    border-color: rgba(15, 118, 110, .28);
    transform: translateY(-1px);
}

.address-autocomplete-option strong {
    font-size: 14px;
}

.address-autocomplete-option span {
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 700;
}

.address-autocomplete-option mark {
    background: linear-gradient(180deg, rgba(231, 178, 74, 0) 45%, rgba(231, 178, 74, .42) 45%);
    border-radius: 4px;
    color: var(--color-ink);
    font-weight: 950;
    padding: 0 1px;
}

.settings-save-bar {
    align-items: center;
    background: #f8fbfa;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    display: flex;
    gap: 14px;
    justify-content: space-between;
    margin: -6px 0 22px;
    padding: 14px 16px;
}

.settings-save-bar span {
    color: var(--color-muted);
    font-weight: 800;
}

.settings-save-bar > div {
    margin: 0;
}

.connect-panel {
    align-items: start;
    grid-template-columns: minmax(0, 1fr) minmax(230px, auto);
}

.bank-transfer-panel {
    grid-template-columns: 1fr;
}

.connect-panel h2,
.payment-link-panel h2 {
    font-size: 26px;
    line-height: 1.1;
    margin-bottom: 8px;
}

.connect-panel p,
.payment-link-panel p,
.connect-sync-note,
.public-payment-disclaimer {
    color: var(--color-muted);
}

.connect-panel-actions {
    display: grid;
    gap: 10px;
    justify-items: stretch;
}

.connect-panel-actions form,
.payment-link-form {
    margin: 0;
}

.connect-status-card {
    align-items: flex-start;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    display: flex;
    gap: 12px;
    margin-top: 16px;
    padding: 14px;
}

.connect-status-card.is-ready {
    background: rgba(22, 163, 74, .1);
    border-color: rgba(22, 163, 74, .22);
}

.connect-status-card.is-pending {
    background: #fff8e7;
    border-color: rgba(231, 178, 74, .32);
}

.connect-status-card.is-muted {
    background: var(--color-soft);
}

.connect-status-icon {
    align-items: center;
    background: #fff;
    border-radius: 8px;
    color: var(--color-brand);
    display: inline-flex;
    flex: 0 0 auto;
    height: 38px;
    justify-content: center;
    width: 38px;
}

.connect-status-card.is-ready .connect-status-icon {
    color: var(--color-success);
}

.connect-status-card.is-pending .connect-status-icon {
    color: #9a6b10;
}

.connect-status-card strong {
    color: var(--color-ink);
    display: block;
    margin-bottom: 2px;
}

.connect-status-card p {
    font-size: 14px;
    margin: 0;
}

.connect-details {
    margin-top: 12px;
}

.connect-details summary {
    color: var(--color-brand-strong);
    cursor: pointer;
    font-weight: 850;
}

.connect-sync-form {
    text-align: center;
}

.connect-sync-link {
    background: transparent;
    border: 0;
    color: var(--color-muted);
    cursor: pointer;
    font-size: 13px;
    font-weight: 800;
    padding: 4px;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.connect-sync-link:hover {
    color: var(--color-brand-strong);
}

.stripe-fees-disclosure {
    background: #f8fbfa;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    margin-top: 14px;
    padding: 12px 14px;
}

.stripe-fees-disclosure summary {
    align-items: center;
    color: var(--color-ink);
    cursor: pointer;
    display: inline-flex;
    font-weight: 900;
    gap: 8px;
}

.stripe-fees-disclosure p {
    font-size: 14px;
    margin: 10px 0;
}

.stripe-fees-disclosure a {
    color: var(--color-brand-strong);
    display: inline-flex;
    font-size: 14px;
    font-weight: 850;
    margin-right: 12px;
}

.bank-transfer-panel .connect-status-icon {
    color: var(--color-brand-strong);
}

.payment-link-header {
    align-items: start;
    display: grid;
    gap: 16px;
    grid-template-columns: minmax(0, 1fr) minmax(210px, auto);
}

.payment-due-card {
    background: var(--color-soft);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    display: grid;
    gap: 4px;
    padding: 16px;
}

.payment-due-card span,
.payment-due-card small,
.public-payment-summary span {
    color: var(--color-muted);
    font-size: 13px;
    font-weight: 800;
}

.payment-due-card strong {
    color: var(--color-brand-strong);
    font-size: 26px;
}

.payment-method-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.payment-link-form {
    align-items: end;
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(180px, .8fr) minmax(180px, .8fr) auto;
}

.payment-link-form label {
    color: var(--color-ink);
    display: grid;
    font-weight: 800;
    gap: 6px;
}

.payment-link-form input,
.payment-link-form select {
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    color: var(--color-ink);
    min-height: 44px;
    padding: 10px 12px;
}

.payment-connect-required {
    align-items: center;
    background: #fff6df;
    border: 1px solid #f3df9f;
    border-radius: 8px;
    color: #7b5510;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: space-between;
    padding: 14px 16px;
}

.payment-connect-required span {
    align-items: center;
    display: inline-flex;
    font-weight: 800;
    gap: 8px;
}

.payment-history {
    box-shadow: none;
}

.public-payment-shell {
    align-items: center;
    background:
        linear-gradient(135deg, rgba(15, 118, 110, .13), transparent 44%),
        #f5fbf9;
    display: grid;
    min-height: 100vh;
    padding: 42px 20px;
}

.public-payment-card {
    background: var(--color-panel);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    box-shadow: 0 26px 70px rgba(16, 35, 43, .16);
    display: grid;
    gap: 22px;
    margin: 0 auto;
    max-width: 620px;
    padding: 30px;
    width: 100%;
}

.public-payment-brand {
    align-items: center;
    color: var(--color-brand-strong);
    display: inline-flex;
    font-weight: 900;
    gap: 10px;
}

.public-payment-heading h1,
.payment-success-hero h1 {
    font-size: clamp(34px, 6vw, 52px);
    line-height: 1;
    margin-bottom: 12px;
}

.public-payment-heading p,
.payment-success-hero p {
    color: var(--color-muted);
    font-size: 18px;
}

.public-payment-summary {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.public-payment-summary div {
    background: var(--color-soft);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    display: grid;
    gap: 4px;
    padding: 14px;
}

.public-payment-summary strong {
    overflow-wrap: anywhere;
}

.public-payment-button {
    width: 100%;
}

.bank-transfer-box,
.card-payment-box {
    background: #f8fbfa;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    display: grid;
    gap: 16px;
    padding: 18px;
}

.bank-transfer-box {
    background: linear-gradient(135deg, rgba(15, 118, 110, .09), #fff);
    border-color: rgba(15, 118, 110, .22);
}

.bank-transfer-heading {
    align-items: flex-start;
    display: flex;
    gap: 12px;
}

.bank-transfer-heading strong,
.card-payment-box strong {
    color: var(--color-ink);
    display: block;
    font-size: 18px;
    margin-bottom: 4px;
}

.bank-transfer-heading p,
.card-payment-box p,
.bank-transfer-note {
    color: var(--color-muted);
    margin: 0;
}

.bank-transfer-icon {
    align-items: center;
    background: #fff;
    border: 1px solid rgba(15, 118, 110, .2);
    border-radius: 8px;
    color: var(--color-brand-strong);
    display: inline-flex;
    flex: 0 0 auto;
    height: 42px;
    justify-content: center;
    width: 42px;
}

.bank-transfer-details {
    display: grid;
    gap: 10px;
    margin: 0;
}

.bank-transfer-details div {
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    display: grid;
    gap: 6px;
    padding: 12px;
}

.bank-transfer-details dt {
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.bank-transfer-details dd {
    align-items: center;
    display: flex;
    gap: 10px;
    justify-content: space-between;
    margin: 0;
}

.bank-transfer-details span {
    color: var(--color-ink);
    font-weight: 900;
    overflow-wrap: anywhere;
}

.bank-transfer-details button {
    background: var(--color-soft);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    color: var(--color-brand-strong);
    cursor: pointer;
    flex: 0 0 auto;
    font-weight: 900;
    padding: 7px 10px;
}

.bank-transfer-details button:hover,
.bank-transfer-details button.is-copied {
    background: rgba(15, 118, 110, .1);
    border-color: rgba(15, 118, 110, .24);
}

.payment-qr-card,
.payment-qr-link-card {
    align-items: center;
    background: #fff;
    border: 1px solid rgba(15, 118, 110, .18);
    border-radius: 8px;
    display: grid;
    gap: 14px;
    grid-template-columns: 112px minmax(0, 1fr);
    padding: 14px;
}

.payment-qr-link-card {
    background: rgba(15, 118, 110, .06);
}

.payment-qr-card img,
.payment-qr-link-card img {
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    height: 112px;
    padding: 6px;
    width: 112px;
}

.payment-qr-card strong,
.payment-qr-link-card strong {
    color: var(--color-ink);
    display: block;
    font-size: 16px;
    margin-bottom: 4px;
}

.payment-qr-card p,
.payment-qr-link-card p {
    color: var(--color-muted);
    margin: 0;
}

.card-payment-box {
    grid-template-columns: minmax(0, 1fr) minmax(190px, auto);
}

.payment-success-note,
.payment-success-hero {
    align-items: center;
    background: rgba(22, 163, 74, .1);
    border: 1px solid rgba(22, 163, 74, .22);
    border-radius: 8px;
    color: var(--color-success);
    display: flex;
    font-weight: 900;
    gap: 10px;
    padding: 14px 16px;
}

.payment-success-hero {
    align-items: flex-start;
    color: var(--color-ink);
    display: grid;
    justify-items: start;
    padding: 24px;
}

.payment-success-hero .lucide {
    color: var(--color-success);
    height: 42px;
    width: 42px;
}

.public-document {
    margin: 0 auto;
    max-width: 920px;
    padding: 42px 24px;
}

.signature-form {
    max-width: 420px;
}

.signature-complete-hero {
    align-items: flex-start;
    background:
        linear-gradient(135deg, rgba(22, 163, 74, .14), rgba(15, 118, 110, .08)),
        #ffffff;
    border: 1px solid rgba(22, 163, 74, .24);
    border-radius: 8px;
    box-shadow: 0 18px 42px rgba(16, 35, 43, .08);
    display: grid;
    gap: 14px;
    justify-items: start;
    margin-bottom: 22px;
    padding: 24px;
}

.signature-complete-hero h1 {
    margin-bottom: 8px;
}

.signature-complete-hero p {
    color: var(--color-muted);
    margin: 0;
}

.signature-complete-icon {
    align-items: center;
    background: rgba(22, 163, 74, .12);
    border: 1px solid rgba(22, 163, 74, .24);
    border-radius: 8px;
    color: var(--color-success);
    display: inline-flex;
    height: 48px;
    justify-content: center;
    width: 48px;
}

.signature-complete-icon .lucide {
    height: 28px;
    width: 28px;
}

.signature-code-error {
    align-items: flex-start;
    background: #fff8f7;
    border: 1px solid rgba(220, 107, 95, .3);
    border-radius: 8px;
    color: #9b2f27;
    display: flex;
    font-size: 13px;
    font-weight: 850;
    gap: 8px;
    margin-bottom: 8px;
    padding: 10px 12px;
}

.signature-code-error .lucide {
    color: var(--color-danger);
    flex: 0 0 auto;
    height: 18px;
    margin-top: 1px;
    width: 18px;
}

.signature-help,
.signature-proof {
    background: var(--color-soft);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    display: grid;
    gap: 4px;
    margin-bottom: 16px;
    padding: 12px 14px;
}

.signature-help span,
.signature-proof span {
    color: var(--color-muted);
}

.signature-proof span {
    overflow-wrap: anywhere;
}

.signature-proof small {
    color: var(--color-muted);
    font-size: 12px;
}

.signature-technical-proof {
    display: grid;
    gap: 6px;
}

.signature-technical-proof summary {
    color: var(--color-brand-strong);
    cursor: pointer;
    font-weight: 900;
}

.signature-technical-proof span {
    font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
    font-size: 12px;
    overflow-wrap: anywhere;
}

.resend-code-form {
    margin-top: 12px;
}

.billing-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, .85fr) minmax(320px, 1fr);
}

.billing-single-shell {
    display: grid;
    margin: 0 auto;
    max-width: 980px;
}

.import-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.import-sample {
    background: var(--color-soft);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    display: grid;
    gap: 8px;
    padding: 14px;
}

.import-sample code {
    color: var(--color-brand-strong);
    overflow-wrap: anywhere;
}

.import-template-card {
    align-items: center;
    background: linear-gradient(135deg, rgba(15, 118, 110, .08), rgba(231, 178, 74, .08));
    border: 1px solid rgba(15, 118, 110, .18);
    border-radius: 10px;
    display: grid;
    gap: 12px;
    grid-template-columns: auto minmax(0, 1fr) auto;
    padding: 12px;
}

.import-template-card strong,
.import-template-card span {
    display: block;
}

.import-template-card span {
    color: var(--color-muted);
    font-size: 13px;
}

.import-template-icon {
    align-items: center;
    background: #fff;
    border-radius: 10px;
    color: var(--color-brand);
    display: inline-flex;
    flex: 0 0 40px;
    height: 40px;
    justify-content: center;
    width: 40px;
}

.import-template-card .import-template-icon {
    display: inline-flex;
}

.import-template-icon svg {
    display: block;
    height: 21px;
    margin: auto;
    width: 21px;
}

.import-file-picker-field {
    gap: 9px;
}

.import-file-picker {
    position: relative;
}

.import-file-input {
    height: 1px !important;
    left: 22px;
    min-height: 0 !important;
    opacity: 0;
    padding: 0 !important;
    pointer-events: none;
    position: absolute;
    top: 22px;
    width: 1px !important;
}

.import-file-dropzone {
    align-items: center;
    background:
        radial-gradient(circle at 18% 18%, rgba(15, 118, 110, .15), transparent 24%),
        linear-gradient(135deg, rgba(15, 118, 110, .08), rgba(231, 178, 74, .08));
    border: 1px dashed rgba(15, 118, 110, .34);
    border-radius: 12px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9);
    cursor: pointer;
    display: grid !important;
    gap: 12px;
    grid-template-columns: auto minmax(0, 1fr) auto;
    min-height: 76px;
    padding: 14px;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease, background .18s ease;
}

.import-file-dropzone:hover,
.import-file-dropzone.is-dragging,
.import-file-input:focus-visible + .import-file-dropzone {
    background:
        radial-gradient(circle at 18% 18%, rgba(15, 118, 110, .2), transparent 26%),
        linear-gradient(135deg, rgba(15, 118, 110, .12), rgba(231, 178, 74, .12));
    border-color: var(--color-brand);
    box-shadow: 0 14px 30px rgba(15, 118, 110, .13), 0 0 0 3px rgba(15, 118, 110, .12);
    transform: translateY(-1px);
}

.import-file-icon {
    align-items: center;
    background: #fff;
    border: 1px solid rgba(15, 118, 110, .18);
    border-radius: 12px;
    color: var(--color-brand);
    display: inline-flex;
    height: 46px;
    justify-content: center;
    width: 46px;
}

.import-file-icon svg {
    height: 22px;
    width: 22px;
}

.import-file-copy {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.import-file-copy strong {
    color: var(--color-ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.import-file-copy small {
    color: var(--color-muted);
    font-size: 13px;
}

.import-file-cta {
    align-items: center;
    background: var(--color-brand);
    border-radius: 999px;
    box-shadow: 0 10px 22px rgba(15, 118, 110, .18);
    color: #fff;
    display: inline-flex;
    font-size: 13px;
    font-weight: 900;
    justify-content: center;
    min-height: 34px;
    padding: 7px 12px;
}

.import-file-picker.has-file .import-file-icon {
    background: rgba(22, 163, 74, .11);
    border-color: rgba(22, 163, 74, .28);
    color: var(--color-success);
}

.import-file-picker.has-file .import-file-cta {
    background: var(--color-success);
}

.ocr-status-grid {
    margin-bottom: 24px;
}

.tool-card-heading {
    align-items: flex-start;
    display: flex;
    gap: 12px;
    justify-content: space-between;
}

.tool-card-heading h2 {
    margin-bottom: 0;
}

.tool-status-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 14px 0;
}

.status-pill {
    align-items: center;
    border-radius: 999px;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 13px;
    font-weight: 850;
    gap: 6px;
    justify-content: center;
    line-height: 1;
    max-width: 100%;
    min-height: 30px;
    padding: 6px 10px;
    text-align: center;
    vertical-align: middle;
    white-space: nowrap;
    width: fit-content;
}

.status-pill-success {
    background: rgba(22, 163, 74, .12);
    color: var(--color-success);
}

.status-pill-muted {
    background: var(--color-soft);
    color: var(--color-muted);
}

.status-pill-warning {
    background: #fff6df;
    color: #9a6b10;
}

.status-pill-danger {
    background: #fff0ed;
    color: var(--color-danger);
}

.ocr-text-preview {
    font-family: Consolas, "Liberation Mono", monospace;
    min-height: 320px;
    resize: vertical;
    white-space: pre;
}

.confirm-import-form {
    margin-top: 18px;
}

.app-modal {
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    box-shadow: 0 26px 70px rgba(16, 35, 43, .22);
    color: var(--color-ink);
    max-height: min(820px, calc(100vh - 42px));
    max-width: min(920px, calc(100vw - 32px));
    padding: 26px;
    width: 100%;
}

.app-modal::backdrop {
    background: rgba(16, 35, 43, .32);
    backdrop-filter: blur(3px);
}

.modal-close-button {
    align-items: center;
    background: var(--color-soft);
    border: 1px solid var(--color-line);
    border-radius: 999px;
    color: var(--color-muted);
    cursor: pointer;
    display: inline-flex;
    height: 36px;
    justify-content: center;
    position: absolute;
    right: 14px;
    top: 14px;
    width: 36px;
}

.modal-close-button:hover {
    color: var(--color-ink);
}

.modal-heading {
    align-items: flex-start;
    display: flex;
    gap: 18px;
    justify-content: space-between;
    padding-right: 36px;
}

.modal-heading h2,
.modal-success h2 {
    font-size: 30px;
    margin-bottom: 8px;
}

.modal-heading p,
.modal-success p {
    color: var(--color-muted);
    margin: 0;
}

.modal-import-form {
    margin-top: 18px;
}

.import-preview-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 18px 0;
}

.service-import-template {
    align-items: center;
    grid-template-columns: auto minmax(0, 1fr) auto;
    margin-top: 18px;
}

.service-import-template p {
    color: var(--color-muted);
    margin: 4px 0 0;
}

.modal-table-scroll {
    border: 1px solid var(--color-line);
    border-radius: 8px;
    max-height: 420px;
    overflow: auto;
}

.modal-table-scroll .data-table {
    min-width: 760px;
}

.import-preview-table .status-pill {
    justify-content: center;
    min-width: 112px;
}

.modal-success {
    align-items: center;
    display: grid;
    gap: 18px;
    justify-items: center;
    padding: 32px 18px 12px;
    text-align: center;
}

.modal-success-icon {
    align-items: center;
    background: #eaf8ef;
    border-radius: 999px;
    color: var(--color-success);
    display: inline-flex;
    height: 58px;
    justify-content: center;
    width: 58px;
}

.billing-plan {
    background: var(--color-panel);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    box-shadow: 0 10px 28px rgba(19, 36, 43, .06);
    display: grid;
    gap: 14px;
    padding: 28px;
}

.billing-plan h2 {
    font-size: 32px;
    margin-bottom: 0;
}

.billing-plan p {
    color: var(--color-muted);
    margin-bottom: 0;
}

.billing-plan form {
    margin: 0;
}

.billing-plan-featured {
    background: linear-gradient(180deg, #ffffff 0%, #eff6f3 100%);
    border-color: rgba(15, 118, 110, .32);
}

.billing-price {
    color: var(--color-brand-strong);
    font-size: 34px;
    font-weight: 900;
}

.billing-state-card {
    gap: 22px;
}

.billing-state-card-trial {
    background:
        linear-gradient(135deg, rgba(15, 118, 110, .08), rgba(231, 178, 74, .08)),
        var(--color-panel);
    border-color: rgba(15, 118, 110, .22);
}

.billing-state-card-active {
    background:
        linear-gradient(180deg, #ffffff 0%, #eff6f3 100%);
    border-color: rgba(15, 118, 110, .32);
}

.billing-state-header {
    align-items: flex-start;
    display: flex;
    gap: 18px;
    justify-content: space-between;
}

.billing-state-header h2 {
    font-size: clamp(34px, 5vw, 50px);
}

.billing-next-charge {
    align-items: center;
    background: #edf8f3;
    border: 1px solid rgba(22, 163, 74, .22);
    border-radius: 8px;
    color: var(--color-ink) !important;
    display: inline-flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 10px 12px;
}

.billing-next-charge .lucide {
    color: var(--color-success);
    height: 18px;
    width: 18px;
}

.billing-trial-notice {
    align-items: flex-start;
    background:
        linear-gradient(135deg, rgba(22, 163, 74, .12), rgba(15, 118, 110, .05)),
        #ffffff;
    border: 1px solid rgba(22, 163, 74, .24);
    border-radius: 8px;
    display: flex;
    gap: 14px;
    padding: 16px;
}

.billing-trial-icon {
    align-items: center;
    background: #e7f8ed;
    border-radius: 8px;
    color: var(--color-success);
    display: inline-flex;
    flex: 0 0 auto;
    height: 38px;
    justify-content: center;
    width: 38px;
}

.billing-trial-icon .lucide {
    height: 20px;
    width: 20px;
}

.billing-trial-notice strong {
    color: var(--color-ink);
    display: block;
    font-size: 18px;
    margin-bottom: 4px;
}

.billing-trial-notice p {
    font-size: 14px;
}

.billing-trial-notice-large {
    padding: 20px;
}

.billing-primary-action {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}

.billing-primary-action form {
    flex: 1 1 320px;
}

.billing-primary-action p {
    align-items: center;
    display: inline-flex;
    flex: 1 1 260px;
    font-size: 14px;
    gap: 8px;
}

.billing-primary-action .lucide {
    color: var(--color-brand);
    flex: 0 0 auto;
    height: 18px;
    width: 18px;
}

.billing-cta-button {
    font-size: 16px;
    min-height: 54px;
    width: 100%;
}

.billing-subscription-summary {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.billing-subscription-summary > div {
    background: rgba(255, 255, 255, .78);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    padding: 16px;
}

.billing-subscription-summary span {
    color: var(--color-muted);
    display: block;
    font-size: 13px;
    font-weight: 800;
    margin-bottom: 6px;
    text-transform: uppercase;
}

.billing-subscription-summary strong {
    color: var(--color-ink);
    display: block;
    font-size: 24px;
    line-height: 1.15;
    margin-bottom: 6px;
}

.billing-subscription-summary p {
    font-size: 14px;
}

.billing-manage-panel {
    align-items: center;
    background: #ffffff;
    border: 1px solid rgba(15, 118, 110, .18);
    border-radius: 8px;
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, 1fr) minmax(240px, 300px);
    padding: 20px;
}

.billing-manage-panel h3 {
    font-size: 26px;
    margin: 0 0 8px;
}

.billing-manage-actions {
    display: grid;
    gap: 10px;
}

.billing-actions {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.billing-action-card {
    background: rgba(255, 255, 255, .72);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    display: grid;
    gap: 10px;
    padding: 16px;
}

.billing-action-card.is-disabled {
    opacity: .74;
}

.billing-step {
    align-items: center;
    background: var(--color-soft);
    border: 1px solid var(--color-line);
    border-radius: 999px;
    color: var(--color-brand-strong);
    display: inline-flex;
    font-size: 13px;
    font-weight: 900;
    height: 28px;
    justify-content: center;
    width: 28px;
}

.billing-action-card strong {
    font-size: 17px;
}

.billing-action-card p {
    font-size: 14px;
}

.billing-action-button {
    width: 100%;
}

.button:disabled,
.button[disabled] {
    cursor: not-allowed;
    opacity: .62;
    transform: none;
}

.legal-page {
    margin: 0 auto;
    max-width: 980px;
    padding: 56px 24px;
}

.legal-stack {
    display: grid;
    gap: 16px;
}

.legal-list {
    color: var(--color-muted);
    display: grid;
    gap: 8px;
    margin: 0;
    padding-left: 20px;
}

.app-layout {
    background:
        radial-gradient(circle at 92% 4%, rgba(231, 178, 74, .18), transparent 28%),
        linear-gradient(180deg, #f6faf8 0%, #eef5f1 100%);
    display: grid;
    grid-template-columns: 270px minmax(0, 1fr);
    min-height: 100vh;
}

.app-header {
    align-self: start;
    background: rgba(255, 255, 255, .84);
    border-bottom: 0;
    border-right: 1px solid rgba(220, 232, 226, .95);
    box-shadow: 12px 0 30px rgba(16, 35, 43, .04);
    display: flex;
    flex-direction: column;
    gap: 22px;
    height: 100vh;
    justify-content: space-between;
    padding: 22px;
    position: sticky;
    top: 0;
}

.app-sidebar-top {
    display: grid;
    gap: 18px;
}

.app-brand {
    align-items: center;
    min-height: 48px;
}

.app-brand .brand-logo-icon {
    box-shadow: 0 12px 24px rgba(15, 118, 110, .18);
}

.app-brand .brand-mark {
    background: linear-gradient(180deg, var(--color-brand), var(--color-brand-strong));
    border-radius: 50%;
    box-shadow: 0 12px 24px rgba(15, 118, 110, .18);
}

.app-brand span:last-child {
    display: grid;
    gap: 1px;
}

.app-brand strong {
    color: var(--color-ink);
    line-height: 1;
}

.app-brand small {
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 650;
}

.app-nav {
    display: grid;
    gap: 8px;
}

.app-nav a {
    align-items: center;
    border: 1px solid transparent;
    border-radius: 8px;
    color: var(--color-muted);
    display: flex;
    font-weight: 760;
    gap: 10px;
    min-height: 44px;
    padding: 10px 12px;
    transition: background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}

.app-nav-section {
    display: grid;
    gap: 7px;
}

.app-nav-section summary {
    align-items: center;
    border: 1px solid transparent;
    border-radius: 8px;
    color: var(--color-muted);
    cursor: pointer;
    display: flex;
    font-weight: 760;
    gap: 10px;
    min-height: 44px;
    padding: 10px 12px;
    transition: background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}

.app-nav-section summary::-webkit-details-marker {
    display: none;
}

.app-nav a:hover,
.app-nav a.is-active,
.app-nav-section summary:hover,
.app-nav-section summary.is-active {
    background: #ffffff;
    border-color: var(--color-line);
    color: var(--color-ink);
    transform: translateX(2px);
}

.app-nav a.is-active,
.app-nav-section summary.is-active {
    box-shadow: 0 12px 28px rgba(16, 35, 43, .07);
}

.app-nav .nav-icon {
    background: var(--color-soft);
    border-radius: 8px;
    height: 28px;
    width: 28px;
}

.app-nav a.is-active .nav-icon,
.app-nav-section summary.is-active .nav-icon {
    background: rgba(16, 35, 43, .08);
    border-color: rgba(16, 35, 43, .16);
    color: var(--color-ink);
}

.app-nav-sublist {
    display: grid;
    gap: 6px;
    padding-left: 18px;
}

.app-nav-sublist a {
    min-height: 38px;
    padding: 8px 10px;
}

.nav-chevron {
    height: 16px;
    margin-left: auto;
    transition: transform .16s ease;
    width: 16px;
}

.app-nav-section[open] .nav-chevron {
    transform: rotate(180deg);
}

.app-sidebar-footer {
    display: grid;
    gap: 12px;
}

.support-menu {
    position: relative;
}

.support-menu summary {
    align-items: center;
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: 999px;
    color: var(--color-muted);
    cursor: pointer;
    display: inline-flex;
    font-size: 13px;
    font-weight: 850;
    gap: 7px;
    min-height: 34px;
    padding: 7px 11px;
}

.support-menu summary::-webkit-details-marker {
    display: none;
}

.support-menu summary:hover {
    color: var(--color-brand-strong);
}

.support-menu-panel {
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    bottom: calc(100% + 8px);
    box-shadow: 0 18px 38px rgba(16, 35, 43, .14);
    display: grid;
    gap: 6px;
    min-width: 230px;
    padding: 8px;
    position: absolute;
    z-index: 20;
}

.support-menu-panel a,
.account-links a {
    align-items: center;
    border-radius: 8px;
    color: var(--color-muted);
    display: flex;
    font-size: 13px;
    font-weight: 800;
    gap: 8px;
    min-height: 34px;
    padding: 8px 10px;
}

.support-menu-panel a:hover,
.account-links a:hover,
.account-links a.is-active {
    background: var(--color-soft);
    color: var(--color-ink);
}

.app-legal-nav {
    color: var(--color-muted);
    display: flex;
    flex-wrap: wrap;
    font-size: 12px;
    gap: 8px 10px;
    line-height: 1.2;
    padding: 0 2px;
}

.app-legal-nav a:hover {
    color: var(--color-ink);
}

.account-card {
    align-items: center;
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    display: grid;
    gap: 10px;
    grid-template-columns: 38px minmax(0, 1fr);
    padding: 12px;
}

.account-avatar {
    align-items: center;
    background: #dff4ef;
    border-radius: 50%;
    color: var(--color-brand-strong);
    display: inline-flex;
    font-weight: 900;
    height: 38px;
    justify-content: center;
    width: 38px;
}

.account-card strong,
.account-card small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.account-card strong {
    font-size: 14px;
}

.account-card small {
    color: var(--color-muted);
    font-size: 12px;
}

.account-links {
    background: rgba(255, 255, 255, .72);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    display: grid;
    gap: 2px;
    padding: 4px;
}

.logout-button {
    width: 100%;
}

.app-main {
    margin: 0;
    max-width: none;
    padding: 32px;
}

.cockpit-hero {
    background:
        linear-gradient(135deg, rgba(255, 255, 255, .95), rgba(240, 246, 243, .92)),
        radial-gradient(circle at 78% 42%, rgba(15, 118, 110, .12), transparent 30%);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    box-shadow: 0 20px 48px rgba(16, 35, 43, .08);
    grid-template-columns: minmax(0, 1fr);
    margin-bottom: 18px;
    overflow: hidden;
    padding: 24px;
    position: relative;
}

.cockpit-hero h1 {
    font-size: clamp(30px, 3vw, 42px);
    max-width: 840px;
}

.cockpit-hero .hero-copy {
    font-size: 16px;
    margin-bottom: 18px;
    max-width: 760px;
}

.cockpit-orbit {
    align-self: center;
    aspect-ratio: 1;
    border: 1px solid rgba(15, 118, 110, .28);
    border-radius: 50%;
    display: grid;
    justify-self: end;
    place-items: center;
    position: relative;
    width: 132px;
}

.cockpit-orbit::before,
.cockpit-orbit::after {
    background: rgba(15, 118, 110, .22);
    content: "";
    position: absolute;
}

.cockpit-orbit::before {
    height: 1px;
    width: 100%;
}

.cockpit-orbit::after {
    height: 100%;
    width: 1px;
}

.cockpit-orbit span {
    aspect-ratio: 1;
    background: radial-gradient(circle, rgba(22, 163, 74, .14), rgba(15, 118, 110, .08));
    border: 2px solid #65c979;
    border-radius: 50%;
    width: 50px;
    z-index: 1;
}

.dashboard-metrics {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-bottom: 18px;
}

.metric-card {
    color: inherit;
    border-radius: 8px;
    box-shadow: 0 14px 34px rgba(16, 35, 43, .07);
    min-height: 132px;
    padding: 22px;
    transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

a.metric-card:hover {
    border-color: rgba(15, 118, 110, .34);
    box-shadow: 0 18px 38px rgba(16, 35, 43, .11);
    transform: translateY(-2px);
}

.metric-card::before {
    background: linear-gradient(180deg, rgba(15, 118, 110, .22), transparent);
    border-radius: 8px 8px 0 0;
    content: "";
    height: 3px;
    inset: 0 0 auto;
    position: absolute;
}

.metric-card small {
    color: var(--color-muted);
    font-size: 13px;
    font-weight: 650;
}

.metric-card-alert::before {
    background: linear-gradient(180deg, rgba(220, 107, 95, .48), transparent);
}

.metric-card-alert .metric-icon {
    background: #fff0ed;
    color: var(--color-danger);
}

.metric-card-success::before {
    background: linear-gradient(180deg, rgba(22, 163, 74, .42), transparent);
}

.metric-card-success .metric-icon {
    background: #eaf8ef;
    color: var(--color-success);
}

.metric-card-money .metric-icon {
    background: #fff6df;
    color: #9a6700;
}

.dashboard-command-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, 1fr) 330px;
    margin-bottom: 18px;
}

.dashboard-command-main {
    display: grid;
    gap: 18px;
}

.dashboard-priority-panel,
.dashboard-table {
    background: rgba(255, 255, 255, .9);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    box-shadow: 0 14px 34px rgba(16, 35, 43, .07);
}

.dashboard-priority-panel {
    padding: 20px;
}

.panel-heading {
    align-items: center;
    display: flex;
    gap: 16px;
    justify-content: space-between;
    padding: 20px 20px 0;
}

.panel-heading h2 {
    font-size: 26px;
    margin: 0;
}

.dashboard-priority-panel .panel-heading {
    padding: 0 0 18px;
}

.dashboard-table .data-table {
    min-width: 760px;
}

.empty-inline {
    color: var(--color-muted);
    display: grid;
    gap: 4px;
    padding: 20px;
}

.empty-inline strong {
    color: var(--color-ink);
}

.priority-list {
    display: grid;
    gap: 10px;
}

.priority-list a {
    align-items: center;
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    display: grid;
    gap: 12px;
    grid-template-columns: 12px minmax(0, 1fr);
    padding: 14px;
    transition: border-color .16s ease, transform .16s ease;
}

.priority-list a:hover {
    border-color: rgba(15, 118, 110, .32);
    transform: translateY(-1px);
}

.priority-list strong,
.priority-list small {
    display: block;
}

.priority-list small {
    color: var(--color-muted);
    margin-top: 2px;
}

.priority-dot {
    background: var(--color-brand);
    border-radius: 999px;
    height: 10px;
    width: 10px;
}

.priority-dot-alert {
    background: var(--color-danger);
}

.priority-dot-soft {
    background: var(--color-accent);
}

.assistant-action-panel {
    background:
        linear-gradient(135deg, rgba(15, 118, 110, .09), transparent 42%),
        #ffffff;
    margin-bottom: 0;
}

@media (max-width: 860px) {
    .site-header {
        align-items: flex-start;
        flex-direction: column;
        gap: 14px;
    }

    .site-brand {
        min-width: 0;
    }

    .nav {
        flex-wrap: wrap;
        gap: 10px 14px;
    }

    .app-layout {
        display: block;
    }

    .app-header {
        border-right: 0;
        border-bottom: 1px solid var(--color-line);
        box-shadow: 0 10px 28px rgba(16, 35, 43, .05);
        height: auto;
        position: static;
    }

    .app-nav {
        display: flex;
        flex-wrap: wrap;
    }

    .app-nav a,
    .app-nav-section {
        flex: 1 1 180px;
    }

    .app-nav-sublist {
        padding-left: 0;
    }

    .app-sidebar-footer {
        display: none;
    }

    .search-row {
        align-items: stretch;
        flex-direction: column;
    }

    .datatable-toolbar {
        align-items: stretch;
        grid-template-columns: 1fr;
    }

    .datatable-summary {
        min-width: 0;
    }

    .datatable-footer,
    .datatable-pagination {
        align-items: stretch;
        flex-direction: column;
    }

    .datatable-pages {
        justify-content: center;
    }

    .hero-inner,
    .next-steps-inner,
    .dashboard-hero,
    .dashboard-command-grid,
    .settings-tabs,
    .billing-grid,
    .billing-actions,
    .billing-subscription-summary,
    .billing-manage-panel,
    .connect-panel,
    .card-payment-box,
    .client-profile-grid,
    .document-form-shell,
    .document-type-options,
    .document-line-main-fields,
    .payment-link-header,
    .payment-link-form {
        grid-template-columns: 1fr;
    }

    .cockpit-orbit {
        display: none;
    }

    .billing-stage {
        min-height: auto;
        padding-top: 8px;
    }

    .billing-state-header,
    .billing-primary-action {
        align-items: stretch;
        flex-direction: column;
    }

    .stage-grid,
    .stage-beam {
        display: none;
    }

    .invoice-preview-main,
    .reminder-card,
    .cash-card {
        position: relative;
        inset: auto;
        width: 100%;
    }

    .billing-stage {
        display: grid;
        gap: 14px;
    }

    .feature-grid,
    .dashboard-grid,
    .dashboard-metrics,
    .kpi-grid,
    .seo-contact-page,
    .document-meta,
    .faq-list,
    .seo-proof-band,
    .seo-screenshot-grid,
    .seo-document-card-header,
    .seo-document-parties,
    .seo-document-totals,
    .seo-comparison-grid,
    .import-grid {
        grid-template-columns: 1fr;
    }

    .seo-proof-band {
        margin-top: 0;
        padding-top: 24px;
    }

    .seo-proof-band article,
    .seo-proof-band article:first-child,
    .seo-proof-band article:last-child {
        border-radius: 8px;
    }

    .kpi-widget {
        grid-template-columns: 1fr;
    }

    .page-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .app-header {
        align-items: flex-start;
        flex-direction: column;
        gap: 16px;
    }

    .form-grid,
    .document-line-compact,
    .client-profile-details {
        grid-template-columns: 1fr;
    }

    .import-template-card,
    .import-file-dropzone {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .import-template-card .button,
    .import-file-cta {
        grid-column: 1 / -1;
        justify-self: stretch;
    }

    .document-live-preview {
        position: static;
    }

    .settings-save-bar,
    .settings-section-header {
        align-items: stretch;
        flex-direction: column;
    }
}

@media (max-width: 520px) {
    .hero-inner,
    .features,
    .next-steps-inner,
    .seo-content {
        padding-left: 18px;
        padding-right: 18px;
    }

    .site-header {
        padding: 16px 18px 10px;
    }

    .site-header .brand-logo-horizontal {
        height: 34px;
        max-width: 196px;
    }

    .nav {
        font-size: 13px;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
    }

    .nav a {
        min-width: 0;
        border: 1px solid var(--color-line);
        border-radius: 8px;
        justify-content: center;
        min-height: 44px;
        padding: 8px 10px;
    }

    .breadcrumb-nav {
        font-size: 12px;
        padding: 10px 18px 0;
    }

    .hero-inner {
        gap: 28px;
        padding-top: 34px;
        padding-bottom: 42px;
    }

    h1 {
        font-size: 30px;
        line-height: 1.06;
        margin-bottom: 16px;
    }

    .eyebrow {
        font-size: 12px;
        margin-bottom: 10px;
    }

    .invoice-preview {
        padding: 18px;
    }

    .hero-copy {
        font-size: 18px;
        margin-bottom: 12px;
    }

    .hero-origin {
        margin-bottom: 18px;
    }

    .hero-actions {
        align-items: stretch;
        flex-direction: column;
    }

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

    .hero-wow .billing-stage {
        display: none;
    }

    .invoice-line {
        align-items: flex-start;
        grid-template-columns: 1fr;
    }

    .auth-panel {
        padding: 24px;
    }

    .app-main,
    .form-panel,
    .empty-state {
        padding-left: 18px;
        padding-right: 18px;
    }

    .app-header {
        padding: 16px 18px;
    }

    .app-header .nav {
        gap: 9px;
    }

    .service-import-template {
        grid-template-columns: 1fr;
    }

    .app-header .nav a {
        background: #f9fcfb;
        border: 1px solid var(--color-line);
        border-radius: 8px;
        padding: 7px 9px;
    }

    .app-main {
        padding-top: 28px;
        padding-bottom: 32px;
    }

    .page-heading .hero-actions,
    .status-actions,
    .signature-status .inline-actions {
        width: 100%;
    }

    .status-actions form,
    .signature-status .inline-actions form {
        width: 100%;
    }

    .page-heading .button,
    .status-actions .button,
    .signature-status .button,
    .connect-panel-actions .button,
    .payment-link-form .button {
        width: 100%;
    }

    .document-panel {
        padding: 18px;
    }

    .totals-panel {
        max-width: none;
    }

    .signature-status {
        align-items: stretch;
    }

    .public-payment-card {
        padding: 22px;
    }

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

    .payment-qr-card,
    .payment-qr-link-card {
        grid-template-columns: 1fr;
        justify-items: start;
    }

    .seo-section {
        padding: 20px;
    }

    .seo-contextual-cta {
        grid-template-columns: 1fr;
        margin-left: 18px;
        margin-right: 18px;
        padding: 22px;
    }

    .seo-contextual-cta .button {
        justify-content: center;
        width: 100%;
        white-space: normal;
    }

    .seo-comparison-table-wrap {
        overflow-x: visible;
    }

    .seo-comparison-table {
        min-width: 0;
    }

    .seo-comparison-table thead {
        display: none;
    }

    .seo-comparison-table,
    .seo-comparison-table tbody,
    .seo-comparison-table tr,
    .seo-comparison-table th,
    .seo-comparison-table td {
        display: block;
        width: 100%;
    }

    .seo-comparison-table tr {
        border-bottom: 1px solid var(--color-line);
        padding: 12px 0;
    }

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

    .seo-comparison-table th,
    .seo-comparison-table td {
        border-bottom: 0;
        padding: 8px 14px;
    }

    .seo-comparison-table tbody th {
        width: 100%;
    }

    .seo-comparison-table td::before {
        color: var(--color-muted);
        content: attr(data-label);
        display: block;
        font-size: 11px;
        font-weight: 850;
        margin-bottom: 4px;
        text-transform: uppercase;
    }

    .table-panel {
        overflow-x: visible;
    }

    .data-table {
        min-width: 0;
    }

    .data-table thead {
        display: none;
    }

    .data-table,
    .data-table tbody,
    .data-table tr,
    .data-table td {
        display: block;
        width: 100%;
    }

    .data-table tr {
        border-bottom: 1px solid var(--color-line);
        padding: 12px 0;
    }

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

    .data-table td {
        align-items: start;
        border-bottom: 0;
        display: grid;
        gap: 12px;
        grid-template-columns: 108px minmax(0, 1fr);
        padding: 7px 14px;
        text-align: left;
        white-space: normal;
    }

    .data-table td::before {
        color: var(--color-muted);
        content: attr(data-label);
        font-size: 12px;
        font-weight: 850;
        text-transform: uppercase;
    }

    .data-table td.table-actions {
        text-align: left;
    }

    .row-actions {
        align-items: stretch;
        justify-content: flex-start;
    }

    .actions-menu {
        flex: 1;
    }

    .actions-menu summary {
        width: 100%;
    }

    .actions-menu-panel {
        position: static;
        margin-top: 8px;
    }

    .assistant-action-panel {
        align-items: stretch;
        display: grid;
    }

    .data-table td.table-actions .inline-actions {
        justify-content: flex-start;
    }

    .data-table td.table-actions .inline-actions form {
        margin: 0;
    }

    .data-table td.table-actions .button-small {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}

html[data-theme="dark"] {
    color-scheme: dark;
    --color-ink: #edf7f4;
    --color-muted: #9fb0b7;
    --color-line: rgba(178, 207, 202, .24);
    --color-panel: #111d20;
    --color-soft: #17282c;
    --color-brand: #14b8a6;
    --color-brand-strong: #5eead4;
    --color-accent: #f2c66d;
    --color-danger: #f08a7f;
    --color-success: #4ade80;
    --shadow-soft: 0 18px 48px rgba(0, 0, 0, .42);
}

html[data-theme="dark"] body {
    background: #081113;
    color: var(--color-ink);
}

.theme-toggle {
    align-items: center;
    background: rgba(255, 255, 255, .84);
    border: 1px solid var(--color-line);
    border-radius: 999px;
    color: var(--color-muted);
    cursor: pointer;
    display: inline-flex;
    font-size: 13px;
    font-weight: 850;
    gap: 8px;
    justify-content: center;
    min-height: 36px;
    padding: 8px 12px;
    transition: background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
    width: fit-content;
}

.theme-toggle:hover {
    border-color: rgba(15, 118, 110, .34);
    color: var(--color-brand-strong);
    transform: translateY(-1px);
}

.theme-toggle:focus-visible {
    box-shadow: 0 0 0 3px rgba(15, 118, 110, .18);
    outline: none;
}

.theme-toggle-icon {
    align-items: center;
    background: var(--color-soft);
    border: 1px solid var(--color-line);
    border-radius: 999px;
    display: inline-flex;
    height: 24px;
    justify-content: center;
    width: 24px;
}

.theme-toggle .lucide {
    height: 15px;
    width: 15px;
}

.theme-toggle-icon-sun {
    display: none;
}

html[data-theme="dark"] .theme-toggle {
    background: rgba(20, 32, 36, .9);
    color: #b9c8cd;
}

html[data-theme="dark"] .theme-toggle-icon {
    background: rgba(94, 234, 212, .12);
    color: var(--color-brand-strong);
}

html[data-theme="dark"] .theme-toggle-icon-moon {
    display: none;
}

html[data-theme="dark"] .theme-toggle-icon-sun {
    display: block;
}

html[data-theme="dark"] :is(.site-header, .auth-page, .legal-page) {
    background: transparent;
}

html[data-theme="dark"] .site-shell,
html[data-theme="dark"] .auth-page,
html[data-theme="dark"] .public-payment-shell,
html[data-theme="dark"] .public-document {
    background:
        radial-gradient(circle at 88% 5%, rgba(20, 184, 166, .16), transparent 28%),
        linear-gradient(180deg, #081113 0%, #0d191c 100%);
}

html[data-theme="dark"] .hero,
html[data-theme="dark"] .hero-wow {
    background:
        linear-gradient(135deg, rgba(20, 184, 166, .14) 0%, transparent 46%),
        linear-gradient(180deg, #081113 0%, #0d191c 100%);
    border-color: var(--color-line);
}

html[data-theme="dark"] .hero-wow::before {
    background:
        linear-gradient(90deg, rgba(94, 234, 212, .08) 1px, transparent 1px),
        linear-gradient(180deg, rgba(94, 234, 212, .08) 1px, transparent 1px);
    opacity: .42;
}

html[data-theme="dark"] .app-layout {
    background:
        radial-gradient(circle at 88% 5%, rgba(242, 198, 109, .13), transparent 26%),
        radial-gradient(circle at 0% 96%, rgba(20, 184, 166, .12), transparent 32%),
        linear-gradient(180deg, #081113 0%, #0c181b 100%);
}

html[data-theme="dark"] .app-header {
    background: rgba(10, 20, 23, .88);
    border-color: rgba(178, 207, 202, .18);
    box-shadow: 14px 0 32px rgba(0, 0, 0, .22);
}

html[data-theme="dark"] :is(
    .auth-panel,
    .feature-card,
    .seo-hero-image,
    .seo-screenshot-card,
    .seo-section,
    .seo-proof-band article,
    .seo-comparison-grid div,
    .seo-comparison-table-wrap,
    .form-panel,
    .table-panel,
    .document-panel,
    .document-live-preview-paper,
    .client-profile-card,
    .client-profile-summary,
    .dashboard-priority-panel,
    .dashboard-table,
    .metric-card,
    .kpi-widget,
    .settings-tabs,
    .settings-section,
    .settings-save-bar,
    .connect-panel,
    .connect-status-card,
    .billing-plan,
    .billing-state-card,
    .billing-manage-panel,
    .billing-action-card,
    .public-payment-card,
    .card-payment-box,
    .payment-qr-card,
    .payment-qr-link-card,
    .status-actions,
    .signature-status,
    .signature-complete-hero,
    .app-modal,
    .modal-success,
    .import-sample,
    .import-template-card,
    .kpi-card,
    .totals-panel
) {
    background: rgba(17, 29, 32, .92);
    border-color: var(--color-line);
    box-shadow: 0 18px 44px rgba(0, 0, 0, .28);
}

html[data-theme="dark"] .import-template-icon {
    background: rgba(8, 17, 19, .84);
}

html[data-theme="dark"] .seo-comparison-table thead th {
    background: rgba(20, 184, 166, .11);
    color: #e7f4f1;
}

html[data-theme="dark"] .seo-comparison-table tbody tr:nth-child(even) {
    background: rgba(20, 184, 166, .05);
}

html[data-theme="dark"] .seo-contextual-cta {
    box-shadow: 0 24px 70px rgba(0, 0, 0, .34);
}

html[data-theme="dark"] .import-file-dropzone {
    background:
        radial-gradient(circle at 18% 18%, rgba(20, 184, 166, .16), transparent 24%),
        linear-gradient(135deg, rgba(20, 184, 166, .10), rgba(231, 178, 74, .08));
    border-color: rgba(20, 184, 166, .34);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .04);
}

html[data-theme="dark"] .import-file-dropzone:hover,
html[data-theme="dark"] .import-file-dropzone.is-dragging,
html[data-theme="dark"] .import-file-input:focus-visible + .import-file-dropzone {
    border-color: #2dd4bf;
    box-shadow: 0 16px 34px rgba(0, 0, 0, .24), 0 0 0 3px rgba(45, 212, 191, .13);
}

html[data-theme="dark"] .import-file-icon {
    background: rgba(8, 17, 19, .84);
    border-color: var(--color-line);
}

html[data-theme="dark"] :is(
    .app-nav a:hover,
    .app-nav a.is-active,
    .app-nav-section summary:hover,
    .app-nav-section summary.is-active,
    .support-menu summary,
    .support-menu-panel,
    .account-card,
    .account-links,
    .actions-menu-panel,
    .priority-list a,
    .shortcut-list a,
    .datatable-summary,
    .datatable-active-filter,
    .document-type-card-body,
    .document-live-preview-extra,
    .document-line-editor,
    .document-client-toggle,
    .document-client-dropdown,
    .document-line-service-toggle,
    .document-line-service-dropdown,
    .document-line-service-group-title,
    .document-line-selected-summary,
    .document-action-note,
    .billing-subscription-summary > div,
    .payment-success-note,
    .bank-transfer-box,
    .payment-qr-card,
    .payment-qr-link-card,
    .payment-copy-row
) {
    background: rgba(13, 25, 28, .92);
    border-color: var(--color-line);
}

html[data-theme="dark"] :is(.app-nav a.is-active, .app-nav-section summary.is-active) {
    box-shadow: 0 12px 28px rgba(0, 0, 0, .24);
}

html[data-theme="dark"] :is(.app-nav .nav-icon, .nav-icon, .feature-card-icon, .metric-icon, .account-avatar, .billing-step) {
    background: rgba(94, 234, 212, .1);
    border-color: rgba(94, 234, 212, .18);
    color: var(--color-brand-strong);
}

html[data-theme="dark"] .seo-check-list li {
    color: var(--color-ink);
}

html[data-theme="dark"] .seo-proof-band article {
    background: rgba(17, 29, 32, .94);
}

html[data-theme="dark"] .cockpit-hero {
    background:
        linear-gradient(135deg, rgba(17, 29, 32, .95), rgba(23, 40, 44, .9)),
        radial-gradient(circle at 78% 42%, rgba(20, 184, 166, .16), transparent 30%);
    border-color: var(--color-line);
    box-shadow: 0 22px 48px rgba(0, 0, 0, .26);
}

html[data-theme="dark"] .assistant-action-panel {
    background:
        linear-gradient(135deg, rgba(20, 184, 166, .13), transparent 42%),
        rgba(17, 29, 32, .95);
}

html[data-theme="dark"] :is(input, select, textarea) {
    background: #0d191c;
    border-color: var(--color-line);
    color: var(--color-ink);
}

html[data-theme="dark"] :is(input, textarea)::placeholder {
    color: #74878e;
}

html[data-theme="dark"] :is(input, select, textarea):focus {
    border-color: rgba(94, 234, 212, .64);
    box-shadow: 0 0 0 3px rgba(20, 184, 166, .2);
}

html[data-theme="dark"] :is(.form-row input.is-field-invalid, .form-row select.is-field-invalid, .form-row textarea.is-field-invalid, .stacked-form input.is-field-invalid, .stacked-form select.is-field-invalid, .stacked-form textarea.is-field-invalid, .document-line input.is-field-invalid, .document-line select.is-field-invalid, .document-line textarea.is-field-invalid, input[aria-invalid="true"], select[aria-invalid="true"], textarea[aria-invalid="true"]) {
    background: rgba(220, 107, 95, .12);
    border-color: rgba(240, 138, 127, .78);
    box-shadow: 0 0 0 3px rgba(240, 138, 127, .18), 0 8px 18px rgba(0, 0, 0, .16);
}

html[data-theme="dark"] .field-validation-message,
html[data-theme="dark"] .has-field-error > label {
    color: #ffb4ab;
}

html[data-theme="dark"] .has-field-success > label {
    color: var(--color-success);
}

html[data-theme="dark"] .data-table {
    color: var(--color-ink);
}

html[data-theme="dark"] .data-table th {
    color: #b8c8ce;
}

html[data-theme="dark"] .data-table :is(th, td),
html[data-theme="dark"] .invoice-line {
    border-color: var(--color-line);
}

html[data-theme="dark"] .data-table tbody tr:hover {
    background: rgba(94, 234, 212, .06);
}

html[data-theme="dark"] :is(.datatable-filter-row input, .datatable-filter-row select, .datatable-search input) {
    background: rgba(8, 17, 19, .84);
}

html[data-theme="dark"] .status-pill,
html[data-theme="dark"] .status-badge {
    border-color: rgba(178, 207, 202, .22);
}

html[data-theme="dark"] :is(.status-pill-warning, .status-badge-draft, .status-badge-expired),
html[data-theme="dark"] .status-pill {
    background: rgba(242, 198, 109, .14);
    color: #ffd987;
}

html[data-theme="dark"] :is(.status-pill-success, .status-badge-paid, .status-badge-accepted) {
    background: rgba(74, 222, 128, .12);
    color: #9af4b6;
}

html[data-theme="dark"] :is(.status-pill-danger, .status-badge-overdue, .status-badge-refused) {
    background: rgba(240, 138, 127, .13);
    color: #ffb4ab;
}

html[data-theme="dark"] :is(.status-pill-muted, .status-badge-cancelled) {
    background: rgba(159, 176, 183, .12);
    color: #c0cbd0;
}

html[data-theme="dark"] .alert-success {
    background: rgba(74, 222, 128, .12);
    border-color: rgba(74, 222, 128, .32);
    color: #adf7c2;
}

html[data-theme="dark"] .alert-error {
    background: rgba(240, 138, 127, .12);
    border-color: rgba(240, 138, 127, .34);
    color: #ffb4ab;
}

html[data-theme="dark"] .alert-warning {
    background: rgba(242, 198, 109, .13);
    border-color: rgba(242, 198, 109, .36);
    color: #ffd987;
}

html[data-theme="dark"] .public-payment-disclaimer,
html[data-theme="dark"] :is(.auth-copy, .auth-switch, .hero-copy, .hero-origin, .section-heading p, .feature-card p, .seo-section p, .line-detail, .invoice-kicker, .reminder-card small, .account-card small, .client-profile-details dd, .empty-inline, .legal-list) {
    color: var(--color-muted);
}

html[data-theme="dark"] :is(.invoice-preview, .reminder-card, .cash-card) {
    background: rgba(17, 29, 32, .94);
    border-color: var(--color-line);
    box-shadow: 0 22px 46px rgba(0, 0, 0, .35);
}

html[data-theme="dark"] .invoice-line-active {
    background: rgba(94, 234, 212, .06);
    border-color: rgba(94, 234, 212, .18);
}

html[data-theme="dark"] .donut-chart {
    background:
        radial-gradient(circle, #111d20 0 48%, transparent 49%),
        conic-gradient(var(--color-brand) 0 45%, var(--color-accent) 45% 72%, rgba(159, 176, 183, .24) 72% 100%);
}

html[data-theme="dark"] .bar-chart,
html[data-theme="dark"] .cash-meter {
    background: rgba(8, 17, 19, .78);
    border-color: var(--color-line);
}

html[data-theme="dark"] .button-secondary {
    background: rgba(13, 25, 28, .92);
    border-color: var(--color-line);
    color: var(--color-brand-strong);
}

html[data-theme="dark"] .button-secondary:hover {
    border-color: rgba(94, 234, 212, .46);
}

html[data-theme="dark"] .button-primary {
    background: #0f9488;
    box-shadow: 0 14px 28px rgba(20, 184, 166, .22);
    color: #ffffff;
}

html[data-theme="dark"] .button-primary:hover {
    background: #14b8a6;
}

html[data-theme="dark"] .settings-tab {
    background: rgba(13, 25, 28, .62);
}

html[data-theme="dark"] .settings-tab:hover,
html[data-theme="dark"] .settings-tab.is-active {
    background: rgba(17, 29, 32, .98);
}

html[data-theme="dark"] :is(.modal-table-scroll, .document-client-options, .document-line-service-options, .app-modal) {
    scrollbar-color: rgba(94, 234, 212, .42) rgba(13, 25, 28, .78);
}

html[data-theme="dark"] .app-modal::backdrop {
    background: rgba(3, 8, 9, .72);
}

html[data-theme="dark"] .legal-footer {
    background: #081113;
}

.admin-shell {
    background: linear-gradient(135deg, #f6faf8 0%, #ffffff 54%, #f7f2e8 100%);
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    min-height: 100vh;
}

.admin-sidebar {
    background: rgba(255, 255, 255, .86);
    border-right: 1px solid var(--color-line);
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    padding: 24px 18px;
    position: sticky;
    top: 0;
}

.admin-brand {
    margin-bottom: 26px;
}

.admin-nav {
    display: grid;
    gap: 8px;
}

.admin-notification-link {
    position: relative;
}

.admin-notification-badge {
    align-items: center;
    background: var(--color-danger);
    border: 2px solid #fff;
    border-radius: 999px;
    color: #fff;
    display: inline-flex;
    font-size: 11px;
    font-weight: 900;
    justify-content: center;
    line-height: 1;
    margin-left: auto;
    min-height: 22px;
    min-width: 22px;
    padding: 3px 6px;
}

.admin-security-note {
    align-items: center;
    background: #f0f6f3;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    color: var(--color-brand-strong);
    display: flex;
    font-size: 13px;
    font-weight: 800;
    gap: 10px;
    margin-top: 24px;
    padding: 12px;
}

.admin-security-note .lucide {
    height: 18px;
    width: 18px;
}

.admin-main {
    display: grid;
    gap: 18px;
    padding: 32px clamp(20px, 4vw, 52px);
}

.admin-heading {
    margin-bottom: 0;
}

.admin-metrics {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.admin-table-panel {
    overflow: hidden;
}

.admin-notifications-table td span,
.admin-notifications-table td strong,
.admin-notifications-table td a,
.admin-contacts-table td span,
.admin-contacts-table td strong,
.admin-contacts-table td a {
    display: block;
}

.admin-notifications-table td span,
.admin-contacts-table td span {
    color: var(--color-muted);
    font-size: 13px;
    margin-top: 4px;
}

.admin-filter-form {
    align-items: end;
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr)) auto auto;
}

.admin-filter-form label {
    color: var(--color-muted);
    display: grid;
    font-size: 13px;
    font-weight: 850;
    gap: 6px;
}

.admin-filter-form select {
    background: #fff;
    border: 1px solid var(--color-line);
    border-radius: 8px;
    color: var(--color-ink);
    font: inherit;
    min-height: 42px;
    padding: 8px 10px;
}

.admin-contact-message {
    color: var(--color-ink);
    font-size: 15px;
    line-height: 1.65;
    margin: 0;
    white-space: pre-line;
}

.admin-section-title {
    align-items: center;
    display: flex;
    gap: 16px;
    justify-content: space-between;
    margin-bottom: 16px;
}

.admin-section-title h2 {
    font-size: 22px;
    line-height: 1.15;
    margin: 0;
}

.admin-detail-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.admin-reply-form {
    max-width: 860px;
}

.admin-form-actions {
    display: flex;
    justify-content: flex-end;
}

.admin-replies-table {
    min-width: 940px;
}

.admin-replies-table td {
    vertical-align: top;
}

.admin-error-note {
    color: #9b2f27 !important;
    font-weight: 800;
}

.analytics-period-switch {
    background: rgba(255, 255, 255, .78);
    border: 1px solid var(--color-line);
    border-radius: 8px;
    display: inline-flex;
    gap: 6px;
    padding: 6px;
}

.analytics-period-switch a {
    border-radius: 7px;
    color: var(--color-muted);
    font-size: 14px;
    font-weight: 850;
    padding: 8px 12px;
}

.analytics-period-switch a:hover,
.analytics-period-switch a.is-active {
    background: var(--color-brand);
    color: #fff;
}

.analytics-metrics {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.analytics-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, 1.15fr) minmax(360px, .85fr);
}

.analytics-chart-panel {
    min-width: 0;
}

.analytics-bars {
    display: grid;
    gap: 10px;
}

.analytics-bar-row {
    align-items: center;
    display: grid;
    gap: 10px;
    grid-template-columns: 96px minmax(0, 1fr) 46px minmax(150px, auto);
}

.analytics-period {
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 850;
}

.analytics-bar-track {
    background: var(--color-soft);
    border: 1px solid var(--color-line);
    border-radius: 999px;
    height: 14px;
    overflow: hidden;
}

.analytics-bar {
    background: linear-gradient(90deg, var(--color-brand), var(--color-accent));
    border-radius: inherit;
    display: block;
    height: 100%;
}

.analytics-bar-row strong {
    color: var(--color-brand-strong);
    text-align: right;
}

.analytics-bar-row small {
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 750;
}

.admin-definition-list {
    display: grid;
    gap: 10px;
    margin: 0;
}

.admin-definition-list div {
    align-items: start;
    border-bottom: 1px solid var(--color-line);
    display: grid;
    gap: 12px;
    grid-template-columns: 170px minmax(0, 1fr);
    padding: 10px 0;
}

.admin-definition-list div:last-child {
    border-bottom: 0;
}

.admin-definition-list dt {
    color: var(--color-muted);
    font-size: 12px;
    font-weight: 850;
    text-transform: uppercase;
}

.admin-definition-list dd {
    font-weight: 750;
    margin: 0;
    overflow-wrap: anywhere;
}

.muted-text {
    color: var(--color-muted);
    margin: 0;
}

@media (max-width: 1180px) {
    .admin-metrics {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .analytics-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 860px) {
    .admin-shell {
        grid-template-columns: 1fr;
    }

    .admin-sidebar {
        min-height: auto;
        position: static;
    }

    .admin-detail-grid,
    .admin-metrics,
    .analytics-metrics {
        grid-template-columns: 1fr;
    }

    .admin-filter-form {
        grid-template-columns: 1fr;
    }

    .analytics-period-switch {
        width: 100%;
    }

    .analytics-period-switch a {
        flex: 1;
        text-align: center;
    }

    .analytics-bar-row {
        grid-template-columns: 1fr;
    }

    .analytics-bar-row strong {
        text-align: left;
    }

    .admin-definition-list div {
        grid-template-columns: 1fr;
    }
}

html[data-theme="dark"] .admin-shell {
    background: linear-gradient(135deg, #081113 0%, #0d191c 56%, #17282c 100%);
}

html[data-theme="dark"] :is(.admin-sidebar, .analytics-period-switch, .admin-security-note) {
    background: rgba(13, 25, 28, .92);
    border-color: var(--color-line);
}

html[data-theme="dark"] .admin-notification-badge {
    border-color: #0d191c;
}
