/* Shared workspace layout and responsive interaction rules. */
:root {
    --app-bg: #f4f6fa;
    --app-text: #18243b;
    --app-border: #e3e8f0;
    --app-shadow: 0 2px 3px rgba(24,36,59,.025), 0 8px 24px rgba(24,36,59,.035);
    --workspace-header: 72px;
}
[data-theme="dark"] {
    --app-bg: #101827;
    --app-card: #192335;
    --app-text: #e7edf6;
    --app-muted: #a3b1c5;
    --app-border: #303c50;
    --app-hover: #233047;
    --app-primary-soft: #203458;
    --app-shadow: 0 4px 18px rgba(0,0,0,.12);
}
html,body { max-width: 100%; overflow-x: hidden; overflow-x: clip; }
body { line-height: 1.55; -webkit-font-smoothing: antialiased; }
.guest-workspace { min-height: 100dvh; display: grid; align-items: center; }
.guest-workspace main { width: 100%; }
.guest-workspace .app-card { box-shadow: 0 12px 44px rgba(24,36,59,.07); }
.guest-workspace form>.d-flex { flex-wrap: wrap; gap: 12px; font-size: .85rem; }
.app-navbar { min-height: var(--workspace-header); gap: 12px; }
.app-main { padding: clamp(20px,2.4vw,40px)!important; width: auto; min-width: 0; }
.app-sidebar { position: sticky; top: var(--workspace-header); height: calc(100dvh - var(--workspace-header)); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.page-heading,.detail-heading { gap: 20px; margin-bottom: 26px; }
.page-heading h1,.detail-heading h1 { font-size: clamp(1.5rem,2.2vw,2rem); line-height: 1.2; overflow-wrap: anywhere; }
.page-heading p { max-width: 66ch; }
.app-card { border: 1px solid var(--app-border); }
.app-card h2 { line-height: 1.35; }
.metric-card .h4 { font-variant-numeric: tabular-nums; overflow-wrap: anywhere; line-height: 1.3; }
.date-chip { flex-shrink: 0; }
.project-card,.crm-module-card { transition: border-color .18s,box-shadow .18s; }
.project-card:hover,.crm-module-card:hover,.metric-card:hover { transform: none; }
.form-label { font-size: .85rem; font-weight: 650; margin-bottom: 7px; }
.form-control,.form-select { color: var(--app-text); background-color: var(--app-card); border-color: var(--app-border); line-height: 1.5; }
.form-control::placeholder { color: var(--app-muted); opacity: .85; }
.form-control:disabled,.form-select:disabled { background-color: var(--app-hover); }
textarea.form-control { min-height: 112px; resize: vertical; }
.input-group-text { background: var(--app-hover); color: var(--app-muted); border-color: var(--app-border); }
.btn-light,.text-bg-light { background-color: var(--app-hover)!important; color: var(--app-text)!important; }
.btn-outline-secondary { --bs-btn-color: var(--app-muted); --bs-btn-border-color: var(--app-border); }
.table thead th { background: var(--app-hover); color: var(--app-muted); }
.table tbody td { overflow-wrap: anywhere; }
.table tbody td:last-child form { display: inline-flex; vertical-align: middle; margin-bottom: 0; }
.table tbody td:last-child .btn { margin-block: 2px; }
.table-responsive { max-width: 100%; scrollbar-width: thin; }
.view-tabs { max-width: 100%; overflow-x: auto; scrollbar-width: thin; }
.view-tabs a { white-space: nowrap; flex-shrink: 0; }
.dropdown-menu { background: var(--app-card); color: var(--app-text); border: 1px solid var(--app-border); border-radius: 12px; box-shadow: 0 12px 32px rgba(15,23,42,.12); }
.dropdown-item { color: var(--app-text); }
.dropdown-item:hover,.dropdown-item:focus { background: var(--app-hover); color: var(--app-text); }
.modal-content { background: var(--app-card); color: var(--app-text); max-height: calc(100dvh - 3.5rem); overflow: hidden; }
.modal-content>form { display: flex; flex-direction: column; min-height: 0; overflow-y: auto; }
.modal-header,.modal-footer { flex-shrink: 0; border-color: var(--app-border); background: var(--app-card); padding: 18px 22px; }
.modal-body { min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 22px; }
.modal-footer { position: sticky; bottom: 0; z-index: 1; gap: 8px; }
.kanban-column { background: var(--app-hover); }
.kanban-board { scroll-snap-type: x proximity; }
.kanban-column { scroll-snap-align: start; }
.dms-folder-row:has(.dms-folder-action)>.dms-folder-link { padding-right: 42px; }
.dms-folder-row:has(.dms-folder-action:hover) .dms-folder-count { visibility: visible; }
.dms-folder-action { right: 4px; }
.dms-folder-children:before { pointer-events: none; }
.dms-folder-link>i { width: 20px; text-align: center; }
.dms-folder-handle { left: calc(5px + var(--folder-depth,0) * 20px); top: 50%; transform: translateY(-50%); font-size: 1rem; }
.dms-folder-row:has(>.dms-folder-handle):hover>.dms-folder-link>i,
.dms-folder-row:has(>.dms-folder-handle):focus-within>.dms-folder-link>i { opacity: 0; }
.app-nav .nav-link:focus-visible,.view-tabs a:focus-visible { outline: 3px solid var(--app-primary); outline-offset: 2px; }
@media(min-width:768px) {
    .sidebar-collapsed .app-sidebar .app-nav .nav-icon { display: grid!important; }
    .sidebar-collapsed .app-sidebar .nav-section-label,.sidebar-collapsed .app-sidebar .nav-submenu { display: none; }
    .sidebar-collapsed .app-sidebar .nav-section { padding-bottom: 10px; margin-bottom: 10px; }
}
@media(max-width:1199.98px) {
    .user-menu-name { max-width: 100px; }
    .app-sidebar { width: 218px; flex-basis: 218px; }
    .global-search { min-width: 0; width: auto; flex: 1; }
}
@media(max-width:767.98px) {
    :root { --workspace-header: 118px; }
    .app-navbar { display: flex; flex-wrap: wrap; padding: 10px 14px!important; gap: 8px; }
    .app-navbar>div:first-child { flex: 1; min-width: 0; }
    .app-navbar>.global-search { order: 3; flex: 0 0 100%; width: 100%; margin: 0; }
    .app-navbar .global-search .form-control { height: 40px; width: 100%; font-size: 16px; }
    .app-navbar .navbar-brand { font-size: 1rem; max-width: 145px; overflow: hidden; text-overflow: ellipsis; }
    .app-navbar .navbar-brand img { max-width: 135px!important; height: 28px!important; }
    .user-menu-name,.user-menu-chevron { display: none!important; }
    .app-navbar .btn-icon,.app-navbar .user-menu-toggle { min-width: 40px; min-height: 40px; }
    .app-main { padding: 20px 14px!important; }
    .page-heading,.detail-heading { gap: 14px; margin-bottom: 20px; }
    .page-actions { flex-wrap: wrap; gap: 8px; }
    .page-actions>.btn,.page-actions>form { flex: 1 1 auto; }
    .page-actions>form>.btn { width: 100%; }
    .app-card.p-4,.app-card .p-4 { padding: 18px!important; }
    .app-card { border-radius: 14px!important; }
    .row.g-4 { --bs-gutter-x: 1rem; --bs-gutter-y: 1rem; }
    .btn,.btn-sm,.form-control,.form-select { min-height: 44px; }
    .form-control,.form-select { font-size: 16px; }
    .btn { height: auto; line-height: 1.25; }
    .btn-remove-icon { width: 40px!important; height: 40px!important; min-height: 40px!important; }
    .view-tabs { width: 100%; padding: 5px; gap: 4px; }
    .view-tabs a { flex: 0 0 auto; min-height: 42px; padding: 10px 13px; }
    .app-offcanvas { --bs-offcanvas-width: min(320px,88vw); }
    .offcanvas-body { padding-bottom: max(20px,env(safe-area-inset-bottom)); }
    .app-offcanvas .nav-link { min-height: 46px; }
    .table>:not(caption)>*>* { padding: 12px 14px; }
    .crm-mobile-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    .crm-mobile-table tbody,.crm-mobile-table tr,.crm-mobile-table td { display: block; width: 100%; }
    .crm-mobile-table tbody tr { padding: 12px 16px; border-bottom: 1px solid var(--app-border); }
    .crm-mobile-table tbody tr:last-child { border-bottom: 0; }
    .crm-mobile-table tbody td { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 5px 0; border: 0; text-align: right; }
    .crm-mobile-table td::before { content: attr(data-mobile-label); flex: 0 0 30%; text-align: left; color: var(--app-muted); font-size: .75rem; font-weight: 550; }
    .crm-mobile-table tbody td:first-child { display: block; text-align: left; font-weight: 650; padding-bottom: 10px; }
    .crm-mobile-table td:first-child::before { display: none; }
    .crm-mobile-table td[colspan] { display: block; text-align: center; }
    .crm-mobile-table td[colspan]::before { display: none; }
    .modal-dialog { margin: 10px; }
    .modal-content { max-height: calc(100dvh - 20px); border-radius: 16px; }
    .modal-header,.modal-body,.modal-footer { padding: 16px; }
    .modal-footer { padding-bottom: max(16px,env(safe-area-inset-bottom)); }
    .modal-footer .btn { flex: 1; }
    .kanban-column { width: min(310px,84vw); min-width: min(310px,84vw); }
    .project-details { grid-template-columns: 90px minmax(0,1fr); }
    .project-details dd { overflow-wrap: anywhere; }
    .fc .fc-toolbar { flex-wrap: wrap; gap: 12px; }
    .fc .fc-toolbar-title { font-size: 1.2rem; }
    .fc .fc-toolbar-chunk { max-width: 100%; }
    .fc .fc-button { padding: 9px 10px; font-size: .8rem; }
    #calendar { min-height: 480px; }
    .global-search-results { max-height: 65dvh; }
    .app-navbar .dropdown-menu { max-width: calc(100vw - 24px); max-height: 75dvh; overflow-y: auto; }
    .dms-folder-tree { max-height: 240px; }
    .crm-toast-container { width: 100%; padding: 12px!important; }
    .crm-toast-container .toast { width: 100%; }
}
@media(hover:none) {
    .dms-folder-action,.dms-folder-handle { opacity: 1; transform: none; }
    .dms-folder-handle { background: var(--app-card); transform: translateY(-50%); }
    .dms-folder-row:has(>.dms-folder-handle)>.dms-folder-link>i { opacity: 0; }
    .dms-folder-link { min-height: 46px; }
}
@media(prefers-reduced-motion:reduce) {
    *,*::before,*::after { scroll-behavior: auto!important; animation-duration: .01ms!important; transition-duration: .01ms!important; }
}
.cashflow-heading .letter-spacing{letter-spacing:.14em}.cashflow-toolbar{display:flex;align-items:end;justify-content:center;gap:.75rem}.cashflow-toolbar form{width:min(280px,100%)}.cashflow-opening{overflow:hidden}.cashflow-opening summary{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;cursor:pointer;list-style:none}.cashflow-opening summary::-webkit-details-marker{display:none}.cashflow-opening summary>span{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:.75rem}.cashflow-opening summary>span>i{grid-row:1/3;display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--app-primary-soft,#eef4ff);color:var(--bs-primary)}.cashflow-opening summary small{color:var(--app-muted,#71809a)}.cashflow-opening[open] summary>.bi-chevron-down{transform:rotate(180deg)}.cashflow-table{min-width:1260px}.cashflow-table th{white-space:nowrap}.cashflow-table td,.cashflow-table th{padding:.9rem .85rem}.cashflow-table .money{font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}.cashflow-table tbody td:nth-child(3),.cashflow-table tbody td:nth-child(5),.cashflow-table tfoot th:nth-child(3),.cashflow-table tfoot th:nth-child(5){background:#f3f4f6}.cashflow-table tbody td:nth-child(7),.cashflow-table tfoot th:nth-child(7){background:#dff1d8}.cashflow-table tbody td:nth-child(4),.cashflow-table tbody td:nth-child(6),.cashflow-table tbody td:nth-child(8){background:var(--app-card)}.cashflow-table .expense,.cashflow-table .income,.cashflow-table .actual,.cashflow-table .planned{color:var(--app-text)}.cashflow-opening-row td{border-bottom-width:2px}.cashflow-opening-row td:not(:nth-child(7)){background:var(--bs-tertiary-bg)}.cashflow-opening-row td:nth-child(7){background:#dff1d8}.cashflow-table tfoot th{padding-block:1rem;border-top:2px solid var(--bs-border-color)}.cashflow-table tfoot th:not(:nth-child(3)):not(:nth-child(5)):not(:nth-child(7)){background:var(--bs-tertiary-bg)}[data-theme="dark"] .cashflow-table tbody td:nth-child(3),[data-theme="dark"] .cashflow-table tbody td:nth-child(5),[data-theme="dark"] .cashflow-table tfoot th:nth-child(3),[data-theme="dark"] .cashflow-table tfoot th:nth-child(5){background:#202c40}[data-theme="dark"] .cashflow-table tbody td:nth-child(7),[data-theme="dark"] .cashflow-table tfoot th:nth-child(7),[data-theme="dark"] .cashflow-opening-row td:nth-child(7){background:#173b2d;color:#bbf7d0}.cashflow-uncertain{margin-left:.5rem;background:#fff3cd;color:#856404;border:1px solid #ffe69c}.cashflow-description{max-width:280px}.cashflow-form{max-width:900px}.cashflow-switch{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border:1px solid var(--bs-border-color);border-radius:1rem;background:var(--bs-tertiary-bg)}.cashflow-switch small{display:block;color:var(--app-muted,#71809a)}@media(max-width:575.98px){.cashflow-heading{align-items:flex-start}.cashflow-heading .btn{width:100%}.cashflow-toolbar{display:grid;grid-template-columns:42px 1fr 42px}.cashflow-opening summary small{display:none}.cashflow-switch{align-items:flex-start}}
.cashflow-table thead th:nth-child(3),.cashflow-table thead th:nth-child(5){background:#f3f4f6}.cashflow-table thead th:nth-child(7),.cashflow-opening-row td.actual{background:#dff1d8}.cashflow-opening-row td.planned{background:var(--app-card)}[data-theme="dark"] .cashflow-table thead th:nth-child(3),[data-theme="dark"] .cashflow-table thead th:nth-child(5){background:#202c40}[data-theme="dark"] .cashflow-table thead th:nth-child(7),[data-theme="dark"] .cashflow-opening-row td.actual{background:#173b2d;color:#bbf7d0}
.cashflow-heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:.75rem}.cashflow-heading-actions .cashflow-toolbar{display:grid;grid-template-columns:36px 190px 36px;align-items:center;gap:.4rem}.cashflow-heading-actions .cashflow-toolbar form{width:190px}.cashflow-heading-actions .cashflow-toolbar .form-control{height:40px;background:var(--app-card)}@media(max-width:767.98px){.cashflow-heading-actions{width:100%;align-items:stretch;flex-direction:column}.cashflow-heading-actions .cashflow-toolbar{grid-template-columns:40px minmax(0,1fr) 40px}.cashflow-heading-actions .cashflow-toolbar form{width:100%}.cashflow-heading-actions>.btn{width:100%}}
.cashflow-table tbody tr{position:relative}.cashflow-table tbody td{transition:background-color .16s ease,color .16s ease,box-shadow .16s ease}.cashflow-table tbody tr:hover td{background:#edf4ff;box-shadow:inset 0 1px rgba(37,99,235,.1),inset 0 -1px rgba(37,99,235,.1)}.cashflow-table tbody tr:hover td:first-child{box-shadow:inset 4px 0 #2563eb,inset 0 1px rgba(37,99,235,.1),inset 0 -1px rgba(37,99,235,.1)}.cashflow-table tbody tr:hover td:nth-child(3),.cashflow-table tbody tr:hover td:nth-child(5){background:#e4e9f1}.cashflow-table tbody tr:hover td:nth-child(7){background:#cce9c3}.cashflow-table tbody tr:hover td:nth-child(2)>strong{color:var(--app-primary)}.cashflow-table tbody tr:hover .btn-outline-primary,.cashflow-table tbody tr:focus-within .btn-outline-primary{background:var(--app-primary-soft);border-color:#93c5fd}.cashflow-table tbody tr:hover .btn-outline-danger,.cashflow-table tbody tr:focus-within .btn-outline-danger{background:#fff1f2;border-color:#fda4af}[data-theme="dark"] .cashflow-table tbody tr:hover td{background:#1c2d48;box-shadow:inset 0 1px rgba(96,165,250,.18),inset 0 -1px rgba(96,165,250,.18)}[data-theme="dark"] .cashflow-table tbody tr:hover td:first-child{box-shadow:inset 4px 0 #60a5fa,inset 0 1px rgba(96,165,250,.18),inset 0 -1px rgba(96,165,250,.18)}[data-theme="dark"] .cashflow-table tbody tr:hover td:nth-child(3),[data-theme="dark"] .cashflow-table tbody tr:hover td:nth-child(5){background:#293750}[data-theme="dark"] .cashflow-table tbody tr:hover td:nth-child(7){background:#20513d}[data-theme="dark"] .cashflow-table tbody tr:hover .btn-outline-danger,[data-theme="dark"] .cashflow-table tbody tr:focus-within .btn-outline-danger{background:rgba(220,38,38,.14)}
.cashflow-table tbody td{box-shadow:none!important;transition:background-color .16s ease,color .16s ease}.cashflow-table tbody td:first-child{border-left:4px solid transparent;padding-left:calc(.85rem - 4px)}.cashflow-table tbody tr:hover td:first-child{border-left-color:var(--app-primary);background:#e9edf3;box-shadow:none!important}[data-theme="dark"] .cashflow-table tbody tr:hover td:first-child{border-left-color:#60a5fa;background:#26344b;box-shadow:none!important}
.cashflow-table .btn-outline-primary,.cashflow-table .btn-outline-primary:hover,.cashflow-table .btn-outline-primary:focus-visible{border-color:#93c5fd!important;background:#eff6ff!important;color:#2563eb!important}.cashflow-table .btn-outline-danger,.cashflow-table .btn-outline-danger:hover,.cashflow-table .btn-outline-danger:focus-visible{border-color:#fda4af!important;background:#fff1f2!important;color:#dc2626!important}.cashflow-table .btn-outline-primary i,.cashflow-table .btn-outline-danger i{color:currentColor!important}[data-theme="dark"] .cashflow-table .btn-outline-primary,[data-theme="dark"] .cashflow-table .btn-outline-primary:hover,[data-theme="dark"] .cashflow-table .btn-outline-primary:focus-visible{border-color:#3b82f6!important;background:rgba(37,99,235,.16)!important;color:#60a5fa!important}[data-theme="dark"] .cashflow-table .btn-outline-danger,[data-theme="dark"] .cashflow-table .btn-outline-danger:hover,[data-theme="dark"] .cashflow-table .btn-outline-danger:focus-visible{border-color:#ef4444!important;background:rgba(220,38,38,.14)!important;color:#f87171!important}
.cashflow-table .money.is-alert,.cashflow-table tr:hover .money.is-alert{color:#ef4444!important}[data-theme="dark"] .cashflow-table .money.is-alert,[data-theme="dark"] .cashflow-table tr:hover .money.is-alert{color:#f87171!important}
.cashflow-table td,.cashflow-table th{padding:.45rem .65rem;line-height:1.25}.cashflow-table tbody td{padding-top:2px;padding-bottom:2px}.cashflow-table thead th{padding-top:.6rem;padding-bottom:.6rem}.cashflow-table tfoot th{padding-top:.65rem;padding-bottom:.65rem}.cashflow-table tbody td:first-child{padding-left:calc(.65rem - 4px)}.cashflow-table td:last-child{padding-left:.4rem;padding-right:.55rem}.cashflow-table td:last-child .d-flex{gap:.4rem!important}.cashflow-table td:last-child .btn-sm{width:32px;height:32px;min-height:32px;margin-top:0;margin-bottom:0;padding:0}
.cashflow-table .cashflow-uncertain{display:inline-flex;align-items:center;gap:.35rem;margin-left:.55rem;padding:0;border:0;background:transparent;color:var(--app-text);font-weight:500;white-space:nowrap}.cashflow-table .cashflow-uncertain i{color:#ef4444}
.cashflow-table tbody tr[id]{scroll-margin-top:calc(var(--workspace-header) + 18px)}.cashflow-table tbody tr:target td{background:#fff3bf!important;border-top-color:#f6c453;border-bottom-color:#f6c453}.cashflow-table tbody tr:target td:first-child{border-left-color:#f59e0b!important}.cashflow-table tbody tr:target td:nth-child(2)>strong{color:#9a5b00}[data-theme="dark"] .cashflow-table tbody tr:target td{background:#473a18!important;color:#fff3bf}[data-theme="dark"] .cashflow-table tbody tr:target td:nth-child(2)>strong{color:#fcd34d}
.app-main:has(.cashflow-table-wrap){max-width:calc(100% - 250px);overflow-x:hidden}.cashflow-table-wrap{display:block;width:100%;min-width:0;max-width:100%;overflow-x:auto;overflow-y:hidden;contain:inline-size}.cashflow-heading,.cashflow-heading>div:first-child,.cashflow-heading-actions{min-width:0;max-width:100%}.cashflow-heading-actions{flex-wrap:wrap}@media(max-width:1199.98px) and (min-width:768px){.app-main:has(.cashflow-table-wrap){max-width:calc(100% - 218px)}}@media(max-width:767.98px){.app-main:has(.cashflow-table-wrap){max-width:100%}}
.payroll-heading{align-items:end}.payroll-heading .letter-spacing{letter-spacing:.14em}.payroll-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.75rem}.payroll-summary>div{display:flex;flex-direction:column;gap:.25rem}.payroll-summary small{color:var(--app-muted,#71809a)}.payroll-summary strong{font-size:1.05rem}.payroll-summary-total{background:var(--app-primary-soft,#eef4ff)}.payroll-empty{display:flex;align-items:center;gap:1rem}.payroll-empty form{margin-left:auto}.payroll-empty-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--app-primary-soft,#eef4ff);color:var(--bs-primary);font-size:1.35rem}.payroll-table{min-width:1180px}.payroll-table th,.payroll-items-table th{white-space:nowrap}.payroll-table td,.payroll-table th,.payroll-items-table td,.payroll-items-table th{padding:.55rem .7rem}.payroll-table td:first-child{min-width:190px}.payroll-table td:nth-child(2),.payroll-table td:nth-child(4){min-width:180px}.payroll-table td:nth-child(3),.payroll-table td:nth-child(5){min-width:170px}.payroll-table td:nth-child(6){min-width:210px}.payroll-items-table .money{font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}.payroll-item-form{max-width:900px}@media(max-width:991.98px){.payroll-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-summary-total{grid-column:span 2}}@media(max-width:575.98px){.payroll-heading{align-items:flex-start}.payroll-summary{grid-template-columns:1fr}.payroll-summary-total{grid-column:auto}.payroll-empty{align-items:flex-start;flex-wrap:wrap}.payroll-empty form{width:100%;margin-left:0}.payroll-empty .btn{width:100%}}
.payroll-date-complete{border-color:#a9d8b8!important;background-color:#eef9f1!important;color:#173f27!important;box-shadow:inset 0 0 0 1px rgba(25,135,84,.04)}[data-theme="dark"] .payroll-date-complete{border-color:#32734c!important;background-color:#173c29!important;color:#d9f6e3!important}
.payroll-date-missing{border-color:#efc1c5!important;background-color:#fff4f4!important;color:#6f252d!important;box-shadow:inset 0 0 0 1px rgba(220,53,69,.035)}[data-theme="dark"] .payroll-date-missing{border-color:#7f3d46!important;background-color:#3d2227!important;color:#ffd8dc!important}
.payroll-year-picker{display:flex;align-items:center;gap:.65rem;padding:.35rem;border:1px solid var(--bs-border-color);border-radius:14px;background:var(--app-card)}.payroll-year-picker strong{min-width:72px;text-align:center;font-size:1.1rem}.payroll-year-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem}.payroll-year-summary>div{display:flex;flex-direction:column;gap:.3rem;padding:1rem 1.1rem;border:1px solid var(--bs-border-color);border-radius:16px;background:var(--app-card);box-shadow:var(--app-shadow-sm)}.payroll-year-summary small,.payroll-month-values small{color:var(--app-muted)}.payroll-year-summary strong{font-size:1.2rem}.payroll-year-summary .is-total{background:var(--app-primary-soft)}.payroll-month-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.payroll-month-card{display:flex;flex-direction:column;gap:1rem;padding:1.15rem;color:var(--app-text);text-decoration:none;border:1px solid var(--bs-border-color);border-radius:18px;background:var(--app-card);box-shadow:var(--app-shadow-sm);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.payroll-month-card:hover{color:var(--app-text);transform:translateY(-2px);border-color:#93b4ff;box-shadow:0 14px 32px rgba(15,23,42,.1)}.payroll-month-card.is-empty{background:var(--bs-tertiary-bg)}.payroll-month-card-head{display:flex;align-items:center;justify-content:space-between}.payroll-month-card-head span{display:block;font-size:1.15rem;font-weight:700}.payroll-month-card-head small{color:var(--app-muted)}.payroll-month-card-head>i{color:var(--app-primary);font-size:1.1rem}.payroll-month-values{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.payroll-month-values>div{display:flex;flex-direction:column;gap:.15rem}.payroll-month-values strong{font-size:.96rem;font-variant-numeric:tabular-nums}.payroll-month-values .is-total{padding-top:.6rem;border-top:1px solid var(--bs-border-color)}.payroll-month-status{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;margin-top:auto}.payroll-paid{background:#dcfce7;color:#166534}.payroll-unpaid{background:#fee2e2;color:#b91c1c}[data-theme="dark"] .payroll-paid{background:#173b2d;color:#bbf7d0}[data-theme="dark"] .payroll-unpaid{background:#491d25;color:#fecaca}@media(max-width:1199.98px){.payroll-month-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:767.98px){.payroll-year-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-month-grid{grid-template-columns:1fr}.payroll-heading .payroll-year-picker{width:100%;justify-content:space-between}}@media(max-width:575.98px){.payroll-year-summary{grid-template-columns:1fr}}
.maintenance-heading-actions{display:flex;align-items:flex-end;gap:.75rem;flex-wrap:wrap}.maintenance-heading-actions .cashflow-toolbar{display:grid;grid-template-columns:36px 190px 36px;align-items:end;gap:.4rem}.maintenance-heading-actions .cashflow-toolbar form{width:190px}.maintenance-heading-actions .cashflow-toolbar>.btn,.maintenance-heading-actions>.btn{align-self:end;margin-bottom:0}.maintenance-table{min-width:1050px}.maintenance-table th{white-space:nowrap}.maintenance-period-form{display:grid;grid-template-columns:minmax(145px,1fr) minmax(145px,1fr) 28px;gap:.45rem;align-items:center}.maintenance-save-state{display:grid;place-items:center;width:28px;height:28px;color:var(--app-muted)}.maintenance-save-state.is-saved{color:#15945f}.maintenance-save-state.is-error{color:#dc3545}.maintenance-save-state .spinner-border{width:17px;height:17px}.maintenance-dates{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.maintenance-service-form{max-width:900px}@media(max-width:767.98px){.maintenance-heading-actions{width:100%;align-items:stretch;flex-direction:column}.maintenance-heading-actions .cashflow-toolbar{grid-template-columns:40px minmax(0,1fr) 40px}.maintenance-heading-actions .cashflow-toolbar form{width:100%}.maintenance-heading-actions>.btn{width:100%;align-self:stretch}}
.maintenance-heading-actions .cashflow-toolbar{grid-template-columns:48px 238px 48px;gap:.55rem}.maintenance-heading-actions .cashflow-toolbar form{width:100%}.maintenance-heading-actions .cashflow-toolbar .form-label{display:block;margin:0 0 .4rem!important;font-size:.78rem;line-height:1.2}.maintenance-heading-actions .cashflow-toolbar .form-control,.maintenance-heading-actions .cashflow-toolbar>.btn,.maintenance-heading-actions>.btn{height:48px;min-height:48px;border-radius:12px}.maintenance-heading-actions .cashflow-toolbar>.btn{width:48px;padding:0}.maintenance-heading-actions>.btn{padding-inline:1.25rem}@media(max-width:767.98px){.maintenance-heading-actions .cashflow-toolbar{grid-template-columns:48px minmax(0,1fr) 48px}}
.maintenance-period-form .maintenance-date-complete{border-color:#a9d8b8!important;background-color:#eef9f1!important;color:#173f27!important;box-shadow:inset 0 0 0 1px rgba(25,135,84,.04)}[data-theme="dark"] .maintenance-period-form .maintenance-date-complete{border-color:#32734c!important;background-color:#173c29!important;color:#d9f6e3!important}
.payroll-item-amount{min-width:150px;max-width:210px}
.crm-companies-table{table-layout:fixed;min-width:760px}.crm-companies-table th:first-child,.crm-companies-table td:first-child{width:52%}.crm-companies-table th:nth-child(2),.crm-companies-table td:nth-child(2){width:18%}.crm-companies-table th:nth-child(3),.crm-companies-table td:nth-child(3){width:18%}.crm-companies-table th:last-child,.crm-companies-table td:last-child{width:12%}.crm-sort-link{display:inline-flex;align-items:center;gap:.4rem;color:inherit;text-decoration:none}.crm-sort-link:hover{color:var(--app-primary)}.crm-sort-link i{font-size:.85rem;opacity:.72}
.crm-contacts-table{table-layout:fixed;min-width:900px}.crm-contacts-table th:first-child,.crm-contacts-table td:first-child{width:31%}.crm-contacts-table th:nth-child(2),.crm-contacts-table td:nth-child(2){width:27%}.crm-contacts-table th:nth-child(3),.crm-contacts-table td:nth-child(3),.crm-contacts-table th:nth-child(4),.crm-contacts-table td:nth-child(4){width:15%}.crm-contacts-table th:last-child,.crm-contacts-table td:last-child{width:12%}
.maintenance-table tbody tr[id]{scroll-margin-top:calc(var(--workspace-header) + 18px)}.maintenance-table tbody tr:target td{background:#fff3bf!important;border-top-color:#f6c453;border-bottom-color:#f6c453}.maintenance-table tbody tr:target td:first-child{box-shadow:inset 4px 0 #f59e0b}[data-theme="dark"] .maintenance-table tbody tr:target td{background:#473a18!important;color:#fff3bf}
.flatpickr-calendar{overflow:hidden;border:1px solid var(--app-border);border-radius:14px;background:var(--app-card);box-shadow:0 18px 45px rgba(15,23,42,.16);font-family:inherit}.flatpickr-months,.flatpickr-weekdays,.flatpickr-rContainer,.flatpickr-days,.dayContainer{background:var(--app-card)}.flatpickr-months .flatpickr-month,.flatpickr-current-month .flatpickr-monthDropdown-months,.flatpickr-weekday,.flatpickr-day{color:var(--app-text);fill:var(--app-text)}.flatpickr-current-month input.cur-year,.flatpickr-time input,.flatpickr-time .flatpickr-am-pm{color:var(--app-text)}.flatpickr-day:hover,.flatpickr-day:focus{border-color:var(--app-primary-soft);background:var(--app-primary-soft);color:var(--app-primary)}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange{border-color:var(--app-primary);background:var(--app-primary);color:#fff}.flatpickr-day.today{border-color:var(--app-primary)}.flatpickr-day.flatpickr-disabled,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay{color:var(--app-muted)}.flatpickr-time{border-top-color:var(--app-border)}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus{background:var(--app-hover)}.flatpickr-calendar.arrowTop:before{border-bottom-color:var(--app-border)}.flatpickr-calendar.arrowTop:after{border-bottom-color:var(--app-card)}.flatpickr-calendar.arrowBottom:before{border-top-color:var(--app-border)}.flatpickr-calendar.arrowBottom:after{border-top-color:var(--app-card)}.flatpickr-input[readonly]{background:var(--app-card)}[data-theme="dark"] .flatpickr-calendar{box-shadow:0 18px 45px rgba(0,0,0,.4)}[data-theme="dark"] .numInputWrapper span:hover{background:var(--app-hover)}
.flatpickr-time .flatpickr-hour,.flatpickr-time .flatpickr-minute{pointer-events:auto;cursor:text;user-select:text;font-weight:700}.flatpickr-time .flatpickr-hour:focus,.flatpickr-time .flatpickr-minute:focus{outline:2px solid rgba(37,99,235,.28);outline-offset:-2px}
.app-rich-source{display:none!important}.app-rich-editor{border:1px solid var(--bs-border-color,#d8e0ec);border-radius:.75rem;background:var(--bs-body-bg,#fff);overflow:hidden}.app-rich-toolbar{display:flex;align-items:center;gap:.2rem;padding:.35rem .45rem;border-bottom:1px solid var(--bs-border-color,#d8e0ec);background:rgba(148,163,184,.08)}.app-rich-tool{display:inline-grid;place-items:center;width:2rem;height:2rem;padding:0;border:0;border-radius:.45rem;background:transparent;color:var(--bs-body-color,#17233b)}.app-rich-tool:hover,.app-rich-tool:focus-visible{background:rgba(37,99,235,.12);color:#2563eb}.app-rich-surface{min-height:8.5rem;padding:.8rem 1rem;outline:0;line-height:1.55}.app-rich-surface:empty:before{content:attr(data-placeholder);color:#8793a8;pointer-events:none}.app-rich-surface p:last-child,.app-rich-text p:last-child{margin-bottom:0}.app-rich-surface ul,.app-rich-surface ol,.app-rich-text ul,.app-rich-text ol{padding-left:1.5rem}.app-rich-surface mark,.app-rich-text mark{background:#fff1a8;padding:.05em .12em;border-radius:.15em}.app-rich-surface a,.app-rich-text a{color:#2563eb;font-weight:600;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:.18em}.app-rich-surface a:hover,.app-rich-text a:hover{color:#1746b8;text-decoration-thickness:2px}.app-rich-text{overflow-wrap:anywhere}
.dms-category-list{display:grid;gap:14px}.dms-category-item{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:104px;padding:22px 26px}.dms-category-details{min-width:0;flex:1}.dms-category-title{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.dms-category-title h2{margin:0;font-size:1.05rem;font-weight:750;line-height:1.3}.dms-category-title .badge{font-size:.7rem;font-weight:700}.dms-category-description{margin-top:8px;color:var(--bs-secondary-color);font-size:.9rem;overflow-wrap:anywhere}.dms-category-description p{margin:0}.dms-category-actions{display:flex;align-items:center;flex:none;gap:8px}.dms-category-actions form{margin:0}.dms-category-actions .btn{min-height:38px;white-space:nowrap}.dms-category-actions .btn-outline-danger{width:38px;padding:0;display:grid;place-items:center}@media(max-width:767.98px){.dms-category-item{align-items:stretch;flex-direction:column;gap:18px;padding:20px}.dms-category-actions{justify-content:flex-end}}
