/* ============================================================
 * Wanted 디자인 시스템 — 전자결재/관리자 100% 이식 (devplan6)
 * 토큰 + 컴포넌트 + 기존 마크업 매핑. html/body 리셋은 .admin-shell 스코프.
 * 출처: Claude Design 번들(전자결재.html) Wanted Sans Design System.
 * ============================================================ */
:root{
  --blue-50:#f0f6ff;--blue-100:#d6e6ff;--blue-200:#a3c8ff;--blue-300:#6fa9ff;--blue-400:#3b89ff;
  --blue-500:#0066ff;--blue-600:#0052cc;--blue-700:#003e99;--blue-800:#002966;--blue-900:#001533;
  --cool-neutral-99:#fafafa;--cool-neutral-98:#f7f7f8;--cool-neutral-96:#f1f1f5;--cool-neutral-94:#ebebef;
  --cool-neutral-90:#dcdce0;--cool-neutral-80:#babcc0;--cool-neutral-70:#989a9f;--cool-neutral-60:#76787d;
  --cool-neutral-50:#5b5d62;--cool-neutral-40:#46474c;--cool-neutral-30:#2f3033;--cool-neutral-20:#1f2024;
  --cool-neutral-10:#131418;--cool-neutral-05:#0a0b0e;
  --green-500:#00bf40;--green-600:#009a36;--green-50:#e6f9ec;
  --yellow-500:#ffc342;--yellow-600:#f59e0b;--yellow-50:#fff8e6;
  --red-500:#ff4242;--red-600:#e51c1c;--red-50:#ffeded;
  --violet-500:#6b4dff;--violet-50:#efebff;
  --static-white:#fff;--static-black:#000;
  --alpha-neutral-08:rgba(112,115,124,.08);--alpha-neutral-16:rgba(112,115,124,.16);
  --alpha-neutral-22:rgba(112,115,124,.22);--alpha-neutral-61:rgba(112,115,124,.61);
  --alpha-primary-08:rgba(0,102,255,.08);--alpha-primary-16:rgba(0,102,255,.16);
  --alpha-white-90:rgba(255,255,255,.90);--alpha-white-72:rgba(255,255,255,.72);--alpha-white-40:rgba(255,255,255,.40);
  --alpha-black-72:rgba(0,0,0,.72);--alpha-black-40:rgba(0,0,0,.40);

  --surface-background:#fff;--surface-background-alt:var(--cool-neutral-98);--surface-elevated:#fff;
  --surface-overlay:rgba(0,0,0,.56);--surface-inverse:var(--cool-neutral-10);
  --fg-primary:var(--cool-neutral-10);--fg-secondary:var(--cool-neutral-40);--fg-tertiary:var(--cool-neutral-60);
  --fg-disabled:var(--cool-neutral-80);--fg-on-primary:#fff;--fg-link:var(--blue-500);
  --brand-primary:var(--blue-500);--brand-primary-hover:var(--blue-600);--brand-primary-press:var(--blue-700);--brand-primary-soft:var(--blue-50);
  --status-success:var(--green-500);--status-success-soft:var(--green-50);--status-warn:var(--yellow-500);--status-warn-soft:var(--yellow-50);
  --status-danger:var(--red-500);--status-danger-soft:var(--red-50);--status-info:var(--blue-500);--status-info-soft:var(--blue-50);
  --border-subtle:var(--cool-neutral-94);--border-default:var(--cool-neutral-90);--border-strong:var(--cool-neutral-80);--border-focus:var(--blue-500);
  --interaction-assistive:var(--alpha-neutral-08);--interaction-hover:var(--alpha-neutral-08);--interaction-press:var(--alpha-neutral-16);

  --font-sans:"Wanted Sans Variable","Pretendard",-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Helvetica Neue","Noto Sans KR",Arial,sans-serif;
  --font-mono:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace;
  --weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-extrabold:800;--weight-black:900;
  --t-title-1-size:36px;--t-title-1-lh:1.4;--t-title-2-size:28px;--t-title-2-lh:1.4;--t-title-3-size:22px;--t-title-3-lh:1.5;
  --t-heading-1-size:20px;--t-heading-1-lh:1.5;--t-heading-2-size:18px;--t-heading-2-lh:1.5;
  --t-body-1-size:16px;--t-body-1-lh:1.5;--t-body-2-size:15px;--t-body-2-lh:1.5;--t-body-3-size:14px;--t-body-3-lh:1.5;
  --t-caption-1-size:13px;--t-caption-1-lh:1.4;--t-caption-2-size:12px;--t-caption-2-lh:1.4;
  --tracking-tight:-0.012em;--tracking-normal:0;--tracking-loose:0.006em;
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;
  --radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:24px;--radius-pill:999px;
  --shadow-1:0 1px 2px rgba(20,25,30,.04),0 0 0 1px rgba(20,25,30,.04);
  --shadow-2:0 2px 6px rgba(20,25,30,.06),0 0 0 1px rgba(20,25,30,.04);
  --shadow-3:0 8px 24px rgba(20,25,30,.08),0 0 0 1px rgba(20,25,30,.04);
  --shadow-4:0 16px 48px rgba(20,25,30,.12),0 0 0 1px rgba(20,25,30,.04);
  --motion-fast:120ms cubic-bezier(.2,.8,.2,1);--motion-medium:200ms cubic-bezier(.2,.8,.2,1);--motion-slow:320ms cubic-bezier(.2,.8,.2,1);
  --density:1;
}

