/* Minimal additions for the POS app; base visuals are in ui.css/theme.css */

.pos-shell{
  width: min(1180px, 92vw);
  margin: 18px auto 60px;
  position: relative;
  z-index: 1;
}

.subnav{
  display:flex;
  gap: 10px;
  align-items:center;
  padding: 10px;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.14);
  background: linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.04));
  backdrop-filter: blur(14px);
  box-shadow: 0 22px 70px rgba(0,0,0,.35);
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.pill{
  display:inline-flex;
  align-items:center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.20);
  color: rgba(255,255,255,.88);
  text-decoration: none;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: 12px;
}
.pill:hover{
  border-color: color-mix(in srgb, var(--p) 45%, rgba(255,255,255,.15));
  box-shadow: 0 0 18px color-mix(in srgb, var(--p) 25%, transparent);
}

.tpl-grid{
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.tpl-card{
  text-align:left;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.18);
  padding: 12px;
  cursor: pointer;
  transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
  position: relative;
  overflow:hidden;
}
.tpl-card::before{
  content:"";
  position:absolute; inset:-70%;
  background:
    radial-gradient(circle at 20% 30%, color-mix(in srgb, var(--p) 22%, transparent), transparent 55%),
    radial-gradient(circle at 80% 20%, color-mix(in srgb, var(--s) 18%, transparent), transparent 55%);
  filter: blur(22px);
  opacity:.55;
  pointer-events:none;
}
.tpl-card:hover{ transform: translateY(-2px); }
.tpl-card.active{
  border-color: color-mix(in srgb, var(--p) 55%, rgba(255,255,255,.18));
  box-shadow: 0 0 22px color-mix(in srgb, var(--p) 18%, transparent);
}
.tpl-badge{
  font: 900 12px/1 Rajdhani, system-ui, sans-serif;
  letter-spacing: .18em;
  text-transform: uppercase;
  position: relative;
}
.tpl-sub{
  font-size: 12px;
  opacity: .7;
  margin-top: 8px;
  position: relative;
}

.color-row{
  display:flex;
  gap: 10px;
  align-items:center;
}
.colorPicker{
  width: 54px;
  height: 38px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(0,0,0,.18);
  padding: 4px;
  cursor: pointer;
}
.swatches{
  display:flex;
  gap: 8px;
  flex-wrap: wrap;
}
.sw{
  width: 18px;
  height: 18px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.18);
  background: var(--c);
  box-shadow: 0 0 16px color-mix(in srgb, var(--c) 22%, transparent);
  cursor: pointer;
}
.sw:hover{
  transform: scale(1.12);
  border-color: rgba(255,255,255,.32);
}

.preview-chip{
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.18);
  padding: 12px;
  box-shadow: 0 0 18px color-mix(in srgb, var(--p) 10%, transparent);
}

.grid-3{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin: 0 0 18px;
  padding: 0;
}
.brandlock .kicker{
  font: 700 12px/1 Rajdhani, system-ui, sans-serif;
  letter-spacing: .22em;
  text-transform: uppercase;
  opacity: .7;
}
.brandlock .who{
  font: 700 20px/1.1 Rajdhani, system-ui, sans-serif;
}
.brandlock .muted{ opacity:.65; font-weight:600; font-size: 14px; margin-left: 8px;}
.grid{
  margin: 0;
  padding: 0 0 40px;
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.card-title{
  font: 700 12px/1 Rajdhani, system-ui, sans-serif;
  letter-spacing: .28em;
  text-transform: uppercase;
  opacity:.8;
  margin-bottom: 12px;
}
.kpis{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 10px;
}
.kpi{
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 14px;
  padding: 12px;
  background: rgba(0,0,0,.20);
}
.kpi-label{ opacity:.7; font-size: 12px; }
.kpi-val{ font-size: 24px; font-weight: 800; letter-spacing: .02em; margin-top: 4px; }
.actions{ display:flex; gap:10px; flex-wrap: wrap; }

.table{
  width: 100%;
  border-collapse: collapse;
}
.table th,
.table td{
  text-align:left;
  padding: 10px 10px;
  border-bottom: 1px solid rgba(255,255,255,.08);
  vertical-align: top;
}
.table th{
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
  opacity: .7;
}
.actions form{ margin: 0; }
.row{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: end;
}
.row .field{ flex: 1 1 220px; }
.field span{
  display:block;
  font-size: 12px;
  letter-spacing: .16em;
  text-transform: uppercase;
  opacity: .65;
  margin: 0 0 8px;
}
.field input,
.field select,
.field textarea{
  width: 100%;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.28);
  color: rgba(255,255,255,.92);
  padding: 12px 12px;
  outline: none;
}
.field input:focus,
.field select:focus,
.field textarea:focus{
  border-color: color-mix(in srgb, var(--s) 45%, rgba(255,255,255,.15));
  box-shadow: 0 0 0 2px rgba(0,0,0,.0), 0 0 22px color-mix(in srgb, var(--s) 18%, transparent);
}

