
.gf{--gf-bg:var(--color-base-100,#fff);--gf-fg:var(--color-base-content,#1d1d1f);--gf-primary:var(--color-primary,#1d1d1f);--gf-on-primary:var(--color-primary-content,#fff);--gf-line:color-mix(in oklab,var(--gf-fg) 13%,transparent);--gf-line-strong:color-mix(in oklab,var(--gf-fg) 30%,transparent);--gf-muted:color-mix(in oklab,var(--gf-fg) 66%,var(--gf-bg));--gf-surface:color-mix(in oklab,var(--gf-fg) 4%,var(--gf-bg));--gf-error:color-mix(in oklab,#d0312d 82%,var(--gf-fg));--gf-success:color-mix(in oklab,#168a4a 82%,var(--gf-fg));--gf-warning:color-mix(in oklab,#b45309 85%,var(--gf-fg));--gf-info:color-mix(in oklab,#2563eb 80%,var(--gf-fg));--gf-r-box:min(var(--radius-box,.75rem),1.25rem);--gf-r-soft:min(var(--radius-box,.75rem),.875rem);--gf-r-multiline:min(var(--radius-field,.5rem),.75rem);--gf-r-field:var(--radius-field,.5rem);--gf-r-sel:var(--radius-selector,.5rem);--gf-heading:var(--font-heading,inherit);
box-sizing:border-box;width:100%;max-width:76rem;margin:0 auto;padding:2.5rem 1rem 4rem;color:var(--gf-fg);font-size:1rem;line-height:1.5}
.gf *,.gf *::before,.gf *::after{box-sizing:border-box}
@media (min-width:640px){.gf{padding:3.5rem 1.5rem 5rem}}
@media (min-width:1024px){.gf{padding-inline:2.5rem}}
.gf--narrow{max-width:28rem}
@media (min-width:640px){.gf--narrow{max-width:31rem}}
.gf--mid{max-width:50rem}
.gf ::selection{background:color-mix(in oklab,var(--gf-primary) 22%,transparent)}
.gf :focus-visible{outline:2px solid var(--gf-primary);outline-offset:2px}

/* Tipografía */
.gf-title{font-family:var(--gf-heading);font-size:1.875rem;font-weight:600;line-height:1.15;letter-spacing:-.015em;text-wrap:balance;margin:0}
@media (min-width:640px){.gf-title{font-size:2.25rem}}
.gf-h2{font-family:var(--gf-heading);font-size:1.125rem;font-weight:600;line-height:1.3;margin:0}
.gf-h3{font-size:1rem;font-weight:600;line-height:1.35;margin:0}
.gf-lead{margin:.5rem 0 0;color:var(--gf-muted)}
.gf-muted{color:var(--gf-muted)}
.gf-small{font-size:.875rem}
.gf-xs{font-size:.8125rem}
.gf-strong{font-weight:600}
.gf-num{font-variant-numeric:tabular-nums}
.gf-pre{white-space:pre-line}
.gf-break{overflow-wrap:anywhere}
:where(.gf) p{margin:0}
.gf-link{color:inherit;text-decoration:underline;text-decoration-color:var(--gf-line-strong);text-underline-offset:3px;background:none;border:0;padding:0;font:inherit;cursor:pointer}
.gf-link:hover{text-decoration-color:currentColor}
.gf-back{display:inline-flex;align-items:center;gap:.375rem;margin-bottom:1rem;font-size:.875rem;color:var(--gf-muted);text-decoration:none}
.gf-back:hover{color:var(--gf-fg)}

/* Espaciado y grillas */
.gf-stack{display:flex;flex-direction:column;gap:1rem}
.gf-stack-sm{display:flex;flex-direction:column;gap:.5rem}
.gf-stack-lg{display:flex;flex-direction:column;gap:2rem}
.gf-row{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}
.gf-between{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.gf-head{display:flex;flex-direction:column;gap:.75rem;margin-bottom:2rem}
.gf-mt{margin-top:1.5rem}
.gf-mt-sm{margin-top:.75rem}
.gf-mt-lg{margin-top:2.5rem}
.gf-grid-2{display:grid;gap:1rem}
@media (min-width:640px){.gf-grid-2{grid-template-columns:1fr 1fr}.gf-span-2{grid-column:1/-1}}
.gf-cols{display:grid;gap:1.5rem}
@media (min-width:640px){.gf-cols{grid-template-columns:1fr 1fr;gap:2rem}}
.gf-layout{display:grid;gap:2rem;align-items:start}
@media (min-width:960px){.gf-layout{grid-template-columns:minmax(0,1fr) 23rem;gap:3.5rem}.gf-aside{position:sticky;top:6.5rem}}
@media (min-width:1200px){.gf-layout{grid-template-columns:minmax(0,1fr) 26rem;gap:5rem}}

/* Superficies */
.gf-panel{border:1px solid var(--gf-line);border-radius:var(--gf-r-box);padding:1.25rem;background:var(--gf-bg)}
@media (min-width:640px){.gf-panel{padding:1.5rem}}
.gf-panel--soft{background:var(--gf-surface);border-color:transparent}
.gf-section{display:flex;flex-direction:column;gap:1rem;padding-top:2rem;border-top:1px solid var(--gf-line)}
.gf-section:first-child,div.gf-section:first-of-type{padding-top:0;border-top:0}
.gf-empty{border:1px dashed var(--gf-line-strong);border-radius:var(--gf-r-box);padding:3rem 1.5rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1.25rem}

/* Listas y filas de importes */
.gf-list{list-style:none;margin:0;padding:0}
.gf-list>li+li{border-top:1px solid var(--gf-line)}
.gf-item{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem 0}
.gf-list>li:first-child>.gf-item,.gf-list>.gf-item:first-child{padding-top:0}
.gf-list>li:last-child>.gf-item,.gf-list>.gf-item:last-child{padding-bottom:0}
.gf-item-main{min-width:0;display:flex;flex-direction:column;gap:.25rem}
.gf-item-end{flex-shrink:0;text-align:right;font-variant-numeric:tabular-nums}
.gf-rows{margin:0;display:flex;flex-direction:column;gap:.5rem;font-variant-numeric:tabular-nums}
.gf-rows>div{display:flex;justify-content:space-between;gap:1rem}
.gf-rows dt{color:var(--gf-muted)}
.gf-rows dd{margin:0;text-align:right;overflow-wrap:anywhere}
.gf-rows--split{padding-top:1rem;margin-top:1rem;border-top:1px solid var(--gf-line)}
.gf-total{font-size:1.125rem;font-weight:600;padding-top:.75rem;margin-top:.25rem;border-top:1px solid var(--gf-line)}
.gf-total dt{color:var(--gf-fg)}
.gf-link-row{color:inherit;text-decoration:none;border-radius:var(--gf-r-field);transition:background-color .15s}
.gf-link-row:hover{background:var(--gf-surface)}
.gf-list--rows>li>.gf-item{padding:1.125rem 1.25rem}
.gf-list--rows>li:first-child>.gf-item{padding-top:1.125rem}
.gf-list--rows>li:last-child>.gf-item{padding-bottom:1.125rem}
.gf-list--rows{border:1px solid var(--gf-line);border-radius:var(--gf-r-box);overflow:hidden}
.gf-list--rows .gf-link-row{border-radius:0}

/* Campos */
.gf-field{display:flex;flex-direction:column;gap:.375rem;min-width:0}
.gf-label{font-size:.875rem;font-weight:500}
.gf-input,.gf-select,.gf-textarea{width:100%;min-height:2.875rem;padding:.625rem .875rem;border:1px solid var(--gf-line-strong);border-radius:var(--gf-r-field);background:var(--gf-bg);color:var(--gf-fg);font:inherit;font-size:1rem;line-height:1.4;transition:border-color .15s,box-shadow .15s;appearance:none;-webkit-appearance:none}
.gf-textarea{min-height:6rem;resize:vertical;border-radius:var(--gf-r-multiline)}
.gf-select{padding-right:2.5rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;background-size:1rem}
.gf-input:hover,.gf-select:hover,.gf-textarea:hover{border-color:var(--gf-muted)}
.gf-input:focus,.gf-select:focus,.gf-textarea:focus{outline:none;border-color:var(--gf-fg);box-shadow:0 0 0 1px var(--gf-fg)}
.gf-input[aria-invalid="true"],.gf-select[aria-invalid="true"]{border-color:var(--gf-error)}
.gf-input:-webkit-autofill,.gf-input:-webkit-autofill:hover,.gf-input:-webkit-autofill:focus{-webkit-text-fill-color:var(--gf-fg);-webkit-box-shadow:0 0 0 100px var(--gf-bg) inset;caret-color:var(--gf-fg);transition:background-color 9999s}
.gf-input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 100px var(--gf-bg) inset,0 0 0 1px var(--gf-fg)}
.gf-input:user-invalid,.gf-select:user-invalid,.gf-textarea:user-invalid{border-color:var(--gf-error)}
.gf-input--code{font-size:1.5rem;letter-spacing:.5em;text-align:center;font-variant-numeric:tabular-nums;padding-left:1.375rem}
.gf-input--qty{width:6.5rem;min-height:2.5rem;text-align:center;font-variant-numeric:tabular-nums}
.gf-select--qty{width:auto;min-width:6.5rem;min-height:2.5rem;font-variant-numeric:tabular-nums}
.gf-field-error{font-size:.875rem;color:var(--gf-error)}
.gf-hint{font-size:.8125rem;color:var(--gf-muted)}
.gf-fieldset{border:0;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:1rem}
.gf-fieldset>legend{padding:0;margin-bottom:1.25rem;font-family:var(--gf-heading);font-size:1.125rem;font-weight:600}
.gf-file{width:100%;font:inherit;font-size:.875rem;color:var(--gf-muted);border:1px dashed var(--gf-line-strong);border-radius:var(--gf-r-multiline);padding:.75rem}
.gf-file::file-selector-button{margin-right:.75rem;border:1px solid var(--gf-line-strong);border-radius:var(--gf-r-field);background:var(--gf-bg);color:var(--gf-fg);font:inherit;font-weight:500;padding:.375rem .875rem;cursor:pointer}

/* Opciones (radios grandes) y casillas */
.gf-options{display:flex;flex-direction:column;gap:.625rem}
.gf-option{display:flex;align-items:flex-start;gap:.875rem;padding:1rem 1.125rem;border:1px solid var(--gf-line-strong);border-radius:var(--gf-r-soft);cursor:pointer;transition:border-color .15s,box-shadow .15s,background-color .15s}
.gf-option:hover{border-color:var(--gf-muted)}
.gf-option:has(input:checked){border-color:var(--gf-fg);box-shadow:inset 0 0 0 1px var(--gf-fg);background:var(--gf-surface)}
.gf-option-body{flex:1;display:flex;flex-direction:column;gap:.125rem;min-width:0}
.gf-radio,.gf-checkbox{flex-shrink:0;width:1.125rem;height:1.125rem;margin:.1875rem 0 0;appearance:none;-webkit-appearance:none;border:1.5px solid var(--gf-line-strong);background:var(--gf-bg);display:grid;place-items:center;cursor:pointer;transition:border-color .15s,background-color .15s}
.gf-radio{border-radius:999px}
.gf-checkbox{border-radius:min(var(--gf-r-sel),.3125rem)}
.gf-radio:checked{border:5px solid var(--gf-fg)}
.gf-checkbox:checked{background:var(--gf-fg);border-color:var(--gf-fg);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E");background-size:.75rem;background-position:center;background-repeat:no-repeat}
.gf-check{display:flex;align-items:center;gap:.75rem;cursor:pointer;font-size:.9375rem}
.gf-check .gf-checkbox{margin:0}

/* Botones */
.gf-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.875rem;padding:.625rem 1.25rem;border:1px solid transparent;border-radius:var(--gf-r-field);font:inherit;font-size:.9375rem;font-weight:600;line-height:1.2;text-align:center;text-decoration:none;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s,opacity .15s;white-space:nowrap}
.gf-btn--primary{background:var(--gf-primary);color:var(--gf-on-primary)}
.gf-btn--primary:hover{background:color-mix(in oklab,var(--gf-primary) 88%,var(--gf-fg))}
.gf-btn--outline{background:transparent;color:var(--gf-fg);border-color:var(--gf-line-strong)}
.gf-btn--outline:hover{border-color:var(--gf-fg)}
.gf-btn--ghost{background:transparent;color:var(--gf-fg)}
.gf-btn--ghost:hover{background:var(--gf-surface)}
.gf-btn--sm{min-height:2.25rem;padding:.375rem .875rem;font-size:.875rem}
.gf-btn--lg{min-height:3.25rem;padding:.75rem 1.5rem;font-size:1rem}
.gf-btn--block{width:100%}
.gf-btn:disabled,.gf-btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed}
.gf-btn.is-loading{position:relative;overflow:hidden;pointer-events:none;cursor:progress}
.gf-btn.is-loading::after{content:"";position:absolute;inset:0 auto 0 0;width:0;background:color-mix(in oklab,currentColor 22%,transparent);animation:gf-load 2.8s cubic-bezier(.22,1,.36,1) forwards}
@keyframes gf-load{0%{width:0}40%{width:55%}100%{width:94%}}
.gf-btn--quiet{min-height:auto;padding:.25rem .5rem;font-weight:500;font-size:.875rem;color:var(--gf-muted);background:transparent}
.gf-btn--quiet:hover{color:var(--gf-fg);background:var(--gf-surface)}
.gf-actions{display:flex;flex-wrap:wrap;gap:.75rem}

