/* Admin-only additions layered on top of styles.css */

.wrap-wide { max-width: 1080px; }

/* ------------------------------------------------------------------- KPIs */

.kpi-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  margin-bottom: 20px;
}

.kpi {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 14px;
  box-shadow: var(--shadow);
}

.kpi .kpi-label {
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .09em;
  font-weight: 700;
  color: var(--ink-mute);
}

.kpi .kpi-value {
  font-family: var(--serif);
  font-size: 1.75rem;
  line-height: 1.15;
  margin-top: 4px;
}

.kpi .kpi-note { font-size: .8rem; color: var(--ink-mute); }

/* ----------------------------------------------------------------- agenda */

.day-nav {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
}
.day-nav .day-title {
  font-family: var(--serif);
  font-size: 1.05rem;
  line-height: 1.25;
  flex: 0 1 auto;
  min-width: 0;
}
.day-nav .spacer { flex: 1 1 auto; }

.agenda-col + .agenda-col { margin-top: 20px; }

.agenda-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-bottom: 8px;
  margin-bottom: 10px;
  border-bottom: 1px solid var(--line);
}
.agenda-head .name { font-weight: 700; }

.slot {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 11px 12px;
  border: 1px solid var(--line);
  border-left: 3px solid var(--gold);
  border-radius: var(--radius-sm);
  background: var(--surface);
}
.slot + .slot { margin-top: 8px; }
.slot.is-block { border-left-color: var(--ink-mute); background: var(--surface-2); }
.slot.is-done  { border-left-color: var(--good); }
.slot.is-noshow{ border-left-color: var(--bad); }

.slot-time {
  flex: none;
  width: 76px;
  font-variant-numeric: tabular-nums;
  font-size: .84rem;
  font-weight: 700;
  line-height: 1.35;
}
.slot-time .to { color: var(--ink-mute); font-weight: 500; }
.slot-body { flex: 1 1 auto; min-width: 0; }
.slot-title { font-weight: 650; font-size: .95rem; }
.slot-sub { font-size: .84rem; color: var(--ink-mute); margin-top: 2px; }
.slot-actions { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }

/* ------------------------------------------------------------------ table */

.table-scroll { overflow-x: auto; margin: 0 -16px; padding: 0 16px; }

table.data {
  width: 100%;
  border-collapse: collapse;
  font-size: .9rem;
  min-width: 520px;
}

table.data th {
  text-align: left;
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--ink-mute);
  padding: 8px 10px;
  border-bottom: 1px solid var(--line);
  white-space: nowrap;
}

table.data td {
  padding: 11px 10px;
  border-bottom: 1px solid var(--line-soft);
  vertical-align: middle;
}

table.data tr:last-child td { border-bottom: 0; }
table.data .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
table.data .actions { text-align: right; white-space: nowrap; }

/* ------------------------------------------------------------------ modal */

.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 200;
  background: rgba(12, 9, 7, .55);
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 0;
  animation: fade .16s ease-out;
}

@keyframes fade { from { opacity: 0; } to { opacity: 1; } }

.modal {
  background: var(--surface);
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  width: 100%;
  max-width: 560px;
  max-height: 92vh;
  overflow-y: auto;
  box-shadow: var(--shadow-lg);
  animation: slideup .22s ease-out;
  padding: 20px 16px calc(20px + env(safe-area-inset-bottom));
}

@keyframes slideup { from { transform: translateY(24px); } to { transform: translateY(0); } }

.modal-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}
.modal-head h2 { flex: 1 1 auto; min-width: 0; }

.modal-foot {
  display: flex;
  gap: 8px;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}
.modal-foot .btn { flex: 1 1 auto; }

/* ------------------------------------------------------------ hours editor */

/* Narrow screens stack the day above its two time fields; wide screens inline. */
.hours-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-areas: "day day" "from to";
  gap: 6px 8px;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid var(--line-soft);
}
.hours-row:last-child { border-bottom: 0; }
.hours-row > :nth-child(1) { grid-area: day; }
.hours-row > :nth-child(2) { grid-area: from; }
.hours-row > :nth-child(3) { grid-area: to; }
.hours-row > :nth-child(4) { display: none; }
.hours-row .dayname { font-size: .9rem; font-weight: 600; }
.hours-row input[type="time"] { min-height: 40px; padding: 6px 8px; width: 100%; }
.hours-row.is-off input[type="time"] { opacity: .35; pointer-events: none; }

@media (min-width: 520px) {
  .hours-row {
    grid-template-columns: 130px 1fr 1fr;
    grid-template-areas: "day from to";
    padding: 8px 0;
  }
}

.svc-picker {
  display: grid;
  gap: 6px;
  max-height: 260px;
  overflow-y: auto;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--surface-2);
}

/* ---------------------------------------------------------------- desktop */

@media (min-width: 720px) {
  .kpi-grid { grid-template-columns: repeat(4, 1fr); }
  .kpi .kpi-value { font-size: 2rem; }
  .modal-backdrop { align-items: center; padding: 24px; }
  .modal { border-radius: var(--radius-lg); padding: 24px; }
  .table-scroll { margin: 0; padding: 0; }
  .agenda-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .agenda-col + .agenda-col { margin-top: 0; }
}

/* ------------------------------------------------------------ service menu */

.svc-group { padding: 0; overflow: hidden; }
.svc-group + .svc-group { margin-top: 14px; }

.svc-group-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 10px 10px 14px;
  background: var(--surface-2);
  border-bottom: 1px solid var(--line);
}
.svc-group-head h3 { font-size: 1rem; }

/* Phone: name on the left, length and price on the right, buttons underneath. */
.svc-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas: "main meta" "actions actions";
  gap: 6px 12px;
  align-items: start;
  padding: 12px 10px 10px 14px;
  border-bottom: 1px solid var(--line-soft);
}
.svc-row:last-child { border-bottom: 0; }
.svc-row.is-hidden .svc-name,
.svc-row.is-hidden .svc-desc,
.svc-row.is-hidden .svc-meta { opacity: .55; }

.svc-main { grid-area: main; min-width: 0; }
.svc-name { font-weight: 650; font-size: .96rem; }
.svc-desc {
  font-size: .84rem;
  color: var(--ink-mute);
  margin-top: 2px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.svc-meta {
  grid-area: meta;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.svc-len { font-size: .82rem; color: var(--ink-mute); }
.svc-price { font-family: var(--serif); font-weight: 600; font-size: 1.02rem; }

.svc-actions { grid-area: actions; display: flex; gap: 6px; justify-content: flex-end; }

.btn-icon { min-height: 36px; min-width: 36px; padding: 0 10px; font-size: 1rem; line-height: 1; }
.btn-icon[disabled] { opacity: .25; }

@media (min-width: 720px) {
  .svc-row {
    grid-template-columns: minmax(0, 1fr) auto auto;
    grid-template-areas: "main meta actions";
    align-items: center;
  }
  .svc-meta { flex-direction: row; align-items: baseline; gap: 18px; }
}

/* --------------------------------------------------------------- settings */

.settings-grid { display: grid; gap: 14px; }
.settings-grid .card + .card { margin-top: 0; }

/* ------------------------------------------------------- dashboard logins */
.login-list { border-top: 1px solid var(--line-soft); margin-bottom: 18px; }
.login-row {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 12px 0; border-bottom: 1px solid var(--line-soft);
}
.login-main { min-width: 0; }
.login-name { font-weight: 500; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.login-actions { flex-shrink: 0; }
.login-sub { font-size: .95rem; margin: 0 0 10px; }

/* --------------------------------------------------------------- overview */
.overview-head { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.overview-head h2 { margin: 0; }
