/* ---- Login ---- */
.login-wrap{
  min-height:80vh;display:flex;align-items:center;justify-content:center;padding:40px 20px;
}
.login-card{
  width:100%;max-width:380px;background:var(--card-bg);border:1px solid var(--rule);
  border-radius:6px;padding:34px 32px 30px;
}
.login-card .top-rule{display:block;height:3px;background:var(--emerald);margin:-34px -32px 22px;border-radius:6px 6px 0 0;}
.login-card h1{font-size:24px;font-weight:600;margin:0 0 6px;}
.login-card p.sub{font-size:13.5px;color:var(--ink-soft);margin:0 0 22px;line-height:1.5;}
.login-card .field{margin-bottom:16px;}
.login-card label{display:block;font-size:13.5px;font-weight:600;margin-bottom:6px;}
.login-card input{
  width:100%;padding:11px 13px;border:1px solid var(--rule);border-radius:3px;
  background:var(--paper);font-size:14px;font-family:'Inter',sans-serif;
}
.login-card .btn-primary{width:100%;justify-content:center;margin-top:6px;}
.login-card .error-msg{color:var(--error);font-size:13px;margin-top:12px;}
.login-card .hint-box{
  margin-top:20px;padding-top:16px;border-top:1px dashed var(--rule);
  font-size:12px;color:var(--ink-soft);line-height:1.6;
}
.login-card .hint-box a{color:var(--emerald);font-weight:600;}
.login-card .switch-portal{
  margin-top:14px;font-size:12.5px;color:var(--ink-soft);text-align:center;
}
.login-card .switch-portal a{color:var(--cyan);font-weight:600;}
.login-card .pending-msg{
  margin-top:18px;padding:14px 16px;border-radius:4px;
  background:rgba(169,130,79,0.12);border:1px solid var(--gold);
  font-size:13px;color:var(--ink-soft);line-height:1.55;
}

/* ---- Dashboard shell ---- */
.admin-topbar{
  display:flex;justify-content:space-between;align-items:center;padding:18px 0;
  border-bottom:1px solid var(--rule);
}
.admin-topbar .who{font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--ink-soft);}
.tabs{display:flex;gap:8px;margin:28px 0 22px;}
.tab-btn{
  font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;
  background:none;border:1px solid var(--rule);border-radius:20px;padding:8px 18px;cursor:pointer;color:var(--ink-soft);
}
.tab-btn.active{background:var(--ink);color:var(--paper);border-color:var(--ink);}
.tab-panel{display:none;}
.tab-panel.active{display:block;}

/* ---- Orders table ---- */
.orders-toolbar{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px;flex-wrap:wrap;}
.filter-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.filter-group input[type="date"], .filter-group select{
  padding:7px 10px;border:1px solid var(--rule);border-radius:3px;
  background:var(--paper);font-size:13px;font-family:'Inter',sans-serif;
}
.orders-table-wrap{overflow-x:auto;border:1px solid var(--rule);border-radius:5px;background:var(--card-bg);}
table.orders{width:100%;border-collapse:collapse;font-size:13.5px;}
table.orders th{
  text-align:left;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ink-soft);padding:12px 14px;border-bottom:1px solid var(--rule);white-space:nowrap;
}
table.orders td{padding:12px 14px;border-bottom:1px solid var(--rule);vertical-align:top;}
table.orders tr:last-child td{border-bottom:none;}
table.orders .ref{font-family:'IBM Plex Mono',monospace;font-size:12.5px;}
table.orders select{
  font-family:'Inter',sans-serif;font-size:12.5px;padding:6px 8px;border:1px solid var(--rule);
  border-radius:3px;background:var(--paper);
}
table.orders .file-link{
  color:var(--emerald);text-decoration:underline;font-size:12.5px;
  background:none;border:none;padding:0;cursor:pointer;font-family:'Inter',sans-serif;
}
table.orders .file-link:hover{color:var(--emerald-deep);}
.empty-orders{padding:40px;text-align:center;color:var(--ink-soft);}

