/* 관리자 테마: 홈페이지·쇼핑몰(site.css)과 같은 자주색 디자인 토큰으로 관리자 전체 화면을 통일한다.
   기존 erp.css / shell.css / style.css 보다 마지막에 로드되어 색·모서리·버튼 규격만 덮어쓴다. */
.admin-shell,.auth-page{
 --ink:#d5d1cb;--ink-2:#bfbab1;--muted:#b0975c;--soft:#7a7364;--line:#2c2924;--line-strong:#3a362f;
 --plum:#d0b880;--plum-deep:#d5c6a3;--plum-dark:#dfd1b0;--accent:#cca751;--tint:#1c1a17;--tint-2:#24221e;--page:#181613;
 --ok:#8dd8b5;--ok-bg:#26241f;--warn:#e4be67;--warn-bg:#3a2a07;--bad:#dd675e;--bad-bg:#1e1d19;
 --btn-h:40px;--btn-h-sm:32px;--radius:14px;--radius-sm:10px;--shadow:0 10px 28px #00000036;
 font-family:'Pretendard','Segoe UI','Malgun Gothic',sans-serif}
.admin-shell{background:var(--page);color:var(--ink);font-size:13px}
.admin-shell a{color:var(--plum)}

/* ── 사이드바 ── */
.admin-shell aside{width:228px;padding:26px 14px;background:linear-gradient(180deg,#dfd1b0 0%,#d5c6a3 100%);border-right:0;color:#454138}
.admin-shell .brand{font-size:21px;font-weight:850;letter-spacing:.4px;color:#0d0c0a}.admin-shell .brand span{color:#795a13}
.admin-shell .brand small{color:#7a673a;letter-spacing:1.8px}
.admin-shell .nav-label{margin:32px 12px 10px;color:#7a673a;font-size:10.5px;letter-spacing:1.4px}
.admin-shell #primary-nav{gap:3px}
.admin-shell #primary-nav button{padding:12px 13px;font-size:13.5px;font-weight:600;border-radius:12px;color:#39352f;border-left:0}
.admin-shell #primary-nav button:hover{background:#0d0c0a14;color:#0d0c0a}
.admin-shell #primary-nav button.selected{background:#0d0c0a;color:var(--plum-dark);border-left:0;box-shadow:0 6px 16px #00000099}
.admin-shell .aside-bottom{color:#454138}.admin-shell .aside-bottom small{color:#7a673a}
.admin-shell .aside-bottom a{color:#2c2924;font-weight:600}.admin-shell .aside-bottom a:hover{color:#0d0c0a}
.admin-shell aside i{background:#795a13}
.admin-shell main{margin-left:228px;padding:0 28px 32px}
#nav-scrim{background:#d5d1cb66}

/* ── 상단 · 제목 · 하위 메뉴 ── */
.admin-shell header{height:58px;min-height:58px;border-bottom:1px solid var(--line);color:var(--muted)}
.admin-shell #breadcrumb{color:var(--soft)}.admin-shell #breadcrumb b{color:var(--ink-2);font-weight:700}
.admin-shell .tag{border:1px solid var(--line-strong);background:var(--tint);color:var(--plum);border-radius:999px;padding:6px 12px;font-weight:700}
.admin-shell .icon-button{border-color:var(--line-strong);border-radius:10px;color:var(--plum-dark)}
.admin-shell #account-menu summary{color:var(--ink-2)}
.admin-shell .account-actions{border-color:var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow)}
.admin-shell .workspace-status{color:var(--muted);padding-top:10px}.admin-shell .workspace-status i{background:var(--accent)}
.admin-shell .workspace-status summary{color:var(--plum);background:var(--tint);border:1px solid var(--line-strong);border-radius:999px;padding:4px 12px}
.admin-shell .workspace-status details p{border-color:var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow);color:var(--ink-2)}
.admin-shell .heading{margin:20px 0 14px}.admin-shell .heading h1{font-size:25px;font-weight:800;letter-spacing:-.8px;color:var(--ink)}
.admin-shell .heading p:not(.eyebrow){font-size:12.5px;color:var(--muted)}
.admin-shell .eyebrow{color:var(--accent)}
.admin-shell #section-nav{gap:26px;padding:0 4px;margin-bottom:18px;border-bottom:1px solid var(--line);background:transparent}
.admin-shell #section-nav button{position:relative;padding:12px 0;border:0;border-radius:0;background:transparent;color:var(--ink-2);font-size:13.5px;font-weight:700}
.admin-shell #section-nav button:hover{background:transparent;color:var(--plum)}
.admin-shell #section-nav button.selected{background:transparent;color:var(--plum)}
.admin-shell #section-nav button.selected::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--plum);border-radius:3px 3px 0 0}

/* ── 패널 · 카드 ── */
.admin-shell .panel,.admin-shell .card{background:#0d0c0a;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 2px 6px #00000018;padding:20px;margin-bottom:16px}
.admin-shell .panel-title{margin:0 0 16px;padding:0 0 14px;background:none;border-bottom:1px solid var(--line);min-height:0}
.admin-shell .panel-title h2,.admin-shell h2{font-size:16px;font-weight:800;color:var(--ink);letter-spacing:-.3px}
.admin-shell h3{font-size:13.5px;color:var(--ink);margin:16px 0 8px}
.admin-shell .card small{color:var(--muted)}.admin-shell .card strong{color:var(--plum-dark)}
.admin-shell .muted{color:var(--muted);font-size:12px}
.admin-shell .notice{background:var(--tint);border:1px solid var(--line-strong);border-radius:var(--radius-sm);color:var(--ink-2);padding:12px 16px}
.admin-shell .help{background:var(--tint);border-left:3px solid var(--plum);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--ink-2);padding:12px 16px}
.admin-shell .results{background:var(--tint);border-radius:var(--radius-sm)}
.admin-shell #message{color:var(--plum)}
.admin-shell details pre{background:var(--tint);border-radius:var(--radius-sm)}

/* ── 입력 ── */
.admin-shell .fields{gap:14px 18px;padding:0;background:none;border:0}
.admin-shell label{font-size:12px;color:var(--ink-2);gap:6px;font-weight:600}
.admin-shell input,.admin-shell select,.admin-shell textarea{padding:9px 12px;min-height:var(--btn-h);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:#0d0c0a;color:var(--ink);font-size:13px}
.admin-shell input:focus,.admin-shell select:focus,.admin-shell textarea:focus{outline:0;border-color:var(--plum);box-shadow:0 0 0 3px #00000066}
.admin-shell input:disabled,.admin-shell input[readonly]{background:var(--tint)}
.admin-shell input[type=checkbox]{accent-color:var(--plum);min-height:0}
.admin-shell :focus-visible{outline:3px solid #93793b;outline-offset:2px}

/* ── 버튼 (홈페이지와 같은 알약형 규격) ── */
.admin-shell button.primary,.admin-shell button.secondary,.admin-shell .tabs button{display:inline-flex;align-items:center;justify-content:center;min-height:var(--btn-h);padding:0 18px;border-radius:999px;font:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.admin-shell button.primary{background:var(--plum-dark);border:1px solid var(--plum-dark);color:#0d0c0a}
.admin-shell button.primary:hover:not(:disabled){background:var(--plum);border-color:var(--plum)}
.admin-shell button.secondary{background:#0d0c0a;border:1px solid var(--line-strong);color:var(--plum-dark)}
.admin-shell button.secondary:hover:not(:disabled){border-color:var(--plum);color:var(--plum)}
.admin-shell td button.secondary,.admin-shell td button.primary{min-height:var(--btn-h-sm);padding:0 12px;font-size:12px}
.admin-shell .actions{gap:8px;margin-top:16px}
.admin-shell .tabs{gap:6px;margin:0 0 14px;border-bottom:0}
.admin-shell .tabs button{background:#0d0c0a;border:1px solid var(--line-strong);color:var(--ink-2)}
.admin-shell .tabs button.active,.admin-shell .tabs button.primary{background:var(--plum-dark);border-color:var(--plum-dark);color:#0d0c0a}
.admin-shell .security-note button,.admin-shell .text-link{color:var(--plum)}

/* ── 표 ── */
.admin-shell table{font-size:12px;border:1px solid var(--line);border-radius:var(--radius-sm);border-collapse:separate;border-spacing:0;overflow:hidden;background:#0d0c0a}
.admin-shell th{background:var(--tint);color:var(--plum-dark);font-weight:700;border-right:0;border-bottom:1px solid var(--line-strong);padding:10px 12px}
.admin-shell td{padding:9px 12px;border-right:0;border-bottom:1px solid var(--line)}
.admin-shell tbody tr:last-child td{border-bottom:0}
.admin-shell tbody tr:nth-child(even){background:#12110f}
.admin-shell tbody tr:hover{background:var(--tint)}
.admin-shell tbody tr.erp-selected{background:var(--tint-2);box-shadow:inset 3px 0 var(--plum)}
/* 표는 패널 끝까지 꽉 채운다. 가로 스크롤은 표가 아니라 감싸는 상자(.tbl-wrap, responsive.js가 자동으로 씌움)가 맡는다. */
.admin-shell table{display:table;width:100%;max-width:none}
.admin-shell .tbl-wrap{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--radius-sm);background:#0d0c0a}
.admin-shell :is(h2,h3,.panel-title)+.tbl-wrap{margin-top:12px}
.admin-shell .tbl-wrap>table{border:0;border-radius:0;overflow:visible;margin:0}
.admin-shell .tbl-wrap:focus-visible{outline:2px solid var(--plum);outline-offset:2px}
.admin-shell td:last-child:not(:first-child),.admin-shell th:last-child:not(:first-child){text-align:right}
.admin-shell tr.tbl-empty td{text-align:left;color:var(--muted);padding:18px 14px}
/* 모바일: 열이 많은 표는 한 줄을 카드 한 장으로 바꿔 보여준다(왼쪽 항목명 · 오른쪽 값). */
@media(max-width:700px){
 .admin-shell .tbl-wrap.tbl-cards{border:0;background:transparent;overflow:visible}
 .admin-shell .tbl-cards table,.admin-shell .tbl-cards thead,.admin-shell .tbl-cards tbody,.admin-shell .tbl-cards tfoot,.admin-shell .tbl-cards tr,.admin-shell .tbl-cards td,.admin-shell .tbl-cards tbody th{display:block;width:auto}
 .admin-shell .tbl-cards table{background:transparent}
 .admin-shell .tbl-cards thead,.admin-shell .tbl-cards tr.tbl-head{display:none}
 .admin-shell .tbl-cards tr{background:#0d0c0a!important;border:1px solid var(--line);border-radius:var(--radius);padding:6px 14px;margin-bottom:10px;box-shadow:var(--shadow)}
 .admin-shell .tbl-cards tr.erp-selected{border-color:var(--plum)}
 .admin-shell .tbl-cards td,.admin-shell .tbl-cards tbody th{display:grid;grid-template-columns:minmax(84px,38%) minmax(0,1fr);gap:10px;align-items:center;text-align:left!important;padding:9px 0;border:0;border-bottom:1px dashed var(--line);white-space:normal;overflow-wrap:anywhere;background:transparent;color:var(--ink);font-weight:inherit}
 .admin-shell .tbl-cards td:last-child,.admin-shell .tbl-cards tbody th:last-child{border-bottom:0}
 .admin-shell .tbl-cards td::before,.admin-shell .tbl-cards tbody th::before{content:attr(data-label);color:var(--muted);font-size:11px;font-weight:700}
 .admin-shell .tbl-cards td:not([data-label])::before,.admin-shell .tbl-cards td[data-label=""]::before{content:none}
 .admin-shell .tbl-cards td:not([data-label]),.admin-shell .tbl-cards td[data-label=""]{grid-template-columns:1fr}
 .admin-shell .tbl-cards tr.tbl-empty td{grid-template-columns:1fr;padding:12px 0}
 .admin-shell .tbl-cards tr.tbl-empty td::before{content:none}
 .admin-shell .tbl-cards td input,.admin-shell .tbl-cards td select{width:100%;min-width:0}
}

/* ── 상태 표시 ── */
.admin-shell .pill{border:1px solid var(--line-strong);background:var(--tint);color:var(--plum);border-radius:999px;padding:4px 10px}
.admin-shell .status-badge{border-radius:999px;background:#211f1b;color:var(--muted)}
.admin-shell .status-draft{background:var(--warn-bg);color:var(--warn)}
.admin-shell .status-confirmed{background:var(--ok-bg);color:var(--ok)}
.admin-shell .status-cancelled{background:#211f1b;color:var(--soft)}
.admin-shell .pending{color:var(--warn)}
.admin-shell [role=alert],.admin-shell #workflow-error,#auth-error,#user-error{color:var(--bad)}
.admin-shell .blocker-list,.admin-shell .readiness-list{color:var(--warn)}

/* ── 대시보드 ── */
.admin-shell .dashboard-kpis .card{border-top:0;position:relative;overflow:hidden;padding:18px}
.admin-shell .dashboard-kpis .card::before{content:'';position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--plum),var(--accent))}
.admin-shell .dashboard-kpis strong{color:var(--ink)}
.admin-shell .task-row{color:var(--ink-2);border-bottom-color:var(--line)}.admin-shell .task-row:hover{background:var(--tint)}
.admin-shell .task-row>strong{color:var(--plum)}.admin-shell .task-arrow{color:var(--soft)}
.admin-shell .policy-health h3{color:var(--ink)}
.admin-shell .activity-list>div{border-bottom-color:var(--line)}.admin-shell .activity-list b{color:var(--ink-2)}

/* ── 조직도 ── */
.admin-shell .tree-scroll{border:1px solid var(--line);border-radius:var(--radius);background-color:#12110f;background-image:linear-gradient(#2c292488 1px,transparent 1px),linear-gradient(90deg,#2c292488 1px,transparent 1px)}
.admin-shell .org-tree ul:before,.admin-shell .org-tree ul>li:before,.admin-shell .org-tree ul>li:after{border-color:#5c4d29}
.admin-shell .org-node{border:1px solid var(--line-strong);border-top:4px solid var(--plum);border-radius:var(--radius-sm);color:var(--ink);box-shadow:0 3px 10px #0000002d}
.admin-shell .org-node.left-node{border-top-color:var(--accent)}.admin-shell .org-node.right-node{border-top-color:#bd9a4b}
.admin-shell .org-node small,.admin-shell .org-node span{color:var(--muted)}
.admin-shell .org-empty{border-color:var(--line-strong);border-radius:var(--radius-sm);color:var(--soft)}

/* ── 카드 · 보안 ── */
.admin-shell .forecast-kpis article{background:var(--tint);border:1px solid var(--line-strong);border-radius:var(--radius-sm)}
.admin-shell .forecast-kpis article>span,.admin-shell .forecast-kpis small,.admin-shell .forecast-kpis em{color:var(--muted)}
.admin-shell .forecast-kpis strong{color:var(--plum-dark)}
.admin-shell .forecast-notice{background:var(--tint);border-left-color:var(--plum);border-radius:0 var(--radius-sm) var(--radius-sm) 0}
.admin-shell .draft-forecast{border-color:var(--line-strong)!important}
.admin-shell .forecast-controls[open]>summary{border-bottom-color:var(--line)}
.admin-shell #forecast-results td small{color:var(--muted)}
.admin-shell #enrollment-key,.admin-shell .recovery-codes code{background:var(--tint);border-radius:var(--radius-sm)}

/* ── 로그인 ── */
.auth-page{background:var(--grad-plum,linear-gradient(115deg,#dfd1b0 0%,#d0b880 60%,#c5a862 100%))}
body:has(> .auth-page) > aside{display:none}
body:has(> .auth-page) .auth-page{position:fixed;inset:0;z-index:50;overflow:auto}
.auth-card{border-radius:22px;box-shadow:0 24px 70px #000000b3}
.auth-card h1{color:var(--ink)}.auth-card .eyebrow{color:var(--accent)}
.auth-card input{border:1px solid var(--line-strong);border-radius:var(--radius-sm);min-height:44px}
.auth-card input:focus{outline:0;border-color:var(--plum);box-shadow:0 0 0 3px #00000066}
.auth-card button.primary{background:var(--plum-dark);border-radius:999px;min-height:48px;font-weight:700;color:#0d0c0a}
.auth-card button.primary:hover{background:var(--plum)}

/* ── 반응형 ── */
@media(max-width:800px){.admin-shell aside{width:210px}.admin-shell main{margin-left:210px}}
@media(max-width:700px){.admin-shell aside{width:260px;padding:22px 14px}.admin-shell main{margin:0;padding:0 14px 24px}.admin-shell .panel{padding:14px}.admin-shell #section-nav{gap:18px}.admin-shell header{height:auto;min-height:56px}}
@media(max-width:900px),(pointer:coarse){.admin-shell button.primary,.admin-shell button.secondary,.admin-shell .tabs button{min-height:44px}.admin-shell #section-nav button{min-height:44px;padding:9px 0}}
@media(prefers-reduced-motion:reduce){.admin-shell button{transition:none}}
.admin-shell #section-nav button{flex:none}

/* 정산 센터 */
.admin-shell .sc-lead{font-size:15px;line-height:1.7;color:var(--ink-2);margin:4px 0 16px}
.admin-shell .sc-flow{list-style:none;margin:0 0 20px;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;counter-reset:none}
.admin-shell .sc-flow li{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--page)}
.admin-shell .sc-flow li span{grid-row:span 2;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--tint-2);color:var(--plum);font-weight:800}
.admin-shell .sc-flow li small{color:var(--muted);font-size:12px}
.admin-shell .sc-flow li.sc-flow-me{border:2px solid var(--plum);background:var(--tint);padding:11px 13px}
.admin-shell .sc-flow li.sc-flow-me span{background:var(--plum);color:#0d0c0a}
.admin-shell .sc-sub{margin:0 0 8px;font-size:15px}
.admin-shell .sc-todo{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:8px}
.admin-shell .sc-todo-item{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 16px;border:1px solid var(--line-strong);border-left:4px solid var(--soft);border-radius:var(--radius-sm);background:#0d0c0a}
.admin-shell .sc-todo-item>div{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1 260px}
.admin-shell .sc-todo-item small{color:var(--muted);font-size:12.5px}
.admin-shell .sc-todo-main{border-left-color:var(--plum);background:var(--tint)}
.admin-shell .sc-todo-warn{border-left-color:#e4b23b;background:#1a1815}
.admin-shell .sc-todo-ok{border-left-color:#7ec197}
.admin-shell .sc-kpis small{display:block;color:var(--muted);font-size:12px;margin-top:4px}
.admin-shell .sc-help{margin-top:12px;border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 14px;background:#0d0c0a}
.admin-shell .sc-help summary{cursor:pointer;font-weight:700;color:var(--plum)}
.admin-shell .sc-help[open] summary{margin-bottom:10px}
.admin-shell .sc-guide{margin:0;padding-left:20px;display:grid;gap:6px;line-height:1.6;color:var(--ink-2)}
.admin-shell .sc-filters{display:flex;gap:10px;flex-wrap:wrap;align-items:end}
.admin-shell .sc-filters label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}
.admin-shell .sc-filters select,.admin-shell .sc-filters input{min-width:180px}
.admin-shell .sc-count{font-weight:700;color:var(--plum-dark);margin:0 0 4px;min-height:1em}
.admin-shell .sc-state{display:inline-block;font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px;white-space:nowrap}
.admin-shell .sc-due{background:var(--plum);color:#0d0c0a}
.admin-shell .sc-wait{background:#201e1a;color:#bfab7a}
.admin-shell .sc-held{background:#3e2d08;color:#eeca75}
.admin-shell .sc-paid{background:#272420;color:#8dd8a6}
.admin-shell .sc-void{background:#201e1a;color:#dd675e}
.admin-shell #center-settings>summary,.admin-shell #center-exceptions>summary{cursor:pointer;font-weight:800;font-size:16px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.admin-shell .sc-explain{margin:12px 0 16px;padding:14px 16px;border-radius:var(--radius-sm);background:var(--tint);line-height:1.7;color:var(--ink-2)}
.admin-shell .sc-explain ul{margin:6px 0 10px;padding-left:18px}
.admin-shell .sc-pay{margin-top:16px;border:2px solid var(--plum)}
.admin-shell .sc-pay-who{font-size:15px}
.admin-shell #center-weekly-form td input{width:100%;min-width:90px}
@media(max-width:1000px){.admin-shell .sc-flow{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.admin-shell .sc-flow{grid-template-columns:1fr}.admin-shell .sc-filters{width:100%}.admin-shell .sc-filters label{flex:1 1 100%}.admin-shell .sc-filters select,.admin-shell .sc-filters input{min-width:0;width:100%}.admin-shell .sc-todo-item button{width:100%}}
/* 하위 메뉴 탭: 글자 길이만큼만 차지하고, 화면보다 많으면 다음 줄로 */#section-nav{display:flex;flex-wrap:wrap;overflow-x:visible;column-gap:26px;row-gap:0;width:auto;max-width:100%}#section-nav>button{flex:0 0 auto!important;width:auto!important;min-width:0!important;max-width:none}

/* 추천인·후원인 지정 대기 알림 */
.admin-shell #primary-nav button .nav-badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#c93746;color:#0d0c0a;font-size:11.5px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}
.admin-shell #primary-nav button{display:flex;align-items:center}
.admin-shell .task-row.task-urgent{border-color:#74262f;background:#161512}
.admin-shell .task-row.task-urgent strong{color:#c95461}
.admin-shell .relation-alerts{border:1px solid #571d24;background:#11100e}
.admin-shell .relation-alerts .alert-count{color:#c95461}
.admin-shell .relation-alert{border-top:1px solid #2b2823;padding:10px 0}
.admin-shell .relation-alert summary{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;cursor:pointer}
.admin-shell .relation-alert summary small{color:var(--muted,#a8a194)}
.admin-shell .relation-alert form{margin-top:12px}
.admin-shell .pill.warn{background:#201e1a;color:#ce626f;border-color:#57181f}

/* 휴대폰에서 입력칸을 누를 때 화면이 확대되지 않도록 16px 유지(iOS) */
@media(max-width:900px),(pointer:coarse){.admin-shell input,.admin-shell select,.admin-shell textarea{font-size:16px}}
.brand .logo-img{display:block;height:40px;width:auto;background:#0d0c0a;border-radius:10px;padding:4px 8px;box-sizing:content-box}
