:root {
    color-scheme: light;
    --ink: #172033;
    --muted: #667085;
    --line: #d9dfeb;
    --surface: #ffffff;
    --background: #f4f6fa;
    --primary: #2458d3;
    --primary-dark: #173f9d;
    --warning: #9a6700;
    --warning-bg: #fff8db;
    --error: #a12424;
    --error-bg: #fff0f0;
}

* { box-sizing: border-box; }
body {
    margin: 0;
    color: var(--ink);
    background: var(--background);
    font: 15px/1.5 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
a { color: var(--primary); }
.topbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 16px 28px;
    background: var(--surface);
    border-bottom: 1px solid var(--line);
}
.brand { color: var(--ink); font-size: 20px; font-weight: 750; text-decoration: none; }
.subtitle { margin-left: 10px; color: var(--muted); }
.entity-switcher { display: flex; align-items: center; gap: 8px; margin-left: auto; padding: 6px 8px; border: 1px solid var(--line); border-radius: 10px; background: #eef3ff; }
.entity-switcher label { font-size: 12px; font-weight: 750; text-transform: uppercase; letter-spacing: .05em; }
.entity-switcher select { width: auto; min-width: 110px; margin: 0; padding: 7px 30px 7px 9px; }
.entity-switcher button { width: auto; padding: 7px 10px; }
.entity-switcher.entity-kleryo, .entity-badge.entity-kleryo { border-color: #7a4cc2; background: #f3edff; color: #452277; }
.entity-badge { margin-left: auto; padding: 6px 10px; border: 1px solid #9db5ef; border-radius: 999px; background: #eef3ff; font-size: 13px; font-weight: 750; }
.entity-onboarding-card { border-color: #bda6df; }
nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 18px; }
.mobile-nav-shell { margin-left: auto; }
.mobile-nav-shell > summary { display: none; }
@media (min-width: 601px) {
    .mobile-nav-shell > nav { display: flex; }
}
nav a, .link-button { color: var(--ink); text-decoration: none; }
.inline, .actions form { display: inline; margin: 0; }
.topbar nav > details.inline { position: relative; }
.topbar nav > details.inline[open] { z-index: 20; }
.topbar nav > details.inline > summary { cursor: pointer; }
.topbar nav > details.inline > .card {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    width: max-content;
    min-width: 210px;
    max-width: min(320px, calc(100vw - 32px));
    padding: 14px;
}
.topbar nav > details.inline > .card ul { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.topbar nav > details.inline > .card a { display: block; padding: 7px 9px; border-radius: 7px; white-space: normal; }
.topbar nav > details.inline > .card a:hover,
.topbar nav > details.inline > .card a:focus-visible { background: #eef3ff; }
.link-button {
    padding: 0;
    border: 0;
    background: none;
    font: inherit;
    cursor: pointer;
}
.container { width: min(1180px, calc(100% - 32px)); margin: 36px auto; }
.hero, .page-header { display: flex; justify-content: space-between; align-items: end; margin-bottom: 24px; }
h1 { margin: 0 0 8px; font-size: clamp(28px, 4vw, 42px); line-height: 1.1; }
h2 { margin: 0 0 14px; font-size: 20px; }
h3 { margin: 0 0 10px; font-size: 18px; }
.eyebrow { margin: 0 0 8px; color: var(--primary); font-weight: 750; text-transform: uppercase; letter-spacing: .08em; font-size: 12px; }
.muted { color: var(--muted); }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 18px; }
.card {
    padding: 24px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 14px;
    box-shadow: 0 8px 28px rgba(32, 45, 73, .06);
}
.home-section { margin-top: 34px; }
.home-section-header { margin-bottom: 14px; }
.home-section-header h2 { margin-bottom: 4px; font-size: 24px; }
.home-section-header p { margin: 0; }
.home-card-grid { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.home-card { display: flex; min-height: 230px; flex-direction: column; justify-content: space-between; gap: 18px; }
.home-card p { margin: 0; color: var(--muted); }
.home-card .button { align-self: flex-start; }
.home-card .home-card-feedback-count { display: flex; align-items: baseline; gap: 8px; margin-top: 18px; color: var(--warning); }
.home-card-feedback-count strong { font-size: 34px; line-height: 1; }
.home-card-feedback-count span { font-weight: 700; }
.button, button {
    display: inline-block;
    padding: 10px 15px;
    border: 1px solid var(--primary);
    border-radius: 8px;
    color: white;
    background: var(--primary);
    font: inherit;
    font-weight: 650;
    text-decoration: none;
    cursor: pointer;
}
.button:hover, button:hover { background: var(--primary-dark); }
.secondary { color: var(--ink); background: white; border-color: var(--line); }
button:disabled { cursor: not-allowed; opacity: .5; }
.small { padding: 6px 10px; font-size: 13px; }
.guest { display: grid; min-height: 100vh; place-items: center; padding: 24px; }
.login-shell { width: min(430px, 100%); }
.support-shell { width: min(760px, 100%); }
.login-card form { display: grid; gap: 10px; margin-top: 22px; }
label { font-weight: 650; }
input {
    width: 100%;
    padding: 11px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: white;
    font: inherit;
}
input:focus, select:focus, textarea:focus, button:focus, a:focus { outline: 3px solid rgba(36, 88, 211, .25); outline-offset: 2px; }
.alert { margin: 18px 0; padding: 12px 14px; border-radius: 8px; }
.warning { color: var(--warning); background: var(--warning-bg); }
.error { color: var(--error); background: var(--error-bg); }
.table-card { margin-bottom: 22px; }
.client-account-tools {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 22px;
    margin-bottom: 22px;
}
.client-search label { margin-top: 0; }
.client-create-form > div:first-of-type label { margin-top: 0; }
.client-create-form button { margin-top: 18px; }
.client-search-status { min-height: 24px; margin: 10px 0 4px; }
.client-search-results { display: grid; gap: 8px; }
.client-search-result {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 11px 12px;
    color: var(--ink);
    border: 1px solid var(--line);
    border-radius: 8px;
    text-decoration: none;
}
.client-search-result:hover, .client-search-result:focus-visible { border-color: var(--primary); background: #eef3ff; }
.client-search-result small { display: block; }
.client-search-result-state { flex: 0 0 auto; }
.contract-account-search { margin-top: 18px; }
.contract-account-search .client-search-result { width: 100%; text-align: left; font: inherit; background: #fff; cursor: pointer; }
.contract-account-search .client-search-result:disabled { cursor: not-allowed; opacity: .6; }
.client-search-selection { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 12px; padding: 12px; border: 1px solid var(--primary); border-radius: 8px; background: #eef3ff; }
.client-search-selection[hidden] { display: none; }
.client-search-selection small { display: block; }
.client-search-selection button { width: auto; flex: 0 0 auto; }
.table-scroll { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 11px 10px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; white-space: nowrap; }
th { color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: .04em; }
td.wrap { min-width: 260px; white-space: normal; overflow-wrap: anywhere; }
.audit-details {
    width: min(680px, 70vw);
    max-height: 360px;
    margin: 8px 0 0;
    overflow: auto;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    font: 12px/1.45 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.actions { display: flex; gap: 8px; }
.billing-document-header-actions { align-items: center; }
.billing-document-context-links { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.billing-journal-actions { flex-wrap: wrap; justify-content: flex-end; }
.billing-journal-filter-card { padding-top: 18px; padding-bottom: 18px; }
.billing-journal-filters { display: grid; gap: 10px; }
.billing-journal-filter-primary { display: grid; grid-template-columns: minmax(260px, 1fr) 150px 150px auto; align-items: end; gap: 12px; }
.billing-journal-filter-primary label, .billing-journal-filter-dates label { margin-top: 0; }
.billing-journal-filter-primary button { min-height: 43px; }
.billing-journal-advanced { width: fit-content; }
.billing-journal-advanced summary { color: var(--primary); cursor: pointer; font-size: 13px; font-weight: 700; }
.billing-journal-filter-dates { display: grid; grid-template-columns: repeat(2, minmax(150px, 190px)); gap: 12px; margin-top: 10px; }
.billing-draft-actions { min-width: 210px; white-space: normal; }
.billing-draft-actions > * { margin: 0 0 8px; }
.billing-draft-actions form { display: grid; gap: 7px; }
.billing-draft-actions .button, .billing-draft-actions button { width: 100%; text-align: center; }
.billing-draft-review { justify-content: flex-start; margin: 0; }
.billing-draft-review input { flex: 0 0 auto; margin: 0; }
.billing-draft-review span { display: inline-block; }
.billing-draft-validation { padding-top: 8px; border-top: 1px solid var(--line); }
.billing-draft-reject summary { color: var(--error); cursor: pointer; font-weight: 700; }
.billing-draft-reject label { margin-top: 8px; }
.billing-draft-check-intro { margin-top: 14px; }
.billing-draft-check-intro p { margin: 7px 0 0; }
.billing-draft-source-reset > summary { color: var(--primary); cursor: pointer; font-size: 18px; font-weight: 700; }
.billing-draft-source-reset > form { margin-top: 12px; }
.billing-manual-generation { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.billing-manual-generation > summary { color: var(--primary); cursor: pointer; font-weight: 700; }
.billing-manual-generation > div { margin-top: 12px; }
.billing-line-added { border-color: #aab8d8; background: #f8faff; }
[data-add-billing-draft-line] { margin: 8px 0 16px; }
.history-retry-form .button { margin-top: 0; }
small { color: var(--muted); }
.tool-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    margin-bottom: 22px;
}
label { display: block; margin: 16px 0 6px; font-weight: 700; }
input[type="text"], input[type="email"], input[type="tel"], input[type="url"],
input[type="number"], input[type="date"], input[type="month"], select, textarea {
    width: 100%;
    padding: 10px 12px;
    color: var(--ink);
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 8px;
    font: inherit;
}
textarea { resize: vertical; }
select { width: 100%; }
form > .button { margin-top: 16px; }
.support-card form { margin-top: 22px; }
.support-card button { margin-top: 18px; }
.support-card small { display: block; margin-top: 5px; }
.support-card .honeypot {
    position: absolute;
    left: -10000px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}
.success-alert { color: #11643a; background: #e8f7ef; }
.section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.section-heading h2 { margin-bottom: 2px; }
.status {
    display: inline-block;
    padding: 3px 8px;
    border-radius: 999px;
    background: #eef1f6;
    font-size: 12px;
    font-weight: 700;
}
.status-found, .status-completed { color: #11643a; background: #e8f7ef; }
.status-missing, .status-error { color: var(--error); background: var(--error-bg); }
.status-processing, .status-queued { color: var(--warning); background: var(--warning-bg); }
.status-review_required { color: #7a4e00; background: #fff3cd; }
.status-refused { color: var(--error); background: var(--error-bg); }
.status-to_do { color: var(--warning); background: var(--warning-bg); }
.status-deal_to_validate { color: #7a4e00; background: #fff3cd; }
.status-deal_approved, .status-validated { color: #11643a; background: #e8f7ef; }
.status-deal_rejected { color: var(--error); background: var(--error-bg); }
.status-published_pending_check, .status-tf_pending, .status-manual_review { color: #7a4e00; background: #fff3cd; }
.status-pending_review, .status-to_research { color: #7a4e00; background: #fff3cd; }
.status-validated_information { color: #11643a; background: #e8f7ef; }
.status-rejected_evidence { color: var(--muted); background: #eef1f6; }
.status-replacement_required { color: var(--error); background: var(--error-bg); }
.status-awaiting_publication, .status-publishing { color: #7a4e00; background: #fff3cd; }
.status-publication_failed { color: var(--error); background: var(--error-bg); }
.visual-editor { margin: 6px 0 16px; }
.visual-editor-toolbar { display: flex; flex-wrap: wrap; gap: 6px; padding: 8px; border: 1px solid var(--border); border-bottom: 0; border-radius: 8px 8px 0 0; background: #f7f8fa; }
.visual-editor-toolbar button { min-height: 34px; padding: 5px 9px; border: 1px solid var(--border); border-radius: 5px; background: #fff; color: var(--text); cursor: pointer; }
.visual-editor-toolbar button:hover, .visual-editor-toolbar button:focus-visible { border-color: var(--primary); outline: 2px solid transparent; }
.visual-editor-surface { min-height: 320px; padding: 16px; border: 1px solid var(--border); border-radius: 0 0 8px 8px; background: #fff; line-height: 1.6; overflow-wrap: anywhere; }
.visual-editor-surface:focus { border-color: var(--primary); outline: 2px solid color-mix(in srgb, var(--primary) 20%, transparent); }
.editor-source-details { margin-top: 8px; }
.editor-source-details textarea { width: 100%; margin-top: 8px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.image-picker { margin: 16px 0; padding: 14px; border: 1px solid var(--border); border-radius: 8px; }
.image-picker legend { padding: 0 6px; font-weight: 700; }
.field-action { display: flex; align-items: flex-end; padding-bottom: 2px; }
.image-suggestions { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; margin: 12px 0; }
.image-suggestion { display: grid; gap: 5px; padding: 5px; border: 2px solid transparent; border-radius: 8px; background: #f5f6f8; color: var(--text); text-align: left; cursor: pointer; }
.image-suggestion.selected { border-color: var(--primary); background: #eef5ff; }
.image-suggestion img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 5px; }
.image-suggestion span { font-size: .78rem; }
.selected-image-preview img { display: block; width: min(100%, 420px); max-height: 260px; margin-top: 10px; object-fit: cover; border-radius: 8px; }
@media (max-width: 640px) {
    .visual-editor-surface { min-height: 240px; }
    .image-suggestions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.review-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.review-actions form, .actions form { margin: 0; }
.summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 22px;
}
.metric {
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--surface);
}
.metric strong { display: block; font-size: 28px; }
.metric span { color: var(--muted); }
.metric.success strong { color: #11643a; }
.metric.danger strong { color: var(--error); }
.metric.warning-metric strong { color: var(--warning); }
.home-production-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.home-metric-card { color: var(--ink); text-decoration: none; transition: border-color .15s ease, transform .15s ease; }
.home-metric-card:hover { border-color: var(--primary); transform: translateY(-2px); }
.home-metric-card:focus-visible { outline: 3px solid var(--primary); outline-offset: 2px; }
.diagnostic-wide { grid-column: 1 / -1; }
.split-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.three-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.four-fields { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.netlinking-admin-grid { align-items: start; }
.netlinking-order-form { margin-bottom: 22px; }
.netlinking-cancellation { margin-bottom: 22px; }
.netlinking-order-tools { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0; }
.choice-list { display: grid; gap: 9px; margin: 18px 0; padding: 0; border: 0; }
.choice-list legend { margin-bottom: 8px; font-weight: 700; }
.choice-card { display: flex; align-items: flex-start; gap: 11px; margin: 0; padding: 11px 12px; border: 1px solid var(--line); border-radius: 9px; cursor: pointer; }
.choice-card:has(input:checked) { border-color: var(--primary); background: #eef3ff; }
.choice-card input { width: auto; margin: 4px 0 0; }
.choice-card span, .choice-card strong, .choice-card small { display: block; }
.choice-card small { margin-top: 2px; }
.netlinking-paste-panel { margin: 18px 0; padding: 14px; border: 1px solid var(--line); border-radius: 10px; }
.netlinking-paste-panel summary { color: var(--primary); font-weight: 700; cursor: pointer; }
.netlinking-paste-panel p { margin: 8px 0; }
.netlinking-paste-panel button { margin-top: 10px; }
.netlinking-work-section { scroll-margin-top: 20px; }
.netlinking-counterpart-choice { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 10px; margin-top: 14px; }
.netlinking-counterpart-choice > strong { flex-basis: 100%; }
.netlinking-counterpart-choice .netlinking-paste-panel { flex: 1 1 260px; margin: 0; }
.netlinking-counterpart-choice .netlinking-paste-panel > summary { display: inline-block; padding: 9px 13px; color: white; border-radius: 8px; background: var(--primary); }
.netlinking-counterpart-choice .netlinking-paste-panel[open] > summary { background: var(--primary-dark); }
.netlinking-counterpart-choice.is-locked { align-items: center; padding-top: 12px; border-top: 1px solid var(--line); }
.netlinking-counterpart-choice.is-locked > strong { flex-basis: auto; }
.netlinking-counterpart-choice.is-locked small { flex-basis: 100%; color: var(--muted); }
.netlinking-order-rows { display: grid; gap: 14px; margin: 18px 0; }
.netlinking-order-row { position: relative; margin: 0; padding: 14px 16px 18px; border: 1px solid var(--line); border-radius: 10px; }
.netlinking-order-row legend { padding: 0 6px; font-weight: 750; }
.netlinking-order-row label { margin-top: 8px; }
.netlinking-remove-row { position: absolute; top: 8px; right: 10px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.result-block, .result-panel { margin-top: 18px; }
.result-panel { padding: 14px; border-radius: 8px; background: #eef3ff; }
.result-panel strong { font-size: 24px; }
.signature-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 20px;
}
.signature-layout form button { margin-top: 18px; }
.signature-result { min-width: 0; }
.signature-preview {
    margin: 18px 0 24px;
    padding: 18px;
    overflow-x: auto;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
}
.signature-copy-row { display: flex; align-items: center; gap: 12px; margin-top: 12px; }
.filter-form { display: flex; align-items: end; gap: 12px; }
.filter-form label { margin-top: 0; white-space: nowrap; }
.filter-form select { min-width: 220px; }
.ticket-layout {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr);
    gap: 20px;
    margin-bottom: 22px;
}
.details-list {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr);
    gap: 7px 14px;
    margin: 20px 0 28px;
}
.details-list dt { color: var(--muted); font-weight: 700; }
.details-list dd { margin: 0; overflow-wrap: anywhere; }
.user-content { white-space: normal; overflow-wrap: anywhere; }
.input-suffix { display: flex; align-items: center; gap: 10px; }
.input-suffix input { width: 120px; }
.event-payload {
    max-width: 520px;
    margin: 0;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    font: 12px/1.4 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.status-received { color: var(--warning); background: var(--warning-bg); }
.status-qualified, .status-estimated { color: var(--primary-dark); background: #eef3ff; }
.status-in_progress { color: #11643a; background: #e8f7ef; }
.status-waiting_quote_approval, .status-waiting_client { color: #7a4e00; background: #fff3cd; }
.status-cancelled { color: var(--muted); background: #eef1f6; }
.inline-fields { display: grid; grid-template-columns: 2fr 1fr auto; align-items: end; gap: 14px; }
.inline-fields label { margin-top: 0; }
.client-admin-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    margin-bottom: 22px;
}
.checkbox-row { display: flex; align-items: center; gap: 8px; }
.checkbox-row input { width: auto; }
.billing-profile-card { margin-bottom: 22px; }
.billing-profile-heading { align-items: center; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.billing-profile-heading .status { margin-top: 6px; }
.billing-profile-technical { max-width: 360px; color: var(--muted); text-align: right; }
.billing-profile-technical summary { color: var(--primary); font-weight: 700; cursor: pointer; }
.billing-profile-technical p { margin: 8px 0 0; }
.billing-profile-registry { margin: 20px 0; padding: 18px; border: 1px solid var(--line); border-radius: 10px; background: #f8faff; }
.billing-profile-group { margin: 24px 0 0; padding: 0 0 24px; border: 0; border-bottom: 1px solid var(--line); }
.billing-profile-group legend { margin-bottom: 2px; padding: 0; font-size: 18px; font-weight: 750; }
.billing-profile-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
.billing-profile-grid > div { min-width: 0; }
.billing-profile-wide { grid-column: 1 / -1; }
.billing-profile-address-grid { grid-template-columns: minmax(150px, .7fr) minmax(260px, 1.6fr) minmax(180px, .8fr); }
.billing-profile-address-grid .billing-profile-wide { grid-column: 1 / -1; }
.billing-profile-field-action { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; }
.billing-profile-field-action .button { white-space: nowrap; }
.billing-profile-fixed-value { margin-top: 16px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 8px; background: #f8faff; }
.billing-profile-fixed-value span, .billing-profile-fixed-value strong, .billing-profile-fixed-value small { display: block; }
.billing-profile-fixed-value span { margin-bottom: 4px; font-weight: 700; }
.billing-profile-confirm { margin-top: 22px; padding: 14px; border-radius: 8px; background: #f8faff; }
.billing-profile-actions { justify-content: flex-end; margin-top: 16px; }
.client-quick-actions { justify-content: flex-start; margin: -8px 0 22px; }
.client-account-summary .metric { text-decoration: none; }
.client-account-summary .metric strong { font-size: 24px; }
.client-contracts, .client-billing-archive, .client-account-administration { margin-bottom: 22px; }
.client-contract-list { display: grid; gap: 12px; }
.client-contract-panel { border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.client-contract-summary { display: grid; grid-template-columns: minmax(240px, 1fr) auto minmax(170px, auto) auto; align-items: center; gap: 16px; padding: 16px 18px; }
.client-contract-summary-main strong, .client-contract-summary-main small { display: block; }
.client-contract-summary-main small { margin-top: 3px; color: var(--muted); }
.client-contract-statuses { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.client-contract-summary-billing { color: var(--muted); text-align: right; }
.client-contract-summary-billing small { display: block; margin-top: 3px; }
.client-contract-body { padding: 4px 18px 18px; border-top: 1px solid var(--line); }
.client-contract-editor { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 14px; }
.client-contract-wide { grid-column: 1 / -1; }
.field-label { display: block; margin: 16px 0 6px; font-weight: 700; }
.client-contract-time label { margin-top: 0; }
.client-contract-readonly { margin-top: 16px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; background: #f8faff; }
.client-contract-readonly span, .client-contract-readonly strong, .client-contract-readonly small { display: block; }
.client-contract-readonly span { font-weight: 700; }
.client-contract-save { justify-content: flex-end; margin-top: 16px; }
.client-contract-tools { display: grid; gap: 10px; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.client-contract-tools > details { padding: 12px 14px; border: 1px solid var(--line); border-radius: 8px; }
.client-contract-tools > details > summary, .client-section-summary { color: var(--primary); font-weight: 700; cursor: pointer; }
.client-contract-tools > details > form { margin-top: 14px; }
.client-contract-termination > summary { color: var(--error) !important; }
.client-sites-overview { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }
.client-site-list { display: grid; gap: 8px; }
.client-site-card { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(160px, 1fr) minmax(220px, 1.4fr) auto; align-items: center; gap: 14px; padding: 12px 14px; border: 1px solid; border-radius: 8px; }
.client-site-card strong, .client-site-card small, .client-site-card span { display: block; }
.client-site-card small, .client-site-card > div > span { color: inherit; opacity: .72; }
.client-site-current { color: #172033; border-color: #596273; background: #fff; }
.client-site-historical { color: #737a86; border-color: #d5d8de; background: #f3f4f6; }
.status-current-site { color: #fff; background: #172033; }
.status-historical-site { color: #626873; background: #e1e3e7; }
.billing-readiness .section-heading { align-items: flex-start; }
.billing-readiness-summary { margin-bottom: 18px; }
.billing-readiness-table th, .billing-readiness-table td { vertical-align: top; }
.billing-readiness-reasons { margin: 8px 0; padding-left: 18px; }
.billing-readiness-reasons li { margin: 2px 0; }
.contract-site-list { display: grid; gap: 10px; margin: 14px 0; }
.contract-site-card { padding: 14px; border: 1px solid var(--line); border-radius: 8px; background: #f8faff; }
.contract-site-summary { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr); gap: 16px; }
.contract-site-summary strong, .contract-site-summary small, .contract-site-summary span { display: block; }
.contract-site-summary small, .contract-site-summary span { color: var(--muted); }
.contract-site-editor, .contract-site-add, .contract-site-period { margin-top: 12px; }
.contract-site-editor > summary, .contract-site-add > summary, .contract-site-period > summary { color: var(--primary); font-weight: 700; cursor: pointer; }
.contract-site-editor > form, .contract-site-add > form { margin-top: 12px; }
.contract-site-period { padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.contract-site-add { padding-top: 12px; border-top: 1px solid var(--line); }
.client-section-summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; font-size: 18px; }
.client-section-summary span, .client-section-summary strong, .client-section-summary small { display: block; }
.client-section-summary small { margin-top: 3px; color: var(--muted); font-size: 13px; font-weight: 400; }
.client-billing-heading { align-items: center; margin-top: 18px; }
.client-billing-heading p { margin: 0; }
.client-admin-forms { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); }
.client-admin-forms article { min-width: 0; }
.client-admin-table { margin-top: 24px; }
.assignment-bulk-toolbar {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) auto auto;
    align-items: end;
    gap: 14px;
    margin: 16px 0;
}
.assignment-bulk-toolbar label { margin: 0; }
.assignment-bulk-toolbar p { margin: 0 0 10px; }
.assignment-checkbox { display: inline-flex; margin: 0; cursor: pointer; }
.assignment-checkbox input { width: auto; }
@media (max-width: 760px) {
    .assignment-bulk-toolbar { grid-template-columns: 1fr; align-items: stretch; }
    .assignment-bulk-toolbar p { margin: 0; }
}
.cron-schedule-form { display: grid; min-width: 230px; gap: 6px; }
.cron-schedule-form label { display: grid; grid-template-columns: 72px 74px auto; align-items: center; gap: 6px; margin: 0; font-size: 12px; }
.cron-schedule-form input { padding: 5px 7px; }
.user-create-card { margin-bottom: 22px; }
.staff-form-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.police-register-summary { margin-bottom: 18px; }
.police-register-filter-grid { display: grid; grid-template-columns: minmax(220px, 1.6fr) repeat(3, minmax(160px, 1fr)) auto; gap: 12px; align-items: end; }
.police-register-filter-grid label { margin: 0; }
.police-register-filter-grid button { margin-bottom: 1px; }
.police-register-detail-grid { display: grid; grid-template-columns: minmax(280px, .8fr) minmax(520px, 1.7fr); gap: 18px; align-items: start; }
.police-register-review-form fieldset { margin: 0 0 20px; padding: 16px; border: 1px solid var(--border); border-radius: 10px; }
.police-register-review-form legend { padding: 0 8px; font-weight: 800; }
.police-register-table td { vertical-align: middle; }
.police-evidence-heading { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-top: 24px; }
.police-evidence-heading h3 { margin: 0; }
.police-evidence-list { list-style: none; padding: 0; display: grid; gap: 12px; }
.police-evidence-list > li { padding: 12px; border: 1px solid var(--border); border-radius: 10px; background: #f8fafc; }
.police-evidence-list > li.is-revoked { opacity: .72; background: #eef1f6; }
.police-evidence-list li > div { display: grid; gap: 3px; margin-bottom: 10px; }
.police-evidence-list small { color: var(--muted); }
.police-evidence-revoke, .police-evidence-upload { display: grid; gap: 10px; margin-top: 12px; }
.police-evidence-revoke label, .police-evidence-upload label { margin: 0; }
.police-evidence-upload { padding-top: 16px; border-top: 1px solid var(--border); }
.police-register-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; }
.status-completeness-complete { background: #dcfce7; color: #166534; }
.status-completeness-partial { background: #fef3c7; color: #92400e; }
.status-completeness-incomplete { background: #fee2e2; color: #991b1b; }
.status-lp-ready { background: #dcfce7; color: #166534; }
.status-lp-incomplete { background: #fef3c7; color: #92400e; }
.status-lp-not-applicable { background: #e5e7eb; color: #4b5563; }
.police-vehicle-dossier-summary { margin-bottom: 18px; }
.police-dossier-meta { display: flex; flex-wrap: wrap; gap: 10px; margin: 12px 0; }
.police-dossier-meta span { padding: 8px 10px; border-radius: 8px; background: #f1f5f9; }
.police-register-table tr.is-current td { background: #eff6ff; }
.police-vehicle-table small { line-height: 1.35; }
.police-row-action-cell { width: 48px; padding-right: 4px; }
.police-row-action { display: inline-flex; width: 36px; height: 36px; padding: 0; align-items: center; justify-content: center; font-size: 20px; line-height: 1; }
.police-row-action:focus-visible { outline: 3px solid var(--primary); outline-offset: 2px; }
.pagination { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 18px; }
.supervisor-form-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.staff-form-grid label { margin-top: 0; }
.staff-management-cell { min-width: 260px; white-space: normal; }
.staff-management-cell summary { color: var(--primary); font-weight: 700; cursor: pointer; }
.staff-edit-form { display: grid; min-width: 240px; gap: 8px; padding: 10px 0; }
.staff-edit-form label { margin: 0; font-size: 13px; }
.staff-edit-form input, .staff-edit-form select { padding: 7px 8px; }
.billing-line-editor {
    display: grid;
    min-width: 420px;
    gap: 10px;
    margin: 12px 0;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 9px;
}
.billing-line-editor label { margin: 0; }
.catalog-aliases { min-width: 240px; }
.catalog-aliases summary { cursor: pointer; color: var(--primary); font-weight: 700; }
.catalog-aliases ul { margin: 9px 0 0; padding-left: 18px; }
.catalog-aliases li { margin: 0 0 8px; }
.catalog-aliases small { display: block; color: var(--muted); }
.revenue-chart-card { overflow: hidden; }
.family-revenue-filters { display: flex; flex-wrap: wrap; gap: 8px 14px; margin: 14px 0 18px; }
.family-revenue-filter { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; font-weight: 700; }
.family-revenue-filter input { width: auto; margin: 0; }
.family-revenue-dot { width: 10px; height: 10px; border-radius: 50%; }
.family-seo { background: #2563eb; }
.family-ads { background: #f97316; }
.family-analytics { background: #06b6d4; }
.family-dev { background: #7c3aed; }
.family-web { background: #0f766e; }
.family-design { background: #db2777; }
.family-edito { background: #ca8a04; }
.family-strat { background: #475569; }
.family-pilotage { background: #9333ea; }
.family-loyermanager { background: #16a34a; }
.family-custom { background: #64748b; }
.family-revenue-canvas { overflow-x: auto; min-height: 420px; }
.family-revenue-canvas svg { display: block; width: 100%; min-width: 760px; height: 420px; }
.revenue-grid-line { stroke: #dbe3ec; stroke-width: 1; }
.revenue-axis-label { fill: var(--muted); font-size: 12px; }
.family-revenue-status { margin: 8px 0 0; }
.trend { display: inline-flex; align-items: center; gap: 4px; font-weight: 800; }
.trend-up { color: #167548; }
.trend-down { color: #b42318; }
.trend-stable { color: var(--muted); }
.contract-search-card .inline-fields { max-width: 760px; }
.contract-workflow-form { display: grid; gap: 18px; }
.contract-commercial-line { position: relative; margin: 14px 0; padding: 18px; border: 1px solid var(--line); border-radius: 12px; }
.contract-line-remove { position: absolute; top: 10px; right: 14px; }
.contract-total { text-align: right; font-size: 1.2rem; }
.contract-workflow-submit { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.contract-workflow-submit p { margin: 0; max-width: 760px; }
.contract-detail-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 18px; margin-bottom: 18px; }
.contract-line-summary { display: flex; justify-content: space-between; gap: 20px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.contract-line-summary:last-child { border-bottom: 0; }
.contract-line-summary small, .document-list small { display: block; color: var(--muted); }
.definition-list { display: grid; grid-template-columns: minmax(120px, .7fr) 1.3fr; gap: 10px 14px; }
.definition-list dt { color: var(--muted); font-weight: 700; }
.definition-list dd { margin: 0; }
.document-list { margin: 18px 0 0; padding-left: 20px; }
.document-list li { margin-bottom: 10px; }
.legacy-contract-create { display: none; }

.impersonation-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 13px max(16px, calc((100% - 1180px) / 2));
    color: #2f2100;
    background: #fff1b8;
    border-bottom: 2px solid #d99b00;
}
.impersonation-banner form { margin: 0; flex: 0 0 auto; }

.feedback-trigger {
    position: fixed;
    z-index: 40;
    top: 50%;
    right: 0;
    padding: 13px 10px;
    border-radius: 9px 0 0 9px;
    transform: translateY(-50%);
    writing-mode: vertical-rl;
    box-shadow: 0 8px 24px rgba(23, 32, 51, .2);
}
.feedback-dialog { width: min(680px, calc(100% - 32px)); max-height: calc(100vh - 32px); padding: 0; overflow: auto; color: var(--ink); border: 0; border-radius: 16px; box-shadow: 0 24px 70px rgba(23, 32, 51, .3); }
.feedback-dialog::backdrop { background: rgba(23, 32, 51, .58); }
.feedback-dialog-content { padding: 28px; }
.feedback-dialog-content h2 { margin-bottom: 4px; font-size: 26px; }
.feedback-dialog-content form { margin-top: 20px; }
.feedback-dialog-close-form { position: absolute; top: 10px; right: 12px; margin: 0; }
.feedback-close { min-width: 38px; padding: 4px 9px; color: var(--muted); background: transparent; border-color: transparent; font-size: 25px; line-height: 1; }
.feedback-close:hover { color: var(--ink); background: #eef1f6; }
.feedback-types { display: grid; gap: 9px; margin: 0; padding: 0; border: 0; }
.feedback-types legend { margin-bottom: 8px; font-weight: 700; }
.feedback-type { display: flex; align-items: flex-start; gap: 11px; margin: 0; padding: 11px 12px; border: 1px solid var(--line); border-radius: 9px; cursor: pointer; }
.feedback-type:has(input:checked) { border-color: var(--primary); background: #eef3ff; }
.feedback-type input { width: auto; margin: 4px 0 0; }
.feedback-type span, .feedback-type strong, .feedback-type small { display: block; }
.feedback-type small { margin-top: 1px; }
.feedback-privacy { margin: 12px 0 0; }
.feedback-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 18px; }
.feedback-result { min-height: 23px; margin: 12px 0 0; }
.feedback-success { color: #11643a; }
.feedback-error { color: var(--error); }
.feedback-copy p { margin: 7px 0; }
.feedback-table td { white-space: nowrap; }
.feedback-state-form { display: grid; gap: 7px; min-width: 135px; margin: 0 0 7px; }
.feedback-state-form select, .feedback-state-form button { width: 100%; }

@media (max-width: 760px) {
    .topbar { align-items: flex-start; padding: 14px 16px; }
    .subtitle { display: none; }
    .entity-switcher { order: 3; width: 100%; margin-left: 0; }
    .entity-switcher select { flex: 1; }
    .container { margin-top: 24px; }
    .card { padding: 18px; }
    .tool-grid, .summary-grid, .split-fields, .three-fields, .four-fields, .signature-layout, .ticket-layout, .client-admin-grid, .client-account-tools, .inline-fields, .staff-form-grid, .contract-detail-grid, .police-register-filter-grid, .police-register-detail-grid { grid-template-columns: 1fr; }
    .contract-workflow-submit, .contract-line-summary { align-items: stretch; flex-direction: column; }
    .filter-form { align-items: stretch; flex-direction: column; }
    .diagnostic-wide { grid-column: auto; }
    .hero, .page-header { align-items: flex-start; flex-direction: column; }
    .feedback-trigger { top: auto; bottom: 18px; right: 12px; transform: none; writing-mode: horizontal-tb; border-radius: 9px; }
    .feedback-dialog-content { padding: 24px 18px 20px; }
    .feedback-actions { align-items: stretch; flex-direction: column-reverse; }
    .impersonation-banner { align-items: stretch; flex-direction: column; }
    .feedback-actions button { width: 100%; }
    .billing-line-editor { min-width: 0; }
    .billing-journal-actions { justify-content: flex-start; }
    .billing-document-header-actions { align-items: flex-start; }
    .billing-document-context-links { align-items: flex-start; }
    .billing-journal-filter-primary, .billing-journal-filter-dates { grid-template-columns: 1fr; }
    .billing-journal-advanced { width: 100%; }
    .billing-profile-heading { align-items: flex-start; }
    .billing-profile-technical { max-width: none; text-align: left; }
    .billing-profile-grid, .billing-profile-address-grid { grid-template-columns: 1fr; }
    .billing-profile-wide, .billing-profile-address-grid .billing-profile-wide { grid-column: auto; }
    .billing-profile-field-action { grid-template-columns: 1fr; }
    .billing-profile-field-action .button { width: 100%; text-align: center; }
    .billing-profile-actions { align-items: stretch; flex-direction: column-reverse; }
    .billing-profile-actions .button, .billing-profile-actions button { width: 100%; text-align: center; }
    .client-quick-actions { align-items: stretch; }
    .client-quick-actions .button { width: 100%; text-align: center; }
    .client-contract-summary { grid-template-columns: 1fr auto; gap: 8px; }
    .client-contract-summary-billing { grid-column: 1 / -1; text-align: left; }
    .client-contract-statuses { justify-content: flex-end; }
    .client-contract-summary > .button { grid-column: 1 / -1; width: 100%; }
    .client-contract-editor { grid-template-columns: 1fr; }
    .client-contract-wide { grid-column: auto; }
    .client-contract-save { align-items: stretch; }
    .client-contract-save button { width: 100%; }
    .contract-site-summary { grid-template-columns: 1fr; gap: 8px; }
    .client-site-card { grid-template-columns: 1fr; gap: 7px; }
    .client-site-card > .status { justify-self: start; }
    .client-section-summary, .client-billing-heading { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 600px) {
    .mobile-nav-shell { width: auto; }
    .mobile-nav-shell > summary { display: block; padding: 7px 11px; color: var(--ink); border: 1px solid var(--line); border-radius: 8px; background: #fff; font-weight: 700; cursor: pointer; }
    .mobile-nav-shell:not([open]) > nav { display: none; }
    .mobile-nav-shell[open] { width: 100%; }
    .mobile-nav-shell[open] > summary { width: fit-content; margin-left: auto; }
    nav { align-items: stretch; flex-direction: column; gap: 8px; padding-top: 12px; }
    .topbar nav > details.inline > .card { position: static; width: 100%; max-width: none; margin-top: 6px; box-shadow: none; }
}
.payment-plan-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin: 1rem 0;
}

.payment-plan-option {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    padding: 1rem;
    border: 1px solid var(--border, #d8dee8);
    border-radius: .75rem;
    cursor: pointer;
}

.payment-plan-option input { width: auto; margin-top: .2rem; }
.payment-plan-option span, .payment-plan-option small { display: block; }
.payment-plan-option:has(input:checked) { border-color: #356bd8; background: #f2f6ff; }
.payment-plan-option:has(input:disabled) { opacity: .55; cursor: not-allowed; }
.installment-fields { margin-top: 1rem; }
.installment-preview { margin-top: 1.25rem; }
.installment-adjusted td:last-child { font-weight: 700; color: #285a3b; }

@media (max-width: 720px) {
    .payment-plan-options { grid-template-columns: 1fr; }
}
