/* ============================================================
   PRIME COLLECTIONS — theme.css  (shared design system)
   Aesthetic: warm "Canyon" — terracotta + amber + warm ink on
   bone. Editorial serif headings, refined grotesk body.
   Loaded by BOTH the storefront and the admin dashboard.
   ============================================================ */
@import url("https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;0,9..144,700;1,9..144,500;1,9..144,600&family=Hanken+Grotesk:wght@400;500;600;700;800&display=swap");

:root{
  /* surfaces */
  --bone:      #f6efe1;
  --bone-2:    #eee2cd;
  --paper:     #fffaf0;
  --paper-2:   #fdf3e3;
  /* ink / text */
  --ink:       #241a11;
  --ink-2:     #3a2b1d;
  --ink-soft:  #74634e;
  --cream:     #f6efe1;
  /* accents */
  --rust:      #c0492a;
  --rust-deep: #9b3819;
  --rust-soft: #e3936b;
  --amber:     #e0971c;
  --amber-2:   #f3b840;
  --teal:      #1f4f48;   /* deep accent, used sparingly */
  --plum:      #6d2f3f;
  /* logo blend — Prime Outdoor forest green */
  --forest:    #21402c;
  --forest-2:  #2d5639;
  --forest-3:  #18301f;
  /* lines */
  --line:      #e9ddc6;
  --line-2:    #dccaa8;
  /* status */
  --wa:        #25a85a;
  --ok:        #2f8a52;
  --warn:      #c08418;
  --danger:    #bb3b2a;
  /* misc */
  --shadow:    0 1px 2px rgba(36,26,17,.05), 0 10px 30px -12px rgba(36,26,17,.22);
  --shadow-lg: 0 36px 80px -30px rgba(60,33,15,.5);
  --radius:    18px;
  --radius-sm: 12px;
  --maxw:      1240px;
  --serif:     "Fraunces", Georgia, serif;
  --sans:      "Hanken Grotesk", system-ui, sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--sans);color:var(--ink);background:var(--bone);
  -webkit-font-smoothing:antialiased;line-height:1.55;overflow-x:hidden;min-height:100vh;
}
img{display:block;max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;border:none;background:none}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.03;letter-spacing:-.02em}
.serif{font-family:var(--serif)}
::selection{background:var(--rust);color:#fff}

/* grain overlay for warmth/depth */
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:9998;opacity:.04;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 26px}
.muted{color:var(--ink-soft)}
.tag{display:inline-block;font-size:.7rem;font-weight:800;letter-spacing:.16em;
  text-transform:uppercase;color:var(--rust)}

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  background:var(--ink);color:var(--cream);border-radius:999px;
  padding:14px 26px;font-weight:700;font-size:.94rem;letter-spacing:.01em;
  transition:transform .25s cubic-bezier(.2,.8,.2,1),background .25s,box-shadow .25s;
  white-space:nowrap;position:relative
}
.btn:hover{background:var(--ink-2);transform:translateY(-2px);box-shadow:var(--shadow)}
.btn:active{transform:translateY(0)}
.btn--rust{background:var(--rust)}
.btn--rust:hover{background:var(--rust-deep)}
.btn--amber{background:var(--amber);color:var(--ink)}
.btn--amber:hover{background:var(--amber-2)}
.btn--ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line-2)}
.btn--ghost:hover{background:var(--paper);border-color:var(--ink)}
.btn--wa{background:var(--wa)}
.btn--wa:hover{background:#1c9450}
.btn--block{width:100%}
.btn--sm{padding:10px 18px;font-size:.85rem}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}

/* ---------- FORM FIELDS ---------- */
.field{margin-bottom:16px}
.field label{display:block;font-size:.8rem;font-weight:700;margin-bottom:7px;color:var(--ink)}
.field input,.field select,.field textarea{
  width:100%;border:1.5px solid var(--line-2);background:var(--paper);border-radius:12px;
  padding:12px 15px;font-size:.92rem;outline:none;transition:.2s;color:var(--ink)}
.field input::placeholder,.field textarea::placeholder{color:#b6a892}
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:var(--rust);box-shadow:0 0 0 3px rgba(192,73,42,.13)}
.field textarea{resize:vertical;min-height:92px}

/* ---------- PILLS / STATUS ---------- */
.pill{display:inline-block;font-size:.74rem;font-weight:800;padding:4px 11px;border-radius:999px}
.pill.ok,.pill.done{background:#e6f0e7;color:var(--ok)}
.pill.low,.pill.pending{background:#faecca;color:#9a781f}
.pill.prog{background:#e3eaf2;color:#3d6090}
.pill.ship{background:#e2ebe9;color:var(--teal)}
.pill.ret{background:#f3e2e8;color:var(--plum)}
.pill.out{background:#f6dfdb;color:var(--danger)}

/* ---------- TOAST ---------- */
.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%) translateY(140%);
  background:var(--ink);color:var(--cream);padding:14px 24px;border-radius:999px;z-index:9000;
  font-weight:600;font-size:.9rem;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:10px;
  transition:transform .45s cubic-bezier(.2,.9,.2,1)}
.toast.show{transform:translateX(-50%) translateY(0)}
.toast .em{color:var(--amber-2)}

/* ---------- ICON BUTTON ---------- */
.icon-btn{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;
  border:1.5px solid var(--line);background:var(--paper);position:relative;transition:.2s;color:var(--ink)}
.icon-btn:hover{border-color:var(--ink);transform:translateY(-1px)}

/* ---------- BRAND ---------- */
.brand{display:flex;align-items:center;gap:11px;font-family:var(--serif);
  font-weight:600;font-size:1.4rem;letter-spacing:-.02em;color:var(--ink)}
.brand .mark{width:40px;height:40px;border-radius:13px;flex:none;display:grid;place-items:center;
  background:linear-gradient(150deg,var(--forest),var(--forest-2));color:var(--amber-2);font-size:1.15rem;
  box-shadow:inset 0 0 0 1.5px rgba(243,184,64,.25)}
.brand-logo{height:46px;width:auto;display:block}
@media(max-width:560px){.brand-logo{height:38px}}

/* ---------- MODAL SCRIMS (shared) ---------- */
.scrim{position:fixed;inset:0;background:rgba(36,26,17,.5);backdrop-filter:blur(3px);
  opacity:0;visibility:hidden;transition:.3s;z-index:400}
.scrim.open{opacity:1;visibility:visible}

.empty-state{text-align:center;padding:60px 20px;color:var(--ink-soft)}
.empty-state .em{font-size:2.8rem;opacity:.5;display:block;margin-bottom:8px}

@keyframes pop{from{opacity:0;transform:scale(.96) translateY(10px)}}
@keyframes fade{from{opacity:0;transform:translateY(8px)}}
@keyframes bob{50%{transform:translateY(-9px)}}
