/* iTamra Admin - Figma-like UI (compact / lighter typography)
 * - Sidebar accordion (details/summary) styling
 * - Compact spacing across cards/tables/forms
 * - Pretendard font (shared service font path)
 */

/* ---- Pretendard (전 weight 선언) ---- */
@font-face{font-family:'Pretendard';font-style:normal;font-weight:100;font-display:swap;src:url('/assets/fonts/pretendard/Pretendard-Thin.woff2') format('woff2');}
@font-face{font-family:'Pretendard';font-style:normal;font-weight:200;font-display:swap;src:url('/assets/fonts/pretendard/Pretendard-ExtraLight.woff2') format('woff2');}
@font-face{font-family:'Pretendard';font-style:normal;font-weight:300;font-display:swap;src:url('/assets/fonts/pretendard/Pretendard-Light.woff2') format('woff2');}
@font-face{font-family:'Pretendard';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/pretendard/Pretendard-Regular.woff2') format('woff2');}
@font-face{font-family:'Pretendard';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/pretendard/Pretendard-Medium.woff2') format('woff2');}
@font-face{font-family:'Pretendard';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/pretendard/Pretendard-SemiBold.woff2') format('woff2');}
@font-face{font-family:'Pretendard';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/pretendard/Pretendard-Bold.woff2') format('woff2');}
@font-face{font-family:'Pretendard';font-style:normal;font-weight:800;font-display:swap;src:url('/assets/fonts/pretendard/Pretendard-ExtraBold.woff2') format('woff2');}
@font-face{font-family:'Pretendard';font-style:normal;font-weight:900;font-display:swap;src:url('/assets/fonts/pretendard/Pretendard-Black.woff2') format('woff2');}

:root{
  --bg:#f4f6fb;
  --card:#ffffff;
  /* slightly stronger border so inputs/controls are clearly visible */
  --border:#d8e0ec;
  --text:#0f172a;
  --muted:#64748b;
  --primary:#1f6fff;
  --ring:rgba(31,111,255,.18);
  --sidebar-active-bg:#eaf2ff;
  --sidebar-hover-bg:#f5f7fb;
}

html,body{height:100%;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:'Pretendard',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Apple SD Gothic Neo','Noto Sans KR','Malgun Gothic',Arial,sans-serif;
  font-size:15px; /* #91 +1px */
  font-weight:400;
  line-height:1.6;
  letter-spacing:-0.01em;
  word-break:keep-all;
  -webkit-font-smoothing:antialiased;
}

/* 폰트 전체 상속 강제 (input/select/button/textarea 포함) */
*, *::before, *::after { font-family: inherit; }
input, select, textarea, button, table, th, td { font-family: inherit; font-size: inherit; }

a{color:inherit;}

/* ---- Layout ---- */
.it-admin-wrap{display:flex; min-height:100vh;}
.it-content{flex:1; padding:0; min-width:0;}
.it-page{max-width:1400px; margin:0 auto; padding:24px 24px 32px;}

/* Desktop: overlay should never block clicks */
.it-sidebar-overlay{display:none;}

/* ---- Topbar ---- */
.it-topbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:14px 22px;
  background:#fff;
  border-bottom:1px solid var(--border);
  position:sticky;
  top:0;
  z-index:20;
}
.it-topbar .title{font-weight:600; font-size:16px; letter-spacing:-.2px;}
.it-topbar-right{display:flex; align-items:center; gap:12px; color:var(--muted);}
.it-pill{display:flex; align-items:center; gap:10px;}
.it-avatar{width:32px; height:32px; border-radius:999px; background:#e9f0ff; display:inline-flex; align-items:center; justify-content:center; color:var(--primary); font-weight:600;}

.it-top-btn{width:36px; height:36px; border-radius:999px; border:1px solid var(--border); background:#fff; display:inline-flex; align-items:center; justify-content:center; color:#475569; padding:0;}
.it-top-btn:hover{background:#f7f9fd;}
.it-top-btn:active{transform:translateY(1px);} 
.it-noti{position:relative;}
.it-badge-dot{position:absolute; top:8px; right:8px; width:7px; height:7px; border-radius:999px; background:#ef4444; box-shadow:0 0 0 2px #fff;}
.it-top-name{font-weight:700; line-height:1.1; color:#0f172a;}
.it-top-email{font-size:13px; color:var(--muted); line-height:1.1;} /* #91 +1px */

/* ---- Sidebar ---- */
.it-sidebar{
  width:270px;
  background:#fff;
  border-right:1px solid var(--border);
  padding:14px 12px;
  position:sticky;
  top:0;
  height:100vh;
  overflow:auto;
}
.it-brandbox{padding:2px 6px 14px; border-bottom:1px solid var(--border); margin:2px 0 10px;}
.it-brand{font-weight:700; letter-spacing:-.3px; font-size:18px; margin:0;}
.it-menu{display:flex; flex-direction:column; gap:6px; margin-top:8px;}

/* 1-depth item */
.it-menu > a,
.it-acc-sum{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:10px;
  text-decoration:none;
  color:#111827;
  font-weight:500;
  font-size:15px; /* #91 +1px */
  line-height:1.2;
  cursor:pointer;
  user-select:none;
  position:relative;
}
.it-menu > a:hover,
.it-acc-sum:hover{background:var(--sidebar-hover-bg);}

.it-menu > a.active,
.it-acc-sum.active{
  background:var(--sidebar-active-bg);
  color:var(--primary);
}

.it-menu > a.active::before,
.it-acc-sum.active::before{
  content:"";
  position:absolute;
  left:0;
  top:8px;
  bottom:8px;
  width:3px;
  background:var(--primary);
  border-radius:3px;
}

.it-ico{width:20px; height:20px; display:inline-flex; align-items:center; justify-content:center; color:#111827; flex:0 0 20px;}
.it-menu > a.active .it-ico,
.it-acc-sum.active .it-ico{color:var(--primary);}

/* Accordion */
.it-acc{border-radius:12px;}
.it-acc summary{list-style:none;}
.it-acc summary::-webkit-details-marker{display:none;}
.it-caret{margin-left:auto; color:#94a3b8; transform:rotate(0deg); transition:transform .15s ease; font-size:18px;}
.it-acc[open] .it-caret{transform:rotate(90deg);} 

.it-acc-body{padding:6px 6px 10px 40px; display:flex; flex-direction:column; gap:4px;}
.it-acc-body a{
  display:block;
  padding:8px 10px;
  border-radius:10px;
  text-decoration:none;
  color:#334155;
  font-weight:400;
  font-size:14px; /* #91 +1px */
}
.it-acc-body a:hover{background:#f7faff;}
.it-acc-body a.active{background:#eef4ff; color:var(--primary); font-weight:500;}

/* ---- Page header (content) ---- */
.it-page-header{display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:18px 0 14px;}
.it-page-title{margin:0; font-size:26px; font-weight:700; letter-spacing:-.4px;}
.it-page-sub{margin-top:6px; color:var(--muted); font-size:14px;} /* #91 +1px */
.it-page-header-right{display:flex; flex-direction:column; align-items:flex-end; gap:8px;}
.it-page-actions{display:flex; gap:8px; flex-wrap:wrap;}
.it-breadcrumb{display:flex; justify-content:flex-end;}
.it-breadcrumb ol{display:flex; gap:8px; list-style:none; padding:0; margin:0; color:var(--muted); font-size:13px;} /* #91 +1px */
.it-breadcrumb a{color:inherit; text-decoration:none;}
.it-breadcrumb li{white-space:nowrap;}
.it-breadcrumb li::after{content:"/"; margin-left:8px; color:#cbd5e1;}
.it-breadcrumb li:last-child::after{content:"";}
.it-breadcrumb li.active{color:#334155; font-weight:500;}

/* ---- Card / table / forms (Bootstrap override) ---- */
.card{border-radius:14px; border:1px solid var(--border); box-shadow:0 10px 24px rgba(20,40,80,.06);} 
.card .card-header{background:transparent; border-bottom:1px solid var(--border); padding:12px 14px;}
.card .card-body{padding:12px 14px;}

.table{margin-bottom:0;}
.table thead th{font-weight:600; font-size:14px; color:#0f172a; padding:10px 10px; border-bottom:1px solid var(--border)!important;} /* #91 +1px */
.table td{font-size:14px; padding:10px 10px; vertical-align:middle; border-top:1px solid #eef2f7;} /* #91 +1px */
.table .btn{padding:4px 10px; font-size:13px; line-height:1.25; border-radius:10px;}

.form-control,.form-select{font-size:14px; padding:.45rem .6rem; border-radius:12px; border-color:var(--border);} /* #91 +1px */ 
.form-control,.form-select{background:#fff; color:#111827;}
.form-control::placeholder{color:#94a3b8;}
.form-control:focus,.form-select:focus{border-color:var(--primary); box-shadow:0 0 0 .2rem var(--ring);} 
.form-label{font-size:13px; color:var(--muted); font-weight:500; margin-bottom:6px;} /* #91 +1px */

/* Inputs visibility for light backgrounds (some pages render inputs on white cards) */
.form-control:disabled, .form-control[readonly]{background:#f8fafc;}

.btn{border-radius:12px; font-weight:500;}
.btn-sm{border-radius:10px;}
.badge{font-weight:500;}

/* ---- Utilities ---- */
.it-muted{color:var(--muted);} 

/* ---- Responsive (sidebar off-canvas) ---- */
@media (max-width: 1100px){
  /* keep sidebar mounted but off-canvas */
  .it-sidebar{
    display:block;
    position:fixed;
    top:0; left:0; bottom:0;
    width:260px;
    transform:translateX(-105%);
    transition:transform .22s ease;
    z-index:60;
    box-shadow: 0 12px 30px rgba(15,23,42,.18);
  }
  .it-admin-wrap{display:block;}
  .it-content{width:100%; margin-left:0;}
  .it-page{max-width:100%; padding:14px 14px 18px;}
  .it-topbar{padding:12px 14px;}
  .it-side-toggle{display:inline-flex !important;}
  .it-sidebar-overlay{
    display:none;
    position:fixed;
    inset:0;
    background:rgba(15,23,42,.42);
    z-index:55;
  }

  body.it-sidebar-open .it-sidebar{transform:translateX(0);}
  body.it-sidebar-open .it-sidebar-overlay{display:block;}
  body.it-noscroll{overflow:hidden;}
}

/* Desktop: hide hamburger */
@media (min-width: 1101px){
  .it-side-toggle{display:none;}
}
/* PATCH:itamra-admin-layout-v3-260224 */


/* v14 table normalization */
.it-content .table{ width:100%; }
.it-content .table th{ font-weight:600; }
.it-content .table td, .it-content .table th{ vertical-align:middle; }
.it-content .card{ border-radius:14px; }
.it-bc{ margin: 14px 0 8px; }
.it-page-header{ margin: 10px 0 14px; }


/* === Operational UI Hotfix: form control borders === */
.admin-content input[type="text"],
.admin-content input[type="password"],
.admin-content input[type="email"],
.admin-content input[type="number"],
.admin-content input[type="search"],
.admin-content select,
.admin-content textarea,
.admin-content .form-control{
  border: 1px solid rgba(0,0,0,.18) !important;
  border-radius: 8px !important;
  padding: 8px 10px !important;
  background: #fff !important;
}
.admin-content input:focus,
.admin-content select:focus,
.admin-content textarea:focus,
.admin-content .form-control:focus{
  outline: none !important;
  border-color: rgba(37,99,235,.9) !important;
  box-shadow: 0 0 0 3px rgba(37,99,235,.15) !important;
}

/* Apply on admin shell */
.it-admin-wrap input[type="text"],
.it-admin-wrap input[type="password"],
.it-admin-wrap input[type="email"],
.it-admin-wrap input[type="number"],
.it-admin-wrap input[type="search"],
.it-admin-wrap select,
.it-admin-wrap textarea,
.it-admin-wrap .form-control{
  border: 1px solid rgba(0,0,0,.18) !important;
  border-radius: 8px !important;
  padding: 8px 10px !important;
  background: #fff !important;
}
.it-admin-wrap input:focus,
.it-admin-wrap select:focus,
.it-admin-wrap textarea:focus,
.it-admin-wrap .form-control:focus{
  outline: none !important;
  border-color: rgba(37,99,235,.9) !important;
  box-shadow: 0 0 0 3px rgba(37,99,235,.15) !important;
}

/* HOTFIX: CSS only – do NOT touch layout */
/* safe overrides */

body {
  background: #f6f7fb;
}

/* ensure content visible */
.main-content,
.page-content,
.it-page,
.app-content {
  display: block;
  visibility: visible;
}

/* table polish */
.table thead th {
  background: #f8fafc;
  font-weight: 600;
  font-size:13px;
}
.table tbody td {
  padding: 9px 12px;
}
/* ===== listings shared (figma-like) ===== */
.page-admin{padding:18px 18px 30px;}
.page-head{margin-bottom:12px;}
.page-title{font-size:22px;font-weight:800;letter-spacing:-0.02em;margin:0 0 6px;}
.page-breadcrumb{font-size:13px;color:#6b7280;}
.card-admin{border:1px solid rgba(0,0,0,.06);border-radius:16px;box-shadow:0 1px 2px rgba(0,0,0,.04);}
.card-admin .card-body{padding:18px;}
.admin-filterbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px;}
.filter-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.filter-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.searchbox{position:relative;min-width:340px;max-width:520px;flex:1;}
.searchbox input{width:100%;height:44px;border:0;outline:0;background:#f3f4f6;border-radius:12px;padding:0 14px 0 44px;font-size:14px;}
.search-ic{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#9ca3af;}
.selectbox{height:44px;border:0;outline:0;background:#f3f4f6;border-radius:12px;padding:0 12px;font-size:14px;color:#111827;min-width:140px;}
.select-compact{min-width:140px;}
.meta{font-size:14px;color:#374151;}
.meta-value{font-size:16px;}
.table-wrap{border:1px solid rgba(0,0,0,.06);border-radius:14px;overflow:hidden;background:#fff;}
.table-admin{width:100%;border-collapse:separate;border-spacing:0;}
.table-admin thead th{background:#fff;font-size:13px;color:#111827;font-weight:800;padding:14px 14px;border-bottom:1px solid rgba(0,0,0,.06);}
.table-admin tbody td{font-size:14px;color:#111827;padding:14px 14px;border-bottom:1px solid rgba(0,0,0,.06);vertical-align:middle;}
.table-admin tbody tr:last-child td{border-bottom:0;}
.td-title .title-text{font-weight:700;letter-spacing:-0.01em;}
.muted{color:#9ca3af;}
.chip{display:inline-flex;align-items:center;height:28px;padding:0 10px;border-radius:999px;border:1px solid rgba(0,0,0,.08);background:#fff;font-size:13px;color:#111827;font-weight:700;}
.pill{display:inline-flex;align-items:center;justify-content:center;min-width:52px;height:28px;padding:0 12px;border-radius:999px;font-size:13px;font-weight:800;letter-spacing:-0.01em;}
.pill-dark{background:#111827;color:#fff;}
.pill-light{background:#e5e7eb;color:#111827;}
.pill-danger{background:#e11d48;color:#fff;}
.btn-compact{height:34px;line-height:34px;padding:0 12px;border-radius:10px;font-size:13px;font-weight:700;}
.btn-outline{background:#fff;border:1px solid rgba(0,0,0,.12);color:#111827;}
.admin-pagination{display:flex;justify-content:center;margin-top:14px;}
.pager{display:flex;gap:8px;flex-wrap:wrap;}
.pg{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 12px;border-radius:10px;border:1px solid rgba(0,0,0,.08);background:#fff;color:#111827;font-size:13px;font-weight:700;text-decoration:none;}
.pg.num{width:34px;padding:0;}
.pg.active{background:#111827;color:#fff;border-color:#111827;}
.pg.disabled{opacity:.45;pointer-events:none;}
@media (max-width: 900px){
  .searchbox{min-width:220px;}
  .selectbox{min-width:120px;}
}

/* v20 - categories inputs: make borders visible (admin/categories) */
.it-admin-categories .form-control,
.it-admin-categories .form-select {
  border: 1px solid rgba(0, 0, 0, .28) !important;
  background-color: #fff !important;
}
.it-admin-categories .form-control:focus,
.it-admin-categories .form-select:focus {
  border-color: rgba(59, 130, 246, .75) !important;
  box-shadow: 0 0 0 0.2rem rgba(59, 130, 246, .18) !important;
}

/* ===============================
   Admin Table – Figma Clean Style
================================ */
.table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
  font-size: 13px;
  color: #111827;
}
.table thead th {
  background: #f8fafc;
  color: #374151;
  font-weight: 500;
  font-size:13px;
  padding: 10px 12px;
  border-bottom: 1px solid #e5e7eb;
  text-align: left;
  white-space: nowrap;
}
.table tbody td {
  padding: 9px 12px;
  border-bottom: 1px solid #f1f5f9;
  vertical-align: middle;
  color: #111827;
  line-height: 1.4;
}
.table tbody tr:last-child td {
  border-bottom: 0;
}
.table tbody tr:hover {
  background: #f9fafb;
}
.table .btn {
  padding: 4px 10px;
  font-size:13px;
  line-height: 1.2;
  border-radius: 6px;
}
/* iTamra Admin Dashboard - pixel-fit to Figma screenshot
 * - scoped using .it-dash-* classes
 */

.it-dash-head{padding:10px 2px 16px;}
.it-dash-head h1{margin:0; font-size:22px; font-weight:700; letter-spacing:-.3px;}
.it-dash-head .sub{margin-top:6px; font-size:13px; color:var(--muted);}

.it-dash-kpis{display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:18px;}

.it-kpi{
  display:block;
  background:var(--card);
  border:1px solid var(--border);
  border-radius:14px;
  padding:18px 18px 16px;
  box-shadow:0 10px 24px rgba(20,40,80,.06);
  text-decoration:none;
  color:inherit;
}
.it-kpi:hover{transform:translateY(-1px); transition:transform .12s ease;}

.it-kpi-top{display:flex; align-items:flex-start; justify-content:space-between; gap:12px;}
.it-kpi-label{font-size:13px; font-weight:600; color:#111827;}
.it-kpi-value{margin-top:14px; font-size:26px; font-weight:800; letter-spacing:-.5px;}

.it-kpi-delta{margin-top:8px; display:flex; align-items:center; gap:8px; font-size:13px;}
.it-kpi-delta .chip{display:inline-flex; align-items:center; gap:5px; font-weight:600;}
.it-kpi-delta .chip.up{color:#16a34a;}
.it-kpi-delta .chip.down{color:#dc2626;}
.it-kpi-delta .mut{color:var(--muted); font-weight:500;}

.it-kpi-ico{width:34px; height:34px; border-radius:10px; display:flex; align-items:center; justify-content:center; flex:0 0 34px;}
.it-kpi-ico svg{width:18px; height:18px;}

.it-ico-blue{background:#eaf2ff; color:#1f6fff;}
.it-ico-purple{background:#f2ecff; color:#7c3aed;}
.it-ico-green{background:#e9fbf1; color:#16a34a;}
.it-ico-orange{background:#fff3e7; color:#f97316;}
.it-ico-teal{background:#e9fbfb; color:#0f766e;}
.it-ico-pink{background:#ffe9f4; color:#db2777;}

.it-dash-panels{display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:18px;}

.it-panel{background:var(--card); border:1px solid var(--border); border-radius:14px; box-shadow:0 10px 24px rgba(20,40,80,.06);}
.it-panel-h{padding:16px 18px 12px; display:flex; align-items:center; gap:10px;}
.it-panel-h .t{font-size:14px; font-weight:700;}
.it-panel-b{padding:6px 18px 16px;}

.it-activity-list{display:flex; flex-direction:column;}
.it-activity-item{display:grid; grid-template-columns:12px 1fr auto; gap:12px; padding:14px 0; border-top:1px solid #eef2f7;}
.it-activity-item:first-child{border-top:0;}
.it-activity-dot{width:8px; height:8px; border-radius:999px; background:#3b82f6; margin-top:6px;}
.it-activity-title{font-size:13px; font-weight:700; color:#0f172a;}
.it-activity-sub{margin-top:2px; font-size:13px; color:var(--muted);}
.it-activity-ago{font-size:13px; color:var(--muted); padding-left:8px; white-space:nowrap;}

.it-member-rows{display:flex; flex-direction:column; gap:0;}
.it-member-row{display:flex; align-items:center; justify-content:space-between; padding:16px 0; border-top:1px solid #eef2f7;}
.it-member-row:first-child{border-top:0;}
.it-member-row .l{font-size:13px; color:#334155; font-weight:600;}
.it-member-row .n{font-size:16px; font-weight:800; color:#0f172a;}

.it-member-total{margin-top:8px; background:#eff6ff; border-radius:12px; padding:14px 14px; display:flex; align-items:center; justify-content:space-between;}
.it-member-total .l{font-size:13px; color:#1f6fff; font-weight:700;}
.it-member-total .n{font-size:18px; font-weight:900; color:#1f6fff;}

.it-iconline{display:inline-flex; align-items:center; justify-content:center; width:18px; height:18px; color:#0f172a; opacity:.75;}

@media (max-width: 1100px){
  .it-dash-kpis{grid-template-columns:repeat(2, minmax(0, 1fr));}
  .it-dash-panels{grid-template-columns:1fr;}
}
@media (max-width: 640px){
  .it-dash-kpis{grid-template-columns:1fr;}
}
/* iTamra Admin - Global layout unifier
 * Goal: make all admin pages (list/detail/edit) share identical spacing & header rhythm
 * Safe overrides only (no structural JS changes).
 */

/* Title/Breadcrumb Unify
 * - 모든 페이지는 admin/_partials/titlebar.php(= .it-page-header) 기준으로 통일
 * - 기존 템플릿의 page-title-box/breadcrumb/it-page-head 등은 혼재를 유발하므로 숨김
 */
.it-page .page-title-box,
.it-page .page-title-wrap,
.it-page .it-page-head,
.it-page .it-bc,
.it-page .breadcrumb{
  display:none !important;
}

/* 1) Prevent double padding when pages use their own wrappers */
.it-page{
  padding:20px 28px 32px;
}

@media (max-width: 1100px){
  .it-page{padding:14px 16px 22px;}
}

.it-page .page-admin{padding:0 !important;}
.it-page .container-fluid{padding-left:0 !important; padding-right:0 !important;}
.it-page .container, .it-page .container-lg, .it-page .container-md, .it-page .container-sm, .it-page .container-xl, .it-page .container-xxl{
  padding-left:0 !important; padding-right:0 !important;
}

/* 2) Unify "page header" components across screens */
.it-page .page-title-box,
.it-page .page-head{
  margin:0 0 12px !important;
  padding:0 !important;
}

/* Prefer the new titlebar partial look (full-width card-like header) */
.it-page .it-page-header{
  background:#fff;
  border:1px solid var(--border);
  border-radius:16px;
  padding:16px 18px;
  margin:0 0 14px;
  box-shadow:0 10px 24px rgba(20,40,80,.06);
}

@media (max-width: 1100px){
  .it-page .it-page-header{padding:14px 14px;}
}

/* Title typography */
.it-page .page-title-box h4,
.it-page .page-title,
.it-page .page-head .page-title{
  font-size:22px !important;
  font-weight:800 !important;
  letter-spacing:-0.02em !important;
  margin:0 0 6px !important;
}

/* Breadcrumb */
.it-page .page-title-right .breadcrumb,
.it-page .page-breadcrumb{
  font-size:13px !important;
  color:#6b7280 !important;
}
.it-page .breadcrumb-item + .breadcrumb-item::before{opacity:.65;}
.it-page .breadcrumb{margin:0 !important;}

/* 3) Normalize card spacing */
.it-page .card{border-radius:16px;}
.it-page .card .card-body{padding:18px;}
.it-page .card-admin .card-body{padding:18px;} /* keep existing */
.it-page .card + .card,
.it-page .card-admin + .card-admin{margin-top:14px;}

/* 4) Table rhythm */
.it-page .table{margin-bottom:0;}
.it-page .table thead th{font-size:13px; font-weight:700; color:#6b7280;}
.it-page .table tbody td{vertical-align:middle;}

/* common list table wrapper */
.it-page .it-table-card{
  background:#fff;
  border:1px solid var(--border);
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 10px 24px rgba(20,40,80,.05);
}
.it-page .it-table-card .table-responsive{margin:0;}
.it-page .it-table-card .table thead th{background:#f8fafc;}

/* 5) Form rhythm */
.it-page .form-label{font-size:13px; color:#6b7280; font-weight:600; margin-bottom:6px;}
.it-page .form-control, .it-page .form-select{height:44px; border-radius:12px;}
.it-page textarea.form-control{height:auto; min-height:160px;}

/* 6) Buttons alignment */
.it-page .btn{border-radius:12px;}
.it-page .btn.btn-sm{border-radius:10px;}

/* 7) Keep topbar + content edges identical */
.it-topbar{padding-left:22px !important; padding-right:22px !important;}

/* 8) Normalize bootstrap utility wrappers frequently used in legacy screens */
.it-page > .py-3{padding-top:0 !important; padding-bottom:0 !important;}
.it-page > .pt-3{padding-top:0 !important;}
.it-page > .pb-3{padding-bottom:0 !important;}
.it-page > .p-3{padding:0 !important;}
.it-page > .p-4{padding:0 !important;}
.it-page .container-fluid{padding-top:0 !important; padding-bottom:0 !important;}
.it-page .container-fluid.py-3{padding-top:0 !important; padding-bottom:0 !important;}

/* 9) Unify legacy <h1 class="h5"> headers to match page title */
.it-page h1.h5{
  font-size:22px !important;
  font-weight:800 !important;
  letter-spacing:-0.02em !important;
  margin:0 0 12px !important;
}

/* 10) Common header action row alignment */
.it-page .d-flex.align-items-center.mb-3{margin-bottom:12px !important;}
.it-page .d-flex.align-items-center.mb-3 .btn{height:38px;}
.it-page .d-flex.align-items-center.mb-3 .ms-auto{gap:8px;}

/* 11) Tabs/subtabs spacing consistency */
.it-page .nav-tabs{margin-bottom:12px !important;}
.it-page .nav-pills{gap:6px; margin-bottom:12px !important;}
.it-page .nav-link{border-radius:12px;}

/* 12) Table container padding (avoid extra padding in nested cards) */
.it-page .card .table-responsive{margin:0;}

/* 13) Prevent oversized headings inside cards */
.it-page .card h2, .it-page .card h3{margin:0 0 10px !important;}

/* 14) Ensure ALL inputs show a clear border (some legacy screens use plain <input> without .form-control) */
.it-admin-wrap input[type="text"],
.it-admin-wrap input[type="email"],
.it-admin-wrap input[type="password"],
.it-admin-wrap input[type="number"],
.it-admin-wrap input[type="search"],
.it-admin-wrap input[type="tel"],
.it-admin-wrap input[type="url"],
.it-admin-wrap input[type="date"],
.it-admin-wrap input[type="datetime-local"],
.it-admin-wrap select,
.it-admin-wrap textarea{
  border:1px solid var(--border) !important;
  background:#fff !important;
  border-radius:12px !important;
  outline:none;
}

.it-admin-wrap input:focus,
.it-admin-wrap select:focus,
.it-admin-wrap textarea:focus{
  border-color:var(--primary) !important;
  box-shadow:0 0 0 .2rem var(--ring) !important;
}


/* === UI polish: panel body + form field breathing room (admin/categories etc.) === */
.it-panel-body{padding:18px;}
@media (max-width: 767px){
  .it-panel-body{padding:14px;}
}

/* Inputs inside panels: slightly taller + more inner padding */
.it-panel-body .form-control,
.it-panel-body .form-select{
  min-height:44px;
  padding:.6rem .75rem;
  border-radius:12px;
}

/* Labels: a bit more separation */
.it-panel-body .form-label{margin-bottom:.35rem;}

/* Tables inside panels should not stick to the edge */
.it-panel-body .table{margin-bottom:0;}

/* admin-members.css
 * Scoped styles for /admin/members/regular (Figma-like)
 */

.it-members-regular .it-panel{ padding:18px 18px 14px; }

.it-members-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}

.it-members-search{
  flex: 1 1 auto;
  display:flex;
  align-items:center;
  gap:10px;
  background:#f3f4f6;
  border:1px solid #eef2f7;
  border-radius:12px;
  padding: 10px 14px;
  min-height:44px;
}

.it-members-search-icon{ color:#9ca3af; display:flex; }

.it-members-search input{
  width:100%;
  border:0;
  outline:0;
  background:transparent;
  font-size:14px;
  color:#111827;
}

.it-members-toolbar-right{
  flex: 0 0 auto;
  display:flex;
  align-items:center;
  gap:14px;
  color:#6b7280;
  font-size:14px;
}

.it-members-total strong{ color:#111827; font-weight:700; }

.it-members-select{
  border:0;
  outline:0;
  background:#f3f4f6;
  border:1px solid #eef2f7;
  border-radius:12px;
  padding: 10px 12px;
  min-height:44px;
  font-size:14px;
  color:#111827;
}

.it-members-table-wrap{ margin-top:14px; overflow:hidden; border-radius:14px; border:1px solid #eef2f7; }

.it-members-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  background:#fff;
}

.it-members-table thead th{
  text-align:left;
  font-size:13px;
  font-weight:700;
  color:#111827;
  padding:14px 16px;
  border-bottom:1px solid #eef2f7;
  background:#fff;
}

.it-members-table tbody td{
  font-size:13px;
  color:#111827;
  padding:14px 16px;
  border-bottom:1px solid #f1f5f9;
  vertical-align:middle;
}

.it-members-table tbody tr:last-child td{ border-bottom:0; }

.it-members-actions{ display:flex; gap:10px; }

.it-members-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 7px 12px;
  border-radius:10px;
  border:1px solid #e5e7eb;
  background:#fff;
  color:#111827;
  font-size:13px;
  font-weight:600;
  text-decoration:none;
  line-height:1;
}

.it-members-btn:hover{ background:#f9fafb; }

.it-members-btn.is-disabled,
.it-members-btn:disabled{
  opacity:.55;
  cursor:not-allowed;
}

.it-members-empty{
  text-align:center;
  padding:48px 12px;
  color:#94a3b8;
}

/* badges: match Figma chips */
.it-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 6px 12px;
  border-radius:999px;
  font-size:13px;
  font-weight:700;
}
.it-badge.ok{ background:#111827; color:#fff; }
.it-badge.no{ background:#e11d48; color:#fff; }

/* pagination */
.it-members-pagination{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:16px 4px 6px;
}

.it-page-nums{ display:flex; align-items:center; gap:8px; }

.it-page-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding: 8px 12px;
  border-radius:10px;
  color:#111827;
  text-decoration:none;
  font-size:13px;
  font-weight:600;
}

.it-page-link.num{ min-width:36px; padding: 8px 10px; }

.it-page-link:hover{ background:#f3f4f6; }

.it-page-link.is-active{
  background:#fff;
  border:1px solid #e5e7eb;
  box-shadow: 0 1px 0 rgba(0,0,0,.02);
}

.it-page-link.is-disabled{
  opacity:.45;
  pointer-events:none;
}
/* Banner Ad (Figma: /banner-ad) */

.bad-wrap{padding:24px 24px 40px;}
.bad-head{display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:14px;}
.bad-title{font-size:28px; font-weight:800; letter-spacing:-0.02em; color:#111827;}
.bad-sub{margin-top:6px; font-size:13px; color:#6b7280;}

.bad-card{background:#fff; border:1px solid #e5e7eb; border-radius:14px; padding:16px; box-shadow:0 1px 0 rgba(17,24,39,.02);}

.bad-filter{display:flex; align-items:center; gap:12px; flex-wrap:nowrap;}
.bad-right{margin-left:auto; display:flex; align-items:center; gap:12px;}
.bad-total{font-size:13px; color:#6b7280;}

.bad-search{flex:1 1 300px; display:flex; align-items:center; gap:10px; background:#f3f4f6; border:1px solid #e5e7eb; border-radius:12px; padding:10px 12px;}
.bad-search input{width:100%; border:0; background:transparent; outline:none; font-size:14px; color:#111827;}
.bad-icon{font-size:14px; opacity:.65}

.bad-select{min-width:120px; background:#f3f4f6; border:1px solid #e5e7eb; border-radius:12px; padding:10px 12px; font-size:14px; color:#111827; outline:none;}

.bad-table-wrap{margin-top:14px; border:1px solid #e5e7eb; border-radius:12px; overflow-x:auto;}
.bad-table{width:100%; border-collapse:separate; border-spacing:0; table-layout:auto;}
.bad-table thead th{background:#f9fafb; color:#6b7280; font-size:13px; font-weight:700; text-align:left; padding:12px 14px; border-bottom:1px solid #e5e7eb; white-space:nowrap;}
.bad-table tbody td{padding:13px 14px; border-bottom:1px solid #eef2f7; font-size:13px; color:#111827; vertical-align:middle; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.bad-table tbody tr:last-child td{border-bottom:0;}
.bad-table tbody tr:hover td{background:#fafafa;}
.bad-strong{font-weight:700;}
.bad-money{font-weight:700;}
.bad-empty{padding:28px 14px; text-align:center; color:#9ca3af; font-size:14px;}

.bad-chip{display:inline-flex; align-items:center; padding:6px 10px; border-radius:999px; background:#f3f4f6; border:1px solid #e5e7eb; font-size:13px; color:#111827;}

.bad-badge{display:inline-flex; align-items:center; padding:6px 10px; border-radius:999px; font-size:13px; font-weight:800;}
.badge-applied{background:#fef9c3; color:#a16207;}
.badge-approved{background:#dcfce7; color:#15803d;}
.badge-rejected{background:#fee2e2; color:#b91c1c;}
.badge-cancelled{background:#f3f4f6; color:#6b7280;}

.bad-actions{display:flex; gap:8px; align-items:center; justify-content:flex-end; flex-wrap:wrap;}
.bad-btn{display:inline-flex; align-items:center; justify-content:center; height:34px; padding:0 12px; border-radius:10px; border:1px solid #e5e7eb; background:#fff; font-size:13px; font-weight:700; color:#111827; text-decoration:none; cursor:pointer;}
.bad-btn:hover{background:#f9fafb;}
.bad-btn-primary{background:#111827; border-color:#111827; color:#fff;}
.bad-btn-primary:hover{background:#0b0f19;}
.bad-btn-danger{background:#e11d48; border-color:#e11d48; color:#fff;}
.bad-btn-danger:hover{background:#be123c;}

.bad-pager{display:flex; justify-content:center; align-items:center; gap:10px; padding:18px 0 6px;}
.bad-page{display:inline-flex; align-items:center; justify-content:center; min-width:34px; height:34px; padding:0 10px; border-radius:10px; border:1px solid transparent; color:#111827; text-decoration:none; font-size:13px; font-weight:700;}
.bad-page:hover{background:#f3f4f6;}
.bad-page.is-on{border-color:#e5e7eb; background:#fff;}

.bad-detail{display:grid; grid-template-columns: 1fr 1fr; gap:12px 18px;}
.bad-row{display:flex; gap:10px; align-items:center; padding:10px 12px; border:1px solid #e5e7eb; background:#fafafa; border-radius:12px;}
.bad-row .k{width:90px; color:#6b7280; font-size:13px; font-weight:700;}
.bad-row .v{flex:1; color:#111827; font-size:14px; font-weight:700;}

@media (max-width: 960px){
  .bad-wrap{padding:16px;}
  .bad-detail{grid-template-columns:1fr;}
  .bad-right{width:100%; justify-content:flex-end;}
}
/* public/assets/itamra/css/admin-category.css
 * Category Admin page (operational layout)
 * Scoped styles for /admin/category
 */

.category-page{
  display:flex;
  gap:16px;
  align-items:stretch;
}

/* panels */
.category-panel{
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  border-radius:16px;
  overflow:hidden;
  min-height: 520px;
}

.category-panel--tree{
  width:380px;
  flex:0 0 380px;
}

.category-panel--detail{
  flex:1 1 auto;
  min-width: 0;
}

.panel-head{
  padding:14px 14px;
  border-bottom:1px solid rgba(15,23,42,.08);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  background: rgba(248,250,252,.9);
}

.panel-title{
  font-weight:700;
  letter-spacing:-.2px;
  display:flex;
  align-items:baseline;
  gap:10px;
}

.panel-meta{
  font-size:13px;
  color: rgba(15,23,42,.65);
  font-weight:500;
}

.panel-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.panel-body{
  padding:14px;
}

.panel-body--compact{
  padding:12px 14px 10px;
}

/* search */
.cat-search-help{
  margin-top:6px;
  font-size:13px;
  color: rgba(15,23,42,.55);
}

/* tree */
.cat-tree{
  padding:6px 0 10px;
  max-height: calc(100vh - 250px);
  overflow:auto;
}

.cat-node{
  cursor:pointer;
  user-select:none;
}

.cat-node-row{
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  border-radius:12px;
  margin:2px 8px;
}

.cat-node:hover .cat-node-row{
  background: rgba(15,23,42,.04);
}

.cat-node.is-selected .cat-node-row{
  background: rgba(37,99,235,.08);
  outline: 1px solid rgba(37,99,235,.18);
}

.cat-toggle{
  width:22px;
  height:22px;
  border:none;
  background:transparent;
  border-radius:8px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color: rgba(15,23,42,.7);
}

.cat-toggle:hover{
  background: rgba(15,23,42,.06);
}

.cat-toggle-spacer{
  width:22px;
  height:22px;
  display:inline-block;
}

.cat-icon{
  width:28px;
  height:28px;
  border-radius:10px;
  object-fit:cover;
  border:1px solid rgba(15,23,42,.08);
  background:#fff;
}

.cat-icon.placeholder{
  background: rgba(15,23,42,.06);
  border-style:dashed;
}

.cat-title{
  min-width:0;
  flex:1 1 auto;
}

.cat-name{
  font-weight:650;
  line-height:1.2;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  display:flex;
  align-items:center;
  gap:8px;
}

.cat-name-text{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
}

.cat-badge{
  font-size:13px;
  line-height:1;
  padding:5px 9px;
  border-radius:999px;
  border:1px solid rgba(15,23,42,.12);
  background: rgba(15,23,42,.06);
  color: rgba(15,23,42,.85);
  flex:0 0 auto;
}

.cat-badge.on{
  background: rgba(15,23,42,.90);
  border-color: rgba(15,23,42,.90);
  color:#fff;
}

.cat-badge.off{
  background: rgba(148,163,184,.18);
  border-color: rgba(148,163,184,.25);
  color: rgba(15,23,42,.55);
}

.cat-order{
  font-size:13px;
  color: rgba(15,23,42,.55);
  flex:0 0 auto;
}

.cat-meta{
  margin-top:2px;
  font-size:13px;
  color: rgba(15,23,42,.6);
}

/* right sections */
.cat-sections{
  display:flex;
  flex-direction:column;
  gap:14px;
}

.cat-section{
  border:1px solid rgba(15,23,42,.08);
  border-radius:16px;
  padding:14px;
  background: #fff;
}

.cat-section-title{
  font-weight:700;
  margin-bottom:10px;
  color: rgba(15,23,42,.92);
  letter-spacing:-.2px;
}

.cat-section--hint{
  border:none;
  padding:0;
}

/* icon preview */
.cat-icon-preview-wrap{
  display:flex;
  align-items:center;
  gap:12px;
  min-height:84px;
  padding:10px;
  border-radius:16px;
  border:1px dashed rgba(15,23,42,.15);
  background: rgba(248,250,252,.8);
}

#cat-icon-preview{
  width:72px;
  height:72px;
  border-radius:16px;
  border:1px solid rgba(15,23,42,.08);
  object-fit:cover;
}

.cat-icon-preview-empty{
  font-size:13px;
  color: rgba(15,23,42,.55);
}

/* responsive */
@media (max-width: 1100px){
  .category-page{
    flex-direction:column;
  }
  .category-panel--tree{
    width:100%;
    flex: 1 1 auto;
  }
  .cat-tree{
    max-height: 360px;
  }
}

/* Banner Ad (Figma: /banner-ad) */

.bad-wrap{padding:24px 24px 40px;}
.bad-head{display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:14px;}
.bad-title{font-size:28px; font-weight:800; letter-spacing:-0.02em; color:#111827;}
.bad-sub{margin-top:6px; font-size:13px; color:#6b7280;}

.bad-card{background:#fff; border:1px solid #e5e7eb; border-radius:14px; padding:16px; box-shadow:0 1px 0 rgba(17,24,39,.02);}

.bad-filter{display:flex; align-items:center; gap:12px; flex-wrap:wrap;}
.bad-right{margin-left:auto; display:flex; align-items:center; gap:12px;}
.bad-total{font-size:13px; color:#6b7280;}

.bad-search{flex:1 1 420px; display:flex; align-items:center; gap:10px; background:#f3f4f6; border:1px solid #e5e7eb; border-radius:12px; padding:10px 12px;}
.bad-search input{width:100%; border:0; background:transparent; outline:none; font-size:14px; color:#111827;}
.bad-icon{font-size:14px; opacity:.65}

.bad-select{min-width:160px; background:#f3f4f6; border:1px solid #e5e7eb; border-radius:12px; padding:10px 12px; font-size:14px; color:#111827; outline:none;}

.bad-table-wrap{margin-top:14px; border:1px solid #e5e7eb; border-radius:12px; overflow-x:auto;}
.bad-table{width:100%; border-collapse:separate; border-spacing:0; table-layout:auto;}
.bad-table thead th{background:#f9fafb; color:#6b7280; font-size:13px; font-weight:700; text-align:left; padding:12px 14px; border-bottom:1px solid #e5e7eb; white-space:nowrap;}
.bad-table tbody td{padding:13px 14px; border-bottom:1px solid #eef2f7; font-size:13px; color:#111827; vertical-align:middle; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.bad-table tbody tr:last-child td{border-bottom:0;}
.bad-table tbody tr:hover td{background:#fafafa;}
.bad-strong{font-weight:700;}
.bad-money{font-weight:700;}
.bad-empty{padding:28px 14px; text-align:center; color:#9ca3af; font-size:14px;}

.bad-chip{display:inline-flex; align-items:center; padding:6px 10px; border-radius:999px; background:#f3f4f6; border:1px solid #e5e7eb; font-size:13px; color:#111827;}

.bad-badge{display:inline-flex; align-items:center; padding:6px 10px; border-radius:999px; font-size:13px; font-weight:800;}
.badge-applied{background:#fef9c3; color:#a16207;}
.badge-approved{background:#dcfce7; color:#15803d;}
.badge-rejected{background:#fee2e2; color:#b91c1c;}
.badge-cancelled{background:#f3f4f6; color:#6b7280;}

.bad-actions{display:flex; gap:8px; align-items:center; justify-content:flex-end; flex-wrap:wrap;}
.bad-btn{display:inline-flex; align-items:center; justify-content:center; height:34px; padding:0 12px; border-radius:10px; border:1px solid #e5e7eb; background:#fff; font-size:13px; font-weight:700; color:#111827; text-decoration:none; cursor:pointer;}
.bad-btn:hover{background:#f9fafb;}
.bad-btn-primary{background:#111827; border-color:#111827; color:#fff;}
.bad-btn-primary:hover{background:#0b0f19;}
.bad-btn-danger{background:#e11d48; border-color:#e11d48; color:#fff;}
.bad-btn-danger:hover{background:#be123c;}

.bad-pager{display:flex; justify-content:center; align-items:center; gap:10px; padding:18px 0 6px;}
.bad-page{display:inline-flex; align-items:center; justify-content:center; min-width:34px; height:34px; padding:0 10px; border-radius:10px; border:1px solid transparent; color:#111827; text-decoration:none; font-size:13px; font-weight:700;}
.bad-page:hover{background:#f3f4f6;}
.bad-page.is-on{border-color:#e5e7eb; background:#fff;}

.bad-detail{display:grid; grid-template-columns: 1fr 1fr; gap:12px 18px;}
.bad-row{display:flex; gap:10px; align-items:center; padding:10px 12px; border:1px solid #e5e7eb; background:#fafafa; border-radius:12px;}
.bad-row .k{width:90px; color:#6b7280; font-size:13px; font-weight:700;}
.bad-row .v{flex:1; color:#111827; font-size:14px; font-weight:700;}

@media (max-width: 960px){
  .bad-wrap{padding:16px;}
  .bad-detail{grid-template-columns:1fr;}
  .bad-right{width:100%; justify-content:flex-end;}
}

/* public/assets/itamra/css/admin-category.css
 * Category Admin page (operational layout)
 * Scoped styles for /admin/category
 */

.category-page{
  display:flex;
  gap:16px;
  align-items:stretch;
}

/* panels */
.category-panel{
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  border-radius:16px;
  overflow:hidden;
  min-height: 520px;
}

.category-panel--tree{
  width:380px;
  flex:0 0 380px;
}

.category-panel--detail{
  flex:1 1 auto;
  min-width: 0;
}

.panel-head{
  padding:14px 14px;
  border-bottom:1px solid rgba(15,23,42,.08);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  background: rgba(248,250,252,.9);
}

.panel-title{
  font-weight:700;
  letter-spacing:-.2px;
  display:flex;
  align-items:baseline;
  gap:10px;
}

.panel-meta{
  font-size:13px;
  color: rgba(15,23,42,.65);
  font-weight:500;
}

.panel-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.panel-body{
  padding:14px;
}

.panel-body--compact{
  padding:12px 14px 10px;
}

/* search */
.cat-search-help{
  margin-top:6px;
  font-size:13px;
  color: rgba(15,23,42,.55);
}

/* tree */
.cat-tree{
  padding:6px 0 10px;
  max-height: calc(100vh - 250px);
  overflow:auto;
}

.cat-node{
  cursor:pointer;
  user-select:none;
}

.cat-node-row{
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  border-radius:12px;
  margin:2px 8px;
}

.cat-node:hover .cat-node-row{
  background: rgba(15,23,42,.04);
}

.cat-node.is-selected .cat-node-row{
  background: rgba(37,99,235,.08);
  outline: 1px solid rgba(37,99,235,.18);
}

.cat-toggle{
  width:22px;
  height:22px;
  border:none;
  background:transparent;
  border-radius:8px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color: rgba(15,23,42,.7);
}

.cat-toggle:hover{
  background: rgba(15,23,42,.06);
}

.cat-toggle-spacer{
  width:22px;
  height:22px;
  display:inline-block;
}

.cat-icon{
  width:28px;
  height:28px;
  border-radius:10px;
  object-fit:cover;
  border:1px solid rgba(15,23,42,.08);
  background:#fff;
}

.cat-icon.placeholder{
  background: rgba(15,23,42,.06);
  border-style:dashed;
}

.cat-title{
  min-width:0;
  flex:1 1 auto;
}

.cat-name{
  font-weight:650;
  line-height:1.2;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  display:flex;
  align-items:center;
  gap:8px;
}

.cat-name-text{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
}

.cat-badge{
  font-size:13px;
  line-height:1;
  padding:5px 9px;
  border-radius:999px;
  border:1px solid rgba(15,23,42,.12);
  background: rgba(15,23,42,.06);
  color: rgba(15,23,42,.85);
  flex:0 0 auto;
}

.cat-badge.on{
  background: rgba(15,23,42,.90);
  border-color: rgba(15,23,42,.90);
  color:#fff;
}

.cat-badge.off{
  background: rgba(148,163,184,.18);
  border-color: rgba(148,163,184,.25);
  color: rgba(15,23,42,.55);
}

.cat-order{
  font-size:13px;
  color: rgba(15,23,42,.55);
  flex:0 0 auto;
}

.cat-meta{
  margin-top:2px;
  font-size:13px;
  color: rgba(15,23,42,.6);
}

/* right sections */
.cat-sections{
  display:flex;
  flex-direction:column;
  gap:14px;
}

.cat-section{
  border:1px solid rgba(15,23,42,.08);
  border-radius:16px;
  padding:14px;
  background: #fff;
}

.cat-section-title{
  font-weight:700;
  margin-bottom:10px;
  color: rgba(15,23,42,.92);
  letter-spacing:-.2px;
}

.cat-section--hint{
  border:none;
  padding:0;
}

/* icon preview */
.cat-icon-preview-wrap{
  display:flex;
  align-items:center;
  gap:12px;
  min-height:84px;
  padding:10px;
  border-radius:16px;
  border:1px dashed rgba(15,23,42,.15);
  background: rgba(248,250,252,.8);
}

#cat-icon-preview{
  width:72px;
  height:72px;
  border-radius:16px;
  border:1px solid rgba(15,23,42,.08);
  object-fit:cover;
}

.cat-icon-preview-empty{
  font-size:13px;
  color: rgba(15,23,42,.55);
}

/* responsive */
@media (max-width: 1100px){
  .category-page{
    flex-direction:column;
  }
  .category-panel--tree{
    width:100%;
    flex: 1 1 auto;
  }
  .cat-tree{
    max-height: 360px;
  }
}

/* iTamra Admin Dashboard - pixel-fit to Figma screenshot
 * - scoped using .it-dash-* classes
 */

.it-dash-head{padding:10px 2px 16px;}
.it-dash-head h1{margin:0; font-size:22px; font-weight:700; letter-spacing:-.3px;}
.it-dash-head .sub{margin-top:6px; font-size:13px; color:var(--muted);}

.it-dash-kpis{display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:18px;}

.it-kpi{
  display:block;
  background:var(--card);
  border:1px solid var(--border);
  border-radius:14px;
  padding:18px 18px 16px;
  box-shadow:0 10px 24px rgba(20,40,80,.06);
  text-decoration:none;
  color:inherit;
}
.it-kpi:hover{transform:translateY(-1px); transition:transform .12s ease;}

.it-kpi-top{display:flex; align-items:flex-start; justify-content:space-between; gap:12px;}
.it-kpi-label{font-size:13px; font-weight:600; color:#111827;}
.it-kpi-value{margin-top:14px; font-size:26px; font-weight:800; letter-spacing:-.5px;}

.it-kpi-delta{margin-top:8px; display:flex; align-items:center; gap:8px; font-size:13px;}
.it-kpi-delta .chip{display:inline-flex; align-items:center; gap:5px; font-weight:600;}
.it-kpi-delta .chip.up{color:#16a34a;}
.it-kpi-delta .chip.down{color:#dc2626;}
.it-kpi-delta .mut{color:var(--muted); font-weight:500;}

.it-kpi-ico{width:34px; height:34px; border-radius:10px; display:flex; align-items:center; justify-content:center; flex:0 0 34px;}
.it-kpi-ico svg{width:18px; height:18px;}

.it-ico-blue{background:#eaf2ff; color:#1f6fff;}
.it-ico-purple{background:#f2ecff; color:#7c3aed;}
.it-ico-green{background:#e9fbf1; color:#16a34a;}
.it-ico-orange{background:#fff3e7; color:#f97316;}
.it-ico-teal{background:#e9fbfb; color:#0f766e;}
.it-ico-pink{background:#ffe9f4; color:#db2777;}

.it-dash-panels{display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:18px;}

.it-panel{background:var(--card); border:1px solid var(--border); border-radius:14px; box-shadow:0 10px 24px rgba(20,40,80,.06);}
.it-panel-h{padding:16px 18px 12px; display:flex; align-items:center; gap:10px;}
.it-panel-h .t{font-size:14px; font-weight:700;}
.it-panel-b{padding:6px 18px 16px;}

.it-activity-list{display:flex; flex-direction:column;}
.it-activity-item{display:grid; grid-template-columns:12px 1fr auto; gap:12px; padding:14px 0; border-top:1px solid #eef2f7;}
.it-activity-item:first-child{border-top:0;}
.it-activity-dot{width:8px; height:8px; border-radius:999px; background:#3b82f6; margin-top:6px;}
.it-activity-title{font-size:13px; font-weight:700; color:#0f172a;}
.it-activity-sub{margin-top:2px; font-size:13px; color:var(--muted);}
.it-activity-ago{font-size:13px; color:var(--muted); padding-left:8px; white-space:nowrap;}

.it-member-rows{display:flex; flex-direction:column; gap:0;}
.it-member-row{display:flex; align-items:center; justify-content:space-between; padding:16px 0; border-top:1px solid #eef2f7;}
.it-member-row:first-child{border-top:0;}
.it-member-row .l{font-size:13px; color:#334155; font-weight:600;}
.it-member-row .n{font-size:16px; font-weight:800; color:#0f172a;}

.it-member-total{margin-top:8px; background:#eff6ff; border-radius:12px; padding:14px 14px; display:flex; align-items:center; justify-content:space-between;}
.it-member-total .l{font-size:13px; color:#1f6fff; font-weight:700;}
.it-member-total .n{font-size:18px; font-weight:900; color:#1f6fff;}

.it-iconline{display:inline-flex; align-items:center; justify-content:center; width:18px; height:18px; color:#0f172a; opacity:.75;}

@media (max-width: 1100px){
  .it-dash-kpis{grid-template-columns:repeat(2, minmax(0, 1fr));}
  .it-dash-panels{grid-template-columns:1fr;}
}
@media (max-width: 640px){
  .it-dash-kpis{grid-template-columns:1fr;}
}

/* admin-members.css
 * Scoped styles for /admin/members/regular (Figma-like)
 */

.it-members-regular .it-panel{ padding:18px 18px 14px; }

.it-members-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}

.it-members-search{
  flex: 1 1 auto;
  display:flex;
  align-items:center;
  gap:10px;
  background:#f3f4f6;
  border:1px solid #eef2f7;
  border-radius:12px;
  padding: 10px 14px;
  min-height:44px;
}

.it-members-search-icon{ color:#9ca3af; display:flex; }

.it-members-search input{
  width:100%;
  border:0;
  outline:0;
  background:transparent;
  font-size:14px;
  color:#111827;
}

.it-members-toolbar-right{
  flex: 0 0 auto;
  display:flex;
  align-items:center;
  gap:14px;
  color:#6b7280;
  font-size:14px;
}

.it-members-total strong{ color:#111827; font-weight:700; }

.it-members-select{
  border:0;
  outline:0;
  background:#f3f4f6;
  border:1px solid #eef2f7;
  border-radius:12px;
  padding: 10px 12px;
  min-height:44px;
  font-size:14px;
  color:#111827;
}

.it-members-table-wrap{ margin-top:14px; overflow:hidden; border-radius:14px; border:1px solid #eef2f7; }

.it-members-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  background:#fff;
}

.it-members-table thead th{
  text-align:left;
  font-size:13px;
  font-weight:700;
  color:#111827;
  padding:14px 16px;
  border-bottom:1px solid #eef2f7;
  background:#fff;
}

.it-members-table tbody td{
  font-size:13px;
  color:#111827;
  padding:14px 16px;
  border-bottom:1px solid #f1f5f9;
  vertical-align:middle;
}

.it-members-table tbody tr:last-child td{ border-bottom:0; }

.it-members-actions{ display:flex; gap:10px; }

.it-members-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 7px 12px;
  border-radius:10px;
  border:1px solid #e5e7eb;
  background:#fff;
  color:#111827;
  font-size:13px;
  font-weight:600;
  text-decoration:none;
  line-height:1;
}

.it-members-btn:hover{ background:#f9fafb; }

.it-members-btn.is-disabled,
.it-members-btn:disabled{
  opacity:.55;
  cursor:not-allowed;
}

.it-members-empty{
  text-align:center;
  padding:48px 12px;
  color:#94a3b8;
}

/* badges: match Figma chips */
.it-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 6px 12px;
  border-radius:999px;
  font-size:13px;
  font-weight:700;
}
.it-badge.ok{ background:#111827; color:#fff; }
.it-badge.no{ background:#e11d48; color:#fff; }

/* pagination */
.it-members-pagination{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:16px 4px 6px;
}

.it-page-nums{ display:flex; align-items:center; gap:8px; }

.it-page-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding: 8px 12px;
  border-radius:10px;
  color:#111827;
  text-decoration:none;
  font-size:13px;
  font-weight:600;
}

.it-page-link.num{ min-width:36px; padding: 8px 10px; }

.it-page-link:hover{ background:#f3f4f6; }

.it-page-link.is-active{
  background:#fff;
  border:1px solid #e5e7eb;
  box-shadow: 0 1px 0 rgba(0,0,0,.02);
}

.it-page-link.is-disabled{
  opacity:.45;
  pointer-events:none;
}

/* ===== listings shared (figma-like) ===== */
.page-admin{padding:18px 18px 30px;}
.page-head{margin-bottom:12px;}
.page-title{font-size:22px;font-weight:800;letter-spacing:-0.02em;margin:0 0 6px;}
.page-breadcrumb{font-size:13px;color:#6b7280;}
.card-admin{border:1px solid rgba(0,0,0,.06);border-radius:16px;box-shadow:0 1px 2px rgba(0,0,0,.04);}
.card-admin .card-body{padding:18px;}
.admin-filterbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px;}
.filter-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.filter-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.searchbox{position:relative;min-width:340px;max-width:520px;flex:1;}
.searchbox input{width:100%;height:44px;border:0;outline:0;background:#f3f4f6;border-radius:12px;padding:0 14px 0 44px;font-size:14px;}
.search-ic{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#9ca3af;}
.selectbox{height:44px;border:0;outline:0;background:#f3f4f6;border-radius:12px;padding:0 12px;font-size:14px;color:#111827;min-width:140px;}
.select-compact{min-width:140px;}
.meta{font-size:14px;color:#374151;}
.meta-value{font-size:16px;}
.table-wrap{border:1px solid rgba(0,0,0,.06);border-radius:14px;overflow:hidden;background:#fff;}
.table-admin{width:100%;border-collapse:separate;border-spacing:0;}
.table-admin thead th{background:#fff;font-size:13px;color:#111827;font-weight:800;padding:14px 14px;border-bottom:1px solid rgba(0,0,0,.06);}
.table-admin tbody td{font-size:14px;color:#111827;padding:14px 14px;border-bottom:1px solid rgba(0,0,0,.06);vertical-align:middle;}
.table-admin tbody tr:last-child td{border-bottom:0;}
.td-title .title-text{font-weight:700;letter-spacing:-0.01em;}
.muted{color:#9ca3af;}
.chip{display:inline-flex;align-items:center;height:28px;padding:0 10px;border-radius:999px;border:1px solid rgba(0,0,0,.08);background:#fff;font-size:13px;color:#111827;font-weight:700;}
.pill{display:inline-flex;align-items:center;justify-content:center;min-width:52px;height:28px;padding:0 12px;border-radius:999px;font-size:13px;font-weight:800;letter-spacing:-0.01em;}
.pill-dark{background:#111827;color:#fff;}
.pill-light{background:#e5e7eb;color:#111827;}
.pill-danger{background:#e11d48;color:#fff;}
.btn-compact{height:34px;line-height:34px;padding:0 12px;border-radius:10px;font-size:13px;font-weight:700;}
.btn-outline{background:#fff;border:1px solid rgba(0,0,0,.12);color:#111827;}
.admin-pagination{display:flex;justify-content:center;margin-top:14px;}
.pager{display:flex;gap:8px;flex-wrap:wrap;}
.pg{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 12px;border-radius:10px;border:1px solid rgba(0,0,0,.08);background:#fff;color:#111827;font-size:13px;font-weight:700;text-decoration:none;}
.pg.num{width:34px;padding:0;}
.pg.active{background:#111827;color:#fff;border-color:#111827;}
.pg.disabled{opacity:.45;pointer-events:none;}
@media (max-width: 900px){
  .searchbox{min-width:220px;}
  .selectbox{min-width:120px;}
}

/* v20 - categories inputs: make borders visible (admin/categories) */
.it-admin-categories .form-control,
.it-admin-categories .form-select {
  border: 1px solid rgba(0, 0, 0, .28) !important;
  background-color: #fff !important;
}
.it-admin-categories .form-control:focus,
.it-admin-categories .form-select:focus {
  border-color: rgba(59, 130, 246, .75) !important;
  box-shadow: 0 0 0 0.2rem rgba(59, 130, 246, .18) !important;
}

/* iTamra Admin - Global layout unifier
 * Goal: make all admin pages (list/detail/edit) share identical spacing & header rhythm
 * Safe overrides only (no structural JS changes).
 */

/* Title/Breadcrumb Unify
 * - 모든 페이지는 admin/_partials/titlebar.php(= .it-page-header) 기준으로 통일
 * - 기존 템플릿의 page-title-box/breadcrumb/it-page-head 등은 혼재를 유발하므로 숨김
 */
.it-page .page-title-box,
.it-page .page-title-wrap,
.it-page .it-page-head,
.it-page .it-bc,
.it-page .breadcrumb{
  display:none !important;
}

/* 1) Prevent double padding when pages use their own wrappers */
.it-page{
  padding:20px 28px 32px;
}

@media (max-width: 1100px){
  .it-page{padding:14px 16px 22px;}
}

.it-page .page-admin{padding:0 !important;}
.it-page .container-fluid{padding-left:0 !important; padding-right:0 !important;}
.it-page .container, .it-page .container-lg, .it-page .container-md, .it-page .container-sm, .it-page .container-xl, .it-page .container-xxl{
  padding-left:0 !important; padding-right:0 !important;
}

/* 2) Unify "page header" components across screens */
.it-page .page-title-box,
.it-page .page-head{
  margin:0 0 12px !important;
  padding:0 !important;
}

/* Prefer the new titlebar partial look (full-width card-like header) */
.it-page .it-page-header{
  background:#fff;
  border:1px solid var(--border);
  border-radius:16px;
  padding:16px 18px;
  margin:0 0 14px;
  box-shadow:0 10px 24px rgba(20,40,80,.06);
}

@media (max-width: 1100px){
  .it-page .it-page-header{padding:14px 14px;}
}

/* Title typography */
.it-page .page-title-box h4,
.it-page .page-title,
.it-page .page-head .page-title{
  font-size:22px !important;
  font-weight:800 !important;
  letter-spacing:-0.02em !important;
  margin:0 0 6px !important;
}

/* Breadcrumb */
.it-page .page-title-right .breadcrumb,
.it-page .page-breadcrumb{
  font-size:13px !important;
  color:#6b7280 !important;
}
.it-page .breadcrumb-item + .breadcrumb-item::before{opacity:.65;}
.it-page .breadcrumb{margin:0 !important;}

/* 3) Normalize card spacing */
.it-page .card{border-radius:16px;}
.it-page .card .card-body{padding:18px;}
.it-page .card-admin .card-body{padding:18px;} /* keep existing */
.it-page .card + .card,
.it-page .card-admin + .card-admin{margin-top:14px;}

/* 4) Table rhythm */
.it-page .table{margin-bottom:0;}
.it-page .table thead th{font-size:13px; font-weight:700; color:#6b7280;}
.it-page .table tbody td{vertical-align:middle;}

/* common list table wrapper */
.it-page .it-table-card{
  background:#fff;
  border:1px solid var(--border);
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 10px 24px rgba(20,40,80,.05);
}
.it-page .it-table-card .table-responsive{margin:0;}
.it-page .it-table-card .table thead th{background:#f8fafc;}

/* 5) Form rhythm */
.it-page .form-label{font-size:13px; color:#6b7280; font-weight:600; margin-bottom:6px;}
.it-page .form-control, .it-page .form-select{height:44px; border-radius:12px;}
.it-page textarea.form-control{height:auto; min-height:160px;}

/* 6) Buttons alignment */
.it-page .btn{border-radius:12px;}
.it-page .btn.btn-sm{border-radius:10px;}

/* 7) Keep topbar + content edges identical */
.it-topbar{padding-left:22px !important; padding-right:22px !important;}

/* 8) Normalize bootstrap utility wrappers frequently used in legacy screens */
.it-page > .py-3{padding-top:0 !important; padding-bottom:0 !important;}
.it-page > .pt-3{padding-top:0 !important;}
.it-page > .pb-3{padding-bottom:0 !important;}
.it-page > .p-3{padding:0 !important;}
.it-page > .p-4{padding:0 !important;}
.it-page .container-fluid{padding-top:0 !important; padding-bottom:0 !important;}
.it-page .container-fluid.py-3{padding-top:0 !important; padding-bottom:0 !important;}

/* 9) Unify legacy <h1 class="h5"> headers to match page title */
.it-page h1.h5{
  font-size:22px !important;
  font-weight:800 !important;
  letter-spacing:-0.02em !important;
  margin:0 0 12px !important;
}

/* 10) Common header action row alignment */
.it-page .d-flex.align-items-center.mb-3{margin-bottom:12px !important;}
.it-page .d-flex.align-items-center.mb-3 .btn{height:38px;}
.it-page .d-flex.align-items-center.mb-3 .ms-auto{gap:8px;}

/* 11) Tabs/subtabs spacing consistency */
.it-page .nav-tabs{margin-bottom:12px !important;}
.it-page .nav-pills{gap:6px; margin-bottom:12px !important;}
.it-page .nav-link{border-radius:12px;}

/* 12) Table container padding (avoid extra padding in nested cards) */
.it-page .card .table-responsive{margin:0;}

/* 13) Prevent oversized headings inside cards */
.it-page .card h2, .it-page .card h3{margin:0 0 10px !important;}

/* 14) Ensure ALL inputs show a clear border (some legacy screens use plain <input> without .form-control) */
.it-admin-wrap input[type="text"],
.it-admin-wrap input[type="email"],
.it-admin-wrap input[type="password"],
.it-admin-wrap input[type="number"],
.it-admin-wrap input[type="search"],
.it-admin-wrap input[type="tel"],
.it-admin-wrap input[type="url"],
.it-admin-wrap input[type="date"],
.it-admin-wrap input[type="datetime-local"],
.it-admin-wrap select,
.it-admin-wrap textarea{
  border:1px solid var(--border) !important;
  background:#fff !important;
  border-radius:12px !important;
  outline:none;
}

.it-admin-wrap input:focus,
.it-admin-wrap select:focus,
.it-admin-wrap textarea:focus{
  border-color:var(--primary) !important;
  box-shadow:0 0 0 .2rem var(--ring) !important;
}


/* === UI polish: panel body + form field breathing room (admin/categories etc.) === */
.it-panel-body{padding:18px;}
@media (max-width: 767px){
  .it-panel-body{padding:14px;}
}

/* Inputs inside panels: slightly taller + more inner padding */
.it-panel-body .form-control,
.it-panel-body .form-select{
  min-height:44px;
  padding:.6rem .75rem;
  border-radius:12px;
}

/* Labels: a bit more separation */
.it-panel-body .form-label{margin-bottom:.35rem;}

/* Tables inside panels should not stick to the edge */
.it-panel-body .table{margin-bottom:0;}

/* ===============================
   Admin Table – Figma Clean Style
================================ */
.table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
  font-size: 13px;
  color: #111827;
}
.table thead th {
  background: #f8fafc;
  color: #374151;
  font-weight: 500;
  font-size:13px;
  padding: 10px 12px;
  border-bottom: 1px solid #e5e7eb;
  text-align: left;
  white-space: nowrap;
}
.table tbody td {
  padding: 9px 12px;
  border-bottom: 1px solid #f1f5f9;
  vertical-align: middle;
  color: #111827;
  line-height: 1.4;
}
.table tbody tr:last-child td {
  border-bottom: 0;
}
.table tbody tr:hover {
  background: #f9fafb;
}
.table .btn {
  padding: 4px 10px;
  font-size:13px;
  line-height: 1.2;
  border-radius: 6px;
}


/* HOTFIX: CSS only – do NOT touch layout */
/* safe overrides */

body {
  background: #f6f7fb;
}

/* ensure content visible */
.main-content,
.page-content,
.it-page,
.app-content {
  display: block;
  visibility: visible;
}

/* table polish */
.table thead th {
  background: #f8fafc;
  font-weight: 600;
  font-size:13px;
}
.table tbody td {
  padding: 9px 12px;
}

/* ══════════════════════════════════════════════════════════════
   iTamra Admin v21 – 보강 패치
   - 버튼 hover 상태 개선
   - 페이지 헤더 좌/우 레이아웃 정합
   - 테이블 행 선택/hover 색상 통일
   - 폼 그리드 간격 통일
   - 모달 z-index 보강
   - 반응형 보강
   ════════════════════════════════════════════════════════════ */

/* ─── 버튼 시스템 개선 ─── */
.btn-primary   { background:var(--primary); border-color:var(--primary); }
.btn-primary:hover { background:#1459e0; border-color:#1459e0; }
.btn-outline-primary { color:var(--primary); border-color:var(--primary); }
.btn-outline-primary:hover { background:var(--primary); color:#fff; }

/* ─── it-page-header 좌우 정렬 ─── */
.it-page-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.it-page-header-left { min-width:0; flex:1; }
.it-page-header-right { flex:0 0 auto; display:flex; flex-direction:column; align-items:flex-end; gap:8px; }

/* ─── 테이블 hover/선택 통일 ─── */
.table tbody tr:hover td { background:#f9fafb !important; }

/* ─── 폼 그리드 row 간격 ─── */
.row.g-3 { --bs-gutter-y:1rem; }
.row.g-2 { --bs-gutter-y:.6rem; }

/* ─── 카드 헤더 타이포 ─── */
.card-header { font-weight:600; font-size:14px; }

/* ─── badge 시스템 통일 ─── */
.badge.bg-success  { background:#16a34a !important; }
.badge.bg-warning  { background:#d97706 !important; color:#fff !important; }
.badge.bg-danger   { background:#dc2626 !important; }
.badge.bg-info     { background:#0284c7 !important; }
.badge.bg-secondary{ background:#64748b !important; }

/* ─── 모달 z-index 보강 ─── */
.modal        { z-index:1055; }
.modal-backdrop{ z-index:1050; }
.it-modal-backdrop { z-index:9999; }

/* ─── 알림(notification) ─── */
.alert { border-radius:14px; border-left:4px solid; }
.alert-success { border-color:#16a34a; }
.alert-danger  { border-color:#dc2626; }
.alert-warning { border-color:#d97706; }

/* ─── 회원 멤버 페이지네이션 클래스 정합 ─── */
.it-members-page {
  display:inline-flex; align-items:center; justify-content:center;
  padding:6px 12px; border-radius:10px; text-decoration:none;
  font-size:13px; font-weight:600; color:#111827; border:1px solid transparent;
}
.it-members-page:hover { background:#f3f4f6; }
.it-members-page.active, .it-members-page.is-active { background:#fff; border-color:#e5e7eb; }
.it-members-page.disabled, .it-members-page.is-disabled { opacity:.45; pointer-events:none; }

/* ─── 반응형 ─── */
@media (max-width:768px) {
  .it-page-header { flex-direction:column; align-items:flex-start; }
  .it-page-header-right { align-items:flex-start; }
  .it-dash-kpis { grid-template-columns:1fr 1fr; }
}
@media (max-width:480px) {
  .it-dash-kpis { grid-template-columns:1fr; }
}
/* ── end v21 patch ── */


/* ── 한글 폰트 명시 적용 (form elements) ── */
input,select,textarea,button{
  font-family:'Pretendard',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,
    'Apple SD Gothic Neo','Noto Sans KR','Malgun Gothic',Arial,sans-serif;
  letter-spacing:-0.01em;
  word-break:keep-all;
}
/* 테이블 한글 가독성 */
.it-table td,.it-table th{
  line-height:1.5;
  word-break:keep-all;
  letter-spacing:-0.01em;
}
/* 페이지 제목 */
.it-page-title{
  font-size:20px;
  font-weight:700;
  letter-spacing:-0.02em;
  line-height:1.3;
}
/* 카드 제목 */
.card-title,.it-card .title,.it-section-title{
  font-size:15px;
  font-weight:700;
  letter-spacing:-0.02em;
  line-height:1.3;
}
/* 본문 텍스트 */
.it-page p,.it-page li,.it-page span:not(.badge){
  line-height:1.65;
}

/* ══════════════════════════════════════════════════════════
   itamra v13 — 관리자 UI 고도화 패치
   ①  사이드바 섹션 레이블 (.it-acc-section-label)
   ②  이미지 업로드 드롭존 (.it-dropzone)
   ③  갤러리 아이템 (.it-gimg)
   ④  상태 배지 시스템 통일
   ⑤  페이지 헤더 / 카드 / 테이블 마지막 정리
   ══════════════════════════════════════════════════════════ */

/* ① 사이드바 섹션 레이블 */
.it-acc-section-label {
  display: block;
  font-size:13px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #94a3b8;
  padding: 10px 10px 4px;
  margin-top: 4px;
  line-height: 1;
}
.it-acc-section-label:first-child { margin-top: 0; padding-top: 6px; }

/* 사이드바 스크롤바 스타일 */
.it-sidebar::-webkit-scrollbar { width: 4px; }
.it-sidebar::-webkit-scrollbar-track { background: transparent; }
.it-sidebar::-webkit-scrollbar-thumb { background: #e2e8f0; border-radius: 4px; }
.it-sidebar::-webkit-scrollbar-thumb:hover { background: #cbd5e1; }

/* ② 이미지 드롭존 */
.it-dropzone {
  border: 2px dashed var(--border);
  border-radius: 14px;
  padding: 28px 20px;
  text-align: center;
  cursor: pointer;
  transition: border-color .15s, background .15s;
  background: #f8fafc;
  color: var(--muted);
  font-size: 13px;
  user-select: none;
}
.it-dropzone:hover,
.it-dropzone--active {
  border-color: var(--primary);
  background: #f0f6ff;
  color: var(--primary);
}
.it-dropzone svg { display: block; margin: 0 auto 8px; opacity: .55; }
.it-dropzone strong { display: block; font-size: 14px; font-weight: 600; color: #334155; margin-bottom: 4px; }
.it-dropzone input[type="file"] { display: none; }

/* ③ 갤러리 그리드 */
#it-gallery-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: 10px;
  margin-top: 10px;
}
.it-gallery-empty {
  grid-column: 1 / -1;
  color: var(--muted);
  font-size: 13px;
  text-align: center;
  padding: 20px 0;
}

/* 갤러리 아이템 */
.it-gimg {
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  cursor: grab;
  transition: box-shadow .12s, transform .12s;
}
.it-gimg:hover { box-shadow: 0 4px 16px rgba(20,40,80,.12); transform: translateY(-1px); }
.it-gimg--dragging { opacity: .45; cursor: grabbing; }
.it-gimg--over { border-color: var(--primary); box-shadow: 0 0 0 2px var(--ring); }

.it-gimg-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 4/3;
  background: #f3f4f6;
  overflow: hidden;
}
.it-gimg-wrap img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}

/* 오버레이 (회전 버튼) */
.it-gimg-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.48);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  opacity: 0;
  transition: opacity .15s;
}
.it-gimg-wrap:hover .it-gimg-overlay { opacity: 1; }
.it-gimg-btn {
  width: 30px; height: 30px;
  border-radius: 999px;
  border: 1.5px solid rgba(255,255,255,.7);
  background: rgba(255,255,255,.15);
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer;
  transition: background .12s;
}
.it-gimg-btn:hover { background: rgba(255,255,255,.3); }
.it-gimg-btn:disabled { opacity: .5; cursor: not-allowed; }

/* 하단 버튼 행 */
.it-gimg-btns {
  display: flex;
  gap: 4px;
  padding: 6px;
}
.it-gimg-action {
  flex: 1;
  height: 26px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: #fff;
  font-size:13px;
  font-weight: 600;
  cursor: pointer;
  color: #374151;
  transition: background .1s;
}
.it-gimg-action:hover { background: #f3f4f6; }
.it-gimg-main { color: var(--primary); border-color: rgba(31,111,255,.3); }
.it-gimg-main:hover { background: #eef4ff; }
.it-gimg-del { color: #ef4444; border-color: rgba(239,68,68,.3); }
.it-gimg-del:hover { background: #fff1f1; }

/* 대표 이미지 미리보기 */
#it-thumb-preview {
  max-width: 160px;
  max-height: 120px;
  border-radius: 10px;
  border: 1px solid var(--border);
  object-fit: cover;
}

/* ④ 상태 배지 통일 */
.it-status {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  font-size:13px;
  font-weight: 700;
  white-space: nowrap;
}
.it-status--published  { background: #dcfce7; color: #15803d; }
.it-status--draft      { background: #f1f5f9; color: #64748b; }
.it-status--hidden     { background: #fef9c3; color: #a16207; }
.it-status--pending    { background: #fef3c7; color: #92400e; }
.it-status--rejected   { background: #fee2e2; color: #b91c1c; }
.it-status--active     { background: #dcfce7; color: #15803d; }
.it-status--inactive   { background: #f1f5f9; color: #64748b; }

/* ⑤ 카드 고도화 */
.it-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: 0 2px 12px rgba(20,40,80,.06);
}
.it-card-header {
  padding: 16px 20px;
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.it-card-header-title {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -.2px;
  color: #0f172a;
}
.it-card-body { padding: 18px 20px; }
.it-card + .it-card { margin-top: 14px; }

/* ⑥ 폼 그룹 */
.it-field { margin-bottom: 16px; }
.it-field label {
  display: block;
  font-size:13px;
  font-weight: 600;
  color: #64748b;
  margin-bottom: 6px;
}
.it-field .form-control,
.it-field .form-select {
  border-radius: 12px;
  border: 1px solid var(--border);
  background: #fff;
}
.it-field .form-text {
  font-size:13px;
  color: #94a3b8;
  margin-top: 4px;
}

/* ⑦ 테이블 wrapper */
.it-table-wrap {
  border: 1px solid var(--border);
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
}
.it-table-wrap .table { margin: 0; }
.it-table-wrap .table thead th {
  background: #f8fafc;
  font-size:13px;
  font-weight: 700;
  color: #374151;
  padding: 12px 14px;
  border-bottom: 1px solid var(--border);
}
.it-table-wrap .table tbody td {
  padding: 13px 14px;
  border-bottom: 1px solid #f1f5f9;
  font-size: 13px;
  vertical-align: middle;
}
.it-table-wrap .table tbody tr:last-child td { border-bottom: 0; }
.it-table-wrap .table tbody tr:hover td { background: #fafbff; }

/* ⑧ 검색바 / 필터바 */
.it-filterbar {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.it-search-wrap {
  flex: 1 1 260px;
  display: flex;
  align-items: center;
  gap: 8px;
  background: #f3f4f6;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 9px 12px;
  min-height: 42px;
}
.it-search-wrap input {
  flex: 1;
  border: 0 !important;
  background: transparent !important;
  outline: none;
  font-size: 13px;
  color: #111827;
}
.it-filter-select {
  min-width: 130px;
  height: 42px;
  border: 1px solid var(--border) !important;
  border-radius: 12px !important;
  background: #fff !important;
  font-size: 13px;
  color: #111827;
}
.it-filter-actions { margin-left: auto; display: flex; gap: 8px; }

/* ⑨ 페이지네이션 */
.it-pager {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin-top: 16px;
  flex-wrap: wrap;
}
.it-pager a, .it-pager span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 34px;
  padding: 0 10px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 600;
  border: 1px solid transparent;
  color: #374151;
  text-decoration: none;
  cursor: pointer;
}
.it-pager a:hover { background: #f3f4f6; }
.it-pager .active, .it-pager .is-active {
  background: var(--primary);
  color: #fff;
  border-color: var(--primary);
}
.it-pager .disabled { opacity: .4; pointer-events: none; }

/* ⑩ 알림 배너 */
.it-alert {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 12px;
  font-size: 13px;
  margin-bottom: 14px;
}
.it-alert--success { background: #f0fdf4; border: 1px solid #bbf7d0; color: #15803d; }
.it-alert--warning { background: #fffbeb; border: 1px solid #fde68a; color: #92400e; }
.it-alert--danger  { background: #fff1f2; border: 1px solid #fecdd3; color: #b91c1c; }
.it-alert--info    { background: #eff6ff; border: 1px solid #bfdbfe; color: #1d4ed8; }

/* ⑪ 버튼 시스템 완성 */
.it-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  height: 38px; padding: 0 16px; border-radius: 12px;
  font-size: 13px; font-weight: 600; cursor: pointer;
  border: 1px solid transparent; white-space: nowrap;
  transition: background .12s, box-shadow .12s;
}
.it-btn svg { flex: 0 0 16px; }
.it-btn--primary { background: var(--primary); color: #fff; border-color: var(--primary); }
.it-btn--primary:hover { background: #1459e0; }
.it-btn--secondary { background: #fff; color: #374151; border-color: var(--border); }
.it-btn--secondary:hover { background: #f8fafc; }
.it-btn--danger { background: #ef4444; color: #fff; border-color: #ef4444; }
.it-btn--danger:hover { background: #dc2626; }
.it-btn--sm { height: 30px; padding: 0 10px; font-size:13px; border-radius: 10px; }
.it-btn--lg { height: 46px; padding: 0 22px; font-size: 15px; border-radius: 14px; }
.it-btn:disabled { opacity: .5; cursor: not-allowed; pointer-events: none; }
/* ── end itamra v13 ── */


/* ════════════════════════════════════════════════════════════
   v16 — 관리자 전체 텍스트 사이즈 업 + 가독성 고도화
   (기존 스타일 오버라이드, 구조 변경 없음)
════════════════════════════════════════════════════════════ */

/* ── 기본 body 폰트 상향 ── */
body,
.it-admin-wrap {
  font-size: 15px !important;
  line-height: 1.65 !important;
}

/* ── 사이드바 ── */
.it-sidebar {
  font-size: 14px !important;
}

.it-menu > a,
.it-acc-sum {
  font-size: 14px !important;
  padding: 11px 14px !important;
  gap: 11px !important;
}

.it-acc-body a {
  font-size: 13.5px !important;
  padding: 9px 12px !important;
}

.it-brand { font-size: 19px !important; }

/* ── 상단 바 ── */
.it-topbar .title { font-size: 17px !important; }
.it-top-email     { font-size: 13px !important; }

/* ── 페이지 헤더 ── */
.it-page-title,
.page-title,
.it-page .page-title { font-size: 24px !important; font-weight: 800 !important; }

.it-page-sub,
.page-breadcrumb { font-size: 13.5px !important; }

.it-breadcrumb ol { font-size: 13px !important; }

/* ── 카드 ── */
.card .card-header  { font-size: 15px !important; font-weight: 700 !important; }
.card .card-body    { font-size: 14.5px !important; }

/* ── 테이블 ── */
.table thead th,
.table-admin thead th,
.it-page .table thead th {
  font-size: 13.5px !important;
  font-weight: 700 !important;
  padding: 13px 14px !important;
}

.table td,
.table tbody td,
.table-admin tbody td,
.it-page .table tbody td {
  font-size: 14px !important;
  padding: 13px 14px !important;
  line-height: 1.5 !important;
}

.table .btn,
.table-admin .btn {
  font-size: 13px !important;
  padding: 5px 12px !important;
}

/* ── 폼 ── */
.form-label,
.it-page .form-label {
  font-size: 13.5px !important;
  font-weight: 600 !important;
  margin-bottom: 7px !important;
}

.form-control,
.form-select,
.it-page .form-control,
.it-page .form-select,
.it-admin-wrap input[type="text"],
.it-admin-wrap input[type="password"],
.it-admin-wrap input[type="email"],
.it-admin-wrap input[type="number"],
.it-admin-wrap input[type="search"],
.it-admin-wrap select,
.it-admin-wrap textarea {
  font-size: 14.5px !important;
  padding: 10px 13px !important;
  min-height: 44px !important;
  border-radius: 10px !important;
  line-height: 1.5 !important;
}

.it-admin-wrap textarea,
.it-page textarea.form-control {
  min-height: 120px !important;
  height: auto !important;
}

/* ── 버튼 ── */
.btn          { font-size: 14px !important; font-weight: 600 !important; border-radius: 10px !important; }
.btn-sm       { font-size: 13px !important; padding: 6px 14px !important; }
.btn-compact  { font-size: 14px !important; height: 38px !important; line-height: 38px !important; padding: 0 16px !important; }

/* ── 배지/칩/필 ── */
.badge        { font-size: 12.5px !important; padding: 4px 9px !important; font-weight: 600 !important; }
.chip         { font-size: 13px !important; height: 30px !important; padding: 0 11px !important; }
.pill         { font-size: 13px !important; height: 30px !important; padding: 0 13px !important; }

/* ── 검색박스/셀렉트박스 ── */
.searchbox input { font-size: 14.5px !important; height: 46px !important; }
.selectbox       { font-size: 14.5px !important; height: 46px !important; }

/* ── 대시보드 KPI ── */
.it-kpi-label  { font-size: 14px !important; }
.it-kpi-value  { font-size: 28px !important; }
.it-kpi-delta  { font-size: 13px !important; }

/* ── 액티비티/멤버 ── */
.it-activity-title { font-size: 14px !important; }
.it-activity-sub   { font-size: 13px !important; }
.it-activity-ago   { font-size: 13px !important; }
.it-panel-h .t     { font-size: 15px !important; }

.it-member-row .l  { font-size: 14px !important; }
.it-member-row .n  { font-size: 17px !important; }

/* ── 알림/뱃지 ── */
.it-page .meta       { font-size: 15px !important; }
.it-page .meta-value { font-size: 17px !important; }

/* ── admin-list 세부 조정 ── */
.td-title .title-text { font-size: 14.5px !important; font-weight: 700 !important; }
.muted, .it-muted     { font-size: 13px !important; }

/* ── 페이지네이션 ── */
.pg  { font-size: 14px !important; height: 38px !important; padding: 0 14px !important; }
.pg.num { width: 38px !important; }

/* ── 팝업/모달 등 ── */
.modal-title          { font-size: 17px !important; font-weight: 700 !important; }
.modal-body           { font-size: 14.5px !important; }
.modal-footer .btn    { font-size: 14px !important; }

/* ── admin-listings-edit 내 편집 폼 ── */
.it-admin-wrap .it-field-label  { font-size: 13.5px !important; font-weight: 600 !important; }
.it-admin-wrap .it-field-value  { font-size: 14.5px !important; }
.it-admin-wrap .it-section-title { font-size: 16px !important; font-weight: 700 !important; }

/* ── 설정 페이지 ── */
.it-page .list-group-item { font-size: 14.5px !important; padding: 13px 16px !important; }
.it-page .nav-tabs .nav-link { font-size: 14px !important; padding: 10px 18px !important; }

/* ── 소형 유틸 클래스 상향 ── */
.text-muted, small, .small { font-size: 13px !important; }

/* ===== #91: CMS 전반 폰트 1px 상향 ===== */
body { font-size: 15px !important; }
.it-acc-body a { font-size: 14px !important; }
.it-page-sub, .it-breadcrumb ol { font-size: 13px !important; }
.table thead th { font-size: 14px !important; }
.table td { font-size: 14px !important; }
.it-top-email { font-size:13px !important; }