/* ===== .admin-shell 베이스(공개 사이트 보호) ===== */
.admin-shell{
  font-family:var(--font-sans);
  color:var(--fg-primary);
  background:var(--surface-background-alt);
  letter-spacing:var(--tracking-tight);
  word-break:keep-all;
  -webkit-font-smoothing:antialiased;
}
.admin-shell *,.admin-shell *::before,.admin-shell *::after{box-sizing:border-box;}
.admin-shell :focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:var(--radius-sm);}
.admin-shell button{font-family:inherit;cursor:pointer;}
.admin-shell .ico{width:18px;height:18px;flex-shrink:0;}

/* ============================================================
 * 디자인 컴포넌트 (전자결재.html 이식) — .admin-shell 범위
 * ============================================================ */
.admin-shell .micro-label{font-size:11px;font-weight:var(--weight-bold);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-tertiary);}
.admin-shell .muted{color:var(--fg-tertiary);}
.admin-shell .mono{font-family:var(--font-mono);font-size:12px;color:var(--fg-tertiary);}
.admin-shell .nowrap{white-space:nowrap;}

/* 버튼 */
.admin-shell .btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:var(--radius-lg);border:1px solid transparent;font-size:14px;font-weight:var(--weight-semibold);padding:9px 16px;transition:all var(--motion-fast);white-space:nowrap;line-height:1.2;text-decoration:none;}
.admin-shell .btn .ico{width:16px;height:16px;}
.admin-shell .btn-primary{background:var(--brand-primary);color:#fff;}
.admin-shell .btn-primary:hover{background:var(--brand-primary-hover);}
.admin-shell .btn-secondary{background:var(--surface-elevated);color:var(--fg-primary);border-color:var(--border-default);}
.admin-shell .btn-secondary:hover{background:var(--cool-neutral-98);border-color:var(--border-strong);}
.admin-shell .btn-ghost{background:transparent;color:var(--fg-secondary);}
.admin-shell .btn-ghost:hover{background:var(--interaction-hover);color:var(--fg-primary);}
.admin-shell .btn-danger{background:var(--status-danger);color:#fff;}
.admin-shell .btn-success{background:var(--status-success);color:#fff;}
.admin-shell .btn-sm{padding:6px 12px;font-size:13px;border-radius:var(--radius-md);}

/* 카드 */
.admin-shell .card{background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-1);}
.admin-shell .card-pad{padding:var(--space-6);}
.admin-shell .card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-subtle);}
.admin-shell .card-head-sub{font-size:12.5px;color:var(--fg-tertiary);font-variant-numeric:tabular-nums;}

/* 페이지 헤더 */
.admin-shell .page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6);}
.admin-shell .page-head .ph-title{font-size:22px;font-weight:var(--weight-bold);letter-spacing:-.02em;}
.admin-shell .page-head .ph-sub{font-size:13px;color:var(--fg-tertiary);margin-top:4px;}
.admin-shell .head-actions{display:flex;align-items:center;gap:var(--space-3);}

/* 통계 카드 */
.admin-shell .stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-bottom:var(--space-6);}
.admin-shell .stat{background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:var(--space-5) var(--space-6);box-shadow:var(--shadow-1);position:relative;overflow:hidden;}
.admin-shell .stat .stat-label{font-size:13px;color:var(--fg-secondary);font-weight:var(--weight-medium);display:flex;align-items:center;gap:8px;}
.admin-shell .stat .stat-num{font-size:34px;font-weight:var(--weight-bold);margin-top:var(--space-2);letter-spacing:-.02em;font-variant-numeric:tabular-nums;}
.admin-shell .stat .stat-foot{font-size:12px;color:var(--fg-tertiary);margin-top:2px;}
.admin-shell .stat .stat-ico{position:absolute;right:var(--space-5);top:var(--space-5);width:38px;height:38px;border-radius:var(--radius-md);display:grid;place-items:center;}
.admin-shell .stat.accent-blue .stat-ico{background:var(--brand-primary-soft);color:var(--brand-primary);}
.admin-shell .stat.accent-amber .stat-ico{background:var(--status-warn-soft);color:var(--yellow-600);}
.admin-shell .stat.accent-gray .stat-ico{background:var(--cool-neutral-96);color:var(--fg-secondary);}
.admin-shell .stat.accent-amber .stat-num{color:var(--yellow-600);}

