/* ── Getsemaní Portal Styles ────────────────────────────────── */
#gg-portal {
  --bg: #f8f7f4;
  --white: #ffffff;
  --ink: #1a1a1a;
  --ink-soft: #4a4a4a;
  --ink-muted: #8a8a8a;
  --gold: #b8963e;
  --gold-light: #d4aa52;
  --gold-bg: #fdf8ee;
  --gold-border: #e8d5a3;
  --forest: #2d4a30;
  --forest-light: #3d6340;
  --border: #e8e4dc;
  --green: #2d7a4f;
  --green-bg: #edf7f1;
  --green-border: #b8dfc9;
  --amber: #b8701a;
  --amber-bg: #fef4e8;
  --amber-border: #f0cc99;
  --gray-bg: #f2f1ee;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 14px;
  line-height: 1.6;
  color: var(--ink);
  background: var(--bg);
  margin: 0 -20px;
}

/* HERO */
.gg-hero {
  background: var(--white);
  border-bottom: 1px solid var(--border);
  padding: 44px 40px 36px;
}
.gg-hero-inner {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 48px;
  align-items: center;
}
.gg-eyebrow {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 12px;
}
.gg-eyebrow-line { width:20px; height:2px; background:var(--gold); border-radius:2px; flex-shrink:0; }
.gg-h1 {
  font-family: 'Playfair Display', 'Georgia', serif;
  font-size: clamp(30px, 4vw, 50px);
  font-weight: 900;
  color: var(--ink);
  line-height: 1.1;
  letter-spacing: -.02em;
  margin: 0 0 10px;
}
.gg-h1 span { color: var(--forest); }
.gg-desc { font-size: 15px; color: var(--ink-muted); max-width: 500px; line-height: 1.7; margin:0; }

.gg-kpis { display:grid; grid-template-columns:repeat(2, 130px); gap:12px; }
.gg-kpi {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 18px 16px;
  text-align: center;
  transition: box-shadow .2s, border-color .2s;
  cursor: default;
}
.gg-kpi:hover { box-shadow: 0 4px 16px rgba(0,0,0,.07); border-color: var(--gold-border); }
.gg-kpi-val { font-family:'Playfair Display','Georgia',serif; font-size:28px; font-weight:900; color:var(--forest); line-height:1; margin-bottom:4px; }
.gg-kpi-lbl { font-size:10px; text-transform:uppercase; letter-spacing:.1em; color:var(--ink-muted); font-weight:600; line-height:1.3; }

