@import url('/tokens.css');
/* TITAN-IMP · DESIGN.md · referencias medidas: adidas (catálogo en tinta, producto pone el color)
 * y ns-architects (papel cálido, libro como ficha). Gesto propio: caja rotulada del logo.
 * Base 320px, ampliación por min-width. Sin sombras, sin radios, sin degradados. */
@font-face{font-family:Anton;src:url('/assets/fonts/anton-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Archivo;src:url('/assets/fonts/archivo-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Archivo;src:url('/assets/fonts/archivo-latin-600-normal.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:Archivo;src:url('/assets/fonts/archivo-latin-800-normal.woff2') format('woff2');font-weight:700 900;font-display:swap}

/* Base */
*{box-sizing:border-box}html,body{margin:0;overflow-x:clip}html{scroll-padding-top:16px}
body{background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
body:has(dialog[open]){overflow-y:hidden}
h1,h2,h3,p,figure{margin:0}h1,h2,h3{min-width:0;overflow-wrap:anywhere;font-weight:400}
h1,h2{font-family:var(--display);text-transform:uppercase;line-height:1;letter-spacing:.005em}
h2{font-size:40px}h3{line-height:1.25}p+p{margin-top:12px}
button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}
a{color:inherit;text-decoration:none}a,button{white-space:nowrap}
img,svg{display:block;max-width:100%}img{height:auto}button svg,a svg{flex-shrink:0}
input,select,textarea{width:100%;min-height:48px;border:1px solid var(--outline);border-radius:0;background:var(--surface);color:var(--ink);padding:10px 12px;min-width:0;outline:2px solid transparent;outline-offset:2px}
input[type=checkbox]{width:20px;min-height:20px;accent-color:var(--ink)}textarea{min-height:110px;resize:vertical}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
label{display:grid;gap:6px;font-weight:600;font-size:14px}label small{font-weight:400;color:var(--muted)}
button:disabled{cursor:not-allowed}
button:active:not(:disabled),.button:active{transform:translateY(1px)}
[hidden]{display:none!important}
.wrap{width:100%;max-width:1440px;margin-inline:auto;padding-inline:16px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.skip{position:fixed;left:16px;top:-100px;z-index:99;background:var(--ink);color:var(--paper);padding:12px 16px}.skip:focus{top:12px}

/* Botones y etiquetas: la caja rotulada del logo */
.button{min-height:48px;padding:12px 20px;display:inline-flex;align-items:center;justify-content:center;gap:10px;border:2px solid var(--ink);border-radius:0;background:var(--ink);color:var(--paper);font-size:13px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;line-height:1.2;text-align:center;white-space:normal;transition:background-color 150ms,color 150ms,border-color 150ms}
.button.ghost,.button.secondary{background:transparent;color:var(--ink)}
.button.inverse{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.button:disabled{background:transparent;color:var(--muted);border-color:var(--line)}
.icon-button,.dialog-close{width:44px;height:44px;flex-shrink:0;border:0;background:transparent;border-radius:0;font-size:30px;line-height:1;display:grid;place-items:center}
.text-link{background:none;border:0;padding:0;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px;font-weight:600;min-height:44px;display:inline-flex;align-items:center}
.framed{display:inline-flex;align-items:center;border:2px solid var(--ink);background:var(--paper);color:var(--ink);padding:3px 8px;font-family:var(--body);font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;line-height:1.3;white-space:nowrap}
.tag{display:inline-block;background:var(--tag);color:var(--on-tag);padding:2px 6px;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;line-height:1.4}
.muted,.fine-print{color:var(--muted)}.fine-print{font-size:13px;line-height:1.5}
.error-text{color:var(--error);font-size:14px;font-weight:600}
.status{padding:24px;border:2px solid var(--ink);background:var(--surface);margin-block:24px}.status p{margin-bottom:12px}
.image-error{display:grid;place-items:center;min-height:100px;padding:12px;white-space:normal;text-align:center;color:var(--muted);font-size:13px}

/* Barra de precios por mayor */
.announce{background:var(--ink);color:var(--paper);display:flex;align-items:center;gap:16px;min-height:40px;padding:6px 16px;font-size:13px;font-weight:600;overflow:hidden;white-space:nowrap}
.announce>span:first-child{background:var(--tag);color:var(--on-tag);padding:2px 8px;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.announce>span:nth-of-type(n+3){display:none}
.announce>a{margin-left:auto;text-decoration:underline;text-underline-offset:4px;min-height:32px;display:flex;align-items:center}

/* Cabecera: buscador protagonista */
.site-header{background:var(--paper);border-bottom:2px solid var(--ink)}
.masthead{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px 16px;padding-block:12px}
.brand{display:flex;align-items:center;min-height:44px;font-family:var(--display);font-size:30px;text-transform:uppercase}
.brand img{width:132px;height:44px;object-fit:contain;object-position:left center;mix-blend-mode:multiply}
.brand .image-error{font-size:24px;min-height:40px;padding:0}
.search{grid-column:1/-1;grid-row:2;position:relative;display:flex;align-items:center}
.search>span{position:absolute;left:14px;pointer-events:none}
.search input{height:52px;border:2px solid var(--ink);background:var(--surface);padding-left:46px;padding-right:46px;font-size:16px}
.search input::placeholder{color:var(--muted)}
.search .icon-button{position:absolute;right:2px;font-size:26px}
.cart-button{min-height:48px;display:inline-flex;align-items:center;gap:10px;padding:8px 14px;border:2px solid var(--ink);background:var(--ink);color:var(--paper);font-size:13px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.count{display:grid;place-items:center;background:var(--tag);color:var(--on-tag);min-width:24px;height:24px;padding-inline:6px;border-radius:9999px;font-size:12px;letter-spacing:0;font-variant-numeric:tabular-nums}
.main-nav{display:flex;gap:24px;align-items:center;min-height:44px;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;overflow-x:auto}
.main-nav a{min-height:44px;display:flex;align-items:center;border-bottom:3px solid transparent}

/* Vidriera de portadas */
.hero{position:relative;background:var(--paper)}
.hero-wall{--cols:4;display:grid;gap:2px;overflow:hidden;background:var(--ink);border-bottom:2px solid var(--ink)}
.wall-row{overflow:hidden}
.wall-track{display:flex;width:max-content;animation:wall-slide var(--wall-duration,60s) linear infinite}
.wall-row.reverse .wall-track{animation-direction:reverse}
.wall-track img{flex:0 0 auto;width:calc(100vw / var(--cols) - 2px);margin-right:2px;aspect-ratio:2/3;object-fit:cover;background:var(--shelf)}
@keyframes wall-slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.hero-copy{position:relative;margin-top:-40px;padding-inline:8px}
.hero.no-wall .hero-copy{margin-top:32px}
.hero-panel{background:var(--paper);border:2px solid var(--ink);padding:20px 18px 18px;max-width:680px}
.hero h1{font-size:46px;line-height:.98;max-width:16ch;text-wrap:balance}
.hero-intro{margin-top:14px;max-width:40ch;font-size:16px;line-height:1.55;color:var(--ink-soft)}
.hero-actions{display:flex;align-items:center;gap:10px 16px;margin-top:20px;flex-wrap:wrap}
.hero-actions .text-link{font-size:14px}

/* Escala de precio por cantidad */
.main-content>section:not(.hero){margin-top:64px}
.section-heading{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:16px;margin-bottom:24px}
.tier-progress{background:var(--tag);color:var(--on-tag);padding:8px 12px;font-size:14px;font-weight:600;max-width:52ch}
.tier-scale{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 4px}
.tier{position:relative;display:flex;flex-direction:column;gap:4px;padding-top:14px;border-top:6px solid var(--ink)}
.tier-range{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.tier>strong{font-family:var(--display);font-weight:400;font-size:40px;line-height:1.05;font-variant-numeric:tabular-nums}
.tier>small{font-size:13px;color:var(--muted)}
.tier.active{border-top-color:var(--tag)}
.tier.active::after{content:'Tu pedido';position:absolute;top:-6px;right:0;background:var(--tag);color:var(--on-tag);padding:2px 8px;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;transform:translateY(-100%)}
.special-tier{background:var(--ink);color:var(--paper);padding:14px 14px 16px;border-top-color:var(--tag)}
.special-tier>small{color:#cfcabd}
.wholesale>.fine-print{margin-top:24px;max-width:80ch}

/* Promociones */
.promos{display:grid;gap:4px}
.promo{min-height:168px;padding:24px 20px;display:flex;flex-direction:column;justify-content:space-between;gap:24px;white-space:normal;background:var(--tag);color:var(--on-tag)}
.promo-1{background:var(--ink);color:var(--paper)}
.promo h2{font-size:34px;max-width:16ch}
.promo p{font-size:15px;margin-top:10px;max-width:44ch}
.promo>svg{width:32px;height:32px;align-self:flex-end;transition:transform 200ms cubic-bezier(.3,0,0,1)}

/* Catálogo */
.catalogue-heading{margin-bottom:16px}
.catalogue-heading h2{font-size:56px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.catalogue-heading .framed{font-size:12px}
.sort-label{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;width:100%}
.sort-label select{flex:1;font-size:15px;font-weight:600;letter-spacing:0;text-transform:none;border:2px solid var(--ink);background:var(--surface)}
.category-list{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}
.category-chip{background:transparent;border:2px solid var(--ink);padding:8px 14px;min-height:44px;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;white-space:normal;text-align:left}
.category-chip.selected{background:var(--ink);color:var(--paper)}
.book-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 4px}
.book-card{display:flex;flex-direction:column;min-width:0}
.cover-button{position:relative;display:grid;place-items:center;width:100%;aspect-ratio:3/4;padding:12% 15%;background:var(--shelf);border:0;white-space:normal}
.book-image{width:100%;height:100%;object-fit:contain;transition:transform 220ms cubic-bezier(.3,0,0,1)}
.cover-label{position:absolute;left:8px;top:8px}
.book-meta{padding:12px 2px 0;flex:1}
.book-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px}
.book-price strong{font-size:18px;font-weight:800;font-variant-numeric:tabular-nums}
.book-price del,.detail-price del{font-size:13px;color:var(--muted)}
.book-title{display:block;margin-top:4px;min-height:44px;background:none;border:0;padding:0;text-align:left;white-space:normal;font-size:15px;font-weight:600;line-height:1.3;overflow-wrap:anywhere}
.book-author{font-size:13px;color:var(--muted)}
.add-button{margin-top:12px;width:100%;min-height:44px;padding:8px;border:2px solid var(--ink);background:var(--ink);color:var(--paper);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;white-space:normal;line-height:1.2;transition:background-color 150ms,color 150ms}
.add-button:disabled{background:transparent;color:var(--muted);border-color:var(--line)}
.empty-state{padding:40px 20px;border:2px solid var(--ink);background:var(--surface);white-space:normal}
.empty-state h3{font-family:var(--display);font-weight:400;font-size:32px;text-transform:uppercase;line-height:1}
.empty-state p{color:var(--muted);margin:12px 0 20px;max-width:44ch}

/* Tapa tipográfica cuando no hay portada confirmada */
.type-cover{height:100%;max-width:100%;aspect-ratio:2/3;display:flex;flex-direction:column;gap:6px;padding:10% 9%;background:var(--ink);color:var(--paper);text-align:left;overflow:clip}
.type-cover strong{font-family:var(--display);font-weight:400;font-size:clamp(18px,4.6vw,30px);line-height:1.02;text-transform:uppercase;overflow-wrap:anywhere}
.type-cover>span{font-size:11px}
.type-cover>b{margin-top:auto;align-self:flex-start;border:2px solid currentColor;padding:2px 6px;font-size:9px;font-weight:800;letter-spacing:.24em}
.tone-1{background:var(--tag);color:var(--on-tag)}
.tone-2{background:var(--paper);color:var(--ink);outline:2px solid var(--ink);outline-offset:-2px}

/* Envíos y pie */
.shipping{display:grid;gap:16px;border-top:2px solid var(--ink);padding-top:20px}
.shipping h2{font-size:44px}
.shipping-zones{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.shipping-zones li{display:grid;gap:4px;padding:16px;background:var(--shelf);border-top:6px solid var(--ink)}
.shipping-zones strong{font-family:var(--display);font-weight:400;font-size:28px;text-transform:uppercase;line-height:1}
.shipping-zones span{font-size:16px}
.shipping-zones .zone-cost{font-weight:800;font-variant-numeric:tabular-nums}
.shipping-zones small{font-size:13px;color:var(--muted)}
.cart-shipping{display:grid;gap:12px;padding:14px;background:var(--paper);border:2px solid var(--ink)}
.ship-detail{font-size:13px;color:var(--ink-soft)}
.sub-row{display:flex;justify-content:space-between;gap:16px;font-size:14px;font-variant-numeric:tabular-nums}
.site-footer{margin-top:88px;background:var(--ink);color:var(--paper);padding-block:40px 16px}
.footer-main{display:flex;flex-direction:column;align-items:flex-start;gap:28px}
.footer-logo{width:168px;height:56px;object-fit:contain;object-position:left center;filter:invert(1);mix-blend-mode:screen}
.footer-brand{font-family:var(--display);font-size:36px;font-weight:400;text-transform:uppercase}
.footer-main p{font-size:15px;color:#cfcabd;max-width:44ch;margin-top:12px}
.footer-bottom{display:flex;gap:16px;justify-content:space-between;flex-wrap:wrap;font-size:13px;color:#cfcabd;margin-top:32px;padding-top:12px;border-top:1px solid #4a4943}
.footer-bottom a{min-height:44px;display:flex;align-items:center;text-decoration:underline;text-underline-offset:4px}
.social-links{display:flex;gap:20px;flex-wrap:wrap;margin-top:12px;font-size:14px}
.social-links a{min-height:44px;display:flex;align-items:center;text-decoration:underline;text-underline-offset:4px}
.site-footer :focus-visible,.dialog-heading :focus-visible,.announce :focus-visible{outline-color:var(--paper)}

/* Diálogos */
dialog{padding:0;color:var(--ink);background:var(--paper);border:0;border-radius:0;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);overflow-y:auto}
dialog::backdrop{background:var(--scrim)}
dialog[open]{animation:panel-in 180ms cubic-bezier(.3,0,0,1)}
.dialog-close{position:absolute;right:8px;top:8px;z-index:1;background:var(--paper)}
.detail-dialog{width:920px}
.detail-cover{display:grid;place-items:center;background:var(--shelf);height:340px;padding:28px}
.detail-cover .book-image{transition:none}
.detail-info{padding:24px 20px 28px}
.detail-info h2{font-size:40px;margin-top:16px}
.detail-author{margin-top:8px;font-size:18px}
.detail-info>.fine-print{margin-top:12px}
.description{white-space:pre-line;margin-top:20px;color:var(--muted);max-width:60ch}
.detail-price{display:flex;align-items:center;gap:12px;margin-top:24px;padding-top:16px;border-top:2px solid var(--ink)}
.detail-price strong{font-size:32px;font-weight:800;font-variant-numeric:tabular-nums}
.stock-text{color:var(--success);font-size:14px;font-weight:600;margin-block:8px 16px}
.detail-info>.muted{font-size:14px;margin-block:8px 16px}
.detail-info>.button{width:100%}
.cart-dialog{position:fixed;inset:0 0 0 auto;margin:0;max-width:100vw;max-height:100dvh;width:min(100vw,480px);height:100dvh;display:none;flex-direction:column}
.cart-dialog[open]{display:flex;animation:drawer-in 220ms cubic-bezier(.3,0,0,1)}
.dialog-heading{display:flex;align-items:start;gap:16px;justify-content:space-between;padding:20px;background:var(--ink);color:var(--paper)}
.dialog-heading h2{font-size:36px}
.dialog-heading p{font-size:14px;margin-top:8px;color:#cfcabd}
.cart-progress{background:var(--tag);color:var(--on-tag);padding:12px 20px;font-size:14px;font-weight:600}
.cart-items{padding:0 20px;flex:1}
.cart-items>.empty-state{margin-top:20px}
.cart-item{display:grid;grid-template-columns:56px minmax(0,1fr);gap:14px;padding-block:18px;border-bottom:1px solid var(--line)}
.cart-item>.book-image,.cart-item>.type-cover{width:56px;height:84px;object-fit:cover}
.cart-item>.type-cover{padding:5px;gap:2px}.cart-item>.type-cover strong{font-size:10px}.cart-item>.type-cover span,.cart-item>.type-cover b{display:none}
.cart-item h3{font-size:15px;font-weight:600;white-space:normal}
.cart-item .muted{font-size:13px;margin-top:2px}
.line-total{grid-column:2;font-size:16px;font-weight:800;font-variant-numeric:tabular-nums}
.quantity-control{display:flex;align-items:center;margin-top:10px;flex-wrap:wrap}
.quantity-control>button:not(.text-link){width:44px;height:44px;border:2px solid var(--ink);background:var(--surface);font-size:20px;font-weight:600}
.quantity-control>button:disabled{color:var(--line);border-color:var(--line)}
.quantity-input{width:56px;min-height:44px;height:44px;padding:6px;margin-inline:-2px;text-align:center;border:2px solid var(--ink);font-weight:600;font-variant-numeric:tabular-nums;appearance:textfield;position:relative;z-index:0}
.quantity-input::-webkit-inner-spin-button,.quantity-input::-webkit-outer-spin-button{appearance:none;margin:0}
.quantity-control .remove-item{margin-left:14px;font-size:13px}
.cart-footer{padding:20px;display:grid;gap:14px;border-top:2px solid var(--ink);background:var(--surface)}
.total-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;font-size:13px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.total-row strong{font-family:var(--display);font-weight:400;font-size:40px;letter-spacing:0;font-variant-numeric:tabular-nums}
.checkout-button{width:100%}
.clear-cart{justify-content:center;font-size:14px}
.confirm-dialog{padding:24px;width:440px}
.confirm-dialog h2{font-size:32px}
.confirm-dialog p{margin-block:14px}
.form-actions{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap;margin-top:20px}
.toast{position:fixed;bottom:20px;left:16px;right:16px;max-width:520px;margin-inline:auto;background:var(--ink);color:var(--paper);border-left:6px solid var(--tag);padding:14px 16px;z-index:20;font-size:14px;font-weight:600}
@keyframes panel-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes drawer-in{from{transform:translateX(24px);opacity:0}to{transform:none;opacity:1}}
body[data-input=keyboard] dialog[open]{animation:none}
.searching #hero,.searching #mayoristas,.searching #promociones{display:none}
.searching .catalogue{margin-top:32px!important}

/* Administración y guía */
.admin-header{background:var(--paper);border-bottom:2px solid var(--ink)}
.admin-header>.wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:12px;flex-wrap:wrap}
.admin-header .brand{font-size:28px}
.admin-header-actions{display:flex;gap:16px;align-items:center;font-size:14px;font-weight:600;flex-wrap:wrap;justify-content:flex-end}
.admin-header-actions>a{min-height:44px;display:flex;align-items:center;text-decoration:underline;text-underline-offset:4px}
.admin-main{padding-block:24px 64px}
.admin-main>h1{font-size:44px;margin-bottom:20px}
.login-box{max-width:460px;margin:32px auto;padding:28px 24px;background:var(--surface);border:2px solid var(--ink)}
.login-box h1{font-size:40px}.login-box p{margin-block:14px;color:var(--muted)}
.stack{display:grid;gap:16px}
.admin-nav{display:flex;flex-wrap:wrap;gap:8px;padding-bottom:16px;margin-bottom:24px;border-bottom:2px solid var(--ink)}
.admin-nav button{background:transparent;border:2px solid var(--ink);min-height:44px;padding:8px 14px;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.admin-nav button[aria-selected=true]{background:var(--ink);color:var(--paper)}
.toolbar{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.toolbar>div{display:flex;gap:12px;flex-wrap:wrap}.toolbar input{flex:1}.toolbar select{width:100%}
.table-scroll{position:relative;overflow-x:auto;max-width:100%;border:2px solid var(--ink)}
table{width:100%;border-collapse:collapse;background:var(--surface);font-size:14px;text-align:left}
th{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;background:var(--shelf)}
th,td{padding:12px;border-bottom:1px solid var(--line);vertical-align:middle}tr:last-child td{border-bottom:0}
.admin-book-title{min-width:220px;white-space:normal;display:flex;gap:12px;align-items:center}.admin-book-title strong{display:block;font-size:15px}.admin-book-title small{color:var(--muted);margin-right:6px}
.admin-header .brand img{width:120px;height:40px;object-fit:contain;object-position:left center;mix-blend-mode:multiply}
.stock-input{width:96px;min-height:44px;padding:8px 10px;border:2px solid var(--ink);background:var(--paper);font-weight:800;font-variant-numeric:tabular-nums;transition:background-color 150ms}
.stock-input.saving{background:var(--tag)}
.admin-thumb{width:36px;height:54px;object-fit:cover;flex-shrink:0;background:var(--shelf)}.admin-thumb.empty{display:block;border:2px dashed var(--outline);background:transparent}
.cover-library{display:grid;grid-template-columns:minmax(0,1fr);gap:4px}
.library-card{display:grid;grid-template-columns:96px minmax(0,1fr);gap:16px;padding:16px;background:var(--paper);border:1px solid var(--line)}
.library-card img{width:96px;height:144px;object-fit:cover;background:var(--shelf)}
.library-card strong{display:block;font-size:15px;line-height:1.3}.library-card small{display:block;color:var(--muted);font-size:13px}
.library-card p{font-size:13px;margin-block:10px 12px}.library-card .in-use{color:var(--success);font-weight:600}
.library-card .button{min-height:44px;padding:8px 12px;font-size:11px}
.cover-field{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;align-items:start}
.cover-preview{width:72px;height:108px;background:var(--shelf);display:grid;place-items:center;text-align:center;font-size:12px;color:var(--muted);padding:4px}
.cover-preview img{width:100%;height:100%;object-fit:cover}
.cover-picker{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:8px;border:2px solid var(--ink);background:var(--surface)}
.picker-item{display:grid;gap:6px;padding:6px;border:2px solid transparent;background:transparent;white-space:normal;text-align:left;font-size:12px;line-height:1.25}
.picker-item img{width:100%;aspect-ratio:2/3;object-fit:cover;background:var(--shelf)}
.picker-item.selected{border-color:var(--ink);background:var(--tag)}
.table-actions{display:flex;gap:8px}
.table-actions button{min-height:44px;border:2px solid var(--ink);background:transparent;padding:8px 12px;font-size:13px;font-weight:600}
.badge{font-size:11px;font-weight:800;letter-spacing:.06em;border:2px solid var(--ink);padding:1px 6px;white-space:nowrap;display:inline-block}
.badge.warning{border-color:var(--error);color:var(--error)}
.edit-dialog{width:760px}.edit-dialog>.dialog-heading{padding-right:12px}.edit-dialog form{padding:24px 20px}
.form-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.field-wide{grid-column:1/-1}
.checks{display:flex;gap:20px;flex-wrap:wrap;margin-block:16px}.checks label{display:flex;align-items:center;gap:8px;font-weight:400}
.admin-panel{padding:20px;background:var(--surface);border:2px solid var(--ink);margin-bottom:20px}
.admin-panel h2{font-size:30px;margin-bottom:16px}.admin-panel>p{margin-bottom:16px}
.category-row{display:flex;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding-block:12px;flex-wrap:wrap}.category-row>strong{flex:1;white-space:normal}
.import-summary{padding:16px;background:var(--shelf);margin-block:16px}
.import-totals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-block:20px 12px}.import-totals>div{display:grid;gap:2px;padding:14px;background:var(--shelf);border-top:6px solid var(--ink)}.import-totals>div:first-child{border-top-color:var(--tag)}.import-totals>div.warning{border-top-color:var(--error)}.import-totals span{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.import-totals strong{font-family:var(--display);font-weight:400;font-size:30px;line-height:1.1}.import-totals small{font-size:13px;color:var(--muted)}
th.num,td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.badge.new{background:var(--tag);border-color:var(--ink)}
.settings-grid{display:grid;gap:20px}
.tier-edit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px;gap:12px;align-items:end;margin-bottom:12px}.tier-edit .icon-button{border:2px solid var(--ink);font-size:24px}
.promo-edit,.social-edit,.zone-edit{padding-block:20px;border-bottom:1px solid var(--line)}.promo-edit:last-child{border-bottom:0}
.notice{padding:16px;background:var(--shelf);border-left:6px solid var(--tag);margin-bottom:20px;font-size:14px}
.admin-form-error{margin-top:16px}.empty-cell{text-align:center;padding:32px;color:var(--muted)}
.admin-guide{max-width:960px;padding-block:32px 64px}.admin-guide>h1{font-size:52px;margin-bottom:16px}
.admin-guide>section{padding-block:32px;border-bottom:2px solid var(--ink)}.admin-guide h2{margin-bottom:20px;font-size:36px}
.admin-guide h3{margin-block:24px 12px;font-size:19px;font-weight:600}.admin-guide li{margin-block:10px}.admin-guide p{max-width:75ch}
.admin-guide a:not(.button){text-decoration:underline;text-underline-offset:4px}.admin-guide li a{white-space:normal}
.guide-index{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:24px;padding:16px;border:2px solid var(--ink)}.guide-index a{display:flex;align-items:center;min-height:44px}
.admin-guide .table-scroll{margin-block:20px}.admin-guide td{white-space:normal;min-width:140px}

/* Ampliaciones */
@media(min-width:420px){.hero h1{font-size:52px}.add-button{font-size:12px}}
@media(min-width:600px){
  .hero-wall{--cols:6}
  .hero-copy{margin-top:-64px;padding-inline:32px}.hero-panel{padding:28px 30px 26px}.hero h1{font-size:64px}
  .sort-label{width:auto;min-width:280px}
  .promos{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
  .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .toolbar{flex-direction:row;flex-wrap:wrap;justify-content:space-between}.toolbar select{width:auto;max-width:260px}.toolbar>div{flex:1}
  .detail-dialog #book-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .detail-cover{height:100%;min-height:540px;padding:48px 40px}.detail-info{padding:56px 36px 36px}
  .cart-item{grid-template-columns:56px minmax(0,1fr) auto}.line-total{grid-column:3;grid-row:1}
}
@media(min-width:768px){
  .wrap{padding-inline:32px}.announce{padding-inline:32px}.announce>span:nth-of-type(n+3){display:inline}
  .masthead{grid-template-columns:auto minmax(0,1fr) auto;gap:24px;padding-block:16px}
  .brand img{width:168px;height:56px}.search{grid-column:2;grid-row:1}
  .tier-scale{grid-template-columns:repeat(4,minmax(0,1fr))}.tier>strong{font-size:48px}
  .book-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .shipping{grid-template-columns:minmax(0,1fr) minmax(0,3fr);gap:32px;padding-top:28px}.shipping-zones{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
  .footer-main{flex-direction:row;justify-content:space-between;align-items:flex-end}
  .settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-panel{padding:28px}
  .cover-library{grid-template-columns:repeat(2,minmax(0,1fr))}.import-totals{grid-template-columns:repeat(4,minmax(0,1fr))}.cover-field{grid-template-columns:96px minmax(0,1fr);gap:16px}.cover-preview{width:96px;height:144px}.cover-picker{grid-template-columns:repeat(5,minmax(0,1fr))}
  h2{font-size:48px}.catalogue-heading h2{font-size:72px}.promo h2{font-size:40px}.promo{padding:28px}
}
@media(min-width:1024px){
  .hero-wall{--cols:8}
  .hero-copy{position:absolute;left:0;right:0;bottom:40px;margin-top:0;padding-inline:32px}
  .hero.no-wall .hero-copy{position:relative;bottom:auto;margin-top:48px}
  .hero h1{font-size:80px}
  .hero-intro{font-size:18px}
  .book-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:44px 4px}
  .book-title{font-size:16px}.book-price strong{font-size:19px}
  .main-content>section:not(.hero){margin-top:96px}
  .admin-main>h1{font-size:56px}
  .cover-library{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(min-width:1280px){.wrap{padding-inline:48px}.announce{padding-inline:48px}.book-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(min-width:1440px){.hero-wall{--cols:9}}
@media(hover:hover){
  .button:hover:not(:disabled),.cart-button:hover,.add-button:hover:not(:disabled){background:var(--muted);border-color:var(--muted);color:var(--paper)}
  .button.ghost:hover:not(:disabled),.button.secondary:hover:not(:disabled),.button.inverse:hover:not(:disabled){background:var(--shelf);color:var(--ink);border-color:var(--ink)}
  .button.inverse:hover:not(:disabled){border-color:var(--shelf)}
  .picker-item:not(.selected):hover{border-color:var(--line)}
  .category-chip:not(.selected):hover,.admin-nav button:not([aria-selected=true]):hover,.table-actions button:hover,.quantity-control>button:hover:not(:disabled){background:var(--shelf)}
  .main-nav a:hover{border-bottom-color:var(--ink)}
  .cover-button:hover .book-image{transform:translateY(-6px)}
  .book-title:hover{text-decoration:underline;text-underline-offset:3px}
  .promo:hover>svg{transform:translateX(6px)}
  .hero-wall:hover .wall-track{animation-play-state:paused}
  .icon-button:hover,.dialog-close:hover{background:var(--shelf)}
  .dialog-heading .icon-button:hover{background:var(--ink-soft)}
}
/* Secciones del catálogo (Libros, Bazar…): voz de cartel, subrayado de tinta en la elegida. */
.section-tabs{display:flex;gap:20px;overflow-x:auto;margin-bottom:12px;border-bottom:2px solid var(--ink)}
.section-tab{background:transparent;border:0;border-bottom:4px solid transparent;margin-bottom:-2px;padding:8px 0;min-height:48px;font-family:var(--display);font-size:28px;line-height:1;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.section-tab.selected{color:var(--ink);border-bottom-color:var(--ink)}
@media(min-width:768px){.section-tab{font-size:36px}}
@media(hover:hover){.section-tab:not(.selected):hover{color:var(--ink)}}
/* Panel: secciones con sus categorías. */
.section-block{margin-top:24px;border-top:2px solid var(--ink)}
.section-head{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding-block:12px}
.section-head h3{font-family:var(--display);font-size:28px;font-weight:400;text-transform:uppercase;margin:0;margin-right:auto}
.check-inline{display:flex;align-items:center;justify-content:flex-start;gap:8px;min-height:44px;font-size:14px}
.check-inline input{width:20px;height:20px;min-height:0;flex:none;margin:0}
/* Panel: pedidos recibidos. */
.orders-list{display:grid;gap:12px}
.order-card{border:2px solid var(--ink);background:var(--surface);padding:16px}
.order-card.cancelled,.order-card.confirmed{border-color:var(--line)}
.order-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px}
.order-head strong{font-size:18px;font-variant-numeric:tabular-nums}
.order-head small{margin-left:auto}
.order-card ul{margin:0 0 8px;padding-left:18px}
.order-card .form-actions{margin-top:12px}
[data-tab] .count{display:inline-grid;margin-left:6px}
/* Stock sobre la portada, en la caja rotulada del logo. */
.cover-stock{position:absolute;left:8px;bottom:8px;font-variant-numeric:tabular-nums}
.main-nav .nav-social{margin-left:auto;min-width:44px;justify-content:center;gap:6px}
.nav-social svg{width:20px;height:20px}
.nav-social-text{display:none}
.main-nav{gap:10px;letter-spacing:.06em}
@media(min-width:420px){.main-nav{gap:24px;letter-spacing:.12em}}
@media(min-width:600px){.nav-social-text{display:inline}.nav-social svg{width:16px;height:16px}}
/* Ficha: la portada se ajusta al alto del estante y no tapa el texto. */
.detail-cover{grid-template:minmax(0,1fr)/minmax(0,1fr)}
.detail-cover .book-image,.detail-cover .type-cover{width:100%;height:100%;min-height:0}
/* Cantidad en la tarjeta y en la ficha, una vez agregado el libro. */
.book-actions{margin-top:12px}
.book-actions .add-button{margin-top:0}
.card-qty{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;min-height:44px}
.card-qty>button{border:2px solid var(--ink);background:var(--ink);color:var(--paper);font-size:20px;font-weight:600;transition:background-color 150ms}
.card-qty>button:disabled{background:transparent;color:var(--line);border-color:var(--line)}
.card-qty .quantity-input{width:100%;margin-inline:0;border-inline:0;background:var(--surface)}
.detail-actions{display:grid;gap:12px;margin-top:4px}
.detail-actions .add-button{min-height:48px;font-size:13px}
.detail-actions .card-qty{grid-template-columns:48px minmax(0,1fr) 48px;min-height:48px}
.view-cart{width:100%}
/* Barra del pedido: aparece con el primer libro agregado. */
.cart-bar{position:fixed;left:0;right:0;bottom:0;z-index:15;display:flex;align-items:center;gap:12px;min-height:60px;padding:8px 16px calc(8px + env(safe-area-inset-bottom));background:var(--ink);color:var(--paper);border:0;border-top:2px solid var(--tag);text-align:left}
.cart-bar-info{display:flex;flex-direction:column;flex:1;min-width:0;font-size:13px;line-height:1.3}
.cart-bar-info strong{font-size:17px;font-weight:800;font-variant-numeric:tabular-nums}
.cart-bar-cta{padding:10px 14px;border:2px solid var(--paper);font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
body.has-cart-bar{padding-bottom:64px}
body.has-cart-bar .toast{bottom:80px}
@media(min-width:768px){.cart-bar{padding-inline:32px}}
@media(hover:hover){.card-qty>button:hover:not(:disabled){background:var(--muted);border-color:var(--muted)}.cart-bar:hover .cart-bar-cta{background:var(--paper);color:var(--ink)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
