
/* ==============================================================
   현장공무 ERP v0.71 UI Refresh
   Visual baseline: approved navy / clean enterprise sample
   Presentation only — no workflow, API, permission or data changes
   ============================================================== */

html.erp071-ui {
  --ui-navy-950:#071e3b;
  --ui-navy-900:#0b2b55;
  --ui-navy-850:#103665;
  --ui-navy-800:#123d72;
  --ui-blue-700:#1f5fd1;
  --ui-blue-600:#2f6fed;
  --ui-blue-500:#3b82f6;
  --ui-blue-100:#e9f1ff;
  --ui-blue-50:#f4f8ff;
  --ui-bg:#f5f7fb;
  --ui-surface:#ffffff;
  --ui-surface-soft:#f8fafd;
  --ui-line:#e2e8f1;
  --ui-line-strong:#d4ddea;
  --ui-text:#172b4d;
  --ui-text-strong:#10233f;
  --ui-muted:#718096;
  --ui-muted-2:#94a3b8;
  --ui-green:#169b62;
  --ui-green-bg:#eaf8f1;
  --ui-orange:#e98219;
  --ui-orange-bg:#fff3e5;
  --ui-red:#d83d4f;
  --ui-red-bg:#fff0f1;
  --ui-violet:#7658db;
  --ui-violet-bg:#f2efff;
  --ui-cyan:#188fa7;
  --ui-cyan-bg:#eaf8fb;
  --ui-radius-xs:7px;
  --ui-radius-sm:9px;
  --ui-radius:12px;
  --ui-radius-lg:15px;
  --ui-radius-xl:18px;
  --ui-shadow-xs:0 1px 2px rgba(17,39,73,.04);
  --ui-shadow-sm:0 4px 14px rgba(17,39,73,.055);
  --ui-shadow:0 8px 24px rgba(17,39,73,.07);
  --ui-shadow-lg:0 20px 55px rgba(17,39,73,.16);
}

