/* Gemini 받는 과정 체험 — 임직원 화면 예시(실제 계정·초대·발급·결제 없음). 토큰은 style.css :root 그대로 쓴다. */
.gx{background:var(--surface)}
.gx-top{display:flex;align-items:center;gap:16px;max-width:1120px;margin:0 auto;padding:20px 24px;border-bottom:1px solid var(--line-strong)}
.gx-top img{width:120px;height:auto}
.gx-doc{font-size:13px;font-weight:600;color:var(--text2)}
.gx-back{margin-left:auto;font-size:13px;font-weight:600}
.gx-main{max-width:1120px;margin:0 auto;padding:28px 24px 64px}
.gx-eyebrow{font-size:12px;font-weight:600;color:var(--text2)}
.gx-head h1{margin-top:6px;font-size:28px;font-weight:800;letter-spacing:-.03em;line-height:1.3}
.gx-lead{margin-top:8px;color:var(--text2)}
.gx-mode{display:inline-flex;gap:4px;margin-top:20px;padding:4px;border-radius:var(--r-pill);background:var(--sub)}
.gx-mode button{min-height:40px;padding:0 18px;border:0;border-radius:var(--r-pill);background:transparent;font:600 14px var(--font-body);color:var(--text2);cursor:pointer}
.gx-mode button[aria-selected="true"]{background:var(--text);color:#FFFFFF}
.gx-mode button:focus-visible{outline:2px solid var(--text);outline-offset:2px}

.gx-stage{display:grid;grid-template-columns:minmax(0,1fr) 380px;grid-template-rows:auto 1fr;grid-template-areas:"head device" "list device";column-gap:48px;align-items:start}
.gx-head{grid-area:head}
.gx-list{grid-area:list}
.gx-device{grid-area:device}
.gx-list .gx-steps{margin-top:28px}
.gx-steps{counter-reset:gx;border-top:2px solid var(--text)}
.gx-steps[hidden]{display:none}
.gx-steps li{border-bottom:1px solid var(--line)}
.gx-steps button{display:grid;grid-template-columns:32px minmax(0,1fr);gap:14px;width:100%;padding:14px 4px;border:0;background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}
.gx-steps button:focus-visible{outline:2px solid var(--text);outline-offset:-2px}
.gx-no{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:1px solid var(--line-strong);font:600 13px var(--font-num);color:var(--text2)}
.gx-st{font-weight:700}
.gx-st{display:block}
.gx-sd{display:block;margin-top:2px;font-size:13px;color:var(--text2)}
.gx-who{display:inline-block;margin-left:6px;padding:0 8px;border-radius:var(--r-pill);background:var(--sub);font-size:11.5px;font-weight:600;color:var(--on-sub);vertical-align:1px}
.gx-steps li.is-done .gx-no{background:var(--text);border-color:var(--text);color:#FFFFFF}
.gx-steps li.is-now .gx-no{border:2px solid var(--action);color:var(--action)}
.gx-steps li.is-now .gx-st{text-decoration:underline;text-decoration-color:var(--action);text-decoration-thickness:2px;text-underline-offset:4px}
.gx-steps li:not(.is-now):not(.is-done) .gx-st{color:var(--text2)}

/* 폰 */
.gx-device{position:sticky;top:16px}
.gx-phone{width:360px;height:700px;margin:0 auto;border-radius:44px;background:#18181B;padding:12px;box-shadow:0 18px 40px rgba(24,24,27,.18)}
.gx-screen{position:relative;height:100%;border-radius:34px;background:#FFFFFF;overflow:hidden;display:flex;flex-direction:column}
.gx-sbar{display:flex;justify-content:space-between;align-items:center;padding:12px 24px 6px;font:600 13px var(--font-num);color:var(--text)}
.gx-sbar i{display:inline-block;width:18px;height:9px;border:1.5px solid var(--text);border-radius:3px;position:relative}
.gx-sbar i::after{content:"";position:absolute;inset:1px 5px 1px 1px;background:var(--text);border-radius:1px}
.gx-scr{flex:1;display:flex;flex-direction:column;min-height:0;overflow:auto}
.gx-scr[hidden]{display:none}
.gx-ctl{display:flex;align-items:center;justify-content:space-between;gap:12px;width:360px;margin:16px auto 0}
.gx-ctl button{min-height:40px;min-width:88px;padding:0 16px;border-radius:var(--r-pill);border:1px solid var(--line-strong);background:#FFFFFF;font:600 14px var(--font-body);color:var(--text);cursor:pointer}
.gx-ctl button[data-next]{background:var(--text);border-color:var(--text);color:#FFFFFF}
.gx-ctl button:disabled{opacity:.35;cursor:default}
.gx-ctl p{font:600 13px var(--font-num);color:var(--text2)}
.gx-live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.gx-foot{margin-top:40px;padding-top:16px;border-top:1px solid var(--line);font-size:13px;color:var(--text2)}

/* 화면 공통 */
.s-bar{display:flex;align-items:center;gap:10px;padding:10px 18px 12px;border-bottom:1px solid var(--line);font-size:14px;font-weight:700}
.s-bar small{margin-left:auto;font-size:12px;font-weight:600;color:var(--text2)}
.s-body{padding:18px;display:flex;flex-direction:column;gap:12px}
.s-h{font-size:19px;font-weight:800;letter-spacing:-.02em;line-height:1.35}
.s-p{font-size:14px;color:var(--text2);line-height:1.55}
.s-p b{color:var(--text)}
.s-btn{display:flex;width:100%;align-items:center;justify-content:center;min-height:48px;margin-top:4px;border:0;border-radius:12px;background:var(--action);color:#FFFFFF;font:700 15px var(--font-body);cursor:pointer}
.s-btn.ghost{background:var(--sub);color:var(--text)}
.s-btn:focus-visible{outline:2px solid var(--text);outline-offset:2px}
.s-mute{font-size:12px;color:var(--text2)}

/* 복지몰(예시) */
.mall-hero{margin:14px 18px 0;border-radius:16px;background:var(--sub);padding:22px 18px}
.mall-badge{display:inline-block;padding:2px 10px;border-radius:var(--r-pill);background:#FFFFFF;font-size:12px;font-weight:600}
.mall-name{margin-top:12px;font-size:21px;font-weight:800;letter-spacing:-.02em}
.mall-opt{margin-top:2px;font-size:13px;color:var(--text2)}
.mall-price{display:flex;align-items:baseline;gap:8px;padding:16px 18px 0}
.mall-was{font:600 14px var(--font-num);color:var(--text2);text-decoration:line-through}
.mall-now{font:700 24px var(--font-num)}
.mall-list{margin:10px 18px 0;padding:12px 0;border-top:1px solid var(--line);font-size:13px;color:var(--text2);display:grid;gap:6px}
.mall-list li::before{content:"· ";color:var(--text)}
.mall-pay{margin-top:auto;padding:14px 18px 20px;border-top:1px solid var(--line)}
.mall-pay p{display:flex;justify-content:space-between;font-size:13px;color:var(--text2)}
.mall-pay p b{font:700 14px var(--font-num);color:var(--text)}

/* 알림톡(예시) */
.chat{background:#EEF1F5}
.chat-day{align-self:center;margin:14px 0 8px;padding:2px 10px;border-radius:var(--r-pill);background:rgba(24,24,27,.08);font-size:11.5px;color:var(--text2)}
.chat-row{display:grid;grid-template-columns:36px minmax(0,1fr);gap:8px;padding:0 14px}
.chat-av{width:36px;height:36px;border-radius:12px;background:var(--text);color:#FFFFFF;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800}
.chat-from{font-size:12px;color:var(--text2);margin-bottom:4px}
.chat-card{border-radius:4px 16px 16px 16px;background:#FFFFFF;overflow:hidden;box-shadow:0 1px 2px rgba(24,24,27,.06)}
.chat-card-h{padding:10px 14px;background:var(--text);color:#FFFFFF;font-size:12px;font-weight:700}
.chat-card-b{padding:14px;display:grid;gap:8px;font-size:13.5px;line-height:1.55}
.chat-card-b dl{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;padding:10px 12px;border-radius:10px;background:var(--sub);font-size:12.5px}
.chat-card-b dt{color:var(--text2)}
.chat-card-b dd{font-weight:600}
.chat-card .s-btn{width:calc(100% - 28px);min-height:42px;font-size:14px;margin:0 14px 14px}
.chat-time{margin:4px 0 0 44px;font-size:11px;color:var(--text2)}

/* 신청서·상태·수령(스피커블 화면 예시) */
.form-row{display:grid;gap:6px}
.form-row label,.form-lab{font-size:13px;font-weight:700}
.form-row input{min-height:46px;padding:0 14px;border:1px solid var(--line-strong);border-radius:12px;font:500 15px var(--font-body);color:var(--text);background:#FFFFFF}
.form-row input[readonly]{background:var(--sub);color:var(--text2)}
.form-row input:focus{outline:2px solid var(--text);outline-offset:0;border-color:transparent}
.form-row input[aria-invalid="true"]{border-color:#DC2626}
.form-help{font-size:12px;color:var(--text2)}
.form-err{font-size:12.5px;font-weight:600;color:#DC2626}
.form-err[hidden]{display:none}
.gx-checks{display:grid;gap:8px;padding:12px 14px;border-radius:12px;background:var(--sub)}
.gx-checks label{display:grid;grid-template-columns:20px minmax(0,1fr);gap:8px;align-items:start;font-size:13.5px;line-height:1.45}
.gx-checks input{width:18px;height:18px;margin:1px 0 0;accent-color:var(--text)}
.fill{align-self:flex-start;padding:0;border:0;background:none;font:600 12.5px var(--font-body);color:var(--text2);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.line{display:grid;gap:0;margin-top:4px}
.line li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:start;padding:0 0 14px;position:relative}
.line li:not(:last-child)::after{content:"";position:absolute;left:10px;top:22px;bottom:2px;width:2px;background:var(--line-strong)}
.line .dot{width:22px;height:22px;border-radius:50%;border:2px solid var(--line-strong);background:#FFFFFF}
.line li.is-done .dot{border-color:var(--text);background:var(--text);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpath d='M6 11.5l3.2 3L16 8' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.line li.is-done::after{background:var(--text)}
.line li.is-now .dot{border-color:var(--action);box-shadow:0 0 0 4px rgba(255,95,6,.16)}
.line .lt{font-size:14px;font-weight:700}
.line .ls{font-size:12.5px;color:var(--text2)}
.line li:not(.is-done):not(.is-now) .lt{color:var(--text2);font-weight:600}
.acct{border:1px solid var(--line-strong);border-radius:14px;padding:14px;display:grid;gap:10px}
.acct dt{font-size:12px;color:var(--text2)}
.acct dd{font:600 15px var(--font-num);letter-spacing:-.01em;word-break:break-all}
.acct .masked{letter-spacing:.2em}
.code{display:flex;justify-content:center;gap:6px}
.code span{display:flex;align-items:center;justify-content:center;width:40px;height:48px;border-radius:10px;background:var(--sub);font:700 22px var(--font-num)}
.ok{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:36px 22px}
.ok-ic{width:64px;height:64px;border-radius:50%;background:var(--text);display:flex;align-items:center;justify-content:center}
.ok-ic svg{width:30px;height:30px;fill:none;stroke:#FFFFFF;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.app{width:100%;margin-top:6px;border-radius:16px;border:1px solid var(--line-strong);padding:16px;text-align:left;display:grid;gap:4px}
.app-t{font-size:15px;font-weight:800}
.app-s{font-size:12.5px;color:var(--text2)}
.app-chip{justify-self:start;margin-top:6px;padding:2px 10px;border-radius:var(--r-pill);background:var(--text);color:#FFFFFF;font-size:12px;font-weight:700}

/* 메일(예시) */
.mail-subj{font-size:18px;font-weight:800;letter-spacing:-.02em;line-height:1.35}
.mail-from{display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px;align-items:center;font-size:13px}
.mail-av{width:36px;height:36px;border-radius:50%;background:var(--sub);display:flex;align-items:center;justify-content:center}
.mail-av svg{width:18px;height:18px;fill:none;stroke:var(--text);stroke-width:1.6}
.mail-from small{display:block;color:var(--text2);font-size:12px}
.mail-card{border:1px solid var(--line-strong);border-radius:14px;padding:16px;display:grid;gap:10px;font-size:14px;line-height:1.55}

@media (max-width:959px){
  .gx-stage{grid-template-columns:minmax(0,1fr);grid-template-rows:auto;grid-template-areas:"head" "device" "list";row-gap:20px}
  .gx-device{position:static}
  .gx-list .gx-steps{margin-top:8px}
  .gx-steps button{padding:10px 4px}
}
@media (max-width:420px){
  .gx-main{padding:20px 16px 48px}
  .gx-top{padding:14px 16px}
  .gx-doc{display:none}
  .gx-phone{width:100%;max-width:360px;height:680px;padding:10px;border-radius:40px}
  .gx-ctl{width:100%;max-width:360px}
  .gx-mode{display:flex}
  .gx-mode button{flex:1;padding:0 10px;font-size:13px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
.line .lt,.line .ls{display:block}
.gx-scr:focus{outline:none;box-shadow:none}
.gx [hidden]{display:none!important}

/* 실제 흐름 부품(9/29) — 이용 정보 칩 · 배지 · 계정 카드 · 로그인 단계 · Gemini 화면 */
.gx-list .gx-steps button{align-items:center}
.s-badge{align-self:flex-start;padding:3px 10px;border-radius:var(--r-pill);background:var(--sub);font-size:12px;font-weight:700}
.chipset{display:flex;flex-wrap:wrap;gap:6px}
.chip-b{min-height:36px;padding:0 12px;border-radius:10px;border:1px solid var(--line-strong);background:#FFFFFF;font:600 13px var(--font-body);color:var(--text);cursor:pointer}
.chip-b[aria-pressed="true"]{background:var(--text);border-color:var(--text);color:#FFFFFF}
.chip-b:focus-visible,.mini:focus-visible{outline:2px solid var(--text);outline-offset:2px}
.form-warn{font-size:12.5px;font-weight:600;color:#B45309}
.acct dd.acct-note{font:500 13px var(--font-body);color:var(--text2)}
.acct-row{display:flex;align-items:center;justify-content:space-between;gap:8px}
.acct-row>span:last-child{display:inline-flex;gap:4px}
.mini{min-height:28px;padding:0 10px;border-radius:8px;border:1px solid var(--line-strong);background:#FFFFFF;font:600 12px var(--font-body);color:var(--text);cursor:pointer;white-space:nowrap}
.rail{display:grid;gap:6px;padding:10px 12px;border-radius:12px;background:var(--sub)}
.rail li{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text2)}
.rail-n{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;border:1.5px solid var(--line-strong);font:700 11px var(--font-num);color:var(--text2)}
.rail li.is-done{color:var(--text);font-weight:600}
.rail li.is-done .rail-n{background:var(--text);border-color:var(--text);color:#FFFFFF}
.gem{flex:1;display:flex;flex-direction:column;gap:14px;padding:28px 18px 14px;background:linear-gradient(180deg,#FFFFFF 0%,#F5F5F5 100%)}
.gem-hi{font-size:26px;font-weight:800;letter-spacing:-.03em}
.gem-ask{padding:14px 16px;border-radius:24px;border:1px solid var(--line-strong);background:#FFFFFF;font-size:14px;color:var(--text2)}
.gem-me{margin-top:auto;display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600}
.gem-av{width:28px;height:28px;border-radius:50%;background:var(--text);color:#FFFFFF;display:inline-flex;align-items:center;justify-content:center;font-size:12px}
.gem-me .app-chip{margin-top:0;background:var(--action)}
.gem-note{flex:0 0 auto;border-top:1px solid var(--line)}
.line li{grid-template-columns:22px minmax(0,1fr);align-items:center}
