:root {
    --erp-bg: #f4f7fb;
    --erp-panel: #ffffff;
    --erp-line: #d9e2ee;
    --erp-text: #18212f;
    --erp-muted: #64748b;
    --erp-accent: #2563eb;
    --erp-accent-dark: #1d4ed8;
    --erp-nav: #172033;
}

html,
body {
    background: var(--erp-bg);
    color: var(--erp-text);
    font-family: "Segoe UI", Arial, sans-serif;
    margin: 0;
}

a,
.btn-link {
    color: var(--erp-accent);
}

.page {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    min-height: 100vh;
}

.sidebar {
    background: var(--erp-nav);
    color: #fff;
}

main {
    min-width: 0;
}

.top-row {
    align-items: center;
    background: #fff;
    border-bottom: 1px solid var(--erp-line);
    display: flex;
    height: 56px;
    justify-content: space-between;
    padding: 0 28px;
}

.top-row span {
    color: var(--erp-muted);
    margin-left: 12px;
}

.content {
    padding: 26px 30px;
}

.brand-panel {
    align-items: center;
    display: flex;
    gap: 12px;
    padding: 20px 18px 16px;
}

.brand-mark {
    align-items: center;
    background: var(--erp-accent);
    border-radius: 6px;
    display: flex;
    font-weight: 800;
    height: 38px;
    justify-content: center;
    width: 38px;
}

.brand-title {
    font-size: 18px;
    font-weight: 700;
}

.brand-subtitle {
    color: #b7c3d7;
    font-size: 13px;
}

.navbar-toggler {
    display: none;
}

.nav-scrollable {
    padding-top: 8px;
}

.nav-link {
    align-items: center;
    border-radius: 6px;
    color: #dbe6f7;
    display: flex;
    gap: 10px;
    margin: 2px 0;
    padding: 11px 12px;
}

.nav-link:hover,
.nav-link.active {
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
}

.nav-icon {
    display: inline-block;
    text-align: center;
    width: 22px;
}

.page-header {
    align-items: flex-end;
    display: flex;
    justify-content: space-between;
    margin-bottom: 20px;
}

.header-actions {
    align-items: flex-end;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-end;
}

.schedule-week-picker {
    color: var(--erp-muted);
    display: grid;
    font-size: 12px;
    gap: 3px;
    min-width: 160px;
}

.schedule-week-picker .form-control {
    min-height: 38px;
    padding: 6px 10px;
}

.page-header h1 {
    font-size: 28px;
    font-weight: 700;
    margin: 0 0 4px;
}

.page-header p {
    color: var(--erp-muted);
    margin: 0;
}

.stats-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(5, minmax(150px, 1fr));
    margin-bottom: 20px;
}

.metric,
.work-surface,
.lookup-column,
.data-table-wrap {
    background: var(--erp-panel);
    border: 1px solid var(--erp-line);
    border-radius: 8px;
}

.metric {
    padding: 18px;
}

.metric-link {
    color: inherit;
    display: block;
    text-decoration: none;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.metric-link:hover {
    border-color: #93b4ff;
    box-shadow: 0 10px 24px rgba(37, 99, 235, .12);
    transform: translateY(-1px);
}

.metric-warning strong {
    color: #dc2626;
}

.metric span {
    color: var(--erp-muted);
    display: block;
    font-size: 13px;
}

.metric strong {
    display: block;
    font-size: 30px;
    line-height: 1.2;
}

.work-surface {
    padding: 18px;
}

.access-denied-panel {
    background: var(--erp-panel);
    border: 1px solid var(--erp-line);
    border-radius: 8px;
    max-width: 560px;
    padding: 22px;
}

.access-denied-panel h1 {
    font-size: 24px;
    margin: 0 0 8px;
}

.access-denied-panel p {
    color: var(--erp-muted);
}

.work-surface h2,
.lookup-column h2 {
    font-size: 17px;
    margin: 0 0 14px;
}

.module-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.module-list a,
.module-list span {
    background: #eef4ff;
    border: 1px solid #cfe0ff;
    border-radius: 6px;
    color: #1d4ed8;
    padding: 8px 12px;
    text-decoration: none;
}

.toolbar {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 14px;
}

.search-input {
    max-width: 460px;
}

.repair-filter-select {
    max-width: 190px;
}

.repair-status-filter {
    position: relative;
}

.repair-status-filter-button {
    min-width: 170px;
    text-align: left;
}

.repair-status-filter-menu {
    background: #fff;
    border: 1px solid var(--erp-line);
    border-radius: 8px;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.16);
    display: grid;
    gap: 4px;
    left: 0;
    max-height: 260px;
    min-width: 220px;
    overflow: auto;
    padding: 8px;
    position: absolute;
    top: calc(100% + 6px);
    z-index: 30;
}

.repair-status-filter-option {
    align-items: center;
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    gap: 8px;
    padding: 6px 8px;
}

.repair-status-filter-option:hover {
    background: #f1f5f9;
}

.repair-filter-group {
    position: relative;
}

.repair-filter-group summary {
    align-items: center;
    background: #fff;
    border: 1px solid var(--erp-line);
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    font-weight: 700;
    justify-content: space-between;
    list-style: none;
    min-height: 38px;
    min-width: 150px;
    padding: 7px 10px;
}

.repair-filter-group summary::-webkit-details-marker {
    display: none;
}

.repair-filter-group summary::after {
    color: var(--erp-muted);
    content: "▾";
    font-size: 12px;
    margin-left: 12px;
}

.repair-filter-group[open] summary::after {
    content: "▴";
}

.repair-filter-menu {
    background: #fff;
    border: 1px solid var(--erp-line);
    border-radius: 8px;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.16);
    display: grid;
    gap: 4px;
    left: 0;
    max-height: 270px;
    min-width: 240px;
    overflow: auto;
    padding: 8px;
    position: absolute;
    top: calc(100% + 6px);
    z-index: 30;
}

.repair-date-filter-menu {
    min-width: 280px;
}

.repair-date-field {
    display: grid;
    gap: 4px;
    padding: 6px 8px;
}

.repair-date-field span {
    color: var(--erp-muted);
    font-size: 13px;
    font-weight: 700;
}

.repair-filter-option {
    align-items: center;
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    gap: 8px;
    padding: 6px 8px;
    white-space: nowrap;
}

.repair-filter-option:hover {
    background: #f1f5f9;
}

.repair-filter-inline {
    align-items: center;
    background: #fff;
    border: 1px solid var(--erp-line);
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    font-weight: 700;
    gap: 8px;
    min-height: 38px;
    padding: 7px 10px;
}

.repair-filter-empty {
    color: var(--erp-muted);
    padding: 6px 8px;
}

.table-substatus {
    color: var(--erp-muted);
    display: block;
    font-size: 11px;
    margin-top: 2px;
}

.rule-color-preview {
    border: 1px solid var(--erp-line);
    display: inline-block;
    height: 14px;
    margin-right: 6px;
    vertical-align: middle;
    width: 28px;
}

.data-table-wrap {
    overflow: auto;
}

.erp-table {
    margin: 0;
}

.erp-table th {
    background: #edf3fb;
    border-bottom: 1px solid var(--erp-line);
    color: #334155;
    font-size: 12px;
    line-height: 1.15;
    padding: 6px 8px;
    white-space: nowrap;
}

.erp-table td {
    border-color: var(--erp-line);
    font-size: 12px;
    line-height: 1.15;
    padding: 5px 8px;
    vertical-align: middle;
}

.erp-table tbody tr {
    cursor: pointer;
}

.erp-table tbody tr:hover {
    background: #f8fbff;
}

.erp-table tbody tr[style*="--repair-alert-color"] td {
    background: var(--repair-alert-color);
}