/* pill / tag */
.admin-shell .pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:var(--weight-semibold);padding:3px 10px;border-radius:var(--radius-pill);line-height:1.4;white-space:nowrap;}
.admin-shell .pill .pdot{width:6px;height:6px;border-radius:50%;background:currentColor;}
.admin-shell .pill-progress{background:var(--brand-primary-soft);color:var(--brand-primary);}
.admin-shell .pill-approved{background:var(--status-success-soft);color:var(--green-600);}
.admin-shell .pill-returned{background:var(--status-danger-soft);color:var(--red-600);}
.admin-shell .pill-draft{background:var(--cool-neutral-96);color:var(--fg-secondary);}
.admin-shell .pill-waiting{background:var(--cool-neutral-96);color:var(--fg-tertiary);}
.admin-shell .tag{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:var(--weight-semibold);padding:2px 8px;border-radius:var(--radius-sm);white-space:nowrap;}
.admin-shell .tag-mine{background:var(--violet-50);color:var(--violet-500);}
.admin-shell .tag-sign{background:var(--brand-primary);color:#fff;}
.admin-shell .tag-auto{background:var(--cool-neutral-94);color:var(--fg-secondary);font-weight:var(--weight-medium);}
.admin-shell .ver-badge{font-size:11px;font-weight:var(--weight-bold);padding:2px 8px;border-radius:var(--radius-sm);white-space:nowrap;}
.admin-shell .ver-badge.cur{background:var(--brand-primary-soft);color:var(--brand-primary);}
.admin-shell .ver-badge.past{background:var(--cool-neutral-94);color:var(--fg-tertiary);}

/* 상태 탭 */
.admin-shell .tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--border-subtle);margin-bottom:var(--space-5);flex-wrap:wrap;}
.admin-shell .tab{border:none;background:none;padding:10px 14px 12px;font-size:14px;font-weight:var(--weight-medium);color:var(--fg-secondary);border-bottom:2px solid transparent;margin-bottom:-1px;display:inline-flex;align-items:center;gap:8px;transition:color var(--motion-fast);text-decoration:none;}
.admin-shell .tab:hover{color:var(--fg-primary);}
.admin-shell .tab.active{color:var(--brand-primary);border-bottom-color:var(--brand-primary);font-weight:var(--weight-semibold);}
.admin-shell .tab .tcount{font-size:11px;font-weight:var(--weight-semibold);background:var(--cool-neutral-96);color:var(--fg-secondary);padding:1px 7px;border-radius:var(--radius-pill);min-width:18px;text-align:center;}
.admin-shell .tab.active .tcount{background:var(--brand-primary-soft);color:var(--brand-primary);}

/* 기안 리스트 행 */
.admin-shell .doc-list{display:flex;flex-direction:column;gap:var(--space-3);}
.admin-shell .doc-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--space-4);background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);box-shadow:var(--shadow-1);transition:border-color var(--motion-fast),box-shadow var(--motion-fast);text-decoration:none;color:inherit;}
.admin-shell .doc-row:hover{border-color:var(--border-strong);box-shadow:var(--shadow-2);}
.admin-shell .doc-main{min-width:0;}
.admin-shell .doc-titleline{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;}
.admin-shell .doc-title{font-size:15px;font-weight:var(--weight-semibold);}
.admin-shell .doc-meta{display:flex;align-items:center;gap:10px;margin-top:5px;color:var(--fg-tertiary);font-size:12.5px;flex-wrap:wrap;}
.admin-shell .doc-meta .sep{width:3px;height:3px;border-radius:50%;background:var(--cool-neutral-80);}
.admin-shell .doc-meta .type-chip{color:var(--fg-secondary);font-weight:var(--weight-medium);}
.admin-shell .doc-actions{display:flex;align-items:center;gap:var(--space-3);}
.admin-shell .doc-status-col{display:flex;flex-direction:column;align-items:flex-end;gap:6px;}

/* 빈 상태 */
.admin-shell .empty{text-align:center;padding:var(--space-16) var(--space-6);color:var(--fg-tertiary);}

/* 폼 필드 */
.admin-shell .field{display:flex;flex-direction:column;gap:7px;margin-bottom:var(--space-5);}
.admin-shell .field-label{font-size:13px;font-weight:var(--weight-semibold);color:var(--fg-secondary);display:flex;align-items:center;gap:4px;}
.admin-shell .field-label .req{color:var(--status-danger);}
.admin-shell .field-hint{font-size:12px;color:var(--fg-tertiary);}
.admin-shell .input,.admin-shell .textarea,.admin-shell .select{width:100%;border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:10px 12px;font-size:14px;color:var(--fg-primary);background:var(--surface-elevated);transition:border-color var(--motion-fast),box-shadow var(--motion-fast);}
.admin-shell .input:focus,.admin-shell .textarea:focus,.admin-shell .select:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px var(--alpha-primary-08);}
.admin-shell .textarea{resize:vertical;min-height:96px;line-height:1.6;}
.admin-shell .row-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);}
.admin-shell .file-chip{display:inline-flex;align-items:center;gap:8px;font-size:13px;background:var(--cool-neutral-96);border-radius:var(--radius-md);padding:6px 10px;color:var(--fg-secondary);text-decoration:none;}

/* 기안 종류 선택 그리드 */
.admin-shell .type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);}
.admin-shell .type-card{text-align:left;border:1px solid var(--border-default);border-radius:var(--radius-xl);padding:var(--space-5);background:var(--surface-elevated);transition:all var(--motion-fast);display:flex;flex-direction:column;gap:var(--space-3);text-decoration:none;color:inherit;}
.admin-shell .type-card:hover{border-color:var(--brand-primary);box-shadow:var(--shadow-2);transform:translateY(-2px);}
.admin-shell .type-card .tc-ico{width:40px;height:40px;border-radius:var(--radius-md);background:var(--brand-primary-soft);color:var(--brand-primary);display:grid;place-items:center;font-weight:var(--weight-bold);}
.admin-shell .type-card .tc-name{font-size:15px;font-weight:var(--weight-bold);}
.admin-shell .type-card .tc-desc{font-size:12.5px;color:var(--fg-tertiary);line-height:1.5;}
.admin-shell .type-card .tc-ver{font-size:11px;color:var(--fg-tertiary);margin-top:auto;}

