/* 철거인력협력네트웍 전용 스타일 (.nw- 프리픽스로 사이트 전역과 격리) */
/* 상단 absolute 헤더(약 76~84px)에 타이틀이 가리지 않도록 top 오프셋 확보 */
.nw-wrap{max-width:760px;margin:0 auto;padding:100px 16px calc(96px + env(safe-area-inset-bottom));color:#111827;-webkit-text-size-adjust:100%;overflow-x:hidden}
.nw-wrap *{-webkit-tap-highlight-color:transparent}
.nw-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 16px}
.nw-head h1{font-size:22px;font-weight:900;margin:0;letter-spacing:-.6px;color:#0f2f5f}
.nw-tabs{display:flex;background:#fff;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;margin-bottom:16px}
.nw-tab{flex:1;text-align:center;padding:12px 0;font-size:14px;font-weight:800;color:#64748b;text-decoration:none}
.nw-tab.active{color:#0757c7;border-bottom:3px solid #0757c7;background:#f5f9ff}
/* 탭이 많을 때(관리자) — 가로 스크롤 탭바(잘림 방지) */
.nw-tabs.scroll{overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.nw-tabs.scroll::-webkit-scrollbar{display:none}
.nw-tabs.scroll .nw-tab{flex:0 0 auto;padding:12px 18px;white-space:nowrap}
.nw-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.nw-filters.is-hidden{display:none}
.nw-filters input,.nw-filters select{flex:1;min-width:120px;border:1px solid #cbd5e1;border-radius:9px;padding:11px 12px;font-size:16px}
.js-network-list{position:relative}
.js-network-list.is-loading{opacity:.55;pointer-events:none}
.nw-card{background:#fff;border:1px solid #d7e2ef;border-radius:16px;padding:16px;margin-bottom:14px;box-shadow:0 6px 18px rgba(15,47,95,.06)}
.nw-card.muted{opacity:.85}
.nw-badge,.nw-status{display:inline-block;font-size:12px;font-weight:900;padding:4px 9px;border-radius:7px;margin-bottom:10px}
.nw-badge{background:#0757c7;color:#fff}
.nw-status.review{background:#fff7ed;color:#c2410c}
.nw-status.ok{background:#dcfce7;color:#15803d}
.nw-status.end{background:#e5e7eb;color:#475569}
.nw-status.hold{background:#fef2f2;color:#dc2626}
.nw-status.auto{background:#e0f2fe;color:#0369a1}
.nw-title{font-size:19px;font-weight:900;margin:0 0 10px;letter-spacing:-.4px}
.nw-line{font-size:14px;color:#334155;margin:6px 0;line-height:1.45}
.nw-divider{height:1px;background:#eef2f7;margin:12px 0}
.nw-row{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid #eef2f7;font-size:14px}
.nw-row:last-child{border-bottom:0}
.nw-row span{color:#475569;font-weight:700}
.nw-row strong{color:#0757c7;text-align:right}
.nw-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.nw-chip{font-size:12px;background:#eef4ff;color:#0f3f84;padding:6px 9px;border-radius:999px;font-weight:800}
.nw-subhead{font-size:14px;font-weight:900;margin:12px 0 6px;color:#0f2f5f}
.nw-btn{border:0;border-radius:11px;padding:13px 14px;min-height:46px;font-size:15px;font-weight:900;cursor:pointer;text-align:center;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;line-height:1.2}
.nw-btn.primary{background:#0757c7;color:#fff}
.nw-btn.light{background:#fff;border:1px solid #cbd5e1;color:#0f2f5f}
.nw-btn.danger{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}
.nw-btn.full{width:100%;margin-top:10px}
.nw-btn:disabled{opacity:.5;cursor:not-allowed}
.nw-btns{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.nw-field{margin-bottom:14px}
.nw-field label{display:block;font-size:13px;font-weight:900;margin-bottom:6px;color:#0f2f5f}
.nw-field input,.nw-field textarea,.nw-field select{width:100%;border:1px solid #cbd5e1;border-radius:9px;padding:12px;font-size:16px;background:#fff}
.nw-field textarea{height:80px;resize:vertical}
.nw-field input.nw-default-text,.nw-field textarea.nw-default-text{color:#9aa3af}
.nw-field input.nw-invalid,.nw-field select.nw-invalid,.nw-field textarea.nw-invalid{border-color:#dc2626;background:#fef2f2;box-shadow:0 0 0 2px rgba(220,38,38,.15)}
.nw-date{display:grid;grid-template-columns:minmax(0,1fr) 16px minmax(0,1fr);gap:8px;align-items:center}
.nw-date input{min-width:0;max-width:100%}
.nw-date span{text-align:center;font-weight:900;color:#64748b}
.nw-time{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}
.nw-time-grp{display:flex;gap:6px;flex:1;min-width:0}
.nw-time-grp select{flex:1;min-width:0;min-height:44px;padding:8px 10px;border:1px solid #cbd5e1;border-radius:10px;font-size:15px;color:#0f2f5f;background:#fff}
.nw-time-sep{flex:0 0 auto;text-align:center;font-weight:900;color:#64748b}
.nw-labor-head,.nw-labor-row{display:grid;grid-template-columns:1.5fr .7fr .9fr 34px;gap:8px;align-items:center}
.nw-labor-head{font-size:12px;color:#64748b;font-weight:900;margin-bottom:6px}
.nw-labor-row{margin-bottom:8px}
.nw-labor-row input{padding:10px 8px;font-size:16px;min-width:0}
.nw-remove{height:38px;padding:0;background:#fef2f2;color:#dc2626;border:1px solid #fecaca;border-radius:9px;font-weight:900;cursor:pointer}
.nw-add{width:100%;background:#eef4ff;color:#0757c7;border:1px solid #bcd4ff;border-radius:9px;padding:10px;font-weight:800;cursor:pointer;margin-top:4px}
.nw-notice{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:12px;padding:12px;font-size:13px;font-weight:700;line-height:1.55;margin:10px 0}
.nw-empty{text-align:center;color:#94a3b8;font-weight:700;padding:48px 0}
.nw-counter{display:inline-grid;grid-template-columns:32px 44px 32px;border:1px solid #cbd5e1;border-radius:9px;overflow:hidden;height:38px}
.nw-counter button{padding:0;border:0;background:#f8fafc;color:#0f2f5f;font-weight:900;cursor:pointer}
.nw-counter span{display:flex;align-items:center;justify-content:center;font-weight:900}
.nw-counter-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:14px;font-weight:700}
.nw-pager{display:grid;grid-template-columns:minmax(72px,.75fr) auto minmax(128px,1.25fr);align-items:center;gap:8px;margin-top:16px}
.nw-pager a,.nw-pager span{min-height:42px;padding:9px 12px;border:1px solid #cbd5e1;border-radius:10px;font-weight:900;font-size:13px;text-decoration:none;color:#0f2f5f;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.2}
.nw-pager .nw-page-cur{background:#0757c7;color:#fff;border-color:#0757c7;white-space:nowrap}
.nw-pager .disabled{background:#f8fafc;color:#cbd5e1}
.nw-more{margin-top:14px}
.nw-more .js-network-more.is-loading{opacity:.6;pointer-events:none}
.nw-more .js-network-more.is-loading::after{content:'…'}
.nw-inner{background:#f8fafc;border:1px solid #d7e2ef;border-radius:12px;padding:12px;margin:10px 0}
/* 접속자 역할 배지 */
.nw-id{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:800;padding:6px 12px;border-radius:999px;margin:-2px 0 14px;border:1px solid transparent}
.nw-id.admin{background:#dcfce7;color:#15803d;border-color:#86efac}
.nw-id.company{background:#eff6ff;color:#1e40af;border-color:#bfdbfe}
.nw-id.wait{background:#fff7ed;color:#9a3412;border-color:#fed7aa}
.nw-id.info{background:#f1f5f9;color:#475569;border-color:#e2e8f0}
.nw-id.done{background:#dcfce7;color:#15803d;border-color:#86efac}
/* 단계 안내 배너(내 할 일/대기/완료) */
.nw-step{border-radius:12px;padding:12px 14px;margin:0 0 12px;display:flex;gap:10px;align-items:flex-start;border:1px solid}
.nw-step .ic{font-size:16px;line-height:1.4;flex:0 0 auto}
.nw-step .t{display:block;font-size:14px;font-weight:900}
.nw-step .d{display:block;font-size:13px;font-weight:700;margin-top:3px;opacity:.95}
.nw-step.action{background:#eff6ff;border-color:#bfdbfe;color:#1e40af}
.nw-step.wait{background:#fff7ed;border-color:#fed7aa;color:#9a3412}
.nw-step.done{background:#dcfce7;border-color:#86efac;color:#15803d}
.nw-step.info{background:#f1f5f9;border-color:#e2e8f0;color:#475569}
.nw-step.compact{padding:9px 11px;margin:8px 0 0}
.nw-step.compact .t{font-size:13px}.nw-step.compact .d{font-size:12px}
/* 진행 스텝퍼 */
.nw-prog{display:flex;align-items:flex-start;gap:0;margin:0 0 14px;padding:12px 8px;background:#fff;border:1px solid #d7e2ef;border-radius:12px;overflow-x:auto}
.nw-prog-step{display:flex;flex-direction:column;align-items:center;gap:5px;flex:0 0 auto;min-width:52px}
.nw-prog-step .dot{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:900;border:2px solid #cbd5e1;background:#fff;color:#94a3b8}
.nw-prog-step .lb{font-size:12px;font-weight:800;color:#94a3b8}
.nw-prog-step.done .dot{background:#15803d;border-color:#15803d;color:#fff}
.nw-prog-step.done .lb{color:#15803d}
.nw-prog-step.current .dot{background:#0757c7;border-color:#0757c7;color:#fff;box-shadow:0 0 0 4px rgba(7,87,199,.15)}
.nw-prog-step.current .lb{color:#0757c7}
.nw-prog-bar{flex:1 1 auto;height:2px;background:#e2e8f0;margin-top:13px;min-width:14px}
.nw-prog-bar.fill{background:#15803d}
/* 입력 보조 프리셋 칩 */
.nw-picks{display:flex;gap:6px;flex-wrap:wrap;margin:2px 0 6px}
.nw-pick{font-size:12.5px;font-weight:800;background:#eef4ff;color:#0f3f84;border:1px solid #bcd4ff;padding:8px 12px;border-radius:999px;cursor:pointer;user-select:none;line-height:1}
.nw-pick:active{transform:scale(.96)}
.nw-pick.wt{background:#fff;border-style:dashed;border-color:#94b8e6}
.nw-picks-label{font-size:12px;font-weight:800;color:#64748b;margin:6px 0 4px}
.nw-addr-row{display:flex;gap:8px}
.nw-addr-row input{flex:1}
.nw-addr-row .nw-btn{white-space:nowrap;padding-left:16px;padding-right:16px}
/* 주소검색 인페이지 레이어(다음 우편번호 embed) */
.nw-postlayer{position:fixed;inset:0;z-index:4000;background:rgba(15,23,42,.5);display:none}
.nw-postlayer.open{display:flex;align-items:flex-end;justify-content:center}
.nw-postbox{background:#fff;width:100%;max-width:560px;height:86vh;border-radius:16px 16px 0 0;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 -8px 30px rgba(15,47,95,.2);animation:nwUp .22s ease}
.nw-posthead{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #e5e7eb;font-weight:900;color:#0f2f5f;flex:0 0 auto}
.nw-posthead button{background:none;border:0;font-size:24px;cursor:pointer;color:#475569;line-height:1;padding:0 4px}
.nw-postbody{flex:1 1 auto;overflow:hidden;min-height:0}
.nw-postbody>div,.nw-postbody iframe{width:100%!important;height:100%!important}
@media(min-width:561px){.nw-postlayer.open{align-items:center}.nw-postbox{border-radius:16px;height:560px}}
/* 플로우차트 */
.nw-flow{margin:6px 0}
.nw-fnode{position:relative;border:1px solid #d7e2ef;border-left:5px solid #94a3b8;border-radius:12px;padding:11px 13px;background:#fff;max-width:560px;margin:0 auto;box-shadow:0 3px 10px rgba(15,47,95,.05)}
.nw-fnode b{display:block;font-size:14px;color:#0f2f5f;letter-spacing:-.2px}
.nw-fnode small{display:block;color:#475569;font-weight:700;margin-top:3px;line-height:1.45}
.nw-frole{display:inline-block;font-size:11px;font-weight:900;padding:2px 8px;border-radius:6px;margin-bottom:5px;color:#fff}
.nw-fnode.user{border-left-color:#64748b}.nw-frole.user{background:#64748b}
.nw-fnode.pending{border-left-color:#c2410c;background:#fff7ed}.nw-frole.pending{background:#c2410c}
.nw-fnode.company{border-left-color:#0757c7}.nw-frole.company{background:#0757c7}
.nw-fnode.admin{border-left-color:#15803d}.nw-frole.admin{background:#15803d}
.nw-fnode.both{border-left-color:#7c3aed}.nw-frole.both{background:#7c3aed}
.nw-fnode.worker{border-left-color:#0891b2}.nw-frole.worker{background:#0891b2}
.nw-farrow{height:24px;display:flex;align-items:center;justify-content:center;color:#94a3b8;font-size:18px;font-weight:900}
.nw-farrow::after{content:"▼"}
.nw-fbranch{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:6px}
.nw-fcol-title{text-align:center;font-weight:900;font-size:13px;color:#0f2f5f;background:#eef4ff;border-radius:8px;padding:6px;margin-bottom:6px}
.nw-flegend{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 12px}
.nw-flegend span{font-size:12px;font-weight:800;padding:4px 9px;border-radius:999px;color:#fff}
.nw-fcheck{display:block;margin-top:6px;font-size:12px;font-weight:800;line-height:1.5;padding-top:6px;border-top:1px dashed #e5e7eb}
.nw-fcheck.auto{color:#15803d}.nw-fcheck.warn{color:#c2410c}.nw-fcheck.plan{color:#7c3aed}
.nw-fmark{display:inline-flex;gap:5px;flex-wrap:wrap;margin:2px 0 12px;font-size:12px;font-weight:800}
.nw-fmark b{padding:3px 8px;border-radius:6px}
.nw-fmark .ma{background:#dcfce7;color:#15803d}.nw-fmark .mw{background:#fff7ed;color:#c2410c}.nw-fmark .mp{background:#f3e8ff;color:#7c3aed}
@media(max-width:560px){.nw-fbranch{grid-template-columns:1fr}}
.nw-ta{width:100%;border:1px solid #cbd5e1;border-radius:9px;padding:12px;font-size:16px;min-height:96px;resize:vertical;margin-bottom:10px;background:#fff}
/* 지원 인력 지정 — 작업구분별 그룹 + 작업자 카드 */
.nw-wk-line{border:1px solid #d7e2ef;border-radius:12px;margin-bottom:14px;overflow:hidden;background:#fff}
.nw-wk-head{background:#0757c7;color:#fff;padding:10px 13px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px}
.nw-wk-head .wt{font-weight:900;font-size:14px}
.nw-wk-head .meta{font-size:12px;font-weight:700;background:rgba(255,255,255,.2);padding:3px 9px;border-radius:999px}
.nw-wk-body{padding:10px;display:flex;flex-direction:column;gap:8px}
.nw-wk-row{display:block;border:1.5px solid #e5e7eb;border-radius:10px;padding:11px 12px;cursor:pointer;transition:border-color .12s,background .12s}
.nw-wk-row:has(.ap-wk:checked){border-color:#0757c7;background:#eff6ff}
.nw-wk-row.overlap{border-color:#fed7aa;background:#fff7ed}
.nw-wk-row.overlap:has(.ap-wk:checked){border-color:#ea580c;background:#ffedd5}
.nw-wk-row .top{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.nw-wk-row .nm{font-weight:800;font-size:14px;color:#0f2f5f}
.nw-wk-row .tags{font-size:12px;font-weight:700;color:#64748b}
.nw-wk-fit{font-size:11px;font-weight:900;background:#dcfce7;color:#15803d;padding:2px 8px;border-radius:6px}
.nw-wk-assign{font-size:12px;font-weight:700;margin-top:6px;padding-left:30px}
.nw-wk-empty{padding:14px;text-align:center;color:#94a3b8;font-weight:700;font-size:13px}
/* 커스텀 다이얼로그(alert/confirm/prompt 대체) */
.nw-dlg-bd{position:fixed;inset:0;background:rgba(15,23,42,.5);z-index:4000;display:flex;align-items:center;justify-content:center;padding:16px}
.nw-dlg{background:#fff;border-radius:16px;width:min(400px,100%);box-shadow:0 24px 60px rgba(0,0,0,.3);padding:20px;animation:nwDlgIn .15s ease}
@keyframes nwDlgIn{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
.nw-dlg-title{font-size:16px;font-weight:900;color:#0f2f5f;margin-bottom:8px}
.nw-dlg-msg{font-size:15px;color:#1f2937;font-weight:600;line-height:1.55;word-break:break-word}
.nw-dlg-input{width:100%;margin-top:12px;border:1px solid #cbd5e1;border-radius:10px;padding:11px 12px;font-size:16px;box-sizing:border-box}
.nw-dlg-btns{display:flex;gap:8px;margin-top:18px}
.nw-dlg-btns .nw-btn{flex:1;margin:0}
/* 인력 일정 캘린더 */
.nw-cal-nav{display:flex;align-items:center;justify-content:space-between;gap:8px}
.nw-cal-range{text-align:center;line-height:1.25}
.nw-cal-range strong{display:block;font-size:16px;color:#0f2f5f}
.nw-cal-range span{font-size:12px;color:#94a3b8;font-weight:700}
.nw-cal-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid #e5e7eb;border-radius:12px;background:#fff}
.nw-cal-grid{display:grid;grid-template-columns:96px repeat(7,minmax(46px,1fr));min-width:540px}
.nw-cal-corner{padding:8px;font-size:12px;font-weight:800;color:#64748b;background:#f1f5f9;border-bottom:2px solid #e2e8f0;display:flex;align-items:center}
.nw-cal-dh{padding:7px 2px;text-align:center;background:#f1f5f9;border-bottom:2px solid #e2e8f0;border-left:1px solid #eef2f7}
.nw-cal-dh .dn{display:block;font-size:12px;font-weight:800;color:#334155}
.nw-cal-dh .dd{display:block;font-size:11px;color:#94a3b8;font-weight:700}
.nw-cal-dh.wknd{background:#fef2f2}.nw-cal-dh.wknd .dn{color:#dc2626}
.nw-cal-dh.today{background:#dbeafe}.nw-cal-dh.today .dn{color:#1d4ed8}
.nw-cal-name{padding:8px;border-bottom:1px solid #eef2f7;background:#fafcff;display:flex;flex-direction:column;justify-content:center;position:sticky;left:0;z-index:1}
.nw-cal-name strong{font-size:13px;color:#0f2f5f;line-height:1.2}
.nw-cal-name span{font-size:10px;color:#94a3b8;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nw-cal-cell{min-height:40px;border-bottom:1px solid #eef2f7;border-left:1px solid #eef2f7;padding:3px;display:flex;flex-direction:column;gap:2px;position:relative}
.nw-cal-cell.wknd{background:#fef7f7}.nw-cal-cell.today{background:#eff6ff}
.nw-cal-job{display:block;border-radius:5px;font-size:10px;font-weight:800;color:#fff;padding:3px 4px;line-height:1.25;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;letter-spacing:.2px}
.nw-cal-job.dup{outline:1.5px solid #dc2626;outline-offset:-1px}
.nw-cal-warn{position:absolute;top:1px;right:2px;font-size:10px}
/* 입력 도움말(필드 설명) */
.nw-help{font-size:12.5px;color:#475569;font-weight:600;line-height:1.5;margin:0 2px 8px;background:#f8fafc;border-left:3px solid #bcd4ff;border-radius:0 6px 6px 0;padding:7px 10px}
/* 참여 가능/충돌 배지 (목록 카드) */
.nw-avail{border-radius:9px;padding:9px 11px;font-size:13px;font-weight:700;line-height:1.45;margin:8px 0}
.nw-avail.ok{background:#ecfdf5;border:1px solid #a7f3d0;color:#047857}
.nw-avail.warn{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412}
/* 월간 달력 */
.nw-mcal{display:grid;grid-template-columns:repeat(7,1fr);gap:0;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;background:#fff}
.nw-mcal-dh{padding:7px 2px;text-align:center;font-size:12px;font-weight:800;color:#334155;background:#f1f5f9;border-bottom:2px solid #e2e8f0}
.nw-mcal-dh.wknd{color:#dc2626}
.nw-mcal-cell{min-height:74px;border-top:1px solid #eef2f7;border-left:1px solid #eef2f7;padding:4px;display:flex;flex-direction:column;gap:2px}
.nw-mcal-cell:nth-child(7n+1){border-left:0}
.nw-mcal-cell.empty{background:#fafbfc}
.nw-mcal-cell.wknd{background:#fef7f7}
.nw-mcal-cell.today{background:#eff6ff;box-shadow:inset 0 0 0 2px #93c5fd}
.nw-mcal-cell .dnum{font-size:12px;font-weight:800;color:#64748b;line-height:1.1}
.nw-mcal-cell.today .dnum{color:#1d4ed8}
.nw-mcal-bar{display:block;border-radius:4px;font-size:9.5px;font-weight:800;color:#fff;padding:2px 4px;line-height:1.25;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;letter-spacing:.2px}
.nw-mcal-more{font-size:9.5px;font-weight:800;color:#94a3b8;padding-left:2px}
@media (max-width:480px){.nw-mcal-cell{min-height:62px}.nw-mcal-bar{font-size:9px;padding:1px 3px}}
/* 목록 상단 주간 미니 일정 */
.nw-mini{display:block;background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:11px 13px;margin-bottom:14px;text-decoration:none}
.nw-mini-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.nw-mini-top b{font-size:14px;color:#0f2f5f}
.nw-mini-top .go{font-size:12px;font-weight:800;color:#0757c7}
.nw-mini-row{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.nw-mini-d{text-align:center;border-radius:8px;padding:6px 0;background:#f8fafc;border:1px solid #eef2f7}
.nw-mini-d .dn{font-size:11px;font-weight:800;color:#94a3b8;display:block}
.nw-mini-d .cnt{font-size:14px;font-weight:900;color:#cbd5e1;display:block;line-height:1.3}
.nw-mini-d.has{background:#eff6ff;border-color:#bcd4ff}.nw-mini-d.has .cnt{color:#0757c7}
.nw-mini-d.wknd .dn{color:#dc2626}
.nw-mini-d.today{outline:2px solid #0757c7;outline-offset:-2px}
/* 공용 모달 (모바일 바텀시트 스타일) */
.nw-modal{position:fixed;inset:0;background:rgba(15,23,42,.5);z-index:3000;display:none;align-items:flex-end;justify-content:center}
.nw-modal-box{background:#fff;width:100%;max-width:480px;border-radius:18px 18px 0 0;padding:18px 18px calc(18px + env(safe-area-inset-bottom));max-height:88vh;overflow-y:auto;box-shadow:0 -8px 30px rgba(15,47,95,.18);animation:nwUp .22s ease}
@keyframes nwUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
/* 상세 하단 고정 액션바(참여하기 등) */
.nw-sticky{position:sticky;bottom:0;background:rgba(248,250,252,.96);backdrop-filter:blur(6px);padding:10px 0 calc(8px + env(safe-area-inset-bottom));margin-top:8px;border-top:1px solid #e5e7eb;z-index:5}
@media(min-width:481px){.nw-modal{align-items:center}.nw-modal-box{border-radius:18px}}
@media(max-width:480px){
  .nw-wrap{padding-left:12px;padding-right:12px;padding-top:84px}
  .nw-head h1{font-size:19px}
  .nw-tab{font-size:13px;padding:11px 0}
  .nw-labor-head,.nw-labor-row{grid-template-columns:1.4fr .6fr .8fr 30px;gap:6px}
  .nw-labor-row input{padding:9px 6px}
  .nw-btns{gap:6px}
}
