/* Wider readable layout */
.site-main > .container{
  max-width:1280px;
}

/* ——— Readable selects & inputs (POS + Reports) ——— */
.input-readable,
select.select-readable{
  font-size:1rem;
  line-height:1.45;
  padding:0.85rem 1rem;
  min-height:3.15rem;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(12,12,18,.92);
  color:var(--text);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
select.select-readable{
  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;
  background-image:
    linear-gradient(45deg, transparent 50%, rgba(255,45,45,.75) 50%),
    linear-gradient(135deg, rgba(255,45,45,.75) 50%, transparent 50%);
  background-position:
    calc(100% - 22px) calc(50% - 3px),
    calc(100% - 16px) calc(50% - 3px);
  background-size:6px 6px,6px 6px;
  background-repeat:no-repeat;
  padding-right:2.5rem;
}
select.select-readable:focus{
  border-color:rgba(255,45,45,.55);
  box-shadow:0 0 0 4px var(--focus);
  outline:none;
}
select.select-readable option,
select.select-readable optgroup{
  font-size:1rem;
  line-height:1.55;
  padding:0.6rem 0.5rem;
  background:#14141c;
  color:var(--text);
}
.input-readable--narrow{
  max-width:6.25rem;
  min-height:2.85rem;
  padding:0.55rem 0.65rem;
  text-align:center;
}

/* Narrow table qty (POS cart + receipt editor): spinners / line-height can hide digits on Chromium */
.pos-table input[type="number"].input-readable,
.rep-table input[type="number"].input-readable{
  width:100%;
  max-width:6.25rem;
  margin:0;
  box-sizing:border-box;
  color:var(--text);
  -webkit-text-fill-color:var(--text);
  caret-color:var(--text);
  color-scheme:dark;
  line-height:normal;
  min-height:2.85rem;
  padding-top:.5rem;
  padding-bottom:.5rem;
  -moz-appearance:textfield;
  appearance:textfield;
}
.pos-table input[type="number"].input-readable::-webkit-outer-spin-button,
.pos-table input[type="number"].input-readable::-webkit-inner-spin-button,
.rep-table input[type="number"].input-readable::-webkit-outer-spin-button,
.rep-table input[type="number"].input-readable::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}

/* ——— POS ——— */
.pos-flash{margin-bottom:1rem;}

.pos-page-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
  flex-wrap:wrap;
  margin-bottom:1rem;
}
.pos-title{
  margin:0;
  font-size:clamp(1.5rem, 4vw, 2rem);
  font-weight:850;
  letter-spacing:.03em;
}
.pos-sub{margin:0.35rem 0 0;font-size:.95rem;color:var(--muted);max-width:42rem;line-height:1.5;}

.pos-shell{
  display:grid;
  gap:1rem;
  grid-template-columns:1fr;
  align-items:stretch;
}
/* Tablet landscape + desktop: same 3-column POS (phones & small tablets stack below this) */
@media (min-width: 768px){
  .pos-shell{
    gap:.72rem;
    grid-template-columns:minmax(0,1fr) minmax(0,1.08fr) minmax(188px,min(300px,32vw));
  }
}