/* Cuenta: barra lateral (perfil, pedidos, presupuestos) y contenido */
.gf-account{display:grid;gap:2rem;align-items:start}
@media (min-width:860px){.gf-account{grid-template-columns:14rem minmax(0,1fr);gap:3.5rem}}
.gf-account-nav{display:flex;gap:.25rem;overflow-x:auto;margin:0 -1rem;padding:0 1rem .25rem;scrollbar-width:none}
.gf-account-nav::-webkit-scrollbar{display:none}
@media (min-width:860px){.gf-account-nav{flex-direction:column;margin:0;padding:0;position:sticky;top:6.5rem}}
.gf-account-nav a,.gf-account-nav button{display:flex;align-items:center;gap:.625rem;white-space:nowrap;padding:.625rem .875rem;border-radius:var(--gf-r-field);color:var(--gf-muted);text-decoration:none;font:inherit;font-size:.9375rem;font-weight:500;background:none;border:0;cursor:pointer;text-align:left;width:100%}
.gf-account-nav a:hover,.gf-account-nav button:hover{color:var(--gf-fg);background:var(--gf-surface)}
.gf-account-nav a[aria-current="page"]{color:var(--gf-fg);background:var(--gf-surface);font-weight:600}
.gf-account-nav form{margin:0}
@media (min-width:860px){.gf-account-nav .gf-account-out{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--gf-line)}}
.gf-account-who{display:none}
@media (min-width:860px){.gf-account-who{display:flex;flex-direction:column;gap:.125rem;padding:0 .875rem 1rem;margin-bottom:.5rem;border-bottom:1px solid var(--gf-line)}}

