:root{
    --ink:#16241E;
    --sand:#F5EEDC;
    --sand-deep:#E8DCB8;
    --gold:#B4892C;
    --gold-deep:#8C6A1F;
    --teal:#B4892C;
    --teal-deep:#8C6A1F;
    --teal-pale:#F0E4C8;
    --white:#FBFDF9;
    --line: rgba(22,36,30,0.14);
    --radius: 3px;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
  }

  body{
    margin:0;
    background:var(--sand);
    color:var(--ink);
    font-family:'Work Sans', sans-serif;
    line-height:1.55;
  }

  h1,h2,h3{
    font-family:'Fraunces', serif;
    font-weight:500;
    line-height:1.08;
    margin:0;
    color:var(--ink);
  }

  a{color:inherit;}
  img,svg{display:block; max-width:100%;}

  :focus-visible{
    outline:2px solid var(--teal-deep);
    outline-offset:3px;
  }

  .wrap{
    max-width:1120px;
    margin:0 auto;
    padding:0 32px;
  }

  /* ---------- Nav ---------- */
  header.site{
    position:sticky; top:0; z-index:20;
    background:rgba(245,238,220,0.95);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);
  }
  nav.wrap{
    display:flex; align-items:center; justify-content:space-between;
    padding-top:26px; padding-bottom:26px;
  }
  .brand{
    display:flex; align-items:center; gap:14px;
    text-decoration:none;
  }
  .brand .mark{
    width:52px; height:52px; flex-shrink:0;
    object-fit:contain;
  }
  .brand .wordmark{
    font-family:'Fraunces', serif;
    font-size:1.9rem;
    font-weight:600;
    letter-spacing:0.01em;
    line-height:0.95;
    background:linear-gradient(100deg, var(--ink) 20%, var(--gold-deep) 100%);
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
  }
  .brand .wordmark small{
    display:block;
    font-family:'Work Sans', sans-serif;
    font-size:0.62rem;
    letter-spacing:0.24em;
    text-transform:uppercase;
    color:var(--gold-deep);
    font-weight:700;
    margin-top:5px;
    -webkit-text-fill-color:var(--gold-deep);
  }
  .wordmark--footer{
    background:none !important;
    -webkit-text-fill-color:#F5EEDC !important;
    color:#F5EEDC;
  }
  .wordmark--footer small{ -webkit-text-fill-color:var(--gold) !important; color:var(--gold); }

  .announce{
    background:linear-gradient(90deg, var(--gold-deep), var(--gold));
    color:var(--ink);
  }
  .announce-inner{
    display:flex; flex-wrap:wrap; gap:10px 32px;
    justify-content:center;
    padding:11px 32px;
    font-size:0.85rem;
  }
  .announce-inner strong{ font-weight:700; }

  .nav-links{
    display:flex; align-items:center; gap:36px;
    list-style:none; margin:0; padding:0;
  }
  .nav-links a{
    text-decoration:none;
    font-size:0.95rem;
    padding-bottom:2px;
    border-bottom:1px solid transparent;
  }
  .nav-links a:hover{ border-bottom-color: var(--gold-deep); }
  .btn{
    display:inline-block;
    background:var(--ink);
    color:var(--sand);
    text-decoration:none;
    padding:11px 22px;
    border-radius:var(--radius);
    font-size:0.92rem;
    font-weight:500;
    border:1px solid var(--ink);
  }
  .btn:hover{ background:var(--teal-deep); border-color:var(--teal-deep); }
  .btn.ghost{
    background:transparent; color:var(--ink); border:1px solid var(--ink);
  }
  .btn.ghost:hover{ background:var(--ink); color:var(--sand); }
  .menu-toggle{ display:none; }

  /* ---------- Hero ---------- */
  .hero{
    padding:88px 0 96px;
    background:linear-gradient(180deg, var(--sand) 0%, var(--sand-deep) 100%);
    position:relative;
    overflow:hidden;
  }
  .hero-blob{
    position:absolute;
    top:-140px; right:-160px;
    width:560px; height:560px;
    pointer-events:none;
    z-index:0;
  }
  .hero .wrap{
    display:grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap:64px;
    align-items:center;
    position:relative;
    z-index:1;
  }
  .eyebrow-note{
    font-size:0.85rem;
    color:var(--teal-deep);
    margin-bottom:18px;
  }
  .hero h1{
    font-size:clamp(2.6rem, 5vw, 4.1rem);
    font-weight:700;
    letter-spacing:-0.02em;
    max-width:13ch;
  }
  .hero p.lede{
    margin-top:22px;
    font-size:1.15rem;
    max-width:44ch;
    color:#2c3a33;
  }
  .hero-actions{
    margin-top:34px;
    display:flex; gap:16px; flex-wrap:wrap;
  }
  .stat-row{
    margin-top:56px;
    display:flex; gap:40px;
    border-top:1px solid var(--line);
    padding-top:24px;
  }
  .stat-row div strong{
    display:block;
    font-family:'Fraunces', serif;
    font-size:1.6rem;
    font-weight:500;
  }
  .stat-row div strong.stat-icon{
    display:flex;
    align-items:center;
  }
  .stat-row div strong.stat-icon svg{
    width:30px; height:30px;
  }
  .stat-row div span{
    font-size:0.85rem;
    color:#4c5951;
  }

  .hero-art{
    position:relative;
  }
  .hero-art svg{ width:100%; height:auto; }
  .hero-art--logo{
    display:flex; align-items:center; justify-content:center;
  }
  .hero-art--logo img{
    width:100%; max-width:380px; height:auto;
    filter:drop-shadow(0 18px 34px rgba(22,36,30,0.22));
  }

  /* ---------- Servicios ---------- */
  section{ padding:88px 0; }
  #servicios{ background:var(--teal-pale); }
  .section-head{
    display:flex; justify-content:space-between; align-items:flex-end;
    gap:24px; margin-bottom:52px;
    border-bottom:1px solid var(--line);
    padding-bottom:28px;
  }
  .section-head h2{
    font-size:clamp(1.8rem, 3vw, 2.4rem);
    max-width:16ch;
  }
  .section-head p{
    max-width:34ch;
    color:#3d4a43;
    margin:0;
  }
  .section-head--tight{
    border-bottom:none;
    padding-bottom:0;
    margin-bottom:36px;
  }

  .process{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:0;
    border-top:1px solid var(--line);
  }
  .process-step{
    padding:34px 28px 34px 0;
    border-right:1px solid var(--line);
  }
  .process-step:last-child{ border-right:none; padding-right:0; }
  .process-step .n{
    font-family:'Fraunces', serif;
    font-size:0.95rem;
    color:var(--gold-deep);
    margin-bottom:18px;
    display:block;
  }
  .process-step h3{ font-size:1.25rem; margin-bottom:10px; }
  .process-step p{ margin:0; color:#3d4a43; font-size:0.97rem; }

  /* ---------- Catálogo ---------- */
  .catalogo{ background:var(--sand); }
  .grid-catalogo{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:28px;
  }
  .card{
    background:var(--white);
    border-radius:14px;
    box-shadow:0 10px 24px rgba(22,36,30,0.09), 0 2px 6px rgba(22,36,30,0.05);
    overflow:hidden;
    display:flex;
    flex-direction:column;
    transition:transform 0.18s ease, box-shadow 0.18s ease;
  }
  .card:hover{
    transform:translateY(-4px);
    box-shadow:0 18px 34px rgba(22,36,30,0.14), 0 4px 10px rgba(22,36,30,0.07);
  }
  .card .icon{
    width:44px; height:44px;
  }
  .badge{
    font-size:0.76rem;
    font-weight:600;
    color:var(--gold-deep);
    background:var(--sand);
    padding:3px 10px;
    border-radius:20px;
  }
  .card h3{
    font-size:1.12rem;
    font-weight:600;
    margin:2px 0 0;
  }
  .card .meta{ color:#5a655e; font-size:0.9rem; margin:0; }
  .card .price{ margin:2px 0 4px; }
  .card .price strong{
    font-family:'Work Sans', sans-serif;
    font-weight:700;
    font-size:1.4rem;
    white-space:nowrap;
    color:var(--ink);
  }

  .catalogo-note{
    margin-top:28px;
    font-size:0.9rem;
    color:#4c5951;
  }

  /* ---------- Contacto ---------- */
  .contacto .wrap{
    display:grid;
    grid-template-columns:0.9fr 1.1fr;
    gap:64px;
  }
  .info-list{ list-style:none; margin:0; padding:0; }
  .info-list li{
    padding:20px 0;
    border-top:1px solid var(--line);
    display:flex; gap:18px;
  }
  .info-list li:last-child{ border-bottom:1px solid var(--line); }
  .info-list .lbl{
    font-size:0.85rem; color:var(--teal-deep); width:110px; flex-shrink:0;
  }
  .info-list .val{ font-size:1rem; }
  .info-list .val small{ display:block; color:#5a655e; font-size:0.85rem; margin-top:2px;}
  .info-list .val a{
    text-decoration:underline;
    text-decoration-color:var(--gold);
    text-underline-offset:3px;
  }
  .info-list .val a:hover{ color:var(--teal-deep); }

  form{
    display:grid; gap:20px;
  }
  .field{ display:grid; gap:7px; }
  .field label{
    font-family:'Fraunces', serif;
    font-size:0.95rem; color:var(--teal-deep); font-weight:600;
  }
  .field-group-title{
    font-family:'Work Sans', sans-serif !important;
    font-size:1.05rem !important;
    font-weight:700 !important;
    text-transform:uppercase;
    letter-spacing:0.1em;
    color:var(--gold-deep) !important;
    border-bottom:2px solid var(--gold-deep);
    padding-bottom:8px;
    display:block;
  }
  .field input, .field textarea, .field select{
    font-family:'Work Sans', sans-serif;
    font-size:0.96rem;
    padding:13px 15px;
    border:1.5px solid var(--line);
    border-radius:10px;
    background:var(--white);
    color:var(--ink);
    transition:border-color 0.15s ease, box-shadow 0.15s ease;
  }
  .field input::placeholder, .field textarea::placeholder{ color:#a9ada4; }
  .field input:focus, .field textarea:focus, .field select:focus{
    border-color:var(--gold-deep);
    box-shadow:0 0 0 3px rgba(180,137,44,0.15);
    outline:none;
  }
  .field select{
    appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316241E' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 14px center;
    background-size:16px;
    padding-right:40px;
  }
  .field textarea{ min-height:110px; resize:vertical; }
  .row2{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
  form .btn{ justify-self:start; cursor:pointer; }
  .form-status{ font-size:0.88rem; margin:0; min-height:1.2em; }
  .form-status.ok{ color:var(--teal-deep); }
  .form-status.error{ color:#a13b2c; }

  .card-description{
    font-size:0.86rem; color:#4c5951; margin:2px 0 0;
    line-height:1.5;
  }

  /* ---------- Mobile hamburger menu ---------- */
  .hamburger-btn{
    display:none;
    background:none; border:none; cursor:pointer;
    width:38px; height:38px; align-items:center; justify-content:center;
  }
  .hamburger-btn svg{ width:24px; height:24px; }
  .mobile-menu{
    display:none;
    flex-direction:column;
    background:var(--sand);
    border-top:1px solid var(--line);
    padding:8px 32px 18px;
  }
  .mobile-menu.open{ display:flex; }
  .mobile-menu a{
    padding:12px 0; text-decoration:none; color:var(--ink);
    font-size:1rem; border-bottom:1px solid var(--line);
  }
  .mobile-menu a:last-child{ border-bottom:none; }
  .mobile-menu-extra{
    display:flex; align-items:center; justify-content:space-between;
    gap:14px; padding-top:16px;
  }

  /* ---------- Floating WhatsApp button ---------- */
  .whatsapp-float{
    position:fixed; bottom:22px; right:22px; z-index:40;
    width:56px; height:56px; border-radius:50%;
    background:#25D366;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 8px 20px rgba(22,36,30,0.3);
    transition:transform 0.15s ease;
  }
  .whatsapp-float svg{ width:28px; height:28px; }
  .whatsapp-float:hover{ transform:scale(1.08); }

  /* ---------- About / Nosotros ---------- */
  .about-section{ background:var(--white); }
  .brand-chips-row{
    display:flex; flex-wrap:wrap; gap:12px;
    margin-bottom:44px;
  }
  .brand-chip{
    font-family:'Fraunces', serif;
    font-size:0.95rem;
    padding:9px 20px;
    border:1px solid var(--line);
    border-radius:20px;
    color:var(--ink);
  }
  .about-quote{
    margin:0 0 56px;
    padding:32px 36px;
    background:var(--sand);
    border-left:3px solid var(--gold-deep);
    border-radius:4px;
  }
  .about-quote p{
    font-family:'Fraunces', serif;
    font-size:1.25rem;
    font-style:italic;
    margin:0 0 12px;
    color:var(--ink);
    max-width:60ch;
  }
  .about-quote cite{
    font-style:normal;
    font-size:0.9rem;
    color:var(--teal-deep);
  }
  .value-grid{
    display:grid; grid-template-columns:repeat(4,1fr); gap:24px;
    margin-bottom:56px;
  }
  .value-card svg{ width:32px; height:32px; margin-bottom:16px; }
  .value-card h3{ font-size:1.1rem; margin-bottom:8px; }
  .value-card p{ margin:0; font-size:0.9rem; color:#4c5951; }
  .vm-grid{
    display:grid; grid-template-columns:1fr 1fr; gap:32px;
  }
  .vm-card{
    padding:28px; background:var(--sand); border-radius:6px;
  }
  .vm-card .eyebrow-note{ display:block; margin-bottom:10px; font-weight:600; }
  .vm-card p{ margin:0; color:#2c3a33; }

  /* ---------- Experience / trust section ---------- */
  .experience-section{ background:var(--teal-pale); }
  .experience-section h2{
    font-size:clamp(1.6rem, 2.8vw, 2.1rem);
    max-width:22ch;
    margin:12px 0 44px;
  }
  .feature-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
    margin-bottom:48px;
  }
  .feature-card{
    background:var(--white); padding:26px; border-radius:6px;
    border:1px solid var(--line);
  }
  .feature-card h3{ font-size:1.05rem; margin-bottom:8px; }
  .feature-card p{ margin:0; font-size:0.9rem; color:#4c5951; }
  .why-choose{
    background:var(--white); padding:32px 36px; border-radius:6px;
    border:1px solid var(--line);
  }
  .why-choose h3{ font-size:1.2rem; margin-bottom:18px; }
  .why-choose ul{ margin:0; padding:0 0 0 20px; display:grid; gap:10px; }
  .why-choose li{ font-size:0.95rem; color:#2c3a33; }

  /* ---------- CTA banner ---------- */
  .cta-banner{
    background:var(--ink);
    padding:56px 0;
  }
  .cta-banner-inner{
    display:flex; align-items:center; justify-content:space-between;
    gap:32px; flex-wrap:wrap;
  }
  .cta-banner h2{ color:var(--sand); font-size:1.7rem; margin-bottom:8px; }
  .cta-banner p{ color:#cbd6cd; margin:0; max-width:50ch; }
  .cta-banner .btn{ background:var(--gold-deep); border-color:var(--gold-deep); flex-shrink:0; }
  .cta-banner .btn:hover{ background:var(--gold); border-color:var(--gold); }

  /* ---------- Footer ---------- */
  footer{
    background:var(--ink);
    color:var(--sand);
    padding:44px 0 30px;
  }
  footer .wrap{
    display:flex; justify-content:space-between; align-items:center;
    flex-wrap:wrap; gap:16px;
  }
  footer .brand{ color:var(--sand); }
  footer small{ color:#b9c2bb; font-size:0.85rem; }
  footer .foot-links{ display:flex; gap:22px; list-style:none; margin:0; padding:0; }
  footer .foot-links a{ text-decoration:none; font-size:0.9rem; color:#d7dcd4; }
  footer .foot-links a:hover{ color:var(--sand); }

  /* ---------- Responsive ---------- */
  @media (max-width:860px){
    .nav-links{ display:none; }
    .nav-cta-desktop{ display:none; }
    header.site .lang-toggle{ display:none; }
    .hamburger-btn{ display:flex; }
    header.site{
      background:var(--sand);
      backdrop-filter:none;
      border-bottom:none;
    }
    .announce{ display:none; }
    .hero{ padding-top:8px; }
    .hero-blob{ width:420px; height:420px; top:-260px; right:-150px; }
    .hero .wrap{ grid-template-columns:1fr; }
    .hero-art{ max-width:100%; margin:32px auto 0; }
    .process{ grid-template-columns:1fr; }
    .process-step{ border-right:none; border-bottom:1px solid var(--line); padding:28px 0; }
    .process-step:last-child{ border-bottom:none; }
    .grid-catalogo{ grid-template-columns:repeat(2, 1fr); gap:20px; }
    .contacto .wrap{ grid-template-columns:1fr; }
    .row2{ grid-template-columns:1fr; }
    .value-grid{ grid-template-columns:1fr 1fr; }
    .vm-grid{ grid-template-columns:1fr; }
    .feature-grid{ grid-template-columns:1fr; }
    .cta-banner-inner{ flex-direction:column; align-items:flex-start; }
    footer .wrap{ flex-direction:column; align-items:flex-start; }
  }
  @media (max-width:560px){
    .wrap{ padding:0 20px; }
    .stat-row{ gap:28px; flex-wrap:wrap; }
    .value-grid{ grid-template-columns:1fr; }
    .grid-catalogo{ grid-template-columns:1fr; }
  }

/* ==========================================================
   Added for: language toggle, catalog pagination, photo
   gallery, and the admin panel (login + listing management).
   ========================================================== */

/* ---------- Language toggle ---------- */
.lang-toggle{
  display:flex; border:1px solid var(--ink); border-radius:20px;
  overflow:hidden; font-size:0.82rem;
}
.lang-toggle button{
  border:none; background:transparent; color:var(--ink);
  padding:6px 12px; cursor:pointer; font-family:inherit;
}
.lang-toggle button[aria-pressed="true"]{
  background:var(--ink); color:var(--sand);
}

/* ---------- Catalog photo gallery ---------- */
.card .gallery-frame{
  width:100%;
}
.card .gallery{
  position:relative;
  aspect-ratio:1/1;
  width:100%;
  background:var(--sand);
  overflow:hidden;
  border-radius:0;
  border:none;
}
.card .gallery img{
  width:100%; height:100%; object-fit:cover;
  display:none;
}
.card .gallery img.active{ display:block; }
.card .gallery-dots{
  position:absolute; bottom:10px; left:50%; transform:translateX(-50%);
  display:flex; gap:5px;
}
.card .gallery-dots button{
  width:6px; height:6px; border-radius:50%;
  border:1px solid var(--white); background:rgba(255,255,255,0.5);
  padding:0; cursor:pointer;
}
.card .gallery-dots button[aria-current="true"]{ background:var(--white); }
.card .gallery-empty{
  width:100%; height:100%; display:flex; align-items:center; justify-content:center;
  color:#8a9188; font-size:0.85rem;
}

/* ---------- Catalog card content (floating grid layout) ---------- */
.card .card-body{
  flex:1; min-width:0;
  display:flex; flex-direction:column; gap:8px;
  padding:18px 20px 20px;
}
.card .card-top{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
}
.card .ref-tag{ font-size:0.76rem; color:#8a9188; }
.card .card-ask{
  margin-top:10px;
  align-self:flex-start;
  display:inline-flex; align-items:center; gap:6px;
  font-size:0.82rem; font-weight:600;
  color:var(--ink);
  text-decoration:none;
  border:1px solid var(--ink);
  border-radius:20px;
  padding:7px 14px;
}
.card .card-ask:hover{ background:var(--ink); color:var(--white); }
.card .card-ask svg{ width:14px; height:14px; }

/* ---------- Catalog detail list (specs + shipping/returns) ---------- */
.card .detail-list{
  list-style:none; margin:0; padding:10px 0 0;
  border-top:1px solid var(--line);
  display:grid;
  grid-template-columns:repeat(2, auto);
  gap:4px 20px;
  font-size:0.82rem;
}
.card .detail-list li{
  color:#3d4a43;
  line-height:1.5;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.card .detail-list li::before{
  content:none;
}

/* ---------- Pagination ---------- */
.pagination{
  display:flex; align-items:center; justify-content:center;
  gap:18px; margin-top:40px;
}
.pagination button{
  background:transparent; border:1px solid var(--ink); color:var(--ink);
  padding:9px 16px; border-radius:var(--radius); cursor:pointer;
  font-family:'Work Sans', sans-serif; font-size:0.9rem;
}
.pagination button:disabled{ opacity:0.35; cursor:default; }
.pagination button:not(:disabled):hover{ background:var(--ink); color:var(--sand); }
.pagination .page-status{ font-size:0.88rem; color:#4c5951; min-width:90px; text-align:center; }

.catalogo-loading, .catalogo-empty{
  padding:40px 0; text-align:center; color:#4c5951;
}

/* ---------- Lightbox (full-size photo viewer) ---------- */
.lightbox-overlay{
  position:fixed; inset:0; background:rgba(22,36,30,0.88);
  z-index:100; display:none; align-items:center; justify-content:center;
  padding:24px;
}
.lightbox-overlay.open{ display:flex; }
.lightbox{
  position:relative;
  max-width:min(700px, 90vw);
  max-height:90vh;
  display:flex; align-items:center; justify-content:center;
}
.lightbox-img{
  max-width:100%; max-height:90vh;
  border-radius:10px;
  background:var(--white);
  object-fit:contain;
  touch-action:pan-y;
}
.lightbox-close{
  position:absolute; top:-44px; right:0;
  background:none; border:none; color:var(--white);
  font-size:2rem; line-height:1; cursor:pointer;
}
.lightbox-nav{
  position:absolute; top:50%; transform:translateY(-50%);
  width:44px; height:44px; border-radius:50%;
  background:rgba(255,255,255,0.9); border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  font-size:1.6rem; color:var(--ink); line-height:1;
}
.lightbox-prev{ left:-14px; }
.lightbox-next{ right:-14px; }
.lightbox-nav:hover{ background:var(--white); }
.lightbox-dots{
  position:absolute; bottom:-30px; left:50%; transform:translateX(-50%);
  display:flex; gap:7px;
}
.lightbox-dots button{
  width:7px; height:7px; border-radius:50%;
  border:1px solid var(--white); background:rgba(255,255,255,0.4);
  padding:0; cursor:pointer;
}
.lightbox-dots button[aria-current="true"]{ background:var(--white); }
@media (max-width:560px){
  .lightbox-prev{ left:4px; }
  .lightbox-next{ right:4px; }
  .lightbox-close{ top:-38px; }
}

/* ---------- Admin: login ---------- */
.admin-login{
  max-width:380px; margin:120px auto; padding:0 24px;
}
.admin-login h1{ font-size:1.6rem; margin-bottom:8px; }
.admin-login p{ color:#4c5951; margin:0 0 28px; font-size:0.95rem; }
.admin-login form{ display:grid; gap:16px; }
.admin-login .error{ color:#a13b2c; font-size:0.88rem; min-height:1.2em; }

/* ---------- Admin: shell ---------- */
.admin-shell{ display:none; }
.admin-bar{
  display:flex; justify-content:space-between; align-items:center;
  padding:20px 0; border-bottom:1px solid var(--line); margin-bottom:36px;
}
.admin-bar .who{ font-size:0.88rem; color:#4c5951; }

.admin-grid{
  display:grid; grid-template-columns: 1.1fr 1.4fr; gap:48px;
  align-items:start;
}
@media (max-width:900px){ .admin-grid{ grid-template-columns:1fr; } }

.admin-panel{
  border:1px solid var(--line); background:var(--white); padding:26px;
}
.admin-panel h2{ font-size:1.2rem; margin-bottom:18px; }

.photo-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:10px;
  margin-top:6px;
}
.photo-slot{
  aspect-ratio:1; border:1px dashed var(--line); border-radius:var(--radius);
  display:flex; align-items:center; justify-content:center;
  position:relative; overflow:hidden; background:var(--sand);
  cursor:pointer; font-size:0.75rem; color:#7a8279; text-align:center; padding:6px;
}
.photo-slot img{ width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.photo-slot input[type="file"]{
  position:absolute; inset:0; opacity:0; cursor:pointer;
}
.photo-slot .remove{
  position:absolute; top:3px; right:3px; z-index:2;
  background:var(--ink); color:var(--sand); border:none;
  width:18px; height:18px; border-radius:50%; font-size:0.7rem; cursor:pointer;
  line-height:1;
}

.admin-listing-row{
  display:flex; gap:14px; padding:14px 0; border-top:1px solid var(--line);
  align-items:center;
}
.admin-listing-row:first-child{ border-top:none; }
.admin-listing-row img{
  width:56px; height:56px; object-fit:cover; border-radius:var(--radius);
  flex-shrink:0; background:var(--sand);
}
.admin-listing-row .meta{ flex:1; min-width:0; }
.admin-listing-row .meta strong{ display:block; font-size:0.95rem; }
.admin-listing-row .meta span{ font-size:0.82rem; color:#5a655e; }
.admin-listing-row .row-actions{ display:flex; gap:8px; flex-shrink:0; }
.admin-listing-row .row-actions button{
  border:1px solid var(--ink); background:transparent; color:var(--ink);
  padding:6px 12px; border-radius:var(--radius); font-size:0.8rem; cursor:pointer;
}
.admin-listing-row .row-actions button.danger{ border-color:#a13b2c; color:#a13b2c; }

.smart-paste-box{
  background:var(--sand);
  border:1px dashed var(--gold-deep);
  border-radius:10px;
  padding:16px;
}
.smart-paste-box label{ color:var(--gold-deep); }

.spec-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:14px;
}
.spec-grid--3{ grid-template-columns:repeat(3,1fr); }
.spec-item{ display:grid; gap:6px; }
.spec-item label{
  font-family:'Fraunces', serif;
  font-size:0.95rem; color:var(--teal-deep); font-weight:600;
}
@media (max-width:560px){
  .spec-grid, .spec-grid--3{ grid-template-columns:1fr; }
}

.admin-status{ font-size:0.85rem; margin-top:10px; min-height:1.2em; }
.admin-status.ok{ color:var(--teal-deep); }
.admin-status.error{ color:#a13b2c; }
