@font-face{font-family:Source Sans;src:url('/static/fonts/source-sans-latin.woff2') format('woff2');font-weight:200 900;font-display:swap}@font-face{font-family:Bricolage;src:url('/static/fonts/bricolage-latin.woff2') format('woff2');font-weight:200 800;font-display:swap}
:root,[data-bs-theme=light]{--bs-font-sans-serif:'Source Sans',sans-serif;--bs-body-font-family:'Source Sans',sans-serif;--bs-body-bg:#f4f9fb;--bs-body-color:#103c55;--bs-secondary-color:#466777;--bs-tertiary-bg:#d9f2fb;--bs-border-color:#c5dce4;--surface:#fff;--sidebar:#103c55;--sidebar-text:#d6eaf0;--selected:#d9f2fb;--selected-text:#103c55;--brand-heading:'Bricolage',sans-serif;--rail-width:254px;--focus:#087d76;--bs-link-color:#087d76;--bs-link-hover-color:#065e59;color-scheme:light}
[data-bs-theme=dark]{--bs-body-bg:#0b2638;--bs-body-color:#d6eaf0;--bs-secondary-color:#c4dce5;--bs-tertiary-bg:#153e51;--bs-border-color:#31596b;--surface:#103c55;--sidebar:#082232;--sidebar-text:#d6eaf0;--selected:#245d76;--selected-text:#fff;--focus:#8fe6dc;--bs-link-color:#8fe6dc;--bs-link-hover-color:#baf4e8;color-scheme:dark}
*{box-sizing:border-box}body{font-size:16px;line-height:1.5}h1,h2,h3,.brand,.login-brand{font-family:var(--brand-heading)}h1{font-size:1.8rem;font-weight:650;letter-spacing:-.025em;margin:0}h2{font-size:1.18rem;font-weight:650}button,a,input,select{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}::selection{background:#8ddbf0;color:#103c55}input,textarea{caret-color:var(--focus)}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}.btn{font-weight:600;border-radius:8px;min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn-primary{--bs-btn-bg:#087d76;--bs-btn-border-color:#087d76;--bs-btn-hover-bg:#06665f;--bs-btn-hover-border-color:#06665f;--bs-btn-active-bg:#065c57;--bs-btn-active-border-color:#065c57;--bs-btn-disabled-bg:#466777;--bs-btn-disabled-border-color:#466777}.btn-outline-primary{--bs-btn-color:var(--bs-link-color);--bs-btn-border-color:var(--bs-border-color);--bs-btn-hover-bg:#087d76;--bs-btn-hover-border-color:#087d76;--bs-btn-hover-color:white}.btn-sm{min-height:32px}.form-control,.form-select{min-height:42px;border-radius:8px}.form-control:focus,.form-select:focus{border-color:var(--focus);box-shadow:0 0 0 .2rem rgb(24 181 165 / .15)}.form-label{font-weight:600;font-size:.93rem}.icon-button{border:0;background:transparent;color:inherit;width:40px;height:40px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;flex:none}.icon-button:hover{background:var(--bs-tertiary-bg)}.topbar{height:68px;position:fixed;inset:0 0 auto var(--rail-width);display:flex;align-items:center;gap:16px;padding:0 24px;border-bottom:1px solid var(--bs-border-color);background:var(--surface);z-index:1030;transition:left .18s ease-out}.company-control{width:min(330px,40vw)}.company-control .form-select{min-height:38px}.header-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.user-button{border:0;background:transparent;display:flex;align-items:center;gap:8px;color:inherit}.avatar{width:32px;height:32px;display:grid;place-items:center;background:#d9f2fb;color:#103c55;border-radius:50%;font-weight:700}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--rail-width);background:var(--sidebar);color:var(--sidebar-text);display:flex;flex-direction:column;z-index:1040;transition:width .18s ease-out,transform .18s ease-out;overflow-x:hidden}.brand{display:flex;align-items:center;gap:11px;padding:22px 20px;text-decoration:none;color:#fff;font-size:1.45rem;font-weight:650;white-space:nowrap}.brand small{font-family:'Source Sans',sans-serif;display:block;color:#c4dce5;font-size:.72rem;font-weight:400;line-height:1.35;white-space:normal;margin-top:4px}.sidebar nav{padding:0 12px 20px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#547489 transparent}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;margin:2px 0;color:var(--sidebar-text);text-decoration:none;border-radius:8px;font-size:.95rem;transition:background .15s,color .15s;min-height:42px}.nav-item span{white-space:normal}.nav-item:hover,.nav-item:focus-visible{background:#245d76;color:#fff}.nav-item.active{background:#d9f2fb;color:#103c55}.sidebar summary{list-style:none;display:flex;align-items:center;justify-content:space-between;padding:17px 12px 6px;color:#8ddbf0;font-size:.79rem;font-weight:650}.sidebar summary::-webkit-details-marker{display:none}.sidebar summary svg{width:14px;height:14px;transition:transform .15s}.sidebar details:not([open]) summary svg{transform:rotate(-90deg)}.sidebar-footer{margin-top:auto;padding:14px 24px;font-size:.76rem;color:#c4dce5;border-top:1px solid #31596b;white-space:nowrap}.workspace{margin:68px 0 0 var(--rail-width);padding:30px 32px;min-height:calc(100vh - 68px);min-width:0;transition:margin-left .18s}.workspace-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:24px}.breadcrumb-line{font-size:.82rem;color:var(--bs-secondary-color);margin:0 0 6px}.panel{background:var(--surface);border:1px solid var(--bs-border-color);border-radius:12px;padding:24px;min-width:0}.panel-heading,.document-header{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:20px}.panel-heading h2,.document-header h2{margin:0}.working-totals{display:flex;margin:0;gap:0;flex-wrap:wrap}.working-totals>div{flex:1;padding:12px 24px;border-right:1px solid var(--bs-border-color);min-width:170px}.working-totals>div:first-child{padding-left:0}.working-totals>div:last-child{border:0}.working-totals dt{font-size:.9rem;font-weight:400;color:var(--bs-secondary-color)}.working-totals dd{font-size:1.75rem;font-weight:650;margin:4px 0 0;font-variant-numeric:tabular-nums}.quick-actions{display:flex;flex-direction:column;margin-top:18px}.quick-actions a{display:flex;justify-content:space-between;gap:16px;text-decoration:none;padding:14px 0;border-top:1px solid var(--bs-border-color)}.empty-state{padding:50px 24px;text-align:center}.empty-state p{max-width:54ch;margin:12px auto 24px;color:var(--bs-secondary-color)}.empty-icon{width:42px;height:42px;color:var(--bs-link-color);margin-bottom:20px}.table{--bs-table-bg:transparent;--bs-table-color:var(--bs-body-color);--bs-table-border-color:var(--bs-border-color);font-size:.94rem}.table thead th{font-size:.82rem;font-weight:650;color:var(--bs-secondary-color);white-space:nowrap;padding-top:12px;padding-bottom:14px}.table td{padding-top:12px;padding-bottom:12px}.table-actions{text-align:right;white-space:nowrap}.number{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}div.dt-container .dt-layout-row{gap:16px}.table-panel{padding:20px 24px}.dt-search input{border:1px solid var(--bs-border-color);background:var(--bs-body-bg);color:var(--bs-body-color);border-radius:7px;padding:6px 10px}.journal-input select{min-width:230px}.journal-input input{min-width:115px}.status-label{padding:5px 11px;background:var(--bs-tertiary-bg);border-radius:20px;font-size:.82rem;font-weight:600}.status-label.posted{color:var(--bs-link-color)}.document-actions{display:flex;justify-content:flex-end;margin-top:20px}.reversal-area{margin-top:28px;border-top:1px solid var(--bs-border-color);padding-top:20px}.reversal-area summary{cursor:pointer;font-weight:600}.workspace-footer{margin-top:30px;font-size:.79rem;color:var(--bs-secondary-color)}.field-help{font-size:.87rem;color:var(--bs-secondary-color)}.modal-content{background:var(--surface);border-radius:14px}.modal-header,.modal-footer{padding:18px 24px}.modal-body{padding:24px}.activity-menu{width:min(350px,calc(100vw - 24px));padding:16px}.activity-menu h2{font-size:1rem;margin-bottom:16px}.activity-item{padding:9px 0;border-bottom:1px solid var(--bs-border-color)}.activity-item span,.activity-item small{display:block}.activity-item small{font-size:.74rem;color:var(--bs-secondary-color)}.toast{border:0;background:var(--surface);box-shadow:0 6px 24px rgb(0 0 0 / .18);color:var(--bs-body-color)}.toast-body{display:flex;gap:10px;align-items:flex-start}.toast-body>span{flex:1}.toast-body svg{color:var(--bs-link-color)}.device-request{position:fixed;bottom:24px;left:calc(var(--rail-width) + 24px);right:24px;background:var(--surface);border:1px solid var(--bs-border-color);border-radius:12px;padding:20px 24px;z-index:1050;display:flex;gap:20px;align-items:center;justify-content:space-between}.device-request p{margin:6px 0 0;max-width:65ch}.device-actions{display:flex;gap:8px;flex-wrap:wrap;flex:none}.sidebar-backdrop{display:none}.skip-link{position:fixed;top:8px;left:8px;transform:translateY(-150%);z-index:2000;background:var(--surface);padding:8px 14px}.skip-link:focus{transform:none}.page-busy{position:fixed;top:0;left:0;right:0;height:3px;z-index:3000;background:#18b5a5}.login-page{min-height:100vh;min-height:100dvh;margin:0;display:flex;align-items:center;justify-content:center;padding:24px 20px;box-sizing:border-box}.login-shell{width:100%;max-width:390px;min-width:0}.login-form-page{background:#e9f4f8}.login-form-page .login-shell{max-width:454px}.login-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.login-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--bs-body-color);font-size:1.85rem;font-weight:650;min-width:0}.login-slogan{font-size:.9rem;line-height:1.4;color:var(--bs-secondary-color);margin:12px 0 22px}.login-card{background:var(--surface);border:1px solid #b4cbd7;border-radius:14px;padding:28px 32px}.login-shell h1{font-size:1.6rem;line-height:1.25;margin:0 0 8px}.login-card>p{color:var(--bs-secondary-color);margin:0 0 22px}.login-shell footer{text-align:center;color:var(--bs-secondary-color);font-size:.78rem;line-height:1.4;margin-top:20px}.login-theme{position:static;flex:none}.password-field{position:relative}.password-field input{padding-right:46px}.password-toggle{position:absolute;right:3px;top:2px;width:38px;height:38px;border:0;background:transparent;color:var(--bs-secondary-color)}[data-bs-theme=dark] .login-form-page{background:#082232}[data-bs-theme=dark] .login-card{border-color:#547489}@media(max-width:575px){.login-page{padding:20px 16px}.login-brand{font-size:1.65rem;gap:10px}.login-brand img{width:40px;height:40px}.login-card{padding:24px 20px}.login-slogan{font-size:.86rem}.login-shell h1{font-size:1.45rem}}@media(max-height:680px){.login-page{padding-block:12px}.login-card{padding-block:20px}.login-slogan{margin-top:10px;margin-bottom:16px}.login-card>p{margin-bottom:16px}.login-shell footer{margin-top:14px}.login-card .mb-3{margin-bottom:12px!important}.login-card .mb-4{margin-bottom:16px!important}}body.sidebar-compact{--rail-width:74px}.sidebar-compact .sidebar .brand{padding-left:18px}.sidebar-compact .sidebar .brand>span,.sidebar-compact .sidebar .nav-item>span,.sidebar-compact .sidebar summary,.sidebar-compact .sidebar-footer{display:none}.sidebar-compact .sidebar:hover,.sidebar-compact .sidebar:focus-within{width:254px}.sidebar-compact .sidebar:hover .brand>span,.sidebar-compact .sidebar:hover .nav-item>span,.sidebar-compact .sidebar:hover summary,.sidebar-compact .sidebar:focus-within .brand>span,.sidebar-compact .sidebar:focus-within .nav-item>span,.sidebar-compact .sidebar:focus-within summary{display:revert}.record-form.htmx-request button[type=submit]{opacity:.6;pointer-events:none}
@media(max-width:991px){:root{--rail-width:0px}.topbar{left:0;padding:0 14px;gap:8px}.workspace{margin-left:0;padding:24px 18px}.sidebar{width:254px;transform:translateX(-100%);bottom:auto;top:calc(var(--sidebar-viewport-top,0px) + var(--sidebar-header-height,68px));height:calc(var(--sidebar-viewport-height,100dvh) - var(--sidebar-header-height,68px));min-height:0;overflow:hidden}body.sidebar-open .sidebar{transform:none}body.sidebar-open .sidebar-backdrop{display:block;position:fixed;inset:0;background:rgb(0 0 0 / .35);z-index:1035}body.sidebar-compact{--rail-width:0px}.sidebar-compact .sidebar .brand>span,.sidebar-compact .sidebar .nav-item>span,.sidebar-compact .sidebar summary{display:revert}.device-request{left:18px;right:18px;bottom:18px;flex-direction:column;align-items:stretch}.company-control{width:min(340px,52vw)}}
@media(max-width:575px){.topbar{height:60px;gap:5px}.workspace{margin-top:60px;padding:22px 14px}.header-actions{gap:2px}.user-name{display:none}.icon-button{width:34px;height:36px}.company-control{width:calc(100vw - 170px)}h1{font-size:1.55rem}.workspace-heading{gap:14px}.workspace-heading>.btn{margin-left:auto}.panel{padding:20px 16px}.table-panel{padding:14px 10px}.working-totals>div{padding:12px 0;border-right:0;border-bottom:1px solid var(--bs-border-color);min-width:100%}.working-totals>div:last-child{border-bottom:0}.activity-menu{width:calc(100vw - 24px)}.modal-header,.modal-footer,.modal-body{padding:18px}.device-actions .btn{width:100%}.device-actions form{flex:1;min-width:130px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}@media print{.sidebar,.topbar,.workspace-heading>.btn,.workspace-footer{display:none!important}.workspace{margin:0;padding:0}.panel{border:0;padding:0}body{background:white!important;color:black!important}}

.company-control{min-width:0}.brand img,.login-brand img{background:#f4f9fb;border-radius:9px;padding:3px}

/* Keep short pages anchored to the bottom without overlaying content. */
.workspace{display:flex;flex-direction:column;min-height:calc(100vh - 68px);min-height:calc(100dvh - 68px)}.workspace-heading,.workspace-footer{flex-shrink:0}.workspace-footer{margin-top:auto;padding-top:30px}.sidebar-compact .sidebar.selection-closed{width:74px}.sidebar-compact .sidebar.selection-closed .brand>span,.sidebar-compact .sidebar.selection-closed .nav-item>span,.sidebar-compact .sidebar.selection-closed summary,.sidebar-compact .sidebar.selection-closed .sidebar-footer{display:none}@media(max-width:991px){.workspace{min-height:calc(100vh - 68px);min-height:calc(100dvh - 68px)}}@media(max-width:575px){.workspace{min-height:calc(100vh - 60px);min-height:calc(100dvh - 60px)}}

@media(max-height:540px){.login-form-page{padding-block:8px}.login-card{padding-block:16px}.login-slogan{margin-bottom:12px}.login-shell footer{margin-top:12px}}


/* Mobile drawer owns its viewport and scroll; the desktop layout is unchanged. */
html.sidebar-scroll-locked{overflow:hidden!important;overscroll-behavior:none}
body.sidebar-scroll-locked{position:fixed!important;top:var(--sidebar-document-top)!important;left:var(--sidebar-document-left)!important;width:calc(100% - var(--sidebar-scrollbar-gap,0px))!important;overflow:hidden!important;overscroll-behavior:none}
@media(max-width:991px){
 .sidebar>.brand,.sidebar>.sidebar-footer{flex:0 0 auto}
 .sidebar>nav{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;touch-action:pan-y pinch-zoom;-webkit-overflow-scrolling:touch}
 body.sidebar-open .sidebar-backdrop{top:calc(var(--sidebar-viewport-top,0px) + var(--sidebar-header-height,68px));bottom:auto;height:calc(var(--sidebar-viewport-height,100dvh) - var(--sidebar-header-height,68px));touch-action:none;overscroll-behavior:none}
 body.sidebar-open .topbar{top:var(--sidebar-viewport-top,0px);right:var(--sidebar-scrollbar-gap,0px)}
}
@media(max-width:575px){.sidebar{top:calc(var(--sidebar-viewport-top,0px) + var(--sidebar-header-height,60px));height:calc(var(--sidebar-viewport-height,100dvh) - var(--sidebar-header-height,60px))}}



/* Entity directories share left alignment, density and the Contabillit theme. */
.record-table th,.record-table td,.record-table .dt-type-numeric,.record-table .dt-type-date{text-align:left!important}.record-table .dt-column-header{justify-content:flex-start}.record-table .dt-column-title{text-align:left}.record-table td:first-child{font-variant-numeric:tabular-nums}
.pagination{--bs-pagination-color:var(--bs-link-color);--bs-pagination-bg:var(--surface);--bs-pagination-border-color:var(--bs-border-color);--bs-pagination-hover-color:var(--bs-body-color);--bs-pagination-hover-bg:var(--bs-tertiary-bg);--bs-pagination-hover-border-color:var(--bs-border-color);--bs-pagination-focus-color:var(--bs-link-color);--bs-pagination-focus-bg:var(--bs-tertiary-bg);--bs-pagination-focus-box-shadow:0 0 0 .2rem rgb(24 181 165 / .2);--bs-pagination-active-bg:#087d76;--bs-pagination-active-border-color:#087d76;--bs-pagination-active-color:#fff;--bs-pagination-disabled-color:var(--bs-secondary-color);--bs-pagination-disabled-bg:var(--surface);--bs-pagination-disabled-border-color:var(--bs-border-color)}[data-bs-theme=dark] .pagination{--bs-pagination-active-bg:#8ddbf0;--bs-pagination-active-border-color:#8ddbf0;--bs-pagination-active-color:#103c55}
.toast-body{display:grid;grid-template-columns:20px minmax(0,1fr) 28px;gap:10px;align-items:start}.toast-body>span{min-width:0;overflow-wrap:anywhere}.toast-body>.btn-close{grid-column:3;justify-self:end;margin:0;min-width:24px;min-height:24px;padding:0}
.activity-menu{width:min(400px,calc(100vw - 24px));padding:0;overflow:hidden}.activity-heading{padding:16px;border-bottom:1px solid var(--bs-border-color);display:flex;flex-direction:column;gap:8px}.activity-heading h2{margin:0}.notification-read-all{padding:0;border:0;background:transparent;font-size:.85rem;font-weight:600;color:var(--bs-link-color);text-align:left}.notification-read-all:disabled{color:var(--bs-secondary-color);opacity:.7}.activity-scroll{max-height:min(620px,calc(100dvh - 230px));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--bs-secondary-color) transparent;padding:0 16px}.activity-item{display:block;width:100%;border:0;border-bottom:1px solid var(--bs-border-color);background:transparent;color:var(--bs-body-color);text-align:left;padding:12px 0;min-height:64px}.activity-item:hover,.activity-item:focus-visible{background:var(--bs-tertiary-bg)}.activity-item.is-unread>span:first-child{font-weight:650}.activity-item small{font-size:.8rem;line-height:1.5}.activity-audit-link{padding:14px 16px;border-top:1px solid var(--bs-border-color);color:var(--bs-link-color)}#notification-bell{position:relative}.notification-badge{position:absolute;top:0;right:0;min-width:17px;height:17px;padding:0 3px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#087d76;color:#fff;font-size:.65rem;font-weight:700;line-height:1}.notification-badge[hidden]{display:none!important}[data-bs-theme=dark] .notification-badge{background:#8ddbf0;color:#103c55}
.audit-detail{margin:0;display:grid;gap:16px}.audit-detail>div{display:grid;grid-template-columns:minmax(110px,1fr) minmax(0,2fr);gap:12px}.audit-detail dt{font-size:.88rem;font-weight:600;color:var(--bs-secondary-color)}.audit-detail dd{margin:0;overflow-wrap:anywhere}.audit-detail dd small{display:block;font-size:.76rem;color:var(--bs-secondary-color)}.sidebar-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 18px}.sidebar-role{white-space:normal;font-size:.82rem;line-height:1.35}.sidebar-logout{color:var(--sidebar-text);width:34px;height:34px}.sidebar-logout:hover{background:#245d76;color:#fff}.sidebar-compact .sidebar-footer{display:flex;justify-content:center;padding:12px 6px}.sidebar-compact .sidebar-role{display:none}.sidebar-compact .sidebar:hover .sidebar-footer,.sidebar-compact .sidebar:focus-within .sidebar-footer{justify-content:space-between;padding:12px 18px}.sidebar-compact .sidebar:hover .sidebar-role,.sidebar-compact .sidebar:focus-within .sidebar-role{display:block}.sidebar-compact .sidebar.selection-closed .sidebar-footer{display:flex;justify-content:center;padding:12px 6px}.sidebar-compact .sidebar.selection-closed .sidebar-role{display:none}.workspace-footer small{display:block;font-size:inherit;margin-top:3px}.error-card{margin-top:24px}@media(max-width:991px){.sidebar-compact .sidebar-role{display:block}.sidebar-compact .sidebar-footer{justify-content:space-between;padding:12px 18px}}@media(max-width:400px){.audit-detail>div{grid-template-columns:1fr;gap:3px}}

.dashboard-charts{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:24px}.chart-note{font-size:.83rem;color:var(--bs-secondary-color);margin:8px 0 16px}.monthly-chart{display:flex;gap:12px;min-height:220px;align-items:stretch;overflow-x:auto}.chart-column{display:flex;flex:1;min-width:48px;flex-direction:column;text-align:center;gap:8px}.chart-value{font-size:.74rem;font-variant-numeric:tabular-nums;white-space:nowrap}.chart-track{height:160px;display:flex;align-items:flex-end;border-bottom:1px solid var(--bs-border-color)}.chart-bar{width:100%;background:#087d76;border-radius:5px 5px 0 0;min-height:2px}.chart-label{font-size:.78rem;color:var(--bs-secondary-color)}.journal-status-chart{display:grid;gap:22px;margin:24px 0}.journal-status-chart>div{display:grid;grid-template-columns:95px 1fr;gap:12px}.journal-status-chart dt{font-size:.9rem;font-weight:400}.journal-status-chart dd{margin:0;text-align:right;font-weight:650}.status-track{margin-top:6px;height:8px;border-radius:4px;background:var(--bs-tertiary-bg);overflow:hidden}.status-bar{display:block;height:100%;background:#466777}.status-bar.approved{background:#c4652d}.status-bar.posted{background:#087d76}[data-bs-theme=dark] .chart-bar,[data-bs-theme=dark] .status-bar.posted{background:#8ddbf0}[data-bs-theme=dark] .status-bar.approved{background:#ff985c}[data-bs-theme=dark] .status-bar.draft{background:#c4dce5}@media(max-width:1199px){.dashboard-charts{grid-template-columns:1fr}}


/* Apply the brand to Bootstrap utilities and every interaction state. */
:root,[data-bs-theme=light]{--bs-primary:#087d76;--bs-primary-rgb:8,125,118;--bs-secondary:#466777;--bs-secondary-rgb:70,103,119;--bs-success:#187649;--bs-success-rgb:24,118,73;--bs-info:#103c55;--bs-info-rgb:16,60,85;--bs-warning:#ff985c;--bs-warning-rgb:255,152,92;--bs-danger:#ff985c;--bs-danger-rgb:255,152,92;--bs-link-color-rgb:8,125,118;--bs-link-hover-color-rgb:16,60,85;--bs-focus-ring-color:rgb(24 181 165 / .28);--bs-primary-text-emphasis:#103c55;--bs-primary-bg-subtle:#d9f2fb;--bs-primary-border-subtle:#c5dce4;--bs-danger-text-emphasis:#103c55;--bs-danger-bg-subtle:#d9f2fb;--bs-danger-border-subtle:#ff985c;--bs-warning-text-emphasis:#103c55;--bs-warning-bg-subtle:#d9f2fb;--bs-warning-border-subtle:#ff985c;--bs-info-text-emphasis:#103c55;--bs-info-bg-subtle:#d9f2fb;--bs-info-border-subtle:#c5dce4;--bs-success-text-emphasis:#187649;--bs-success-bg-subtle:#d9f2fb;--bs-success-border-subtle:#187649}
[data-bs-theme=dark]{--bs-primary:#8ddbf0;--bs-primary-rgb:141,219,240;--bs-link-color-rgb:141,219,240;--bs-link-hover-color-rgb:217,242,251;--bs-primary-text-emphasis:#d9f2fb;--bs-primary-bg-subtle:#153e51;--bs-primary-border-subtle:#547489;--bs-danger-text-emphasis:#ff985c;--bs-danger-bg-subtle:#153e51;--bs-warning-text-emphasis:#ff985c;--bs-warning-bg-subtle:#153e51;--bs-info-text-emphasis:#d9f2fb;--bs-info-bg-subtle:#153e51;--bs-success-text-emphasis:#d9f2fb;--bs-success-bg-subtle:#153e51}
.btn-primary{--bs-btn-focus-shadow-rgb:24,181,165;--bs-btn-active-shadow:none}.btn-outline-primary{--bs-btn-active-color:#fff;--bs-btn-active-bg:#087d76;--bs-btn-active-border-color:#087d76;--bs-btn-focus-shadow-rgb:24,181,165;--bs-btn-disabled-color:var(--bs-secondary-color);--bs-btn-disabled-border-color:var(--bs-border-color)}.btn-outline-danger{--bs-btn-color:var(--bs-body-color);--bs-btn-border-color:#ff985c;--bs-btn-hover-color:#103c55;--bs-btn-hover-bg:#ff985c;--bs-btn-hover-border-color:#ff985c;--bs-btn-active-color:#103c55;--bs-btn-active-bg:#ff985c;--bs-btn-active-border-color:#ff985c;--bs-btn-focus-shadow-rgb:255,152,92;--bs-btn-disabled-color:var(--bs-secondary-color);--bs-btn-disabled-border-color:var(--bs-border-color)}.btn-secondary,.btn-dark{--bs-btn-bg:#103c55;--bs-btn-color:#fff;--bs-btn-border-color:#103c55;--bs-btn-hover-bg:#087d76;--bs-btn-hover-color:#fff;--bs-btn-hover-border-color:#087d76;--bs-btn-active-bg:#087d76;--bs-btn-active-border-color:#087d76;--bs-btn-focus-shadow-rgb:24,181,165}.btn-success{--bs-btn-bg:#187649;--bs-btn-border-color:#187649;--bs-btn-hover-bg:#087d76;--bs-btn-hover-border-color:#087d76;--bs-btn-active-bg:#087d76;--bs-btn-active-border-color:#087d76;--bs-btn-focus-shadow-rgb:24,181,165}.btn-danger,.btn-warning{--bs-btn-bg:#ff985c;--bs-btn-border-color:#ff985c;--bs-btn-color:#103c55;--bs-btn-hover-bg:#d9f2fb;--bs-btn-hover-border-color:#ff985c;--bs-btn-hover-color:#103c55;--bs-btn-active-bg:#ff985c;--bs-btn-active-border-color:#ff985c;--bs-btn-active-color:#103c55;--bs-btn-focus-shadow-rgb:255,152,92}.btn-info,.btn-light{--bs-btn-bg:#d9f2fb;--bs-btn-border-color:#c5dce4;--bs-btn-color:#103c55;--bs-btn-hover-bg:#8ddbf0;--bs-btn-hover-border-color:#8ddbf0;--bs-btn-hover-color:#103c55;--bs-btn-active-bg:#8ddbf0;--bs-btn-active-border-color:#8ddbf0;--bs-btn-active-color:#103c55;--bs-btn-focus-shadow-rgb:24,181,165}.dropdown-item:active,.dropdown-item.active{background:#087d76;color:#fff}.form-check-input:checked{background-color:#087d76;border-color:#087d76}.form-check-input:focus{border-color:var(--focus);box-shadow:0 0 0 .2rem rgb(24 181 165 / .25)}.btn-close:focus{box-shadow:0 0 0 .2rem rgb(24 181 165 / .25)}
.toast-body{grid-template-columns:20px minmax(0,1fr) 32px}.toast-close{grid-column:3;justify-self:end;width:32px;height:32px;border:1px solid var(--bs-border-color);background:var(--bs-tertiary-bg);color:var(--bs-body-color);margin:0;padding:4px;cursor:pointer}.toast-close:hover,.toast-close:active{background:#d9f2fb;color:#103c55;border-color:#8ddbf0}.toast-close svg{width:18px;height:18px;stroke-width:2.2}

/* Center identity only on entry/error pages; keep application footers intact. */
.login-form-page .login-header{display:grid;grid-template-columns:36px minmax(0,1fr) 36px;column-gap:8px}.login-form-page .login-brand{grid-column:2;grid-row:1;justify-self:center}.login-form-page .login-theme{grid-column:3;grid-row:1;justify-self:end}.login-form-page .login-slogan{text-align:center}.login-form-page .error-card{margin-top:0}


/* Validation and disabled states use the same palette as normal controls. */
:root,[data-bs-theme=light]{--bs-form-invalid-color:#103c55;--bs-form-invalid-border-color:#ff985c;--bs-form-valid-color:#187649;--bs-form-valid-border-color:#187649}[data-bs-theme=dark]{--bs-form-invalid-color:#ff985c;--bs-form-valid-color:#d9f2fb;--bs-form-valid-border-color:#8ddbf0}
.btn-danger,.btn-warning{--bs-btn-disabled-bg:#ff985c;--bs-btn-disabled-border-color:#ff985c;--bs-btn-disabled-color:#103c55}.btn-secondary,.btn-dark{--bs-btn-disabled-bg:#103c55;--bs-btn-disabled-border-color:#103c55;--bs-btn-disabled-color:#fff}.btn-success{--bs-btn-disabled-bg:#187649;--bs-btn-disabled-border-color:#187649;--bs-btn-disabled-color:#fff}.btn-info,.btn-light{--bs-btn-disabled-bg:#d9f2fb;--bs-btn-disabled-border-color:#c5dce4;--bs-btn-disabled-color:#103c55}.btn-outline-secondary,.btn-outline-dark{--bs-btn-color:var(--bs-body-color);--bs-btn-border-color:var(--bs-border-color);--bs-btn-hover-bg:#103c55;--bs-btn-hover-border-color:#103c55;--bs-btn-hover-color:#fff;--bs-btn-active-bg:#103c55;--bs-btn-active-border-color:#103c55;--bs-btn-active-color:#fff;--bs-btn-focus-shadow-rgb:24,181,165;--bs-btn-disabled-color:var(--bs-secondary-color);--bs-btn-disabled-border-color:var(--bs-border-color)}.text-danger{color:var(--bs-form-invalid-color)!important}.text-success{color:var(--bs-success-text-emphasis)!important}.text-bg-danger,.text-bg-warning{color:#103c55!important}.invalid-tooltip{color:#103c55;background:#ff985c}.form-control.is-invalid,.was-validated .form-control:invalid{background-image:none}.form-select.is-invalid,.was-validated .form-select:invalid{--bs-form-select-bg-icon:none}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus,.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#ff985c;box-shadow:0 0 0 .2rem rgb(255 152 92 / .25)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{box-shadow:0 0 0 .2rem rgb(24 118 73 / .25)}
.login-card .alert-danger{background:#d9f2fb;color:#103c55;border-color:#ff985c;border-radius:10px;padding:14px 16px;line-height:1.45}[data-bs-theme=dark] .login-card .alert-danger{background:#153e51;color:#ff985c;border-color:#ff985c}.status-bar.approved{background:#ff985c}

.error-card{text-align:center}


/* Let the modal body, rather than an oversized HTMX wrapper, own vertical scrolling. */
#recordModal .modal-dialog-scrollable{height:calc(var(--record-modal-viewport-height,100dvh) - var(--bs-modal-margin)*2)}
#recordModal .modal-content{min-height:0;max-height:100%;overflow:hidden}
#recordModal .record-form{display:flex;flex:1 1 auto;flex-direction:column;min-width:0;min-height:0;max-height:100%;overflow:hidden;margin:0}
#recordModal .modal-header,#recordModal .modal-footer{flex-shrink:0}
#recordModal .modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;touch-action:pan-x pan-y}
.workspace>*{flex-shrink:0}.directory-table{min-width:0;max-width:100%}
.dt-layout-table>.directory-table-viewport{display:block!important;min-width:0;max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;scrollbar-width:thin;scrollbar-color:var(--bs-secondary-color) transparent}
.directory-table-viewport:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
@media(max-width:767px){
 .table-panel .dt-container{width:100%;min-width:0}.table-panel .dt-container>.row{margin-left:0;margin-right:0;row-gap:16px}.table-panel .dt-container>.row>*{padding-left:0;padding-right:0;min-width:0;max-width:100%}
 .record-table{min-width:620px}.record-table td,.record-table th{overflow-wrap:normal}
 .dt-length{display:flex!important;align-items:center;justify-content:flex-start;gap:10px;flex-wrap:wrap}.dt-length label{margin:0!important}.dt-length .form-select{width:80px!important;margin:0!important;flex:none}
 .dt-search{display:grid!important;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;width:100%}.dt-search label{margin:0!important}.dt-search input{width:100%!important;min-width:0;margin:0!important;font-size:16px}
 .dt-info{white-space:normal!important;text-align:left!important;padding:0!important;line-height:1.5}
 .dt-paging{width:100%;min-width:0}.dt-paging .pagination{display:flex;justify-content:center!important;align-items:center;gap:4px;flex-wrap:wrap;margin:0}.dt-paging .page-link{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:44px;margin:0!important;padding:8px 10px;border-radius:7px!important}.dt-paging-button.paging-first,.dt-paging-button.paging-last{display:none}.paging-icon svg{width:18px;height:18px}.paging-back svg{transform:rotate(90deg)}.paging-forward svg{transform:rotate(-90deg)}
 #recordModal .form-control,#recordModal .form-select{font-size:16px}#recordModal .modal-header .btn-close{min-width:32px;min-height:32px;padding:6px;margin-left:12px}#recordModal .modal-footer{gap:8px;flex-wrap:wrap}#recordModal .modal-footer>.btn{min-height:44px;margin:0}
}
@media(max-width:575px){.table-panel .dt-container>.row:not(.dt-layout-table)>*{flex:0 0 100%;width:100%;margin-left:0!important;margin-right:0!important}.dt-info{text-align:center!important}.dt-search{grid-template-columns:1fr;gap:6px}.dt-search input{min-height:44px}.dt-length{justify-content:flex-start}}

/* Shared administration forms and explicit permissions. */
.required-mark{margin-left:4px;color:var(--bs-link-color);font-weight:700}.required-help{font-size:.82rem;color:var(--bs-secondary-color);margin:0 0 20px}.workspace-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-left:auto}.row-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.admin-fieldset{border:0;border-top:1px solid var(--bs-border-color);padding:22px 0 0;margin:24px 0 0;min-width:0}.admin-fieldset legend{float:none;font-family:var(--brand-heading);font-weight:600;font-size:1.06rem;margin:0 0 10px;padding:0}.choice-row{display:flex;gap:14px 20px;flex-wrap:wrap}.choice-label{display:flex;align-items:flex-start;gap:10px;min-height:32px;font-size:.94rem}.choice-label .form-check-input{margin-top:4px;flex:none}.assignment-list{display:grid;gap:16px}.assignment-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,1fr);align-items:center;gap:12px}.permission-scroll{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}.permission-table{min-width:540px}.permission-table th:first-child{min-width:190px}.permission-table td,.permission-table th{vertical-align:middle}.permission-table td{text-align:center}.permission-choice{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px}.permission-choice .form-check-input{margin:0}.company-logo-preview{max-width:120px;max-height:100px;object-fit:contain;display:block;margin-bottom:12px}.company-table-image{width:30px;height:30px;object-fit:contain;margin-right:10px;vertical-align:middle}.base-role-list{display:grid;gap:20px;margin:24px 0}.base-role-list dt{font-family:var(--brand-heading);font-size:1.1rem}.base-role-list dd{margin:4px 0 0;color:var(--bs-secondary-color)}@media(max-width:575px){.assignment-row{grid-template-columns:1fr;gap:6px}.workspace-heading{align-items:flex-start}.workspace-actions{width:100%;justify-content:flex-end}.workspace-actions>.btn{min-height:40px}.choice-label{min-height:40px}.choice-label .form-check-input{width:20px;height:20px}}

.user-avatar{object-fit:cover}.profile-panel{max-width:720px}

.permission-section{display:flex;align-items:center;gap:8px;text-align:left;background:transparent;border:0;padding:0;color:inherit;font:inherit;font-weight:650}.permission-section svg{width:14px;height:14px}.permission-section[aria-expanded=false] svg{transform:rotate(-90deg)}.permission-submodule th{padding-left:30px;font-weight:400}

/* Keep all four permission choices visible together on a phone. */
@media(max-width:575px){.permission-scroll{overflow:visible}.permission-table{min-width:0;width:100%}.permission-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.permission-table tbody,.permission-table tbody tr{display:block;width:100%}.permission-table tbody tr{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--bs-border-color);padding:12px 0}.permission-table tbody tr[hidden]{display:none}.permission-table tbody th{grid-column:1/-1;min-width:0;border:0;padding:0 0 8px}.permission-table tbody td{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:2px;padding:4px 0;border:0;min-width:0}.permission-table tbody td::before{content:attr(data-permission-label);font-size:.75rem;line-height:1.3;color:var(--bs-secondary-color);white-space:nowrap}.permission-table .permission-choice{min-width:44px;min-height:44px}.permission-submodule th{padding-left:18px!important}.permission-section{width:100%;line-height:1.35}.permission-table .form-check-input{width:20px;height:20px}}

[data-currency-choice][hidden]{display:none!important}

.modal .btn-close.modal-close{box-sizing:border-box;margin-left:auto;margin-right:0;display:inline-grid;place-items:center;opacity:1!important;filter:none!important;background-image:none!important;background-color:var(--bs-tertiary-bg);color:var(--bs-body-color);border:1px solid var(--bs-border-color);border-radius:8px;width:44px;height:44px;min-width:44px;min-height:44px;padding:8px;flex-shrink:0;cursor:pointer}.modal-close svg{width:20px;height:20px;stroke:currentColor;stroke-width:2.3}.modal-close:hover,.modal-close:active{background-color:#d9f2fb!important;color:#103c55!important;border-color:#8ddbf0!important}.modal-close:focus-visible{outline:3px solid var(--focus);outline-offset:3px}

.usage-help h3{font-size:1rem;font-weight:650;margin:24px 0 10px}.usage-help ol{padding-left:22px}.usage-help li{margin-bottom:12px}.help-button{border:1px solid var(--bs-border-color);background:var(--surface);color:var(--bs-link-color)}.learning-workflow{list-style:none;margin:24px 0 0;padding:0}.learning-workflow>li{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:22px 0;border-top:1px solid var(--bs-border-color)}.learning-workflow h3{font-size:1.06rem;margin:0 0 8px}.learning-workflow p{margin:0 0 10px;color:var(--bs-secondary-color)}.guide-status{font-size:.8rem;color:var(--bs-secondary-color)}.guide-actions{display:flex;gap:8px;flex:none;flex-wrap:wrap;justify-content:flex-end}.learning-glossary details{padding:16px 0;border-bottom:1px solid var(--bs-border-color)}.learning-glossary summary{font-weight:600;cursor:pointer}.learning-glossary p{margin:10px 0 0;color:var(--bs-secondary-color)}@media(max-width:767px){.learning-workflow>li{flex-direction:column;gap:12px}.guide-actions{justify-content:flex-start}.guide-actions .btn{min-height:44px}}

.company-logo-preview[data-image-preview]{width:100px;height:100px;max-width:100px;max-height:100px;object-fit:contain;border:1px solid var(--bs-border-color);border-radius:10px;background:var(--bs-body-bg)}

/* Shared readable task instructions, including nested guidance and narrow screens. */
.help-modal-content{display:flex;flex-direction:column;min-height:0;max-height:100%;overflow:hidden}.help-modal-content>.modal-body{min-height:0;overflow-y:auto;overscroll-behavior:contain}.usage-help{line-height:1.6;overflow-wrap:anywhere}.usage-help>p,.usage-help li,.help-definitions{max-width:72ch}.help-availability{color:var(--bs-secondary-color)}.help-fields,.help-question,.opening-help{padding:14px 0;border-block:1px solid var(--bs-border-color);margin:16px 0}.help-fields summary,.help-question summary,.opening-help>summary{font-weight:600;cursor:pointer;min-height:32px}.help-definitions{margin:18px 0 0}.help-definitions>div{margin-bottom:18px}.help-definitions dt{font-weight:650}.help-definitions dd{margin:6px 0 0}.help-question p{margin:12px 0 0}.guide-topic-index{display:flex;flex-wrap:wrap;gap:12px 22px;margin:24px 0}.guide-topic-index a{min-height:32px;display:inline-flex;align-items:center}.guide-topic{padding:22px 0;border-top:1px solid var(--bs-border-color);scroll-margin-top:100px}.guide-topic>summary{cursor:pointer;font-size:1.1rem;font-weight:650}.guide-topic>summary span{display:block;font-size:.85rem;font-weight:400;color:var(--bs-secondary-color);margin:8px 0 0 19px}.guide-topic>.usage-help{margin-top:24px}.usage-help details:focus-within,.guide-topic:focus-within{outline-color:var(--bs-link-color)}.opening-help>.usage-help{margin-top:18px}
@media(max-width:767px){.guide-topic-index a{min-height:44px}.guide-topic>summary{font-size:1rem}.help-fields summary,.help-question summary,.opening-help>summary{min-height:44px}}

/* Shared HTMX modal wrappers must shrink before their body can own scrolling. */
#recordModal .modal-content>[data-modal-content],#recordModal .modal-content>[data-modal-content]>form:not(.record-form){display:flex;flex:1 1 auto;flex-direction:column;min-width:0;min-height:0;max-height:100%;overflow:hidden;margin:0}
/* Keep section title and help together; actions retain their own right-aligned row. */
.workspace-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:1 1 220px;min-width:0}.workspace-title{min-width:0}.workspace-title .breadcrumb-line{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.workspace-actions:empty{display:none}.workspace-actions{justify-content:flex-end}.workspace-heading>.workspace-title-row>.help-button{flex:none}
@media(max-width:767px){.workspace-heading{gap:12px;align-items:flex-start}.workspace-title-row{flex-basis:100%;gap:10px}.workspace-title{flex:1}.workspace-title h1{font-size:1.45rem;line-height:1.2}.workspace-heading>.workspace-title-row>.help-button{width:44px;height:44px;position:relative;border:0;background:transparent}.workspace-title-row>.help-button::before{content:"";position:absolute;inset:6px;border:1px solid var(--bs-border-color);border-radius:8px;background:var(--surface)}.workspace-title-row>.help-button svg{position:relative;width:18px;height:18px}.workspace-heading .workspace-actions{width:100%;margin-left:auto}.workspace-heading .breadcrumb-line{font-size:.75rem;margin-bottom:4px}}

/* Shared authenticated footer: company left, slogan right; centered stack on phones. */
.workspace-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left}.workspace-footer small{font-size:inherit;margin:0;text-align:right}
@media(max-width:767px){.workspace-footer{flex-direction:column;align-items:center;justify-content:center;gap:3px;text-align:center}.workspace-footer small{text-align:center}}

/* Date shortcuts fit existing report/list forms and retain typed custom boundaries. */
.date-range-shortcuts{grid-column:1/-1;display:flex;gap:16px;align-items:center;flex-wrap:wrap;min-width:0;padding-bottom:14px;border-bottom:1px solid var(--bs-border-color)}.date-range-shortcuts>label{display:block;margin:0;flex:0 1 230px;min-width:0}.date-range-shortcuts>label>span{display:block;font-size:.82rem;font-weight:600;margin-bottom:5px}.date-range-shortcuts select{width:100%;min-width:0}.date-range-shortcuts>p{flex:1 1 240px;font-size:.8rem}
@media(max-width:767px){.date-range-shortcuts{gap:10px;align-items:flex-start}.date-range-shortcuts>label,.date-range-shortcuts>p{flex-basis:100%}}

.query-date-note{grid-column:1/-1;max-width:85ch}

/* Query shortcut strip spans the full width of existing flex filter forms. */
.ledger-filters>.date-range-shortcuts{flex:1 1 100%;width:100%}.ledger-filters>.query-date-note{flex:1 1 100%;width:100%}