/* 결재선 Step */
.admin-shell .line-panel{display:flex;flex-direction:column;gap:var(--space-3);}
.admin-shell .step{display:flex;align-items:center;gap:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);background:var(--surface-elevated);}
.admin-shell .step.active{border-color:var(--brand-primary);box-shadow:0 0 0 3px var(--alpha-primary-08);}
.admin-shell .step.done{background:var(--cool-neutral-99);}
.admin-shell .step .step-no{width:30px;height:30px;border-radius:var(--radius-pill);flex-shrink:0;display:grid;place-items:center;font-size:12px;font-weight:var(--weight-bold);background:var(--cool-neutral-94);color:var(--fg-secondary);}
.admin-shell .step.active .step-no{background:var(--brand-primary);color:#fff;}
.admin-shell .step.done .step-no{background:var(--status-success);color:#fff;}
.admin-shell .step.returned .step-no{background:var(--status-danger);color:#fff;}
.admin-shell .step-body{flex:1;min-width:0;}
.admin-shell .step-pos{font-size:12px;color:var(--fg-tertiary);font-weight:var(--weight-medium);}
.admin-shell .step-name{font-size:14px;font-weight:var(--weight-semibold);display:flex;align-items:center;gap:8px;}
.admin-shell .step-email{font-size:12px;color:var(--fg-tertiary);}
.admin-shell .step-when{font-size:11px;color:var(--fg-tertiary);margin-top:2px;}
.admin-shell .step-end{display:flex;flex-direction:column;align-items:flex-end;gap:5px;}
.admin-shell .step-connector{width:1px;height:8px;background:var(--border-default);margin-left:30px;}

/* ============================================================
 * 문서 상세 (detail.php)
 * ============================================================ */
.admin-shell .back-btn{display:inline-flex;align-items:center;gap:6px;color:var(--fg-secondary);font-size:13px;font-weight:var(--weight-medium);text-decoration:none;margin-bottom:var(--space-4);}
.admin-shell .back-btn:hover{color:var(--brand-primary);}
.admin-shell .detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6);}
.admin-shell .detail-title{font-size:24px;font-weight:var(--weight-bold);letter-spacing:-.02em;}
.admin-shell .detail-headmeta{display:flex;align-items:center;gap:10px;margin-top:var(--space-3);flex-wrap:wrap;}
.admin-shell .detail-grid{display:grid;grid-template-columns:1fr 340px;gap:var(--space-6);align-items:start;}
.admin-shell .section{margin-top:var(--space-5);}
.admin-shell .section-label{margin-bottom:var(--space-3);}
.admin-shell .kv{display:grid;grid-template-columns:120px 1fr;gap:var(--space-2) var(--space-4);margin:0;}
.admin-shell .kv dt{font-size:13px;color:var(--fg-tertiary);font-weight:var(--weight-medium);margin:0;}
.admin-shell .kv dd{font-size:14px;color:var(--fg-primary);font-weight:var(--weight-medium);margin:0;}
.admin-shell .content-body{font-size:14px;line-height:1.7;color:var(--fg-primary);white-space:pre-wrap;}
.admin-shell .detail-section-row{display:flex;flex-direction:column;}
.admin-shell .detail-field{padding:var(--space-3) 0;border-bottom:1px solid var(--border-subtle);}
.admin-shell .detail-field:last-child{border-bottom:none;}
.admin-shell .detail-field .df-label{font-size:12px;color:var(--fg-tertiary);font-weight:var(--weight-semibold);margin-bottom:4px;}
.admin-shell .detail-field .df-value{font-size:14px;color:var(--fg-primary);line-height:1.6;white-space:pre-wrap;}
.admin-shell .reject-banner{display:flex;gap:var(--space-3);align-items:flex-start;background:var(--status-danger-soft);border:1px solid #ffd0d0;border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-5);}
.admin-shell .reject-banner .rb-ico{color:var(--red-600);flex-shrink:0;font-size:18px;line-height:1.2;}
.admin-shell .reject-banner .rb-title{font-size:13px;font-weight:var(--weight-bold);color:var(--red-600);}
.admin-shell .reject-banner .rb-body{font-size:13px;color:var(--cool-neutral-30);margin-top:3px;line-height:1.6;}
.admin-shell .action-box{border:1px solid var(--brand-primary);background:linear-gradient(0deg,var(--brand-primary-soft),var(--surface-elevated));border-radius:var(--radius-xl);padding:var(--space-5);}
.admin-shell .action-box .ab-title{font-size:14px;font-weight:var(--weight-bold);display:flex;align-items:center;gap:8px;margin-bottom:var(--space-2);}
.admin-shell .action-box .ab-sub{font-size:12.5px;color:var(--fg-secondary);margin-bottom:var(--space-4);line-height:1.5;}
.admin-shell .action-box .ab-btns{display:flex;gap:var(--space-3);margin-top:var(--space-3);}
.admin-shell .action-box .ab-btns .btn{flex:1;}
.admin-shell .field{display:flex;flex-direction:column;gap:7px;}
.admin-shell .history{display:flex;flex-direction:column;}
.admin-shell .hist-item{display:flex;gap:var(--space-3);padding-bottom:var(--space-4);position:relative;}
.admin-shell .hist-item:not(:last-child)::before{content:"";position:absolute;left:13px;top:28px;bottom:-4px;width:1px;background:var(--border-default);}
.admin-shell .hist-dot{width:28px;height:28px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;color:#fff;z-index:1;font-size:13px;}
.admin-shell .hist-dot.h-create{background:var(--cool-neutral-60);}
.admin-shell .hist-dot.h-submit{background:var(--brand-primary);}
.admin-shell .hist-dot.h-approve{background:var(--status-success);}
.admin-shell .hist-dot.h-return{background:var(--status-danger);}
.admin-shell .hist-body{flex:1;padding-top:2px;}
.admin-shell .hist-line{font-size:13.5px;}
.admin-shell .hist-when{font-size:11.5px;color:var(--fg-tertiary);margin-top:1px;}
.admin-shell .hist-reason{font-size:12.5px;color:var(--cool-neutral-40);margin-top:5px;background:var(--cool-neutral-98);border-radius:var(--radius-md);padding:8px 10px;line-height:1.5;}
@media (max-width:960px){.admin-shell .detail-grid{grid-template-columns:1fr;}}

/* ===== 모달 헤더/푸터 고정(sticky) — 작성·편집 공통 ===== */
.admin-shell .create-modal-panel,
.admin-shell .edit-modal-panel{display:flex;flex-direction:column;max-height:92vh;overflow:hidden;}
.admin-shell .create-modal-panel .admin-modal-head,
.admin-shell .edit-modal-panel .admin-modal-head{flex:0 0 auto;}
.admin-shell .create-form,
.admin-shell .edit-form{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;margin:0;}
.admin-shell .create-form-body,
.admin-shell .edit-form-body{flex:1 1 auto;overflow-y:auto;min-height:0;max-height:calc(88vh - 150px);}
.admin-shell .edit-form.draft-editor{display:flex!important;flex-direction:column;}
.admin-shell .create-modal-panel .admin-modal-actions,
.admin-shell .edit-modal-foot{flex:0 0 auto;display:flex;align-items:center;gap:var(--space-3);}
.admin-shell .edit-foot-spacer{flex:1;}
.admin-shell .foot-note-text{font-size:12.5px;color:var(--fg-tertiary);}
/* 편집 모달 헤더: 타이틀과 닫기 버튼 같은 라인 정렬 */
.admin-shell .edit-modal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);}
.admin-shell .edit-modal-title{font-size:19px;font-weight:var(--weight-bold);margin-top:2px;}

/* ===== 작성 모달 2단 레이아웃 ===== */
.admin-shell .create-modal-panel{max-width:880px;}
.admin-shell .create-grid{display:grid;grid-template-columns:1fr 280px;gap:var(--space-6);align-items:start;}
.admin-shell .create-line-col{position:sticky;top:0;}
.admin-shell .line-preview-empty{color:var(--fg-tertiary);font-size:13px;text-align:center;padding:20px 0;line-height:1.6;}
@media (max-width:820px){.admin-shell .create-grid{grid-template-columns:1fr;}}

/* 카탈로그(양식 목록) */
.admin-shell .cat-list{display:flex;flex-direction:column;}
.admin-shell .cat-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border-subtle);transition:background var(--motion-fast);text-decoration:none;color:inherit;}
.admin-shell .cat-row:last-child{border-bottom:none;}
.admin-shell .cat-row:hover{background:var(--cool-neutral-99);}
.admin-shell .cat-titleline{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.admin-shell .cat-name{font-size:15px;font-weight:var(--weight-semibold);}
.admin-shell .cat-meta{display:flex;align-items:center;gap:10px;margin-top:5px;font-size:12.5px;color:var(--fg-tertiary);flex-wrap:wrap;}
.admin-shell .cat-meta .sep{width:3px;height:3px;border-radius:50%;background:var(--cool-neutral-80);}
.admin-shell .cat-end{display:flex;align-items:center;gap:var(--space-3);}
.admin-shell .tag-auto-on{background:var(--status-success-soft);color:var(--green-600);}
.admin-shell .tag-auto-off{background:var(--cool-neutral-94);color:var(--fg-secondary);}

/* 편집 섹션 */
.admin-shell .ed-sect{padding:var(--space-5) 0;border-bottom:1px solid var(--border-subtle);}
.admin-shell .ed-sect:first-of-type{padding-top:0;}
.admin-shell .ed-sect:last-of-type{border-bottom:none;padding-bottom:0;}
.admin-shell .ed-sect-head{display:flex;align-items:center;gap:10px;margin-bottom:var(--space-4);}
.admin-shell .ed-sect-head h4{font-size:15px;font-weight:var(--weight-bold);}
.admin-shell .sec-hint{font-size:12.5px;color:var(--fg-tertiary);margin-bottom:var(--space-3);}
.admin-shell .check-row{display:flex;gap:var(--space-5);flex-wrap:wrap;margin-top:var(--space-2);}
.admin-shell .pos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-3);}
.admin-shell .pos-card{display:flex;align-items:center;gap:10px;text-align:left;border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:12px 14px;background:var(--surface-elevated);}
.admin-shell .pos-card.on{border-color:var(--brand-primary);background:var(--brand-primary-soft);}
.admin-shell .pos-body b{font-size:13.5px;font-weight:var(--weight-semibold);}
.admin-shell .pos-prio{font-size:10.5px;color:var(--fg-tertiary);}