.pos-panel{
  border-radius:18px;
  border:1px solid rgba(255,255,255,.12);
  background:linear-gradient(165deg, rgba(22,22,34,.92), rgba(10,10,14,.82));
  box-shadow:
    var(--shadow),
    inset 0 1px 0 rgba(255,255,255,.06);
}
.pos-panel-head{
  padding:1rem 1.15rem .35rem;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.pos-panel-head h2{
  margin:0;
  font-size:1rem;
  font-weight:780;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:rgba(255,235,235,.92);
}
.pos-hint{
  display:block;
  margin-top:.35rem;
  font-size:.8rem;
  color:var(--muted);
}

.pos-add{padding-bottom:1.1rem;}
.pos-search-row{
  padding:1rem 1.15rem 0;
}
.pos-search-meta{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:.75rem;
  flex-wrap:wrap;
}
.pos-match-count{
  font-size:.8rem;
  color:var(--muted);
}

/* Search + selectable results (single-step product pick) */
.pos-picker{
  padding:1rem 1.15rem .25rem;
}
.pos-results{
  margin-top:.65rem;
  max-height:min(42vh, 320px);
  overflow:auto;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(0,0,0,.28);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.pos-results-status{
  margin:0;
  padding:.65rem .85rem .45rem;
  font-size:.8rem;
  color:var(--muted);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.pos-hit{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.2rem;
  width:100%;
  text-align:left;
  padding:.75rem .85rem;
  min-height:3rem;
  border:none;
  border-bottom:1px solid rgba(255,255,255,.06);
  background:transparent;
  color:var(--text);
  cursor:pointer;
  font:inherit;
}
.pos-hit:last-child{border-bottom:none}
.pos-hit:hover{
  background:rgba(255,45,45,.08);
}
.pos-hit--kbd{
  outline:2px solid rgba(255,45,45,.45);
  outline-offset:-2px;
  background:rgba(255,45,45,.10);
}
.pos-hit--selected{
  box-shadow:inset 3px 0 0 var(--red);
  background:rgba(255,45,45,.06);
}
.pos-hit--oos{
  opacity:.55;
  cursor:not-allowed;
}
.pos-hit-main{
  font-weight:760;
  line-height:1.25;
}
.pos-hit-meta{
  font-size:.82rem;
  color:var(--muted);
}

.pos-selected-bar{
  margin-top:.75rem;
  padding:.65rem .85rem;
  border-radius:12px;
  border:1px solid rgba(255,45,45,.28);
  background:rgba(255,45,45,.07);
}
.pos-selected-inner{
  display:flex;
  align-items:center;
  gap:.65rem;
  flex-wrap:wrap;
}
.pos-selected-label{
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:rgba(255,220,220,.85);
}
#pos-selected-title{
  flex:1;
  min-width:0;
}

.pos-add-grid{
  padding:1.1rem 1.15rem 0;
  display:grid;
  gap:1rem;
  grid-template-columns:minmax(0,1fr) 120px 160px;
  align-items:end;
}
@media (max-width:720px){
  .pos-add-grid{grid-template-columns:1fr;}
}
.pos-add-grid--compact{
  padding:1rem 1.15rem 1.1rem;
  grid-template-columns:minmax(0,140px) minmax(0,1fr);
  align-items:end;
}
@media (max-width:720px){
  .pos-add-grid--compact{grid-template-columns:1fr;}
}
.pos-field label{
  margin-bottom:.4rem;
  color:rgba(245,245,247,.94);
}
.pos-label-spacer{display:block;line-height:0;}

.pos-col-lines,
.pos-col-pay{
  display:flex;
  flex-direction:column;
  min-height:100%;
}
.pos-cart-body{padding:1rem 1.15rem;flex:1;}
.pos-empty{
  text-align:center;
  padding:2.5rem .75rem;
  color:var(--muted);
  border:1px dashed rgba(255,255,255,.16);
  border-radius:14px;
  font-size:.95rem;
}
/* display:flex on .pos-empty (compact layout) beats the default [hidden] rule — force hide */
.pos-cart-body .pos-empty[hidden]{
  display:none !important;
}

.pos-lines-wrap{overflow-x:auto;}
.pos-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  font-size:.92rem;
}
.pos-table thead th{
  text-align:left;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--muted);
  padding:.5rem .35rem .75rem 0;
  border-bottom:1px solid rgba(255,255,255,.1);
}
.pos-table tbody td{
  padding:.65rem .35rem .65rem 0;
  vertical-align:middle;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.pos-td-name{font-weight:650;}

.btn-icon{
  width:38px;height:38px;
  padding:0;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(0,0,0,.35);
  color:var(--text);
  font-size:1.35rem;
  line-height:1;
  cursor:pointer;
  transition:background .15s ease,border-color .15s ease;
}
.btn-icon:hover{
  border-color:rgba(255,45,45,.35);
  background:rgba(255,45,45,.14);
}

.pos-payment{
  padding:.75rem 1.15rem 0;
}
.pos-pay-grid{
  display:grid;
  gap:.65rem .75rem;
  grid-template-columns:1fr;
}
.pos-pay-output{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:.75rem;
  padding:.65rem .85rem;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(0,0,0,.22);
}
.pos-pay-output-label{
  font-size:.82rem;
  color:var(--muted);
  font-weight:700;
}
.pos-pay-change{
  font-size:1.15rem;
  font-weight:900;
}
.pos-change-note{
  margin:0;
  font-size:.88rem;
  min-height:1.25rem;
}
.pos-change-short{color:#ffbdbd;font-weight:700;}

.pos-total-strip{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  padding:.85rem 1.15rem;
  margin:0 .5rem .5rem;
  border-radius:14px;
  background:linear-gradient(90deg, rgba(255,45,45,.15), rgba(196,0,0,.06));
  border:1px solid rgba(255,45,45,.22);
}
.pos-total-label{
  font-weight:760;
  text-transform:uppercase;
  letter-spacing:.17em;
  font-size:.75rem;
  color:rgba(255,216,216,.92);
}
.pos-total-value{
  font-size:1.45rem;
  font-weight:900;
}

.pos-checkout{padding:0 1.15rem 1.15rem;}
.btn-checkout{
  width:100%;
  min-height:3.35rem;
  font-size:1.05rem;
  border-radius:14px;
}
.btn-checkout:disabled{
  opacity:.42;
  cursor:not-allowed;
}
.btn-add-line{
  width:100%;
  min-height:3.15rem;
  border-radius:14px;
}

/* Hidden scrollbar: still scrollable with touch/trackpad/wheel */
.pos-no-scrollbar{
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.pos-no-scrollbar::-webkit-scrollbar{width:0;height:0;display:none;}

/* ——— POS: lock to viewport, no window scroll; hidden scrollbars in lists ——— */
@media (hover:hover){
  .pos-layout-compact .pos-hit:hover{background:rgba(255,45,45,.06);}
}

@supports selector(:has(.pos-layout-compact)){
  html:has(.pos-layout-compact),
  body:has(.pos-layout-compact){
    height:100%;
    overflow:hidden;
  }
  body:has(.pos-layout-compact){
    display:flex;
    flex-direction:column;
    min-height:100dvh;
    min-height:100svh;
  }
  body:has(.pos-layout-compact) .site-header{
    flex-shrink:0;
  }
  body:has(.pos-layout-compact) .site-main{
    flex:1 1 0;
    min-height:0;
    overflow:hidden;
    padding-top:max(4px, env(safe-area-inset-top, 0px));
    padding-bottom:0;
  }
  body:has(.pos-layout-compact) .site-footer{
    flex-shrink:0;
  }
  body:has(.pos-layout-compact) .site-main > .container{
    padding-left:max(10px, env(safe-area-inset-left));
    padding-right:max(10px, env(safe-area-inset-right));
    padding-top:4px;
    padding-bottom:max(6px, env(safe-area-inset-bottom));
    height:100%;
    max-width:100%;
    display:flex;
    flex-direction:column;
    min-height:0;
    overflow:hidden;
    box-sizing:border-box;
  }

  body:has(.pos-layout-compact) .pos-layout-compact{
    flex:1 1 0;
    min-height:0;
    display:flex;
    flex-direction:column;
    overflow:hidden;
    gap:.35rem;
  }

  body:has(.pos-layout-compact) .pos-page-head,
  body:has(.pos-layout-compact) .pos-flash{
    flex-shrink:0;
  }
  body:has(.pos-layout-compact) .pos-flash{
    max-height:4.75rem;
    overflow-y:auto;
    overscroll-behavior:contain;
  }

  body:has(.pos-layout-compact) .pos-shell{
    flex:1 1 0;
    min-height:0;
    overflow:hidden;
    display:grid;
    gap:.65rem;
    grid-template-columns:1fr;
    grid-template-rows:minmax(0,1fr) minmax(0,1fr) minmax(0,auto);
    align-items:stretch;
  }

  @media (min-width:768px){
    body:has(.pos-layout-compact) .pos-shell{
      grid-template-columns:minmax(0,1fr) minmax(0,1.08fr) minmax(188px,min(300px,32vw));
      grid-template-rows:minmax(0,1fr);
      gap:.5rem;
    }
  }

  /* Narrow phones: cart then checkout, then product search */
  @media (max-width:560px){
    body:has(.pos-layout-compact) .pos-shell .pos-col-lines{order:-2;}
    body:has(.pos-layout-compact) .pos-shell .pos-col-pay{order:-1;}
  }

  body:has(.pos-layout-compact) .pos-panel{
    min-height:0;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    border-radius:14px;
    box-shadow:0 10px 24px rgba(0,0,0,.42);
  }

  body:has(.pos-layout-compact) .pos-panel .pos-panel-head{
    flex-shrink:0;
  }

  /* Add line panel: search fills remaining column height */
  body:has(.pos-layout-compact) .pos-panel.pos-add{
    flex:1 1 0;
  }
  body:has(.pos-layout-compact) .pos-picker{
    flex:1 1 0;
    min-height:0;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    padding:.55rem .75rem .1rem;
  }
  body:has(.pos-layout-compact) .pos-picker > .pos-field:first-of-type{
    flex-shrink:0;
  }

  body:has(.pos-layout-compact) #pos-results{
    flex:1 1 0;
    min-height:0;
    max-height:none;
    margin-top:.4rem;
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }

  body:has(.pos-layout-compact) .pos-selected-bar{
    flex-shrink:0;
    margin-top:.5rem;
  }

  body:has(.pos-layout-compact) .pos-add-grid--compact{
    flex-shrink:0;
    padding:.55rem .75rem .7rem;
  }

  /* Lines column: table scroll fills panel */
  body:has(.pos-layout-compact) .pos-panel.pos-col-lines{
    flex:1 1 0;
  }
  body:has(.pos-layout-compact) .pos-panel.pos-col-pay{
    min-height:0;
  }
  body:has(.pos-layout-compact) .pos-cart-body{
    flex:1 1 0;
    min-height:0;
    padding:.55rem .75rem;
    overflow:hidden;
    display:flex;
    flex-direction:column;
  }

  body:has(.pos-layout-compact) .pos-cart-body .pos-empty{
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
  }

  body:has(.pos-layout-compact) .pos-lines-wrap{
    flex:1 1 0;
    min-height:0;
    overflow-x:auto;
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }

  body:has(.pos-layout-compact) .pos-total-strip{
    flex-shrink:0;
  }
  body:has(.pos-layout-compact) .pos-payment{
    flex-shrink:0;
  }
  body:has(.pos-layout-compact) .pos-checkout{
    flex-shrink:0;
  }

  body:has(.pos-layout-compact) .pos-table thead th{
    position:sticky;
    top:0;
    z-index:1;
    background:rgba(12,12,18,.94);
    backdrop-filter:blur(8px);
  }

  @media (min-width:768px){
    body:has(.pos-layout-compact) .pos-picker{padding:.42rem .62rem .05rem;}
    body:has(.pos-layout-compact) .pos-add-grid--compact{padding:.42rem .62rem .5rem;}
    body:has(.pos-layout-compact) .pos-cart-body{padding:.42rem .55rem;}
    body:has(.pos-layout-compact) #pos-results{margin-top:.35rem;}
    body:has(.pos-layout-compact) .pos-selected-bar{margin-top:.42rem;}
  }
}

.pos-layout-compact .pos-shell{
  gap:.75rem;
  align-items:stretch;
}

/* Narrow phones: sale · checkout · search (fallback when :has not applied) */
@media (max-width:560px){
  .pos-layout-compact .pos-shell .pos-col-lines{order:-2;}
  .pos-layout-compact .pos-shell .pos-col-pay{order:-1;}
}

.pos-layout-compact .pos-panel{
  border-radius:14px;
  box-shadow:0 10px 24px rgba(0,0,0,.42);
}

.pos-layout-compact .pos-page-head{margin-bottom:.55rem;}
.pos-layout-compact .pos-title{font-size:clamp(1.2rem, 5vw, 1.75rem);}
.pos-layout-compact .pos-sub{
  font-size:.84rem;
  line-height:1.35;
  margin-top:.22rem;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.pos-layout-compact .pos-panel-head{padding:.65rem .8rem .2rem;}
.pos-layout-compact .pos-picker{padding:.65rem .8rem .1rem;}

/* Fallback sizing when :has not applied (older browsers): keep modest capped panes */
@supports not selector(:has(.pos-layout-compact)){
  .pos-layout-compact .pos-results{margin-top:.45rem;}
}

.pos-layout-compact .pos-hit{
  min-height:2.85rem;
  padding:.52rem .7rem;
  font-size:.94rem;
}
.pos-layout-compact .pos-hit-meta{font-size:.78rem;line-height:1.25;}

.pos-layout-compact .pos-selected-bar{
  margin-top:.55rem;
  padding:.5rem .65rem;
}
.pos-layout-compact .pos-selected-inner{gap:.45rem;}
.pos-layout-compact #pos-clear-selection{font-size:.88rem;padding:.45rem .6rem;}

.pos-layout-compact .pos-add-grid--compact{
  gap:.6rem;
}
.pos-layout-compact .pos-payment{padding:.55rem .8rem 0;}

.pos-layout-compact .pos-total-strip{margin:0 .4rem .35rem;padding:.62rem .8rem;}
.pos-layout-compact .pos-total-value{font-size:1.2rem;}
.pos-layout-compact .pos-checkout{padding:0 .8rem .85rem;}

.pos-layout-compact .pos-cart-body{padding:.65rem .8rem;}

.pos-layout-compact .pos-pay-change{font-size:1rem;}
.pos-layout-compact .btn-checkout{min-height:2.85rem;font-size:.96rem;}
.pos-layout-compact .btn-add-line{min-height:2.85rem;font-size:.96rem;}

/* Tablet + desktop POS: tighter density + 3-column shell (see .pos-shell min-width:768px) */
@media (min-width:768px){
  .pos-layout-compact .pos-shell{gap:.55rem;}
  .pos-layout-compact .pos-page-head{margin-bottom:.45rem;}
  .pos-layout-compact .pos-flash{margin-bottom:.55rem;}
  .pos-layout-compact .pos-panel-head{padding:.48rem .62rem .12rem;}
  .pos-layout-compact .pos-panel-head h2{font-size:.82rem;letter-spacing:.1em;}
  .pos-layout-compact .pos-hint{font-size:.7rem;margin-top:.18rem;line-height:1.3;}
  .pos-layout-compact .pos-picker{padding:.42rem .62rem .05rem;}
  .pos-layout-compact .pos-match-count{font-size:.72rem;}
  .pos-layout-compact .pos-field label{font-size:.8rem;margin-bottom:.28rem;}
  .pos-layout-compact .pos-search-meta label{font-size:.8rem;}
  .pos-layout-compact .input-readable{
    font-size:.88rem;
    line-height:1.4;
    padding:.52rem .7rem;
    min-height:2.55rem;
    border-radius:12px;
  }
  .pos-layout-compact .pos-help-pick-inline{display:none !important;}
  .pos-layout-compact .pos-results{margin-top:.35rem;border-radius:12px;}
  .pos-layout-compact .pos-results-status{font-size:.72rem;padding:.45rem .65rem .35rem;}
  .pos-layout-compact .pos-hit{min-height:2.42rem;padding:.38rem .5rem;font-size:.84rem;}
  .pos-layout-compact .pos-hit-meta{font-size:.7rem;line-height:1.2;}
  .pos-layout-compact .pos-selected-bar{margin-top:.42rem;padding:.42rem .55rem;}
  .pos-layout-compact .pos-selected-inner{gap:.38rem;}
  .pos-layout-compact .pos-add-grid--compact{padding:.42rem .62rem .5rem;gap:.45rem;}
  .pos-layout-compact .pos-cart-body{padding:.42rem .55rem;}
  .pos-layout-compact .pos-table{font-size:.8rem;}
  .pos-layout-compact .pos-table thead th{padding:.32rem .22rem .45rem 0;font-size:.62rem;}
  .pos-layout-compact .pos-table tbody td{padding:.4rem .22rem .4rem 0;}
  .pos-layout-compact .pos-empty{padding:1.35rem .5rem;font-size:.86rem;}
  .pos-layout-compact .pos-total-strip{margin:0 .32rem .28rem;padding:.48rem .62rem;border-radius:12px;}
  .pos-layout-compact .pos-total-label{font-size:.68rem;}
  .pos-layout-compact .pos-total-value{font-size:1.12rem;}
  .pos-layout-compact .pos-payment{padding:.35rem .62rem 0;}
  .pos-layout-compact .pos-pay-output{padding:.5rem .65rem;}
  .pos-layout-compact .pos-pay-output-label{font-size:.75rem;}
  .pos-layout-compact .pos-pay-change{font-size:1.02rem;}
  .pos-layout-compact .pos-change-note{font-size:.8rem;}
  .pos-layout-compact .pos-checkout{padding:0 .62rem .55rem;}
  .pos-layout-compact .btn-checkout{min-height:2.45rem;font-size:.86rem;border-radius:12px;}
  .pos-layout-compact .btn-add-line{min-height:2.45rem;font-size:.86rem;border-radius:12px;}
  .pos-layout-compact .btn-icon{width:32px;height:32px;font-size:1.15rem;border-radius:10px;}
  .pos-layout-compact .pos-help-tender-inline{font-size:.72rem;}
}

@media (max-width:420px){
  .pos-layout-compact .pos-sub{display:none;}
  .pos-help-pick-inline,
  .pos-help-tender-inline{
    font-size:.7rem !important;
    margin-top:.2rem;
    line-height:1.25;
    opacity:.88;
  }
  .pos-layout-compact .pos-page-head .btn{font-size:.86rem;padding:.45rem .6rem;}
}

@media (max-height:620px){
  .pos-layout-compact .pos-page-head{margin-bottom:.35rem;}
  .pos-layout-compact .pos-flash{padding:.45rem .6rem;margin-bottom:.35rem;font-size:.86rem;}
  .pos-layout-compact .pos-sub{display:none;}
}

/* Reports */
.rep-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
  flex-wrap:wrap;
  margin-bottom:1rem;
}
.rep-title{margin:0;font-size:clamp(1.5rem, 4vw, 2rem);font-weight:850;}
.rep-sub{margin:0.35rem 0 0;color:var(--muted);font-size:.95rem;max-width:40rem;line-height:1.5;}

.rep-controls{margin-bottom:.75rem;}
.rep-controls-grid{
  display:grid;
  gap:1rem;
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:end;
}
@media (max-width: 960px){
  .rep-controls-grid{grid-template-columns:1fr;}
}

.rep-period-label{
  font-weight:740;
  color:rgba(255,230,230,.95);
  margin:0 0 1rem;
  font-size:1rem;
}

.rep-kpi-grid{
  display:grid;
  gap:1rem;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-bottom:1.1rem;
}
@media (max-width:780px){.rep-kpi-grid{grid-template-columns:1fr;}}

.rep-kpi-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);}
.rep-kpi-val{margin-top:.35rem;font-size:clamp(1.35rem,3.5vw,1.85rem);font-weight:870;}

