@font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/plus-jakarta-sans-400.ttf") format("truetype"); }
@font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 500; font-display: swap; src: url("fonts/plus-jakarta-sans-500.ttf") format("truetype"); }
@font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 600; font-display: swap; src: url("fonts/plus-jakarta-sans-600.ttf") format("truetype"); }
@font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 700; font-display: swap; src: url("fonts/plus-jakarta-sans-700.ttf") format("truetype"); }

/* Shared screen typography. Logos, icon fonts, code and printable documents retain their own styles. */
:root { --kaira-font-family: "Plus Jakarta Sans", sans-serif; --bs-body-font-family: "Plus Jakarta Sans", sans-serif; --kaira-font-base: 14px; --kaira-font-table: 14px; --kaira-font-title: 24px; --kaira-font-subtitle: 14px; --kaira-line-height: 1.6; }
html body { font-family: var(--kaira-font-family) !important; font-size: 14px !important; font-weight: 400 !important; line-height: 1.6 !important; }
html body :is(button,input,select,textarea,.btn,.table,.card,.modal,.menu,.dropdown-menu,.alert,.badge,.form-control,.form-select,.input-group-text) { font-family: var(--kaira-font-family) !important; }
html body :is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,.modal-title,.card-title) { font-family: var(--kaira-font-family) !important; font-weight: 700 !important; line-height: 1.4 !important; letter-spacing: -.2px !important; }
html body :is(h1,.h1) { font-size: clamp(24px,2.3vw,30px) !important; }
html body :is(h2,.h2) { font-size: clamp(22px,2vw,28px) !important; }
html body :is(h3,.h3) { font-size: 20px !important; }
html body :is(h4,.h4) { font-size: 20px !important; }
html body :is(h5,.h5,.card-title) { font-size: 16px !important; }
html body :is(h6,.h6) { font-size: 14px !important; }
html body .modal-title { font-size: 18px !important; }
html body :is(p,.card-text,.text-body-secondary,.text-muted,.form-text) { font-weight: 400 !important; line-height: 1.6 !important; }
html body :is(strong,b,.fw-bold,.fw-bolder,.fw-semibold) { font-weight: 600 !important; }
html body :is(small,.small,.form-text) { font-size: 12px !important; line-height: 1.6 !important; }
html body :is(label,.form-label) { font-size: 13px !important; font-weight: 500 !important; line-height: 1.5 !important; letter-spacing: 0 !important; text-transform: none !important; }
html body :is(input,select,textarea,.form-control,.form-select,.input-group-text) { font-size: 14px !important; font-weight: 400 !important; line-height: 1.5 !important; }
html body :is(button,.btn,.page-link,.dropdown-item) { font-size: 13px !important; font-weight: 600 !important; line-height: 1.5 !important; letter-spacing: 0 !important; }
html body :is(th,.table th,.table-sort) { font-size: 12px !important; font-weight: 600 !important; line-height: 1.5 !important; text-transform: none !important; letter-spacing: 0 !important; }
html body :is(td,.table td) { font-size: 14px !important; font-weight: 400 !important; line-height: 1.6 !important; }
html body :is(.badge,.status-badge) { font-size: 12px !important; font-weight: 500 !important; line-height: 1.5 !important; letter-spacing: 0 !important; }
html body .menu-link { font-size: 14px !important; font-weight: 500 !important; }
html body .menu-item.active > .menu-link { font-weight: 600 !important; }
html body :is(.kaira-bottom-nav-item,.kaira-bottom-submenu-item) { font-size: 12px !important; font-weight: 500 !important; }
html body :is(.finance-kpi .value,.kd-kpi-number,.guard-priority-value) { font-size: clamp(24px,2vw,28px) !important; font-weight: 700 !important; line-height: 1.4 !important; font-variant-numeric: tabular-nums; }
html body :is(.finance-kpi .label,.kd-kpi-label,.guard-priority-label) { font-size: 13px !important; font-weight: 500 !important; text-transform: none !important; letter-spacing: 0 !important; }
html body :is(.finance-kpi .meta,.kd-kpi-sub,.guard-priority-note,.guard-task-meta,.guard-timeline-meta) { font-size: 12px !important; font-weight: 400 !important; line-height: 1.6 !important; }
html body :is(.guard-section-head h3,.kd-sh h5,.finance-work-card h5) { font-size: 16px !important; font-weight: 700 !important; }
html body :is(.kd-hero-left h4,.guard-today-head h2,.finance-command-title) { font-size: clamp(24px,2.3vw,30px) !important; font-weight: 700 !important; }
@media (max-width: 767px) { html body :is(input,select,textarea,.form-control,.form-select) { font-size: 16px !important; } }

