/*
 * Gualamba Design System V1 — canonical visual foundation.
 *
 * Transitional layer only: these tokens and opt-in .gds-* primitives do not
 * restyle legacy selectors. Migrations must adopt them component by component.
 */
:root{
  /* Color: institutional dark-green identity, warm readable content. */
  --g-v1-color-background:#07100c;
  --g-v1-color-surface:#0d1b15;
  --g-v1-color-surface-elevated:#11251c;
  --g-v1-color-surface-subtle:#17392d;
  --g-v1-color-primary:#3f8768;
  --g-v1-color-primary-hover:#65b58a;
  --g-v1-color-primary-pressed:#2f7658;
  --g-v1-color-accent:#d2a45e;
  --g-v1-color-text-primary:#edf4ef;
  --g-v1-color-text-secondary:#a9b9b1;
  --g-v1-color-text-muted:#82988d;
  --g-v1-color-border:#244438;
  --g-v1-color-border-strong:#345346;
  --g-v1-color-success:#65b58a;
  --g-v1-color-warning:#d2a45e;
  --g-v1-color-error:#df554f;
  --g-v1-color-backdrop:rgba(7,16,12,.72);
  --g-v1-color-focus:rgba(101,181,138,.78);

  /* Typography: Manrope is already loaded by the current client. */
  --g-v1-font-family:"Manrope",Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  --g-v1-font-display-size:clamp(1.875rem,4vw,3rem);
  --g-v1-font-display-weight:800;
  --g-v1-font-display-line-height:1.08;
  --g-v1-font-h1-size:clamp(1.75rem,3.2vw,2.5rem);
  --g-v1-font-h1-weight:800;
  --g-v1-font-h1-line-height:1.1;
  --g-v1-font-h2-size:clamp(1.5rem,2.6vw,2rem);
  --g-v1-font-h2-weight:800;
  --g-v1-font-h2-line-height:1.15;
  --g-v1-font-h3-size:clamp(1.125rem,2vw,1.375rem);
  --g-v1-font-h3-weight:750;
  --g-v1-font-h3-line-height:1.2;
  --g-v1-font-body-size:1rem;
  --g-v1-font-body-weight:500;
  --g-v1-font-body-line-height:1.5;
  --g-v1-font-body-small-size:.875rem;
  --g-v1-font-label-size:.875rem;
  --g-v1-font-label-weight:750;
  --g-v1-font-label-line-height:1.25;
  --g-v1-font-caption-size:.75rem;
  --g-v1-font-caption-weight:650;
  --g-v1-font-caption-line-height:1.35;
  --g-v1-font-button-size:.875rem;
  --g-v1-font-button-weight:800;
  --g-v1-font-button-line-height:1.2;
  --g-v1-letter-kicker:.09em;

  /* Spacing: 4px base. */
  --g-v1-space-xs:.25rem;
  --g-v1-space-sm:.5rem;
  --g-v1-space-md:.75rem;
  --g-v1-space-lg:1rem;
  --g-v1-space-xl:1.5rem;
  --g-v1-space-2xl:2rem;
  --g-v1-space-3xl:3rem;

  /* Geometry and elevation. */
  --g-v1-radius-small:.75rem;
  --g-v1-radius-medium:1.125rem;
  --g-v1-radius-large:1.5rem;
  --g-v1-radius-pill:999px;
  --g-v1-border-width:1px;
  --g-v1-shadow-1:0 4px 16px rgba(0,0,0,.12);
  --g-v1-shadow-2:0 10px 28px rgba(0,0,0,.16);
  --g-v1-shadow-3:0 18px 42px rgba(0,0,0,.22);
  --g-v1-shadow-4:0 28px 64px rgba(0,0,0,.30);

  /* Layer order. */
  --g-v1-z-base:0;
  --g-v1-z-sticky:100;
  --g-v1-z-header:200;
  --g-v1-z-bottom-nav:300;
  --g-v1-z-overlay:400;
  --g-v1-z-dialog:500;
  --g-v1-z-toast:600;
  --g-v1-motion-fast:120ms;
  --g-v1-motion-normal:180ms;
  --g-v1-motion-overlay:240ms;
  --g-v1-motion-ease:cubic-bezier(.2,.7,.2,1);
}