/* Avisos */
.gf-alert{display:flex;flex-direction:column;gap:.5rem;padding:.875rem 1rem;border-radius:var(--gf-r-soft);font-size:.9375rem;line-height:1.5;border:1px solid var(--gf-line);background:var(--gf-surface)}
.gf-alert--error{color:var(--gf-error);border-color:color-mix(in oklab,var(--gf-error) 35%,transparent);background:color-mix(in oklab,var(--gf-error) 7%,var(--gf-bg))}
.gf-alert--success{border-color:color-mix(in oklab,var(--gf-success) 35%,transparent);background:color-mix(in oklab,var(--gf-success) 8%,var(--gf-bg))}
.gf-alert--warning{border-color:color-mix(in oklab,var(--gf-warning) 40%,transparent);background:color-mix(in oklab,var(--gf-warning) 9%,var(--gf-bg))}
.gf-alert--info{border-color:color-mix(in oklab,var(--gf-info) 30%,transparent);background:color-mix(in oklab,var(--gf-info) 6%,var(--gf-bg))}
.gf-alert ul{margin:0;padding-left:1.25rem}

/* Estado */
.gf-badge{display:inline-flex;align-items:center;gap:.375rem;width:fit-content;min-height:1.625rem;padding:.125rem .625rem;border-radius:999px;border:1px solid var(--gf-line-strong);font-size:.8125rem;font-weight:500;white-space:nowrap}
.gf-badge::before{content:"";width:.4375rem;height:.4375rem;border-radius:999px;background:currentColor}
.gf-badge--warning,.gf-badge--success,.gf-badge--info,.gf-badge--accent,.gf-badge--done,.gf-badge--error{border-color:transparent;font-weight:600}
.gf-badge--warning{--gf-tone:#b45309;color:color-mix(in oklab,var(--gf-tone) 78%,var(--gf-fg));background:color-mix(in oklab,var(--gf-tone) 15%,var(--gf-bg))}
.gf-badge--success{--gf-tone:#15803d;color:color-mix(in oklab,var(--gf-tone) 82%,var(--gf-fg));background:color-mix(in oklab,var(--gf-tone) 14%,var(--gf-bg))}
.gf-badge--info{--gf-tone:#1d4ed8;color:color-mix(in oklab,var(--gf-tone) 82%,var(--gf-fg));background:color-mix(in oklab,var(--gf-tone) 12%,var(--gf-bg))}
.gf-badge--accent{--gf-tone:#7c3aed;color:color-mix(in oklab,var(--gf-tone) 82%,var(--gf-fg));background:color-mix(in oklab,var(--gf-tone) 13%,var(--gf-bg))}
.gf-badge--done{--gf-tone:#166534;color:var(--gf-bg);background:color-mix(in oklab,var(--gf-tone) 88%,var(--gf-fg))}
.gf-badge--error{--gf-tone:#b91c1c;color:color-mix(in oklab,var(--gf-tone) 85%,var(--gf-fg));background:color-mix(in oklab,var(--gf-tone) 12%,var(--gf-bg))}
.gf-progress{width:100%;height:.375rem;border:0;border-radius:999px;overflow:hidden;background:var(--gf-surface);appearance:none;-webkit-appearance:none}
.gf-progress::-webkit-progress-bar{background:var(--gf-surface)}
.gf-progress::-webkit-progress-value{background:var(--gf-primary);border-radius:999px}
.gf-progress::-moz-progress-bar{background:var(--gf-primary);border-radius:999px}
.gf-skeleton{display:inline-block;height:1em;width:5rem;border-radius:.25rem;background:var(--gf-surface);vertical-align:middle}

/* Página de la tienda sin plantilla propia del tema */
.gf-rte{max-width:70ch;line-height:1.75}
.gf-rte>*+*{margin-top:1rem}
.gf-rte h2{font-family:var(--gf-heading);font-size:1.5rem;font-weight:600;line-height:1.3;margin-top:2.5rem}
.gf-rte h3{font-family:var(--gf-heading);font-size:1.2rem;font-weight:600;line-height:1.3;margin-top:2rem}
.gf-rte ul{list-style:disc;padding-left:1.5rem}
.gf-rte ol{list-style:decimal;padding-left:1.5rem}
.gf-rte a{color:var(--gf-primary);text-decoration:underline;text-underline-offset:2px}
.gf-rte blockquote{margin-left:0;border-left:2px solid var(--gf-line-strong);padding-left:1rem;font-style:italic}
.gf-rte hr{margin:2.5rem 0;border:0;border-top:1px solid var(--gf-line)}
.gf-rte img{max-width:100%;height:auto;border-radius:var(--gf-r-box)}
.gf-rte figure{margin:0}
.gf-rte figcaption{font-size:.875rem;color:var(--gf-muted);margin-top:.5rem;text-align:center}

@media (prefers-reduced-motion:reduce){.gf *{transition:none!important}}
