/* ============================================================
   Bar POS — core
   Self-hosted type + reset + shared atoms.
   Only the faces the Atelier design uses are loaded here,
   so the app stays lean. NO external CDNs.
   ============================================================ */

/* Display face = Georgia (owner-approved rendering of samples row 4, which is
   Georgia fallback for a CORS-blocked Bauer Bodoni — NOT true Bodoni).
   Gelasio = self-hosted metric-compatible Georgia clone (variable 400–700,
   real bold) for devices without Georgia; only downloaded when needed. */
@font-face{font-family:'Gelasio';font-style:normal;font-weight:400 700;font-display:swap;
  src:url('../fonts/gelasio-vf.woff2?v=210') format('woff2');}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:100 1000;font-display:swap;
  src:url('../fonts/dm-sans-latin.woff2?v=210') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;
  src:url('../fonts/inter-latin.woff2?v=210') format('woff2');}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;line-height:1.5}
img,svg{display:block;max-width:100%}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;-webkit-tap-highlight-color:transparent}
input{font:inherit}
ul,ol{list-style:none}
a{color:inherit;text-decoration:none}

/* tabular figures helper — prices stay aligned */
.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}

/* nicer thin scrollbars; theme recolors via --sb */
*{scrollbar-width:thin}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{border-radius:99px;border:2px solid transparent;background-clip:content-box;
  background-color:var(--sb,rgba(128,128,128,.32))}

/* accessible focus ring (theme may override --focus) */
:focus-visible{outline:2px solid var(--focus,#8a93a6);outline-offset:2px;border-radius:6px}

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* company logo (from the main rvbtsystem) replaces the monogram seal */
.seal--img{background:none!important;border:none!important;box-shadow:none!important;padding:0}
.seal--img img{width:100%;height:100%;object-fit:contain;display:block}

/* ---- touch baseline (all Bar pages) ----
   Text inputs never below 16px on touch / handheld widths (iOS zooms the page on
   focus otherwise). Kept at element-level specificity (:where) on purpose: it only
   lifts inputs that inherit their size — a page rule that sets its own font-size
   carries its own ≤900px / coarse-pointer override. */
@media (any-pointer:coarse),(max-width:900px){
  input:where(:not([type="checkbox"]):not([type="radio"]):not([type="range"])),select,textarea{font-size:16px}
}
/* small table/action buttons: ≥44px tall hit area on touch without changing their drawn size */
@media (any-pointer:coarse){
  .mini{position:relative}
  .mini::after{content:"";position:absolute;inset:-6px -2px}
}

/* ============================================================
   Password fields (assets/js/pwfield.js) — the eye, the rule checklist.
   Shared by the sign-in page, the register and the back office.
   ============================================================ */
.pwf{position:relative;display:flex;min-width:0}
.pwf > input{flex:1 1 auto;min-width:0;width:100%;padding-right:48px !important}
.pwf > input::-ms-reveal,.pwf > input::-ms-clear{display:none}
.pwf__eye{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:38px;height:38px;display:grid;place-items:center;padding:0;border:0;background:none;border-radius:10px;
  color:var(--ink-3,#A99B86);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:color .12s ease,background .12s ease}
.pwf__eye svg{width:20px;height:20px;display:block}
.pwf__eye:hover,.pwf__eye[aria-pressed="true"]{color:var(--brass-deep,#8A5A2B);background:var(--brass-tint,#F1E7D6)}
.pwf__eye:focus-visible{outline:2px solid var(--brass,#B08D57);outline-offset:1px}
.pwf.is-good > input{border-color:#9DBF8F}
.pwrules{margin-top:8px;padding:11px 13px 12px;border:1px solid var(--line,#E9E0CE);border-radius:12px;background:var(--ivory-2,#FBF7EF)}
.pwrules[hidden]{display:none}
.pwrules__top{display:flex;align-items:center;gap:10px;margin-bottom:9px;min-height:16px}
.pwrules__meter{display:flex;gap:4px;flex:1}
.pwrules__meter i{flex:1;height:5px;border-radius:99px;background:var(--line,#E9E0CE);transition:background .15s ease}
.pwrules[data-score="1"] .pwrules__meter i:nth-child(-n+1){background:#B4472F}
.pwrules[data-score="2"] .pwrules__meter i:nth-child(-n+2){background:#C8643C}
.pwrules[data-score="3"] .pwrules__meter i:nth-child(-n+3){background:#C8901A}
.pwrules[data-score="4"] .pwrules__meter i:nth-child(-n+4){background:#8FA85C}
.pwrules[data-score="5"] .pwrules__meter i{background:#2F7D3B}
.pwrules__lbl{flex:none;min-width:84px;text-align:right;font-size:11.5px;font-weight:700;color:var(--ink-2,#6F6457);text-transform:none;letter-spacing:0}
.pwrules[data-score="5"] .pwrules__lbl{color:#2F7D3B}
.pwrules ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px}
.pwrules li{display:flex;align-items:center;gap:8px;font-size:12.5px;line-height:1.3;color:var(--ink-2,#6F6457);text-transform:none;letter-spacing:0;font-weight:400}
.pwrules__ico{flex:none;width:16px;height:16px;border-radius:50%;display:grid;place-items:center;border:1.5px solid #D5C8B0;color:transparent;transition:background .15s ease,border-color .15s ease,color .15s ease}
.pwrules__ico svg{width:10px;height:10px;display:block}
.pwrules li.is-ok{color:#2F7D3B}
.pwrules li.is-ok .pwrules__ico{background:#2F7D3B;border-color:#2F7D3B;color:#fff}
.pwf__suggest{align-self:flex-start;margin-top:8px;padding:0;border:0;background:none;font:inherit;font-size:12.5px;font-weight:600;color:var(--brass-deep,#8A5A2B);cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-transform:none;letter-spacing:0}
.pwf__suggest:hover{color:var(--ink,#2B2521)}
.pwf__suggest:focus-visible{outline:2px solid var(--brass,#B08D57);outline-offset:3px;border-radius:4px}
@media(max-width:520px){.pwrules ul{grid-template-columns:minmax(0,1fr)}}
@media(any-pointer:coarse){.pwf__eye{width:42px;height:42px}}

/* ---------- profile pictures: a photo inside any initials chip ---------- */
.ava-img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.has-ava{padding:0 !important;overflow:hidden;background:var(--paper,#FFFDF8) !important}
