/* ============================================================
   dkbsoft 관리자/로그인 — 정적 스타일 (admin.css)
   app.css 와 함께 로드됩니다. 빌드 도구 없이 그대로 동작하며,
   src/input.css 의 @apply 컴포넌트 클래스와 1:1 대응(재생성 시 동일 산출).
   값은 tailwind.config.js 토큰(brand/gray/semantic)을 그대로 사용.
   ============================================================ */

/* hidden 속성이 항상 우선하도록(컴포넌트 클래스의 display 보다 강하게) */
[hidden]{display:none !important;}

/* ───────── 컴포넌트 클래스 ───────── */

/* 상단 바 */
.ci-top{position:sticky;}
.ci-main{max-width:1240px;margin:0 auto;padding:28px;}

/* 타이틀 줄 */
.ci-titlerow{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px;}
.ci-h2{margin:0;font-size:24px;font-weight:700;letter-spacing:-.3px;color:#101828;}
.ci-sub{margin:5px 0 0;font-size:14px;color:#667085;}
.ci-btn-new{display:inline-flex;align-items:center;gap:7px;border:0;background:#7f56d9;color:#fff;font-size:14px;font-weight:700;padding:11px 18px;border-radius:8px;cursor:pointer;white-space:nowrap;box-shadow:0 1px 2px rgba(16,24,40,.1);}
.ci-btn-new:hover{background:#6941c6;}
/* 타이틀 줄 액션 묶음(직종 관리 + 구인 등록) */
.ci-titlerow-actions{display:flex;align-items:center;gap:10px;}
.ci-btn-ghost{display:inline-flex;align-items:center;gap:7px;border:1px solid #d6bbfb;background:#f9f5ff;color:#6941c6;font-size:14px;font-weight:700;padding:10px 16px;border-radius:8px;cursor:pointer;white-space:nowrap;}
.ci-btn-ghost:hover{background:#f4ebff;border-color:#b692f6;}

/* 통계 카드 */
.ci-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px;}

/* 툴바 */
.ci-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid #eaecf0;border-radius:12px;padding:14px 16px;margin-bottom:16px;box-shadow:0 1px 2px rgba(16,24,40,.04);}
.ci-search{flex:1;min-width:220px;display:flex;align-items:center;gap:8px;border:1px solid #d0d5dd;border-radius:8px;padding:9px 12px;background:#fff;}
.ci-search input{flex:1;border:0;outline:none;font-size:14px;color:#101828;background:transparent;}
.ci-select{border:1px solid #d0d5dd;border-radius:8px;padding:9px 12px;font-size:13px;color:#344054;background:#fff;cursor:pointer;font-family:inherit;}
.ci-select:focus{border-color:#7f56d9;box-shadow:0 0 0 4px rgba(127,86,217,.14);outline:none;}

/* 테이블 */
.ci-table{background:#fff;border:1px solid #eaecf0;border-radius:12px;overflow:hidden;box-shadow:0 1px 2px rgba(16,24,40,.04);}
.ci-table-head{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #eaecf0;}
.ci-thead{align-items:center;border-bottom:1px solid #eaecf0;background:#fcfcfd;font-size:12px;font-weight:600;color:#98a2b3;}
.ci-row{transition:background .1s;}
.ci-empty{padding:48px 20px;text-align:center;color:#98a2b3;font-size:14px;}
@media (max-width:980px){.ci-table{overflow-x:auto;-webkit-overflow-scrolling:touch;}.ci-table>div{min-width:1040px;}.ci-thead,.ci-row{min-width:1040px;}}

/* 페이지네이션 */
.ci-pg-num{min-width:34px;height:34px;padding:0 6px;border:1px solid #e4e7ec;background:#fff;color:#475467;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;}
.ci-pg-num.is-on{border:0;background:#7f56d9;color:#fff;font-weight:700;}
.ci-pg-nav{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #e4e7ec;background:#fff;border-radius:8px;cursor:pointer;color:#475467;font-size:16px;}
.ci-pg-nav:disabled{color:#d0d5dd;cursor:default;}

/* 슬라이드오버 */
.ci-overlay{position:fixed;inset:0;z-index:80;background:rgba(16,24,40,.55);display:flex;justify-content:flex-end;}
.ci-panel{width:100%;max-width:480px;height:100%;background:#fff;display:flex;flex-direction:column;box-shadow:-12px 0 40px -12px rgba(16,24,40,.3);}
.ci-panel-wide{max-width:560px;}
.ci-panel-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #eaecf0;}
.ci-panel-title{margin:0;font-size:18px;font-weight:700;color:#101828;}
.ci-panel-body{flex:1;overflow-y:auto;padding:22px 24px;}
.ci-panel-foot{flex:0 0 auto;display:flex;gap:10px;padding:16px 24px;border-top:1px solid #eaecf0;background:#fcfcfd;}
.ci-x{border:0;background:none;padding:4px;cursor:pointer;color:#98a2b3;display:flex;}
.ci-x:hover{color:#344054;}
.ci-btn-cancel{flex:1;height:46px;border:1px solid #d0d5dd;background:#fff;border-radius:8px;font-size:14px;font-weight:600;color:#344054;cursor:pointer;}
.ci-btn-cancel:hover{background:#f9fafb;}
.ci-btn-save{flex:2;height:46px;border:0;background:#7f56d9;color:#fff;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer;}
.ci-btn-save:hover{background:#6941c6;}

/* 폼 내부 */
.ci-section{font-size:12px;font-weight:700;color:#7f56d9;letter-spacing:.02em;margin-bottom:12px;}
.ci-label{display:block;font-size:13px;font-weight:600;color:#344054;margin-bottom:6px;}
.ci-hint{color:#98a2b3;font-weight:500;font-size:12px;}
.ci-input{width:100%;border:1px solid #d0d5dd;border-radius:8px;padding:10px 12px;font-size:14px;color:#101828;outline:none;background:#fff;font-family:inherit;}
.ci-input:focus{border-color:#7f56d9;box-shadow:0 0 0 4px rgba(127,86,217,.14);}
.ci-textarea{resize:vertical;}
.ci-row2{display:flex;gap:12px;margin-bottom:14px;}.ci-row2>div{flex:1;}
.ci-row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:14px;}
.ci-check{display:flex;align-items:center;gap:8px;font-size:13px;color:#344054;cursor:pointer;user-select:none;}
.ci-check-box{display:flex;align-items:center;gap:8px;font-size:13px;color:#344054;cursor:pointer;border:1px solid #eaecf0;border-radius:8px;padding:10px 12px;}
.ci-cb{width:16px;height:16px;accent-color:#7f56d9;cursor:pointer;}
.ci-form-err{margin:10px 0 0;font-size:12px;color:#d92d20;display:flex;align-items:center;gap:5px;}
.ci-logo-prev{flex:0 0 auto;width:60px;height:60px;border-radius:12px;border:1px solid #eaecf0;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#f9fafb 50%/cover no-repeat;color:#98a2b3;font-size:11px;font-weight:700;}
.ci-upload{display:inline-flex;align-items:center;gap:7px;border:1px solid #d0d5dd;background:#fff;border-radius:8px;padding:9px 14px;font-size:13px;font-weight:600;color:#344054;cursor:pointer;}
.ci-upload:hover{border-color:#d6bbfb;color:#7f56d9;}

/* 세그먼트 */
.ci-seg-group{display:flex;gap:8px;}
.ci-seg{flex:1;border:1px solid #d0d5dd;background:#fff;color:#667085;font-size:13px;font-weight:700;padding:9px 0;border-radius:8px;cursor:pointer;}
.ci-seg-on{border-color:#7f56d9;background:#f4ebff;color:#6941c6;}
/* 기업 노출 상태 세그먼트 — 선택 시 상태별 색(기업정보관리 시안과 동일) */
.ci-seg-status .ci-seg-on[data-val="active"]{border-color:#067647;background:#ecfdf3;color:#067647;}
.ci-seg-status .ci-seg-on[data-val="hidden"]{border-color:#667085;background:#f2f4f7;color:#667085;}
.ci-seg-status .ci-seg-on[data-val="review"]{border-color:#b54708;background:#fffaeb;color:#b54708;}

/* 회사 검색 콤보박스 (구인 등록 폼) */
.ci-combo{position:relative;}
.ci-combo-btn{width:100%;display:flex;align-items:center;gap:8px;border:1px solid #d0d5dd;border-radius:8px;padding:10px 12px;font-size:14px;background:#fff;cursor:pointer;font-family:inherit;text-align:left;color:#101828;}
.ci-combo-btn:focus{border-color:#7f56d9;box-shadow:0 0 0 4px rgba(127,86,217,.14);outline:none;}
.ci-combo.is-open .ci-combo-btn{border-color:#7f56d9;}
.ci-combo-val{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ci-combo-val.is-placeholder{color:#98a2b3;}
.ci-combo-caret{flex:0 0 auto;color:#98a2b3;transition:transform .15s;}
.ci-combo.is-open .ci-combo-caret{transform:rotate(180deg);}
.ci-combo-pop{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:5;background:#fff;border:1px solid #e4e7ec;border-radius:10px;box-shadow:0 12px 28px -8px rgba(16,24,40,.24);padding:8px;}
.ci-combo-search{display:flex;align-items:center;gap:8px;border:1px solid #d0d5dd;border-radius:8px;padding:8px 10px;margin-bottom:6px;color:#98a2b3;}
.ci-combo-search input{flex:1;border:none;outline:none;font-size:14px;color:#101828;background:transparent;font-family:inherit;}
.ci-combo-list{max-height:220px;overflow-y:auto;}
.ci-combo-opt{display:block;width:100%;text-align:left;padding:9px 12px;border:none;border-radius:7px;background:none;font-size:14px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#475467;font-weight:500;font-family:inherit;}
.ci-combo-opt:hover{background:#f9fafb;}
.ci-combo-opt.is-on{background:#faf8ff;color:#6941c6;font-weight:700;}
.ci-combo-empty{padding:14px 12px;text-align:center;font-size:13px;color:#98a2b3;}

/* 칩 */
.ci-chips{display:flex;flex-wrap:wrap;gap:8px;}
.ci-chip{border:1px solid #e4e7ec;background:#fff;color:#667085;font-size:12px;font-weight:600;padding:7px 12px;border-radius:999px;cursor:pointer;white-space:nowrap;}
.ci-chip-on{border-color:#7f56d9;background:#f4ebff;color:#6941c6;}
.ci-add-line{border:1px dashed #d0d5dd;background:#fff;color:#667085;font-size:13px;font-weight:600;padding:9px 0;border-radius:8px;cursor:pointer;width:100%;}
.ci-add-line:hover{border-color:#d6bbfb;color:#7f56d9;}
.ci-line-del{flex:0 0 36px;width:36px;height:40px;display:flex;align-items:center;justify-content:center;border:1px solid #e4e7ec;background:#fff;border-radius:8px;color:#98a2b3;cursor:pointer;}
.ci-line-del:hover{border-color:#fda29b;color:#d92d20;}

/* 근무조건 — 옵션 그리드 버튼(근무기간·요일·일수·시간대) */
.ci-optgrid{display:grid;gap:8px;}
.ci-optgrid.ci-g2{grid-template-columns:1fr 1fr;}
.ci-optgrid.ci-g3{grid-template-columns:repeat(3,1fr);}
.ci-optgrid .ci-chip{border:1px solid #d0d5dd;background:#fff;color:#475467;font-size:13px;font-weight:500;padding:11px 8px;border-radius:8px;text-align:center;white-space:nowrap;}
.ci-optgrid .ci-chip.ci-chip-on{border-color:#7f56d9;background:#f4ebff;color:#6941c6;font-weight:700;}
/* 급여형태 — 가로 단일선택 칩(seg 스타일) */
.ci-segchips{display:flex;flex-wrap:wrap;gap:8px;}
.ci-segchips .ci-chip{border:1px solid #d0d5dd;background:#fff;color:#667085;font-size:13px;font-weight:700;padding:9px 14px;border-radius:8px;white-space:nowrap;}
.ci-segchips .ci-chip.ci-chip-on{border-color:#7f56d9;background:#f4ebff;color:#6941c6;}
/* 근무시간 — 시간대 선택 / 직접 입력 탭 */
.ci-timetabs{display:flex;gap:4px;background:#eef2f7;border-radius:9px;padding:4px;margin-bottom:12px;}
.ci-timetab{flex:1;border:none;background:transparent;color:#667085;font-size:13px;font-weight:700;padding:8px 0;border-radius:7px;cursor:pointer;}
.ci-timetab.is-on{background:#fff;color:#6941c6;box-shadow:0 1px 2px rgba(16,24,40,.06);}
/* 모집조건 — 키워드 태그 */
.ci-tagpills{display:flex;flex-wrap:wrap;gap:8px;}
.ci-tagpill{display:inline-flex;align-items:center;gap:6px;border:1px solid #d6bbfb;background:#f4ebff;color:#6941c6;font-size:12px;font-weight:700;padding:6px 8px 6px 12px;border-radius:999px;}
.ci-tagpill-x{border:none;background:none;padding:0;margin:0;cursor:pointer;color:#9b7fd4;display:flex;}
.ci-tagpill-x:hover{color:#6941c6;}
.ci-tag-sub{display:block;color:#98a2b3;font-size:12px;margin-bottom:7px;}
.ci-tagadd{display:flex;gap:8px;}
.ci-tag-add-btn{flex:0 0 auto;border:1px solid #d6bbfb;background:#f9f5ff;color:#6941c6;border-radius:8px;padding:0 16px;font-size:13px;font-weight:700;cursor:pointer;}
.ci-tag-add-btn:hover{background:#f4ebff;}
/* 근무지 · 지원 — 주소 미리보기 / 대시 버튼 / 이미지 업로드 */
.ci-addr-prev{margin:0 0 14px;font-size:12px;color:#98a2b3;}
.ci-add-dash{width:100%;border:1.5px dashed #d6bbfb;background:#fbf8ff;color:#6941c6;border-radius:8px;padding:10px;font-size:13px;font-weight:700;cursor:pointer;}
.ci-add-dash:hover{background:#f4ebff;}
.ci-img-prev{position:relative;border:1px solid #eaecf0;border-radius:10px;overflow:hidden;}
.ci-img-prev-img{width:100%;height:180px;background:#f2f4f7 center/cover no-repeat;}
.ci-img-del{position:absolute;top:8px;right:8px;border:none;background:rgba(16,24,40,.6);color:#fff;border-radius:7px;padding:6px 11px;font-size:12px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:5px;}
.ci-img-del:hover{background:rgba(16,24,40,.78);}
.ci-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;border:1.5px dashed #d6bbfb;background:#fbf8ff;border-radius:10px;padding:26px;cursor:pointer;}
.ci-dropzone:hover{background:#f7f1ff;}
.ci-dropzone-tall{padding:48px 26px;}
.ci-dropzone-title{font-size:13px;color:#6941c6;font-weight:700;}
.ci-dropzone-sub{font-size:12px;color:#98a2b3;}
/* 상세모집내용 — 모드 전환 + 리치 에디터 */
.ci-detail-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.ci-detail-modes{display:inline-flex;background:#f2f4f7;border-radius:8px;padding:3px;gap:2px;}
.ci-detail-mode{border:none;background:transparent;color:#667085;font-size:12px;font-weight:700;padding:6px 10px;border-radius:6px;cursor:pointer;}
.ci-detail-mode.is-on{background:#fff;color:#6941c6;box-shadow:0 1px 2px rgba(16,24,40,.06);}
.ci-rte-toolbar{border:1px solid #d0d5dd;border-bottom:none;border-radius:8px 8px 0 0;background:#fcfcfd;padding:6px;display:flex;flex-wrap:wrap;gap:3px;align-items:center;}
.ci-rte-btn{border:1px solid #e4e7ec;background:#fff;color:#475467;border-radius:6px;min-width:30px;height:30px;padding:0 7px;font-size:14px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;}
.ci-rte-btn:hover{background:#f4ebff;color:#6941c6;border-color:#d6bbfb;}
.ci-rte-btn-wide{font-size:12px;padding:0 9px;}
.ci-rte-btn-danger:hover{background:#fef3f2;color:#d92d20;border-color:#fecdca;}
.ci-rte-sep{width:1px;height:18px;background:#e4e7ec;margin:0 2px;}
.ci-rte{min-height:170px;max-height:340px;overflow-y:auto;border:1px solid #d0d5dd;border-radius:0 0 8px 8px;padding:12px 14px;font-size:14px;line-height:1.7;color:#101828;outline:none;}
.ci-rte:focus{border-color:#7f56d9;box-shadow:0 0 0 4px rgba(127,86,217,.14);}
.ci-rte:empty:before{content:attr(data-ph);color:#98a2b3;pointer-events:none;}
.ci-rte-note{margin:8px 0 0;font-size:12px;color:#98a2b3;display:flex;align-items:flex-start;gap:6px;line-height:1.5;}
.ci-rte-note svg{flex:0 0 auto;margin-top:1px;}
.ci-poster-note{text-align:center;font-size:12px;color:#98a2b3;margin-bottom:8px;}
/* 운영 — 노출 상태 세그(직종 상태별 색) */
.ci-statusseg{display:flex;flex-wrap:wrap;gap:8px;}
.ci-statusseg .ci-seg{flex:0 0 auto;width:auto;padding:9px 16px;}
.ci-statusseg .ci-seg-on[data-val="active"]{border-color:#067647;background:#ecfdf3;color:#067647;}
.ci-statusseg .ci-seg-on[data-val="closed"]{border-color:#667085;background:#f2f4f7;color:#667085;}
.ci-statusseg .ci-seg-on[data-val="review"]{border-color:#b54708;background:#fffaeb;color:#b54708;}
.ci-statusseg .ci-seg-on[data-val="draft"]{border-color:#175cd3;background:#eff8ff;color:#175cd3;}

/* ───────── 로그인 (lg-*) ───────── */
.lg-field{position:relative;}
.lg-field-ic{position:absolute;left:13px;top:50%;transform:translateY(-50%);}
.lg-input{width:100%;height:46px;border:1px solid #d0d5dd;border-radius:8px;padding:0 14px 0 40px;font-size:15px;color:#101828;outline:none;background:#fff;transition:border-color .15s,box-shadow .15s;}
.lg-input-pw{padding-right:44px;}
.lg-input:focus{border-color:#7f56d9;box-shadow:0 0 0 4px rgba(127,86,217,.16);}
.lg-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:none;padding:6px;cursor:pointer;display:flex;color:#98a2b3;}
.lg-eye:hover{color:#344054;}
.lg-captcha{display:flex;align-items:center;justify-content:space-between;width:302px;max-width:100%;height:74px;background:#f9f9f9;border:1px solid #d3d3d3;border-radius:3px;box-shadow:0 0 4px 1px rgba(0,0,0,.08);padding:0 12px 0 11px;}
.lg-robot{width:28px;height:28px;border:2px solid #c1c1c1;border-radius:2px;background:#fff;cursor:pointer;flex:0 0 auto;position:relative;}
.lg-robot.is-loading{border-top-color:#4285f4;border-radius:50%;animation:lg-spin .7s linear infinite;}
.lg-robot.is-done{border-color:#1ea362;}
.lg-robot.is-done::after{content:"";position:absolute;left:8px;top:3px;width:7px;height:13px;border:solid #1ea362;border-width:0 3px 3px 0;transform:rotate(45deg);animation:lg-pop .25s ease-out;}
@keyframes lg-spin{to{transform:rotate(360deg);}}
@keyframes lg-pop{0%{transform:rotate(45deg) scale(.4);opacity:0;}100%{transform:rotate(45deg) scale(1);opacity:1;}}
.lg-err{margin:8px 2px 0;font-size:12px;color:#d92d20;display:flex;align-items:center;gap:5px;}
.lg-ok{margin:14px 0 0;font-size:13px;color:#067647;text-align:center;display:flex;align-items:center;justify-content:center;gap:6px;}
.lg-submit{width:100%;height:48px;border:0;border-radius:8px;background:#7f56d9;color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:background .15s;display:flex;align-items:center;justify-content:center;gap:8px;}
.lg-submit:hover{background:#6941c6;}
.lg-submit:active{background:#5a36ad;}

/* ───────── 유틸리티 (관리/로그인에서 사용하는 것만) ───────── */
.font-sans{font-family:"Pretendard Variable",Pretendard,Inter,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;}
.block{display:block;}.inline-block{display:inline-block;}.flex{display:flex;}.inline-flex{display:inline-flex;}.grid{display:grid;}.hidden{display:none;}
.flex-col{flex-direction:column;}.flex-wrap{flex-wrap:wrap;}.flex-1{flex:1 1 0%;}.flex-none{flex:none;}
.items-center{align-items:center;}.justify-center{justify-content:center;}.justify-between{justify-content:space-between;}.justify-end{justify-content:flex-end;}
.min-w-0{min-width:0;}.min-h-screen{min-height:100vh;}.w-full{width:100%;}
.w-5{width:20px;}.w-8{width:32px;}.w-10{width:40px;}.w-11{width:44px;}.w-[52px]{width:52px;}
.h-5{height:22px;}.h-6{height:24px;}.h-8{height:32px;}.h-10{height:40px;}.h-11{height:44px;}.h-[46px]{height:46px;}.h-[52px]{height:52px;}.h-[60px]{height:60px;}
.max-w-[380px]{max-width:380px;}.max-w-[420px]{max-width:420px;}.max-w-[1240px]{max-width:1240px;}
.mx-auto{margin-left:auto;margin-right:auto;}.m-0{margin:0;}
.ml-1.5{margin-left:6px;}
.mt-1\.5{margin-top:6px;}.mt-2{margin-top:8px;}.mt-3\.5{margin-top:14px;}.mt-4{margin-top:16px;}.mt-5{margin-top:20px;}.mt-[7px]{margin-top:7px;}
.mb-2{margin-bottom:8px;}.mb-3\.5{margin-bottom:14px;}.mb-4{margin-bottom:16px;}.mb-5{margin-bottom:20px;}.mb-6{margin-bottom:24px;}.mb-[18px]{margin-bottom:18px;}.mb-[22px]{margin-bottom:22px;}.mb-[26px]{margin-bottom:26px;}
.p-1{padding:4px;}.p-5{padding:20px;}.p-6{padding:24px;}.p-7{padding:28px;}
.px-2\.5{padding-left:10px;padding-right:10px;}.px-5{padding-left:20px;padding-right:20px;}.px-7{padding-left:28px;padding-right:28px;}.px-[13px]{padding-left:13px;padding-right:13px;}
.py-[3px]{padding-top:3px;padding-bottom:3px;}.py-[7px]{padding-top:7px;padding-bottom:7px;}.py-[11px]{padding-top:11px;padding-bottom:11px;}.py-[13px]{padding-top:13px;padding-bottom:13px;}
.p-\[18px_20px\]{padding:18px 20px;}.p-\[26px_24px\]{padding:26px 24px;}.p-\[34px_30px\]{padding:34px 30px;}.p-\[36px_32px_30px\]{padding:36px 32px 30px;}.p-\[3px\]{padding:3px;}
.gap-0\.5{gap:2px;}.gap-1\.5{gap:6px;}.gap-2{gap:8px;}.gap-2\.5{gap:10px;}.gap-3{gap:12px;}.gap-3\.5{gap:14px;}.gap-4{gap:16px;}
.gap-\[3px\]{gap:3px;}.gap-\[7px\]{gap:7px;}.gap-\[9px\]{gap:9px;}.gap-\[11px\]{gap:11px;}.gap-\[18px\]{gap:18px;}
.grid-cols-2{grid-template-columns:repeat(2,1fr);}.grid-cols-4{grid-template-columns:repeat(4,1fr);}
.grid-cols-\[2\.2fr_90px_80px_156px_92px_128px_58px_92px_84px\]{grid-template-columns:2.2fr 90px 80px 156px 92px 128px 58px 92px 84px;}
.grid-cols-\[2\.4fr_86px_80px_150px_128px_96px_84px_84px\]{grid-template-columns:2.4fr 86px 80px 150px 128px 96px 84px 84px;}
.grid-cols-\[72px_1fr_138px_76px_60px_92px_84px\]{grid-template-columns:72px 1fr 138px 76px 60px 92px 84px;}
.fixed{position:fixed;}.sticky{position:sticky;}.inset-0{inset:0;}.top-0{top:0;}.z-30{z-index:30;}.z-\[90\]{z-index:90;}
.rounded-md{border-radius:8px;}.rounded-xl{border-radius:12px;}.rounded-2xl{border-radius:16px;}.rounded-full{border-radius:9999px;}
.rounded-\[7px\]{border-radius:7px;}.rounded-\[9px\]{border-radius:9px;}.rounded-\[10px\]{border-radius:10px;}
.border{border-width:1px;border-style:solid;}.border-0{border-width:0;}.border-b{border-bottom-width:1px;border-bottom-style:solid;}
.border-gray-100{border-color:#f2f4f7;}.border-gray-200{border-color:#eaecf0;}.border-gray-300{border-color:#d0d5dd;}
.bg-white{background:#fff;}.bg-canvas{background:#eef0f3;}.bg-cover{background-size:cover;}.bg-center{background-position:center;}
.bg-brand-100{background:#f4ebff;}.bg-brand-600{background:#7f56d9;}.bg-gray-100{background:#f2f4f7;}
.bg-error-50{background:#fef3f2;}.bg-error-600{background:#d92d20;}.bg-gray-900\/60{background:rgba(16,24,40,.6);}
.text-white{color:#fff;}.text-brand-600{color:#7f56d9;}.text-brand-700{color:#6941c6;}
.text-gray-300{color:#d0d5dd;}.text-gray-400{color:#98a2b3;}.text-gray-500{color:#667085;}.text-gray-600{color:#475467;}.text-gray-700{color:#344054;}.text-gray-900{color:#101828;}
.text-error-600{color:#d92d20;}.text-warning-500{color:#f79009;}
.text-success-700{color:#027a48;}.text-warning-700{color:#b54708;}
.text-xs{font-size:12px;line-height:1.4;}.text-sm{font-size:14px;line-height:1.45;}
.text-[8px]{font-size:8px;}.text-[10px]{font-size:10px;}.text-[11px]{font-size:11px;}.text-[13px]{font-size:13px;}.text-[15px]{font-size:15px;}.text-[17px]{font-size:17px;}.text-[19px]{font-size:19px;}.text-[22px]{font-size:22px;}.text-[28px]{font-size:28px;}
.font-medium{font-weight:500;}.font-semibold{font-weight:600;}.font-bold{font-weight:700;}.font-extrabold{font-weight:800;}
.text-center{text-align:center;}.text-right{text-align:right;}
.leading-none{line-height:1;}.leading-tight{line-height:1.1;}.leading-relaxed{line-height:1.625;}.leading-[46px]{line-height:46px;}
.tracking-tight{letter-spacing:-.5px;}.tabular-nums{font-variant-numeric:tabular-nums;}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cursor-pointer{cursor:pointer;}.transition-colors{transition:color .15s,background-color .15s,border-color .15s;}
.shadow-xs{box-shadow:0 1px 2px rgba(16,24,40,.05);}
.shadow-card{box-shadow:0 1px 2px rgba(16,24,40,.04);}
.shadow-lg{box-shadow:0 12px 16px -4px rgba(16,24,40,.08),0 4px 6px -2px rgba(16,24,40,.03);}
.shadow-pop{box-shadow:0 16px 42px -10px rgba(16,24,40,.30);}

/* 색/등급 보조 (행 뱃지) */
.bg-brand-100{background:#f4ebff;}
.border-brand-200{border-color:#e9d7fe;}.bg-brand-100{background:#f4ebff;}
.border-info-200{border-color:#b2ddff;}.bg-info-50{background:#eff8ff;}.text-info-700{color:#175cd3;}
.border-success-200{border-color:#a6f4c5;}.bg-success-50{background:#ecfdf3;}
.border-warning-200{border-color:#fedf89;}.bg-warning-50{background:#fffaeb;}
.border-error-50{}

/* hover / disabled 변형 */
.hover\:bg-brand-700:hover{background:#6941c6;}
.hover\:bg-error-700:hover{background:#b42318;}
.hover\:bg-gray-50:hover{background:#f9fafb;}
.hover\:bg-gray-25:hover{background:#fcfcfd;}
.hover\:text-brand-600:hover{color:#7f56d9;}
.hover\:text-brand-700:hover{color:#6941c6;}
.hover\:text-error-600:hover{color:#d92d20;}
.hover\:text-gray-700:hover{color:#344054;}
.hover\:text-warning-500:hover{color:#f79009;}
.hover\:border-brand-300:hover{border-color:#d6bbfb;}
.hover\:border-error-300:hover{border-color:#fda29b;}
.disabled\:opacity-40:disabled{opacity:.4;}
.disabled\:cursor-default:disabled{cursor:default;}

/* 헬퍼(뱃지/칩)·행에서 추가로 쓰는 유틸 */
.px-\[9px\]{padding-left:9px;padding-right:9px;}
.whitespace-nowrap{white-space:nowrap;}
.rounded{border-radius:4px;}.rounded-\[5px\]{border-radius:5px;}
.bg-gray-50{background:#f9fafb;}.bg-gray-25{background:#fcfcfd;}
.gap-1{gap:4px;}
.w-6{width:24px;}.h-6{height:24px;}
.border-gray-100{border-color:#f2f4f7;}
.text-success-700{color:#027a48;}