/* 데이터 테이블 */
.admin-shell .table-wrap{overflow-x:auto;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);}
.admin-shell .data-table{width:100%;border-collapse:collapse;font-size:13.5px;}
.admin-shell .data-table thead th{background:var(--cool-neutral-98);color:var(--fg-secondary);font-weight:var(--weight-semibold);font-size:12px;text-align:left;padding:10px 12px;border-bottom:1px solid var(--border-subtle);white-space:nowrap;}
.admin-shell .data-table tbody td{padding:9px 12px;border-bottom:1px solid var(--border-subtle);vertical-align:middle;}
.admin-shell .data-table tbody tr:last-child td{border-bottom:none;}
.admin-shell .data-table tbody tr:hover{background:var(--cool-neutral-99);}

/* 감사 로그 */
.admin-shell .filter-pills{display:flex;gap:var(--space-2);flex-wrap:wrap;}
.admin-shell .fpill{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border-default);background:var(--surface-elevated);border-radius:var(--radius-pill);padding:7px 14px;font-size:13px;font-weight:var(--weight-medium);color:var(--fg-secondary);transition:all var(--motion-fast);text-decoration:none;}
.admin-shell .fpill:hover{border-color:var(--border-strong);color:var(--fg-primary);}
.admin-shell .fpill.on{background:var(--brand-primary);border-color:var(--brand-primary);color:#fff;font-weight:var(--weight-semibold);}
.admin-shell .fpill .fcount{font-size:11px;font-weight:var(--weight-semibold);background:var(--cool-neutral-96);color:var(--fg-secondary);padding:1px 7px;border-radius:var(--radius-pill);min-width:18px;text-align:center;}
.admin-shell .fpill.on .fcount{background:rgba(255,255,255,.25);color:#fff;}
.admin-shell .filter-note{margin-top:var(--space-3);font-size:12.5px;color:var(--brand-primary);font-weight:var(--weight-medium);}
.admin-shell .audit-filter-form{display:flex;align-items:flex-end;gap:var(--space-4);flex-wrap:wrap;margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border-subtle);}
.admin-shell .af-field{display:flex;flex-direction:column;gap:6px;min-width:200px;}
.admin-shell .af-field .micro-label{margin:0;}
.admin-shell .af-field .select{min-width:200px;}
.admin-shell .af-reset{align-self:center;}
.admin-shell .log-doc{font-weight:var(--weight-semibold);color:var(--fg-primary);text-decoration:none;}
.admin-shell .log-doc:hover{color:var(--brand-primary);text-decoration:underline;}
.admin-shell .log-doc-type{font-size:11.5px;color:var(--fg-tertiary);margin-top:2px;}
.admin-shell .log-actor{display:flex;align-items:center;gap:9px;}
.admin-shell .mini-av{width:26px;height:26px;border-radius:var(--radius-pill);display:grid;place-items:center;font-size:11px;font-weight:var(--weight-bold);color:#fff;flex-shrink:0;}
.admin-shell .state-chip.strong{background:var(--brand-primary-soft);color:var(--brand-primary);font-weight:var(--weight-semibold);}
.admin-shell .log-actor b{font-size:13px;font-weight:var(--weight-semibold);display:block;}
.admin-shell .log-email{font-size:11px;color:var(--fg-tertiary);}
.admin-shell .state-chip{display:inline-flex;align-items:center;font-size:11.5px;font-weight:var(--weight-medium);background:var(--cool-neutral-96);color:var(--fg-secondary);padding:2px 8px;border-radius:var(--radius-sm);white-space:nowrap;}
.admin-shell .log-reason{max-width:240px;}
.admin-shell .log-reason span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;color:var(--fg-secondary);}
.admin-shell .pagination{display:flex;align-items:center;justify-content:center;gap:6px;padding:var(--space-4) var(--space-6);border-top:1px solid var(--border-subtle);}
.admin-shell .page-num{min-width:34px;height:34px;border:1px solid var(--border-default);background:var(--surface-elevated);border-radius:var(--radius-md);font-size:13px;font-weight:var(--weight-medium);color:var(--fg-secondary);padding:0 8px;transition:all var(--motion-fast);text-decoration:none;display:inline-flex;align-items:center;justify-content:center;}
.admin-shell .page-num:hover{border-color:var(--brand-primary);color:var(--brand-primary);}
.admin-shell .page-num.on{background:var(--brand-primary);border-color:var(--brand-primary);color:#fff;font-weight:var(--weight-semibold);}

/* 에러/저장 배너 */
.admin-shell .error-banner{display:flex;align-items:center;gap:10px;background:var(--status-danger-soft);border:1px solid #ffd0d0;color:var(--red-600);font-size:13.5px;font-weight:var(--weight-medium);padding:12px 14px;border-radius:var(--radius-lg);margin-bottom:var(--space-5);}

/* ============================================================
 * 기존 마크업 매핑 — 기존 클래스를 디자인 룩으로
 * ============================================================ */
/* 사이드바 */
.admin-shell .admin-sidebar{background:var(--surface-background);border-right:1px solid var(--border-subtle);}
.admin-shell .admin-brand-mark{background:var(--brand-primary);color:#fff;border-radius:var(--radius-md);}
.admin-shell .admin-menu-title{font-size:11px;font-weight:var(--weight-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-tertiary);}
.admin-shell .admin-menu a{color:var(--fg-secondary);font-weight:var(--weight-medium);border-radius:var(--radius-md);}
.admin-shell .admin-menu a:hover{background:var(--interaction-hover);color:var(--fg-primary);}
.admin-shell .admin-menu a.is-active{background:var(--brand-primary-soft);color:var(--brand-primary);font-weight:var(--weight-semibold);}
/* 탑바 */
.admin-shell .admin-topbar{background:var(--alpha-white-90);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle);}
.admin-shell .admin-topbar-kicker{color:var(--brand-primary);font-weight:var(--weight-bold);letter-spacing:.1em;}
.admin-shell .admin-topbar-title h1{font-weight:var(--weight-bold);letter-spacing:-.02em;}
/* 기존 카드/버튼/필드 → 디자인 */
.admin-shell .admin-card{background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-1);}
.admin-shell .admin-card-label{font-size:11px;font-weight:var(--weight-bold);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-tertiary);}
.admin-shell .cms-primary{background:var(--brand-primary);color:#fff;border:1px solid transparent;border-radius:var(--radius-lg);font-weight:var(--weight-semibold);}
.admin-shell .cms-primary:hover{background:var(--brand-primary-hover);}
.admin-shell .cms-secondary{background:var(--surface-elevated);color:var(--fg-primary);border:1px solid var(--border-default);border-radius:var(--radius-lg);font-weight:var(--weight-semibold);}
.admin-shell .btn-ghost{border-radius:var(--radius-lg);}
.admin-shell .cms-field label,.admin-shell .cms-field>span{font-size:13px;font-weight:var(--weight-semibold);color:var(--fg-secondary);}
.admin-shell .cms-field input,.admin-shell .cms-field textarea,.admin-shell .cms-field select{border:1px solid var(--border-default);border-radius:var(--radius-lg);}
.admin-shell .cms-field input:focus,.admin-shell .cms-field textarea:focus,.admin-shell .cms-field select:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--alpha-primary-08);outline:none;}
.admin-shell .admin-save-banner{border-radius:var(--radius-lg);}
.admin-shell .pill.success{background:var(--status-success-soft);color:var(--green-600);}
.admin-shell .pill.danger{background:var(--status-danger-soft);color:var(--red-600);}

