
  :root {
    --primary: #3b82f6;
    --primary-soft: #eff6ff;
    --primary-hover: #2563eb;
    --success: #10b981;
    --success-soft: #ecfdf5;
    --warning: #f59e0b;
    --warning-soft: #fffbeb;
    --danger: #ef4444;
    --bg: #f8fafc;
    --card: #ffffff;
    --border: #e2e8f0;
    --text: #0f172a;
    --sub: #64748b;
    --radius: 14px;
    --input-bg: #f8fafc;
    --header-bg: #f8fafc;
    --hover-bg: #f1f5f9;
    --empty-cell-bg: #f1f5f9;
    --pop-shadow: 0 16px 28px -4px rgba(15, 23, 42, 0.12);
    --scrollbar-track: rgba(0, 0, 0, 0.04);
    --scrollbar-thumb: #cbd5e1;
    --scrollbar-thumb-hover: #94a3b8;
  }

  body.dark-mode {
    --primary: #60a5fa;
    --primary-soft: #1e293b;
    --primary-hover: #3b82f6;
    --success: #34d399;
    --success-soft: #064e3b;
    --warning: #fbbf24;
    --warning-soft: #451a03;
    --danger: #f87171;
    --bg: #0f172a;
    --card: #1e293b;
    --border: #334155;
    --text: #f8fafc;
    --sub: #94a3b8;
    --input-bg: #0f172a;
    --header-bg: #1e293b;
    --hover-bg: #334155;
    --empty-cell-bg: #131d2e;
    --pop-shadow: 0 16px 28px -4px rgba(0, 0, 0, 0.5);
    --scrollbar-track: #0f172a;
    --scrollbar-thumb: #334155;
    --scrollbar-thumb-hover: #475569;
  }

  ::-webkit-scrollbar {
    width: 6px;
    height: 6px;
  }
  ::-webkit-scrollbar-track {
    background: var(--scrollbar-track);
    border-radius: 8px;
  }
  ::-webkit-scrollbar-thumb {
    background: var(--scrollbar-thumb);
    border-radius: 8px;
  }
  ::-webkit-scrollbar-thumb:hover {
    background: var(--scrollbar-thumb-hover);
  }
  * {
    scrollbar-width: thin;
    scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
    box-sizing: border-box; margin: 0; padding: 0; font-family: "Malgun Gothic", "맑은 고딕", -apple-system, BlinkMacSystemFont, Roboto, sans-serif; -webkit-tap-highlight-color: transparent;
  }

  body { background: var(--bg); color: var(--text); padding: 12px 10px; line-height: 1.4; transition: background-color 0.2s ease, color 0.2s ease; }

  .system-header { max-width: 1440px; margin: 0 auto 10px auto; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; }
  .system-title { font-size: 1.1rem; font-weight: 800; color: var(--text); }
  .header-actions { display: flex; align-items: center; gap: 6px; }

  .admin-status-badge {
    display: inline-flex; align-items: center; gap: 4px; background: var(--input-bg);
    border: 1px solid var(--border); color: var(--text); padding: 6px 12px; border-radius: 20px;
    font-size: 0.8rem; font-weight: 700; cursor: pointer;
  }
  .admin-status-badge.admin-on { background: #fef3c7; color: #b45309; border-color: #f59e0b; }

  .theme-toggle-btn {
    display: inline-flex; align-items: center; gap: 4px; background: var(--card);
    border: 1px solid var(--border); color: var(--text); padding: 6px 10px; border-radius: 20px;
    font-size: 0.8rem; font-weight: 700; cursor: pointer;
  }

  .mobile-nav-tabs {
    display: none;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
    max-width: 1440px;
    margin: 0 auto 10px auto;
  }
  .mobile-tab-btn {
    padding: 10px 2px;
    border-radius: 10px;
    background: var(--card);
    border: 1px solid var(--border);
    color: var(--sub);
    font-weight: 700;
    font-size: 0.82rem;
    text-align: center;
    cursor: pointer;
    white-space: nowrap;
  }
  .mobile-tab-btn.active {
    background: var(--primary);
    color: #ffffff;
    border-color: var(--primary);
  }

  .approval-banner { max-width: 1440px; margin: 0 auto 10px auto; background: var(--card); border: 1.5px solid var(--warning); border-radius: var(--radius); padding: 12px 14px; }
  .approval-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; flex-wrap: wrap; gap: 4px; }
  .approval-title { font-size: 0.9rem; font-weight: 800; color: var(--warning); display: flex; align-items: center; gap: 6px; }
  .approval-list { display: flex; flex-direction: column; gap: 6px; max-height: 160px; overflow-y: auto; }
  .approval-item { display: flex; justify-content: space-between; align-items: center; padding: 8px 10px; background: var(--input-bg); border: 1px solid var(--border); border-radius: 8px; font-size: 0.8rem; gap: 6px; }

  .dashboard-wrapper { max-width: 1440px; margin: 0 auto; display: grid; grid-template-columns: 1fr 470px; gap: 16px; align-items: start; }
  .left-col, .right-col { display: flex; flex-direction: column; gap: 16px; }
  .right-col { position: sticky; top: 14px; }

  .card { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px; box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04); }
  .card-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; border-bottom: 1px solid var(--border); padding-bottom: 8px; flex-wrap: wrap; gap: 6px; }
  .card-header h2 { font-size: 1.05rem; font-weight: 700; }

  .stack-form { display: flex; flex-direction: column; gap: 12px; margin-top: 10px; }
  .form-group-full { display: flex; flex-direction: column; gap: 6px; width: 100%; position: relative; }
  .apply-proxy-label { color: var(--sub); font-size: 0.85rem; font-weight: 700; }
  .apply-proxy-help { color: var(--sub); font-size: 0.72rem; line-height: 1.4; }
  #applyProxyEmployee { width: 100%; min-height: 42px; padding: 9px 12px; border: 1px solid var(--border); border-radius: 8px; background: var(--input-bg); color: var(--text); }
  .apply-signature-group { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; }
  .apply-signature-group .apply-sig-box { margin-top: 0; }
  label { font-size: 0.85rem; font-weight: 700; color: var(--sub); display: flex; justify-content: space-between; align-items: center; }
  
  .date-mode-toggle {
    display: inline-flex;
    gap: 4px;
    background: var(--input-bg);
    padding: 3px;
    border-radius: 8px;
    border: 1px solid var(--border);
  }
  .date-mode-btn {
    border: none;
    background: transparent;
    padding: 4px 10px;
    font-size: 0.74rem;
    font-weight: 700;
    color: var(--sub);
    border-radius: 6px;
    cursor: pointer;
    transition: 0.15s;
  }
  .date-mode-btn.active {
    background: var(--primary);
    color: #ffffff;
  }

  input { 
    width: 100%; 
    padding: 12px 14px; 
    border: 1.5px solid var(--border); 
    border-radius: 10px; 
    font-size: 0.98rem; 
    font-weight: 600;
    color: var(--text); 
    background: var(--input-bg); 
  }
  input:focus { outline: none; border-color: var(--primary); }
  input.picker-input {
    background: var(--input-bg) url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="%2364748b" viewBox="0 0 24 24"><path d="M19 4h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10zM5 8V6h14v2H5z"/></svg>') no-repeat right 12px center / 20px;
    cursor: pointer; padding-right: 38px;
  }

  .modal-trigger-btn {
    width: 100%;
    padding: 12px 14px;
    border: 1.5px solid var(--border);
    border-radius: 10px;
    font-size: 0.98rem;
    font-weight: 700;
    color: var(--text);
    background: var(--input-bg);
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    text-align: left;
  }
  .modal-trigger-btn:hover { border-color: var(--primary); background: var(--primary-soft); }

  .side-profile-header {
    display: flex; justify-content: space-between; align-items: center;
    background: var(--input-bg); border: 1.5px solid var(--border);
    padding: 12px 14px; border-radius: 12px; margin-bottom: 12px;
    cursor: pointer; transition: 0.15s;
  }
  .side-profile-header:hover { border-color: var(--primary); background: var(--primary-soft); }

  .side-stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin-bottom: 14px; }
  .side-stat-box { background: var(--input-bg); border: 1px solid var(--border); border-radius: 8px; padding: 8px 4px; text-align: center; }
  .side-stat-title { font-size: 0.68rem; color: var(--sub); font-weight: 600; }
  .side-stat-val { font-size: 1.1rem; font-weight: 800; color: var(--primary); margin-top: 2px; }

  .apply-sig-box {
    margin-top: 8px; padding: 12px 14px; background: var(--input-bg);
    border: 1px solid var(--border); border-radius: 12px; display: flex; flex-direction: column; gap: 8px;
  }
  .apply-sig-header { display: flex; justify-content: space-between; align-items: center; }
  .apply-sig-canvas-wrap {
    position: relative; width: 100%; height: 95px; background: #ffffff;
    border: 1.5px dashed var(--border); border-radius: 10px; touch-action: none;
    cursor: pointer;
  }
  #applySigCanvas { width: 100%; height: 100%; }
  .apply-sig-placeholder {
    position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
    font-size: 0.88rem; color: var(--sub); pointer-events: none; user-select: none; text-align: center;
  }

  button {
    background: var(--primary); color: #fff; border: none; border-radius: 10px; padding: 12px 18px;
    font-size: 0.95rem; font-weight: 700; cursor: pointer; white-space: nowrap; display: inline-flex;
    align-items: center; justify-content: center; transition: 0.15s;
  }
  button:hover { background: var(--primary-hover); }
  button.btn-approve { background: #059669; color: #fff; height: 26px; font-size: 0.72rem; padding: 0 8px; }
  button.btn-reject { background: #fee2e2; color: #dc2626; height: 26px; font-size: 0.72rem; padding: 0 8px; }
  body.dark-mode button.btn-reject { background: #7f1d1d; color: #fca5a5; }
  button.danger { background: #fee2e2; color: #dc2626; height: 28px; font-size: 0.75rem; padding: 0 8px; border-radius: 6px; }
  body.dark-mode button.danger { background: #7f1d1d; color: #fca5a5; }
  button.edit-btn { background: var(--input-bg); color: var(--text); border: 1px solid var(--border); }
  button.sub-btn { background: var(--input-bg); color: var(--sub); border: 1px solid var(--border); }
  button.btn-print { background: #0284c7; color: #fff; height: 26px; font-size: 0.74rem; padding: 0 8px; border-radius: 6px; gap: 3px; }
  button.btn-bulk-print { background: #0369a1; color: #fff; padding: 6px 14px; font-size: 0.8rem; border-radius: 8px; gap: 4px; }

  .sort-btn-group { display: flex; gap: 4px; flex-wrap: wrap; }
  .sort-btn {
    background: var(--input-bg); color: var(--sub); border: 1px solid var(--border);
    padding: 4px 8px; border-radius: 6px; font-size: 0.74rem; font-weight: 700; cursor: pointer;
  }
  .sort-btn.active { background: var(--primary-soft); color: var(--primary); border-color: var(--primary); }

  .admin-only-block { display: none !important; }
  body.is-admin .admin-only-block { display: block !important; }
  .admin-only-flex { display: none !important; }
  body.is-admin .admin-only-flex { display: flex !important; }
  .admin-only-inline { display: none !important; }
  body.is-admin .admin-only-inline { display: inline-flex !important; }
  body.is-admin #empTable th.admin-only-inline,
  body.is-admin #empTable td.admin-only-inline {
    display: table-cell !important;
    position: sticky;
    right: 0;
    white-space: nowrap;
    background: var(--card);
    z-index: 6;
  }
  body.is-admin #empTable th.admin-only-inline { background: var(--header-bg); z-index: 10; }
  body.is-admin #empTable tr.active-row td.admin-only-inline { background: var(--primary-soft); }
  body.is-admin #empTable tr.clickable-row:hover td.admin-only-inline { background: var(--hover-bg); }

  .table-box { width: 100%; overflow-x: auto; max-height: 420px; overflow-y: auto; border: 1px solid var(--border); border-radius: 10px; position: relative; }
  #pcEmpTableWrap { scrollbar-gutter: stable; }
  table { width: 100%; border-collapse: collapse; font-size: 0.85rem; background: var(--card); }
  th, td { padding: 9px 10px; border-bottom: 1px solid var(--border); text-align: left; color: var(--text); vertical-align: middle; }
  th { background: var(--header-bg); color: var(--sub); font-weight: 600; position: sticky; top: 0; z-index: 5; }
  tr.clickable-row { cursor: pointer; }
  tr.clickable-row:hover { background: var(--hover-bg); }
  tr.active-row { background: var(--primary-soft) !important; font-weight: 600; }

  .badge { display: inline-flex; padding: 3px 8px; border-radius: 6px; font-size: 0.72rem; font-weight: 700; align-items: center; line-height: 1; height: 24px; width: fit-content; }
  .badge-role { background: var(--input-bg); color: var(--text); border: 1px solid var(--border); }
  .badge-annual { background: #dbeafe; color: #1d4ed8; }
  .badge-sub { background: #fef3c7; color: #b45309; }
  .badge-sick { background: #fee2e2; color: #dc2626; }
  .badge-custom { background: #ede9fe; color: #6d28d9; }
  .badge-status-pending { background: #fef3c7; color: #b45309; border: 1px solid #fde68a; }
  .badge-status-approved { background: #d1fae5; color: #065f46; border: 1px solid #a7f3d0; }
  .badge-status-rejected { background: #fee2e2; color: #991b1b; }

  .mobile-emp-cards { display: none; flex-direction: column; gap: 8px; max-height: 420px; overflow-y: auto; }
  .mobile-emp-card-item {
    background: var(--card); border: 1.5px solid var(--border); border-radius: 12px;
    padding: 12px 14px; cursor: pointer; transition: 0.15s;
  }
  .mobile-emp-card-item.active { border-color: var(--primary); background: var(--primary-soft); }
  .mobile-emp-card-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
  .mobile-emp-card-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; text-align: center; background: var(--input-bg); border-radius: 8px; padding: 6px 4px; }
  .mobile-emp-stat-num { font-size: 1rem; font-weight: 800; }

  .cal-title-pill { font-weight: 800; font-size: 0.88rem; color: var(--text); background: var(--input-bg); border: 1px solid var(--border); padding: 4px 10px; border-radius: 6px; cursor: pointer; }
  .calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 1px; background: var(--border); border: 1px solid var(--border); border-radius: 10px; overflow: hidden; width: 100%; }
  .cal-cell { background: var(--card); min-height: 80px; padding: 4px; display: flex; flex-direction: column; gap: 2px; font-size: 0.72rem; }
  .cal-cell.is-holiday { background: rgba(239, 68, 68, 0.05); }
  .cal-cell.other-month-cell { background: var(--empty-cell-bg) !important; opacity: 0.5; }
  .cal-header { background: var(--header-bg); font-weight: 700; text-align: center; padding: 6px 0; color: var(--sub); font-size: 0.74rem; }
  .cal-header.sun { color: var(--danger); }
  .cal-header.sat { color: var(--primary); }
  .cal-date-row { display: flex; justify-content: space-between; align-items: baseline; }
  .cal-date { font-weight: 700; color: var(--text); }
  .cal-date.sun, .cal-date.holiday { color: var(--danger) !important; }
  .cal-date.sat { color: var(--primary); }
  .holiday-label { font-size: 0.62rem; color: var(--danger); font-weight: 700; }
  
  .cal-tag { padding: 2px 5px; border-radius: 4px; font-size: 0.68rem; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-flex; align-items: center; gap: 2px; margin-bottom: 1px; }
  .tag-annual { background: #dbeafe; color: #1d4ed8; }
  .tag-half { background: #ede9fe; color: #6d28d9; }
  .tag-sub { background: #fef3c7; color: #b45309; }
  .tag-sick { background: #fee2e2; color: #dc2626; }
  .tag-custom { background: #ede9fe; color: #6d28d9; }
  .tag-pending { border: 1.5px dashed var(--warning); opacity: 0.85; }
  .cal-cell:not(.other-month-cell) { cursor: pointer; }
  .cal-cell:not(.other-month-cell):active { filter: brightness(0.96); }

  /* 날짜 클릭 상세보기 */
  #dayDetailModal { z-index: 100000; }
  #dayDetailModal .modal-box { max-width: 460px; max-height: 82vh; overflow: hidden; }
  .day-detail-list { display: flex; flex-direction: column; gap: 8px; max-height: 58vh; overflow-y: auto; padding-right: 2px; }
  .day-detail-item {
    background: var(--input-bg); border: 1px solid var(--border); border-radius: 12px;
    padding: 11px 12px;
  }
  .day-detail-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
  .day-detail-name { font-size: 0.96rem; font-weight: 800; color: var(--text); }
  .day-detail-role { font-size: 0.74rem; color: var(--sub); margin-top: 2px; }
  .day-detail-badges { display: flex; gap: 5px; flex-wrap: wrap; justify-content: flex-end; }
  .day-detail-type {
    display: inline-flex; align-items: center; border-radius: 6px; padding: 4px 7px;
    font-size: 0.72rem; font-weight: 800; white-space: nowrap;
  }
  .day-detail-type.annual { background: #dbeafe; color: #1d4ed8; }
  .day-detail-type.half { background: #ede9fe; color: #6d28d9; }
  .day-detail-type.sub { background: #fef3c7; color: #b45309; }
  .day-detail-type.sick { background: #fee2e2; color: #dc2626; }
  .day-detail-type.custom { background: #e0e7ff; color: #4338ca; }
  .day-detail-status {
    display: inline-flex; align-items: center; border-radius: 6px; padding: 4px 7px;
    font-size: 0.7rem; font-weight: 800; white-space: nowrap;
  }
  .day-detail-status.approved { background: #d1fae5; color: #065f46; }
  .day-detail-status.pending { background: #fef3c7; color: #b45309; }
  .day-detail-info {
    margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--border);
    display: grid; gap: 4px; font-size: 0.78rem; color: var(--sub); line-height: 1.45;
  }
  .day-detail-info strong { color: var(--text); }

  .cal-nav-popover { display: none; position: absolute; top: 100%; right: 0; margin-top: 6px; width: 270px; background: var(--card); border: 1px solid var(--border); border-radius: 12px; box-shadow: var(--pop-shadow); padding: 12px; z-index: 50; }
  .cal-nav-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
  .nav-header-title-btn { font-weight: 800; font-size: 0.95rem; color: var(--text); background: var(--input-bg); border: 1px solid var(--border); padding: 4px 10px; border-radius: 6px; cursor: pointer; }
  .month-grid-pop, .year-grid-pop { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; }
  .month-tile, .year-tile { padding: 8px 4px; border-radius: 6px; font-size: 0.8rem; font-weight: 600; text-align: center; cursor: pointer; background: var(--input-bg); border: 1px solid var(--border); color: var(--text); }
  .month-tile.active, .year-tile.active { background: var(--primary); color: #fff !important; }

  .neo-picker-pop { display: none; position: absolute; top: 100%; left: 0; margin-top: 6px; width: 280px; background: var(--card); border: 1px solid var(--border); border-radius: 14px; box-shadow: var(--pop-shadow); z-index: 10000; padding: 12px; user-select: none; }
  .neo-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
  .neo-title-btn { font-size: 0.9rem; font-weight: 800; color: var(--text) !important; background: var(--input-bg) !important; border: 1px solid var(--border) !important; padding: 5px 12px; border-radius: 8px; cursor: pointer; }
  .neo-days-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; text-align: center; }
  .neo-week-title { font-size: 0.7rem; font-weight: 700; color: var(--sub); padding-bottom: 4px; }
  .neo-week-title.sun { color: var(--danger); }
  .neo-week-title.sat { color: var(--primary); }
  .neo-day-cell { aspect-ratio: 1; display: flex; align-items: center; justify-content: center; font-size: 0.8rem; font-weight: 600; border-radius: 6px; cursor: pointer; color: var(--text); }
  .neo-day-cell:hover:not(.empty):not(.range-in):not(.active) { background: var(--hover-bg); }
  .neo-day-cell.other-month { color: var(--sub); opacity: 0.4; }
  .neo-day-cell.active { background: var(--primary) !important; color: #fff !important; }
  .neo-day-cell.range-in { background: var(--primary-soft) !important; color: var(--primary) !important; }
  .neo-day-cell.range-start { background: var(--primary) !important; color: #fff !important; }
  .neo-day-cell.range-end { background: var(--primary) !important; color: #fff !important; }
  .neo-day-cell.holiday { color: var(--danger) !important; font-weight: 700; }
  .neo-day-cell.sat { color: var(--primary); }
  .neo-month-view, .neo-year-view { display: none; grid-template-columns: repeat(3, 1fr); gap: 6px; }
  .neo-tile { padding: 10px 4px; text-align: center; border-radius: 6px; font-size: 0.82rem; font-weight: 600; cursor: pointer; background: var(--input-bg); border: 1px solid var(--border); color: var(--text); }
  .neo-tile.active { background: var(--primary); color: #fff; }

  .modal-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.65); backdrop-filter: blur(3px); z-index: 9999; justify-content: center; align-items: center; padding: 14px; }
  .modal-box { background: var(--card); border: 1px solid var(--border); border-radius: 16px; width: 100%; max-width: 440px; padding: 20px; box-shadow: var(--pop-shadow); }

  .large-picker-item {
    display: flex; justify-content: space-between; align-items: center;
    padding: 14px 16px; background: var(--input-bg); border: 1.5px solid var(--border);
    border-radius: 12px; margin-bottom: 10px; cursor: pointer; font-size: 1.05rem; font-weight: 700;
    transition: 0.15s;
  }
  .large-picker-item.active {
    border-color: var(--primary); background: var(--primary-soft); color: var(--primary);
  }

  /* 업무대리인 자동선정 / 관리자 수동변경 */
  #proxyPickerModal { z-index: 100001; }
  .proxy-inline-btn {
    width: 100%; margin-top: 4px; padding: 4px 5px; border-radius: 6px;
    background: var(--primary-soft); color: var(--primary); border: 1px solid var(--primary);
    font-size: 0.66rem; line-height: 1.25; white-space: normal; word-break: keep-all;
  }
  .proxy-inline-btn:hover { background: var(--primary); color: #fff; }
  .proxy-picker-state { font-size: 0.72rem; font-weight: 800; text-align: right; }
  .proxy-picker-state.available { color: var(--success); }
  .proxy-picker-state.unavailable { color: var(--sub); }
  .proxy-print-value {
    display: inline-block; min-width: 160px; font-weight: 700; font-size: 16px;
    line-height: 1.35; cursor: pointer; padding: 3px 6px; border-radius: 4px;
  }
  .proxy-print-value:hover { background: #eff6ff !important; }

  .cloud-badge { display: inline-flex; align-items: center; gap: 4px; font-size: 0.74rem; font-weight: 700; padding: 4px 8px; border-radius: 12px; background: var(--input-bg); border: 1px solid var(--border); color: var(--sub); }
  .cloud-badge.connected { color: var(--success); border-color: var(--success); background: var(--success-soft); }

  .toast-notification {
    position: fixed; bottom: 24px; right: 18px; left: 18px; max-width: 380px; margin: 0 auto;
    background: #059669; color: #ffffff; padding: 12px 20px; border-radius: 9999px; font-size: 0.88rem; font-weight: 700;
    display: flex; align-items: center; justify-content: center; gap: 8px; box-shadow: 0 10px 25px -5px rgba(5, 150, 105, 0.4);
    z-index: 100000; opacity: 0; transform: translateY(20px); pointer-events: none; transition: 0.3s ease;
  }
  .toast-notification.warning-theme { background: #d97706; }
  .toast-notification.show { opacity: 1; transform: translateY(0); }

  @media (max-width: 1120px) {
    .dashboard-wrapper { grid-template-columns: 1fr; }
    .right-col { position: static; }
    .mobile-nav-tabs { display: grid; }
    .tab-section { display: none; }
    .tab-section.active-tab { display: flex; }
    #pcEmpTableWrap { display: none; }
    .mobile-emp-cards { display: flex; }
    .card-header { flex-direction: column; align-items: stretch; gap: 8px; }
    .card-header > div { justify-content: space-between; width: 100%; }

    /* 모바일/PWA 월간 일정표: 7개 요일 칸을 항상 동일한 폭으로 고정 */
    #cardCalendar { min-width: 0; overflow: hidden; }
    #cardCalendar .card-header { min-width: 0; }
    .calendar-grid {
      grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
      width: 100% !important;
      min-width: 0 !important;
      overflow: hidden !important;
    }
    .cal-header,
    .cal-cell {
      min-width: 0 !important;
      width: auto !important;
    }
    .cal-cell {
      padding: 3px !important;
      min-height: 82px;
      overflow: hidden;
    }
    .cal-date-row {
      min-width: 0;
      gap: 2px;
      overflow: hidden;
    }
    .cal-date {
      flex: 0 0 auto;
    }
    .holiday-label {
      min-width: 0;
      max-width: 100%;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      font-size: 0.56rem;
    }
    .cal-tag {
      display: block !important;
      width: 100% !important;
      max-width: 100% !important;
      min-width: 0 !important;
      padding: 2px 3px !important;
      font-size: 0.62rem !important;
      line-height: 1.3;
      white-space: nowrap !important;
      overflow: hidden !important;
      text-overflow: ellipsis !important;
    }
    .cal-tag-type { display: none !important; }
    .cal-tag-name {
      display: block;
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    #dayDetailModal { align-items: flex-end; padding: 0; }
    #dayDetailModal .modal-box {
      max-width: none; width: 100%; max-height: 78vh;
      border-radius: 18px 18px 0 0; padding: 18px 16px calc(18px + env(safe-area-inset-bottom));
    }
    .day-detail-list { max-height: 58vh; }
  }

  #printModal .modal-box { max-width: 820px; width: 95%; max-height: 92vh; overflow-y: auto; padding: 18px; background: #ffffff !important; }
  #printContainer { display: flex; flex-direction: column; align-items: center; width: 100%; gap: 16px; }

  .hwp-paper {
    background: #ffffff !important; color: #000000 !important; border: 1.5px solid #000;
    padding: 30px 42px 20px 42px; font-family: "Malgun Gothic", "맑은 고딕", sans-serif !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08); box-sizing: border-box; width: 210mm; height: 297mm; max-height: 297mm;
    display: flex; flex-direction: column; justify-content: space-between;
  }
  .hwp-paper * { font-family: "Malgun Gothic", "맑은 고딕", sans-serif !important; color: #000000 !important; }

  .hwp-title-area { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 14px; }
  .hwp-main-title { font-size: 32px; font-weight: 900; letter-spacing: 16px; text-align: center; flex: 1; margin-top: 15px; padding-left: 16px; }

  .stamp-table { border-collapse: collapse !important; width: 140px; text-align: center; font-size: 14px; border: 1.5px solid #000 !important; background: #ffffff !important; margin: 0; }
  .stamp-table td { border: 1.5px solid #000 !important; padding: 0 !important; vertical-align: middle; text-align: center; }
  .stamp-header-col { width: 28px; background: #f0f0f0 !important; font-weight: bold; letter-spacing: 2px; line-height: 1.4; font-size: 14px; padding: 3px 0 !important; }
  .stamp-header-role { width: 112px; height: 26px; background: #f0f0f0 !important; font-weight: bold; letter-spacing: 4px; font-size: 14px; }
  .stamp-box-cell { height: 68px; width: 112px; background: #ffffff !important; }

  /* 인쇄 미리보기 100%에서도 선이 사라지지 않도록 셀 선을 한 번씩만 그림 */
  .hwp-table {
    width: 100%;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    border-top: 1.25pt solid #000 !important;
    border-left: 1.25pt solid #000 !important;
    border-right: 0 !important;
    border-bottom: 0 !important;
    table-layout: fixed;
    font-size: 15.5px;
    background: #ffffff !important;
  }
  .hwp-table col.col-label { width: 150px; }
  .hwp-table col.col-main { width: calc((100% - 150px) / 2); }
  .hwp-table td,
  .hwp-table th {
    border: 0 !important;
    border-right: 1.25pt solid #000 !important;
    border-bottom: 1.25pt solid #000 !important;
  }
  .hwp-table td {
    padding: 12px 14px;
    vertical-align: middle;
    background: #ffffff !important;
    color: #000000 !important;
    overflow-wrap: break-word;
  }
  .hwp-table th {
    padding: 0 8px;
    vertical-align: middle;
    background: #f0f0f0 !important;
    color: #000000 !important;
  }
  .hwp-table .th-header {
    background: #f0f0f0 !important;
    font-weight: bold;
    text-align: center;
    width: 150px;
    min-width: 150px;
    max-width: 150px;
    white-space: nowrap !important;
    letter-spacing: 0.12em;
    text-indent: 0.12em;
    font-size: 13.8px;
    line-height: 1.2;
    word-break: keep-all;
    overflow: hidden;
  }

  .hwp-check-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px 10px; font-size: 15px; padding: 2px 0; }
  .hwp-check-item { display: flex; align-items: center; gap: 6px; font-weight: 600; color: #000000 !important; }
  .hwp-check-box { font-size: 17px; font-weight: bold; color: #000000 !important; display: inline-block; width: 18px; text-align: center; }
  .manual-write-box { height: 32px; width: 100%; display: block; background: #ffffff !important; }
  .rendered-sig-img { width: 150px; height: 55px; object-fit: contain; vertical-align: middle; margin-left: 10px; display: inline-block; }

  @page { size: A4 portrait; margin: 0; }

  @media print {
    * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
    html, body { width: 210mm !important; height: auto !important; margin: 0 !important; padding: 0 !important; background: #fff !important; overflow: visible !important; }
    body > *:not(#printModal) { display: none !important; }
    #printModal { display: block !important; position: static !important; width: 210mm !important; height: auto !important; min-height: 0 !important; background: #fff !important; padding: 0 !important; margin: 0 !important; box-shadow: none !important; border: none !important; overflow: visible !important; backdrop-filter: none !important; }
    #printModal .modal-box { display: block !important; max-width: none !important; width: 210mm !important; height: auto !important; max-height: none !important; border: none !important; box-shadow: none !important; padding: 0 !important; margin: 0 !important; background: #fff !important; overflow: visible !important; }
    #printContainer { display: block !important; width: 210mm !important; height: auto !important; margin: 0 !important; padding: 0 !important; gap: 0 !important; overflow: visible !important; }
    .no-print { display: none !important; }
    .proxy-print-value { cursor: default !important; padding: 0 !important; background: transparent !important; }
    
    .hwp-paper { 
      border: none !important; 
      box-shadow: none !important; 
      padding: 12mm 14mm 12mm 14mm !important; 
      margin: 0 !important; 
      width: 210mm !important; 
      height: 297mm !important; 
      max-height: 297mm !important; 
      page-break-after: always !important; 
      break-after: page !important; 
      page-break-inside: avoid !important; 
      break-inside: avoid !important; 
      box-sizing: border-box !important;
      display: flex !important;
      flex-direction: column !important;
      justify-content: space-between !important;
    }
    .hwp-paper:last-child { page-break-after: auto !important; break-after: auto !important; }
  }

  /* ===== v9 Seasonal redesign (기능 유지 + 디자인 개선) ===== */
  body[data-season] {
    --hero-grad-start: #f8fafc;
    --hero-grad-end: #eef6ff;
    --season-deco1: rgba(59, 130, 246, 0.10);
    --season-deco2: rgba(16, 185, 129, 0.09);
    --season-deco3: rgba(245, 158, 11, 0.07);
    --season-card-glow: rgba(255,255,255,0.70);
    --season-stroke: rgba(255,255,255,0.55);
  }
  body[data-season="default"] {
    --mobile-nav-bg:#164f49;
    --mobile-nav-active:#2d8d7f;
    --primary: #0f766e;
    --primary-soft: #ecfeff;
    --primary-hover: #115e59;
    --success: #10b981;
    --warning: #f59e0b;
    --hero-grad-start: #f2fbfa;
    --hero-grad-end: #eff6ff;
    --season-deco1: rgba(15, 118, 110, 0.10);
    --season-deco2: rgba(34, 197, 94, 0.08);
    --season-deco3: rgba(251, 191, 36, 0.06);
  }
  body[data-season="spring"] {
    --mobile-nav-bg:#772746;
    --mobile-nav-active:#df477b;
    --primary: #d94674;
    --primary-soft: #fff1f6;
    --primary-hover: #be185d;
    --success: #14b8a6;
    --warning: #f59e0b;
    --hero-grad-start: #fff8fb;
    --hero-grad-end: #f5fff6;
    --season-deco1: rgba(244, 114, 182, 0.13);
    --season-deco2: rgba(134, 239, 172, 0.11);
    --season-deco3: rgba(251, 191, 36, 0.08);
  }
  body[data-season="summer"] {
    --mobile-nav-bg:#075d72;
    --mobile-nav-active:#1597b0;
    --primary: #0f8fa8;
    --primary-soft: #edfafd;
    --primary-hover: #036b82;
    --success: #14b8a6;
    --warning: #f59e0b;
    --hero-grad-start: #f1fbff;
    --hero-grad-end: #ecfff7;
    --season-deco1: rgba(56, 189, 248, 0.14);
    --season-deco2: rgba(20, 184, 166, 0.11);
    --season-deco3: rgba(251, 191, 36, 0.08);
  }
  body[data-season="autumn"] {
    --mobile-nav-bg:#6b3b17;
    --mobile-nav-active:#bd6b2e;
    --primary: #b45309;
    --primary-soft: #fff7ed;
    --primary-hover: #92400e;
    --success: #65a30d;
    --warning: #ea580c;
    --hero-grad-start: #fffaf3;
    --hero-grad-end: #fff5eb;
    --season-deco1: rgba(251, 146, 60, 0.13);
    --season-deco2: rgba(202, 138, 4, 0.10);
    --season-deco3: rgba(239, 68, 68, 0.07);
  }
  body[data-season="winter"] {
    --mobile-nav-bg:#284d78;
    --mobile-nav-active:#4a7fd0;
    --primary: #2563eb;
    --primary-soft: #eef4ff;
    --primary-hover: #1d4ed8;
    --success: #0ea5a3;
    --warning: #f59e0b;
    --hero-grad-start: #f3f8ff;
    --hero-grad-end: #f8fbff;
    --season-deco1: rgba(96, 165, 250, 0.15);
    --season-deco2: rgba(165, 243, 252, 0.10);
    --season-deco3: rgba(255, 255, 255, 0.42);
  }
  body {
    min-height: 100vh;
    background:
      radial-gradient(circle at 7% 8%, var(--season-deco1) 0, transparent 23%),
      radial-gradient(circle at 92% 12%, var(--season-deco2) 0, transparent 20%),
      radial-gradient(circle at 85% 88%, var(--season-deco3) 0, transparent 20%),
      linear-gradient(180deg, var(--hero-grad-start), var(--hero-grad-end) 54%, var(--bg) 100%);
  }
  .system-header,
  .approval-banner,
  .theme-strip,
  .card {
    backdrop-filter: blur(8px);
  }
  .system-header {
    background: rgba(255,255,255,0.60);
    border: 1px solid var(--season-stroke);
    border-radius: 24px;
    padding: 16px 18px;
    box-shadow: 0 18px 40px -28px rgba(15, 23, 42, 0.28);
  }
  body.dark-mode .system-header {
    background: rgba(15,23,42,0.65);
    border-color: rgba(148,163,184,0.20);
  }
  .system-title {
    font-size: 1.24rem;
    letter-spacing: -0.02em;
  }
  .approval-banner,
  .theme-strip {
    max-width: 1440px;
    margin-left: auto;
    margin-right: auto;
    background: linear-gradient(135deg, rgba(255,255,255,0.82), rgba(255,255,255,0.68));
    border: 1px solid var(--season-stroke);
    box-shadow: 0 18px 38px -28px rgba(15, 23, 42, 0.25);
  }
  body.dark-mode .approval-banner,
  body.dark-mode .theme-strip {
    background: linear-gradient(135deg, rgba(30,41,59,0.88), rgba(15,23,42,0.88));
    border-color: rgba(148,163,184,0.18);
  }
  .theme-strip {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    border-radius: 20px;
    padding: 12px 14px;
    margin-bottom: 12px;
    flex-wrap: wrap;
  }
  .theme-strip-title {
    font-size: 0.88rem;
    font-weight: 800;
    color: var(--text);
  }
  .theme-pill-group {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }
  .theme-pill {
    padding: 8px 14px;
    border-radius: 999px;
    border: 1px solid var(--border);
    background: rgba(255,255,255,0.78);
    color: var(--sub);
    font-size: 0.8rem;
    font-weight: 800;
    min-width: 60px;
  }
  body.dark-mode .theme-pill {
    background: rgba(15,23,42,0.72);
  }
  .theme-pill.active {
    background: var(--primary);
    color: #fff;
    border-color: var(--primary);
    box-shadow: 0 8px 18px -10px color-mix(in srgb, var(--primary) 60%, transparent);
  }
  .dashboard-wrapper {
    padding-left: 92px;
    gap: 18px;
  }
  .desktop-quick-rail {
    position: fixed;
    left: 16px;
    top: 210px;
    z-index: 30;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  .desktop-quick-btn {
    width: 78px;
    min-height: 78px;
    white-space: normal;
    text-align: center;
    border-radius: 22px;
    background: linear-gradient(180deg, rgba(255,255,255,0.94), rgba(255,255,255,0.82));
    color: var(--text);
    border: 1px solid rgba(255,255,255,0.70);
    box-shadow: 0 18px 30px -26px rgba(15, 23, 42, 0.35);
    display: flex;
    flex-direction: column;
    gap: 6px;
    align-items: center;
    justify-content: center;
    padding: 10px 8px;
    font-size: 0.77rem;
    font-weight: 800;
    line-height: 1.22;
  }
  .desktop-quick-btn:hover {
    transform: translateY(-1px);
    background: linear-gradient(180deg, var(--primary-soft), rgba(255,255,255,0.95));
    color: var(--primary);
  }
  body.dark-mode .desktop-quick-btn {
    background: linear-gradient(180deg, rgba(30,41,59,0.92), rgba(15,23,42,0.88));
    border-color: rgba(148,163,184,0.18);
    color: var(--text);
  }
  .desktop-quick-icon {
    font-size: 1.4rem;
    line-height: 1;
  }
  .card {
    border-radius: 22px;
    border-color: rgba(226,232,240,0.92);
    box-shadow: 0 24px 42px -34px rgba(15, 23, 42, 0.24);
    background:
      linear-gradient(180deg, rgba(255,255,255,0.94), rgba(255,255,255,0.92));
  }
  body.dark-mode .card {
    background: linear-gradient(180deg, rgba(30,41,59,0.98), rgba(15,23,42,0.95));
  }
  .card::before {
    content: "";
    position: absolute;
    inset: 0 auto auto 0;
    width: 100%;
    height: 5px;
    background: linear-gradient(90deg, var(--primary), color-mix(in srgb, var(--primary) 45%, #ffffff));
    opacity: 0.9;
  }
  .card-header {
    padding-bottom: 10px;
    margin-bottom: 14px;
  }
  .card-header h2 {
    font-size: 1.08rem;
    font-weight: 800;
  }
  .side-profile-header {
    border-radius: 18px;
    background: linear-gradient(135deg, var(--primary-soft), rgba(255,255,255,0.82));
  }
  body.dark-mode .side-profile-header {
    background: linear-gradient(135deg, rgba(37,99,235,0.15), rgba(15,23,42,0.82));
  }
  .side-stat-box {
    border-radius: 18px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.45);
  }
  button,
  .mobile-tab-btn,
  .sort-btn,
  .modal-trigger-btn,
  .date-mode-btn,
  .cal-title-pill,
  .nav-header-title-btn {
    transition: 0.18s ease;
  }
  button {
    border-radius: 12px;
    box-shadow: 0 10px 18px -14px color-mix(in srgb, var(--primary) 60%, transparent);
  }
  .sort-btn,
  .mobile-tab-btn,
  .modal-trigger-btn,
  button.sub-btn,
  button.edit-btn,
  .admin-status-badge,
  .theme-toggle-btn,
  .cloud-badge {
    border-radius: 12px !important;
  }
  .sort-btn.active,
  .mobile-tab-btn.active,
  .date-mode-btn.active {
    box-shadow: 0 12px 22px -16px color-mix(in srgb, var(--primary) 60%, transparent);
  }
  .cal-title-pill {
    padding: 10px 16px;
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(248,250,252,0.95));
    border: 1px solid var(--border);
    font-weight: 800;
    min-width: 140px;
    text-align: center;
  }
  body.dark-mode .cal-title-pill {
    background: linear-gradient(180deg, rgba(30,41,59,0.95), rgba(15,23,42,0.95));
  }
  .calendar-grid {
    border-radius: 18px;
    overflow: hidden;
  }
  .cal-header {
    background: linear-gradient(180deg, rgba(255,255,255,0.88), rgba(248,250,252,0.92));
    font-weight: 800;
  }
  body.dark-mode .cal-header {
    background: rgba(15,23,42,0.82);
  }
  .cal-cell {
    background: rgba(255,255,255,0.76);
  }
  body.dark-mode .cal-cell {
    background: rgba(15,23,42,0.82);
  }
  .theme-chip-note {
    font-size: 0.72rem;
    color: var(--sub);
  }
  @media (max-width: 1200px) {
    .dashboard-wrapper { padding-left: 0; }
    .desktop-quick-rail { display: none; }
  }
  @media (max-width: 1120px) {
    .theme-strip {
      border-radius: 16px;
      padding: 10px 12px;
    }
    .theme-pill-group {
      width: 100%;
      overflow-x: auto;
      flex-wrap: nowrap;
      padding-bottom: 2px;
    }
    .theme-pill {
      flex: 0 0 auto;
      min-width: 68px;
    }
  }
  @media (max-width: 640px) {
    .system-header {
      padding: 14px;
      border-radius: 18px;
    }
    .theme-strip-title {
      width: 100%;
    }
  }


  /* ===== v10 Photo-style full redesign ===== */
  :root {
    --shell-max: 1680px;
    --sidebar-width: 220px;
  }

  body {
    overflow-x: hidden;
  }

  body[data-season="spring"] {
    --season-accent: #ec6f91;
    --season-accent2: #67b99a;
    --season-surface: rgba(255,248,251,.94);
    --season-panel: rgba(255,255,255,.88);
    --season-line: rgba(236,111,145,.16);
  }
  body[data-season="summer"] {
    --season-accent: #0e9fba;
    --season-accent2: #17a673;
    --season-surface: rgba(244,252,255,.94);
    --season-panel: rgba(255,255,255,.90);
    --season-line: rgba(14,159,186,.16);
  }
  body[data-season="autumn"] {
    --season-accent: #c76a1b;
    --season-accent2: #84964c;
    --season-surface: rgba(255,250,243,.95);
    --season-panel: rgba(255,255,255,.90);
    --season-line: rgba(199,106,27,.17);
  }
  body[data-season="winter"] {
    --season-accent: #3478c9;
    --season-accent2: #5ba8b8;
    --season-surface: rgba(247,251,255,.96);
    --season-panel: rgba(255,255,255,.92);
    --season-line: rgba(52,120,201,.16);
  }
  body[data-season="default"] {
    --season-accent: #157a6e;
    --season-accent2: #739e82;
    --season-surface: rgba(248,252,250,.95);
    --season-panel: rgba(255,255,255,.90);
    --season-line: rgba(21,122,110,.15);
  }

  body:not(.dark-mode) {
    --card: var(--season-panel);
    --header-bg: rgba(248,250,252,.82);
  }

  .system-header,
  .theme-strip,
  .dashboard-wrapper {
    max-width: var(--shell-max);
  }

  .system-header {
    padding: 12px 18px;
    border-radius: 18px;
    margin-bottom: 8px;
  }
  .system-title {
    font-size: 1.05rem;
  }

  .theme-strip {
    margin-bottom: 14px;
    padding: 9px 13px;
    border-radius: 16px;
  }
  .theme-strip-title {
    display: flex;
    flex-direction: column;
    gap: 1px;
  }
  .theme-strip-title small {
    color: var(--sub);
    font-size: .68rem;
    font-weight: 600;
  }
  .theme-pill {
    box-shadow: none;
    min-width: 76px;
  }

  .dashboard-wrapper {
    display: grid;
    grid-template-columns: var(--sidebar-width) minmax(0,1fr) 455px;
    gap: 16px;
    padding-left: 0;
    align-items: start;
  }
  .desktop-sidebar {
    position: sticky;
    top: 12px;
    min-width: 0;
    border: 1px solid var(--border);
    border-radius: 22px;
    background: var(--season-panel);
    box-shadow: 0 18px 42px -34px rgba(15,23,42,.3);
    overflow: hidden;
  }
  body.dark-mode .desktop-sidebar {
    background: rgba(15,23,42,.94);
  }
  .desktop-brand {
    padding: 18px 14px 15px;
    text-align: center;
    border-bottom: 1px solid var(--border);
  }
  .desktop-brand-logo-wrap {
    width: 96px;
    height: 78px;
    margin: 0 auto 8px;
    overflow: hidden;
    border-radius: 18px;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .desktop-brand-logo {
    width: 125px;
    height: 125px;
    object-fit: cover;
    transform: scale(1.14);
  }
  .desktop-brand strong {
    display: block;
    font-size: .92rem;
    color: var(--text);
    line-height: 1.3;
    word-break: keep-all;
  }
  .desktop-brand span {
    display: block;
    margin-top: 3px;
    font-size: .7rem;
    color: var(--sub);
  }
  .desktop-menu {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 12px;
  }
  .desktop-menu-btn {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--text);
    box-shadow: none;
    justify-content: flex-start;
    gap: 10px;
    border-radius: 12px;
    font-size: .82rem;
  }
  .desktop-menu-btn:hover,
  .desktop-menu-btn.active {
    background: var(--primary-soft);
    color: var(--primary);
    border-color: color-mix(in srgb, var(--primary) 28%, transparent);
  }
  .desktop-menu-btn span {
    width: 24px;
    text-align: center;
    font-size: 1rem;
  }
  .desktop-menu-btn b {
    font-weight: 800;
  }
  .desktop-sidebar-note {
    margin: 0 12px 12px;
    padding: 14px 12px;
    min-height: 128px;
    border-radius: 16px;
    background:
      radial-gradient(circle at 85% 18%, var(--season-deco1), transparent 38%),
      linear-gradient(145deg, var(--primary-soft), rgba(255,255,255,.88));
    border: 1px solid var(--season-line);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
  }
  body.dark-mode .desktop-sidebar-note {
    background: linear-gradient(145deg, rgba(30,41,59,.95), rgba(15,23,42,.95));
  }
  .season-sidebar-icon { font-size: 1.6rem; margin-bottom: 5px; }
  .desktop-sidebar-note strong { font-size: .86rem; color: var(--text); }
  .desktop-sidebar-note span:last-child { font-size: .7rem; color: var(--sub); line-height: 1.5; margin-top: 4px; }

  .left-col {
    min-width: 0;
  }
  #cardCalendar { order: 2; }
  #cardEmpTable { order: 3; }

  .dashboard-hero {
    order: 0;
    position: relative;
    min-height: 142px;
    border: 1px solid var(--season-line);
    border-radius: 22px;
    padding: 24px 26px;
    overflow: hidden;
    background:
      radial-gradient(circle at 83% 30%, var(--season-deco1), transparent 28%),
      radial-gradient(circle at 94% 90%, var(--season-deco2), transparent 34%),
      linear-gradient(135deg, var(--season-surface), rgba(255,255,255,.78));
    box-shadow: 0 20px 44px -34px rgba(15,23,42,.30);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
  }
  body.dark-mode .dashboard-hero {
    background: linear-gradient(135deg, rgba(30,41,59,.97), rgba(15,23,42,.94));
  }
  .dashboard-hero::after {
    content: "✦";
    position: absolute;
    right: 30px;
    top: 12px;
    font-size: 58px;
    color: var(--season-accent);
    opacity: .10;
  }
  .dashboard-hero-kicker {
    color: var(--primary);
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .13em;
  }
  .dashboard-hero h1 {
    margin-top: 6px;
    font-size: 1.55rem;
    letter-spacing: -.035em;
    color: var(--text);
  }
  .dashboard-hero p {
    color: var(--sub);
    font-size: .82rem;
    margin-top: 5px;
  }
  .dashboard-hero-date {
    flex: 0 0 auto;
    min-width: 126px;
    padding: 13px 14px;
    background: rgba(255,255,255,.74);
    border: 1px solid var(--border);
    border-radius: 16px;
    text-align: center;
  }
  body.dark-mode .dashboard-hero-date { background: rgba(15,23,42,.72); }
  .dashboard-hero-date span { display:block; font-size:.72rem; color:var(--sub); }
  .dashboard-hero-date b { display:block; margin-top:3px; font-size:.88rem; color:var(--primary); }

  .dashboard-summary-grid {
    order: 1;
    display: grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: 10px;
  }
  .dashboard-summary-card {
    min-width: 0;
    display: flex;
    gap: 10px;
    align-items: center;
    padding: 14px 13px;
    border-radius: 18px;
    border: 1px solid var(--border);
    background: rgba(255,255,255,.82);
    box-shadow: 0 14px 26px -24px rgba(15,23,42,.30);
  }
  body.dark-mode .dashboard-summary-card { background: rgba(30,41,59,.90); }
  .summary-icon {
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    border-radius: 12px;
    display:flex;
    align-items:center;
    justify-content:center;
    background: rgba(255,255,255,.65);
    font-size: 1.12rem;
  }
  .dashboard-summary-card div { min-width:0; }
  .dashboard-summary-card small {
    display:block;
    color:var(--sub);
    font-size:.66rem;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .dashboard-summary-card strong {
    display:block;
    margin-top:1px;
    color:var(--text);
    font-size:1.05rem;
  }
  .summary-green { background: linear-gradient(135deg,#effdf6,#f9fffc); }
  .summary-pink { background: linear-gradient(135deg,#fff3f6,#fffafb); }
  .summary-yellow { background: linear-gradient(135deg,#fff9e9,#fffdf7); }
  .summary-blue { background: linear-gradient(135deg,#eef7ff,#f9fcff); }
  body.dark-mode .summary-green,
  body.dark-mode .summary-pink,
  body.dark-mode .summary-yellow,
  body.dark-mode .summary-blue { background: rgba(30,41,59,.90); }

  .card {
    position: relative;
    overflow: hidden;
    border-radius: 20px;
    padding: 15px;
  }
  .card::before {
    height: 4px;
  }
  #cardCalendar .calendar-grid {
    background: color-mix(in srgb, var(--border) 72%, transparent);
  }
  #cardCalendar .cal-cell {
    min-width: 0;
  }

  .right-col {
    position: sticky;
    top: 12px;
    min-width: 0;
  }
  #cardLeaveApplyMain {
    border-top: 4px solid var(--primary);
  }

  .leave-type-form-group label,
  .leave-type-form-group > .leave-type-form-label {
    gap: 8px;
  }
  .leave-type-form-label {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--sub);
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .inline-manage-link {
    margin-left: auto;
    padding: 4px 8px;
    border-radius: 999px !important;
    font-size: .68rem;
    background: var(--primary-soft);
    color: var(--primary);
    border: 1px solid color-mix(in srgb, var(--primary) 32%, transparent);
    box-shadow: none;
  }
  .leave-type-chip-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: 7px;
  }
  .leave-type-chip {
    min-width: 0;
    padding: 9px 5px;
    border-radius: 11px;
    background: var(--input-bg);
    color: var(--sub);
    border: 1px solid var(--border);
    box-shadow: none;
    font-size: .74rem;
    font-weight: 800;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .leave-type-chip.active {
    background: var(--primary);
    color: #fff;
    border-color: var(--primary);
  }
  .leave-type-chip.leave-more {
    border-style: dashed;
    color: var(--primary);
    background: var(--primary-soft);
  }
  .leave-type-more-trigger {
    display: none;
  }

  /* Long text: keep the layout clean instead of ugly clipping */
  .mobile-emp-card-top > div:first-child,
  .side-profile-header > div:first-child,
  .day-detail-name,
  .approval-item > div,
  #empTable td,
  #empTable th {
    min-width: 0;
  }
  .mobile-emp-card-top strong,
  .day-detail-name {
    overflow-wrap: anywhere;
    word-break: keep-all;
  }
  #empTable td,
  #empTable th {
    white-space: normal;
    word-break: keep-all;
    overflow-wrap: anywhere;
  }

  @media (max-width: 1380px) {
    :root { --sidebar-width: 190px; }
    .dashboard-wrapper { grid-template-columns: var(--sidebar-width) minmax(0,1fr) 425px; }
    .desktop-brand strong { font-size:.82rem; }
    .desktop-menu-btn { font-size:.76rem; padding:9px; }
    .dashboard-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  }

  @media (max-width: 1120px) {
    .desktop-sidebar { display:none; }
    .dashboard-wrapper { grid-template-columns: minmax(0,1fr) 410px; }
  }

  @media (max-width: 1120px) {
    body { padding-bottom: 82px; }
    .dashboard-wrapper {
      grid-template-columns: 1fr;
      padding: 0;
    }
    .desktop-sidebar,
    .dashboard-summary-grid {
      display: none;
    }
    .dashboard-hero {
      min-height: 118px;
      padding: 18px;
      border-radius: 18px;
      margin-bottom: 0;
    }
    .dashboard-hero h1 { font-size:1.25rem; }
    .dashboard-hero p { font-size:.76rem; max-width:220px; }
    .dashboard-hero-date {
      min-width: 92px;
      padding: 9px;
    }

    .mobile-nav-tabs {
      position: fixed;
      left: max(10px, env(safe-area-inset-left));
      right: max(10px, env(safe-area-inset-right));
      bottom: calc(8px + env(safe-area-inset-bottom));
      z-index: 9990;
      display: grid;
      padding: 7px;
      margin: 0;
      background: rgba(15,23,42,.92);
      border: 1px solid rgba(148,163,184,.24);
      border-radius: 18px;
      box-shadow: 0 14px 36px rgba(15,23,42,.30);
      backdrop-filter: blur(14px);
    }
    .mobile-tab-btn {
      background: transparent;
      color: #cbd5e1;
      border: 0;
      border-radius: 12px;
    }
    .mobile-tab-btn.active {
      background: var(--primary);
      color: #fff;
    }

    .theme-strip {
      margin-bottom: 10px;
    }

    .leave-type-chip-grid {
      grid-template-columns: repeat(3,minmax(0,1fr));
    }
    .leave-type-chip {
      font-size:.72rem;
      padding:9px 4px;
    }

    /* Mobile employee title lines can wrap naturally up to two lines */
    .mobile-emp-card-top {
      align-items:flex-start;
      gap:6px;
    }
    .mobile-emp-card-top > div:first-child {
      min-width:0;
      flex:1;
    }
    .mobile-emp-card-top strong {
      display:inline;
      white-space:normal;
      line-height:1.3;
    }
    .mobile-emp-card-top > div:last-child {
      flex:0 0 auto;
    }
  }

  @media (max-width: 480px) {
    body { padding-left:7px; padding-right:7px; }
    .system-title { font-size:.92rem; }
    .header-actions { width:100%; justify-content:flex-end; }
    .dashboard-hero {
      align-items:flex-start;
      gap:10px;
    }
    .dashboard-hero-date { display:none; }
    .leave-type-chip-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .side-stats-grid { grid-template-columns: repeat(2,1fr); }
  }

  /* PRINT GUARD: season/UI redesign never leaks into the A4 application form */
  @media print {
    .desktop-sidebar,
    .dashboard-hero,
    .dashboard-summary-grid,
    .theme-strip,
    .mobile-nav-tabs {
      display:none !important;
    }
  }


  /* ===== v11 mockup-matched mobile + real leave-type manager ===== */
  .mobile-home-screen{display:none}
  .modal-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:13px}
  .modal-title-row h3{font-size:1.08rem;font-weight:900;color:var(--text)}
  .modal-title-row p{font-size:.72rem;color:var(--sub);margin-top:3px}
  .leave-picker-box{max-width:520px}
  .leave-type-select-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:380px;overflow:auto}
  .leave-type-select-list .large-picker-item{margin:0;border-radius:12px;border:1px solid var(--border);padding:12px}
  .leave-manager-open-btn{width:100%;margin-top:12px;background:var(--primary-soft);color:var(--primary);border:1px dashed var(--primary);box-shadow:none}
  .leave-manager-box{max-width:900px}
  .leave-manager-layout{display:grid;grid-template-columns:1fr .9fr;gap:14px}
  .leave-manager-list-panel,.leave-manager-editor-panel{border:1px solid var(--border);border-radius:16px;padding:14px;background:var(--input-bg)}
  .leave-manager-list-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
  .leave-manager-list-head button{padding:7px 10px;font-size:.74rem}
  .leave-manager-list{display:flex;flex-direction:column;gap:7px;max-height:430px;overflow:auto}
  .leave-manager-row{display:grid;grid-template-columns:minmax(0,1fr) 48px 70px 62px 110px;gap:6px;align-items:center;padding:9px;border:1px solid var(--border);border-radius:10px;background:var(--card);font-size:.72rem}
  .leave-manager-row>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .leave-manager-row>span{text-align:center;color:var(--sub)}
  .leave-row-actions{display:flex;gap:4px;justify-content:flex-end}
  .leave-row-actions button{height:26px;padding:0 7px;font-size:.66rem;box-shadow:none}
  .leave-config-segment{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border:1px solid var(--border);border-radius:10px;background:var(--card)}
  .leave-config-segment button{background:transparent;color:var(--sub);box-shadow:none;padding:8px}
  .leave-config-segment button.active{background:var(--primary);color:#fff}
  .leave-config-radio-list{display:grid;grid-template-columns:auto 1fr;gap:5px 8px;align-items:center}
  .leave-config-radio-list label{justify-content:flex-start;gap:6px;color:var(--text);font-size:.77rem}
  .leave-config-radio-list label input{width:auto}
  .leave-config-radio-list span{font-size:.68rem;color:var(--sub)}
  .leave-config-value-row,.custom-usage-row{display:grid;grid-template-columns:minmax(0,1fr) 56px;gap:8px;align-items:center}
  .leave-config-value-row strong,.custom-usage-row strong{height:44px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:10px;background:var(--card);color:var(--primary)}
  #leaveConfigExample,#customUsageHint{display:block;margin-top:4px;color:var(--sub);font-size:.67rem}
  .leave-manager-editor-actions{display:flex;gap:8px;margin-top:14px}
  .leave-manager-editor-actions button{flex:1}

  @media(max-width:1120px){
    .system-header{display:none}
    .mobile-home-screen{display:block;margin:4px auto 10px;border-radius:20px;padding:16px;border:1px solid var(--border);background:radial-gradient(circle at 90% 8%,var(--season-deco1),transparent 28%),linear-gradient(180deg,rgba(255,255,255,.97),rgba(255,255,255,.88));box-shadow:0 20px 38px -32px rgba(15,23,42,.34)}
    body.dark-mode .mobile-home-screen{background:linear-gradient(180deg,rgba(30,41,59,.98),rgba(15,23,42,.96))}
    .mobile-home-brand{display:flex;align-items:center;gap:12px}
    .mobile-home-logo-box{width:72px;height:58px;border-radius:14px;background:#fff;overflow:hidden;display:flex;align-items:center;justify-content:center}
    .mobile-home-logo-img{width:100px;height:100px;object-fit:cover;transform:scale(1.06)}
    .mobile-home-brand strong{display:block;font-size:.96rem;color:var(--text)}
    .mobile-home-brand span{display:block;font-size:.67rem;color:var(--sub);margin-top:2px}
    .mobile-home-message{margin-top:12px;min-height:95px;border-radius:17px;padding:16px;display:flex;align-items:center;gap:13px;background:radial-gradient(circle at 88% 25%,var(--season-deco2),transparent 32%),linear-gradient(135deg,var(--primary-soft),rgba(255,255,255,.84));border:1px solid var(--season-line)}
    body.dark-mode .mobile-home-message{background:rgba(15,23,42,.78)}
    .mobile-home-message>span{font-size:2rem}.mobile-home-message strong{display:block;font-size:1.17rem;color:var(--text)}.mobile-home-message div span{display:block;color:var(--sub);font-size:.72rem;margin-top:3px}
    .mobile-home-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:11px}
    .mobile-home-action{min-height:104px;padding:13px;border-radius:17px;box-shadow:none;color:var(--text);align-items:flex-start;flex-direction:column;white-space:normal;text-align:left;border:1px solid rgba(255,255,255,.7)}
    .mobile-home-action>span{font-size:1.45rem}.mobile-home-action b{display:block;font-size:.92rem;margin-top:3px}.mobile-home-action small{font-size:.64rem;color:var(--sub);margin-top:2px}
    .action-pink{background:linear-gradient(135deg,#fff0f5,#fff9fb)}.action-green{background:linear-gradient(135deg,#eafff5,#f8fffb)}.action-yellow{background:linear-gradient(135deg,#fff6dc,#fffdf5)}.action-blue{background:linear-gradient(135deg,#eef6ff,#fafcff)}
    body.dark-mode .mobile-home-action{background:rgba(30,41,59,.9)}
    .mobile-home-mini-card{margin-top:10px;padding:13px;background:var(--card);border:1px solid var(--border);border-radius:16px}
    .mobile-home-mini-head{display:flex;justify-content:space-between;align-items:center}.mobile-home-mini-head strong{font-size:.83rem}.mobile-home-mini-head button{padding:0;background:none;color:var(--sub);box-shadow:none;font-size:.67rem}
    .mobile-home-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:10px}.mobile-home-stats div{text-align:center;padding:9px 2px;border-radius:11px;background:var(--input-bg)}.mobile-home-stats span{display:block;font-size:.61rem;color:var(--sub)}.mobile-home-stats b{display:block;margin-top:2px;font-size:.82rem}
    .mobile-today-schedule{display:flex;flex-direction:column;gap:6px;margin-top:9px}.mobile-today-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center;padding:8px 9px;border-radius:10px;background:var(--input-bg);font-size:.71rem}.mobile-today-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-today-row span{color:var(--primary);font-weight:800}.mobile-empty-line{color:var(--sub);font-size:.71rem;padding:7px 0}
    .mobile-nav-tabs{grid-template-columns:repeat(4,1fr)}
    .mobile-tab-btn{font-size:.7rem;padding:9px 2px}
    body.mobile-home-active .dashboard-wrapper,body.mobile-home-active .approval-banner{display:none!important}
    .leave-manager-box{max-width:none;width:100%;max-height:90vh;border-radius:18px 18px 0 0}
    #leaveTypeManagerModal{align-items:flex-end;padding:0}
    .leave-manager-layout{grid-template-columns:1fr}
    .leave-manager-list-panel{max-height:35vh}
    .leave-manager-row{grid-template-columns:minmax(0,1fr) 42px 62px 55px 98px}
  }


  /* ===== v12 디자인 집중: 시안 느낌 강화 ===== */
  .mobile-home-screen,
  .dashboard-hero,
  .desktop-sidebar-note { position: relative; overflow: hidden; }

  body[data-season="spring"] { --scene-tint:#fff3f8; --scene-tint-2:#f3ffe9; --scene-note:#e85f9b; }
  body[data-season="summer"] { --scene-tint:#eefbff; --scene-tint-2:#ecfff6; --scene-note:#1595c0; }
  body[data-season="autumn"] { --scene-tint:#fff7ee; --scene-tint-2:#fff4de; --scene-note:#bf6b2f; }
  body[data-season="winter"] { --scene-tint:#f4f9ff; --scene-tint-2:#eefcff; --scene-note:#4a7dd8; }
  body[data-season="default"] { --scene-tint:#f4fcf8; --scene-tint-2:#f2fbf6; --scene-note:#147c6f; }

  .theme-strip {
    background:
      radial-gradient(circle at 7% 20%, rgba(255,255,255,.72), transparent 20%),
      linear-gradient(135deg, color-mix(in srgb, var(--scene-tint) 92%, white), rgba(255,255,255,.9));
  }
  .dashboard-hero {
    background:
      radial-gradient(circle at 86% 20%, rgba(255,255,255,.85), transparent 20%),
      radial-gradient(circle at 95% 90%, var(--season-deco2), transparent 28%),
      linear-gradient(135deg, var(--scene-tint), var(--scene-tint-2));
    border-color: color-mix(in srgb, var(--primary) 16%, white);
  }
  .dashboard-hero::before {
    content:"";
    position:absolute; inset:auto -10% -24% auto;
    width:260px; height:120px;
    background:radial-gradient(circle at 30% 30%, rgba(255,255,255,.95), transparent 18%), linear-gradient(180deg, rgba(255,255,255,.5), rgba(255,255,255,0));
    opacity:.58; pointer-events:none;
  }
  .dashboard-hero::after {
    content:"함께 만드는 행복한 평안";
    right:26px; top:18px;
    font-size:.86rem; font-weight:800; color:var(--scene-note); opacity:.88; letter-spacing:-.01em;
  }
  .desktop-sidebar-note::before {
    content:""; position:absolute; inset:auto -10px -18px auto;
    width:110px; height:110px; background:radial-gradient(circle, rgba(255,255,255,.56), transparent 65%); pointer-events:none;
  }
  .desktop-sidebar-note::after {
    content:"좋은 돌봄, 좋은 사람들";
    position:absolute; left:12px; top:14px;
    font-size:.7rem; font-weight:800; color:var(--scene-note); opacity:.9;
  }
  .leave-type-chip-grid { grid-template-columns: repeat(4, minmax(0,1fr)); gap:8px; }
  .leave-type-chip {
    position:relative; border-radius:13px; font-size:.75rem; white-space:normal;
    min-height:44px; line-height:1.18; display:flex; align-items:center; justify-content:center;
    text-align:center; padding:7px 6px;
  }
  .leave-type-chip.tone-blue { background:#eef6ff; color:#2c6fd6; border-color:#d9e8ff; }
  .leave-type-chip.tone-green { background:#ecfff6; color:#16835c; border-color:#d1f6e4; }
  .leave-type-chip.tone-purple { background:#f6f0ff; color:#7a56d6; border-color:#e7d9ff; }
  .leave-type-chip.tone-orange { background:#fff5e9; color:#d7821a; border-color:#ffe6c4; }
  .leave-type-chip.tone-pink { background:#fff0f5; color:#d9487b; border-color:#ffd5e5; }
  .leave-type-chip.tone-gray { background:#f7f8fa; color:#5b6574; border-color:#e5e8ef; }
  .leave-type-chip.active { background:var(--primary)!important; color:#fff!important; border-color:var(--primary)!important; }
  .leave-type-chip.leave-more { background:var(--primary-soft)!important; color:var(--primary)!important; }

  @media (max-width:1120px){
    .mobile-home-screen {
      margin-top:2px; border-radius:26px; padding:17px 16px 18px;
      background:
        radial-gradient(circle at 92% 7%, rgba(255,255,255,.95), transparent 20%),
        linear-gradient(180deg, var(--scene-tint), rgba(255,255,255,.92) 64%, rgba(255,255,255,.88));
      border-color:rgba(255,255,255,.74); box-shadow:0 20px 44px -34px rgba(15,23,42,.32);
    }
    .mobile-home-screen::before,
    .mobile-home-screen::after { position:absolute; font-size:1.45rem; opacity:.72; pointer-events:none; }
    body[data-season="spring"] .mobile-home-screen::before { content:"🌸"; left:12px; top:14px; }
    body[data-season="spring"] .mobile-home-screen::after { content:"🌸"; right:18px; top:86px; }
    body[data-season="summer"] .mobile-home-screen::before { content:"🌴"; left:10px; top:12px; }
    body[data-season="summer"] .mobile-home-screen::after { content:"🌊"; right:16px; top:88px; }
    body[data-season="autumn"] .mobile-home-screen::before { content:"🍁"; left:12px; top:14px; }
    body[data-season="autumn"] .mobile-home-screen::after { content:"🍂"; right:18px; top:90px; }
    body[data-season="winter"] .mobile-home-screen::before { content:"❄️"; left:12px; top:14px; }
    body[data-season="winter"] .mobile-home-screen::after { content:"☃️"; right:16px; top:86px; }
    body[data-season="default"] .mobile-home-screen::before { content:"🌿"; left:12px; top:14px; }
    body[data-season="default"] .mobile-home-screen::after { content:"💚"; right:18px; top:90px; }

    .mobile-home-brand { position:relative; z-index:1; margin-bottom:8px; }
    .mobile-home-brand strong { font-size:1rem; letter-spacing:-.02em; }
    .mobile-home-hero {
      position:relative; z-index:1; margin-top:10px; border-radius:20px; padding:10px 12px 14px;
      background:linear-gradient(145deg, rgba(255,255,255,.55), rgba(255,255,255,.24));
      border:1px solid rgba(255,255,255,.6);
    }
    .mobile-home-ribbon {
      display:inline-flex; align-items:center; min-height:32px; padding:0 14px; border-radius:999px;
      background:rgba(255,255,255,.94); color:var(--scene-note); font-size:.78rem; font-weight:900;
      box-shadow:0 8px 20px -16px rgba(15,23,42,.3);
    }
    .mobile-home-message {
      margin-top:10px; border-radius:18px;
      background:radial-gradient(circle at 90% 22%, rgba(255,255,255,.92), transparent 22%), linear-gradient(135deg, rgba(255,255,255,.82), rgba(255,255,255,.54));
      backdrop-filter: blur(3px);
    }
    .mobile-home-message strong { font-size:1.22rem; }
    .mobile-home-quote { margin-top:10px; padding:8px 10px; color:var(--scene-note); font-weight:800; font-size:.75rem; text-align:right; }

    .mobile-home-actions { margin-top:12px; gap:10px; }
    .mobile-home-action { min-height:108px; border-radius:20px; box-shadow:0 14px 28px -22px rgba(15,23,42,.26); }
    .mobile-home-action > span { font-size:1.6rem; }
    .mobile-home-action b { font-size:.97rem; }

    .mobile-home-mini-card {
      border-radius:18px; padding:14px; background:rgba(255,255,255,.82); box-shadow:0 14px 26px -24px rgba(15,23,42,.24);
    }
    body.dark-mode .mobile-home-mini-card { background:rgba(30,41,59,.9); }
    .mobile-home-mini-head strong { font-size:.87rem; }

    .mobile-staff-preview { display:flex; gap:10px; overflow-x:auto; padding-top:10px; padding-bottom:2px; }
    .mobile-staff-card { flex:0 0 76px; text-align:center; }
    .mobile-staff-avatar {
      width:54px; height:54px; margin:0 auto 6px; border-radius:50%; display:flex; align-items:center; justify-content:center;
      background:linear-gradient(135deg, rgba(255,255,255,.95), rgba(229,239,255,.94)); border:2px solid rgba(255,255,255,.88);
      color:var(--primary); font-weight:900; font-size:1rem; box-shadow:0 10px 18px -16px rgba(15,23,42,.3);
    }
    .mobile-staff-name { display:block; font-size:.72rem; font-weight:800; color:var(--text); line-height:1.2; word-break:keep-all; }
    .mobile-staff-role { display:block; margin-top:1px; font-size:.61rem; color:var(--sub); line-height:1.15; word-break:keep-all; }

    .mobile-value-strip { margin-top:12px; display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; position:relative; z-index:1; }
    .mobile-value-item {
      min-width:0; border-radius:18px; padding:12px 10px; text-align:center;
      background:linear-gradient(180deg, rgba(255,255,255,.88), rgba(255,255,255,.68)); border:1px solid rgba(255,255,255,.82);
    }
    body.dark-mode .mobile-value-item { background:rgba(30,41,59,.85); }
    .mobile-value-item span {
      display:inline-flex; width:42px; height:42px; align-items:center; justify-content:center;
      border-radius:50%; margin-bottom:6px; background:var(--primary-soft); font-size:1.1rem;
    }
    .mobile-value-item b { display:block; font-size:.78rem; color:var(--text); }
    .mobile-value-item small { display:block; margin-top:3px; font-size:.63rem; color:var(--sub); line-height:1.25; }

    .leave-type-chip-grid { grid-template-columns:repeat(2, minmax(0,1fr)); }
  }


  /* ===== v13 모바일 시안 정밀화 ===== */
  .mobile-appbar,
  .mobile-brand-copy,
  .mobile-page-header { display:none; }

  @media (max-width:1120px) {
    body {
      padding: 0 0 calc(82px + env(safe-area-inset-bottom)) !important;
      background:
        radial-gradient(circle at 8% 5%, var(--season-deco1), transparent 21%),
        linear-gradient(180deg, var(--scene-tint), #ffffff 40%, var(--bg) 100%);
    }

    .theme-strip {
      display:none !important;
      margin: 8px 10px 10px;
      border-radius:18px;
      position:sticky;
      top:8px;
      z-index:9992;
      box-shadow:0 16px 36px -24px rgba(15,23,42,.32);
    }
    body.mobile-theme-open .theme-strip { display:flex !important; }

    .mobile-home-screen {
      border:0 !important;
      box-shadow:none !important;
      border-radius:0 !important;
      margin:0 !important;
      min-height:100vh;
      padding: calc(12px + env(safe-area-inset-top)) 14px 24px !important;
      background:
        radial-gradient(circle at 95% 7%, rgba(255,255,255,.98), transparent 20%),
        radial-gradient(circle at 4% 30%, var(--season-deco1), transparent 20%),
        linear-gradient(180deg, var(--scene-tint) 0%, rgba(255,255,255,.97) 48%, rgba(255,255,255,.93) 100%) !important;
    }
    body.dark-mode .mobile-home-screen {
      background:linear-gradient(180deg,#101827,#172033 52%,#101827 100%) !important;
    }

    .mobile-appbar {
      position:relative;
      z-index:3;
      display:grid;
      grid-template-columns:42px 1fr 42px;
      align-items:center;
      margin-bottom:3px;
    }
    .mobile-appbar-icon {
      width:40px;height:40px;padding:0;border-radius:50%;background:rgba(255,255,255,.74);
      color:var(--text);box-shadow:none;border:1px solid rgba(255,255,255,.9);font-size:1.12rem;
    }
    body.dark-mode .mobile-appbar-icon { background:rgba(30,41,59,.9);border-color:#334155; }
    .mobile-appbar-logo {
      display:flex;justify-content:center;align-items:center;gap:7px;
      min-width:0;
    }
    .mobile-appbar-logo img {
      width:54px;height:44px;object-fit:cover;border-radius:11px;background:#fff;
    }
    .mobile-appbar-logo strong { font-size:1rem;color:var(--text);letter-spacing:-.03em; }

    .mobile-brand-copy {
      display:block;
      position:relative;
      z-index:3;
      text-align:center;
      margin:3px 0 10px;
    }
    .mobile-brand-copy strong { display:block;font-size:.98rem;color:var(--text); }
    .mobile-brand-copy span { display:block;margin-top:2px;color:var(--sub);font-size:.67rem; }

    .mobile-home-hero {
      padding:11px 12px 13px !important;
      border-radius:22px !important;
      background:
        radial-gradient(circle at 88% 22%, rgba(255,255,255,.92), transparent 22%),
        linear-gradient(145deg, rgba(255,255,255,.76), rgba(255,255,255,.37)) !important;
      box-shadow:0 16px 34px -26px rgba(15,23,42,.25);
    }
    .mobile-home-ribbon {
      min-height:29px !important;
      padding:0 11px !important;
      font-size:.72rem !important;
    }
    .mobile-home-message {
      min-height:82px !important;
      padding:13px !important;
      margin-top:8px !important;
      border:0 !important;
      box-shadow:none !important;
    }
    .mobile-home-message > span { font-size:1.8rem !important; }
    .mobile-home-message strong { font-size:1.13rem !important; }
    .mobile-home-message div span { font-size:.7rem !important; }
    .mobile-home-quote { font-size:.7rem !important;padding:5px 7px 2px !important; }

    .mobile-home-actions {
      gap:9px !important;
      margin-top:11px !important;
    }
    .mobile-home-action {
      position:relative;
      min-height:116px !important;
      padding:14px 13px !important;
      border-radius:21px !important;
      overflow:hidden;
    }
    .mobile-home-action::after {
      content:"";
      position:absolute;right:-22px;bottom:-28px;width:78px;height:78px;border-radius:50%;
      background:rgba(255,255,255,.44);
    }
    .mobile-home-action .mha-icon { font-size:1.7rem !important;z-index:1; }
    .mobile-home-action b { z-index:1;font-size:1rem !important;letter-spacing:-.02em; }
    .mobile-home-action small { z-index:1;font-size:.64rem !important; }
    .mobile-home-action em {
      position:absolute;right:12px;top:50%;transform:translateY(-50%);
      font-style:normal;font-size:1.15rem;color:rgba(15,23,42,.34);z-index:2;
    }

    .mobile-home-mini-card {
      margin-top:10px !important;
      border-radius:20px !important;
      padding:14px !important;
      background:rgba(255,255,255,.87) !important;
      border:1px solid rgba(226,232,240,.82) !important;
      box-shadow:0 14px 30px -26px rgba(15,23,42,.24) !important;
    }
    body.dark-mode .mobile-home-mini-card { background:rgba(30,41,59,.94) !important; }

    .mobile-staff-preview {
      gap:12px !important;
      padding-top:11px !important;
      scroll-snap-type:x proximity;
    }
    .mobile-staff-card { flex:0 0 72px !important;scroll-snap-align:start; }
    .mobile-staff-avatar {
      width:55px !important;height:55px !important;
      background:linear-gradient(145deg,#ffffff,var(--primary-soft)) !important;
    }

    .mobile-home-stats { gap:6px !important; }
    .mobile-home-stats div {
      padding:10px 3px !important;
      border-radius:13px !important;
      background:linear-gradient(180deg,rgba(248,250,252,.92),rgba(241,245,249,.92)) !important;
    }
    body.dark-mode .mobile-home-stats div { background:#0f172a !important; }

    .notice-card { padding-bottom:12px !important; }
    .mobile-today-row { border-left:3px solid var(--primary); }

    .mobile-season-footer {
      position:relative;z-index:2;
      margin-top:12px;
      padding:14px 12px;
      border-radius:20px;
      display:flex;align-items:center;gap:10px;
      background:linear-gradient(135deg,var(--primary-soft),rgba(255,255,255,.78));
      border:1px solid rgba(255,255,255,.84);
      color:var(--scene-note);
    }
    .mobile-season-footer span { font-size:1.45rem; }
    .mobile-season-footer strong { font-size:.76rem;line-height:1.35; }

    .mobile-nav-tabs {
      left:8px !important;right:8px !important;
      bottom:calc(7px + env(safe-area-inset-bottom)) !important;
      grid-template-columns:repeat(5,1fr) !important;
      gap:3px !important;
      padding:6px !important;
      border-radius:21px !important;
      background:rgba(20,29,49,.95) !important;
      box-shadow:0 18px 34px rgba(15,23,42,.28) !important;
    }
    .mobile-tab-btn {
      min-width:0;
      min-height:48px;
      display:flex !important;flex-direction:column;gap:2px;
      padding:6px 1px !important;
      font-size:.68rem !important;
      border-radius:14px !important;
    }
    .mobile-tab-btn span { font-size:1rem;line-height:1; }
    .mobile-tab-btn small { display:block;font-size:.57rem;font-weight:700;white-space:nowrap; }
    #mobileStaffTab { background:transparent;color:#cbd5e1;border:0; }

    .mobile-page-header {
      display:grid;
      grid-template-columns:42px 1fr 42px;
      align-items:center;
      position:sticky;
      top:0;
      z-index:50;
      min-height:58px;
      margin:0 -7px 8px;
      padding:calc(4px + env(safe-area-inset-top)) 10px 4px;
      background:rgba(255,255,255,.92);
      border-bottom:1px solid rgba(226,232,240,.85);
      backdrop-filter:blur(12px);
    }
    body.dark-mode .mobile-page-header { background:rgba(15,23,42,.94);border-color:#334155; }
    .mobile-page-header strong { text-align:center;font-size:1rem;color:var(--text); }
    .mobile-page-header button {
      width:38px;height:38px;padding:0;border-radius:50%;background:var(--input-bg);color:var(--text);
      box-shadow:none;border:1px solid var(--border);font-size:1.25rem;
    }
    .mobile-page-home { justify-self:end; }

    .mobile-left-header { display:none; }
    #sectionLeft.active-tab .mobile-left-header { display:grid; }

    #cardLeaveApplyMain {
      margin:0 7px;
      border-radius:23px !important;
      border-top:0 !important;
      padding:15px !important;
    }
    #cardEmpTable,
    #cardCalendar {
      margin:0 7px;
      border-radius:23px !important;
    }

    .side-profile-header {
      border-radius:19px !important;
      padding:13px 14px !important;
      border:1px solid var(--border) !important;
      background:linear-gradient(135deg,#ffffff,var(--primary-soft)) !important;
    }
    body.dark-mode .side-profile-header { background:linear-gradient(135deg,#1e293b,#0f172a) !important; }

    .side-stats-grid {
      grid-template-columns:repeat(2,1fr) !important;
      gap:9px !important;
    }
    .side-stat-box {
      min-height:82px;
      padding:12px 8px !important;
      border-radius:18px !important;
    }
    .side-stat-title { font-size:.7rem !important; }
    .side-stat-val { font-size:1.18rem !important; }

    #cardLeaveApplyMain .stack-form { gap:13px !important; }
    #cardLeaveApplyMain input,
    #cardLeaveApplyMain .modal-trigger-btn {
      border-radius:14px !important;
      min-height:48px;
    }
    .date-mode-toggle { width:100%;grid-template-columns:1fr 1fr;display:grid !important; }
    .date-mode-btn { min-height:40px; }

    .leave-type-chip-grid {
      grid-template-columns:repeat(2,minmax(0,1fr)) !important;
      gap:8px !important;
    }
    .leave-type-chip {
      min-height:48px !important;
      border-radius:15px !important;
      font-size:.78rem !important;
    }

    .apply-sig-box {
      margin-top:15px;
      border-radius:18px;
      padding:12px;
      background:linear-gradient(180deg,var(--input-bg),var(--card));
    }
    .apply-sig-canvas-wrap {
      min-height:112px;
      border-radius:15px !important;
      background:#fff;
    }

    #cardCalendar .card-header {
      gap:10px;
      align-items:center;
    }
    #cardCalendar .cal-title-pill {
      min-width:128px;
      padding:9px 12px;
    }
    #cardCalendar .calendar-grid {
      border-radius:16px !important;
    }
    #cardCalendar .cal-cell {
      min-height:78px !important;
      padding:4px !important;
    }
    #cardCalendar .cal-tag {
      font-size:.6rem !important;
      border-radius:5px;
    }
  }


  /* ===== v14 모바일 메뉴/관리자 복구 + 중복 하단메뉴 제거 ===== */
  .mobile-menu-backdrop,
  .mobile-menu-drawer { display:none; }

  @media (max-width:1120px) {
    .mobile-menu-backdrop {
      display:block;
      position:fixed;
      inset:0;
      z-index:10020;
      background:rgba(15,23,42,.38);
      opacity:0;
      visibility:hidden;
      transition:.2s ease;
      backdrop-filter:blur(2px);
    }
    .mobile-menu-drawer {
      display:flex;
      position:fixed;
      z-index:10021;
      top:0;
      bottom:0;
      left:0;
      width:min(84vw, 330px);
      padding:calc(18px + env(safe-area-inset-top)) 14px calc(18px + env(safe-area-inset-bottom));
      background:rgba(255,255,255,.97);
      box-shadow:20px 0 46px rgba(15,23,42,.18);
      transform:translateX(-105%);
      transition:.22s ease;
      flex-direction:column;
      gap:13px;
      overflow-y:auto;
    }
    body.dark-mode .mobile-menu-drawer { background:rgba(15,23,42,.98); }
    body.mobile-menu-open .mobile-menu-backdrop { opacity:1;visibility:visible; }
    body.mobile-menu-open .mobile-menu-drawer { transform:translateX(0); }

    .mobile-menu-head {
      display:flex;align-items:flex-start;justify-content:space-between;gap:10px;
      padding:4px 2px 10px;border-bottom:1px solid var(--border);
    }
    .mobile-menu-head strong { display:block;font-size:1.02rem;color:var(--text); }
    .mobile-menu-head span { display:block;margin-top:2px;font-size:.67rem;color:var(--sub); }
    .mobile-menu-head button {
      width:36px;height:36px;padding:0;border-radius:50%;box-shadow:none;
      background:var(--input-bg);color:var(--text);border:1px solid var(--border);
    }

    .mobile-menu-status {
      display:flex;align-items:center;justify-content:space-between;
      padding:12px 13px;border-radius:16px;
      background:linear-gradient(135deg,var(--primary-soft),rgba(255,255,255,.82));
      border:1px solid color-mix(in srgb,var(--primary) 20%,var(--border));
    }
    body.dark-mode .mobile-menu-status { background:rgba(30,41,59,.9); }
    .mobile-menu-status small { display:block;color:var(--sub);font-size:.64rem; }
    .mobile-menu-status strong { display:block;margin-top:2px;color:var(--text);font-size:.87rem; }
    .mobile-menu-status > span { font-size:1.25rem; }

    .mobile-menu-list { display:flex;flex-direction:column;gap:6px; }
    .mobile-menu-list button {
      width:100%;display:grid;grid-template-columns:30px minmax(0,1fr) 18px;
      align-items:center;gap:8px;padding:11px 12px;border-radius:13px;
      background:transparent;color:var(--text);border:1px solid transparent;box-shadow:none;
      text-align:left;
    }
    .mobile-menu-list button:active { background:var(--primary-soft);border-color:var(--border); }
    .mobile-menu-list button span { text-align:center;font-size:1rem; }
    .mobile-menu-list button b { font-size:.82rem; }
    .mobile-menu-list button em { font-style:normal;color:var(--sub);font-size:1rem; }

    .mobile-menu-admin-block {
      margin-top:2px;padding-top:12px;border-top:1px solid var(--border);
      display:flex;flex-direction:column;gap:7px;
    }
    .mobile-admin-toggle {
      width:100%;display:grid;grid-template-columns:38px minmax(0,1fr);gap:9px;
      align-items:center;text-align:left;padding:12px;border-radius:15px;
      background:#fff7ed;color:var(--text);border:1px solid #fed7aa;box-shadow:none;
    }
    body.is-admin .mobile-admin-toggle { background:#ecfdf5;border-color:#a7f3d0; }
    body.dark-mode .mobile-admin-toggle { background:#451a03;border-color:#78350f; }
    body.dark-mode.is-admin .mobile-admin-toggle { background:#052e2b;border-color:#065f46; }
    .mobile-admin-toggle > span { font-size:1.2rem;text-align:center; }
    .mobile-admin-toggle b { display:block;font-size:.8rem; }
    .mobile-admin-toggle small { display:block;margin-top:2px;color:var(--sub);font-size:.63rem; }

    .mobile-admin-sub {
      width:100%;justify-content:flex-start;padding:10px 12px;border-radius:12px !important;
      background:var(--input-bg) !important;color:var(--text) !important;border:1px solid var(--border) !important;
      box-shadow:none !important;font-size:.74rem !important;
    }

    .mobile-menu-footer {
      margin-top:auto;display:grid;grid-template-columns:1fr 1fr;gap:7px;padding-top:12px;border-top:1px solid var(--border);
    }
    .mobile-menu-footer button {
      min-width:0;padding:10px 6px;border-radius:12px;background:var(--input-bg);
      color:var(--text);border:1px solid var(--border);box-shadow:none;font-size:.7rem;
    }

    /* The bottom navigation is the only bottom menu. */
    .mobile-nav-tabs {
      display:grid !important;
      z-index:9998 !important;
    }
  }


  /* ===== v15 시니어 친화 신청 화면 + 계절별 하단메뉴 ===== */
  .mobile-simple-balance,
  .mobile-apply-title,
  .quick-reason-buttons { display:none; }

  @media (max-width:1120px) {
    .mobile-nav-tabs {
      background: var(--mobile-nav-bg, #1e293b) !important;
      transition: background-color .25s ease !important;
    }
    .mobile-tab-btn.active {
      background: var(--mobile-nav-active, var(--primary)) !important;
      color:#fff !important;
    }
    #mobileStaffTab { color:rgba(255,255,255,.8) !important; }
    .mobile-tab-btn { color:rgba(255,255,255,.76) !important; }
    .mobile-tab-btn.active { color:#fff !important; }

    /* Mobile employee area: one easy summary instead of four small statistic boxes */
    .mobile-simple-balance {
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      margin:11px 0 14px;
      padding:14px 15px;
      border-radius:18px;
      background:linear-gradient(135deg,var(--primary-soft),rgba(255,255,255,.92));
      border:1.5px solid color-mix(in srgb,var(--primary) 36%,var(--border));
    }
    body.dark-mode .mobile-simple-balance { background:rgba(30,41,59,.92); }
    .mobile-simple-balance div { display:flex;align-items:baseline;gap:7px; }
    .mobile-simple-balance span { font-size:.8rem;color:var(--sub);font-weight:800; }
    .mobile-simple-balance strong { font-size:1.45rem;color:var(--primary);font-weight:900; }
    .mobile-simple-balance p { margin:0;font-size:.76rem;color:var(--sub);white-space:nowrap; }
    .mobile-simple-balance p b { color:var(--text); }

    #cardLeaveApplyMain .side-stats-grid { display:none !important; }

    .mobile-apply-title {
      display:flex;
      flex-direction:column;
      gap:3px;
    }
    .mobile-apply-title strong { font-size:1.08rem;color:var(--text); }
    .mobile-apply-title span { font-size:.72rem;color:var(--sub);font-weight:600; }

    .mobile-step-label {
      display:flex !important;
      align-items:center !important;
      justify-content:flex-start !important;
      gap:8px;
      width:100%;
      font-size:.92rem !important;
      color:var(--text) !important;
      font-weight:900 !important;
    }
    .mobile-step-label em {
      width:27px;height:27px;flex:0 0 27px;
      display:inline-flex;align-items:center;justify-content:center;
      border-radius:50%;
      background:var(--primary);
      color:#fff;
      font-style:normal;
      font-size:.78rem;
    }

    .leave-type-form-group { gap:10px !important; }
    .leave-type-chip-grid {
      grid-template-columns:repeat(2,minmax(0,1fr)) !important;
      gap:10px !important;
    }
    .leave-type-chip {
      min-height:58px !important;
      padding:10px 7px !important;
      border-radius:16px !important;
      font-size:.94rem !important;
      font-weight:900 !important;
      letter-spacing:-.02em;
    }

    #dateModeSelectorWrap,
    #halfDayModeWrap {
      flex-direction:column !important;
      align-items:stretch !important;
      gap:9px !important;
      margin-top:7px !important;
    }
    .date-mode-toggle {
      width:100% !important;
      display:grid !important;
      grid-template-columns:repeat(2,1fr) !important;
      gap:7px !important;
      padding:5px !important;
      border-radius:15px !important;
    }
    .date-mode-btn {
      min-height:48px !important;
      font-size:.9rem !important;
      border-radius:11px !important;
    }

    #cardLeaveApplyMain .form-group-full > label:not(.mobile-step-label),
    #cardLeaveApplyMain .form-group-full > .leave-type-form-label {
      font-size:.83rem !important;
      color:var(--text) !important;
    }
    #cardLeaveApplyMain input,
    #cardLeaveApplyMain .modal-trigger-btn {
      min-height:54px !important;
      font-size:1rem !important;
      border-width:1.5px !important;
    }

    .quick-reason-buttons {
      display:grid;
      grid-template-columns:repeat(4,minmax(0,1fr));
      gap:6px;
      margin-bottom:2px;
    }
    .quick-reason-buttons button {
      min-width:0;
      padding:10px 4px;
      border-radius:12px;
      background:var(--input-bg);
      color:var(--text);
      border:1px solid var(--border);
      box-shadow:none;
      font-size:.72rem;
      font-weight:800;
    }
    .quick-reason-buttons button:active {
      background:var(--primary-soft);
      color:var(--primary);
      border-color:var(--primary);
    }

    .apply-sig-box {
      margin-top:17px !important;
      padding:14px !important;
    }
    .apply-sig-header {
      align-items:center !important;
    }
    .apply-sig-header > span {
      font-size:.9rem !important;
      font-weight:900 !important;
    }
    .apply-sig-header button {
      min-height:38px;
      font-size:.72rem !important;
    }
    .apply-sig-canvas-wrap {
      min-height:126px !important;
    }
    #applySigPlaceholder {
      font-size:.86rem !important;
    }

    #cardLeaveApplyMain > div > div[style*="margin-top: 12px"] > button,
    #cardLeaveApplyMain button[onclick="submitLeave()"] {
      min-height:58px !important;
      border-radius:17px !important;
      font-size:1.05rem !important;
      font-weight:900 !important;
      letter-spacing:-.02em;
      box-shadow:0 14px 26px -20px color-mix(in srgb,var(--primary) 72%,transparent);
    }

    /* Admin controls don't distract regular staff */
    body:not(.is-admin) #cardLeaveApplyMain .inline-manage-link,
    body:not(.is-admin) #cardLeaveApplyMain > div > div > button[onclick="openLeaveTypeManagerModal()"] {
      display:none !important;
    }
  }

  @media (max-width:420px) {
    .mobile-simple-balance { align-items:flex-start; flex-direction:column; gap:5px; }
    .mobile-simple-balance p { white-space:normal; }
    .quick-reason-buttons { grid-template-columns:repeat(2,1fr); }
  }


  .leave-more-hint {
    margin: -2px 0 10px;
    padding: 8px 10px;
    border-radius: 10px;
    background: var(--primary-soft);
    color: var(--primary);
    font-size: .72rem;
    font-weight: 800;
    text-align: center;
  }

  @media (max-width:1120px) {
    .leave-type-chip.leave-more {
      min-height:58px !important;
      font-size:.9rem !important;
    }
  }


  /* ===== v17 본인 전용 화면 ===== */
  body.is-admin .self-info-badge { display:none !important; }

  .my-history-card {
    margin-top:16px;padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--input-bg);
  }
  .my-history-head strong { display:block;font-size:.9rem;color:var(--text); }
  .my-history-head span { display:block;margin-top:2px;font-size:.68rem;color:var(--sub); }
  .my-history-list { display:flex;flex-direction:column;gap:7px;margin-top:10px; }
  .my-history-row {
    display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 11px;
    border:1px solid var(--border);border-radius:11px;background:var(--card);
  }
  .my-history-row > div { min-width:0; }
  .my-history-row strong { display:block;font-size:.76rem;color:var(--text); }
  .my-history-row > div > span { display:block;margin-top:3px;font-size:.67rem;color:var(--sub); }
  .my-history-row button { flex:0 0 auto;padding:6px 8px;border-radius:8px;background:#fee2e2;color:#dc2626;box-shadow:none;font-size:.66rem; }
  .my-history-status { display:inline-flex!important;margin:0 0 0 4px!important;padding:2px 5px;border-radius:5px;font-size:.61rem!important;font-weight:800; }
  .my-history-status.approved { background:#d1fae5;color:#047857; }
  .my-history-status.pending { background:#fef3c7;color:#b45309; }
  .my-history-status.rejected { background:#fee2e2;color:#dc2626; }
  .my-history-empty { padding:16px 8px;text-align:center;color:var(--sub);font-size:.74rem; }

  .device-user-title { display:flex;gap:10px;align-items:center;margin-bottom:10px; }
  .device-user-title > span { font-size:1.7rem; }
  .device-user-title h3 { font-size:1.08rem;color:var(--text);font-weight:900; }
  .device-user-title p { margin-top:3px;font-size:.7rem;color:var(--sub);line-height:1.4; }
  .device-user-notice { margin-bottom:10px;padding:9px 10px;border-radius:10px;background:var(--primary-soft);color:var(--primary);font-size:.7rem;font-weight:700;line-height:1.45; }
  .device-user-list { display:flex;flex-direction:column;gap:7px;max-height:52vh;overflow:auto; }
  .device-user-item {
    width:100%;display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:9px;align-items:center;
    padding:10px;border-radius:12px;background:var(--card);color:var(--text);border:1px solid var(--border);box-shadow:none;text-align:left;
  }
  .device-user-avatar { width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--primary-soft);color:var(--primary);font-weight:900; }
  .device-user-copy strong { display:block;font-size:.82rem; }
  .device-user-copy small { display:block;margin-top:2px;font-size:.66rem;color:var(--sub); }
  .device-user-item em { font-style:normal;font-size:.68rem;color:var(--primary);font-weight:800; }

  @media(max-width:1120px) {
    .side-profile-header { cursor:default!important; }
    .my-history-card { border-radius:18px;padding:13px;scroll-margin-top:72px; }
    .device-user-modal { align-items:flex-end;padding:0; }
    .device-user-modal .modal-box {
      width:100%;max-width:none;border-radius:20px 20px 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom));
    }
    body:not(.is-admin) #cardEmpTable .sort-btn-group,
    body:not(.is-admin) #cardEmpTable #pcEmpTableWrap { display:none!important; }
  }


  /* ===== v18 내 내역 별도 화면 ===== */
  .mobile-history-screen { display:none; }

  .history-section-card {
    background:var(--card);
    border:1px solid var(--border);
    border-radius:20px;
    padding:14px;
  }
  .history-section-title strong { display:block;font-size:.92rem;color:var(--text); }
  .history-section-title span { display:block;margin-top:3px;font-size:.68rem;color:var(--sub); }
  .history-card-list { display:flex;flex-direction:column;gap:8px;margin-top:12px; }
  .history-item-card {
    padding:12px 13px;
    border:1px solid var(--border);
    border-radius:14px;
    background:var(--input-bg);
  }
  .history-item-card.work { border-left:4px solid var(--warning); }
  .history-item-top { display:flex;align-items:center;justify-content:space-between;gap:8px; }
  .history-item-top > div { display:flex;align-items:center;gap:7px;min-width:0; }
  .history-item-top strong { font-size:.86rem;color:var(--text); }
  .history-status {
    display:inline-flex;padding:3px 7px;border-radius:7px;font-size:.65rem;font-weight:900;
  }
  .history-status.approved { background:#d1fae5;color:#047857; }
  .history-status.pending { background:#fef3c7;color:#b45309; }
  .history-status.rejected { background:#fee2e2;color:#dc2626; }
  .history-date { margin-top:7px;font-size:.76rem;color:var(--text);font-weight:700; }
  .history-reason { margin-top:3px;font-size:.68rem;color:var(--sub); }
  .history-cancel-btn {
    flex:0 0 auto;padding:6px 8px;border-radius:8px;background:#fee2e2;color:#dc2626;
    box-shadow:none;border:1px solid #fecaca;font-size:.66rem;
  }
  .history-empty-card {
    padding:22px 10px;text-align:center;color:var(--sub);font-size:.74rem;
    border:1px dashed var(--border);border-radius:13px;background:var(--input-bg);
  }
  .mobile-history-link-btn { display:none; }

  @media (max-width:1120px) {
    body.mobile-history-active .dashboard-wrapper,
    body.mobile-history-active .approval-banner,
    body.mobile-history-active .theme-strip {
      display:none !important;
    }
    .mobile-history-screen {
      min-height:100vh;
      padding:calc(8px + env(safe-area-inset-top)) 14px calc(92px + env(safe-area-inset-bottom));
      background:
        radial-gradient(circle at 92% 6%,var(--season-deco1),transparent 22%),
        linear-gradient(180deg,var(--scene-tint),#fff 38%,var(--bg) 100%);
    }
    body.dark-mode .mobile-history-screen {
      background:linear-gradient(180deg,#101827,#172033 42%,#101827 100%);
    }
    .mobile-history-header {
      position:sticky;top:0;z-index:30;
      display:grid;grid-template-columns:42px 1fr 42px;align-items:center;gap:8px;
      margin:0 -4px 12px;padding:calc(5px + env(safe-area-inset-top)) 4px 8px;
      background:color-mix(in srgb,var(--scene-tint) 72%,transparent);
      backdrop-filter:blur(12px);
    }
    .mobile-history-header button {
      width:38px;height:38px;padding:0;border-radius:50%;background:rgba(255,255,255,.78);
      color:var(--text);border:1px solid var(--border);box-shadow:none;font-size:1.2rem;
    }
    body.dark-mode .mobile-history-header button { background:#1e293b; }
    .mobile-history-header > div { text-align:center;min-width:0; }
    .mobile-history-header strong { display:block;font-size:1rem;color:var(--text); }
    .mobile-history-header span {
      display:block;margin-top:2px;font-size:.64rem;color:var(--sub);
      white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    }

    .mobile-history-summary {
      display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:12px;
    }
    .mobile-history-summary > div {
      padding:14px;border-radius:18px;background:rgba(255,255,255,.86);
      border:1px solid var(--border);text-align:center;
    }
    body.dark-mode .mobile-history-summary > div { background:#1e293b; }
    .mobile-history-summary span { display:block;font-size:.7rem;color:var(--sub); }
    .mobile-history-summary strong { display:block;margin-top:3px;font-size:1.16rem;color:var(--primary); }

    .mobile-history-screen .history-section-card + .history-section-card { margin-top:10px; }

    /* histories moved out of the application page */
    #myHistoryCard { display:none !important; }
    .work-history-inline { display:none !important; }
    .mobile-history-link-btn {
      display:block;
      width:100%;
      margin-top:7px;
      padding:9px 10px;
      border-radius:11px;
      background:var(--input-bg);
      color:var(--primary);
      border:1px solid var(--border);
      box-shadow:none;
      font-size:.72rem;
      font-weight:800;
    }
  }


  /* ===== v19 직원별 개인 PIN ===== */
  .employee-pin-title {
    display:flex;align-items:center;gap:10px;margin-bottom:12px;
  }
  .employee-pin-title > span { font-size:1.65rem; }
  .employee-pin-title h3 { font-size:1.05rem;color:var(--text);font-weight:900; }
  .employee-pin-title p { margin-top:3px;font-size:.7rem;color:var(--sub);line-height:1.45; }
  .employee-pin-person {
    margin-bottom:12px;padding:10px 12px;border-radius:12px;
    background:var(--primary-soft);color:var(--primary);
    text-align:center;font-size:.85rem;font-weight:900;
  }
  .employee-pin-error {
    min-height:22px;margin-top:6px;color:var(--danger);font-size:.72rem;font-weight:700;text-align:center;
  }
  .employee-pin-actions { display:flex;gap:8px;margin-top:8px; }
  .employee-pin-actions button { flex:1;min-height:44px; }

  .employee-pin-manager-notice {
    margin-bottom:10px;padding:9px 10px;border-radius:10px;
    background:#fff7ed;color:#9a3412;border:1px solid #fed7aa;
    font-size:.7rem;font-weight:700;line-height:1.45;
  }
  body.dark-mode .employee-pin-manager-notice { background:#431407;color:#fed7aa;border-color:#7c2d12; }

  .employee-pin-manager-list { display:flex;flex-direction:column;gap:7px;max-height:58vh;overflow:auto; }
  .employee-pin-manager-row {
    display:grid;grid-template-columns:42px minmax(0,1fr) 64px 68px;
    gap:8px;align-items:center;padding:9px 10px;border-radius:12px;
    border:1px solid var(--border);background:var(--input-bg);
  }
  .employee-pin-manager-avatar {
    width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    background:var(--primary-soft);color:var(--primary);font-weight:900;
  }
  .employee-pin-manager-copy { min-width:0; }
  .employee-pin-manager-copy strong { display:block;font-size:.8rem;color:var(--text); }
  .employee-pin-manager-copy small { display:block;margin-top:2px;font-size:.65rem;color:var(--sub); }
  .employee-pin-state {
    text-align:center;padding:4px 5px;border-radius:7px;font-size:.62rem;font-weight:900;
  }
  .employee-pin-state.ready { background:#d1fae5;color:#047857; }
  .employee-pin-state.empty { background:#fee2e2;color:#b91c1c; }
  .employee-pin-manager-row button {
    padding:7px 6px;border-radius:9px;box-shadow:none;font-size:.67rem;
  }

  @media (max-width:1120px) {
    .employee-pin-auth-modal,
    .employee-pin-manager-modal {
      align-items:flex-end;padding:0;
    }
    .employee-pin-auth-modal .modal-box,
    .employee-pin-manager-modal .modal-box {
      width:100%;max-width:none;border-radius:20px 20px 0 0;
      padding:18px 16px calc(18px + env(safe-area-inset-bottom));
    }
    .employee-pin-manager-list { max-height:55vh; }
  }


  /* ===== v20 로고 교체 + 불필요 직원소개 제거 ===== */
  .mobile-brand-copy { display:none !important; }

  @media (max-width:1120px) {
    .mobile-appbar {
      grid-template-columns:42px minmax(0,1fr) 42px !important;
    }
    .mobile-appbar-logo {
      display:flex !important;
      align-items:center !important;
      justify-content:center !important;
      min-width:0 !important;
      padding:0 6px !important;
    }
    .mobile-appbar-logo img {
      width:min(250px, 68vw) !important;
      height:66px !important;
      object-fit:contain !important;
      border-radius:0 !important;
      background:transparent !important;
      display:block !important;
    }
  }

  .desktop-brand-logo-wrap {
    width:100% !important;
    min-height:74px !important;
    height:auto !important;
    border-radius:0 !important;
    background:transparent !important;
    padding:0 !important;
    overflow:visible !important;
  }
  .desktop-brand-logo {
    width:100% !important;
    height:78px !important;
    object-fit:contain !important;
    border-radius:0 !important;
    background:transparent !important;
  }


  /* ===== v21 로고를 테마와 자연스럽게 연동 ===== */
  body[data-season="default"]{
    --brand-shell-bg: linear-gradient(135deg, rgba(244,252,248,.96), rgba(255,255,255,.95));
    --brand-shell-border: rgba(20,124,111,.18);
    --brand-shell-shadow: rgba(20,124,111,.18);
    --brand-shell-accent: rgba(20,124,111,.12);
    --brand-tag-bg: rgba(20,124,111,.08);
    --brand-tag-color: #147c6f;
  }
  body[data-season="spring"]{
    --brand-shell-bg: linear-gradient(135deg, rgba(255,243,248,.98), rgba(245,255,237,.96));
    --brand-shell-border: rgba(232,95,155,.18);
    --brand-shell-shadow: rgba(232,95,155,.18);
    --brand-shell-accent: rgba(232,95,155,.13);
    --brand-tag-bg: rgba(232,95,155,.10);
    --brand-tag-color: #d84a8d;
  }
  body[data-season="summer"]{
    --brand-shell-bg: linear-gradient(135deg, rgba(238,251,255,.98), rgba(236,255,246,.96));
    --brand-shell-border: rgba(21,149,192,.20);
    --brand-shell-shadow: rgba(21,149,192,.20);
    --brand-shell-accent: rgba(21,149,192,.14);
    --brand-tag-bg: rgba(21,149,192,.10);
    --brand-tag-color: #1595c0;
  }
  body[data-season="autumn"]{
    --brand-shell-bg: linear-gradient(135deg, rgba(255,247,238,.98), rgba(255,244,222,.96));
    --brand-shell-border: rgba(191,107,47,.20);
    --brand-shell-shadow: rgba(191,107,47,.18);
    --brand-shell-accent: rgba(191,107,47,.12);
    --brand-tag-bg: rgba(191,107,47,.10);
    --brand-tag-color: #b5672e;
  }
  body[data-season="winter"]{
    --brand-shell-bg: linear-gradient(135deg, rgba(244,249,255,.98), rgba(238,252,255,.96));
    --brand-shell-border: rgba(74,125,216,.18);
    --brand-shell-shadow: rgba(74,125,216,.18);
    --brand-shell-accent: rgba(74,125,216,.12);
    --brand-tag-bg: rgba(74,125,216,.10);
    --brand-tag-color: #4a7dd8;
  }

  .desktop-brand{
    background:
      radial-gradient(circle at 10% 12%, rgba(255,255,255,.8), transparent 18%),
      linear-gradient(180deg, color-mix(in srgb, var(--scene-tint) 76%, white), rgba(255,255,255,.92) 80%) !important;
  }
  .desktop-brand-logo-wrap,
  .mobile-appbar-logo{
    position:relative;
    isolation:isolate;
    overflow:hidden !important;
    background: var(--brand-shell-bg) !important;
    border: 1px solid var(--brand-shell-border) !important;
    box-shadow:
      0 18px 35px -28px var(--brand-shell-shadow),
      inset 0 1px 0 rgba(255,255,255,.92) !important;
  }
  .desktop-brand-logo-wrap::before,
  .mobile-appbar-logo::before{
    content:"";
    position:absolute;
    inset:0;
    background:
      radial-gradient(circle at 14% 20%, rgba(255,255,255,.78), transparent 22%),
      radial-gradient(circle at 88% 84%, var(--brand-shell-accent), transparent 24%);
    z-index:0;
    pointer-events:none;
  }
  .desktop-brand-logo,
  .mobile-appbar-logo img{
    position:relative;
    z-index:1;
    filter: drop-shadow(0 4px 10px rgba(15,23,42,.08));
  }

  .desktop-brand-logo-wrap{
    width:100% !important;
    min-height:92px !important;
    margin:0 auto 10px !important;
    padding:10px 14px !important;
    border-radius:24px !important;
  }
  .desktop-brand-logo{
    width:100% !important;
    height:72px !important;
    object-fit:contain !important;
  }
  .desktop-brand span{
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    margin-top:8px !important;
    padding:6px 12px;
    border-radius:999px;
    background:var(--brand-tag-bg);
    color:var(--brand-tag-color) !important;
    font-weight:700;
    letter-spacing:-.01em;
  }

  @media (max-width:1120px){
    .mobile-home-screen{
      background:
        radial-gradient(circle at 94% 10%, rgba(255,255,255,.94), transparent 22%),
        radial-gradient(circle at 8% 22%, var(--brand-shell-accent), transparent 18%),
        linear-gradient(180deg, var(--scene-tint) 0%, rgba(255,255,255,.98) 48%, rgba(255,255,255,.94) 100%) !important;
    }
    .mobile-appbar{
      margin-bottom:8px !important;
    }
    .mobile-appbar-logo{
      justify-content:center !important;
      min-height:74px;
      padding:9px 14px !important;
      border-radius:24px !important;
    }
    .mobile-appbar-logo img{
      width:min(255px, 70vw) !important;
      height:54px !important;
      object-fit:contain !important;
      background:transparent !important;
    }
  }

  body.dark-mode .desktop-brand{
    background:linear-gradient(180deg, rgba(23,34,51,.94), rgba(15,23,42,.92)) !important;
  }
  body.dark-mode .desktop-brand-logo-wrap,
  body.dark-mode .mobile-appbar-logo{
    background:linear-gradient(135deg, rgba(30,41,59,.94), rgba(15,23,42,.94)) !important;
    border-color:rgba(148,163,184,.18) !important;
    box-shadow:0 18px 35px -28px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.04) !important;
  }
  body.dark-mode .desktop-brand span{
    background:rgba(148,163,184,.12) !important;
    color:#e2e8f0 !important;
  }


  /* ===== v22 로고 자연형: 흰 박스 제거, 심볼 + 글자만 ===== */

  /* PC 사이드바 */
  .desktop-brand {
    padding: 18px 16px 16px !important;
    text-align: left !important;
    background: transparent !important;
    border-bottom: 1px solid var(--border) !important;
  }
  .desktop-brand-natural {
    display: flex;
    align-items: center;
    gap: 11px;
    min-width: 0;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }
  .desktop-brand-mark {
    width: 55px !important;
    height: 55px !important;
    flex: 0 0 55px;
    object-fit: contain !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    filter: none !important;
  }
  .desktop-brand-text {
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
  }
  .desktop-brand-text strong {
    display: block !important;
    margin: 0 !important;
    color: var(--text) !important;
    font-size: .88rem !important;
    font-weight: 900 !important;
    line-height: 1.28 !important;
    letter-spacing: -.025em;
    word-break: keep-all;
  }
  .desktop-brand-text span {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--sub) !important;
    font-size: .68rem !important;
    font-weight: 650 !important;
    line-height: 1.35 !important;
  }

  /* 이전 로고 카드 CSS 무효화 */
  .desktop-brand-logo-wrap,
  .desktop-brand-logo {
    display: none !important;
  }

  /* 모바일 상단도 같은 방향으로 자연스럽게 */
  @media (max-width:1120px) {
    .mobile-appbar {
      grid-template-columns: 42px minmax(0,1fr) 42px !important;
      align-items: center !important;
      margin-bottom: 9px !important;
    }
    .mobile-appbar-logo {
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      gap: 8px !important;
      min-width: 0 !important;
      min-height: 54px !important;
      padding: 0 5px !important;
      border: 0 !important;
      border-radius: 0 !important;
      background: transparent !important;
      box-shadow: none !important;
      overflow: visible !important;
    }
    .mobile-appbar-logo::before {
      display: none !important;
    }
    .mobile-brand-mark {
      width: 45px !important;
      height: 45px !important;
      flex: 0 0 45px;
      object-fit: contain !important;
      background: transparent !important;
      border-radius: 0 !important;
      box-shadow: none !important;
      filter: none !important;
    }
    .mobile-brand-text {
      min-width: 0;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 1px;
    }
    .mobile-brand-text strong {
      color: var(--text);
      font-size: .72rem;
      font-weight: 900;
      line-height: 1.25;
      letter-spacing: -.025em;
      white-space: nowrap;
    }
    .mobile-brand-text span {
      color: var(--sub);
      font-size: .57rem;
      font-weight: 650;
      line-height: 1.25;
      white-space: nowrap;
    }
  }

  /* 다크모드에서는 미리보기처럼 자연스럽게 흰 글자로 */
  body.dark-mode .desktop-brand-text strong,
  body.dark-mode .mobile-brand-text strong {
    color: #f8fafc !important;
  }
  body.dark-mode .desktop-brand-text span,
  body.dark-mode .mobile-brand-text span {
    color: #cbd5e1 !important;
  }


  /* ===== v23 로고 텍스트 정리 ===== */
  .desktop-brand-natural{
    gap: 10px !important;
    align-items: center !important;
  }
  .desktop-brand-mark{
    width: 58px !important;
    height: 58px !important;
    flex: 0 0 58px !important;
  }
  .desktop-brand-text{
    justify-content: center !important;
    gap: 0 !important;
    min-width: 0 !important;
  }
  .desktop-brand-text strong{
    font-size: .92rem !important;
    line-height: 1.18 !important;
    letter-spacing: -.03em !important;
    margin: 0 !important;
    white-space: nowrap !important;
  }
  .desktop-brand-text span{
    display: none !important;
  }

  @media (max-width:1120px){
    .mobile-appbar-logo{
      gap: 7px !important;
      justify-content: center !important;
      align-items: center !important;
    }
    .mobile-brand-mark{
      width: 44px !important;
      height: 44px !important;
      flex: 0 0 44px !important;
    }
    .mobile-brand-text{
      gap: 0 !important;
      justify-content: center !important;
      min-width: 0 !important;
      max-width: calc(100% - 52px) !important;
    }
    .mobile-brand-text strong{
      font-size: .76rem !important;
      line-height: 1.18 !important;
      letter-spacing: -.03em !important;
      white-space: nowrap !important;
      overflow: visible !important;
      text-overflow: clip !important;
      margin: 0 !important;
    }
    .mobile-brand-text span{
      display: none !important;
    }
  }


  /* ===== v24 관리자 홈 화면 꾸미기 ===== */
  .mobile-appbar-spacer {
    width:40px;
    height:40px;
    display:block;
  }

  .mobile-menu-footer-single {
    grid-template-columns:1fr !important;
  }

  .home-decor-modal-box {
    max-width:980px;
    max-height:92vh;
    overflow-y:auto;
  }
  .home-decor-section {
    margin-bottom:14px;
    padding:13px;
    border:1px solid var(--border);
    border-radius:15px;
    background:var(--input-bg);
  }
  .home-decor-section-title {
    margin-bottom:10px;
  }
  .home-decor-section-title strong {
    display:block;
    color:var(--text);
    font-size:.9rem;
  }
  .home-decor-section-title span {
    display:block;
    margin-top:2px;
    color:var(--sub);
    font-size:.68rem;
  }
  .home-decor-season-buttons {
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:7px;
  }
  .home-decor-season-buttons button {
    padding:9px 6px;
    background:var(--card);
    color:var(--text);
    border:1px solid var(--border);
    box-shadow:none;
    border-radius:10px;
    font-size:.74rem;
  }
  .home-decor-season-buttons button.active {
    background:var(--primary);
    color:#fff;
    border-color:var(--primary);
  }
  .home-decor-season-buttons button.current:not(.active) {
    box-shadow:inset 0 0 0 2px var(--primary);
  }

  .home-decor-layout {
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);
    gap:14px;
  }
  .home-decor-editor,
  .home-decor-preview-panel {
    padding:14px;
    border:1px solid var(--border);
    border-radius:16px;
    background:var(--input-bg);
  }
  .home-decor-editor {
    display:flex;
    flex-direction:column;
    gap:11px;
  }
  .home-decor-divider {
    height:1px;
    margin:4px 0;
    background:var(--border);
  }
  .decor-emoji-grid {
    display:grid;
    grid-template-columns:repeat(8,minmax(0,1fr));
    gap:6px;
  }
  .decor-emoji-grid button {
    min-height:38px;
    padding:4px;
    border-radius:10px;
    background:var(--card);
    border:1px solid var(--border);
    box-shadow:none;
    font-size:1.08rem;
  }
  .decor-emoji-grid button.active {
    background:var(--primary-soft);
    border-color:var(--primary);
    box-shadow:inset 0 0 0 1px var(--primary);
  }
  .home-decor-options-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:8px;
  }
  .home-decor-options-grid select {
    width:100%;
    min-height:42px;
    padding:8px 10px;
    border:1px solid var(--border);
    border-radius:10px;
    background:var(--card);
    color:var(--text);
  }
  .home-decor-actions {
    display:flex;
    justify-content:flex-end;
    gap:8px;
    margin-top:14px;
  }
  .home-decor-actions button {
    min-height:42px;
  }

  .decor-preview-hero {
    padding:16px;
    border-radius:18px;
    background:
      radial-gradient(circle at 92% 20%,rgba(255,255,255,.95),transparent 25%),
      linear-gradient(135deg,var(--scene-tint),rgba(255,255,255,.94));
    border:1px solid var(--border);
  }
  .decor-preview-ribbon {
    display:inline-flex;
    padding:6px 10px;
    border-radius:999px;
    background:rgba(255,255,255,.86);
    color:var(--scene-note);
    font-size:.72rem;
    font-weight:900;
  }
  .decor-preview-main {
    display:flex;
    align-items:center;
    gap:10px;
    min-height:104px;
    padding:10px 4px;
  }
  .decor-preview-main > span {
    font-size:2rem;
  }
  .decor-preview-main strong {
    display:block;
    color:var(--text);
    font-size:1rem;
  }
  .decor-preview-main div > span {
    display:block;
    margin-top:3px;
    color:var(--sub);
    font-size:.72rem;
  }
  .decor-preview-quote {
    text-align:right;
    color:var(--scene-note);
    font-size:.7rem;
    font-weight:800;
  }

  .decor-preview-footer {
    display:flex;
    align-items:center;
    gap:9px;
    margin-top:12px;
    min-height:58px;
    padding:12px;
    border-radius:16px;
    color:var(--scene-note);
  }
  .decor-preview-footer.soft {
    background:linear-gradient(135deg,var(--primary-soft),rgba(255,255,255,.80));
  }
  .decor-preview-footer.solid {
    background:var(--primary-soft);
    border:1px solid color-mix(in srgb,var(--primary) 35%,transparent);
  }
  .decor-preview-footer.transparent {
    background:transparent;
    border:1px dashed var(--border);
  }
  .decor-preview-footer.left { justify-content:flex-start; text-align:left; }
  .decor-preview-footer.center { justify-content:center; text-align:center; }
  .decor-preview-footer.small strong { font-size:.68rem; }
  .decor-preview-footer.normal strong { font-size:.76rem; }
  .decor-preview-footer.large strong { font-size:.9rem; }

  .mobile-season-footer.decor-bg-soft {
    background:linear-gradient(135deg,var(--primary-soft),rgba(255,255,255,.78)) !important;
    border:1px solid rgba(255,255,255,.84) !important;
  }
  .mobile-season-footer.decor-bg-solid {
    background:var(--primary-soft) !important;
    border:1px solid color-mix(in srgb,var(--primary) 35%,transparent) !important;
  }
  .mobile-season-footer.decor-bg-transparent {
    background:transparent !important;
    border:1px dashed var(--border) !important;
  }
  .mobile-season-footer.decor-align-left {
    justify-content:flex-start !important;
    text-align:left !important;
  }
  .mobile-season-footer.decor-align-center {
    justify-content:center !important;
    text-align:center !important;
  }
  .mobile-season-footer.decor-size-small strong { font-size:.66rem !important; }
  .mobile-season-footer.decor-size-normal strong { font-size:.76rem !important; }
  .mobile-season-footer.decor-size-large strong { font-size:.9rem !important; }

  /* 계절 선택은 홈 꾸미기 모달에서만 변경 */
  .theme-strip {
    display:none !important;
  }

  @media(max-width:1120px) {
    #homeDecorModal {
      align-items:flex-end;
      padding:0;
    }
    .home-decor-modal-box {
      width:100%;
      max-width:none;
      max-height:94vh;
      border-radius:20px 20px 0 0;
      padding:16px 14px calc(18px + env(safe-area-inset-bottom));
    }
    .home-decor-layout {
      grid-template-columns:1fr;
    }
    .home-decor-preview-panel {
      order:-1;
    }
    .home-decor-season-buttons {
      grid-template-columns:repeat(3,1fr);
    }
    .decor-emoji-grid {
      grid-template-columns:repeat(4,1fr);
    }
    .home-decor-options-grid {
      grid-template-columns:1fr;
    }
    .home-decor-actions {
      position:sticky;
      bottom:0;
      z-index:4;
      padding-top:10px;
      background:linear-gradient(180deg,transparent,var(--card) 22%);
    }
    .home-decor-actions button {
      flex:1;
    }
  }


  /* ===== v25 하단 탭 제거 + 상단 네비게이션 통일 ===== */

  .mobile-nav-tabs,
  .mobile-tab-btn {
    display:none !important;
  }

  @media (max-width:1120px) {
    body {
      padding-bottom: env(safe-area-inset-bottom) !important;
    }

    /* 홈도 다른 화면과 동일하게 상단 고정 구조 */
    .mobile-appbar {
      position: sticky !important;
      top: 0 !important;
      z-index: 90 !important;
      grid-template-columns: 44px minmax(0,1fr) 44px !important;
      min-height: 64px !important;
      margin: 0 -6px 10px !important;
      padding: calc(5px + env(safe-area-inset-top)) 6px 5px !important;
      background: color-mix(in srgb, var(--scene-tint) 82%, rgba(255,255,255,.92)) !important;
      border-bottom: 1px solid color-mix(in srgb, var(--primary) 10%, var(--border)) !important;
      backdrop-filter: blur(14px) !important;
      -webkit-backdrop-filter: blur(14px) !important;
    }

    .mobile-appbar-logo {
      min-height: 48px !important;
      padding: 0 4px !important;
    }

    .mobile-appbar-icon,
    .mobile-page-header button,
    .mobile-history-header button {
      width: 40px !important;
      height: 40px !important;
      min-width: 40px !important;
      padding: 0 !important;
      border-radius: 50% !important;
      display: inline-flex !important;
      align-items: center !important;
      justify-content: center !important;
      background: rgba(255,255,255,.78) !important;
      color: var(--text) !important;
      border: 1px solid var(--border) !important;
      box-shadow: none !important;
      font-size: 1.08rem !important;
      line-height: 1 !important;
    }

    body.dark-mode .mobile-appbar,
    body.dark-mode .mobile-page-header,
    body.dark-mode .mobile-history-header {
      background: rgba(15,23,42,.92) !important;
      border-color: #334155 !important;
    }

    body.dark-mode .mobile-appbar-icon,
    body.dark-mode .mobile-page-header button,
    body.dark-mode .mobile-history-header button {
      background: rgba(30,41,59,.94) !important;
      color: #f8fafc !important;
      border-color: #475569 !important;
    }

    /* 모든 서브 화면 상단바 동일 */
    .mobile-page-header,
    .mobile-history-header {
      position: sticky !important;
      top: 0 !important;
      z-index: 90 !important;
      grid-template-columns: 44px minmax(0,1fr) 44px !important;
      min-height: 64px !important;
      margin: 0 -7px 10px !important;
      padding: calc(5px + env(safe-area-inset-top)) 9px 5px !important;
      background: rgba(255,255,255,.92) !important;
      border-bottom: 1px solid var(--border) !important;
      backdrop-filter: blur(14px) !important;
      -webkit-backdrop-filter: blur(14px) !important;
    }

    .mobile-page-header strong,
    .mobile-history-header strong {
      text-align: center !important;
      font-size: 1rem !important;
      font-weight: 900 !important;
      color: var(--text) !important;
      letter-spacing: -.02em;
    }

    .mobile-page-menu {
      justify-self: start !important;
    }

    .mobile-page-home,
    .mobile-history-header > button:last-child,
    .mobile-home-top-btn {
      justify-self: end !important;
    }

    /* 하단 탭이 사라진 만큼 화면 끝 여백 축소 */
    .mobile-history-screen {
      padding-bottom: calc(28px + env(safe-area-inset-bottom)) !important;
    }

    #cardLeaveApplyMain,
    #cardEmpTable,
    #cardCalendar {
      margin-bottom: 18px !important;
    }
  }


  /* ===== v26 앱 관리자 전용 보안/PIN 관리 ===== */
  .security-control-entry {
    display:none;
    align-items:center;
    justify-content:flex-start;
    gap:4px;
  }
  .security-control-entry small {
    margin-left:auto;
    color:var(--sub);
    font-size:.6rem;
    font-weight:700;
  }

  .admin-recovery-link {
    width:100%;
    margin-top:10px;
    padding:9px 8px;
    border:0;
    background:transparent;
    color:var(--sub);
    box-shadow:none;
    font-size:.68rem;
    line-height:1.4;
    text-decoration:underline;
    text-underline-offset:2px;
  }
  .admin-recovery-link strong {
    color:var(--primary);
  }

  @media(max-width:1120px) {
    .security-control-entry {
      width:100%;
    }
  }


/* ===== v29 PC: approved preview faithful layout ===== */
.pc-topbar { display:none; }

@media (min-width:1121px) {
  /* PC is intentionally a clean light admin dashboard like the approved mockup. */
  body,
  body.dark-mode {
    --primary:#2f6fe4;
    --primary-soft:#eef5ff;
    --primary-hover:#245dc2;
    --success:#20a566;
    --success-soft:#eaf9f0;
    --warning:#e99a36;
    --warning-soft:#fff6e7;
    --danger:#ef5c68;
    --bg:#f5faff;
    --card:#ffffff;
    --border:#e2ebf5;
    --text:#15233c;
    --sub:#75869e;
    --input-bg:#f8fbff;
    --header-bg:#f6f9fd;
    --hover-bg:#f2f7ff;
    background:#f5faff !important;
    color:var(--text) !important;
  }

  .system-header,
  .theme-strip,
  .desktop-quick-rail,
  .dashboard-hero,
  .dashboard-summary-grid,
  .approval-banner {
    display:none !important;
  }

  .pc-topbar {
    display:block;
    height:74px;
    background:#fff;
    border-bottom:1px solid #e7eef7;
    box-shadow:0 4px 20px rgba(51,79,117,.04);
    position:sticky;
    top:0;
    z-index:70;
  }
  .pc-topbar-inner {
    height:100%;
    max-width:1580px;
    margin:0 auto;
    padding:0 22px;
    display:grid;
    grid-template-columns:auto minmax(320px,420px) auto;
    gap:34px;
    align-items:center;
  }
  .pc-brand {
    display:flex;
    align-items:center;
    gap:10px;
    white-space:nowrap;
    color:#111d31;
  }
  .pc-brand img { width:64px; height:54px; object-fit:contain; }
  .pc-brand strong { font-size:1.1rem; font-weight:900; letter-spacing:-.03em; }
  .pc-brand i { width:1px; height:24px; background:#dfe7f0; margin:0 3px; }
  .pc-brand b { font-size:1rem; font-weight:800; color:#21304a; }

  .pc-global-search {
    height:44px;
    border:1px solid #dce6f2;
    border-radius:23px;
    background:#f9fbfe;
    display:flex;
    align-items:center;
    gap:9px;
    padding:0 16px;
  }
  .pc-global-search span { font-size:1.3rem; color:#8b9ab0; line-height:1; }
  .pc-global-search input {
    border:0 !important; background:transparent !important; box-shadow:none !important;
    padding:0 !important; height:100%; font-size:.84rem !important; font-weight:600;
  }

  .pc-top-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; }
  .pc-top-actions select {
    height:42px; min-width:142px; padding:0 34px 0 13px !important;
    border:1px solid #dce6f2 !important; border-radius:10px !important;
    background:#fff; color:#20304a; font-weight:800; font-size:.78rem !important;
  }
  .pc-bell {
    width:42px; height:42px; padding:0; border:0; background:transparent; color:#1f3150;
    position:relative; box-shadow:none; font-size:1.15rem;
  }
  .pc-bell span {
    position:absolute; right:2px; top:1px; min-width:17px; height:17px; padding:0 4px;
    border-radius:999px; background:#ff545e; color:#fff; font-size:.58rem; font-weight:900;
    display:flex; align-items:center; justify-content:center;
  }
  .pc-user-chip {
    display:flex; align-items:center; gap:8px; padding-left:10px; border-left:1px solid #e4ebf3;
  }
  .pc-user-avatar {
    width:38px; height:38px; border-radius:50%; background:#98a8bc; color:white;
    display:flex; align-items:center; justify-content:center;
  }
  .pc-user-chip strong { display:block; font-size:.78rem; color:#1e2c43; }
  .pc-user-chip small { display:block; margin-top:1px; font-size:.63rem; color:#8b99ac; }
  .pc-admin-chip {
    padding:8px 14px; border-radius:9px; background:#fff7e8; color:#a96918;
    border:1px solid #f5d7a5; box-shadow:none; font-size:.75rem; font-weight:900;
  }

  .dashboard-wrapper {
    width:min(1580px, calc(100% - 28px)) !important;
    max-width:none !important;
    margin:0 auto !important;
    padding:0 !important;
    display:grid !important;
    grid-template-columns:218px minmax(0,1fr) 470px !important;
    gap:16px !important;
    align-items:start;
  }

  .desktop-sidebar {
    position:sticky; top:74px; height:calc(100vh - 74px);
    border:0 !important; border-right:1px solid #e5edf6 !important;
    border-radius:0 !important; background:#fff !important; box-shadow:none !important;
    display:flex; flex-direction:column; overflow:hidden;
  }
  .desktop-brand { display:none !important; }
  .desktop-menu { padding:26px 18px 12px; gap:8px; }
  .desktop-menu-btn {
    min-height:48px; padding:0 15px !important; border:0 !important; border-radius:10px !important;
    background:transparent !important; color:#26354d !important; box-shadow:none !important;
    gap:12px; font-size:.89rem !important;
  }
  .desktop-menu-btn span { width:28px; font-size:1.2rem; }
  .desktop-menu-btn:hover,
  .desktop-menu-btn.active {
    background:linear-gradient(90deg,#dfeeff,#e8f2ff) !important;
    color:#246ee2 !important;
  }
  .desktop-sidebar-note {
    margin:auto 18px 24px !important; padding:14px 12px !important;
    min-height:116px !important; border:0 !important; border-radius:0 !important;
    background:transparent !important;
  }
  .season-sidebar-icon { font-size:2rem; }
  .desktop-sidebar-note strong { font-size:.92rem; color:#2c4e83; }
  .desktop-sidebar-note span:last-child { font-size:.74rem; color:#7d8da3; }

  .left-col, .right-col { gap:14px !important; min-width:0; }
  .left-col { padding-top:16px; }
  .right-col { padding-top:16px; position:static !important; }

  .pc-metric-grid {
    display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:14px;
  }
  .pc-metric-card {
    min-height:122px; border:1px solid #e1eaf4; border-radius:18px; padding:16px;
    display:flex; gap:13px; align-items:flex-start; box-shadow:0 12px 28px rgba(63,91,128,.05);
  }
  .pc-metric-icon {
    width:46px; height:46px; border-radius:50%; background:rgba(255,255,255,.62);
    display:flex; align-items:center; justify-content:center; font-size:1.45rem; flex:0 0 auto;
  }
  .pc-metric-card small { display:block; font-size:.75rem; font-weight:800; color:#566983; }
  .pc-metric-card strong { display:block; margin-top:4px; font-size:1.6rem; line-height:1; color:#16243b; }
  .pc-metric-card em { display:block; margin-top:12px; font-style:normal; font-size:.67rem; color:#8997aa; }
  .metric-blue { background:linear-gradient(135deg,#f3f8ff,#eef6ff); }
  .metric-green { background:linear-gradient(135deg,#f1fff7,#eafaf1); }
  .metric-orange { background:linear-gradient(135deg,#fff8ef,#fff3e5); }
  .metric-sky { background:linear-gradient(135deg,#f4f9ff,#edf6ff); }
  .metric-purple { background:linear-gradient(135deg,#faf5ff,#f5efff); }

  .card {
    position:relative; overflow:hidden; background:#fff !important; border:1px solid #e2ebf5 !important;
    border-radius:18px !important; box-shadow:0 14px 32px rgba(52,79,115,.055) !important;
    padding:16px !important;
  }
  .card::before { display:none !important; }
  .card-header {
    margin-bottom:12px !important; padding:0 0 12px !important; border-bottom:1px solid #edf2f7 !important;
  }
  .card-header h2 { font-size:1.08rem !important; font-weight:900 !important; color:#17253c !important; }

  #cardEmpTable { display:none !important; }
  body.pc-status-view #cardEmpTable { display:block !important; }
  body.pc-status-view #cardCalendar,
  body.pc-status-view #pcRecentCard,
  body.pc-status-view #pcMetricGrid { display:none !important; }

  #cardCalendar { order:2; padding:16px !important; }
  #cardCalendar .card-header { min-height:48px; }
  .cal-title-pill {
    min-width:132px; height:38px; padding:0 16px !important; border-radius:19px !important;
    display:flex; align-items:center; justify-content:center; font-size:.89rem !important;
    background:#fff !important; border:1px solid #dfe8f3 !important; color:#25344c !important;
  }
  #cardCalendar .sub-btn {
    width:38px; height:38px; padding:0 !important; border-radius:50% !important;
    background:#fff !important; border:1px solid #dfe8f3 !important; color:#62748d !important;
  }
  #cardCalendar .calendar-grid {
    border:1px solid #e2ebf4 !important; border-radius:14px !important;
    overflow:hidden; background:#fff !important; gap:1px !important;
  }
  #cardCalendar .cal-cell {
    min-height:74px !important; background:#fff !important; border-radius:0 !important;
    border:0 !important; padding:7px 8px !important;
  }
  #cardCalendar .cal-cell:hover { background:#f8fbff !important; }
  #cardCalendar .empty-cell { background:#f7f9fc !important; }
  #cardCalendar .holiday-cell { background:#fff5f5 !important; }
  #cardCalendar .cal-day-num { font-size:.82rem !important; color:#17243a !important; }
  #cardCalendar .event-chip { font-size:.65rem !important; border-radius:6px !important; padding:3px 6px !important; }

  .pc-recent-card { order:3; }
  .pc-section-head {
    display:flex; align-items:center; justify-content:space-between; margin-bottom:10px;
  }
  .pc-section-head > div { display:flex; align-items:center; gap:8px; }
  .pc-section-head strong { font-size:1rem; color:#17253c; }
  .pc-section-head button {
    border:0; background:transparent; box-shadow:none; color:#6e8097; padding:4px; font-size:.72rem;
  }
  .pc-recent-table-wrap { overflow:auto; border:1px solid #edf2f7; border-radius:10px; }
  .pc-recent-table { font-size:.72rem !important; }
  .pc-recent-table th { position:static; padding:8px 10px; background:#f7f9fc; color:#718299; font-size:.66rem; }
  .pc-recent-table td { padding:8px 10px; border-bottom:1px solid #edf2f7; }
  .pc-reason-cell { max-width:140px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .pc-type-pill {
    display:inline-flex; padding:3px 9px; border-radius:999px; background:#e9f3ff; color:#286ee0; font-weight:800;
  }
  .pc-status-pill { display:inline-flex; padding:3px 10px; border-radius:999px; font-weight:900; }
  .pc-status-pill.approved { background:#e7f8ee; color:#1c9b5f; }
  .pc-status-pill.pending { background:#fff2d9; color:#c07a15; }
  .pc-status-pill.rejected { background:#ffebed; color:#df4e5b; }
  .pc-empty-row { text-align:center; color:#92a0b2; padding:22px !important; }

  #cardLeaveApplyMain {
    padding:0 !important; border-radius:18px !important; overflow:hidden !important;
  }
  #cardLeaveApplyMain::after {
    content:"휴가 신청하기";
    display:block; position:absolute; top:20px; left:18px; font-size:1.05rem; font-weight:900; color:#17253c;
    pointer-events:none;
  }
  #cardLeaveApplyMain > .side-profile-header {
    margin-top:68px !important; margin-left:16px; margin-right:16px; padding:10px 12px !important;
    min-height:48px; border-radius:9px !important; background:#f8fbff !important;
    border:1px solid #e2eaf4 !important; box-shadow:none !important;
  }
  #cardLeaveApplyMain > .side-profile-header::before {
    content:"신청자"; font-size:.76rem; font-weight:900; color:#26354c; margin-right:10px;
  }
  .side-profile-header .edit-btn { display:none !important; }
  #dNameTitle { font-size:.82rem !important; font-weight:800 !important; }
  #dSubInfo { display:none !important; }
  .self-info-badge, .side-profile-header .admin-only-inline { font-size:.6rem !important; }

  #cardLeaveApplyMain .mobile-simple-balance,
  #cardLeaveApplyMain .side-stats-grid {
    display:none !important;
  }

  #cardLeaveApplyMain > div[style*="border-top: 1px solid var(--border); padding-top: 12px"] {
    border-top:0 !important; padding:10px 16px 16px !important; margin-bottom:0 !important;
  }
  .mobile-apply-title {
    margin-bottom:8px; display:flex; flex-direction:column; gap:1px;
  }
  .mobile-apply-title strong { font-size:.95rem !important; color:#17253c; }
  .mobile-apply-title span { font-size:.66rem !important; color:#8190a4; }

  #cardLeaveApplyMain .stack-form { gap:10px !important; margin-top:8px !important; }
  #cardLeaveApplyMain label,
  #cardLeaveApplyMain .leave-type-form-label { color:#28374f !important; font-size:.74rem !important; }
  #cardLeaveApplyMain .mobile-step-label {
    display:flex !important; align-items:center !important; justify-content:flex-start !important;
    gap:7px; font-size:.76rem !important; color:#28374f !important;
  }
  #cardLeaveApplyMain .mobile-step-label em {
    width:22px; height:22px; flex:0 0 22px; display:inline-flex !important;
    align-items:center; justify-content:center; border-radius:50%;
    background:var(--primary); color:#fff; font-style:normal; font-size:.68rem; font-weight:900;
  }
  .inline-manage-link { padding:4px 8px !important; font-size:.62rem !important; }

  #cardLeaveApplyMain .leave-type-chip-grid {
    grid-template-columns:repeat(4,minmax(0,1fr)) !important; gap:7px !important;
  }
  #cardLeaveApplyMain .leave-type-chip {
    min-height:42px; padding:8px 5px !important; border-radius:9px !important; font-size:.74rem !important;
  }
  #cardLeaveApplyMain .leave-type-chip.active {
    background:#edf4ff !important; color:#286ee0 !important; border:1.5px solid #5c8df0 !important;
  }

  #cardLeaveApplyMain input,
  #cardLeaveApplyMain .modal-trigger-btn {
    min-height:42px; padding:9px 12px !important; border-radius:8px !important; font-size:.78rem !important;
    background:#f8fbff !important; border:1px solid #e0e8f2 !important;
  }
  #cardLeaveApplyMain .date-mode-toggle { border-radius:8px !important; }
  #cardLeaveApplyMain .date-mode-btn { padding:5px 9px !important; font-size:.65rem !important; }
  #cardLeaveApplyMain .quick-reason-buttons { display:none !important; }
  #applyReason { min-height:68px !important; }
  #substituteCreditGroup[hidden] { display:none !important; }
  #substituteUsageModeWrap[hidden], #substituteHourUsageWrap[hidden], #workCreditMinutesWrap[hidden] { display:none !important; }
  #myAppEditAmountWrap[hidden] { display:none !important; }
  .substitute-credit-trigger,
  .substitute-credit-trigger:hover { width:100%; min-height:42px; padding:9px 12px; border:1px solid var(--border); border-radius:8px; background:var(--input-bg); color:var(--text); text-align:left; display:flex; align-items:center; justify-content:space-between; gap:8px; box-shadow:none; font-size:.85rem; font-weight:400; }
  .substitute-credit-trigger:disabled { opacity:.7; cursor:not-allowed; }
  .substitute-credit-trigger-arrow { color:var(--sub); flex:0 0 auto; }
  #substituteCreditList { display:grid; gap:7px; margin-top:3px; padding:6px; border:1px solid var(--border); border-radius:8px; background:var(--card); max-height:240px; overflow-y:auto; }
  #substituteCreditList[hidden] { display:none !important; }
  .substitute-credit-option { display:flex; align-items:center; gap:10px; min-height:48px; padding:9px 12px; border:1px solid var(--border); border-radius:10px; background:var(--card); cursor:pointer; }
  .substitute-credit-option input { flex:0 0 auto; width:18px; height:18px; }
  .substitute-credit-option span { display:grid; gap:2px; min-width:0; }
  .substitute-credit-option strong { font-size:.88rem; color:var(--text); }
  .substitute-credit-option small { font-size:.76rem; color:var(--sub); }

  .apply-sig-box {
    margin:0 16px 10px !important; padding:8px 10px !important; border-radius:9px !important;
    background:#fbfdff !important; border:1px solid #e6edf5 !important;
  }
  .apply-sig-header { margin-bottom:5px !important; }
  .apply-sig-canvas-wrap { height:54px !important; min-height:54px !important; border-radius:7px !important; }
  #applySigCanvas { height:54px !important; }

  #cardLeaveApplyMain > div[style*="margin-top: 12px"] {
    margin:10px 16px 0 !important;
  }
  #cardLeaveApplyMain > div[style*="margin-top: 12px"] > button[onclick="submitLeave()"] {
    min-height:48px; background:linear-gradient(90deg,#3977df,#2e68ce) !important;
    border-radius:8px !important; box-shadow:0 8px 18px rgba(47,111,228,.16) !important;
  }

  .pc-form-shortcuts {
    display:flex; gap:8px; margin:9px 16px 16px;
  }
  .pc-form-shortcuts button {
    flex:1; min-height:34px; padding:6px 8px; border-radius:8px;
    background:#f7faff; color:#61758f; border:1px solid #e2eaf4; box-shadow:none; font-size:.67rem;
  }
  .pc-advanced-panel { display:none !important; margin:10px 16px 16px !important; }
  .pc-advanced-panel.pc-tool-open { display:block !important; }
  .pc-quick-employee { display:none !important; }

  .pc-pending-card, .pc-notice-card { padding:14px 16px !important; }
  .pc-pending-mini-list { display:flex; flex-direction:column; gap:2px; }
  .pc-pending-row {
    display:grid; grid-template-columns:minmax(0,1fr) auto 16px; gap:8px; align-items:center;
    padding:8px 5px; border-bottom:1px solid #edf2f7;
  }
  .pc-pending-row:last-child { border-bottom:0; }
  .pc-pending-row > div { display:flex; align-items:center; gap:8px; min-width:0; }
  .pc-pending-row strong { font-size:.72rem; color:#25344b; }
  .pc-pending-row span {
    padding:3px 8px; border-radius:999px; background:#f0ebff; color:#7953d9; font-size:.6rem; font-weight:800;
  }
  .pc-pending-row b { font-size:.66rem; color:#63758e; font-weight:700; }
  .pc-pending-row em { font-style:normal; color:#8fa0b4; }
  .pc-empty-mini { padding:18px 6px; text-align:center; color:#91a0b3; font-size:.7rem; }

  .pc-notice-card {
    background:linear-gradient(135deg,#fffaf1,#fff6e7) !important; border-color:#f6dfb7 !important;
  }
  .pc-notice-card p { margin:4px 0 0; color:#6c7e95; font-size:.72rem; line-height:1.55; }

  .mobile-page-header, .mobile-page-menu, .mobile-page-home { display:none !important; }

  @media (max-width:1450px) {
    .dashboard-wrapper { grid-template-columns:190px minmax(0,1fr) 420px !important; }
    .pc-topbar-inner { grid-template-columns:auto minmax(260px,350px) auto; gap:18px; }
    .pc-brand b { display:none; }
    .pc-metric-card { padding:13px; gap:9px; }
    .pc-metric-icon { width:40px; height:40px; }
    .pc-metric-card strong { font-size:1.35rem; }
  }
}


/* ===== v30 관리자 전용 신청서·인쇄 센터 ===== */
.pc-admin-console { display:none; }

@media (min-width:1121px) {
  #pcLeaveAdminTools { display:none !important; }
  #cardLeaveApplyMain .pc-form-shortcuts .admin-only-inline { display:none !important; }

  body.pc-admin-console-open .dashboard-wrapper { display:none !important; }

  .pc-admin-console.open {
    display:block;
    width:min(1580px, calc(100% - 28px));
    margin:0 auto;
    min-height:calc(100vh - 74px);
    background:#f5faff;
  }

  .pc-admin-shell {
    display:grid;
    grid-template-columns:236px minmax(0,1fr);
    min-height:calc(100vh - 74px);
  }

  .pc-admin-side {
    position:sticky;
    top:74px;
    height:calc(100vh - 74px);
    padding:22px 16px;
    background:#fff;
    border-right:1px solid #e3ebf4;
    display:flex;
    flex-direction:column;
  }

  .pc-admin-back {
    width:100%;
    min-height:40px;
    padding:0 12px;
    border-radius:9px;
    background:#f6f9fd;
    color:#62748d;
    border:1px solid #e0e8f2;
    box-shadow:none;
    font-size:.76rem;
    text-align:left;
  }

  .pc-admin-side-title {
    display:flex;
    align-items:center;
    gap:10px;
    padding:20px 6px 15px;
    border-bottom:1px solid #edf2f7;
  }
  .pc-admin-side-title > span {
    width:42px;height:42px;border-radius:13px;
    display:flex;align-items:center;justify-content:center;
    background:#edf4ff;font-size:1.25rem;
  }
  .pc-admin-side-title strong {
    display:block;font-size:1rem;color:#18273f;
  }
  .pc-admin-side-title small {
    display:block;margin-top:2px;font-size:.64rem;color:#8291a4;
  }

  .pc-admin-subnav {
    display:flex;
    flex-direction:column;
    gap:7px;
    margin-top:16px;
  }
  .pc-admin-subnav button {
    min-height:46px;
    padding:0 13px;
    border-radius:10px;
    border:0;
    background:transparent;
    color:#31415a;
    box-shadow:none;
    text-align:left;
    font-size:.8rem;
    font-weight:800;
  }
  .pc-admin-subnav button:hover,
  .pc-admin-subnav button.active {
    background:#eaf3ff;
    color:#286ee0;
  }

  .pc-admin-help {
    margin-top:auto;
    padding:14px;
    border-radius:14px;
    background:linear-gradient(135deg,#f3f8ff,#eef6ff);
    border:1px solid #deebfa;
  }
  .pc-admin-help strong { display:block;font-size:.75rem;color:#31547d; }
  .pc-admin-help span { display:block;margin-top:5px;font-size:.65rem;line-height:1.5;color:#72859c; }

  .pc-admin-main {
    min-width:0;
    padding:26px 28px 40px;
  }
  .pc-admin-panel { display:none; }
  .pc-admin-panel.active { display:block; }

  .pc-admin-page-head {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:20px;
    margin-bottom:18px;
  }
  .pc-admin-kicker {
    display:block;
    margin-bottom:5px;
    font-size:.62rem;
    letter-spacing:.16em;
    color:#4e80cf;
    font-weight:900;
  }
  .pc-admin-page-head h1 {
    margin:0;
    color:#16243b;
    font-size:1.7rem;
    letter-spacing:-.04em;
  }
  .pc-admin-page-head p {
    margin:6px 0 0;
    color:#7d8da2;
    font-size:.78rem;
  }
  .pc-admin-head-actions {
    display:flex;gap:8px;
  }
  .pc-admin-head-actions button {
    min-height:42px;
    padding:0 15px;
    border-radius:9px;
    font-size:.75rem;
  }

  .pc-admin-summary-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
    margin-bottom:14px;
  }
  .pc-admin-summary-grid > div {
    padding:15px 16px;
    border:1px solid #e2ebf4;
    border-radius:15px;
    background:#fff;
    box-shadow:0 10px 24px rgba(54,82,119,.045);
  }
  .pc-admin-summary-grid span {
    display:block;font-size:.68rem;color:#8190a4;font-weight:700;
  }
  .pc-admin-summary-grid strong {
    display:block;margin-top:5px;font-size:1.3rem;color:#17253c;
  }

  .pc-admin-card {
    margin-bottom:14px;
    padding:16px;
    border:1px solid #e2ebf4;
    border-radius:17px;
    background:#fff;
    box-shadow:0 12px 28px rgba(54,82,119,.045);
  }
  .pc-admin-card-head {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:12px;
  }
  .pc-admin-card-head strong {
    display:block;font-size:.9rem;color:#1b2940;
  }
  .pc-admin-card-head span {
    display:block;margin-top:2px;font-size:.65rem;color:#8291a5;
  }

  .pc-admin-staff-strip {
    display:flex;
    gap:8px;
    overflow-x:auto;
    padding-bottom:5px;
  }
  .pc-staff-filter {
    flex:0 0 126px;
    min-height:78px;
    padding:9px 10px;
    border-radius:13px;
    border:1px solid #e2eaf4;
    background:#fbfdff;
    color:#283851;
    box-shadow:none;
    text-align:left;
  }
  .pc-staff-filter > span {
    width:28px;height:28px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    background:#edf4ff;color:#3476dd;font-size:.69rem;font-weight:900;
  }
  .pc-staff-filter strong {
    display:block;margin-top:5px;font-size:.76rem;
  }
  .pc-staff-filter small {
    display:block;margin-top:2px;color:#8392a5;font-size:.58rem;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .pc-staff-filter.active {
    background:#eaf3ff;
    border-color:#6d9cf0;
    box-shadow:inset 0 0 0 1px #6d9cf0;
  }

  .pc-print-filter-grid {
    display:grid;
    grid-template-columns:1.1fr .9fr .8fr .82fr .82fr 1.3fr;
    gap:9px;
  }
  .pc-print-filter-grid label > span {
    display:block;margin-bottom:5px;font-size:.64rem;color:#687a92;font-weight:800;
  }
  .pc-print-filter-grid select,
  .pc-print-filter-grid input {
    width:100%;
    min-height:39px;
    padding:7px 10px !important;
    border-radius:8px !important;
    border:1px solid #dde7f1 !important;
    background:#f9fbfe !important;
    color:#25354e !important;
    font-size:.72rem !important;
  }
  .pc-admin-date-field {display:flex;align-items:stretch;gap:0;}
  .pc-admin-date-field input {flex:1;min-width:0;border-radius:8px 0 0 8px !important;}
  .pc-admin-date-field button {width:40px;min-height:39px;border:1px solid #dde7f1;border-left:0;border-radius:0 8px 8px 0;background:#f9fbfe;color:#55708f;cursor:pointer;}
  .pc-admin-date-field button:hover,.pc-admin-date-field button:focus-visible {background:#eaf3ff;color:#2d6fd5;outline:2px solid #6d9cf0;outline-offset:1px;}
  .pc-admin-calendar-popover {position:fixed;z-index:20;width:294px;max-height:calc(100vh - 16px);overflow-y:auto;padding:12px;border:1px solid #dbe5f0;border-radius:14px;background:#fff;box-shadow:0 14px 34px #263b5a26;}
  .pc-admin-calendar-popover[hidden] {display:none;}
  .pc-admin-calendar-head {display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;}
  .pc-admin-calendar-head strong {font-size:.8rem;color:#1d2c43;}
  .pc-admin-calendar-nav {display:flex;gap:4px;}
  .pc-admin-calendar-nav button,.pc-admin-calendar-foot button {min-width:32px;min-height:30px;padding:4px 8px;border:1px solid #dbe5f0;border-radius:7px;background:#f8fbff;color:#2d6fd5;cursor:pointer;}
  .pc-admin-calendar-nav button:hover,.pc-admin-calendar-nav button:focus-visible,.pc-admin-calendar-foot button:hover,.pc-admin-calendar-foot button:focus-visible {background:#eaf3ff;outline:2px solid #6d9cf0;outline-offset:1px;}
  .pc-admin-calendar-weekdays,.pc-admin-calendar-days {display:grid;grid-template-columns:repeat(7,1fr);gap:3px;}
  .pc-admin-calendar-weekdays {margin-bottom:4px;color:#8795a7;font-size:.62rem;text-align:center;font-weight:800;}
  .pc-admin-calendar-day {min-height:32px;padding:0;border:1px solid transparent;border-radius:7px;background:#fff;color:#30445e;cursor:pointer;font-size:.7rem;}
  .pc-admin-calendar-day:hover,.pc-admin-calendar-day:focus-visible {background:#eaf3ff;border-color:#8bb4f5;outline:2px solid #6d9cf0;outline-offset:1px;}
  .pc-admin-calendar-day.other-month {color:#b5bfcc;}
  .pc-admin-calendar-day.today {font-weight:900;box-shadow:inset 0 0 0 1px #6d9cf0;}
  .pc-admin-calendar-day.selected {background:#2d6fd5;color:#fff;font-weight:900;}
  .pc-admin-calendar-day.in-range {background:#eef6ff;color:#2d6fd5;}
  .pc-admin-calendar-foot {display:flex;justify-content:space-between;gap:6px;margin-top:10px;}
  .pc-admin-calendar-help {margin:8px 0 0;color:#8795a7;font-size:.62rem;line-height:1.4;}
  .pc-print-filter-grid {position:relative;}
  @media(max-width:1120px){.pc-admin-calendar-popover{position:fixed;left:50%!important;top:50%!important;transform:translate(-50%,-50%);}}

  .pc-print-actions {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:14px 0 11px;
  }
  .pc-print-selected-caption strong {
    display:block;font-size:.82rem;color:#1d2c43;
  }
  .pc-print-selected-caption span {
    display:block;margin-top:2px;font-size:.63rem;color:#8795a7;
  }
  .pc-print-actions > div:last-child {
    display:flex;gap:7px;
  }
  .pc-print-actions button {
    min-height:36px;padding:0 11px;border-radius:8px;font-size:.68rem;
  }

  .pc-admin-print-table-wrap {
    max-height:520px;
    overflow:auto;
    border:1px solid #e6edf5;
    border-radius:11px;
  }
  .pc-admin-print-table {
    width:100%;
    min-width:1080px;
    border-collapse:collapse;
    font-size:.7rem;
  }
  .pc-admin-print-table th {
    position:sticky;
    top:0;
    z-index:4;
    padding:9px 8px;
    background:#f6f9fd;
    color:#708198;
    font-size:.62rem;
    font-weight:900;
    border-bottom:1px solid #e2eaf3;
    white-space:nowrap;
  }
  .pc-admin-print-table td {
    padding:9px 8px;
    border-bottom:1px solid #edf2f7;
    color:#2b3b53;
    vertical-align:middle;
  }
  .pc-admin-print-table tbody tr:hover { background:#f9fbff; }
  .pc-admin-print-table .check-col { width:34px;text-align:center; }
  .pc-applicant-name { color:#17263e;font-size:.72rem; }
  .pc-role-pill,
  .pc-leave-pill {
    display:inline-flex;
    padding:3px 7px;
    border-radius:999px;
    font-size:.59rem;
    font-weight:900;
    white-space:nowrap;
  }
  .pc-role-pill { background:#f1f4f8;color:#53667f; }
  .pc-leave-pill { background:#eaf3ff;color:#2d6fd5; }
  .pc-admin-status {
    display:inline-flex;
    padding:3px 8px;
    border-radius:999px;
    font-size:.58rem;
    font-weight:900;
  }
  .pc-admin-status.approved { background:#e7f8ef;color:#15945a; }
  .pc-admin-status.pending { background:#fff4dd;color:#b97717; }
  .pc-admin-status.rejected { background:#ffecef;color:#d94f5c; }

  .pc-proxy-btn {
    max-width:145px;
    padding:4px 7px;
    border-radius:7px;
    background:#f4f8ff;
    color:#326fc8;
    border:1px solid #dbe8fa;
    box-shadow:none;
    font-size:.6rem;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .pc-admin-reason {
    max-width:170px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    color:#687a91 !important;
  }
  .pc-date-cell { white-space:nowrap;font-weight:700;color:#32445d; }
  .pc-mini-action {
    min-height:30px !important;
    padding:0 8px !important;
    border-radius:7px !important;
    font-size:.6rem !important;
    white-space:nowrap;
  }
  .pc-mini-action.primary {
    background:#2f6fe4;
    color:#fff;
    border:1px solid #2f6fe4;
    box-shadow:none;
  }
  .pc-admin-empty {
    padding:34px !important;
    text-align:center;
    color:#91a0b2 !important;
  }

  @media (max-width:1380px) {
    .pc-print-filter-grid {
      grid-template-columns:repeat(3,minmax(0,1fr));
    }
  }
}


/* ===== v31 날짜 수정 + 직급별 업무대리인 ===== */
.leave-date-edit-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.leave-date-edit-grid label {
  display:flex;
  flex-direction:column;
  gap:5px;
}
.leave-date-edit-grid label > span {
  font-size:.7rem;
  color:var(--sub);
  font-weight:800;
}
.leave-date-edit-grid input,
.leave-date-edit-grid select {
  width:100%;
  min-height:42px;
  padding:8px 10px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--input-bg);
  color:var(--text);
}
.leave-date-edit-notice {
  margin-top:12px;
  padding:10px 11px;
  border-radius:10px;
  background:#f5f9ff;
  border:1px solid #dce9fa;
  color:#667b96;
  font-size:.68rem;
  line-height:1.5;
}

.proxy-manual-entry {
  margin-bottom:10px;
  padding:10px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--input-bg);
}
.proxy-manual-entry > div:first-child strong {
  display:block;
  color:var(--text);
  font-size:.78rem;
}
.proxy-manual-entry > div:first-child span {
  display:block;
  margin-top:2px;
  color:var(--sub);
  font-size:.65rem;
  line-height:1.4;
}
.proxy-manual-entry-row {
  display:grid;
  grid-template-columns:1fr 1fr auto;
  gap:7px;
  margin-top:8px;
}
.proxy-manual-entry-row input {
  min-height:38px;
  padding:7px 9px;
  border:1px solid var(--border);
  border-radius:9px;
  background:var(--card);
  color:var(--text);
}
.proxy-manual-entry-row button {
  min-height:38px;
  padding:0 11px;
  border-radius:9px;
  white-space:nowrap;
}

@media (min-width:1121px) {
  .pc-date-edit-btn {
    display:inline-flex;
    align-items:center;
    gap:6px;
    max-width:190px;
    padding:5px 8px;
    border-radius:7px;
    background:#f8fbff;
    color:#32445d;
    border:1px solid transparent;
    box-shadow:none;
    font-size:.64rem;
    font-weight:800;
  }
  .pc-date-edit-btn:hover {
    background:#edf4ff;
    border-color:#cfe0f8;
    color:#286ee0;
  }
  .pc-date-edit-btn span {
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .pc-date-edit-btn em {
    flex:0 0 auto;
    color:#5f8fdc;
    font-style:normal;
  }
}

@media(max-width:1120px) {
  .leave-date-edit-grid {
    grid-template-columns:1fr;
  }
  .proxy-manual-entry-row {
    grid-template-columns:1fr 1fr;
  }
  .proxy-manual-entry-row button {
    grid-column:1 / -1;
  }
}


/* ===== v32 커스텀 날짜 달력 + 브랜드 홈 클릭 ===== */
.pretty-date-field {
  width:100%;
  min-height:46px;
  display:flex;
  align-items:center;
  gap:6px;
  padding:0 8px 0 12px;
  border:1px solid #dce6f2;
  border-radius:12px;
  background:#f9fbfe;
  cursor:pointer;
  transition:.16s ease;
}
.pretty-date-field:hover,
.pretty-date-field.calendar-open {
  border-color:#72a0ee;
  box-shadow:0 0 0 3px rgba(47,111,228,.10);
  background:#fff;
}
.pretty-date-field input {
  flex:1;
  min-width:0;
  border:0 !important;
  background:transparent !important;
  padding:0 !important;
  box-shadow:none !important;
  cursor:pointer;
  color:#1e2d45 !important;
  font-weight:800;
}
.pretty-date-field > button {
  width:32px;
  height:32px;
  padding:0;
  border:0;
  border-radius:9px;
  background:#edf4ff;
  color:#3475dd;
  box-shadow:none;
  display:flex;
  align-items:center;
  justify-content:center;
  pointer-events:none;
}

.leave-custom-calendar {
  display:none;
  margin-top:12px;
  padding:13px;
  border:1px solid #dfe8f3;
  border-radius:16px;
  background:#fff;
  box-shadow:0 18px 45px -28px rgba(26,48,79,.35);
}
.leave-custom-calendar.open { display:block; }

.leave-cal-head {
  display:grid;
  grid-template-columns:38px 1fr 38px;
  align-items:center;
  gap:6px;
  margin-bottom:10px;
}
.leave-cal-head strong {
  text-align:center;
  font-size:.9rem;
  color:#182740;
  font-weight:900;
}
.leave-cal-head button {
  width:36px;
  height:36px;
  padding:0;
  border-radius:11px;
  border:1px solid #e0e8f2;
  background:#f8fbff;
  color:#50647f;
  box-shadow:none;
  font-size:1.2rem;
}
.leave-cal-head button:hover {
  background:#edf4ff;
  color:#2f6fe4;
}

.leave-cal-week,
.leave-cal-days {
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:5px;
}
.leave-cal-week {
  margin-bottom:5px;
}
.leave-cal-week span {
  text-align:center;
  padding:4px 0;
  color:#8291a5;
  font-size:.64rem;
  font-weight:900;
}
.leave-cal-week .sun { color:#ee5a64; }
.leave-cal-week .sat { color:#2f6fe4; }

.leave-cal-days button {
  aspect-ratio:1/1;
  min-width:0;
  padding:0;
  border:0;
  border-radius:11px;
  background:transparent;
  color:#25354e;
  box-shadow:none;
  font-size:.72rem;
  font-weight:750;
  position:relative;
}
.leave-cal-days button:hover {
  background:#eef5ff;
  color:#286ee0;
}
.leave-cal-days button.sun { color:#e95762; }
.leave-cal-days button.sat { color:#2f6fe4; }
.leave-cal-days button.outside {
  color:#b2bdca;
  font-weight:600;
}
.leave-cal-days button.today::after {
  content:"";
  width:4px;height:4px;
  border-radius:50%;
  background:#2f6fe4;
  position:absolute;
  bottom:4px;
  left:50%;
  transform:translateX(-50%);
}
.leave-cal-days button.selected {
  background:#2f6fe4 !important;
  color:#fff !important;
  box-shadow:0 7px 16px rgba(47,111,228,.22);
}
.leave-cal-days button.selected::after {
  background:#fff;
}

.leave-cal-foot {
  display:flex;
  justify-content:space-between;
  gap:8px;
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid #edf2f7;
}
.leave-cal-foot button {
  min-height:34px;
  padding:0 12px;
  border-radius:9px;
  font-size:.68rem;
}

.pc-brand-home {
  border:0 !important;
  background:transparent !important;
  padding:0 !important;
  box-shadow:none !important;
  cursor:pointer;
  text-align:left;
}
.pc-brand-home:hover strong,
.pc-brand-home:hover b {
  color:#2f6fe4;
}

.mobile-brand-home {
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  cursor:pointer;
}

body.dark-mode .leave-custom-calendar {
  background:#172033;
  border-color:#334155;
}
body.dark-mode .pretty-date-field {
  background:#111827;
  border-color:#334155;
}
body.dark-mode .pretty-date-field input {
  color:#f1f5f9 !important;
}
body.dark-mode .leave-cal-head strong,
body.dark-mode .leave-cal-days button {
  color:#e5edf8;
}
body.dark-mode .leave-cal-days button.outside {
  color:#64748b;
}
body.dark-mode .leave-cal-head button {
  background:#1e293b;
  border-color:#334155;
}

@media(max-width:1120px) {
  .leave-custom-calendar {
    padding:12px 10px;
  }
  .leave-cal-days button {
    border-radius:10px;
    font-size:.75rem;
  }
}


/* ===== v33 상단 로고 홈 클릭 수정 ===== */
@media (min-width:1121px) {
  .pc-brand {
    display:flex !important;
    align-items:center !important;
    gap:10px !important;
    white-space:nowrap;
  }

  .pc-brand-home {
    display:inline-flex !important;
    align-items:center !important;
    gap:9px !important;
    padding:4px 6px !important;
    margin:-4px -6px !important;
    border:0 !important;
    border-radius:10px !important;
    background:transparent !important;
    box-shadow:none !important;
    cursor:pointer;
  }

  .pc-brand-home:hover {
    background:#f1f6ff !important;
  }

  .pc-brand-home img {
    width:64px !important;
    height:54px !important;
    object-fit:contain !important;
  }

  .pc-brand-home strong {
    color:#111d31 !important;
    font-size:1.1rem !important;
    font-weight:900 !important;
    letter-spacing:-.03em !important;
  }

  .pc-brand-home:hover strong {
    color:#2f6fe4 !important;
  }

  .pc-brand > i {
    width:1px !important;
    height:24px !important;
    background:#dfe7f0 !important;
    margin:0 3px !important;
    display:block !important;
  }

  .pc-brand > b {
    font-size:1rem !important;
    font-weight:800 !important;
    color:#21304a !important;
  }
}


/* ===== v34 PC 기능별 전용 화면 ===== */
@media (min-width:1121px) {
  /* 공통: 메인 콘텐츠는 사이드바 + 한 화면 */
  body.pc-view-dashboard .dashboard-wrapper,
  body.pc-view-calendar .dashboard-wrapper,
  body.pc-view-status .dashboard-wrapper,
  body.pc-view-history .dashboard-wrapper,
  body.pc-view-apply .dashboard-wrapper,
  body.pc-view-notice .dashboard-wrapper {
    grid-template-columns:218px minmax(0,1fr) !important;
  }

  /* 대시보드: 요약 + 월간 일정표만 */
  body.pc-view-dashboard .left-col { display:flex !important; }
  body.pc-view-dashboard .right-col { display:none !important; }
  body.pc-view-dashboard #pcMetricGrid { display:grid !important; }
  body.pc-view-dashboard #cardCalendar { display:block !important; }
  body.pc-view-dashboard #cardEmpTable,
  body.pc-view-dashboard #pcRecentCard { display:none !important; }

  /* 휴가 신청 전용 */
  body.pc-view-apply .left-col { display:none !important; }
  body.pc-view-apply .right-col {
    display:block !important;
    position:static !important;
    width:100%;
    max-width:820px;
    margin:18px auto 50px;
  }
  body.pc-view-apply #cardLeaveApplyMain { display:block !important; }
  body.pc-view-apply #pcPendingCard,
  body.pc-view-apply .pc-notice-card,
  body.pc-view-apply #pcQuickEmployeeTools { display:none !important; }

  /* 월간 일정표 전용 */
  body.pc-view-calendar .left-col { display:flex !important; }
  body.pc-view-calendar .right-col { display:none !important; }
  body.pc-view-calendar #cardCalendar { display:block !important; }
  body.pc-view-calendar #pcMetricGrid { display:grid !important; }
  body.pc-view-calendar #cardEmpTable,
  body.pc-view-calendar #pcRecentCard { display:none !important; }

  /* 잔여 현황 전용 */
  body.pc-view-status .left-col { display:flex !important; }
  body.pc-view-status .right-col { display:none !important; }
  body.pc-view-status #cardEmpTable { display:block !important; }
  body.pc-view-status #pcMetricGrid,
  body.pc-view-status #cardCalendar,
  body.pc-view-status #pcRecentCard { display:none !important; }

  /* 내 신청내역 전용 */
  body.pc-view-history .left-col { display:flex !important; }
  body.pc-view-history .right-col { display:none !important; }
  body.pc-view-history #pcRecentCard { display:block !important; }
  body.pc-view-history #pcMetricGrid,
  body.pc-view-history #cardCalendar,
  body.pc-view-history #cardEmpTable { display:none !important; }

  body.pc-view-history #pcRecentCard {
    margin-top:18px;
    min-height:560px;
  }
  body.pc-view-history .pc-recent-table-wrap {
    max-height:700px;
    overflow:auto;
  }

  /* 공지사항 전용 */
  body.pc-view-notice .left-col { display:none !important; }
  body.pc-view-notice .right-col {
    display:block !important;
    position:static !important;
    width:100%;
    max-width:860px;
    margin:18px auto 50px;
  }
  body.pc-view-notice #cardLeaveApplyMain,
  body.pc-view-notice #pcPendingCard,
  body.pc-view-notice #pcQuickEmployeeTools { display:none !important; }
  body.pc-view-notice .pc-notice-card {
    display:block !important;
    min-height:260px;
    padding:28px 30px !important;
    background:linear-gradient(135deg,#fffaf1,#fff4df) !important;
    border-color:#f3d6a8 !important;
  }
  body.pc-view-notice .pc-notice-card .pc-section-head strong {
    font-size:1.25rem;
  }
  body.pc-view-notice .pc-notice-card p {
    margin-top:18px;
    font-size:1rem;
    line-height:1.8;
    color:#52657d;
  }

  /* 기존 대시보드 우측 부가카드는 일반 화면에서 숨김 */
  body:not(.pc-view-notice) .pc-notice-card { display:none !important; }
  #pcPendingCard,
  #pcQuickEmployeeTools { display:none !important; }

  /* 휴가 신청 전용 화면에서는 양옆 여백과 폼 가독성 개선 */
  body.pc-view-apply #cardLeaveApplyMain {
    border-radius:20px !important;
    box-shadow:0 18px 38px rgba(46,75,113,.08) !important;
  }

  /* 직원 잔여현황 화면 */
  body.pc-view-status #cardEmpTable {
    margin-top:18px;
    min-height:650px;
  }
  body.pc-view-status #pcEmpTableWrap {
    display:block !important;
    max-height:720px !important;
  }

  /* 관리자 승인/직원/공지 */
  .pc-approval-table { min-width:980px !important; }
  .pc-approval-actions {
    display:flex;
    gap:5px;
    white-space:nowrap;
  }
  .pc-approve-action,
  .pc-reject-action {
    min-height:30px;
    padding:0 9px;
    border-radius:7px;
    box-shadow:none;
    font-size:.61rem;
    font-weight:900;
  }
  .pc-approve-action {
    background:#e5f8ee;
    color:#168b56;
    border:1px solid #bceacf;
  }
  .pc-reject-action {
    background:#fff0f2;
    color:#d54a57;
    border:1px solid #f3c9ce;
  }

  .pc-admin-employee-form {
    display:grid;
    grid-template-columns:1fr 1.2fr 1fr auto;
    gap:9px;
    align-items:end;
  }
  .pc-admin-employee-form label > span,
  .pc-notice-manage-card label > span {
    display:block;
    margin-bottom:5px;
    font-size:.66rem;
    color:#6e8098;
    font-weight:800;
  }
  .pc-admin-employee-form select,
  .pc-admin-employee-form input {
    width:100%;
    min-height:40px;
    padding:8px 10px !important;
    border:1px solid #dde7f1 !important;
    border-radius:8px !important;
    background:#f9fbfe !important;
    font-size:.72rem !important;
  }
  .pc-admin-employee-form button {
    min-height:40px;
    padding:0 14px;
    border-radius:8px;
    font-size:.7rem;
  }
  .pc-pin-state {
    display:inline-flex;
    padding:3px 8px;
    border-radius:999px;
    font-size:.58rem;
    font-weight:900;
  }
  .pc-pin-state.ready { background:#e6f8ef;color:#158b55; }
  .pc-pin-state.empty { background:#fff0f2;color:#d24f5b; }
  .pc-employee-actions {
    display:flex;
    gap:5px;
    white-space:nowrap;
  }

  .pc-notice-manage-card textarea {
    width:100%;
    min-height:130px;
    resize:vertical;
    padding:12px 13px;
    border:1px solid #dde7f1;
    border-radius:10px;
    background:#f9fbfe;
    color:#26364e;
    font-size:.8rem;
    line-height:1.6;
  }
  .pc-notice-preview {
    margin-top:14px;
    display:flex;
    gap:12px;
    align-items:flex-start;
    padding:16px;
    border-radius:13px;
    background:linear-gradient(135deg,#fffaf1,#fff4df);
    border:1px solid #f0d9b5;
  }
  .pc-notice-preview > span { font-size:1.4rem; }
  .pc-notice-preview strong { display:block;font-size:.8rem;color:#423222; }
  .pc-notice-preview p {
    margin:5px 0 0;
    color:#6e6254;
    font-size:.72rem;
    line-height:1.6;
  }
  .pc-notice-manage-actions {
    display:flex;
    justify-content:flex-end;
    gap:8px;
    margin-top:14px;
  }

  /* 화면별로 사이드바 선택 표시 */
  body.pc-view-dashboard #pcNavDashboard,
  body.pc-view-apply #pcNavApply,
  body.pc-view-calendar #pcNavCalendar,
  body.pc-view-status #pcNavStatus,
  body.pc-view-history #pcNavHistory,
  body.pc-view-notice #pcNavNotice {
    background:linear-gradient(90deg,#dfeeff,#e8f2ff) !important;
    color:#246ee2 !important;
  }
}

@media (max-width:1380px) and (min-width:1121px) {
  .pc-admin-employee-form {
    grid-template-columns:1fr 1fr;
  }
}


/* ===== v35 평안 고정 브랜드 테마 ===== */
body,
body[data-season="default"],
body[data-season="spring"],
body[data-season="summer"],
body[data-season="autumn"],
body[data-season="winter"] {
  --primary:#14796d !important;
  --primary-hover:#0f665c !important;
  --primary-soft:#e2f3ed !important;
  --success:#2a9d6f !important;
  --success-soft:#e7f7ef !important;
  --warning:#ed9b44 !important;
  --warning-soft:#fff3df !important;
  --danger:#df5d68 !important;
  --bg:#eaf1f0 !important;
  --card:#f9fcfb !important;
  --border:#d8e5e2 !important;
  --text:#183431 !important;
  --sub:#70827e !important;
  --input-bg:#f2f7f5 !important;
  --header-bg:#edf5f2 !important;
  --hover-bg:#e8f3ef !important;

  --scene-tint:#e9f4f0 !important;
  --scene-note:#177468 !important;
  --season-surface:#edf7f3 !important;
  --season-line:#cfe4dd !important;
  --season-accent:#14796d !important;
  --season-deco1:rgba(20,121,109,.12) !important;
  --season-deco2:rgba(237,155,68,.10) !important;

  --brand-deep:#103f3c;
  --brand-deeper:#0b312f;
  --brand-teal:#14796d;
  --brand-mint:#dff2eb;
  --brand-mint-soft:#eef7f4;
  --brand-ivory:#fff7e9;
  --brand-warm:#f4a24f;
  --brand-slate:#eef3f4;
}

.theme-strip,
#homeDecorSeasonButtons {
  display:none !important;
}

.brand-theme-info {
  background:linear-gradient(135deg,#e9f6f1,#fff8ec) !important;
  border-color:#d3e7df !important;
}

body.dark-mode {
  --primary:#59b8a9 !important;
  --primary-hover:#71c8bb !important;
  --primary-soft:#193d38 !important;
  --success:#55bc87 !important;
  --success-soft:#193c2f !important;
  --warning:#e9aa62 !important;
  --warning-soft:#45331f !important;
  --danger:#ef7781 !important;
  --bg:#0d1716 !important;
  --card:#142321 !important;
  --border:#29433e !important;
  --text:#edf7f4 !important;
  --sub:#9fb7b1 !important;
  --input-bg:#10201e !important;
  --header-bg:#152824 !important;
  --hover-bg:#19312d !important;
  --scene-tint:#102522 !important;
  --scene-note:#7cc9bd !important;
  --season-surface:#132b27 !important;
  --season-line:#2a4b45 !important;
  --season-accent:#65c2b3 !important;
  --season-deco1:rgba(89,184,169,.10) !important;
  --season-deco2:rgba(233,170,98,.08) !important;
}

/* PC 브랜드 고정 */
@media (min-width:1121px) {
  body,
  body.dark-mode {
    background:
      radial-gradient(circle at 83% 3%, rgba(20,121,109,.08), transparent 23%),
      linear-gradient(180deg,#e7f0ee 0%,#edf3f2 45%,#e8efee 100%) !important;
  }

  body.dark-mode {
    background:
      radial-gradient(circle at 82% 0%,rgba(89,184,169,.08),transparent 24%),
      linear-gradient(180deg,#0c1715 0%,#101d1b 100%) !important;
  }

  .pc-topbar {
    background:rgba(247,251,249,.96) !important;
    border-bottom:1px solid #d7e5e1 !important;
    box-shadow:0 8px 24px rgba(34,74,68,.06) !important;
    backdrop-filter:blur(16px);
  }
  body.dark-mode .pc-topbar {
    background:rgba(16,32,30,.96) !important;
    border-color:#28433e !important;
  }

  .pc-brand-home:hover {
    background:#e7f3ef !important;
  }
  body.dark-mode .pc-brand-home:hover {
    background:#1b3531 !important;
  }

  .pc-global-search {
    background:#eef5f3 !important;
    border-color:#d5e3df !important;
  }
  body.dark-mode .pc-global-search {
    background:#132522 !important;
    border-color:#2b4741 !important;
  }

  .pc-brightness-btn {
    min-height:40px;
    padding:0 13px !important;
    display:inline-flex;
    align-items:center;
    gap:7px;
    border-radius:11px !important;
    border:1px solid #d8e5e1 !important;
    background:#f3f8f6 !important;
    color:#31554f !important;
    box-shadow:none !important;
    font-size:.73rem !important;
  }
  .pc-brightness-btn b {
    font-size:.69rem;
    font-weight:850;
  }
  body.dark-mode .pc-brightness-btn {
    background:#18302c !important;
    color:#d8ebe6 !important;
    border-color:#34534d !important;
  }

  .pc-admin-chip {
    background:#fff4e3 !important;
    color:#a7611d !important;
    border-color:#f1d3a6 !important;
  }

  .desktop-sidebar {
    background:
      radial-gradient(circle at 20% 92%,rgba(244,162,79,.12),transparent 28%),
      linear-gradient(180deg,#124b46 0%,#0e3c39 62%,#0b312f 100%) !important;
    border-right:0 !important;
    box-shadow:10px 0 28px rgba(26,68,62,.09) !important;
  }

  .desktop-menu-btn {
    color:#dcece8 !important;
    background:transparent !important;
    border:1px solid transparent !important;
  }
  .desktop-menu-btn span { opacity:.95; }
  .desktop-menu-btn:hover {
    background:rgba(255,255,255,.09) !important;
    color:#fff !important;
  }
  .desktop-menu-btn.active,
  body.pc-view-dashboard #pcNavDashboard,
  body.pc-view-apply #pcNavApply,
  body.pc-view-calendar #pcNavCalendar,
  body.pc-view-status #pcNavStatus,
  body.pc-view-history #pcNavHistory,
  body.pc-view-notice #pcNavNotice {
    background:linear-gradient(90deg,#dff3ec,#edf9f5) !important;
    color:#125f56 !important;
    border-color:rgba(255,255,255,.20) !important;
    box-shadow:0 10px 22px rgba(5,41,37,.15) !important;
  }

  .brand-sidebar-note {
    margin:auto 16px 20px !important;
    min-height:118px !important;
    padding:16px !important;
    border-radius:18px !important;
    background:rgba(255,255,255,.075) !important;
    border:1px solid rgba(255,255,255,.12) !important;
    color:#fff !important;
  }
  .brand-sidebar-icon {
    display:block;
    font-size:1.65rem;
    margin-bottom:7px;
  }
  .brand-sidebar-note strong {
    color:#fff !important;
    font-size:.83rem !important;
  }
  .brand-sidebar-note span:last-child {
    color:#bfd8d2 !important;
    font-size:.68rem !important;
    line-height:1.5 !important;
  }

  .left-col,
  .right-col,
  .pc-admin-main {
    background:transparent !important;
  }

  .pc-metric-card {
    border-color:rgba(93,133,126,.14) !important;
    box-shadow:0 12px 28px rgba(31,77,69,.045) !important;
  }
  .metric-blue { background:linear-gradient(135deg,#edf6f4,#e4f1ee) !important; }
  .metric-green { background:linear-gradient(135deg,#eaf7f0,#dff2e9) !important; }
  .metric-orange { background:linear-gradient(135deg,#fff7e9,#fdf0dc) !important; }
  .metric-sky { background:linear-gradient(135deg,#edf4f4,#e3eeee) !important; }
  .metric-purple { background:linear-gradient(135deg,#f1f3ef,#e9eee8) !important; }

  .card,
  #cardCalendar,
  #cardLeaveApplyMain,
  .pc-admin-card,
  .pc-admin-summary-grid > div {
    background:rgba(249,252,251,.96) !important;
    border-color:#d8e5e1 !important;
    box-shadow:0 14px 34px rgba(36,77,70,.055) !important;
  }

  #cardCalendar .calendar-grid {
    background:#f4f8f7 !important;
    border-color:#d8e5e2 !important;
  }
  #cardCalendar .cal-cell {
    background:#fbfdfc !important;
  }
  #cardCalendar .empty-cell {
    background:#eef3f2 !important;
  }

  .pc-recent-table th,
  .pc-admin-print-table th {
    background:#eaf2f0 !important;
    color:#60756f !important;
  }

  .pc-admin-console.open {
    background:#e8f0ee !important;
  }
  .pc-admin-side {
    background:linear-gradient(180deg,#123f3b,#0d322f) !important;
    border-right:0 !important;
  }
  .pc-admin-side-title strong,
  .pc-admin-side-title small,
  .pc-admin-subnav button,
  .pc-admin-help strong,
  .pc-admin-help span {
    color:#dcece8 !important;
  }
  .pc-admin-subnav button:hover,
  .pc-admin-subnav button.active {
    background:rgba(255,255,255,.11) !important;
    color:#fff !important;
  }
  .pc-admin-back {
    background:rgba(255,255,255,.08) !important;
    color:#dcece8 !important;
    border-color:rgba(255,255,255,.12) !important;
  }
  .pc-admin-help {
    background:rgba(255,255,255,.07) !important;
    border-color:rgba(255,255,255,.10) !important;
  }

  body.dark-mode .card,
  body.dark-mode #cardCalendar,
  body.dark-mode #cardLeaveApplyMain,
  body.dark-mode .pc-admin-card,
  body.dark-mode .pc-admin-summary-grid > div,
  body.dark-mode .pc-metric-card {
    background:#142321 !important;
    border-color:#29433e !important;
    color:#edf7f4 !important;
  }
  body.dark-mode #cardCalendar .calendar-grid {
    background:#0f1e1c !important;
    border-color:#29433e !important;
  }
  body.dark-mode #cardCalendar .cal-cell {
    background:#142321 !important;
  }
  body.dark-mode #cardCalendar .empty-cell {
    background:#10201e !important;
  }
}

/* 모바일 브랜드 고정 */
@media (max-width:1120px) {
  body,
  body.dark-mode {
    background:
      radial-gradient(circle at 90% 0%,rgba(20,121,109,.10),transparent 24%),
      linear-gradient(180deg,#e8f2ef 0%,#f2f5f2 48%,#eef2f1 100%) !important;
  }
  body.dark-mode {
    background:linear-gradient(180deg,#0d1816,#101d1b 100%) !important;
  }

  .mobile-home-screen {
    background:transparent !important;
  }

  .mobile-appbar,
  .mobile-page-header,
  .mobile-history-header {
    background:rgba(238,247,243,.94) !important;
    border-bottom:1px solid #d5e5df !important;
    backdrop-filter:blur(14px);
  }
  body.dark-mode .mobile-appbar,
  body.dark-mode .mobile-page-header,
  body.dark-mode .mobile-history-header {
    background:rgba(16,32,29,.95) !important;
    border-color:#29433e !important;
  }

  .mobile-appbar-icon,
  .mobile-page-header button,
  .mobile-history-header button {
    background:rgba(255,255,255,.72) !important;
    border-color:#d7e4e0 !important;
    color:#184a44 !important;
  }
  body.dark-mode .mobile-appbar-icon,
  body.dark-mode .mobile-page-header button,
  body.dark-mode .mobile-history-header button {
    background:#19312d !important;
    border-color:#35534d !important;
    color:#e4f1ed !important;
  }

  .mobile-home-hero {
    background:
      radial-gradient(circle at 90% 15%,rgba(244,162,79,.12),transparent 27%),
      linear-gradient(135deg,#e0f2eb 0%,#f7f5eb 100%) !important;
    border:1px solid #d3e5df !important;
    box-shadow:0 18px 38px -30px rgba(28,77,68,.25) !important;
  }
  .mobile-home-ribbon {
    background:rgba(255,255,255,.68) !important;
    color:#14796d !important;
    border:1px solid rgba(20,121,109,.10) !important;
  }
  .mobile-home-message > span {
    filter:none !important;
  }
  .mobile-home-quote {
    color:#b8702c !important;
  }

  .mobile-home-action {
    border:1px solid rgba(85,120,114,.12) !important;
    box-shadow:0 14px 30px -28px rgba(29,72,65,.22) !important;
  }
  .mobile-home-action.action-pink {
    background:linear-gradient(145deg,#e6f4ef,#f5faf8) !important;
  }
  .mobile-home-action.action-green {
    background:linear-gradient(145deg,#e0f1ea,#eef8f4) !important;
  }
  .mobile-home-action.action-yellow {
    background:linear-gradient(145deg,#fff6e6,#faf4e8) !important;
  }
  .mobile-home-action.action-blue {
    background:linear-gradient(145deg,#e9f0f1,#f3f7f7) !important;
  }

  .mobile-home-mini-card,
  .mobile-card,
  .mobile-apply-card,
  .mobile-history-card {
    background:rgba(249,252,251,.94) !important;
    border-color:#d8e5e1 !important;
    box-shadow:0 14px 30px -28px rgba(28,72,65,.20) !important;
  }

  .mobile-home-stats div {
    background:linear-gradient(180deg,#edf5f2,#e8f0ee) !important;
  }

  .mobile-season-footer {
    background:linear-gradient(135deg,#dff1ea,#fff6e8) !important;
    border:1px solid #d4e6df !important;
    color:#166d63 !important;
  }

  .mobile-menu-drawer {
    background:#f3f8f6 !important;
  }
  .mobile-menu-head,
  .mobile-menu-status {
    border-color:#d7e4e0 !important;
  }
  .mobile-menu-list button:hover,
  .mobile-menu-list button:active {
    background:#e4f2ed !important;
  }
  .mobile-admin-toggle {
    background:linear-gradient(135deg,#e4f3ee,#fff4e2) !important;
    border-color:#d3e4dc !important;
  }

  body.dark-mode .mobile-home-hero,
  body.dark-mode .mobile-home-mini-card,
  body.dark-mode .mobile-card,
  body.dark-mode .mobile-apply-card,
  body.dark-mode .mobile-history-card {
    background:#142321 !important;
    border-color:#29433e !important;
  }
  body.dark-mode .mobile-home-action.action-pink,
  body.dark-mode .mobile-home-action.action-green,
  body.dark-mode .mobile-home-action.action-yellow,
  body.dark-mode .mobile-home-action.action-blue {
    background:#162725 !important;
    border-color:#29443f !important;
  }
  body.dark-mode .mobile-home-stats div {
    background:#10201e !important;
  }
  body.dark-mode .mobile-season-footer {
    background:linear-gradient(135deg,#18332e,#2b2a20) !important;
    border-color:#36554e !important;
    color:#8ed1c6 !important;
  }
  body.dark-mode .mobile-menu-drawer {
    background:#10201e !important;
  }
}

/* 홈 꾸미기 미리보기도 브랜드 색상 고정 */
.decor-preview-hero {
  background:
    radial-gradient(circle at 90% 20%,rgba(244,162,79,.10),transparent 24%),
    linear-gradient(135deg,#e3f3ed,#fff8eb) !important;
  border-color:#d5e6e0 !important;
}
.decor-preview-ribbon {
  color:#14796d !important;
}
.decor-preview-quote {
  color:#a96628 !important;
}


/* ===== v36 소프트 네이비 브랜드 테마 ===== */
body,
body[data-season="default"],
body[data-season="spring"],
body[data-season="summer"],
body[data-season="autumn"],
body[data-season="winter"] {
  --primary:#4f7f8f !important;
  --primary-hover:#3f6e7d !important;
  --primary-soft:#e6eff2 !important;
  --success:#4c9b78 !important;
  --success-soft:#e9f4ee !important;
  --warning:#e4a05d !important;
  --warning-soft:#fff3e5 !important;
  --danger:#d96772 !important;

  --bg:#edf2f6 !important;
  --card:#f8fafc !important;
  --border:#d8e1ea !important;
  --text:#233247 !important;
  --sub:#748296 !important;
  --input-bg:#eef3f7 !important;
  --header-bg:#e8eef4 !important;
  --hover-bg:#e9f0f5 !important;

  --scene-tint:#edf2f6 !important;
  --scene-note:#4f7180 !important;
  --season-surface:#eef3f6 !important;
  --season-line:#d9e3e9 !important;
  --season-accent:#4f7f8f !important;
  --season-deco1:rgba(79,127,143,.10) !important;
  --season-deco2:rgba(228,160,93,.10) !important;

  --brand-deep:#26364a !important;
  --brand-deeper:#1d2a3a !important;
  --brand-teal:#4f7f8f !important;
  --brand-mint:#e4eef1 !important;
  --brand-mint-soft:#eff4f7 !important;
  --brand-ivory:#fff6e8 !important;
  --brand-warm:#e4a05d !important;
  --brand-slate:#e8edf3 !important;

  color-scheme:light;
}

body.dark-mode {
  --primary:#70a7b3 !important;
  --primary-hover:#83b7c1 !important;
  --primary-soft:#243847 !important;
  --success:#68b18f !important;
  --success-soft:#21392f !important;
  --warning:#e6ae70 !important;
  --warning-soft:#3d3123 !important;
  --danger:#e37c86 !important;

  --bg:#101722 !important;
  --card:#182232 !important;
  --border:#2d3a4d !important;
  --text:#eef3f8 !important;
  --sub:#a5b0c0 !important;
  --input-bg:#202b3c !important;
  --header-bg:#1d2838 !important;
  --hover-bg:#223044 !important;

  --scene-tint:#182230 !important;
  --scene-note:#86aebb !important;
  --season-surface:#192433 !important;
  --season-line:#2d3d50 !important;
  --season-accent:#70a7b3 !important;
  --season-deco1:rgba(112,167,179,.10) !important;
  --season-deco2:rgba(230,174,112,.08) !important;

  color-scheme:dark;
}

/* ---------- PC ---------- */
@media (min-width:1121px) {
  body {
    background:
      radial-gradient(circle at 84% 4%, rgba(79,127,143,.07), transparent 24%),
      linear-gradient(180deg,#e8eef3 0%,#eef3f6 48%,#e9eef3 100%) !important;
  }

  body.dark-mode {
    background:
      radial-gradient(circle at 84% 2%, rgba(112,167,179,.07), transparent 25%),
      linear-gradient(180deg,#101722 0%,#121b28 100%) !important;
  }

  .pc-topbar {
    background:rgba(248,250,252,.96) !important;
    border-bottom:1px solid #dbe3eb !important;
    box-shadow:0 8px 22px rgba(38,56,78,.045) !important;
  }
  body.dark-mode .pc-topbar {
    background:rgba(17,25,37,.97) !important;
    border-color:#2d394b !important;
  }

  .pc-brand-home:hover {
    background:#eaf0f5 !important;
  }
  body.dark-mode .pc-brand-home:hover {
    background:#1d2a3b !important;
  }

  .pc-global-search {
    background:#eef3f7 !important;
    border-color:#d9e2eb !important;
  }
  body.dark-mode .pc-global-search {
    background:#1c2737 !important;
    border-color:#334156 !important;
  }
  body.dark-mode .pc-global-search input {
    color:#eef3f8 !important;
  }

  .pc-brightness-btn {
    background:#eef3f7 !important;
    color:#445a70 !important;
    border-color:#d7e0e9 !important;
  }
  body.dark-mode .pc-brightness-btn {
    background:#1e2b3c !important;
    color:#d9e3ed !important;
    border-color:#344358 !important;
  }

  /* 사이드바: 녹색 -> 소프트 네이비 */
  .desktop-sidebar {
    background:
      radial-gradient(circle at 24% 94%, rgba(228,160,93,.11), transparent 28%),
      linear-gradient(180deg,#2c3e55 0%,#25364b 58%,#1f2e40 100%) !important;
    box-shadow:10px 0 28px rgba(30,44,62,.08) !important;
  }

  .desktop-menu-btn {
    color:#dce5ee !important;
  }
  .desktop-menu-btn:hover {
    background:rgba(255,255,255,.08) !important;
    color:#fff !important;
  }
  .desktop-menu-btn.active,
  body.pc-view-dashboard #pcNavDashboard,
  body.pc-view-apply #pcNavApply,
  body.pc-view-calendar #pcNavCalendar,
  body.pc-view-status #pcNavStatus,
  body.pc-view-history #pcNavHistory,
  body.pc-view-notice #pcNavNotice {
    background:linear-gradient(90deg,#edf3f7,#f7fafc) !important;
    color:#355d70 !important;
    border-color:rgba(255,255,255,.20) !important;
    box-shadow:0 10px 22px rgba(20,30,45,.13) !important;
  }

  .brand-sidebar-note {
    background:rgba(255,255,255,.07) !important;
    border-color:rgba(255,255,255,.11) !important;
  }
  .brand-sidebar-note strong { color:#fff !important; }
  .brand-sidebar-note span:last-child { color:#c8d2de !important; }

  /* 요약 카드: 더 중립적인 파스텔 */
  .metric-blue   { background:linear-gradient(135deg,#eef4f8,#e8eff5) !important; }
  .metric-green  { background:linear-gradient(135deg,#edf5f1,#e8f1ed) !important; }
  .metric-orange { background:linear-gradient(135deg,#fff6ea,#f9efe1) !important; }
  .metric-sky    { background:linear-gradient(135deg,#eef3f7,#e8eef4) !important; }
  .metric-purple { background:linear-gradient(135deg,#f2eff6,#eceaf2) !important; }

  .card,
  #cardCalendar,
  #cardLeaveApplyMain,
  .pc-admin-card,
  .pc-admin-summary-grid > div {
    background:#f8fafc !important;
    border-color:#dbe3eb !important;
    box-shadow:0 14px 32px rgba(38,57,80,.045) !important;
  }

  /* 흰색으로 튀던 요소들을 라이트톤에서 약간 회색/블루로 */
  .pc-recent-table-wrap,
  .pc-admin-print-table-wrap,
  #pcEmpTableWrap {
    background:#f2f6f9 !important;
    border-color:#dbe4ec !important;
  }

  .pc-recent-table th,
  .pc-admin-print-table th,
  #empTable th {
    background:#e9eff4 !important;
    color:#5f7084 !important;
    border-color:#d9e2eb !important;
  }

  .pc-recent-table td,
  .pc-admin-print-table td,
  #empTable td {
    background:#f8fafc !important;
    border-color:#e2e8ef !important;
  }

  #cardCalendar .calendar-grid {
    background:#e8eef3 !important;
    border-color:#d9e2ea !important;
  }
  #cardCalendar .cal-cell {
    background:#f9fbfc !important;
    border-color:#e2e8ee !important;
  }
  #cardCalendar .empty-cell {
    background:#eef2f5 !important;
  }
  #cardCalendar .holiday-cell {
    background:#fff3f2 !important;
  }

  /* 신청폼: 순백 제거 */
  #cardLeaveApplyMain > .side-profile-header,
  #cardLeaveApplyMain input,
  #cardLeaveApplyMain textarea,
  #cardLeaveApplyMain select,
  #cardLeaveApplyMain .modal-trigger-btn,
  #cardLeaveApplyMain .date-mode-toggle,
  #cardLeaveApplyMain .apply-sig-box,
  #cardLeaveApplyMain .apply-sig-canvas-wrap {
    background:#eef3f7 !important;
    border-color:#d8e2eb !important;
    color:#26364a !important;
  }

  #cardLeaveApplyMain input::placeholder,
  #cardLeaveApplyMain textarea::placeholder {
    color:#8d9aac !important;
  }

  #cardLeaveApplyMain .leave-type-chip {
    background:#edf2f6 !important;
    border-color:#d9e1e9 !important;
  }

  #cardLeaveApplyMain .leave-type-chip.active {
    background:#4f7f8f !important;
    color:#fff !important;
    border-color:#4f7f8f !important;
  }

  #cardLeaveApplyMain .leave-type-chip.leave-more {
    background:#e6eef2 !important;
    color:#4b6f7f !important;
  }

  #cardLeaveApplyMain > div[style*="margin-top: 12px"] > button[onclick="submitLeave()"] {
    background:linear-gradient(90deg,#5d8e9b,#4c7887) !important;
    box-shadow:0 8px 18px rgba(79,127,143,.15) !important;
  }

  .pc-form-shortcuts button {
    background:#edf2f6 !important;
    color:#66778b !important;
    border-color:#dbe3eb !important;
  }

  /* 라이트 모드 서명창도 순백 제거 */
  .apply-sig-canvas-wrap,
  #applySigCanvas {
    background:#eef3f7 !important;
  }

  /* 관리자 화면도 네이비 계열 */
  .pc-admin-console.open {
    background:#e9eef3 !important;
  }
  .pc-admin-side {
    background:linear-gradient(180deg,#2b3b51,#223146) !important;
  }
  .pc-admin-subnav button:hover,
  .pc-admin-subnav button.active {
    background:rgba(255,255,255,.10) !important;
    color:#fff !important;
  }

  /* ---------- PC 다크모드: 흰색 강제값 전부 무효화 ---------- */
  body.dark-mode .card,
  body.dark-mode #cardCalendar,
  body.dark-mode #cardLeaveApplyMain,
  body.dark-mode .pc-admin-card,
  body.dark-mode .pc-admin-summary-grid > div,
  body.dark-mode .pc-metric-card,
  body.dark-mode #pcRecentCard {
    background:#182232 !important;
    border-color:#2d3a4d !important;
    color:#eef3f8 !important;
  }

  body.dark-mode .metric-blue,
  body.dark-mode .metric-green,
  body.dark-mode .metric-orange,
  body.dark-mode .metric-sky,
  body.dark-mode .metric-purple {
    background:linear-gradient(145deg,#1b2738,#182332) !important;
  }

  body.dark-mode .pc-metric-card small,
  body.dark-mode .pc-metric-card em,
  body.dark-mode .pc-section-head button {
    color:#9eabbc !important;
  }
  body.dark-mode .pc-metric-card strong,
  body.dark-mode .pc-section-head strong,
  body.dark-mode .card-header h2 {
    color:#eef3f8 !important;
  }

  body.dark-mode #cardCalendar .calendar-grid {
    background:#111a27 !important;
    border-color:#303e52 !important;
  }
  body.dark-mode #cardCalendar .cal-cell {
    background:#192536 !important;
    border-color:#29374a !important;
  }
  body.dark-mode #cardCalendar .empty-cell {
    background:#151f2d !important;
  }
  body.dark-mode #cardCalendar .holiday-cell {
    background:#352329 !important;
  }
  body.dark-mode #cardCalendar .cal-day-num {
    color:#edf2f7 !important;
  }

  body.dark-mode .pc-recent-table-wrap,
  body.dark-mode .pc-admin-print-table-wrap,
  body.dark-mode #pcEmpTableWrap {
    background:#121b28 !important;
    border-color:#2e3a4d !important;
  }

  body.dark-mode .pc-recent-table th,
  body.dark-mode .pc-admin-print-table th,
  body.dark-mode #empTable th {
    background:#202b3b !important;
    color:#a9b5c5 !important;
    border-color:#334154 !important;
  }

  body.dark-mode .pc-recent-table td,
  body.dark-mode .pc-admin-print-table td,
  body.dark-mode #empTable td {
    background:#182333 !important;
    color:#e6edf5 !important;
    border-color:#2c394b !important;
  }

  body.dark-mode #cardLeaveApplyMain > .side-profile-header,
  body.dark-mode #cardLeaveApplyMain input,
  body.dark-mode #cardLeaveApplyMain textarea,
  body.dark-mode #cardLeaveApplyMain select,
  body.dark-mode #cardLeaveApplyMain .modal-trigger-btn,
  body.dark-mode #cardLeaveApplyMain .date-mode-toggle,
  body.dark-mode #cardLeaveApplyMain .apply-sig-box,
  body.dark-mode #cardLeaveApplyMain .apply-sig-canvas-wrap,
  body.dark-mode #applySigCanvas {
    background:#202b3c !important;
    border-color:#334257 !important;
    color:#edf3f8 !important;
  }

  body.dark-mode #cardLeaveApplyMain input::placeholder,
  body.dark-mode #cardLeaveApplyMain textarea::placeholder,
  body.dark-mode .apply-sig-placeholder {
    color:#94a3b8 !important;
  }

  body.dark-mode #cardLeaveApplyMain .leave-type-chip {
    background:#202b3b !important;
    color:#b6c2cf !important;
    border-color:#334154 !important;
  }

  body.dark-mode #cardLeaveApplyMain .leave-type-chip.active {
    background:#5e94a1 !important;
    color:#fff !important;
    border-color:#5e94a1 !important;
  }

  body.dark-mode #cardLeaveApplyMain .leave-type-chip.leave-more {
    background:#26384a !important;
    color:#9ec4ce !important;
  }

  body.dark-mode .pc-form-shortcuts button {
    background:#1e2a3a !important;
    color:#aeb9c7 !important;
    border-color:#334154 !important;
  }

  body.dark-mode .pc-type-pill {
    background:#20344b !important;
    color:#8bb4ff !important;
  }

  body.dark-mode .pc-status-pill.approved {
    background:#20392f !important;
    color:#79c99e !important;
  }

  body.dark-mode .pc-status-pill.pending {
    background:#413321 !important;
    color:#eab56d !important;
  }

  body.dark-mode .pc-admin-console.open {
    background:#111925 !important;
  }
}

/* ---------- 모바일 ---------- */
@media (max-width:1120px) {
  body {
    background:
      radial-gradient(circle at 92% 0%,rgba(79,127,143,.07),transparent 24%),
      linear-gradient(180deg,#e9eef3 0%,#f2f5f7 50%,#edf1f4 100%) !important;
  }

  body.dark-mode {
    background:
      radial-gradient(circle at 92% 0%,rgba(112,167,179,.06),transparent 24%),
      linear-gradient(180deg,#101722 0%,#121b28 100%) !important;
  }

  .mobile-appbar,
  .mobile-page-header,
  .mobile-history-header {
    background:rgba(240,244,247,.95) !important;
    border-bottom:1px solid #d9e1e8 !important;
  }

  body.dark-mode .mobile-appbar,
  body.dark-mode .mobile-page-header,
  body.dark-mode .mobile-history-header {
    background:rgba(18,27,40,.96) !important;
    border-color:#2e3c50 !important;
  }

  .mobile-appbar-icon,
  .mobile-page-header button,
  .mobile-history-header button {
    background:#eef3f7 !important;
    border-color:#d9e1e8 !important;
    color:#3d6070 !important;
  }

  body.dark-mode .mobile-appbar-icon,
  body.dark-mode .mobile-page-header button,
  body.dark-mode .mobile-history-header button {
    background:#202c3d !important;
    border-color:#354459 !important;
    color:#dce6ef !important;
  }

  .mobile-home-hero {
    background:
      radial-gradient(circle at 90% 15%,rgba(228,160,93,.11),transparent 27%),
      linear-gradient(135deg,#e8f0f3 0%,#f6f1e9 100%) !important;
    border-color:#d8e2e8 !important;
  }

  .mobile-home-ribbon {
    background:rgba(248,250,252,.74) !important;
    color:#4c7180 !important;
    border-color:#dce5eb !important;
  }

  .mobile-home-quote {
    color:#a66a32 !important;
  }

  .mobile-home-action.action-pink {
    background:linear-gradient(145deg,#eef2f5,#f8fafc) !important;
  }
  .mobile-home-action.action-green {
    background:linear-gradient(145deg,#e9f1f0,#f4f8f7) !important;
  }
  .mobile-home-action.action-yellow {
    background:linear-gradient(145deg,#fff5e7,#faf2e8) !important;
  }
  .mobile-home-action.action-blue {
    background:linear-gradient(145deg,#e9eff6,#f4f7fa) !important;
  }

  .mobile-home-mini-card,
  .mobile-card,
  .mobile-apply-card,
  .mobile-history-card {
    background:#f8fafc !important;
    border-color:#d9e2ea !important;
  }

  .mobile-home-stats div {
    background:linear-gradient(180deg,#edf2f6,#e8edf2) !important;
  }

  .mobile-season-footer {
    background:linear-gradient(135deg,#e7eef2,#fff5e7) !important;
    border-color:#d9e3e8 !important;
    color:#4d6f7d !important;
  }

  .mobile-menu-drawer {
    background:#f1f4f7 !important;
  }

  .mobile-admin-toggle {
    background:linear-gradient(135deg,#edf2f5,#fff4e5) !important;
    border-color:#d9e2e8 !important;
  }

  /* 모바일 폼의 흰색도 없앰 */
  .mobile-apply-card input,
  .mobile-apply-card textarea,
  .mobile-apply-card select,
  .mobile-apply-card .modal-trigger-btn,
  .mobile-apply-card .apply-sig-box,
  .mobile-apply-card .apply-sig-canvas-wrap,
  .mobile-history-card,
  .mobile-simple-balance {
    background:#eef3f7 !important;
    border-color:#d8e2ea !important;
  }

  .mobile-apply-card .apply-sig-canvas-wrap,
  .mobile-apply-card #applySigCanvas {
    background:#eef3f7 !important;
  }

  body.dark-mode .mobile-home-hero,
  body.dark-mode .mobile-home-mini-card,
  body.dark-mode .mobile-card,
  body.dark-mode .mobile-apply-card,
  body.dark-mode .mobile-history-card {
    background:#182232 !important;
    border-color:#2e3b4e !important;
  }

  body.dark-mode .mobile-home-action.action-pink,
  body.dark-mode .mobile-home-action.action-green,
  body.dark-mode .mobile-home-action.action-yellow,
  body.dark-mode .mobile-home-action.action-blue {
    background:#1a2636 !important;
    border-color:#2f3d50 !important;
  }

  body.dark-mode .mobile-home-stats div {
    background:#202b3a !important;
  }

  body.dark-mode .mobile-season-footer {
    background:linear-gradient(135deg,#1c2a39,#332b23) !important;
    border-color:#354459 !important;
    color:#9fb8c1 !important;
  }

  body.dark-mode .mobile-menu-drawer {
    background:#141e2c !important;
  }

  body.dark-mode .mobile-apply-card input,
  body.dark-mode .mobile-apply-card textarea,
  body.dark-mode .mobile-apply-card select,
  body.dark-mode .mobile-apply-card .modal-trigger-btn,
  body.dark-mode .mobile-apply-card .apply-sig-box,
  body.dark-mode .mobile-apply-card .apply-sig-canvas-wrap,
  body.dark-mode .mobile-apply-card #applySigCanvas,
  body.dark-mode .mobile-simple-balance {
    background:#202b3c !important;
    border-color:#334257 !important;
    color:#eef3f8 !important;
  }
}

/* 모달/날짜 수정도 너무 하얗게 뜨지 않도록 */
.modal-box,
.leave-custom-calendar,
.proxy-manual-entry {
  background:#f8fafc !important;
  border-color:#d9e2ea !important;
}
.pretty-date-field {
  background:#eef3f7 !important;
  border-color:#d9e2ea !important;
}
body.dark-mode .modal-box,
body.dark-mode .leave-custom-calendar,
body.dark-mode .proxy-manual-entry {
  background:#182232 !important;
  border-color:#2f3d50 !important;
}
body.dark-mode .pretty-date-field {
  background:#202b3c !important;
  border-color:#334257 !important;
}


/* ===== v37 파스텔 핑크 + 화이트 브랜드 테마 ===== */
body,
body[data-season="default"],
body[data-season="spring"],
body[data-season="summer"],
body[data-season="autumn"],
body[data-season="winter"] {
  --primary:#d9668a !important;
  --primary-hover:#c65378 !important;
  --primary-soft:#fdebf1 !important;

  --success:#56a883 !important;
  --success-soft:#eaf6f0 !important;
  --warning:#e7a15c !important;
  --warning-soft:#fff3e6 !important;
  --danger:#d95f6d !important;

  --bg:#f8f3f5 !important;
  --card:#fffdfd !important;
  --border:#eadde2 !important;
  --text:#263247 !important;
  --sub:#69758a !important;
  --input-bg:#fbf7f9 !important;
  --header-bg:#f8eef2 !important;
  --hover-bg:#f9edf2 !important;

  --scene-tint:#f9eff3 !important;
  --scene-note:#a94f70 !important;
  --season-surface:#fff6f8 !important;
  --season-line:#eadce2 !important;
  --season-accent:#d9668a !important;
  --season-deco1:rgba(217,102,138,.10) !important;
  --season-deco2:rgba(231,161,92,.09) !important;

  --brand-deep:#384256 !important;
  --brand-deeper:#2c3546 !important;
  --brand-teal:#789ba3 !important;
  --brand-mint:#edf6f3 !important;
  --brand-mint-soft:#f3f8f6 !important;
  --brand-ivory:#fff8ee !important;
  --brand-warm:#e7a15c !important;
  --brand-slate:#eef1f5 !important;

  color-scheme:light;
}

body.dark-mode {
  --primary:#f08eaa !important;
  --primary-hover:#f4a4bb !important;
  --primary-soft:#442936 !important;

  --success:#7bc29d !important;
  --success-soft:#24392f !important;
  --warning:#ebb374 !important;
  --warning-soft:#433526 !important;
  --danger:#ef8792 !important;

  --bg:#18171d !important;
  --card:#24232b !important;
  --border:#3a3743 !important;
  --text:#fff7fa !important;
  --sub:#c9bcc4 !important;
  --input-bg:#2b2933 !important;
  --header-bg:#2c2932 !important;
  --hover-bg:#34303b !important;

  --scene-tint:#28252e !important;
  --scene-note:#f0a1b7 !important;
  --season-surface:#2d2933 !important;
  --season-line:#403a47 !important;
  --season-accent:#f08eaa !important;
  --season-deco1:rgba(240,142,170,.11) !important;
  --season-deco2:rgba(235,179,116,.08) !important;

  color-scheme:dark;
}

/* 공통 텍스트 가독성 */
body,
button,
input,
select,
textarea,
table {
  font-weight:500;
}
.card-header h2,
.pc-section-head strong,
.pc-admin-page-head h1,
.mobile-home-action strong,
.mobile-step-label,
.side-profile-header strong,
.desktop-menu-btn b {
  color:#263247 !important;
}
body.dark-mode .card-header h2,
body.dark-mode .pc-section-head strong,
body.dark-mode .pc-admin-page-head h1,
body.dark-mode .mobile-home-action strong,
body.dark-mode .mobile-step-label,
body.dark-mode .side-profile-header strong,
body.dark-mode .desktop-menu-btn b {
  color:#fff8fb !important;
}

/* 연하고 안 보이던 설명 텍스트를 전체적으로 진하게 */
.mobile-apply-title span,
.pc-metric-card small,
.pc-metric-card em,
.pc-admin-page-head p,
.pc-admin-card-head span,
.pc-print-selected-caption span,
#cardLeaveApplyMain label,
#cardLeaveApplyMain .mobile-step-label,
#cardLeaveApplyMain .mobile-apply-title span,
.mobile-home-action span,
.mobile-home-card-sub,
.mobile-history-card span,
.side-stat-title,
#dSubInfo,
.pc-user-chip small {
  color:#667287 !important;
}
body.dark-mode .mobile-apply-title span,
body.dark-mode .pc-metric-card small,
body.dark-mode .pc-metric-card em,
body.dark-mode .pc-admin-page-head p,
body.dark-mode .pc-admin-card-head span,
body.dark-mode .pc-print-selected-caption span,
body.dark-mode #cardLeaveApplyMain label,
body.dark-mode #cardLeaveApplyMain .mobile-step-label,
body.dark-mode #cardLeaveApplyMain .mobile-apply-title span,
body.dark-mode .mobile-home-action span,
body.dark-mode .mobile-home-card-sub,
body.dark-mode .mobile-history-card span,
body.dark-mode .side-stat-title,
body.dark-mode #dSubInfo,
body.dark-mode .pc-user-chip small {
  color:#d2c7ce !important;
}

/* ---------- PC ---------- */
@media (min-width:1121px) {
  body {
    background:
      radial-gradient(circle at 87% 3%, rgba(217,102,138,.075), transparent 24%),
      radial-gradient(circle at 10% 92%, rgba(231,161,92,.06), transparent 22%),
      linear-gradient(180deg,#f7f1f4 0%,#faf7f8 48%,#f4f1f4 100%) !important;
  }

  body.dark-mode {
    background:
      radial-gradient(circle at 86% 2%, rgba(240,142,170,.065), transparent 24%),
      linear-gradient(180deg,#19171e 0%,#1c1a22 100%) !important;
  }

  /* 상단 */
  .pc-topbar {
    background:rgba(255,252,253,.97) !important;
    border-bottom:1px solid #eadfe3 !important;
    box-shadow:0 8px 24px rgba(78,55,66,.045) !important;
  }
  body.dark-mode .pc-topbar {
    background:rgba(31,29,36,.97) !important;
    border-color:#3b3742 !important;
  }

  .pc-global-search {
    background:#faf5f7 !important;
    border-color:#eadfe3 !important;
  }
  .pc-global-search input {
    color:#334057 !important;
  }
  .pc-global-search input::placeholder {
    color:#8b8791 !important;
    opacity:1 !important;
  }
  body.dark-mode .pc-global-search {
    background:#292731 !important;
    border-color:#403c48 !important;
  }
  body.dark-mode .pc-global-search input {
    color:#fff7fa !important;
  }
  body.dark-mode .pc-global-search input::placeholder {
    color:#b9adb5 !important;
  }

  .pc-brightness-btn {
    background:#faf4f6 !important;
    color:#66515c !important;
    border-color:#eadce2 !important;
  }
  body.dark-mode .pc-brightness-btn {
    background:#302d37 !important;
    color:#f2e6eb !important;
    border-color:#494450 !important;
  }

  /* 사이드바: 핑크가 아니라 차분한 로즈-네이비 */
  .desktop-sidebar {
    background:
      radial-gradient(circle at 22% 91%, rgba(231,161,92,.11), transparent 27%),
      linear-gradient(180deg,#4a4050 0%,#403846 58%,#372f3d 100%) !important;
    box-shadow:10px 0 28px rgba(61,44,56,.075) !important;
  }

  .desktop-menu-btn {
    color:#f1e9ed !important;
  }
  .desktop-menu-btn:hover {
    background:rgba(255,255,255,.085) !important;
    color:#fff !important;
  }
  .desktop-menu-btn.active,
  body.pc-view-dashboard #pcNavDashboard,
  body.pc-view-apply #pcNavApply,
  body.pc-view-calendar #pcNavCalendar,
  body.pc-view-status #pcNavStatus,
  body.pc-view-history #pcNavHistory,
  body.pc-view-notice #pcNavNotice {
    background:linear-gradient(90deg,#fff3f7,#fffdfd) !important;
    color:#b94f75 !important;
    border-color:rgba(255,255,255,.24) !important;
    box-shadow:0 10px 22px rgba(44,31,40,.12) !important;
  }
  .desktop-menu-btn.active b,
  body.pc-view-dashboard #pcNavDashboard b,
  body.pc-view-apply #pcNavApply b,
  body.pc-view-calendar #pcNavCalendar b,
  body.pc-view-status #pcNavStatus b,
  body.pc-view-history #pcNavHistory b,
  body.pc-view-notice #pcNavNotice b {
    color:#a94569 !important;
  }

  .brand-sidebar-note {
    background:rgba(255,255,255,.08) !important;
    border-color:rgba(255,255,255,.13) !important;
  }
  .brand-sidebar-note strong { color:#fff !important; }
  .brand-sidebar-note span:last-child { color:#eadde4 !important; }

  /* 요약 카드 */
  .pc-metric-card {
    border-color:#eadfe4 !important;
    box-shadow:0 12px 28px rgba(93,58,76,.045) !important;
  }
  .metric-blue   { background:linear-gradient(135deg,#f1f4fa,#edf1f7) !important; }
  .metric-green  { background:linear-gradient(135deg,#eef7f3,#e8f3ee) !important; }
  .metric-orange { background:linear-gradient(135deg,#fff7ec,#fff1e2) !important; }
  .metric-sky    { background:linear-gradient(135deg,#f1f5f8,#ecf1f5) !important; }
  .metric-purple { background:linear-gradient(135deg,#f7eff5,#f2eaf1) !important; }

  .pc-metric-card strong {
    color:#243146 !important;
  }

  .card,
  #cardCalendar,
  #cardLeaveApplyMain,
  .pc-admin-card,
  .pc-admin-summary-grid > div {
    background:rgba(255,253,253,.97) !important;
    border-color:#e9dee3 !important;
    box-shadow:0 14px 34px rgba(74,48,61,.045) !important;
  }

  /* 표/달력: 흰색은 유지하되 차갑지 않게 */
  .pc-recent-table-wrap,
  .pc-admin-print-table-wrap,
  #pcEmpTableWrap {
    background:#faf6f8 !important;
    border-color:#eadfe4 !important;
  }
  .pc-recent-table th,
  .pc-admin-print-table th,
  #empTable th {
    background:#f7edf1 !important;
    color:#5d6575 !important;
    border-color:#e8dde2 !important;
  }
  .pc-recent-table td,
  .pc-admin-print-table td,
  #empTable td {
    background:#fffdfd !important;
    color:#344056 !important;
    border-color:#eee4e8 !important;
  }

  #cardCalendar .calendar-grid {
    background:#f3e9ee !important;
    border-color:#e7dce1 !important;
  }
  #cardCalendar .cal-cell {
    background:#fffdfd !important;
    border-color:#eee5e9 !important;
  }
  #cardCalendar .empty-cell {
    background:#f7f1f4 !important;
  }
  #cardCalendar .holiday-cell {
    background:#fff2f3 !important;
  }
  #cardCalendar .cal-day-num {
    color:#2d394e !important;
  }

  /* 신청폼: 가독성 우선 */
  #cardLeaveApplyMain > .side-profile-header,
  #cardLeaveApplyMain input,
  #cardLeaveApplyMain textarea,
  #cardLeaveApplyMain select,
  #cardLeaveApplyMain .modal-trigger-btn,
  #cardLeaveApplyMain .date-mode-toggle,
  #cardLeaveApplyMain .apply-sig-box,
  #cardLeaveApplyMain .apply-sig-canvas-wrap,
  #applySigCanvas {
    background:#fbf6f8 !important;
    border-color:#e6dbe0 !important;
    color:#29364c !important;
  }

  #cardLeaveApplyMain input::placeholder,
  #cardLeaveApplyMain textarea::placeholder {
    color:#807b86 !important;
    opacity:1 !important;
  }

  #cardLeaveApplyMain .leave-type-chip {
    background:#faf5f7 !important;
    border-color:#e8dfe3 !important;
    color:#4e596d !important;
  }
  #cardLeaveApplyMain .leave-type-chip.active {
    background:linear-gradient(90deg,#df7898,#d76588) !important;
    color:#fff !important;
    border-color:#d76588 !important;
    box-shadow:0 7px 14px rgba(217,102,138,.15) !important;
  }
  #cardLeaveApplyMain .leave-type-chip.leave-more {
    background:#f3edf1 !important;
    color:#846276 !important;
  }

  #cardLeaveApplyMain > div[style*="margin-top: 12px"] > button[onclick="submitLeave()"] {
    background:linear-gradient(90deg,#df7898,#d76588) !important;
    color:#fff !important;
    box-shadow:0 8px 18px rgba(217,102,138,.16) !important;
  }

  .pc-form-shortcuts button {
    background:#faf5f7 !important;
    color:#675c68 !important;
    border-color:#e8dde2 !important;
  }

  /* 관리자 화면 */
  .pc-admin-console.open {
    background:#f5eff2 !important;
  }
  .pc-admin-side {
    background:linear-gradient(180deg,#493f4f,#39323f) !important;
  }

  /* ---------- PC 다크모드: 모든 글자 대비 강화 ---------- */
  body.dark-mode .card,
  body.dark-mode #cardCalendar,
  body.dark-mode #cardLeaveApplyMain,
  body.dark-mode .pc-admin-card,
  body.dark-mode .pc-admin-summary-grid > div,
  body.dark-mode .pc-metric-card,
  body.dark-mode #pcRecentCard {
    background:#24232b !important;
    border-color:#3b3844 !important;
    color:#fff7fa !important;
  }

  body.dark-mode .metric-blue,
  body.dark-mode .metric-green,
  body.dark-mode .metric-orange,
  body.dark-mode .metric-sky,
  body.dark-mode .metric-purple {
    background:linear-gradient(145deg,#292731,#24232b) !important;
  }

  body.dark-mode .pc-metric-card strong,
  body.dark-mode .pc-section-head strong,
  body.dark-mode .card-header h2 {
    color:#fff9fb !important;
  }
  body.dark-mode .pc-metric-card small,
  body.dark-mode .pc-metric-card em,
  body.dark-mode .pc-section-head button {
    color:#cfc4ca !important;
  }

  body.dark-mode #cardCalendar .calendar-grid {
    background:#1d1b22 !important;
    border-color:#403b48 !important;
  }
  body.dark-mode #cardCalendar .cal-cell {
    background:#292731 !important;
    border-color:#383541 !important;
  }
  body.dark-mode #cardCalendar .empty-cell {
    background:#232129 !important;
  }
  body.dark-mode #cardCalendar .holiday-cell {
    background:#3a272e !important;
  }
  body.dark-mode #cardCalendar .cal-day-num {
    color:#fff7fa !important;
  }

  body.dark-mode .pc-recent-table-wrap,
  body.dark-mode .pc-admin-print-table-wrap,
  body.dark-mode #pcEmpTableWrap {
    background:#1d1b22 !important;
    border-color:#3d3945 !important;
  }
  body.dark-mode .pc-recent-table th,
  body.dark-mode .pc-admin-print-table th,
  body.dark-mode #empTable th {
    background:#302d37 !important;
    color:#d9cfd4 !important;
    border-color:#45404c !important;
  }
  body.dark-mode .pc-recent-table td,
  body.dark-mode .pc-admin-print-table td,
  body.dark-mode #empTable td {
    background:#26242d !important;
    color:#fff7fa !important;
    border-color:#393541 !important;
  }

  body.dark-mode #cardLeaveApplyMain > .side-profile-header,
  body.dark-mode #cardLeaveApplyMain input,
  body.dark-mode #cardLeaveApplyMain textarea,
  body.dark-mode #cardLeaveApplyMain select,
  body.dark-mode #cardLeaveApplyMain .modal-trigger-btn,
  body.dark-mode #cardLeaveApplyMain .date-mode-toggle,
  body.dark-mode #cardLeaveApplyMain .apply-sig-box,
  body.dark-mode #cardLeaveApplyMain .apply-sig-canvas-wrap,
  body.dark-mode #applySigCanvas {
    background:#2c2a34 !important;
    border-color:#47424f !important;
    color:#fff8fb !important;
  }

  body.dark-mode #cardLeaveApplyMain input::placeholder,
  body.dark-mode #cardLeaveApplyMain textarea::placeholder,
  body.dark-mode .apply-sig-placeholder {
    color:#c1b5bc !important;
    opacity:1 !important;
  }

  body.dark-mode #cardLeaveApplyMain .leave-type-chip {
    background:#302d37 !important;
    color:#e3d9de !important;
    border-color:#48434f !important;
  }
  body.dark-mode #cardLeaveApplyMain .leave-type-chip.active {
    background:#df7898 !important;
    color:#fff !important;
    border-color:#df7898 !important;
  }
}

/* ---------- 모바일 ---------- */
@media (max-width:1120px) {
  body {
    background:
      radial-gradient(circle at 90% 0%,rgba(217,102,138,.07),transparent 25%),
      linear-gradient(180deg,#f7f1f4 0%,#fbf7f8 48%,#f4f1f4 100%) !important;
  }
  body.dark-mode {
    background:
      radial-gradient(circle at 90% 0%,rgba(240,142,170,.06),transparent 25%),
      linear-gradient(180deg,#19171e,#1d1a22 100%) !important;
  }

  .mobile-appbar,
  .mobile-page-header,
  .mobile-history-header {
    background:rgba(255,251,252,.95) !important;
    border-bottom:1px solid #eadfe4 !important;
  }
  body.dark-mode .mobile-appbar,
  body.dark-mode .mobile-page-header,
  body.dark-mode .mobile-history-header {
    background:rgba(32,30,38,.96) !important;
    border-color:#403b47 !important;
  }

  .mobile-appbar-icon,
  .mobile-page-header button,
  .mobile-history-header button {
    background:#fbf5f7 !important;
    border-color:#eadfe3 !important;
    color:#a74d6e !important;
  }
  body.dark-mode .mobile-appbar-icon,
  body.dark-mode .mobile-page-header button,
  body.dark-mode .mobile-history-header button {
    background:#302d37 !important;
    border-color:#494450 !important;
    color:#f6dce5 !important;
  }

  .mobile-home-hero {
    background:
      radial-gradient(circle at 90% 15%,rgba(231,161,92,.10),transparent 27%),
      linear-gradient(135deg,#fdeef3 0%,#fff8ef 100%) !important;
    border-color:#eadde3 !important;
  }
  .mobile-home-ribbon {
    background:rgba(255,255,255,.72) !important;
    color:#c4577b !important;
    border-color:#ecdfe4 !important;
  }
  .mobile-home-quote {
    color:#a66a32 !important;
  }

  .mobile-home-action.action-pink {
    background:linear-gradient(145deg,#fdeef3,#fff9fb) !important;
  }
  .mobile-home-action.action-green {
    background:linear-gradient(145deg,#eef7f3,#f8fcfa) !important;
  }
  .mobile-home-action.action-yellow {
    background:linear-gradient(145deg,#fff6e9,#fffaf2) !important;
  }
  .mobile-home-action.action-blue {
    background:linear-gradient(145deg,#eef3f9,#f8fafd) !important;
  }

  .mobile-home-mini-card,
  .mobile-card,
  .mobile-apply-card,
  .mobile-history-card {
    background:rgba(255,253,253,.97) !important;
    border-color:#e8dde2 !important;
  }

  .mobile-home-stats div {
    background:linear-gradient(180deg,#faf4f7,#f5eef2) !important;
  }

  .mobile-season-footer {
    background:linear-gradient(135deg,#fdeef3,#fff7ea) !important;
    border-color:#eadde3 !important;
    color:#b45072 !important;
  }

  .mobile-menu-drawer {
    background:#fbf7f8 !important;
  }
  .mobile-admin-toggle {
    background:linear-gradient(135deg,#fceff3,#fff6e9) !important;
    border-color:#eadde3 !important;
  }

  /* 모바일 신청폼 글자 대비 */
  .mobile-apply-card input,
  .mobile-apply-card textarea,
  .mobile-apply-card select,
  .mobile-apply-card .modal-trigger-btn,
  .mobile-apply-card .apply-sig-box,
  .mobile-apply-card .apply-sig-canvas-wrap,
  .mobile-simple-balance {
    background:#fbf6f8 !important;
    border-color:#e6dbe0 !important;
    color:#29364c !important;
  }

  .mobile-apply-card input::placeholder,
  .mobile-apply-card textarea::placeholder {
    color:#807b86 !important;
    opacity:1 !important;
  }

  .mobile-apply-card .leave-type-chip {
    color:#4c576b !important;
  }
  .mobile-apply-card .leave-type-chip.active {
    background:#df7898 !important;
    color:#fff !important;
    border-color:#df7898 !important;
  }

  body.dark-mode .mobile-home-hero,
  body.dark-mode .mobile-home-mini-card,
  body.dark-mode .mobile-card,
  body.dark-mode .mobile-apply-card,
  body.dark-mode .mobile-history-card {
    background:#24232b !important;
    border-color:#3c3844 !important;
  }

  body.dark-mode .mobile-home-action.action-pink,
  body.dark-mode .mobile-home-action.action-green,
  body.dark-mode .mobile-home-action.action-yellow,
  body.dark-mode .mobile-home-action.action-blue {
    background:#2a2832 !important;
    border-color:#413c49 !important;
  }

  body.dark-mode .mobile-home-stats div {
    background:#302d37 !important;
  }

  body.dark-mode .mobile-season-footer {
    background:linear-gradient(135deg,#3b2830,#3a3126) !important;
    border-color:#4b444e !important;
    color:#f2b3c6 !important;
  }

  body.dark-mode .mobile-menu-drawer {
    background:#201e26 !important;
  }

  body.dark-mode .mobile-apply-card input,
  body.dark-mode .mobile-apply-card textarea,
  body.dark-mode .mobile-apply-card select,
  body.dark-mode .mobile-apply-card .modal-trigger-btn,
  body.dark-mode .mobile-apply-card .apply-sig-box,
  body.dark-mode .mobile-apply-card .apply-sig-canvas-wrap,
  body.dark-mode .mobile-simple-balance {
    background:#2c2a34 !important;
    border-color:#48434f !important;
    color:#fff8fb !important;
  }
  body.dark-mode .mobile-apply-card input::placeholder,
  body.dark-mode .mobile-apply-card textarea::placeholder {
    color:#c3b7be !important;
    opacity:1 !important;
  }
}

/* 모달 / 날짜 선택 / PIN 입력도 같은 톤 */
.modal-box,
.leave-custom-calendar,
.proxy-manual-entry {
  background:#fffdfd !important;
  border-color:#e8dde2 !important;
}
.pretty-date-field {
  background:#fbf6f8 !important;
  border-color:#e5dae0 !important;
}
.pretty-date-field input {
  color:#29364c !important;
}
body.dark-mode .modal-box,
body.dark-mode .leave-custom-calendar,
body.dark-mode .proxy-manual-entry {
  background:#26242d !important;
  border-color:#403c48 !important;
}
body.dark-mode .pretty-date-field {
  background:#302d37 !important;
  border-color:#494450 !important;
}
body.dark-mode .pretty-date-field input {
  color:#fff8fb !important;
}


/* ===== v38 로즈 사이드바 + 밝은 파스텔 워크스페이스 ===== */

/* 기본 화면은 밝은 파스텔. 사이드바만 차분하게 유지 */
body {
  background:
    radial-gradient(circle at 86% 0%, rgba(222,126,154,.10), transparent 25%),
    radial-gradient(circle at 18% 100%, rgba(239,186,125,.08), transparent 24%),
    linear-gradient(135deg,#f8f1f4 0%,#f7f4f2 48%,#f2f4f7 100%) !important;
}

/* 화면 상단도 새하얗지 않게 */
@media (min-width:1121px) {
  .pc-topbar {
    background:rgba(255,250,252,.97) !important;
    border-bottom:1px solid #eadfe4 !important;
    box-shadow:0 6px 24px rgba(75,52,64,.05) !important;
  }

  /* 사용자가 마음에 들어 한 사이드바 계열은 유지 */
  .desktop-sidebar {
    background:
      radial-gradient(circle at 18% 92%, rgba(233,167,103,.12), transparent 28%),
      linear-gradient(180deg,#514655 0%,#473d4c 58%,#3e3544 100%) !important;
  }

  /* 메인 영역에 은은한 패널을 깔아 화면이 허전하지 않게 */
  .dashboard-wrapper {
    background:transparent !important;
  }
  .left-col,
  .right-col {
    position:relative;
  }
  .left-col::before,
  .right-col::before {
    content:"";
    position:absolute;
    inset:0;
    border-radius:26px;
    background:rgba(255,255,255,.22);
    border:1px solid rgba(255,255,255,.35);
    pointer-events:none;
    z-index:-1;
  }

  /* 카드 배경: 흰색 + 핑크를 아주 살짝 섞어서 단조로움 제거 */
  .card,
  #cardCalendar,
  #cardLeaveApplyMain,
  .pc-admin-card,
  .pc-admin-summary-grid > div {
    background:
      linear-gradient(180deg,rgba(255,253,253,.99),rgba(252,247,249,.98)) !important;
    border-color:#eadfe4 !important;
    box-shadow:0 14px 34px rgba(77,53,66,.055) !important;
  }

  /* 휴가 신청 전용 화면은 중앙 카드 뒤에 부드러운 블러시 패널 */
  body.pc-view-apply .right-col {
    padding:22px !important;
    border-radius:30px;
    background:
      radial-gradient(circle at 95% 8%,rgba(222,126,154,.11),transparent 25%),
      linear-gradient(135deg,rgba(255,248,251,.72),rgba(248,245,246,.72)) !important;
    border:1px solid rgba(232,218,224,.9);
  }

  /* 신청 폼 카드 제목/라벨 - 기존 hard-coded 어두운 글자 보정 */
  #cardLeaveApplyMain::after,
  #cardLeaveApplyMain > .side-profile-header::before,
  #cardLeaveApplyMain .mobile-apply-title strong,
  #cardLeaveApplyMain .mobile-step-label,
  #cardLeaveApplyMain label,
  #cardLeaveApplyMain .leave-type-form-label,
  #cardLeaveApplyMain .apply-sig-header strong,
  #cardLeaveApplyMain .apply-sig-header,
  #cardLeaveApplyMain .date-mode-label,
  #cardLeaveApplyMain .leave-type-form-group > label,
  #cardLeaveApplyMain .stack-form > label {
    color:#354055 !important;
  }

  #cardLeaveApplyMain .mobile-apply-title span,
  #cardLeaveApplyMain .apply-help,
  #cardLeaveApplyMain small,
  #cardLeaveApplyMain .form-help,
  #cardLeaveApplyMain .side-stat-title {
    color:#70788a !important;
  }

  /* 신청자 줄 */
  #cardLeaveApplyMain > .side-profile-header {
    background:#fbf4f7 !important;
    border-color:#e7dbe1 !important;
  }
  #dNameTitle {
    color:#2d384d !important;
  }
  .self-info-badge {
    background:#f5e7ed !important;
    color:#a7496a !important;
  }

  /* 입력창은 너무 흰색/너무 회색이지 않게 */
  #cardLeaveApplyMain input,
  #cardLeaveApplyMain textarea,
  #cardLeaveApplyMain select,
  #cardLeaveApplyMain .modal-trigger-btn,
  #cardLeaveApplyMain .apply-sig-box,
  #cardLeaveApplyMain .apply-sig-canvas-wrap,
  #applySigCanvas {
    background:#faf5f7 !important;
    border-color:#e6dae0 !important;
    color:#303a4e !important;
  }
  #cardLeaveApplyMain input::placeholder,
  #cardLeaveApplyMain textarea::placeholder,
  #cardLeaveApplyMain .apply-sig-placeholder {
    color:#7c7882 !important;
    opacity:1 !important;
  }

  /* 휴가 종류 - 부드러운 파스텔 */
  #cardLeaveApplyMain .leave-type-chip {
    background:#faf5f7 !important;
    color:#505a6d !important;
    border-color:#e8dfe3 !important;
  }
  #cardLeaveApplyMain .leave-type-chip.active {
    background:linear-gradient(135deg,#e982a0,#d9698d) !important;
    color:#fff !important;
    border-color:#d9698d !important;
  }

  /* 하루만/여러 날 */
  #cardLeaveApplyMain .date-mode-toggle {
    background:#f4edf1 !important;
    border-color:#e4d8de !important;
  }
  #cardLeaveApplyMain .date-mode-btn {
    color:#687184 !important;
  }
  #cardLeaveApplyMain .date-mode-btn.active {
    background:#d9698d !important;
    color:#fff !important;
  }

  /* 서명 영역 */
  #cardLeaveApplyMain .apply-sig-box {
    background:linear-gradient(180deg,#fff9fb,#f8f3f6) !important;
  }
  #cardLeaveApplyMain .apply-sig-canvas-wrap {
    background:#fffafb !important;
    border:1px dashed #d9c7cf !important;
  }

  /* 하단 메인 버튼 */
  #cardLeaveApplyMain > div[style*="margin-top: 12px"] > button[onclick="submitLeave()"] {
    background:linear-gradient(90deg,#e27b9b,#d86589) !important;
    color:#fff !important;
  }

  /* 표/달력도 따뜻한 회백색으로 */
  #cardCalendar .calendar-grid {
    background:#eee5e9 !important;
  }
  #cardCalendar .cal-cell {
    background:#fffdfd !important;
  }
  .pc-recent-table th,
  .pc-admin-print-table th,
  #empTable th {
    background:#f6edf1 !important;
    color:#596479 !important;
  }

  /* 요약 카드 글자 진하게 */
  .pc-metric-card strong {
    color:#253148 !important;
  }
  .pc-metric-card small {
    color:#657086 !important;
  }
}

/* 다크모드는 완전 검정 대신 '딤 로즈'로 */
body.dark-mode {
  background:
    radial-gradient(circle at 88% 0%,rgba(224,118,151,.08),transparent 24%),
    linear-gradient(135deg,#26222a 0%,#29252d 48%,#24232a 100%) !important;
}

@media (min-width:1121px) {
  body.dark-mode .pc-topbar {
    background:rgba(39,35,43,.97) !important;
    border-color:#4a424d !important;
  }

  body.dark-mode .card,
  body.dark-mode #cardCalendar,
  body.dark-mode #cardLeaveApplyMain,
  body.dark-mode .pc-admin-card,
  body.dark-mode .pc-admin-summary-grid > div {
    background:linear-gradient(180deg,#302d35,#2a2830) !important;
    border-color:#4a424d !important;
  }

  /* 어두운 모드에서 안 보이던 제목/라벨 */
  body.dark-mode #cardLeaveApplyMain::after,
  body.dark-mode #cardLeaveApplyMain > .side-profile-header::before,
  body.dark-mode #cardLeaveApplyMain .mobile-apply-title strong,
  body.dark-mode #cardLeaveApplyMain .mobile-step-label,
  body.dark-mode #cardLeaveApplyMain label,
  body.dark-mode #cardLeaveApplyMain .leave-type-form-label,
  body.dark-mode #cardLeaveApplyMain .apply-sig-header strong,
  body.dark-mode #cardLeaveApplyMain .apply-sig-header,
  body.dark-mode #cardLeaveApplyMain .date-mode-label,
  body.dark-mode #cardLeaveApplyMain .leave-type-form-group > label,
  body.dark-mode #cardLeaveApplyMain .stack-form > label,
  body.dark-mode #dNameTitle {
    color:#fff7fa !important;
  }

  body.dark-mode #cardLeaveApplyMain .mobile-apply-title span,
  body.dark-mode #cardLeaveApplyMain .apply-help,
  body.dark-mode #cardLeaveApplyMain small,
  body.dark-mode #cardLeaveApplyMain .form-help,
  body.dark-mode #cardLeaveApplyMain .side-stat-title {
    color:#d1c6cc !important;
  }

  body.dark-mode #cardLeaveApplyMain > .side-profile-header,
  body.dark-mode #cardLeaveApplyMain input,
  body.dark-mode #cardLeaveApplyMain textarea,
  body.dark-mode #cardLeaveApplyMain select,
  body.dark-mode #cardLeaveApplyMain .modal-trigger-btn,
  body.dark-mode #cardLeaveApplyMain .apply-sig-box,
  body.dark-mode #cardLeaveApplyMain .apply-sig-canvas-wrap,
  body.dark-mode #applySigCanvas {
    background:#39343e !important;
    border-color:#554c59 !important;
    color:#fff8fb !important;
  }

  body.dark-mode #cardLeaveApplyMain input::placeholder,
  body.dark-mode #cardLeaveApplyMain textarea::placeholder,
  body.dark-mode #cardLeaveApplyMain .apply-sig-placeholder {
    color:#c8bac1 !important;
    opacity:1 !important;
  }

  body.dark-mode #cardLeaveApplyMain .leave-type-chip {
    background:#37323c !important;
    color:#eadfe4 !important;
    border-color:#534a57 !important;
  }
  body.dark-mode #cardLeaveApplyMain .leave-type-chip.active {
    background:#e17c9b !important;
    color:#fff !important;
  }
}

/* ---------- 모바일도 같은 밝은 파스텔 방향 ---------- */
@media (max-width:1120px) {
  body {
    background:
      radial-gradient(circle at 90% 0%,rgba(222,126,154,.09),transparent 25%),
      linear-gradient(180deg,#f8f1f4 0%,#fcf8f9 46%,#f3f1f3 100%) !important;
  }

  .mobile-home-screen {
    background:transparent !important;
  }

  .mobile-appbar,
  .mobile-page-header,
  .mobile-history-header {
    background:rgba(255,250,252,.96) !important;
    border-color:#eadde3 !important;
  }

  .mobile-home-hero {
    background:
      radial-gradient(circle at 92% 15%,rgba(234,170,102,.11),transparent 28%),
      linear-gradient(135deg,#fdeef3,#fff9f0) !important;
  }

  .mobile-home-mini-card,
  .mobile-card,
  .mobile-apply-card,
  .mobile-history-card {
    background:linear-gradient(180deg,#fffdfd,#fbf7f8) !important;
    border-color:#eadfe3 !important;
  }

  /* 모바일 신청 화면 글자 대비 */
  .mobile-apply-card .mobile-step-label,
  .mobile-apply-card label,
  .mobile-apply-card strong,
  .mobile-apply-card .apply-sig-header {
    color:#354055 !important;
  }
  .mobile-apply-card input,
  .mobile-apply-card textarea,
  .mobile-apply-card select,
  .mobile-apply-card .modal-trigger-btn,
  .mobile-apply-card .apply-sig-box,
  .mobile-apply-card .apply-sig-canvas-wrap {
    background:#faf5f7 !important;
    border-color:#e5dade !important;
    color:#303a4e !important;
  }
  .mobile-apply-card input::placeholder,
  .mobile-apply-card textarea::placeholder {
    color:#7d7882 !important;
    opacity:1 !important;
  }

  body.dark-mode {
    background:linear-gradient(180deg,#26222a,#29252d 100%) !important;
  }
  body.dark-mode .mobile-home-mini-card,
  body.dark-mode .mobile-card,
  body.dark-mode .mobile-apply-card,
  body.dark-mode .mobile-history-card {
    background:#302d35 !important;
    border-color:#4a424d !important;
  }
  body.dark-mode .mobile-apply-card .mobile-step-label,
  body.dark-mode .mobile-apply-card label,
  body.dark-mode .mobile-apply-card strong,
  body.dark-mode .mobile-apply-card .apply-sig-header {
    color:#fff7fa !important;
  }
}

/* 일부 오래된 hard-coded 색상까지 마지막에 강제로 보정 */
body:not(.dark-mode) #cardLeaveApplyMain h1,
body:not(.dark-mode) #cardLeaveApplyMain h2,
body:not(.dark-mode) #cardLeaveApplyMain h3,
body:not(.dark-mode) #cardLeaveApplyMain p,
body:not(.dark-mode) #cardLeaveApplyMain .form-label,
body:not(.dark-mode) #cardLeaveApplyMain .section-title {
  color:#354055 !important;
}

body.dark-mode #cardLeaveApplyMain h1,
body.dark-mode #cardLeaveApplyMain h2,
body.dark-mode #cardLeaveApplyMain h3,
body.dark-mode #cardLeaveApplyMain p,
body.dark-mode #cardLeaveApplyMain .form-label,
body.dark-mode #cardLeaveApplyMain .section-title {
  color:#fff7fa !important;
}


/* ===== v39 사이드바 컬러 + 서명 간격 미세조정 ===== */
@media (min-width:1121px) {
  /* 사이드바: 어두운 로즈-네이비 -> 밝은 더스티 로즈/아이보리 */
  .desktop-sidebar {
    background:
      radial-gradient(circle at 22% 92%, rgba(232,168,111,.12), transparent 28%),
      linear-gradient(180deg,#f2e8ec 0%,#eadfe4 58%,#e4d8df 100%) !important;
    box-shadow:10px 0 28px rgba(98,72,86,.08) !important;
    border-right:1px solid #ded1d8 !important;
  }

  .desktop-menu-btn {
    color:#445064 !important;
  }
  .desktop-menu-btn b {
    color:#445064 !important;
  }
  .desktop-menu-btn:hover {
    background:rgba(255,255,255,.62) !important;
    color:#b94f75 !important;
  }
  .desktop-menu-btn:hover b {
    color:#b94f75 !important;
  }

  .desktop-menu-btn.active,
  body.pc-view-dashboard #pcNavDashboard,
  body.pc-view-apply #pcNavApply,
  body.pc-view-calendar #pcNavCalendar,
  body.pc-view-status #pcNavStatus,
  body.pc-view-history #pcNavHistory,
  body.pc-view-notice #pcNavNotice {
    background:linear-gradient(90deg,#fff9fb,#fffdfd) !important;
    color:#bd5579 !important;
    border-color:#eadce2 !important;
    box-shadow:0 10px 22px rgba(119,82,101,.10) !important;
  }

  .desktop-menu-btn.active b,
  body.pc-view-dashboard #pcNavDashboard b,
  body.pc-view-apply #pcNavApply b,
  body.pc-view-calendar #pcNavCalendar b,
  body.pc-view-status #pcNavStatus b,
  body.pc-view-history #pcNavHistory b,
  body.pc-view-notice #pcNavNotice b {
    color:#bd5579 !important;
  }

  .brand-sidebar-note {
    background:rgba(255,255,255,.46) !important;
    border:1px solid rgba(208,188,198,.72) !important;
    box-shadow:0 12px 24px rgba(106,77,91,.06) !important;
  }
  .brand-sidebar-note strong {
    color:#3e495c !important;
  }
  .brand-sidebar-note span:last-child {
    color:#6e6670 !important;
  }

  /* 사유 입력과 서명 영역 사이 여백 */
  #cardLeaveApplyMain .apply-sig-box {
    margin-top:18px !important;
  }
}

/* 모바일도 동일하게 사유 입력과 서명 영역 사이 간격 확보 */
@media (max-width:1120px) {
  .mobile-apply-card .apply-sig-box,
  #cardLeaveApplyMain .apply-sig-box {
    margin-top:16px !important;
  }
}


/* ===== v41 월간 일정표 상단 현황카드 ===== */
@media (min-width:1121px) {
  body.pc-view-calendar #pcMetricGrid {
    margin-top:18px !important;
    margin-bottom:14px !important;
  }

  body.pc-view-calendar #cardCalendar {
    margin-top:0 !important;
  }
}


/* ===== v42 모바일 신청 간격 + 홈 공지 카드 ===== */
@media (max-width:1120px) {
  /* 휴가 신청하기와 대휴 적립 신청을 확실하게 분리 */
  #cardLeaveApplyMain > div[style*="margin-top: 12px"] {
    margin:18px 16px 0 !important;
  }

  #cardLeaveApplyMain > div[style*="margin-top: 12px"] > button[onclick="submitLeave()"] {
    min-height:58px !important;
    border-radius:15px !important;
  }

  .pc-form-shortcuts {
    display:block !important;
    margin:18px 16px 26px !important;
  }

  .pc-form-shortcuts button {
    width:100% !important;
    min-height:48px !important;
    padding:10px 14px !important;
    border-radius:13px !important;
    background:#fff7fa !important;
    color:#c65479 !important;
    border:1px solid #ebcad6 !important;
    box-shadow:0 7px 16px rgba(190,79,116,.06) !important;
    font-size:.76rem !important;
    font-weight:800 !important;
  }

  .pc-form-shortcuts button:active {
    transform:scale(.99);
  }

  /* 대휴 적립 상세 영역이 열렸을 때도 위/아래 여백 확보 */
  #pcHolidayWorkTools.pc-tool-open {
    margin:8px 16px 34px !important;
    padding-top:20px !important;
  }

  /* 승인 대기 카드가 앞 영역과 붙어 보이지 않게 */
  #pcPendingCard {
    margin-top:30px !important;
    margin-bottom:26px !important;
    padding:18px 18px !important;
    border-radius:18px !important;
  }

  #pcPendingCard .pc-section-head {
    margin-bottom:12px !important;
    align-items:center !important;
  }

  #pcPendingCard .pc-section-head strong {
    font-size:.98rem !important;
  }

  #pcPendingCard .pc-section-head button {
    min-height:34px !important;
    padding:6px 12px !important;
    border-radius:10px !important;
  }

  /* 모바일 홈 감성 문구 영역 -> 공지사항 카드 */
  .mobile-notice-hero {
    min-height:0 !important;
    padding:22px !important;
    background:
      radial-gradient(circle at 95% 10%,rgba(231,161,92,.11),transparent 28%),
      linear-gradient(135deg,#fdeef3 0%,#fff9f0 100%) !important;
    border:1px solid #eadde3 !important;
    border-radius:24px !important;
  }

  .mobile-notice-head {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:18px;
  }

  .mobile-notice-head > div {
    display:flex;
    align-items:center;
    gap:9px;
  }

  .mobile-notice-icon {
    width:42px;
    height:42px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:14px;
    background:rgba(255,255,255,.72);
    border:1px solid rgba(218,177,192,.55);
    font-size:1.25rem;
  }

  .mobile-notice-head strong {
    color:#263247 !important;
    font-size:1.06rem !important;
    font-weight:900 !important;
  }

  .mobile-notice-edit {
    min-height:34px;
    padding:5px 12px !important;
    border-radius:999px !important;
    background:#fff !important;
    color:#c05277 !important;
    border:1px solid #ebcbd6 !important;
    box-shadow:none !important;
    font-size:.68rem !important;
    font-weight:800 !important;
  }

  .mobile-notice-body {
    padding:20px 18px;
    border-radius:18px;
    background:rgba(255,255,255,.72);
    border:1px solid rgba(232,218,224,.88);
  }

  .mobile-notice-body p {
    margin:0;
    color:#3d485a !important;
    font-size:.9rem !important;
    font-weight:700;
    line-height:1.7;
    word-break:keep-all;
  }

  .mobile-notice-foot {
    margin-top:13px;
    text-align:right;
    color:#9d6879;
    font-size:.66rem;
    font-weight:700;
  }

  /* 모바일 공지 수정 모달 */
  .mobile-notice-edit-modal {
    width:min(92vw,520px) !important;
    padding:20px !important;
    border-radius:20px !important;
  }

  .mobile-notice-edit-title {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    margin-bottom:16px;
  }

  .mobile-notice-edit-title strong {
    display:block;
    color:#2d384d;
    font-size:1rem;
    font-weight:900;
  }

  .mobile-notice-edit-title span {
    display:block;
    margin-top:3px;
    color:#7c7882;
    font-size:.65rem;
  }

  .mobile-notice-edit-label > span {
    display:block;
    margin-bottom:7px;
    color:#586276;
    font-size:.72rem;
    font-weight:800;
  }

  .mobile-notice-edit-label textarea {
    width:100%;
    min-height:130px;
    resize:vertical;
    padding:13px;
    border-radius:13px;
    border:1px solid #e5d9df;
    background:#fbf6f8;
    color:#303a4e;
    line-height:1.6;
    font-size:.82rem;
  }

  .mobile-notice-edit-preview {
    display:flex;
    gap:10px;
    align-items:flex-start;
    margin-top:12px;
    padding:13px;
    border-radius:13px;
    background:#fff5f8;
    border:1px solid #eddae1;
  }

  .mobile-notice-edit-preview p {
    margin:0;
    color:#5c5560;
    font-size:.72rem;
    line-height:1.55;
  }

  .mobile-notice-edit-actions {
    display:flex;
    gap:8px;
    margin-top:14px;
  }

  .mobile-notice-edit-actions button {
    flex:1;
    min-height:44px;
    border-radius:11px;
  }

  body.dark-mode .mobile-notice-hero {
    background:linear-gradient(135deg,#352931,#362f28) !important;
    border-color:#4b4149 !important;
  }

  body.dark-mode .mobile-notice-head strong,
  body.dark-mode .mobile-notice-body p {
    color:#fff7fa !important;
  }

  body.dark-mode .mobile-notice-icon,
  body.dark-mode .mobile-notice-body {
    background:rgba(255,255,255,.055) !important;
    border-color:#514650 !important;
  }

  body.dark-mode .mobile-notice-foot {
    color:#d8a7b7 !important;
  }

  body.dark-mode .mobile-notice-edit-modal,
  body.dark-mode .mobile-notice-edit-label textarea {
    background:#2c2932 !important;
    border-color:#4b454f !important;
    color:#fff8fb !important;
  }

  body.dark-mode .mobile-notice-edit-title strong,
  body.dark-mode .mobile-notice-edit-label > span {
    color:#fff7fa !important;
  }

  body.dark-mode .mobile-notice-edit-title span,
  body.dark-mode .mobile-notice-edit-preview p {
    color:#d0c3ca !important;
  }

  body.dark-mode .mobile-notice-edit-preview {
    background:#352d34 !important;
    border-color:#4c444d !important;
  }
}


/* ===== v43 PC 최근 신청내역 신청취소 + 밝기버튼 제거 ===== */
@media (min-width:1121px) {
  .pc-recent-table th:last-child,
  .pc-recent-table td:last-child {
    width:92px;
    text-align:center;
    white-space:nowrap;
  }

  .pc-recent-cancel-btn {
    min-height:28px;
    padding:0 10px;
    border-radius:8px;
    border:1px solid #efc5d2 !important;
    background:#fff4f7 !important;
    color:#cc5479 !important;
    box-shadow:none !important;
    font-size:.62rem !important;
    font-weight:900 !important;
    cursor:pointer;
  }

  .pc-recent-cancel-btn:hover {
    background:#fce8ee !important;
    border-color:#e9adbf !important;
  }

  .pc-recent-cancel-dash {
    color:#a8a2aa;
  }

  /* 제거된 밝기 버튼 자리에 불필요한 공백이 남지 않도록 */
  .pc-top-actions {
    gap:10px !important;
  }
}


/* ===== v44 모바일 월간 일정표 단순화 ===== */
@media (max-width:1120px) {
  /* PC 대시보드용 요소는 모바일 월간 일정표에서 사용하지 않음 */
  #pcMetricGrid,
  #dashboardHero,
  .dashboard-summary-grid,
  #pcRecentCard {
    display:none !important;
  }

  /* 월간 일정표 / 잔여현황 화면은 헤더 다음에 바로 본문이 오게 */
  #sectionLeft.active-tab {
    gap:0 !important;
    padding-bottom:24px;
  }

  #sectionLeft.active-tab #cardCalendar,
  #sectionLeft.active-tab #cardEmpTable {
    margin-top:10px !important;
  }

  /* 월간 일정표 카드 상단 여백/제목 정돈 */
  #sectionLeft.active-tab #cardCalendar {
    padding-top:14px !important;
  }

  #sectionLeft.active-tab #cardCalendar .card-header {
    margin-bottom:12px !important;
  }

  #sectionLeft.active-tab #cardCalendar .card-header h2 {
    margin:0 !important;
    font-size:1.02rem !important;
  }

  /* 모바일에서 최근 신청내역은 '내 신청내역' 메뉴 전용 화면만 사용 */
  #pcRecentCard,
  .pc-recent-card {
    display:none !important;
  }
}


/* ===== v46 대체휴무 적립 전용 메뉴 ===== */
@media (min-width:1121px) {
  body.pc-view-holidaywork .dashboard-wrapper {
    grid-template-columns:218px minmax(0,1fr) !important;
  }

  body.pc-view-holidaywork .left-col {
    display:none !important;
  }

  body.pc-view-holidaywork .right-col {
    display:block !important;
    position:static !important;
    width:100% !important;
    max-width:820px !important;
    margin:18px auto 50px !important;
  }

  body.pc-view-holidaywork #cardLeaveApplyMain {
    display:block !important;
  }

  /* 대체휴무 적립 메뉴에서는 휴가 신청 폼만 숨김 */
  body.pc-view-holidaywork #cardLeaveApplyMain .leave-application-section {
    display:none !important;
  }

  /* 대체휴무 적립 폼은 항상 표시 */
  body.pc-view-holidaywork #pcHolidayWorkTools {
    display:block !important;
    margin:18px 16px 22px !important;
    padding-top:18px !important;
    border-top:1px solid var(--border) !important;
  }

  body.pc-view-holidaywork #pcPendingCard,
  body.pc-view-holidaywork .pc-notice-card,
  body.pc-view-holidaywork #pcQuickEmployeeTools {
    display:none !important;
  }

  body.pc-view-holidaywork #pcNavHolidayWork {
    background:linear-gradient(90deg,#fff9fb,#fffdfd) !important;
    color:#bd5579 !important;
    border-color:#eadce2 !important;
    box-shadow:0 10px 22px rgba(119,82,101,.10) !important;
  }

  body.pc-view-holidaywork #pcNavHolidayWork b {
    color:#bd5579 !important;
  }
}

/* 모바일 전용 대체휴무 적립 화면 */
@media (max-width:1120px) {
  body.mobile-holidaywork-mode #sectionRight .leave-application-section {
    display:none !important;
  }

  body.mobile-holidaywork-mode #pcHolidayWorkTools {
    display:block !important;
    margin:18px 16px 28px !important;
    padding:18px 0 0 !important;
    border-top:1px solid var(--border) !important;
  }

  body.mobile-holidaywork-mode #pcPendingCard,
  body.mobile-holidaywork-mode .pc-notice-card,
  body.mobile-holidaywork-mode #pcQuickEmployeeTools {
    display:none !important;
  }

  body.mobile-holidaywork-mode #cardLeaveApplyMain {
    padding-bottom:14px !important;
  }
}


/* ===== v47 적립예정대휴 ===== */
@media (min-width:1121px) {
  #empTable {
    min-width:1120px !important;
  }

  #empTable th,
  #empTable td {
    white-space:nowrap;
  }

  #empTable .pending-sub-value {
    color:#c97731 !important;
    font-size:.95rem;
    font-weight:900;
  }
}

@media (max-width:1120px) {
  .mobile-emp-card-stats-v47 {
    display:grid !important;
    grid-template-columns:repeat(2, minmax(0,1fr)) !important;
    gap:8px !important;
  }

  .mobile-emp-card-stats-v47 > div {
    min-height:58px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    text-align:center;
    padding:6px !important;
    border-radius:9px;
    background:var(--input-bg);
  }

  .mobile-emp-card-stats-v47 > div:last-child {
    grid-column:1 / -1;
  }

  .mobile-emp-card-stats-v47 .mobile-pending-sub {
    background:#fff5e8 !important;
    border:1px solid #f3dfc3;
  }

  body.dark-mode .mobile-emp-card-stats-v47 .mobile-pending-sub {
    background:#3b3025 !important;
    border-color:#594733 !important;
  }
}


/* ===== v48 모바일 관리자 기능 분리 ===== */
@media (max-width:1120px) {
  /* 휴가 신청 화면은 신청 기능만 남김 */
  #sectionRight #pcPendingCard,
  #sectionRight .pc-notice-card,
  #sectionRight #pcQuickEmployeeTools {
    display:none !important;
  }

  /* 기존 승인 배너는 모바일 일반 사용자에게 노출하지 않음 */
  #approvalBanner {
    display:none !important;
  }

  .mobile-admin-tool-modal {
    align-items:flex-start !important;
    padding:calc(18px + env(safe-area-inset-top)) 12px
            calc(18px + env(safe-area-inset-bottom)) !important;
    overflow-y:auto;
  }

  .mobile-admin-tool-box {
    width:min(100%,620px) !important;
    max-width:620px !important;
    margin:auto !important;
    padding:18px !important;
    border-radius:22px !important;
    background:linear-gradient(180deg,#fffdfd,#faf6f8) !important;
  }

  .mobile-admin-tool-head {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    padding-bottom:14px;
    margin-bottom:14px;
    border-bottom:1px solid var(--border);
  }

  .mobile-admin-tool-head strong {
    display:block;
    color:#2d384d !important;
    font-size:1.05rem;
    font-weight:900;
  }

  .mobile-admin-tool-head span {
    display:block;
    margin-top:4px;
    color:#7a7580;
    font-size:.68rem;
    line-height:1.45;
  }

  .mobile-approval-summary {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:8px;
    margin-bottom:14px;
  }

  .mobile-approval-summary > div {
    padding:11px 6px;
    text-align:center;
    border-radius:13px;
    background:#faf1f5;
    border:1px solid #eadde3;
  }

  .mobile-approval-summary span {
    display:block;
    color:#7b7480;
    font-size:.62rem;
  }

  .mobile-approval-summary strong {
    display:block;
    margin-top:3px;
    color:#b94f75;
    font-size:.95rem;
  }

  .mobile-approval-manager-list {
    display:flex;
    flex-direction:column;
    gap:10px;
  }

  .mobile-approval-item {
    padding:14px;
    border-radius:16px;
    background:#fff;
    border:1px solid #eadfe3;
    box-shadow:0 8px 20px rgba(88,58,72,.045);
  }

  .mobile-approval-item-top {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:11px;
  }

  .mobile-approval-item-top strong {
    color:#2d384d;
    font-size:.86rem;
    font-weight:900;
  }

  .mobile-approval-item-top span {
    margin-left:5px;
    color:#8a8390;
    font-size:.65rem;
  }

  .mobile-approval-item-top b {
    flex:none;
    padding:5px 9px;
    border-radius:999px;
    font-size:.62rem;
    font-weight:900;
  }

  .mobile-approval-item-top b.leave {
    background:#edf4ff;
    color:#3574d0;
  }

  .mobile-approval-item-top b.work {
    background:#fff2df;
    color:#bd7028;
  }

  .mobile-approval-item-info {
    display:grid;
    gap:7px;
    padding:10px 11px;
    margin-bottom:11px;
    border-radius:12px;
    background:#faf6f8;
  }

  .mobile-approval-item-info > div {
    display:grid;
    grid-template-columns:42px minmax(0,1fr);
    gap:7px;
  }

  .mobile-approval-item-info span {
    color:#918895;
    font-size:.62rem;
  }

  .mobile-approval-item-info strong {
    color:#4a5263;
    font-size:.7rem;
    font-weight:750;
    word-break:break-word;
  }

  .mobile-approval-item-actions {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
  }

  .mobile-approval-item-actions button {
    min-height:42px;
    border-radius:11px !important;
    box-shadow:none !important;
    font-size:.76rem !important;
    font-weight:900 !important;
  }

  .mobile-approval-item-actions .approve {
    background:#e7f6ee !important;
    color:#26865b !important;
    border:1px solid #c4ead5 !important;
  }

  .mobile-approval-item-actions .reject {
    background:#fff0f3 !important;
    color:#c65071 !important;
    border:1px solid #efcbd6 !important;
  }

  .mobile-admin-empty {
    min-height:180px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:7px;
    text-align:center;
    border-radius:16px;
    background:#faf6f8;
    border:1px dashed #dfd1d8;
  }

  .mobile-admin-empty > span {
    font-size:1.8rem;
  }

  .mobile-admin-empty strong {
    color:#3b4558;
    font-size:.86rem;
  }

  .mobile-admin-empty small {
    color:#8a8390;
    font-size:.65rem;
  }

  /* 기존 직원등록 폼은 모바일 관리자 모달 안에서만 표시 */
  #mobileEmployeeCreateModal #pcQuickEmployeeTools {
    display:block !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    box-shadow:none !important;
    background:transparent !important;
  }

  #mobileEmployeeCreateModal #pcQuickEmployeeTools > div:first-child {
    margin-bottom:14px !important;
  }

  #mobileEmployeeCreateModal #pcQuickEmployeeTools > div:first-child > span {
    display:none;
  }

  #mobileEmployeeCreateModal #pcQuickEmployeeTools .modal-trigger-btn,
  #mobileEmployeeCreateModal #pcQuickEmployeeTools input {
    min-height:52px !important;
    border-radius:14px !important;
    background:#fbf6f8 !important;
    border-color:#e5d9df !important;
  }

  #mobileEmployeeCreateModal #pcQuickEmployeeTools > div:last-child > button:last-child {
    min-height:52px;
    margin-top:4px;
    border-radius:14px !important;
    background:linear-gradient(90deg,#df7898,#d76588) !important;
  }

  body.dark-mode .mobile-admin-tool-box,
  body.dark-mode .mobile-approval-item {
    background:#2c2932 !important;
    border-color:#4a434e !important;
  }

  body.dark-mode .mobile-admin-tool-head strong,
  body.dark-mode .mobile-approval-item-top strong,
  body.dark-mode .mobile-admin-empty strong {
    color:#fff7fa !important;
  }

  body.dark-mode .mobile-approval-item-info,
  body.dark-mode .mobile-approval-summary > div,
  body.dark-mode .mobile-admin-empty {
    background:#34303a !important;
    border-color:#4d4651 !important;
  }

  body.dark-mode .mobile-approval-item-info strong {
    color:#eee4e9 !important;
  }
}


/* ===== v49 모바일 홈/신청 수정·취소/화면 정리 ===== */
@media (max-width:1120px) {
  /* 홈 5개 메뉴: 2x2 + 내 신청내역 와이드 카드 */
  .mobile-home-actions-v49 {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  .mobile-home-actions-v49 .action-orange {
    background:linear-gradient(145deg,#fff1e8,#fff9f5) !important;
  }

  .mobile-home-actions-v49 .mobile-home-wide-action {
    grid-column:1 / -1;
    min-height:86px !important;
    display:grid !important;
    grid-template-columns:auto minmax(0,1fr) auto !important;
    grid-template-rows:auto auto !important;
    align-items:center !important;
    column-gap:10px;
    text-align:left !important;
  }

  .mobile-home-actions-v49 .mobile-home-wide-action .mha-icon {
    grid-row:1 / span 2;
    align-self:center;
  }

  .mobile-home-actions-v49 .mobile-home-wide-action b {
    margin-top:0 !important;
    align-self:end;
  }

  .mobile-home-actions-v49 .mobile-home-wide-action small {
    align-self:start;
  }

  .mobile-home-actions-v49 .mobile-home-wide-action em {
    grid-column:3;
    grid-row:1 / span 2;
    align-self:center;
  }

  /* 휴가신청 화면에서는 중복 관리자 신청목록 / 대휴신청 폼 제거 */
  body:not(.mobile-holidaywork-mode) #sectionRight #pcHolidayWorkTools {
    display:none !important;
  }

  #sectionRight #pcLeaveAdminTools {
    display:none !important;
  }

  /* 신청 수정·취소 모달 */
  .my-application-manager-modal,
  .my-application-edit-modal {
    align-items:flex-start !important;
    padding:calc(18px + env(safe-area-inset-top)) 12px
            calc(18px + env(safe-area-inset-bottom)) !important;
    overflow-y:auto;
  }

  .my-application-manager-box,
  .my-application-edit-box {
    width:min(100%,620px) !important;
    max-width:620px !important;
    margin:auto !important;
    padding:18px !important;
    border-radius:22px !important;
    background:linear-gradient(180deg,#fffdfd,#faf6f8) !important;
  }

  .my-application-manager-head {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    padding-bottom:14px;
    margin-bottom:14px;
    border-bottom:1px solid #eadfe3;
  }

  .my-application-manager-head strong {
    display:block;
    color:#2d384d !important;
    font-size:1.05rem;
    font-weight:900;
  }

  .my-application-manager-head span {
    display:block;
    margin-top:4px;
    color:#7b7480;
    font-size:.67rem;
    line-height:1.45;
  }

  .my-application-manager-summary {
    padding:12px 14px;
    margin-bottom:14px;
    border-radius:14px;
    background:#fff1f5;
    border:1px solid #ead9e1;
  }

  .my-application-manager-summary > div {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
  }

  .my-application-manager-summary span {
    color:#6c6570;
    font-size:.7rem;
    font-weight:750;
  }

  .my-application-manager-summary strong {
    color:#c65278;
    font-size:.98rem;
  }

  .my-application-manager-summary p {
    margin:6px 0 0;
    color:#928894;
    font-size:.62rem;
  }

  .my-application-manager-list {
    display:flex;
    flex-direction:column;
    gap:10px;
  }

  .my-app-manage-item {
    padding:14px;
    border-radius:16px;
    background:#fff;
    border:1px solid #eadfe3;
    box-shadow:0 8px 20px rgba(88,58,72,.045);
  }

  .my-app-manage-top {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
  }

  .my-app-manage-top > div {
    min-width:0;
  }

  .my-app-manage-top strong {
    color:#2d384d;
    font-size:.88rem;
    font-weight:900;
  }

  .my-app-manage-top span {
    margin-left:6px;
    padding:3px 7px;
    border-radius:999px;
    background:#fff0d9;
    color:#b06a23;
    font-size:.58rem;
    font-weight:850;
  }

  .my-app-manage-top b {
    max-width:54%;
    color:#6d7687;
    font-size:.65rem;
    text-align:right;
    line-height:1.45;
    word-break:keep-all;
  }

  .my-app-manage-item > p {
    margin:11px 0;
    padding:10px 11px;
    border-radius:11px;
    background:#faf6f8;
    color:#596273;
    font-size:.69rem;
    line-height:1.5;
  }

  .my-app-manage-actions {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
  }

  .my-app-manage-actions button {
    min-height:42px;
    border-radius:11px !important;
    box-shadow:none !important;
    font-size:.76rem !important;
    font-weight:900 !important;
  }

  .my-app-manage-actions .edit {
    background:#eef4ff !important;
    color:#3f72bd !important;
    border:1px solid #d6e4fb !important;
  }

  .my-app-manage-actions .cancel {
    background:#fff0f3 !important;
    color:#c65071 !important;
    border:1px solid #efcbd6 !important;
  }

  .my-app-empty {
    min-height:190px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:7px;
    text-align:center;
    border-radius:16px;
    background:#faf6f8;
    border:1px dashed #dfd1d8;
    color:#727b8c;
  }

  .my-app-empty > span {
    font-size:1.9rem;
  }

  .my-app-empty strong {
    color:#3b4558;
    font-size:.86rem;
  }

  .my-app-empty small {
    color:#8a8390;
    font-size:.64rem;
  }

  /* 수정창 */
  .my-app-edit-type {
    display:inline-flex;
    align-items:center;
    min-height:34px;
    padding:0 12px;
    margin-bottom:14px;
    border-radius:999px;
    background:#fdebf1;
    color:#ba4f74;
    font-size:.72rem;
    font-weight:900;
  }

  .my-app-edit-fields {
    display:flex;
    flex-direction:column;
    gap:12px;
  }

  .my-app-edit-fields label {
    display:flex;
    flex-direction:column;
    gap:6px;
  }

  .my-app-edit-fields label > span {
    color:#596375;
    font-size:.68rem;
    font-weight:850;
  }

  .my-app-edit-fields input,
  .my-app-edit-fields select,
  .my-app-edit-fields textarea {
    width:100%;
    min-height:50px;
    padding:10px 12px;
    border-radius:13px;
    border:1px solid #e4d8de;
    background:#fbf6f8;
    color:#303a4e;
    font-size:.8rem;
  }

  .my-app-edit-fields textarea {
    min-height:105px;
    resize:vertical;
  }

  .my-app-edit-range {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9px;
  }

  .my-app-edit-save {
    width:100%;
    min-height:50px;
    margin-top:16px;
    border-radius:13px !important;
    background:linear-gradient(90deg,#df7898,#d76588) !important;
    color:#fff !important;
    font-size:.84rem !important;
    font-weight:900 !important;
  }

  body.dark-mode .my-application-manager-box,
  body.dark-mode .my-application-edit-box,
  body.dark-mode .my-app-manage-item {
    background:#2c2932 !important;
    border-color:#4a434e !important;
  }

  body.dark-mode .my-application-manager-head strong,
  body.dark-mode .my-app-manage-top strong {
    color:#fff7fa !important;
  }

  body.dark-mode .my-app-manage-item > p,
  body.dark-mode .my-application-manager-summary,
  body.dark-mode .my-app-empty {
    background:#34303a !important;
    border-color:#4d4651 !important;
    color:#d7cbd2 !important;
  }

  body.dark-mode .my-app-edit-fields input,
  body.dark-mode .my-app-edit-fields select,
  body.dark-mode .my-app-edit-fields textarea {
    background:#34313a !important;
    border-color:#4d4651 !important;
    color:#fff7fa !important;
  }
}

/* PC 휴가신청에서도 중복된 하단 신청목록/대휴신청 제거.
   신청목록은 관리자 메뉴, 대휴는 전용 메뉴에서만 사용 */
@media (min-width:1121px) {
  body.pc-view-apply #pcLeaveAdminTools,
  body.pc-view-apply #pcHolidayWorkTools {
    display:none !important;
  }
}


/* ===== v50 모바일 상단 네비게이션 개선 ===== */
@media (max-width:1120px) {
  /* 30~60대 직원도 누르기 쉽게 52px 터치 영역 */
  .mobile-appbar {
    grid-template-columns: 54px minmax(0,1fr) 54px !important;
    min-height: 76px !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
    column-gap: 6px !important;
  }

  .mobile-appbar-icon,
  .mobile-page-header button,
  .mobile-history-header button {
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    min-height: 52px !important;
    padding: 0 !important;
    border-radius: 18px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(255,255,255,.82) !important;
    color: #b34f72 !important;
    border: 1px solid #e7d8df !important;
    box-shadow: 0 7px 18px rgba(101,72,86,.06) !important;
    font-size: 1.34rem !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }

  .mobile-appbar-icon:active,
  .mobile-page-header button:active,
  .mobile-history-header button:active {
    transform: scale(.94) !important;
    background: #fdebf1 !important;
  }

  /* 가운데 로고 자체도 넓은 홈 버튼 역할 */
  .mobile-appbar-logo.mobile-brand-home {
    min-height: 58px !important;
    max-width: 100% !important;
    padding: 4px 10px !important;
    border-radius: 16px !important;
    cursor: pointer !important;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    transition: transform .12s ease, background .12s ease !important;
  }

  .mobile-appbar-logo.mobile-brand-home:active {
    transform: scale(.98) !important;
    background: rgba(255,255,255,.58) !important;
  }

  .mobile-appbar-logo.mobile-brand-home .mobile-brand-mark {
    width: 48px !important;
    height: 48px !important;
    flex: 0 0 48px !important;
  }

  .mobile-appbar-logo.mobile-brand-home .mobile-brand-text strong {
    font-size: .82rem !important;
    font-weight: 900 !important;
  }

  /* 서브 화면 상단도 같은 크기로 정돈 */
  .mobile-page-header,
  .mobile-history-header {
    min-height: 76px !important;
    grid-template-columns: 54px minmax(0,1fr) 54px !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  .mobile-page-header strong,
  .mobile-history-header strong {
    font-size: 1.08rem !important;
    font-weight: 900 !important;
  }

  body.dark-mode .mobile-appbar-icon,
  body.dark-mode .mobile-page-header button,
  body.dark-mode .mobile-history-header button {
    background: #302d37 !important;
    color: #f3b4c7 !important;
    border-color: #4b444f !important;
    box-shadow: none !important;
  }
}

/* 아주 작은 폭에서도 가운데 로고가 찌그러지지 않게 */
@media (max-width:360px) {
  .mobile-appbar {
    grid-template-columns: 50px minmax(0,1fr) 50px !important;
  }

  .mobile-appbar-icon,
  .mobile-page-header button,
  .mobile-history-header button {
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    min-height: 48px !important;
  }

  .mobile-appbar-logo.mobile-brand-home .mobile-brand-mark {
    width: 44px !important;
    height: 44px !important;
    flex-basis: 44px !important;
  }

  .mobile-appbar-logo.mobile-brand-home .mobile-brand-text strong {
    font-size: .75rem !important;
  }
}


/* ===== v51 공지 뒤 장식 제거 + 휴가 발생·사용 내역 ===== */

/* 기본 테마에서 공지사항 뒤로 삐져나오던 초록 하트 장식 제거 */
@media (max-width:1120px) {
  body[data-season="default"] .mobile-home-screen::after,
  .mobile-home-screen::after {
    content:none !important;
    display:none !important;
  }
}

.leave-ledger-modal {
  align-items:center;
  justify-content:center;
  padding:24px;
  overflow:auto;
}

.leave-ledger-box {
  width:min(1180px,96vw) !important;
  max-width:1180px !important;
  max-height:92vh;
  overflow:auto;
  padding:22px !important;
  border-radius:24px !important;
  background:linear-gradient(180deg,#fffdfd,#faf6f8) !important;
  border:1px solid #e8dce2 !important;
  box-shadow:0 24px 70px rgba(74,50,62,.16) !important;
}

.leave-ledger-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding-bottom:16px;
  border-bottom:1px solid #eadfe3;
}

.leave-ledger-head strong {
  display:block;
  color:#2d384d;
  font-size:1.18rem;
  font-weight:900;
}

.leave-ledger-head span {
  display:block;
  margin-top:5px;
  color:#7a7480;
  font-size:.72rem;
}

.leave-ledger-userbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:16px;
  padding:14px 16px;
  border-radius:16px;
  background:#faf3f6;
  border:1px solid #eadde3;
}

.leave-ledger-userbar > div strong {
  display:block;
  color:#2e394d;
  font-size:1rem;
  font-weight:900;
}

.leave-ledger-userbar > div span {
  display:block;
  margin-top:3px;
  color:#7a7481;
  font-size:.68rem;
}

.leave-ledger-employee-select {
  min-width:220px;
  min-height:42px;
  padding:0 12px;
  border-radius:11px;
  border:1px solid #dfd2d9;
  background:#fff;
  color:#354055;
  font-weight:750;
}

.leave-ledger-summary {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-top:14px;
}

.leave-ledger-summary > div {
  min-height:112px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:15px;
  border-radius:17px;
  border:1px solid #eadfe3;
}

.leave-ledger-summary .annual { background:#eef4ff; }
.leave-ledger-summary .sub { background:#eef8f3; }
.leave-ledger-summary .pending { background:#fff5e8; }
.leave-ledger-summary .total { background:#fdeef3; }

.leave-ledger-summary span {
  color:#6f7788;
  font-size:.7rem;
  font-weight:750;
}

.leave-ledger-summary strong {
  margin-top:5px;
  color:#29364b;
  font-size:1.35rem;
  font-weight:950;
}

.leave-ledger-summary small {
  margin-top:5px;
  color:#8a8390;
  font-size:.62rem;
  line-height:1.35;
}

.leave-ledger-renewal {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:10px;
  padding:12px 15px;
  border-radius:13px;
  background:#fff;
  border:1px solid #eadfe3;
}

.leave-ledger-renewal span {
  color:#667084;
  font-size:.73rem;
  font-weight:800;
}

.leave-ledger-renewal strong {
  color:#b64f73;
  font-size:.84rem;
  font-weight:900;
}

.leave-ledger-tabs {
  display:flex;
  gap:7px;
  margin-top:16px;
}

.leave-ledger-tabs button {
  min-height:38px;
  padding:0 17px;
  border-radius:999px !important;
  background:#f7f1f4 !important;
  color:#6b6670 !important;
  border:1px solid #e6dbe0 !important;
  box-shadow:none !important;
  font-size:.7rem !important;
  font-weight:850 !important;
}

.leave-ledger-tabs button.active {
  background:#d9668a !important;
  color:#fff !important;
  border-color:#d9668a !important;
}

.leave-ledger-column-head,
.leave-ledger-row {
  display:grid;
  grid-template-columns:120px 105px minmax(250px,1fr) 120px 135px;
  gap:0;
  align-items:center;
}

.leave-ledger-column-head {
  margin-top:12px;
  padding:10px 12px;
  border-radius:12px 12px 0 0;
  background:#f4eaf0;
  color:#697286;
  font-size:.67rem;
  font-weight:850;
}

.leave-ledger-list {
  border:1px solid #eadfe3;
  border-top:0;
  border-radius:0 0 14px 14px;
  overflow:hidden;
}

.leave-ledger-row {
  min-height:70px;
  padding:10px 12px;
  background:#fff;
  border-top:1px solid #efe5e9;
  color:#344056;
  font-size:.7rem;
}

.leave-ledger-row:first-child { border-top:0; }
.leave-ledger-row.scheduled { background:#fffbf5; }

.ledger-kind {
  display:flex;
  align-items:center;
  gap:5px;
}

.ledger-kind > span {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:46px;
  min-height:26px;
  padding:0 8px;
  border-radius:999px;
  font-size:.61rem;
  font-weight:900;
}

.ledger-kind > span.annual { background:#e9f2ff; color:#3873c4; }
.ledger-kind > span.sub { background:#e9f7ef; color:#338360; }

.ledger-kind em {
  padding:3px 6px;
  border-radius:999px;
  background:#fff1dc;
  color:#b76f27;
  font-size:.55rem;
  font-style:normal;
  font-weight:850;
}

.ledger-detail strong {
  display:block;
  color:#2e394c;
  font-size:.72rem;
  font-weight:900;
}

.ledger-detail small {
  display:block;
  margin-top:4px;
  color:#7d7681;
  font-size:.61rem;
  line-height:1.4;
  word-break:keep-all;
}

.ledger-delta {
  color:#6d7687;
  font-weight:900;
}
.ledger-delta.plus { color:#2b9164; }
.ledger-delta.minus { color:#d35c74; }

.ledger-balance {
  color:#364257;
  font-weight:900;
}

.leave-ledger-empty {
  min-height:190px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:7px;
  color:#7a7480;
}

.leave-ledger-empty span { font-size:2rem; }
.leave-ledger-empty strong { font-size:.83rem; }

@media (max-width:1120px) {
  .leave-ledger-modal {
    align-items:flex-start !important;
    padding:calc(14px + env(safe-area-inset-top)) 10px
            calc(16px + env(safe-area-inset-bottom)) !important;
  }

  .leave-ledger-box {
    width:100% !important;
    max-width:none !important;
    max-height:none !important;
    min-height:calc(100vh - 28px) !important;
    padding:16px !important;
    border-radius:22px !important;
  }

  .leave-ledger-head strong { font-size:1.02rem; }
  .leave-ledger-head span { font-size:.64rem; line-height:1.45; }

  .leave-ledger-userbar {
    align-items:flex-start;
    flex-direction:column;
    padding:12px 13px;
  }

  .leave-ledger-employee-select {
    width:100%;
    min-width:0;
    min-height:48px;
  }

  .leave-ledger-summary {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
  }

  .leave-ledger-summary > div {
    min-height:94px;
    padding:12px;
  }

  .leave-ledger-summary strong { font-size:1.15rem; }

  .leave-ledger-renewal {
    align-items:flex-start;
    flex-direction:column;
    gap:4px;
  }

  .leave-ledger-column-head {
    display:none;
  }

  .leave-ledger-list {
    margin-top:12px;
    border:0;
    border-radius:0;
    overflow:visible;
  }

  .leave-ledger-row {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px 12px;
    min-height:0;
    margin-bottom:10px;
    padding:13px;
    border:1px solid #eadfe3 !important;
    border-radius:15px;
    box-shadow:0 7px 18px rgba(77,53,66,.04);
  }

  .leave-ledger-row > div::before {
    content:attr(data-label);
    display:block;
    margin-bottom:4px;
    color:#9a919b;
    font-size:.55rem;
    font-weight:800;
  }

  .ledger-detail {
    grid-column:1 / -1;
    order:3;
    padding-top:2px;
  }

  .ledger-delta { order:4; }
  .ledger-balance { order:5; }
  .ledger-date { order:1; font-weight:850; color:#3b4558; }
  .ledger-kind { order:2; justify-content:flex-end; }

  .ledger-detail strong { font-size:.76rem; }
  .ledger-detail small { font-size:.63rem; }

  body.dark-mode .leave-ledger-box,
  body.dark-mode .leave-ledger-row,
  body.dark-mode .leave-ledger-renewal,
  body.dark-mode .leave-ledger-userbar {
    background:#2c2932 !important;
    border-color:#4a434e !important;
  }

  body.dark-mode .leave-ledger-head strong,
  body.dark-mode .leave-ledger-userbar > div strong,
  body.dark-mode .ledger-detail strong,
  body.dark-mode .ledger-balance,
  body.dark-mode .ledger-date {
    color:#fff7fa !important;
  }

  body.dark-mode .leave-ledger-summary > div {
    background:#34303a !important;
    border-color:#4b4550 !important;
  }

  body.dark-mode .leave-ledger-summary strong {
    color:#fff7fa !important;
  }
}


/* ===== v52 PC 직원관리: 다음 연차 갱신일 + 휴가 내역 ===== */
@media (min-width:1121px) {
  .pc-employee-manage-table {
    min-width:1180px !important;
  }

  .pc-employee-manage-table th,
  .pc-employee-manage-table td {
    white-space:nowrap;
    vertical-align:middle;
  }

  .pc-renewal-date {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:30px;
    padding:0 10px;
    border-radius:9px;
    background:#fff3f7;
    border:1px solid #ebd7df;
    color:#aa5572;
    font-size:.68rem;
    font-weight:850;
  }

  .pc-ledger-open-btn {
    min-height:30px !important;
    padding:0 11px !important;
    border-radius:9px !important;
    background:#eef4ff !important;
    color:#3d70b8 !important;
    border:1px solid #d7e4f7 !important;
    box-shadow:none !important;
    font-size:.66rem !important;
    font-weight:900 !important;
    cursor:pointer;
  }

  .pc-ledger-open-btn:hover {
    background:#e4efff !important;
    border-color:#c7daf4 !important;
    transform:translateY(-1px);
  }

  body.dark-mode .pc-renewal-date {
    background:#3a3037 !important;
    border-color:#55464e !important;
    color:#f1b2c4 !important;
  }

  body.dark-mode .pc-ledger-open-btn {
    background:#30394a !important;
    border-color:#45536a !important;
    color:#b8d0f4 !important;
  }
}


/* ======================================================================
   v53 GLOBAL RESPONSIVE GUARD
   - 기종별 고정폭이 아니라 실제 viewport 폭에 맞춰 자동 재배치
   - 페이지 전체의 좌우 드래그/가로 스크롤 제거
   ====================================================================== */

html,
body {
  max-width:100% !important;
}

html {
  overflow-x:hidden !important;
}

body {
  overflow-x:hidden !important;
}

*,
*::before,
*::after {
  box-sizing:border-box;
}

img,
svg,
canvas,
video {
  max-width:100%;
}

/* ---------- 작은 태블릿 / iPad 세로 / Fold 펼침 중간폭 ---------- */
@media (min-width:1121px) and (max-width:1120px) {
  html,
  body {
    width:100% !important;
    max-width:100% !important;
    overflow-x:hidden !important;
  }

  .dashboard-wrapper {
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    padding:12px !important;
    grid-template-columns:minmax(0,1fr) !important;
  }

  .dashboard-wrapper > *,
  .left-col,
  .right-col,
  #sectionLeft,
  #sectionRight,
  .card {
    min-width:0 !important;
    width:100% !important;
    max-width:100% !important;
  }

  .right-col {
    position:static !important;
  }

  #cardCalendar,
  #cardEmpTable,
  #cardLeaveApplyMain {
    min-width:0 !important;
    max-width:100% !important;
  }

  .calendar-grid {
    grid-template-columns:repeat(7,minmax(0,1fr)) !important;
    min-width:0 !important;
    width:100% !important;
  }

  .cal-header,
  .cal-cell {
    min-width:0 !important;
  }

  .table-box {
    max-width:100% !important;
  }
}

/* ---------- 휴대폰 / Flip / Fold 접힘 화면 ---------- */
@media (max-width:1120px) {
  html,
  body {
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    overflow-x:hidden !important;
  }

  body {
    padding-left:0 !important;
    padding-right:0 !important;
  }

  /* 페이지의 뼈대가 viewport보다 커지는 것을 원천 차단 */
  .dashboard-wrapper,
  .dashboard-wrapper > *,
  .tab-section,
  .left-col,
  .right-col,
  #sectionLeft,
  #sectionRight,
  .mobile-home-screen,
  .mobile-history-screen {
    min-width:0 !important;
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }

  .dashboard-wrapper {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    padding:0 !important;
    gap:0 !important;
  }

  .tab-section.active-tab {
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
  }

  .tab-section > *,
  .left-col > *,
  .right-col > *,
  .card > *,
  .stack-form > *,
  .form-group-full,
  .form-group-full > *,
  .side-profile-header > *,
  .leave-application-section > * {
    min-width:0 !important;
    max-width:100%;
  }

  /* 상단 고정 헤더: 부모 폭이 아니라 실제 화면 폭 안에서 고정 */
  .mobile-page-header,
  .mobile-history-header {
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin:0 0 10px !important;
    padding-left:max(10px, env(safe-area-inset-left)) !important;
    padding-right:max(10px, env(safe-area-inset-right)) !important;
    grid-template-columns:54px minmax(0,1fr) 54px !important;
    left:0 !important;
    right:0 !important;
  }

  .mobile-page-header strong,
  .mobile-history-header strong {
    min-width:0 !important;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  /* 카드: margin을 포함해도 절대 화면 밖으로 나가지 않음 */
  #cardLeaveApplyMain,
  #cardEmpTable,
  #cardCalendar,
  #pcRecentCard,
  .pc-notice-card,
  .mobile-home-mini-card,
  .notice-card {
    width:auto !important;
    max-width:calc(100% - 20px) !important;
    min-width:0 !important;
    margin-left:10px !important;
    margin-right:10px !important;
  }

  #cardLeaveApplyMain,
  #cardEmpTable,
  #cardCalendar {
    overflow:hidden !important;
  }

  /* 카드 제목/우측 액션이 서로 밀어내지 않게 */
  .card-header,
  .pc-section-head,
  .mobile-home-mini-head,
  .apply-sig-header,
  .side-profile-header,
  .leave-application-section > div:first-child {
    min-width:0 !important;
    max-width:100% !important;
  }

  .card-header {
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
  }

  .card-header > div {
    min-width:0 !important;
    max-width:100% !important;
  }

  /* 휴가 신청 - 관리자 버튼/종류관리 버튼이 좁은 화면에서 겹치지 않게 */
  .leave-application-section > div:first-child {
    display:flex !important;
    flex-wrap:wrap !important;
    gap:8px !important;
    align-items:flex-start !important;
  }

  .mobile-apply-title {
    flex:1 1 180px !important;
    min-width:0 !important;
  }

  .leave-application-section > div:first-child > button {
    flex:0 0 auto;
    max-width:100% !important;
  }

  .leave-type-form-group > label,
  .leave-type-form-group > .leave-type-form-label {
    display:flex !important;
    flex-wrap:wrap !important;
    align-items:center !important;
    gap:7px !important;
  }

  .inline-manage-link {
    margin-left:0 !important;
  }

  .leave-type-form-group > label,
  .leave-type-form-group > .leave-type-form-label {
    flex-wrap:nowrap !important;
  }
  .leave-type-form-group > label .mobile-step-label,
  .leave-type-form-group > .leave-type-form-label .mobile-step-label {
    width:auto !important;
    flex:1 1 auto !important;
    min-width:0 !important;
  }
  .leave-type-form-group > label .inline-manage-link,
  .leave-type-form-group > .leave-type-form-label .inline-manage-link {
    flex:0 0 auto !important;
    width:auto !important;
    white-space:nowrap !important;
  }

  /* 휴가 종류 / 사유 버튼은 화면 폭에 맞춰 자동 재배치 */
  .leave-type-chip-grid {
    width:100% !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  .leave-type-chip,
  .quick-reason-buttons button,
  .date-mode-btn {
    min-width:0 !important;
    max-width:100% !important;
    white-space:normal !important;
    overflow-wrap:anywhere;
  }

  .quick-reason-buttons {
    width:100% !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  @media (min-width:430px) {
    .quick-reason-buttons {
      grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    }
  }

  /* 프로필/잔여 박스 */
  .side-profile-header {
    width:100% !important;
    display:flex !important;
    flex-wrap:wrap !important;
    gap:8px !important;
  }

  .side-profile-header > div:first-child {
    flex:1 1 200px !important;
    min-width:0 !important;
  }

  .side-profile-header > div:first-child > div {
    min-width:0 !important;
    flex-wrap:wrap !important;
  }

  #dNameTitle,
  #dSubInfo {
    max-width:100% !important;
    overflow-wrap:anywhere;
  }

  .side-stats-grid {
    width:100% !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  .side-stat-box {
    min-width:0 !important;
  }

  /* 잔여 현황 정렬버튼: 1줄로 길게 뻗지 않고 2x2 자동배치 */
  #cardEmpTable .card-header {
    gap:12px !important;
  }

  #cardEmpTable .sort-btn-group {
    width:100% !important;
    max-width:100% !important;
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:7px !important;
    overflow:visible !important;
  }

  #cardEmpTable .sort-btn {
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    margin:0 !important;
    white-space:normal !important;
    min-height:40px;
  }

  .mobile-emp-cards,
  #mobileEmpCardsList {
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    overflow:visible !important;
  }

  .mobile-emp-card {
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
  }

  .mobile-emp-card-top,
  .mobile-emp-card-stats {
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
  }

  .mobile-emp-card-stats {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  /* 월간 일정표: 7칸이 무조건 현재 화면 안에 들어가도록 */
  #cardCalendar {
    padding-left:10px !important;
    padding-right:10px !important;
  }

  #cardCalendar .card-header {
    width:100% !important;
    min-width:0 !important;
    align-items:stretch !important;
  }

  #cardCalendar .card-header > h2 {
    width:100% !important;
    min-width:0 !important;
    text-align:center;
    font-size:clamp(.92rem, 4.2vw, 1.08rem) !important;
  }

  #cardCalendar .card-header > div {
    width:100% !important;
    min-width:0 !important;
    display:grid !important;
    grid-template-columns:42px minmax(0,1fr) 42px !important;
    align-items:center !important;
    gap:8px !important;
  }

  #cardCalendar .card-header > div > .sub-btn {
    width:42px !important;
    min-width:42px !important;
    max-width:42px !important;
    padding:0 !important;
    justify-self:center;
  }

  #cardCalendar .cal-title-pill {
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    padding:9px 4px !important;
    text-align:center;
    font-size:clamp(.78rem, 3.8vw, .94rem) !important;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  #cardCalendar .calendar-grid {
    display:grid !important;
    grid-template-columns:repeat(7,minmax(0,1fr)) !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    overflow:hidden !important;
  }

  #cardCalendar .cal-header,
  #cardCalendar .cal-cell {
    min-width:0 !important;
    width:auto !important;
    max-width:100% !important;
    overflow:hidden !important;
  }

  #cardCalendar .cal-header {
    padding:7px 1px !important;
    font-size:clamp(.58rem, 2.8vw, .72rem) !important;
  }

  #cardCalendar .cal-cell {
    min-height:clamp(64px, 19vw, 82px) !important;
    padding:3px !important;
  }

  #cardCalendar .cal-day-num {
    font-size:clamp(.64rem, 3vw, .8rem) !important;
  }

  #cardCalendar .cal-tag {
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    padding:2px !important;
    font-size:clamp(.48rem, 2.35vw, .62rem) !important;
    line-height:1.25 !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
  }

  .holiday-label {
    max-width:100% !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
    font-size:clamp(.45rem, 2.1vw, .56rem) !important;
  }

  /* 달력 팝오버도 화면 안에 */
  .cal-nav-popover,
  .neo-picker-pop,
  .leave-custom-calendar {
    width:min(300px, calc(100vw - 24px)) !important;
    max-width:calc(100vw - 24px) !important;
    left:auto !important;
    right:0 !important;
  }

  /* 대체휴무 적립 화면 */
  body.mobile-holidaywork-mode #cardLeaveApplyMain {
    width:auto !important;
    max-width:calc(100% - 20px) !important;
  }

  #pcHolidayWorkTools,
  #pcHolidayWorkTools.pc-tool-open {
    width:auto !important;
    max-width:100% !important;
    min-width:0 !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }

  #pcHolidayWorkTools input,
  #pcHolidayWorkTools textarea,
  #pcHolidayWorkTools button {
    max-width:100% !important;
  }

  /* 내 신청내역 / 신청 수정·취소 */
  .mobile-history-list,
  .my-application-manager-list,
  .mobile-approval-manager-list {
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
  }

  .history-item,
  .my-app-manage-item,
  .mobile-approval-item {
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
  }

  .history-item-top,
  .my-app-manage-top,
  .mobile-approval-item-top {
    min-width:0 !important;
    max-width:100% !important;
    flex-wrap:wrap !important;
  }

  /* 발생·사용 내역 모달 */
  .leave-ledger-modal,
  .my-application-manager-modal,
  .my-application-edit-modal,
  .mobile-admin-tool-modal,
  .modal-overlay {
    max-width:100vw !important;
    overflow-x:hidden !important;
  }

  .leave-ledger-box,
  .my-application-manager-box,
  .my-application-edit-box,
  .mobile-admin-tool-box,
  .modal-box {
    max-width:calc(100vw - 20px) !important;
    min-width:0 !important;
  }

  .leave-ledger-row,
  .leave-ledger-summary,
  .leave-ledger-userbar,
  .mobile-approval-summary,
  .my-app-edit-range {
    min-width:0 !important;
    max-width:100% !important;
  }

  /* 폼 컨트롤은 부모보다 절대 넓어지지 않게 */
  input,
  select,
  textarea,
  button,
  .modal-trigger-btn,
  .pretty-date-field,
  .date-mode-toggle,
  .apply-sig-box,
  .apply-sig-canvas-wrap {
    max-width:100% !important;
  }

  input,
  select,
  textarea {
    width:100%;
    min-width:0 !important;
  }

  /* 의도적인 내부 가로스크롤(직원 미리보기)만 허용 */
  .mobile-staff-preview {
    max-width:100% !important;
    overflow-x:auto !important;
    overscroll-behavior-x:contain;
  }
}

/* ---------- 아주 좁은 Flip 외부화면 / 소형폰 ---------- */
@media (max-width:380px) {
  .mobile-page-header,
  .mobile-history-header {
    grid-template-columns:48px minmax(0,1fr) 48px !important;
    padding-left:7px !important;
    padding-right:7px !important;
  }

  #cardLeaveApplyMain,
  #cardEmpTable,
  #cardCalendar,
  #pcRecentCard,
  .pc-notice-card {
    max-width:calc(100% - 12px) !important;
    margin-left:6px !important;
    margin-right:6px !important;
  }

  .leave-type-chip-grid,
  .side-stats-grid,
  #cardEmpTable .sort-btn-group,
  .mobile-emp-card-stats {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  .quick-reason-buttons {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  #cardCalendar {
    padding-left:6px !important;
    padding-right:6px !important;
  }

  #cardCalendar .card-header > div {
    grid-template-columns:38px minmax(0,1fr) 38px !important;
    gap:5px !important;
  }

  #cardCalendar .card-header > div > .sub-btn {
    width:38px !important;
    min-width:38px !important;
    max-width:38px !important;
  }

  #cardCalendar .cal-cell {
    padding:2px !important;
  }
}


/* ===== v54 모바일 잔여현황: 갱신일 + 상세내역 ===== */
@media (max-width:1120px) {
  #cardEmpTable { overflow:visible !important; }
  #cardEmpTable .card-header { padding-bottom:4px !important; }
  #cardEmpTable .card-header > div:first-child { width:100%; min-width:0; }

  #mobileStatusTitle {
    margin:0 !important;
    font-size:clamp(1rem,4.8vw,1.18rem) !important;
    color:#29364b !important;
  }

  #mobileStatusDesc {
    display:block;
    margin-top:5px;
    line-height:1.45;
  }

  .mobile-emp-cards {
    max-height:none !important;
    overflow:visible !important;
    gap:12px !important;
    padding:2px 0 4px !important;
  }

  .mobile-balance-card-v54 {
    padding:15px !important;
    border-radius:18px !important;
    background:linear-gradient(180deg,#fffdfd,#fffafb) !important;
    border:1px solid #eadde3 !important;
    box-shadow:0 10px 24px rgba(87,57,72,.055) !important;
  }

  .mobile-balance-card-v54.active {
    border-color:#e8c8d4 !important;
    background:linear-gradient(180deg,#fffdfd,#fff9fb) !important;
  }

  .mobile-balance-card-head {
    display:flex !important;
    align-items:flex-start !important;
    justify-content:space-between !important;
    gap:10px !important;
    margin-bottom:11px !important;
    flex-wrap:nowrap !important;
  }

  .mobile-balance-person { min-width:0; flex:1 1 auto; }

  .mobile-balance-person > div {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:6px;
  }

  .mobile-balance-person .badge-role {
    margin:0 !important;
    font-size:.67rem !important;
  }

  .mobile-balance-person strong {
    color:#2b374b !important;
    font-size:1.02rem !important;
    font-weight:950 !important;
  }

  .mobile-balance-join {
    display:block;
    margin-top:5px;
    color:#7b8495;
    font-size:.66rem;
  }

  .mobile-balance-my-mark,
  .mobile-balance-admin-mark {
    flex:none;
    display:inline-flex;
    align-items:center;
    min-height:28px;
    padding:0 9px;
    border-radius:999px;
    font-size:.6rem;
    font-weight:900;
    white-space:nowrap;
  }

  .mobile-balance-my-mark { background:#fdebf1; color:#bd5579; }
  .mobile-balance-admin-mark { background:#eef4ff; color:#4a72ad; }

  .mobile-balance-renewal {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:9px;
    padding:11px 12px;
    margin-bottom:10px;
    border-radius:13px;
    background:#faf5f7;
    border:1px solid #eadfe3;
  }

  .mobile-balance-renewal > div { min-width:0; }

  .mobile-balance-renewal span {
    display:block;
    color:#7a7480;
    font-size:.61rem;
    font-weight:800;
  }

  .mobile-balance-renewal strong {
    display:block;
    margin-top:3px;
    color:#b44f73;
    font-size:.86rem;
    font-weight:950;
  }

  .mobile-balance-renewal small {
    max-width:50%;
    color:#9097a5;
    font-size:.56rem;
    line-height:1.35;
    text-align:right;
    word-break:keep-all;
  }

  .mobile-emp-card-stats-v54 {
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:8px !important;
    padding:0 !important;
    background:transparent !important;
  }

  .mobile-emp-card-stats-v54 > div {
    min-width:0;
    min-height:72px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:9px 6px;
    border-radius:13px;
    background:#f8f6f8;
    border:1px solid #eee5e9;
    text-align:center;
  }

  .mobile-emp-card-stats-v54 > div > span {
    color:#798294;
    font-size:.62rem;
    font-weight:750;
  }

  .mobile-emp-card-stats-v54 > div > strong {
    margin-top:4px;
    color:#2e394d;
    font-size:1.02rem;
    font-weight:950;
  }

  .mobile-emp-card-stats-v54 > div > small {
    margin-top:3px;
    color:#928b95;
    font-size:.53rem;
    line-height:1.3;
  }

  .mobile-emp-card-stats-v54 .annual-remain { background:#fff0f5; }
  .mobile-emp-card-stats-v54 .annual-remain strong { color:#d35d82; }
  .mobile-emp-card-stats-v54 .sub-remain { background:#fff5e9; }
  .mobile-emp-card-stats-v54 .sub-remain strong { color:#d28536; }

  .mobile-emp-card-stats-v54 .pending-sub {
    background:#fff8ec;
    border-color:#f0dfc3;
  }

  .mobile-emp-card-stats-v54 .pending-sub strong { color:#c5772d; }

  .mobile-emp-card-stats-v54 .total-remain {
    grid-column:1 / -1;
    min-height:78px;
    background:#ecf8f2;
    border-color:#d4ebdf;
  }

  .mobile-emp-card-stats-v54 .total-remain > span,
  .mobile-emp-card-stats-v54 .total-remain > strong { color:#35946b; }

  .mobile-balance-actions {
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
    margin-top:11px;
  }

  .mobile-balance-actions:has(.secondary) {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .mobile-balance-action {
    width:100%;
    min-width:0 !important;
    min-height:46px;
    border-radius:12px !important;
    box-shadow:none !important;
    font-size:.72rem !important;
    font-weight:900 !important;
    white-space:normal !important;
  }

  .mobile-balance-action.primary {
    background:linear-gradient(90deg,#db7293,#d45e84) !important;
    color:#fff !important;
    border:1px solid #d8678a !important;
  }

  .mobile-balance-action.secondary {
    background:#f5f1f4 !important;
    color:#646c7a !important;
    border:1px solid #e4dbe0 !important;
  }
}

@media (max-width:380px) {
  .mobile-balance-renewal {
    flex-direction:column;
    align-items:flex-start;
  }
  .mobile-balance-renewal small {
    max-width:100%;
    text-align:left;
  }
  .mobile-balance-actions:has(.secondary) {
    grid-template-columns:1fr;
  }
}


/* ===== v56 직원 계정 변경 + PIN 최초설정/분실재설정 권한 ===== */
.employee-pin-manager-row button.pin-reset-locked,
.employee-pin-manager-row button:disabled {
  cursor:not-allowed !important;
  opacity:.58 !important;
  background:#f3eff1 !important;
  color:#8d858a !important;
  border-color:#e3dadd !important;
  box-shadow:none !important;
}

@media (min-width:1121px) {
  #pcNavUserSwitch {
    border-top:1px solid rgba(205,151,170,.20);
    margin-top:4px;
    padding-top:11px;
  }
}


/* ===== v57 PIN 메뉴/키보드 UX ===== */
#pcAdminPinManagerBtn {
  display:flex !important;
  align-items:center;
  flex-wrap:wrap;
  gap:4px 6px;
}
#pcAdminPinManagerBtn small {
  margin-left:auto;
  font-size:.55rem;
  font-weight:750;
  opacity:.72;
}

/* App owner settings: both desktop and mobile, without changing other screens. */
#ownerSettingsModal .modal-box {width:94%;max-width:560px;max-height:88dvh;overflow:auto;box-sizing:border-box;padding:24px;}
#ownerSettingsModal h3 {margin:0 0 12px;}
#ownerSettingsModal button {min-height:46px;}
#ownerSettingsLogin > p {margin:0 0 18px;}
#ownerSettingsLogin form {display:grid;gap:12px;}
#ownerSettingsLogin label {display:block;margin:0;font-weight:800;}
#ownerSettingsPin {display:block;width:100%;box-sizing:border-box;margin:0;min-height:48px;}
#ownerSettingsUnlock {width:100%;margin:2px 0 6px;}
.owner-settings-actions {display:grid;gap:14px;margin:20px 0;}
.owner-settings-actions button {width:100%;text-align:left;padding:15px 16px;margin:0;}
#ownerSettingsModal p {font-size:.85rem;line-height:1.6;overflow-wrap:anywhere;}
#ownerSettingsError {min-height:20px;margin:0;color:var(--danger);}
#ownerSettingsModal > .modal-box > .sub-btn {width:100%;margin-top:16px;}
#pcOwnerSettingsEntry,
#mobileOwnerSettingsEntry {display:none;}
#pcOwnerSettingsEntry {margin-top:10px!important;padding-top:14px!important;border-top:1px solid rgba(117,134,158,.2)!important;}
#mobileOwnerSettingsEntry {margin-top:10px!important;border-top:1px solid rgba(117,134,158,.18)!important;}
#pcOwnerSettingsEntry small,
#mobileOwnerSettingsEntry small {display:block;margin-left:auto;font-size:.58rem;opacity:.65;}
#roleManagerModal .modal-box {width:94%;max-width:680px;max-height:88dvh;overflow:auto;box-sizing:border-box;}
.role-manager-form {display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0;}
.role-manager-form label {display:grid;gap:6px;font-size:.78rem;font-weight:800;}
.role-manager-form .full {grid-column:1/-1;}
.role-manager-row {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--border);}
.role-manager-row small {display:block;color:var(--sub);margin-top:3px;}
@media(max-width:600px) {.role-manager-form {grid-template-columns:1fr;}.role-manager-form .full {grid-column:auto;}}
@media(max-width:600px) {
  #ownerSettingsModal .modal-box {padding:20px 18px;}
}