/* The same semantic tokens adapt migrated surfaces when the existing theme
   toggle selects the light interface. */
html:not([data-theme="dark"]){
  --g-v1-color-background:#f4f6f1;
  --g-v1-color-surface:#ffffff;
  --g-v1-color-surface-elevated:#ffffff;
  --g-v1-color-surface-subtle:#eef3ed;
  --g-v1-color-primary:#246346;
  --g-v1-color-primary-hover:#1b5139;
  --g-v1-color-primary-pressed:#173f2d;
  --g-v1-color-accent:#a86f2f;
  --g-v1-color-text-primary:#173f32;
  --g-v1-color-text-secondary:#52675c;
  --g-v1-color-text-muted:#718278;
  --g-v1-color-border:#d6e0d8;
  --g-v1-color-border-strong:#a9bcae;
  --g-v1-color-backdrop:rgba(20,42,31,.48);
}

/* Opt-in primitives. No existing component receives these classes in F1. */
.gds-button{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--g-v1-space-sm);min-height:2.75rem;
  padding:0 var(--g-v1-space-lg);border:var(--g-v1-border-width) solid transparent;border-radius:var(--g-v1-radius-small);
  font-family:var(--g-v1-font-family);font-size:var(--g-v1-font-button-size);font-weight:var(--g-v1-font-button-weight);line-height:var(--g-v1-font-button-line-height);cursor:pointer;
  transition:background-color var(--g-v1-motion-normal) var(--g-v1-motion-ease),border-color var(--g-v1-motion-normal) var(--g-v1-motion-ease),color var(--g-v1-motion-normal) var(--g-v1-motion-ease),box-shadow var(--g-v1-motion-normal) var(--g-v1-motion-ease),transform var(--g-v1-motion-fast) var(--g-v1-motion-ease);
}
.gds-button:focus-visible,.gds-field-control:focus-visible{outline:3px solid var(--g-v1-color-focus);outline-offset:2px}
.gds-button:disabled{cursor:not-allowed;opacity:.52}
.gds-button--primary{background:var(--g-v1-color-primary);color:var(--g-v1-color-text-primary)}
.gds-button--primary:hover:not(:disabled){background:var(--g-v1-color-primary-hover)}
.gds-button--primary:active:not(:disabled){background:var(--g-v1-color-primary-pressed)}
.gds-button--secondary{border-color:var(--g-v1-color-border-strong);background:var(--g-v1-color-surface-elevated);color:var(--g-v1-color-text-primary)}
.gds-button--ghost{background:transparent;color:var(--g-v1-color-text-primary)}
.gds-button--destructive{background:var(--g-v1-color-error);color:#fff}
.gds-button--icon{width:2.75rem;padding:0;border-radius:var(--g-v1-radius-pill)}

.gds-card{border:var(--g-v1-border-width) solid var(--g-v1-color-border);border-radius:var(--g-v1-radius-medium);background:var(--g-v1-color-surface);box-shadow:var(--g-v1-shadow-1);color:var(--g-v1-color-text-primary)}
.gds-field{display:grid;gap:var(--g-v1-space-sm);font-family:var(--g-v1-font-family);font-size:var(--g-v1-font-label-size);font-weight:var(--g-v1-font-label-weight);line-height:var(--g-v1-font-label-line-height);color:var(--g-v1-color-text-secondary)}
.gds-field-control{box-sizing:border-box;width:100%;min-height:2.75rem;border:var(--g-v1-border-width) solid var(--g-v1-color-border-strong);border-radius:var(--g-v1-radius-small);padding:0 var(--g-v1-space-md);background:var(--g-v1-color-surface-elevated);color:var(--g-v1-color-text-primary);font:inherit}
.gds-field-help{font-size:var(--g-v1-font-caption-size);font-weight:var(--g-v1-font-caption-weight);line-height:var(--g-v1-font-caption-line-height);color:var(--g-v1-color-text-muted)}
.gds-field-error{color:var(--g-v1-color-error)}
.gds-badge{display:inline-flex;align-items:center;min-height:1.5rem;padding:0 var(--g-v1-space-sm);border:var(--g-v1-border-width) solid var(--g-v1-color-border);border-radius:var(--g-v1-radius-pill);color:var(--g-v1-color-text-secondary);font-family:var(--g-v1-font-family);font-size:var(--g-v1-font-caption-size);font-weight:var(--g-v1-font-caption-weight)}
.gds-overlay{background:var(--g-v1-color-backdrop)}
.gds-dialog{border:var(--g-v1-border-width) solid var(--g-v1-color-border);border-radius:var(--g-v1-radius-large);background:var(--g-v1-color-surface-elevated);box-shadow:var(--g-v1-shadow-4);color:var(--g-v1-color-text-primary)}
.gds-header{background:var(--g-v1-color-background);color:var(--g-v1-color-text-primary)}
.gds-bottom-nav{background:var(--g-v1-color-surface);border-color:var(--g-v1-color-border);color:var(--g-v1-color-text-secondary)}

/* F2 Application Shell. These selectors are deliberately limited to migrated surfaces. */
.gds-icon{display:block;width:1.5rem;height:1.5rem;stroke:currentColor;stroke-width:1.8}
.gds-icon-button{display:inline-grid;place-items:center;width:2.75rem;height:2.75rem;padding:0}
.gds-icon-button::before,.gds-icon-button::after{content:none}
.gds-shell-header{background:var(--g-v1-color-background);color:var(--g-v1-color-text-primary)}
body.gds-shell-has-bottom-nav{padding-bottom:calc(4.75rem + env(safe-area-inset-bottom))}
.g-bottom-nav.gds-shell-nav{position:fixed;inset:auto 0 0;z-index:var(--g-v1-z-bottom-nav);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));height:calc(4.25rem + env(safe-area-inset-bottom));padding:0 0 env(safe-area-inset-bottom);border:0;border-top:var(--g-v1-border-width) solid var(--g-v1-color-border);border-radius:0;background:var(--g-v1-color-surface);box-shadow:0 -8px 24px rgba(0,0,0,.14);backdrop-filter:none}
.g-bottom-nav.gds-shell-nav button{position:relative;min-width:0;border:0;border-radius:0;background:transparent;color:var(--g-v1-color-text-muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-family:var(--g-v1-font-family);font-size:.625rem;font-weight:650;line-height:1.1;letter-spacing:.01em;transition:color var(--g-v1-motion-fast) var(--g-v1-motion-ease),transform var(--g-v1-motion-fast) var(--g-v1-motion-ease)}
.g-bottom-nav.gds-shell-nav .g-nav-icon{display:grid;place-items:center;line-height:1}
.g-bottom-nav.gds-shell-nav .gds-icon{width:1.375rem;height:1.375rem;transition:stroke-width var(--g-v1-motion-fast) var(--g-v1-motion-ease),transform var(--g-v1-motion-fast) var(--g-v1-motion-ease)}
.g-bottom-nav.gds-shell-nav button.active{background:transparent;color:var(--g-v1-color-text-primary);font-weight:800}
.g-bottom-nav.gds-shell-nav button.active .gds-icon{stroke-width:2.35;transform:translateY(-1px)}
.g-bottom-nav.gds-shell-nav button.active::after{content:"";position:absolute;top:0;width:1.25rem;height:2px;border-radius:0 0 var(--g-v1-radius-pill) var(--g-v1-radius-pill);background:var(--g-v1-color-accent)}
.g-bottom-nav.gds-shell-nav .g-nav-publish{color:var(--g-v1-color-accent)}
.g-bottom-nav.gds-shell-nav .g-nav-publish .gds-icon{width:1.5rem;height:1.5rem}
.g-bottom-nav.gds-shell-nav button:active{transform:scale(.96)}
.g-bottom-nav.gds-shell-nav button:focus-visible{outline:3px solid var(--g-v1-color-focus);outline-offset:-3px}
/* N1.1: Explore and the account profile are Level 1 views, not dialogs over the shell. */
.gualamba-explore-view.is-open,.auth-modal.g-account-view{z-index:calc(var(--g-v1-z-bottom-nav) - 1)}

.g-publish-chooser.gds-publish-chooser{display:block;position:fixed;inset:0;z-index:var(--g-v1-z-dialog);visibility:hidden;pointer-events:none;opacity:0;transition:opacity var(--g-v1-motion-overlay) var(--g-v1-motion-ease),visibility 0s linear var(--g-v1-motion-overlay)}
.g-publish-chooser.gds-publish-chooser.is-open{visibility:visible;pointer-events:auto;opacity:1;transition-delay:0s}
.gds-publish-chooser .g-publish-backdrop{background:var(--g-v1-color-backdrop);backdrop-filter:blur(5px);opacity:0;transition:opacity var(--g-v1-motion-overlay) var(--g-v1-motion-ease)}
.gds-publish-chooser.is-open .g-publish-backdrop{opacity:1}
.gds-publish-chooser .g-publish-sheet{left:0;right:0;bottom:0;max-width:42rem;margin:0 auto;padding:var(--g-v1-space-xl) var(--g-v1-space-lg) max(var(--g-v1-space-xl),env(safe-area-inset-bottom));border:var(--g-v1-border-width) solid var(--g-v1-color-border);border-bottom:0;border-radius:var(--g-v1-radius-large) var(--g-v1-radius-large) 0 0;background:var(--g-v1-color-surface-elevated);box-shadow:var(--g-v1-shadow-4);color:var(--g-v1-color-text-primary);transform:translateY(100%);transition:transform var(--g-v1-motion-overlay) var(--g-v1-motion-ease)}
.gds-publish-chooser.is-open .g-publish-sheet{transform:translateY(0)}
.gds-publish-chooser .g-publish-head{align-items:center;margin-bottom:var(--g-v1-space-lg)}
.gds-publish-chooser .g-publish-head>div>span{color:var(--g-v1-color-accent);font-family:var(--g-v1-font-family);font-size:var(--g-v1-font-caption-size);font-weight:800;letter-spacing:var(--g-v1-letter-kicker)}
.gds-publish-chooser .g-publish-head h2{margin:var(--g-v1-space-xs) 0 0;color:var(--g-v1-color-text-primary);font-family:var(--g-v1-font-family);font-size:var(--g-v1-font-h2-size);line-height:var(--g-v1-font-h2-line-height)}
.gds-publish-chooser .g-publish-close{border:var(--g-v1-border-width) solid var(--g-v1-color-border-strong);border-radius:var(--g-v1-radius-small);background:transparent;color:var(--g-v1-color-text-primary)}
.gds-publish-chooser .g-publish-options{display:grid;grid-template-columns:1fr;gap:var(--g-v1-space-sm)}
.gds-publish-chooser .g-publish-options button{display:grid;grid-template-columns:3rem minmax(0,1fr) 1.5rem;align-items:center;gap:var(--g-v1-space-md);min-height:7.5rem;padding:var(--g-v1-space-lg);border:var(--g-v1-border-width) solid var(--g-v1-color-border);border-radius:var(--g-v1-radius-medium);background:var(--g-v1-color-surface);color:var(--g-v1-color-text-primary);text-align:left;transition:border-color var(--g-v1-motion-fast) var(--g-v1-motion-ease),background-color var(--g-v1-motion-fast) var(--g-v1-motion-ease),transform var(--g-v1-motion-fast) var(--g-v1-motion-ease)}
.gds-publish-chooser .g-publish-options button:last-child{grid-column:auto}
.gds-publish-chooser .g-publish-options button:hover{border-color:var(--g-v1-color-primary);background:var(--g-v1-color-surface-subtle)}
.gds-publish-chooser .g-publish-options button:active{transform:scale(.985);background:var(--g-v1-color-surface-subtle)}
.gds-publish-chooser .g-publish-options button:focus-visible{outline:3px solid var(--g-v1-color-focus);outline-offset:2px}
.g-semantic-emoji{display:inline-block;inline-size:1.1em;line-height:1;text-align:center;vertical-align:-.08em;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:.96em;font-style:normal}.g-explore-filters .g-semantic-emoji{font-size:1rem}.g-specialized-card-media-empty .g-semantic-emoji,.g-listing-detail-media-empty .g-semantic-emoji{font-size:1.5rem}
.gds-publish-chooser .g-publish-option-icon{display:grid;place-items:center;width:3rem;height:3rem;border:var(--g-v1-border-width) solid var(--g-v1-color-border);border-radius:var(--g-v1-radius-small);background:var(--g-v1-color-surface-subtle);color:var(--g-v1-color-accent)}
.gds-publish-chooser .g-publish-option-icon .gds-icon{width:1.5rem;height:1.5rem}
.gds-publish-chooser .g-publish-option-copy{min-width:0}
.gds-publish-chooser .g-publish-options strong{display:block;margin:0;font-family:var(--g-v1-font-family);font-size:var(--g-v1-font-label-size);font-weight:800}
.gds-publish-chooser .g-publish-options small{display:block;margin:var(--g-v1-space-xs) 0 0;padding:0;color:var(--g-v1-color-text-secondary);font-family:var(--g-v1-font-family);font-size:var(--g-v1-font-caption-size);line-height:var(--g-v1-font-caption-line-height)}
.gds-publish-chooser .g-publish-option-arrow{display:grid;place-items:center;color:var(--g-v1-color-accent);font-size:1.25rem;font-weight:800}

@media (hover:hover){.g-bottom-nav.gds-shell-nav button:hover{color:var(--g-v1-color-text-primary)}}
@media (min-width:701px){body.gds-shell-has-bottom-nav{padding-bottom:0}.g-bottom-nav.gds-shell-nav{display:none}}
@media (prefers-reduced-motion:reduce){.gds-button,.g-bottom-nav.gds-shell-nav button,.g-bottom-nav.gds-shell-nav .gds-icon,.g-publish-chooser.gds-publish-chooser,.gds-publish-chooser .g-publish-backdrop,.gds-publish-chooser .g-publish-sheet,.gds-publish-chooser .g-publish-options button{transition:none}}

/* Stabilization V1: opt-in migration of high-traffic marketplace surfaces. */
.gds-pwa-update-action{position:fixed;left:50%;top:max(var(--g-v1-space-sm),env(safe-area-inset-top));transform:translateX(-50%);z-index:var(--g-v1-z-toast);max-width:calc(100vw - (var(--g-v1-space-md) * 2));border:var(--g-v1-border-width) solid var(--g-v1-color-border-strong);border-radius:var(--g-v1-radius-pill);background:var(--g-v1-color-surface-elevated);color:var(--g-v1-color-text-primary);padding:var(--g-v1-space-xs) var(--g-v1-space-md);font:700 var(--g-v1-font-button-size)/var(--g-v1-font-button-line-height) var(--g-v1-font-family);box-shadow:var(--g-v1-shadow-elevated);cursor:pointer}.gds-pwa-update-action:focus-visible{outline:3px solid var(--g-v1-color-focus);outline-offset:3px}
.g-specialized-card{border-color:var(--g-v1-color-border);border-radius:var(--g-v1-radius-medium);background:var(--g-v1-color-surface-elevated);box-shadow:var(--g-v1-shadow-subtle);color:var(--g-v1-color-text-primary)}.g-specialized-card:hover{border-color:var(--g-v1-color-border-strong);box-shadow:var(--g-v1-shadow-elevated)}.g-specialized-card-media{background:var(--g-v1-color-surface-subtle)}.g-specialized-card-media-empty{background:var(--g-v1-color-surface-subtle);color:var(--g-v1-color-accent)}.g-specialized-card-media-empty .gds-icon{width:2rem;height:2rem}.g-specialized-card h4,.g-specialized-card-commercial strong{color:var(--g-v1-color-text-primary)}.g-specialized-card-context,.g-specialized-card-action{color:var(--g-v1-color-accent)}.g-specialized-card-attributes,.g-specialized-card-commercial{color:var(--g-v1-color-text-secondary)}.g-specialized-card-attributes span{border:var(--g-v1-border-width) solid var(--g-v1-color-border);border-radius:var(--g-v1-radius-small);background:var(--g-v1-color-surface-subtle)}.g-specialized-card-location{display:inline-flex;align-items:center;gap:.25rem}.g-specialized-card-location .gds-icon{width:1rem;height:1rem;flex:0 0 auto}.g-specialized-card-inquiry{color:var(--g-v1-color-accent)}
.g-listing-detail-view{background:var(--g-v1-color-background);color:var(--g-v1-color-text-primary)}.g-listing-detail-shell{padding-bottom:calc(var(--g-v1-space-2xl) + 4.5rem + env(safe-area-inset-bottom))}.g-listing-detail-kicker,.g-listing-detail-context{color:var(--g-v1-color-accent)}.g-listing-detail-content h1,.g-listing-detail-price{color:var(--g-v1-color-text-primary)}.g-listing-detail-location{display:flex;align-items:center;gap:.35rem;color:var(--g-v1-color-text-secondary)}.g-listing-detail-location .gds-icon{width:1rem;height:1rem}.g-listing-detail-gallery img,.g-listing-detail-media-empty{border-radius:var(--g-v1-radius-medium);background:var(--g-v1-color-surface-subtle)}.g-listing-detail-media-empty{color:var(--g-v1-color-accent)}.g-listing-detail-media-empty .gds-icon{width:3.5rem;height:3.5rem}.g-listing-detail-attributes li,.g-listing-detail-facts div{border-color:var(--g-v1-color-border);background:var(--g-v1-color-surface-elevated);color:var(--g-v1-color-text-primary)}.g-listing-detail-facts dt,.g-listing-detail-section p,.g-listing-detail-seller span{color:var(--g-v1-color-text-secondary)}

/* RC1.1: account keeps legacy data sources but presents one visual publication surface. */
.auth-modal.g-account-view .auth-box{background:var(--g-v1-color-surface);color:var(--g-v1-color-text-primary);border-color:var(--g-v1-color-border)}.auth-modal.g-account-view .profile-summary,.auth-modal.g-account-view .g-account-publications{border:1px solid var(--g-v1-color-border);border-radius:var(--g-v1-radius-medium);background:var(--g-v1-color-surface-elevated)}.g-account-publications{display:grid;gap:var(--g-v1-space-sm);margin-top:var(--g-v1-space-lg);padding:var(--g-v1-space-md)}.g-account-publications-head h3,.g-account-publications-head p{margin:0}.g-account-publications-head p{margin-top:.25rem;color:var(--g-v1-color-text-secondary);font-size:var(--g-v1-font-caption-size)}.auth-modal.g-account-view .user-lot-item,.auth-modal.g-account-view .user-marketplace-item{background:var(--g-v1-color-surface-subtle);border-color:var(--g-v1-color-border);color:var(--g-v1-color-text-primary)}.auth-modal.g-account-view .user-lot-item small,.auth-modal.g-account-view .user-marketplace-item small{color:var(--g-v1-color-text-secondary)}
