/* ==========================================================================
   Aurum — Goldsmith Admin
   Design tokens
   ========================================================================== */
:root{
  --espresso:      #211A13;
  --espresso-2:     #2B2117;
  --espresso-3:     #382A1B;
  --cream:          #FBF6EC;
  --card:           #FFFFFF;
  --ink:            #241E17;
  --bronze:         #8A7358;
  --bronze-soft:    #B8A48A;
  --line:           #E7DECB;
  --gold:           #B8862E;
  --gold-bright:    #D9A63E;
  --gold-pale:      #F1E2BE;
  --success:        #4C7A5A;
  --success-bg:     #E9F1EA;
  --danger:         #B3452C;
  --danger-bg:      #FBEAE4;
  --radius:         10px;
  --shadow-card:    0 1px 2px rgba(36,30,23,0.06), 0 8px 24px -12px rgba(36,30,23,0.12);
}

*{ box-sizing:border-box; }

body{
  background:var(--cream);
  color:var(--ink);
  font-family:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  font-variant-numeric: tabular-nums;
}

h1,h2,h3,h4,.font-display{
  font-family:'Fraunces', Georgia, serif;
  letter-spacing:-0.01em;
}

.text-bronze{ color:var(--bronze); }
.text-gold{ color:var(--gold); }
.bg-espresso{ background:var(--espresso); }

/* ---- Hallmark stamp — signature element -------------------------------- */
.hallmark{
  --size:44px;
  width:var(--size);
  height:var(--size);
  border-radius:10px;
  border:1.5px solid currentColor;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  position:relative;
  flex-shrink:0;
  background-color: white;
}
.hallmark::before{
  content:"";
  position:absolute;
  inset:4px;
  border-radius:50%;
  border:1px dashed currentColor;
  opacity:.55;
}
.hallmark span{
  font-family:'Fraunces', serif;
  font-size:calc(var(--size) * 0.32);
  font-weight:600;
  line-height:1;
}
.hallmark-lg{ --size:72px; }
.hallmark-sm{ --size:22px; }
.hallmark-sm span{ font-size:8px; letter-spacing:.02em; }

.stamp-badge{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  font-family:'Fraunces', serif;
  font-size:.72rem;
  font-weight:600;
  color:var(--gold);
  border:1px solid var(--gold-pale);
  background:#FFFDF7;
  border-radius:20px;
  padding:.15rem .55rem .15rem .35rem;
}