/* ---------- global ---------- */
html.erp071-ui,
html.erp071-ui body {
  background:var(--ui-bg);
  color:var(--ui-text);
  font-family:"IBM Plex Sans KR","Pretendard","Noto Sans KR",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
html.erp071-ui * { box-sizing:border-box; }
html.erp071-ui ::selection { background:#cfe0ff; color:#0a2b59; }
html.erp071-ui a { color:var(--ui-blue-600); }
html.erp071-ui .app-shell { background:var(--ui-bg); }

/* ---------- sidebar ---------- */
html.erp071-ui .sidebar {
  background:
    radial-gradient(circle at 18% 2%, rgba(66,131,255,.24), transparent 26%),
    linear-gradient(180deg,var(--ui-navy-900) 0%,var(--ui-navy-950) 100%);
  border-right:1px solid rgba(255,255,255,.055);
  box-shadow:8px 0 28px rgba(7,30,59,.08);
}
html.erp071-ui .brand {
  min-height:64px;
  border-bottom:1px solid rgba(255,255,255,.09);
  margin-bottom:10px;
}
html.erp071-ui .brand-mark {
  border-radius:10px;
  background:linear-gradient(145deg,#4e8cff,#2868df);
  box-shadow:0 7px 18px rgba(39,107,230,.34);
}
html.erp071-ui .brand b { color:#fff; letter-spacing:-.02em; }
html.erp071-ui .brand small { color:rgba(224,236,255,.66); }
html.erp071-ui .nav-groups { gap:9px; padding-left:7px; padding-right:7px; }
html.erp071-ui .nav-group + .nav-group {
  border-top:1px solid rgba(193,216,249,.10);
  padding-top:9px;
}
html.erp071-ui .nav-group-title {
  color:rgba(201,219,245,.64);
  letter-spacing:.045em;
  text-transform:none;
  font-size:10px;
  font-weight:700;
  min-height:31px;
}
html.erp071-ui .nav-group-title:hover {
  background:rgba(255,255,255,.045);
  color:#e8f1ff;
}
html.erp071-ui .nav-item {
  min-height:39px;
  border:1px solid transparent;
  border-radius:9px;
  color:rgba(225,236,251,.84);
  font-weight:600;
  transition:background .14s ease,border-color .14s ease,color .14s ease,transform .14s ease;
}
html.erp071-ui .nav-item:hover {
  color:#fff;
  background:rgba(94,151,236,.13);
  border-color:rgba(173,207,255,.08);
  transform:translateX(1px);
}
html.erp071-ui .nav-item.active,
html.erp071-ui .nav-item[aria-current="page"] {
  color:#fff;
  background:linear-gradient(90deg,rgba(55,121,230,.90),rgba(47,111,237,.66));
  border-color:rgba(133,183,255,.35);
  box-shadow:0 6px 14px rgba(11,39,78,.22),inset 3px 0 0 #9ec3ff;
}
html.erp071-ui .nav-item span { opacity:.9; }
html.erp071-ui .sidebar-bottom {
  border-top:1px solid rgba(255,255,255,.10);
  color:#e6effd;
}
html.erp071-ui .sidebar-bottom small { color:rgba(215,229,248,.62); }
html.erp071-ui .sidebar-logout {
  border-color:rgba(255,255,255,.10);
  background:rgba(255,255,255,.055);
  color:#dbe9fb;
}
html.erp071-ui .sidebar-toggle {
  border-color:#dbe4f0;
  color:#53657c;
  box-shadow:0 5px 16px rgba(17,39,73,.14);
}

/* ---------- topbar ---------- */
html.erp071-ui .topbar {
  min-height:68px;
  background:rgba(255,255,255,.96);
  border-bottom:1px solid var(--ui-line);
  box-shadow:0 1px 0 rgba(17,39,73,.02);
  backdrop-filter:blur(14px);
}
html.erp071-ui .global-search,
html.erp071-ui .site-switcher,
html.erp071-ui .account-chip {
  border-color:var(--ui-line);
  background:#fff;
  box-shadow:var(--ui-shadow-xs);
  border-radius:10px;
}
html.erp071-ui .global-search:focus-within,
html.erp071-ui .site-switcher:focus-within {
  border-color:#9ebcf4;
  box-shadow:0 0 0 3px rgba(47,111,237,.10);
}
html.erp071-ui .sync-state { color:var(--ui-green)!important; }

/* ---------- content / page heading ---------- */
html.erp071-ui .content {
  background:
    radial-gradient(circle at 92% 0%,rgba(65,121,230,.035),transparent 22%),
    var(--ui-bg);
  padding-top:30px;
}
html.erp071-ui .page-header {
  margin-bottom:22px;
  align-items:flex-end;
}
html.erp071-ui .page-header h1,
html.erp071-ui .erp59-page-header h1 {
  margin-bottom:5px;
  color:var(--ui-text-strong);
  font-size:27px;
  line-height:1.25;
  letter-spacing:-.035em;
  font-weight:800;
}
html.erp071-ui .page-header p,
html.erp071-ui .erp59-page-header p {
  color:var(--ui-muted);
  font-size:12.5px;
  line-height:1.65;
}
html.erp071-ui .eyebrow {
  color:#5077ac;
  font-weight:700;
  letter-spacing:.025em;
}

/* ---------- cards / panels ---------- */
html.erp071-ui .panel,
html.erp071-ui .metric-card,
html.erp071-ui .erp48-widget,
html.erp071-ui .erp51-alert-card,
html.erp071-ui .erp59-summary-grid article,
html.erp071-ui .erp61-summary-grid article,
html.erp071-ui .erp64-summary-grid article,
html.erp071-ui .erp59-ledger-panel,
html.erp071-ui .erp53-cost-panel,
html.erp071-ui .attendance-check-card,
html.erp071-ui .attendance-today-card,
html.erp071-ui .attendance-site-card-main,
html.erp071-ui .settings-grid > *,
html.erp071-ui .dashboard-grid > * {
  background:var(--ui-surface);
  border:1px solid var(--ui-line);
  border-radius:var(--ui-radius-lg);
  box-shadow:var(--ui-shadow-sm);
}
html.erp071-ui .panel:hover,
html.erp071-ui .metric-card:hover,
html.erp071-ui .erp59-summary-grid article:hover,
html.erp071-ui .erp61-summary-grid article:hover {
  border-color:#d7e1ef;
}
html.erp071-ui .panel-head,
html.erp071-ui .table-tools {
  border-bottom-color:#edf1f6;
}
html.erp071-ui .metric-card b,
html.erp071-ui .erp59-summary-grid article b,
html.erp071-ui .erp61-summary-grid article b {
  color:var(--ui-text-strong);
  letter-spacing:-.025em;
}
html.erp071-ui .metric-card span,
html.erp071-ui .erp59-summary-grid article span,
html.erp071-ui .erp61-summary-grid article span {
  color:#698099;
}

/* ---------- buttons ---------- */
html.erp071-ui button,
html.erp071-ui .button,
html.erp071-ui .primary,
html.erp071-ui .secondary,
html.erp071-ui .danger,
html.erp071-ui .danger-button,
html.erp071-ui .delete-row-button {
  border-radius:var(--ui-radius-sm);
  font-weight:700;
  letter-spacing:-.01em;
  transition:transform .12s ease,box-shadow .12s ease,background .12s ease,border-color .12s ease;
}
html.erp071-ui button:not(:disabled):active,
html.erp071-ui .button:not(:disabled):active { transform:translateY(1px); }
html.erp071-ui .primary {
  background:linear-gradient(180deg,#3679ef,#2768dd);
  color:#fff;
  border-color:#2768dd;
  box-shadow:0 4px 10px rgba(47,111,237,.18);
}
html.erp071-ui .primary:hover:not(:disabled) {
  background:linear-gradient(180deg,#2f72e7,#205ecf);
  box-shadow:0 6px 14px rgba(47,111,237,.22);
}
html.erp071-ui .secondary {
  color:#38516e;
  background:#fff;
  border-color:#d9e2ee;
  box-shadow:0 1px 2px rgba(17,39,73,.025);
}
html.erp071-ui .secondary:hover:not(:disabled) {
  background:#f7faff;
  color:#1f5fd1;
  border-color:#bed0ec;
}
html.erp071-ui .danger,
html.erp071-ui .danger-button,
html.erp071-ui .delete-row-button {
  color:#cc3346;
  background:#fff7f8;
  border-color:#f2cbd1;
}
html.erp071-ui .danger:hover:not(:disabled),
html.erp071-ui .danger-button:hover:not(:disabled),
html.erp071-ui .delete-row-button:hover:not(:disabled) {
  background:#ffedef;
  border-color:#e9abb5;
}
html.erp071-ui button:disabled { opacity:.48; box-shadow:none!important; cursor:not-allowed; }

/* ---------- form controls / filters ---------- */
html.erp071-ui input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
html.erp071-ui select,
html.erp071-ui textarea {
  border:1px solid #d9e2ee;
  border-radius:9px;
  background:#fff;
  color:var(--ui-text);
  box-shadow:inset 0 1px 1px rgba(17,39,73,.018);
}
html.erp071-ui input:not([type="checkbox"]):not([type="radio"]):focus,
html.erp071-ui select:focus,
html.erp071-ui textarea:focus {
  border-color:#8fb2f1;
  outline:none;
  box-shadow:0 0 0 3px rgba(47,111,237,.10);
}
html.erp071-ui input::placeholder,
html.erp071-ui textarea::placeholder { color:#a2afbf; }
html.erp071-ui input[type="checkbox"],
html.erp071-ui input[type="radio"] { accent-color:var(--ui-blue-600); }
html.erp071-ui .record-filter-grid,
html.erp071-ui .erp59-filter-grid,
html.erp071-ui .erp61-filter-grid,
html.erp071-ui .erp64-filter-grid,
html.erp071-ui .erp51-doc-filters {
  background:var(--ui-surface);
  border:1px solid var(--ui-line);
  border-radius:var(--ui-radius);
  box-shadow:var(--ui-shadow-xs);
}
html.erp071-ui label > span { color:#60738d; font-weight:700; }

/* ---------- tables ---------- */
html.erp071-ui .table-wrap,
html.erp071-ui .erp51-doc-table-wrap,
html.erp071-ui .erp55-table-wrap,
html.erp071-ui .erp64-table-wrap,
html.erp071-ui .all-record-table,
html.erp071-ui .attendance-admin-table {
  border:1px solid var(--ui-line);
  border-radius:13px;
  background:#fff;
  overflow:auto;
  box-shadow:var(--ui-shadow-xs);
}
html.erp071-ui table {
  border-collapse:separate;
  border-spacing:0;
  color:var(--ui-text);
}
html.erp071-ui thead th {
  background:#f6f8fb!important;
  color:#63758d!important;
  border-bottom:1px solid var(--ui-line)!important;
  font-size:11px!important;
  font-weight:800!important;
  white-space:nowrap;
}
html.erp071-ui tbody td {
  border-bottom-color:#edf1f5!important;
  color:#3d526d;
}
html.erp071-ui tbody tr:last-child td { border-bottom:0!important; }
html.erp071-ui tbody tr:hover td { background:#f8fbff!important; }
html.erp071-ui tbody td b { color:#182d49; }
html.erp071-ui td.right,
html.erp071-ui th.right { font-variant-numeric:tabular-nums; }
html.erp071-ui .empty-cell {
  color:#8b99aa!important;
  background:#fbfcfe!important;
  padding:30px 16px!important;
}

/* ---------- status chips / pills ---------- */
html.erp071-ui .badge,
html.erp071-ui .status-badge,
html.erp071-ui [class*="status-pill"],
html.erp071-ui [class*="chip"] {
  border-radius:999px;
}
html.erp071-ui .status-success,
html.erp071-ui .signed,
html.erp071-ui .erp51-push-on {
  color:var(--ui-green)!important;
  background:var(--ui-green-bg)!important;
}
html.erp071-ui .status-warning {
  color:var(--ui-orange)!important;
  background:var(--ui-orange-bg)!important;
}
html.erp071-ui .status-danger {
  color:var(--ui-red)!important;
  background:var(--ui-red-bg)!important;
}

/* ---------- dashboard ---------- */
html.erp071-ui .dashboard-grid {
  gap:16px;
}
html.erp071-ui .dashboard-grid > *,
html.erp071-ui .dashboard-grid.lower > * {
  border-color:var(--ui-line);
  box-shadow:var(--ui-shadow-sm);
}
html.erp071-ui .progress-bar,
html.erp071-ui progress {
  border-radius:999px;
  overflow:hidden;
}
html.erp071-ui .progress-fill {
  background:linear-gradient(90deg,#2f6fed,#67a1ff);
  border-radius:999px;
}
html.erp071-ui .erp70-dashboard-config {
  color:#255fc6;
  background:#edf4ff;
  border-color:#d3e3ff;
}

/* ---------- document vault ---------- */
html.erp071-ui .erp51-alert-card {
  background:linear-gradient(90deg,#fff 0%,#fffdf8 100%);
}
html.erp071-ui .erp51-doc-filter-head {
  border-bottom-color:#edf1f5;
}
html.erp071-ui .erp51-doc-selected-count {
  color:var(--ui-green)!important;
  background:var(--ui-green-bg);
  border-radius:999px;
  padding:4px 9px;
}
html.erp071-ui .erp51-doc-person-select > input,
html.erp071-ui .erp51-doc-select-all-label input {
  width:17px;
  height:17px;
}

/* ---------- expense / subcontract / insurance ---------- */
html.erp071-ui .erp59-custom-page,
html.erp071-ui .erp61-custom-page,
html.erp071-ui .erp64-custom-page,
html.erp071-ui .erp70-insurance-page,
html.erp071-ui .erp51-custom-page {
  color:var(--ui-text);
}
html.erp071-ui .erp59-summary-grid,
html.erp071-ui .erp61-summary-grid,
html.erp071-ui .erp64-summary-grid {
  gap:12px;
}
html.erp071-ui .erp59-summary-grid article,
html.erp071-ui .erp61-summary-grid article,
html.erp071-ui .erp64-summary-grid article {
  min-height:116px;
}
html.erp071-ui .erp59-modal-summary,
html.erp071-ui .erp60-bulk-summary,
html.erp071-ui .erp55-bulk-summary {
  border-radius:10px;
  background:#f4f8ff;
  border:1px solid #dfeaff;
}

/* ---------- modals ---------- */
html.erp071-ui .erp48-overlay,
html.erp071-ui .erp55-overlay,
html.erp071-ui .erp59-overlay,
html.erp071-ui .erp70-dashboard-overlay,
html.erp071-ui .erp65-sign-modal-backdrop {
  background:rgba(8,25,49,.52)!important;
  backdrop-filter:blur(3px);
}
html.erp071-ui .erp48-modal,
html.erp071-ui .erp55-modal,
html.erp071-ui .erp59-expense-modal,
html.erp071-ui .erp70-dashboard-modal,
html.erp071-ui .erp65-sign-modal {
  border:1px solid rgba(211,222,236,.92);
  border-radius:18px!important;
  box-shadow:var(--ui-shadow-lg)!important;
}
html.erp071-ui .erp48-modal-head,
html.erp071-ui .erp55-modal-head,
html.erp071-ui .erp70-dashboard-modal-head {
  border-bottom-color:#edf1f5;
}
html.erp071-ui .erp48-close,
html.erp071-ui .erp70-dashboard-close {
  background:#f3f6fa;
  color:#53657c;
  border:1px solid #e3e9f1;
}

/* ---------- login / auth ---------- */
html.erp071-ui .auth-page {
  background:#f4f7fb;
}
html.erp071-ui .auth-intro {
  background:
    radial-gradient(circle at 18% 15%,rgba(78,140,255,.24),transparent 28%),
    linear-gradient(145deg,#0a2a52,#0c3971 58%,#102b51);
}
html.erp071-ui .auth-card {
  border:1px solid var(--ui-line);
  border-radius:20px;
  box-shadow:0 18px 55px rgba(17,39,73,.10);
}

/* ---------- scrollbars ---------- */
html.erp071-ui .content,
html.erp071-ui .table-wrap,
html.erp071-ui .erp51-doc-table-wrap,
html.erp071-ui .erp59-custom-page,
html.erp071-ui .erp61-custom-page {
  scrollbar-color:#c9d4e3 transparent;
}
html.erp071-ui .content::-webkit-scrollbar,
html.erp071-ui .table-wrap::-webkit-scrollbar,
html.erp071-ui .erp51-doc-table-wrap::-webkit-scrollbar { width:9px; height:9px; }
html.erp071-ui .content::-webkit-scrollbar-thumb,
html.erp071-ui .table-wrap::-webkit-scrollbar-thumb,
html.erp071-ui .erp51-doc-table-wrap::-webkit-scrollbar-thumb {
  background:#cad5e4;
  border:2px solid transparent;
  border-radius:999px;
  background-clip:padding-box;
}

/* ---------- focus accessibility ---------- */
html.erp071-ui button:focus-visible,
html.erp071-ui a:focus-visible,
html.erp071-ui .nav-item:focus-visible {
  outline:2px solid #74a3f5;
  outline-offset:2px;
}

/* ---------- desktop density ---------- */
@media (min-width:1181px) {
  html.erp071-ui .content { padding:30px 30px 48px; }
  html.erp071-ui .topbar { padding-left:28px; padding-right:28px; }
  html.erp071-ui .panel,
  html.erp071-ui .erp59-ledger-panel { padding-top:20px; }
}

/* ---------- tablet ---------- */
@media (max-width:1180px) and (min-width:761px) {
  html.erp071-ui .content { padding:24px 20px 40px; }
  html.erp071-ui .page-header h1 { font-size:24px; }
}

/* ---------- mobile ---------- */
@media (max-width:760px) {
  html.erp071-ui body { background:#f3f6fa; }
  html.erp071-ui .sidebar {
    background:linear-gradient(180deg,#0b2b55,#071e3b);
    box-shadow:18px 0 50px rgba(5,23,46,.32);
  }
  html.erp071-ui .topbar {
    min-height:60px;
    background:rgba(255,255,255,.98);
  }
  html.erp071-ui .content { padding:20px 12px 38px; }
  html.erp071-ui .page-header {
    margin-bottom:17px;
    gap:10px;
  }
  html.erp071-ui .page-header h1,
  html.erp071-ui .erp59-page-header h1 { font-size:22px; }
  html.erp071-ui .page-header p,
  html.erp071-ui .erp59-page-header p { font-size:11px; }
  html.erp071-ui .panel,
  html.erp071-ui .metric-card,
  html.erp071-ui .erp59-summary-grid article,
  html.erp071-ui .erp61-summary-grid article,
  html.erp071-ui .erp59-ledger-panel {
    border-radius:12px;
    box-shadow:0 3px 12px rgba(17,39,73,.045);
  }
  html.erp071-ui .primary,
  html.erp071-ui .secondary,
  html.erp071-ui .danger { min-height:38px; }
  html.erp071-ui thead th { font-size:10px!important; }
  html.erp071-ui tbody td { font-size:11px; }
  html.erp071-ui .erp48-modal,
  html.erp071-ui .erp55-modal,
  html.erp071-ui .erp59-expense-modal,
  html.erp071-ui .erp65-sign-modal {
    border-radius:16px 16px 0 0!important;
  }
}