.erp-table tbody tr[style*="--repair-alert-color"] td:first-child {
    box-shadow: inset 6px 0 0 color-mix(in srgb, var(--repair-alert-color) 70%, #111827);
}

.selected-row td {
    background: #dbeafe;
}

.selected-row[style*="--repair-alert-color"] td {
    background: linear-gradient(90deg, color-mix(in srgb, var(--repair-alert-color) 70%, #dbeafe), #dbeafe);
}

.empty-cell {
    color: var(--erp-muted);
    padding: 18px;
    text-align: center;
}

.repairs-layout {
    display: grid;
    gap: 16px;
    grid-template-columns: minmax(0, 1fr) 390px;
}

.repair-form-panel {
    background: var(--erp-panel);
    border: 1px solid var(--erp-line);
    border-radius: 8px;
    margin-bottom: 14px;
    padding: 14px;
}

.form-panel-header {
    align-items: center;
    border-bottom: 1px solid var(--erp-line);
    display: flex;
    justify-content: space-between;
    margin-bottom: 12px;
    padding-bottom: 10px;
}

.form-panel-header span {
    color: var(--erp-muted);
    display: block;
    font-size: 13px;
}

.form-panel-header h2 {
    font-size: 19px;
    margin: 2px 0 0;
}

.repair-form-grid {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.repair-form-grid fieldset {
    border: 1px solid var(--erp-line);
    border-radius: 8px;
    margin: 0;
    padding: 10px 12px;
}

.repair-form-grid legend {
    float: none;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 4px;
    padding: 0;
    width: auto;
}

.repair-form-grid label {
    color: #334155;
    display: block;
    font-size: 12px;
    font-weight: 700;
    margin: 6px 0 3px;
}

.field-label-row {
    align-items: center;
    display: flex;
    justify-content: space-between;
    margin: 6px 0 3px;
}

.field-label-row label {
    margin: 0;
}

.repair-mode-options {
    display: grid;
    gap: 6px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.repair-mode-options label {
    align-items: center;
    border: 1px solid var(--erp-line);
    border-radius: 6px;
    display: flex;
    gap: 8px;
    min-height: 30px;
    padding: 5px 8px;
}

.quick-add-row {
    align-items: center;
    display: grid;
    gap: 6px;
    grid-template-columns: minmax(0, 1fr) auto auto;
    margin-top: 6px;
}

.repair-form-grid .form-control {
    font-size: 13px;
    line-height: 1.2;
    min-height: 30px;
    padding: 4px 8px;
}

.date-text-picker {
    align-items: stretch;
    display: grid;
    gap: 6px;
    grid-template-columns: minmax(0, 1fr) 38px;
}

.date-text-picker-native {
    border: 1px solid var(--erp-line);
    border-radius: 6px;
    color: transparent;
    cursor: pointer;
    min-height: 30px;
    padding: 3px;
    width: 38px;
}

.date-text-picker-native::-webkit-calendar-picker-indicator {
    cursor: pointer;
    opacity: 1;
}

.repair-form-grid textarea.form-control {
    min-height: 70px;
    padding-top: 6px;
}

.form-actions {
    border-top: 1px solid var(--erp-line);
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    margin-top: 16px;
    padding-top: 14px;
}

.management-layout {
    display: grid;
    gap: 16px;
    grid-template-columns: 420px minmax(0, 1fr);
}

.management-form {
    background: var(--erp-panel);
    border: 1px solid var(--erp-line);
    border-radius: 8px;
    padding: 14px;
}

.form-panel-header.compact {
    margin-bottom: 10px;
}

.management-form-grid label {
    color: #334155;
    display: block;
    font-size: 12px;
    font-weight: 700;
    margin: 8px 0 3px;
}

.management-form-grid .form-control {
    font-size: 13px;
    line-height: 1.2;
    min-height: 30px;
    padding: 4px 8px;
}

.management-form-grid textarea.form-control {
    min-height: 76px;
    padding-top: 6px;
}

.checkbox-row {
    align-items: center;
    display: flex !important;
    gap: 8px;
}

.service-base-visibility-panel {
    border-top: 1px solid var(--erp-line);
    margin-top: 12px;
    padding-top: 12px;
}

.service-base-visibility-panel > label {
    color: #334155;
    display: block;
    font-size: 12px;
    font-weight: 700;
    margin-bottom: 6px;
}

.settings-section-tabs {
    background: var(--erp-panel);
    border: 1px solid var(--erp-line);
    border-radius: 8px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
    padding: 10px;
}

.settings-section-tab {
    background: #fff;
    border: 1px solid var(--erp-line);
    border-radius: 6px;
    color: #0f172a;
    font-weight: 700;
    padding: 9px 12px;
}

.settings-section-tab.active,
.settings-section-tab:hover {
    background: var(--erp-accent);
    border-color: var(--erp-accent-dark);
    color: #fff;
}

.settings-section-hidden {
    display: none !important;
}

.settings-layout {
    display: grid;
    gap: 16px;
    grid-template-columns: 300px minmax(0, 1fr);
    margin-bottom: 16px;
}

.settings-sidebar,
.settings-editor,
.settings-general {
    background: var(--erp-panel);
    border: 1px solid var(--erp-line);
    border-radius: 8px;
    padding: 14px;
}

.settings-sidebar h2 {
    font-size: 16px;
    margin: 0 0 12px;
}

.settings-list {
    display: grid;
    gap: 8px;
}

.settings-list-item {
    background: #fff;
    border: 1px solid var(--erp-line);
    border-radius: 6px;
    color: #0f172a;
    padding: 10px;
    text-align: left;
}

.settings-list-item.active,
.settings-list-item:hover {
    background: #eef4ff;
    border-color: #9db8f9;
}

.settings-list-item strong,
.settings-list-item span {
    display: block;
}

.settings-list-item span {
    color: var(--erp-muted);
    font-size: 12px;
    margin-top: 3px;
}

.settings-form-grid {
    display: grid;
    gap: 0 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.settings-form-grid .checkbox-row,
.settings-form-grid textarea {
    grid-column: 1 / -1;
}

.settings-checkbox-list {
    border: 1px solid var(--erp-line);
    border-radius: 6px;
    display: grid;
    gap: 8px;
    max-height: 180px;
    overflow: auto;
    padding: 10px;
}

.settings-checkbox-list .checkbox-row {
    margin: 0;
}

.settings-preview {
    border-top: 1px solid var(--erp-line);
    margin-top: 14px;
    padding-top: 14px;
}

.settings-preview h3 {
    font-size: 15px;
    margin: 0 0 10px;
}

.settings-print-preview {
    border: 1px solid #cbd5e1;
    color: #111827;
    padding: 16px;
}

.settings-print-preview strong,
.settings-print-preview span {
    display: block;
}

.settings-print-preview strong {
    color: #0f2f6f;
    font-size: var(--preview-title-size, 22px);
}

.settings-print-preview span {
    color: #475569;
    font-size: var(--preview-section-size, inherit);
    margin-top: 2px;
}

.settings-print-preview p {
    font-size: var(--preview-small-size, inherit);
    margin: 10px 0 0;
    white-space: pre-wrap;
}

.settings-print-preview em {
    font-size: var(--preview-small-size, inherit);
}

.settings-print-preview div {
    border-top: 1px solid #cbd5e1;
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, 1fr);
    margin-top: 18px;
    padding-top: 12px;
}

.settings-value-input {
    min-width: 180px;
}

.schedule-settings-grid {
    max-width: 720px;
}

.schedule-settings-grid textarea {
    font-family: Consolas, "Courier New", monospace;
}

.settings-help {
    color: var(--erp-muted);
    font-size: 12px;
    margin: 6px 0 0;
}

.seo-counted-field {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 54px 54px;
    gap: 6px;
    align-items: stretch;
}

.seo-counted-field-textarea {
    align-items: end;
}

.seo-counted-field-textarea textarea {
    min-height: 88px;
}

.seo-count-box {
    align-items: center;
    border-radius: 6px;
    display: flex;
    font-size: 14px;
    font-weight: 700;
    justify-content: center;
    min-height: 42px;
    padding: 0 8px;
}

.seo-count-neutral {
    background: #f1f5f9;
    color: #64748b;
}

.seo-count-good {
    background: #dcfce7;
    color: #166534;
}

.seo-count-warning {
    background: #fff7ed;
    color: #9a3412;
}

.seo-count-danger {
    background: #fee2e2;
    color: #991b1b;
}

@media (max-width: 720px) {
    .seo-counted-field {
        grid-template-columns: minmax(0, 1fr) 48px 48px;
    }
}

.site-settings-group {
    background: #f8fbff;
    border: 1px solid var(--erp-line);
    border-radius: 8px;
    display: grid;
    gap: 10px;
    grid-column: 1 / -1;
    margin: 6px 0;
    padding: 12px;
}

.site-settings-group h3 {
    font-size: 16px;
    margin: 0;
}

.site-settings-wide {
    grid-column: 1 / -1;
}

.monospace-textarea {
    font-family: Consolas, "Courier New", monospace;
    font-size: 13px;
}

.site-menu-visibility-grid {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.site-upload-preview {
    background: #fff;
    border: 1px solid var(--erp-line);
    border-radius: 8px;
    max-height: 120px;
    max-width: 240px;
    object-fit: contain;
    padding: 8px;
}

.settings-inline-check {
    align-items: center;
    display: inline-flex;
    gap: 7px;
    white-space: nowrap;
}

.permission-grid,
.schedule-action-permissions,
.schedule-access-list {
    border-top: 1px solid var(--erp-line);
    display: grid;
    gap: 8px;
    margin-top: 12px;
    padding-top: 12px;
}

.permission-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.permission-grid label,
.schedule-action-permissions label,
.schedule-access-list label {
    align-items: center;
    color: #334155;
    display: flex;
    font-size: 13px;
    gap: 8px;
}

.schedule-action-permissions strong,
.schedule-access-list strong {
    font-size: 13px;
}

.settings-service-bases {
    margin: 0;
}

.service-technicians-panel {
    border-top: 1px solid var(--erp-line);
    margin-top: 16px;
    padding-top: 14px;
}

.schedule-shell {
    background: var(--erp-panel);
    border: 1px solid var(--erp-line);
    border-radius: 8px;
    overflow: auto;
    padding: 10px;
}

.schedule-week-title {
    align-items: center;
    border-bottom: 1px solid var(--erp-line);
    display: flex;
    justify-content: space-between;
    margin: -2px 0 12px;
    padding-bottom: 10px;
}

.schedule-grid {
    display: grid;
    grid-template-columns: 82px repeat(var(--schedule-days), minmax(132px, 1fr));
    grid-template-rows: 40px repeat(var(--schedule-slots), minmax(58px, auto));
    min-width: 742px;
}

.schedule-action-panel {
    background: #f8fbff;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    margin-bottom: 10px;
    padding: 8px 10px;
}

.compact-alert {
    margin: 0;
    padding: 8px 10px;
}

.schedule-action-grid {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.schedule-action-card {
    background: #fff;
    border: 1px solid var(--erp-line);
    border-radius: 6px;
    display: grid;
    gap: 6px;
    padding: 8px;
}

.schedule-action-card strong,
.schedule-current-block span,
.schedule-current-block strong {
    display: block;
}

.schedule-action-card p {
    color: var(--erp-muted);
    font-size: 12px;
    margin: 0;
}

.schedule-action-panel .form-panel-header {
    margin-bottom: 8px;
    padding-bottom: 6px;
}

.schedule-action-panel .form-panel-header h2 {
    font-size: 18px;
}

.schedule-action-panel .btn {
    min-height: 32px;
    padding-bottom: 4px;
    padding-top: 4px;
}

.schedule-action-panel .form-control {
    font-size: 13px;
    min-height: 32px;
    padding: 4px 8px;
}

.compact-textarea {
    min-height: 54px !important;
}

.schedule-current-block {
    background: #fff;
    border: 1px solid var(--erp-line);
    border-radius: 6px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 8px;
}

.schedule-current-block span {
    color: var(--erp-muted);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    width: 100%;
}

.schedule-current-block strong,
.schedule-current-block p,
.schedule-current-block small,
.schedule-current-block textarea {
    width: 100%;
}

.schedule-current-block p {
    margin: 0;
}

.schedule-corner,
.schedule-day-header,
.schedule-time-label {
    background: #9ee7e5;
    border: 1px solid #27aeb4;
    color: #083344;
    padding: 5px 6px;
}

.schedule-corner,
.schedule-time-label {
    align-items: center;
    display: flex;
    font-size: 12px;
    font-weight: 700;
}

.schedule-day-header strong,
.schedule-day-header span,
.schedule-day-header em {
    display: block;
}

.schedule-day-header strong {
    font-size: 12px;
}

.schedule-day-header span,
.schedule-day-header em {
    font-size: 10px;
}

.schedule-day-header.holiday {
    background: #e5e7eb;
    color: #64748b;
}

.schedule-slot {
    appearance: none;
    border: 1px solid #d8dee8;
    color: #0f172a;
    display: block;
    font: inherit;
    font-size: 11px;
    min-height: 58px;
    padding: 5px 6px;
    text-decoration: none;
    text-align: left;
    width: 100%;
}

.schedule-slot span,
.schedule-slot strong,
.schedule-slot em,
.schedule-slot small {
    display: block;
}

.schedule-slot.available {
    background: #ffffff;
}

.schedule-slot.available:hover {
    background: #eff6ff;
    border-color: #93c5fd;
}

.schedule-slot.available span {
    color: #64748b;
    font-size: 10px;
}

.schedule-slot.available strong {
    color: #1d4ed8;
    font-size: 12px;
    line-height: 1.15;
    margin-top: 2px;
}

.schedule-slot.busy {
    background: #fee2e2;
    border-color: #fca5a5;
}

.schedule-slot.busy:hover {
    background: #fecaca;
}

.schedule-appointment-cell {
    display: grid;
    gap: 4px;
}

.public-site {
    background: var(--public-bg, #f5f8fc);
    color: var(--public-text, #102033);
    min-height: 100vh;
}

.public-topbar {
    align-items: center;
    background: var(--public-header-bg, #fff);
    border-bottom: 1px solid #dbe5f0;
    box-shadow: 0 10px 30px rgba(8, 36, 92, 0.08);
    display: flex;
    gap: 24px;
    justify-content: space-between;
    padding: 12px clamp(18px, 5vw, 72px);
    position: sticky;
    top: 0;
    z-index: 20;
}

.public-brand {
    align-items: center;
    color: var(--public-header-text, var(--public-heading, #08245c));
    display: flex;
    font-size: var(--public-brand-font-size, 22px);
    font-weight: 900;
    gap: 10px;
    text-decoration: none;
}

.public-brand-group {
    align-items: center;
    display: flex;
    gap: 12px;
    min-width: 0;
}

.public-brand img {
    max-height: var(--public-header-logo-height, 48px);
    max-width: 120px;
    object-fit: contain;
}

.public-header-facebook-button {
    align-items: center;
    background: #1877f2;
    border: 1px solid color-mix(in srgb, #1877f2 64%, #ffffff);
    border-radius: 999px;
    box-shadow: 0 8px 18px rgba(24, 119, 242, 0.2);
    color: #fff !important;
    display: inline-flex;
    flex: 0 0 auto;
    height: 38px;
    justify-content: center;
    text-decoration: none;
    transition: background 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
    width: 38px;
}

.public-header-facebook-button span {
    color: #fff;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 27px;
    font-weight: 900;
    line-height: 1;
    padding-top: 5px;
}

.public-header-facebook-button:hover {
    background: #0f67d8;
    box-shadow: 0 10px 22px rgba(24, 119, 242, 0.28);
    transform: translateY(-1px);
}

.public-topbar nav {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}

.public-topbar nav a {
    border-radius: 999px;
    color: var(--public-header-text, var(--public-text, #26384d));
    font-size: var(--public-nav-font-size, 18px);
    font-weight: 800;
    padding: 8px 10px;
    text-decoration: none;
    transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.public-topbar nav a:hover {
    background: color-mix(in srgb, var(--public-primary, #0a58ca) 12%, transparent);
    color: var(--public-primary, #0a58ca);
    transform: translateY(-1px);
}

.public-login-link,
.public-primary-button,
.public-secondary-button {
    border-radius: var(--public-button-radius, 999px);
    display: inline-flex;
    font-weight: 800;
    font-size: var(--public-button-font-size, 18px);
    min-height: 46px;
    padding: 11px 18px;
    text-decoration: none;
    transition: box-shadow 0.18s ease, transform 0.18s ease, background 0.18s ease;
}

.public-login-link,
.public-primary-button {
    background: var(--public-primary, #0a58ca);
    box-shadow: 0 10px 22px color-mix(in srgb, var(--public-primary, #0a58ca) 28%, transparent);
    color: var(--public-button-text, #fff) !important;
}

.public-secondary-button {
    background: color-mix(in srgb, var(--public-card-bg, #fff) 72%, transparent);
    border: 1px solid color-mix(in srgb, var(--public-primary, #0a58ca) 36%, #ffffff);
    color: var(--public-secondary-button-text, var(--public-primary, #0a58ca));
}

.public-facebook-button {
    align-items: center;
    background: #1877f2;
    border: 1px solid color-mix(in srgb, #1877f2 72%, #ffffff);
    border-radius: 999px;
    box-shadow: 0 10px 22px rgba(24, 119, 242, 0.22);
    color: #fff !important;
    display: inline-flex;
    height: 54px;
    justify-content: center;
    min-height: 54px;
    text-decoration: none;
    transition: box-shadow 0.18s ease, transform 0.18s ease, background 0.18s ease;
    width: 54px;
}

.public-facebook-icon {
    align-items: center;
    color: #fff;
    display: inline-flex;
    flex: 0 0 auto;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 34px;
    font-weight: 900;
    height: 100%;
    justify-content: center;
    line-height: 1;
    padding-top: 7px;
    width: 100%;
}

.public-facebook-button:hover {
    background: #0f67d8;
    transform: translateY(-2px);
}

.public-primary-button:hover,
.public-secondary-button:hover {
    transform: translateY(-2px);
}

.public-home,
.public-page,
.public-article {
    margin: 0 auto;
    max-width: var(--public-max-width, 1180px);
    padding: 28px clamp(16px, 4vw, 42px);
}

.public-home {
    display: flex;
    flex-direction: column;
    max-width: none;
    padding: 0 0 28px;
}

.public-home > section:not(.public-hero-slider):not(.public-info-grid) {
    margin-left: auto;
    margin-right: auto;
    max-width: var(--public-max-width, 1180px);
    width: min(var(--public-max-width, 1180px), calc(100% - 36px));
}

.public-home > .public-hero-slider {
    margin-top: var(--public-section-gap, 18px);
    order: 1;
}

.public-home > .public-intro {
    box-sizing: border-box;
    margin-top: var(--public-section-gap, 18px);
    max-width: none !important;
    order: 2;
    width: min(1720px, calc(100% - 36px)) !important;
}

.public-home > .public-hero-slider,
.public-home > .public-intro {
    border-radius: var(--public-panel-radius, 8px);
    margin-left: auto;
    margin-right: auto;
    overflow: hidden;
    width: min(1720px, calc(100% - 36px));
}

.public-home > section.public-info-grid {
    box-sizing: border-box;
    max-width: none;
    order: 3;
    padding-left: clamp(18px, 5vw, 72px);
    padding-right: clamp(18px, 5vw, 72px);
    width: 100%;
}

.public-home > .public-blog-preview {
    order: 4;
}

.public-home > .public-contact-band {
    order: 5;
}

.public-page > .public-intro:not(.public-wide-panel) {
    display: none;
}

.public-hero {
    align-items: center;
    background: linear-gradient(135deg, #e9f4ff 0%, #ffffff 62%, #d8ecff 100%);
    border: 1px solid #d4e5f7;
    display: grid;
    gap: 32px;
    grid-template-columns: minmax(0, 1.05fr) minmax(300px, 0.95fr);
    min-height: 540px;
    overflow: hidden;
    padding: clamp(28px, 5vw, 62px);
}

.public-hero-slider {
    background: linear-gradient(135deg, #e9f4ff 0%, #ffffff 62%, #d8ecff 100%);
    border: 1px solid #d4e5f7;
    border-radius: var(--public-panel-radius, 8px);
    box-sizing: border-box;
    margin: 0;
    min-height: 420px;
    overflow: hidden;
    position: relative;
    width: 100%;
}

.public-hero-slide {
    align-items: center;
    display: none;
    gap: clamp(24px, 4vw, 54px);
    grid-template-columns: minmax(0, 1.05fr) minmax(300px, 0.95fr);
    min-height: 420px;
    padding: clamp(22px, 3vw, 42px) clamp(22px, 7vw, 96px);
    width: 100%;
}

.public-hero-slide:first-of-type,
.public-hero-slide.active {
    display: grid;
}

.public-hero-slider.ready .public-hero-slide {
    display: none;
}

.public-hero-slider.ready .public-hero-slide.active {
    display: grid;
}

.public-hero span,
.public-hero-slide span,
.public-page-header p,
.public-post-grid span {
    color: var(--public-text, #55708d);
}

.public-hero h1,
.public-hero-slide h1,
.public-page-header h1,
.public-article h1 {
    color: var(--public-heading, #08245c);
    font-size: clamp(36px, 6vw, 74px);
    line-height: 1;
    margin: 10px 0 18px;
}

.public-hero p,
.public-hero-slide p {
    color: var(--public-text, #31455c);
    font-size: 20px;
    max-width: 640px;
}

.public-hero-subtitle {
    color: var(--public-text, #31455c);
    font-size: 20px;
    max-width: 640px;
}

.public-hero-subtitle p,
.public-page-subtitle p,
.public-contact-form-intro p,
.public-price-group-intro p,
.public-price-line-description p,
.public-service-card-body p,
.public-site-section-body p {
    margin: 0;
}

.public-hero img,
.public-hero-slide img {
    border-radius: var(--public-card-radius, 8px);
    display: block;
    object-fit: contain;
    width: 100%;
}

.public-hero-actions,
.public-section-heading {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: space-between;
}

.public-slider-dots {
    align-items: center;
    bottom: 18px;
    display: flex;
    gap: 8px;
    left: clamp(28px, 5vw, 62px);
    position: absolute;
    z-index: 2;
}

.public-slider-dots button {
    background: #9ab5d6;
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    height: 10px;
    padding: 0;
    width: 10px;
}

.public-slider-dots button.active {
    background: var(--public-primary, #0a58ca);
    width: 26px;
}

.public-info-grid,
.public-post-grid {
    display: grid;
    gap: var(--public-section-gap, 18px);
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    margin-top: 22px;
}

.public-info-grid article,
.public-post-grid article,
.public-intro,
.public-contact-band {
    background: var(--public-card-bg, #fff);
    border: 1px solid #dbe5f0;
    border-radius: var(--public-card-radius, 8px);
    box-shadow: 0 16px 38px rgba(8, 36, 92, 0.08);
    padding: 20px;
}

.public-info-grid article {
    display: flex;
    flex-direction: column;
    min-height: 230px;
}

.public-info-grid article a {
    margin-top: auto;
}

.public-info-grid img,
.public-post-grid img,
.public-article > img {
    aspect-ratio: 16 / 9;
    border-radius: var(--public-card-radius, 6px);
    object-fit: cover;
    width: 100%;
}

.public-info-grid h2,
.public-intro h2,
.public-blog-preview h2,
.public-contact-band h2 {
    color: var(--public-heading, #08245c);
}

.public-info-grid p,
.public-post-grid p,
.public-intro p,
.public-contact-band p,
.public-article p {
    color: var(--public-text, #33465d);
}

.public-page-header .rich-text-content,
.public-intro .rich-text-content,
.public-info-grid .rich-text-content,
.public-contact-band .rich-text-content,
.public-article .rich-text-content {
    color: var(--public-text, #33465d);
}

.public-page-header .rich-text-content {
    font-size: var(--public-page-subtitle-size, 20px);
    line-height: 1.5;
    max-width: 880px;
}

.public-info-grid a,
.public-post-grid a,
.public-section-heading a,
.public-page a,
.public-article a {
    color: var(--public-primary, #0a58ca);
    font-weight: 800;
}

.public-intro {
    display: flex;
    align-items: center;
    flex-direction: column;
    gap: 24px;
    justify-content: center;
    margin-top: 0;
    padding: clamp(28px, 4vw, 54px) clamp(18px, 7vw, 96px);
    text-align: center;
}

.public-intro li {
    margin-bottom: 8px;
}

.public-intro > div,
.public-intro .rich-text-content {
    max-width: 1120px;
    width: 100%;
}

.public-wide-panel {
    height: auto;
    min-height: 0;
}

.auto-height-textarea {
    min-height: 180px;
    resize: vertical;
}

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

.public-service-list {
    display: grid;
    gap: var(--public-section-gap, 22px);
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.public-service-list article,
.public-map-placeholder {
    background: var(--public-card-bg, #fff);
    border: 1px solid #dbe5f0;
    border-radius: var(--public-card-radius, 8px);
    padding: 22px;
}

.public-service-card {
    box-shadow: 0 18px 36px rgba(8, 36, 92, 0.08);
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-height: 330px;
    overflow: hidden;
    position: relative;
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.public-service-card::before {
    background: var(--public-primary, #0a58ca);
    content: "";
    height: 4px;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
}

.public-service-card:hover {
    border-color: rgba(10, 88, 202, 0.34);
    box-shadow: 0 24px 44px rgba(8, 36, 92, 0.12);
    transform: translateY(-2px);
}

.public-service-card > img {
    align-self: flex-start;
    aspect-ratio: 16 / 9;
    background: #f3f8ff;
    border: 1px solid rgba(10, 88, 202, 0.12);
    border-radius: var(--public-card-radius, 8px);
    display: block;
    object-fit: contain;
    object-position: center;
    width: 100%;
}

.public-service-card h2 {
    color: currentColor;
    font-size: clamp(28px, 2.5vw, 40px);
    line-height: 1.08;
    margin: 0;
}

.public-service-card p {
    color: currentColor;
    font-size: 18px;
    line-height: 1.55;
    margin: 0;
    opacity: 0.82;
}

.public-service-card .rich-text-content {
    color: currentColor;
    font-size: 18px;
    line-height: 1.55;
    opacity: 0.82;
}

.public-service-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: auto;
}

.public-service-actions a {
    align-items: center;
    border-radius: var(--public-button-radius, 999px);
    display: inline-flex;
    min-height: 46px;
    padding: 10px 20px;
    text-decoration: none;
}

.public-price-list {
    display: grid;
    gap: 14px;
}

.public-price-group {
    background: var(--public-card-bg, #fff);
    border: 1px solid #dbe5f0;
    border-radius: var(--public-card-radius, 8px);
    box-shadow: 0 12px 30px rgba(8, 36, 92, 0.06);
    overflow: hidden;
}

.public-price-group summary {
    color: var(--public-heading, #08245c);
    cursor: pointer;
    display: flex;
    flex-direction: column;
    gap: 5px;
    font-size: 22px;
    font-weight: 800;
    padding: 18px 22px;
}

.public-price-group summary small {
    color: var(--public-text, #33465d);
    font-size: 16px;
    font-weight: 500;
}

.public-price-group-intro.rich-text-content {
    color: var(--public-text, #33465d);
    font-size: 16px;
    font-weight: 500;
    padding: 0 22px 16px;
}

.public-price-lines {
    border-top: 1px solid #dbe5f0;
    display: grid;
}

.public-price-lines > p,
.public-empty-card {
    color: var(--public-text, #33465d);
    padding: 18px 22px;
}

.public-empty-card {
    background: var(--public-card-bg, #fff);
    border: 1px solid #dbe5f0;
    border-radius: var(--public-card-radius, 8px);
}

.public-price-line {
    align-items: center;
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 14px 22px;
}

.public-price-line + .public-price-line {
    border-top: 1px solid #eef3f8;
}

.public-price-line strong {
    color: var(--public-heading, #08245c);
}

.public-price-line span {
    color: var(--public-text, #33465d);
    display: block;
    margin-top: 4px;
}

.public-price-line .rich-text-content {
    color: var(--public-text, #33465d);
    display: block;
    margin-top: 4px;
}

.public-price-line-description,
.public-price-line-description :where(p, ul, ol, li, span, strong, em, u, a) {
    color: inherit;
}

.public-price-line-description a {
    color: inherit !important;
    text-decoration-color: currentColor !important;
    text-decoration-thickness: from-font;
}

.public-price-line b {
    color: inherit;
    white-space: nowrap;
}

.public-seo-page {
    max-width: 1180px;
}

.public-seo-panel {
    border: 1px solid #dbe5f0;
    border-radius: var(--public-card-radius, 8px);
    box-shadow: 0 18px 38px rgba(8, 36, 92, 0.08);
    display: grid;
    gap: 22px;
    overflow: hidden;
    padding: 24px;
}

.public-seo-banner {
    background: #f3f8ff;
    border-radius: var(--public-card-radius, 8px);
    display: block;
    object-position: center;
    width: 100%;
}

.public-seo-content {
    display: grid;
    gap: 14px;
}

.public-seo-content p {
    color: currentColor;
    font-size: 18px;
    line-height: 1.65;
    margin: 0;
}

.public-seo-content.rich-text-content {
    color: currentColor;
    display: grid;
    font-size: 18px;
    gap: 14px;
    line-height: 1.65;
}

.public-seo-content.rich-text-content p {
    margin: 0;
}

.public-seo-button {
    justify-self: start;
}

.settings-price-line-row {
    align-items: center;
    display: flex;
    gap: 8px;
    justify-content: space-between;
    padding: 4px 0;
}

.public-service-list h2,
.public-map-placeholder strong {
    color: var(--public-heading, #08245c);
}

.public-map-placeholder {
    align-content: center;
    display: grid;
    gap: 12px;
    min-height: 280px;
}

.public-map-placeholder span {
    color: var(--public-text, #33465d);
}

.public-blog-preview,
.public-contact-band {
    margin-top: 28px;
}

.public-home > .public-contact-band {
    align-items: stretch;
    display: grid;
    gap: 22px;
    grid-template-columns: minmax(280px, 0.85fr) minmax(360px, 1.15fr);
}

.public-contact-copy {
    align-content: start;
    display: grid;
    gap: 8px;
}

.public-contact-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 10px;
}

.public-facebook-button {
    align-items: center;
    background: #1877f2;
    border: 1px solid color-mix(in srgb, #1877f2 72%, #ffffff);
    border-radius: 999px;
    box-shadow: 0 10px 22px rgba(24, 119, 242, 0.22);
    color: #fff !important;
    display: inline-flex;
    flex: 0 0 auto;
    height: 54px;
    justify-content: center;
    min-height: 54px;
    padding: 0;
    text-decoration: none;
    transition: box-shadow 0.18s ease, transform 0.18s ease, background 0.18s ease;
    width: 54px;
}

.public-facebook-button span {
    align-items: center;
    color: #fff;
    display: inline-flex;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 34px;
    font-weight: 900;
    height: 100%;
    justify-content: center;
    line-height: 1;
    padding-top: 7px;
    width: 100%;
}

.public-map-embed {
    border-radius: 8px;
    display: grid;
    gap: 8px;
    min-height: 300px;
    overflow: hidden;
}

.public-map-placeholder.public-map-embed {
    align-content: stretch;
    padding: 12px;
}

.public-map-embed iframe {
    border: 0;
    border-radius: 8px;
    display: block;
    height: min(42vw, 360px);
    min-height: 280px;
    width: 100%;
}

.public-map-embed a {
    color: var(--public-primary, #0a58ca);
    font-weight: 900;
}

.public-page-header {
    border-bottom: 1px solid #dbe5f0;
    margin-bottom: 22px;
    padding-bottom: 18px;
}

.public-page-header h1 {
    color: var(--public-page-title-color, var(--public-heading, #08245c));
    font-size: var(--public-page-title-size, 64px);
}

.public-page-header p {
    color: var(--public-page-subtitle-color, var(--public-text, #1f3856));
    font-size: var(--public-page-subtitle-size, 20px);
}

.public-post-grid {
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.public-article {
    max-width: 860px;
}

.public-article .lead {
    font-size: 20px;
    font-weight: 700;
}

.public-footer {
    align-items: center;
    background: var(--public-footer-bg, #08245c);
    color: #dce8ff;
    display: flex;
    gap: 16px;
    justify-content: space-between;
    padding: 22px clamp(18px, 5vw, 72px);
}

.public-footer strong,
.public-footer span {
    display: block;
}

.public-visit-request-page {
    max-width: 980px;
}

.public-visit-request-form {
    border: 1px solid #dbe5f0;
    border-radius: var(--public-card-radius, 8px);
    padding: clamp(18px, 4vw, 34px);
}

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

.public-visit-grid label {
    color: var(--public-form-label, var(--public-text, #1f3856));
    display: grid;
    font-weight: 800;
    gap: 6px;
}

.public-contact-form {
    border: 1px solid color-mix(in srgb, var(--public-primary, #0a58ca) 18%, #dbe5f0);
    border-radius: var(--public-card-radius, 8px);
    display: grid;
    gap: 14px;
    margin-top: 22px;
    padding: 18px;
}

.public-contact-form h3 {
    color: var(--public-page-title-color, var(--public-heading, #08245c));
    margin: 0;
}

.public-contact-form p {
    color: var(--public-page-subtitle-color, var(--public-text, #1f3856));
    margin: 0;
}

.public-contact-form label {
    color: var(--public-form-label, var(--public-text, #1f3856));
    display: grid;
    font-weight: 800;
    gap: 6px;
}

.public-hp-field {
    height: 1px !important;
    left: -10000px !important;
    opacity: 0 !important;
    pointer-events: none !important;
    position: absolute !important;
    top: auto !important;
    width: 1px !important;
}

.public-visit-grid .wide {
    grid-column: 1 / -1;
}

.public-upload-list {
    background: #f8fbff;
    border: 1px solid #dbe5f0;
    border-radius: var(--public-card-radius, 8px);
    display: grid;
    gap: 4px;
    margin-top: 14px;
    padding: 12px;
}

.public-upload-list span {
    color: #33465d;
}

@media (max-width: 900px) {
    .public-topbar {
        align-items: flex-start;
        flex-direction: column;
    }

    .public-hero,
    .public-hero-slide,
    .public-intro,
    .public-home > .public-contact-band,
    .public-info-grid,
    .public-post-grid,
    .public-service-list,
    .public-visit-grid,
    .public-contact-layout {
        grid-template-columns: 1fr;
    }

    .public-hero-slider,
    .public-hero-slide {
        min-height: auto;
    }

    .public-slider-dots {
        bottom: 12px;
    }

    .public-service-card {
        min-height: 0;
    }

    .public-footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .public-price-line {
        align-items: start;
        grid-template-columns: 1fr;
    }

    .settings-price-line-row {
        align-items: flex-start;
        flex-direction: column;
    }
}

.schedule-clickable-slot {
    cursor: pointer;
}

.schedule-appointment-main {
    color: inherit;
    display: block;
    text-decoration: none;
}

.schedule-slot-actions {
    align-items: center;
    align-self: end;
    display: flex;
    gap: 4px;
    justify-self: end;
    margin-top: 4px;
}

.schedule-nav-button,
.schedule-preview-button {
    background: #fff;
    border: 1px solid #1d4ed8;
    border-radius: 4px;
    color: #1d4ed8;
    font-size: 10px;
    font-weight: 800;
    justify-self: start;
    line-height: 1;
    padding: 4px 7px;
    text-decoration: none;
}

.schedule-nav-button:hover,
.schedule-preview-button:hover {
    background: #1d4ed8;
    color: #fff;
}

.schedule-slot.busy span {
    color: #991b1b;
    font-size: 10px;
    font-weight: 700;
}

.schedule-slot.busy strong {
    font-size: 12px;
    margin-top: 2px;
}

.schedule-slot.busy em,
.schedule-slot.busy small {
    color: #334155;
    font-size: 10px;
    font-style: normal;
    margin-top: 2px;
}

.schedule-slot .schedule-slot-user,
.schedule-current-block .schedule-slot-user {
    color: #64748b;
    font-size: 9px;
    font-style: normal;
    font-weight: 700;
    margin-top: 4px;
}

.schedule-slot.locked {
    align-items: center;
    background: #e5e7eb;
    color: #64748b;
    display: flex;
    justify-content: center;
}

.schedule-slot.reserved {
    background: #dc2626;
    border-color: #991b1b;
    color: #fff;
}

.schedule-slot.reserved span,
.schedule-slot.reserved small {
    color: #fee2e2;
}

.schedule-slot.repeat {
    background: #fef3c7;
    border-color: #f59e0b;
}

.schedule-slot.repeat span {
    color: #92400e;
    font-size: 10px;
    font-weight: 700;
}

.schedule-slot.note {
    background: #e0f2fe;
    border-color: #38bdf8;
}

.schedule-slot.note span {
    color: #075985;
    font-size: 10px;
    font-weight: 700;
}

.repairs-table {
    min-height: 620px;
}

.warehouse-module-tabs {
    background: var(--erp-panel);
    border: 1px solid var(--erp-line);
    border-radius: 8px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 14px;
    padding: 10px;
}

.warehouse-module-tab {
    background: #fff;
    border: 1px solid var(--erp-line);
    border-radius: 6px;
    color: #0f172a;
    font-weight: 800;
    padding: 9px 12px;
}

.warehouse-module-tab.active,
.warehouse-module-tab:hover {
    background: var(--erp-accent);
    border-color: var(--erp-accent-dark);
    color: #fff;
}

.warehouse-shell {
    display: grid;
    gap: 14px;
    grid-template-columns: 260px minmax(0, 1fr);
}

.warehouse-actions,
.warehouse-workspace,
.warehouse-form-panel {
    background: var(--erp-panel);
    border: 1px solid var(--erp-line);
    border-radius: 8px;
}

.warehouse-actions {
    align-self: start;
    display: grid;
    gap: 8px;
    padding: 12px;
}

.warehouse-actions button {
    background: #fff;
    border: 1px solid var(--erp-line);
    border-radius: 6px;
    color: #0f172a;
    font-weight: 700;
    padding: 8px 10px;
    text-align: left;
}

.warehouse-actions button:hover {
    background: #eef4ff;
    border-color: #9db8f9;
}

.warehouse-actions button:disabled {
    color: #94a3b8;
}

.warehouse-actions label {
    align-items: center;
    color: #334155;
    display: flex;
    gap: 7px;
}

.warehouse-workspace {
    overflow: hidden;
    padding: 12px;
}

.warehouse-side-details {
    border-top: 1px solid var(--erp-line);
    display: grid;
    gap: 6px;
    margin-top: 8px;
    padding-top: 10px;
}

.warehouse-side-details span {
    color: var(--erp-muted);
    font-size: 12px;
}

.warehouse-side-details dl {
    margin: 0;
}

.warehouse-side-details dt {
    color: var(--erp-muted);
    font-size: 11px;
    font-weight: 800;
    margin-top: 6px;
    text-transform: uppercase;
}

.warehouse-side-details dd {
    margin: 0;
}

.warehouse-form-panel {
    margin-bottom: 12px;
    padding: 12px;
}

.warehouse-form-grid {
    display: grid;
    gap: 10px 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.warehouse-form-grid label {
    color: #334155;
    display: grid;
    font-weight: 700;
    gap: 4px;
}

.warehouse-form-grid .wide,
.warehouse-form-grid .checkbox-row {
    grid-column: 1 / -1;
}

.warehouse-lines-preview {
    margin-bottom: 12px;
}

.warehouse-low-stock {
    color: #dc2626;
    font-weight: 900;
}

.warehouse-stock-cell {
    color: #475569;
    font-size: 12px;
    min-width: 180px;
}

.reports-shell .warehouse-actions h2 {
    font-size: 18px;
    margin: 0 0 4px;
}

.reports-filter-list {
    border-top: 1px solid var(--erp-line);
    display: grid;
    gap: 7px;
    max-height: 230px;
    overflow: auto;
    padding-top: 10px;
}

.reports-filter-list strong {
    color: #0f172a;
}

.reports-filter-list label {
    align-items: center;
    display: flex;
    font-weight: 500;
    gap: 7px;
}

.reports-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 10px;
}

.reports-summary span {
    background: #eef4ff;
    border: 1px solid #c8d8fb;
    border-radius: 6px;
    color: #334155;
    padding: 6px 10px;
}

.warehouse-stock-breakdown {
    display: grid;
    gap: 3px;
    margin-top: 4px;
}

.warehouse-stock-breakdown span {
    color: #475569;
    font-size: 12px;
}

.warehouse-stock-breakdown b {
    color: #0f172a;
}

.warehouse-document-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    min-width: 210px;
}

.warehouse-item-search {
    margin-bottom: 6px;
}

.warehouse-inline-create {
    margin-top: 6px;
    width: max-content;
}

.warehouse-quick-item-modal {
    max-height: min(86vh, 860px);
    max-width: 980px;
    overflow: auto;
    width: min(980px, 100%);
}

.warehouse-quick-item-modal .warehouse-form-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.warehouse-print-sheet {
    background: #fff;
    border: 1px solid #cfd8e3;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.12);
    color: #000;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    margin: 0 auto;
    max-width: 900px;
    min-height: 1120px;
    padding: 28px;
}

.warehouse-print-header {
    align-items: start;
    border-bottom: 2px solid #000;
    display: flex;
    justify-content: space-between;
    margin-bottom: 18px;
    padding-bottom: 14px;
}

.warehouse-print-header span,
.warehouse-print-meta span {
    color: #334155;
    display: block;
    font-weight: 700;
}

.warehouse-print-header h1 {
    font-size: 24px;
    margin: 3px 0 0;
}

.warehouse-print-meta {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(4, 1fr);
    margin-bottom: 18px;
}

.warehouse-print-meta div,
.warehouse-print-note {
    border: 1px solid #000;
    padding: 10px;
}

.warehouse-print-note {
    margin-bottom: 18px;
}

.warehouse-print-note h2 {
    font-size: 15px;
    margin: 0 0 8px;
}

.warehouse-print-note p {
    margin: 0;
    white-space: pre-wrap;
}

.accounting-shell {
    grid-template-columns: minmax(420px, 46%) minmax(0, 1fr);
}

.accounting-list {
    max-height: calc(100vh - 220px);
    overflow: auto;
}

.accounting-header-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

.accounting-line-grid {
    align-items: end;
    grid-template-columns: minmax(220px, 1.5fr) repeat(4, minmax(90px, 1fr)) auto;
}

.accounting-document-grid {
    display: grid;
    gap: 10px 12px;
    grid-template-columns: repeat(12, minmax(0, 1fr));
}

.accounting-document-grid label {
    color: #334155;
    display: grid;
    font-weight: 700;
    gap: 4px;
    min-width: 0;
}

.field-document-type,
.field-number,
.field-date,
.field-due,
.field-status,
.field-payment,
.field-currency {
    grid-column: span 3;
}

.field-partner {
    grid-column: span 6;
}

.field-uic {
    grid-column: span 6;
}

.field-vat,
.field-mol,
.field-related {
    grid-column: span 4;
}

.field-address,
.field-notes {
    grid-column: 1 / -1;
}

.accounting-add-line {
    height: 39px;
    white-space: nowrap;
}

.accounting-totals {
    align-items: center;
    background: #ecfeff;
    border: 1px solid #67e8f9;
    border-radius: 6px;
    display: flex;
    flex-wrap: wrap;
    gap: 12px 18px;
    justify-content: flex-end;
    margin-bottom: 12px;
    padding: 10px 12px;
}

.accounting-uic-row {
    display: grid;
    gap: 6px;
    grid-template-columns: minmax(0, 1fr) 120px;
    position: relative;
    z-index: 2;
}

.accounting-uic-row .btn {
    min-width: 120px;
    white-space: nowrap;
}

.customers-company-layout {
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(0, 1fr) 380px;
}

.customers-company-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.repair-side-panel {
    background: var(--erp-panel);
    border: 1px solid var(--erp-line);
    border-radius: 8px;
    padding: 16px;
}

.repair-summary {
    border-bottom: 1px solid var(--erp-line);
    padding-bottom: 14px;
}

.repair-collapse-button {
    align-items: center;
    background: #fff;
    border: 1px solid var(--erp-line);
    border-radius: 6px;
    color: #0f172a;
    display: flex;
    font-weight: 800;
    justify-content: space-between;
    margin-top: 8px;
    padding: 9px 10px;
    text-align: left;
    width: 100%;
}

.repair-collapse-button:hover {
    background: #eef4ff;
    border-color: #9db8f9;
}

.repair-collapse-button.secondary {
    margin-top: 14px;
}

.repair-details-grid {
    background: #f8fbff;
    border: 1px solid var(--erp-line);
    border-radius: 6px;
    margin-top: 8px !important;
    padding: 10px;
}

.side-edit-button {
    margin-bottom: 10px;
}

.repair-taken-check {
    margin: 2px 0 12px;
}

.print-dropdown {
    display: inline-block;
    position: relative;
}

.print-dropdown.side-edit-button {
    display: block;
}

.print-dropdown summary {
    cursor: pointer;
    list-style: none;
}

.print-dropdown summary::-webkit-details-marker {
    display: none;
}

.print-dropdown summary::after {
    content: " ▾";
    font-size: 11px;
}

.print-dropdown.disabled {
    opacity: 0.65;
    pointer-events: none;
}

.print-dropdown-menu {
    background: #fff;
    border: 1px solid var(--erp-line);
    border-radius: 6px;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.16);
    display: grid;
    gap: 4px;
    left: 0;
    min-width: 220px;
    padding: 6px;
    position: absolute;
    top: calc(100% + 6px);
    z-index: 60;
}

.repair-summary .print-dropdown-menu {
    min-width: 240px;
}

.print-dropdown-item {
    background: transparent;
    border: 0;
    border-radius: 5px;
    color: #0f172a;
    display: block;
    font: inherit;
    font-weight: 700;
    padding: 8px 10px;
    text-align: left;
    text-decoration: none;
    width: 100%;
}

.print-dropdown-item:hover,
.print-dropdown-item:focus {
    background: #eef4ff;
    color: #1d4ed8;
}

.print-dropdown-item:disabled {
    opacity: 0.55;
}

.repair-card-page {
    background: #eef3f9;
    min-height: 100vh;
    padding: 24px;
}

.print-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    margin: 0 auto 16px;
    max-width: 900px;
}

.print-share-message {
    margin: 0 auto 12px;
    max-width: 900px;
}

.print-share-backdrop {
    align-items: center;
    background: rgba(15, 23, 42, 0.36);
    display: flex;
    inset: 0;
    justify-content: center;
    padding: 18px;
    position: fixed;
    z-index: 3000;
}

.print-share-dialog {
    background: #fff;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    box-shadow: 0 24px 60px rgba(15, 23, 42, 0.28);
    color: #0f172a;
    display: grid;
    gap: 14px;
    max-width: 560px;
    padding: 20px;
    width: min(560px, 100%);
}

.print-share-dialog header {
    align-items: center;
    border-bottom: 1px solid #dbe4ef;
    display: flex;
    justify-content: space-between;
    padding-bottom: 10px;
}

.print-share-dialog h2 {
    font-size: 20px;
    margin: 0;
}

.repair-card-sheet {
    background: #fff;
    border: 1px solid #cfd8e3;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.12);
    color: #111827;
    font-family: var(--print-font-family, "Segoe UI", Arial, sans-serif);
    font-size: var(--print-body-font-size, 14px);
    margin: 0 auto;
    max-width: 900px;
    min-height: 1120px;
    padding: 32px;
}

.repair-protocol-sheet {
    background: #fff;
    border: 1px solid #cfd8e3;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.12);
    color: #000;
    font-family: var(--print-font-family, Arial, Helvetica, sans-serif);
    font-size: var(--print-body-font-size, 12px);
    margin: 0 auto;
    max-width: 900px;
    min-height: 1120px;
    padding: 28px;
}

.replacement-protocol-sheet {
    background: #fff;
    border: 1px solid #d1d5db;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.12);
    color: #111827;
    font-family: var(--print-font-family, Arial, Helvetica, sans-serif);
    font-size: var(--print-body-font-size, 13px);
    margin: 0 auto;
    max-width: 820px;
    min-height: 1120px;
    padding: 34px 42px;
}

.replacement-header {
    align-items: center;
    display: grid;
    gap: 28px;
    grid-template-columns: minmax(0, 1fr) 320px;
}

.replacement-brand {
    align-items: center;
    display: flex;
    gap: 14px;
}

.replacement-brand img {
    max-height: 70px;
    max-width: 150px;
    object-fit: contain;
}

.replacement-brand h1 {
    font-size: var(--print-title-font-size, 28px);
    font-weight: 900;
    margin: 0;
}

.replacement-brand p {
    color: #6b7280;
    font-size: var(--print-section-title-font-size, 18px);
    margin: 2px 0 0;
}

.replacement-contact,
.replacement-footer-note {
    white-space: pre-wrap;
}

.replacement-contact.rich-text-content,
.replacement-footer-note.rich-text-content {
    white-space: normal;
}

.replacement-contact.rich-text-content p,
.replacement-footer-note.rich-text-content p {
    margin: 0 0 6px;
}

.replacement-title {
    margin: 34px 0 26px;
    text-align: center;
}

.replacement-title h2 {
    font-size: var(--print-title-font-size, 25px);
    font-weight: 900;
    letter-spacing: 0.08em;
    margin: 0 0 12px;
}

.replacement-title strong {
    font-size: var(--print-section-title-font-size, 20px);
}

.replacement-info-grid,
.replacement-commission-grid {
    border: 1px solid #111827;
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.replacement-info-grid div,
.replacement-commission-grid div {
    padding: 10px 12px;
}

.replacement-info-grid div:first-child,
.replacement-commission-grid div:first-child {
    border-right: 1px solid #111827;
}

.replacement-info-grid p,
.replacement-commission-grid p {
    margin: 0 0 5px;
}

.replacement-info-grid span {
    color: #4b5563;
}

.replacement-text-block {
    margin-top: 26px;
}

.replacement-text-block h3,
.replacement-commission h3 {
    font-size: var(--print-section-title-font-size, 19px);
    font-weight: 900;
    margin: 0 0 14px;
}

.replacement-text-block p {
    margin: 0;
    min-height: 42px;
    white-space: pre-wrap;
}

.replacement-commission {
    margin-top: 34px;
}

.replacement-date {
    font-size: var(--print-body-font-size, 15px);
    margin: 26px 0 10px;
}

.replacement-footer-note {
    font-size: var(--print-small-font-size, 11px);
    line-height: 1.35;
    margin-top: 10px;
}

.replacement-client-signature {
    align-items: center;
    display: flex;
    font-size: var(--print-section-title-font-size, 18px);
    justify-content: space-between;
    margin-top: 34px;
}

.opinion-protocol-sheet {
    min-height: 1040px;
}

.opinion-text-block p {
    font-size: var(--print-body-font-size, 15px);
    line-height: 1.55;
    min-height: 180px;
}

.opinion-commission {
    margin-top: 40px;
}

.opinion-print-modal label {
    color: #334155;
    display: block;
    font-weight: 800;
    margin-bottom: 8px;
}

.schedule-print-modal label {
    color: #334155;
    display: block;
    font-weight: 800;
    margin-bottom: 8px;
}

.daily-schedule-print-page {
    background: #eef3f9;
    min-height: 100vh;
    padding: 24px;
}

.daily-schedule-sheet {
    background: #fff;
    border: 1px solid #cfd8e3;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.12);
    color: #111827;
    font-family: Arial, Helvetica, sans-serif;
    margin: 0 auto;
    max-width: 1120px;
    min-height: 760px;
    padding: 28px;
}

.daily-schedule-header {
    align-items: end;
    border-bottom: 2px solid #111827;
    display: flex;
    gap: 24px;
    justify-content: space-between;
    margin-bottom: 18px;
    padding-bottom: 14px;
}

.daily-schedule-header h1 {
    font-size: 30px;
    margin: 4px 0 0;
}

.daily-schedule-header span,
.daily-schedule-header strong {
    display: block;
}

.daily-schedule-header span {
    color: #475569;
}

.daily-schedule-header div:last-child {
    text-align: right;
}

.daily-schedule-table {
    border-collapse: collapse;
    font-size: 13px;
    width: 100%;
}

.daily-schedule-table th,
.daily-schedule-table td {
    border: 1px solid #111827;
    padding: 8px;
    text-align: left;
    vertical-align: top;
}

.daily-schedule-table th {
    background: #e2e8f0;
    font-weight: 900;
}

.daily-schedule-table td span {
    display: block;
    margin-top: 4px;
    white-space: pre-wrap;
}

.daily-time {
    font-weight: 900;
    width: 110px;
}

.daily-free {
    color: #64748b;
    font-style: italic;
}

.daily-busy td {
    background: #f8fbff;
}

.daily-note td {
    background: #fff7ed;
}

.daily-reserved td {
    background: #fee2e2;
}

.replacement-client-signature > span {
    align-items: center;
    display: inline-flex;
    gap: 8px;
}

.protocol-top,
.protocol-two-columns,
.protocol-signatures,
.protocol-summary-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: 1fr 1fr;
}

.protocol-top {
    align-items: start;
    border-bottom: 2px solid #000;
    margin-bottom: 18px;
    padding-bottom: 14px;
}

.protocol-top h1 {
    font-size: var(--print-title-font-size, 24px);
    margin: 0 0 12px;
}

.protocol-top h2 {
    font-size: var(--print-section-title-font-size, 18px);
    margin: 0 0 4px;
}

.protocol-company-address {
    font-size: var(--print-small-font-size, 12px);
    font-weight: 700;
    margin: 0 0 3px;
}

.protocol-service-base-name {
    color: #334155;
    font-size: var(--print-small-font-size, 11px);
    margin: 0 0 4px;
}

.protocol-meta,
.protocol-two-columns section,
.protocol-text-box,
.protocol-summary-grid div,
.protocol-signatures div {
    border: 1px solid #000;
    padding: 10px;
}

.protocol-meta {
    display: grid;
    gap: 5px;
    grid-template-columns: 1fr 1fr;
}

.protocol-meta span,
.protocol-summary-grid span {
    color: #334155;
    font-weight: 700;
}

.repair-protocol-sheet h3 {
    font-size: var(--print-section-title-font-size, 15px);
    margin: 0 0 8px;
}

.repair-protocol-sheet dl {
    display: grid;
    gap: 6px 10px;
    grid-template-columns: 90px minmax(0, 1fr);
    margin: 0;
}

.repair-protocol-sheet dt {
    font-weight: 700;
    text-align: right;
}

.repair-protocol-sheet dd {
    margin: 0;
}

.protocol-text-box {
    margin-top: 18px;
    min-height: 92px;
}

.protocol-text-box p {
    margin: 0;
    white-space: pre-wrap;
}

.protocol-table {
    border-collapse: collapse;
    margin-bottom: 18px;
    width: 100%;
}

.protocol-table th,
.protocol-table td {
    border: 1px solid #000;
    padding: 5px 6px;
}

.protocol-table th {
    background: #f1f5f9;
    text-align: left;
}

.protocol-table .num {
    text-align: right;
    white-space: nowrap;
}

.protocol-total-row td {
    font-weight: 800;
}

.protocol-summary-grid {
    grid-template-columns: repeat(5, 1fr);
    margin-bottom: 18px;
}

.protocol-summary-grid div {
    text-align: center;
}

.protocol-summary-grid strong {
    display: block;
    font-size: var(--print-section-title-font-size, 16px);
    margin-top: 5px;
}

.protocol-summary-grid .due {
    background: #fef2f2;
}

.protocol-signatures {
    margin-top: 20px;
}

.protocol-signatures p {
    margin: 18px 0 0;
}

.protocol-signatures .client-signature-slot p {
    margin: 0;
}

.protocol-date {
    margin-top: 20px;
}

.repair-card-header {
    align-items: flex-start;
    border-bottom: 3px solid #1d4ed8;
    display: flex;
    justify-content: space-between;
    padding-bottom: 18px;
}

.repair-card-header h1 {
    color: #0f2f6f;
    font-size: var(--print-title-font-size, 30px);
    font-weight: 800;
    margin: 0;
}

.repair-card-header p {
    color: #475569;
    font-size: var(--print-section-title-font-size, 17px);
    margin: 4px 0 0;
}

.repair-card-note {
    font-size: var(--print-small-font-size, 13px) !important;
    white-space: pre-wrap;
}

.repair-card-note.rich-text-content {
    font-size: var(--print-small-font-size, 13px) !important;
    white-space: normal;
}

.repair-card-note.rich-text-content p {
    margin: 4px 0 0;
}

.repair-card-number {
    border: 2px solid #1d4ed8;
    min-width: 190px;
    padding: 12px 16px;
    text-align: center;
}

.repair-card-number span,
.repair-card-strip span,
.repair-card-footer span {
    color: #64748b;
    display: block;
    font-size: var(--print-small-font-size, 12px);
    font-weight: 700;
    text-transform: uppercase;
}

.repair-card-number strong {
    color: #0f2f6f;
    display: block;
    font-size: var(--print-title-font-size, 30px);
    line-height: 1.1;
}

.repair-card-strip {
    border-bottom: 1px solid #cbd5e1;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    margin-bottom: 18px;
}

.repair-card-strip div {
    border-right: 1px solid #cbd5e1;
    padding: 12px;
}

.repair-card-strip div:last-child {
    border-right: 0;
}

.repair-card-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: 1fr 1fr;
    margin-bottom: 16px;
}

.repair-card-description-grid {
    display: grid;
    gap: 12px;
    grid-template-columns: 1fr 1fr;
    margin-bottom: 10px;
}

.repair-card-grid section,
.repair-card-block {
    border: 1px solid #cbd5e1;
    padding: 14px;
}

.repair-card-sheet h2 {
    background: #edf3fb;
    border-bottom: 1px solid #cbd5e1;
    color: #0f2f6f;
    font-size: var(--print-section-title-font-size, 16px);
    font-weight: 800;
    margin: -14px -14px 12px;
    padding: 9px 12px;
}

.repair-card-sheet dl {
    display: grid;
    gap: 7px 12px;
    grid-template-columns: 130px minmax(0, 1fr);
    margin: 0;
}

.repair-card-sheet dt {
    color: #475569;
    font-weight: 700;
}

.repair-card-sheet dd {
    margin: 0;
    min-height: 20px;
}

.repair-card-block {
    margin-bottom: 16px;
    min-height: 110px;
}

.repair-card-description-grid .repair-card-block {
    margin-bottom: 0;
    min-height: 74px;
    padding: 10px;
}

.repair-card-description-grid .repair-card-block h2 {
    font-size: var(--print-section-title-font-size, 13px);
    margin: -10px -10px 8px;
    padding: 6px 9px;
}

.repair-card-description-grid .repair-card-block p {
    font-size: var(--print-body-font-size, 12px);
    line-height: 1.25;
}

.repair-card-block p {
    margin: 0;
    white-space: pre-wrap;
}

.repair-card-footer {
    border-top: 2px solid #1d4ed8;
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(3, 1fr);
    margin-top: 24px;
    padding-top: 18px;
}

.client-signature-slot {
    align-items: center;
    display: flex;
    justify-content: center;
    min-height: 52px;
}

.client-signature-slot img {
    display: none;
    max-height: 56px;
    max-width: 220px;
    object-fit: contain;
}

.client-signature-slot.has-signature img {
    display: block;
}

.client-signature-slot.has-signature strong,
.client-signature-slot.has-signature p {
    display: none;
}

.signature-modal-backdrop {
    align-items: center;
    background: rgba(15, 23, 42, 0.48);
    display: flex;
    inset: 0;
    justify-content: center;
    padding: 16px;
    position: fixed;
    z-index: 2000;
}

.signature-modal {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.32);
    display: grid;
    gap: 12px;
    max-width: 720px;
    padding: 14px;
    width: min(720px, 100%);
}

.signature-modal header {
    align-items: flex-start;
    border-bottom: 1px solid var(--erp-line);
    display: flex;
    gap: 12px;
    justify-content: space-between;
    padding-bottom: 10px;
}

.signature-modal header strong,
.signature-modal header span {
    display: block;
}

.signature-modal header span {
    color: var(--erp-muted);
    font-size: 13px;
    margin-top: 2px;
}

.signature-close {
    background: transparent;
    border: 0;
    color: #334155;
    font-size: 28px;
    line-height: 1;
}

.signature-canvas {
    background:
        linear-gradient(#fff, #fff) padding-box,
        repeating-linear-gradient(0deg, transparent 0 34px, rgba(148, 163, 184, 0.35) 35px) border-box;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    height: min(42vh, 260px);
    touch-action: none;
    width: 100%;
}

.signature-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

.signature-actions button {
    background: #fff;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    color: #0f172a;
    font-weight: 800;
    padding: 9px 12px;
}

.signature-actions .signature-save {
    background: var(--erp-accent);
    border-color: var(--erp-accent-dark);
    color: #fff;
}

.repair-card-footer-note {
    border: 1px solid #cbd5e1;
    color: #475569;
    font-size: 12px;
    margin: 0 0 16px;
    padding: 8px 10px;
    white-space: pre-wrap;
}

.repair-card-footer-note.rich-text-content {
    white-space: normal;
}

.repair-card-footer-note.rich-text-content p {
    margin: 0 0 6px;
}

.print-missing {
    padding: 40px;
    text-align: center;
}

.invoice-print-page {
    background: #eef3f9;
    min-height: 100vh;
    padding: 24px;
}

.compact-invoice-sheet {
    background: #fff;
    border: 1px solid #d1d5db;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.12);
    color: #000;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    margin: 0 auto;
    max-width: 760px;
    min-height: 1040px;
    padding: 8px 8px 22px;
}

.compact-invoice-topline {
    align-items: start;
    display: grid;
    font-size: 10px;
    grid-template-columns: 160px 1fr;
    min-height: 24px;
    text-align: center;
}

.compact-invoice-topline img {
    display: block;
    max-height: 42px;
    max-width: 150px;
    object-fit: contain;
}

.compact-party-grid {
    display: grid;
    gap: 28px;
    grid-template-columns: 1fr 1fr;
    margin-top: 4px;
}

.compact-party-grid h2 {
    font-size: 12px;
    font-weight: 400;
    margin: 0 0 8px 4px;
}

.compact-party-box {
    border: 1px solid #000;
    min-height: 150px;
    padding: 14px 12px;
}

.compact-party-box > strong {
    display: block;
    font-size: 13px;
    margin-bottom: 10px;
}

.compact-party-box dl {
    display: grid;
    gap: 8px 8px;
    grid-template-columns: 72px minmax(0, 1fr);
    margin: 0;
}

.compact-party-box dt {
    font-weight: 700;
    text-align: right;
}

.compact-party-box dd {
    margin: 0;
    min-height: 14px;
}

.compact-original {
    font-size: 12px;
    font-weight: 900;
    margin: 8px 8px 0 0;
    text-align: right;
}

.compact-title {
    margin: 8px 0 18px;
    text-align: center;
}

.compact-title h1 {
    font-size: 22px;
    margin: 0 0 22px;
}

.compact-title strong {
    font-size: 15px;
}

.compact-lines {
    border-collapse: collapse;
    width: 100%;
}

.compact-lines th,
.compact-lines td {
    border: 1px solid #000;
    padding: 3px 5px;
}

.compact-lines th {
    background: #f1f1f1;
    font-weight: 400;
    text-align: center;
}

.compact-lines th:nth-child(1),
.compact-lines td:nth-child(1) {
    text-align: center;
    width: 26px;
}

.compact-lines th:nth-child(2),
.compact-lines td:nth-child(2) {
    text-align: left;
}

.compact-lines th:nth-child(3),
.compact-lines th:nth-child(4),
.compact-lines th:nth-child(5),
.compact-lines th:nth-child(6),
.compact-lines td:nth-child(3),
.compact-lines td:nth-child(4),
.compact-lines td:nth-child(5),
.compact-lines td:nth-child(6) {
    text-align: right;
    width: 72px;
}

.compact-total-rows {
    margin-left: auto;
    width: 100%;
}

.compact-total-rows div {
    align-items: center;
    border-bottom: 1px solid #000;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 130px;
    min-height: 20px;
}

.compact-total-rows span {
    text-align: right;
}

.compact-total-rows strong {
    border-left: 1px solid #000;
    display: block;
    min-height: 20px;
    padding: 2px 5px;
    text-align: right;
}

.compact-total-rows .compact-words {
    border: 1px solid #000;
    border-top: 0;
    grid-template-columns: 90px minmax(0, 1fr);
}

.compact-total-rows .compact-words span {
    text-align: right;
}

.compact-total-rows .compact-words strong {
    border-left: 0;
    text-align: left;
}

.settings-company-logo {
    align-items: center;
    background: var(--erp-panel);
    border: 1px solid var(--erp-line);
    border-radius: 8px;
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(0, 1fr) auto minmax(220px, 320px);
    margin-bottom: 14px;
    padding: 14px;
}

.settings-company-logo strong,
.settings-company-logo span {
    display: block;
}

.settings-company-logo span {
    color: var(--erp-muted);
    font-size: 13px;
}

.settings-company-logo img {
    max-height: 70px;
    max-width: 180px;
    object-fit: contain;
}

.compact-bottom-grid {
    display: grid;
    gap: 8px 28px;
    grid-template-columns: minmax(0, 1fr) 320px;
    margin-top: 26px;
}

.compact-box {
    border: 1px solid #000;
    min-height: 86px;
    padding: 10px 12px;
}

.compact-box p {
    margin: 0 0 10px;
}

.compact-box dl {
    display: grid;
    gap: 6px 8px;
    grid-template-columns: 72px minmax(0, 1fr);
    margin: 12px 0 0;
}

.compact-box dt {
    text-align: right;
}

.compact-box dd {
    font-weight: 700;
    margin: 0;
}

.compact-right,
.compact-sign {
    display: block;
    text-align: right;
}

.signature-box {
    min-height: 58px;
}

.signature-box .compact-sign {
    margin-top: 20px;
}

.repair-summary span {
    color: var(--erp-muted);
    display: block;
    font-size: 13px;
}

.repair-summary h2 {
    font-size: 24px;
    margin: 2px 0 14px;
}

.repair-summary-meta {
    color: var(--erp-muted);
    display: grid;
    gap: 3px;
    font-size: 13px;
    line-height: 1.35;
    margin: -6px 0 12px;
}

.repair-summary dl {
    margin: 0;
}

.repair-summary dt {
    color: var(--erp-muted);
    font-size: 12px;
    font-weight: 700;
    margin-top: 9px;
    text-transform: uppercase;
}

.repair-summary dd {
    margin: 2px 0 0;
}

.reclamation-banner,
.reclamation-badge,
.reclamation-table-label {
    color: #dc2626;
    font-weight: 900;
    letter-spacing: 0.04em;
}

.reclamation-banner {
    background: #fff1f2;
    border: 1px solid #fecdd3;
    border-radius: 6px;
    margin-bottom: 12px;
    padding: 8px 10px;
    text-align: center;
}

.reclamation-banner.compact {
    margin: 8px 0;
    padding: 6px 8px;
    text-align: left;
}

.reclamation-table-label {
    display: block;
    font-size: 11px;
    margin-top: 2px;
}

.repair-side-tabs {
    border-bottom: 1px solid var(--erp-line);
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
    padding-bottom: 10px;
}

.repair-side-tab {
    background: #fff;
    border: 1px solid var(--erp-line);
    border-radius: 6px;
    color: #0f172a;
    font-weight: 700;
    padding: 7px 10px;
}

.repair-side-tab.active,
.repair-side-tab:hover {
    background: var(--erp-accent);
    border-color: var(--erp-accent-dark);
    color: #fff;
}

.description-editor {
    border-bottom: 1px solid var(--erp-line);
    padding: 14px 0;
}

.description-editor label {
    color: #334155;
    display: block;
    font-weight: 700;
    margin-bottom: 6px;
}

.attachment-editor {
    border-bottom: 1px solid var(--erp-line);
    display: grid;
    gap: 8px;
    padding: 14px 0;
}

.attachment-editor label {
    color: #334155;
    display: block;
    font-weight: 700;
}

.attachment-editor small {
    color: var(--erp-muted);
}

.attachment-upload-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.camera-capture-button {
    align-items: center;
    display: none;
    gap: 8px;
    justify-content: center;
}

.camera-icon {
    border: 2px solid currentColor;
    border-radius: 4px;
    display: inline-block;
    height: 16px;
    position: relative;
    width: 22px;
}

.camera-icon::before {
    border: 2px solid currentColor;
    border-radius: 50%;
    content: "";
    height: 8px;
    left: 5px;
    position: absolute;
    top: 2px;
    width: 8px;
}

.camera-icon::after {
    background: currentColor;
    border-radius: 2px 2px 0 0;
    content: "";
    height: 4px;
    left: 3px;
    position: absolute;
    top: -5px;
    width: 8px;
}

.camera-file-input {
    height: 1px;
    opacity: 0;
    overflow: hidden;
    position: absolute;
    width: 1px;
}

.attachment-list {
    border-bottom: 1px solid var(--erp-line);
    padding: 14px 0;
}

.attachment-list h3 {
    font-size: 17px;
    margin: 0 0 10px;
}

.attachment-item {
    align-items: center;
    border: 1px solid var(--erp-line);
    border-radius: 6px;
    display: grid;
    gap: 8px;
    grid-template-columns: 58px minmax(0, 1fr) auto;
    margin-bottom: 10px;
    padding: 8px;
}

.attachment-item img {
    border: 1px solid var(--erp-line);
    border-radius: 6px;
    height: 48px;
    object-fit: cover;
    width: 58px;
}

.attachment-item div {
    min-width: 0;
}

.attachment-item a {
    display: block;
    overflow-wrap: anywhere;
}

.attachment-item span {
    color: var(--erp-muted);
    display: block;
    font-size: 12px;
}

.editor-actions,
.description-actions {
    display: flex;
    gap: 8px;
    margin-top: 10px;
}

.description-list {
    padding-top: 14px;
}

.description-list h3 {
    font-size: 17px;
    margin: 0 0 10px;
}

.description-item {
    border: 1px solid var(--erp-line);
    border-radius: 6px;
    margin-bottom: 10px;
    padding: 12px;
}

.description-open-button {
    background: #f8fbff;
    border: 1px solid var(--erp-line);
    border-radius: 6px;
    color: #0f172a;
    display: block;
    font-weight: 700;
    line-height: 1.3;
    margin: 0 0 8px;
    padding: 9px 10px;
    text-align: left;
    width: 100%;
}

.description-open-button:hover {
    background: #eef4ff;
    border-color: #9db8f9;
}

.description-item p {
    margin: 0 0 8px;
    white-space: pre-wrap;
}

.description-item div {
    color: var(--erp-muted);
    display: flex;
    flex-wrap: wrap;
    font-size: 12px;
    gap: 10px;
}

.service-prepaid-check {
    align-items: center;
    color: #0f172a;
    display: inline-flex;
    font-size: 13px;
    font-weight: 600;
    gap: 6px;
}

.manual-price-cell {
    align-items: center;
    display: flex;
    gap: 6px;
    min-width: 126px;
}

.manual-price-cell input {
    color: #0f172a;
    min-width: 82px;
    text-align: right;
    width: 82px;
}

.manual-price-cell .btn {
    min-width: 34px;
}

.manual-service-row {
    display: grid;
    gap: 8px;
    grid-template-columns: minmax(180px, 1fr) 120px auto;
}

.address-small-grid {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.address-small-grid label {
    display: grid;
    gap: 4px;
}

.address-preview {
    align-items: center;
    background: #f8fbff;
    border: 1px solid var(--erp-line);
    border-radius: 6px;
    display: flex;
    gap: 8px;
    justify-content: space-between;
    padding: 8px;
}

.address-preview span {
    color: #475569;
    font-size: 13px;
    overflow-wrap: anywhere;
}

.repair-waze-link {
    background: transparent;
    border: 0;
    color: var(--erp-accent);
    cursor: pointer;
    display: inline-block;
    font-size: 12px;
    font-weight: 800;
    margin-left: 8px;
    padding: 0;
    text-decoration: underline;
}

.site-preview {
    color: #102033;
    margin: 0 auto;
    max-width: 1380px;
    padding: 22px clamp(16px, 4vw, 56px) 54px;
}

.preview-switcher {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-end;
    margin-bottom: 16px;
}

.preview-switcher span {
    color: #64748b;
    font-size: 13px;
    font-weight: 700;
}

.preview-switcher a {
    border: 1px solid #cbd5e1;
    border-radius: 999px;
    color: #0f2f6f;
    font-weight: 800;
    padding: 8px 13px;
    text-decoration: none;
}

.preview-switcher a.active,
.preview-switcher a:hover {
    background: #0b5ed7;
    border-color: #0b5ed7;
    color: #fff;
}

.modern-hero,
.conversion-hero {
    border: 1px solid #cfe0f3;
    overflow: hidden;
}

.modern-hero {
    align-items: center;
    background: #f7fbff;
    display: grid;
    gap: clamp(22px, 4vw, 52px);
    grid-template-columns: minmax(0, 0.94fr) minmax(360px, 1.06fr);
    min-height: 620px;
    padding: clamp(34px, 6vw, 78px);
}

.modern-hero-portal {
    background:
        linear-gradient(120deg, rgba(255, 255, 255, 0.96), rgba(230, 242, 255, 0.9)),
        linear-gradient(135deg, #ffffff 0%, #eaf5ff 100%);
}

.modern-eyebrow {
    color: #0b5ed7;
    display: block;
    font-size: 15px;
    font-weight: 900;
    letter-spacing: 0.08em;
    margin-bottom: 14px;
    text-transform: uppercase;
}

.modern-hero h1,
.conversion-hero h1 {
    color: #06245f;
    font-size: clamp(42px, 5.6vw, 82px);
    letter-spacing: 0;
    line-height: 0.98;
    margin: 0 0 22px;
}

.modern-hero p,
.conversion-hero p {
    color: #334155;
    font-size: clamp(18px, 2vw, 24px);
    line-height: 1.45;
    margin: 0;
    max-width: 680px;
}

.modern-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 30px;
}

.modern-primary,
.modern-secondary,
.conversion-form-preview button {
    border-radius: 6px;
    display: inline-flex;
    font-weight: 900;
    justify-content: center;
    padding: 13px 18px;
    text-decoration: none;
}

.modern-primary,
.conversion-form-preview button {
    background: #0b5ed7;
    border: 1px solid #0b5ed7;
    color: #fff;
}

.modern-secondary {
    background: #fff;
    border: 1px solid #9ab5d6;
    color: #0b5ed7;
}

.modern-hero-media {
    position: relative;
}

.modern-hero-media img,
.conversion-content-band img {
    border-radius: 8px;
    box-shadow: 0 28px 60px rgba(15, 44, 89, 0.16);
    display: block;
    width: 100%;
}

.modern-status-card {
    background: #fff;
    border: 1px solid #dbe7f5;
    border-radius: 8px;
    bottom: -22px;
    box-shadow: 0 18px 44px rgba(15, 44, 89, 0.18);
    display: grid;
    gap: 4px;
    left: 26px;
    max-width: 270px;
    padding: 16px 18px;
    position: absolute;
}

.modern-status-card strong,
.modern-trust-strip strong {
    color: #06245f;
}

.modern-status-card span,
.modern-trust-strip span {
    color: #52647a;
}

.modern-trust-strip,
.modern-process-grid,
.conversion-service-row {
    display: grid;
    gap: 16px;
    margin-top: 24px;
}

.modern-trust-strip {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.modern-trust-strip article,
.modern-process-grid article,
.conversion-service-row article,
.conversion-form-preview {
    background: #fff;
    border: 1px solid #dbe7f5;
    border-radius: 8px;
}

.modern-trust-strip article {
    display: grid;
    gap: 4px;
    padding: 20px;
}

.modern-trust-strip strong {
    font-size: 26px;
}

.modern-section-heading {
    margin: 56px 0 20px;
    max-width: 780px;
}

.modern-section-heading span,
.modern-split-band span,
.conversion-content-band span {
    color: #0b5ed7;
    display: block;
    font-weight: 900;
    margin-bottom: 8px;
}

.modern-section-heading h2,
.modern-split-band h2,
.conversion-content-band h2 {
    color: #06245f;
    font-size: clamp(30px, 4vw, 52px);
    line-height: 1.08;
    margin: 0;
}

.modern-process-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.modern-process-grid article,
.conversion-service-row article {
    padding: 24px;
}

.modern-process-grid article span {
    color: #0b5ed7;
    font-size: 13px;
    font-weight: 900;
}

.modern-process-grid h3,
.conversion-service-row h2 {
    color: #06245f;
    font-size: 24px;
    margin: 12px 0 8px;
}

.modern-process-grid p,
.conversion-service-row p,
.modern-split-band p,
.conversion-content-band p,
.conversion-content-band li {
    color: #475569;
    line-height: 1.55;
}

.modern-split-band {
    align-items: center;
    background: #06245f;
    border-radius: 8px;
    display: grid;
    gap: 24px;
    grid-template-columns: minmax(0, 1fr) auto;
    margin-top: 28px;
    padding: clamp(28px, 4vw, 46px);
}

.modern-split-band h2,
.modern-split-band p {
    color: #fff;
}

.modern-split-band span {
    color: #9bd3ff;
}

.conversion-hero {
    align-items: center;
    background:
        linear-gradient(135deg, rgba(6, 36, 95, 0.94), rgba(11, 94, 215, 0.86)),
        #0b5ed7;
    display: grid;
    gap: clamp(22px, 5vw, 58px);
    grid-template-columns: minmax(0, 1fr) minmax(340px, 460px);
    min-height: 620px;
    padding: clamp(30px, 6vw, 78px);
}

.conversion-hero h1,
.conversion-hero p {
    color: #fff;
}

.conversion-hero .modern-eyebrow {
    color: #bfe4ff;
}

.conversion-form-preview {
    box-shadow: 0 24px 60px rgba(2, 15, 41, 0.28);
    display: grid;
    gap: 12px;
    padding: 22px;
}

.conversion-form-preview h2 {
    color: #06245f;
    margin: 0 0 4px;
}

.conversion-form-preview label {
    color: #334155;
    display: grid;
    font-weight: 800;
    gap: 6px;
}

.conversion-form-preview input,
.conversion-form-preview textarea {
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    color: #0f172a;
    font: inherit;
    padding: 11px 12px;
}

.conversion-form-preview textarea {
    min-height: 86px;
    resize: none;
}

.conversion-service-row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.conversion-content-band {
    align-items: center;
    background: #fff;
    border: 1px solid #dbe7f5;
    border-radius: 8px;
    display: grid;
    gap: clamp(22px, 4vw, 46px);
    grid-template-columns: minmax(280px, 0.9fr) minmax(0, 1.1fr);
    margin-top: 24px;
    padding: clamp(22px, 4vw, 42px);
}

.conversion-content-band ul {
    margin: 18px 0 0;
    padding-left: 20px;
}

@media (max-width: 980px) {
    .modern-hero,
    .conversion-hero,
    .conversion-content-band,
    .modern-split-band {
        grid-template-columns: 1fr;
    }

    .modern-trust-strip,
    .modern-process-grid,
    .conversion-service-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .site-preview {
        padding-left: 12px;
        padding-right: 12px;
    }

    .modern-hero,
    .conversion-hero {
        min-height: auto;
        padding: 26px 18px;
    }

    .modern-trust-strip,
    .modern-process-grid,
    .conversion-service-row {
        grid-template-columns: 1fr;
    }

    .modern-status-card {
        bottom: auto;
        left: auto;
        margin-top: 12px;
        max-width: none;
        position: static;
    }
}

@media (max-width: 700px) {
    .manual-service-row,
    .address-small-grid {
        grid-template-columns: 1fr;
    }
}

.modal-backdrop-light {
    align-items: center;
    background: rgba(15, 23, 42, 0.35);
    display: flex;
    inset: 0;
    justify-content: center;
    padding: 18px;
    position: fixed;
    z-index: 1000;
}

.description-preview-modal {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 20px 60px rgba(15, 23, 42, 0.25);
    max-width: 620px;
    padding: 16px;
    width: min(620px, 100%);
}

.description-preview-modal header {
    align-items: center;
    border-bottom: 1px solid var(--erp-line);
    display: flex;
    gap: 12px;
    justify-content: space-between;
    margin-bottom: 12px;
    padding-bottom: 10px;
}

.description-preview-modal header span,
.description-preview-modal header strong,
.description-preview-modal small {
    display: block;
}

.description-preview-modal header span,
.description-preview-modal small {
    color: var(--erp-muted);
    font-size: 12px;
}

.description-preview-modal p {
    margin: 0 0 12px;
    white-space: pre-wrap;
}

.part-request-edit-modal {
    max-height: min(88vh, 820px);
    max-width: 900px;
    overflow: auto;
    width: min(900px, 100%);
}

.part-request-edit-modal .warehouse-form-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.part-request-edit-modal .form-actions {
    border-top: 1px solid var(--erp-line);
    margin-top: 14px;
    padding-top: 14px;
}

@media (max-width: 760px) {
    .part-request-edit-modal .warehouse-form-grid {
        grid-template-columns: 1fr;
    }
}

.lookup-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.lookup-column {
    min-height: 360px;
    padding: 16px;
}

.plain-list {
    list-style: none;
    margin: 14px 0 0;
    padding: 0;
}

.plain-list li {
    border-bottom: 1px solid var(--erp-line);
    padding: 9px 2px;
}

.empty-state,
.loading-row {
    color: var(--erp-muted);
    padding: 16px 0;
}

.btn-primary {
    background-color: var(--erp-accent);
    border-color: var(--erp-accent-dark);
}

#blazor-error-ui {
    background: #fff3cd;
    border-top: 1px solid #ffe69c;
    bottom: 0;
    box-shadow: 0 -1px 4px rgba(0, 0, 0, 0.15);
    display: none;
    left: 0;
    padding: 0.7rem 1.25rem;
    position: fixed;
    right: 0;
    z-index: 1000;
}

#blazor-error-ui .dismiss {
    cursor: pointer;
    position: absolute;
    right: 1rem;
}

@media (max-width: 900px) {
    .page {
        grid-template-columns: 1fr;
    }

    .sidebar {
        position: relative;
    }

    .stats-grid,
    .repair-form-grid,
    .warehouse-shell,
    .warehouse-form-grid,
    .accounting-document-grid,
    .accounting-line-grid,
    .customers-company-layout,
    .customers-company-form,
    .management-layout,
    .settings-layout,
    .settings-form-grid,
    .schedule-action-grid,
    .repairs-layout,
    .lookup-grid {
        grid-template-columns: 1fr;
    }

    .accounting-document-grid {
        display: grid;
        gap: 12px;
    }

    .accounting-document-grid label,
    .field-document-type,
    .field-number,
    .field-date,
    .field-due,
    .field-status,
    .field-payment,
    .field-partner,
    .field-uic,
    .field-vat,
    .field-mol,
    .field-currency,
    .field-related,
    .field-address,
    .field-notes {
        grid-column: 1 / -1;
        width: 100%;
    }

    .accounting-document-grid .form-control,
    .accounting-line-grid .form-control {
        min-width: 0;
        width: 100%;
    }

    .accounting-uic-row {
        grid-template-columns: 1fr;
    }

    .accounting-uic-row .btn {
        min-width: 0;
        width: 100%;
    }

    .settings-company-logo {
        grid-template-columns: 1fr;
    }

    .toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .search-input {
        max-width: none;
    }

    .repair-filter-select,
    .repair-status-filter,
    .repair-status-filter-button {
        max-width: none;
        width: 100%;
    }

    .repair-status-filter-menu {
        position: static;
        width: 100%;
    }

    .attachment-upload-actions,
    .attachment-file-picker,
    .camera-capture-button {
        width: 100%;
    }

    .camera-capture-button {
        display: flex;
    }
}

.login-page {
    background: #eaf3ff;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 390px;
    min-height: 100vh;
}

.login-hero {
    align-items: stretch;
    display: flex;
    min-width: 0;
    overflow: hidden;
}

.login-hero img {
    height: 100vh;
    object-fit: cover;
    object-position: center;
    width: 100%;
}

.login-panel {
    align-items: center;
    background: #f7fbff;
    border-left: 1px solid #d5e5f7;
    display: flex;
    justify-content: center;
    padding: 28px;
}

.login-card {
    background: #fff;
    border: 1px solid #d6e3f3;
    border-radius: 8px;
    box-shadow: 0 18px 40px rgba(15, 42, 83, 0.14);
    padding: 26px;
    width: 100%;
}

.login-heading {
    margin-bottom: 22px;
}

.login-heading span {
    color: var(--erp-accent);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.login-heading h1 {
    font-size: 26px;
    margin: 5px 0 0;
}

.login-card label {
    color: #334155;
    display: block;
    font-weight: 600;
    margin: 14px 0 6px;
}

.login-button {
    margin-top: 18px;
    width: 100%;
}

.login-error {
    background: #fff1f2;
    border: 1px solid #fecdd3;
    border-radius: 6px;
    color: #9f1239;
    margin-top: 14px;
    padding: 10px 12px;
}

@media (max-width: 980px) {
    .login-page {
        grid-template-columns: 1fr;
    }

    .login-hero img {
        height: 46vh;
    }

    .login-panel {
        border-left: 0;
        border-top: 1px solid #d5e5f7;
    }
}

@media print {
    @page {
        margin: 10mm;
        size: A4;
    }

    html,
    body {
        background: #fff;
    }

    .print-toolbar,
    #blazor-error-ui {
        display: none !important;
    }

    .repair-card-page {
        background: #fff;
        min-height: auto;
        padding: 0;
    }

    .repair-card-sheet,
    .repair-protocol-sheet,
    .replacement-protocol-sheet,
    .daily-schedule-sheet,
    .invoice-sheet,
    .compact-invoice-sheet {
        border: 0;
        box-shadow: none;
        margin: 0;
        max-width: none;
        min-height: auto;
        padding: 0;
    }

    .invoice-print-page {
        background: #fff;
        min-height: auto;
        padding: 0;
    }

    .daily-schedule-print-page {
        background: #fff;
        min-height: auto;
        padding: 0;
    }
}

.part-request-mode-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}

.repair-part-request-panel {
    display: grid;
    gap: 8px;
}

.communicator-shell {
    display: grid;
    grid-template-columns: minmax(260px, 340px) 1fr;
    gap: 16px;
    align-items: start;
}

.communicator-list-panel,
.communicator-main-panel {
    background: #fff;
    border: 1px solid #d6e1ee;
    border-radius: 8px;
    padding: 14px;
}

.communicator-panel-title,
.communicator-chat header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border-bottom: 1px solid #d6e1ee;
    padding-bottom: 10px;
    margin-bottom: 10px;
}

.communicator-inbox-button,
.communicator-conversation {
    width: 100%;
    display: grid;
    gap: 3px;
    text-align: left;
    border: 1px solid #d6e1ee;
    background: #fff;
    border-radius: 8px;
    padding: 10px;
    margin-bottom: 8px;
    color: #172033;
}

.communicator-inbox-button.active,
.communicator-conversation.active {
    border-color: #2563eb;
    background: #eff6ff;
}

.communicator-conversation small {
    color: #5b6b80;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.communicator-conversation span,
.communicator-message span {
    color: #6b7a90;
    font-size: 0.82rem;
}

.communicator-conversation b,
.communicator-inbox-button span {
    justify-self: end;
    background: #ef4444;
    color: #fff;
    border-radius: 999px;
    min-width: 22px;
    text-align: center;
    padding: 1px 7px;
}

.communicator-messages {
    display: grid;
    gap: 10px;
    max-height: 55vh;
    overflow: auto;
    padding: 8px 2px;
}

.communicator-message {
    justify-self: start;
    max-width: min(680px, 86%);
    border: 1px solid #d6e1ee;
    border-radius: 8px;
    padding: 10px 12px;
    background: #f8fafc;
}

.communicator-message.mine {
    justify-self: end;
    background: #eaf2ff;
    border-color: #9fc2ff;
}

.communicator-message.system {
    justify-self: center;
    background: #fff7ed;
    border-color: #fed7aa;
}

.communicator-message p {
    margin: 4px 0;
    white-space: pre-wrap;
}

.communicator-email-reply {
    display: grid;
    gap: 8px;
    border: 1px solid #b7d4ff;
    background: #f3f8ff;
    border-radius: 8px;
    padding: 12px;
    margin-top: 12px;
}

.communicator-email-reply span {
    color: #52647a;
    font-size: 0.9rem;
}

.communicator-email-reply .btn {
    justify-self: end;
}

.communicator-compose {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
    border-top: 1px solid #d6e1ee;
    padding-top: 12px;
    margin-top: 12px;
}

.communicator-user-picker {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 8px;
    margin: 12px 0;
}

.communicator-user-picker strong {
    grid-column: 1 / -1;
}

.communicator-unread-row td {
    font-weight: 700;
}

.inline-action-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.inline-action-item {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.table-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.repair-toast {
    position: fixed;
    top: 82px;
    right: 24px;
    z-index: 1200;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    width: min(420px, calc(100vw - 32px));
    padding: 14px 16px;
    border-radius: 8px;
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.18);
    font-weight: 600;
    line-height: 1.35;
}

.repair-toast-warning {
    color: #7a4d00;
    background: #fff4ce;
    border: 1px solid #ffd979;
}

.repair-toast button {
    margin-left: auto;
    border: 0;
    background: transparent;
    color: inherit;
    font-size: 1.3rem;
    line-height: 1;
    cursor: pointer;
}

@media (max-width: 900px) {
    .communicator-shell {
        grid-template-columns: 1fr;
    }

    .communicator-compose {
        grid-template-columns: 1fr;
    }
}

.help-shell {
    display: grid;
    grid-template-columns: minmax(260px, 340px) 1fr;
    gap: 16px;
    align-items: start;
}

.help-sidebar,
.help-main,
.help-editor,
.help-topic-view,
.help-empty {
    border: 1px solid #d6e1ee;
    border-radius: 8px;
    background: #fff;
    padding: 16px;
}

.help-sidebar h2,
.help-panel-title h2 {
    margin: 0;
}

.help-topic-list {
    display: grid;
    gap: 8px;
    margin-top: 12px;
}

.help-topic-button {
    display: grid;
    gap: 4px;
    width: 100%;
    border: 1px solid #d6e1ee;
    border-radius: 8px;
    background: #fff;
    color: #102033;
    padding: 12px;
    text-align: left;
    cursor: pointer;
    overflow-wrap: anywhere;
}

.help-topic-button.active {
    border-color: #2563eb;
    background: #eaf2ff;
}

.help-topic-button span,
.help-topic-button small,
.help-panel-title p,
.help-attachment-link small {
    color: #60758f;
}

.help-panel-title {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: start;
    border-bottom: 1px solid #d6e1ee;
    padding-bottom: 12px;
    margin-bottom: 14px;
}

.help-topic-image,
.help-image-preview {
    display: block;
    max-width: 100%;
    max-height: 340px;
    object-fit: contain;
    border: 1px solid #d6e1ee;
    border-radius: 8px;
    background: #f8fbff;
    margin-bottom: 14px;
}

.help-topic-body {
    line-height: 1.55;
    color: #102033;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.rich-text-content {
    overflow-wrap: anywhere;
    word-break: break-word;
}

.rich-text-content p,
.rich-text-editor p,
.help-topic-body p,
.help-rich-editor p {
    margin: 0 0 12px;
}

.rich-text-content ul,
.rich-text-content ol,
.rich-text-editor ul,
.rich-text-editor ol,
.help-topic-body ul,
.help-topic-body ol,
.help-rich-editor ul,
.help-rich-editor ol {
    margin: 0 0 12px 24px;
}

.rich-text-content img,
.rich-text-editor img,
.help-topic-body img,
.help-rich-editor img {
    display: block;
    max-width: 100%;
    height: auto;
    border: 1px solid #d6e1ee;
    border-radius: 8px;
    background: #f8fbff;
    margin: 10px 0;
}

.help-inline-figure {
    margin: 14px 0;
}

.rich-text-inline-figure {
    margin: 14px 0;
}

.rich-text-editor-shell,
.help-rich-editor-shell {
    display: grid;
    gap: 8px;
}

.rich-text-editor-toolbar,
.help-editor-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
    border: 1px solid #d6e1ee;
    border-radius: 8px 8px 0 0;
    background: #f8fbff;
    padding: 8px;
}

.rich-text-editor-toolbar .btn,
.help-editor-toolbar .btn {
    min-width: 38px;
    padding: 6px 10px;
}

.rich-text-editor-size,
.help-editor-size {
    width: 96px;
    min-height: 38px;
    padding: 6px 10px;
}

.rich-text-color-picker,
.help-color-picker {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 38px;
    border: 1px solid #d6e1ee;
    border-radius: 8px;
    background: #fff;
    color: #102033;
    padding: 4px 8px;
    font-weight: 700;
}

.rich-text-color-picker input,
.help-color-picker input {
    width: 34px;
    height: 28px;
    border: 0;
    padding: 0;
    background: transparent;
    cursor: pointer;
}

.rich-text-inline-upload,
.help-inline-upload {
    position: relative;
    overflow: hidden;
}

.rich-text-inline-upload input,
.help-inline-upload input {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

.rich-text-editor,
.help-rich-editor {
    min-height: 300px;
    border: 1px solid #d6e1ee;
    border-top: 0;
    border-radius: 0 0 8px 8px;
    background: #fff;
    color: #102033;
    line-height: 1.55;
    padding: 14px;
    outline: none;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.rich-text-editor:focus,
.help-rich-editor:focus {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.16);
}

.help-content-editor {
    min-height: 260px;
}

.help-user-access,
.help-files-editor,
.help-attachments {
    border-top: 1px solid #d6e1ee;
    margin-top: 14px;
    padding-top: 14px;
}

.help-user-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 8px;
}

.help-user-grid label,
.help-file-row,
.help-attachment-link {
    display: flex;
    align-items: center;
    gap: 8px;
}

.help-files-editor {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 16px;
}

.help-file-list {
    display: grid;
    gap: 8px;
    margin-top: 10px;
}

.help-file-row,
.help-attachment-link {
    justify-content: space-between;
    border: 1px solid #d6e1ee;
    border-radius: 8px;
    padding: 10px;
    background: #f8fbff;
}

.help-attachments {
    display: grid;
    gap: 8px;
}

@media (max-width: 900px) {
    .help-shell {
        grid-template-columns: 1fr;
    }

    .help-panel-title {
        flex-direction: column;
    }
}

.public-consent {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    margin: 1rem 0 0;
    color: inherit;
    font-size: 0.92em;
    line-height: 1.45;
}

.public-consent input {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    margin-top: 0.15rem;
}

.public-consent a {
    color: var(--public-primary);
    font-weight: 700;
}

.public-legal-panel {
    max-width: var(--public-max-width);
    margin: 0 auto;
    padding: clamp(28px, 4vw, 64px);
    border-radius: var(--public-panel-radius);
    background: var(--public-card-bg);
    box-shadow: 0 20px 70px rgba(8, 36, 92, 0.08);
}

.public-legal-content {
    color: var(--public-text);
    line-height: 1.65;
}

.public-footer-links {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.public-footer a {
    color: inherit;
}

.public-announcement-backdrop {
    position: fixed;
    inset: 0;
    z-index: 4000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.public-announcement-modal {
    position: relative;
    width: min(620px, 100%);
    max-height: min(82vh, 720px);
    overflow: auto;
    padding: 28px;
    border-radius: var(--public-panel-radius, 14px);
    box-shadow: 0 28px 80px rgba(0, 0, 0, 0.28);
}

.public-announcement-close {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 36px;
    height: 36px;
    border: 1px solid rgba(31, 56, 86, 0.18);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.82);
    color: inherit;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
}

.public-announcement-content {
    padding-right: 28px;
}

.public-announcement-content :first-child {
    margin-top: 0;
}

.public-announcement-content :last-child {
    margin-bottom: 0;
}

.public-announcement-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 20px;
}

.public-announcement-button {
    border: 0;
    border-radius: var(--public-button-radius, 14px);
    padding: 10px 22px;
    font-weight: 700;
    cursor: pointer;
}

.public-cookie-backdrop {
    position: fixed;
    inset: 0;
    z-index: 3900;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(8, 36, 92, 0.38);
}

.public-cookie-modal {
    width: min(980px, 100%);
    max-height: min(86vh, 760px);
    display: grid;
    grid-template-rows: auto 1fr auto;
    border-radius: var(--public-panel-radius, 14px);
    box-shadow: 0 28px 90px rgba(0, 0, 0, 0.28);
    overflow: hidden;
}

.public-cookie-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 22px 26px;
    border-bottom: 1px solid rgba(31, 56, 86, 0.14);
}

.public-cookie-header h2 {
    margin: 0;
    font-size: clamp(22px, 2.4vw, 30px);
    color: inherit;
}

.public-cookie-header button {
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 999px;
    background: rgba(31, 56, 86, 0.08);
    color: inherit;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
}

.public-cookie-body {
    display: grid;
    grid-template-columns: 300px 1fr;
    min-height: 420px;
    overflow: hidden;
}

.public-cookie-tabs {
    display: flex;
    flex-direction: column;
    background: rgba(31, 56, 86, 0.06);
    border-right: 1px solid rgba(31, 56, 86, 0.12);
}

.public-cookie-tabs button {
    border: 0;
    border-bottom: 1px solid rgba(31, 56, 86, 0.08);
    background: transparent;
    color: inherit;
    padding: 18px 20px;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.public-cookie-tabs button.active {
    background: rgba(10, 88, 202, 0.12);
    color: var(--public-primary);
    box-shadow: inset 4px 0 0 var(--public-primary);
}

.public-cookie-panel {
    padding: 24px 30px;
    overflow: auto;
}

.public-cookie-panel-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
}

.public-cookie-panel-title h3 {
    margin: 0;
    font-size: clamp(22px, 2vw, 28px);
    color: inherit;
}

.public-cookie-required {
    font-weight: 700;
    opacity: 0.72;
}

.public-cookie-switch {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 700;
}

.public-cookie-switch input {
    width: 22px;
    height: 22px;
    accent-color: var(--public-primary);
}

.public-cookie-text {
    line-height: 1.55;
}

.public-cookie-text :first-child {
    margin-top: 0;
}

.public-cookie-text :last-child {
    margin-bottom: 0;
}

.public-cookie-list {
    display: grid;
    gap: 8px;
    margin-top: 18px;
}

.public-cookie-list strong {
    font-size: 1.12em;
}

.public-cookie-list span {
    border-top: 1px solid rgba(31, 56, 86, 0.18);
    padding-top: 8px;
    opacity: 0.82;
}

.public-cookie-actions {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    padding: 18px 26px;
    border-top: 1px solid rgba(31, 56, 86, 0.14);
}

.public-cookie-actions button {
    border: 0;
    border-radius: var(--public-button-radius, 14px);
    padding: 12px 22px;
    font-weight: 700;
    cursor: pointer;
}

.public-cookie-save {
    border: 1px solid rgba(31, 56, 86, 0.28) !important;
    background: transparent !important;
    color: inherit !important;
}

@media (max-width: 640px) {
    .public-announcement-backdrop {
        align-items: flex-start;
        padding: 18px;
    }

    .public-announcement-modal {
        max-height: calc(100vh - 36px);
        padding: 22px;
    }
}

@media (max-width: 760px) {
    .public-cookie-backdrop {
        align-items: flex-end;
        padding: 12px;
    }

    .public-cookie-modal {
        max-height: 92vh;
    }

    .public-cookie-body {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .public-cookie-tabs {
        display: grid;
        grid-template-columns: 1fr 1fr;
        border-right: 0;
    }

    .public-cookie-tabs button {
        padding: 12px;
    }

    .public-cookie-panel {
        padding: 18px;
    }

    .public-cookie-panel-title {
        align-items: flex-start;
        flex-direction: column;
    }

    .public-cookie-actions {
        flex-direction: column;
    }

    .public-cookie-actions button {
        width: 100%;
    }
}
