*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --ink:#1a1410;--ink-muted:#6b5e52;--ink-faint:#b8a99a;
  --surface:#faf7f2;--surface-warm:#f2ede4;--surface-card:#ffffff;
  --accent:#c85a1e;--accent-light:#f5e6de;--accent-dark:#8f3a0e;
  --green:#2d6a45;--border:rgba(26,20,16,0.12);--border-strong:rgba(26,20,16,0.25);
  --radius:4px;--radius-lg:10px;
}
body{font-family:'DM Sans',sans-serif;background:var(--surface);color:var(--ink);min-height:100vh}
nav{background:var(--ink);color:#faf7f2;padding:0 2rem;display:flex;align-items:center;justify-content:space-between;height:56px;position:sticky;top:0;z-index:100}
.nav-logo{font-family:'DM Serif Display',serif;font-size:1.3rem;letter-spacing:.02em;color:#faf7f2}
.nav-logo span{color:#e8845a}
.nav-tabs{display:flex}
.nav-tab{background:none;border:none;color:rgba(250,247,242,0.6);font-family:'DM Sans',sans-serif;font-size:.875rem;padding:0 1.25rem;height:56px;cursor:pointer;transition:color .15s;letter-spacing:.03em}
.nav-tab:hover{color:#faf7f2}
.nav-tab.active{color:#faf7f2;border-bottom:2px solid #e8845a}
.view{display:none}
.view.active{display:block}
.catalog-hero{background:var(--ink);color:#faf7f2;padding:4rem 2rem 3rem;text-align:center}
.catalog-hero h1{font-family:'DM Serif Display',serif;font-size:clamp(2.2rem,5vw,3.5rem);font-weight:400;margin-bottom:.75rem;line-height:1.1}
.catalog-hero h1 em{color:#e8845a;font-style:italic}
.catalog-hero p{font-size:1rem;color:rgba(250,247,242,0.65);max-width:480px;margin:0 auto 2rem;line-height:1.6}
.hero-stats{display:flex;justify-content:center;gap:3rem;flex-wrap:wrap}
.hero-stat{text-align:center}
.hero-stat .num{font-family:'DM Serif Display',serif;font-size:2rem;color:#e8845a;display:block}
.hero-stat .lbl{font-size:.75rem;color:rgba(250,247,242,0.5);letter-spacing:.08em;text-transform:uppercase}
.filters-bar{background:var(--surface-warm);border-bottom:1px solid var(--border);padding:.875rem 2rem;display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}
.filter-label{font-size:.75rem;color:var(--ink-muted);letter-spacing:.06em;text-transform:uppercase;margin-right:.25rem}
.filter-btn{background:var(--surface-card);border:1px solid var(--border-strong);border-radius:100px;padding:.35rem .875rem;font-size:.8rem;color:var(--ink-muted);cursor:pointer;transition:all .15s;font-family:'DM Sans',sans-serif}
.filter-btn:hover{border-color:var(--accent);color:var(--accent)}
.filter-btn.active{background:var(--accent);border-color:var(--accent);color:white}
.search-wrap{margin-left:auto;position:relative}
.search-wrap svg{position:absolute;left:.6rem;top:50%;transform:translateY(-50%);width:14px;height:14px;stroke:var(--ink-faint);fill:none}
#search-input{background:var(--surface-card);border:1px solid var(--border-strong);border-radius:100px;padding:.35rem .875rem .35rem 2rem;font-size:.8rem;font-family:'DM Sans',sans-serif;color:var(--ink);width:200px;outline:none;transition:border-color .15s}
#search-input:focus{border-color:var(--accent)}
.catalog-grid{padding:2rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.25rem;max-width:1400px;margin:0 auto}
.game-card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;transition:transform .15s,box-shadow .15s;cursor:pointer}
.game-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(26,20,16,0.1)}
.card-thumb{height:180px;position:relative;background:var(--surface-warm);overflow:hidden}
.card-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.card-thumb .thumb-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:3.5rem}
.card-genre-badge{position:absolute;top:.6rem;right:.6rem;background:rgba(26,20,16,0.72);color:#faf7f2;font-size:.65rem;letter-spacing:.05em;text-transform:uppercase;padding:.2rem .5rem;border-radius:3px;backdrop-filter:blur(4px)}
.card-body{padding:1rem 1.1rem 1.1rem}
.card-title{font-family:'DM Serif Display',serif;font-size:1.1rem;font-weight:400;margin-bottom:.3rem;color:var(--ink)}
.card-desc{font-size:.8rem;color:var(--ink-muted);line-height:1.5;margin-bottom:.875rem}
.card-meta{display:flex;gap:.5rem;flex-wrap:wrap}
.meta-pill{display:flex;align-items:center;gap:.25rem;font-size:.72rem;color:var(--ink-muted);background:var(--surface-warm);border-radius:100px;padding:.2rem .6rem}
.meta-pill svg{width:10px;height:10px;stroke:currentColor;fill:none;flex-shrink:0}
.card-footer{padding:.7rem 1.1rem;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.card-price{font-size:.875rem;font-weight:500;color:var(--accent-dark)}
.card-price span{font-size:.7rem;color:var(--ink-faint);font-weight:400}
.rent-btn{background:var(--accent);color:white;border:none;border-radius:var(--radius);padding:.35rem .875rem;font-size:.78rem;font-family:'DM Sans',sans-serif;cursor:pointer;transition:background .15s}
.rent-btn:hover{background:var(--accent-dark)}
.empty-state{grid-column:1/-1;text-align:center;padding:4rem 2rem;color:var(--ink-muted)}
.empty-state h3{font-family:'DM Serif Display',serif;font-size:1.5rem;font-weight:400;margin-bottom:.5rem}

/* MODAL */
.modal-backdrop{display:none;position:fixed;inset:0;background:rgba(26,20,16,0.55);z-index:200;align-items:center;justify-content:center;padding:1.5rem}
.modal-backdrop.open{display:flex}
.modal{background:var(--surface-card);border-radius:var(--radius-lg);width:100%;max-width:420px;overflow:hidden}
.modal-header{padding:1.25rem 1.5rem 1rem;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.modal-game-title{font-family:'DM Serif Display',serif;font-size:1.2rem;font-weight:400}
.modal-close{background:none;border:none;cursor:pointer;color:var(--ink-faint);font-size:1.2rem;line-height:1;padding:.1rem;flex-shrink:0}
.modal-close:hover{color:var(--ink)}
.modal-thumb{width:64px;height:64px;border-radius:var(--radius);object-fit:cover;flex-shrink:0;background:var(--surface-warm)}
.modal-thumb-fallback{width:64px;height:64px;border-radius:var(--radius);background:var(--surface-warm);display:flex;align-items:center;justify-content:center;font-size:2rem;flex-shrink:0}
.modal-body{padding:1.25rem 1.5rem}
.modal-price-display{background:var(--surface-warm);border-radius:var(--radius);padding:.875rem 1rem;margin-bottom:1.25rem;display:flex;justify-content:space-between;align-items:center}
.modal-price-display .lbl{font-size:.8rem;color:var(--ink-muted)}
.modal-price-display .total{font-size:1.3rem;font-weight:500;color:var(--accent-dark)}
.modal-price-display .per-day{font-size:.75rem;color:var(--ink-faint)}
.days-row{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem}
.days-row label{font-size:.8rem;color:var(--ink-muted);white-space:nowrap}
.days-stepper{display:flex;align-items:center;border:1px solid var(--border-strong);border-radius:var(--radius);overflow:hidden}
.days-stepper button{background:var(--surface-warm);border:none;width:34px;height:34px;font-size:1.1rem;cursor:pointer;color:var(--ink);transition:background .1s;display:flex;align-items:center;justify-content:center}
.days-stepper button:hover{background:var(--border)}
.days-stepper .days-val{width:44px;text-align:center;font-size:.875rem;font-weight:500;border-left:1px solid var(--border);border-right:1px solid var(--border);height:34px;line-height:34px}
.modal-footer{padding:0 1.5rem 1.5rem;display:flex;flex-direction:column;gap:.625rem}
.btn-checkout{background:var(--accent);color:white;border:none;border-radius:var(--radius);padding:.75rem;font-size:.9rem;font-family:'DM Sans',sans-serif;font-weight:500;cursor:pointer;transition:background .15s;display:flex;align-items:center;justify-content:center;gap:.5rem}
.btn-checkout:hover{background:var(--accent-dark)}
.btn-checkout:disabled{opacity:.6;cursor:not-allowed}
.btn-checkout svg{width:15px;height:15px;stroke:white;fill:none}
.stripe-note{text-align:center;font-size:.72rem;color:var(--ink-faint)}

/* ADMIN */
.admin-layout{max-width:960px;margin:0 auto;padding:2rem}
.admin-header{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}
.admin-header h2{font-family:'DM Serif Display',serif;font-size:1.8rem;font-weight:400;margin-bottom:.35rem}
.admin-header p{font-size:.875rem;color:var(--ink-muted);line-height:1.5}
.admin-header p strong{color:var(--accent);font-weight:500}
.chat-container{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:1.5rem}
.chat-messages{height:400px;overflow-y:auto;padding:1.25rem;display:flex;flex-direction:column;gap:1rem}
.msg{max-width:80%;font-size:.875rem;line-height:1.6}
.msg-user{align-self:flex-end;background:var(--ink);color:#faf7f2;padding:.6rem 1rem;border-radius:var(--radius-lg) var(--radius-lg) 3px var(--radius-lg)}
.msg-assistant{align-self:flex-start;background:var(--surface-warm);color:var(--ink);padding:.6rem 1rem;border-radius:var(--radius-lg) var(--radius-lg) var(--radius-lg) 3px}
.msg-assistant.error{background:#fde8e8;color:#a33}
.msg-system{align-self:center;font-size:.75rem;color:var(--ink-faint);background:var(--surface-warm);padding:.3rem .875rem;border-radius:100px}
.chat-input-row{display:flex;border-top:1px solid var(--border)}
#chat-input{flex:1;border:none;padding:.875rem 1rem;font-family:'DM Sans',sans-serif;font-size:.875rem;background:transparent;color:var(--ink);outline:none;resize:none;height:60px}
#chat-input::placeholder{color:var(--ink-faint)}
#send-btn{background:var(--accent);color:white;border:none;padding:0 1.25rem;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:.8rem;transition:background .15s;display:flex;align-items:center;gap:.4rem}
#send-btn:hover{background:var(--accent-dark)}
#send-btn:disabled{opacity:.5;cursor:not-allowed}
#send-btn svg{width:14px;height:14px;stroke:white;fill:none}
.preview-panel{display:none;background:var(--surface-card);border:1px solid var(--accent-light);border-left:3px solid var(--accent);border-radius:var(--radius-lg);padding:1.25rem;margin-bottom:1.5rem}
.preview-panel.visible{display:block}
.preview-title{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:.875rem;font-weight:500}
.preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.875rem;margin-bottom:1rem}
.preview-field label{display:block;font-size:.7rem;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.2rem}
.preview-field input,.preview-field select{width:100%;border:1px solid var(--border-strong);border-radius:var(--radius);padding:.4rem .6rem;font-family:'DM Sans',sans-serif;font-size:.8rem;color:var(--ink);background:var(--surface);outline:none}
.preview-field input:focus,.preview-field select:focus{border-color:var(--accent)}
.preview-image-row{margin-bottom:1rem;display:flex;align-items:center;gap:1rem}
.preview-image-thumb{width:80px;height:80px;object-fit:cover;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-warm)}
.preview-image-url{flex:1}
.preview-image-url label{display:block;font-size:.7rem;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.2rem}
.preview-image-url input{width:100%;border:1px solid var(--border-strong);border-radius:var(--radius);padding:.4rem .6rem;font-family:'DM Sans',sans-serif;font-size:.75rem;color:var(--ink);background:var(--surface);outline:none}
.preview-image-url input:focus{border-color:var(--accent)}
.preview-actions{display:flex;gap:.75rem;justify-content:flex-end}
.btn-confirm{background:var(--green);color:white;border:none;border-radius:var(--radius);padding:.5rem 1.25rem;font-size:.8rem;font-family:'DM Sans',sans-serif;cursor:pointer;transition:opacity .15s}
.btn-confirm:hover{opacity:.85}
.btn-discard{background:none;color:var(--ink-muted);border:1px solid var(--border-strong);border-radius:var(--radius);padding:.5rem 1.25rem;font-size:.8rem;font-family:'DM Sans',sans-serif;cursor:pointer}
.btn-discard:hover{background:var(--surface-warm)}
.admin-catalog{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}
.admin-catalog-header{padding:1rem 1.25rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.admin-catalog-header h3{font-size:.875rem;font-weight:500}
.admin-catalog-header span{font-size:.8rem;color:var(--ink-faint)}
table{width:100%;border-collapse:collapse}
thead th{text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);padding:.6rem 1rem;border-bottom:1px solid var(--border);background:var(--surface-warm);font-weight:400}
tbody tr{border-bottom:1px solid var(--border)}
tbody tr:last-child{border-bottom:none}
tbody td{padding:.65rem 1rem;font-size:.8rem;color:var(--ink);vertical-align:middle}
.td-name{font-weight:500}
.genre-tag{display:inline-block;background:var(--accent-light);color:var(--accent-dark);font-size:.68rem;border-radius:3px;padding:.1rem .4rem}
.td-img{width:40px;height:40px;object-fit:cover;border-radius:3px;background:var(--surface-warm);display:block}
.delete-btn{background:none;border:none;cursor:pointer;color:var(--ink-faint);padding:.25rem;border-radius:3px;line-height:0;transition:color .1s}
.delete-btn:hover{color:#c0392b}
.delete-btn svg{width:14px;height:14px;stroke:currentColor;fill:none}
.typing-dots{display:flex;gap:4px;padding:.4rem .2rem;align-items:center}
.typing-dots span{width:6px;height:6px;background:var(--ink-faint);border-radius:50%;animation:bounce 1.2s infinite}
.typing-dots span:nth-child(2){animation-delay:.2s}
.typing-dots span:nth-child(3){animation-delay:.4s}
@keyframes bounce{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-5px)}}
@keyframes spin{to{transform:rotate(360deg)}}
::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}
