/* ─── 暖色系（參考 pep.rongxin.org.tw 風格，克制使用） ─── */
  :root {
    --c-bg: #FFF8F0;
    --c-primary: #FF6B47;
    --c-primary-d: #E8502F;
    --c-secondary: #FFB84D;
    --c-text: #2A1800;
    --c-mid: #7C5B3F;
    --c-light: #B89B80;
    --c-border: rgba(184,155,128,.25);
    /* 向下相容舊變數名 */
    --rx-orange: var(--c-primary);
    --rx-yellow: var(--c-secondary);
    --rx-light: #FFF3E6;
    --rx-bg: var(--c-bg);
    --rx-text-gray: var(--c-mid);
  }

  body {
    font-family: 'Noto Sans TC', 'Microsoft JhengHei', sans-serif;
    background-color: var(--c-bg);
    color: var(--c-text);
    font-size: 0.95rem;
  }
  /* 收窄主容器（參考 pep 的 1400px）*/
  .container { max-width: 1400px; }

  /* 儀表板統計卡（橫向：icon 左 + 數字標籤右；參考 pep .rx-stat）*/
  .rx-stat-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px;
    margin-bottom: 20px;
  }
  .rx-stat {
    background: #fff;
    border: 1px solid var(--c-border);
    border-radius: 16px;
    box-shadow: 0 2px 8px rgba(0,0,0,.04);
    padding: 18px 20px;
    display: flex;
    align-items: center;
    gap: 14px;
  }
  .rx-stat-icon {
    width: 50px; height: 50px; border-radius: 14px;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.3rem; color: #fff;
    background: linear-gradient(135deg, var(--c-primary), #FF8C42);
    box-shadow: 0 4px 10px rgba(255,107,71,.30);
    flex-shrink: 0;
  }
  .rx-stat-icon.yellow { background: linear-gradient(135deg, var(--c-secondary), #f59f1f); box-shadow: 0 4px 10px rgba(255,184,77,.30); }
  .rx-stat-icon.green  { background: linear-gradient(135deg, #4DC88A, #36b377); box-shadow: 0 4px 10px rgba(77,200,138,.30); }
  .rx-stat-icon.red    { background: linear-gradient(135deg, #dc3545, #c82333); box-shadow: 0 4px 10px rgba(220,53,69,.30); }
  .rx-stat-num { font-size: 1.6rem; font-weight: 800; color: var(--c-text); line-height: 1; }
  .rx-stat-label { font-size: .82rem; color: var(--c-mid); font-weight: 600; margin-top: 4px; }

  /* Loading Overlay */
  .loading-overlay {
    position: fixed; inset: 0;
    background: rgba(255,248,240,.92);
    z-index: 9999;
    display: flex; justify-content: center; align-items: center;
    flex-direction: column;
  }
  .loading-overlay .spinner-border {
    width: 3rem; height: 3rem;
    color: var(--c-primary);
  }

  /* Card — 淡邊框 + 淺陰影 */
  .card {
    border: 1px solid var(--c-border);
    border-radius: 14px;
    box-shadow: 0 2px 8px rgba(0,0,0,.04);
    margin-bottom: 1rem;
    background: #fff;
  }
  .card-header {
    background: #fff;
    border-bottom: 1px solid var(--c-border);
    font-weight: 700;
    border-radius: 14px 14px 0 0 !important;
    padding: 12px 18px;
  }
  .card-header-gradient {
    background: linear-gradient(135deg, var(--c-primary), var(--c-secondary));
    color: #fff;
    border: none;
  }
  .card-footer {
    background: rgba(255,248,240,.5);
    border-top: 1px solid var(--c-border);
    border-radius: 0 0 14px 14px;
  }

  /* Nav Tabs — 主分頁底線風（pep 沒用 Bootstrap tabs，這裡保留 Bootstrap 結構但換色）*/
  .nav-tabs {
    border-bottom: 2px solid var(--c-border);
  }
  .nav-tabs .nav-link {
    color: var(--c-mid);
    font-weight: 600;
    border: none;
    padding: 10px 18px;
    border-radius: 0;
  }
  .nav-tabs .nav-link:hover {
    color: var(--c-primary);
    background: transparent;
  }
  .nav-tabs .nav-link.active {
    color: var(--c-primary);
    font-weight: 700;
    border-bottom: 3px solid var(--c-primary);
    margin-bottom: -2px;
    background: transparent;
  }

  /* Nav Pills — 子分頁圓角小一點 */
  .nav-pills .nav-link {
    color: var(--c-mid);
    border-radius: 8px;
    padding: 6px 14px;
    font-size: 0.9rem;
    font-weight: 600;
  }
  .nav-pills .nav-link:hover {
    background: rgba(255,107,71,.08);
    color: var(--c-primary);
  }
  .nav-pills .nav-link.active {
    background: var(--c-primary);
    color: #fff;
  }

  /* Buttons — 微圓角 + 輕陰影 */
  .btn { font-weight: 600; }
  .btn-rx, .btn-primary {
    background: var(--c-primary);
    color: #fff;
    border: 1px solid var(--c-primary);
  }
  .btn-rx:hover, .btn-primary:hover {
    background: var(--c-primary-d);
    border-color: var(--c-primary-d);
    color: #fff;
  }
  .btn-rx-outline {
    border: 1.5px solid var(--c-primary);
    color: var(--c-primary);
    background: #fff;
    font-weight: 600;
  }
  .btn-rx-outline:hover {
    background: var(--c-primary);
    color: #fff;
  }
  .btn-outline-primary {
    color: var(--c-primary);
    border-color: var(--c-primary);
  }
  .btn-outline-primary:hover {
    background: var(--c-primary);
    border-color: var(--c-primary);
  }

  /* 表單 */
  .form-control, .form-select {
    border: 1.5px solid var(--c-border);
    border-radius: 10px;
    font-size: 0.95rem;
  }
  .form-control:focus, .form-select:focus {
    border-color: var(--c-primary);
    box-shadow: 0 0 0 3px rgba(255,107,71,.12);
  }
  .form-control-sm, .form-select-sm { border-radius: 8px; }
  .form-label { font-weight: 600; color: var(--c-mid); font-size: 0.9rem; }
  .form-label.required::after { content: " *"; color: #dc3545; }

  /* Table */
  .table { background: transparent; }
  .table thead th {
    background-color: rgba(255,243,230,.7);
    color: var(--c-mid);
    font-weight: 700;
    font-size: 0.875rem;
    white-space: nowrap;
    border-bottom: 2px solid var(--c-border);
  }
  .table tbody td {
    font-size: 0.9rem;
    vertical-align: middle;
  }
  .sticky-thead thead {
    position: sticky;
    top: 0;
    z-index: 1;
  }

  /* Modal Header */
  .modal-content { border-radius: 14px; border: none; }
  .modal-header { border-radius: 14px 14px 0 0; }
  .modal-header-gradient {
    background: linear-gradient(135deg, var(--c-primary), var(--c-secondary));
    color: #fff;
  }
  .modal-header-gradient .btn-close { filter: brightness(0) invert(1); }

  /* Schedule Calendar */
  #rf-sch-table { table-layout: fixed; }
  #rf-sch-table th { font-size: 0.85rem; vertical-align: middle; }
  #rf-sch-table td { vertical-align: top; min-height: 60px; }
  #rf-sch-body tr:hover { background: #fefefe; }

  /* Badges */
  .badge { font-weight: 600; }

  /* Status badges */
  .badge-active { background-color: #28a745; }
  .badge-waiting { background-color: #ffc107; color: #333; }
  .badge-closed { background-color: #6c757d; }
  .badge-not-opened { background-color: #dc3545; }

  /* Login Page */
  #login-section {
    min-height: 70vh;
    display: flex; align-items: center; justify-content: center;
  }
  .login-card {
    max-width: 420px;
    margin: 0 auto;
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 8px 32px rgba(0,0,0,.08);
    border: 1px solid var(--c-border);
  }
  .login-logo {
    text-align: center;
    margin-bottom: 1.5rem;
  }
  .login-logo h3 {
    color: var(--c-primary);
    font-weight: 700;
    margin-top: 8px;
  }

  /* Top Header */
  .top-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 8px 0;
    border-bottom: 1px solid var(--c-border);
  }
  .top-header .user-info {
    font-weight: 600;
    color: var(--c-text);
  }

  /* Case Detail Header */
  .case-header {
    background: linear-gradient(135deg, var(--c-primary), var(--c-secondary));
    color: #fff;
    padding: 14px 22px;
    border-radius: 14px;
    margin-bottom: 1rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    box-shadow: 0 4px 16px rgba(255,107,71,.18);
  }
  .case-header h5 {
    margin: 0;
    font-weight: 700;
  }

  /* Expiring alerts */
  .expiring-soon { color: #e67e00; font-weight: 600; }
  .expired { color: #dc3545; font-weight: 600; }

  /* Alert / Swal — 默認 */
  .alert { border-radius: 10px; }

  /* Print */
  @media print {
    .no-print { display: none !important; }
    .nav, .btn, .top-header { display: none !important; }
    .card { box-shadow: none; border: 1px solid #ddd; }
    body { background: #fff; }
    .table { width: 100%; }
  }

  /* Responsive */
  @media (max-width: 768px) {
    .nav-pills .nav-link { font-size: 0.8rem; padding: 0.3rem 0.6rem; }
    .container { padding-left: 10px; padding-right: 10px; }
    /* 分頁列改單行可左右滑動，不再 wrap 成多列（主分頁 .nav-tabs 與案件詳情子分頁 .nav-pills）*/
    /* !important 用來蓋過子分頁列(#rf-det-pills)上的 Bootstrap .flex-wrap 工具類 */
    .nav-tabs, .nav-pills { flex-wrap: nowrap !important; overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .nav-tabs::-webkit-scrollbar, .nav-pills::-webkit-scrollbar { display: none; }
    .nav-tabs .nav-link, .nav-pills .nav-link { white-space: nowrap; flex: 0 0 auto; }
    .nav-tabs .nav-link { padding: 8px 12px; }
    /* 頂部列可換行、緊湊，避免擠出畫面 */
    .top-header { flex-wrap: wrap; gap: 8px; }
  }