.typeahead{
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 8px);
  /* Must float above tables/cards/modals. Some pages create stacking contexts. */
  z-index: 9999;
}
.typeahead__list{
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.14);
  background:
    radial-gradient(900px 260px at 20% 0%, color-mix(in srgb, var(--p) 12%, transparent), transparent 55%),
    radial-gradient(900px 260px at 90% 30%, color-mix(in srgb, var(--s) 12%, transparent), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.03));
  backdrop-filter: blur(10px);
  box-shadow: 0 22px 70px rgba(0,0,0,.55);
  overflow: hidden;
}
.typeahead__item{
  width: 100%;
  text-align: left;
  padding: 10px 12px;
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,.08);
  color: rgba(255,255,255,.92);
  cursor: pointer;
}
.typeahead__item:hover{
  background: rgba(255,255,255,.06);
}
.typeahead__name{
  font-weight: 800;
  letter-spacing: .02em;
}
.typeahead__meta{
  margin-top: 2px;
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  opacity: .65;
}
.typeahead__more{
  width: 100%;
  padding: 10px 12px;
  background: rgba(0,0,0,.22);
  border: 0;
  color: rgba(255,255,255,.85);
  cursor: pointer;
}
.typeahead__more:hover{
  background: rgba(255,255,255,.06);
}

.modal-overlay{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.72);
  backdrop-filter: blur(6px);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 50;
}

/* NOTE: do not use `.modal` here; ui.css already defines a full-screen `.modal`. */
.efi-modal{
  width: min(860px, 94vw);
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,.14);
  background:
    radial-gradient(900px 380px at 25% 10%, color-mix(in srgb, var(--p) 14%, transparent), transparent 60%),
    radial-gradient(900px 380px at 85% 30%, color-mix(in srgb, var(--s) 12%, transparent), transparent 62%),
    linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.03));
  box-shadow: 0 28px 90px rgba(0,0,0,.66);
  padding: 16px 16px 14px;
  position: relative;
  overflow: hidden;
}

.efi-modal::before{
  content:"";
  position:absolute;
  inset:-2px;
  background: linear-gradient(90deg,
    color-mix(in srgb, var(--p) 60%, transparent),
    color-mix(in srgb, var(--s) 60%, transparent),
    color-mix(in srgb, var(--a) 60%, transparent)
  );
  opacity: .35;
  filter: blur(18px);
  pointer-events:none;
}

.efi-modal__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 10px;
  margin-bottom: 10px;
}

.efi-modal__title{
  font-size: 12px;
  letter-spacing: .22em;
  text-transform: uppercase;
  opacity: .85;
  font-weight: 900;
}

.efi-modal__close{
  background: transparent;
  border: 1px solid rgba(255,255,255,.18);
  color: rgba(255,255,255,.85);
  border-radius: 12px;
  padding: 8px 10px;
  cursor: pointer;
}
.efi-modal__close:hover{
  border-color: color-mix(in srgb, var(--p) 45%, rgba(255,255,255,.15));
  box-shadow: 0 0 16px color-mix(in srgb, var(--p) 20%, transparent);
}

.efi-modal-grid{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 12px;
  align-items:start;
}

.efi-modal .card{
  background: rgba(0,0,0,.18);
  border: 1px solid rgba(255,255,255,.12);
}

.sug-list{
  display:grid;
  gap: 10px;
}

.sug-btn{
  width: 100%;
  justify-content: space-between;
  padding: 12px 12px;
  border-radius: 14px;
  letter-spacing: 1px;
}
.sug-btn .left{
  display:flex;
  flex-direction: column;
  gap: 2px;
}
.sug-btn .name{
  font-weight: 900;
  letter-spacing: .6px;
}
.sug-btn .meta{
  margin: 0;
  font-size: 12px;
  opacity: .7;
}
.sug-btn .score{
  font-weight: 900;
  opacity: .85;
}

@media (max-width: 860px){
  .grid{ grid-template-columns: 1fr; }
  .kpis{ grid-template-columns: 1fr; }
  .brandlock .muted{ display:block; margin-left:0; margin-top:6px;}
  .efi-modal-grid{ grid-template-columns: 1fr; }
  .tpl-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid-3{ grid-template-columns: 1fr; }
}
