/* Same tokens as the main site (assets/styles.css) for brand consistency —
   this file is intentionally self-contained rather than sharing that
   stylesheet, since the admin app is a fully separate deployment. */
:root{
  --ink:#12161D; --wool:#1A2029; --wool-2:#232A36;
  --chalk:#F3F0E8; --chalk-dim:#8E96A4;
  --accent:#C15C2C;
  --display:"Bodoni Moda",Georgia,serif;
  --body:"Jost",system-ui,-apple-system,sans-serif;
  --mono:ui-monospace,"SF Mono","Roboto Mono",Menlo,monospace;
  --hair:1px solid rgba(243,240,232,.16);
}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--ink);color:var(--chalk);font-family:var(--body);font-weight:300;
     font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit}
button{font:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
h2,h3{font-family:var(--display);font-weight:400;margin:0}
.mark{font-family:var(--display);font-size:1.15rem;white-space:nowrap}
.mark .amp{font-style:italic;color:var(--accent);padding-inline:.1em}
.eyebrow{font-family:var(--mono);font-size:.625rem;letter-spacing:.22em;text-transform:uppercase;
     color:var(--accent);margin-left:.5rem}

.btn{display:inline-flex;align-items:center;gap:.5rem;justify-content:center;
     font-size:.8125rem;letter-spacing:.1em;text-transform:uppercase;
     padding:.75rem 1.25rem;border:1px solid var(--chalk);color:var(--chalk);
     background:transparent;cursor:pointer;transition:background .2s,color .2s}
.btn:hover{background:var(--chalk);color:var(--ink)}
.btn-solid{background:var(--accent);border-color:var(--accent);color:#F6F2E9}
.btn-solid:hover{background:#95431C;border-color:#95431C}
.btn-danger{border-color:#A8342A;color:#E8998F}
.btn-danger:hover{background:#A8342A;color:#F6F2E9}

/* ── login ── */
.login-view{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem}
.login-view[hidden]{display:none} /* .login-view's own display:flex would otherwise override [hidden] */
.login-card{text-align:center;max-width:320px;width:100%}
.login-card .mark{font-size:1.75rem;display:block;margin-bottom:.5rem}
.login-card .eyebrow{display:block;margin:0 0 2rem}
.login-card .btn{width:100%}
.login-error{margin-top:1.25rem;color:#E8998F;font-size:.875rem}

/* ── dashboard shell ── */
.admin-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;
     padding:1.25rem clamp(1.25rem,4vw,3rem);border-bottom:var(--hair)}
.admin-user{display:flex;align-items:center;gap:1rem;font-size:.8125rem;color:var(--chalk-dim)}
.admin-main{padding:clamp(1.5rem,4vw,3rem)}
.admin-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}

/* ── tabs ── */
.admin-tabs{display:flex;gap:.5rem;margin-bottom:2rem;border-bottom:var(--hair)}
.admin-tab{background:none;border:0;border-bottom:2px solid transparent;color:var(--chalk-dim);
     font-family:var(--mono);font-size:.6875rem;letter-spacing:.12em;text-transform:uppercase;
     padding:.75rem .25rem;margin-right:1.5rem;cursor:pointer}
.admin-tab:hover{color:var(--chalk)}
.admin-tab.active{color:var(--chalk);border-bottom-color:var(--accent)}

/* ── status pills ── */
.pill{display:inline-block;padding:.25rem .6rem;font-family:var(--mono);font-size:.625rem;
     letter-spacing:.08em;text-transform:uppercase;border:1px solid rgba(243,240,232,.24)}
.pill-paid,.pill-delivered{border-color:#3E7D4C;color:#7FA98B}
.pill-created,.pill-pending{border-color:rgba(243,240,232,.24);color:var(--chalk-dim)}
.pill-failed,.pill-cancelled{border-color:#A8342A;color:#E8998F}
.pill-shipped{border-color:var(--accent);color:var(--accent)}
select.fulfillment-select{background:var(--ink);border:1px solid rgba(243,240,232,.24);color:var(--chalk);
     font-family:var(--mono);font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase;
     padding:.35rem .5rem}

/* ── products table ── */
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:.875rem;min-width:640px}
th,td{text-align:left;padding:.75rem 1rem .75rem 0;border-bottom:1px solid rgba(243,240,232,.12);vertical-align:middle}
th{font-family:var(--mono);font-size:.625rem;letter-spacing:.14em;text-transform:uppercase;
   color:var(--chalk-dim);font-weight:400}
td.thumb{width:48px}
td.thumb img,.thumb-empty{width:40px;height:50px;object-fit:cover;background:var(--wool-2);display:block}
.muted{color:var(--chalk-dim)}
.edit-btn{padding:.4rem .9rem;font-size:.6875rem}

/* ── add/edit modal ── */
.modal-overlay{position:fixed;inset:0;z-index:200;background:rgba(6,7,10,.72);
     display:flex;align-items:center;justify-content:center;padding:1.5rem;overflow-y:auto}
.modal-overlay[hidden]{display:none}
.modal-card{background:var(--ink);border:var(--hair);max-width:480px;width:100%;padding:2rem 1.75rem;
     position:relative;max-height:90vh;overflow-y:auto;margin:auto}
.modal-close{position:absolute;top:.7rem;right:.7rem;background:none;border:0;color:var(--chalk-dim);
     font-size:1.5rem;line-height:1;cursor:pointer;padding:.6rem .75rem}
.modal-close:hover{color:var(--chalk)}
.modal-card h3{font-size:1.4rem;margin-bottom:1.5rem}
#editForm label{display:block;font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase;
     color:var(--chalk-dim);margin-bottom:1rem}
#editForm .hint{text-transform:none;letter-spacing:0;font-size:.6875rem;opacity:.75}
#editForm input[type="text"],#editForm input[type="number"],#editForm select,#editForm input[type="file"]{
     display:block;width:100%;margin-top:.4rem;padding:.65rem .75rem;background:transparent;
     border:1px solid rgba(243,240,232,.24);color:var(--chalk);font-family:var(--body);
     font-size:.9375rem;text-transform:none;letter-spacing:normal}
#editForm input:focus,#editForm select:focus{outline:none;border-color:var(--accent)}
.image-previews{display:flex;flex-wrap:wrap;gap:.6rem;margin:-.5rem 0 1.25rem}
.image-preview{position:relative;width:64px;height:80px}
.image-preview img{width:100%;height:100%;object-fit:cover;display:block;background:var(--wool-2)}
.image-preview .remove-img{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;
     background:var(--ink);border:1px solid rgba(243,240,232,.3);color:var(--chalk);cursor:pointer;
     font-size:.75rem;line-height:1;padding:0}
.form-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.5rem}
.edit-status{margin-top:1rem;color:#E8998F;font-size:.875rem}
.edit-status[hidden]{display:none}

/* ── order detail modal ── */
.order-meta{color:var(--chalk-dim);font-size:.8125rem;margin:0 0 1.5rem}
.order-section-h{font-family:var(--mono);font-size:.625rem;letter-spacing:.14em;text-transform:uppercase;
     color:var(--chalk-dim);margin:1.5rem 0 .6rem;font-weight:400}
.order-section-h:first-of-type{margin-top:0}
.order-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}
.order-items li{display:flex;justify-content:space-between;gap:1rem;font-size:.875rem}
.order-total{display:flex;justify-content:space-between;font-size:.9375rem;margin-top:.75rem;
     padding-top:.75rem;border-top:1px dashed rgba(243,240,232,.24)}
#orderAddress{font-size:.875rem;color:#D8D3C7;line-height:1.6;margin:0}
.order-fulfillment{display:flex;gap:.6rem;align-items:center}
.order-fulfillment select{background:transparent;border:1px solid rgba(243,240,232,.24);color:var(--chalk);
     padding:.65rem .75rem;font-family:var(--body);font-size:.9375rem;flex:1}
.order-fulfillment .btn{padding:.65rem 1.1rem}