/* ---- Buttons ------------------------------------------------------------ */
.btn-gold{
  background:var(--gold);
  border-color:var(--gold);
  color:#fff;
  font-weight:600;
  letter-spacing:.01em;
}
.btn-gold:hover{ background:#A2761F; border-color:#A2761F; color:#fff; }
.btn-outline-gold{
  border-color:var(--gold);
  color:var(--gold);
  font-weight:600;
}
.btn-outline-gold:hover{ background:var(--gold); color:#fff; }

/* ---- Login page ----------------------------------------------------------*/
.login-shell{
  min-height:100vh;
  display:flex;
}
.login-aside{
  background:
    radial-gradient(60% 55% at 25% 15%, rgba(217,166,62,0.16), transparent 60%),
    linear-gradient(160deg, var(--espresso) 0%, var(--espresso-2) 55%, var(--espresso-3) 100%);
  color:var(--gold-pale);
  position:relative;
  overflow:hidden;
}
.login-aside::after{
  content:"";
  position:absolute;
  right:-120px; bottom:-120px;
  width:360px; height:360px;
  border-radius:50%;
  border:1px dashed rgba(217,166,62,0.35);
}
.login-aside::before{
  content:"";
  position:absolute;
  right:-40px; bottom:-40px;
  width:220px; height:220px;
  border-radius:50%;
  border:1px dashed rgba(217,166,62,0.35);
}
.login-quote{
  font-family:'Fraunces', serif;
  font-weight:500;
  font-size:1.55rem;
  line-height:1.35;
  max-width:26rem;
}
.login-card{
  background:var(--card);
  border-radius:var(--radius);
  box-shadow:var(--shadow-card);
  border:1px solid var(--line);
}
.form-control:focus, .form-select:focus{
  border-color:var(--gold);
  box-shadow:0 0 0 .2rem rgba(184,134,46,0.15);
}
.login-input-group .input-group-text{
  background:#fff;
  border-right:0;
  color:var(--bronze);
}
.login-input-group .form-control{ border-left:0; }
.login-input-group .form-control:focus{ box-shadow:none; }
.login-input-group:focus-within{ box-shadow:0 0 0 .2rem rgba(184,134,46,0.15); border-radius:.375rem; }

/* ==========================================================================
   Dashboard shell
   ========================================================================== */
.app-shell{ min-height:100vh; }

.sidebar{
  width:264px;
  background:var(--espresso);
  color:var(--bronze-soft);
  position:fixed;
  top:0; bottom:0; left:0;
  overflow-y:auto;
  z-index:1030;
  transition:transform .25s ease;
}
.sidebar-brand{
  display:flex;
  align-items:center;
  gap:.65rem;
  padding:1.25rem 1.25rem 1rem;
  border-bottom:1px solid rgba(255,255,255,0.08);
  color:var(--gold-pale);
}
.sidebar-brand .hallmark{ color:var(--gold-bright); }
.sidebar-brand-name{ font-family:'Fraunces', serif; font-size:1.15rem; font-weight:600; color:#fff; }
.sidebar-brand-sub{ font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--bronze-soft); }

.nav-section-label{
  font-size:.68rem;
  letter-spacing:.10em;
  text-transform:uppercase;
  color:#6E6151;
  padding:1rem 1.25rem .35rem;
}

.side-nav{ padding:0 .75rem 2rem; }
.side-link{
  display:flex;
  align-items:center;
  gap:.7rem;
  padding:.6rem .75rem;
  border-radius:8px;
  color:var(--bronze-soft);
  text-decoration:none;
  font-size:.89rem;
  font-weight:500;
  cursor:pointer;
}
.side-link i{ font-size:1rem; width:1.1rem; text-align:center; color:#9C8A6E; }
.side-link:hover{ background:rgba(217,166,62,0.10); color:#fff; }
.side-link.active{ background:rgba(217,166,62,0.16); color:#fff; }
.side-link.active i{ color:var(--gold-bright); }
.side-link .chevron{ margin-left:auto; font-size:.7rem; transition:transform .2s ease; color:#9C8A6E; }
.side-link[aria-expanded="true"] .chevron{ transform:rotate(90deg); }

.submenu{ padding-left:2.35rem; }
.submenu .side-link{ font-size:.84rem; padding-top:.45rem; padding-bottom:.45rem; }
.submenu .side-link::before{
  content:"";
  width:4px; height:4px; border-radius:50%;
  background:#6E6151;
  margin-right:.35rem;
}

.main{
  margin-left:264px;
  min-height:100vh;
  display:flex;
  flex-direction:column;
}

.topbar{
  background:var(--card);
  border-bottom:1px solid var(--line);
  padding:.85rem 1.5rem;
  display:flex;
  align-items:center;
  gap:1rem;
  position:sticky;
  top:0;
  z-index:1020;
}
.topbar .search-wrap{
  max-width:340px;
  flex:1;
}
.topbar .search-wrap .form-control{ background:var(--cream); border:1px solid var(--line); }

.content{
  padding:1.75rem;
  flex:1;
}

/* ---- Stat cards ----------------------------------------------------------*/
.stat-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:1.1rem 1.25rem;
  box-shadow:var(--shadow-card);
  height:100%;
}
.stat-card .stat-icon{
  width:40px; height:40px;
  border-radius:9px;
  display:flex; align-items:center; justify-content:center;
  background:var(--gold-pale);
  color:var(--gold);
  font-size:1.05rem;
}
.stat-value{ font-family:'Fraunces', serif; font-size:1.6rem; font-weight:600; }
.stat-delta{ font-size:.78rem; font-weight:600; }
.stat-delta.up{ color:var(--success); }
.stat-delta.down{ color:var(--danger); }

/* ---- Panels ---------------------------------------------------------------*/
.panel{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow-card);
}
.panel-header{
  padding:1.1rem 1.35rem;
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.panel-header h2{ font-size:1.05rem; margin:0; }
.panel-header .sub{ font-size:.8rem; color:var(--bronze); }
.panel-body{ padding:1.35rem; }

.form-label{ font-size:.82rem; font-weight:600; color:var(--ink); }
.form-label .req{ color:var(--danger); }
.form-text-hint{ font-size:.76rem; color:var(--bronze); }

/* ---- Table ----------------------------------------------------------------*/
.table-gold thead th{
  font-size:.72rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--bronze);
  border-bottom:1px solid var(--line);
  padding:.7rem .85rem;
  background:#FBF8F1;
  white-space:nowrap;
}
.table-gold tbody td{
  padding:.75rem .85rem;
  vertical-align:middle;
  border-bottom:1px solid var(--line);
  font-size:.88rem;
}
.table-gold tbody tr:last-child td{ border-bottom:0; }
.table-gold tbody tr:hover{ background:#FBF8F1; }

.item-thumb{
  width:34px; height:34px;
  border-radius:8px;
  background:var(--gold-pale);
  color:var(--gold);
  display:flex; align-items:center; justify-content:center;
  font-size:.9rem;
}

.status-pill{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  font-size:.74rem;
  font-weight:600;
  padding:.22rem .6rem;
  border-radius:20px;
}
.status-pill.in-stock{ background:var(--success-bg); color:var(--success); }
.status-pill.low{ background:#FBF1DE; color:#93691C; }
.status-pill.out{ background:var(--danger-bg); color:var(--danger); }

.row-action{
  width:30px; height:30px;
  border-radius:7px;
  border:1px solid var(--line);
  background:#fff;
  display:inline-flex; align-items:center; justify-content:center;
  color:var(--bronze);
}
.row-action:hover{ border-color:var(--gold); color:var(--gold); }

/* ---- Misc ------------------------------------------------------------------*/
.sidebar-toggle{ display:none; }

@media (max-width: 991.98px){
  .sidebar{ transform:translateX(-100%); }
  .sidebar.show{ transform:translateX(0); }
  .main{ margin-left:0; }
  .sidebar-toggle{ display:inline-flex; }
}
