/* ── 새 디자인 (밝은 메뉴 · 상단바 · 홈 · 공고 상세 창 · 지원 현황판 · 속기사 프로필) ── */
:root{--n-bg:#F6F7F9;--n-line:#E7E9EE;--n-line2:#F0F2F5;--n-ink:#111827;--n-ink2:#4B5563;--n-ink3:#9CA3AF;--n-brand:#4F46E5;--n-brand-d:#4338CA;--n-brand-50:#EEF2FF;--n-brand-100:#E0E7FF;--n-ok:#059669;--n-ok-50:#ECFDF5;--n-warn:#D97706;--n-warn-50:#FFFBEB;--n-bad:#DC2626;--n-bad-50:#FEF2F2;--n-iv:#7C3AED;--n-iv-50:#F5F3FF}

/* 사이드바 */
.n-sb{width:224px;background:#fff;border-right:1px solid var(--n-line);display:flex;flex-direction:column;flex-shrink:0;min-height:0}
.n-org{display:flex;align-items:center;gap:10px;padding:18px 16px 14px;margin:0 6px;border-bottom:1px solid var(--n-line2)}
.n-logo{width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,#6366F1,#4338CA);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;flex-shrink:0}
.n-org b{display:block;font-size:14px;color:var(--n-ink);line-height:1.2}
.n-org span{font-size:11px;color:var(--n-ink3)}
.n-org-img{border-bottom:1px solid var(--n-line2);display:flex;justify-content:center;padding:6px 0}
.n-nav{flex:1;overflow-y:auto;padding:8px 12px 10px;scrollbar-width:thin}
.n-nav-g{font-size:10.5px;color:var(--n-ink3);font-weight:700;letter-spacing:.06em;padding:14px 10px 6px}
.n-nav button{width:100%;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:var(--n-ink2);font-size:13px;font-weight:500;border:none;background:transparent;margin-bottom:1px;text-align:left;font-family:inherit;transition:background .12s,color .12s}
.n-nav button:hover{background:#F5F6F8;color:var(--n-ink)}
.n-nav button i{font-size:17px;width:18px;text-align:center;flex-shrink:0}
.n-nav button span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.n-nav button em{font-style:normal;margin-left:auto;font-size:11px;color:var(--n-ink3);font-weight:600}
.n-nav button.on{background:var(--n-brand-50);color:var(--n-brand);font-weight:700}
.n-nav button.on em{color:var(--n-brand)}
.n-nav button.new::after{content:'NEW';font-size:8.5px;font-weight:800;color:#fff;background:var(--n-brand);padding:1px 5px;border-radius:99px;margin-left:4px}
.n-me{display:flex;align-items:center;gap:10px;padding:12px 16px 14px;margin:0 6px;border-top:1px solid var(--n-line2)}
.n-av{width:30px;height:30px;border-radius:50%;background:#C7D2FE;color:#3730A3;font-weight:800;font-size:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.n-me b{font-size:12.5px;display:block;color:var(--n-ink)}
.n-me span{font-size:11px;color:var(--n-ink3)}
.n-me button{margin-left:auto;width:30px;height:30px;border-radius:8px;border:1px solid var(--n-line);background:#fff;color:var(--n-ink3);display:flex;align-items:center;justify-content:center}
.n-me button:hover{color:var(--n-bad);border-color:#FECACA;background:var(--n-bad-50)}
.n-staff{margin:0 16px 8px;padding:5px 8px;background:#FFFBEB;border:1px solid #FDE68A;border-radius:7px;font-size:10.5px;color:#B45309;font-weight:700}

/* 오른쪽 영역 + 상단바 */
.n-shell{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--n-bg)}
.n-top{height:56px;background:#fff;border-bottom:1px solid var(--n-line);display:flex;align-items:center;gap:12px;padding:0 24px;flex-shrink:0}
.n-crumb{font-size:13px;color:var(--n-ink3);display:flex;align-items:center;gap:6px;white-space:nowrap}
.n-crumb b{color:var(--n-ink);font-weight:700}
.n-crumb a{color:var(--n-ink3);cursor:pointer;text-decoration:none}.n-crumb a:hover{color:var(--n-brand)}
.n-crumb i{font-size:12px;color:#CBD5E1}
.n-search{margin-left:auto;width:400px;height:36px;border:1px solid var(--n-line);border-radius:9px;display:flex;align-items:center;gap:8px;padding:0 12px;color:var(--n-ink3);background:#FAFBFC;font-size:12.5px;font-family:inherit;cursor:pointer}
.n-search:hover{border-color:#C7D2FE;background:#fff}
.n-search i{font-size:16px}
.n-search kbd{margin-left:auto;font-family:inherit;font-size:10.5px;border:1px solid var(--n-line);border-radius:5px;padding:1px 6px;background:#fff}
.n-conn{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--n-ink3);white-space:nowrap;padding:0 4px}
.n-conn span:first-child{width:7px;height:7px;border-radius:50%;display:inline-block}
.n-top .n-search+.n-conn{margin-left:4px}
.n-top .n-crumb+.n-conn{margin-left:auto}

/* 공통 조각 */
.n-wrap{padding:12px 28px 28px;height:100%;overflow-y:auto;color:var(--n-ink)}
.n-h1{font-size:22px;font-weight:800;letter-spacing:-.01em;margin:0}
.n-sub{font-size:13px;color:var(--n-ink3);margin-top:4px}
.n-row{display:flex;align-items:center;gap:10px}
.n-card{background:#fff;border:1px solid var(--n-line);border-radius:14px}
.n-ch{display:flex;align-items:center;gap:8px;padding:16px 18px 10px;font-weight:800;font-size:14px;color:var(--n-ink)}
.n-ch>i{font-size:17px;color:var(--n-brand)}
.n-more{margin-left:auto;font-size:12px;color:var(--n-ink3);font-weight:600;border:none;background:none;padding:0;font-family:inherit}
.n-more:hover{color:var(--n-brand)}
.n-btn{height:36px;padding:0 14px;border-radius:9px;border:1px solid var(--n-line);background:#fff;display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:12.5px;color:var(--n-ink2);white-space:nowrap;font-family:inherit;text-decoration:none}
.n-btn:hover{border-color:#C7D2FE;color:var(--n-brand)}
.n-btn i{font-size:16px}
.n-btn.p{background:var(--n-brand);border-color:var(--n-brand);color:#fff}
.n-btn.p:hover{background:var(--n-brand-d)}
.n-btn.s{height:30px;padding:0 10px;font-size:12px;border-radius:8px}
.n-btn.s i{font-size:14px}
.n-btn[disabled]{opacity:.4;pointer-events:none}
.n-pill{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;padding:2px 8px;border-radius:99px;white-space:nowrap}
.n-p-brand{background:var(--n-brand-50);color:var(--n-brand)}.n-p-ok{background:var(--n-ok-50);color:var(--n-ok)}.n-p-warn{background:var(--n-warn-50);color:var(--n-warn)}.n-p-bad{background:var(--n-bad-50);color:var(--n-bad)}.n-p-gray{background:#F3F4F6;color:var(--n-ink2)}.n-p-iv{background:var(--n-iv-50);color:var(--n-iv)}
.n-muted{color:var(--n-ink3)}
.n-empty{padding:18px;text-align:center;color:var(--n-ink3);font-size:12.5px}
.n-seg{display:inline-flex;border:1px solid var(--n-line);border-radius:8px;overflow:hidden;background:#fff}
.n-seg button{border:none;background:none;padding:4px 10px;font-size:11.5px;font-weight:700;color:var(--n-ink3);font-family:inherit}
.n-seg button.on{background:var(--n-brand-50);color:var(--n-brand)}
.n-link{border:none;background:none;padding:0;font:inherit;color:inherit;cursor:pointer;text-align:left}
.n-link:hover{color:var(--n-brand);text-decoration:underline}

/* 홈 */
.n-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:20px}
.n-kpi{padding:18px 20px;position:relative;cursor:pointer;transition:border-color .12s,box-shadow .12s}
.n-kpi:hover{border-color:#C7D2FE;box-shadow:0 4px 14px rgba(79,70,229,.06)}
.n-kpi .l{font-size:12.5px;color:var(--n-ink2);font-weight:700;display:flex;align-items:center;gap:6px}
.n-kpi .l i{font-size:16px}
.n-kpi .v{font-size:30px;font-weight:800;margin-top:8px;letter-spacing:-.02em;color:var(--n-ink);font-variant-numeric:tabular-nums}
.n-kpi .v small{font-size:14px;color:var(--n-ink3);font-weight:600;margin-left:3px}
.n-kpi .d{font-size:12px;margin-top:4px;color:var(--n-ink3)}
.n-kpi .d b{color:var(--n-ok)}.n-kpi .d b.dn{color:var(--n-bad)}
/* 작은 그래프는 큰 숫자 옆에: 아래 설명 글자와 겹치지 않게 */
.n-kpi svg{position:absolute;right:18px;top:46px}
.n-hgrid{display:grid;grid-template-columns:minmax(0,1fr) 460px;gap:16px;margin-top:16px;align-items:start}
.n-col{display:flex;flex-direction:column;gap:16px;min-width:0}
.n-ag{padding:0 18px 12px}
.n-day{font-size:11.5px;font-weight:800;color:var(--n-ink3);margin:10px 0 4px;letter-spacing:.03em}
.n-it{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:12px;padding:9px 10px;border-radius:10px;cursor:pointer}
.n-it:hover{background:#FAFAFF}
.n-it.hl{background:#FAFAFF}
.n-ic{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center}
.n-ic i{font-size:17px}
.n-it .tt{font-weight:700;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.n-it .ds{font-size:12px;color:var(--n-ink3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.n-funnel{display:grid;grid-template-columns:repeat(3,1fr);padding:6px 18px 20px}
.n-fs{padding:0 14px;border-left:1px solid var(--n-line2)}.n-fs:first-child{border-left:none;padding-left:0}
.n-fs .k{font-size:12px;color:var(--n-ink2);font-weight:700}
.n-fs .n{font-size:24px;font-weight:800;margin:6px 0 8px;font-variant-numeric:tabular-nums}
.n-fs .bar{height:8px;border-radius:99px;background:#F1F2F6;overflow:hidden}.n-fs .bar i{display:block;height:100%;border-radius:99px}
.n-fs .r{font-size:11.5px;color:var(--n-ink3);margin-top:6px}
.n-ai{background:linear-gradient(160deg,#EEF2FF 0%,#fff 60%);border-color:#E0E7FF;padding:4px 6px 6px}
.n-ai .ai-b{background:transparent;border:none;box-shadow:none;margin:0}
.n-todo{padding:0 18px 10px}
.n-td{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--n-line2)}
.n-td:first-child{border-top:none}
.n-td .tic{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.n-td .tic i{font-size:16px}
.n-td b{font-size:13px;color:var(--n-ink)}
.n-td .m{font-size:12px;color:var(--n-ink3);margin-top:2px;line-height:1.5}
.n-td .m .n-link{color:var(--n-ink2)}
.n-td .n-btn{margin-left:auto;flex-shrink:0}
.n-bars{display:flex;align-items:flex-end;gap:14px;height:150px;padding:4px 22px 16px}
.n-bars div{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px;font-size:11px;color:var(--n-ink3);height:100%}
.n-bars i{display:block;width:100%;border-radius:6px 6px 2px 2px;background:#C7D2FE;min-height:3px}
.n-bars .cur i{background:var(--n-brand)}
.n-bars b{font-size:11px;color:var(--n-ink2)}
.n-pass{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--n-line2);font-size:13px}
.n-pass:first-child{border-top:none}
.n-pass .n-av{width:28px;height:28px;font-size:11px;background:#D1FAE5;color:#047857}

/* 공고 상세 창 */
.n-dr{position:fixed;top:56px;right:0;bottom:0;width:560px;max-width:100vw;background:#fff;border-left:1px solid var(--n-line);box-shadow:-12px 0 32px rgba(15,23,42,.08);z-index:900;display:flex;flex-direction:column;animation:nDrIn .18s ease;color:var(--n-ink)}
@keyframes nDrIn{from{transform:translateX(24px);opacity:0}to{transform:none;opacity:1}}
.n-dh{padding:20px 22px 16px;border-bottom:1px solid var(--n-line)}
.n-dh .ic{margin-left:auto;display:flex;gap:2px}
.n-dh .ic button,.n-dh .ic a{width:30px;height:30px;border-radius:8px;border:none;background:none;color:var(--n-ink3);display:flex;align-items:center;justify-content:center;text-decoration:none}
.n-dh .ic button:hover,.n-dh .ic a:hover{background:#F3F4F6;color:var(--n-ink)}
.n-dh .ic i{font-size:17px}
.n-dh .t{font-size:18px;font-weight:800;margin-top:8px;line-height:1.35}
.n-dh .s{font-size:12.5px;color:var(--n-ink3);margin-top:4px}
.n-dact{display:flex;gap:6px;margin-top:14px;flex-wrap:wrap}
.n-db{padding:18px 22px 28px;overflow-y:auto;flex:1}
.n-sec{font-size:12.5px;font-weight:800;color:var(--n-ink2);margin:0 0 10px;display:flex;align-items:center;gap:6px}
.n-sec i{font-size:15px}
.n-step{display:grid;grid-template-columns:repeat(5,1fr);position:relative;margin-bottom:24px}
.n-step:before{content:'';position:absolute;left:10%;right:10%;top:9px;height:2px;background:#E5E7EB}
.n-step .bar{position:absolute;left:10%;top:9px;height:2px;background:var(--n-brand)}
.n-st{text-align:center;position:relative}
.n-st i{display:block;width:20px;height:20px;border-radius:50%;margin:0 auto;background:#fff;border:2px solid #D1D5DB;box-sizing:border-box}
.n-st.d i{background:var(--n-brand);border-color:var(--n-brand)}
.n-st.c i{background:#fff;border:6px solid var(--n-bad);box-shadow:0 0 0 4px var(--n-bad-50)}
.n-st.nx i{border-color:var(--n-brand);box-shadow:0 0 0 4px var(--n-brand-50)}
.n-st b{display:block;font-size:12px;margin-top:8px}
.n-st span{font-size:11.5px;color:var(--n-ink3)}
.n-st.c b,.n-st.c span{color:var(--n-bad)}
.n-st.nx span{color:var(--n-brand);font-weight:700}
.n-ap{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--n-line2)}
.n-ap:first-child{border-top:none}
.n-ap .nm{min-width:0}
.n-ap .nm b{font-size:13px}
.n-ap .nm span{display:block;font-size:11.5px;color:var(--n-ink3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.n-ap .st2{margin-left:auto;display:flex;gap:6px;align-items:center;flex-shrink:0}
.n-ap .vrow-btn{width:26px;height:26px}
.n-stsel{border-radius:99px;padding:3px 8px;font-size:11px;font-weight:700;font-family:inherit;outline:none;cursor:pointer}
.n-kv{display:grid;grid-template-columns:90px 1fr;gap:8px 12px;font-size:12.5px;margin:0 0 18px}
.n-kv dt{color:var(--n-ink3)}.n-kv dd{margin:0;color:var(--n-ink);font-weight:600;word-break:break-all}
.n-kv a{color:var(--n-brand)}
.n-note{background:#FFFBEB;border:1px solid #FDE68A;border-radius:10px;padding:10px 12px;font-size:12.5px;color:#92400E;line-height:1.55;white-space:pre-wrap}
tr.n-dr-on>td{background:#F5F7FF!important}
tr.n-dr-on>td:first-child{box-shadow:inset 3px 0 0 var(--n-brand)}

/* 지원 현황판 */
.n-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;flex:1;min-height:0;margin-top:10px}
.n-bc{background:#EEF0F4;border-radius:14px;padding:12px 10px 10px;display:flex;flex-direction:column;min-height:0;border:2px solid transparent;transition:border-color .12s,background .12s}
.n-bc.over{border-color:#A5B4FC;border-style:dashed;background:#EEF2FF}
.n-bc.end{background:#F3F4F6}
.n-bch{display:flex;align-items:center;gap:7px;padding:2px 6px 10px;font-weight:800;font-size:13.5px;color:var(--n-ink)}
.n-bch .dot{width:8px;height:8px;border-radius:50%}
.n-bch em{font-style:normal;font-size:11px;color:var(--n-ink3);background:#fff;padding:1px 8px;border-radius:99px;font-weight:700}
.n-bcl{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:2px 2px 4px;min-height:60px;scrollbar-width:thin}
.n-kc{background:#fff;border:1px solid var(--n-line);border-radius:12px;padding:11px 12px;cursor:pointer;transition:box-shadow .12s,border-color .12s}
.n-kc:hover{border-color:#C7D2FE;box-shadow:0 4px 14px rgba(79,70,229,.08)}
.n-kc.drag{opacity:.45}
.n-kc[draggable=true]{cursor:grab}
.n-kc .h{display:flex;align-items:center;gap:8px}
.n-kc .h .n-av{width:26px;height:26px;font-size:11px}
.n-kc .h b{font-size:13.5px}
.n-kc .h small{font-size:11px;color:var(--n-ink3)}
.n-kc .h .n-pill{margin-left:auto}
.n-kc .ln{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--n-ink2);margin-top:8px;white-space:nowrap;overflow:hidden}
.n-kc .ln i{font-size:14px;color:var(--n-ink3);flex-shrink:0}
.n-kc .ln span{overflow:hidden;text-overflow:ellipsis}
.n-kc .ln .n-pill{margin-left:auto}
.n-kc .ln.warn,.n-kc .ln.warn i{color:var(--n-warn)}
.n-bfil{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap}
.n-chip{height:32px;padding:0 12px;border:1px solid var(--n-line);border-radius:8px;background:#fff;display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--n-ink2);font-weight:600;font-family:inherit}
.n-chip i{font-size:15px}
.n-chip.on{border-color:#C7D2FE;background:var(--n-brand-50);color:var(--n-brand)}
select.n-chip{padding-right:8px}
.n-btoast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:#111827;color:#fff;border-radius:12px;padding:12px 18px;font-size:13px;display:flex;align-items:center;gap:12px;box-shadow:0 12px 32px rgba(0,0,0,.25);z-index:20000;animation:nDrIn .18s ease}
.n-btoast i{color:#34D399;font-size:17px}
.n-btoast button{border:none;background:none;color:#A5B4FC;font-weight:700;font-family:inherit;font-size:13px;padding:0}

/* 속기사 프로필 */
.n-pgrid{display:grid;grid-template-columns:340px minmax(0,1fr) 400px;gap:16px;margin-top:16px;align-items:start}
.n-prof{padding:24px 22px}
.n-prof .big{width:84px;height:84px;border-radius:50%;margin:0 auto;background:linear-gradient(135deg,#E0E7FF,#C7D2FE);color:#3730A3;font-size:32px;font-weight:800;display:flex;align-items:center;justify-content:center}
.n-prof .nm{text-align:center;font-size:20px;font-weight:800;margin-top:12px}
.n-prof .sb2{text-align:center;font-size:12.5px;color:var(--n-ink3);margin-top:4px}
.n-prof .tags{display:flex;gap:5px;justify-content:center;flex-wrap:wrap;margin-top:10px}
.n-cta{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0;padding-bottom:18px;border-bottom:1px solid var(--n-line2)}
.n-cta a,.n-cta button{border:1px solid var(--n-line);border-radius:10px;padding:10px 0;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:12px;color:var(--n-ink2);text-decoration:none;background:#fff;font-family:inherit;font-weight:600}
.n-cta a:hover,.n-cta button:hover{border-color:#C7D2FE;color:var(--n-brand)}
.n-cta i{font-size:18px}
.n-cta .off{opacity:.35;pointer-events:none}
.n-info{display:grid;grid-template-columns:22px 70px 1fr;gap:12px 8px;font-size:12.5px;align-items:center}
.n-info i{font-size:16px;color:var(--n-ink3)}
.n-info span{color:var(--n-ink3)}
.n-info b{font-weight:600;color:var(--n-ink);word-break:break-all}
.n-stats{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--n-line)}
.n-stats div{padding:16px 18px;border-left:1px solid var(--n-line)}
.n-stats div:first-child{border-left:none}
.n-stats span{font-size:12px;color:var(--n-ink3);font-weight:600}
.n-stats b{display:block;font-size:22px;font-weight:800;margin-top:4px}
.n-tl{padding:4px 18px 16px}
.n-ev{display:grid;grid-template-columns:86px 18px minmax(0,1fr);gap:12px;position:relative;padding-bottom:16px}
.n-ev:last-child{padding-bottom:4px}
.n-ev .dt{font-size:12px;color:var(--n-ink3);text-align:right;padding-top:1px;font-variant-numeric:tabular-nums}
.n-ev .dd{width:14px;height:14px;border-radius:50%;border:3px solid;background:#fff;margin-top:2px;position:relative;z-index:1}
.n-ev:not(:last-child) .dd:after{content:'';position:absolute;left:50%;top:12px;width:2px;height:calc(100% + 40px);background:#E5E7EB;transform:translateX(-50%);z-index:-1}
.n-ev .bd b{font-size:13.5px;color:var(--n-ink)}
.n-ev .bd .n-link b{color:inherit}
.n-ev .bd span{display:block;font-size:12px;color:var(--n-ink3);margin-top:3px;line-height:1.5}
.n-htbl{width:100%;border-collapse:collapse;font-size:12.5px}
.n-htbl th{text-align:left;font-size:11.5px;color:var(--n-ink3);font-weight:700;padding:9px 18px;background:#FAFBFC;border-top:1px solid var(--n-line);border-bottom:1px solid var(--n-line)}
.n-htbl td{padding:11px 18px;border-bottom:1px solid var(--n-line2);vertical-align:middle}
.n-htbl tr:last-child td{border-bottom:none}
.n-mj{display:flex;align-items:center;gap:12px;padding:12px 18px;border-top:1px solid var(--n-line2)}
.n-mj .sc{width:42px;height:42px;border-radius:10px;background:var(--n-brand-50);color:var(--n-brand);font-weight:800;font-size:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;line-height:1.2}
.n-mj .sc small{font-size:9.5px;font-weight:700;opacity:.8}
.n-mj .bd{min-width:0;flex:1}
.n-mj .bd b{font-size:13px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.n-mj .bd span{font-size:11.5px;color:var(--n-ink3)}
.n-memo{margin:0 18px 12px;background:#F9FAFB;border:1px solid var(--n-line2);border-radius:10px;padding:11px 12px;font-size:12.5px;line-height:1.6;white-space:pre-wrap;color:#1F2937}
.n-alert{display:flex;align-items:center;gap:8px;border-radius:10px;padding:10px 12px;font-size:12.5px;font-weight:600;margin-top:12px}
.n-alert.red{background:var(--n-bad-50);color:#B91C1C;border:1px solid #FECACA}
.n-alert.amber{background:var(--n-warn-50);color:#B45309;border:1px solid #FDE68A}
.n-ai .ai-b{padding:12px 12px 10px}
.n-ai .ai-b-t{font-size:14px;color:var(--n-ink);gap:8px}
.n-ai .ai-b-t i{color:var(--n-brand);font-size:17px}
.n-ai .ai-b-msg{font-size:12.5px;line-height:1.65;margin-top:10px}
.n-ai .ai-b-text{font-size:13px}

/* ── 메뉴 화면 공통 틀 (머리글 · 탭 · 도구줄 · 표) ── */
.n-page{padding:12px 28px 28px;height:100%;overflow-y:auto;color:var(--n-ink);display:flex;flex-direction:column}
.n-page.fit{overflow:hidden}
.n-ph{display:flex;align-items:center;gap:12px;flex-wrap:wrap;flex-shrink:0;min-height:36px} /* 오른쪽 버튼이 없는 화면도 제목 높이를 같게 */
/* 제목과 안내 문구를 한 줄로 두어 화면 내용이 위에서 시작하게 한다 */
.n-ph>div:first-child,.n-ttl{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;min-width:0}
.n-ph>div:first-child>.n-sub,.n-ttl>.n-sub{margin-top:0}
.n-ph .n-sub b{color:var(--n-ink2);font-weight:700}
.n-act{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.n-tabs{display:flex;gap:4px;border-bottom:1px solid var(--n-line);margin-top:18px;flex-shrink:0;overflow-x:auto;scrollbar-width:none}
.n-tabs::-webkit-scrollbar{display:none}
.n-tabs button{border:none;background:none;padding:10px 12px;font-size:13px;font-weight:600;color:var(--n-ink3);border-bottom:2px solid transparent;margin-bottom:-1px;display:inline-flex;align-items:center;gap:6px;font-family:inherit;white-space:nowrap;cursor:pointer}
.n-tabs button:hover{color:var(--n-ink)}
.n-tabs button i{font-size:16px}
.n-tabs button em{font-style:normal;font-size:11px;background:#EEF0F3;color:var(--n-ink3);padding:1px 7px;border-radius:99px;font-weight:700;font-variant-numeric:tabular-nums}
.n-tabs button.on{color:var(--n-brand);border-bottom-color:var(--n-brand);font-weight:800}
.n-tabs button.on em{background:var(--n-brand-100);color:var(--n-brand)}
.n-tabs button.zero{opacity:.45}
.n-tabs .sp{margin-left:auto}
.n-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px;flex-shrink:0}
.n-bar .lb{font-size:12px;color:var(--n-ink3);font-weight:700;margin-right:2px}
.n-bar .n-muted{font-size:12px}
.n-bar .r{margin-left:auto;display:flex;align-items:center;gap:8px}
.n-in{height:36px;display:inline-flex;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--n-line);border-radius:9px;background:#fff;width:320px;max-width:100%;transition:border-color .12s,box-shadow .12s}
.n-in.w{flex:1;width:auto;min-width:260px}
.n-in:focus-within{border-color:#A5B4FC;box-shadow:0 0 0 3px var(--n-brand-50)}
.n-in i{font-size:16px;color:var(--n-ink3);flex-shrink:0}
.n-in input{border:none;outline:none;flex:1;font-size:13px;font-family:inherit;background:none;min-width:0;color:var(--n-ink);padding:0}
.n-in input::placeholder{color:#A0A7B4}
.n-in .x{border:none;background:none;color:var(--n-ink3);padding:0;display:flex;cursor:pointer}
.n-sel{height:36px;border:1px solid var(--n-line);border-radius:9px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239CA3AF' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center;padding:0 30px 0 12px;font-size:12.5px;font-weight:600;color:var(--n-ink2);font-family:inherit;-webkit-appearance:none;appearance:none;outline:none;cursor:pointer}
.n-sel:focus{border-color:#A5B4FC}
.n-sel.s{height:30px;font-size:12px;border-radius:8px}
.n-chip{cursor:pointer}
.n-chip em{font-style:normal;font-size:11px;color:var(--n-ink3);font-weight:700}
.n-chip.on em{color:var(--n-brand)}
.n-chip:hover{border-color:#C7D2FE}
.n-chip.zero{opacity:.45}
.n-tw{background:#fff;border:1px solid var(--n-line);border-radius:14px;overflow:auto;margin-top:14px}
.n-page.fit .n-tw{flex:1;min-height:0}
.n-t{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
.n-t th{position:sticky;top:0;z-index:2;background:#FAFBFC;text-align:left;font-size:11.5px;font-weight:700;color:var(--n-ink3);padding:11px 16px;border-bottom:1px solid var(--n-line);white-space:nowrap;letter-spacing:.01em}
.n-t th.c,.n-t td.c{text-align:center}
.n-t th .th-sort{color:inherit}
.n-t td{padding:12px 16px;border-bottom:1px solid var(--n-line2);vertical-align:middle;color:var(--n-ink)}
.n-t tbody tr{transition:background .1s}
.n-t tbody tr:hover>td{background:#FAFAFF}
.n-t tbody tr:last-child>td{border-bottom:none}
.n-t tr.row-restricted>td{background:#FFF7F7}
.n-t .num{color:var(--n-ink3);font-size:12px;font-variant-numeric:tabular-nums;width:44px}
.n-t .sub{display:block;font-size:11.5px;color:var(--n-ink3);margin-top:2px}
.n-t .who{display:flex;align-items:center;gap:10px;min-width:0}
.n-t .who .n-av{width:30px;height:30px;font-size:12px}
.n-t .who b{font-size:13.5px}
.n-t .stu-name,.n-t .pn-link{color:var(--n-ink);font-weight:700;font-size:13.5px}
.n-t .stu-name:hover,.n-t .pn-link:hover{color:var(--n-brand)!important}
.n-t .vrow-acts{justify-content:flex-end}
.n-tfoot{display:block;padding:10px 16px;border-top:1px solid var(--n-line);font-size:12px;color:var(--n-ink3);background:#FAFBFC;position:sticky;bottom:0}
.n-page .vrow-btn{border-color:var(--n-line);border-radius:8px;color:var(--n-ink3)}
.n-page .vrow-btn:hover{color:var(--n-brand);border-color:#C7D2FE;background:var(--n-brand-50)}
.n-page .vrow-btn.del:hover{background:#FEF2F2;color:#DC2626;border-color:#FECACA}
.n-page .vrow-btn.fav-on{color:#D97706;background:#FFFBEB;border-color:#FCD34D}
.n-mstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-top:18px;flex-shrink:0}
.n-ms{background:#fff;border:1px solid var(--n-line);border-radius:12px;padding:14px 16px;display:flex;align-items:center;gap:12px;min-width:0}
.n-ms .ic{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--n-brand-50);color:var(--n-brand)}
.n-ms .ic i{font-size:19px}
.n-ms span{display:block;font-size:12px;color:var(--n-ink3);font-weight:600}
.n-ms b{display:block;font-size:20px;font-weight:800;letter-spacing:-.01em;font-variant-numeric:tabular-nums;margin-top:1px}
.n-ms b small{font-size:12px;color:var(--n-ink3);font-weight:600;margin-left:2px}
.n-ms.click{cursor:pointer;transition:border-color .12s}
.n-ms.click:hover,.n-ms.on{border-color:#A5B4FC}
.n-ms.on{box-shadow:0 0 0 3px var(--n-brand-50)}
.n-blank{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:56px 20px;color:var(--n-ink3)}
.n-blank .ic{width:56px;height:56px;border-radius:16px;background:var(--n-brand-50);color:var(--n-brand);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.n-blank .ic i{font-size:28px}
.n-blank b{font-size:15px;color:var(--n-ink);font-weight:800}
.n-blank p{font-size:12.5px;margin:6px 0 0;line-height:1.6}
.n-blank .n-btn{margin-top:16px}
.n-card .n-blank{padding:40px 20px}
.n-sech{display:flex;align-items:center;gap:8px;padding:14px 18px;border-bottom:1px solid var(--n-line2);font-weight:800;font-size:14px}
.n-sech>i{font-size:17px;color:var(--n-ink3)}
.n-sech .n-sub{margin:0 0 0 2px;font-weight:500;font-size:12px}
.n-sech .r{margin-left:auto;display:flex;align-items:center;gap:8px}
.n-pill i{font-size:12px}
.n-modal h3+button:hover{background:#F3F4F6!important;color:#111827!important}
.n-fin:focus{border-color:#A5B4FC!important;box-shadow:0 0 0 3px #EEF2FF}
/* 일정 캘린더 */
.n-cal{overflow:hidden;flex-shrink:0}
.n-cal-g{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.n-cal-h{border-bottom:1px solid var(--n-line);background:#FAFBFC}
.n-cal-dw{text-align:center;font-size:12px;font-weight:700;color:var(--n-ink3);padding:10px 0}
.n-cal-dw.sun{color:#EF4444}.n-cal-dw.sat{color:#6366F1}
.n-cal-c{min-height:128px;padding:8px 8px 10px;border-right:1px solid var(--n-line2);border-bottom:1px solid var(--n-line2);display:flex;flex-direction:column;gap:4px;min-width:0}
.n-cal-c:nth-child(7n){border-right:none}
.n-cal-g:last-child .n-cal-c:nth-last-child(-n+7){border-bottom:none}
.n-cal-c.we{background:#FCFCFD}
.n-cal-c.out{background:#FAFAFB}
.n-cal-c.out .dn{color:#D1D5DB}
.n-cal-c .hd{display:flex;align-items:center;gap:6px;margin-bottom:2px}
.n-cal-c .dn{font-size:13px;font-weight:700;color:var(--n-ink2);width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums}
.n-cal-c .dn.sun{color:#EF4444}
.n-cal-c.past .dn{color:var(--n-ink3)}
.n-cal-c.today{background:#F8F9FF}
.n-cal-c.today .dn{background:var(--n-brand);color:#fff}
.n-cal-c .hd em{font-style:normal;font-size:11px;font-weight:800;color:var(--n-brand)}
.n-cal-ev{display:flex;align-items:center;gap:6px;width:100%;border:none;background:color-mix(in srgb,var(--c) 9%,#fff);border-radius:6px;padding:4px 7px;font-family:inherit;font-size:11.5px;text-align:left;cursor:pointer;min-width:0;box-shadow:inset 3px 0 0 var(--c)}
.n-cal-ev:hover{background:color-mix(in srgb,var(--c) 16%,#fff)}
.n-cal-ev b{color:var(--c);font-weight:800;white-space:nowrap;flex-shrink:0}
.n-cal-ev span{color:var(--n-ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.n-cal-ev i{color:#F59E0B;font-size:11px;margin-left:auto;flex-shrink:0}
.n-cal-c.past .n-cal-ev{opacity:.6}
.n-cal-lg span{width:8px;height:8px;border-radius:50%}
.n-cal-lg.off{color:#C0C5CF;text-decoration:line-through}
.n-cal-lg.off span{opacity:.3}
.n-cb{width:15px;height:15px;cursor:pointer;accent-color:var(--n-brand);vertical-align:middle}
.n-tlink{color:var(--n-ink);text-decoration:none;font-weight:600}
a.sub.n-tlink{font-weight:500;color:var(--n-ink3)}
.n-tlink:hover{color:var(--n-brand)!important;text-decoration:underline}
.n-btn.n-danger{color:var(--n-bad)}
.n-btn.n-danger:hover{border-color:#FECACA;background:var(--n-bad-50);color:var(--n-bad)}
.n-emp-dt{display:flex;flex-direction:column;min-height:0;flex:1;overflow:hidden}
.n-emp-dt .n-dh .ic{margin-left:auto}
.n-emp-dt .ref-card{border-color:var(--n-line);border-radius:12px}
.n-emp-dt .ref-card-h b{color:var(--n-ink)}
.ref-tbl.n-tw{border-radius:14px;border-color:var(--n-line)}
.ref-tbl .n-t th{background:#FAFBFC;font-size:11.5px;color:var(--n-ink3);border-bottom:1px solid var(--n-line);padding:11px 16px}
.ref-tbl .n-t td{padding:12px 16px;border-bottom:1px solid var(--n-line2)}
.ref-emp:hover,.ref-it-j:hover{color:var(--n-brand)}
.n-hint{border:1px solid var(--n-line);background:#fff;border-radius:10px;padding:9px 16px;text-align:center;font-family:inherit;cursor:pointer;min-width:110px}
.n-hint:hover{border-color:#A5B4FC;background:var(--n-brand-50)}
.n-hint b{display:block;font-size:15px;color:var(--n-brand);font-weight:800;letter-spacing:.04em}
.n-hint span{display:block;font-size:11px;color:var(--n-ink3);margin-top:2px}
/* 즐겨찾기 */
.n-seg button.fv-sort{border:none;border-radius:0;background:none;color:var(--n-ink3);padding:0 12px;height:34px;font-size:12px;font-weight:700}
.n-seg button.fv-sort.on{background:var(--n-brand-50);color:var(--n-brand)}
.fv-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.fv-card{border-color:var(--n-line);border-radius:14px;box-shadow:none;transition:border-color .12s,box-shadow .12s}
.fv-card:hover{border-color:#C7D2FE;box-shadow:0 4px 14px rgba(79,70,229,.06)}
.fv-hd{padding:16px 14px 10px 16px}
.fv-av{width:40px;height:40px;border-radius:50%}
.fv-ph a{color:var(--n-ink2)}
.fv-note{margin:0 14px 10px;background:#F9FAFB;border-radius:10px}
.fv-tags span{background:var(--n-brand-50);border-color:var(--n-brand-100)}
.fv-sum{padding:10px 16px;border-top-color:var(--n-line2)}
.fv-sum .g b{color:var(--n-warn)}
.fv-acts{padding:0 14px 14px}
.fv-acts .pv-btn{height:34px;border-radius:9px}
/* 채용 지도: 다른 메뉴와 같은 머리글 · 카드 */
.hm-wrap{background:var(--n-bg)}
.hm-head{background:transparent;border-bottom:none;padding:12px 28px 0;align-items:center}
/* 채용 지도 제목도 다른 화면처럼 제목 옆에 설명 한 줄 */
.hm-head>div:first-child{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;min-width:0}
.hm-head>div:first-child>.n-sub{margin-top:0}
.hm-kinds{background:transparent;border-bottom:none;padding:16px 28px 0;gap:8px}
.hm-kinds-l{font-size:12px;color:var(--n-ink3);font-weight:700}
.hm-kinds button{height:32px;border-radius:8px;border-color:var(--n-line);font-weight:600;color:var(--n-ink2)}
.hm-kinds button span{font-size:11px}
.hm-kinds button.on{background:color-mix(in srgb,var(--kc) 10%,#fff);color:var(--kc);border-color:color-mix(in srgb,var(--kc) 40%,#fff)}
.hm-kinds button.on span{color:var(--kc)}
.hm-kinds-h{font-size:11.5px}
.hm-scroll{padding:16px 28px 28px}
.hm-card,.hm-kpi{border-color:var(--n-line)}
.hm-kpi.k1{background:#fff;border-color:var(--n-line)}
.hm-kpi.k1 .hm-kpi-i{background:var(--n-brand-50);color:var(--n-brand)}
.hm-kpi.k1 span{color:#64748B}.hm-kpi.k1 b small,.hm-kpi.k1 em small{color:#94A3B8}
.hm-kpi.k1 b{color:var(--n-brand)!important}
.hm-kpi.k1 em.up{color:#059669!important}.hm-kpi.k1 em.dn{color:#DC2626!important}.hm-kpi.k1 em.eq{color:#94A3B8!important}
.n-seg2,.hm-tools .ec-seg{background:#fff;border:1px solid var(--n-line);padding:2px;border-radius:9px}
.n-seg2 button.on,.hm-tools .ec-seg button.on{background:var(--n-brand-50);color:var(--n-brand);box-shadow:none}
.hm-search{border-color:var(--n-line)!important;border-radius:9px!important}
.n-btn.on{background:var(--n-brand-50);border-color:#C7D2FE;color:var(--n-brand)}
.n-btn.s.p{color:#fff}
/* 면접 자료실 */
.n-selbar{display:flex;align-items:center;gap:10px;background:#111827;color:#fff;border-radius:12px;padding:10px 12px 10px 16px;flex-wrap:wrap}
.n-selbar>i{font-size:18px;color:#A5B4FC}
.n-selbar b{font-size:13px}
.n-selbar span{font-size:12px;color:#9CA3AF}
.n-selbar .r{margin-left:auto;display:flex;gap:6px}
.n-selbar .n-btn{background:#1F2937;border-color:#374151;color:#E5E7EB}
.n-selbar .n-btn:hover{border-color:#6B7280;color:#fff}
.n-selbar .n-btn.p{background:var(--n-brand);border-color:var(--n-brand);color:#fff}
.inst-group{border-color:var(--n-line);border-radius:14px;margin-bottom:10px}
.inst-group:hover{box-shadow:0 4px 14px rgba(79,70,229,.06)}
.inst-header{padding:15px 18px;gap:12px}
.inst-header:hover{background:#FAFAFF}
.inst-header.expanded{background:#fff;border-bottom:none}
.inst-body{border-top-color:var(--n-line2)}
.entry-row{padding:12px 18px 12px 22px;border-bottom-color:var(--n-line2)}
.entry-row:hover{background:#FAFAFF}
.entry-row.sel{background:#F5F7FF!important}
.vrow-tog{color:var(--n-brand)}
/* 연수 관리 */
.tr-chips{margin-top:14px;gap:8px}
.tr-chip{height:32px;align-items:center;border:1px solid var(--n-line);border-radius:8px;padding:0 12px;color:var(--n-ink2);font-weight:600}
.tr-chip span{color:var(--n-ink2)}
.tr-chip b{font-size:13.5px;font-weight:800;color:var(--c)}
.tr-chip em{font-size:11px;color:var(--n-ink3)}
.tr-chip:hover{border-color:#C7D2FE}
.tr-chip.on{background:color-mix(in srgb,var(--c) 9%,#fff);border-color:color-mix(in srgb,var(--c) 45%,#fff);color:var(--c)}
.tr-chip.on span,.tr-chip.on em{color:var(--c)}
.tr-chip.on b{color:var(--c)}
.tr-chips-n{font-size:12px;color:var(--n-ink3)}
.tr-more summary.n-btn{background:#fff;border-color:var(--n-line);color:var(--n-ink2);font-size:12.5px;padding:0 14px}
.tr-more[open] summary.n-btn{background:var(--n-brand-50);color:var(--n-brand)}
.tr-more-menu{border-color:var(--n-line);border-radius:10px;padding:6px;min-width:240px}
.tr-more-menu button{padding:9px 10px;font-size:12.5px;border-radius:7px}
.n-trnote{border:1px solid var(--n-line);background:#FFFDF5;border-radius:8px;padding:5px 9px;font-family:inherit;font-size:12px;color:var(--n-ink);cursor:pointer;display:inline-flex;align-items:center;gap:6px;max-width:220px}
.n-trnote span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.n-trnote em{font-style:normal;font-size:10.5px;color:#B45309;font-weight:700;flex-shrink:0}
.n-trnote:hover{border-color:#FCD34D}
/* 창(모달) 안 입력칸 모양 맞추기 */
.n-modal label[style*="uppercase"]{font-size:12px!important;text-transform:none!important;letter-spacing:0!important;color:#4B5563!important;margin-bottom:5px!important}
.n-modal select{min-height:38px;border-radius:9px!important;border-color:#E5E7EB!important;font-size:13px!important}
.n-modal textarea{border-radius:9px!important;border-color:#E5E7EB!important;font-size:13px!important;padding:9px 12px!important}
.n-modal input[type=text]:not(.n-fin),.n-modal input[type=number]:not(.n-fin),.n-modal input[type=email]:not(.n-fin),.n-modal input[type=date]:not(.n-fin),.n-modal input:not([type]):not(.n-fin){border-radius:9px!important;border-color:#E5E7EB!important}
.n-modal select:focus,.n-modal textarea:focus,.n-modal input:focus{border-color:#A5B4FC!important;outline:none}
/* 채용 지도: 면접 자료 바로 가기 */
.hm-det-v{font-family:inherit;text-align:left;cursor:pointer;border-color:#C7D2FE!important;background:#EEF2FF!important;transition:background .15s}
.hm-det-v:hover{background:#E0E7FF!important}
.hm-det-v b{color:#4F46E5!important;display:flex;align-items:center;gap:3px}
.hm-det-v b i{font-size:13px;color:#4F46E5}
.hm-det-vn b{color:#94A3B8!important;font-weight:600}
.hm-tl-t a{cursor:pointer}
/* 면접 자료실: 진행 중 기관 / 그 외 기관 구분 */
.n-vsec{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:#4B5563;margin:14px 2px 8px}
.n-vsec:first-child{margin-top:2px}
.n-vsec i{font-size:14px;color:#6366F1}
.n-vsec em{font-style:normal;font-size:11px;font-weight:700;color:#6B7280;background:#F3F4F6;border-radius:99px;padding:1px 7px}
/* 채용 지도: 곧 공고 낼 기관 */
.hm-soon{margin-bottom:12px;border-color:#FDE68A;background:linear-gradient(180deg,#FFFBEB 0,#fff 60px)}
.hm-soon .hm-ch b{display:flex;align-items:center;gap:6px}
.hm-soon .hm-ch b i{color:#D97706;font-size:16px}
.hm-soon .hm-ch span{color:#6B7280;font-weight:500}
.hm-soon .hm-ch em{margin-left:auto;font-style:normal;font-size:11px;font-weight:700;color:#B45309;background:#FEF3C7;border-radius:99px;padding:2px 9px}
.hm-soon-l{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}
.hm-soon-i{font-family:inherit;text-align:left;cursor:pointer;background:#fff;border:1px solid #E5E7EB;border-radius:11px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;transition:border-color .15s,box-shadow .15s}
.hm-soon-i:hover{border-color:#A5B4FC;box-shadow:0 2px 8px rgba(79,70,229,.08)}
.hm-soon-i .t{display:flex;align-items:center;gap:6px}
.hm-soon-i .t b{flex:1;min-width:0;font-size:13px;color:#111827;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hm-soon-i .m{display:flex;align-items:center;gap:6px;font-size:11.5px;color:#4B5563;font-weight:600}
.hm-soon-i .f{display:flex;align-items:center;gap:8px;font-size:11px;color:#9CA3AF}
.hm-soon-i .f .ok{color:#059669;font-weight:700}
.hm-soon-more{display:flex;align-items:center;justify-content:center;font-size:12px;color:#6B7280;border:1px dashed #E5E7EB;border-radius:11px}
/* 공고관리: 상세 창이 열린 공고명만 인디고 */
.j-dname{color:#0F172A}
tr.n-dr-on .j-dname{color:#4F46E5}

/* 채용 지도: 탭으로 나눈 모습 */
.hm2-sum{display:flex;align-items:center;gap:22px;flex-wrap:wrap;background:#fff;border:1px solid var(--n-line);border-radius:14px;padding:14px 20px;font-size:13.5px;color:var(--n-ink3)}
.hm2-sum .sc{font-weight:700;color:var(--n-ink2);padding-right:18px;border-right:1px solid var(--n-line)}
.hm2-sum .it b{font-size:17px;font-weight:800;color:var(--n-ink);margin:0 1px 0 4px}
.hm2-sum .it b.ok{color:var(--n-ok)}
.hm2-sum .it em{font-style:normal;font-size:11px;font-weight:700;margin-left:6px}
.hm2-sum .it em.up{color:var(--n-ok)}.hm2-sum .it em.dn{color:var(--n-bad)}
.hm2-tabs{margin:14px 0 14px}
.hm2-tabs button.on{color:var(--n-brand);border-bottom-color:var(--n-brand);font-weight:800}
.hm-th.hm2-row,.hm-row.hm2-row{grid-template-columns:28px minmax(220px,2fr) 80px 110px 90px 130px 100px 16px;gap:12px}
.hm2-name b{display:block;font-size:14px;font-weight:700;color:var(--n-ink);margin-bottom:2px}
.hm2-name span{font-size:12px;color:var(--n-ink3)}
.hm2-n{font-size:14px;font-weight:800;color:var(--n-ink);white-space:nowrap}
.hm2-n small{font-size:11px;font-weight:600;color:var(--n-ink3);margin-left:1px}
.hm2-n .hr-miss{display:block;margin:2px 0 0}
.hm2-ok{font-size:14px;font-weight:800;color:var(--n-ok)}
.hm2-s{font-size:13px;color:var(--n-ink2)}
.hm2-region{display:grid;grid-template-columns:380px 1fr;gap:14px;align-items:start}
.hm2-time{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
.hm2-time .hm-months{height:190px}
.hm2-reg{padding:0;overflow:hidden}
.hm2-rh{display:flex;align-items:baseline;gap:10px;padding:16px 18px 12px;border-bottom:1px solid var(--n-line)}
.hm2-rh h2{margin:0;font-size:19px;font-weight:800;color:var(--n-ink)}
.hm2-rh span{font-size:12.5px;color:var(--n-ink3)}
.hm2-rh .n-btn{margin-left:auto}
.hm2-ri{display:grid;grid-template-columns:1fr 70px 70px 80px 16px;gap:14px;align-items:center;width:100%;padding:13px 18px;border:none;border-bottom:1px solid var(--n-line);background:none;font:inherit;text-align:left;cursor:pointer}
.hm2-ri:last-child{border-bottom:none}.hm2-ri:hover{background:var(--n-bg)}
.hm2-ri .nm b{display:block;font-size:14px;font-weight:700;color:var(--n-ink);margin-bottom:2px}.hm2-ri .nm span{font-size:12px;color:var(--n-ink3)}
.hm2-ri .k{text-align:right}.hm2-ri .k span{display:block;font-size:11px;color:var(--n-ink3);font-weight:600}.hm2-ri .k b{font-size:14.5px;font-weight:800;color:var(--n-ink)}.hm2-ri .k b.ok{color:var(--n-ok)}
.hm2-ri>i{color:var(--n-ink3)}
.hm-scroll .hm-soon{margin-bottom:14px}
@media (max-width:1200px){.hm2-region,.hm2-time{grid-template-columns:1fr}}

/* 공고관리 빠른 보기 + 채용 형태 줄: 100% 배율에서도 한 줄, 넘치면 채용 형태 묶음 안에서만 줄바꿈 */
.jq-bar{gap:4px;align-items:flex-start}
.jq-bar .lb{line-height:32px}
.jq-bar .n-chip{padding:0 8px;gap:3px;font-size:12px}
.jq-bar .n-chip em{font-size:10.5px}
.jq-bar .n-chip i{font-size:14px}
.jq-bar .lb{margin-right:0}
.jq-div{width:1px;height:18px;background:var(--n-line);margin:7px 3px 0;flex-shrink:0}
.jq-types{display:flex;align-items:center;gap:4px;flex-wrap:wrap;flex:1 1 380px;min-width:0}

/* ── 디자인 2차 (frontend-design · Design 접근성 기준) ──
   1) 흐린 글자(--n-ink3)를 흰 바탕에서 읽을 수 있는 진하기(대비 4.8:1)로
   2) 키보드로 움직일 때 지금 어디에 있는지 보이는 테두리
   3) 카드·메뉴·요약 숫자의 위계를 또렷하게 */
:root{--n-ink3:#6B7280;--n-sh1:0 1px 2px rgba(16,24,40,.04),0 1px 3px rgba(16,24,40,.03);--n-sh2:0 6px 20px -6px rgba(79,70,229,.18),0 2px 6px rgba(16,24,40,.05)}
body{-webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 0}
:is(button,a,summary,[tabindex]):focus-visible{outline:2px solid var(--n-brand);outline-offset:2px;border-radius:8px}
/* 사이드바: 지금 보고 있는 메뉴 왼쪽에 색 막대 */
.n-nav-g{font-size:11px;letter-spacing:.04em}
.n-nav button{position:relative;padding:9px 10px}
.n-nav button.on::before{content:'';position:absolute;left:-12px;top:7px;bottom:7px;width:3px;border-radius:0 3px 3px 0;background:var(--n-brand)}
.n-nav button.on i{color:var(--n-brand)}
/* 카드: 테두리만 있던 평평한 카드에 아주 옅은 그림자 */
.n-card{box-shadow:var(--n-sh1)}
/* 홈 인사말: 브랜드 색 띠 안에 오늘 요약과 주요 버튼 */
.n-hero{flex-shrink:0;margin-top:8px;padding:24px 28px;border-radius:18px;color:#fff;position:relative;overflow:hidden;
  background:radial-gradient(120% 140% at 100% 0%,rgba(255,255,255,.18) 0%,transparent 55%),linear-gradient(120deg,#4338CA 0%,#6D28D9 100%);
  box-shadow:0 10px 30px -12px rgba(79,70,229,.55)}
.n-hero::after{content:'';position:absolute;right:-60px;bottom:-90px;width:260px;height:260px;border-radius:50%;border:40px solid rgba(255,255,255,.06);pointer-events:none}
.n-hero .n-h1{font-size:26px;letter-spacing:-.025em;color:#fff}
.n-hero .n-sub{font-size:13.5px;margin-top:6px;color:rgba(255,255,255,.82)}
.n-hero .n-row{position:relative;z-index:1}
.n-hero .n-btn{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.28);color:#fff}
.n-hero .n-btn:hover{background:rgba(255,255,255,.22);border-color:rgba(255,255,255,.45);color:#fff}
.n-hero .n-btn.p{background:#fff;border-color:#fff;color:#4338CA}
.n-hero .n-btn.p:hover{background:#EEF2FF;color:#3730A3}
.n-hero :focus-visible{outline-color:#fff}
/* 다가오는 일정: 날짜 머리글을 작은 띠로 */
.n-day{display:inline-flex;align-items:center;gap:6px;margin:14px 0 4px;padding:3px 9px;border-radius:99px;background:var(--n-line2);color:var(--n-ink2);font-size:11.5px}
/* 홈 요약 카드: 아이콘을 옅은 색 원 안에, 큰 숫자를 더 크게, 누르면 살짝 떠오름 */
.n-kpi{padding:20px 22px;transition:border-color .15s,box-shadow .15s,transform .15s}
.n-kpi:hover{transform:translateY(-2px);box-shadow:var(--n-sh2)}
.n-kpi .l{gap:8px;color:var(--n-ink2)}
.n-kpi .l i{width:28px;height:28px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-size:15px;background:color-mix(in srgb,currentColor 12%,transparent)}
.n-kpi .v{font-size:34px;margin-top:12px;line-height:1.05;letter-spacing:-.03em}
.n-kpi .v small{font-size:14px}
.n-kpi .d{margin-top:8px}
.n-kpi svg{top:58px}
@media (prefers-reduced-motion:reduce){.n-kpi,.n-kpi:hover{transition:none;transform:none}}

/* ── 디자인 3차 (frontend-design · Design 비평 기준: 한눈에 보이는 변화) ──
   1) 왼쪽 메뉴를 진한 남색 판으로: 내용(오른쪽)과 메뉴가 확실히 나뉘고, 지금 메뉴는 색으로 채운 알약
   2) 본문 바탕에 아주 옅은 보라빛, 상단바는 반투명 유리처럼
   3) 표 머리줄에 옅은 색, 줄에 마우스를 올리면 왼쪽에 색 막대
   4) 주요 버튼·고른 필터는 채운 색으로 또렷하게 */
.n-sb{background:linear-gradient(180deg,#1E1B4B 0%,#191640 55%,#15123A 100%);border-right:none;color:#E0E7FF}
.n-org{border-bottom-color:rgba(255,255,255,.08);padding:20px 14px 16px}
.n-org b{color:#fff;font-size:14.5px}
.n-org span{color:#A5A8E0}
.n-logo{width:36px;height:36px;border-radius:11px;font-size:16px;background:linear-gradient(135deg,#818CF8 0%,#A78BFA 100%);box-shadow:0 6px 18px -4px rgba(129,140,248,.7)}
.n-org-img{border-bottom-color:rgba(255,255,255,.08);padding:10px 0}
.n-org-img img{border-radius:12px;background:#fff}
.n-nav-g{color:#A5A8E0;opacity:.85}
.n-nav button{color:#C9CCF2}
.n-nav button:hover{background:rgba(255,255,255,.07);color:#fff}
.n-nav button.on{background:linear-gradient(90deg,#5558E8 0%,#7C3AED 100%);color:#fff;box-shadow:0 8px 18px -8px rgba(124,58,237,.9)}
.n-nav button.on::before{display:none}
.n-nav button.on i{color:#fff}
.n-nav button em{color:#E0E7FF;background:rgba(255,255,255,.10);padding:1px 7px;border-radius:99px}
.n-nav button.on em{color:#fff;background:rgba(255,255,255,.22)}
.n-nav{scrollbar-color:rgba(255,255,255,.18) transparent}
.n-me{border-top-color:rgba(255,255,255,.08)}
.n-me b{color:#fff}
.n-me span{color:#A5A8E0}
.n-me .n-av{background:linear-gradient(135deg,#6366F1,#7C3AED);color:#fff}
.n-me button{background:transparent;border-color:rgba(255,255,255,.16);color:#C9CCF2}
.n-me button:hover{background:rgba(248,113,113,.14);border-color:rgba(248,113,113,.45);color:#FCA5A5}
.n-sb :focus-visible{outline-color:#A5B4FC}
/* 본문 바탕 + 상단바 */
.n-shell{background:radial-gradient(1200px 380px at 70% -120px,rgba(99,102,241,.08),transparent 70%),#F4F5FA}
.n-top{background:rgba(255,255,255,.78);-webkit-backdrop-filter:saturate(1.6) blur(10px);backdrop-filter:saturate(1.6) blur(10px);border-bottom-color:rgba(17,24,39,.06)}
.n-crumb b{font-size:14.5px}
.n-search{border-radius:99px;background:#F4F5FA;border-color:transparent;box-shadow:inset 0 0 0 1px #E4E6EF}
.n-search:hover{background:#fff;box-shadow:inset 0 0 0 1px #A5B4FC,0 0 0 3px var(--n-brand-50)}
.n-search i{color:var(--n-brand)}
.n-search kbd{border-radius:99px;padding:1px 8px}
/* 페이지 제목 왼쪽에 브랜드 색 점 */
.n-ph .n-h1::before,.n-ttl .n-h1::before{content:'';display:inline-block;width:6px;height:22px;border-radius:3px;margin-right:10px;vertical-align:-3px;background:linear-gradient(180deg,#6366F1,#A78BFA)}
.n-page .n-card,.n-page .n-tw{box-shadow:0 1px 2px rgba(16,24,40,.04),0 4px 14px -6px rgba(16,24,40,.08)}
/* 표: 머리줄 옅은 색, 줄 올리면 왼쪽 색 막대 */
.n-t th{background:#EEF0F9;color:#4B5563}
.n-t tbody tr:hover>td{background:#F7F7FF}
.n-t tbody tr:hover>td:first-child,.tbl-tr:hover>td:first-child{box-shadow:inset 3px 0 0 var(--n-brand)}
#_main th[style*="background:#F8FAFC"]{background:#EEF0F9!important;color:#4B5563!important}
/* 주요 버튼: 채운 그라데이션 + 그림자 */
.n-btn{border-radius:10px;transition:border-color .12s,color .12s,background .12s,box-shadow .15s,transform .15s}
.n-btn.p{background:linear-gradient(135deg,#5558E8 0%,#4F46E5 55%,#6D28D9 100%);border-color:transparent;box-shadow:0 6px 16px -6px rgba(79,70,229,.65)}
.n-btn.p:hover{background:linear-gradient(135deg,#5B5EF0 0%,#4338CA 55%,#5B21B6 100%);transform:translateY(-1px);box-shadow:0 10px 20px -8px rgba(79,70,229,.75)}
/* 고른 필터·탭은 채운 색 */
.n-chip.on{background:var(--n-brand);border-color:var(--n-brand);color:#fff;box-shadow:0 4px 10px -4px rgba(79,70,229,.6)}
.n-chip.on em{color:#E0E7FF}
.n-tabs button.on{border-bottom-width:3px}
.n-tabs button.on em{background:var(--n-brand);color:#fff}
@media (prefers-reduced-motion:reduce){.n-btn.p:hover{transform:none}}
#_main{background:transparent!important}

/* 지원 권할 사람: 이유별 버튼, 8명 넘으면 접어 두기, 이름 찾기 */
.rec-bar{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 8px}
#_recList:not(.open):not(.q) .rec-more{display:none}
#_recList .rec-hide{display:none}
#_recList.q ~ .rec-tg{display:none}
/* 사람 정보 미리 보기 창 */
.pk-top{display:flex;gap:12px;align-items:center}
.pk-top .n-av{width:48px;height:48px;font-size:19px;flex-shrink:0}
.pk-nm{font-size:17px;font-weight:800;color:var(--n-ink)}
.pk-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}
.pk-tags:empty{display:none}
.pk-why{display:flex;gap:8px;align-items:flex-start;margin-top:14px;padding:10px 12px;border-radius:10px;background:var(--n-brand-50);color:var(--n-ink2);font-size:12.5px;line-height:1.5}
.pk-why i{color:var(--n-brand);font-size:16px;margin-top:1px}
.pk-h{display:flex;align-items:center;gap:6px;margin:18px 0 8px;font-size:13.5px;font-weight:800;color:var(--n-ink)}
.pk-h i{font-size:16px;color:var(--n-ink3)}
.pk-list{display:flex;flex-direction:column;border:1px solid var(--n-line);border-radius:10px;overflow:hidden}
.pk-ap{display:grid;grid-template-columns:62px minmax(0,1fr);gap:10px;padding:9px 12px;border-top:1px solid var(--n-line2)}
.pk-ap:first-child{border-top:0}
.pk-ap .dt{font-size:12px;color:var(--n-ink3);font-variant-numeric:tabular-nums;padding-top:1px}
.pk-ap b{display:block;font-size:13px;font-weight:700;color:var(--n-ink)}
.pk-ap em{font-style:normal;font-size:12.5px;font-weight:800;margin-left:4px}
.pk-ap span{display:block;font-size:12px;color:var(--n-ink3);margin-top:2px}
.pk-foot{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px;padding-top:14px;border-top:1px solid var(--n-line2)}
.n-modal .pk-h+.n-memo{margin:0}
#_endList:not(.open) .end-more{display:none}
/* 공고 등록 도우미: 날짜·중복 확인, 공고문 붙여넣기 */
.jf-warn{background:var(--n-warn-50);border:1px solid #FDE68A;border-radius:10px;padding:10px 12px;margin:2px 0 10px;font-size:12.5px;line-height:1.6;color:#92400E}
.jf-warn b{display:flex;align-items:center;gap:6px;font-size:13px;margin-bottom:2px}
.jf-warn .n-link{font-size:12px}
.n-fin.jf-bad,.jf-work input.jf-bad{border-color:#F59E0B!important;background:#FFFBEB}
.jf-work>div:has(.jf-bad){border-color:#F59E0B}
.jf-paste-bar{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.jf-paste-bar span{font-size:12px;color:var(--n-ink3)}
.jf-paste{background:var(--n-brand-50);border:1px solid var(--n-brand-100);border-radius:10px;padding:10px;margin-bottom:12px}
.jf-paste textarea{width:100%;padding:8px 10px;border:1px solid var(--n-line);border-radius:8px;font-size:12.5px;resize:vertical;font-family:inherit;box-sizing:border-box;background:#fff}
#jf_paste_out div{font-size:12px;margin-top:6px;line-height:1.55}
#jf_paste_out .ok{color:var(--n-ok)}
#jf_paste_out .no{color:var(--n-ink3)}
#jf_paste_out .no.warn{color:var(--n-warn);font-weight:600}
.n-fin.jf-filled,input.jf-filled:not(.jf-work input),select.jf-filled,.jf-work>div:has(.jf-filled){border-color:#34D399!important;box-shadow:0 0 0 3px rgba(52,211,153,.18)}
/* 순서가 틀린 날짜는 초록(자동 채움)보다 주황이 먼저 보이게 */
.n-fin.jf-bad.jf-filled,input.jf-bad.jf-filled:not(.jf-work input),.jf-work>div:has(.jf-bad){border-color:#F59E0B!important;box-shadow:0 0 0 3px rgba(245,158,11,.18)}
/* 공고 파일 끌어다 놓기 */
#_modal .n-modal{position:relative}
.jf-drop-ov{display:none;position:absolute;inset:0;z-index:20;background:rgba(255,255,255,.88);border:3px dashed var(--n-brand);border-radius:16px;align-items:center;justify-content:center;pointer-events:none}
.jf-dragging .jf-drop-ov{display:flex}
.jf-drop-ov>div{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--n-brand-d);text-align:center}
.jf-drop-ov i{font-size:44px}
.jf-drop-ov b{font-size:16px}
.jf-drop-ov span{font-size:12.5px;color:var(--n-ink3)}
.jf-spin{display:inline-block;animation:jfspin 1s linear infinite}
@keyframes jfspin{to{transform:rotate(360deg)}}
.jf-paste .jf-see{background:none;border:none;color:var(--n-brand);font:inherit;font-size:12px;font-weight:700;cursor:pointer;padding:0 0 0 6px}