/* ---- Pricing editor ---- */
.pricing-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.pricing-card{background:var(--card-bg);border:1px solid var(--rule);border-radius:5px;padding:22px 24px;}
.pricing-card h4{font-size:15px;font-weight:600;margin:0 0 14px;font-family:'Fraunces',serif;}
.pricing-row{display:flex;gap:8px;align-items:center;margin-bottom:10px;}
.pricing-row .rlabel{
  flex:1;min-width:0;padding:8px 10px;border:1px solid var(--rule);border-radius:3px;
  background:var(--paper);font-size:13px;font-family:'Inter',sans-serif;
}
.pricing-row .rnum{
  width:88px;flex-shrink:0;padding:8px 10px;border:1px solid var(--rule);border-radius:3px;
  background:var(--paper);font-size:13px;font-family:'IBM Plex Mono',monospace;
}
.pricing-row .rselect{
  flex-shrink:0;padding:8px 8px;border:1px solid var(--rule);border-radius:3px;
  background:var(--paper);font-size:12.5px;font-family:'Inter',sans-serif;
}
.pricing-row .rremove{
  flex-shrink:0;width:30px;height:30px;border-radius:3px;border:1px solid var(--rule);
  background:var(--paper);color:var(--error);cursor:pointer;font-size:15px;line-height:1;
}
.pricing-row .rremove:hover{background:var(--error);color:#fff;border-color:var(--error);}
.pricing-row-head{display:flex;gap:8px;margin-bottom:6px;font-size:11px;color:var(--ink-soft);
  font-family:'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.06em;}
.add-row-btn{
  margin-top:4px;background:none;border:1px dashed var(--rule);border-radius:3px;
  padding:8px 14px;font-size:13px;font-weight:600;color:var(--emerald);cursor:pointer;
  width:100%;
}
.add-row-btn:hover{border-color:var(--emerald);background:rgba(31,77,61,0.05);}
.pricing-actions{margin-top:20px;display:flex;align-items:center;gap:14px;}
.save-msg{font-size:13px;color:var(--emerald);font-weight:600;}

/* ---- Team rows ---- */
.team-row{
  display:flex;align-items:center;gap:12px;padding:12px 0;
  border-bottom:1px dashed var(--rule);flex-wrap:wrap;
}
.team-row:last-child{border-bottom:none;}
.team-row .t-email{flex:1;font-size:13.5px;min-width:0;word-break:break-all;}
.team-row .t-email small{display:block;color:var(--ink-soft);font-family:'IBM Plex Mono',monospace;font-size:11px;}
.team-row select{
  padding:7px 10px;border:1px solid var(--rule);border-radius:3px;
  background:var(--paper);font-size:13px;font-family:'Inter',sans-serif;
}
.role-badge{
  font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;
  padding:3px 8px;border-radius:20px;
}
.role-badge.pending{background:rgba(169,130,79,0.18);color:var(--gold);}
.role-badge.emp{background:rgba(46,125,158,0.15);color:var(--cyan);}
.role-badge.admin{background:rgba(31,77,61,0.15);color:var(--emerald);}
.role-badge.superadmin{background:rgba(122,46,46,0.15);color:var(--oxblood);}
.btn-remove-staff{
  padding:7px 10px;border:1px solid var(--rule);border-radius:3px;
  background:var(--paper);font-size:12px;font-family:'Inter',sans-serif;
  color:var(--oxblood);cursor:pointer;white-space:nowrap;
}
.btn-remove-staff:hover{border-color:var(--oxblood);background:rgba(122,46,46,0.06);}

/* ---- Promo rows ---- */
.promo-row{
  display:flex;align-items:center;gap:14px;padding:12px 0;
  border-bottom:1px dashed var(--rule);
}
.promo-row:last-child{border-bottom:none;}
.promo-row .p-thumb{
  width:64px;height:44px;flex-shrink:0;border-radius:3px;overflow:hidden;
  background:var(--paper);border:1px solid var(--rule);
}
.promo-row .p-thumb img, .promo-row .p-thumb video{width:100%;height:100%;object-fit:cover;}
.promo-row .p-info{flex:1;min-width:0;font-size:13px;}
.promo-row .p-info small{display:block;color:var(--ink-soft);font-size:11.5px;}

@media (max-width:800px){
  .pricing-grid{grid-template-columns:1fr;}
}

/* ---- Category / variant catalog editor ---- */
.category-card{
  background:var(--card-bg);border:1px solid var(--rule);border-radius:5px;
  padding:20px 22px;margin-bottom:18px;
}
.category-card .cat-head{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.category-card .cat-name{
  flex:1;font-family:'Fraunces',serif;font-size:16px;font-weight:600;
  padding:8px 10px;border:1px solid var(--rule);border-radius:3px;background:var(--paper);
}
.category-card .remove-category{
  flex-shrink:0;width:30px;height:30px;border-radius:3px;border:1px solid var(--rule);
  background:var(--paper);color:var(--error);cursor:pointer;font-size:15px;
}
.category-card .remove-category:hover{background:var(--error);color:#fff;border-color:var(--error);}
.variant-edit-row{display:flex;gap:8px;align-items:center;margin-bottom:8px;}
.variant-edit-row .v-label-input{flex:1;min-width:0;}
.variant-edit-row .v-qty-input, .variant-edit-row .v-price-input{width:90px;flex-shrink:0;}
