/* GOOSPLACE R12.5 — Premium Responsive Experience
   Progressive enhancement layer. Loaded after the stable R12.4 styles. */
:root {
  --gp25-ink: #0b1726;
  --gp25-navy: #0e1d2e;
  --gp25-navy-2: #152a3e;
  --gp25-gold: #b8945d;
  --gp25-gold-soft: #ddc79f;
  --gp25-ivory: #f7f4ee;
  --gp25-paper: #fffdf9;
  --gp25-text: #23313d;
  --gp25-muted: #6b7680;
  --gp25-line: rgba(24, 48, 67, .12);
  --gp25-success: #2f765f;
  --gp25-danger: #a1463c;
  --gp25-shadow: 0 18px 50px rgba(11, 23, 38, .10);
  --gp25-shadow-lg: 0 28px 80px rgba(11, 23, 38, .16);
  --gp25-radius-sm: 10px;
  --gp25-radius: 16px;
  --gp25-radius-lg: 24px;
  --gp25-max: 1180px;
}

html { scroll-behavior: smooth; }
body {
  background:
    radial-gradient(circle at 88% 8%, rgba(184,148,93,.08), transparent 30rem),
    linear-gradient(180deg, #fbfaf7 0%, var(--gp25-ivory) 100%);
  color: var(--gp25-text);
  text-rendering: optimizeLegibility;
}
body.gp-has-mobile-nav { padding-bottom: 0; }
::selection { background: rgba(184,148,93,.28); color: var(--gp25-ink); }
:focus-visible { outline: 3px solid rgba(184,148,93,.55); outline-offset: 3px; }

/* Header: one premium control surface */
.gp-header-inner { gap: 18px; }
.gp-header-tools { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.gp-privacy-toggle {
  appearance: none; border: 1px solid rgba(184,148,93,.34); border-radius: 999px;
  background: rgba(255,255,255,.06); color: #e9e1d3; min-height: 40px; padding: 8px 13px;
  display: inline-flex; align-items: center; gap: 7px; cursor: pointer; font: inherit; font-weight: 700;
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.gp-privacy-toggle:hover { background: rgba(184,148,93,.14); border-color: rgba(221,199,159,.58); transform: translateY(-1px); }
.gp-privacy-toggle__icon { font-size: 1rem; line-height: 1; }
.gp-privacy-toggle[aria-pressed="true"] { background: rgba(184,148,93,.20); color: #fff7e8; }

/* Premium page titles and surfaces */
.gp-premium-shell { width: min(calc(100% - 32px), var(--gp25-max)); margin: 28px auto 46px; }
.gp-premium-hero {
  position: relative; overflow: hidden; border-radius: var(--gp25-radius-lg); padding: clamp(28px, 5vw, 58px);
  background: linear-gradient(135deg, var(--gp25-ink), #153149 72%, #1d3e53);
  box-shadow: var(--gp25-shadow-lg); color: #fff;
}
.gp-premium-hero::after {
  content: ""; position: absolute; width: 300px; height: 300px; border: 1px solid rgba(221,199,159,.24);
  border-radius: 50%; right: -90px; top: -110px; box-shadow: 0 0 0 42px rgba(184,148,93,.035), 0 0 0 88px rgba(184,148,93,.025);
}
.gp-premium-hero > * { position: relative; z-index: 1; }
.gp-premium-hero .eyebrow { color: var(--gp25-gold-soft) !important; }
.gp-premium-hero h1, .gp-premium-hero h2 { color: #fff !important; margin: .22em 0 .35em; text-shadow: none !important; }
.gp-premium-hero p { color: rgba(255,255,255,.78) !important; max-width: 720px; font-size: 1.04rem; line-height: 1.75; }

/* Logged-in My Space dashboard */
.gp-dashboard { width: min(calc(100% - 32px), var(--gp25-max)); margin: 18px auto 44px; }
.gp-dashboard-welcome {
  display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(260px, .5fr); gap: 22px; align-items: stretch;
  border-radius: var(--gp25-radius-lg); background: linear-gradient(135deg, var(--gp25-ink), #16334b); color: #fff;
  padding: clamp(26px, 4vw, 46px); box-shadow: var(--gp25-shadow-lg); overflow: hidden; position: relative;
}
.gp-dashboard-welcome::before { content:""; position:absolute; width:280px; height:280px; border-radius:50%; right:-95px; bottom:-150px; background:rgba(184,148,93,.14); }
.gp-dashboard-welcome h1 { color:#fff !important; text-shadow:none !important; margin: 4px 0 10px; font-size: clamp(2rem, 4vw, 3.35rem); }
.gp-dashboard-welcome p { color:rgba(255,255,255,.76) !important; max-width:670px; margin:0; font-size:1.04rem; line-height:1.7; }
.gp-dashboard-status { align-self:center; justify-self:end; min-width:240px; padding:18px; border:1px solid rgba(221,199,159,.25); border-radius:18px; background:rgba(255,255,255,.06); backdrop-filter:blur(12px); }
.gp-dashboard-status strong { display:block; color:#fff; font-size:1.12rem; margin-bottom:5px; }
.gp-dashboard-status span { color:var(--gp25-gold-soft); font-size:.9rem; }
.gp-dashboard-heading { display:flex; justify-content:space-between; align-items:end; gap:18px; margin:34px 2px 16px; }
.gp-dashboard-heading h2 { margin:0; color:var(--gp25-ink) !important; text-shadow:none !important; }
.gp-dashboard-heading p { margin:0; color:var(--gp25-muted); }
.gp-dashboard-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.gp-dashboard-card {
  display:flex; flex-direction:column; min-height:190px; padding:22px; border:1px solid var(--gp25-line); border-radius:var(--gp25-radius);
  background:rgba(255,253,249,.92); box-shadow:0 10px 30px rgba(11,23,38,.06); color:var(--gp25-text) !important; text-decoration:none !important;
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.gp-dashboard-card:hover { transform:translateY(-4px); border-color:rgba(184,148,93,.45); box-shadow:var(--gp25-shadow); }
.gp-dashboard-card__icon { width:44px; height:44px; display:grid; place-items:center; border-radius:14px; background:rgba(184,148,93,.12); color:#806338; font-size:1.25rem; margin-bottom:22px; }
.gp-dashboard-card h3 { margin:0 0 7px; color:var(--gp25-ink) !important; text-shadow:none !important; font-size:1.18rem; }
.gp-dashboard-card p { margin:0; color:var(--gp25-muted) !important; line-height:1.55; }
.gp-dashboard-card__arrow { margin-top:auto; padding-top:17px; color:#8a6b3f; font-weight:800; }
.gp-quick-actions { display:flex; flex-wrap:wrap; gap:10px; }
.gp-quick-action { display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:9px 15px; border-radius:999px; border:1px solid rgba(14,29,46,.11); background:#fff; color:var(--gp25-ink) !important; text-decoration:none !important; font-weight:700; box-shadow:0 6px 18px rgba(11,23,38,.05); }
.gp-quick-action:hover { border-color:rgba(184,148,93,.45); }

/* Forms: premium layout for new and legacy screens */
.gp-form-card { border:1px solid var(--gp25-line); border-radius:var(--gp25-radius-lg); background:rgba(255,253,249,.96); box-shadow:var(--gp25-shadow); padding:clamp(20px,4vw,36px); }
.gp-form-card__head { display:flex; justify-content:space-between; gap:18px; align-items:flex-start; margin-bottom:24px; }
.gp-form-card__head h2, .gp-form-card__head h1 { margin:2px 0 6px; color:var(--gp25-ink) !important; text-shadow:none !important; }
.gp-form-card__head p { margin:0; color:var(--gp25-muted); max-width:690px; line-height:1.6; }
.gp-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 20px; }
.gp-form-grid--single { grid-template-columns:1fr; }
.gp-field { min-width:0; }
.gp-field--full { grid-column:1/-1; }
.gp-field label { display:block; margin:0 0 7px; color:#344452; font-weight:800; font-size:.89rem; letter-spacing:.01em; }
.gp-field-help { display:block; margin-top:6px; color:var(--gp25-muted); font-size:.82rem; line-height:1.45; }
.gp-field input:not([type=checkbox]):not([type=radio]), .gp-field select, .gp-field textarea,
.gp-form-card input:not([type=submit]):not([type=reset]):not([type=button]):not([type=checkbox]):not([type=radio]), .gp-form-card select, .gp-form-card textarea {
  box-sizing:border-box; width:100% !important; max-width:none !important; min-height:46px; border:1px solid rgba(24,48,67,.18) !important;
  border-radius:12px !important; background:#fff !important; color:var(--gp25-text) !important; padding:10px 12px !important; font:inherit;
  box-shadow:0 1px 0 rgba(255,255,255,.7) inset; transition:border-color .18s ease, box-shadow .18s ease;
}
.gp-field textarea, .gp-form-card textarea { min-height:118px; resize:vertical; }
.gp-field input:focus, .gp-field select:focus, .gp-field textarea:focus, .gp-form-card input:focus, .gp-form-card select:focus, .gp-form-card textarea:focus { border-color:rgba(184,148,93,.72) !important; box-shadow:0 0 0 4px rgba(184,148,93,.11) !important; outline:none; }
.gp-form-footer { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-top:24px; padding-top:20px; border-top:1px solid var(--gp25-line); }
.gp-form-footer__actions { display:flex; gap:10px; flex-wrap:wrap; }
.gp-button, .gp-form-card input[type=submit], .gp-form-card button[type=submit] { min-height:44px; border:0; border-radius:999px; padding:10px 18px; font:inherit; font-weight:800; cursor:pointer; background:linear-gradient(135deg,#9c7848,#c5a36e); color:#fff !important; box-shadow:0 8px 20px rgba(128,99,56,.18); }
.gp-button--secondary, .gp-form-card input[type=reset] { min-height:44px; border:1px solid rgba(24,48,67,.16); border-radius:999px; padding:10px 18px; font:inherit; font-weight:800; cursor:pointer; background:#fff; color:var(--gp25-ink); }
.gp-button--danger { background:#fff4f1 !important; color:var(--gp25-danger) !important; border:1px solid rgba(161,70,60,.2) !important; box-shadow:none !important; }
.gp-secret-field { position:relative; }
.gp-secret-field input { padding-right:92px !important; }
.gp-secret-actions { position:absolute; right:7px; top:50%; transform:translateY(-50%); display:flex; gap:4px; }
.gp-icon-button { width:34px; height:34px; border:0; border-radius:9px; background:#f4f0e8; color:#5f4d35; cursor:pointer; display:grid; place-items:center; font-weight:800; }

/* Progressive styling for legacy form tables without changing server logic */
form table.gp-legacy-form-table { width:min(100%, 920px) !important; margin:0 auto !important; border-collapse:separate !important; border-spacing:0 10px !important; background:transparent !important; }
.gp-legacy-form-table tr { background:transparent !important; }
.gp-legacy-form-table td { border:0 !important; background:transparent !important; vertical-align:middle !important; padding:4px 7px !important; color:var(--gp25-text) !important; }
.gp-legacy-form-table td:first-child { font-weight:800; color:#344452 !important; width:185px !important; }
.gp-legacy-form-table td.gp-colon-cell { width:10px !important; color:#a5947c !important; }
.gp-legacy-form-table input:not([type=submit]):not([type=reset]):not([type=button]):not([type=checkbox]):not([type=radio]),
.gp-legacy-form-table select, .gp-legacy-form-table textarea { width:100% !important; max-width:100% !important; box-sizing:border-box; border:1px solid rgba(24,48,67,.18) !important; border-radius:11px !important; background:#fff !important; min-height:44px; padding:9px 11px !important; color:var(--gp25-text) !important; }

/* Credentials vault */
.gp-vault-editor { width:min(calc(100% - 32px),var(--gp25-max)); margin:26px auto 18px; display:grid; grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr); gap:18px; }
.gp-vault-trust { border-radius:var(--gp25-radius-lg); padding:28px; background:linear-gradient(145deg,var(--gp25-ink),#17364e); color:#fff; box-shadow:var(--gp25-shadow); }
.gp-vault-trust__seal { width:52px; height:52px; display:grid; place-items:center; border:1px solid rgba(221,199,159,.36); border-radius:50%; color:var(--gp25-gold-soft); font-size:1.3rem; margin-bottom:20px; }
.gp-vault-trust h3 { color:#fff !important; text-shadow:none !important; margin:0 0 9px; }
.gp-vault-trust p { color:rgba(255,255,255,.72) !important; line-height:1.65; margin:0 0 18px; }
.gp-vault-trust ul { margin:0; padding:0; list-style:none; display:grid; gap:10px; }
.gp-vault-trust li { display:flex; gap:9px; color:rgba(255,255,255,.82); font-size:.9rem; }
.gp-vault-trust li::before { content:"✓"; color:var(--gp25-gold-soft); font-weight:900; }
.gp-credential-search { display:flex; gap:10px; align-items:center; margin-top:14px; }
.gp-credential-search input { flex:1; min-height:44px; border:1px solid var(--gp25-line); border-radius:999px; padding:9px 15px; background:#fff; }

/* Account/service hub */
.gp-account-hub { width:min(calc(100% - 32px),var(--gp25-max)); margin:28px auto 48px; }
.gp-account-hub-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:20px; }
.gp-account-hub-card { position:relative; min-height:230px; padding:24px; border:1px solid var(--gp25-line); border-radius:var(--gp25-radius-lg); background:var(--gp25-paper); box-shadow:0 12px 35px rgba(11,23,38,.07); color:var(--gp25-text) !important; text-decoration:none !important; overflow:hidden; transition:transform .2s ease, box-shadow .2s ease; }
.gp-account-hub-card:hover { transform:translateY(-4px); box-shadow:var(--gp25-shadow); }
.gp-account-hub-card::after { content:""; position:absolute; width:110px; height:110px; border-radius:50%; right:-45px; bottom:-50px; background:rgba(184,148,93,.09); }
.gp-account-hub-card__icon { width:50px; height:50px; border-radius:16px; display:grid; place-items:center; background:rgba(184,148,93,.12); color:#806338; font-size:1.35rem; margin-bottom:28px; }
.gp-account-hub-card h3 { color:var(--gp25-ink) !important; text-shadow:none !important; margin:0 0 9px; }
.gp-account-hub-card p { color:var(--gp25-muted) !important; line-height:1.6; margin:0; }
.gp-account-hub-card span { display:inline-block; margin-top:22px; color:#81643b; font-weight:800; }

/* Registration stepper */
.gp-register-shell { width:min(calc(100% - 32px),900px); margin:28px auto 50px; }
.gp-stepper { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:0 0 18px; }
.gp-stepper__item { position:relative; padding:13px 14px; border-radius:14px; border:1px solid var(--gp25-line); background:rgba(255,255,255,.72); color:var(--gp25-muted); font-size:.85rem; font-weight:800; }
.gp-stepper__item strong { display:block; color:inherit; font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; margin-bottom:2px; }
.gp-stepper__item.is-active { color:var(--gp25-ink); border-color:rgba(184,148,93,.5); background:#fffaf1; box-shadow:0 8px 25px rgba(184,148,93,.09); }
.gp-step-panel[hidden] { display:none !important; }
.gp-step-nav { display:flex; justify-content:space-between; gap:10px; margin-top:22px; }
.gp-password-meter { height:5px; border-radius:999px; background:#e9e4db; overflow:hidden; margin-top:8px; }
.gp-password-meter span { display:block; width:0; height:100%; background:#b45a4d; transition:width .2s ease, background .2s ease; }
.gp-password-meter[data-strength="2"] span { width:33%; background:#b88645; }
.gp-password-meter[data-strength="3"] span { width:66%; background:#9b8c43; }
.gp-password-meter[data-strength="4"] span { width:100%; background:var(--gp25-success); }

/* Responsive table -> card presentation */
.gp-mobile-card-table td::before { display:none; }

/* Privacy mode */
.gp-privacy-mode [data-private],
.gp-privacy-mode input[type="email"], .gp-privacy-mode input[type="tel"],
.gp-privacy-mode input[name*="telefono" i], .gp-privacy-mode input[name*="celular" i],
.gp-privacy-mode input[name*="direccion" i], .gp-privacy-mode input[name*="address" i],
.gp-privacy-mode input[name*="datouno" i], .gp-privacy-mode input[name*="datodos" i],
.gp-privacy-mode textarea[name*="obs" i] { filter:blur(7px); user-select:none; transition:filter .15s ease; }
.gp-privacy-mode [data-private]:focus, .gp-privacy-mode input:focus, .gp-privacy-mode textarea:focus { filter:blur(3px); }

/* Mobile app navigation */
.gp-mobile-dock { display:none; }

/* Small global polish */
.gp-alert { border-radius:12px !important; }
.gp-table-shell { border-radius:var(--gp25-radius) !important; box-shadow:0 10px 30px rgba(11,23,38,.055); }
.gp-table-search input { border-radius:999px !important; min-height:42px; }
.container1 > #breadcrumb { margin-bottom:18px; }
.gp-auth-main form { margin-top:18px; }
.gp-auth-security { display:flex; gap:9px; align-items:center; margin-top:16px; padding:11px 13px; border-radius:12px; background:rgba(47,118,95,.08); color:#315b4e; font-size:.86rem; }

@media (max-width: 1020px) {
  .gp-dashboard-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .gp-dashboard-welcome { grid-template-columns:1fr; }
  .gp-dashboard-status { justify-self:start; }
  .gp-vault-editor { grid-template-columns:1fr; }
  .gp-account-hub-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width: 760px) {
  body.gp-has-mobile-nav { padding-bottom:calc(78px + env(safe-area-inset-bottom)); }
  .gp-privacy-toggle__text { display:none; }
  .gp-privacy-toggle { width:40px; padding:0; justify-content:center; }
  .gp-premium-shell, .gp-dashboard, .gp-vault-editor, .gp-account-hub, .gp-register-shell { width:min(calc(100% - 20px),var(--gp25-max)); }
  .gp-dashboard-welcome { padding:26px 22px; border-radius:20px; }
  .gp-dashboard-status { width:100%; min-width:0; box-sizing:border-box; }
  .gp-dashboard-heading { align-items:flex-start; flex-direction:column; }
  .gp-dashboard-grid { grid-template-columns:1fr; }
  .gp-dashboard-card { min-height:155px; }
  .gp-form-grid { grid-template-columns:1fr; }
  .gp-form-card { border-radius:18px; padding:20px 16px; }
  .gp-form-card__head { flex-direction:column; }
  .gp-account-hub-grid { grid-template-columns:1fr; }
  .gp-stepper__item { padding:10px 8px; font-size:.76rem; }
  .gp-stepper__item strong { font-size:.64rem; }
  .gp-step-nav { position:sticky; bottom:calc(72px + env(safe-area-inset-bottom)); z-index:12; background:rgba(247,244,238,.94); backdrop-filter:blur(10px); margin-left:-8px; margin-right:-8px; padding:10px 8px; border-radius:14px; }

  /* Legacy layout forms become stacked cards instead of desktop tables. */
  form table.gp-legacy-form-table, form table.gp-legacy-form-table tbody { display:block !important; width:100% !important; }
  .gp-legacy-form-table tr { display:grid !important; grid-template-columns:1fr !important; gap:5px; padding:9px 0 !important; border-bottom:1px solid rgba(24,48,67,.08); }
  .gp-legacy-form-table td { display:block !important; width:100% !important; padding:0 !important; }
  .gp-legacy-form-table td:first-child { width:100% !important; }
  .gp-legacy-form-table td.gp-colon-cell { display:none !important; }

  /* Data tables present as readable record cards. */
  .gp-table-scroll-top { display:none !important; }
  .gp-table-scroll, .gp-global-datatable-scroll, .gp-global-datatable-scroll .dataTables_scrollBody { overflow:visible !important; }
  table.gp-mobile-card-table { min-width:0 !important; width:100% !important; border:0 !important; background:transparent !important; }
  table.gp-mobile-card-table thead { position:absolute !important; width:1px !important; height:1px !important; overflow:hidden !important; clip:rect(0 0 0 0) !important; white-space:nowrap !important; }
  table.gp-mobile-card-table tbody { display:grid !important; gap:12px !important; width:100% !important; }
  table.gp-mobile-card-table tbody tr { display:block !important; width:100% !important; border:1px solid var(--gp25-line) !important; border-radius:16px !important; background:#fffdf9 !important; box-shadow:0 9px 25px rgba(11,23,38,.06) !important; padding:9px 13px !important; box-sizing:border-box; }
  table.gp-mobile-card-table tbody tr[style*="display: none"] { display:none !important; }
  table.gp-mobile-card-table tbody td { display:grid !important; grid-template-columns:minmax(92px,34%) minmax(0,1fr); gap:10px; align-items:start; width:100% !important; min-width:0 !important; box-sizing:border-box; border:0 !important; border-bottom:1px solid rgba(24,48,67,.07) !important; padding:10px 0 !important; text-align:left !important; white-space:normal !important; }
  table.gp-mobile-card-table tbody td:last-child { border-bottom:0 !important; }
  table.gp-mobile-card-table tbody td::before { content:attr(data-label); display:block; color:#78838d; font-size:.72rem; font-weight:900; text-transform:uppercase; letter-spacing:.055em; }
  table.gp-mobile-card-table .gp-credential-actions { justify-content:flex-start !important; flex-wrap:wrap; }
  table.gp-mobile-card-table .gp-favorite-cell { text-align:left !important; }

  .gp-mobile-dock {
    position:fixed; display:grid; grid-template-columns:repeat(5,1fr); left:8px; right:8px; bottom:calc(7px + env(safe-area-inset-bottom)); z-index:9996;
    min-height:62px; padding:6px; border:1px solid rgba(221,199,159,.20); border-radius:20px;
    background:rgba(11,23,38,.94); backdrop-filter:blur(18px); box-shadow:0 16px 45px rgba(0,0,0,.28);
  }
  .gp-mobile-dock a { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; min-width:0; border-radius:14px; color:#c8d0d8 !important; text-decoration:none !important; font-size:.65rem; font-weight:800; }
  .gp-mobile-dock a span:first-child { font-size:1.12rem; line-height:1.1; }
  .gp-mobile-dock a.is-active { background:rgba(184,148,93,.15); color:#f1dfbd !important; }
  .gp-back-to-top { bottom:calc(88px + env(safe-area-inset-bottom)) !important; }
}

@media (max-width: 420px) {
  .gp-dashboard-welcome h1 { font-size:2rem; }
  .gp-stepper { gap:5px; }
  .gp-stepper__item { padding:9px 6px; }
  .gp-stepper__item span { display:none; }
  .gp-form-footer__actions, .gp-form-footer__actions > * { width:100%; }
  .gp-form-footer__actions input, .gp-form-footer__actions button { width:100%; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}
/* R12.4 uses a light glass header; keep privacy controls harmonious with it. */
.gp-privacy-toggle { background:rgba(14,29,46,.035); border-color:rgba(184,148,93,.34); color:#4d5964; }
.gp-privacy-toggle:hover { background:rgba(184,148,93,.10); color:#6f5634; }
.gp-privacy-toggle[aria-pressed="true"] { background:#0e1d2e; color:#f3e3c4; border-color:#0e1d2e; }
@media (max-width:900px){ .gp-header-inner{gap:10px!important}.gp-header-tools{margin-left:auto}.gp-menu-toggle{flex:0 0 auto} }
.gp-date-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.gp-date-grid select{width:100%!important;min-width:0}
@media(max-width:520px){.gp-date-grid{grid-template-columns:1fr}}
