/* Shared system font: no remote requests; scoped to this plugin UI. */
:is([class^="knpos-"], [class*=" knpos-"]):not(.dashicons):not(.dashicons-before):not(.fa):not(.fas):not(.far):not(.fab):not(.material-icons):not(.material-symbols-outlined),
:is([class^="knpos-"], [class*=" knpos-"]) *:not(.dashicons):not(.dashicons-before):not(.fa):not(.fas):not(.far):not(.fab):not(.material-icons):not(.material-symbols-outlined) {
  font-family: Arial, Helvetica, sans-serif !important;
}

/* Stable interface baseline; data, API and calculations are untouched. */
/* Use supported static Arial weights for text outside native buttons too. */
:is([class^="knpos-"], [class*=" knpos-"]) :is(b,strong) { font-weight:700 !important; font-style:normal !important; }
.knpos-appt-settings-grouped :is(.knpos-appt-setting-tile,.knpos-appt-setting-toggle) { font-size:14px !important; font-weight:400 !important; line-height:1.45 !important; }
.knpos-appt-settings-grouped :is(.knpos-appt-setting-tile,.knpos-appt-setting-toggle) small { font-size:12px !important; font-weight:400 !important; line-height:1.45 !important; }
.knpos-appt-settings-save .knpos-btn { font-weight:700 !important; }
.knpos-root { font-size:16px; line-height:1.45; }
.knpos-root .knpos-panel[data-panel="settings"] :is(input,select,textarea,button) { font-size:14px; line-height:1.4; }
.knpos-root .knpos-card > h3 { font-size:18px; font-weight:700; line-height:1.35; }
.knpos-root .knpos-row { min-width:0; flex-wrap:wrap; }
.knpos-root .knpos-input { box-sizing:border-box; min-width:0; max-width:100%; }
.knpos-root .knpos-ssection label { font-size:14px !important; font-weight:600 !important; flex-wrap:nowrap !important; align-items:flex-start !important; line-height:1.45; }
.knpos-root .knpos-ssection label span { font-size:14px !important; font-weight:600 !important; min-width:0; flex:1 1 auto; overflow-wrap:break-word; }
.knpos-root :is(.knpos-ssection,.knpos-account-settings) input[type="checkbox"] { width:18px !important; height:18px !important; min-width:18px !important; flex:0 0 18px !important; margin:2px 0 0 !important; }
.knpos-root .knpos-ssection :is(.kn_hint,.knpos-hint) { font-size:12px; line-height:1.5; }
.knpos-root .knpos-ssection .kn_td_label { font-size:14px; font-weight:600; color:#475569; margin-bottom:5px; }
.knpos-root .knpos-settings-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-items:start; }
.knpos-root .knpos-settings-group { min-width:0; padding:16px !important; border:1px solid #dfe5ed !important; border-radius:12px !important; background:#fff !important; margin-bottom:16px; }
.knpos-root .knpos-settings-groups > .knpos-settings-group { margin:0; height:auto; }
.knpos-root .knpos-settings-group--wide { grid-column:1 / -1; }
.knpos-root .knpos-settings-title { margin:0 0 14px; padding:0 0 10px; border-bottom:1px solid #e8edf3; font-size:16px; line-height:1.4; font-weight:700; color:#172033; }
.knpos-root .knpos-settings-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; align-items:start; }
.knpos-root .knpos-settings-fields--single { grid-template-columns:minmax(0,1fr); }
.knpos-root .knpos-settings-fields > * { min-width:0; }
.knpos-root .knpos-settings-fields .knpos-input { width:100%; max-width:none !important; }
.knpos-root .knpos-ui-field { display:flex; flex-direction:column; gap:5px; min-width:0; flex:1 1 160px; }
.knpos-root .knpos-ui-field-label { display:block; font-size:13px !important; font-weight:600; color:#475569; margin:0; }
.knpos-root .knpos-ui-field > .knpos-input { width:100% !important; max-width:none !important; }
.knpos-root .knpos-account-settings > .knpos-card > .knpos-grid { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
.knpos-root .knpos-account-settings .knpos-settings-group > div:first-child { font-size:16px; font-weight:700 !important; line-height:1.4; }
.knpos-root .knpos-ssection[data-secwrap="theme"] :is(input[type="file"],input[placeholder="URL ảnh nền"]) { min-width:0 !important; max-width:100% !important; }
.knpos-root .kn-staff-addline { grid-template-columns:repeat(3,minmax(0,1fr)) auto; }
.knpos-root .kn-staff-add-more { display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)) !important; align-items:start; }
.knpos-root .kn-staff-add-more label { font-size:14px !important; }
.knpos-root .knpos-appt-form label { font-size:14px !important; font-weight:600 !important; line-height:1.45 !important; min-width:0; }
.knpos-root .knpos-appt-section-title { font-size:16px; font-weight:700; border-bottom:1px solid #e2e8f0; padding-bottom:8px; margin-top:18px; }
.knpos-root .knpos-appt-form :is(input,select,textarea) { font-size:14px !important; box-sizing:border-box; max-width:100%; }
@media(max-width:960px) { .knpos-root .knpos-settings-groups, .knpos-root .knpos-account-settings > .knpos-card > .knpos-grid { grid-template-columns:minmax(0,1fr); } }
@media(max-width:600px) { .knpos-root .knpos-settings-fields, .knpos-root .kn-staff-add-more { grid-template-columns:minmax(0,1fr) !important; } .knpos-root .kn-staff-addline { grid-template-columns:repeat(2,minmax(0,1fr)); } .knpos-root .knpos-settings-group { padding:12px !important; } }
@media(max-width:480px) {
  .knpos-root[data-app="pos"] .knpos-header { gap:6px; padding-left:8px; padding-right:8px; }
  .knpos-root[data-app="pos"] .knpos-brand { flex:1 1 auto; min-width:0; gap:6px; }
  .knpos-root[data-app="pos"] .knpos-topdate { white-space:nowrap; font-size:11px; }
  .knpos-root[data-app="pos"] .knpos-online { white-space:nowrap; font-size:11px; padding:4px 6px; }
  .knpos-root[data-app="pos"] .knpos-brandname { font-size:12px; min-width:0; max-width:90px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .knpos-root[data-app="pos"] .knpos-logout { white-space:nowrap; padding:6px 8px; font-size:12px; }
  .knpos-root .knpos-panel[data-panel="settings"] :is(input,select,textarea):not([type="checkbox"]):not([type="range"]) { font-size:16px; }
}

/* Static Arial weights, including headings and detached dialog text. */
:is([class^="knpos-"], [class*=" knpos-"]) :is(b,strong,h1,h2,h3,h4,h5,h6) { font-family:Arial,Helvetica,sans-serif !important; font-weight:700 !important; }
:is([class^="knpos-"], [class*=" knpos-"]) :is(button,input,select,textarea) { font-family:Arial,Helvetica,sans-serif !important; }