/* 인디고 유틸리티 보정 */
.admin-shell .bg-indigo-50{background-color:var(--blue-50)!important;}
.admin-shell .text-indigo-700,.admin-shell .text-indigo-600{color:var(--blue-600)!important;}
.admin-shell .border-indigo-300{border-color:var(--blue-500)!important;}
.admin-shell .bg-indigo-600{background-color:var(--blue-500)!important;}

/* ===== 배정 전환 드롭다운(devplan5) ===== */
.asg-switcher{position:relative;display:inline-flex;align-items:center;}
.asg-admin-tag{font-size:12px;font-weight:600;color:var(--fg-secondary);background:var(--cool-neutral-96);border:1px solid var(--border-default);padding:6px 12px;border-radius:999px;}
.asg-chip{display:inline-flex;align-items:center;gap:7px;cursor:pointer;font-size:13px;font-weight:600;color:var(--fg-primary);background:#fff;border:1px solid var(--border-default);padding:7px 12px;border-radius:999px;list-style:none;white-space:nowrap;}
details.asg-switcher>summary.asg-chip::-webkit-details-marker{display:none;}
.asg-chip:hover{border-color:var(--brand-primary);}
.asg-dot{width:8px;height:8px;border-radius:50%;background:var(--brand-primary);flex:0 0 auto;}
.asg-caret{font-size:10px;color:var(--fg-tertiary);margin-left:2px;}
.asg-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:240px;z-index:60;background:#fff;border:1px solid var(--border-default);border-radius:14px;box-shadow:var(--shadow-3);padding:8px;}
.asg-menu-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-tertiary);padding:6px 10px 8px;}
.asg-item{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:10px;font-size:14px;color:var(--fg-primary);text-decoration:none;white-space:nowrap;}
.asg-item:hover{background:var(--cool-neutral-96);}
.asg-item.is-current{color:var(--brand-primary);font-weight:600;}
.asg-check{width:14px;color:var(--brand-primary);flex:0 0 auto;}
.admin-topbar-username{font-weight:600;}
.admin-topbar-user{display:inline-flex;align-items:center;gap:12px;}

