/* 유레카비자드 V1 — 시안(docs/기획/시안 gate·step1·home)의 색 토큰·글꼴·표 중심 그대로
   금지: 알약 버튼 · 그라데이션 글씨 · 가운데 히어로 · 이모지 카드 */
:root{
  --ink:#1b1f24; --sub:#5b6470; --faint:#8a929c; --line:#d9dde3; --line2:#eceef1;
  --page:#f4f5f7; --card:#fff; --blue:#1f4e9c; --blue-soft:#e8eef8;
  --stop:#b3261e; --stop-soft:#fbeae8; --warn:#8a5a00; --warn-soft:#fff3d4; --ok:#1a7f37; --ok-soft:#e6f4ea;
  --off:#b3b8bf;
}
*{box-sizing:border-box}
body{margin:0;background:var(--page);color:var(--ink);font:14px/1.5 Pretendard,"Malgun Gothic",sans-serif;font-variant-numeric:tabular-nums}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline}
button,input,select,textarea{font:inherit;color:inherit}

/* 머리 줄 */
.top{height:52px;background:var(--card);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:16px;padding:0 20px;position:sticky;top:0;z-index:5}
.logo{font-weight:800;font-size:17px;letter-spacing:-.3px;white-space:nowrap}
.logo small{display:block;font-size:10px;font-weight:600;color:var(--faint);letter-spacing:.8px;margin-top:-3px}
.co{padding-left:16px;border-left:1px solid var(--line);color:var(--sub);white-space:nowrap}
.co b{color:var(--ink)}
.search{flex:1;max-width:520px;height:34px;border:1px solid var(--line);border-radius:4px;display:flex;align-items:center;padding:0 4px 0 10px;background:#fff}
.search input{flex:1;border:0;outline:0;font-size:13px;background:transparent;min-width:0}
.search input::placeholder{color:var(--faint)}
.search button{border:0;background:transparent;color:var(--sub);font-size:12px;cursor:pointer}
.who{color:var(--sub);font-size:13px;white-space:nowrap}
.cnt{margin-left:auto;display:flex;gap:12px;font-size:13px;color:var(--sub);white-space:nowrap}
.cnt b{color:var(--ink)}
.view{font-size:12.5px;color:var(--sub);border:1px solid var(--line);border-radius:4px;padding:4px 8px;white-space:nowrap}
.unk{color:var(--warn);font-weight:600}

/* 왼쪽 메뉴 */
.wrap{display:flex}
nav.side{width:196px;flex:none;background:var(--card);border-right:1px solid var(--line);min-height:calc(100vh - 52px);padding:10px 0;font-size:13.5px}
nav.side .g{display:flex;justify-content:space-between;padding:7px 18px;color:var(--ink)}
nav.side .g.on{background:var(--blue-soft);color:var(--blue);font-weight:700;border-left:3px solid var(--blue);padding-left:15px}
nav.side .n{font-size:12px;color:var(--sub)}
nav.side .n.r{color:var(--stop);font-weight:700}
nav.side .s{padding:4px 18px 4px 34px;font-size:12.5px;color:var(--sub);display:flex;justify-content:space-between}
nav.side .s.off{color:var(--off)}
nav.side .s.off i{font-style:normal;font-size:11px}
nav.side .foot{margin-top:14px;border-top:1px solid var(--line2);padding:10px 18px;font-size:12px;color:var(--faint)}
nav.side .foot a{color:var(--sub)}
main{flex:1;padding:18px 20px 40px;min-width:0}

/* 상자·표 */
.stopbar{background:var(--stop-soft);border:1px solid #efc4c0;color:var(--stop);border-radius:6px;padding:9px 14px;margin-bottom:14px;font-weight:600;display:flex;gap:10px;align-items:center}
.stopbar span{font-weight:400;color:var(--ink)}
.grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:14px}
.col{display:flex;flex-direction:column;gap:14px}
.box{background:var(--card);border:1px solid var(--line);border-radius:6px}
.box h2{margin:0;font-size:14px;padding:11px 14px;border-bottom:1px solid var(--line2);display:flex;align-items:baseline;gap:8px}
.box h2 .meta{margin-left:auto;font-weight:400;font-size:12px;color:var(--faint)}
.box + .box{margin-top:14px}
.col .box + .box{margin-top:0}
.pad{padding:12px 14px}
.brief ol{list-style:none;margin:0;padding:0}
.brief li{display:grid;grid-template-columns:22px 118px 1fr;gap:8px;padding:9px 14px;border-bottom:1px solid var(--line2);align-items:start}
.brief li:last-child{border-bottom:0}
.brief .no{color:var(--faint);font-weight:700}
.brief .k{font-weight:700}
.tag{display:inline-block;font-size:11.5px;font-weight:700;padding:1px 6px;border-radius:3px;margin-right:4px}
.t-stop{background:var(--stop-soft);color:var(--stop)}
.t-warn{background:var(--warn-soft);color:var(--warn)}
.t-ok{background:var(--ok-soft);color:var(--ok)}
.t-blue{background:var(--blue-soft);color:var(--blue)}
.t-mute{background:#eef0f2;color:var(--sub)}
.row{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.btn{display:inline-block;border:1px solid var(--line);background:#fff;border-radius:4px;padding:4px 10px;font-size:12.5px;color:var(--ink);cursor:pointer;line-height:1.5}
.btn.p{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600}
.btn.dis{opacity:.45;cursor:default}
.src{font-size:11.5px;color:var(--faint)}
.ask{display:flex;gap:8px;padding:10px 14px;border-top:1px solid var(--line);background:#fafbfc;border-radius:0 0 6px 6px}
.ask input,.ask textarea{flex:1;border:1px solid var(--line);border-radius:4px;background:#fff;padding:7px 10px;font-size:13px}
table{width:100%;border-collapse:collapse}
td,th{padding:6px 14px;border-bottom:1px solid var(--line2);text-align:left;font-weight:400;vertical-align:top}
th{font-size:12px;color:var(--sub);font-weight:600;background:#fafbfc}
td.n,th.n{text-align:right}
tr.sum td{font-weight:700;border-top:1px solid var(--line)}
tr.off td{color:var(--off)}
tr.low td{background:var(--warn-soft)}
.card{border-bottom:1px solid var(--line2);padding:10px 14px}
.card:last-child{border-bottom:0}
.card .t{font-weight:600}
.card .d{font-size:12.5px;color:var(--sub);margin:2px 0 6px}
.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:14px}
.ir{border-left:3px solid var(--blue);padding:12px 14px;background:#fff}
.ir .q{font-size:15px;font-weight:700;line-height:1.45}
.ir .s2{font-size:12px;color:var(--faint);margin-top:6px;display:flex;justify-content:space-between;gap:10px}
.links{display:flex;gap:18px;margin-top:18px;padding:12px 16px;background:var(--card);border:1px solid var(--line);border-radius:6px;font-size:13px;color:var(--sub);flex-wrap:wrap}
.links b{color:var(--ink)}
.dd{font-weight:700;width:56px;display:inline-block}
.note{font-size:11.5px;color:var(--faint);margin-top:14px}
.empty{padding:12px 14px;color:var(--sub);font-size:13px}

/* 결재 카드(26 B4-1) */
.kcard{border-bottom:1px solid var(--line);padding:0}
.kcard:last-child{border-bottom:0}
.kcard .kh{padding:11px 14px;border-bottom:1px solid var(--line2);display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.kcard .kh b{font-size:14px}
.kcard .kh .meta{margin-left:auto;font-size:12px;color:var(--faint)}
.sec{padding:10px 14px;border-bottom:1px solid var(--line2)}
.sec h3{margin:0 0 6px;font-size:12.5px;color:var(--sub);font-weight:700}
.sec p{margin:0 0 4px}
.sec table td,.sec table th{padding:4px 8px}
.chk{margin:0;padding-left:18px;font-size:13px}
.chk li{margin:2px 0}
.decide{padding:10px 14px;background:#fafbfc;display:flex;flex-direction:column;gap:8px}
.decide textarea{border:1px solid var(--line);border-radius:4px;padding:6px 8px;font-size:13px;min-height:34px;resize:vertical;background:#fff}
.decide label{font-size:13px;color:var(--sub)}
pre.raw{margin:0;padding:10px 14px;font-size:11.5px;background:#fafbfc;overflow:auto;white-space:pre-wrap;word-break:break-all}

/* 폼 */
.form{display:grid;grid-template-columns:130px 1fr;gap:6px 12px;padding:12px 16px;font-size:13px;align-items:center}
.form label{color:var(--sub)}
.form input,.form select,.form textarea{border:1px solid var(--line);border-radius:4px;padding:6px 8px;background:#fff;width:100%}
.form textarea{min-height:140px;font:12.5px/1.45 Consolas,"D2Coding",monospace}
.form .full{grid-column:1/-1}

/* 열기 계약 띠 · 짚을 칸 */
.openbar{background:#fff;border:1px solid var(--line);border-left:3px solid var(--blue);border-radius:0 6px 6px 0;padding:9px 14px;margin-bottom:14px;display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--sub)}
.openbar b{color:var(--ink)}
.hl{background:var(--warn-soft);outline:2px solid #f0d48a;outline-offset:-2px}
th.hl{color:var(--warn)}
.path{font-size:12.5px;color:var(--sub);margin-bottom:8px}
.mk{font-size:11.5px;font-weight:700;color:var(--sub);margin-left:4px}
.mk.law{color:var(--blue)}
.offtxt{color:var(--off);font-size:11.5px;margin-left:4px}

/* 전체 메뉴 */
.menu details{background:var(--card);border:1px solid var(--line);border-radius:6px;margin-bottom:12px}
.menu summary{padding:10px 14px;font-weight:700;cursor:pointer;border-bottom:1px solid var(--line2)}
.menu summary span{font-weight:400;font-size:12px;color:var(--faint);margin-left:8px}
.menu td.code{width:78px;color:var(--faint);white-space:nowrap}
.menu tr.grp td{background:#fafbfc;font-weight:700}
.menu tr.form td.nm{padding-left:34px;font-size:12.5px}
.menu tr.off td{color:var(--off)}

/* 고개 진행(시안 step1) */
.steps{display:flex;gap:3px;align-items:center;margin-left:10px;flex-wrap:wrap}
.steps a.i{width:22px;height:8px;background:#dfe3e8;border-radius:1px;display:block}
.steps a.i.on{background:var(--blue)}
.steps a.i.now{background:#fff;border:2px solid var(--blue)}
.steps span{font-size:12.5px;color:var(--sub);margin-left:10px}
.exit{margin-left:auto;font-size:13px;color:var(--sub);white-space:nowrap}
.swrap{max-width:1240px;margin:0 auto;padding:22px;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:18px}
.swrap .box + .box{margin-top:18px}
.say{padding:14px 16px;border-bottom:1px solid var(--line2)}
.say .who{font-size:12px;font-weight:700;color:var(--blue);margin-bottom:4px}
.say .who.me{color:var(--sub)}
.say p{margin:0 0 6px}
.need{display:grid;grid-template-columns:110px 1fr;gap:4px 12px;font-size:13px;margin:8px 0 0}
.need dt{color:var(--sub)}
.need dd{margin:0}
.q{margin:12px 16px;padding:10px 12px;border:1px solid #f0d48a;background:var(--warn-soft);border-radius:4px}
.map{display:grid;grid-template-columns:repeat(11,1fr);gap:4px;padding:12px 16px}
.map i{height:26px;border-radius:2px;background:#d8dde4;filter:blur(1.2px);display:grid;place-items:center;font:700 10px Pretendard,sans-serif;font-style:normal;color:transparent}
.map i.clear{filter:none;background:#fff;border:1px solid var(--blue);color:var(--blue)}
.sir{margin-top:18px;border-left:3px solid var(--blue);background:#fff;border-top:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0 6px 6px 0;padding:12px 16px}
.sir b{font-size:15px}
.sir div{font-size:12px;color:var(--faint);margin-top:4px}
.snote{font-size:11.5px;color:var(--faint);grid-column:1/-1}
.tag,.unk{white-space:nowrap}
td.v{min-width:96px}
.steps a.i.skip{background:#fff;border:1px dashed var(--off)}
.map i.skip{filter:none;background:#f4f5f7;border:1px dashed var(--off);color:var(--off)}
.fld{display:flex;gap:6px;align-items:flex-start;min-width:0}
.fld > input,.fld > select,.fld > textarea{flex:1;min-width:0}
.fld > select.m{flex:none;width:auto;max-width:46%;color:var(--sub)}
.fld .chks{flex:1;display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12.5px}
.fld .chks label{color:var(--ink);white-space:nowrap}
.fld .chks input{width:auto}
.form textarea.lst{min-height:74px}
.form .hint{grid-column:2;font-size:11.5px;color:var(--faint);margin:-4px 0 4px}
.grade{display:flex;gap:10px;font-size:12.5px;color:var(--sub);padding:8px 14px;border-bottom:1px solid var(--line2)}

/* 다 넘은 뒤 「짠」 — 흐림이 걷힌다(CSS 만) */
@keyframes unblur{from{filter:blur(7px) saturate(.7)}to{filter:blur(0) saturate(1)}}
@keyframes unveil{from{background:rgba(244,245,247,.72)}to{background:rgba(244,245,247,.3)}}
body.gatepage.clearing{overflow:auto}
.gatepage.clearing .gate{height:auto;min-height:100vh;align-items:start;padding-top:48px;padding-bottom:48px}
.gatepage.clearing .gate > div:first-child{background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:6px;padding:22px 26px}
.gatepage.clearing .lead{margin-top:18px}
.gatepage.clearing .behind{animation:unblur 1.8s ease-out .3s forwards}
.gatepage.clearing .veil{animation:unveil 1.8s ease-out .3s forwards}
.gatepage .sheet th{font-size:12px;color:var(--sub);font-weight:600;background:#fafbfc;vertical-align:top}
.gatepage.clearing.held .behind,.gatepage.clearing.held .veil{animation:none}
@media (prefers-reduced-motion:reduce){.gatepage.clearing .behind,.gatepage.clearing .veil{animation:none}.gatepage.clearing:not(.held) .behind{filter:none}}

/* 대문(시안 gate) */
body.gatepage{height:100vh;margin:0;background:#eef0f3;font:14px/1.55 Pretendard,"Malgun Gothic",sans-serif;overflow:hidden}
.gatepage .behind{position:fixed;inset:0;border:0;width:100%;height:100%;filter:blur(7px) saturate(.7);transform:scale(1.03);pointer-events:none}
.gatepage .veil{position:fixed;inset:0;background:rgba(244,245,247,.72)}
.gatepage .gate{position:relative;z-index:2;max-width:1180px;margin:0 auto;height:100%;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:40px;align-items:center;padding:0 40px}
.gatepage .glogo{font-weight:800;font-size:22px;letter-spacing:-.4px}
.gatepage .glogo small{display:block;font-size:11px;font-weight:600;color:var(--faint);letter-spacing:1px;margin-top:-2px}
.gatepage .lead{margin-top:34px;font-size:15px;color:var(--sub)}
.gatepage h1{font-size:30px;line-height:1.35;letter-spacing:-.6px;margin:8px 0 18px;font-weight:800;text-align:left}
.gatepage .gp{font-size:15.5px;max-width:520px}
.gatepage .act{display:flex;gap:10px;margin-top:26px;align-items:center}
.gatepage .gbtn{border:1px solid var(--line);background:#fff;border-radius:4px;padding:10px 18px;font:600 14.5px Pretendard,sans-serif;color:var(--ink)}
.gatepage .gbtn.p{background:var(--blue);border-color:var(--blue);color:#fff;padding:10px 26px}
.gatepage .fine{margin-top:18px;font-size:12.5px;color:var(--faint);max-width:520px}
.gatepage .sheet{background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.gatepage .sheet h2{margin:0;font-size:14px;padding:12px 16px;border-bottom:1px solid var(--line2);display:flex}
.gatepage .sheet h2 span{margin-left:auto;font-weight:400;font-size:12px;color:var(--faint)}
.gatepage .sheet table{font-size:13px}
.gatepage .sheet td,.gatepage .sheet th{padding:6px 16px}
.gatepage td.no{color:var(--faint);width:58px;white-space:nowrap}
.gatepage td.x,.gatepage span.x{color:var(--faint);font-size:12px}
.gatepage tr.mk td{background:#fbfcfe}
.gatepage .foot{padding:10px 16px;font-size:12px;color:var(--sub)}

/* 좁은 화면 — 가로 스크롤 없이 한 줄로 */
@media (max-width:900px){
  .top{height:auto;flex-wrap:wrap;padding:8px 16px;gap:8px}
  .cnt{margin-left:0}
  .wrap{flex-direction:column}
  nav.side{width:auto;min-height:0;border-right:0;border-bottom:1px solid var(--line)}
  main{padding:14px 16px 30px}
  .grid,.three,.swrap{grid-template-columns:minmax(0,1fr)}
  .swrap{padding:14px 16px}
  body.gatepage{overflow:auto;height:auto}
  .gatepage .gate{grid-template-columns:minmax(0,1fr);height:auto;padding:24px 16px}
  .brief li{grid-template-columns:22px minmax(0,1fr)}
  .brief li > :nth-child(3){grid-column:2}
}

/* 인쇄 — 흰 바탕 검은 글씨 */
@media print{
  body,body.gatepage{background:#fff;color:#000;overflow:visible;height:auto}
  .top,nav.side,.ask,.decide,.links,.gatepage .behind,.gatepage .veil,.gatepage .act{display:none}
  .box,.sheet{border-color:#000}
  .tag,.hl{background:none;color:#000;outline:0}
  .gatepage .gate{display:block;height:auto}
}