/* PHASE STRIP */
.gg-phase-strip {
  background: var(--white);
  border-bottom: 1px solid var(--border);
  padding: 0 40px;
  display: flex;
  overflow-x: auto;
  scrollbar-width: none;
}
.gg-phase-strip::-webkit-scrollbar { display:none; }
.gg-phase-step {
  flex:1; min-width:90px;
  padding: 12px 6px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  border-right: 1px solid var(--border);
  position: relative;
  transition: background .15s;
  cursor: default;
}
.gg-phase-step:last-child { border-right:none; }
.gg-phase-step:hover { background: var(--bg); }
.gg-phase-step.active { background: var(--gold-bg); }
.gg-phase-step::after { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; }
.gg-phase-step.done::after { background:var(--green); }
.gg-phase-step.active::after { background:var(--gold); }
.gg-phase-num {
  width:22px; height:22px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:10px; font-weight:700;
}
.gg-phase-step.done .gg-phase-num { background:var(--green); color:#fff; }
.gg-phase-step.active .gg-phase-num { background:var(--gold); color:#fff; }
.gg-phase-step.pending .gg-phase-num { background:var(--gray-bg); color:var(--ink-muted); border:1px solid var(--border); }
.gg-phase-label { font-size:9px; text-transform:uppercase; letter-spacing:.07em; text-align:center; color:var(--ink-muted); font-weight:600; line-height:1.3; }
.gg-phase-step.done .gg-phase-label { color:var(--green); }
.gg-phase-step.active .gg-phase-label { color:var(--gold); }

/* LAYOUT */
.gg-layout { max-width:1180px; margin:0 auto; padding:36px 40px; display:grid; grid-template-columns:1fr 300px; gap:28px; }

/* SECTION LABEL */
.gg-slabel { font-size:10px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-muted); margin-bottom:14px; }

/* ALERT */
.gg-alert {
  background:var(--amber-bg); border:1px solid var(--amber-border);
  border-left:4px solid var(--amber); border-radius:8px;
  padding:16px 18px; margin-bottom:24px;
  display:flex; gap:14px; cursor:pointer; transition:opacity .2s;
}
.gg-alert:hover { opacity:.8; }
.gg-alert-ico { font-size:18px; flex-shrink:0; }
.gg-alert-title { font-size:14px; font-weight:700; color:var(--amber); margin-bottom:3px; }
.gg-alert-body { font-size:13px; color:var(--ink-soft); line-height:1.6; }
.gg-alert-meta { font-size:11px; color:var(--ink-muted); margin-top:6px; }

/* TABS */
.gg-tabs { display:flex; border-bottom:2px solid var(--border); margin-bottom:0; gap:0; }
.gg-tab {
  padding:10px 20px; font-size:12px; font-weight:700;
  color:var(--ink-muted); cursor:pointer;
  border-bottom:2px solid transparent; margin-bottom:-2px;
  transition:all .15s; display:flex; align-items:center; gap:7px;
  user-select:none; white-space:nowrap;
}
.gg-tab:hover { color:var(--ink); }
.gg-tab.active { color:var(--forest); border-bottom-color:var(--forest); }
.gg-tab-badge {
  background:var(--amber-bg); border:1px solid var(--amber-border);
  color:var(--amber); font-size:9px; padding:1px 6px;
  border-radius:10px; font-weight:700; letter-spacing:.05em;
}
.gg-tab.active .gg-tab-badge { background:var(--forest); border-color:var(--forest); color:#fff; }

/* PANELS */
.gg-panel { display:none; }
.gg-panel.active { display:block; animation: ggFadeUp .25s ease; }
@keyframes ggFadeUp { from{opacity:0;transform:translateY(6px);} to{opacity:1;transform:translateY(0);} }

/* PROJECT CARD */
.gg-proj-card { background:var(--white); border:1px solid var(--border); border-radius:0 10px 10px 10px; overflow:hidden; }
.gg-proj-head { padding:24px 28px 18px; display:flex; justify-content:space-between; align-items:flex-start; border-bottom:1px solid var(--border); background:var(--bg); }
.gg-proj-num-wrap { display:flex; align-items:baseline; gap:8px; margin-bottom:3px; }
.gg-proj-num { font-family:'Playfair Display','Georgia',serif; font-size:44px; font-weight:900; color:var(--forest); line-height:1; }
.gg-proj-unit { font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); }
.gg-proj-name { font-size:13px; color:var(--ink-muted); }
.gg-status-badge { display:flex; align-items:center; gap:6px; background:var(--amber-bg); border:1px solid var(--amber-border); color:var(--amber); font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:6px 12px; border-radius:20px; white-space:nowrap; }
.gg-sdot { width:6px; height:6px; border-radius:50%; background:var(--amber); animation: ggPulse 1.5s infinite; }
@keyframes ggPulse { 0%,100%{opacity:1;} 50%{opacity:.35;} }

/* PHASE TABLE */
.gg-phase-table { width:100%; border-collapse:collapse; }
.gg-phase-table tr { border-bottom:1px solid var(--border); transition:background .12s; }
.gg-phase-table tr:last-child { border-bottom:none; }
.gg-phase-table tr:hover { background:#fafaf8; }
.gg-phase-table tr.row-active { background:var(--gold-bg); }
.gg-phase-table tr.row-active:hover { background:#fdf5e0; }
.gg-td-n { width:56px; padding:13px 0 13px 20px; font-size:10px; font-weight:700; letter-spacing:.1em; color:var(--ink-muted); text-transform:uppercase; }
.gg-td-n.active { color:var(--gold); }
.gg-td-desc { padding:13px 14px; font-size:13px; color:var(--ink-soft); line-height:1.5; }
.gg-td-desc strong { color:var(--ink); }
.gg-nota { font-size:11px; color:var(--gold); font-style:italic; margin-top:3px; }
.gg-td-st { width:130px; padding:13px 20px 13px 0; text-align:right; }
.gg-chip { display:inline-flex; align-items:center; font-size:10px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; padding:4px 10px; border-radius:20px; white-space:nowrap; }
.gg-chip.done { background:var(--green-bg); color:var(--green); border:1px solid var(--green-border); }
.gg-chip.active { background:var(--amber-bg); color:var(--amber); border:1px solid var(--amber-border); }
.gg-chip.pending { background:var(--gray-bg); color:var(--ink-muted); border:1px solid var(--border); }

/* PROGRESS */
.gg-prog-area { padding:16px 20px; border-top:1px solid var(--border); background:var(--bg); display:flex; align-items:center; gap:14px; }
.gg-prog-bar { flex:1; height:6px; background:var(--border); border-radius:10px; overflow:hidden; }
.gg-prog-fill { height:100%; background:linear-gradient(90deg, var(--forest-light), var(--gold-light)); border-radius:10px; transition:width 1.2s cubic-bezier(.16,1,.3,1); }
.gg-prog-pct { font-size:12px; font-weight:700; color:var(--forest); white-space:nowrap; }
.gg-prog-lbl { font-size:11px; color:var(--ink-muted); white-space:nowrap; }

/* SIDEBAR */
.gg-side-block { background:var(--white); border:1px solid var(--border); border-radius:10px; overflow:hidden; margin-bottom:20px; }
.gg-side-head { padding:12px 18px; border-bottom:1px solid var(--border); font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); background:var(--bg); display:flex; justify-content:space-between; align-items:center; }
#gg-side-date { font-weight:400; color:var(--ink-muted); letter-spacing:0; text-transform:none; font-size:10px; }

.gg-kpi-grid { display:grid; grid-template-columns:1fr 1fr; gap:0; }
.gg-kpi-cell { padding:16px 14px; text-align:center; border-right:1px solid var(--border); border-bottom:1px solid var(--border); transition:background .12s; cursor:default; }
.gg-kpi-cell:nth-child(2n) { border-right:none; }
.gg-kpi-cell:nth-child(3), .gg-kpi-cell:nth-child(4) { border-bottom:none; }
.gg-kpi-cell:hover { background:var(--bg); }
.gg-kpi-cell-val { font-family:'Playfair Display','Georgia',serif; font-size:24px; font-weight:900; color:var(--forest); line-height:1; margin-bottom:4px; }
.gg-kpi-cell-lbl { font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--ink-muted); line-height:1.3; }

/* TIMELINE */
.gg-tl { padding:4px 0; }
.gg-tl-row { display:flex; gap:12px; padding:12px 18px; border-bottom:1px solid var(--border); transition:background .12s; cursor:default; }
.gg-tl-row:last-child { border-bottom:none; }
.gg-tl-row:hover { background:var(--bg); }
.gg-tl-row.tl-current { background:var(--gold-bg); }
.gg-tl-left { display:flex; flex-direction:column; align-items:center; padding-top:3px; flex-shrink:0; }
.gg-tl-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }
.gg-tl-dot.done { background:var(--green); }
.gg-tl-dot.active { background:var(--amber); animation:ggPulse 1.5s infinite; }
.gg-tl-dot.pending { background:var(--border); border:1px solid #ccc; }
.gg-tl-line { width:1px; flex:1; min-height:14px; background:var(--border); margin-top:4px; }
.gg-tl-title { font-size:12px; font-weight:700; color:var(--ink); margin-bottom:2px; line-height:1.3; }
.gg-tl-row.tl-current .gg-tl-title { color:var(--amber); }
.gg-tl-sub { font-size:11px; color:var(--ink-muted); line-height:1.4; }
.gg-tl-tag { display:inline-flex; align-items:center; gap:4px; margin-top:4px; font-size:9px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:2px 7px; border-radius:10px; }
.gg-tl-tag.done { background:var(--green-bg); color:var(--green); }
.gg-tl-tag.active { background:var(--amber-bg); color:var(--amber); }
.gg-tl-tag.pending { background:var(--gray-bg); color:var(--ink-muted); }

/* FIRMA */
.gg-firma { background:var(--forest); border-radius:10px; padding:22px; }
.gg-firma-logo { font-family:'Playfair Display','Georgia',serif; font-size:17px; font-weight:700; color:#fff; line-height:1.2; margin-bottom:3px; }
.gg-firma-sub { font-size:11px; color:rgba(255,255,255,.45); margin-bottom:16px; line-height:1.4; }
.gg-firma-div { height:1px; background:rgba(255,255,255,.1); margin-bottom:14px; }
.gg-firma-row { display:flex; align-items:flex-start; gap:8px; margin-bottom:9px; }
.gg-fb { width:4px; height:4px; background:var(--gold-light); border-radius:50%; margin-top:6px; flex-shrink:0; }
.gg-ft { font-size:12px; color:rgba(255,255,255,.6); line-height:1.4; }
.gg-firma-foot { margin-top:16px; padding-top:14px; border-top:1px solid rgba(255,255,255,.1); }
.gg-firma-foot-lbl { font-size:9px; text-transform:uppercase; letter-spacing:.14em; color:var(--gold-light); margin-bottom:4px; font-weight:700; }
.gg-firma-foot-val { font-size:12px; color:rgba(255,255,255,.55); }

/* RESPONSIVE */
@media(max-width:860px){
  #gg-portal { margin:0 -16px; }
  .gg-layout { grid-template-columns:1fr; padding:20px; }
  .gg-hero { padding:28px 20px; }
  .gg-hero-inner { grid-template-columns:1fr; gap:20px; }
  .gg-kpis { grid-template-columns:repeat(4,1fr); }
  .gg-phase-strip { padding:0 16px; }
  .gg-proj-head { flex-direction:column; gap:10px; }
}
