@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;500;600;700;800;900&display=swap');

:root{--drb:#681f24;--drb2:#431014;--accent:#982f37;--ink:#231d1d;--muted:#746b6c;--bg:#f6f3f1;--card:#fff;--line:#e5ddda;--ok:#177653;--shadow:0 8px 30px rgba(67,16,20,.09);--radius:18px}*{box-sizing:border-box}html{font-family:"Nunito",Arial,Helvetica,sans-serif;color:var(--ink);background:var(--bg);scroll-behavior:smooth}body{margin:0}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}.portal-header{position:sticky;top:0;z-index:30;min-height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:10px clamp(16px,4vw,60px)}.portal-brand{display:flex;align-items:center;gap:12px;font-weight:800}.portal-brand img{height:48px;max-width:120px;object-fit:contain}.portal-brand span{white-space:nowrap}.portal-nav{display:flex;align-items:center;gap:18px;font-size:14px;font-weight:700}.portal-login-link{background:var(--drb);color:white;padding:11px 15px;border-radius:12px}.portal-cart-count{display:inline-grid;place-items:center;min-width:22px;height:22px;border-radius:20px;background:var(--drb);color:white;font-size:12px}.portal-devbar{background:#2c2626;color:#fff;padding:7px clamp(16px,4vw,60px);display:flex;justify-content:space-between;gap:14px;font-size:12px}.portal-devbar div{display:flex;gap:14px}.portal-devbar a{text-decoration:underline}.portal-hero{background:linear-gradient(120deg,#fff 10%,#f1e7e5 100%);border-bottom:1px solid var(--line);padding:70px clamp(16px,7vw,110px)}.portal-hero>div{max-width:800px}.portal-eyebrow{font-size:12px;letter-spacing:.14em;font-weight:900;color:var(--accent)}.portal-hero h1{font-size:clamp(38px,6vw,72px);line-height:.98;margin:14px 0 18px;letter-spacing:-.04em}.portal-hero p{font-size:18px;line-height:1.55;color:var(--muted);max-width:720px}.portal-search{display:grid;grid-template-columns:1fr auto;max-width:680px;margin-top:28px;background:white;border:1px solid var(--line);border-radius:15px;overflow:hidden;box-shadow:var(--shadow)}.portal-search input{border:0;outline:0;padding:17px 18px;font-size:16px}.portal-search button{border:0;background:var(--drb);color:white;padding:0 24px;font-weight:800}.portal-price-lock,.portal-customer-banner{display:inline-block;margin-top:16px;padding:10px 13px;border-radius:10px;background:#fff;border:1px solid var(--line);font-size:13px}.portal-customer-banner{background:#eaf7f2;color:#105d43;border-color:#c9eadc}.portal-section{max-width:1380px;margin:0 auto;padding:52px clamp(16px,4vw,60px)}.portal-section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px}.portal-section-head h1,.portal-section-head h2{margin:4px 0 0}.portal-section-head h2{font-size:30px}.portal-section-head p{margin:7px 0 0;color:var(--muted)}.portal-categories{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.portal-category-card{border:1px solid var(--line);background:var(--card);border-radius:15px;padding:18px;text-align:left;display:grid;gap:8px;cursor:pointer;transition:.18s;min-height:86px}.portal-category-card:hover,.portal-category-card.active{transform:translateY(-2px);border-color:#c8a6a8;box-shadow:var(--shadow)}.portal-category-card.active{background:#f5e9e9}.portal-category-card span{font-size:12px;color:var(--muted)}.portal-product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.portal-product-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 2px 14px rgba(0,0,0,.04);display:flex;flex-direction:column}.portal-product-image{aspect-ratio:1.25;background:#f0ece9;display:grid;place-items:center;overflow:hidden}.portal-product-image img{width:100%;height:100%;object-fit:contain;background:#fff}.portal-product-image span{font-size:28px;font-weight:900;color:#c7b9b6}.portal-product-body{padding:15px;display:flex;flex-direction:column;gap:8px;min-height:170px}.portal-product-body small{font-size:11px;color:var(--muted);text-transform:uppercase}.portal-product-body h3{font-size:15px;line-height:1.35;margin:0;flex:1}.portal-product-price{font-size:19px;font-weight:900;color:var(--drb)}.portal-product-price em{display:block;font-size:11px;font-weight:600;color:var(--muted);font-style:normal;margin-top:2px}.portal-price-hidden{font-size:13px;font-weight:800;color:var(--drb);border-top:1px solid var(--line);padding-top:10px}.portal-add-row{display:grid;grid-template-columns:64px 1fr;gap:7px}.portal-add-row input{min-width:0;border:1px solid var(--line);border-radius:9px;padding:8px;text-align:center}.portal-add{border:0;border-radius:9px;background:var(--drb);color:#fff;font-weight:800}.portal-add.added{background:var(--ok)}.portal-empty{grid-column:1/-1;padding:50px;text-align:center;color:var(--muted);background:#fff;border:1px dashed var(--line);border-radius:var(--radius)}.portal-load-more-wrap{text-align:center;margin-top:22px}.portal-btn{border:0;border-radius:12px;min-height:46px;padding:11px 18px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.portal-btn.primary{background:var(--drb);color:#fff}.portal-btn.secondary{background:#fff;color:var(--drb);border:1px solid var(--drb)}.portal-clear-filter{border:0;background:transparent;color:var(--drb);font-weight:800;cursor:pointer}.portal-home-section{border-top:1px solid var(--line)}.portal-footer{background:var(--drb2);color:#fff;padding:36px clamp(16px,4vw,60px);display:flex;justify-content:space-between;gap:20px}.portal-footer div{display:grid;gap:5px}.portal-footer span{opacity:.7;font-size:13px}.portal-auth-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,var(--drb2),var(--drb))}.portal-auth-card{width:min(100%,420px);background:#fff;padding:28px;border-radius:22px;box-shadow:0 24px 80px rgba(0,0,0,.28)}.portal-auth-logo{height:56px;max-width:130px;object-fit:contain}.portal-auth-card h1{margin:18px 0 7px}.portal-auth-card>p,.portal-auth-card>small{color:var(--muted);line-height:1.5}.portal-stack{display:grid;gap:13px;margin:20px 0}.portal-stack label,.portal-admin-form label,.portal-order-form label{display:grid;gap:6px;font-weight:800}.portal-stack input,.portal-admin-form input,.portal-order-form textarea,.portal-admin-search input,.portal-pending-list select{border:1px solid var(--line);border-radius:11px;padding:12px;outline:none;background:#fff}.portal-notice{padding:12px 14px;border-radius:11px;background:#eef1f4;margin:14px 0}.portal-notice.error{background:#fde9e9;color:#8f2828}.portal-notice.success{background:#e7f6ef;color:#126343}.portal-back{display:block;text-align:center;margin-top:16px;color:var(--drb);font-weight:700}.portal-success-mark{width:64px;height:64px;border-radius:50%;background:#e7f6ef;color:var(--ok);display:grid;place-items:center;font-size:34px;margin:18px 0}.portal-admin{max-width:1200px}.portal-admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:24px 0}.portal-admin-stats>div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;display:grid;gap:6px}.portal-admin-stats strong{font-size:28px;color:var(--drb)}.portal-admin-stats span{font-size:12px;color:var(--muted)}.portal-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}.portal-admin-grid>a,.portal-upload-box{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;display:grid;gap:8px}.portal-admin-grid>a:hover{border-color:#c8a6a8;box-shadow:var(--shadow)}.portal-admin-grid span,.portal-upload-box p{color:var(--muted);font-size:13px;line-height:1.45}.portal-admin-form{max-width:520px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;display:grid;gap:14px;margin-bottom:30px}.portal-check{grid-template-columns:auto 1fr!important;justify-content:start!important;align-items:center}.portal-table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:14px}.portal-table{width:100%;border-collapse:collapse}.portal-table th,.portal-table td{text-align:left;padding:11px 13px;border-bottom:1px solid var(--line);font-size:13px;white-space:nowrap}.portal-category-counts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;margin:24px 0}.portal-category-counts>div{background:#fff;border:1px solid var(--line);border-radius:11px;padding:11px;display:flex;justify-content:space-between;gap:10px;font-size:13px}.portal-pending-list,.portal-product-admin-list{display:grid;gap:8px}.portal-pending-list form,.portal-product-admin-list form{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;display:grid;grid-template-columns:minmax(280px,1fr) minmax(180px,260px) auto;gap:10px;align-items:center}.portal-pending-list form>div,.portal-product-admin-list form>div{display:grid;gap:3px}.portal-pending-list small,.portal-product-admin-list small{color:var(--muted)}.portal-pending-list button,.portal-product-admin-list button{border:0;background:var(--drb);color:#fff;border-radius:9px;padding:10px 13px;font-weight:800}.portal-product-admin-list form{grid-template-columns:minmax(280px,1fr) auto auto auto auto}.portal-product-admin-list label{white-space:nowrap;font-size:13px}.portal-admin-search{display:grid;grid-template-columns:1fr auto;gap:10px;margin-bottom:20px}.portal-upload-box code{background:#f5f1ef;padding:10px;border-radius:8px;overflow-wrap:anywhere}.portal-cart-page{max-width:1000px}.portal-cart-list{display:grid;gap:9px}.portal-cart-row{display:grid;grid-template-columns:minmax(280px,1fr) auto auto auto;gap:14px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px}.portal-cart-row>div:first-child{display:grid;gap:4px}.portal-cart-row small,.portal-cart-row span{color:var(--muted);font-size:12px}.portal-cart-qty{display:grid;grid-template-columns:36px 48px 36px}.portal-cart-qty button,.portal-cart-qty input{border:1px solid var(--line);background:#fff;text-align:center;height:36px}.portal-remove{border:0;background:transparent;color:#a83232;cursor:pointer}.portal-totals{margin:20px 0 20px auto;max-width:380px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}.portal-totals>div{display:flex;justify-content:space-between;padding:7px}.portal-totals .grand{font-size:20px;border-top:1px solid var(--line);margin-top:6px;padding-top:13px}.portal-order-form{max-width:600px;margin-left:auto;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;display:grid;gap:12px}.portal-order-form p{font-size:12px;color:var(--muted)}@media(max-width:760px){.portal-header{align-items:flex-start}.portal-nav{flex-wrap:wrap;justify-content:flex-end;gap:10px}.portal-nav>a:not(.portal-login-link){font-size:12px}.portal-brand span{display:none}.portal-devbar{display:grid}.portal-devbar div{flex-wrap:wrap}.portal-hero{padding-top:48px}.portal-categories{grid-template-columns:1fr 1fr}.portal-product-grid{grid-template-columns:1fr 1fr}.portal-section{padding-top:36px;padding-bottom:36px}.portal-product-admin-list form,.portal-pending-list form,.portal-cart-row{grid-template-columns:1fr}.portal-footer{display:grid}.portal-section-head{align-items:flex-start;flex-direction:column}.portal-admin-search{grid-template-columns:1fr}.portal-product-body{padding:12px}}@media(max-width:460px){.portal-categories,.portal-product-grid{grid-template-columns:1fr}.portal-hero h1{font-size:42px}.portal-search{grid-template-columns:1fr}.portal-search button{padding:13px}.portal-header{padding:8px 10px}.portal-nav a{display:none}.portal-nav .portal-login-link,.portal-nav a[href*="cart"]{display:block}.portal-devbar{font-size:10px}.portal-product-image{aspect-ratio:1.55}}
.portal-btn-small{min-height:34px;padding:7px 11px;border-radius:9px;font-size:12px;white-space:nowrap}.portal-btn.danger{background:#a83232;color:#fff}.portal-admin-thumb{width:54px;height:54px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:8px;display:block}.portal-admin-noimage{display:inline-grid;place-items:center;width:54px;height:54px;border:1px dashed var(--line);border-radius:8px;color:var(--muted);font-size:9px;text-align:center}.portal-table-description{white-space:normal!important;min-width:280px;line-height:1.35}.portal-image-editor{display:grid;grid-template-columns:minmax(260px,420px) 1fr;gap:28px;align-items:start}.portal-image-editor-preview{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;display:grid;gap:10px;text-align:center}.portal-image-editor-preview img{width:100%;aspect-ratio:1/1;object-fit:contain;background:#fff;border-radius:12px}.portal-image-editor-preview>span{font-size:12px;color:var(--muted)}.portal-image-placeholder{aspect-ratio:1/1;display:grid;place-items:center;background:#f0ece9;border-radius:12px;color:#c1b3b0;font-weight:900;font-size:32px;line-height:1;text-align:center}.portal-image-editor-data>small{color:var(--muted);font-weight:800}.portal-image-editor-data h2{margin:7px 0 18px;line-height:1.25}.portal-image-upload-form{max-width:none;margin:0}.portal-image-upload-form input[type=file]{border:1px dashed var(--line);border-radius:12px;padding:18px;background:#faf8f7}.portal-help{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.portal-image-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}@media(max-width:760px){.portal-image-editor{grid-template-columns:1fr}.portal-image-search-table th:first-child,.portal-image-search-table td:first-child{display:none}}


/* Ajuste visual - administración de imágenes */
.portal-image-import-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:22px 0}.portal-image-import-card{min-width:0;background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;display:flex;flex-direction:column;gap:18px;box-sizing:border-box;overflow:hidden}.portal-image-import-card-body{min-width:0;display:grid;gap:10px}.portal-image-import-kicker{font-size:10px;letter-spacing:.12em;font-weight:900;color:var(--drb);opacity:.72}.portal-image-import-card h3{font-size:16px;margin:0;line-height:1.25}.portal-image-import-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.portal-image-import-action{width:100%;margin-top:auto;box-sizing:border-box}.portal-image-file{display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box;padding:10px;border:1px solid var(--line);border-radius:10px;background:#faf8f7;font-size:12px;overflow:hidden}.portal-image-file::file-selector-button{border:0;border-radius:8px;padding:8px 10px;margin-right:8px;background:#eee8e5;color:#312724;font-weight:800;cursor:pointer}.portal-image-path{display:block;width:100%;max-width:100%;box-sizing:border-box;background:#f5f1ef;padding:11px 12px;border-radius:10px;overflow-wrap:anywhere;word-break:break-word;font-size:12px}.portal-image-process-bar{margin:4px 0 24px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:18px}.portal-image-process-bar>div{min-width:0;display:grid;gap:4px}.portal-image-process-bar strong{font-size:14px}.portal-image-process-bar span{font-size:12px;color:var(--muted);line-height:1.4}.portal-image-process-bar .portal-btn{flex:0 0 auto;white-space:nowrap}
@media(max-width:900px){.portal-image-import-grid{grid-template-columns:1fr 1fr}.portal-image-import-card:last-child{grid-column:1/-1}}
@media(max-width:620px){.portal-image-import-grid{grid-template-columns:1fr}.portal-image-import-card:last-child{grid-column:auto}.portal-image-process-bar{align-items:stretch;flex-direction:column}.portal-image-process-bar .portal-btn{width:100%}}

/* =========================================================
   AJUSTE CATÁLOGO - MOSTRAR FOTO COMPLETA DEL PRODUCTO
   25-08-2026
   ========================================================= */
.portal-product-image{
    aspect-ratio:1 / 1 !important;
    min-height:220px;
    padding:12px;
    background:#fff !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    overflow:hidden;
}

.portal-product-image img{
    display:block !important;
    width:100% !important;
    height:100% !important;
    max-width:100% !important;
    max-height:100% !important;
    object-fit:contain !important;
    object-position:center center !important;
    background:#fff !important;
}

@media(max-width:760px){
    .portal-product-image{
        min-height:190px;
        aspect-ratio:1 / 1 !important;
        padding:10px;
    }
}

@media(max-width:460px){
    .portal-product-image{
        min-height:240px;
        aspect-ratio:1 / 1 !important;
    }
}

