
:root{
  --bg:#f4f6fa;
  --paper:#ffffff;
  --line:#dce3ee;
  --line2:#ecf0f6;
  --ink:#121a2a;
  --muted:#6e7b8f;
  --muted2:#9aa6b6;
  --navy:#19396c;
  --navy2:#244d8e;
  --gold:#b79a63;
  --green:#178248;
  --red:#b64242;
  --shadow:0 16px 40px rgba(18,32,56,.045);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Apple SD Gothic Neo","Noto Sans KR",Arial,sans-serif;font-size:14px;line-height:1.72}
body{min-height:100vh}
a{color:inherit;text-decoration:none}
code,pre{font-family:"SFMono-Regular","Consolas","Menlo",monospace}
.index,main{width:min(760px,calc(100vw - 48px));margin:0 auto;padding:54px 0 70px}
.index{width:min(780px,calc(100vw - 48px))}
.lockup{display:flex;align-items:center;gap:9px;margin-bottom:18px}
.logo{width:18px;height:18px;object-fit:contain}
.lockup h1{font-size:15px;letter-spacing:.02em;margin:0;font-weight:760}
.exit{position:fixed;right:calc(50vw - 380px);top:34px;border:0;background:transparent;color:#657386;font-size:12px;letter-spacing:.04em;cursor:pointer;padding:7px 8px;z-index:10}
.exit:hover{color:var(--navy)}
.status-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0 24px}
.status-box{border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.72);padding:11px 12px;min-height:54px}
.status-box b{display:block;font-size:10px;color:#68758a;margin-bottom:3px;font-weight:650}
.status-box span{font-size:12px;color:#1f2a3b}
.portal-note{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:15px 0;margin-bottom:12px;color:#48566b;font-size:12.5px}
.doc-list{background:rgba(255,255,255,.72);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.doc-row{display:grid;grid-template-columns:38px 1fr 46px;gap:12px;align-items:center;border-bottom:1px solid var(--line2);padding:14px 0}
.doc-row:last-child{border-bottom:0}
.doc-no{font-size:10px;color:#8692a5;text-align:center}
.doc-main strong{display:block;font-size:13px;line-height:1.35;color:#0f1a2d;font-weight:800}
.doc-main span{display:block;margin-top:4px;font-size:11.5px;color:#667489;line-height:1.55}
.doc-format{text-align:right;font-size:9.5px;color:#718097;letter-spacing:.07em;text-transform:uppercase}
.doc-row:hover .doc-main strong{color:var(--navy)}
.doc-row:hover{background:rgba(255,255,255,.45)}
.docno{display:block;color:#8793a7;font-size:10px;letter-spacing:.08em;margin-bottom:9px}
.doc-title{font-size:30px;line-height:1.18;letter-spacing:-.03em;margin:0 0 12px;color:#172139;font-weight:820}
.lead{font-size:15px;line-height:1.75;color:#40506a;margin:0 0 22px}
.kicker{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:760;margin-bottom:9px}
.meta{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:18px 0 26px}
.meta div{border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:12px 13px;box-shadow:var(--shadow);font-size:12px;color:#29364d}
.meta b{display:block;font-size:10px;color:#7a8799;margin-bottom:3px}
section{background:transparent;border-top:1px solid var(--line);padding:22px 0}
section h2{font-size:13px;letter-spacing:.12em;text-transform:uppercase;margin:0 0 12px;color:#1a2f55}
section h3{font-size:13px;margin:18px 0 8px;color:#1d2a41}
section p{margin:0 0 12px;color:#2d3a50}
ul,ol{margin:0 0 12px 20px;padding:0;color:#2d3a50}
li{margin:5px 0}
.table{width:100%;border-collapse:collapse;margin:10px 0 16px;font-size:12px;background:var(--paper)}
.table th,.table td{border:1px solid var(--line);padding:9px 10px;vertical-align:top;text-align:left}
.table th{background:#f0f4fa;color:#25344e;font-size:11px}
.note{border:1px solid #dce4ef;background:#fff;border-radius:8px;padding:14px 15px;color:#34435b;margin:14px 0}
.warn{border-left:3px solid var(--gold);background:#fffaf1;padding:13px 14px;margin:14px 0;color:#473c29}
.ok{color:var(--green);font-weight:700}
.danger{color:var(--red);font-weight:700}
pre{white-space:pre-wrap;border:1px solid var(--line);background:#fbfcff;border-radius:8px;padding:14px 15px;color:#20304a;font-size:11.5px;line-height:1.6;overflow:auto}
.footer{text-align:center;color:#8b96a7;font-size:10.5px;line-height:1.65;margin-top:42px;padding-top:22px;border-top:1px solid var(--line2)}
.mobile-only{display:none}
.no-detect{white-space:nowrap}
@media(max-width:820px){
  .exit{right:18px;top:16px}
}
@media(max-width:680px){
  .index,main{width:min(100vw - 34px,760px);padding-top:44px}
  .status-grid,.meta{grid-template-columns:1fr}
  .doc-title{font-size:25px}
  .doc-row{grid-template-columns:30px 1fr 38px;gap:8px}
  .desktop-only{display:none}
  .mobile-only{display:inline}
}


/* GNX requested docs index header correction */
.index .lockup .logo{
  height:30px;
  width:auto;
  object-fit:contain;
  flex-shrink:0;
}
.index > .exit{
  position:fixed;
  top:34px;
  right:38px;
  left:auto;
  margin:0;
  z-index:100;
}
@media(max-width:820px){
  .index > .exit{top:34px;right:38px}
}
@media(max-width:680px){
  .index > .exit{top:34px;right:38px}
}


/* GNX docs-only surgery 20260613 */
.index > .exit,
body.index > .exit,
.exit{
  position:fixed !important;
  top:34px !important;
  right:calc((100vw - 1064px) / 2 + 8px) !important;
  left:auto !important;
  margin:0 !important;
  z-index:10000 !important;
  appearance:none !important;
  border:0 !important;
  background:transparent !important;
  color:#657386 !important;
  font-family:var(--mono, ui-monospace, monospace) !important;
  font-size:12px !important;
  letter-spacing:.04em !important;
  line-height:1 !important;
  cursor:pointer !important;
  padding:7px 8px !important;
}
.index > .exit:hover,
body.index > .exit:hover,
.exit:hover{
  color:#172033 !important;
}
.doc-format{
  display:inline-block !important;
  transform:translateX(-14px) !important;
}
@media(max-width:1180px){
  .index > .exit,
  body.index > .exit,
  .exit{
    right:38px !important;
  }
}
@media(max-width:680px){
  .index > .exit,
  body.index > .exit,
  .exit{
    top:16px !important;
    right:18px !important;
  }
  .doc-format{
    transform:translateX(-8px) !important;
  }
}
/* END GNX docs-only surgery 20260613 */


/* GNX docs exit format final 20260613 */

/* exit는 runtime JS가 문서 리스트 오른쪽선 기준으로 left를 계산.
   여기서는 fixed/톤/크기만 강제한다. */
.exit,
.index > .exit,
body.index > .exit{
  position:fixed !important;
  top:34px !important;
  right:auto !important;
  margin:0 !important;
  z-index:10000 !important;
  appearance:none !important;
  border:0 !important;
  background:transparent !important;
  color:#657386 !important;
  font-family:var(--mono, ui-monospace, monospace) !important;
  font-size:12px !important;
  letter-spacing:.04em !important;
  line-height:1 !important;
  cursor:pointer !important;
  padding:7px 8px !important;
}

.exit:hover,
.index > .exit:hover,
body.index > .exit:hover{
  color:#172033 !important;
}

/* 파일확장자명만 현재보다 왼쪽으로 이동 */
.doc-format{
  display:inline-block !important;
  transform:translateX(-20%) !important;
  will-change:transform !important;
}

/* END GNX docs exit format final 20260613 */


/* GNX docs title tone 20260613 */
/* GNX AAL Documents 목록의 14개 문서 메인 타이틀 톤만 다운 */
.doc-row strong,
.doc-row b,
.doc-row .doc-title,
.doc-row h2,
.doc-row h3{
  color:#2f3744 !important;
  font-weight:760 !important;
  letter-spacing:-.005em !important;
}
/* END GNX docs title tone 20260613 */


/* GNX docs exit hard close 20260613 */
.exit,
.index > .exit,
body.index > .exit{
  appearance:none !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  border-radius:0 !important;
  color:#657386 !important;
  font-family:var(--mono, ui-monospace, monospace) !important;
  font-size:12px !important;
  font-weight:500 !important;
  letter-spacing:.04em !important;
  line-height:1 !important;
  cursor:pointer !important;
  padding:7px 8px !important;
  z-index:10000 !important;
}
.exit:hover,
.exit:focus,
.exit:active{
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  outline:0 !important;
  color:#2f3744 !important;
}
/* END GNX docs exit hard close 20260613 */


/* GNX docs final close 20260613 */
.exit,
.index > .exit,
body.index > .exit{
  appearance:none !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  border-radius:0 !important;
  color:#657386 !important;
  font-family:var(--mono, ui-monospace, monospace) !important;
  font-size:12px !important;
  font-weight:500 !important;
  letter-spacing:.04em !important;
  line-height:1 !important;
  cursor:pointer !important;
  padding:7px 8px !important;
  z-index:10000 !important;
}
.exit:hover,
.exit:focus,
.exit:active{
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  outline:0 !important;
  color:#2f3744 !important;
}
/* END GNX docs final close 20260613 */


/* GNX docs close flow final 20260613 */
.exit,
.index > .exit,
body.index > .exit{
  appearance:none !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  border-radius:0 !important;
  color:#657386 !important;
  font-family:var(--mono, ui-monospace, monospace) !important;
  font-size:12px !important;
  font-weight:500 !important;
  letter-spacing:.04em !important;
  line-height:1 !important;
  cursor:pointer !important;
  padding:7px 8px !important;
  z-index:10000 !important;
}
.exit:hover,
.exit:focus,
.exit:active{
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  outline:0 !important;
  color:#2f3744 !important;
}
/* END GNX docs close flow final 20260613 */


/* =========================================================
   GNX docs mobile precision surgery 20260613
   ========================================================= */

.exit{
  appearance:none !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  border-radius:0 !important;
  color:#657386 !important;
  cursor:pointer !important;
}

@media (max-width: 760px){

  body{
    font-size:14px !important;
  }

  .index{
    width:min(100%, 560px) !important;
    margin:0 auto !important;
    padding:18px 14px calc(24px + env(safe-area-inset-bottom)) !important;
  }

  .lockup{
    position:relative !important;
    display:flex !important;
    align-items:center !important;
    gap:10px !important;
    padding-right:84px !important;
    margin-bottom:16px !important;
  }

  .lockup .logo{
    width:18px !important;
    height:18px !important;
    flex:0 0 18px !important;
  }

  .lockup h1{
    font-size:17px !important;
    line-height:1.2 !important;
    letter-spacing:-.02em !important;
    margin:0 !important;
    color:#182230 !important;
  }

  .exit{
    position:fixed !important;
    top:calc(env(safe-area-inset-top) + 14px) !important;
    right:14px !important;
    z-index:9999 !important;
    padding:0 !important;
    font-size:11px !important;
    letter-spacing:.04em !important;
  }

  .status-grid{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
    margin:12px 0 18px !important;
  }

  .status-box{
    padding:12px 14px !important;
    border-radius:16px !important;
  }

  .status-box b{
    font-size:12px !important;
    margin-bottom:6px !important;
    display:block !important;
    color:#6a7687 !important;
  }

  .status-box span{
    font-size:13px !important;
    line-height:1.35 !important;
  }

  .portal-note{
    font-size:13px !important;
    line-height:1.68 !important;
    margin:18px 0 !important;
    padding:18px 0 !important;
  }

  .doc-list{
    margin-top:12px !important;
  }

  .doc-row{
    display:grid !important;
    grid-template-columns:26px minmax(0,1fr) 40px !important;
    gap:12px !important;
    align-items:center !important;
    padding:14px 0 !important;
  }

  .doc-no{
    font-size:11px !important;
    color:#8d98a9 !important;
  }

  .doc-main{
    min-width:0 !important;
  }

  .doc-main strong{
    display:block !important;
    font-size:14px !important;
    line-height:1.28 !important;
    margin:0 0 4px !important;
    letter-spacing:-.01em !important;
    color:#142033 !important;
  }

  .doc-main span{
    font-size:11.8px !important;
    line-height:1.45 !important;
    color:#6d7888 !important;
  }

  .doc-format{
    justify-self:end !important;
    font-size:11px !important;
    letter-spacing:.08em !important;
    color:#7e8aa0 !important;
  }

  .footer{
    margin-top:24px !important;
    padding:16px 0 0 !important;
    font-size:11px !important;
    line-height:1.65 !important;
  }
}


/* =========================================================
   GNX docs iPhone micro surgery 2 — 390/430px precision
   ========================================================= */

@media (max-width:760px){

  .index{
    width:100% !important;
    max-width:560px !important;
    padding:14px 12px calc(20px + env(safe-area-inset-bottom)) !important;
  }

  .lockup{
    margin-bottom:12px !important;
    gap:8px !important;
    padding-right:72px !important;
  }

  .lockup .logo{
    width:16px !important;
    height:16px !important;
  }

  .lockup h1{
    font-size:15.2px !important;
    line-height:1.16 !important;
    letter-spacing:-.018em !important;
  }

  .exit{
    top:calc(env(safe-area-inset-top) + 12px) !important;
    right:12px !important;
    font-size:10.5px !important;
    padding:0 !important;
  }

  .status-grid{
    grid-template-columns:repeat(3, minmax(0,1fr)) !important;
    gap:6px !important;
    margin:10px 0 14px !important;
  }

  .status-box{
    padding:8px 7px !important;
    border-radius:11px !important;
    min-height:58px !important;
  }

  .status-box b{
    font-size:8.2px !important;
    line-height:1.15 !important;
    margin-bottom:5px !important;
    letter-spacing:.015em !important;
  }

  .status-box span{
    font-size:9.5px !important;
    line-height:1.25 !important;
    letter-spacing:-.01em !important;
  }

  .portal-note{
    font-size:10.8px !important;
    line-height:1.52 !important;
    margin:13px 0 !important;
    padding:13px 0 !important;
  }

  .doc-list{
    margin-top:8px !important;
  }

  .doc-row{
    grid-template-columns:22px minmax(0,1fr) 32px !important;
    gap:9px !important;
    padding:10px 0 !important;
    min-height:0 !important;
  }

  .doc-no{
    font-size:9.8px !important;
  }

  .doc-main strong{
    font-size:12.2px !important;
    line-height:1.22 !important;
    margin-bottom:3px !important;
    letter-spacing:-.018em !important;
  }

  .doc-main span{
    font-size:10.2px !important;
    line-height:1.32 !important;
  }

  .doc-format{
    font-size:9px !important;
    letter-spacing:.07em !important;
    transform:translateX(-8%) !important;
  }

  .footer{
    margin-top:18px !important;
    padding-top:14px !important;
    font-size:9.4px !important;
    line-height:1.55 !important;
  }
}

@media (max-width:390px){
  .index{
    padding-left:10px !important;
    padding-right:10px !important;
  }

  .status-grid{
    gap:5px !important;
  }

  .status-box{
    padding:7px 6px !important;
  }

  .status-box b{
    font-size:7.8px !important;
  }

  .status-box span{
    font-size:9px !important;
  }

  .doc-row{
    grid-template-columns:20px minmax(0,1fr) 30px !important;
    gap:8px !important;
    padding:9px 0 !important;
  }

  .doc-main strong{
    font-size:11.6px !important;
  }

  .doc-main span{
    font-size:9.8px !important;
  }
}

/* === GNX EXIT POSITION FINAL 2026-06-16 START === */
/*
  Target:
  - [ exit ] is fixed, not scroll-linked.
  - right edge of the closing bracket aligns with the content/card/list right vertical line.
  - /docs index exit aligns vertically with the lockup row center.
  - font-size reduced by 5%; letter spacing reduced by 3%.
*/

/* License docs: main width = 760px centered; mobile main width = viewport - 34px */
.exit {
  position:fixed !important;
  top:34px !important;
  right:calc(50vw - 380px) !important;
  left:auto !important;
  margin:0 !important;
  z-index:2147483000 !important;

  display:block !important;
  width:max-content !important;
  border:0 !important;
  background:transparent !important;
  padding:0 !important;

  color:#657386 !important;
  font-family:"SFMono-Regular","Consolas","Menlo",monospace !important;
  font-size:11.4px !important;
  line-height:1 !important;
  letter-spacing:.0388em !important;
  white-space:nowrap !important;
  cursor:pointer !important;
  transform:none !important;
}

/* /docs index: width = 780px centered, lockup row center alignment */
.index > .exit {
  top:63.3px !important;
  right:calc(50vw - 390px) !important;
}

.exit:hover {
  color:var(--navy) !important;
  transform:none !important;
}

@media(max-width:828px) {
  .index > .exit {
    right:24px !important;
  }
}

@media(max-width:808px) {
  .exit {
    right:24px !important;
  }
}

@media(max-width:680px) {
  .exit {
    top:34px !important;
    right:17px !important;
  }

  .index > .exit {
    top:53.3px !important;
    right:17px !important;
  }
}
/* === GNX EXIT POSITION FINAL 2026-06-16 END === */

/* === GNX EXIT FIXED FINAL 2026-06-16C START === */
/*
  /docs + license HTML docs [ exit ] final anchor.
  - fixed, never scroll-linked
  - closing bracket right edge follows document/list/card right vertical line
  - font-size 5% down, spacing 3% tighter
*/

html body .exit,
html body .gnx-exit-fixed {
  position: fixed !important;
  z-index: 2147483000 !important;
  left: auto !important;
  bottom: auto !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
  min-width: 0 !important;
  width: auto !important;
  height: auto !important;
  display: inline-block !important;

  color: #657386 !important;
  font-family: "SFMono-Regular","Consolas","Menlo",monospace !important;
  font-size: 11.4px !important;
  line-height: 1 !important;
  letter-spacing: .0388em !important;
  white-space: nowrap !important;
  text-align: right !important;
  text-decoration: none !important;
  cursor: pointer !important;

  transform: translateZ(0) !important;
  -webkit-transform: translateZ(0) !important;
}

/* /docs index: align to the right edge of the document list column */
html body main.index > .exit,
html body .gnx-exit-index {
  top: 34px !important;
  right: calc((100vw - min(780px, calc(100vw - 48px))) / 2) !important;
}

/* License document pages: align to main/card right edge */
html body > .exit,
html body .gnx-exit-doc {
  top: 34px !important;
  right: calc((100vw - min(760px, calc(100vw - 48px))) / 2) !important;
}

html body .exit:hover,
html body .gnx-exit-fixed:hover {
  color: var(--navy) !important;
  transform: translateZ(0) !important;
}

@media(max-width:680px) {
  html body main.index > .exit,
  html body .gnx-exit-index {
    top: 34px !important;
    right: calc((100vw - min(760px, calc(100vw - 34px))) / 2) !important;
  }

  html body > .exit,
  html body .gnx-exit-doc {
    top: 34px !important;
    right: calc((100vw - min(760px, calc(100vw - 34px))) / 2) !important;
  }
}
/* === GNX EXIT FIXED FINAL 2026-06-16C END === */

/* === GNX DOCS MOBILE EXIT RIGHT TITLE-Y 2026-06-16E START === */
/*
  /docs mobile index only.
  Correct interpretation:
  - [ exit ] stays at the right upper side, not title-center.
  - [ exit ] vertical center aligns to GNX AAL Documents title vertical center.
  - [ exit ] right bracket edge aligns to the document list/card right edge.
  - fixed position; it never scrolls with document rows.
*/
@media(max-width:680px) {
  html body main.index > .exit,
  html body main.index > .exit.gnx-exit-index,
  html body main.index > .exit.gnx-exit-right-title-y {
    position: fixed !important;
    top: var(--gnx-docs-exit-top, 56px) !important;
    left: var(--gnx-docs-exit-left, auto) !important;
    right: auto !important;
    bottom: auto !important;

    z-index: 2147483000 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
    min-width: 0 !important;
    width: auto !important;
    height: auto !important;
    display: inline-block !important;

    color: #657386 !important;
    font-family: "SFMono-Regular","Consolas","Menlo",monospace !important;
    font-size: 11.4px !important;
    line-height: 1 !important;
    letter-spacing: .0388em !important;
    white-space: nowrap !important;
    text-align: right !important;
    text-decoration: none !important;

    transform: translateZ(0) !important;
    -webkit-transform: translateZ(0) !important;
  }
}
/* === GNX DOCS MOBILE EXIT RIGHT TITLE-Y 2026-06-16E END === */