.rep-two-col{
  display:grid;
  gap:1rem;
  grid-template-columns:repeat(2,minmax(0,1fr));
}
@media (max-width:900px){.rep-two-col{grid-template-columns:1fr}}

.rep-h2{margin:0 0 .85rem;font-size:1.05rem;font-weight:790;}
.rep-empty{margin:0;}
.rep-scroll{overflow:auto;max-height:min(55vh,480px);}
.rep-table{width:100%;border-collapse:collapse;font-size:.9rem;}
.rep-table th{
  text-align:left;
  padding:.45rem .5rem;
  border-bottom:1px solid rgba(255,255,255,.14);
  color:var(--muted);
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.1em;
}
.rep-table td{
  padding:.55rem .5rem;
  border-bottom:1px solid rgba(255,255,255,.06);
  vertical-align:top;
}
.rep-strong{font-weight:740;}

.rep-flash{margin-bottom:1rem;}
.rep-head-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;}
.rep-receipt-meta{margin:0 0 1rem;font-size:.95rem;}
.rep-th-actions{text-align:right;white-space:nowrap;}
.rep-table td.rep-actions{
  vertical-align:middle;
  text-align:right;
}
.rep-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.35rem;
  justify-content:flex-end;
}
.rep-action-form{display:inline;margin:0;padding:0;border:0;background:none;}
.btn-sm{padding:6px 10px;font-size:13px;border-radius:10px;line-height:1.2;font-weight:650;}

.rep-muted-field .help,
.rep-muted-field label{
  color:rgba(180,180,195,.72);
}
.rep-muted-field input,
.rep-muted-field select{
  opacity:.72;
}

/* Date / month inputs */
input[type="date"].input-readable,
input[type="month"].input-readable{
  color-scheme: dark;
}
