@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap');
:root{font-family:var(--body,'DM Sans',Arial);color:var(--ink,#28251f);background:var(--bg,#f5f2ec);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;background:var(--bg,#f5f2ec);color:var(--ink,#28251f);font-family:var(--body,'DM Sans',Arial);line-height:1.65}header,footer{padding:20px clamp(22px,6vw,96px);background:var(--head,#f5f2ec);display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}header{position:relative;z-index:2;border-bottom:1px solid #0000000d}#brand{color:inherit;text-decoration:none;font-weight:700;font-size:1.3rem;letter-spacing:-.03em}button{padding:11px 18px;cursor:pointer;background:var(--primary,#a64f35);color:white;border:1px solid transparent;border-radius:999px;font:600 .9rem var(--body,'DM Sans',Arial);transition:transform .2s,filter .2s,box-shadow .2s}button:hover{filter:brightness(.94);transform:translateY(-1px);box-shadow:0 7px 18px #00000012}button.secondary{background:#eee9e0;color:#3b3933;border-color:#ded7cb}button.danger{background:#a63832}.text-danger{background:transparent;color:#a63832;padding:5px 9px;border:0;box-shadow:none}.text-danger:hover{background:#fff0ee;box-shadow:none}#hero{padding:clamp(75px,11vw,150px) clamp(24px,10vw,160px);background-color:#443d34;background-size:cover;background-position:center;min-height:390px;display:flex;flex-direction:column;justify-content:center;color:white}#hero small,#hero h1,#hero p{max-width:850px}#hero small,.eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.19em;text-transform:uppercase;color:var(--primary,#a64f35)}#hero small{color:#f1d4b8}#hero h1{font:clamp(42px,7vw,82px)/1.06 var(--headfont,'Playfair Display',Georgia);letter-spacing:-.035em;margin:17px 0 12px}#hero p{font-size:clamp(1rem,1.5vw,1.2rem);max-width:660px;color:#ffffffd9}main{padding:clamp(35px,5vw,70px) clamp(20px,8vw,120px);max-width:1600px;margin:auto}main>h2{font:clamp(29px,4vw,43px) var(--headfont,'Playfair Display',Georgia);letter-spacing:-.025em;margin:0 0 20px}#tabs{display:flex;gap:9px;flex-wrap:wrap;margin:22px 0 28px}#tabs button{background:transparent;color:var(--ink);border:1px solid #cfc6b9}#tabs button.active,#tabs button:hover{background:var(--primary);border-color:var(--primary);color:white}#restaurant,.card{background:var(--surface,#fffdf8);padding:clamp(22px,3.5vw,44px);margin:18px 0;line-height:1.7;border-radius:18px;box-shadow:0 12px 40px #3c2d1b0b}#restaurant>h2{font:clamp(30px,4vw,48px) var(--headfont,'Playfair Display',Georgia);margin-top:0}.restaurant-intro{max-width:850px;margin-bottom:35px}.restaurant-intro h2{font:clamp(34px,5vw,54px)/1.1 var(--headfont,'Playfair Display',Georgia);margin:10px 0}.description{max-width:850px;color:#6d685f}.info{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:20px;margin:28px 0}.info-card,.map-card{background:#f7f4ee;border-radius:14px;padding:24px}.info-card h3,.map-card h3,.public-section h3{font:clamp(25px,3vw,34px) var(--headfont,'Playfair Display',Georgia);margin:7px 0 16px}.info-card p{margin:12px 0}.map{width:100%;height:270px;border:0;border-radius:10px}.public-section{margin:45px 0}.recommendations{padding-left:22px}.recommendations li{padding:4px 0}.menu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:25px}.menu-section{padding:23px;background:#f8f5ef;border-radius:13px}.menu-section h4{font:600 1.25rem var(--headfont,'Playfair Display',Georgia);border-bottom:1px solid #ddd5c9;padding-bottom:10px;margin:0 0 12px}.menu-item{display:flex;justify-content:space-between;gap:18px;border-bottom:1px solid #e9e3d9;padding:12px 0}.menu-item:last-child{border:0}.menu-item small{display:block;opacity:.72;font-size:.88rem}.price{white-space:nowrap;color:var(--primary)}.muted{color:#777}.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}.gallery figure{margin:0;overflow:hidden;border-radius:13px;background:#eee}.gallery img,.gallery video{width:100%;height:250px;object-fit:cover;display:block;transition:transform .4s}.gallery figure:hover img{transform:scale(1.035)}.gallery figcaption{font-size:.9rem;padding:9px 12px}footer{display:block;padding-top:38px;padding-bottom:38px;border-top:1px solid #00000012}footer nav{display:flex;gap:20px;flex-wrap:wrap;margin:15px 0}footer nav a,footer nav summary{font-size:.9rem}.legal-text{max-width:900px}a{color:inherit}a:hover{color:var(--primary)}.logo{max-height:62px;max-width:220px;object-fit:contain}dialog{width:min(1120px,96vw);max-height:94vh;overflow:auto;border:1px solid #e8e1d7;padding:clamp(16px,3vw,34px);border-radius:20px;box-shadow:0 25px 90px #17130f55;background:#faf8f4;color:#28251f}dialog::backdrop{background:#17130fb8;backdrop-filter:blur(4px)}dialog input,dialog textarea,dialog select{padding:11px 12px;margin:6px 0;width:100%;max-width:100%;border:1px solid #dcd5ca;border-radius:9px;background:white;color:#28251f;font:inherit;outline:none}dialog input:focus,dialog textarea:focus,dialog select:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 13%,transparent)}dialog textarea{min-height:95px;resize:vertical}dialog label{display:block;font-size:.82rem;font-weight:700;margin:9px 0;color:#4e4941}dialog label small,.hint{display:block;color:#81796e;font-size:.82rem;font-weight:400}.field{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:12px 0}.admin-head,.restaurant-title,.admin-section-heading,.subsection-heading,.item-top{display:flex;justify-content:space-between;align-items:center;gap:14px}.admin-head h2{font:clamp(27px,4vw,38px) var(--headfont,'Playfair Display',Georgia)}.admin-tabs{display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid #e3ddd3;padding:10px 0 18px;margin-bottom:22px}.admin-tabs button{background:#ece7de;color:#454037}.admin-tabs button:hover,.admin-tabs button:focus{background:var(--primary);color:white}.save{width:100%;margin-top:18px;padding:15px;border-radius:10px;font-size:1rem;letter-spacing:.03em}.restaurant-editor{border:1px solid #e8e1d7}.restaurant-title{align-items:flex-start;border-bottom:1px solid #eee8df;padding-bottom:17px;margin-bottom:20px}.restaurant-title h3{font:clamp(22px,3vw,30px) var(--headfont,'Playfair Display',Georgia);margin:4px 0}.restaurant-editor h4{font:600 1.25rem var(--headfont,'Playfair Display',Georgia);margin:0}.subsection-heading{align-items:flex-end;margin:28px 0 12px}.subsection-heading .hint{margin:2px 0}.editor-list,.menu-editor-list{display:grid;gap:12px}.editor-item,.menu-editor-section{padding:16px;background:#f6f2eb;border:1px solid #eae3d9;border-radius:12px}.item-top{margin-bottom:9px}.item-top b{font-size:.9rem}.upload-inline{padding:14px;background:#f2eee7;border-radius:10px}.dish-editor{padding:13px 0;border-top:1px solid #e5ded3}.dish-editor .field{margin:5px 0}.add-dish{margin-top:10px;background:#e7e0d5;color:#494239}.empty-inline,.empty-admin{color:#81796e;padding:15px;background:#f5f1ea;border-radius:10px}.empty-state{text-align:center;padding:60px 20px}.empty-state span{font-size:2rem;color:var(--primary)}.empty-state h3{font:30px var(--headfont,'Playfair Display',Georgia)}#status{font-size:.9rem;color:#52714c}.error{color:#a00}@media(max-width:700px){.field{grid-template-columns:1fr}.admin-section-heading,.subsection-heading{align-items:flex-start;flex-direction:column}#hero{min-height:320px}main{padding:28px 16px}#restaurant,.card{padding:20px;border-radius:14px}.menu-item{gap:8px}.restaurant-title{align-items:flex-start;flex-direction:column}header{padding:16px 20px}}

/* Campos de contraseña con control de visibilidad */
.password-field{position:relative;display:flex;align-items:center}.password-field input{padding-right:48px!important}.password-toggle{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:36px;height:36px;padding:8px;background:transparent;color:#625b50;border:0;border-radius:8px;box-shadow:none;display:grid;place-items:center}.password-toggle:hover{background:#eee9e0;box-shadow:none;transform:translateY(-50%)}.password-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.password-toggle.is-visible svg{stroke:var(--primary)}


/* Pantalla de bienvenida mientras se recuperan los datos del servidor */
.startup-screen{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:24px;background:var(--bg,#f4f0e8);color:var(--ink,#24231f);transition:opacity .28s ease,visibility .28s ease}.startup-screen.is-hidden{opacity:0;visibility:hidden;pointer-events:none}.startup-card{width:min(440px,100%);padding:42px 32px;text-align:center;background:var(--surface,#fffdf8);border:1px solid #0000000c;border-radius:22px;box-shadow:0 18px 65px #3c2d1b12}.startup-mark{width:58px;height:58px;margin:0 auto 16px;display:grid;place-items:center;border-radius:50%;background:var(--primary,#a64f35);color:white;font:700 1.05rem Georgia,serif;letter-spacing:.04em}.startup-kicker{margin:0;color:var(--primary,#a64f35);font-size:.7rem;font-weight:700;letter-spacing:.2em}.startup-card h1{margin:10px 0 6px;font:clamp(25px,5vw,32px) var(--headfont,'Playfair Display',Georgia)}.startup-card>p:not(.startup-kicker){margin:5px 0;color:#746d63}.startup-progress{height:5px;margin:24px 0 12px;overflow:hidden;border-radius:99px;background:#e9e2d8}.startup-progress span{display:block;width:35%;height:100%;border-radius:99px;background:var(--primary,#a64f35);animation:startup-loading 1.25s ease-in-out infinite alternate}.startup-detail{font-size:.8rem!important}.startup-card button{margin-top:16px}@keyframes startup-loading{from{transform:translateX(-5%);width:24%}to{transform:translateX(315%);width:38%}}@media(prefers-reduced-motion:reduce){.startup-progress span{animation:none;width:65%}.startup-screen{transition:none}}
