/* --- РћСЃРЅРѕРІРЅР° С†РІРµС‚РѕРІР° СЃС…РµРјР° --- */
:root {
    --primary-color: #006599; /* С‚СЉРјРЅРѕ СЃРёРЅСЊРѕ Р·Р° РѕСЃРЅРѕРІРЅРё РµР»РµРјРµРЅС‚Рё */
    --secondary-color: #299dd7; /* СЃРІРµС‚СЉР» С„РѕРЅ */
    --accent-color: #fd4343; /* РїРѕ РїРѕРґСЂР°Р·Р±РёСЂР°РЅРµ Р°РєС†РµРЅС‚, РїРѕСЃР»Рµ С‰Рµ СЃРµ РїСЂРѕРјРµРЅСЏ Р·Р° РіСЂСѓРїРё */
    --text-color: #2C3E50;
    --font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}

/* --- РћР±С‰Рё СЃС‚РёР»РѕРІРµ Р·Р° body Рё РєРѕРЅС‚РµР№РЅРµСЂ --- */
body {
    font-family: var(--font-family);
    background-color: var(--secondary-color);
    color: var(--text-color);
    margin: 0;
    padding: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.app-footer {
    position: fixed;
    right: 10px;
    bottom: 8px;
    z-index: 900;
    color: rgba(44, 62, 80, 0.58);
    font-size: 12px;
    line-height: 1;
    pointer-events: none;
    user-select: none;
}

.app-footer p {
    margin: 0;
}

.page-scroll-actions {
    position: absolute;
    right: 0;
    bottom: 24px;
    display: grid;
    gap: 6px;
    pointer-events: none;
}

.page-scroll-button {
    display: inline-flex;
    width: 36px;
    height: 36px;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 1px solid rgba(44, 62, 80, 0.2);
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.88);
    box-shadow: 0 3px 12px rgba(15, 23, 42, 0.16);
    color: #1f3f5b;
    opacity: 0;
    pointer-events: none;
    transform: translateY(8px);
    transition: opacity 0.2s ease, transform 0.2s ease, background-color 0.2s ease;
}

.page-scroll-button.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

.page-scroll-button:hover,
.page-scroll-button:focus-visible {
    background: #fff;
    color: var(--primary-color);
}

.page-scroll-button:focus-visible {
    outline: 2px solid var(--accent-color);
    outline-offset: 2px;
}

.page-scroll-button svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (prefers-reduced-motion: reduce) {
    .page-scroll-button {
        transition: none;
    }
}

h1,h2,h3{
    margin:0; padding:0;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
}

/* --- РћСЃРЅРѕРІРЅРё РєРѕРјРїРѕРЅРµРЅС‚Рё --- */
button {
    background-color: var(--primary-color);
    color: white;
    border: none;
    padding: 10px 18px;
    border-radius: 6px;
    cursor: pointer;
    transition: background-color 0.3s;
}

button:hover {
    background-color: var(--accent-color);
}

/* -------------------------
 РўР°Р±Р»РёС†Рё 
 ------------------------- */
table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 20px;
}

th, td {
    padding: 12px 15px;
    text-align: left;
    border-bottom: 1px solid #ddd;
}

th {
    background-color: var(--primary-color);
    color: white;
}

.profile-form-actions {
    text-align: center;
}

.profile-placeholder {
    padding: 14px 10px;
    color: #475569;
}

.profile-menu-editor {
    display: grid;
    grid-template-columns: minmax(320px, 0.95fr) minmax(360px, 1.15fr);
    gap: 12px;
    height: calc(100vh - 180px);
    min-height: 460px;
    padding: 8px 10px 16px;
    box-sizing: border-box;
}

.profile-menu-panel {
    display: flex;
    min-height: 0;
    flex-direction: column;
    background: rgba(255, 255, 255, 0.36);
    border: 1px solid rgba(44, 62, 80, 0.22);
    border-radius: 6px;
    overflow: hidden;
}

.profile-menu-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 38px;
    padding: 8px 10px;
    box-sizing: border-box;
    color: #1f3f5b;
    background: rgba(255, 255, 255, 0.42);
    border-bottom: 1px solid rgba(44, 62, 80, 0.16);
    font-weight: 700;
}

.profile-menu-search {
    width: calc(100% - 20px);
    margin: 10px;
    padding: 8px 10px;
    box-sizing: border-box;
    border: 1px solid rgba(44, 62, 80, 0.25);
    border-radius: 6px;
}

.profile-menu-picker-list,
.profile-shortcuts-list {
    min-height: 0;
    overflow: auto;
}

.profile-menu-picker-list {
    flex: 1;
    padding: 0 10px 10px;
}

.profile-menu-group {
    margin-bottom: 8px;
}

.profile-menu-group-title {
    position: sticky;
    top: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 7px;
    min-height: 30px;
    padding: 5px 0;
    color: #24445f;
    background: var(--secondary-color);
    font-size: 14px;
    font-weight: 800;
}

.profile-menu-picker-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 34px;
    align-items: center;
    gap: 6px;
    min-height: 30px;
    padding: 2px 0 2px 12px;
    border-bottom: 1px solid rgba(44, 62, 80, 0.1);
}

.profile-menu-picker-text {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: 7px;
}

.profile-menu-picker-text span:last-child {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.profile-menu-add {
    width: 30px;
    height: 24px;
    padding: 0;
    border-radius: 6px;
    font-size: 15px;
    line-height: 1;
}

.profile-menu-add:disabled {
    color: #64748b;
    background: rgba(255, 255, 255, 0.4);
    cursor: default;
    font-size: 10px;
}

.profile-menu-icon {
    display: inline-flex;
    flex: 0 0 22px;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    color: #0f172a;
}

.profile-menu-icon svg,
.profile-menu-icon img {
    max-width: 20px;
    max-height: 20px;
}

.profile-shortcuts-list {
    display: grid;
    flex: 1;
    grid-template-columns: repeat(auto-fill, minmax(92px, 1fr));
    align-content: start;
    gap: 8px;
    padding: 8px 10px;
}

.profile-shortcut-card {
    position: relative;
    display: flex;
    min-width: 0;
    height: 100px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 8px 6px 6px;
    box-sizing: border-box;
    background: rgba(255, 255, 255, 0.55);
    border: 1px solid rgba(44, 62, 80, 0.24);
    border-radius: 6px;
    cursor: grab;
}

.profile-shortcut-card.dragging {
    opacity: 0.45;
}

.profile-shortcut-icon {
    display: flex;
    width: 26px;
    height: 26px;
    align-items: center;
    justify-content: center;
}

.profile-shortcut-icon .profile-menu-icon,
.profile-shortcut-icon svg,
.profile-shortcut-icon img {
    max-width: 24px;
    max-height: 24px;
}

.profile-shortcut-name {
    display: -webkit-box;
    overflow: hidden;
    max-width: 100%;
    min-height: 28px;
    color: #1f3f5b;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.15;
    text-align: center;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.profile-shortcut-icon-option {
    display: flex;
    align-items: center;
    gap: 3px;
    color: #475569;
    font-size: 10px;
    line-height: 1;
}

.profile-shortcut-icon-option input {
    width: 12px;
    height: 12px;
    margin: 0;
}

.profile-shortcut-remove {
    position: absolute;
    top: 3px;
    right: 3px;
    width: 20px;
    height: 20px;
    padding: 0;
    color: #b91c1c;
    background: transparent;
    border-radius: 999px;
    font-size: 16px;
    line-height: 1;
}

.profile-shortcut-remove:hover {
    color: #ffffff;
    background: #b91c1c;
}

.profile-shortcuts-empty {
    grid-column: 1 / -1;
    padding: 24px;
    color: #475569;
    text-align: center;
}

.profile-menu-count {
    min-width: 24px;
    padding: 3px 7px;
    color: #ffffff;
    background: var(--primary-color);
    border-radius: 999px;
    font-size: 12px;
    text-align: center;
}

.profile-menu-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    padding: 8px 10px;
    border-top: 1px solid rgba(44, 62, 80, 0.16);
}

.profile-menu-actions small {
    color: #475569;
}

@media (max-width: 900px) {
    .profile-menu-editor {
        grid-template-columns: 1fr;
        height: auto;
    }

    .profile-menu-panel {
        min-height: 360px;
    }
}



/* ============================================================
   РћР±С‰Рё СЃС‚РёР»РѕРІРµ Р·Р° С„РѕСЂРјСѓР»СЏСЂРё
   ============================================================ */
.form-group {
    margin-bottom: 15px;
}

.form-group label {
    display: block;
    margin-bottom: 5px;
    font-weight: 500;
}

.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    padding: 8px;
    border-radius: 6px;
    border: 1px solid #ccc;
    box-sizing: border-box;
}

.form-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

.form-actions input[type="submit"],
.form-actions input[type="button"],
.form-actions button {
    padding: 10px 14px;
    border-radius: 6px;
    border: none;
    cursor: pointer;
    background-color: var(--primary-color);
    color: white;
    font-weight: bold;
    transition: background-color 0.2s;
}

.form-actions input[type="submit"]:hover,
.form-actions input[type="button"]:hover,
.form-actions button:hover {
    background-color: var(--accent-color);
}

/* ============================================================
   РЎРїРµС†РёС„РёС‡РЅРѕ Р·Р° Р»РѕРіРёРЅ СЃС‚СЂР°РЅРёС†Р°С‚Р°
   ============================================================ */
.login-wrap {
    flex: 1; /* Р·Р° РґР° С†РµРЅС‚СЂРёСЂР° СЃСЉРґСЉСЂР¶Р°РЅРёРµС‚Рѕ РІРµСЂС‚РёРєР°Р»РЅРѕ */
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: var(--primary-color);
}

.login-card {
    background-color: #9cb3f8;
    padding: 40px;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.25);
    width: 100%;
    max-width: 400px;
    text-align: center;
}

.login-card h1 {
    margin-bottom: 25px;
    color: var(--primary-color);
}

.login-card .form-actions {
    justify-content: space-between;
}

.login-card .form-actions input[type="submit"] {
    background-color: #3b82f6; /* СЃРёРЅ Р°РєС†РµРЅС‚ */
}

.login-card .form-actions input[type="button"] {
    background-color: #10b981; /* Р·РµР»РµРЅ Р°РєС†РµРЅС‚ */
}
.login-logo {
    text-align: center;
    margin: 10px 0 20px;
}

.login-logo img {
    max-width: 320px;
    height: auto;
    border-radius: 16px;              /* Р·Р°РѕР±Р»РµРЅРё РєСЂР°РёС‰Р° */
    box-shadow: 0 6px 18px rgba(0,0,0,0.25); /* РїР°РґР°С‰Р° СЃСЏРЅРєР° */
    transition: transform 0.3s ease;  /* Р°РЅРёРјР°С†РёСЏ РїСЂРё hover */
}

.login-logo img:hover {
    transform: scale(1.03); /* Р»РµРєРѕ СѓРіРѕР»РµРјСЏРІР°РЅРµ РїСЂРё Р·Р°РґСЉСЂР¶Р°РЅРµ */
}
header h1 {
    text-align: center;
    font-size: 2rem;
    color: var(--primary-color);
    margin: 20px 0 10px;
    letter-spacing: 2px;
    font-weight: 700;
    text-transform: uppercase;
}

/* --- global modal dialog --- */
.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
}

.modal-box {
    position: relative;
    background: #fff;
    padding: 20px;
    border-radius: 8px;
    min-width: 300px;
    max-width: 90%;
    text-align: center;
    box-shadow: 0 4px 15px rgba(0,0,0,0.3);
}

.modal-close {
    position: absolute;
    top: 8px;
    right: 9px;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    color: #475569;
    background: transparent;
    cursor: pointer;
    font-size: 24px;
    line-height: 28px;
}

.modal-close:hover {
    color: #0f172a;
    background: #e2e8f0;
}

.modal-title {
    margin: 0 0 10px 0;
    font-size: 18px;
    font-weight: bold;
}

.modal-message {
    margin: 0 0 20px 0;
    font-size: 16px;
}

.owner-duplicate-entry {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.owner-duplicate-entry a {
    white-space: nowrap;
}

.modal-btn {
    margin: 5px;
    padding: 8px 16px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 14px;
}

.modal-ok {
    background-color: #4CAF50;
    color: white;
}

.modal-cancel {
    background-color: #f44336;
    color: white;
}
.modal-content {
    margin-bottom: 20px; 
    text-align: left;   
}

.modal-without-buttons .modal-content {
    margin-bottom: 0;
}

/* --- global toast notifications --- */
.toast-container {
    position: fixed;
    z-index: 10000;
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: min(380px, calc(100vw - 32px));
    pointer-events: none;
}

.toast-container-top-left {
    top: 18px;
    left: 18px;
}

.toast-container-top-center {
    top: 18px;
    left: 50%;
    transform: translateX(-50%);
}

.toast-container-top-right {
    top: 18px;
    right: 18px;
}

.toast-container-bottom-left {
    bottom: 18px;
    left: 18px;
}

.toast-container-bottom-center {
    bottom: 18px;
    left: 50%;
    transform: translateX(-50%);
}

.toast-container-bottom-right {
    right: 18px;
    bottom: 18px;
}

.toast {
    --toast-bg: #ffffff;
    --toast-color: #1f2937;
    --toast-accent: #299dd7;
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    gap: 10px;
    align-items: start;
    padding: 12px;
    color: var(--toast-color);
    background: var(--toast-bg);
    border-left: 4px solid var(--toast-accent);
    border-radius: 8px;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.22);
    opacity: 0;
    pointer-events: auto;
    transform: translateY(8px);
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.toast-visible {
    opacity: 1;
    transform: translateY(0);
}

.toast-closing {
    opacity: 0;
    transform: translateY(8px);
}

.toast-success {
    --toast-accent: #16a34a;
}

.toast-error {
    --toast-accent: #dc2626;
}

.toast-warning {
    --toast-accent: #d97706;
}

.toast-info {
    --toast-accent: #2563eb;
}

.toast-neutral {
    --toast-accent: #64748b;
}

.toast-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    color: var(--toast-accent);
}

.toast-icon svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.toast-content {
    min-width: 0;
}

.toast-title {
    margin-bottom: 3px;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.25;
}

.toast-message {
    font-size: 14px;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.toast-action {
    margin-top: 8px;
    padding: 6px 10px;
    color: #ffffff;
    background: var(--toast-accent);
    border-radius: 5px;
    font-size: 13px;
}

.toast-action:hover {
    background: var(--toast-accent);
    filter: brightness(0.92);
}

.toast-close {
    width: 24px;
    height: 24px;
    padding: 0;
    color: #64748b;
    background: transparent;
    border-radius: 50%;
    font-size: 16px;
    line-height: 1;
}

.toast-close:hover {
    color: #111827;
    background: #eef2f7;
}

@media (max-width: 520px) {
    .toast-container {
        right: 12px;
        left: 12px;
        width: auto;
    }

    .toast-container-top-center,
    .toast-container-bottom-center {
        transform: none;
    }
}

/* ============================================================
Loader styles
============================================================ */
.loader-overlay-screen,
.loader-overlay-element {
    position: absolute;
    top: 0; left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.45);
    backdrop-filter: blur(1px);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
}

.loader-overlay-screen {
    position: fixed;
}

.loader-content {
    text-align: center;
    color: #fff;
    font-size: 15px;
}

.loader-spinner {
    animation: spin 1s linear infinite;
    margin-bottom: 10px;
}

@keyframes spin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

body.fiscal-operation-is-locked {
    overflow: hidden;
}

.fiscal-operation-lock {
    position: fixed;
    inset: 0;
    z-index: 2147483647;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(15, 23, 42, 0.82);
    backdrop-filter: blur(3px);
    cursor: wait;
    touch-action: none;
}

.fiscal-operation-lock-content {
    display: flex;
    width: min(520px, 100%);
    box-sizing: border-box;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 30px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 14px;
    background: #111827;
    color: #fff;
    text-align: center;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.45);
}

.fiscal-operation-lock-content strong {
    font-size: 18px;
    line-height: 1.4;
}

.fiscal-operation-lock-content span {
    color: #d1d5db;
    line-height: 1.45;
}

.system-error-page {
    display: flex;
    min-height: calc(100vh - 120px);
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    padding: 32px 20px;
}

.system-error-card {
    width: min(680px, 100%);
    box-sizing: border-box;
    padding: 34px;
    border: 1px solid #fecaca;
    border-radius: 14px;
    background: #fff;
    text-align: center;
    box-shadow: 0 18px 55px rgba(127, 29, 29, 0.13);
}

.system-error-icon {
    display: inline-flex;
    width: 68px;
    height: 68px;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
    border-radius: 50%;
    background: #dc2626;
    color: #fff;
    font-size: 44px;
    font-weight: 800;
    line-height: 1;
}

.system-error-card h1 {
    margin: 0 0 14px;
    color: #991b1b;
}

.system-error-card p {
    margin: 10px 0;
    color: #374151;
    line-height: 1.55;
}

.system-error-reference {
    padding: 10px 14px;
    border-radius: 8px;
    background: #fef2f2;
    font-family: monospace;
}

.system-error-help {
    font-size: 13px;
}

.system-error-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin-top: 24px;
}

.system-error-action {
    display: inline-flex;
    min-height: 40px;
    box-sizing: border-box;
    align-items: center;
    justify-content: center;
    padding: 9px 16px;
    border: 1px solid #cbd5e1;
    border-radius: 7px;
    background: #fff;
    color: #334155;
    text-decoration: none;
    font-weight: 700;
}

.system-error-action:hover {
    background: #f8fafc;
}

.system-error-action.is-primary {
    border-color: var(--accent-color);
    background: var(--accent-color);
    color: #fff;
}

#app-main{
    top:56px;
    position: relative;
}

#app-main.is-hospital-activity-context {
    min-height: calc(100vh - 56px);
    box-sizing: border-box;
    background-color: #ccffe5;
}
.system-section {
    position: relative; /* С‚РѕРІР° РїРѕР·РІРѕР»СЏРІР° absolute loader РІСЉС‚СЂРµ */
    min-height: 200px;  /* РІРёР·СѓР°Р»РЅР° РІРёСЃРѕС‡РёРЅР° */
    margin-bottom: 20px;
    padding: 10px;
    
}

.system-section-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin: 12px 0;
}

.system-list-header {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 12px;
}

.system-list-meta {
    margin-top: 4px;
    color: #64748b;
    font-size: 13px;
    line-height: 1.35;
}

.system-search {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.system-search-check {
    display: inline-flex;
    gap: 6px;
    align-items: center;
    color: #334155;
    font-size: 14px;
    line-height: 1.2;
}

.system-search-check input {
    margin: 0;
}

.system-search input[type="search"] {
    width: min(420px, 70vw);
    min-height: 39px;
    padding: 8px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    box-sizing: border-box;
}

.log-filter-panel {
    position: sticky;
    top: 64px;
    z-index: 30;
    background: rgba(255, 255, 255, 0.48);
    border: 1px solid rgba(44, 62, 80, 0.18);
    border-radius: 6px;
    overflow: hidden;
}

.log-filter-header {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    justify-content: space-between;
    padding: 10px;
    background: rgba(255, 255, 255, 0.42);
    border-bottom: 1px solid rgba(44, 62, 80, 0.14);
}

.log-filter-title {
    color: #1f3f5b;
    font-size: 16px;
    font-weight: 800;
}

.log-filter-actions {
    display: flex;
    gap: 8px;
    align-items: center;
}

.log-filter-actions button {
    min-height: 30px;
    padding: 5px 10px;
}

.secondary-button {
    color: #1f3f5b;
    background: rgba(255, 255, 255, 0.58);
    border: 1px solid rgba(44, 62, 80, 0.2);
}

.secondary-button:hover {
    color: #ffffff;
}

/* Reusable compact list tables */
.compact-data-table {
    font-size: 12.5px;
    line-height: 1.25;
}

.compact-data-table th,
.compact-data-table td {
    padding: 5px 7px;
    vertical-align: middle;
}

.compact-data-table th {
    white-space: nowrap;
}

.compact-row-actions {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 4px;
    white-space: nowrap;
}

.compact-row-actions button {
    min-height: 26px;
    padding: 4px 7px;
    border-radius: 4px;
    font-size: 12px;
    line-height: 1.1;
    white-space: nowrap;
}

.log-filter-groups {
    display: grid;
    gap: 6px;
    padding: 8px 10px 10px;
}

.log-filter-row {
    display: grid;
    gap: 8px;
    align-items: start;
}

.log-filter-row-period {
    grid-template-columns: minmax(150px, 180px) minmax(150px, 180px) minmax(150px, 180px);
}

.log-filter-row-dimensions {
    grid-template-columns: minmax(150px, 1fr) minmax(280px, 1.8fr) minmax(125px, 0.8fr) minmax(110px, 0.7fr) minmax(120px, 0.7fr);
}

.log-filter-field {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 4px;
    color: #24445f;
    font-size: 11px;
    font-weight: 700;
}

.log-filter-field input,
.log-filter-field select {
    width: 100%;
    min-height: 32px;
    padding: 5px 7px;
    box-sizing: border-box;
    color: #1f2937;
    background: rgba(255, 255, 255, 0.78);
    border: 1px solid rgba(44, 62, 80, 0.24);
    border-radius: 6px;
    font: inherit;
    font-weight: 500;
}

.log-event-control {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 34px;
    gap: 6px;
}

.log-event-control .log-event-add {
    min-height: 32px;
    padding: 0;
    border-radius: 6px;
    font-size: 16px;
    line-height: 1;
}

.log-event-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    min-height: 25px;
}

.log-event-chip {
    max-width: 100%;
    min-height: 24px;
    padding: 3px 24px 3px 8px;
    color: #1f3f5b;
    background: rgba(255, 255, 255, 0.68);
    border: 1px solid rgba(44, 62, 80, 0.22);
    border-radius: 999px;
    font-size: 12px;
    line-height: 1;
    overflow: hidden;
    position: relative;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.log-event-chip::after {
    content: "x";
    position: absolute;
    right: 8px;
    color: #b91c1c;
    font-weight: 800;
}

.log-event-chip:hover {
    color: #ffffff;
}

.log-event-chip:hover::after {
    color: #ffffff;
}

.log-results-placeholder {
    padding: 14px 4px;
    color: #475569;
}

.log-results-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
    color: #1f3f5b;
    font-size: 13px;
    font-weight: 800;
}

.log-export-button {
    min-height: 30px;
    padding: 5px 10px;
}

.log-results-table {
    margin-top: 0;
    font-size: 13px;
}

.log-results-table th,
.log-results-table td {
    padding: 7px 8px;
    vertical-align: top;
}

.log-event-cell {
    white-space: pre-line;
}

.log-data-cell {
    max-width: 360px;
}

.log-data-cell summary {
    color: var(--primary-color);
    cursor: pointer;
    font-weight: 700;
}

.log-data-cell pre {
    overflow: auto;
    max-height: 220px;
    margin: 6px 0 0;
    padding: 8px;
    color: #dbeafe;
    background: #0f172a;
    border: 1px solid rgba(15, 23, 42, 0.35);
    border-radius: 6px;
    font-size: 12px;
    white-space: pre-wrap;
}

.log-json-key {
    color: #93c5fd;
}

.log-json-string {
    color: #86efac;
}

.log-json-number {
    color: #fbbf24;
}

.log-json-boolean {
    color: #f9a8d4;
}

.log-json-null {
    color: #cbd5e1;
}

.log-ip-link {
    color: var(--primary-color);
    font-weight: 700;
    text-decoration: none;
}

.log-ip-link:hover {
    color: var(--accent-color);
    text-decoration: underline;
}

@media (max-width: 1100px) {
    .log-filter-row-period,
    .log-filter-row-dimensions {
        grid-template-columns: repeat(2, minmax(170px, 1fr));
    }
}

@media (max-width: 620px) {
    .log-filter-row-period,
    .log-filter-row-dimensions {
        grid-template-columns: 1fr;
    }
}

.users-table td {
    vertical-align: top;
}

.user-list-name {
    font-weight: 700;
}

.status-pill {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
}

.status-pill-active {
    color: #166534;
    background: #dcfce7;
}

.status-pill-warning {
    color: #92400e;
    background: #fef3c7;
}

.status-pill-muted {
    color: #475569;
    background: #e2e8f0;
}

.empty-state {
    color: #64748b;
    text-align: center;
}

.user-preview {
    display: grid;
    gap: 8px;
    min-width: min(520px, 76vw);
}

.user-preview-row {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
}

.user-preview-row span {
    overflow-wrap: anywhere;
}

.system-list-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

.system-editor-header {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
}

.user-editor-form {
    padding: 10px 0;
}

.user-editor-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 12px;
    align-items: start;
}

.user-editor-field {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 5px;
    font-weight: 700;
}

.user-editor-field input,
.user-editor-field select {
    width: 100%;
    min-height: 38px;
    padding: 8px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    box-sizing: border-box;
    font: inherit;
}

.user-editor-field input[type="color"] {
    min-height: 38px;
    padding: 3px;
}

.user-editor-check {
    display: flex;
    gap: 8px;
    align-items: center;
    min-height: 38px;
    padding: 8px 10px;
    border: 1px solid #d6dee8;
    border-radius: 6px;
    background: #ffffff;
    box-sizing: border-box;
    font-weight: 700;
}

.user-editor-check input {
    margin: 0;
}

.user-clear-overrides {
    grid-column: 1 / -1;
}

.user-editor-actions {
    margin-top: 14px;
}

.user-permissions-form {
    padding: 10px 0;
}

/* Reusable local search for in-memory lists. */
.local-list-search {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    align-items: center;
}

.local-list-search-input-wrap {
    position: relative;
    width: min(460px, 100%);
}

.local-list-search input[type="search"] {
    width: 100%;
    min-height: 38px;
    padding: 8px 40px 8px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    box-sizing: border-box;
    background: #ffffff;
    font: inherit;
}

.local-list-search input[type="search"]:focus {
    border-color: var(--accent-color);
    outline: 2px solid rgba(31, 63, 91, 0.16);
    outline-offset: 1px;
}

.local-list-search input[type="search"]::-webkit-search-cancel-button {
    appearance: none;
}

.local-list-search-clear {
    position: absolute;
    top: 50%;
    right: 6px;
    display: inline-flex;
    width: 28px;
    height: 28px;
    padding: 5px;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 50%;
    color: #64748b;
    background: transparent;
    transform: translateY(-50%);
}

.local-list-search-clear:hover {
    color: #1f3f5b;
    background: #e2e8f0;
}

.local-list-search-clear svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
}

.local-list-search-clear[hidden] {
    display: none;
}

.local-list-search-count {
    color: #64748b;
    font-size: 13px;
}

.checkbox-dropdown {
    position: relative;
    min-width: 0;
}

.checkbox-dropdown-toggle {
    position: relative;
    width: 100%;
    min-height: 24px;
    padding: 2px 20px 2px 6px;
    overflow: hidden;
    border: 1px solid #cbd5e1;
    border-radius: 5px;
    background: #ffffff;
    color: #1f2937;
    font-size: 12px;
    line-height: 1.2;
    text-align: left;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.checkbox-dropdown-toggle::after {
    position: absolute;
    top: 50%;
    right: 7px;
    width: 5px;
    height: 5px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    content: '';
    transform: translateY(-65%) rotate(45deg);
}

.checkbox-dropdown-toggle:hover,
.checkbox-dropdown-toggle:focus-visible,
.checkbox-dropdown.is-open .checkbox-dropdown-toggle {
    border-color: var(--primary-color);
    background: #ffffff;
    color: #1f2937;
}

.checkbox-dropdown-menu {
    position: fixed;
    z-index: 10020;
    min-width: 150px;
    padding: 2px;
    overflow-y: auto;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    background: #ffffff;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.18);
    color: #1f2937;
}

.checkbox-dropdown-menu[hidden] {
    display: none;
}

.checkbox-dropdown-option {
    display: flex;
    gap: 5px;
    align-items: center;
    padding: 3px 5px;
    border-radius: 4px;
    cursor: pointer;
    font-size: 12px;
    font-weight: 500;
    white-space: nowrap;
}

.checkbox-dropdown-option:hover,
.checkbox-dropdown-option.is-selected {
    background: #eef6fa;
}

.checkbox-dropdown-option input {
    width: 13px;
    height: 13px;
    margin: 0;
    accent-color: var(--primary-color);
}

.checkbox-dropdown-option-all {
    margin-bottom: 2px;
    border-bottom: 1px solid #e2e8f0;
    border-radius: 4px 4px 0 0;
    font-weight: 700;
}

.user-permission-filter {
    margin-top: 12px;
}

.user-permission-override-list {
    display: grid;
    gap: 8px;
    margin-top: 12px;
}

.user-permission-override {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 10px;
    border: 1px solid #d6dee8;
    border-radius: 6px;
    background: #ffffff;
}

.user-permission-override[hidden] {
    display: none;
}

.user-permission-override-text {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 3px;
}

.user-permission-override-text span {
    color: #64748b;
    font-size: 12px;
}

.permission-role-state {
    display: inline-flex;
    width: fit-content;
    margin-top: 3px;
    padding: 3px 7px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
}

.permission-role-state-allowed {
    color: #166534;
    background: #dcfce7;
}

.permission-role-state-empty {
    color: #475569;
    background: #e2e8f0;
}

.user-permission-override-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

.user-permission-radio {
    display: inline-flex;
    gap: 5px;
    align-items: center;
    min-height: 30px;
    padding: 5px 8px;
    border: 1px solid #cbd5e1;
    border-radius: 999px;
    background: #f8fafc;
    font-size: 13px;
}

.user-permission-radio input {
    margin: 0;
}

@media (max-width: 760px) {
    .user-permission-override {
        grid-template-columns: 1fr;
    }

    .user-permission-override-controls {
        justify-content: flex-start;
    }
}

/* ============================================================
   Warehouse nomenclatures
   ============================================================ */
.warehouse-nomenclature-page {
    padding: 14px;
}

.warehouse-nomenclature-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.warehouse-nomenclature-header h1 {
    margin: 0;
    color: #1f3f5b;
    font-size: 24px;
    line-height: 1.2;
}

.warehouse-nomenclature-actions,
.warehouse-nomenclature-row-actions {
    display: flex;
    align-items: center;
    gap: 6px;
}

.warehouse-nomenclature-actions {
    flex-wrap: wrap;
}

.warehouse-nomenclature-row-actions {
    min-width: 158px;
    flex-wrap: nowrap;
}

.warehouse-nomenclature-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #334155;
    font-size: 14px;
}

.warehouse-nomenclature-search {
    margin-bottom: 12px;
}

.warehouse-nomenclature-table-wrap {
    max-width: 100%;
    overflow-x: auto;
    border: 1px solid rgba(44, 62, 80, 0.18);
    background: rgba(255, 255, 255, 0.42);
}

.warehouse-nomenclature-table {
    width: 100%;
    min-width: 780px;
    margin: 0;
    border: 0;
}

[data-nomenclature="suppliers"] .warehouse-nomenclature-table {
    min-width: 960px;
}

.warehouse-nomenclature-table td:first-child {
    font-weight: 600;
}

.warehouse-nomenclature-table .status-pill {
    padding: 3px 7px;
    font-size: 11px;
    white-space: nowrap;
}

.warehouse-nomenclature-table tr.is-inactive {
    opacity: 0.72;
}

.warehouse-nomenclature-table a {
    color: #1d5f8a;
    overflow-wrap: anywhere;
}

.warehouse-nomenclature-empty {
    padding: 24px;
    color: #475569;
    text-align: center;
    background: rgba(255, 255, 255, 0.42);
    border: 1px solid rgba(44, 62, 80, 0.18);
    border-radius: 6px;
}

.warehouse-nomenclature-editor-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(220px, 1fr));
    gap: 10px 12px;
    width: min(760px, 82vw);
    text-align: left;
}

.warehouse-nomenclature-modal-content {
    max-height: min(68vh, 620px);
    overflow-y: auto;
    padding-right: 6px;
}

.warehouse-nomenclature-editor-field {
    display: flex;
    flex-direction: column;
    gap: 5px;
    color: #263746;
    font-weight: 700;
}

.warehouse-nomenclature-editor-field.is-wide,
.warehouse-nomenclature-editor-check.is-wide {
    grid-column: 1 / -1;
}

.warehouse-nomenclature-editor-field input,
.warehouse-nomenclature-editor-field textarea {
    width: 100%;
    padding: 8px;
    box-sizing: border-box;
    font: inherit;
    font-weight: 400;
}

.warehouse-nomenclature-editor-field textarea {
    resize: vertical;
}

.warehouse-nomenclature-editor-check {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-weight: 500;
}

.warehouse-nomenclature-editor-check input {
    width: 16px;
    height: 16px;
}

@media (max-width: 760px) {
    .warehouse-nomenclature-header,
    .warehouse-nomenclature-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .warehouse-nomenclature-editor-form {
        grid-template-columns: 1fr;
        width: min(82vw, 520px);
    }
}

.system-permission-summary {
    max-width: 760px;
    margin-top: 4px;
    color: #64748b;
    font-size: 13px;
    line-height: 1.35;
}

.system-permission-checklist {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 8px;
    width: min(760px, 78vw);
    max-height: min(560px, 68vh);
    overflow: auto;
    padding: 4px;
}

.system-permission-check {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 8px;
    border: 1px solid #d6dee8;
    border-radius: 6px;
    background: #ffffff;
    line-height: 1.3;
}

.system-permission-check input {
    margin-top: 2px;
}

.system-permission-check-text {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 2px;
}

.system-permission-check-description {
    color: #64748b;
    font-size: 12px;
    line-height: 1.3;
}

.ui-tabs {
    position: sticky;
    top: 59px;
    z-index: 20;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0 10px 12px;
    padding: 7px;
    background: rgba(255, 255, 255, 0.42);
    border: 1px solid rgba(44, 62, 80, 0.14);
    border-radius: 8px;
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.06);
    backdrop-filter: blur(4px);
}

.ui-tab-button {
    min-height: 34px;
    padding: 7px 12px;
    color: #36546c;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
}

.ui-tab-button:hover {
    color: #1f3f5b;
    background: rgba(255, 255, 255, 0.48);
}

.ui-tab-button[aria-selected="true"] {
    color: #ffffff;
    background: var(--primary-color);
    border-color: rgba(0, 0, 0, 0.05);
    box-shadow: 0 3px 10px rgba(0, 101, 153, 0.22);
}
/* ============================================================
   Simple rich text editor
   ============================================================ */
.simple-editor {
    display: flex;
    min-height: 260px;
    flex-direction: column;
    border: 1px solid rgba(44, 62, 80, 0.22);
    border-radius: 6px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.76);
}

.simple-editor-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px;
    padding: 7px;
    background: rgba(255, 255, 255, 0.74);
    border-bottom: 1px solid rgba(44, 62, 80, 0.16);
}

.simple-editor-tool,
.simple-editor-size {
    min-width: 34px;
    height: 30px;
    padding: 0 8px;
    border-radius: 5px;
    font-size: 13px;
    line-height: 1;
}