/* ===== 모달 매핑(admin-modal → 디자인 모달) ===== */
.admin-shell .admin-modal-panel,.admin-modal-panel{border-radius:var(--radius-2xl)!important;box-shadow:var(--shadow-4)!important;border:none!important;}
.admin-shell .admin-modal-head,.admin-modal-head{border-bottom:1px solid var(--border-subtle)!important;}
.admin-shell .admin-modal-head h3,.admin-modal-head h3{font-size:19px;font-weight:var(--weight-bold);letter-spacing:-.01em;}
.admin-shell .admin-modal-head p,.admin-modal-head p{font-size:13px;color:var(--fg-tertiary);margin-top:3px;}
.admin-shell .admin-modal-close,.admin-modal-close{border-radius:var(--radius-md);color:var(--fg-tertiary);}
.admin-shell .admin-modal-actions,.admin-modal-actions{border-top:1px solid var(--border-subtle);background:var(--cool-neutral-99);}
.admin-modal-body .cms-field>span,.admin-modal-body .cms-field label{font-size:13px;font-weight:var(--weight-semibold);color:var(--fg-secondary);}
.admin-modal-body .cms-field input,.admin-modal-body .cms-field textarea,.admin-modal-body .cms-field select{border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:10px 12px;font-size:14px;}
.admin-modal-body .cms-field input:focus,.admin-modal-body .cms-field textarea:focus,.admin-modal-body .cms-field select:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--alpha-primary-08);outline:none;}

/* ============================================================
 * 양식 편집기 — 디자인 ed-sect/테이블 강하게 적용 (.draft-editor)
 * 폼 동작/필드명은 그대로, 시각만 디자인에 맞춤.
 * ============================================================ */