/* Unified table actions: outline at rest, accent on interaction. */
html body:is(#zuperkos-app,[class]) table tbody td :is(.btn,.table-action-btn) {
 --table-accent:#2454db; --table-border:#9eb3f4;
 border:1px solid var(--table-border)!important; border-radius:8px!important;
 color:var(--table-accent)!important; background:transparent!important; box-shadow:none!important;
 min-width:0!important; width:auto!important; height:auto!important; min-height:32px!important;
 padding:7px 11px!important; font-size:12px!important; font-weight:500!important; line-height:1.4!important;
 white-space:nowrap!important; text-transform:none!important; gap:6px!important;
 transform:none!important; transition:background-color .15s,color .15s,border-color .15s!important;
}
html body:is(#zuperkos-app,[class]) table tbody td :is(.btn,.table-action-btn):is(.btn-danger,.btn-outline-danger,.table-action-btn--delete,.btn-table-action.delete) { --table-accent:#c83548; --table-border:#eaa4ac; }
html body:is(#zuperkos-app,[class]) table tbody td :is(.btn,.table-action-btn):is(.btn-success,.btn-outline-success,.table-action-btn--pay,.table-action-btn--whatsapp,.table-action-btn--receipt,.btn-table-action.pay,.btn-table-action.whatsapp) { --table-accent:#16804a; --table-border:#8fcca9; }
html body:is(#zuperkos-app,[class]) table tbody td :is(.btn,.table-action-btn):is(.btn-warning,.btn-outline-warning,.table-action-btn--invoice,.btn-table-action.receipt) { --table-accent:#996000; --table-border:#ddbe87; }
html body:is(#zuperkos-app,[class]) table tbody td :is(.btn,.table-action-btn):is(.btn-info,.btn-outline-info,.table-action-btn--link) { --table-accent:#087c99; --table-border:#86bdcc; }
html body:is(#zuperkos-app,[class]) table tbody td :is(.btn,.table-action-btn):is(.btn-secondary,.btn-outline-secondary) { --table-accent:#53657d; --table-border:#b6c1cf; }
html body:is(#zuperkos-app,[class]) table tbody td :is(.btn,.table-action-btn):is(.table-action-btn--edit,.btn-table-action.edit) { --table-accent:#7150b8; --table-border:#b8a7dd; }
html body:is(#zuperkos-app,[class]) table tbody td :is(.btn,.table-action-btn):is(:hover,:focus-visible):not(:disabled):not(.disabled) { color:#fff!important; background:var(--table-accent)!important; border-color:var(--table-accent)!important; }
html body:is(#zuperkos-app,[class]) table tbody td :is(.btn,.table-action-btn):focus-visible { outline:3px solid #b8ccf5!important; outline-offset:2px; }
html body:is(#zuperkos-app,[class]) table tbody td :is(.btn,.table-action-btn):is(:disabled,.disabled) { opacity:.45!important; cursor:not-allowed; }
html body:is(#zuperkos-app,[class]) table tbody td .table-action-icon { display:none!important; }
html body:is(#zuperkos-app,[class]) table tbody td .table-action-label { display:inline!important; font-size:inherit!important; }

/* Let table layout reserve space for the full action group. */
html body:is(#zuperkos-app,[class]) .table-responsive { overflow-x:auto!important; }
html body:is(#zuperkos-app,[class]) .table-responsive table.table { table-layout:auto!important; width:100%!important; min-width:100%!important; }
html body:is(#zuperkos-app,[class]) .table-responsive table.table :is(th,td) { width:auto!important; }
html body:is(#zuperkos-app,[class]) .table-responsive table.table td.zk-action-cell { white-space:nowrap!important; }