.simple-editor-tool {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.simple-editor-tool.is-active {
    color: #ffffff;
    background: var(--accent-color, #fd4343);
    border-color: var(--accent-color, #fd4343);
}

.simple-editor-tool svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.simple-editor-color {
    width: 34px;
    height: 30px;
    padding: 2px;
    border: 1px solid rgba(44, 62, 80, 0.22);
    border-radius: 5px;
    background: #ffffff;
}

.simple-editor-size {
    width: 58px;
    color: var(--text-color);
    background: #ffffff;
    border: 1px solid rgba(44, 62, 80, 0.22);
}

.simple-editor-area {
    flex: 1;
    min-height: 210px;
    padding: 12px;
    background: #ffffff;
    outline: none;
    overflow: auto;
    line-height: 1.4;
}

.simple-editor-area img {
    max-width: 100%;
    height: auto;
}

.system-variable-html-editor {
    min-width: 420px;
}

.system-variable-html-editor .simple-editor {
    min-height: 190px;
}

.system-variable-html-editor .simple-editor-area {
    min-height: 125px;
    font-size: 13px;
}

.header-help-btn.disabled {
    opacity: 0.35;
    pointer-events: none;
}

/* ============================================================
   Engagements board
   ============================================================ */
.engagements-page {
    padding: 14px;
}

.engagements-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.engagements-header h1 {
    color: #1f3f5b;
    font-size: 24px;
    line-height: 1.2;
}

.engagement-board-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.engagement-board {
    display: flex;
    min-height: 420px;
    flex-direction: column;
    background: rgba(255, 255, 255, 0.42);
    border: 1px solid rgba(44, 62, 80, 0.22);
    border-radius: 6px;
    overflow: hidden;
}

.engagement-board-header {
    display: flex;
    min-height: 42px;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 10px;
    background: rgba(255, 255, 255, 0.48);
    border-bottom: 1px solid rgba(44, 62, 80, 0.16);
}

.engagement-board-header h2 {
    min-width: 0;
    color: #1f3f5b;
    font-size: 18px;
    line-height: 1.2;
}

.engagement-board-edit {
    display: inline-flex;
    flex: 0 0 34px;
    width: 34px;
    height: 30px;
    align-items: center;
    justify-content: center;
    padding: 0;
    border-radius: 5px;
}

.engagement-board-edit svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.engagement-board-content {
    flex: 1;
    padding: 14px;
    overflow: auto;
    background: rgba(255, 255, 255, 0.18);
    line-height: 1.45;
}

.engagement-board-content p,
.engagement-board-content ul,
.engagement-board-content ol {
    margin-top: 0;
}

.engagement-board-empty {
    color: #64748b;
    font-style: italic;
}

.engagement-editor {
    display: flex;
    min-height: 100%;
    flex-direction: column;
    gap: 10px;
}

.engagement-editor .simple-editor {
    flex: 1;
}

.engagement-editor-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

@media (max-width: 900px) {
    .engagement-board-grid {
        grid-template-columns: 1fr;
    }

    .engagement-board {
        min-height: 340px;
    }
}

/* ============================================================
   Articles
   ============================================================ */
.articles-page {
    padding: 14px;
}

.articles-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.articles-header h1 {
    margin: 0;
    color: #1f3f5b;
    font-size: 24px;
    line-height: 1.2;
}

.articles-filter-panel {
    display: grid;
    gap: 5px;
    margin-bottom: 12px;
    padding: 6px 8px;
    background: rgba(255, 255, 255, 0.42);
    border: 1px solid rgba(44, 62, 80, 0.18);
    border-radius: 6px;
}

.articles-filter-row {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    align-items: center;
}

.articles-filter-row input,
.articles-filter-row select,
.articles-filter-row button {
    min-height: 30px;
    padding: 4px 7px;
    font-size: 12.5px;
}

.articles-search {
    width: 165px;
}

.articles-filter-row-main select {
    width: min(190px, 20vw);
}

.articles-filter-row-main > select[name="supplier_id"] {
    width: min(210px, 22vw);
}

.articles-filter-row-supplier input[type="date"] {
    width: 128px;
}

.articles-inline-filter {
    display: inline-flex;
    gap: 3px;
    align-items: center;
}

.articles-inline-filter select {
    width: 82px;
    padding-right: 20px;
}

.articles-filter-icon {
    flex: 0 0 auto;
    color: #1f3f5b;
    font-size: 16px;
    line-height: 1;
}

.articles-period-label {
    color: #475569;
    font-size: 12px;
}

.articles-filter-check {
    display: inline-flex;
    gap: 6px;
    align-items: center;
    min-height: 30px;
    color: #334155;
    font-size: 13px;
}

.articles-filter-check input {
    margin: 0;
}

.articles-table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    border: 1px solid rgba(44, 62, 80, 0.18);
    background: rgba(255, 255, 255, 0.42);
    box-sizing: border-box;
}

.articles-table {
    width: 100%;
    min-width: 1180px;
    margin: 0;
    border: 0;
    table-layout: fixed;
}

.articles-table th,
.articles-table td {
    overflow: hidden;
    overflow-wrap: normal;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.articles-table.compact-data-table {
    font-size: 11.5px;
}

.articles-table.compact-data-table th,
.articles-table.compact-data-table td {
    padding: 3px 5px;
}

.articles-table tbody tr {
    transition: background-color 0.12s ease, box-shadow 0.12s ease;
}

.articles-table tbody tr:hover {
    background: rgba(253, 67, 67, 0.08);
    box-shadow: inset 3px 0 0 var(--accent-color, #fd4343);
}

.articles-empty {
    padding: 30px 18px;
    color: #475569;
    text-align: center;
}

.articles-col-id { width: 46px; }
.articles-col-group { width: 86px; }
.articles-col-subgroup { width: 92px; }
.articles-col-manufacturer { width: 96px; }
.articles-col-suppliers { width: 64px; }
.articles-col-name { width: auto; }
.articles-col-barcode { width: 118px; }
.articles-col-code { width: 86px; }
.articles-col-qty { width: 58px; }
.articles-col-unit { width: 48px; }
.articles-marker-column { width: 24px; }
.articles-price-column { width: 28px; }

.articles-stock-quantity {
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    text-align: right;
}

.articles-table th:nth-last-child(n + 2):nth-last-child(-n + 6),
.articles-table td:nth-last-child(n + 2):nth-last-child(-n + 6) {
    padding-right: 2px;
    padding-left: 2px;
    overflow-wrap: normal;
    text-align: center;
    white-space: nowrap;
}

.articles-table th:nth-last-child(n + 2):nth-last-child(-n + 6) {
    font-size: 10px;
}

.articles-price-placeholder {
    padding-right: 2px;
    padding-left: 2px;
    color: #64748b;
    text-align: center;
    white-space: nowrap;
}

.articles-price-placeholder a {
    color: inherit;
    text-decoration: none;
}

.articles-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 10px;
    color: #475569;
    font-size: 13px;
}

.articles-pagination button {
    min-height: 30px;
    padding: 5px 10px;
    font-size: 12px;
}

.articles-edit-link {
    padding: 0;
    border: 0;
    background: transparent;
    color: #1d4ed8;
    font: inherit;
    text-decoration: underline;
    cursor: pointer;
}

.article-editor-modal-content {
    width: min(720px, 82vw);
    max-height: min(68vh, 620px);
    overflow: auto;
}

.article-editor-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.article-editor-field {
    display: grid;
    gap: 5px;
    color: #334155;
    font-size: 13px;
}

.article-editor-field.is-wide,
.article-editor-identity,
.article-editor-flags {
    grid-column: 1 / -1;
}

.article-editor-field input,
.article-editor-field select {
    width: 100%;
    min-height: 34px;
    box-sizing: border-box;
}

.article-editor-flags {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 16px;
    padding-top: 4px;
}

.article-editor-identity {
    padding: 8px 10px;
    border: 1px solid #d7e3ea;
    background: #f6fafc;
    color: #33515f;
    font-size: 13px;
    font-weight: 600;
}

.article-editor-check {
    display: inline-flex;
    gap: 7px;
    align-items: center;
    color: #334155;
    font-size: 13px;
}

.article-editor-check input {
    margin: 0;
}

.articles-flag {
    width: 28px;
    min-width: 28px;
    box-shadow: inset 0 0 0 1px rgba(51, 65, 85, 0.22);
}

.articles-flag.is-on {
    background: rgba(34, 197, 94, 0.58);
}

.articles-flag.is-off {
    background: rgba(239, 68, 68, 0.58);
}

.articles-duplicates table {
    min-width: 440px;
}

@media (max-width: 760px) {
    .articles-header {
        align-items: stretch;
        flex-direction: column;
    }

    .articles-search,
    .articles-filter-row-main select,
    .articles-filter-row-main > select[name="supplier_id"] {
        width: 100%;
    }

    .article-editor-modal-content {
        width: 86vw;
    }

    .article-editor-form,
    .article-editor-flags {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   Warehouses
   ============================================================ */
.fiscal-config-page{padding:14px}.fiscal-config-head,.fiscal-config-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.fiscal-config-head{margin-bottom:14px}.fiscal-config-head h1,.fiscal-config-section h2{margin:0;color:#1f3f5b}.fiscal-config-head h1{font-size:24px}.fiscal-config-head p{margin:4px 0 0;color:#64748b;font-size:13px}.fiscal-config-toggle{display:inline-flex;align-items:center;gap:6px;color:#334155;font-size:13px}.fiscal-config-section{margin:0 0 18px}.fiscal-config-section-head{margin-bottom:7px}.fiscal-config-section h2{font-size:18px}.fiscal-config-table-wrap{overflow-x:auto;border:1px solid rgba(44,62,80,.18);background:rgba(255,255,255,.42)}.fiscal-config-table{width:100%;margin:0;border:0}.fiscal-config-table tr.is-inactive{opacity:.58}.fiscal-config-empty{padding:20px!important;text-align:center;color:#64748b}.fiscal-config-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;min-width:min(680px,76vw)}

.fiscal-config-field{display:grid;gap:4px;color:#334155;font-size:13px}.fiscal-config-field input,.fiscal-config-field select,.fiscal-config-field textarea{width:100%;min-height:34px;box-sizing:border-box}.fiscal-config-field textarea{resize:vertical}.fiscal-config-field.is-wide,.fiscal-config-check.is-wide{grid-column:1/-1}.fiscal-config-check{display:inline-flex;align-items:center;gap:7px;color:#334155;font-size:13px}.fiscal-config-table .compact-row-actions{display:flex;gap:5px;white-space:nowrap}.fiscal-config-table .compact-row-actions button{padding:4px 7px;font-size:11px}

.fiscal-config-head-actions{display:flex;align-items:center;gap:12px}.fiscal-config-head-link{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:6px 12px;box-sizing:border-box;border-radius:4px;text-decoration:none;white-space:nowrap}.fiscal-config-head-link:hover{background:var(--accent-color);color:#fff}

@media(max-width:760px){.fiscal-config-head,.fiscal-config-section-head{align-items:stretch;flex-direction:column}.fiscal-config-head-actions{align-items:stretch;flex-direction:column}.fiscal-config-form{grid-template-columns:1fr;min-width:76vw}.fiscal-config-field.is-wide,.fiscal-config-check.is-wide{grid-column:auto}}

.warehouse-page {
    padding: 14px;
}

.warehouse-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.warehouse-header h1 {
    color: #1f3f5b;
    font-size: 24px;
    line-height: 1.2;
}

.warehouse-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.warehouse-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #334155;
    font-size: 14px;
}

.warehouse-table {
    margin-top: 0;
    background: rgba(255, 255, 255, 0.42);
    border: 1px solid rgba(44, 62, 80, 0.18);
}

.warehouse-row-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.warehouse-row-actions button {
    padding: 7px 10px;
    border-radius: 5px;
}

.warehouse-empty {
    padding: 24px;
    color: #475569;
    background: rgba(255, 255, 255, 0.42);
    border: 1px solid rgba(44, 62, 80, 0.18);
    border-radius: 6px;
    text-align: center;
}

.warehouse-receipts-page {
    padding: 14px;
}

.warehouse-receipts-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.shop-sales-header {
    justify-content: flex-start;
}

.warehouse-receipts-header h1 {
    margin: 0;
    color: #1f3f5b;
    font-size: 24px;
    line-height: 1.2;
}

.warehouse-receipt-add {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 36px;
    padding: 8px 14px;
    box-sizing: border-box;
    color: #fff;
    background: var(--primary-color);
    border-radius: 6px;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.warehouse-receipt-add svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
}

.warehouse-receipt-create-actions {
    display: flex;
    align-items: center;
    gap: 5px;
}

.warehouse-receipt-create-form {
    display: grid;
    grid-template-columns: minmax(150px, 1fr) minmax(190px, 1.35fr) minmax(175px, 1.15fr) 135px minmax(130px, 0.8fr) minmax(145px, 0.9fr) auto;
    align-items: end;
    gap: 7px;
    margin-bottom: 12px;
    padding: 9px;
    background: rgba(255, 255, 255, 0.55);
    border: 1px solid rgba(44, 62, 80, 0.22);
    border-radius: 6px;
}

.warehouse-receipt-create-form label {
    display: grid;
    gap: 3px;
    min-width: 0;
    color: #475569;
    font-size: 11.5px;
    font-weight: 700;
}

.warehouse-receipt-create-form label[hidden] {
    display: none;
}

.warehouse-receipt-create-form input,
.warehouse-receipt-create-form select,
.warehouse-receipt-create-form button {
    width: 100%;
    min-height: 34px;
    padding: 5px 7px;
    box-sizing: border-box;
    font-size: 12.5px;
}

.warehouse-receipt-create-form button {
    width: auto;
    white-space: nowrap;
}

.warehouse-receipt-table-form {
    margin: 0;
}

.warehouse-receipt-open-current,
.warehouse-receipt-new-tab,
.warehouse-receipt-edit-back {
    display: inline-flex;
    width: 36px;
    height: 36px;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    color: #1f3f5b;
    background: rgba(255, 255, 255, 0.68);
    border: 1px solid rgba(44, 62, 80, 0.24);
    border-radius: 6px;
    text-decoration: none;
}

.warehouse-receipt-open-current:hover,
.warehouse-receipt-new-tab:hover,
.warehouse-receipt-edit-back:hover {
    color: #fff;
    background: var(--primary-color);
}

.warehouse-receipt-open-current svg,
.warehouse-receipt-new-tab svg,
.warehouse-receipt-edit-back svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.warehouse-receipt-add.is-disabled,
.warehouse-receipt-new-tab.is-disabled {
    opacity: 0.45;
    pointer-events: none;
}

.warehouse-receipt-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    gap: 7px;
    margin-bottom: 12px;
    padding: 7px 8px;
    background: rgba(255, 255, 255, 0.42);
    border: 1px solid rgba(44, 62, 80, 0.18);
    border-radius: 6px;
}

.shop-sales-filters[hidden] {
    display: none;
}

.warehouse-receipt-filter-field {
    display: grid;
    gap: 3px;
    color: #475569;
    font-size: 11.5px;
    font-weight: 700;
}

.warehouse-receipt-filter-field input,
.warehouse-receipt-filter-field select,
.warehouse-receipt-filter-actions button {
    min-height: 31px;
    padding: 4px 7px;
    font-size: 12.5px;
}

.warehouse-receipt-warehouse-dropdown,
.warehouse-receipt-warehouse-dropdown .checkbox-dropdown-toggle {
    width: min(230px, 24vw);
}

.warehouse-receipt-warehouse-dropdown .checkbox-dropdown-toggle {
    min-height: 31px;
    padding: 4px 7px;
    font-size: 12.5px;
}

.warehouse-receipt-type-field select {
    width: min(210px, 22vw);
}

.warehouse-receipt-search-field input {
    width: 155px;
}

.warehouse-receipt-filter-actions {
    display: flex;
    gap: 5px;
}

.warehouse-receipt-table-wrap {
    max-width: 100%;
    overflow-x: auto;
    border: 1px solid rgba(44, 62, 80, 0.18);
    border-radius: 6px;
}

.warehouse-receipt-table {
    width: 100%;
    min-width: 1180px;
    margin: 0;
    border: 0;
    background: rgba(255, 255, 255, 0.42);
}

.warehouse-receipt-table th {
    background: rgba(31, 63, 91, 0.08);
}

.warehouse-receipt-table-filters td {
    padding: 4px;
    vertical-align: top;
    background: rgba(255, 255, 255, 0.68);
}

.warehouse-receipt-table-filters input,
.warehouse-receipt-table-filters select,
.warehouse-receipt-table-filters button,
.warehouse-receipt-table-filters .checkbox-dropdown-toggle {
    width: 100%;
    min-height: 28px;
    padding: 3px 5px;
    box-sizing: border-box;
    font-size: 11px;
}

.warehouse-receipt-table-filters input[type='date'] + input[type='date'] {
    margin-top: 3px;
}

.warehouse-receipt-table-filters select + select {
    margin-top: 3px;
}

.warehouse-receipt-table-filters .warehouse-receipt-warehouse-dropdown,
.warehouse-receipt-table-filters .warehouse-receipt-warehouse-dropdown .checkbox-dropdown-toggle {
    width: 100%;
}

.warehouse-receipt-table-filter-actions {
    white-space: nowrap;
}

.warehouse-receipt-table-filter-actions button {
    width: auto;
}

.warehouse-receipt-table-filter-actions button + button {
    margin-left: 3px;
}

.warehouse-receipt-number {
    color: #1f3f5b;
    font-weight: 800;
}

.warehouse-receipt-number .warehouse-receipt-status {
    display: flex;
    width: max-content;
    margin-top: 3px;
}

.warehouse-receipt-payment-status {
    display: flex;
    width: max-content;
    margin-top: 3px;
    padding: 1px 5px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 10px;
    white-space: nowrap;
}

.warehouse-receipt-payment-status.is-unpaid {
    color: #8a2632;
    background: #fde7e9;
    border-color: #dca0a7;
}

.warehouse-receipt-payment-status.is-paid {
    color: #116149;
    background: #dff5eb;
    border-color: #78bea5;
}

.warehouse-receipt-payment-status.is-partial {
    color: #8a4b08;
    background: #fff7df;
    border-color: #e9b949;
}

.warehouse-receipt-number a {
    color: inherit;
}

.warehouse-receipt-open-cell {
    width: 72px;
    padding: 4px 6px;
    text-align: center;
}

.warehouse-receipt-open-actions {
    display: inline-flex;
    gap: 4px;
    align-items: center;
}

.warehouse-receipt-open-cell .warehouse-receipt-open-current,
.warehouse-receipt-open-cell .warehouse-receipt-new-tab {
    width: 30px;
    height: 30px;
}

.warehouse-receipt-status {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 2px 7px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.warehouse-receipt-status.is-draft {
    color: #7c4a03;
    background: #fff5cf;
    border-color: #e4be58;
}

.warehouse-receipt-status.is-confirmed {
    color: #116149;
    background: #dff5eb;
    border-color: #78bea5;
}

.warehouse-receipt-status.is-cancelled {
    color: #8a2632;
    background: #fde7e9;
    border-color: #dca0a7;
}

.status-marker {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 2px 7px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.status-marker.is-critical {
    color: #fff;
    background: #c62838;
    border-color: #9f1f2c;
}

.status-marker.is-warning {
    color: #8a4b08;
    background: #fff7df;
    border-color: #e9b949;
}

.status-marker.is-compact {
    min-height: 18px;
    padding: 1px 5px;
    font-size: 9px;
    letter-spacing: 0.03em;
    box-shadow: 0 1px 3px rgba(74, 20, 28, 0.22);
}

.status-marker.is-blinking {
    animation: status-marker-critical-blink 1.1s step-end infinite;
}

@keyframes status-marker-critical-blink {
    0%, 49% {
        color: #fff;
        background: #c62838;
        border-color: #9f1f2c;
    }

    50%, 100% {
        color: #9f1f2c;
        background: #fde7e9;
        border-color: #dca0a7;
    }
}

@media (prefers-reduced-motion: reduce) {
    .status-marker.is-blinking {
        animation: none;
        box-shadow: 0 0 0 2px rgba(198, 40, 56, 0.18);
    }
}

.fiscal-notice-cell {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.fiscal-notice-indicator {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    padding: 3px;
    border: 1px solid currentColor;
    border-radius: 50%;
    cursor: pointer;
    line-height: 1;
    vertical-align: middle;
}

.fiscal-notice-indicator svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.fiscal-notice-indicator.is-warning {
    color: #8a4b08;
    background: #fff7df;
}

.fiscal-notice-indicator.is-error {
    color: #fff;
    background: #c62838;
    border-color: #9f1f2c;
}

.fiscal-notice-indicator.is-unknown {
    color: #6b4f00;
    background: #ffe082;
    border-color: #c89b18;
}

.fiscal-notice-indicator:hover,
.fiscal-notice-indicator:focus-visible {
    box-shadow: 0 0 0 3px rgba(16, 112, 166, 0.2);
    outline: none;
}

.fiscal-notice-dialog {
    display: grid;
    gap: 12px;
}

.fiscal-notice-dialog p {
    margin: 0;
}

.fiscal-notice-dialog strong {
    color: #173f5f;
}

.warehouse-receipt-audit {
    display: grid;
    gap: 1px;
    min-width: 110px;
}

.warehouse-receipt-audit span {
    color: #64748b;
    font-size: 11px;
}

.warehouse-receipt-movements {
    min-width: 205px;
}

.warehouse-receipt-movements > div {
    display: grid;
    grid-template-columns: 14px auto minmax(65px, 1fr);
    align-items: baseline;
    gap: 3px;
    white-space: nowrap;
}

.warehouse-receipt-movements b {
    color: #1f3f5b;
    text-align: center;
}

.warehouse-receipt-movements time,
.warehouse-receipt-movements span {
    font-size: 10.5px;
}

.warehouse-receipt-movements span {
    color: #64748b;
}

.warehouse-receipt-total {
    text-align: right;
    white-space: nowrap;
}

.warehouse-receipt-total span {
    display: block;
}

.warehouse-receipt-total span:first-child {
    color: #64748b;
    font-size: 0.92em;
}

.warehouse-receipt-note {
    max-width: 260px;
    white-space: normal;
    overflow-wrap: anywhere;
}

.warehouse-receipt-list-tooltip,
.warehouse-receipt-list-tooltip-title,
.warehouse-receipt-list-tooltip-line,
.warehouse-receipt-list-tooltip-line > span {
    display: block;
}

.warehouse-receipt-list-tooltip {
    min-width: 240px;
    max-height: min(60vh, 420px);
    overflow: hidden;
}

.warehouse-receipt-list-tooltip-title {
    margin-bottom: 4px;
    padding-bottom: 5px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.22);
    font-weight: 700;
}

.warehouse-receipt-list-tooltip-title small {
    float: right;
    margin-left: 12px;
    color: #b8c6d8;
    font-weight: 400;
}

.warehouse-receipt-list-tooltip-line {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 4px 0;
}

.warehouse-receipt-list-tooltip-line + .warehouse-receipt-list-tooltip-line {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.warehouse-receipt-list-tooltip-line small,
.warehouse-receipt-list-tooltip-line strong {
    display: block;
}

.warehouse-receipt-list-tooltip-line small {
    color: #b8c6d8;
    font-size: 11px;
}

.warehouse-receipt-list-tooltip-line strong {
    font-size: 12px;
    font-weight: 600;
}

.warehouse-receipt-list-tooltip-line b {
    white-space: nowrap;
    font-size: 12px;
}

.warehouse-receipt-list-tooltip-empty {
    color: #cbd5e1;
}

.warehouse-receipt-count {
    padding-top: 6px;
    color: #64748b;
    font-size: 12px;
    text-align: right;
}

.warehouse-common-invoice-toolbar {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) auto;
    align-items: center;
    gap: 7px 12px;
    margin-bottom: 8px;
    padding: 9px 11px;
    color: #4e3b0c;
    background: #fff8df;
    border: 1px solid #dfbd5f;
    border-radius: 6px;
}

.warehouse-common-invoice-toolbar[hidden] {
    display: none;
}

.warehouse-common-invoice-toolbar > div {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 5px 10px;
}

.warehouse-common-invoice-toolbar button {
    min-height: 32px;
    font-size: 12px;
    font-weight: 800;
}

.warehouse-common-invoice-toolbar p {
    grid-column: 1 / -1;
    margin: 0;
    color: #735a1c;
    font-size: 11px;
}

.warehouse-receipt-number [data-common-invoice-document],
.warehouse-receipt-table th [data-common-invoice-select-all] {
    width: 16px;
    height: 16px;
    margin: 0 5px 0 0;
    vertical-align: middle;
}

.warehouse-common-invoice-link {
    display: block;
    width: max-content;
    max-width: 100%;
    margin-top: 3px;
    padding: 0;
    color: #655015;
    background: transparent;
    border: 0;
    font-size: 10.5px;
    font-weight: 800;
    text-align: left;
    text-decoration: underline;
}

.warehouse-common-invoice-row td {
    background: rgba(255, 244, 197, 0.62);
    border-top: 2px solid rgba(188, 145, 34, 0.42);
}

.warehouse-common-invoice-row.is-cancelled td {
    opacity: 0.72;
    background: rgba(253, 231, 233, 0.52);
}

.warehouse-common-invoice-badge {
    display: flex;
    width: max-content;
    margin-top: 3px;
    padding: 2px 6px;
    color: #5b4711;
    background: #ffe89b;
    border: 1px solid #d6aa32;
    border-radius: 999px;
    font-size: 9.5px;
    white-space: nowrap;
}

.warehouse-common-invoice-view {
    min-height: 28px;
    padding: 4px 7px;
    font-size: 11px;
}

.warehouse-common-invoice-dialog {
    width: min(560px, calc(100vw - 28px));
}

.warehouse-common-invoice-form {
    display: grid;
    gap: 10px;
}

.warehouse-common-invoice-form label {
    display: grid;
    gap: 4px;
    color: #475569;
    font-size: 12px;
    font-weight: 700;
}

.warehouse-common-invoice-form input {
    width: 100%;
    min-height: 36px;
    box-sizing: border-box;
}

.warehouse-common-invoice-summary {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 9px;
    background: rgba(31, 63, 91, 0.07);
    border-radius: 5px;
}

.warehouse-common-invoice-warning,
.warehouse-common-invoice-boundary-warning,
.warehouse-common-invoice-cancelled {
    margin: 0;
    padding: 8px 9px;
    color: #475569;
    background: rgba(31, 63, 91, 0.06);
    border-left: 3px solid #6f8ca5;
    font-size: 11.5px;
}

.warehouse-common-invoice-boundary-warning {
    color: #735a1c;
    background: #fff8df;
    border-left-color: #d6aa32;
}

.warehouse-common-invoice-cancelled {
    color: #8a2632;
    background: #fde7e9;
    border-left-color: #c74b58;
}

.warehouse-common-invoice-details-dialog {
    width: min(980px, calc(100vw - 28px));
}

.warehouse-common-invoice-details {
    display: grid;
    gap: 10px;
}

.warehouse-common-invoice-details dl {
    display: grid;
    grid-template-columns: repeat(3, minmax(150px, 1fr));
    gap: 6px;
    margin: 0;
}

.warehouse-common-invoice-details dl > div {
    padding: 7px;
    background: rgba(31, 63, 91, 0.06);
    border-radius: 4px;
}

.warehouse-common-invoice-details dt {
    color: #64748b;
    font-size: 10.5px;
}

.warehouse-common-invoice-details dd {
    margin: 2px 0 0;
    font-weight: 700;
}

.warehouse-common-invoice-documents {
    max-width: 100%;
    overflow-x: auto;
}

.warehouse-common-invoice-documents table {
    width: 100%;
    min-width: 650px;
    margin: 0;
}

.warehouse-common-invoice-cancel {
    justify-self: end;
}

.warehouse-common-invoice-editor {
    display: grid;
    gap: 12px;
}

.warehouse-common-invoice-editor-header {
    grid-template-columns: auto minmax(220px, 1fr) auto auto;
}

.warehouse-common-invoice-editor-cancel {
    min-height: 34px;
    white-space: nowrap;
}

.warehouse-common-invoice-editor-header-fields {
    display: grid;
    grid-template-columns:
        minmax(190px, 1.25fr) minmax(165px, 1.05fr) minmax(135px, 0.8fr)
        minmax(150px, 0.9fr) minmax(145px, 0.9fr);
    gap: 8px;
    padding: 10px;
    background: #fff;
    border: 1px solid #dbe3ea;
    border-radius: 7px;
}

.warehouse-common-invoice-editor-note {
    display: grid;
    grid-column: span 2;
    gap: 4px;
    color: #475569;
    font-size: 12px;
    font-weight: 700;
}

.warehouse-common-invoice-editor-note label {
    display: grid;
    gap: 4px;
}

.warehouse-common-invoice-editor-note textarea {
    min-height: 36px;
    resize: vertical;
}

.warehouse-common-invoice-header-save {
    grid-column: 5;
    justify-self: end;
    min-height: 32px;
}

.warehouse-common-invoice-currency-start {
    grid-column: 1;
}

.warehouse-common-invoice-editor-audit,
.warehouse-common-invoice-source-meta,
.warehouse-common-invoice-grand-total {
    display: flex;
    flex-wrap: wrap;
    gap: 7px 18px;
    align-items: center;
}

.warehouse-common-invoice-editor-audit {
    color: #64748b;
    font-size: 11.5px;
}

.warehouse-common-invoice-source-documents {
    display: grid;
    gap: 13px;
}

.warehouse-common-invoice-source-document {
    overflow: hidden;
    background: #fff;
    border: 1px solid #ccd8e2;
    border-radius: 7px;
}

.warehouse-common-invoice-source-document > header {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: center;
    padding: 9px 11px;
    background: rgba(31, 63, 91, 0.07);
    border-bottom: 1px solid #dbe3ea;
}

.warehouse-common-invoice-source-document h2 {
    margin: 0;
    color: #1f3f5b;
    font-size: 15px;
}

.warehouse-common-invoice-source-document > header a {
    white-space: nowrap;
}

.warehouse-common-invoice-source-meta {
    padding: 7px 11px;
    color: #526273;
    font-size: 11.5px;
}

.warehouse-common-invoice-lines-wrap {
    max-width: 100%;
    overflow-x: auto;
}

.warehouse-common-invoice-lines {
    width: 100%;
    min-width: 980px;
    margin: 0;
}

.warehouse-common-invoice-lines th,
.warehouse-common-invoice-lines td {
    vertical-align: top;
}

.warehouse-common-invoice-lines td:nth-child(n+4),
.warehouse-common-invoice-lines th:nth-child(n+4) {
    text-align: right;
}

.warehouse-common-invoice-lines tfoot td {
    font-weight: 800;
    background: rgba(31, 63, 91, 0.06);
}

.warehouse-common-invoice-grand-total {
    justify-content: flex-end;
    padding: 11px 13px;
    color: #1f3f5b;
    background: #fff8df;
    border: 1px solid #dfbd5f;
    border-radius: 7px;
}

.warehouse-common-invoice-grand-total strong {
    margin-left: 5px;
    font-size: 16px;
}

@media (max-width: 760px) {
    .warehouse-common-invoice-toolbar {
        grid-template-columns: 1fr;
    }

    .warehouse-common-invoice-toolbar p {
        grid-column: 1;
    }

    .warehouse-common-invoice-details dl {
        grid-template-columns: 1fr;
    }

    .warehouse-common-invoice-editor-header,
    .warehouse-common-invoice-editor-header-fields {
        grid-template-columns: 1fr;
    }

    .warehouse-common-invoice-editor-note {
        grid-column: 1;
    }

    .warehouse-common-invoice-header-save {
        grid-column: 1;
    }

    .warehouse-common-invoice-source-document > header {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 1200px) {
    .warehouse-receipt-create-form {
        grid-template-columns: repeat(3, minmax(160px, 1fr));
    }

    .warehouse-receipt-create-form button {
        width: 100%;
    }
}

.warehouse-receipts-empty {
    height: 72px;
    padding: 18px;
    color: #475569;
    text-align: center;
}

.warehouse-receipt-edit-page {
    min-width: 0;
    padding: 12px 14px 24px;
}

.warehouse-receipt-edit-header {
    display: flex;
    grid-column: 1 / -1;
    align-items: center;
    gap: 7px;
    min-height: 30px;
    padding-bottom: 5px;
    border-bottom: 1px solid rgba(44, 62, 80, 0.16);
}

.warehouse-receipt-edit-header h1 {
    min-width: 0;
    margin-right: 2px;
    color: #1f3f5b;
    font-size: 16px;
    line-height: 1.2;
}

.document-refresh-button {
    display: inline-flex;
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    align-items: center;
    justify-content: center;
    padding: 4px;
    color: #47657d;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 50%;
    cursor: pointer;
}

.document-refresh-button:hover,
.document-refresh-button:focus-visible {
    color: #fff;
    background: var(--primary-color);
    border-color: var(--primary-color);
}

.document-refresh-button svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.warehouse-receipt-edit-header .warehouse-receipt-edit-back {
    width: 28px;
    height: 28px;
}

.warehouse-receipt-edit-header .warehouse-receipt-edit-back svg {
    width: 16px;
    height: 16px;
}

.warehouse-receipt-edit-header .warehouse-receipt-status {
    min-height: 20px;
    padding: 1px 6px;
    font-size: 10px;
}

.warehouse-receipt-confirmation-audit {
    color: #475569;
    font-size: 11px;
    white-space: nowrap;
}

.warehouse-receipt-confirmation-audit time,
.warehouse-receipt-confirmation-audit strong {
    color: #1f3f5b;
    font-weight: 600;
}

.warehouse-receipt-save-status {
    margin-left: auto;
    color: #64748b;
    font-size: 11px;
    line-height: 1.2;
    white-space: nowrap;
    visibility: hidden;
    opacity: 0;
    transition: opacity 0.18s ease;
}

.warehouse-receipt-save-status.is-visible {
    visibility: visible;
    opacity: 1;
}

.warehouse-receipt-save-status[data-state='saved'] {
    color: #39765e;
}

.warehouse-receipt-save-status[data-state='error'] {
    color: #a33b3b;
}

.warehouse-receipt-edit-save {
    display: inline-flex;
    min-height: 28px;
    align-items: center;
    gap: 5px;
    margin-left: auto;
    padding: 4px 10px;
    font-size: 12px;
}

.warehouse-receipt-edit-save svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.warehouse-receipt-confirmation-actions {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-left: auto;
}

.warehouse-receipt-confirmation-actions + .warehouse-receipt-edit-save {
    margin-left: 0;
}

.warehouse-receipt-save-status + .warehouse-receipt-confirmation-actions,
.warehouse-receipt-save-status + .warehouse-receipt-edit-save {
    margin-left: 0;
}

.warehouse-receipt-confirmation-actions button {
    min-height: 28px;
    padding: 4px 10px;
    font-size: 12px;
}

.warehouse-receipt-confirm-action {
    background: #18775b;
}

.warehouse-receipt-confirm-action:hover:not(:disabled) {
    background: #116149;
}

.warehouse-receipt-confirmation-edit {
    color: #1f3f5b;
    background: #e8eef4;
}

.warehouse-receipt-confirmation-edit:hover:not(:disabled) {
    background: #d8e3ed;
}

.warehouse-receipt-confirmation-revoke {
    background: #a33b47;
}

.warehouse-receipt-confirmation-revoke:hover:not(:disabled) {
    background: #882f3a;
}

.warehouse-receipt-confirmation-form label {
    display: grid;
    gap: 6px;
    color: #334155;
    font-size: 13px;
}

.warehouse-receipt-confirmation-form input {
    min-width: 240px;
}

.warehouse-receipt-confirmed-price-row .warehouse-receipt-line-price {
    border-color: #b98b32;
    background: #fffaf0;
}

.warehouse-receipt-lines-table tr.is-saving > td {
    opacity: 0.42;
    pointer-events: none;
    transition: opacity 0.12s ease;
}

.warehouse-receipt-confirmed-price-row.is-paid {
    background: rgba(35, 134, 84, 0.08);
}

.warehouse-receipt-payments {
    margin-top: 12px;
    padding: 10px;
    border: 1px solid rgba(44, 62, 80, 0.18);
    border-radius: 6px;
    background: #f8fafc;
}

.warehouse-receipt-payment-header,
.warehouse-receipt-payment-summary {
    display: flex;
    align-items: center;
    gap: 16px;
}

.warehouse-receipt-payment-header {
    justify-content: space-between;
    margin-bottom: 8px;
}

.warehouse-receipt-payment-header h2,
.warehouse-receipt-payment-history h3 {
    margin: 0;
    color: #1f3f5b;
}

.warehouse-receipt-payment-header h2 {
    font-size: 16px;
}

.warehouse-receipt-payment-history h3 {
    margin-bottom: 6px;
    font-size: 13px;
}

.warehouse-receipt-payment-state {
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
}

.warehouse-receipt-payment-state.is-paid {
    color: #17613f;
    background: #dff4e9;
}

.warehouse-receipt-payment-state.is-unpaid {
    color: #854d0e;
    background: #fef3c7;
}

.warehouse-receipt-payment-summary {
    flex-wrap: wrap;
    margin-bottom: 10px;
    color: #475569;
    font-size: 12px;
}

.warehouse-receipt-payment-summary strong {
    color: #1f3f5b;
}

.warehouse-receipt-payment-actions {
    display: grid;
    gap: 8px;
    margin-bottom: 12px;
    padding: 8px;
    border-radius: 5px;
    background: #eef5f8;
}

.warehouse-receipt-payment-primary-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.warehouse-receipt-final-paid {
    background: #9a6700;
}

.warehouse-receipt-final-paid-audit {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    margin-bottom: 10px;
    padding: 7px 9px;
    color: #475569;
    background: #fff7d6;
    border: 1px solid #e8cf78;
    border-radius: 5px;
    font-size: 12px;
}

.warehouse-receipt-final-paid-audit strong {
    color: #6b4c00;
}

.warehouse-receipt-final-paid-audit button {
    margin-left: auto;
    padding: 3px 8px;
    font-size: 10px;
    background: #a33b47;
}

.warehouse-receipt-partial-payment-form {
    display: grid;
    grid-template-columns: minmax(130px, auto) 130px minmax(130px, 1fr)
        minmax(150px, 1fr) minmax(150px, 1fr) auto;
    align-items: end;
    gap: 7px;
}

.warehouse-receipt-partial-payment-form.has-payment-rate {
    grid-template-columns: minmax(130px, auto) 130px 125px minmax(130px, 1fr)
        minmax(150px, 1fr) minmax(150px, 1fr) auto;
}

.warehouse-receipt-payment-selected {
    align-self: center;
    color: #475569;
    font-size: 12px;
}

.warehouse-receipt-partial-payment-form label {
    display: grid;
    gap: 3px;
    color: #475569;
    font-size: 11px;
}

.warehouse-receipt-partial-payment-form input,
.warehouse-receipt-partial-payment-form select {
    min-width: 0;
}

.warehouse-receipt-payment-history-wrap {
    overflow-x: auto;
}

.warehouse-receipt-payment-history table {
    width: 100%;
}

.warehouse-receipt-payment-history tr.is-cancelled {
    opacity: 0.58;
}

.warehouse-receipt-payment-cancelled {
    display: block;
    color: #9f1239;
    font-size: 10px;
}

.js-warehouse-receipt-payment-cancel {
    padding: 3px 7px;
    font-size: 10px;
    background: #a33b47;
}

@media (max-width: 1100px) {
    .warehouse-receipt-partial-payment-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .warehouse-receipt-payment-selected,
    .warehouse-receipt-partial-payment-form button[type='submit'] {
        grid-column: 1 / -1;
    }
}

.warehouse-receipt-document-form {
    display: grid;
    grid-template-columns:
        minmax(190px, 1.25fr) minmax(165px, 1.05fr) minmax(135px, 0.8fr)
        minmax(150px, 0.9fr) minmax(145px, 0.9fr);
    gap: 5px 8px;
    padding: 5px 0 7px;
    border-top: 1px solid rgba(44, 62, 80, 0.2);
    border-bottom: 1px solid rgba(44, 62, 80, 0.2);
}

.warehouse-receipt-document-field {
    display: grid;
    min-width: 0;
    gap: 2px;
    color: #475569;
    font-size: 10.5px;
    font-weight: 700;
}

.warehouse-receipt-document-field.is-note {
    grid-column: span 2;
}

.warehouse-receipt-document-field input,
.warehouse-receipt-document-field select,
.warehouse-receipt-document-field textarea {
    width: 100%;
    min-width: 0;
    min-height: 29px;
    padding: 4px 6px;
    box-sizing: border-box;
    color: #243b53;
    background: rgba(255, 255, 255, 0.76);
    border: 1px solid rgba(44, 62, 80, 0.28);
    border-radius: 5px;
    font: inherit;
    font-size: 12px;
    font-weight: 400;
}

.warehouse-receipt-document-field textarea {
    height: 29px;
    resize: vertical;
}

.warehouse-receipt-supplier-combobox {
    position: relative;
    min-width: 0;
}

.warehouse-receipt-supplier-input {
    padding-right: 24px;
}

.warehouse-receipt-supplier-menu {
    position: absolute;
    z-index: 40;
    top: calc(100% + 2px);
    left: 0;
    right: 0;
    max-height: 260px;
    overflow-y: auto;
    border: 1px solid #b9c8d6;
    border-radius: 5px;
    background: #fff;
    box-shadow: 0 10px 22px rgba(15, 23, 42, 0.18);
}

.warehouse-receipt-supplier-option {
    display: block;
    width: 100%;
    min-height: 27px;
    padding: 4px 7px;
    border: 0;
    border-bottom: 1px solid #edf2f7;
    border-radius: 0;
    background: #fff;
    color: #172033;
    font-size: 11.5px;
    text-align: left;
}

.warehouse-receipt-supplier-option:hover,
.warehouse-receipt-supplier-option:focus {
    background: #eaf5fb;
    color: #172033;
    outline: none;
}

.warehouse-receipt-supplier-empty {
    padding: 7px;
    color: #64748b;
    font-size: 11px;
}

.warehouse-receipt-lines {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    min-width: 0;
    gap: 0;
    margin-top: 8px;
}

.warehouse-receipt-lines.is-readonly {
    grid-template-columns: minmax(0, 1fr);
}

.warehouse-receipt-article-search,
.warehouse-receipt-document-lines {
    min-width: 0;
}

.warehouse-receipt-article-search {
    padding-right: 8px;
    border-right: 1px solid rgba(44, 62, 80, 0.22);
}

.warehouse-receipt-document-lines {
    padding-left: 8px;
}

.warehouse-receipt-lines.is-readonly .warehouse-receipt-document-lines {
    padding-left: 0;
}

.warehouse-receipt-lines-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 3px;
}

.warehouse-receipt-lines-header h2 {
    color: #1f3f5b;
    font-size: 15px;
}

.warehouse-receipt-lines-count {
    color: #64748b;
    font-size: 12px;
}

.warehouse-receipt-article-search-form {
    display: grid;
    grid-template-columns: 52px 62px minmax(0, 1fr) 28px;
    align-items: center;
    gap: 3px 4px;
    margin-bottom: 3px;
}

.warehouse-receipt-article-search-field.is-quantity {
    grid-column: 1;
}

.warehouse-receipt-article-search-field.is-adjustment {
    grid-column: 2;
}

.warehouse-receipt-article-search-field.is-query {
    grid-column: 3;
}

.warehouse-receipt-article-search-button {
    grid-column: 4;
}

.warehouse-receipt-article-search-field.is-group {
    grid-column: 1 / 3;
}

.warehouse-receipt-article-search-field.is-subgroup {
    grid-column: 3 / 5;
}

.warehouse-receipt-article-search-field {
    display: grid;
    min-width: 0;
    gap: 0;
    color: #475569;
    font-size: 11.5px;
    font-weight: 700;
}

.warehouse-receipt-article-search-field input,
.warehouse-receipt-article-search-field select {
    width: 100%;
    min-width: 0;
    min-height: 27px;
    height: 27px;
    padding: 3px 5px;
    box-sizing: border-box;
    border: 1px solid rgba(44, 62, 80, 0.28);
    border-radius: 5px;
    background: rgba(255, 255, 255, 0.76);
    color: #243b53;
    font: inherit;
    font-size: 11.5px;
    font-weight: 400;
}

.warehouse-receipt-article-search-button {
    display: inline-flex;
    width: 28px;
    height: 27px;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.warehouse-receipt-article-search-button svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.warehouse-receipt-article-search-options {
    display: flex;
    grid-column: 1 / -1;
    flex-wrap: wrap;
    align-items: center;
    gap: 3px 9px;
    min-height: 20px;
    color: #475569;
    font-size: 10.5px;
}

.warehouse-receipt-article-search-options label {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.warehouse-receipt-article-search-options input {
    width: 15px;
    height: 15px;
    margin: 0;
}

.warehouse-receipt-article-results-wrap,
.warehouse-receipt-lines-table-wrap {
    max-width: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    border: 1px solid rgba(44, 62, 80, 0.18);
    border-radius: 4px;
}

.warehouse-receipt-article-results-wrap {
    max-height: 34vh;
}

.warehouse-receipt-lines-table-wrap {
    max-height: 34vh;
}

.warehouse-receipt-article-results,
.warehouse-receipt-lines-table {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
    margin: 0;
    background: rgba(255, 255, 255, 0.42);
}

.warehouse-receipt-article-results {
    min-width: 0;
}

.warehouse-receipt-lines-table {
    min-width: 0;
}

.warehouse-receipt-article-results th,
.warehouse-receipt-lines-table th {
    color: #1f3f5b;
    background: #d8e4ec;
}

.warehouse-receipt-article-results th,
.warehouse-receipt-article-results td {
    padding: 2px 3px;
    overflow: hidden;
    font-size: 10px;
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.warehouse-receipt-article-results col.is-barcode { width: 13%; }
.warehouse-receipt-article-results col.is-code { width: 11%; }
.warehouse-receipt-article-results col.is-name { width: 26%; }
.warehouse-receipt-article-results col.is-catalog { width: 21%; }
.warehouse-receipt-article-results col.is-stock { width: 9%; }
.warehouse-receipt-article-results col.is-quantity { width: 6%; }
.warehouse-receipt-article-results col.is-price { width: 10%; }
.warehouse-receipt-article-results col.is-action { width: 4%; }

.warehouse-receipt-lines-table col.is-remove { width: 4%; }
.warehouse-receipt-lines-table col.is-paid { width: 5%; }
.warehouse-receipt-lines-table col.is-code { width: 7%; }
.warehouse-receipt-lines-table col.is-barcode { width: 12%; }
.warehouse-receipt-lines-table col.is-name { width: 13%; }
.warehouse-receipt-lines-table col.is-lot { width: 8%; }
.warehouse-receipt-lines-table col.is-expiry { width: 7%; }
.warehouse-receipt-lines-table col.is-quantity { width: 6%; }
.warehouse-receipt-lines-table col.is-price { width: 7%; }
.warehouse-receipt-lines-table col.is-vat { width: 7%; }
.warehouse-receipt-lines-table col.is-total { width: 10%; }
.warehouse-receipt-lines-table col.is-action { width: 10%; }

.warehouse-receipt-lines-table col.is-vat,
.warehouse-receipt-lines-table th.is-vat,
.warehouse-receipt-lines-table td.is-vat {
    display: none;
}

.warehouse-receipt-article-results tbody tr.has-warning {
    background: rgba(255, 90, 50, 0.16);
}

.warehouse-receipt-article-results thead,
.warehouse-receipt-lines-table thead {
    position: sticky;
    top: 0;
    z-index: 1;
}

.warehouse-receipt-lines-table th,
.warehouse-receipt-lines-table td {
    padding: 3px 4px;
    overflow: hidden;
    font-size: 10.5px;
    line-height: 1.2;
    text-overflow: ellipsis;
}

.warehouse-receipt-lines-table input {
    min-width: 0;
    max-width: 100%;
    padding: 2px 3px;
    font-size: 10.5px;
}

.warehouse-receipt-line-quantity {
    width: 58px;
}

.warehouse-receipt-line-price {
    width: 76px;
}

.warehouse-receipt-line-vat {
    width: 58px;
}

.warehouse-receipt-line-remove,
.warehouse-receipt-line-paid,
.warehouse-receipt-line-actions {
    text-align: center;
    white-space: nowrap;
}

.warehouse-receipt-line-remove button,
.warehouse-receipt-line-actions button,
.warehouse-receipt-line-actions a {
    display: inline-flex;
    width: 22px;
    height: 21px;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    background: transparent;
    color: #1f3f5b;
    cursor: pointer;
    font-size: 14px;
}

.warehouse-receipt-line-remove button:hover,
.warehouse-receipt-line-actions button:hover,
.warehouse-receipt-line-actions a:hover {
    background: rgba(31, 63, 91, 0.1);
}

.warehouse-receipt-line-remove button svg {
    width: 13px;
    height: 13px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.warehouse-receipt-line-paid input[type='checkbox'] {
    width: auto;
    margin: 0;
    padding: 0;
}

.warehouse-receipt-line-details.is-hidden {
    display: none;
}

.warehouse-receipt-line-details td {
    padding: 5px 8px;
    background: rgba(216, 228, 236, 0.42);
    overflow: visible;
}

.warehouse-receipt-line-details-fields {
    display: flex;
    gap: 14px;
    align-items: center;
}

.warehouse-receipt-line-details-fields label {
    display: inline-flex;
    gap: 5px;
    align-items: center;
    color: #475569;
}

.warehouse-receipt-line-details-fields .warehouse-receipt-line-lot {
    width: 150px;
}

.warehouse-receipt-line-details-fields .warehouse-receipt-line-expiration-month,
.warehouse-receipt-line-details-fields .warehouse-receipt-line-expiration-year {
    width: 34px;
    text-align: center;
}

.warehouse-receipt-line-save-status {
    color: #64748b;
    font-size: 11px;
}

.warehouse-receipt-line-save-status[data-state='saved'] {
    color: #39765e;
}

.warehouse-receipt-line-save-status[data-state='error'] {
    color: #a33b3b;
}

.warehouse-receipt-search-name {
    min-width: 0;
}

.warehouse-receipt-search-name strong {
    color: #243b53;
    font-weight: 700;
}

.warehouse-receipt-search-catalog span {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.warehouse-receipt-search-catalog span + span {
    color: #5b7083;
    font-size: 9.5px;
}

.warehouse-receipt-search-status {
    display: inline-block;
    margin-left: 2px;
    font-size: 11px;
}

.warehouse-receipt-search-price-cell,
.warehouse-receipt-search-action {
    text-align: center;
    white-space: nowrap;
}

.warehouse-receipt-search-price-cell {
    text-overflow: clip;
}

.warehouse-receipt-search-price {
    display: inline-block;
    max-width: 100%;
    overflow: visible;
    font-size: 9.5px;
    font-weight: 700;
    text-overflow: clip;
    white-space: nowrap;
}

.warehouse-receipt-price-rule-link {
    display: inline-flex;
    width: 20px;
    height: 19px;
    align-items: center;
    justify-content: center;
    border: 0;
    background: transparent;
    text-decoration: none;
}

.warehouse-receipt-search-action button {
    display: inline-flex;
    width: 20px;
    height: 19px;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.warehouse-receipt-search-action button svg {
    width: 13px;
    height: 13px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.warehouse-receipt-document-totals {
    display: flex;
    justify-content: flex-end;
    gap: 18px;
    padding: 8px 4px 0;
    color: #475569;
    font-size: 12px;
}

.warehouse-receipt-document-totals span {
    display: inline-flex;
    align-items: baseline;
    gap: 5px;
}

.warehouse-receipt-document-totals strong {
    color: #1f3f5b;
    font-size: 14px;
}

.warehouse-editor-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(220px, 1fr));
    gap: 10px 12px;
    width: min(760px, 82vw);
    text-align: left;
}

.warehouse-editor-field,
.warehouse-editor-check {
    display: flex;
    flex-direction: column;
    gap: 5px;
    color: #334155;
    font-size: 13px;
    font-weight: 700;
}

.warehouse-editor-field input,
.warehouse-editor-field textarea {
    width: 100%;
    padding: 8px;
    box-sizing: border-box;
    border: 1px solid #cbd5e1;
    border-radius: 5px;
    font: inherit;
    font-weight: 400;
}

.warehouse-editor-field textarea {
    resize: vertical;
}

.warehouse-editor-check {
    flex-direction: row;
    align-items: center;
    font-weight: 500;
}

.warehouse-editor-check input {
    width: 16px;
    height: 16px;
}

@media (max-width: 1100px) {
    .warehouse-receipt-lines {
        grid-template-columns: minmax(0, 1fr);
        gap: 14px;
    }

    .warehouse-receipt-article-search {
        padding-right: 0;
        padding-bottom: 14px;
        border-right: 0;
        border-bottom: 1px solid rgba(44, 62, 80, 0.22);
    }

    .warehouse-receipt-document-lines {
        padding-left: 0;
    }
}

@media (max-width: 760px) {
    .warehouse-header,
    .warehouse-actions,
    .warehouse-receipts-header {
        align-items: stretch;
        flex-direction: column;
    }

    .warehouse-receipt-filters {
        align-items: stretch;
    }

    .warehouse-receipt-create-form {
        grid-template-columns: 1fr;
    }

    .warehouse-receipt-create-form button {
        width: 100%;
    }

    .warehouse-receipt-filter-field,
    .warehouse-receipt-filter-field input,
    .warehouse-receipt-filter-field select,
    .warehouse-receipt-warehouse-dropdown,
    .warehouse-receipt-warehouse-dropdown .checkbox-dropdown-toggle,
    .warehouse-receipt-filter-actions,
    .warehouse-receipt-filter-actions button,
    .warehouse-receipt-add {
        width: 100%;
    }

    .warehouse-receipt-filter-actions button {
        flex: 1;
    }

    .warehouse-receipt-create-actions,
    .warehouse-receipt-edit-save {
        width: 100%;
    }

    .warehouse-receipt-edit-header {
        flex-wrap: wrap;
    }

    .warehouse-receipt-save-status {
        order: 1;
        width: 100%;
        margin-left: 0;
        text-align: right;
    }

    .warehouse-receipt-edit-header .warehouse-receipt-confirmation-actions,
    .warehouse-receipt-edit-header .warehouse-receipt-edit-save {
        order: 2;
    }

    .warehouse-receipt-edit-header .warehouse-receipt-edit-save {
        width: auto;
    }

    .warehouse-receipt-add {
        flex: 1;
        justify-content: center;
    }

    .warehouse-receipt-document-form {
        grid-template-columns: 1fr;
    }

    .warehouse-receipt-document-field.is-note {
        grid-column: auto;
    }

    .warehouse-receipt-article-search-form {
        grid-template-columns: 52px minmax(0, 1fr) minmax(0, 1fr) 28px;
    }

    .warehouse-receipt-document-totals {
        flex-wrap: wrap;
        justify-content: flex-start;
    }

    .warehouse-editor-form {
        grid-template-columns: 1fr;
    }
}

.shop-sale-owner-field small {
    color: #64748b;
    font-size: 10px;
    font-weight: 500;
}

.shop-sale-activity-context {
    display: flex;
    grid-column: 1 / -1;
    min-width: 0;
    align-items: center;
    gap: 8px;
    padding: 5px 8px;
    border: 1px solid #c9dce9;
    border-radius: 6px;
    color: #31556f;
    background: #edf7fc;
    font-size: 12px;
}

.shop-sale-activity-context span {
    color: #64748b;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
}

.shop-sale-activity-context strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shop-sale-edit-page {
    display: flex;
    height: calc(100vh - 56px);
    height: calc(100dvh - 56px);
    min-height: 0;
    box-sizing: border-box;
    flex-direction: column;
    overflow: hidden;
}

.shop-sale-lines {
    min-height: 0;
    flex: 1;
}

.shop-sale-lines > .warehouse-receipt-article-search,
.shop-sale-lines > .warehouse-receipt-document-lines {
    display: flex;
    min-height: 0;
    flex-direction: column;
}

.shop-sale-lines.is-readonly > .warehouse-receipt-article-search {
    display: none;
}

.shop-sale-lines .warehouse-receipt-article-results-wrap,
.shop-sale-lines .warehouse-receipt-lines-table-wrap {
    min-height: 0;
    max-height: none;
    flex: 1;
}

@media (max-width: 1100px) {
    .shop-sale-edit-page {
        height: auto;
        min-height: calc(100vh - 56px);
        min-height: calc(100dvh - 56px);
        overflow: visible;
    }

    .shop-sale-lines {
        flex: none;
    }

    .shop-sale-lines .warehouse-receipt-article-results-wrap,
    .shop-sale-lines .warehouse-receipt-lines-table-wrap {
        max-height: calc(100vh - 250px);
        max-height: calc(100dvh - 250px);
        flex: none;
    }
}

.shop-sale-owner-control {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 4px;
}

.shop-sale-owner-combobox {
    min-width: 0;
    flex: 1;
}

.shop-sale-owner-open {
    display: inline-flex;
    width: 29px;
    height: 29px;
    box-sizing: border-box;
    flex: 0 0 29px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(44, 62, 80, 0.28);
    border-radius: 5px;
    color: #1f3f5b;
    background: rgba(255, 255, 255, 0.76);
}

.shop-sale-owner-open:hover {
    background: #eef4f8;
}

.shop-sale-owner-open[hidden] {
    display: none;
}

.shop-sale-owner-open svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.shop-sale-owner-blocked {
    color: #a12632;
    font-weight: 800;
}

.shop-sale-list-client {
    min-width: 180px;
}

.shop-sale-list-note {
    margin-top: 5px;
    padding-top: 5px;
    border-top: 1px solid rgba(44, 62, 80, 0.28);
    color: #425b70;
    font-size: 0.9em;
    line-height: 1.25;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.shop-sale-list-activity {
    display: flex;
    margin-top: 5px;
    padding-top: 5px;
    border-top: 1px solid rgba(44, 62, 80, 0.28);
    flex-direction: column;
    gap: 2px;
    color: #425b70;
    line-height: 1.25;
}

.shop-sale-list-activity strong {
    color: #243b53;
}

.shop-sale-list-activity a {
    color: var(--primary-color);
}

.shop-sale-list-activity small {
    color: #64748b;
}
.shop-sale-article-search-form {
    grid-template-columns: 52px minmax(0, 1fr) 28px;
}

.shop-sale-article-search-form .is-query {
    grid-column: 2;
}

.shop-sale-article-search-form .warehouse-receipt-article-search-button {
    grid-column: 3;
}

.shop-sale-article-search-form .is-group {
    grid-column: 1 / 2;
}

.shop-sale-article-search-form .is-subgroup {
    grid-column: 2 / 4;
}

.shop-sale-article-results tr.is-exact-match {
    outline: 2px solid rgba(28, 118, 87, 0.55);
    outline-offset: -2px;
}

.shop-sale-article-results tr.has-stock-warning {
    background: #fff8dd;
}

.shop-sale-article-results tr.has-stock-error {
    background: #fde9eb;
}

.shop-sale-article-results .warehouse-receipt-search-price-cell,
.shop-sale-article-results th:nth-child(8) {
    text-align: right;
}

.shop-sale-add-line {
    border: 0;
    background: transparent;
    color: #1f3f5b;
    cursor: pointer;
}

.shop-sale-add-line:hover {
    background: rgba(31, 63, 91, 0.1);
}

.shop-sale-document-article {
    color: #243b53;
    font-weight: 700;
}

.shop-sale-article-results td.warehouse-receipt-search-name,
.warehouse-receipt-lines-table td.shop-sale-document-article {
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
    overflow-wrap: anywhere;
}

.shop-sale-number-cell,
.shop-sale-money-cell {
    text-align: right;
    white-space: nowrap;
}

.shop-sale-discount-input {
    width: 68px;
    padding: 4px 5px;
    border: 1px solid #b8c9d8;
    border-radius: 4px;
    background: #fff;
    color: #243b53;
    font: inherit;
    text-align: right;
}

.shop-sale-discount-input:focus {
    border-color: var(--accent-color);
    outline: none;
    box-shadow: 0 0 0 2px rgba(31, 63, 91, 0.12);
}

.shop-sale-exact-match,
.shop-sale-price-warning {
    display: block;
    color: #9a5b06;
    font-size: 10px;
    font-weight: 700;
}

.shop-sale-total {
    padding: 7px 4px 0;
    color: #1f3f5b;
    font-size: 14px;
    text-align: right;
}

.shop-sale-total strong {
    font-size: 17px;
}

.shop-sale-audit {
    display: flex;
    margin-left: auto;
    align-items: center;
    gap: 6px 14px;
    color: #64748b;
    font-size: 9.5px;
    white-space: nowrap;
}

.shop-sale-audit span {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.shop-sale-audit strong {
    color: #334155;
    font-size: 10.5px;
}

.shop-sale-start-form {
    grid-template-columns:
        minmax(115px, 0.65fr) minmax(135px, 0.75fr) minmax(190px, 1.05fr)
        minmax(145px, 0.8fr) minmax(430px, 2.4fr);
}

.shop-sale-start-form.has-single-fiscal-object {
    grid-template-columns:
        minmax(135px, 0.75fr) minmax(190px, 1.05fr)
        minmax(145px, 0.8fr) minmax(430px, 2.4fr);
}

.shop-sale-start-form.has-single-warehouse {
    grid-template-columns:
        minmax(115px, 0.65fr) minmax(190px, 1.05fr)
        minmax(145px, 0.8fr) minmax(430px, 2.4fr);
}

.shop-sale-start-form.has-single-fiscal-object.has-single-warehouse {
    grid-template-columns:
        minmax(190px, 1.05fr) minmax(145px, 0.8fr) minmax(430px, 2.4fr);
}

.shop-sale-start-form .warehouse-receipt-document-field[hidden] {
    display: none;
}

.shop-sale-start-form .warehouse-receipt-document-field.is-note {
    grid-column: auto;
}

.shop-sale-payment-panel {
    display: flex;
    min-width: 0;
    min-height: 43px;
    align-items: end;
    gap: 5px 8px;
    padding: 4px 6px;
    border: 1px solid #bfd0df;
    border-radius: 5px;
    background: #f7fafc;
    color: #243b53;
}

.shop-sale-payment-unp {
    display: flex;
    min-width: 140px;
    align-self: stretch;
    justify-content: center;
    flex-direction: column;
    gap: 2px;
}

.shop-sale-payment-unp span {
    color: #64748b;
    font-size: 9.5px;
}

.shop-sale-payment-controls,
.shop-sale-payment-facts {
    display: flex;
    min-width: 0;
    flex: 1;
    align-items: end;
    gap: 5px 7px;
}

.shop-sale-payment-controls label,
.shop-sale-payment-facts span {
    display: flex;
    min-width: 70px;
    flex-direction: column;
    gap: 2px;
    color: #64748b;
    font-size: 9.5px;
}

.shop-sale-payment-controls .shop-sale-cash-field[hidden] {
    display: none;
}

.shop-sale-payment-controls label > strong,
.shop-sale-payment-facts strong {
    color: #243b53;
    font-size: 11.5px;
    white-space: nowrap;
}

.shop-sale-payment-controls select,
.shop-sale-payment-controls input {
    width: 90px;
    min-width: 0;
    height: 25px;
    padding: 2px 5px;
    box-sizing: border-box;
    border: 1px solid #b8c6d4;
    border-radius: 5px;
    background: #fff;
    color: #243b53;
    font-size: 11px;
}

.shop-sale-complete {
    min-width: 96px;
    height: 27px;
    padding: 3px 7px;
    border: 1px solid #176b50;
    border-radius: 5px;
    background: #1c7657;
    color: #fff;
    cursor: pointer;
    font-size: 10.5px;
    font-weight: 800;
    white-space: nowrap;
}

.shop-sale-complete:disabled {
    border-color: #aab7c4;
    background: #b8c2cc;
    cursor: not-allowed;
}

.shop-sale-payment-panel.is-paid {
    border-color: #9fcab4;
    background: #edf8f2;
}

.shop-sale-payment-panel.is-stornored {
    border-color: #dca0a7;
    background: #fde7e9;
}

@media (max-width: 1300px) {
    .shop-sale-start-form,
    .shop-sale-start-form.has-single-fiscal-object,
    .shop-sale-start-form.has-single-warehouse,
    .shop-sale-start-form.has-single-fiscal-object.has-single-warehouse {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .shop-sale-payment-panel {
        grid-column: 1 / -1;
    }
}

@media (max-width: 760px) {
    .shop-sale-audit {
        width: 100%;
        margin-left: 35px;
        flex-wrap: wrap;
    }

    .shop-sale-payment-panel {
        align-items: flex-start;
        flex-direction: column;
    }

    .shop-sale-payment-controls,
    .shop-sale-payment-facts {
        width: 100%;
        flex-wrap: wrap;
    }

    .shop-sale-complete {
        width: 100%;
    }
}

/* ============================================================
   Article catalog groups
   ============================================================ */
.article-catalog-page {
    padding: 14px;
}

.article-catalog-header,
.article-group-block-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.article-catalog-header {
    margin-bottom: 12px;
}

.article-catalog-header h1,
.article-group-block-header h2 {
    margin: 0;
    color: #1f3f5b;
    line-height: 1.2;
}

.article-catalog-header h1 {
    font-size: 24px;
}

.article-group-block-header h2 {
    font-size: 19px;
}

.article-group-title-wrap {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 0;
}

.article-group-title-wrap .article-catalog-meta {
    grid-column: 2;
}

.article-catalog-actions,
.article-catalog-row-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.article-catalog-toggle,
.article-catalog-editor-check {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #334155;
    font-size: 14px;
}

.article-catalog-list {
    display: grid;
    gap: 14px;
}

.article-group-block {
    padding: 14px;
    background: rgba(255, 255, 255, 0.42);
    border: 1px solid rgba(44, 62, 80, 0.18);
    border-radius: 6px;
}

.sortable-handle,
.article-catalog-drag-handle {
    cursor: grab;
}

.article-catalog-drag-handle {
    display: inline-flex;
    width: 24px;
    min-width: 24px;
    align-items: center;
    justify-content: center;
    margin-right: 8px;
    color: #64748b;
    font-weight: 700;
    letter-spacing: 0;
    user-select: none;
}

.sortable-handle:active,
.article-catalog-drag-handle:active {
    cursor: grabbing;
}

.sortable-dragging {
    opacity: 0.45;
}

.sortable-placeholder {
    border: 2px dashed var(--accent-color, #2f80ed);
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.38);
}

tr.sortable-placeholder td {
    border: 2px dashed var(--accent-color, #2f80ed);
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.38);
}

.article-catalog-meta,
.article-catalog-description {
    color: #64748b;
    font-size: 13px;
}

.article-catalog-description {
    margin: 10px 0 0;
}

.article-catalog-flags {
    display: grid;
    gap: 4px;
    margin-top: 10px;
}

.article-catalog-flag-group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
}

.article-catalog-flag-group-label {
    min-width: 88px;
    color: #64748b;
    font-size: 11px;
    font-weight: 700;
}

.warehouse-receipt-document-field[hidden] {
    display: none;
}

.article-catalog-flag {
    display: inline-flex;
    align-items: center;
    min-height: 23px;
    padding: 2px 8px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 12px;
    line-height: 1.2;
}

.article-catalog-flag-system {
    border-color: #e1d9eb;
    background: #f5f1f8;
    color: #62536f;
}

.article-catalog-flag-context {
    border-color: #d5e7f1;
    background: #eef7fb;
    color: #315f79;
}

.article-catalog-flag-type {
    border-color: #d6eadc;
    background: #eff8f2;
    color: #326347;
}

.article-catalog-flag-muted {
    background: #f1f5f9;
    color: #64748b;
}

.article-subgroup-table {
    width: 100%;
    margin-top: 12px;
    border-collapse: collapse;
    background: rgba(255, 255, 255, 0.32);
}

.article-subgroup-table th,
.article-subgroup-table td {
    padding: 9px 8px;
    border-bottom: 1px solid rgba(44, 62, 80, 0.14);
    text-align: left;
    vertical-align: top;
}

.article-subgroup-table th {
    color: #475569;
    font-weight: 700;
}

.article-catalog-empty,
.article-catalog-empty-row {
    padding: 18px;
    color: #475569;
    text-align: center;
}

.article-catalog-empty {
    background: rgba(255, 255, 255, 0.42);
    border: 1px solid rgba(44, 62, 80, 0.18);
    border-radius: 6px;
}

.article-catalog-editor-form {
    display: grid;
    gap: 10px 12px;
    width: min(820px, 82vw);
    text-align: left;
}

.article-catalog-modal-content {
    max-height: min(68vh, 620px);
    overflow-y: auto;
    padding-right: 6px;
}

.article-catalog-editor-sections {
    display: grid;
    gap: 10px;
}

.article-catalog-editor-section {
    padding: 10px;
    border: 1px solid #dbe3ec;
    border-radius: 6px;
    background: #f8fafc;
}

.article-catalog-editor-section-system {
    border-color: #e1d9eb;
    background: #faf8fc;
}

.article-catalog-editor-section-context {
    border-color: #d5e7f1;
    background: #f5fafc;
}

.article-catalog-editor-section-type {
    border-color: #d6eadc;
    background: #f5faf7;
}

.article-catalog-editor-section h3 {
    margin: 0 0 9px;
    color: #334155;
    font-size: 14px;
}

.article-catalog-editor-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(180px, 1fr));
    gap: 10px;
}

.article-catalog-editor-field {
    display: flex;
    flex-direction: column;
    gap: 5px;
    color: #334155;
    font-size: 13px;
    font-weight: 700;
}

.article-catalog-editor-field input,
.article-catalog-editor-field select,
.article-catalog-editor-field textarea {
    width: 100%;
    padding: 8px;
    box-sizing: border-box;
    border: 1px solid #cbd5e1;
    border-radius: 5px;
    font: inherit;
    font-weight: 400;
}

.article-catalog-editor-field textarea {
    resize: vertical;
}

.article-catalog-editor-check {
    font-weight: 500;
}

.article-catalog-editor-check input {
    width: 16px;
    height: 16px;
}

@media (max-width: 760px) {
    .article-catalog-header,
    .article-group-block-header,
    .article-catalog-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .article-catalog-editor-grid {
        grid-template-columns: 1fr;
    }

    .article-subgroup-table {
        display: block;
        overflow-x: auto;
    }
}

/* ============================================================
   Article price rules
   ============================================================ */
.article-prices-page {
    display: flex;
    height: calc(100vh - 58px);
    min-height: 520px;
    flex-direction: column;
    overflow: hidden;
    padding: 10px 14px 8px;
    box-sizing: border-box;
}

.article-price-header {
    flex: 0 0 auto;
    margin-bottom: 8px;
}

.article-price-header h1 {
    margin: 0;
    color: #1f3f5b;
    font-size: 24px;
    line-height: 1.2;
}

.article-price-layout {
    display: grid;
    flex: 1 1 auto;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    gap: 1px;
    min-height: 0;
    overflow: hidden;
}

.article-price-browser,
.article-price-workspace {
    background: rgba(255, 255, 255, 0.42);
    border: 1px solid rgba(44, 62, 80, 0.18);
    border-radius: 6px;
}

.article-price-browser {
    display: flex;
    min-width: 0;
    min-height: 0;
    flex-direction: column;
    overflow: hidden;
}

.article-price-filters {
    display: grid;
    flex: 0 0 auto;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 94px;
    gap: 9px;
    padding: 8px;
    border-bottom: 1px solid rgba(44, 62, 80, 0.16);
    background: rgba(255, 255, 255, 0.72);
}

.article-price-filters label {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 4px;
    color: #334155;
    font-size: 12px;
    font-weight: 700;
}

.article-price-filters input,
.article-price-filters select {
    width: 100%;
    min-width: 0;
    min-height: 28px;
    padding: 4px 7px;
    box-sizing: border-box;
    border: 1px solid #cbd5e1;
    border-radius: 5px;
    background: #fff;
    font: inherit;
    font-weight: 400;
}

.article-price-filters label.article-price-different-filter {
    display: flex;
    grid-column: 1 / -1;
    flex-direction: row;
    align-items: center;
    gap: 6px;
    font-weight: 600;
}

.article-price-filters .article-price-different-filter input {
    width: 16px;
    min-height: 16px;
    margin: 0;
}

.article-price-search-row {
    display: contents;
}

.article-price-action-row {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px;
    align-items: end;
}

.article-price-filter-actions {
    display: flex;
    align-items: end;
    justify-content: flex-end;
    gap: 6px;
}

.article-price-filter-actions button {
    min-height: 28px;
    padding: 4px 8px;
    font-size: 12px;
}

.article-price-results {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

.article-price-result-count {
    position: sticky;
    top: 0;
    z-index: 2;
    padding: 5px 8px;
    color: #64748b;
    border-bottom: 1px solid rgba(44, 62, 80, 0.12);
    background: rgba(248, 250, 252, 0.96);
    font-size: 11px;
}

.article-price-result-table {
    width: max-content;
    min-width: 100%;
    margin: 0;
    border: 0;
    background: transparent;
    table-layout: auto;
    font-size: 9px;
}

.article-price-result-table thead th {
    position: sticky;
    top: 27px;
    z-index: 2;
    padding: 4px 5px;
    color: #000;
    background: rgba(241, 245, 249, 0.98);
    font-size: 9px;
    line-height: 1.15;
}

.article-price-result-table th,
.article-price-result-table td {
    padding: 3px 5px;
    border-bottom: 1px solid rgba(44, 62, 80, 0.1);
    line-height: 1.16;
    vertical-align: middle;
}

.article-price-result-table th:nth-child(1),
.article-price-result-table td:nth-child(1) {
    width: 1%;
    padding-right: 3px;
    padding-left: 3px;
    white-space: nowrap;
}

.article-price-result-table th:nth-child(2),
.article-price-result-table td:nth-child(2) {
    width: auto;
}

.article-price-result-table th:nth-child(3),
.article-price-result-table td:nth-child(3),
.article-price-result-table th:nth-child(4),
.article-price-result-table td:nth-child(4) {
    width: 1%;
    overflow-wrap: anywhere;
    white-space: nowrap;
}

.article-price-result-table tbody tr[data-article-price-item] {
    cursor: pointer;
}

.article-price-result-table tbody tr.has-price-warning {
    background: #fff1a8;
}

.article-price-result-table tbody tr.has-no-price-rules {
    box-shadow: inset 4px 0 0 #dc2626;
}

.article-price-result-table tbody tr.has-different-sale-prices {
    box-shadow: inset 4px 0 0 #f97316;
}

.article-price-result-table tbody tr[data-article-price-item]:hover,
.article-price-result-table tbody tr[data-article-price-item]:focus-visible {
    background: rgba(31, 63, 91, 0.06);
    outline: none;
}

.article-price-result-table tbody tr.has-price-warning:hover,
.article-price-result-table tbody tr.has-price-warning:focus-visible {
    background: #ffe082;
}


.article-price-result-table tr.is-selected {
    background: rgba(31, 63, 91, 0.08);
    box-shadow: inset 3px 0 0 #1f3f5b;
}

.article-price-result-table tr.has-price-warning.is-selected {
    background: #ffd166;
}

.article-price-result-table tr.has-no-price-rules.is-selected {
    box-shadow: inset 4px 0 0 #b91c1c;
}

.article-price-result-table tr.has-different-sale-prices.is-selected {
    box-shadow: inset 4px 0 0 #ea580c;
}

.article-price-result-name {
    white-space: nowrap;
}

.article-price-result-name strong,
.article-price-result-name span {
    display: inline;
}

.article-price-result-table strong {
    color: #1f3f5b;
    font-size: 9px;
    font-weight: 700;
}

.article-price-result-table span {
    color: #64748b;
    font-size: 9px;
}

.article-price-status-icon {
    margin-left: 2px;
    display: inline;
    margin-right: 2px;
    color: #b91c1c;
    font-size: 9px;
    line-height: 1;
}

.article-price-status-icon:last-child {
    margin-right: 0;
}

.article-price-workspace {
    min-width: 0;
    overflow: auto;
    padding: 8px;
}

.article-price-workspace-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(44, 62, 80, 0.14);
}

.article-price-workspace-header h2 {
    margin: 0;
    color: #1f3f5b;
    font-size: 19px;
    line-height: 1.25;
}

.article-price-workspace-header p {
    margin: 3px 0 0;
    color: #64748b;
    font-size: 13px;
}

.article-price-vat {
    flex: 0 0 auto;
    padding: 6px 9px;
    color: #334155;
    background: rgba(219, 234, 254, 0.72);
    border: 1px solid rgba(37, 99, 235, 0.18);
    border-radius: 5px;
    font-size: 12px;
    font-weight: 700;
}

.article-price-article-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 14px;
    padding: 10px 0;
    color: #475569;
    font-size: 12px;
}

.article-price-add-row {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) minmax(130px, 180px) 78px 30px max-content;
    gap: 6px;
    align-items: center;
    margin-bottom: 8px;
}

.article-price-add-row select {
    width: 100%;
    min-width: 0;
    height: 28px;
    padding: 3px 6px;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    background: #fff;
    font-size: 12px;
}

.article-price-add-button {
    width: 28px;
    height: 28px;
    padding: 0;
    font-size: 18px;
    line-height: 1;
}
.article-price-articles-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    padding: 3px 9px;
    border: 1px solid #94a3b8;
    border-radius: 4px;
    color: #334155;
    background: #f8fafc;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
}

.article-price-articles-button:hover {
    background: #e2e8f0;
}

.article-price-base-row th {
    padding-top: 3px;
    padding-bottom: 3px;
    color: #000;
    background: rgba(226, 232, 240, 0.75);
    font-weight: 400;
    text-align: center;
}

.article-price-base-row label {
    display: inline-flex;
    gap: 3px;
    align-items: center;
    color: #000;
    font-size: 10px;
}

.article-price-value-cell {
    width: 44px;
}

.article-price-value-input,
.article-price-percent-input {
    height: 22px;
    min-width: 0;
    padding: 1px 2px;
    box-sizing: border-box;
    border: 1px solid #cbd5e1;
    border-radius: 3px;
    background: #fff;
    font-size: 10px;
    text-align: right;
}

.article-price-value-input[data-price-kind="gross"] {
    background: #f8fafc;
}

.article-price-value-input {
    width: 100%;
}

.article-price-percent-input {
    width: 100%;
}

.article-price-rule-actions {
    display: flex;
    gap: 2px;
}

.article-price-rule-actions button {
    width: 18px;
    height: 22px;
    padding: 0;
    border-radius: 3px;
    font-size: 11px;
    line-height: 1;
}

.article-price-rule-actions [data-price-delete] {
    color: #b91c1c;
}


.article-price-table-wrap {
    overflow-x: hidden;
    border: 1px solid rgba(44, 62, 80, 0.16);
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.56);
}

.article-price-rule-table {
    width: 100%;
    min-width: 0;
    margin: 0;
    background: transparent;
    table-layout: fixed;
    font-size: 10px;
}

.article-price-rule-table th,
.article-price-rule-table td {
    padding: 2px;
    white-space: nowrap;
    vertical-align: middle;
}

.article-price-rule-table thead tr:not(.article-price-base-row) th:nth-child(1),
.article-price-rule-table tbody td:nth-child(1) { width: 28px; }
.article-price-rule-table thead tr:not(.article-price-base-row) th:nth-child(3),
.article-price-rule-table tbody td:nth-child(3) { width: 48px; }
.article-price-rule-table thead tr:not(.article-price-base-row) th:nth-child(4),
.article-price-rule-table tbody td:nth-child(4) { width: 32px; }
.article-price-rule-table thead tr:not(.article-price-base-row) th:nth-child(5),
.article-price-rule-table tbody td:nth-child(5),
.article-price-rule-table thead tr:not(.article-price-base-row) th:nth-child(6),
.article-price-rule-table tbody td:nth-child(6),
.article-price-rule-table thead tr:not(.article-price-base-row) th:nth-child(8),
.article-price-rule-table tbody td:nth-child(8),
.article-price-rule-table thead tr:not(.article-price-base-row) th:nth-child(9),
.article-price-rule-table tbody td:nth-child(9),
.article-price-rule-table thead tr:not(.article-price-base-row) th:nth-child(11),
.article-price-rule-table tbody td:nth-child(11),
.article-price-rule-table thead tr:not(.article-price-base-row) th:nth-child(12),
.article-price-rule-table tbody td:nth-child(12) { width: 44px; }
.article-price-rule-table thead tr:not(.article-price-base-row) th:nth-child(7),
.article-price-rule-table tbody td:nth-child(7),
.article-price-rule-table thead tr:not(.article-price-base-row) th:nth-child(10),
.article-price-rule-table tbody td:nth-child(10) { width: 34px; }
.article-price-rule-table thead tr:not(.article-price-base-row) th:nth-child(13),
.article-price-rule-table tbody td:nth-child(13) { width: 58px; }

.article-price-rule-table td:nth-child(2),
.article-price-rule-table td:nth-child(3) {
    overflow: hidden;
    text-overflow: ellipsis;
}

.article-price-editor-note {
    margin-top: 10px;
    padding: 10px 12px;
    color: #64748b;
    background: rgba(248, 250, 252, 0.78);
    border: 1px solid rgba(44, 62, 80, 0.12);
    border-radius: 6px;
    font-size: 13px;
}

.article-price-empty {
    padding: 24px 14px;
    color: #64748b;
    text-align: center;
}

@media (max-width: 850px) {
    .article-prices-page {
        height: auto;
        overflow: visible;
    }

    .article-price-layout {
        grid-template-columns: 1fr;
        overflow: visible;
    }

    .article-price-browser {
        max-height: 70vh;
    }

    .article-price-workspace {
        min-height: 320px;
    }
}

@media (max-width: 520px) {
    .article-price-filters,
    .article-price-action-row {
        grid-template-columns: 1fr;
    }

    .article-price-search-row {
        display: grid;
        grid-column: 1 / -1;
        grid-template-columns: 1fr;
        gap: 9px;
    }
}

/* ============================================================
   Help
   ============================================================ */
.help-page {
    padding: 14px;
}

.help-window-body {
    display: block;
    min-height: 100vh;
    background: #f4f7fb;
}

.help-window-main {
    min-height: 100vh;
}

.help-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.help-header h1 {
    margin: 0;
    color: #1f3f5b;
    font-size: 24px;
    line-height: 1.2;
}

.help-content,
.help-editor {
    padding: 16px;
    background: rgba(255, 255, 255, 0.42);
    border: 1px solid rgba(44, 62, 80, 0.18);
    border-radius: 6px;
}

.help-content {
    line-height: 1.55;
}

.help-content img {
    max-width: 100%;
    height: auto;
}

.help-empty {
    padding: 24px;
    color: #475569;
    text-align: center;
}

.help-editor .simple-editor-area {
    min-height: 520px;
}

.help-editor-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 12px;
}

@media (max-width: 760px) {
    .help-header {
        align-items: stretch;
        flex-direction: column;
    }
}

/* Manipulation settings */
.manipulation-settings-page {
    padding: 24px;
}

.manipulation-settings-form {
    width: min(100%, 560px);
}

.manipulation-settings-form h1 {
    margin: 0 0 18px;
}

.manipulation-settings-table {
    width: 100%;
    border-collapse: collapse;
}

.manipulation-settings-table td {
    padding: 6px 8px;
    vertical-align: middle;
}

.manipulation-settings-table td:first-child {
    width: 62%;
    padding-left: 0;
}

.manipulation-settings-table td:last-child {
    padding-right: 0;
}

.manipulation-settings-table label {
    display: block;
}

.manipulation-settings-table input {
    width: 100%;
    max-width: 180px;
}

.manipulation-settings-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 14px;
}

.manipulation-settings-status {
    color: #16803a;
    font-weight: 600;
}

@media (max-width: 560px) {
    .manipulation-settings-page {
        padding: 16px;
    }

    .manipulation-settings-table,
    .manipulation-settings-table tbody,
    .manipulation-settings-table tr,
    .manipulation-settings-table td {
        display: block;
        width: 100%;
    }

    .manipulation-settings-table td {
        padding: 4px 0;
    }

    .manipulation-settings-table td:last-child {
        padding-bottom: 12px;
    }

    .manipulation-settings-table input {
        max-width: none;
    }
}
/* Manipulation groups */
.manipulation-groups-page {
    padding: 24px;
}

.manipulation-groups-page h1 {
    margin: 0 0 18px;
}

.manipulation-groups-table-wrap {
    overflow-x: auto;
}

.manipulation-groups-table {
    width: 100%;
    min-width: 1080px;
    border-collapse: collapse;
}

.manipulation-groups-table th,
.manipulation-groups-table td {
    white-space: nowrap;
    text-align: center;
    vertical-align: middle;
}

.manipulation-groups-table th:nth-child(4),
.manipulation-groups-table td:nth-child(4) {
    text-align: left;
}

.manipulation-groups-table input[type="text"],
.manipulation-groups-table input[type="number"] {
    min-width: 0;
    padding: 5px 6px;
}

.manipulation-group-code,
.manipulation-group-sort {
    width: 58px;
}

.manipulation-group-name {
    width: 100%;
    min-width: 300px !important;
}

.manipulation-group-color-cell input {
    vertical-align: middle;
}

.manipulation-group-color-cell input + input {
    margin-left: 6px;
}

.manipulation-group-color-cell input[type="color"] {
    width: 42px;
    height: 30px;
    padding: 2px;
}

.manipulation-group-save-cell {
    width: 44px;
}

.manipulation-group-save svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.manipulation-group-new-row td {
    background: rgba(15, 23, 42, 0.035);
}

@media (max-width: 720px) {
    .manipulation-groups-page {
        padding: 16px;
    }
}
/* Manipulation price list */
.manipulation-prices-page { padding: 24px; }
.manipulation-prices-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.manipulation-prices-header h1 { margin: 0 0 4px; }
.manipulation-prices-filters { display: flex; align-items: center; gap: 22px; margin-bottom: 16px; }
.manipulation-prices-filters label { display: inline-flex; align-items: center; gap: 7px; }
.manipulation-prices-filters select { min-width: 360px; max-width: min(680px, 70vw); }
.manipulation-prices-table-wrap { overflow-x: auto; }
.manipulation-prices-table { width: 100%; min-width: 1260px; border-collapse: collapse; }
.manipulation-prices-table th, .manipulation-prices-table td { text-align: center; vertical-align: middle; white-space: nowrap; }
.manipulation-prices-table th:nth-child(3), .manipulation-prices-table td:nth-child(3) { text-align: left; }
.manipulation-prices-table input, .manipulation-prices-table select { padding: 5px 6px; }
.manipulation-price-sort { width: 62px; }
.manipulation-price-name { width: 100%; min-width: 430px; }
.manipulation-price-value { width: 92px; text-align: right; }
.manipulation-price-new-row td { background: rgba(15, 23, 42, 0.035); }
.manipulation-price-save svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 720px) {
    .manipulation-prices-page { padding: 16px; }
    .manipulation-prices-header, .manipulation-prices-filters { align-items: stretch; flex-direction: column; }
    .manipulation-prices-filters select { min-width: 0; max-width: 100%; width: 100%; }
}

/* Schedule spaces */
.schedule-spaces-page {
    padding: 24px;
}

.schedule-spaces-page h1 {
    margin: 0 0 16px;
}

.schedule-spaces-table-wrap {
    overflow-x: auto;
}

.schedule-spaces-table {
    width: 100%;
    max-width: 920px;
    border-collapse: collapse;
}

.schedule-spaces-table th,
.schedule-spaces-table td {
    text-align: center;
    vertical-align: middle;
    white-space: nowrap;
}

.schedule-spaces-table th:nth-child(2),
.schedule-spaces-table td:nth-child(2) {
    text-align: left;
}

.schedule-space-name {
    width: 100%;
    min-width: 320px;
}

.schedule-space-color-cell input[type="color"] {
    width: 48px;
    height: 30px;
    padding: 2px;
}

.schedule-space-save-cell { width: 44px; }
.schedule-space-save svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.schedule-space-new-row td { background: rgba(15, 23, 42, 0.035); }
.schedule-space-hidden-row { opacity: 0.62; }

@media (max-width: 720px) {
    .schedule-spaces-page { padding: 16px; }
}

/* Admin holidays */
.admin-holidays-page {
    padding: 24px;
}

.admin-holidays-page h1 {
    margin: 0 0 16px;
}

.admin-holidays-table {
    width: 100%;
    max-width: 760px;
    border-collapse: collapse;
}

.admin-holidays-table th,
.admin-holidays-table td {
    text-align: center;
    vertical-align: middle;
    white-space: nowrap;
}

.admin-holidays-table th:nth-child(3),
.admin-holidays-table td:nth-child(3) {
    text-align: left;
}

.admin-holiday-note {
    width: 100%;
    min-width: 320px;
}

.admin-holiday-actions {
    display: flex;
    gap: 6px;
    justify-content: center;
}

.admin-holiday-save svg,
.admin-holiday-delete svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.admin-holiday-delete {
    color: #b91c1c;
    background: #f8fafc;
}

.admin-holiday-delete:hover {
    color: #fff;
    background: #b91c1c;
}

@media (max-width: 720px) {
    .admin-holidays-page {
        padding: 16px;
    }
}

/* Patient regions */
.patient-regions-page {
    padding: 24px;
}

.patient-regions-page h1 {
    margin: 0 0 16px;
}

.patient-regions-table-wrap {
    overflow-x: auto;
}

.patient-regions-table {
    width: 100%;
    max-width: 820px;
    border-collapse: collapse;
}

.patient-regions-table th,
.patient-regions-table td {
    text-align: center;
    vertical-align: middle;
    white-space: nowrap;
}

.patient-regions-table th:nth-child(2),
.patient-regions-table td:nth-child(2) {
    text-align: left;
}

.patient-region-description {
    width: 100%;
    min-width: 320px;
}

.patient-region-sort {
    width: 72px;
}

.patient-region-hidden-cell {
    text-align: center;
}

.patient-region-save-cell {
    width: 44px;
}

.patient-region-save svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.patient-region-new-row td {
    background: rgba(15, 23, 42, 0.035);
}

.patient-region-hidden-row {
    opacity: 0.62;
}

@media (max-width: 720px) {
    .patient-regions-page {
        padding: 16px;
    }
}

/* Owner statuses */
.owner-statuses-page {
    padding: 24px;
}

.owner-statuses-page h1 {
    margin: 0 0 16px;
}

.owner-statuses-table-wrap {
    overflow-x: auto;
}

.owner-statuses-table {
    width: 100%;
    max-width: 820px;
    border-collapse: collapse;
}

.owner-statuses-table th,
.owner-statuses-table td {
    text-align: center;
    vertical-align: middle;
    white-space: nowrap;
}

.owner-statuses-table th:nth-child(2),
.owner-statuses-table td:nth-child(2) {
    text-align: left;
}

.owner-status-description {
    width: 100%;
    min-width: 320px;
}

.owner-status-sort {
    width: 72px;
}

.owner-status-hidden-cell {
    text-align: center;
}

.owner-status-save-cell {
    width: 44px;
}

.owner-status-save svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.owner-status-new-row td {
    background: rgba(15, 23, 42, 0.035);
}

.owner-status-hidden-row {
    opacity: 0.62;
}

@media (max-width: 720px) {
    .owner-statuses-page {
        padding: 16px;
    }
}

/* Medication applications */
.medication-applications-page {
    padding: 24px;
}

.medication-applications-page h1 {
    margin: 0 0 16px;
}

.medication-applications-table-wrap {
    overflow-x: auto;
}

.medication-applications-table {
    width: 100%;
    max-width: 760px;
    border-collapse: collapse;
}

.medication-applications-table th,
.medication-applications-table td {
    text-align: center;
    vertical-align: middle;
    white-space: nowrap;
}

.medication-applications-table th:nth-child(2),
.medication-applications-table td:nth-child(2) {
    text-align: left;
}

.medication-application-name {
    width: 100%;
    min-width: 320px;
}

.medication-application-sort {
    width: 72px;
}

.medication-application-save-cell {
    width: 44px;
}

.medication-application-save svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.medication-application-new-row td {
    background: rgba(15, 23, 42, 0.035);
}

.article-price-rule-table tr.is-deleted {
    opacity: 0.55;
}

.article-price-rule-table tr.is-deleted td {
    background: #f0cccc;
}

.article-price-deleted-badge {
    display: inline-block;
    margin-left: 6px;
    padding: 2px 6px;
    border-radius: 10px;
    font-size: 11px;
    line-height: 1;
    border: 1px solid #999;
    color: #666;
    background: #fff;
}

@media (max-width: 720px) {
    .medication-applications-page {
        padding: 16px;
    }
}

/* Imaging types */
.imaging-types-page {
    padding: 24px;
}

.imaging-types-page h1 {
    margin: 0 0 16px;
}

.imaging-types-table-wrap {
    overflow-x: auto;
}

.imaging-types-table {
    width: 100%;
    max-width: 820px;
    border-collapse: collapse;
}

.imaging-types-table th,
.imaging-types-table td {
    text-align: center;
    vertical-align: middle;
    white-space: nowrap;
}

.imaging-types-table th:nth-child(2),
.imaging-types-table td:nth-child(2) {
    text-align: left;
}

.imaging-type-name {
    width: 100%;
    min-width: 320px;
}

.imaging-type-sort {
    width: 80px;
}

.imaging-type-save-cell {
    width: 44px;
}

.imaging-type-save svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.shop-sale-owner-cash {
    min-height: 29px;
    flex: 0 0 auto;
    padding: 4px 9px;
    border-radius: 5px;
    font-size: 12px;
    line-height: 1.1;
    white-space: nowrap;
}

.shop-sale-owner-cash[hidden] {
    display: none;
}

.imaging-type-new-row td {
    background: rgba(15, 23, 42, 0.035);
}

.imaging-types-table tr.is-inactive {
    opacity: 0.58;
}

@media (max-width: 720px) {
    .imaging-types-page {
        padding: 16px;
    }
}

/* Exam diagnoses */
.exam-diagnoses-page {
    padding: 24px;
}
.exam-diagnoses-page h1 {
    margin-bottom: 6px;
}
.exam-diagnoses-note {
    margin: 0 0 16px;
    color: #5f6b7a;
    font-size: 0.92rem;
}
.exam-diagnoses-table-wrap {
    overflow-x: auto;
}
.exam-diagnoses-table,
.exam-diagnosis-symptoms-table {
    width: 100%;
    border-collapse: collapse;
}
.exam-diagnoses-table th,
.exam-diagnoses-table td,
.exam-diagnosis-symptoms-table td {
    padding: 8px 10px;
    vertical-align: middle;
}
.exam-diagnoses-table th:nth-child(2),
.exam-diagnoses-table td:nth-child(2) {
    min-width: 280px;
}
.exam-diagnosis-description,
.exam-diagnosis-symptom-description {
    width: 100%;
    min-width: 240px;
}
.exam-diagnosis-sort,
.exam-diagnosis-symptom-sort {
    width: 84px;
}
.exam-diagnosis-checkbox-cell {
    text-align: center;
}
.exam-diagnosis-save-cell {
    width: 52px;
    text-align: center;
}
.exam-diagnosis-save svg {
    width: 18px;
    height: 18px;
}
.exam-diagnosis-open-cell {
    cursor: pointer;
}
.exam-diagnosis-row.is-expanded {
    background: rgba(18, 115, 168, 0.05);
}
.exam-diagnosis-symptoms-row {
    display: none;
}
.exam-diagnosis-symptoms-row.is-open {
    display: table-row;
}
.exam-diagnosis-symptoms-panel {
    padding: 6px 0 10px 20px;
}
.exam-diagnosis-symptoms-panel small {
    display: inline-block;
    margin-bottom: 8px;
    color: #5f6b7a;
}
.exam-diagnosis-symptoms-table td:first-child {
    width: 80px;
}
.exam-diagnosis-new-row td,
.exam-diagnosis-symptom-new-row td {
    background: rgba(18, 115, 168, 0.04);
}
@media (max-width: 768px) {
    .exam-diagnoses-page {
        padding: 16px;
    }
    .exam-diagnosis-symptoms-panel {
        padding-left: 8px;
    }
}

/* Patient species and breeds */
.patient-species-breeds-page {
    padding: 24px;
}

.patient-species-breeds-page h1 {
    margin-bottom: 6px;
}

.patient-species-breeds-note {
    margin: 0 0 16px;
    color: #5f6b7a;
    font-size: 0.92rem;
}

.patient-species-breeds-table-wrap {
    overflow-x: auto;
}

.patient-species-breeds-search {
    margin-bottom: 12px;
}

.patient-species-breeds-search .local-list-search-input-wrap {
    width: min(620px, 100%);
}

.patient-species-table,
.patient-breeds-table {
    width: 100%;
    border-collapse: collapse;
}

.patient-species-table th,
.patient-species-table td,
.patient-breeds-table th,
.patient-breeds-table td {
    padding: 8px 10px;
    vertical-align: middle;
    white-space: nowrap;
}

.patient-species-table th:nth-child(2),
.patient-species-table td:nth-child(2),
.patient-breeds-table th:nth-child(2),
.patient-breeds-table td:nth-child(2),
.patient-breeds-table th:nth-child(4),
.patient-breeds-table td:nth-child(4) {
    width: 100%;
}

.patient-species-name,
.patient-breed-name,
.patient-breed-latin,
.patient-breed-description {
    width: 100%;
    min-width: 170px;
}

.patient-breed-description {
    min-width: 240px;
}

.patient-species-sort,
.patient-breed-sort {
    width: 84px;
}

.patient-species-checkbox-cell,
.patient-species-save-cell {
    text-align: center;
}

.patient-species-save-cell {
    width: 52px;
}

.patient-species-save svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.patient-species-open-cell {
    cursor: pointer;
}

.patient-species-drag-handle {
    display: inline-flex;
    width: 22px;
    height: 22px;
    margin-right: 4px;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    color: #64748b;
    cursor: grab;
    user-select: none;
}

.patient-species-drag-handle:hover {
    color: #1f3f5b;
    background: #e2e8f0;
}

.patient-species-drag-handle:active {
    cursor: grabbing;
}

.patient-species-drag-placeholder td {
    border: 2px dashed var(--accent-color, #1273a8);
}

.patient-species-row.is-expanded {
    background: rgba(18, 115, 168, 0.05);
}

.patient-species-row.is-inactive input,
.patient-breeds-table tr.is-inactive input {
    color: #5f6b7a;
    opacity: 0.72;
}

.patient-breeds-row {
    display: none;
}

.patient-breeds-row.is-open {
    display: table-row;
}

.patient-breeds-row.is-search-open {
    display: table-row;
}

.patient-breeds-panel {
    padding: 6px 0 10px 20px;
}

.patient-breeds-panel small {
    display: inline-block;
    margin-bottom: 8px;
    color: #5f6b7a;
}

.patient-breeds-table th:first-child,
.patient-breeds-table td:first-child {
    width: 80px;
}

.patient-species-new-row td,
.patient-breed-new-row td {
    background: rgba(18, 115, 168, 0.04);
}

@media (max-width: 768px) {
    .patient-species-breeds-page {
        padding: 16px;
    }

    .patient-breeds-panel {
        padding-left: 8px;
    }
}

/* Vaccine repeat rules */
.vaccine-repeat-rules-page {
    padding: 24px;
}

.vaccine-repeat-rules-page h1 {
    margin-bottom: 6px;
}

.vaccine-repeat-note {
    margin: 0 0 16px;
    color: #5f6b7a;
    font-size: 0.92rem;
}

.vaccine-repeat-table-wrap {
    overflow-x: auto;
}

.vaccine-repeat-table {
    width: 100%;
    max-width: 1120px;
    border-collapse: collapse;
}

.vaccine-repeat-table th,
.vaccine-repeat-table td {
    vertical-align: middle;
    white-space: nowrap;
}

.vaccine-repeat-table th:nth-child(2),
.vaccine-repeat-table td:nth-child(2) {
    width: 100%;
}

.vaccine-repeat-article {
    width: 100%;
    min-width: 360px;
}

.vaccine-repeat-article-display {
    min-width: 300px;
    max-width: 520px;
    overflow: hidden;
    color: #172033;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vaccine-repeat-article-search {
    position: relative;
    width: 100%;
    min-width: 360px;
}

.vaccine-repeat-article-search-input {
    width: 100%;
}

.vaccine-repeat-article-results {
    position: absolute;
    z-index: 30;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    max-height: 260px;
    overflow-y: auto;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.16);
}

.vaccine-repeat-article-result {
    display: block;
    width: 100%;
    padding: 8px 10px;
    border: 0;
    border-bottom: 1px solid #e2e8f0;
    background: transparent;
    color: #172033;
    text-align: left;
    cursor: pointer;
}

.vaccine-repeat-article-result:last-child {
    border-bottom: 0;
}

.vaccine-repeat-article-result:hover,
.vaccine-repeat-article-result:focus {
    background: #eef6fb;
    outline: none;
}

.vaccine-repeat-article-result span,
.vaccine-repeat-article-result small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vaccine-repeat-article-result small {
    margin-top: 2px;
    color: #64748b;
    font-size: 0.78rem;
}

.vaccine-repeat-article-result.is-empty {
    color: #64748b;
    cursor: default;
}

.vaccine-repeat-article-result.is-empty:hover {
    background: transparent;
}

.owners-page {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.patient-page {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.patient-dossier-workspace {
    display: grid;
    grid-template-columns: minmax(300px, 360px) minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

.patient-dossier-sidebar,
.patient-dossier-content {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.patient-dossier-panel {
    border: 1px solid #dbe4ee;
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
}

.patient-dossier-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    border-bottom: 1px solid #e2e8f0;
    background: #f8fafc;
}

.patient-dossier-panel-header h2 {
    margin: 0;
    font-size: 18px;
}

.patient-dossier-panel-header a,
.patient-dossier-panel-header span {
    font-weight: 700;
    white-space: nowrap;
}

.patient-dossier-fields {
    display: flex;
    flex-direction: column;
    padding: 8px 14px 10px;
}

.patient-dossier-fields > div {
    display: grid;
    grid-template-columns: minmax(92px, 112px) minmax(0, 1fr);
    gap: 8px;
    align-items: start;
    min-width: 0;
    padding: 6px 0;
    border-bottom: 1px solid #edf2f7;
}

.patient-dossier-fields > div:last-child {
    border-bottom: 0;
}

.patient-dossier-fields > div[hidden] {
    display: none;
}

.patient-dossier-fields strong {
    display: inline;
    margin: 0;
    font-size: 12px;
    color: #64748b;
}

.patient-dossier-fields span {
    overflow-wrap: anywhere;
}

.patient-dossier-main-field span {
    font-size: 16px;
    font-weight: 700;
}

.patient-activity-start-controls {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.patient-activity-fiscal-object {
    min-width: 180px;
    max-width: 280px;
    min-height: 38px;
    padding: 7px 32px 7px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 7px;
    background: #fff;
    color: #1f2937;
}

.patient-new-activity:disabled {
    cursor: not-allowed;
    opacity: 0.6;
}

.patient-dossier-content-panel {
    border: 1px solid #dbe4ee;
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
}

.patient-dossier-content-header {
    padding: 12px 14px;
    border-bottom: 1px solid #e2e8f0;
    background: #f8fafc;
}

.patient-dossier-content-header h2 {
    margin: 0;
    font-size: 18px;
}

.patient-dossier-notices {
    display: grid;
    gap: 8px;
    padding: 12px 14px;
}

.patient-dossier-notice {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 10px 12px;
    border: 1px solid #bfdbfe;
    border-radius: 7px;
    background: #eff6ff;
}

.patient-dossier-notice.is-warning {
    border-color: #fde68a;
    background: #fffbeb;
}

.patient-dossier-notice.is-danger {
    border-color: #fecaca;
    background: #fff1f2;
}

.patient-dossier-notice.is-muted {
    border-color: #e2e8f0;
    background: #f8fafc;
}

.patient-dossier-empty {
    padding: 16px;
    color: #64748b;
}

.medical-activity-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    padding: 2px 0 8px;
    border-bottom: 1px solid rgba(44, 62, 80, 0.18);
}

.medical-activity-heading,
.medical-activity-title-row,
.medical-activity-actions {
    display: flex;
    align-items: center;
}

.medical-activity-heading {
    min-width: 0;
    gap: 8px;
}

.medical-activity-title-row {
    flex-wrap: wrap;
    gap: 7px;
}

.medical-activity-title-row h1 {
    margin: 0;
    color: #1f3f5b;
    font-size: 21px;
    line-height: 1.2;
}

.medical-activity-audit {
    display: none;
}

.medical-activity-moment {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    gap: 4px;
}

.medical-activity-moment strong {
    white-space: nowrap;
    font-size: 11px;
}

.app-date-fields {
    position: relative;
    display: grid;
    width: max-content;
    max-width: 100%;
    grid-template-columns: 64px 72px 92px 34px;
    align-items: center;
    gap: 6px;
}

.app-date-fields.is-compact {
    grid-template-columns: 34px 34px 52px 26px;
    gap: 4px;
}

.app-date-fields.is-compact.has-time {
    grid-template-columns: 34px 34px 52px 26px auto;
}

.app-date-fields.is-date-readonly {
    grid-template-columns: max-content;
}

.app-date-fields.is-date-readonly.has-time {
    grid-template-columns: max-content auto;
}

.app-date-input,
.app-date-time-input {
    box-sizing: border-box;
    width: 100%;
    min-height: 22px;
    padding: 1px 4px;
    border: 1px solid #b9c6d2;
    border-radius: 5px;
    background: #fff;
    color: #243746;
    font: inherit;
    text-align: center;
}

.app-date-display {
    color: #263f53;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
}

.app-date-calendar-button {
    display: inline-grid;
    place-items: center;
    width: 34px;
    min-width: 34px;
    height: 34px;
    padding: 6px;
    border: 1px solid rgba(31, 63, 91, 0.25);
    border-radius: 5px;
    background: #f3f7fa;
    color: #1f3f5b;
    cursor: pointer;
}

.app-date-fields.is-compact .app-date-calendar-button {
    width: 26px;
    min-width: 26px;
    height: 24px;
    padding: 3px;
}

.app-date-calendar-button svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.app-date-fields.is-compact .app-date-calendar-button svg {
    width: 15px;
    height: 15px;
}

.app-date-calendar-button:hover:not(:disabled) {
    background: #e4edf4;
}

.app-date-time-group {
    display: inline-grid;
    width: max-content;
    grid-template-columns: 34px max-content 34px;
    align-items: center;
    gap: 4px;
}

.app-date-time-input {
    width: 34px;
}

.app-date-time-separator {
    color: #52697c;
    font-weight: 800;
}

.app-date-calendar {
    position: fixed;
    z-index: 5000;
    width: 276px;
    box-sizing: border-box;
    padding: 8px;
    border: 1px solid #a9bfd0;
    border-radius: 8px;
    background: #fff;
    color: #263f53;
    box-shadow: 0 10px 28px rgba(28, 55, 75, 0.22);
}

.app-date-calendar-header,
.app-date-calendar-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
}

.app-date-calendar-header strong {
    font-size: 13px;
    text-transform: capitalize;
}

.app-date-calendar-header button,
.app-date-calendar-footer button {
    min-height: 28px;
    padding: 3px 9px;
    border: 1px solid #c7d4df;
    border-radius: 5px;
    background: #f3f7fa;
    color: #1f3f5b;
    cursor: pointer;
}

.app-date-calendar-header button {
    width: 30px;
    padding: 0;
    font-size: 22px;
    line-height: 1;
}

.app-date-calendar-weekdays,
.app-date-calendar-days {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 3px;
}

.app-date-calendar-weekdays {
    margin: 8px 0 4px;
    color: #6a7f91;
    font-size: 10px;
    font-weight: 700;
    text-align: center;
}

.app-date-calendar-day,
.app-date-calendar-empty {
    width: 34px;
    height: 30px;
}

.app-date-calendar-day {
    padding: 0;
    border: 1px solid transparent;
    border-radius: 5px;
    background: transparent;
    color: #263f53;
    cursor: pointer;
}

.app-date-calendar-day:hover:not(:disabled) {
    border-color: #8fc5e4;
    background: #eaf6fc;
}

.app-date-calendar-day.is-today {
    border-color: #2f9ed1;
}

.app-date-calendar-day.is-selected {
    border-color: #267da8;
    background: #2f9ed1;
    color: #fff;
    font-weight: 700;
}

.app-date-calendar-day:disabled {
    color: #b7c1c9;
    cursor: not-allowed;
}

.app-date-calendar-footer {
    justify-content: flex-end;
    margin-top: 8px;
    padding-top: 7px;
    border-top: 1px solid #e0e7ed;
}

.medical-activity-time-save {
    display: inline-grid;
    place-items: center;
    flex: 0 0 26px;
    width: 26px;
    min-width: 26px;
    height: 24px;
    min-height: 22px;
    padding: 3px;
    border: 1px solid rgba(31, 63, 91, 0.25);
    border-radius: 5px;
    background: #f3f7fa;
    color: #1f3f5b;
    font: inherit;
    cursor: pointer;
}

.medical-activity-time-save svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.medical-activity-time-save:hover:not(:disabled) {
    background: #e4edf4;
}

.medical-activity-time-save:disabled {
    cursor: wait;
    opacity: 0.6;
}

.medical-activity-actions {
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
}

.medical-activity-action-group {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}

.medical-activity-action-group + .medical-activity-action-group {
    margin-left: 4px;
    padding-left: 10px;
    border-left: 1px solid rgba(44, 62, 80, 0.22);
}

.medical-activity-actions a,
.medical-activity-actions button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-height: 32px;
    padding: 6px 10px;
    border-radius: 6px;
    font: inherit;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.3s;
}

.medical-activity-actions a:hover {
    background-color: var(--accent-color);
}

.medical-activity-actions button:disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

.medical-activity-alerts {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 6px;
}

.medical-activity-context-groups {
    display: flex;
    flex: 0 1 auto;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 6px;
    min-width: 0;
}

.medical-activity-moment-card,
.medical-activity-context-card {
    box-sizing: border-box;
    padding: 5px 10px;
    border: 1px solid #b9cbd9;
    border-radius: 6px;
    color: #314d63;
    background: #f4f8fb;
}

.medical-activity-moment-card {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 3px;
}

.medical-activity-moment-card > span {
    color: #6a7f91;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.medical-activity-context-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    flex: 0 1 auto;
    width: max-content;
    max-width: 100%;
    min-width: 0;
    gap: 3px 12px;
}

.medical-activity-context-item {
    display: grid;
    grid-template-columns: max-content max-content;
    align-items: center;
    gap: 4px 7px;
    min-width: 0;
}

.medical-activity-context-item > span {
    color: #6a7f91;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.medical-activity-context-item > strong {
    overflow: hidden;
    color: #263f53;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.warehouse-receipt-lines-table td.is-barcode {
    overflow: visible;
    white-space: nowrap;
    text-overflow: clip;
}

.medical-activity-context-links {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 2px 8px;
    min-width: 0;
    font-size: 11px;
    font-weight: 600;
}

.medical-activity-context-links a {
    color: #245b80;
    white-space: nowrap;
}

.medical-activity-alert {
    display: flex;
    align-items: center;
    padding: 6px 10px;
    border: 1px solid #fca5a5;
    border-radius: 6px;
    color: #c2414d;
    background: #fff1f2;
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
}

.owner-gdpr-warning {
    justify-content: space-between;
    gap: 12px;
}

.owner-gdpr-warning-action {
    flex: 0 0 auto;
    min-height: 28px;
    padding: 4px 9px;
    font-size: 12px;
    text-transform: none;
}

.owner-gdpr-sign-dialog {
    min-width: min(420px, 100%);
}

.owner-gdpr-sign-dialog > div,
.owner-gdpr-sign-dialog label {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.owner-gdpr-sign-dialog p {
    margin: 0;
    color: #475569;
}

.owner-gdpr-sign-dialog select {
    min-height: 36px;
}

.medical-activity-alert.is-patient-note {
    display: grid;
    gap: 2px;
    min-width: min(420px, 100%);
    color: #7c4a03;
    background: #fff8dc;
    border-color: #f6c453;
    font-weight: 600;
    text-transform: none;
}

.medical-activity-alert.is-patient-note strong {
    font-size: 11px;
    letter-spacing: 0.03em;
}

.medical-activity-alert.is-patient-note span {
    white-space: pre-wrap;
}

.cash-account-cards {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    margin-top: 6px;
}

.cash-account-cards.has-single-fiscal-device {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cash-patient-selection-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cash-account-card {
    min-width: 0;
}

.cash-fiscal-context-card[hidden] {
    display: none !important;
}

.cash-print-button {
    gap: 6px;
    white-space: nowrap;
}

.cash-print-button svg {
    width: 17px;
    height: 17px;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cash-account-owner-warning {
    margin: 4px 8px 8px;
}

.cash-patient-card-title,
.cash-patient-card-heading,
.cash-patient-navigation {
    display: flex;
    align-items: center;
}

.cash-patient-card-heading {
    justify-content: flex-end;
    gap: 10px;
    min-width: 0;
}

.cash-patient-navigation {
    gap: 4px;
}

.cash-patient-position {
    min-width: 34px;
    color: #64748b;
    font-size: 11px;
    font-weight: 700;
    text-align: center;
    white-space: nowrap;
}

.cash-patient-all-label {
    color: #245b80;
    font-weight: 800;
    white-space: nowrap;
}

.medical-activity-section-title .cash-patient-select-button {
    display: inline-flex;
    box-sizing: border-box;
    align-items: center;
    justify-content: center;
    min-height: 24px;
    padding: 3px 8px;
    border: 1px solid rgba(44, 62, 80, 0.2);
    border-radius: 6px;
    color: #1f3f5b;
    background: rgba(255, 255, 255, 0.58);
    font-family: inherit;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
}

.medical-activity-section-title .cash-patient-select-button:hover,
.medical-activity-section-title .cash-patient-select-button:focus-visible {
    color: #fff;
    background: var(--accent-color);
}

.medical-activity-section-title .cash-patient-select-button[hidden] {
    display: none;
}

.cash-patient-nav-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    padding: 0;
    border: 1px solid #b9cbd9;
    border-radius: 50%;
    color: #245b80;
    background: #fff;
    cursor: pointer;
}

.cash-patient-nav-button:hover,
.cash-patient-nav-button:focus-visible {
    border-color: #5f8fae;
    background: #eaf3f8;
}

.cash-patient-nav-button svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cash-account-patient-note {
    margin: 4px 8px 8px;
    min-width: 0;
}

.cash-patient-empty {
    padding: 12px 8px;
    color: #64748b;
    font-size: 12px;
}

.cash-patient-all-state {
    display: grid;
    gap: 4px;
    padding: 12px 8px;
}

.cash-patient-all-state strong {
    color: #314d63;
    font-size: 13px;
}

.cash-patient-all-state span {
    color: #64748b;
    font-size: 11px;
}

.cash-financial-summary-currency {
    color: #64748b;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.05em;
}

.cash-financial-summary.is-payment-blocked {
    border-color: #c62838;
    box-shadow: 0 0 0 2px rgba(198, 40, 56, 0.12);
}

.cash-payment-restriction {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 9px;
    align-items: start;
    margin: 8px;
    padding: 9px 10px;
    border: 1px solid #c62838;
    border-radius: 7px;
    color: #842029;
    background: #fff0f1;
}

.cash-payment-restriction.is-unknown {
    border-color: #c89b18;
    color: #6b4f00;
    background: #fff7d6;
}

.cash-payment-restriction > svg {
    width: 25px;
    height: 25px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cash-payment-restriction > div {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.cash-payment-restriction strong {
    font-size: 13px;
    line-height: 1.25;
}

.cash-payment-restriction span,
.cash-payment-restriction small {
    font-size: 11px;
    line-height: 1.4;
}

.cash-payment-restriction small {
    display: block;
    margin-top: 2px;
    font-weight: 800;
}

.cash-financial-summary-values {
    margin: 0;
    padding: 4px 8px;
}

.cash-financial-summary-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: baseline;
    gap: 10px;
    padding: 5px 0;
    border-bottom: 1px dotted #dbe4ee;
    font-size: 11px;
}

.cash-financial-summary-row[hidden] {
    display: none !important;
}

.cash-financial-summary-row:last-child {
    border-bottom: 0;
}

.cash-financial-summary-row dt {
    color: #64748b;
    font-weight: 700;
}

.cash-financial-summary-row dd {
    margin: 0;
    color: #314d63;
    font-size: 13px;
    font-variant-numeric: tabular-nums;
    font-weight: 800;
    white-space: nowrap;
}

.cash-financial-summary-row output::after {
    content: " " attr(data-currency);
    color: #64748b;
    font-size: 9px;
    font-weight: 800;
}

.cash-financial-input-row dd {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
}

.cash-financial-input-row input,
.cash-financial-method-row select,
.cash-financial-currency-row select {
    box-sizing: border-box;
    height: 25px;
    border: 1px solid #aebfcd;
    border-radius: 4px;
    color: #1f3f5b;
    background: #fff;
    font: inherit;
    font-variant-numeric: tabular-nums;
    font-weight: 800;
}

.cash-financial-input-row input {
    width: 86px;
    padding: 3px 6px;
    text-align: right;
}

.cash-financial-input-row dd > span {
    min-width: 25px;
    color: #64748b;
    font-size: 9px;
    text-align: left;
}

.cash-financial-quick-fill {
    box-sizing: border-box;
    height: 21px;
    padding: 1px 6px;
    border: 1px solid #aac0d0;
    border-radius: 4px;
    color: #315d79;
    background: #f4f8fb;
    font-size: 9px;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
}

.cash-financial-quick-fill:hover:not(:disabled),
.cash-financial-quick-fill:focus-visible {
    border-color: #5f8daa;
    background: #eaf3f8;
}

.cash-financial-quick-fill:disabled {
    color: #9cabb6;
    border-color: #d9e1e7;
    background: #f1f5f7;
    cursor: not-allowed;
}

.cash-financial-method-row select,
.cash-financial-currency-row select {
    max-width: 148px;
    padding: 2px 4px;
    font-size: 10px;
}

.cash-financial-input-row input:focus,
.cash-financial-method-row select:focus,
.cash-financial-currency-row select:focus {
    outline: 2px solid rgba(37, 99, 235, 0.2);
    border-color: #4f82a3;
}

.cash-financial-input-row input[aria-invalid="true"] {
    border-color: #c2413a;
    background: #fff7f6;
}

.cash-financial-input-row input:disabled,
.cash-financial-method-row select:disabled,
.cash-financial-currency-row select:disabled {
    color: #94a3b8;
    background: #f1f5f9;
    cursor: not-allowed;
}

.cash-financial-summary-row.is-emphasized dt,
.cash-financial-summary-row.is-emphasized dd {
    color: #1f3f5b;
}

.cash-financial-summary-status {
    box-sizing: border-box;
    height: 24px;
    margin: 0 8px 8px;
    padding: 5px 7px;
    border-radius: 5px;
    color: #64748b;
    background: #f1f5f9;
    font-size: 10px;
    line-height: 14px;
    overflow: hidden;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cash-financial-rate {
    margin: 0 8px 5px;
    color: #52697c;
    font-size: 9px;
    font-weight: 700;
    text-align: right;
}

.cash-financial-summary.is-info .cash-financial-summary-status {
    color: #1f5678;
    background: #eaf3f8;
}

.cash-financial-summary.is-warning .cash-financial-summary-status {
    color: #7a4b00;
    background: #fff4d6;
}

.cash-financial-summary.is-error .cash-financial-summary-status {
    color: #9f2d24;
    background: #fff1f0;
}

.cash-financial-summary.is-ready .cash-financial-summary-status {
    color: #17613a;
    background: #e8f7ee;
}

.cash-financial-summary.is-placeholder output {
    color: #94a3b8;
}

.cash-financial-payment-action {
    display: grid;
    margin: 0 8px 8px;
}

.cash-financial-payment-action:empty {
    display: none;
}

.cash-financial-payment-action .cash-payment-prepare-button {
    width: 100%;
    min-height: 36px;
    padding: 7px 14px;
    border-radius: 7px;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.02em;
    box-shadow: 0 2px 6px rgba(25, 67, 97, 0.24);
}

.cash-financial-payment-action .cash-payment-prepare-button:hover:not(:disabled),
.cash-financial-payment-action .cash-payment-prepare-button:focus-visible {
    box-shadow: 0 3px 9px rgba(25, 67, 97, 0.34);
    transform: translateY(-1px);
}

.cash-financial-payment-action .cash-payment-prepare-button:disabled {
    box-shadow: none;
    transform: none;
}

.cash-payment-plan-preview {
    min-width: min(720px, 78vw);
    color: #314d63;
}

.cash-payment-plan-notice {
    margin: 0 0 12px;
    padding: 9px 11px;
    border: 1px solid #f2cc7b;
    border-radius: 7px;
    color: #775013;
    background: #fff8e7;
    font-size: 12px;
}

.cash-payment-simulator-choice {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 0 0 12px;
    color: #52697c;
    font-size: 11px;
    font-weight: 700;
}

.cash-payment-simulator-choice select {
    min-height: 31px;
    padding: 5px 8px;
    border: 1px solid #b9cbd9;
    border-radius: 5px;
    color: #1f3f5b;
    background: #fff;
    font: inherit;
    font-weight: 500;
}

.cash-payment-plan-totals {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 7px;
    margin: 0 0 12px;
}

.cash-payment-plan-totals > div {
    padding: 7px 8px;
    border: 1px solid #dbe5ed;
    border-radius: 7px;
    background: #f8fbfd;
}

.cash-payment-plan-totals dt {
    color: #6b7e8d;
    font-size: 10px;
}

.cash-payment-plan-totals dd {
    margin: 3px 0 0;
    font-weight: 800;
    white-space: nowrap;
}

.cash-payment-plan-table-wrap {
    max-height: 42vh;
    overflow: auto;
    border: 1px solid #dbe5ed;
    border-radius: 7px;
}

.cash-payment-plan-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 11px;
}

.cash-payment-plan-table th,
.cash-payment-plan-table td {
    padding: 7px 8px;
    border-bottom: 1px solid #e8eef3;
    text-align: right;
    white-space: nowrap;
}

.cash-payment-plan-table th:first-child,
.cash-payment-plan-table td:first-child {
    text-align: left;
}

.cash-payment-result-preview {
    max-height: 72vh;
    padding-right: 4px;
    overflow-y: auto;
}

.cash-payment-dialog-box {
    display: flex;
    width: min(760px, calc(100vw - 24px));
    max-width: calc(100vw - 24px);
    max-height: calc(100vh - 24px);
    max-height: calc(100dvh - 24px);
    flex-direction: column;
    overflow: hidden;
    box-sizing: border-box;
}

.cash-payment-dialog-box .modal-title,
.cash-payment-dialog-box .modal-buttons {
    flex: 0 0 auto;
}

.cash-payment-dialog-box .modal-message {
    flex: 1 1 auto;
    min-height: 0;
    margin: 0;
    padding-right: 6px;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    box-sizing: border-box;
}

.cash-payment-dialog-box .modal-buttons {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 10px;
    padding-top: 8px;
    border-top: 1px solid #e2e8f0;
}

.cash-payment-dialog-box .cash-payment-result-preview {
    max-height: none;
    padding-right: 0;
    overflow: visible;
}

.cash-payment-result-receipts {
    display: grid;
    gap: 8px;
    margin-top: 14px;
    text-align: left;
}

.cash-payment-result-receipts > h3 {
    margin: 0;
    color: #314d63;
    font-size: 14px;
    text-align: center;
}

.cash-payment-result-receipt-card,
.cash-payment-result-receipt-item {
    width: min(390px, 100%);
    margin: 0 auto;
    padding: 12px;
    border: 1px solid #dbe5ed;
    border-radius: 8px;
    background: #fff;
    box-sizing: border-box;
}

.cash-payment-plan-receipt-card {
    max-height: min(44vh, 430px);
    padding-right: 8px;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

.cash-payment-result-receipt-item {
    padding: 0;
    overflow: hidden;
}

.cash-payment-result-receipt-item > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    color: #314d63;
    background: #f8fbfd;
    cursor: pointer;
    font-size: 11px;
    list-style: none;
}

.cash-payment-result-receipt-item > summary::-webkit-details-marker {
    display: none;
}

.cash-payment-result-receipt-item > summary::before {
    content: '\25B8';
    flex: 0 0 auto;
    color: #2e6f95;
}

.cash-payment-result-receipt-item[open] > summary::before {
    content: '\25BE';
}

.cash-payment-result-receipt-item > summary span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cash-payment-result-receipt-item > summary strong {
    flex: 0 0 auto;
    white-space: nowrap;
}

.cash-payment-result-receipt-item > .cash-receipt-preview {
    padding: 12px;
    border-top: 1px solid #e8eef3;
}

@media (max-width: 900px) {
    .cash-payment-plan-preview {
        min-width: 0;
    }

    .cash-payment-plan-totals {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.cash-fiscal-context-state {
    color: #47718d;
    font-size: 10px;
    font-weight: 800;
}

.cash-fiscal-context-card.is-missing .cash-fiscal-context-state {
    color: #b42318;
}

.cash-fiscal-context-content {
    display: grid;
    gap: 7px;
    padding: 8px;
}

.cash-fiscal-context-field {
    display: grid;
    gap: 4px;
    color: #64748b;
    font-size: 10px;
    font-weight: 700;
}

.cash-fiscal-context-field select {
    min-width: 0;
    width: 100%;
    padding: 5px 7px;
    border: 1px solid #b9cbd9;
    border-radius: 5px;
    color: #1f3f5b;
    background: #fff;
    font: inherit;
    font-size: 11px;
}

.cash-fiscal-context-details {
    display: grid;
    gap: 0;
    margin: 0;
}

.cash-fiscal-context-details > div:not(.cash-fiscal-context-warning) {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.45fr);
    gap: 8px;
    padding: 4px 0;
    border-bottom: 1px dotted #dbe4ee;
    font-size: 11px;
}

.cash-fiscal-context-details > div:last-child {
    border-bottom: 0;
}

.cash-fiscal-context-details dt {
    color: #64748b;
    font-weight: 700;
}

.cash-fiscal-context-details dd {
    min-width: 0;
    margin: 0;
    overflow-wrap: anywhere;
    color: #314d63;
    font-weight: 800;
    text-align: right;
}

.cash-fiscal-context-warning {
    padding: 8px;
    border-radius: 5px;
    color: #9f2d24;
    background: #fff1f0;
    font-size: 11px;
    line-height: 1.35;
    text-align: center;
}

.cash-payment-selection {
    margin-top: 10px;
}

.cash-payment-selection-heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 6px;
}

.cash-payment-selection-heading h2 {
    color: #1f3f5b;
    font-size: 17px;
}

.cash-payment-selection-heading span {
    color: #64748b;
    font-size: 11px;
    text-align: right;
}

.cash-payment-selection-heading > div:first-child {
    display: grid;
    gap: 2px;
}

.cash-payment-filter {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 2px;
    border: 1px solid #dbe4ee;
    border-radius: 7px;
    background: #f8fafc;
}

.cash-payment-filter > span {
    padding: 0 5px;
    font-size: 10px;
    font-weight: 700;
    white-space: nowrap;
}

.cash-payment-filter-button {
    min-height: 25px;
    padding: 3px 8px;
    border: 1px solid transparent;
    border-radius: 5px;
    background: transparent;
    color: #52697c;
    font-family: inherit;
    font-size: 10px;
    font-weight: 700;
    cursor: pointer;
}

.cash-payment-filter-button:hover,
.cash-payment-filter-button:focus-visible {
    border-color: #b9cbd9;
    background: #fff;
}

.cash-payment-filter-button.is-active {
    border-color: #7da7c2;
    background: #eaf3f8;
    color: #1f5678;
}

.cash-payment-section-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 4px;
    align-items: start;
}

.cash-payment-section-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #dbe4ee;
    border-radius: 7px;
    background: #fff;
}

.cash-payment-section-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 5px;
    min-height: 30px;
    padding: 4px 6px;
    border-bottom: 1px solid #e2e8f0;
    background: #f8fafc;
    font-size: 12px;
}

.cash-payment-section-title > span {
    color: #64748b;
    font-size: 10px;
    font-weight: 700;
    white-space: nowrap;
}

.cash-payment-section-title output {
    color: #314d63;
    font-size: 12px;
    font-variant-numeric: tabular-nums;
    font-weight: 800;
}

.cash-payment-section-title small {
    font-size: 10px;
}

.cash-payment-section-card.is-placeholder output {
    color: #94a3b8;
}

.cash-advance-card .cash-payment-section-title {
    flex-wrap: wrap;
}

.cash-advance-receive-button {
    min-height: 25px;
    padding: 3px 8px;
    border: 1px solid #6d9ab6;
    border-radius: 5px;
    color: #fff;
    background: #2e6f95;
    font: inherit;
    font-size: 10px;
    font-weight: 800;
    cursor: pointer;
}

.cash-advance-receive-button:hover,
.cash-advance-receive-button:focus-visible {
    background: #245b80;
}

.cash-advance-receive-button:disabled {
    border-color: #cbd5e1;
    color: #64748b;
    background: #e2e8f0;
    cursor: not-allowed;
}

.cash-advance-table th:nth-child(1) { width: 11%; }
.cash-advance-table th:nth-child(2) { width: 29%; }
.cash-advance-table th:nth-child(3) { width: 30%; }
.cash-advance-table th:nth-child(4) { width: 30%; }

.cash-advance-payment-cell,
.cash-advance-usage-cell {
    text-align: right;
}

.cash-advance-payment-cell span,
.cash-advance-payment-cell strong,
.cash-advance-payment-cell small,
.cash-advance-usage-cell span,
.cash-advance-usage-cell strong {
    display: block;
}

.cash-advance-payment-cell strong,
.cash-advance-usage-cell strong {
    color: #1f3f5b;
    font-size: 10px;
    font-variant-numeric: tabular-nums;
}

.cash-advance-payment-cell small,
.cash-advance-usage-cell span {
    margin-top: 2px;
    color: #64748b;
    font-size: 8px;
}

.cash-advance-payment-cell .cash-advance-note {
    margin-top: 5px;
    padding-top: 4px;
    border-top: 1px dotted rgba(100, 116, 139, 0.45);
    color: #334155;
    font-size: 9px;
    line-height: 1.3;
    text-align: left;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.cash-advance-usage-cell span,
.cash-advance-usage-cell b,
.cash-advance-usage-cell strong {
    display: inline;
}

.cash-advance-usage-cell b {
    margin: 0 2px;
    color: #94a3b8;
    font-weight: 500;
}

.cash-advance-table tr.cash-advance-has-storno td {
    background: rgba(254, 226, 226, 0.62);
}

.cash-advance-table tr.cash-advance-is-returned td {
    background: rgba(226, 232, 240, 0.62);
}

.cash-advance-usage-cell .cash-advance-storno-state {
    display: block;
    margin-top: 4px;
    color: #991b1b;
    font-size: 8px;
    line-height: 1.3;
    text-align: left;
    white-space: normal;
}

.cash-advance-storno-state a {
    display: block;
    margin-top: 2px;
    color: #075985;
    font-weight: 800;
}

.cash-advance-usage-cell .cash-advance-storno-state.is-bank-return {
    color: #475569;
}

.cash-advance-return-button {
    display: block;
    margin: 5px 0 0 auto;
    padding: 3px 7px;
    border: 1px solid #6d9ab6;
    border-radius: 5px;
    color: #245b80;
    background: #fff;
    font: inherit;
    font-size: 8px;
    font-weight: 800;
    cursor: pointer;
}

.cash-advance-return-button:hover,
.cash-advance-return-button:focus-visible {
    color: #fff;
    background: #2e6f95;
}

.cash-advance-return-button:disabled {
    border-color: #cbd5e1;
    color: #64748b;
    background: #e2e8f0;
    cursor: not-allowed;
}

.cash-advance-return-summary {
    margin: 12px 0;
}

.cash-advance-return-summary > div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 5px 0;
    border-bottom: 1px solid #e2e8f0;
}

.cash-advance-return-summary dd {
    margin: 0;
    text-align: right;
}

.shop-sale-storno-payment a {
    color: #075985;
    font-size: 9px;
    font-weight: 800;
}

.cash-advance-dialog {
    width: min(620px, 92vw);
}

.cash-receipt-preview-dialog {
    width: min(390px, 92vw);
}

.cash-receipt-preview {
    display: grid;
    gap: 10px;
    color: #1f2937;
}

.cash-receipt-preview-marker {
    justify-self: center;
    padding: 3px 9px;
    border: 1px solid #8eb4cb;
    border-radius: 999px;
    color: #1f5678;
    background: #eaf3f8;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
}

.cash-receipt-preview-unp {
    display: grid;
    gap: 3px;
    padding-bottom: 9px;
    border-bottom: 1px dashed #94a3b8;
    text-align: center;
}

.cash-receipt-preview-unp span {
    color: #64748b;
    font-size: 10px;
    font-weight: 700;
}

.cash-receipt-preview-unp strong {
    font-size: 13px;
    overflow-wrap: anywhere;
}

.cash-receipt-preview-lines {
    display: grid;
    gap: 6px;
}

.cash-receipt-preview-line,
.cash-receipt-preview-total {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}

.cash-receipt-preview-line {
    font-size: 11px;
}

.cash-receipt-preview-line span {
    color: #52697c;
    white-space: nowrap;
}

.cash-receipt-preview-total {
    padding-top: 9px;
    border-top: 1px dashed #64748b;
    font-size: 15px;
    font-weight: 900;
}

.cash-receipt-preview-close {
    justify-self: center;
    min-width: 105px;
    margin-top: 4px;
}

.cash-advance-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.cash-advance-form label {
    display: grid;
    gap: 4px;
    color: #334155;
    font-size: 12px;
    font-weight: 700;
}

.cash-advance-form [hidden] {
    display: none !important;
}

.cash-advance-form label.is-wide,
.cash-advance-form .is-wide,
.cash-advance-simulator-note,
.cash-advance-recovery,
.cash-advance-form-status {
    grid-column: 1 / -1;
}

.cash-advance-form input,
.cash-advance-form select,
.cash-advance-form textarea {
    box-sizing: border-box;
    width: 100%;
    min-height: 35px;
    padding: 6px 8px;
    border: 1px solid #b9cbd9;
    border-radius: 5px;
    color: #1f3f5b;
    background: #fff;
    font: inherit;
    font-weight: 500;
}

.cash-advance-form textarea {
    resize: vertical;
}

.cash-advance-simulator-note,
.cash-advance-recovery,
.cash-advance-device,
.cash-advance-form-status {
    padding: 8px 10px;
    border-radius: 5px;
    font-size: 11px;
    line-height: 1.4;
}

.cash-advance-simulator-note {
    color: #1f5678;
    background: #eaf3f8;
}

.cash-advance-recovery {
    color: #7a4b00;
    background: #fff7df;
}

.cash-advance-device {
    color: #52697c;
    background: #f1f5f9;
}

.cash-advance-form-status:empty {
    display: none;
}

.cash-advance-form-status.is-pending {
    color: #1f5678;
    background: #eaf3f8;
}

.cash-advance-form-status.is-error,
.cash-advance-form-status.is-unknown {
    color: #9f2d24;
    background: #fff1f0;
}

@media (max-width: 620px) {
    .cash-advance-form {
        grid-template-columns: 1fr;
    }

    .cash-advance-form label.is-wide,
    .cash-advance-form .is-wide,
    .cash-advance-simulator-note,
    .cash-advance-recovery,
    .cash-advance-form-status {
        grid-column: auto;
    }
}

.cash-payment-section-items {
    min-height: 92px;
}

.cash-payment-section-placeholder {
    display: grid;
    min-height: 92px;
    place-items: center;
    padding: 12px;
    box-sizing: border-box;
    color: #94a3b8;
    font-size: 11px;
    text-align: center;
}

.cash-payment-section-empty {
    display: grid;
    min-height: 92px;
    place-items: center;
    padding: 12px;
    box-sizing: border-box;
    color: #64748b;
    font-size: 11px;
    text-align: center;
}

.cash-zone-table-wrap {
    max-height: 280px;
    overflow-x: hidden;
    overflow-y: auto;
}

.cash-zone-table {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0;
    color: #314d63;
    font-size: 9px;
}

.cash-zone-table th,
.cash-zone-table td {
    box-sizing: border-box;
    padding: 4px 2px;
    border-right: 1px solid rgba(148, 163, 184, 0.35);
    border-bottom: 1px solid rgba(148, 163, 184, 0.42);
    vertical-align: middle;
}

.cash-zone-table th:last-child,
.cash-zone-table td:last-child {
    border-right: 0;
}

.cash-zone-table thead th {
    position: sticky;
    z-index: 2;
    top: 0;
    color: #52697c;
    background: #eef3f7;
    font-size: 8px;
    font-weight: 800;
    line-height: 1.05;
    text-align: center;
    white-space: normal;
}

.cash-zone-table th.cash-zone-select-cell { width: 5%; }
.cash-activity-table th:nth-child(2) { width: 9%; }
.cash-activity-table th:nth-child(3) { width: 20%; }
.cash-activity-table th:nth-child(4) { width: 16%; }
.cash-activity-table th:nth-child(n+5) { width: 10%; }

.cash-hospital-daily-table th:nth-child(2) {
    width: 17%;
}

.cash-hospital-daily-table th:nth-child(3) {
    width: 18%;
}

.cash-hospital-daily-table th:nth-child(n+4) {
    width: 10%;
}

.cash-store-sales-table th:nth-child(2) { width: 17%; }
.cash-store-sales-table th:nth-child(3) { width: 17%; }
.cash-store-sales-table th:nth-child(4) { width: 30%; }
.cash-store-sales-table th:nth-child(5) { width: 15%; }
.cash-store-sales-table th:nth-child(6) { width: 16%; }

.cash-store-scope-filter {
    display: flex;
    align-items: center;
    gap: 2px;
    padding: 3px 4px;
    border-bottom: 1px solid #dbe4ee;
    background: #f8fafc;
}

.cash-store-scope-filter > span {
    margin-right: 2px;
    color: #64748b;
    font-size: 8px;
    font-weight: 800;
}

.cash-store-scope-filter button {
    min-height: 20px;
    padding: 2px 5px;
    border: 1px solid transparent;
    border-radius: 4px;
    color: #52697c;
    background: transparent;
    font-family: inherit;
    font-size: 8px;
    font-weight: 800;
    cursor: pointer;
}

.cash-store-scope-filter button:hover,
.cash-store-scope-filter button:focus-visible {
    border-color: #b9cbd9;
    background: #fff;
}

.cash-store-scope-filter button.is-active {
    border-color: #7da7c2;
    color: #1f5678;
    background: #eaf3f8;
}

.cash-zone-select-cell {
    text-align: center;
}

.cash-zone-select-cell input {
    width: 13px;
    height: 13px;
    margin: 0;
}

.cash-zone-table thead [data-cash-select-all] {
    accent-color: #3f9561;
    cursor: pointer;
}

.cash-zone-table thead [data-cash-select-all]:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.cash-zone-status-row.is-unpaid > td,
.cash-zone-detail-row.is-unpaid > td {
    background: #ffcccc;
}

.cash-zone-status-row.is-paid > td,
.cash-zone-detail-row.is-paid > td {
    background: #d9ffd9;
}

.cash-zone-status-row > td {
    transition: background-color 450ms ease, box-shadow 450ms ease;
}

.cash-zone-status-row.is-selected-for-payment > td {
    background: #effaf2;
    box-shadow: inset 0 1px #9bc9aa, inset 0 -1px #9bc9aa;
}

.cash-zone-status-row.is-selected-for-payment > td:first-child {
    box-shadow: inset 3px 0 #58a573, inset 0 1px #9bc9aa, inset 0 -1px #9bc9aa;
}

.cash-zone-status-row.is-selected-for-payment > td:last-child {
    box-shadow: inset -2px 0 #58a573, inset 0 1px #9bc9aa, inset 0 -1px #9bc9aa;
}

.cash-zone-status-row.is-selected-for-payment .cash-zone-money-cell.is-total {
    color: #17613a;
    font-weight: 900;
}

.cash-zone-status-row.is-selected-for-payment .cash-zone-select-cell input {
    accent-color: #3f9561;
}

.cash-zone-status-row.is-invalid > td {
    box-shadow: inset 0 2px #b91c1c, inset 0 -2px #b91c1c;
}

.cash-zone-id-cell {
    font-weight: 800;
    text-align: center;
    white-space: nowrap;
}

.cash-zone-id-cell a {
    color: #174d72;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.cash-hospital-daily-id-cell b {
    color: #64748b;
    font-weight: 500;
}

.cash-zone-calculation-warning,
.cash-zone-lock-warning {
    display: block;
    margin-top: 2px;
    color: #b91c1c;
    font-size: 7px;
    font-weight: 800;
    line-height: 1;
    white-space: normal;
}

.cash-active-hospitalization {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 3px 6px;
    padding: 4px 5px;
    border-bottom: 1px solid #fecaca;
    color: #b91c1c;
    background: #fff1f2;
    font-size: 8px;
}

.cash-active-hospitalization a {
    color: #9f1239;
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.cash-zone-date-cell {
    overflow-wrap: anywhere;
}

.cash-zone-date-cell time,
.cash-zone-date-cell small {
    display: block;
}

.cash-zone-date-cell small {
    margin-top: 2px;
    color: #52697c;
    font-size: 9px;
}

.cash-zone-date-cell .cash-zone-patient-name {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    color: #315e7d;
    font-style: italic;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cash-store-sale-articles {
    min-width: 0;
    overflow: hidden;
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cash-store-sale-articles span {
    overflow: hidden;
    text-overflow: ellipsis;
}

.cash-store-sale-articles small {
    margin-left: 2px;
    color: #52697c;
    font-size: 8px;
    font-weight: 800;
    white-space: nowrap;
}

.cash-store-sale-context {
    min-width: 0;
    overflow: hidden;
    text-align: center;
    text-overflow: ellipsis;
}

.cash-store-sale-context a {
    display: block;
    margin-top: 2px;
    color: #174d72;
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 2px;
    white-space: nowrap;
}

.cash-store-sale-scope {
    display: block;
    width: 100%;
    overflow: hidden;
    color: #52697c;
    font-size: 7.5px;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cash-store-sale-scope.is-current {
    color: #166534;
}

.cash-store-sale-scope.is-other {
    color: #9a3412;
}

.cash-store-sale-scope.is-patient {
    color: #315e7d;
}

.cash-store-sale-scope.is-common {
    color: #475569;
}

.cash-zone-icons-column {
    width: auto;
}

.cash-activity-icons {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 1px;
    min-width: 0;
}

.cash-activity-icons > span {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.cash-activity-icons img {
    display: block;
    width: 16px;
    height: 16px;
    object-fit: contain;
}

.cash-activity-icons small {
    position: absolute;
    right: -3px;
    bottom: -3px;
    min-width: 12px;
    padding: 1px 2px;
    border-radius: 7px;
    color: #fff;
    background: #245b80;
    font-size: 7px;
    font-weight: 800;
    line-height: 1;
    text-align: center;
}

.cash-zone-icons-empty {
    color: #64748b;
}

.cash-zone-money-cell {
    font-variant-numeric: tabular-nums;
    font-size: clamp(8.5px, calc(0.4vw + 5px), 10px);
    font-weight: 700;
    letter-spacing: -0.25px;
    line-height: 1.1;
    padding-right: 1px !important;
    padding-left: 1px !important;
    text-align: right;
    white-space: nowrap;
}

.cash-zone-money-cell.is-wide-amount {
    font-size: clamp(7.5px, calc(0.32vw + 5px), 9px);
    letter-spacing: -0.35px;
}

.cash-zone-money-cell.is-total {
    font-weight: 900;
}

.cash-zone-detail-row td {
    padding-top: 3px;
    padding-bottom: 5px;
    border-top: 1px dotted rgba(82, 105, 124, 0.45);
    color: #52697c;
    font-size: 9px;
}

@media (max-width: 900px) {
    .cash-payment-section-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 1020px) {
    .cash-account-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cash-account-cards.has-single-fiscal-device {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cash-patient-selection-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .cash-account-cards {
        grid-template-columns: 1fr;
    }

    .cash-account-cards.has-single-fiscal-device {
        grid-template-columns: 1fr;
    }

    .cash-patient-selection-cards {
        grid-template-columns: 1fr;
    }

    .cash-patient-card-title {
        flex-wrap: wrap;
    }

    .cash-patient-card-heading {
        width: 100%;
        justify-content: space-between;
    }

    .cash-payment-selection-heading {
        display: grid;
        gap: 3px;
    }

    .cash-payment-selection-heading span {
        text-align: left;
    }

    .cash-payment-filter {
        justify-self: start;
        max-width: 100%;
    }

    .cash-payment-section-grid {
        grid-template-columns: 1fr;
    }
}

.medical-activity-overview {
    display: grid;
    grid-template-columns: minmax(180px, 0.9fr) minmax(240px, 1.2fr) minmax(185px, 0.9fr) minmax(125px, 0.6fr) minmax(190px, 0.9fr);
    gap: 6px;
    align-items: stretch;
}

.medical-activity-party,
.medical-activity-summary-card,
.medical-activity-operational {
    border: 1px solid #dbe4ee;
    border-radius: 7px;
    background: #fff;
    overflow: hidden;
}

.medical-activity-section-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-height: 28px;
    padding: 5px 8px;
    border-bottom: 1px solid #e2e8f0;
    background: #f8fafc;
    font-size: 13px;
}

.medical-activity-section-title a {
    font-weight: 800;
    white-space: nowrap;
}

.medical-activity-details {
    margin: 0;
    padding: 2px 8px 4px;
}

.medical-activity-details > div {
    display: grid;
    grid-template-columns: minmax(62px, 78px) minmax(0, 1fr);
    gap: 5px;
    padding: 2px 0;
    border-bottom: 1px dotted #dbe4ee;
    font-size: 11px;
    line-height: 1.15;
}

.medical-activity-details > div:last-child {
    border-bottom: 0;
}

.medical-activity-details dt {
    color: #64748b;
    font-weight: 700;
}

.medical-activity-details dd {
    min-width: 0;
    margin: 0;
    overflow-wrap: anywhere;
}

.medical-activity-inline-identifier {
    display: flex;
    align-items: center;
    gap: 3px;
}

.medical-activity-identifier-value {
    min-width: 0;
    overflow-wrap: anywhere;
}

.medical-activity-identifier-action {
    display: inline-flex;
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    align-items: center;
    justify-content: center;
    padding: 1px;
    border: 0;
    border-radius: 3px;
    color: #526b82;
    background: transparent;
}

.medical-activity-identifier-action:hover,
.medical-activity-identifier-action:focus-visible {
    color: #fff;
    background: var(--accent-color);
}

.medical-activity-identifier-action.is-save {
    color: #116149;
}

.medical-activity-identifier-action svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.medical-activity-inline-identifier input {
    width: 100%;
    min-width: 0;
    height: 22px;
    padding: 2px 4px;
    border: 1px solid #94a3b8;
    border-radius: 3px;
    box-sizing: border-box;
    font: inherit;
}

.medical-activity-details > div:first-child dd {
    font-size: 12px;
    font-weight: 800;
}

.medical-activity-summary-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 5px;
    padding: 7px 8px;
}

.medical-activity-summary-card > strong {
    color: #1f3f5b;
    font-size: 13px;
}

.medical-activity-summary-card small,
.medical-activity-placeholder {
    color: #64748b;
    font-size: 11px;
    overflow-wrap: anywhere;
}

.medical-activity-store-sales {
    display: flex;
    min-height: 0;
    flex: 1;
    flex-direction: column;
    gap: 5px;
}

.medical-activity-store-sales-list {
    min-height: 0;
    max-height: 116px;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

.medical-activity-store-sale {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1px 5px;
    padding: 4px 0;
    border-bottom: 1px dotted #dbe4ee;
    color: inherit;
    text-decoration: none;
}

.medical-activity-store-sale:hover b {
    color: var(--accent-color);
}

.medical-activity-store-sale span,
.medical-activity-store-sale span small {
    display: block;
    min-width: 0;
}

.medical-activity-store-sale > strong {
    white-space: nowrap;
}

.medical-activity-store-sale > small {
    grid-column: 1 / -1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.medical-activity-store-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-height: 32px;
    align-self: flex-start;
    margin-top: auto;
    padding: 6px 10px;
    border-radius: 6px;
    font: inherit;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.3s;
}

.medical-activity-store-action:hover {
    background-color: var(--accent-color);
}

.medical-activity-finance-total,
.medical-activity-finance-unp {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.medical-activity-finance-total span,
.medical-activity-finance-unp span,
.medical-activity-grouped-info > span {
    color: #64748b;
    font-size: 11px;
    font-weight: 700;
}

.medical-activity-finance-total b {
    color: #0f172a;
    font-size: 21px;
    line-height: 1.1;
}

.medical-activity-finance-unp b {
    font-size: 14px;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.medical-activity-grouped-info {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding-top: 5px;
    border-top: 1px solid #edf2f7;
}

.medical-activity-files-contact-card .medical-activity-grouped-info:first-of-type {
    padding-top: 0;
    border-top: 0;
}

.medical-activity-public-note-warning {
    align-self: flex-start;
    padding: 2px 5px;
    border: 1px solid #fdba74;
    border-radius: 4px;
    color: #9a3412;
    background: #fff7ed;
    font-size: 9px;
    line-height: 1.2;
    text-transform: uppercase;
}

.medical-activity-public-note {
    width: 100%;
    min-height: 54px;
    padding: 4px 5px;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    box-sizing: border-box;
    resize: vertical;
    font: inherit;
    font-size: 11px;
}

.medical-activity-operational {
    display: grid;
    grid-template-columns: minmax(250px, 1fr) minmax(300px, 1.35fr) repeat(2, minmax(0, 0.8fr));
}

#app-main.is-hospital-activity-context .medical-activity-operational {
    grid-template-columns: minmax(0, 1fr);
}

#app-main.is-hospital-activity-context .medical-activity-operational > .medical-activity-module-actions {
    border-right: 0;
}

.medical-activity-operational > div {
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-height: 48px;
    padding: 8px 10px;
    border-right: 1px solid #dbe4ee;
}

.medical-activity-operational > div:last-child {
    border-right: 0;
}

.medical-activity-operational strong {
    color: #475569;
    font-size: 12px;
}

.medical-activity-next-visit label {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 6px;
    align-items: center;
    color: #64748b;
    font-size: 11px;
    font-weight: 700;
}

.medical-activity-next-visit input,
.medical-activity-next-visit textarea {
    width: 100%;
    min-width: 0;
    padding: 3px 5px;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    box-sizing: border-box;
    font: inherit;
    font-weight: 400;
}

.medical-activity-next-visit input {
    min-height: 27px;
}

.medical-activity-next-visit textarea {
    min-height: 42px;
    resize: vertical;
}

.medical-activity-autosave-status {
    min-height: 15px;
    color: #64748b;
    font-size: 10px;
    line-height: 1.2;
}

.medical-activity-autosave-status[data-state="pending"],
.medical-activity-autosave-status[data-state="saving"] {
    color: #8a5a08;
}

.medical-activity-autosave-status[data-state="error"] {
    color: #b42318;
    font-weight: 700;
}

.hospitalization-service-zones {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 6px;
    min-width: 0;
}

.hospitalization-compact-header {
    align-items: center;
    padding-bottom: 5px;
}

.hospitalization-header-audit {
    color: #64748b;
    font-size: 11px;
}

.hospitalization-service-zones > .hospitalization-admission-time,
.hospitalization-service-zones > .hospitalization-discharge-zone {
    display: grid;
    grid-template-columns: 124px 176px minmax(92px, 1fr);
    flex: 1 1 412px;
    align-items: end;
    gap: 5px 8px;
    min-height: 0;
    padding: 6px 10px;
    border: 1px solid #b9cbd9;
    border-radius: 6px;
    background: #f4f8fb;
    box-sizing: border-box;
}

.hospitalization-discharge-active-copy {
    color: #64748b;
    font-size: 12px;
}

.hospitalization-discharge-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.hospitalization-date-parts {
    display: flex;
    align-items: end;
    gap: 3px;
}

.hospitalization-date-parts label {
    display: flex;
    flex-direction: column;
    gap: 2px;
    color: #64748b;
    font-size: 9px;
    font-weight: 700;
    text-align: center;
}

.hospitalization-date-parts input {
    width: 34px;
    min-height: 27px;
    padding: 3px 6px;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    background: #fff;
    color: #27364a;
    box-sizing: border-box;
    font: inherit;
    font-weight: 400;
    text-align: center;
}

.hospitalization-date-parts label:last-child input {
    width: 58px;
}

.hospitalization-date-parts input[readonly],
.hospitalization-time-parts input[readonly] {
    background: #f8fafc;
}

.hospitalization-date-parts.is-empty {
    align-self: center;
    color: #64748b;
    font-size: 11px;
}

.hospitalization-discharge-actions .hospitalization-cancel-discharge-button {
    color: #b42318;
}

.hospitalization-service-zones .hospitalization-admitted-by {
    grid-column: 2 / -1;
    align-self: center;
}

.hospitalization-discharged-by {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.hospitalization-discharged-by .hospitalization-cancel-discharge-button {
    min-height: 26px;
    padding: 3px 9px;
    color: #b42318;
    font-size: 11px;
}

.hospitalization-service-zones > .hospitalization-service-card {
    gap: 7px;
    min-height: 82px;
    padding: 7px 10px;
}

.hospitalization-top-cards > .medical-activity-alert:not(.is-patient-note) {
    flex: 0 1 320px;
    padding-right: 8px;
    padding-left: 8px;
    font-size: 13px;
}

.hospitalization-top-cards > .medical-activity-alert.is-patient-note {
    flex: 1 1 300px;
    min-width: min(300px, 100%);
}

.hospitalization-service-zones > .hospitalization-service-card > strong {
    grid-column: 1 / -1;
    margin: -7px -10px 0;
    padding: 4px 9px;
    border-bottom: 1px solid #d5e1ea;
    border-radius: 5px 5px 0 0;
    color: #475569;
    background: #eaf1f6;
    font-size: 12px;
}

.hospitalization-admission-clock {
    display: flex;
    gap: 5px;
    align-items: center;
}

.hospitalization-admission-clock > span {
    color: #64748b;
    font-size: 11px;
    font-weight: 700;
}

.hospitalization-time-parts {
    display: flex;
    align-items: end;
    gap: 4px;
}

.hospitalization-time-parts label {
    display: flex;
    flex-direction: column;
    gap: 2px;
    color: #64748b;
    font-size: 9px;
    font-weight: 700;
    text-align: center;
}

.hospitalization-time-parts input {
    width: 40px;
    min-height: 27px;
    padding: 3px 6px;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    box-sizing: border-box;
    font: inherit;
    font-weight: 400;
    text-align: center;
}

.hospitalization-service-action {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 6px;
}

.hospitalization-service-action .primary-button {
    min-height: 29px;
    padding: 4px 12px;
    font-size: 12px;
}

.hospitalization-service-zones .next-visit-editor :disabled {
    cursor: not-allowed;
    opacity: 0.68;
}

.hospitalization-admitted-by {
    align-self: center;
    color: #64748b;
    font-size: 10px;
    white-space: nowrap;
}

.hospitalization-parties {
    grid-template-columns: repeat(5, minmax(170px, 1fr));
}

.hospitalization-files-party,
.hospitalization-qr-party {
    align-self: start;
}

.hospitalization-qr-binding {
    max-width: none;
    justify-content: flex-start;
}

.hospitalization-files-placeholder {
    padding: 7px 8px;
    font-size: 11px;
}

.hospital-daily-overview {
    grid-template-columns: minmax(255px, 0.9fr) minmax(245px, 0.8fr) minmax(360px, 1.3fr);
}

.hospital-daily-patient-title {
    margin-top: 5px;
    border-top: 1px solid #dbe4ee;
}

.hospital-daily-important-note {
    display: grid;
    gap: 3px;
    margin: 4px 8px 8px;
    padding: 7px 8px;
    border: 1px solid #f6c453;
    border-radius: 5px;
    color: #7c4a03;
    background: #fff8dc;
    font-size: 12px;
}

.hospital-daily-important-note span {
    white-space: pre-wrap;
}

.medical-activity-details .hospital-daily-weight-control {
    display: flex;
    align-items: center;
    gap: 5px;
}

.hospital-daily-weight-control input,
.hospital-daily-responsible-select,
.hospital-daily-surrendered-select {
    width: 100%;
    min-width: 0;
    min-height: 27px;
    padding: 3px 5px;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    background: #fff;
    font: inherit;
}

.hospital-daily-weight-control input {
    max-width: 92px;
}

.hospital-daily-details-status {
    display: block;
    min-height: 22px;
    padding: 3px 8px 5px;
    text-align: right;
}

.hospital-daily-assessment {
    padding: 7px 8px 5px;
}

.hospital-daily-assessment label {
    display: block;
    margin: 0;
}

.hospital-daily-assessment label > span {
    display: block;
    margin-bottom: 2px;
    color: #64748b;
    font-size: 10px;
    font-weight: 700;
}

.hospital-daily-assessment textarea {
    width: 100%;
    min-height: 48px;
    padding: 5px 6px;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    box-sizing: border-box;
    color: #334155;
    background: #fff;
    font: inherit;
    font-size: 11px;
    resize: vertical;
}

.hospital-daily-assessment-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
}

.hospital-daily-assessment textarea[readonly] {
    background: #f8fafc;
}

.hospital-daily-assessment-status {
    display: block;
    min-height: 17px;
    padding-top: 2px;
    text-align: right;
}

.hospitalization-workspace {
    min-height: 180px;
}

.hospital-daily-workspace,
.hospital-daily-footer-workspace {
    overflow: visible;
}

.hospital-daily-middle-layout {
    display: grid;
    grid-template-columns: minmax(0, 2.35fr) minmax(260px, 0.85fr);
    gap: 5px;
    padding: 5px;
}

.hospital-daily-notes-column {
    display: grid;
    grid-template-rows: repeat(2, minmax(112px, 1fr));
    gap: 8px;
}

.hospital-daily-formatted-note {
    min-width: 0;
    min-height: 112px;
    border: 1px solid #dbe4ee;
    border-radius: 6px;
    overflow: hidden;
    background: #fff;
}

.hospital-daily-formatted-note-header {
    display: flex;
    min-height: 35px;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 5px 7px 5px 9px;
    border-bottom: 1px solid #e5edf5;
    background: #f8fafc;
}

.hospital-daily-formatted-note-header h3 {
    margin: 0;
    color: #1f3f5b;
    font-size: 12px;
}

.hospital-daily-formatted-note-header .secondary-button,
.hospital-daily-formatted-note-actions button {
    min-height: 25px;
    padding: 3px 8px;
    font-size: 11px;
}

.hospital-daily-formatted-note-content {
    max-height: 142px;
    padding: 8px 9px;
    overflow: auto;
    color: #334155;
    font-size: 12px;
    line-height: 1.4;
}

.hospital-daily-formatted-note-content.is-empty {
    color: #94a3b8;
    font-style: italic;
}

.hospital-daily-formatted-note-content > :first-child {
    margin-top: 0;
}

.hospital-daily-formatted-note-content > :last-child {
    margin-bottom: 0;
}

.hospital-daily-formatted-note-content img {
    max-width: 100%;
    height: auto;
}

.hospital-daily-formatted-note.is-editing {
    padding-bottom: 7px;
}

.hospital-daily-formatted-note [data-daily-note-editor] {
    padding: 7px;
}

.hospital-daily-formatted-note .simple-editor {
    min-height: 200px;
}

.hospital-daily-formatted-note .simple-editor-area {
    min-height: 135px;
    padding: 8px;
    font-size: 12px;
}

.hospital-daily-formatted-note-actions {
    display: flex;
    justify-content: flex-end;
    gap: 6px;
    padding: 0 7px;
}

.hospital-daily-placeholder-zone {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 14px;
    border: 1px dashed #aebdcb;
    border-radius: 6px;
    box-sizing: border-box;
    color: #64748b;
    background: #f8fafc;
    text-align: center;
}

.hospital-daily-placeholder-zone strong {
    color: #1f3f5b;
    font-size: 13px;
}

.hospital-daily-placeholder-zone span {
    max-width: 520px;
    font-size: 11px;
    line-height: 1.35;
}

.hospital-daily-timeline-zone {
    min-height: 232px;
    min-width: 0;
}

.hospital-daily-observation-status {
    min-height: 16px;
    padding: 0 3px 1px;
    font-size: 10px;
    text-align: right;
}

.hospital-daily-observation-scroll {
    max-width: 100%;
    max-height: 465px;
    overflow-x: auto;
    overflow-y: auto;
    border: 1px solid #dbe4ec;
    border-radius: 6px;
    background: #ffffff;
}

.hospital-daily-observation-table {
    width: 100%;
    min-width: 1000px;
    table-layout: fixed;
    border-spacing: 0;
    color: #334155;
    font-size: 10px;
}

.hospital-daily-observation-table th,
.hospital-daily-observation-table td {
    min-width: 0;
    height: 27px;
    padding: 1px;
    border-right: 1px solid #e5ebf0;
    border-bottom: 1px solid #e5ebf0;
    box-sizing: border-box;
    text-align: center;
    white-space: nowrap;
}

.hospital-daily-time-row th {
    color: #31526d;
    background: #edf4f8;
    font-weight: 700;
}

.hospital-daily-observation-name {
    position: sticky;
    left: 0;
    z-index: 1;
    width: 216px;
    min-width: 216px;
    padding-left: 5px;
    background: #f7fafc;
    text-align: left;
    font-weight: 500;
}

.hospital-daily-support-cell,
.hospital-daily-activity-action-cell {
    width: 50px;
    min-width: 50px !important;
    padding: 0 !important;
}

.hospital-daily-activity-action-cell button {
    width: 52px;
    min-width: 0;
    min-height: 25px;
    padding: 1px;
    border: 0;
    border-radius: 3px;
    font-size: 8px;
    line-height: 1.05;
    white-space: normal;
}

.hospital-daily-activity-action-cell {
    padding-left: 2px !important;
    text-align: left !important;
}

.hospital-daily-time-label-cell,
.hospital-daily-time-row th:nth-child(3) {
    width: 160px;
    min-width: 160px !important;
    padding-left: 1px;
    padding-right: 1px;
}

.hospital-daily-time-row th:first-child {
    position: sticky;
    left: 0;
    z-index: 2;
    width: 216px;
    min-width: 216px;
    background: #e8f1f6;
}

.hospital-daily-observation-table tr:last-child th,
.hospital-daily-observation-table tr:last-child td {
    border-bottom: 0;
}

.hospital-daily-observation-table th:last-child,
.hospital-daily-observation-table td:last-child {
    border-right: 0;
}

.hospital-daily-observation-table input {
    width: 100%;
    min-width: 0;
    min-height: 23px;
    padding: 1px 2px;
    border: 1px solid transparent;
    border-radius: 4px;
    box-sizing: border-box;
    color: #243746;
    background: #f8fafc;
    font-size: 10px;
    text-align: center;
}

.hospital-daily-observation-table input:hover:not(:disabled) {
    border-color: #b9cad8;
}

.hospital-daily-observation-table input:focus {
    border-color: var(--accent-color);
    outline: 0;
    background: #ffffff;
    box-shadow: 0 0 0 2px rgba(42, 112, 151, 0.15);
}

.hospital-daily-observation-table input:disabled {
    color: #64748b;
    opacity: 1;
}

.hospital-daily-activities-row th,
.hospital-daily-activities-row td {
    background: #f1f7f3;
}

.hospital-daily-activities-row .hospital-daily-observation-name {
    background: #e9f3ec;
}

.hospital-daily-activity-totals-row td {
    height: 16px;
    padding: 1px 2px;
    color: #64748b;
    background: #f8fafc;
    font-size: 9px;
    line-height: 1.1;
    text-align: right;
    vertical-align: top;
}

.hospital-daily-activity-totals-row .hospital-daily-observation-name {
    background: #f1f5f9;
}

.hospital-daily-activity-total-cell.has-totals {
    cursor: help;
}

.hospital-daily-activity-total {
    display: block;
    color: #64748b;
    font-size: 8px;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.35px;
}

.hospital-daily-medication-heading-row td {
    height: 25px;
    color: #31526d;
    background: #edf4f8;
    font-weight: 700;
}

.hospital-daily-medication-heading-row .hospital-daily-observation-name,
.hospital-daily-medication-row .hospital-daily-observation-name {
    position: sticky;
    padding-right: 47px;
}

.hospital-daily-medication-heading-row .hospital-daily-observation-name {
    z-index: 2;
    background: #e8f1f6;
}

.hospital-daily-medication-row .hospital-daily-observation-name {
    background: #f7fafc;
}

.hospital-daily-medication-row .hospital-daily-observation-name > span {
    display: block;
    min-width: 0;
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
}

.hospital-daily-medication-heading-row button,
.hospital-daily-medication-row button {
    flex: 0 0 auto;
    width: 22px;
    min-width: 22px;
    min-height: 21px;
    padding: 0;
    border: 0;
    border-radius: 4px;
    line-height: 1;
}

.hospital-daily-medication-row button {
    color: #b42318;
    background: #fee2e2;
}

.hospital-daily-medication-heading-row .hospital-daily-observation-name button {
    position: absolute;
    top: 2px;
    right: 2px;
}

.hospital-daily-medication-row-actions {
    position: absolute;
    top: 2px;
    right: 2px;
    display: flex;
    align-items: center;
    gap: 2px;
}

.hospital-daily-observation-table .hospital-daily-medication-row-actions input[type="checkbox"] {
    width: 16px;
    min-width: 16px;
    min-height: 16px;
    margin: 0;
    padding: 0;
    border: 1px solid #94a3b8;
    background: #fff;
    box-shadow: none;
}

.hospital-daily-medication-exam-action {
    display: flex;
    justify-content: flex-start;
    padding: 6px 0 0;
}

.hospital-daily-medication-exam-action button {
    min-height: 30px;
    padding: 5px 10px;
    font-size: 11px;
}

.hospital-daily-medication-dose-cell {
    width: 50px;
    min-width: 50px !important;
    color: #334155;
    background: #fbfdff;
    font-size: 9px;
    white-space: normal !important;
}

.hospital-daily-medication-application-cell {
    width: 160px;
    min-width: 160px !important;
    overflow: visible;
    color: #334155;
    background: #fbfdff;
    font-size: 9px;
    text-overflow: clip;
    white-space: normal !important;
}

.hospital-daily-medication-dose-editor,
.hospital-daily-medication-application-editor {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 4px;
}

.hospital-daily-medication-application-editor {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: center;
    gap: 3px;
}

.hospital-daily-medication-dose-editor input,
.hospital-daily-medication-application-editor input,
.hospital-daily-medication-application-editor select {
    width: 100%;
    min-width: 0;
    min-height: 22px;
    padding: 2px 4px;
    border: 1px solid #94a3b8;
    border-radius: 3px;
    box-sizing: border-box;
    background: #fff;
    font-size: 10px;
}

.hospital-daily-medication-dose-editor input {
    width: 30px;
    flex: 0 0 30px;
}

.hospital-daily-medication-dose-editor span {
    flex: 0 0 auto;
    white-space: nowrap;
}

.hospital-daily-medication-application-editor input,
.hospital-daily-medication-application-editor select {
    font-size: 9px;
}

.hospital-daily-medication-row td:not(.hospital-daily-observation-name):not(.hospital-daily-medication-dose-cell):not(.hospital-daily-medication-application-cell) {
    background: #fffdf5;
}

.hospital-daily-activity-tooltip-section {
    display: block;
    padding-top: 5px;
}

.hospital-daily-activity-tooltip-section + .hospital-daily-activity-tooltip-section {
    margin-top: 5px;
    border-top: 1px solid rgba(255, 255, 255, 0.22);
}

.hospital-daily-activity-tooltip-heading {
    display: block;
    margin-bottom: 2px;
    color: #b8c6d8;
    font-size: 11px;
    text-transform: uppercase;
}

.hospital-daily-activity-tooltip-section > .warehouse-receipt-list-tooltip-empty {
    display: block;
    padding: 3px 0;
}

.hospital-daily-activity-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    margin: 0;
    padding: 2px 1px;
    border-radius: 4px;
    color: var(--accent-color);
    background: #ffffff;
    text-decoration: none;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.12);
    overflow: hidden;
}

.hospital-daily-activity-link:hover {
    background: #f8fcfa;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.2);
}

.hospital-daily-activity-icons {
    display: flex;
    min-height: 12px;
    align-items: center;
    justify-content: center;
    gap: 1px;
}

.hospital-daily-activity-icons > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.hospital-daily-activity-icons img {
    display: block;
    width: 12px;
    height: 12px;
    object-fit: contain;
}

.hospital-daily-activity-icons .hospitalization-daily-activity-dot {
    width: 8px;
    height: 8px;
}

.hospital-daily-footer-layout {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    padding: 8px;
}

.hospital-daily-footer-layout.without-manipulations {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.hospital-daily-footer-zone {
    min-height: 112px;
    align-items: stretch;
    justify-content: flex-start;
    text-align: left;
}

.hospital-daily-footer-title {
    width: calc(100% + 28px);
    margin: -14px -14px 7px;
    box-sizing: border-box;
    flex: 0 0 auto;
}

.hospital-daily-totals-table {
    width: 100%;
    border-collapse: collapse;
    color: #29445c;
    font-size: 12px;
}

.hospital-daily-totals-table td {
    padding: 4px 2px;
    border-bottom: 1px solid #dbe3ea;
}

.hospital-daily-totals-table td:last-child {
    padding-left: 8px;
    text-align: right;
    white-space: nowrap;
}

.hospital-daily-totals-table .hospital-daily-totals-grand-total td {
    padding-top: 6px;
    border-top: 2px solid #9fb2c2;
    border-bottom: 0;
    color: #123d5b;
    font-weight: 800;
}

.hospital-daily-totals-state {
    color: #64748b;
    font-size: 12px;
    text-align: center;
}

.hospital-daily-footer-zone[data-hospital-daily-totals][aria-busy='true'] {
    opacity: 0.65;
}

@media (max-width: 1180px) and (min-width: 761px) {
    .hospitalization-parties {
        grid-template-columns: repeat(2, minmax(240px, 1fr));
    }

    .hospital-daily-footer-layout:not(.without-manipulations) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .hospital-daily-footer-layout:not(.without-manipulations)
        > .hospital-daily-footer-zone[data-hospital-daily-totals] {
        grid-column: 1 / -1;
    }
}

.hospitalization-daily-content {
    min-height: 74px;
}

.hospitalization-daily-empty {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.hospitalization-daily-actions:empty {
    display: none;
}

.hospitalization-daily-table-wrap {
    overflow-x: hidden;
    border: 1px solid #dbe3ea;
    border-radius: 8px;
}

.hospitalization-daily-table {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
    margin: 0;
}

.hospitalization-daily-table th,
.hospitalization-daily-table td {
    min-width: 0;
    padding: 3px;
    overflow: hidden;
    vertical-align: top;
}

.hospitalization-daily-table th:first-child {
    width: 92px;
}

.hospitalization-daily-card-identity {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
}

.hospitalization-daily-card-identity .status-marker {
    min-height: 14px;
    padding: 0 3px;
    font-size: 7px;
    line-height: 1.1;
    letter-spacing: 0;
    box-shadow: 0 1px 2px rgba(74, 20, 28, 0.16);
}

.hospitalization-daily-id,
.hospitalization-daily-new-tab {
    color: var(--accent-color);
    font-weight: 700;
}

.hospitalization-daily-new-tab-column {
    width: 25px;
    padding: 2px !important;
    text-align: center;
}

.hospitalization-daily-new-tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 21px;
    height: 21px;
    border-radius: 4px;
}

.hospitalization-daily-new-tab:hover {
    background: #eef4f8;
}

.hospitalization-daily-new-tab svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.hospitalization-daily-audit-column,
.hospitalization-daily-audit-cell {
    width: 132px;
    min-width: 0;
}

.hospitalization-daily-audit-cell {
    overflow-wrap: anywhere;
}

.hospitalization-daily-audit-cell > * {
    display: block;
    margin-bottom: 1px;
    line-height: 1.15;
}

.hospitalization-daily-audit-cell small {
    color: #667785;
    font-size: 9px;
}

.hospitalization-daily-time-column,
.hospitalization-daily-time-cell {
    width: auto;
    min-width: 0;
    text-align: center;
}

.hospitalization-daily-time-column {
    padding: 2px 1px !important;
    font-size: 9px;
    white-space: nowrap;
}

.hospitalization-daily-time-cell {
    padding: 2px 1px !important;
    background: #fbfcfd;
}

.hospitalization-daily-time-cell.has-activities {
    background: #f1f7fa;
}

.hospitalization-daily-activities {
    display: block;
}

.hospitalization-daily-activity-total {
    display: block;
    margin-top: 1px;
    color: #64748b;
    font-size: 8px;
    font-variant-numeric: tabular-nums;
    line-height: 1;
    letter-spacing: -0.35px;
    text-align: right;
}

.hospitalization-daily-activity {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin: 0 1px 1px 0;
    padding: 0;
    color: #2d3c47;
    background: transparent;
    border: 0;
    text-decoration: none;
}

.hospitalization-daily-activity:last-child {
    margin-bottom: 0;
}

.hospitalization-daily-activity:hover {
    filter: drop-shadow(0 1px 2px rgba(25, 52, 68, 0.3));
}

.hospitalization-daily-activity-icons {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 1px;
}

.hospitalization-daily-activity-icons img {
    display: block;
    width: 12px;
    height: 12px;
    object-fit: contain;
}

.hospitalization-daily-activity-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--accent-color);
}

.hospitalization-list-page {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.hospitalization-list-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.hospitalization-list-header h1 {
    margin: 0;
    color: #1f3f5b;
    font-size: 24px;
}

.hospitalization-list-header p {
    margin: 4px 0 0;
    color: #64748b;
    font-size: 13px;
}

.hospitalization-list-filters {
    display: grid;
    grid-template-columns: minmax(145px, 0.7fr) minmax(145px, 0.7fr) minmax(260px, 1.5fr) auto auto;
    gap: 8px;
    align-items: end;
    padding: 10px;
    border: 1px solid #dbe4ee;
    border-radius: 7px;
    background: #fff;
}

.hospitalization-list-filters label {
    display: flex;
    flex-direction: column;
    gap: 4px;
    color: #64748b;
    font-size: 11px;
    font-weight: 700;
}

.hospitalization-list-filters input {
    width: 100%;
    min-height: 34px;
    padding: 5px 7px;
    border: 1px solid #cbd5e1;
    border-radius: 5px;
    box-sizing: border-box;
    font: inherit;
    font-weight: 400;
}

.hospitalization-list-table-wrap {
    overflow-x: auto;
    border: 1px solid #dbe4ee;
    border-radius: 7px;
    background: #fff;
}

.hospitalization-list-table {
    width: 100%;
    margin: 0;
    border: 0;
}

.hospitalization-list-id,
.hospitalization-list-owner a,
.hospitalization-list-patient a {
    color: #1f5f88;
    font-weight: 800;
    text-decoration: none;
}

.hospitalization-list-owner,
.hospitalization-list-patient {
    margin-bottom: 2px;
}

.hospitalization-list-table small {
    color: #64748b;
}

.hospitalization-list-admission,
.hospitalization-list-responsibility {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
}

.hospitalization-list-empty {
    padding: 24px !important;
    color: #64748b;
    text-align: center;
}

@media (max-width: 760px) {
    .hospitalization-parties,
    .hospital-daily-overview,
    .hospital-daily-footer-layout,
    .hospital-daily-footer-layout.without-manipulations {
        grid-template-columns: 1fr;
    }

    .hospitalization-service-zones {
        flex-direction: column;
    }

    .hospitalization-service-zones > .hospitalization-admission-time,
    .hospitalization-service-zones > .hospitalization-discharge-zone {
        flex-basis: auto;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: end;
    }

    .hospitalization-service-zones .hospitalization-admitted-by {
        grid-column: 1 / -1;
    }

    .hospitalization-list-header {
        flex-direction: column;
    }

    .hospitalization-list-filters {
        grid-template-columns: 1fr;
    }
}

.medical-activity-current-weight label {
    display: flex;
    align-items: center;
    gap: 5px;
    color: #64748b;
    font-size: 11px;
    font-weight: 700;
}

.medical-activity-weight-input {
    width: 76px;
    min-height: 27px;
    padding: 3px 5px;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    box-sizing: border-box;
    font: inherit;
    font-weight: 400;
}

.medical-activity-surrender-select {
    width: 100%;
    min-height: 27px;
    padding: 3px 24px 3px 5px;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    box-sizing: border-box;
    background: #fff;
    font: inherit;
}

.medical-activity-workspace {
    min-height: 180px;
    padding: 8px;
}

.medical-activity-exam {
    overflow: hidden;
    margin-bottom: 8px;
    border: 1px solid #cbd5e1;
    border-radius: 7px;
    background: #fff;
}

.medical-activity-exam:last-child {
    margin-bottom: 0;
}

.medical-activity-exam.is-qr-target-highlight,
.medical-activity-view-module.is-qr-target-highlight {
    outline: 3px solid transparent;
    outline-offset: 3px;
    animation: medical-activity-qr-target-pulse 0.9s ease-in-out 4;
}

@keyframes medical-activity-qr-target-pulse {
    0%, 100% {
        outline-color: transparent;
    }

    50% {
        outline-color: var(--accent-color);
    }
}

@media (prefers-reduced-motion: reduce) {
    .medical-activity-exam.is-qr-target-highlight,
    .medical-activity-view-module.is-qr-target-highlight {
        animation: none;
        outline-color: var(--accent-color);
    }
}

.medical-activity-exam-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 7px 9px;
    border-bottom: 1px solid #dbe4ee;
    background: #f8fafc;
}

.medical-activity-exam-header > div {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.medical-activity-exam-header strong {
    color: #1f3f5b;
    font-size: 14px;
}

.medical-activity-exam-header span {
    color: #64748b;
    font-size: 10px;
}

.medical-activity-exam-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
}

.medical-activity-qr-header {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) minmax(0, auto) auto;
}

.medical-activity-exam-delete {
    color: #b42318;
}

.medical-activity-exam-lock-message {
    display: flex;
    min-height: 105px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 4px;
    padding: 18px;
    color: #475569;
    background: #f8fafc;
    text-align: center;
}

.medical-activity-exam-lock-message strong {
    color: #9a3412;
    font-size: 14px;
}

.medical-activity-exam-lock-message span {
    font-weight: 800;
}

.medical-activity-exam-lock-message small {
    color: #64748b;
}

.medical-activity-exam-content {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.95fr) minmax(0, 0.9fr) minmax(0, 0.7fr) minmax(250px, 1.25fr);
}

.medical-activity-vaccine-content {
    grid-template-columns: minmax(0, 1.2fr) minmax(280px, 1fr);
}

.medical-activity-vaccine-content.has-manipulations {
    grid-template-columns: minmax(0, 1.05fr) minmax(280px, 1fr) minmax(250px, 0.9fr);
}

.medical-activity-lab-content {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.85fr) minmax(0, 0.7fr) minmax(260px, 1fr);
}

.medical-activity-imaging-module-content {
    display: grid;
    grid-template-columns: minmax(0, 4fr) minmax(230px, 1fr);
    min-width: 0;
}

.medical-activity-imaging-files,
.medical-activity-imaging-warehouse {
    min-width: 0;
    padding: 6px;
}

.medical-activity-imaging-warehouse {
    border-left: 1px solid #dbe4eb;
    background: #fafafa;
}

.medical-activity-imaging-warehouse > strong,
.medical-activity-imaging-warehouse > small {
    display: block;
    margin-bottom: 5px;
}

.medical-activity-imaging-warehouse > small {
    color: #64748b;
    font-size: 10px;
    font-weight: 700;
}

.medical-activity-imaging-toolbar {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    margin-bottom: 5px;
}

.medical-activity-imaging-toolbar > div {
    display: flex;
    gap: 5px;
}

.medical-activity-imaging-table {
    min-width: 0;
    overflow-x: auto;
    border: 1px solid #cbd8e2;
    background: #fff;
}

.medical-activity-imaging-table-head,
.medical-activity-imaging-row {
    display: grid;
    grid-template-columns:
        42px minmax(220px, 1.6fr) minmax(105px, 0.75fr)
        minmax(230px, 2fr) minmax(210px, 1.35fr) 30px;
    min-width: 900px;
}

.medical-activity-imaging-table-head.without-manipulations,
.medical-activity-imaging-row.without-manipulations {
    grid-template-columns:
        42px minmax(220px, 1.6fr) minmax(105px, 0.75fr)
        minmax(230px, 2.8fr) 30px;
}

.medical-activity-imaging-table-head {
    color: #334155;
    background: #eef3f7;
    font-size: 10px;
    font-weight: 700;
}

.medical-activity-imaging-table-head > span,
.medical-activity-imaging-row > * {
    min-width: 0;
    padding: 4px;
    border-right: 1px solid #dbe4eb;
    box-sizing: border-box;
}

.medical-activity-imaging-table-head > span:last-child,
.medical-activity-imaging-row > *:last-child {
    border-right: 0;
}

.medical-activity-imaging-rows {
    min-width: 900px;
}

.medical-activity-imaging-row {
    align-items: stretch;
    border-top: 1px solid #dbe4eb;
    background: #fff;
}

.medical-activity-imaging-row:first-child {
    border-top: 0;
}

.medical-activity-imaging-row-id {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    color: #334155;
    font-size: 11px;
}

.medical-activity-imaging-file-cell {
    display: block;
    min-height: 54px;
}

.medical-activity-imaging-file-cell .file-collection-controls {
    margin-bottom: 6px;
}

.medical-activity-imaging-file-cell .file-collection-controls .secondary-button {
    width: auto;
    min-height: 30px;
}

.medical-activity-imaging-file-list {
    align-content: flex-start;
}

.medical-activity-imaging-file-cell.is-loading,
.medical-activity-imaging-file-cell .file-collection-item.is-loading {
    opacity: 0.65;
}

.medical-activity-imaging-file-cell small {
    overflow-wrap: anywhere;
}

.medical-activity-imaging-type-cell,
.medical-activity-imaging-note-cell {
    display: block;
    margin: 0;
}

.medical-activity-imaging-type-cell select,
.medical-activity-imaging-note-cell textarea {
    width: 100%;
    border: 1px solid #9daebe;
    border-radius: 3px;
    box-sizing: border-box;
    background: #fff;
    font: inherit;
    font-size: 11px;
}

.medical-activity-imaging-type-cell select {
    min-height: 30px;
}

.medical-activity-imaging-note-cell small {
    display: block;
    margin-bottom: 2px;
    color: #64748b;
    font-size: 9px;
    line-height: 1.2;
}

.medical-activity-imaging-note-cell textarea {
    min-height: 38px;
    padding: 3px 4px;
    resize: vertical;
}

.medical-activity-imaging-note-cell [data-imaging-row-save-state] {
    display: block;
    min-height: 11px;
    color: #25714a;
    font-size: 9px;
    text-align: right;
}

.medical-activity-imaging-manipulation-cell {
    min-width: 0;
}

.medical-activity-imaging-manipulation-cell > button {
    margin-bottom: 3px;
}

.medical-activity-imaging-manipulation-cell .medical-activity-exam-manipulation-lines {
    max-height: 82px;
    overflow-y: auto;
}

.medical-activity-imaging-manipulation-cell .medical-manipulation-state {
    padding: 4px 2px;
}

.medical-activity-imaging-row-delete {
    align-self: center;
    width: 30px;
    height: 30px;
    margin: 3px;
    padding: 0;
    border: 1px solid #dc2626;
    border-radius: 6px;
    color: #b91c1c;
    background: #fff1f2;
    font-size: 20px;
    font-weight: 700;
    line-height: 1;
    box-shadow: 0 1px 2px rgba(185, 28, 28, 0.12);
    cursor: pointer;
    transition: color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

.medical-activity-imaging-row-delete:hover:not(:disabled) {
    color: #fff;
    background: #dc2626;
    box-shadow: 0 2px 5px rgba(185, 28, 28, 0.24);
}

.medical-activity-imaging-row-delete:focus-visible {
    outline: 2px solid rgba(220, 38, 38, 0.35);
    outline-offset: 2px;
}

.medical-activity-imaging-row-delete:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.medical-activity-imaging-empty {
    min-width: 760px;
    padding: 8px;
    box-sizing: border-box;
    color: #64748b;
    background: #f8fafc;
    font-size: 11px;
}
.medical-activity-lab-placeholder-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-bottom: 6px;
}

.medical-activity-qr-binding {
    display: flex;
    min-width: 0;
    max-width: min(46vw, 680px);
    align-items: center;
    justify-content: center;
    flex-direction: row;
    gap: 5px;
    padding: 0;
    border: 0;
    background: transparent;
}

.medical-activity-qr-header > .medical-activity-qr-binding {
    flex-direction: row;
    gap: 5px;
}

.medical-activity-qr-binding-header {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    margin: 0;
}

.medical-activity-qr-bind-button {
    min-height: 26px;
    padding: 3px 8px;
    font-size: 11px;
    line-height: 1;
}

.medical-activity-qr-binding-list {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 4px;
    overflow-x: auto;
    scrollbar-width: thin;
}

.medical-activity-qr-binding-list > small {
    color: #64748b;
    font-size: 10px;
    white-space: nowrap;
}

.medical-activity-qr-binding-item {
    display: inline-flex;
    flex: 0 0 auto;
    gap: 4px;
    align-items: center;
    padding: 2px 3px 2px 7px;
    border: 1px solid #dbe4ee;
    border-radius: 999px;
    background: #fff;
}

.medical-activity-qr-binding-item code {
    max-width: 150px;
    overflow: hidden;
    color: #0f5f8f;
    font-size: 10px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.medical-activity-qr-binding-item .file-collection-action-button {
    width: 22px;
    height: 22px;
    min-height: 22px;
    padding: 3px;
    border-radius: 50%;
}

.medical-activity-exam-content > section {
    min-width: 0;
    min-height: 105px;
    padding: 8px;
    border-right: 1px solid #e2e8f0;
}

.medical-activity-exam-content > section:last-child {
    border-right: 0;
}

.medical-activity-exam-content strong {
    display: block;
    margin-bottom: 6px;
    color: #475569;
    font-size: 12px;
}

.medical-activity-exam-content label {
    display: block;
    margin-bottom: 7px;
}

.medical-activity-exam-content label > span {
    display: block;
    margin-bottom: 2px;
    color: #64748b;
    font-size: 10px;
    font-weight: 700;
}

.medical-activity-exam-diagnosis-picker {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 5px;
    align-items: start;
    margin-bottom: 8px;
    padding-bottom: 7px;
    border-bottom: 1px solid #e2e8f0;
}

.medical-activity-exam-diagnosis-control {
    position: relative;
    min-width: 0;
}

.medical-activity-exam-diagnosis-picker input,
.medical-activity-exam-diagnosis-picker select {
    width: 100%;
    min-height: 29px;
    padding: 4px 6px;
    border: 1px solid #94a3b8;
    border-radius: 4px;
    box-sizing: border-box;
    color: #334155;
    background: #fff;
    font: inherit;
    font-size: 11px;
}

.medical-activity-exam-diagnosis-picker input[readonly] {
    border-color: #dbe4ee;
    background: #f8fafc;
    cursor: text;
}

.medical-activity-exam-diagnosis-picker input.is-assessment-locked {
    color: #64748b;
    background: #f1f5f9;
    cursor: not-allowed;
}

.medical-activity-exam-diagnosis-picker select:disabled {
    color: #94a3b8;
    background: #f8fafc;
}

.medical-activity-exam-diagnosis-results {
    position: absolute;
    z-index: 20;
    top: calc(100% + 2px);
    right: 0;
    left: 0;
    max-height: 230px;
    overflow-y: auto;
    border: 1px solid #94a3b8;
    border-radius: 4px;
    background: #fff;
    box-shadow: 0 8px 20px rgb(15 23 42 / 16%);
}

.medical-activity-exam-diagnosis-results button {
    display: block;
    width: 100%;
    padding: 6px 8px;
    border: 0;
    border-bottom: 1px solid #edf2f7;
    color: #334155;
    background: #fff;
    text-align: left;
    font: inherit;
    font-size: 11px;
    cursor: pointer;
}

.medical-activity-exam-diagnosis-results button:last-child {
    border-bottom: 0;
}

.medical-activity-exam-diagnosis-results button:hover,
.medical-activity-exam-diagnosis-results button.is-active {
    color: #fff;
    background: var(--accent-color);
}

.medical-activity-exam-diagnosis-empty {
    padding: 7px 8px;
    color: #64748b;
    font-size: 11px;
}

.medical-activity-exam-content textarea {
    width: 100%;
    min-height: 62px;
    padding: 5px 6px;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    box-sizing: border-box;
    color: #334155;
    background: #fff;
    resize: vertical;
    font: inherit;
    font-size: 11px;
    line-height: 1.35;
}

.medical-activity-exam-content textarea[readonly] {
    border-color: #dbe4ee;
    background: #f8fafc;
    resize: none;
    cursor: text;
}

.medical-activity-exam-content textarea.is-assessment-locked {
    color: #64748b;
    background: #f1f5f9;
    cursor: not-allowed;
}

.medical-activity-exam-content.is-editing textarea:not([readonly]) {
    border-color: #94a3b8;
    background: #fff;
}

.medical-activity-exam-assessment-lock {
    display: inline-block;
    margin: 0 0 6px;
    padding: 2px 5px;
    border: 1px solid #fdba74;
    border-radius: 4px;
    color: #9a3412;
    background: #fff7ed;
    font-size: 9px;
    font-weight: 700;
}

.medical-activity-exam-content p {
    margin: 2px 0 7px;
    color: #334155;
    font-size: 11px;
    overflow-wrap: anywhere;
}

.medical-activity-exam-placeholder {
    background: #fafafa;
}

.medical-activity-exam-placeholder p {
    color: #94a3b8;
}

.medical-activity-exam-warehouse-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 6px;
}

.medical-activity-exam-consumption {
    margin-top: 8px;
}

.medical-activity-consumption-lines {
    border-top: 1px solid #d9e1eb;
}

.medical-activity-consumption-row {
    display: grid;
    grid-template-columns: minmax(80px, 1fr) auto 28px;
    grid-template-rows: auto auto;
    gap: 2px 5px;
    align-items: center;
    min-height: 38px;
    padding: 3px 0;
    border-bottom: 1px solid #d9e1eb;
    font-size: 12px;
}

.medical-activity-consumption-row strong {
    min-width: 0;
    overflow-wrap: anywhere;
    white-space: normal;
}

.medical-activity-consumption-row small {
    font-weight: 400;
    color: #66768a;
}

.medical-activity-consumption-row .medical-activity-consumption-note {
    display: block;
    margin-top: 2px;
    color: #334155;
    font-style: italic;
}

.medical-activity-consumption-row > strong {
    grid-column: 1;
    grid-row: 1;
}

.medical-activity-consumption-row > span:nth-of-type(1) {
    grid-column: 1;
    grid-row: 2;
}

.medical-activity-consumption-row > span:nth-of-type(2) {
    grid-column: 2;
    grid-row: 2;
}

.medical-activity-consumption-row > span:nth-of-type(3) {
    grid-column: 2;
    grid-row: 1;
    text-align: right;
}

.medical-activity-consumption-remove {
    grid-column: 3;
    grid-row: 1 / span 2;
    width: 26px;
    height: 26px;
    padding: 0;
    border: 1px solid #cfdae7;
    border-radius: 5px;
    background: #fff;
    color: #9a2c2c;
    cursor: pointer;
}

.medical-activity-consumption-total {
    display: flex;
    justify-content: flex-end;
    gap: 18px;
    padding-top: 7px;
    font-size: 12px;
}

.medical-activity-exam-manipulation-header,
.medical-manipulation-selected-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 7px;
    margin-bottom: 6px;
}

.medical-activity-exam-manipulation-header > strong,
.medical-manipulation-selected-header > strong {
    margin-bottom: 0;
}

.medical-activity-exam-manipulation-header button,
.medical-manipulation-selected-header button {
    padding: 5px 8px;
    font-size: 11px;
    white-space: nowrap;
}

.medical-manipulation-lines {
    border-top: 1px solid #d9e1eb;
}

.medical-manipulation-line {
    display: grid;
    grid-template-columns: minmax(70px, 1fr) auto 28px;
    gap: 5px;
    align-items: center;
    min-height: 34px;
    padding: 3px 0;
    border-bottom: 1px solid #d9e1eb;
    font-size: 11px;
}

.medical-manipulation-line strong {
    min-width: 0;
    margin: 0;
    overflow-wrap: anywhere;
}

.medical-manipulation-line strong small {
    display: block;
    color: #64748b;
    font-size: 9px;
    font-weight: 400;
}

.medical-manipulation-line button {
    width: 26px;
    height: 26px;
    padding: 0;
    border: 1px solid #cfdae7;
    border-radius: 5px;
    color: #9a2c2c;
    background: #fff;
    cursor: pointer;
}

.medical-manipulation-line button:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.medical-manipulation-total {
    display: flex;
    justify-content: flex-end;
    gap: 18px;
    padding-top: 7px;
    font-size: 12px;
}

.medical-manipulation-state {
    padding: 10px 4px;
    color: #64748b;
    text-align: center;
    font-size: 11px;
}

.medical-manipulation-state.is-error {
    color: #b42318;
}

.medical-manipulation-selector-box {
    width: min(1120px, calc(100vw - 32px));
    max-width: none;
}

.medical-manipulation-selector {
    display: grid;
    grid-template-columns: minmax(460px, 1.25fr) minmax(320px, 0.85fr);
    height: 68vh;
    min-height: 400px;
    max-height: 600px;
    overflow: hidden;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
}

.medical-manipulation-selector > main,
.medical-manipulation-selector > aside {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    padding: 10px;
    border-right: 1px solid #e2e8f0;
}

.medical-manipulation-selector > aside {
    border-right: 0;
}

.medical-manipulation-selector-toolbar {
    display: flex;
    align-items: flex-end;
    gap: 8px;
}

.medical-manipulation-selector-toolbar label {
    flex: 1 1 auto;
    margin: 0;
}

.medical-manipulation-selector-toolbar label > span {
    display: block;
    margin-bottom: 2px;
    color: #64748b;
    font-size: 10px;
    font-weight: 700;
}

.medical-manipulation-selector-toolbar input {
    width: 100%;
    min-height: 34px;
    padding: 6px 8px;
    border: 1px solid #94a3b8;
    border-radius: 5px;
    box-sizing: border-box;
}

.medical-manipulation-selector-toolbar button {
    min-height: 34px;
    white-space: nowrap;
}

.medical-manipulation-pricing {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 14px;
    min-height: 25px;
    padding: 6px 0;
    color: #475569;
    font-size: 11px;
}

.medical-manipulation-pricing label {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin: 0;
    color: #9a3412;
    font-weight: 700;
}

.medical-manipulation-group-popup {
    width: min(760px, calc(100vw - 80px));
    max-height: min(70vh, 680px);
    overflow: auto;
    border: 1px solid #cbd5e1;
    border-radius: 5px;
    background: #fff;
    text-align: left;
}

.medical-manipulation-group-popup table {
    width: 100%;
    border-collapse: collapse;
    font-size: 10px;
}

.medical-manipulation-group-popup td {
    padding: 7px 8px;
    border-bottom: 1px solid #e2e8f0;
    vertical-align: middle;
}

.medical-manipulation-group-popup td:last-child {
    color: #9a3412;
    white-space: nowrap;
}

.medical-manipulation-group-popup button {
    min-width: 34px;
    padding: 5px 7px;
}

.medical-manipulation-results,
.medical-manipulation-selected {
    min-height: 0;
    overflow-y: auto;
    scrollbar-gutter: stable;
}

.medical-manipulation-results,
.medical-manipulation-selected {
    flex: 1 1 auto;
}

.medical-manipulation-results {
    padding-right: 8px;
}

.medical-manipulation-result-row,
.medical-manipulation-selected-row {
    align-items: center;
    gap: 5px;
    padding: 3px 0;
    border-bottom: 1px solid #e2e8f0;
}

.medical-manipulation-result-row {
    display: grid;
    grid-template-columns: minmax(160px, 1fr) auto 72px 32px;
}

.medical-manipulation-result-row.without-adjustment {
    grid-template-columns: minmax(160px, 1fr) auto 32px;
}

.medical-manipulation-result-row.is-custom {
    grid-template-columns: minmax(160px, 1fr) minmax(105px, 135px) 72px 32px;
    margin-top: 7px;
    padding-top: 7px;
    border-top: 2px solid #cbd5e1;
}

.medical-manipulation-result-row.is-custom.without-adjustment {
    grid-template-columns: minmax(160px, 1fr) minmax(105px, 135px) 32px;
}

.medical-manipulation-result-row strong {
    min-width: 0;
    color: #334155;
    font-size: 11px;
    font-weight: 500;
    overflow-wrap: anywhere;
}

.medical-manipulation-result-row > span {
    color: #334155;
    font-size: 11px;
    white-space: nowrap;
}

.medical-manipulation-result-row input,
.medical-manipulation-result-row select {
    width: 100%;
    min-width: 0;
    min-height: 28px;
    padding: 3px 5px;
    border: 1px solid #94a3b8;
    border-radius: 4px;
    box-sizing: border-box;
    background: #fff;
    font-size: 10px;
}

.medical-manipulation-result-row button,
.medical-manipulation-selected-row button {
    min-width: 30px;
    min-height: 28px;
    padding: 2px 5px;
}

.medical-manipulation-selected-row {
    display: grid;
    grid-template-columns: 32px minmax(110px, 1fr) auto;
    grid-template-rows: auto auto;
}

.medical-manipulation-selected-row button {
    grid-row: 1 / span 2;
}

.medical-manipulation-selected-row strong {
    min-width: 0;
    color: #334155;
    font-size: 11px;
    font-weight: 500;
    overflow-wrap: anywhere;
}

.medical-manipulation-selected-row small {
    grid-column: 2;
    color: #64748b;
    font-size: 9px;
}

.medical-manipulation-selected-row span {
    grid-column: 3;
    grid-row: 1 / span 2;
    color: #334155;
    font-size: 11px;
    white-space: nowrap;
}

@media (max-width: 820px) {
    .medical-manipulation-selector {
        grid-template-columns: 1fr;
        height: auto;
        min-height: 0;
        max-height: 75vh;
        overflow-y: auto;
    }

    .medical-manipulation-selector > main,
    .medical-manipulation-selector > aside {
        display: block;
        overflow: visible;
        border-right: 0;
        border-bottom: 1px solid #e2e8f0;
    }
}

.medical-warehouse-selector-box {
    width: min(1120px, calc(100vw - 32px));
    max-width: none;
}

/* Shared selector layout used by activities, calculator and daily cards. */
.medical-warehouse-selector {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    height: 68vh;
    min-height: 380px;
    max-height: 560px;
    overflow: hidden;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
}

.medical-warehouse-selector > aside,
.medical-warehouse-selector > main {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    padding: 10px;
    border-right: 1px solid #e2e8f0;
}

.medical-warehouse-selector-results,
.medical-warehouse-selector-selected > [data-selector-selected] {
    min-height: 0;
    overflow-y: auto;
    scrollbar-gutter: stable;
}

.medical-warehouse-selector-results {
    flex: 1 1 auto;
}

.medical-warehouse-selector-selected > [data-selector-selected] {
    flex: 1 1 auto;
}

.medical-warehouse-selector > aside:last-child {
    border-right: 0;
}

.medical-warehouse-selector-selected-header > strong {
    display: block;
    margin-bottom: 6px;
    color: #475569;
    font-size: 12px;
}

.medical-warehouse-selector-selected-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 6px;
}

.medical-warehouse-selector-selected-header > strong {
    margin-bottom: 0;
}

.medical-warehouse-selector-selected-header button {
    padding: 5px 8px;
    font-size: 11px;
    white-space: nowrap;
}

.medical-warehouse-selector-search-row {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 8px;
}

.medical-warehouse-selector [data-selector-search] {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
    min-height: 34px;
    padding: 6px 8px;
    border: 1px solid #94a3b8;
    border-radius: 5px;
    box-sizing: border-box;
}

.medical-warehouse-selector-search-row button {
    min-height: 34px;
    padding: 5px 8px;
    white-space: nowrap;
}

.medical-warehouse-selector-search-row button.is-active {
    color: #fff;
    background: #b45309;
    border-color: #92400e;
}

.medical-warehouse-selector-results article,
.medical-warehouse-selector-selected article {
    align-items: center;
    gap: 4px;
    padding: 2px 0;
    border-bottom: 1px solid #e2e8f0;
}

.medical-warehouse-selector-result-row {
    display: grid;
    grid-template-columns: minmax(105px, 1fr) 38px 7px 44px 58px 92px 32px;
}

.medical-warehouse-selector.with-discount .medical-warehouse-selector-result-row {
    grid-template-columns: minmax(105px, 1fr) 38px 7px 44px 58px 58px 62px 92px 32px;
}

.medical-warehouse-selector-selected-row {
    display: grid;
    grid-template-columns: 32px minmax(90px, 1fr) auto minmax(50px, auto) minmax(80px, 120px) auto;
}

.medical-warehouse-selector-article-name {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    overflow: hidden;
    font-size: 11px;
    font-weight: 400;
}

.medical-warehouse-selector-article-name > span,
.medical-warehouse-selector-selected-row strong {
    min-width: 0;
    font-size: 11px;
    font-weight: 400;
    line-height: 1.25;
    overflow-wrap: anywhere;
    white-space: normal;
}

.medical-warehouse-selector-article-name small {
    display: block;
    color: #64748b;
    font-size: 9px;
    font-weight: 400;
    line-height: 1.1;
    overflow-wrap: anywhere;
    white-space: normal;
}

.medical-warehouse-selector-selected-row small {
    color: #475569;
    font-size: inherit;
    font-weight: 700;
}

.medical-warehouse-selector-unit,
.medical-warehouse-selector-price,
.medical-warehouse-selector-selected-row span {
    color: #334155;
    font-size: 10px;
    white-space: nowrap;
}

.medical-warehouse-selector-expiration {
    display: block;
    width: 7px;
    height: 26px;
    background: transparent;
}

.medical-warehouse-selector-expiration.is-expiring {
    background: #facc15;
}

.medical-warehouse-selector-expiration.is-expired {
    background: #ef4444;
}

.medical-warehouse-selector-results input {
    width: 44px;
    min-height: 26px;
    padding: 2px 4px;
    border: 1px solid #94a3b8;
    border-radius: 4px;
    box-sizing: border-box;
}

.medical-warehouse-selector-results .medical-warehouse-selector-discount-price {
    display: none;
    width: 62px;
    border-color: #d97706;
    background: #fffbeb;
}

.medical-warehouse-selector-availability {
    display: none;
    color: #334155;
    font-size: 10px;
    text-align: right;
    white-space: nowrap;
}

.medical-warehouse-selector.with-discount .medical-warehouse-selector-availability {
    display: block;
}

.medical-warehouse-selector.with-discount .medical-warehouse-selector-discount-price {
    display: block;
}

.medical-activity-consumption-discount {
    display: block;
    color: #b45309;
}

.medical-activity-consumption-markup {
    display: block;
    color: #0369a1;
}

.medical-warehouse-selector-results select {
    width: 92px;
    min-height: 26px;
    padding: 2px 3px;
    border: 1px solid #94a3b8;
    border-radius: 4px;
    box-sizing: border-box;
    background: #fff;
}

.medical-warehouse-selector-note {
    width: 100%;
    min-width: 0;
    min-height: 26px;
    padding: 2px 5px;
    border: 1px solid #94a3b8;
    border-radius: 4px;
    box-sizing: border-box;
    font-size: 10px;
}

.medical-warehouse-selector-result-row button,
.medical-warehouse-selector-selected-row button {
    min-width: 30px;
    min-height: 26px;
    padding: 2px 5px;
}

.medical-warehouse-selector-state {
    padding: 12px 4px;
    color: #64748b;
    text-align: center;
}

.medical-warehouse-selector-state.is-error {
    color: #b42318;
}

.hospital-daily-medication-selector-result {
    display: grid;
    grid-template-columns: minmax(120px, 1fr) 55px 44px 92px 32px;
}

.hospital-daily-medication-selector-result select {
    width: 100%;
    min-width: 0;
    min-height: 26px;
    padding: 2px 4px;
    border: 1px solid #94a3b8;
    border-radius: 4px;
    box-sizing: border-box;
    background: #fff;
    font-size: 10px;
}

.hospital-daily-medication-selector-result button {
    min-width: 30px;
    min-height: 26px;
    padding: 2px 5px;
}

.hospital-daily-medication-selector-selected-row {
    display: grid;
    grid-template-columns: minmax(100px, 1fr) 52px 30px 86px minmax(90px, 1fr) 30px;
}

.hospital-daily-medication-selector-selected-row > strong {
    min-width: 0;
    overflow-wrap: anywhere;
    white-space: normal;
}

.hospital-daily-medication-selector-selected-row input,
.hospital-daily-medication-selector-selected-row select {
    width: 100%;
    min-width: 0;
    min-height: 26px;
    padding: 2px 4px;
    border: 1px solid #94a3b8;
    border-radius: 4px;
    box-sizing: border-box;
    background: #fff;
    font-size: 10px;
}

.hospital-daily-medication-selector-selected-row > span {
    color: #334155;
    font-size: 10px;
    white-space: nowrap;
}

.hospital-daily-medication-selector-selected-row button {
    min-width: 30px;
    min-height: 26px;
    padding: 2px 5px;
}

@media (max-width: 820px) {
    .medical-warehouse-selector {
        grid-template-columns: 1fr;
        height: auto;
        min-height: 0;
        max-height: 72vh;
        overflow-y: auto;
    }

    .medical-warehouse-selector > aside,
    .medical-warehouse-selector > main {
        display: block;
        overflow: visible;
        border-right: 0;
        border-bottom: 1px solid #e2e8f0;
    }

    .medical-warehouse-selector-search-row {
        flex-wrap: wrap;
    }

    .medical-warehouse-selector-search-row button {
        flex: 0 0 auto;
    }

}

.medical-activity-operational > .medical-activity-module-actions {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    align-content: center;
    justify-content: flex-start;
    gap: 6px;
}

.medical-activity-module-add {
    min-height: 30px;
    padding: 5px 10px;
    font: inherit;
    font-size: 13px;
}

.medical-activity-module-add:disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

@media (max-width: 980px) {
    .medical-activity-overview {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 960px) {
    .medical-activity-header {
        flex-direction: column;
    }

    .medical-activity-actions {
        justify-content: flex-start;
    }

    .medical-activity-action-group + .medical-activity-action-group {
        margin-left: 0;
        padding-left: 0;
        border-left: 0;
    }

    .medical-activity-overview {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .hospital-daily-middle-layout {
        grid-template-columns: 1fr;
    }

    .hospital-daily-notes-column {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: none;
    }

    .medical-activity-exam-content {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .medical-activity-imaging-module-content {
        grid-template-columns: 1fr;
    }

    .medical-activity-exam-content > section {
        border-bottom: 1px solid #e2e8f0;
    }
}

@media (max-width: 640px) {
    .medical-activity-overview,
    .medical-activity-operational {
        grid-template-columns: 1fr;
    }

    .hospital-daily-notes-column,
    .hospital-daily-assessment-fields {
        grid-template-columns: 1fr;
    }

    .medical-activity-operational > div {
        border-right: 0;
        border-bottom: 1px solid #dbe4ee;
    }

    .medical-activity-operational > div:last-child {
        border-bottom: 0;
    }

    .medical-activity-exam-content {
        grid-template-columns: 1fr;
    }

    .medical-activity-qr-header {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .medical-activity-qr-binding {
        grid-column: 1 / -1;
        grid-row: 2;
        max-width: 100%;
        justify-content: flex-start;
    }

    .medical-activity-imaging-row-content {
        grid-template-columns: 1fr;
    }

    .medical-activity-exam-content > section {
        min-height: 0;
        border-right: 0;
    }
}

.patient-activities-table-wrap,
.patient-hospitalizations-table-wrap,
.patient-activity-store-sales-table-wrap {
    overflow-x: auto;
}

.patient-activity-store-sales-table {
    width: 100%;
    min-width: 760px;
}

.patient-activity-store-sales-table td {
    vertical-align: top;
}

.patient-activity-store-sales-table td:first-child a,
.patient-activity-store-sales-table td:nth-child(2) a {
    color: var(--primary-color);
    font-weight: 700;
    white-space: nowrap;
}

.patient-activity-store-sale-articles {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.patient-activity-store-sale-articles small {
    margin-top: 3px;
    padding-top: 3px;
    border-top: 1px solid #e2e8f0;
    color: #64748b;
    white-space: pre-wrap;
}

.patient-activity-store-sale-total {
    text-align: right;
    white-space: nowrap;
}

.patient-activity-store-sales-empty {
    padding: 18px;
    color: #64748b;
    text-align: center;
}

.patient-activities-table {
    width: 100%;
    min-width: 1480px;
}

.patient-activities-table td {
    vertical-align: top;
}

.patient-activity-identity,
.patient-activity-audit,
.patient-activity-medical-summary,
.patient-activity-resource-list,
.patient-activity-current-price {
    display: grid;
    gap: 4px;
}

.patient-activity-identity {
    min-width: 105px;
}

.patient-activity-identity > a {
    color: var(--primary-color);
    font-weight: 800;
}

.patient-activity-identity small,
.patient-activity-audit span,
.patient-activity-resource-list span,
.patient-activity-current-price span,
.patient-activity-surrendered {
    color: #64748b;
    font-size: 11px;
}

.patient-activity-audit {
    min-width: 205px;
}

.patient-activity-audit strong {
    color: #334155;
}

.patient-activity-original-created {
    display: inline-flex;
    width: 15px;
    height: 15px;
    align-items: center;
    justify-content: center;
    margin-left: 3px;
    color: #b45309;
    vertical-align: -3px;
    cursor: help;
}

.patient-activity-original-created svg {
    display: block;
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.patient-activity-original-created:focus-visible {
    border-radius: 50%;
    outline: 2px solid var(--accent-color);
    outline-offset: 2px;
}

.patient-activity-medical-summary {
    min-width: 220px;
    max-width: 360px;
}

.patient-activity-diagnosis {
    color: #172554;
    font-weight: 700;
    white-space: pre-wrap;
}

.patient-activity-medical-summary details {
    margin-top: 2px;
}

.patient-activity-medical-summary summary {
    color: #2563eb;
    font-size: 11px;
    cursor: pointer;
}

.patient-activity-medical-details {
    display: grid;
    gap: 7px;
    margin-top: 6px;
    padding: 8px;
    border: 1px solid #dbe4ee;
    border-radius: 7px;
    background: #f8fafc;
}

.patient-activity-medical-details > div {
    display: grid;
    gap: 2px;
}

.patient-activity-medical-details strong {
    color: #475569;
    font-size: 10px;
    text-transform: uppercase;
}

.patient-activity-medical-details span {
    color: #334155;
    font-size: 12px;
    white-space: pre-wrap;
}

.patient-activity-row-tooltip {
    display: grid;
    gap: 7px;
    min-width: 230px;
    max-width: 300px;
    text-align: left;
}

.patient-activity-row-tooltip-item {
    display: grid;
    gap: 2px;
}

.patient-activity-row-tooltip-item + .patient-activity-row-tooltip-item {
    padding-top: 7px;
    border-top: 1px solid rgba(255, 255, 255, 0.16);
}

.patient-activity-row-tooltip-item strong {
    color: #cbd5e1;
    font-size: 10px;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.patient-activity-row-tooltip-item span {
    color: #f8fafc;
    white-space: pre-wrap;
}

.patient-activity-resource-list {
    min-width: 180px;
    max-width: 290px;
}

.patient-activity-resource-list > div {
    display: grid;
    gap: 1px;
    padding-bottom: 4px;
    border-bottom: 1px solid #eef2f7;
}

.patient-activity-resource-list > div:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.patient-activity-resource-list strong {
    color: #334155;
    font-size: 12px;
}

.patient-activity-next-visit {
    display: grid;
    min-width: 145px;
    gap: 3px;
    padding: 6px 8px;
    border-radius: 7px;
    font-size: 11px;
}

.patient-activity-next-visit.is-planned {
    border: 1px solid #a7f3d0;
    background: #ecfdf5;
    color: #047857;
}

.patient-activity-next-visit.is-overdue {
    border: 1px solid #fecaca;
    background: #fff1f2;
    color: #b91c1c;
}

.patient-activity-next-visit span {
    white-space: pre-wrap;
}

.patient-activity-surrendered {
    margin-top: 5px;
}

.patient-activity-empty-value {
    color: #94a3b8;
}

.patient-hospitalizations-table {
    width: 100%;
    min-width: 920px;
}

.patient-hospitalizations-table td:first-child a {
    color: var(--primary-color);
    font-weight: 700;
}

.patient-hospitalization-assessment {
    display: grid;
    min-width: 180px;
    gap: 2px;
}

.patient-hospitalization-assessment span {
    color: #64748b;
    font-size: 11px;
}

.patient-activity-module-column {
    width: 34px;
    padding: 3px !important;
    text-align: center;
}

.patient-activity-icon-filter {
    display: inline-flex;
    width: 30px;
    height: 30px;
    align-items: center;
    justify-content: center;
    padding: 3px;
    border: 1px solid transparent;
    border-radius: 7px;
    background: transparent;
    cursor: pointer;
}

.patient-activity-icon-filter:hover {
    border-color: #93c5fd;
    background: #eff6ff;
}

.patient-activity-icon-filter.is-selected {
    border-color: var(--accent-color);
    background: #dbeafe;
    box-shadow: inset 0 0 0 1px var(--accent-color);
}

.patient-activity-icon-filter:focus-visible {
    outline: 2px solid var(--accent-color);
    outline-offset: 2px;
}

.patient-activity-icon-filter img,
.patient-activity-module-indicator img {
    display: block;
    width: 22px;
    height: 22px;
    object-fit: contain;
}

.patient-activity-icon-filter img {
    opacity: 0.22;
    filter: grayscale(1);
    transition: opacity 120ms ease, filter 120ms ease;
}

.patient-activity-icon-filter:hover img {
    opacity: 0.45;
}

.patient-activity-icon-filter.is-selected img {
    opacity: 1;
    filter: none;
}

.patient-activity-module-indicator {
    position: relative;
    display: inline-flex;
}

.patient-activity-module-indicator small {
    position: absolute;
    right: -5px;
    bottom: -4px;
    min-width: 16px;
    padding: 1px 4px;
    border-radius: 999px;
    background: #1e3a5f;
    color: #fff;
    font-size: 9px;
    font-weight: 800;
    line-height: 14px;
    text-align: center;
}

.patient-activity-price-column {
    min-width: 125px;
    white-space: nowrap;
    text-align: right;
}

.patient-activity-current-price strong {
    color: #0f172a;
}

.patient-activities-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 10px;
    color: #475569;
    font-size: 13px;
}

.patient-activities-pagination button {
    min-height: 30px;
    padding: 5px 10px;
    font-size: 12px;
}

.patient-activities-filter-empty td {
    padding: 18px;
    color: #64748b;
    text-align: center;
}

.patient-state-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 10px 14px 0;
}

.patient-state-badge {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
}

.patient-state-badge-warning {
    border: 1px solid #fecaca;
    background: #fff1f2;
    color: #b91c1c;
}

a.patient-state-badge-warning {
    text-decoration: none;
}

a.patient-state-badge-warning:hover {
    background: #ffe4e6;
}

.patient-state-badge-muted {
    border: 1px solid #cbd5e1;
    background: #f8fafc;
    color: #475569;
}

.patient-prepared-action-dialog {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.patient-prepared-action-dialog p {
    margin: 0;
}

.patient-prepared-action-dialog label {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.patient-weight-history {
    max-width: 1180px;
}

.patient-weight-history-body {
    display: grid;
    gap: 14px;
    padding: 14px;
}

.patient-weight-history-empty {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 12px 14px;
    border: 1px dashed #c8d2df;
    border-radius: 8px;
    background: #f8fafc;
    color: #475569;
}

.patient-weight-history-empty strong {
    color: #334155;
}

.patient-weight-history-chart {
    min-height: 120px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background:
        linear-gradient(to top, rgba(148, 163, 184, 0.18) 1px, transparent 1px),
        #fff;
    background-size: 100% 24px;
}

.patient-weight-history-table-wrap {
    max-width: 100%;
}

.owners-page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.owners-page-header h1 {
    margin: 0;
}

.owners-page-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.owner-tab-actions {
    justify-content: flex-end;
    max-width: 920px;
    margin-bottom: 10px;
}

.owner-context-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    align-items: center;
    max-width: 920px;
    margin: 0 0 12px;
    padding: 10px 12px;
    border: 1px solid #dbe4ee;
    border-radius: 8px;
    background: #f8fafc;
    color: #334155;
}

.owner-context-summary strong {
    color: #0f172a;
}

.owner-context-summary span {
    overflow-wrap: anywhere;
}

.patient-form-owner-summary {
    grid-column: 1 / -1;
    margin: 0 0 4px;
}

.owners-empty-dossier {
    border: 1px dashed #c8d2df;
    border-radius: 8px;
    padding: 24px;
    background: #f8fafc;
    color: #334155;
}

.owners-empty-dossier h2 {
    margin: 0 0 8px;
}

.owners-empty-dossier p {
    margin: 0;
}

.owner-dialog-content {
    min-width: min(720px, calc(100vw - 48px));
    max-height: min(72vh, 760px);
    overflow-y: auto;
    padding-right: 8px;
}

.patient-registration-dialog-box {
    display: flex;
    height: min(92vh, 860px);
    max-height: min(92vh, 960px);
    flex-direction: column;
}

.patient-registration-dialog-box .modal-content {
    flex: 1 1 auto;
    min-height: 0;
}

.patient-registration-dialog-box .owner-dialog-content {
    height: 100%;
    max-height: none;
}

.owner-registration-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 16px;
}

.owner-registration-form-column {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
}

.owner-registration-form label {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 13px;
    color: #334155;
}

.owner-registration-form input,
.owner-registration-form select,
.owner-registration-form textarea {
    width: 100%;
    box-sizing: border-box;
}

.owner-registration-form .owner-field-invalid {
    border-color: #dc2626;
    background: #fff7f7;
    box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.12);
}

.patient-breed-combobox {
    position: relative;
}

.patient-breed-combobox-input {
    padding-right: 28px;
}

.patient-breed-combobox-menu {
    position: absolute;
    z-index: 30;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    max-height: 360px;
    overflow-y: auto;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.16);
}

.patient-breed-combobox-option {
    display: flex;
    width: 100%;
    align-items: center;
    padding: 7px 10px 7px 18px;
    border: 0;
    border-bottom: 1px solid #edf2f7;
    border-radius: 0;
    background: #fff;
    color: #0f172a;
    text-align: left;
    cursor: pointer;
}

.patient-breed-combobox-group {
    position: sticky;
    top: 0;
    padding: 7px 10px;
    border-bottom: 1px solid #dbe4ee;
    background: #f8fafc;
    color: #334155;
    font-size: 12px;
    font-weight: 700;
}

.patient-breed-combobox-option:hover,
.patient-breed-combobox-option:focus {
    background: #eef6ff;
}

.patient-breed-combobox-empty {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px;
    color: #64748b;
}

.patient-breed-combobox-empty .secondary-button {
    flex: 0 0 auto;
    padding: 6px 10px;
}

.patient-birthday-fields {
    grid-template-columns: 64px 72px 92px 34px;
    gap: 6px;
}

.owner-registration-form-wide {
    grid-column: 1 / -1;
}

.owners-dossier-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 16px;
    max-width: 920px;
}

.owners-dossier-summary > div {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 10px 12px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #fff;
}

.owners-dossier-summary strong {
    font-size: 12px;
    color: #64748b;
}

.owners-dossier-summary-wide {
    grid-column: 1 / -1;
}

.owner-gdpr-section {
    margin-top: 18px;
    max-width: 920px;
    padding: 14px 16px;
    border: 1px solid #dbe4ee;
    border-radius: 8px;
    background: #fff;
}

.owner-gdpr-section h2 {
    margin: 0 0 12px;
    font-size: 18px;
}

.owner-gdpr-section-body {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: end;
}

.owner-gdpr-section-body label {
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-width: min(100%, 260px);
}

.owner-gdpr-section-body select {
    min-height: 36px;
}

.owner-gdpr-status {
    margin: 0;
    color: #475569;
}

.owner-gdpr-status-signed {
    color: #047857;
}

.owner-gdpr-status-pending {
    color: #b45309;
}

.owner-extra-phones {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.owner-commerce-fields {
    display: grid;
    grid-template-columns: minmax(120px, 160px) minmax(180px, 1fr) minmax(120px, auto) minmax(140px, auto);
    gap: 10px;
    align-items: end;
    padding: 10px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #f8fafc;
}

.owner-commerce-fields label,
.owner-checkbox-field {
    min-width: 0;
}

.owner-checkbox-field {
    display: flex;
    flex-direction: row !important;
    align-items: center;
    gap: 8px;
    min-height: 36px;
}

.owner-checkbox-field input {
    width: auto;
}

.owner-commerce-note {
    grid-column: 1 / -1;
}

.owner-extra-phones-header,
.owner-phone-row {
    display: grid;
    grid-template-columns: minmax(160px, 1fr) minmax(160px, 1fr) auto;
    gap: 10px;
    align-items: end;
}

.owner-extra-phones-header {
    align-items: center;
}

.owner-extra-phones-header span {
    grid-column: 1 / 3;
    font-weight: 600;
    color: #334155;
}

.owner-phone-row {
    padding: 10px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #f8fafc;
}

.owner-patient-list-page {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.owner-patient-list-header h1 {
    margin: 0 0 4px;
}

.owner-patient-list-header p {
    margin: 0;
    color: #64748b;
}

.owner-patient-list-table-wrap {
    overflow-x: auto;
}

.owner-patient-list-table {
    min-width: 980px;
}

.owner-patient-list-filters input[type="search"],
.owner-patient-list-filters select {
    width: 100%;
    min-width: 70px;
    box-sizing: border-box;
}

.owner-patient-number-filters {
    display: grid;
    grid-template-columns: minmax(52px, 64px) minmax(92px, 1fr);
    gap: 3px;
    align-items: start;
}

.owner-patient-state-dropdown {
    min-width: 92px;
}

.owner-patient-list-muted,
.owner-patient-list-empty {
    color: #64748b;
}

.owner-patient-states {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1px;
    margin-top: 2px;
}

.owner-patient-states a.status-marker {
    text-decoration: none;
}

.owner-patient-state {
    font-size: 11px;
    font-weight: 800;
    line-height: 1.2;
    animation: owner-patient-state-blink 1s linear infinite;
}

.owner-patient-state-deceased {
    color: #b91c1c;
}

.owner-patient-state-archived {
    color: #b45309;
}

@keyframes owner-patient-state-blink {
    0%, 45%, 100% {
        opacity: 1;
    }
    50%, 95% {
        opacity: 0.25;
    }
}

@media (prefers-reduced-motion: reduce) {
    .owner-patient-state {
        animation: none;
    }
}

.owner-patient-row {
    cursor: pointer;
}

.owner-patient-row:hover {
    background: #f8fafc;
}

.signature-devices-table-wrap {
    overflow-x: auto;
    max-width: 100%;
}

.signature-devices-table {
    width: 100%;
    table-layout: fixed;
}

.signature-devices-table th:nth-child(1),
.signature-devices-table td:nth-child(1) {
    width: 48px;
}

.signature-devices-table th:nth-child(2),
.signature-devices-table td:nth-child(2) {
    width: 150px;
}

.signature-devices-table th:nth-child(3),
.signature-devices-table td:nth-child(3) {
    width: 170px;
}

.signature-devices-table th:nth-child(4),
.signature-devices-table td:nth-child(4) {
    width: 72px;
}

.signature-devices-table th:nth-child(5),
.signature-devices-table td:nth-child(5) {
    width: 180px;
}

.signature-devices-table th:nth-child(7),
.signature-devices-table td:nth-child(7) {
    width: 145px;
}

.signature-devices-table th:nth-child(8),
.signature-devices-table td:nth-child(8) {
    width: 78px;
}

.signature-device-inactive-row {
    opacity: 0.62;
}

.signature-device-active-cell,
.signature-device-actions-cell {
    text-align: center;
}

.signature-device-actions-cell {
    white-space: nowrap;
}

.signature-device-action svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.signature-device-uuid-cell {
    max-width: 180px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: Consolas, Monaco, monospace;
    font-size: 11.5px;
}

.signature-device-url-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.signature-device-url {
    width: clamp(180px, 28vw, 360px);
    min-width: 0;
    text-overflow: ellipsis;
}

.signature-page-body {
    min-height: 100vh;
    margin: 0;
    display: grid;
    place-items: center;
    background: #eef3f8;
    color: #0f172a;
}

.signature-page {
    width: min(100% - 24px, 720px);
}

.signature-panel {
    padding: 28px;
    border: 1px solid #d8e2ee;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.12);
}

.signature-waiting {
    min-height: 260px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    text-align: center;
}

.signature-brand {
    display: flex;
    align-items: center;
    gap: 14px;
    padding-bottom: 18px;
    margin-bottom: 18px;
    border-bottom: 1px solid #e2e8f0;
}

.signature-brand img {
    width: 72px;
    height: 72px;
    object-fit: contain;
    flex: 0 0 auto;
}

.signature-brand div {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 4px;
}

.signature-brand strong {
    color: var(--signature-accent, #2563eb);
    font-size: 22px;
    line-height: 1.2;
}

.signature-brand span {
    color: #64748b;
    font-size: 14px;
}

.signature-waiting h1,
.signature-task-header h1 {
    margin: 0;
    font-size: clamp(24px, 5vw, 36px);
    letter-spacing: 0;
}

.signature-waiting p,
.signature-task-header p {
    margin: 0;
    color: #475569;
    font-size: 18px;
}

.signature-pulse {
    width: 18px;
    height: 18px;
    border: 3px solid #cbd5e1;
    border-top-color: var(--accent-color, #2563eb);
    border-radius: 999px;
    animation: signature-spin 0.9s linear infinite;
}

.signature-task-panel {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.signature-task-header {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.signature-canvas-wrap {
    width: 100%;
    aspect-ratio: 5 / 2;
    border: 2px solid #cbd5e1;
    border-radius: 8px;
    background: #fff;
    touch-action: none;
}

.signature-canvas-wrap canvas {
    width: 100%;
    height: 100%;
    display: block;
}

.signature-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

.signature-message {
    min-height: 22px;
    margin: 0;
    color: #b45309;
}

.signature-error {
    color: #b91c1c !important;
}

@keyframes signature-spin {
    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 960px) {
    .patient-dossier-workspace {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .owners-page-header,
    .owners-dossier-summary,
    .owner-registration-form {
        grid-template-columns: 1fr;
    }

    .owners-page-header {
        align-items: stretch;
        flex-direction: column;
    }

    .owner-extra-phones-header,
    .owner-phone-row,
    .owner-commerce-fields {
        grid-template-columns: 1fr;
    }

    .owner-extra-phones-header span {
        grid-column: auto;
    }

    .signature-panel {
        padding: 18px;
    }

    .signature-brand {
        align-items: flex-start;
    }

    .signature-brand img {
        width: 56px;
        height: 56px;
    }

    .signature-actions {
        flex-direction: column-reverse;
    }
}

.vaccine-repeat-days {
    width: 88px;
}

.vaccine-repeat-active-cell,
.vaccine-repeat-save-cell,
.vaccine-repeat-actions-cell {
    text-align: center;
}

.vaccine-repeat-save-cell,
.vaccine-repeat-actions-cell {
    width: 76px;
}

.vaccine-repeat-actions-cell {
    white-space: nowrap;
}

.vaccine-repeat-save svg,
.vaccine-repeat-delete svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vaccine-repeat-new-row td {
    background: rgba(18, 115, 168, 0.04);
}

.vaccine-repeat-table tr.is-inactive input,
.vaccine-repeat-table tr.is-inactive select,
.vaccine-repeat-table tr.is-inactive .vaccine-repeat-article-display {
    color: #5f6b7a;
    opacity: 0.72;
}

@media (max-width: 768px) {
    .vaccine-repeat-rules-page {
        padding: 16px;
    }
}


.email-settings-page {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.email-settings-status {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.email-settings-form {
    max-width: 920px;
}

.email-settings-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px 16px;
}

.email-settings-actions {
    margin-top: 14px;
}

.email-settings-result {
    min-height: 20px;
    margin-top: 8px;
}

@media (max-width: 900px) {
    .email-settings-grid {
        grid-template-columns: 1fr;
    }
}
.email-settings-checkbox {
    justify-content: center;
}

.email-settings-checkbox input {
    width: auto;
    margin-right: 8px;
}

.email-settings-debug {
    max-width: 920px;
    max-height: 360px;
    overflow: auto;
    margin-top: 10px;
    padding: 12px;
    color: #d9f2ff;
    background: #102536;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 8px;
    font-size: 12px;
    line-height: 1.45;
    white-space: pre-wrap;
}

.act-new-page,
.patient-selector {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.patient-selector-header h1 {
    margin: 0 0 4px;
}

.patient-selector-header p,
.patient-selector-result-meta {
    margin: 0;
    color: #64748b;
}

.patient-selector-result-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
}

.patient-selector-result-meta button {
    padding: 2px 0;
    border: 0;
    color: var(--primary-color);
    background: transparent;
    cursor: pointer;
}

.patient-selector-result-actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

.patient-selector-filter-row input,
.patient-selector-filter-row select,
.patient-selector-filter-row .checkbox-dropdown-toggle {
    width: 100%;
    min-width: 70px;
    min-height: 30px;
    box-sizing: border-box;
    font-size: 12px;
}

.patient-selector-number-filters {
    display: grid;
    grid-template-columns: minmax(58px, 70px) minmax(92px, 1fr);
    gap: 3px;
    align-items: start;
}

.patient-selector-table-wrap {
    overflow-x: auto;
}

.patient-selector-table {
    min-width: 980px;
}

.patient-selector-row:not(.is-disabled) {
    cursor: pointer;
}

.patient-selector-row:not(.is-disabled):hover,
.patient-selector-row.is-selected {
    background: #eef6ff;
}

.patient-selector-row.is-disabled {
    color: #64748b;
    background: #f8fafc;
}

.patient-selector-state {
    display: block;
    margin-top: 2px;
    font-size: 11px;
    font-weight: 800;
}

.patient-selector-state.is-archived { color: #b45309; }
.patient-selector-state.is-deceased { color: #b91c1c; }

.patient-selector-row-alert {
    display: flex;
    width: fit-content;
    max-width: 190px;
    align-items: center;
    gap: 4px;
    margin-top: 4px;
    padding: 3px 6px;
    border: 1px solid currentColor;
    border-radius: 999px;
    font-size: 9px;
    font-weight: 900;
    line-height: 1.15;
    white-space: normal;
}

.patient-selector-row-alert svg {
    flex: 0 0 auto;
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.patient-selector-row-alert.is-error {
    color: #fff;
    background: #c62838;
    border-color: #9f1f2c;
}

.patient-selector-row-alert.is-warning {
    color: #7a4b00;
    background: #fff4d6;
    border-color: #d3a62f;
}

.patient-selector-row-alert.is-unknown {
    color: #6b4f00;
    background: #ffe082;
    border-color: #c89b18;
}

.patient-selector-selection {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) minmax(220px, 1fr) auto;
    gap: 14px;
    align-items: center;
    padding: 14px;
    border: 2px solid var(--accent-color);
    border-radius: 8px;
    background: #f8fafc;
}

.patient-selector-selection[hidden] { display: none; }
.patient-selector-selection-main,
.patient-selector-selection-owner {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.patient-selector-more {
    display: flex;
    align-items: center;
    gap: 10px;
}

.patient-selector-more[hidden] { display: none; }

@media (max-width: 720px) {
    .patient-selector-selection { grid-template-columns: 1fr; }
}

body.image-gallery-open {
    overflow: hidden;
}

.image-gallery-overlay[hidden] {
    display: none;
}

.image-gallery-overlay {
    position: fixed;
    z-index: 10000;
    inset: 0;
    display: grid;
    grid-template-columns: minmax(52px, 8vw) 1fr minmax(52px, 8vw);
    grid-template-rows: 54px minmax(0, 1fr);
    align-items: center;
    color: #fff;
    background: rgba(8, 15, 27, 0.94);
    backdrop-filter: blur(3px);
}

.image-gallery-toolbar {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    height: 54px;
    padding: 0 16px;
}

.image-gallery-counter {
    margin-right: auto;
    color: #dbe4ee;
    font-variant-numeric: tabular-nums;
}

.image-gallery-download,
.image-gallery-close {
    display: inline-flex;
    min-width: 38px;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 7px;
    color: #fff;
    background: rgba(255, 255, 255, 0.08);
    text-decoration: none;
    cursor: pointer;
}

.image-gallery-download {
    padding: 0 12px;
}

.image-gallery-close {
    padding: 0;
    font-size: 28px;
    line-height: 1;
}

.image-gallery-download:hover,
.image-gallery-close:hover {
    background: rgba(255, 255, 255, 0.18);
}

.image-gallery-stage {
    position: relative;
    grid-column: 2;
    grid-row: 2;
    display: flex;
    width: 100%;
    height: 100%;
    margin: 0;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    overflow: hidden;
}

.image-gallery-image {
    display: block;
    max-width: 100%;
    max-height: calc(100% - 48px);
    object-fit: contain;
    opacity: 0;
    transition: opacity 0.15s ease;
}

.image-gallery-image.is-ready {
    opacity: 1;
}

.image-gallery-caption {
    max-width: 100%;
    min-height: 26px;
    padding: 10px 8px 6px;
    overflow: hidden;
    color: #e5edf5;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.image-gallery-status {
    position: absolute;
    inset: 50% auto auto 50%;
    transform: translate(-50%, -50%);
    color: #dbe4ee;
}

.image-gallery-nav {
    grid-row: 2;
    width: 46px;
    height: 58px;
    justify-self: center;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 8px;
    color: #fff;
    background: rgba(255, 255, 255, 0.08);
    cursor: pointer;
}

.image-gallery-nav:hover {
    background: rgba(255, 255, 255, 0.18);
}

.image-gallery-nav::before {
    font-size: 38px;
    font-weight: 300;
    line-height: 1;
}

.image-gallery-nav[data-gallery-previous]::before { content: '<'; }
.image-gallery-nav[data-gallery-next]::before { content: '>'; }
.image-gallery-nav[data-gallery-previous] { grid-column: 1; }
.image-gallery-nav[data-gallery-next] { grid-column: 3; }

.image-gallery-download:focus-visible,
.image-gallery-close:focus-visible,
.image-gallery-nav:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
}

@media (max-width: 640px) {
    .image-gallery-overlay {
        grid-template-columns: 46px 1fr 46px;
    }

    .image-gallery-toolbar {
        padding: 0 8px;
    }

    .image-gallery-nav {
        width: 38px;
        height: 52px;
    }

    .image-gallery-nav::before {
        font-size: 30px;
    }
}

.file-collection {
    min-width: 0;
}

.file-collection-controls {
    display: flex;
    gap: 8px;
    margin-bottom: 10px;
}

.file-collection-list {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 6px;
}

.file-collection-item {
    display: flex;
    width: 102px;
    box-sizing: border-box;
    flex: 0 0 102px;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    min-width: 0;
    padding: 6px;
    border: 1px solid var(--border-color, #d9dee7);
    border-radius: 8px;
    background: var(--surface-color, #fff);
}

.file-collection-item.is-loading,
.file-collection.is-loading {
    opacity: .65;
    pointer-events: none;
}

.file-collection-preview,
.file-collection-file-icon {
    display: flex;
    width: 88px;
    height: 64px;
    box-sizing: border-box;
    align-items: center;
    justify-content: center;
    padding: 0;
    overflow: hidden;
    border-radius: 6px;
    background: #f3f5f8;
    cursor: zoom-in;
}

.file-collection-file-icon {
    color: #536273;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
}

.file-collection-preview img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.file-collection-loading {
    color: var(--muted-text-color, #697386);
}

.file-collection-note {
    width: 88px;
    min-height: 34px;
    box-sizing: border-box;
    resize: vertical;
    padding: 4px 5px;
    border: 1px solid #c8d2df;
    border-radius: 5px;
    color: #34495e;
    background: #fff;
    font: inherit;
    font-size: 10px;
    line-height: 1.2;
}

.file-collection-note.is-readonly {
    display: -webkit-box;
    min-height: 0;
    overflow: hidden;
    border: 0;
    background: transparent;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow-wrap: anywhere;
    white-space: pre-wrap;
}

.file-collection-actions {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: 5px;
}

.file-collection-action-button {
    display: inline-flex;
    width: 32px;
    height: 32px;
    min-width: 32px;
    min-height: 32px;
    align-items: center;
    justify-content: center;
    padding: 6px;
    border: 1px solid #c8d2df;
    border-radius: 6px;
    color: #34495e;
    background: #fff;
    cursor: pointer;
}

.file-collection-action-button:hover:not(:disabled) {
    color: #0f5f8f;
    border-color: #78afd0;
    background: #eef8fd;
}

.file-collection-action-button.danger {
    color: #b42318;
}

.file-collection-action-button.danger:hover:not(:disabled) {
    color: #fff;
    border-color: #c62828;
    background: #c62828;
}

.file-collection-action-button svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Medical activity read-only view */
.medical-activity-view-page {
    width: min(1240px, 100%);
    margin: 0 auto;
    padding: 18px;
    color: #172033;
}

.medical-activity-view-header,
.medical-activity-view-section,
.medical-activity-view-party,
.medical-activity-view-finance,
.medical-activity-view-moments,
.medical-activity-view-notices article {
    background: #fff;
    border: 1px solid #dfe5ed;
    border-radius: 12px;
    box-shadow: 0 5px 18px rgba(31, 42, 61, .06);
}

.medical-activity-view-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 20px 22px;
}

.medical-activity-view-title {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
}

.medical-activity-view-title h1,
.medical-activity-view-party h2,
.medical-activity-view-section h2,
.medical-activity-view-section h3 {
    margin: 0;
}

.medical-activity-view-title h1 {
    font-size: clamp(1.35rem, 2.5vw, 1.85rem);
}

.medical-activity-view-eyebrow,
.medical-activity-view-section-heading > div > span {
    display: block;
    margin-bottom: 3px;
    color: #687387;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.medical-activity-view-context {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    margin-top: 7px;
    font-size: .86rem;
}

.medical-activity-view-context a {
    color: var(--accent-color);
    font-weight: 700;
}

.medical-activity-view-moments {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 14px;
    overflow: hidden;
}

.medical-activity-view-moments > div {
    display: grid;
    gap: 5px;
    padding: 14px 16px;
    border-right: 1px solid #e5e9ef;
}

.medical-activity-view-moments > div:last-child {
    border-right: 0;
}

.medical-activity-view-moments span,
.medical-activity-view-finance span {
    color: #687387;
    font-size: .76rem;
    font-weight: 700;
    text-transform: uppercase;
}

.medical-activity-view-moments strong {
    font-size: .88rem;
}

.medical-activity-view-parties {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 14px;
}

.medical-activity-view-party {
    padding: 18px;
}

.medical-activity-view-party-title,
.medical-activity-view-section-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.medical-activity-view-party-title a {
    color: var(--accent-color);
    font-weight: 800;
}

.medical-activity-view-party dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 18px;
    margin: 14px 0 0;
}

.medical-activity-view-party dl > div {
    display: grid;
    grid-template-columns: minmax(95px, .8fr) minmax(0, 1.2fr);
    gap: 10px;
    padding: 7px 0;
    border-bottom: 1px solid #edf0f4;
}

.medical-activity-view-party dt {
    color: #687387;
}

.medical-activity-view-party dd {
    min-width: 0;
    margin: 0;
    font-weight: 650;
    overflow-wrap: anywhere;
}

.medical-activity-view-notices {
    display: grid;
    gap: 10px;
    margin-top: 14px;
}

.medical-activity-view-notices article {
    display: grid;
    grid-template-columns: minmax(160px, .3fr) minmax(0, 1fr);
    gap: 16px;
    padding: 13px 16px;
    border-left: 4px solid #d88a19;
}

.medical-activity-view-finance {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 0;
    margin-top: 14px;
    overflow: hidden;
}

.medical-activity-view-finance > div {
    display: grid;
    gap: 7px;
    padding: 15px 17px;
    border-right: 1px solid #e5e9ef;
}

.medical-activity-view-finance > div:last-child {
    border-right: 0;
}

.medical-activity-view-finance strong {
    font-size: 1.12rem;
}

.medical-activity-view-finance .is-rounding {
    background: #fff8e6;
}

.medical-activity-view-finance .is-total {
    background: #172033;
    color: #fff;
}

.medical-activity-view-finance .is-total span {
    color: #cdd6e4;
}

.medical-activity-view-section {
    margin-top: 14px;
    padding: 20px;
}

.medical-activity-view-section-heading {
    align-items: center;
    margin-bottom: 16px;
    padding-bottom: 13px;
    border-bottom: 1px solid #e5e9ef;
}

.medical-activity-view-audit {
    display: grid;
    gap: 3px;
    color: #687387;
    font-size: .76rem;
    text-align: right;
}

.medical-activity-view-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.medical-activity-view-fields > article,
.medical-activity-view-imaging-row {
    padding: 14px;
    border: 1px solid #e4e9f0;
    border-radius: 9px;
    background: #fafbfd;
}

.medical-activity-view-fields h3,
.medical-activity-view-subsection h3,
.medical-activity-view-imaging-row h3 {
    margin-bottom: 8px;
    font-size: .92rem;
}

.medical-activity-view-prose {
    line-height: 1.55;
    overflow-wrap: anywhere;
}

.medical-activity-view-empty-inline {
    color: #8a94a5;
    font-style: italic;
}

.medical-activity-view-resources {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 16px;
}

.medical-activity-view-subsection {
    min-width: 0;
}

.medical-activity-view-resource-list {
    border: 1px solid #e2e7ee;
    border-radius: 9px 9px 0 0;
    overflow: hidden;
}

.medical-activity-view-resource-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 14px;
    padding: 10px 12px;
    border-bottom: 1px solid #e8ecf1;
}

.medical-activity-view-resource-row:last-child {
    border-bottom: 0;
}

.medical-activity-view-resource-row > div {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.medical-activity-view-resource-row strong,
.medical-activity-view-resource-row small {
    overflow-wrap: anywhere;
}

.medical-activity-view-resource-row small {
    color: #687387;
}

.medical-activity-view-resource-row > span,
.medical-activity-view-resource-row > b {
    white-space: nowrap;
}

.medical-activity-view-resource-total {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    padding: 10px 12px;
    border-radius: 0 0 9px 9px;
    background: #edf2f7;
}

.medical-activity-view-imaging-rows {
    display: grid;
    gap: 12px;
}

.medical-activity-view-imaging-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(150px, .35fr);
    gap: 14px;
}

.medical-activity-view-imaging-row .medical-activity-view-subsection {
    grid-column: 1 / -1;
}

.medical-activity-view-imaging-copy .medical-activity-view-audit {
    margin-top: 12px;
    text-align: left;
}

.medical-activity-view-imaging-files {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

.medical-activity-view-image {
    width: 92px;
    height: 74px;
    padding: 0;
    border: 1px solid #d5dce6;
    border-radius: 7px;
    background: #fff;
    overflow: hidden;
    cursor: zoom-in;
}

.medical-activity-view-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.medical-activity-view-file {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    max-width: 220px;
    padding: 8px 10px;
    border: 1px solid #d5dce6;
    border-radius: 7px;
    background: #fff;
}

.medical-activity-view-file span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 960px) {
    .medical-activity-view-moments,
    .medical-activity-view-finance {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .medical-activity-view-moments > div,
    .medical-activity-view-finance > div {
        border-bottom: 1px solid #e5e9ef;
    }

    .medical-activity-view-party dl,
    .medical-activity-view-fields,
    .medical-activity-view-resources {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 680px) {
    .medical-activity-view-page {
        padding: 10px;
    }

    .medical-activity-view-header,
    .medical-activity-view-section-heading,
    .medical-activity-view-parties {
        align-items: stretch;
        grid-template-columns: 1fr;
    }

    .medical-activity-view-header,
    .medical-activity-view-section-heading {
        flex-direction: column;
    }

    .medical-activity-view-moments,
    .medical-activity-view-finance,
    .medical-activity-view-parties,
    .medical-activity-view-imaging-row {
        grid-template-columns: 1fr;
    }

    .medical-activity-view-party dl > div,
    .medical-activity-view-notices article {
        grid-template-columns: 1fr;
        gap: 3px;
    }

    .medical-activity-view-audit {
        text-align: left;
    }

    .medical-activity-view-imaging-files {
        justify-content: flex-start;
    }
}

@media (max-width: 720px) {
    .file-collection-item {
        width: 94px;
        flex-basis: 94px;
    }

    .file-collection-preview,
    .file-collection-file-icon,
    .file-collection-note {
        width: 80px;
    }

    .file-collection-preview,
    .file-collection-file-icon {
        height: 60px;
    }
}

/* Production output */
.production-output-create-form {
    grid-template-columns: minmax(180px, 1.15fr) 145px minmax(240px, 2fr) 90px auto;
}

.production-output-create-form .production-output-create-note {
    grid-column: auto;
}

.production-output-fixed-value {
    display: grid;
    min-width: 0;
    gap: 3px;
    color: #475569;
    font-size: 11.5px;
    font-weight: 700;
}

.production-output-fixed-value strong {
    display: flex;
    min-height: 34px;
    align-items: center;
    padding: 5px 7px;
    box-sizing: border-box;
    color: #243b53;
    background: rgba(255, 255, 255, 0.58);
    border: 1px solid rgba(44, 62, 80, 0.2);
    border-radius: 5px;
    font-size: 12.5px;
}

.production-output-edit-form {
    grid-template-columns: minmax(190px, 1.2fr) minmax(135px, 0.8fr) minmax(100px, 0.55fr) minmax(260px, 1.7fr) auto;
    align-items: end;
}

.production-output-edit-form .production-output-header-note {
    grid-column: auto;
}

.production-output-edit-form .production-output-fixed-value {
    gap: 2px;
    font-size: 10.5px;
}

.production-output-edit-form .production-output-fixed-value strong {
    min-height: 29px;
    padding: 4px 6px;
    font-size: 12px;
}

.production-output-edit-form .warehouse-receipt-edit-save {
    min-height: 29px;
    white-space: nowrap;
}

.production-output-search {
    margin-top: 8px;
    padding: 8px 0 0;
    border-top: 1px solid rgba(44, 62, 80, 0.2);
    border-right: 0;
}

.production-output-search-form {
    display: grid;
    grid-template-columns: minmax(240px, 2fr) minmax(150px, 1fr) minmax(150px, 1fr) auto;
    align-items: end;
    gap: 6px;
    margin-bottom: 6px;
}

.production-output-search-form > button {
    min-height: 29px;
}

.warehouse-receipt-lines.production-output-lines {
    display: block;
}

.production-output-search .warehouse-receipt-article-results-wrap,
.production-output-lines .warehouse-receipt-lines-table-wrap {
    overflow-x: auto;
}

.production-output-search .warehouse-receipt-article-results,
.production-output-lines .warehouse-receipt-lines-table {
    min-width: 980px;
}

.production-output-search .warehouse-receipt-article-results input {
    width: 72px;
    min-width: 0;
    padding: 2px 3px;
    font-size: 10.5px;
}

.production-output-lines .js-production-line-quantity,
.production-output-lines .js-production-line-cost {
    width: 76px;
}

.production-output-lines .js-production-line-delete,
.production-output-lines .js-production-line-save {
    min-width: 28px;
    min-height: 25px;
    padding: 2px 5px;
}

.production-output-lines tfoot td {
    background: rgba(216, 228, 236, 0.58);
}

@media (max-width: 1100px) {
    .production-output-edit-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .production-output-edit-form .production-output-header-note,
    .production-output-edit-form .warehouse-receipt-edit-save {
        grid-column: 1 / -1;
    }

    .production-output-edit-form .warehouse-receipt-edit-save {
        width: 100%;
    }

    .production-output-create-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .production-output-create-form button {
        width: 100%;
    }

    .production-output-search-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .production-output-edit-form,
    .production-output-create-form,
    .production-output-search-form {
        grid-template-columns: minmax(0, 1fr);
    }

    .production-output-edit-form .production-output-header-note,
    .production-output-edit-form .warehouse-receipt-edit-save {
        grid-column: auto;
    }
}