/* 모달 본문 안의 래핑 카드 → 패널에 녹임(중첩 카드 제거) */
.admin-shell .admin-modal-body>.admin-card,.admin-modal-body>.admin-card{border:none!important;box-shadow:none!important;border-radius:0!important;background:transparent!important;padding:0!important;}
/* 편집기 섹션 → 테두리 없는 구분선 레이아웃 */
.admin-shell .draft-editor{display:block;}
.admin-shell .draft-editor section{border:none!important;background:transparent!important;border-radius:0!important;box-shadow:none!important;padding:var(--space-5) 0!important;margin:0!important;border-bottom:1px solid var(--border-subtle)!important;}
.admin-shell .draft-editor section:first-of-type{padding-top:0!important;}
.admin-shell .draft-editor section:last-of-type{border-bottom:none!important;}
.admin-shell .draft-editor h4{font-size:15px;font-weight:var(--weight-bold);color:var(--fg-primary);}
.admin-shell .draft-editor .admin-card-label{font-size:11px;font-weight:var(--weight-bold);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-tertiary);}
/* 체크박스 — Wanted 블루 */
.admin-shell .draft-editor input[type="checkbox"]{accent-color:var(--brand-primary);width:18px;height:18px;}
/* CREATE 직책 선택 카드 — 체크 시 강조 */
.admin-shell .draft-editor label.flex.items-start{border:1px solid var(--border-default)!important;border-radius:var(--radius-lg)!important;background:var(--surface-elevated)!important;transition:all var(--motion-fast);}
.admin-shell .draft-editor label.flex.items-start:hover{border-color:var(--brand-primary)!important;}
.admin-shell .draft-editor label.flex.items-start:has(input:checked){border-color:var(--brand-primary)!important;background:var(--brand-primary-soft)!important;}
/* 반복행(상세/결재선/첨부/안내문) — 깔끔한 행 */
.admin-shell .draft-editor .cms-repeat-item{border:1px solid var(--border-subtle)!important;background:var(--cool-neutral-99)!important;border-radius:var(--radius-lg)!important;padding:var(--space-4)!important;}
.admin-shell .draft-editor .cms-repeat-title{font-size:13px;font-weight:var(--weight-semibold);color:var(--fg-secondary);}
/* 추가/삭제 버튼 */
.admin-shell .draft-editor [data-repeat-add]{background:var(--brand-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:13px;font-weight:var(--weight-semibold);padding:7px 14px;}
.admin-shell .draft-editor [data-repeat-add]:hover{background:var(--brand-primary-hover);}
.admin-shell .draft-editor [data-repeat-remove]{background:var(--surface-elevated);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--fg-tertiary);font-size:12px;font-weight:var(--weight-medium);padding:5px 10px;}
.admin-shell .draft-editor [data-repeat-remove]:hover{border-color:var(--status-danger);background:var(--status-danger-soft);color:var(--red-600);}
/* 편집기 내 입력/셀렉트 통일 */
.admin-shell .draft-editor input[type="text"],.admin-shell .draft-editor input[type="number"],.admin-shell .draft-editor textarea,.admin-shell .draft-editor select{border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:9px 12px;font-size:14px;background:var(--surface-elevated);color:var(--fg-primary);}
.admin-shell .draft-editor input:focus,.admin-shell .draft-editor textarea:focus,.admin-shell .draft-editor select:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--alpha-primary-08);outline:none;}
.admin-shell .draft-editor .cms-field>label,.admin-shell .draft-editor .cms-field>span{font-size:12.5px;font-weight:var(--weight-semibold);color:var(--fg-secondary);}
/* 버전 기록 테이블 → data-table */
.admin-shell .draft-editor table{width:100%;border-collapse:collapse;font-size:13.5px;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;}
.admin-shell .draft-editor table thead th{background:var(--cool-neutral-98);color:var(--fg-secondary);font-weight:var(--weight-semibold);font-size:12px;text-align:left;padding:10px 12px;border-bottom:1px solid var(--border-subtle);}
.admin-shell .draft-editor table tbody td{padding:10px 12px;border-bottom:1px solid var(--border-subtle);}
.admin-shell .draft-editor table tbody tr:last-child td{border-bottom:none;}

/* edit-table (디자인 반복 테이블) */
.admin-shell .edit-table tbody td{padding:6px 8px;border-bottom:1px solid var(--border-subtle);vertical-align:middle;}
.admin-shell .edit-table .cell{padding:8px 10px;font-size:13px;width:100%;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-elevated);color:var(--fg-primary);}
.admin-shell .edit-table .cell:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--alpha-primary-08);outline:none;}
.admin-shell .edit-table .w-step{width:74px;}
.admin-shell .edit-table .w-sort{width:80px;}
.admin-shell .edit-table .w-type{width:120px;}
.admin-shell .edit-table .w-chk{width:56px;text-align:center;}
.admin-shell .edit-table .w-del{width:46px;text-align:center;}
.admin-shell .edit-table .cell-chk{width:18px;height:18px;accent-color:var(--brand-primary);}
.admin-shell .icon-btn{width:30px;height:30px;border:1px solid var(--border-default);background:var(--surface-elevated);border-radius:var(--radius-md);display:inline-grid;place-items:center;color:var(--fg-tertiary);font-size:14px;line-height:1;}
.admin-shell .icon-btn.danger:hover{border-color:var(--status-danger);background:var(--status-danger-soft);color:var(--red-600);}
.admin-shell .draft-editor .table-wrap{margin-top:var(--space-3);}
.admin-shell .draft-editor .ed-add{margin-top:var(--space-3);}
